From e49d2d9c195c680c8baabf23cc6575bf74ea429e Mon Sep 17 00:00:00 2001 From: overtrue Date: Thu, 1 Aug 2019 23:50:40 +0800 Subject: [PATCH] ... --- .babelrc | 7 + .../lib/theme-chalk/element-icons.ttf | Bin 0 -> 55956 bytes .../lib/theme-chalk/element-icons.woff | Bin 0 -> 28200 bytes .../files/ubuntu-mono-latin-400.woff | Bin 0 -> 32176 bytes .../files/ubuntu-mono-latin-400.woff2 | Bin 0 -> 27264 bytes .../files/ubuntu-mono-latin-400italic.woff | Bin 0 -> 31496 bytes .../files/ubuntu-mono-latin-400italic.woff2 | Bin 0 -> 26596 bytes .../files/ubuntu-mono-latin-700.woff | Bin 0 -> 30368 bytes .../files/ubuntu-mono-latin-700.woff2 | Bin 0 -> 25688 bytes .../files/ubuntu-mono-latin-700italic.woff | Bin 0 -> 32312 bytes .../files/ubuntu-mono-latin-700italic.woff2 | Bin 0 -> 27916 bytes public/0.17b8d08b9d259577cf6a.js | 859 + public/1.8f721a069933f04e92d7.js | 336 + public/10.1163691f38c6de464081.js | 932 + public/11.80e35f84831e7eccba12.js | 814 + public/12.ffa155942fd31d411257.js | 751 + public/13.c7f122518fa549773d41.js | 551 + public/14.644007cb2e6d0ab3b33b.js | 259 + public/15.556bc6b46922981b0249.js | 2621 + public/16.f9216c5dee8b80d554c2.js | 19645 +++ public/17.731bae53e208787b7c5c.js | 4264 + public/18.f574057c6b5260a9673e.js | 1654 + public/19.43fecf1df635cbbb1bfb.js | 1784 + public/2.2d07d32ec258ea6d7149.js | 746 + public/20.2812c7c913933bde3112.js | 1596 + public/21.8531ae436fafa7e82e41.js | 1413 + public/22.6ca5b4d120f1520ae9e5.js | 1137 + public/23.a3858c5cbcfe44ead61d.js | 1612 + public/24.59458ba0db37c080c078.js | 1044 + public/25.d87a38ad5bca1c24d4e3.js | 1251 + public/26.b8030d901505289d5697.js | 858 + public/27.01037232ebbfbdd37446.js | 857 + public/28.e38d3c3987dee7e489b5.js | 886 + public/29.b6d8eb97f89feb4e8b29.js | 668 + public/3.8278b66d6119ccf10c85.js | 692 + public/30.5d6fd97603c0f7b9f9cd.js | 625 + public/31.8b52d6035df314a177ad.js | 917 + public/32.bbf23d1419157ca40683.js | 471 + public/33.9520bc675d0bb780c44c.js | 426 + public/34.c36a6175297d0182cf45.js | 572 + public/35.483e497d4563c1a5d184.js | 145 + public/36.a16ce06c2846dd84f6b3.js | 288 + public/37.71b575d6ef77dea8533c.js | 303 + public/38.860cbe75296d6bf490b9.js | 343 + public/39.09e96dce1f3b81bcb26a.js | 306 + public/4.e3c896f652480a50d859.js | 17901 +++ public/40.387fb1af0c4a6709b3b7.js | 520 + public/41.e1e8348fe350428a6bb6.js | 868 + public/42.fb5ee8da1ec8dbf2eb7e.js | 475 + public/43.236d9ab5ea10709ff58d.js | 493 + public/44.0949f85f0334e199a5fc.js | 266 + public/45.a23b88442505bd16e267.js | 538 + public/46.ab9e62b361d11e209520.js | 198 + public/47.43f46ba0454a34ecb1fd.js | 198 + public/48.eb6f74074f334d617ca0.js | 198 + public/49.be8852092f4307afeda2.js | 4448 + public/5.57f8b204899f33e576bc.js | 1125 + public/50.57e40a8c5958b6cda05c.js | 14 + public/6.35917f0976268a6b37e2.js | 745 + public/7.bf8e0ede849a0540261a.js | 2929 + public/8.4433219944444d74618d.js | 507 + public/9.df5312821ad5a8980d09.js | 1238 + public/css/app.css | 20580 +++ .../lib/theme-chalk/element-icons.ttf | Bin 0 -> 55956 bytes .../lib/theme-chalk/element-icons.woff | Bin 0 -> 28200 bytes .../files/ubuntu-mono-latin-400.woff | Bin 0 -> 32176 bytes .../files/ubuntu-mono-latin-400.woff2 | Bin 0 -> 27264 bytes .../files/ubuntu-mono-latin-400italic.woff | Bin 0 -> 31496 bytes .../files/ubuntu-mono-latin-400italic.woff2 | Bin 0 -> 26596 bytes .../files/ubuntu-mono-latin-700.woff | Bin 0 -> 30368 bytes .../files/ubuntu-mono-latin-700.woff2 | Bin 0 -> 25688 bytes .../files/ubuntu-mono-latin-700italic.woff | Bin 0 -> 32312 bytes .../files/ubuntu-mono-latin-700italic.woff2 | Bin 0 -> 27916 bytes public/js/app.js | 110495 +++++++++++++++ yarn.lock | 8604 ++ 75 files changed, 223973 insertions(+) create mode 100644 .babelrc create mode 100644 fonts/vendor/element-ui/lib/theme-chalk/element-icons.ttf create mode 100644 fonts/vendor/element-ui/lib/theme-chalk/element-icons.woff create mode 100644 fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff create mode 100644 fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff2 create mode 100644 fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff create mode 100644 fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff2 create mode 100644 fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff create mode 100644 fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff2 create mode 100644 fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff create mode 100644 fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff2 create mode 100644 public/0.17b8d08b9d259577cf6a.js create mode 100644 public/1.8f721a069933f04e92d7.js create mode 100644 public/10.1163691f38c6de464081.js create mode 100644 public/11.80e35f84831e7eccba12.js create mode 100644 public/12.ffa155942fd31d411257.js create mode 100644 public/13.c7f122518fa549773d41.js create mode 100644 public/14.644007cb2e6d0ab3b33b.js create mode 100644 public/15.556bc6b46922981b0249.js create mode 100644 public/16.f9216c5dee8b80d554c2.js create mode 100644 public/17.731bae53e208787b7c5c.js create mode 100644 public/18.f574057c6b5260a9673e.js create mode 100644 public/19.43fecf1df635cbbb1bfb.js create mode 100644 public/2.2d07d32ec258ea6d7149.js create mode 100644 public/20.2812c7c913933bde3112.js create mode 100644 public/21.8531ae436fafa7e82e41.js create mode 100644 public/22.6ca5b4d120f1520ae9e5.js create mode 100644 public/23.a3858c5cbcfe44ead61d.js create mode 100644 public/24.59458ba0db37c080c078.js create mode 100644 public/25.d87a38ad5bca1c24d4e3.js create mode 100644 public/26.b8030d901505289d5697.js create mode 100644 public/27.01037232ebbfbdd37446.js create mode 100644 public/28.e38d3c3987dee7e489b5.js create mode 100644 public/29.b6d8eb97f89feb4e8b29.js create mode 100644 public/3.8278b66d6119ccf10c85.js create mode 100644 public/30.5d6fd97603c0f7b9f9cd.js create mode 100644 public/31.8b52d6035df314a177ad.js create mode 100644 public/32.bbf23d1419157ca40683.js create mode 100644 public/33.9520bc675d0bb780c44c.js create mode 100644 public/34.c36a6175297d0182cf45.js create mode 100644 public/35.483e497d4563c1a5d184.js create mode 100644 public/36.a16ce06c2846dd84f6b3.js create mode 100644 public/37.71b575d6ef77dea8533c.js create mode 100644 public/38.860cbe75296d6bf490b9.js create mode 100644 public/39.09e96dce1f3b81bcb26a.js create mode 100644 public/4.e3c896f652480a50d859.js create mode 100644 public/40.387fb1af0c4a6709b3b7.js create mode 100644 public/41.e1e8348fe350428a6bb6.js create mode 100644 public/42.fb5ee8da1ec8dbf2eb7e.js create mode 100644 public/43.236d9ab5ea10709ff58d.js create mode 100644 public/44.0949f85f0334e199a5fc.js create mode 100644 public/45.a23b88442505bd16e267.js create mode 100644 public/46.ab9e62b361d11e209520.js create mode 100644 public/47.43f46ba0454a34ecb1fd.js create mode 100644 public/48.eb6f74074f334d617ca0.js create mode 100644 public/49.be8852092f4307afeda2.js create mode 100644 public/5.57f8b204899f33e576bc.js create mode 100644 public/50.57e40a8c5958b6cda05c.js create mode 100644 public/6.35917f0976268a6b37e2.js create mode 100644 public/7.bf8e0ede849a0540261a.js create mode 100644 public/8.4433219944444d74618d.js create mode 100644 public/9.df5312821ad5a8980d09.js create mode 100644 public/css/app.css create mode 100644 public/fonts/vendor/element-ui/lib/theme-chalk/element-icons.ttf create mode 100644 public/fonts/vendor/element-ui/lib/theme-chalk/element-icons.woff create mode 100644 public/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff create mode 100644 public/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff2 create mode 100644 public/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff create mode 100644 public/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff2 create mode 100644 public/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff create mode 100644 public/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff2 create mode 100644 public/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff create mode 100644 public/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff2 create mode 100644 public/js/app.js create mode 100644 yarn.lock diff --git a/.babelrc b/.babelrc new file mode 100644 index 00000000..27485f9d --- /dev/null +++ b/.babelrc @@ -0,0 +1,7 @@ +{ + + "presets": [ + "@babel/preset-env" + ], + "plugins": ["@babel/plugin-syntax-dynamic-import"] +} \ No newline at end of file diff --git a/fonts/vendor/element-ui/lib/theme-chalk/element-icons.ttf b/fonts/vendor/element-ui/lib/theme-chalk/element-icons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..91b74de36778b0ff8958d37d07ce70fb3b26f50b GIT binary patch literal 55956 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
%#5t+7yTm^Z{)9pPFdh-)p? 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 literal 0 HcmV?d00001 diff --git a/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff2 b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..674546e133e9bc964c0e697feff270b4780ad1be GIT binary patch literal 27264 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 literal 0 HcmV?d00001 diff --git a/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..f34c21469e7f8be8272e578cdded3f4752a33135 GIT binary patch literal 31496 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 literal 0 HcmV?d00001 diff --git a/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff2 b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b3723c0ff95ce95054d225c958445e0d6bad28c9 GIT binary patch literal 26596 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 GNk^C3LY~Y3 literal 0 HcmV?d00001 diff --git a/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff2 b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2c3f8e763f1f37ab3cfb02e999de3d8626e96dea GIT binary patch literal 25688 zcmV)0K+eB+Pew8T0RR910AyGI5C8xG0K-540Au(70RR9100000000000000000000 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 P_x=FFJ^2QLB!!55Anw1| literal 0 HcmV?d00001 diff --git a/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..6ef568bf832add4fdde6ee6e672d992bee89a020 GIT binary patch literal 32312 zcmYgWV~{94(_P!PZJT#}7k6#jwr$(CZQHhO+xzYF{`yjNYNpThNivzrB-I_4f1;uQ zfB?V6n*#v;zw2n~ul+yfKkNS&F$JYR004lh002O`005x5Vw{o4{}kw%004knfBk-W z09_N1_cjA7JzD?(5QJa5>KCt10w@Ru&W;4XT<@=*{1>kR*@BeDwkB4;^_>3d-2ni= zh@HEH2Tk-GezlN>zdDHj@bd!zY+~tV{L5Ja09eif08~a2O`t-V8tMJ|IP?7au>FT8 zK74A^U-Fl8{I!XGK?24L;%sW===#g0{wG)rN*6cWi!}2m#$dm*5M;6^)1c+n>L2Q92|LeQsZ!=+jepNvs?i|#hK`!@NF)~ z4$EUd=?%{FJg6|k^OCPf8-8x#m%>-3e3_V{?RFK_vh8*g5W{EmJw8FCt|-Vynxiwt zII?&<3eEb%U6+2E7vf*4El&0N715}S{Picrma#ch;~+(me(H7X@na<7BmLAUR*o#K zsMm9%s%6VMBun`;Uy`olJUGMJI(rV3!(bMcXO;)|fl83xIB zwfEreBAvXO)0OlkVDi1BKuO~V)c9S_RzERY=$d|9o?vow*$Q{oa`s_(bJ-GOCkxdD z_2uSgC)D{1l=(7Zb4gr(-SWgm@=B)LL3RFsMr>^cpVBiD7> zp*mOr0f6AS86OB5!6IXTF;Xr@Kchu`@UHK6jUhCuuuT6I9x2DM1m8|&-H&J)E^FDe zBQm8tS3fX}H(2NTMFhMyhK2O(0)JeAG#ptyZSqe9MAvnr2tpV^ISkR6F3b2SU1sKw zEdpf9aI)1Fd>XEjhb$6zRkKSRD0 z(3w zT#YWr)jJ;70kpR&-a8)MQ?82ayfbg8{P!jO=sBfy2k3!~VKC?PCIjibifzm}xM+SS zoa=g16tg3#EP}vIMo)9PQQMc=MzhsMb61@eYu!aDf8F?Foer63PMZmhgl^@gk$Q{2 zm24HWh?HO#uLU6MT1$enOc3ll__M>X+SZ?R+ z7=)5y0cXh@9X3td=K)~LA>HGr2$8g3njV@&y<&ot|JNvT!+PaOQ`uaY$8e6x>;3?% z_kBQAr2#bdl-AoAX7pWe_AXEeu7fM_b+a)0^Ek)wMGG#DgJmp>+Z0_^XP#Z=w{yIH zahioOkH?f^bQ=D>@OG-oF=CZyFB`CjT1loZs>f>i#z|}G8gsW@c7f&bB*0H1eCsZK zgcT6A+Hop*mayzJ=SMs@j&f&G(fA*<^Cuykdh&LFh!m}--*K|9je&rLgoA>)eR+7g zd%l0Pb#ZXAbGCP^ZE0w#Yp!o(U}s)hSy-BrRZx;sj!!{AMAt-0ZA$wMJr!9>WeeA~z2=EniEZIqXJ6^Y$T+Tol&L3Ar@};E3$K4h z{aPyIl`_3~OX1>o`%5c@!Wx(HgilK!`)D#CR=We5F=C^$5?3i)4*Sz#o9D4_FEvT8 z-?v?QzKtF{J#ld%9?6+E;g@|vFxAsIpKy6RopAT`cG|pu9ytNCUi0n^i9nJ^~c9EIU3^B9$BBdwLGXLpxmy%Qg-zNq=G$tOL^@UMoZErxj;|C;T#qsR6ti9`7Fw+>@T{sz;#? z*bHYbcRu|`flNn|M}9&wFtIHzl=_*D(Ad1QeMy2mO2+t64wo zARByq3`v-nKM&7%kxG|H2FKMbnlsM#>>m7y>(U-}Ct4fr20x%5Z^i%iQ~-d#`xqeC z^-K?NPwbJTmr2VZpjE9)I%o7Qc7F;Gao<8=q6aia9`Y%%%D&G%2 zz{0Yygr6pd6`_JaP)(aSc97zSj1!@zm*XZix=%&ax91hhUXVI)+pM3*>*GrIOBU); zoqOw`!n5GYJyAcQnSZoV1c9q4LSkRgU0Xh;vRynvM_kAdj;QZbr4Bu$a#C{Z>MX9% zcgrVKW|lplj9g!o>Lww|i{R^5&EWFP>ZjWhpQo zC&Kk#-2xeogBWh$dH20Qgxlo{zChHd&Z!>*_^4%o`ynmnNvm!44xmcXnmwSHJ0ntV z(bBHniy0;&Ix~1UjafrNfc)a>qWs3+tzv25_E`lr2vLOaZL+jsbZf}>B81hFGvr@N zg?VW^Nd1(Y9bCf)HqEw4$^Hml)Vd9m7;8e0U?g9z+%-l&Eew16mq3!0d^rQuy+-;) zwbHc{BXWCg*O=A+L*zsX9V$F^^D{yW5d5NFDP1>XZuZ80-|04orES@u>hxMhxLnDu zDx+W0_Wzohw>j-QvG7`I-mZjpdPkF==3a8#p5p4HHRa>3XQ^kXXK5eXmg6(e!Pdgs z0u^IhcR13x`amCte#PGgjVW@F?16!Qbv?uBFRg#i7$n0N0yg!i=%q#R5B@1N3ihAc zo}c^MmaHm!-W2Reloh=^7q)$0@n;S>xa^Nlvc=;Sb~%kf>~oTlX>!@-^a%BY*OIYS zBFtloMD?U>fw})-u^Hr=CDqsm>_Rw`cK~`W_?l(4S^AFw3R3V&Wa*mvq(w4W#q*W3 zx#|UUs<5`KE+tUZFny7;sB32sPC;471 zG~2K+=+w~ZHj(AymmYFYcNnqsrXiF;_3DWJs}-h;*SxR5ofdoX zJ8FNbdF8!&FLU$K-A11!Uh6*-CKZpZ3-Jm$QHM}?3eku6c#_!`$@&|^;j=O=;UnBT zfq6}bYVMKVLK-0NbXDFlu7VGwjeu4nC)uLF6*@lS5y$a4nqTe~7;MAS$D2qSJxyb& zK=EnvV}`3%2`T+`_eHp5PJf0ox6_k9GH#P>J}uKPxNjcXd2@S?>Wr*P^yXH~;urBAaQ8G`70<)~Js(i+p zOMoY}AHlZI*aM|(X^peU^XcTHxp*Xrdr9gkOk}L9?qy2}2S{sOHvr2ec|7R~wjdeF zeUf_^Y;LWi!&_Z5(s1IkGB=6q=V~?zci_=jUBSn|rYF4%q`K)aU_XNwFWA%Id2#aK zJ%XNhDQgzxEexmJIUs0lQ7qrLlZFKt(46cc49c5xSr8_I{mZ@yo;-2057uQSCfBID6(fg7k#-;fW4Y8%L!w~okT_nZ7R84*a%%++%&Hr5Bw4JGr zeTOlN+GZ8a=5TU&Pt17qEW3k_uU7B*d+u!Zv0BIrobR^y0W?s~&I$heQQGB}SPM}L z-KIT&6)GiIK%l^1Dv+p4(CGCY7R|czyYI!N+6U4rO%-8D!?ZnVl|yry5asgUp?_xX zNLSx(@!ekuW`FEgZyP#{9{l`eW_tdY`-k%gm1^xiK8B1F-J0U=&rOH*S@9udy^;jf zAWh`N6e)kq!*ql)n$uT-t++_4B_zXmsXjeP-_zg{%or8KN1=8Eh#*oMsw_t_X2gFi zSaBQ@hc|m#*2>|71=-?U=Mu#V+AbWH18?cMqj;Wu2~wg(y~nl2{^&opbV%CZ_YjhI*FcaaKx5oZ) z8^loa0jZ=t!pO5tSf?LJSeBY)D=Rc2H^wOG5^&${dxm=}z%mgbe6M{5_@4y*r?=<0 zu7JE@j=hw4Z;XhTTz{@t9JsJFf+c$q{~WCFH`Vj8 zu=D$ZCwmtJ`jiDql9JXBT8`3E4)Btjvl?c{cHSX}3T+`AiI-~^Wn4YmW9M@?2O4+e zg&LU`SdynU>{?D?`*U`CjClWRZ8W>l^{!mGwhW?PtGy0498h}4%z{s?2Ta~efsN4Q zsbhC}T-{5PFXda>SZjX{5_Xu_wCtRfVriM4pLqdyV%BRHntk7bC_wx3defVssA#Q* zfotc{nLbX*hvpC&$TMOXGbm5+7HK@E`{AkOb!K#{E&jw6n1Q1zkW~g9cHDC*v5gcN zC@LCKMVvyvMqSeqb8w)%+;j*<-Z0#RkIOG})$EHfCs;zs^37r|6dx79N7{p>8Q&(= zUr|iTKSHo{z+3FPABPNCF42l@+Tif9-f+HTBA6lMrKC96L}51x2LjjuC?|?3mO`LX z;CC|~^PD<%ynK0UjL&wNwBT9JxTJtHW`5`B?!mU>6Rg>I|24N=MI0sTEp+(W+dmj= zS{W~iohM9FUlW^$B-RI|NnnSH>y7pF=eWFMPP3OSIdxSYGf!ipRdd3S_qrQ6O#w4r zBAWsvCJ(4|{`brHJy4Ku=A%a~v$0YK5}J4|I$ zvX#61c4uwt{JG-#F?}Q^*<+w;qvh#}`Z3VtVNZP-3!4VyT$B=>qR79>wX!5@#_}Ax zRKh_s{lAI7SxaM9W+^uhxc*?*2 zJW;}?Eb9p25lpp&VRY#9LQK!65R8|IekY$aK9d24TSxJZ%K2(o?a;)ayd&pISYZST zeH96{=Z*jo7}^Z3PFZKd1t3wqujt@672dl+UkA^w=h=tjE0ed^#N_3#6JPMryC2GU z-0#aRc$2tYUS$GeiuYW`w=)lMQV%uS1|ILZwv9*#eT!g(FwqS^! zI%0$ncN>htGz!y%TOSMeUhp0puY5Mc`Ul+b{R=sHQ?Ck`S`l^z3n8QHMTaB=#kJL? z#ck2pR|p%qX~j5Wzb*U{8FOTHc?8GzYIQF?Ar$IqU=eWcF?n`19^cnrnme4YfI&uN z0rom2Es=v+n$@L7(zzdgZ}aSKHC%c~GsvVcM?}MgZdgK2Ux|yMTAn+Xbo{#lIm7|! zU2BZPbQX+`C2?5qN%@lgO=;`5>{bK=+iz_D#bR(Z~FH+pvGt#yYk3N`Q{s=s&q+57CGz3Q(b(-)RMQe*^EL0&9P6iG)Q z?A&iUO0jjHM_dnKyoaQ;cCa4}so2uQX#PU4Q&yG(ns&jk8a6F;UkGMK;+8hZ_a@+TN@KT^x(OF)K8e2h#VzUtz`;Au{3|QMTPO%0V zzf%fa_FI7E&S5FyC?!NyqQbK|!x;~c6H;#KNGa-Lzrc>Lv&XkC=R_Gv*U=x%h1jC`!Z5m`DaAMT{&dj$4%2(rq6= z!v^m|t`8ia$3O;p%sOC3wajx(Tq&Ga)9{QI`+`2w?rFFom`InzQxa&4akta19q^N^i8~2 zTYOtMQdIJIUp!Z5fA1@|3Q^p^_*dFwg!^VI{0@<`qb-lx)M;t#wkKSNNbOJv0(#bZ z2(_?z)73&YVH7U1@@hz*KNB*w(4*LXA5hzwVyy+ z7h}@lMC~3ekTi67Mcc0$_;aAyAO^+FkY*Z*Y2+@UI;ls!s-_bizWe2x`=;xu1yPXH zF^TytWi0S1teGjQk6>I08ULTn8OlX0si*~;Oqit=-ttwB>Xe3z}( zu#VbSbAnnQxPa({djY0LN=Y)`!1Hrjmvj-$4qNDM-|2<_ZJpb$*Q}khH5-DFsPV;D zH^zw~%()oz%p1jmamW^@HO@60>^{w2hOb9>j-I=83CX1J;as+A#Yf^b{9zYY_w zjSHhu=FZatVivo)l)kI_wf!RpbOz+w&p0|C)F5s_ERBxmq8L{66*6|BYQWB?0A(EY zDV%5d3zc)El4D6 z*OEp$qva1BVf+^IOo+8ZpATsvi<1hjz|Y12p%|4r+~&RkbCH`+M<+rAsaXZ48#ZZ4Wye z%MSa)M9MJ_gHNl{9sEsC1^;5ktkjH^IRqj~K;3PhDg{Njv3i#@c0@CjH+xZkCL}e) z)H>h*90=Ogho$}q%8eAkB!Thpb3o%$b>pIgwo0dt7g~!|sICZsM22xyfd-T#NJU12 zBi6!X41fw#W0!fjC|9K!|Ma!{RNm|KqK1dqzT`>DZ7{Hl@>O@1kas4k<@@zwOSx-AfrF$Gt0x z3UEx=2#@B%-+0n)w|Md%@K(;gYpuC%jC+^OZI@uiLI(M^KW-u%@XQ^Guy$hW(3u-f7mSAPm)Ai?M1CaT+;nzMI{YYXvR68>FY*y zSYS7bLI?@n9CSd?f1jmZ z@RE0S_>#53?uxt-nb=5Z-lqTLZkDqR*}l6fMA7~5VG%i9%5NA_8);13(UbxkUH*``R$dm&Camc#{BN|9LbnWV3Dl!($v@a5`i$#&-b{{Kh5??&e}Nqxr%$OjoP`I#^@u~&XExC%~xkc z{D!;EDD*z#B8iVZF+Q1@0QYO;T7*oo)ffgY0|SV_W}OlD z-q~8TT~EB>foZj2saF(Hep=ePe)*k`?1_p<3%N1&$gvHKd z{`F=~#2BU|y2WuDQ8OTMdcMa-3ya|PTGpXTk+L7>Z}U>YBHwPaKjMAeQSN5`evhKA zTYKrb(V{)i*h($TZK%SFNd@HXms7fy2NstLHhmGUi8K!B#zE~`QYE`VG@*i%I0v(58bi9x(dym+G-=JdWqzVQltt35%z_W)(sycDeg2g5Y3O5 ztiFW-T6_U-M2EqmrW>e`T$_XHcdDn`I67ZO)xJG@3&^&0^W3?e4#*Zad*~L`Be4l& z3X(G&8{$UehS^*{X{wRh^0r}J$!!1nL%JeNV1kxTWGI9hG&{L43ZNMeZj}azle$j? z2#oFB!@WBkjT}TSWhoEVeA>gMcOa!$q46BnoPu3u-F_fDS%(=Xd(IWFLWrUn4 z9QrD_0yz6VrhK75;~n{B^xUF$4DvyhJXrkchR)x2B)6S4HtEhAymA0e{Crq1XbEm- zi?v!UWj|aY2;oozTIXJZv|em*Yu^DZ;pvo7&$Q@Sif!C$UiLBDN zdUg^ml#M~&3WG|3)@rGaY*!>#&3Z?1!l^if9o?QAl4Sf79zmcTNea_XU#jEg`cc+K z>b#}+y&ky8wK4g*=UwTo&i)TptbW_QcM89?1>#0*XP+Z&*GnQv#b;G{+NDIXA!oXc zVRX)YX}fKxiV=GM>7I2qqHGgte`uceWGrMda``7__AL>yy&)DN2uhQJT8&(Jowx%v zn*8r7JO=pjl|rxOjUS}8;w{XP-jhkeczswCr`)c)Tg3+xw>G1P6&eM(fR9Gz`htSY z6e@5?M`CXdO7A?ry(M5Vw>rB>32@FN)9L7oJb=k;eNiox0_TAo1$tAR z_6K*T=e|_wRwSYK@#xkZZ&E}? zu{QVO&*=qTrM2h2S5H@#IY|ft=l)?+hq{vu9?xe!x&fl`3O9-6*y{6G=)*mLS5w%) zZ`_8)x7eSXLYTR)onVuHfvNLcnNT+Z5C0^IQ;-}9QFw9eRnct-JrC-SC4BcJyNXL>muZ?ibb^&_T_O`GMPe0A{}&+n|(@9ZQ3XQBLl zol_F3Kt#b%9H-m4qvdJj`3e&I4%-|7MZ`+u`CiHbYlMZ~nw7f?kj^P!Gq+J8jF?@K zavgTh_%Zc#vsfB)0)JI4R2HpSP-SGVd=4CIfq2J)dsV#)o z3%Y!2*+Ewr?VT8wN$_H65mOHVi06$PGMNj%FTX0!Jp0S5;@xa_o9x&AZpxhuPOg_5 z4xv5LyMFFgRicorKjE{*KDAHjVwKfsl2t zpNAc>Y`*R%TE%t-aqwD9z@+)}o#6u@{=ozTCcKn83AhyC6o?OL;{ZG*^;v zKCQ(>GyJ_0kvTmB8+n}$g)nId8A1R8N(or}EeA<34`6EYsMX{lg#&(=U9r&Gv&lN4 zBZCKC@SE1oD~x_q{Kc2y+-~w*ck2E-kdD-u+Mn_G9XjvlN;ik@4F5}QK-*j?r4@MWuJL&ITKo%${rvebf2jM?L!NoANIqwhv%jFs zRl+7rzRc7=M-YKi@Hk{Q#rKnXe}Hmb@QgI52x(#%2I_!@0}t|6wSG=|DmidIs8w*T zV@3NiV;3$+Y>nR!uJE&Zo6ga7Fb7evYPx~!z4f2mPBY#agGEkhL6UwN{3$<+3<&o5 zA*(I1_<|VTslExnCGSx(%{+mKgN-2EX;B_79+d^8^d(34_H7dR#IxIL-vEwwReFRv zUmwK9j2i2b*vwEcneG~W{aVz;hYXaA2(6W9^_2>TYO!gt`qz7BKOgi>yZ{LLiU*|G zGx!OK11~JtX+jaUP@y=pf8;o*k&|iLtz66*Zd~3jPhTzFM#`dsw1(u8ojR^bcxLns z_GNp?!M*T}#Pb=GAjx3w;5N6}?X0^C-<6vZ(aeHbmWewsNv{_Nm3xAEB>AEhQG~Do zq=EiM0H|j|AM^tK9VFT5l#C2PH);vg8dW{a^p13ru3Q!bDvgS8jY=|wf}{77cEH6C z?Ac)Us88b0{E7+*{zP@~v_8T-6*FcqDI_u%9Oe|`OY2mwbIm(dYW^I#+#jmY$nZpmFgF$*>S=7}$1rp%9+|=c@ar)q-Ay za$k@G-Cq$91%<|#)b;DXX0iHv^cLPbIf7RCH>ZBKOjD7%HL`Gs2t)WU1SG`c>R7v$ zBG9OLn`Hbq&4OulOUPn+mg>~;zm4IPWes6q7^9D}s62tEyd0+J0`_ze)}#h*_n?{A ztnsauu)v;BB8q<|SZq}$LNl5HRJNnge%XUS>bIy!qsUq;TL(DDXuOL&>jo2B67V9! zS=THpqPt+qDg8rasbV9t*-wFg$3B&FOmE8IuP$30m`ljWUzVS@!4Ha}r&5{*6VwN7 zKL(pe@XvPSak?!`tn>@Ji&kDw>LgeZp40))pXh6@NjJtuWc`?=+H4skpdQ-u-(R!) zuQO3}V04{Y$Rr{n_fw@;9JSrrM6cEub75v`sO1%|bGIFLuhMxT6TSP3z3pupjRD3P zCtG(Wq;Q~d_IQS1H6HF@`|{)NE$VXn9D0yn1#V~KH=O*D4XKOwvPOi2m`SznY1#nh zOAPW37U3DiuR=nRM7m6$%>o5iKxdsQTU6vuyIOq}3amCtYI|ztz0QX{eW|v2wACy{ zJ5alCK(I^3g@UUnk^+>#!pMK|X&uk0 zM_{x)Bq>jZy>{VpdVvY}fUV%-wpg}Yj70|RJYGAoKwK{y9XP$Yl3#`d4#UyThyy;{lSx~I~W zVIX28#5xwG0PIg8B${49P|TZYzo8i~m6%HDaM`#BHYlr>iJ@BBi;_|$7|Ud^fHjT^pG%rmTGwOGS;jX_}*=dlW|GaMJM63!kHK#WEG&=ltzj zJSQ6~DrBR2zoo*axAPlu7A z^MkI*>IJN0@@baVDZsvKfn3q=au6M@0sm9RY=IRo4dVh)B( zAr4<|nUe>f)3zjNM!e9cY>s%0rx&0+O1+|h=v-F4h1>yv?2K`7eH8)#_tFvfW0xdoR zk4{2`=Slu6Ac*t;nF2lQJ!7y<$LMPWT&ai61v_IHF!A-)3F`&JHOBwS)_@@GgyueV zZ231*9$oRC@l;`zZa&4JO99-ig#xJyGDyA`s3%8E zo0Vm8rg)=(DrR^@rn2b9#{?duI*RyZ??6NK9;&~H&=Q{i;OZrYUOq$7sofAQUo7}J zM`3Yi{T^7GU25#*Fg@>O2U@Mt>iub!EhV02GAhFr&beAQT3NaEIsIDGT~Kdz z6g#Ru-%Y0AqX_kHz4!iv+@cSIDCn-1UOrQw2U1l>vp0>e7STnk_tNjzt#}u3?bE2) zH}7Gu$d5qVH|2L#goH=A~`*SVyo*rj~%R^!*X8==0JUF-RA z^|a*|-;_rJDix$q;AhIX-*mwp0#$I7T45=L3vofWcHtypOoE-cUEvnpY9xB^rlnnT zdA~a6$-$%wC0XB(YX@#d(v4l)Eecn_;QmUvF^mM;02P%!J7$+YDjZrA$b_)~LM$ib zfLBJjM`IMhne77FuQ$j9BlEsLrmL3^1t%arBkT{aijo8wJ!x1dXt5CaQpZ&k{8#5sAuBwB}I z+x8O~kkj0Ct7W2>yaF=o*=jj$tUGYt)MnzJqWV4rIM8=tIULq%>Wc~Jx+HLH#%}gW zf>act)Nm{a4x_w%hX=Yc5J-k4xK~*C15@a>20{ED*OMX}6>coQ0&OMhR$10&l4Ouz{ty>r~u#lxN#4;B|T|NsN|y zx;3wHbSI57(^>9+9Llh2#UIn#L+8C(3Td!kz;)XS==f=>p7mKdtE-VP+YJTnCM(tR z20J_gA2fu*^|L0pStY0%vdkQVR$SXv22u8F-e#orq8YL)Qc)uTzt{Czy|Ep z?zR3bN+CQKFPQCtta5ss_%-)<*$K<-9oZq5`WCLu5$#JxztP(XVKxVytVlR;ys_(@ z*m7+6Qp%&bl`dDfp2z4%&0;%m%g@Q-?5jE#udAIisXLKW2P1)J3irdZA%^0!y8{BI zNdzaVdko8)2Yqdj0nQ=4n!~wPg!E-wy1=Gbw0q$bxy{TSNZS$Qh`-ul&}r#pY4Ppi z&>~Q@ypCfMQ)hn2mnj`T-scRJLXBXjJd}*$cLv~o>>Z*ITf}L)R=OOB80(z{OzD$l zdJgU8CxIah5E@3w-VCbcjT~=5Q(rJ=fE8@ z-t(c^6DflZQ6gQ_6f}8clMjfhBRC+<{ub0mXFBQ~A{}m(4_=|YT04Rb34sfIY{>!C zmGwSdNRf3LTecgiJVW~>jeO>frCHt0fZXD~*4r2wtL(jcdKz1EoiCDF2TZnMwhjQY zEQT+hyO_)~`t@woA5bg{)IHp_%5&)`cAcPJz5Bpqs=J@?yQ<^?a?Ly5Cd>k^I^_*e zuymMGEfq3?4cd3dLGs>sNMz_q_ha^bDRa-KJa+)WoWv+rcB|GprN|sz=`iMW+ z%DDmbYWXNekG4oOA2P!O(;~tb-`ua_5!<(_x)L!bvch#drvCKxF$T_k`Ko^FM+u6! z7({PQ)d~x-GnBSY7v63b^|W2emO>Dtc|Vc9Dg~V9ZTq;eA%pX-`hkSQ=YuQ>y?NGv zxy$-=itlEM#(mefyCC*DJ2RdLHkGSw$^IJ@f^h$gc5XmCbezKMD7 zl8LGfu5Z3bGxRtN{r%uBzIxCrzWlWilyaFF033!huODzJs%1FD9Y|1ZUe#t6MmQwA z&zI(`5{ISCdnEUJi40v1lXnw~KIQM5CmnhWbRE^^pQbNwX@&ZrKQ{F0@}A}*f?eu0 zS+uXvKJyVC&|RRE*<6SbBDRAg%;X>vHx3UB)S`$lLdJWc-pfyrnwd zW@LVPew>KJRe2+RP`a?HGYcv_jTkZ6?ypm`CkO|2ffTKr@Vz+Q-62&!a_mYrr@*_b zjr7UTBcF;CAUkZTe=gLyjO+R+E=Q`?Eq`#F-C*Gp;Ec?@&I~OG#-e`~5d$$$e4AE& z{OJhT>t(~o(f?9-4<|*NW7&A{go3{doFy}*zj8-ejX>Ry zbsde39RoXl^7-1o#@s5s8nqYM;|!motM=cf5=0lB-W^T*OxO6LE>r1RqiGKHdsTUz z;t-m|fgj}pt&bZsl{s>yi4TJ9bAY}Y0>vU0h(TkMX!<@j z6_vL*=3l7Jl$0clnHqDE50?}KW}!!+~D}M*j(nm zrag*iVJz$_scm#LwV;>eihyQ3zV*0$89Ry1S#NtyHFwvUu}l7Of~c=u|5Cu6Qa^rI z+L8YB@`+P-SBEV6YO{28y@7ChNU!@~CM;4Los9NxBaTeogUbow-n{J*yneE79kRcA z{{ef-fOTKHD-w6FCC@494($0xHZgxTG|sF*e#HCav-kC!yel@Jh~J?j+reXl(%cP8 zf@0Z8?LDyRWBxkpKI*DpF%^3enZMDE= z=Fzdy)qFy2@nM+*&9{Le)q#Rb-!I&1nzs1MA2_ zN3CtzMC0K(@<<@?FMp=LWsg8!T#2-OsHWWp)#h4BsXzWc4<*=!+L$}bEG=BWndz*# zthaTJ?##W+iX`OJF7ybefWOyAuta6a4fDM>zINHc()ZrAq)j2Ua&?sd- zy06C!S}^08AX*QRKiqNgbXXA+bgOd&Jxqe{R%A}gKGtQY2uy1b3cE~`9Oe6LQV4`2wi=rLo@4iQM1Yk`D(D+D=aU}DWF>2Kcl)Kj>Wi~o#rHcq`MF5W{6=^WPMw+TzS=Z_g17o#4>vltUlg=)!;sjwGE3lZ54#Y2R+irr1H}>%A*%9OXz&h+`O9oH_9YP)>ue7J5F9UNS;R zODZkGTH-E@JbD#%il$54OX&q|_Jn3HYbMoP)AqVk4^Uo)s;O6J?BT_MOj}T3t`LGU zk?4-+;G{BRxBsv;(dJCd91`OH32&ywK@nOhs6g!FdqbRaX3;X1BUTs;Mq^#h8nkzK zRP97CnYM%gKfN3~+%W6A%;t*kro*M5aIzy&P-Togt)z;c5OgYcT(;`uoRx^_vXCC| zIGCdA>lmOeA2J$p*En_o>Bo6GA_!F3tB^ypI#+hBK?fepC)+n3%tg3A($`3c-9(18 zXAgyV%SU{3gm<;R{laumY`MypJYz@z*N<71xkzpZ9LV=dCoR6HyOYImqj*Qif%p=0 z)U&Ckm=s|@%kw*P3hF<1m8=paQsz1jc*{zQYI9iDS>QW~%xiK|N<0Df)~Pfmj9kuF zutm8T6)<9%|4r6jT35AhT)4P(C6zm=a1az<|Ix%zihVq<*h$)c|9Y6=CS-TFdtJIg zsvsAOB0o2yie}PY2_r#XzCG6_0v}qQ0}{ZfL|3uauBMo1sZ8sN{2jBJ@PuOQmVg-C#A& zZ~r}O>m$AkEJ*TKodzjcgf30-7RKZ+6a^>n10!v&h`+w7uop`c~d1%~s_mQWvGO!mIHa z*^y@f>E#oM2xxV;u8!GMIcrgr1zWZko0&|j4H4^nnkdGW@N>~j-BxAFXdxU#+!e_& zhd*WG%D@7bP)in$FxX&iO7bEw)!&Q)zJnH-_Upp_WnS{WvRZ?^Ja9BTe_R&Hq*3&$ z3r*2u5382ed6gQ&l|ote(J*f>L)R~1#_}5Mv&Q0viZ&Yd&3Gr)blFr7$M&r=*;Wjb z0TI8#(wT_rQh~_7;I1ZSew-Qi`B%Jr;i2`dd-*-A`U(iNsx4IYnNgBih@1%c+f2%w zbEPC9QFFyga0}me%?Oe3R+i}OvEO;7UGC{|bVX2Sf2M19@rmj}V^olXgpDk?G!>&{ zXc6IZ$by*Kr}-G6!q&sg$|}i%|H`RxDM65ZYg0o0ZADyyt}j(AWBUY+J^=9!G#gM< ziQFmxx!#kX-&&VGwf-(1Vt{EVN-pnquAT|^*X2Q%KgdfZ72em0Il&4`m6*2WNr+7_ zC&-9JHYZ3JRk~yztjl5w-jTzNRL=A05tYy1DV)ov#6p3IPaq5v273a3Jt_?F7KrwF zK@GyW`B!8ruN|EV;u-$03a_ZISne;cyN_9vyAFjnK047)8Z8#aT$q%l>6XTejPTjo zV3)MR^q{eC`&hYUR)Mdea0f80M?HN75@&*Gbvv@8&2G`c>FKPe4=+98yvH6Mw>kj& zxZ7AMmVazzkuWn3r10mNFxiyY7qpL3>bhoyRW=<;@tIxu?TKhfw)oA0$+BGS5W_kNHO5{5k zuo8enMbP^M)5*jKN1MzuQTx ztsU$Y>_HMj$kpTRu*2OCJ~NOZ@zDyk+{m#&`Laq*GPGAgSoeiRAt3mK(#`mz7^@gC zPK`zt6>S)OptOc@KD}7}0OR}w;r!IoqN+O<-y#e?4 z{}h9N141k#UM_Gagw zARSqF9pAo<%EKXe0{#hq9f>GGqmasew-MVPN=gs={f721l91z0=($aM&r5k+?_b2v zNDmh@tuUNkKDVhGO{b$;CXK(YSj21Cwv@HYm#_O?BAJZGlgR}A%Q|V|xPdq%5=?NXE?}$?N8C5QuKN0pCc=-D#q|^C-j~q8F{+LN`jDtRH5m36Dh= z=C?nXKR^Fq^ufaUg$H-;gpWM%z|IFBq;|p=L4a3S#p--_G(|HQRX$7`vIDp;4Biw5 z6nrd^4=Z<>U}B4Gz%+n-_yG|_MIz*iCKJ)B5@lcq6xg`tDX8AzAGU0~7#bf0Za57}F#Uwr@@hR7}@bA(GL{j0k7#c3k<#JWAg(e@Je}jcOuQ z50{Lz8qphJMPFk^iiVsrRNZJSOPecoxR~sLbx~dwmjaULn++(unvKN=L;g}U+f0Q- z0RgD+Kk$Z=0n8yx8Dh~l_Z+o_!9+YLC z@VV}FklkoYHa7~3qB?4yhEd`9K+&w%1$8_huY`bX?XJG(+7VAcH%(j)+{p3&zm$_9Liux^Jk4rSKcu0tZbl$geKR2l-5Cr-)pe26 zA~{QtLrp8^bT%@N&w5IqIgzz$52FAC@z2+*IA+_pIsMlrg7 zS2SJR&mldbc=Q{6!Fzenql}&G050JlrbgY4$E)7}v_phY)WWMq1`6?jA?RX23AsL)E>5N(?hL4RGG4%TXdo$JdAg37^$bX7u2%huWZbmuwt{i@Q<+l;eZ&} zC>A0Mhc_dPJ`XZRM7l(jruvb8ESg1+Ng3{O!^j36kH}0vN=HlhfO0}F1;<_?7KH=+ z8CA8Cvfa+d+b6VEFSlE`JF9BN;dC~l7l#Y=t;>ru%W7Mfmu9G@?4kzzo3qX@XDC)Q zmyA7jEJ#k4totFCpYvg!t@}hrz6!rsT=x&#`7F$#(!|WGa{Kt|vpzq)mbHNU*M1kG zP^(kyeaBD=<)HI5WRSm@ATK)3=L={*CjsEV47Hn5~K zKTURHeSSg}Po>BPMxd987|EFvcn&j&!C!g!OfH-ISvsSpGYnH{7y10hKJabl_w(Q3 zIX-P^k>}Oe|BCQY5yURZk=jd=qn=jWO4dy0T-i*ptDdResdAzU>JMY$KM*Q0oDSpg z_d!fS>X0`sJmvb1>*p>`bfsNQ7u`gO!klo2zzGN36eyEgc=Nl%9R{K?Pm8#x=gD4t znyQ`O(^!7z57d!xh{W`(i--)bGNdW0EIUmIK{P#H*4nmNcq4Z~ddY(>or%G!_ zcem*o`JreV&BdubG{3vW674P}Q~yIU!H25^N{S>0unrn#q%-aOz&wBn?!F0TxHcn8 z7EEmsKn_nVG`GVq7CzoL*B6TiakWHn=>k$#N~)8YN-3lzrC^fB7tjfw>P`BFspg=n zXoAltg@z(=5*JD7GVc+*$i+~IH!}p8YL6KRtpQDP^rTGi={wc0e`xs1x- zN@_j-Xc-K5XO_9fhem%jCXT}m<9CcdHU6FP*T&uBKqld5421%%5zWEiFUkc&`-Nm? z%%@FmzYLa zzomM^QeZ?4>AWKOrI1<-1m$s~SyU666wNoa!hiq|EfsHpO0+$pPrCi!_WQLV>?SIl z54lGILRQn#A|DgumhKPm`;N-|6cKc~9<<3S{1o%jwkYzFI(Sc#_-KpoFC^QFv`5v$ z1;<7Eyn|mtV3!U{Zyh?uL%X#6W7KijQp7Phsn2D*>m5;;Tw=VKq&Q4(^WlDIDH4+u zizXB@d`q>ln2sD_h&}(vP2mEv7_Qbzltb^QxLWulM#3H3g!v>x;9`_m?xWn-qx@@x5E^z`#A?Vtp`(7=m%!f!rmTY(df`oCyaw$wDo~?AyGC8 zYIQoM3Q9kW(QH%}V=+;VQaqz)Vd$DrUXK;yp`muV8oXuUmCyD;8~r>&epF4Pm`ndk znt8I`C@6~V@17auOH@A>NE6MIhFx-D*{2|MdKA`0VObO^QHah2f1i>l(|M|1i0$yRgy2+^p>lTC8{mM~pY zoPAXb*htwnnnH0N$26uhdwf77FVx;7v9Ty)-pKHI}n6~6yTi+QkNr+?WuVFYu zOpZ#9Y&LD_fURN(;Y|Pnla6C4_aW1vyjTb_%FuBrccPL*xm`Mza*C_2q!Ekffy=%^RE$7}F$#^}R!0n9p7|MM;%FBfyqYNE~a%Ye7OzE8{ zYdy+6gwh%Bxq?MVv73z7?TnWYqn3k6rJ^Fbrn{yPfz)bLHVRNUwFv8qP%K8Qd_EG< zX82Gr=p*}ipN~k!avlbFkohc+`BJc(hx}S!B;wAlmk4^2+qamJ)@H$?1GXSIxlht! zK%hBK>{%xt-&xsM?y|j&cY7Ce^4Ug_$O@JVTlSuwoi(S&W1aEBWU8@#B(?Ax0x^q6 z)-_afkQY6<$r#*gBUyoW=NmqcF}CSDpJ6ChgUjI~JIOm@ST0Q84m$d_u=qA(dAG0$ zJW=OuG8`55-doOGwjIs9y_gS@$w!6bQ0_wkhjPAPG0OaLD0iZWLwRE9SjsUr&XzOI zvO{@xy~8MLODJnS%00+fTo>M5m>{Ga8k)n%TAX!2>(L6Vz%OZeM7R7C?iCKZd7szi z2QGm9(;n~)AP5t>AdmcBaAB|8$8v4|K+P8iu3u*^rBND88`WtH&Aa~I9VhR2XxW2j zp7O4H@4W8DReSet+`DJho;@_vYT(E#xQahYMpi&g^l(?IOBN}C<-??*?kkI?%vMcvleH0A z0{(&0Ok=qN*Ya9-$7St>AA5Z8^{IDVHUu5F8#yz(f^o~3!-0N>SItxsM+mPPj0cXT z+=o<$@hy92A|_qT;X}8zZfD zKh96vo9m(cWO$YD%nfRd6E9nBBnZG6Xwg=7)0Q%pAy%8tcL~nVW%z>ca|f4GkRLd5 z8_DyI<7deGUDGY*PK*>KseWS95B^o{AyU1y5>}4SESuUkJ}M?jQEk*au+0rr$Mqoj zUU*@iW!*B4qQmO}Av&3Xpim^=YBiJW*FUQAKe&!q(`^MK(>~? zIMM8Jqx1J)?$N(Y=vCsY!xxP-DLqcM=Bh)Km}4mC8Ir#fL@~4l-S3(TsXvwDWIQcwgFYN~o2E+bXOy}eEOnBj^z0=^k&GC&jNEc;G4n~HP^%a5W zOd)J0?9852(aMqTM5EUY=NwJ!d5fK-N*d{62|X?^XO)EDDS}9_Rhq}<`7{Tb1EiOs zIGoH-9464#ZjFR&#r+dVQ(Os-OBC``KE82cVzN-)mKkYp8&xJIJo!w38Moq5boox( zv2AJ8!~RMXnh`HeFJ)1li#=-6sBqSpx_4&>(`5b4>rEVjFjXmtu^bb7auF^qV; zs9%@0EE+N{j5SXbN0Ww;w?2as@pu7M?m}5r^=F~A&F}5ug&(#n$yv7QA{Z!Jh*%Fx zeR6zgOCsw-w$Z?JI{GIIA^U2KV6P1aQlAb(mS)wVq`LlgPCJY{CX@l9CI9fxk; ze>nO)mtl0-jj9aCTOIVRW`k3~)qz617qxC7D zrO77q6t3EFebB%Wo%I7$0YhJgKLrTV`>x@vWPUJXSc9*?(6hMK!6dL-s=%=s#=6!C_?lm>(PoWp#I)n?Ns zflhcu28m()lMYsihA4<)gWkoWNAlZ#(s7^xI~!0Wmoy_aO; zo5p`Ma09L6fIC-okPPUtOYilv2nR%XR)kN8z&d3yJiA&vS;V41$0hi@G(O&*uQIq< zf+j$=1G`y|^Rt`vkr}6-(CAsa&5~%z2TOlw2hd}6v041K5{@VUTkIV*(Az~|r@rBj z{zxF#%7`D8qpBLLjyDv(JiDW#*JI`Jx)8{%e0N*Y&30CLkH=+o*5((U2a?g;8W_qf zGbVSP)ba!e2HLTXIehV{9oXy7kI$M!LN@d)ty63Xe$$rpbg95B`XZC0W9jxebgPPa zMprlv-Om5E>Bh_NME6LKZqJ*JM(z|R+5TX74m|nZ%3;@2viqK4|NS@Y`(Bn!2Z^Rf zOd~DU_%qBY6ODJ%{AM*TWwV*hX_QPFn^RWiw)9Pgz-^0pL)&CKk;aad(=Eb_w6VX< zVrg0bXn)l|gQ5Cbe_4Mr@UG39du9JW-8(Ahci2_^iAczUclApCxz&-saC?tF&m+C( z+4F|;{O4px$pc~3oCB2Z?Yr%jlT{!u>*mBD3K6)NtvsycLFFxei0Al#p8&@M{i?hT zabDZ5VM>UhUQqNHvfjKSX3ViDF>gnP>8;$K!ycLmi~udbAK^=6g$$rfSMmfdcB7E{ zS`S=6v|->2X!=#M&$l;Tta^kMWWbkvN;IX;iMr_H@H5tMtrAT}%cV*bVGyt%UdJy} zy-TrXM5>njG~l`jKMPb-$>apxFKPGlN$$Rwa$o4{G?}KCyU6z6YX4&D?RO%-K3!D{ zhHN{KmoGYu@g=RHP`nVcy~T^JVL$=r8(BD1?yA^@ILx6dU08L|)G^NfGD2ud2X3!Q z=zF)jua_u(xC!l>u7aOm&3^A$;Nh@?rrSifJX0)@=y8!^z*-a_W&h<#m`*}+y9L($ z=}NOQSK%txs-W(d5TJoNC9J5#%TWrG=G$Tsjub&EW{Q}EQQX()pg%5t>q??2A5Xi% z?RJ(Qw)&8u9!YMb3hAwR```RwL_vX-wF=RXb7R6#Sq~ zS!N!3K`~;}dzn}L?^|WLtZY?29U8oFrJfwuH{(m6pPieV>Ymq}k9IOt0zLs=_*e2Y z8JgFslQo4*6-SvgNSM?s0H&!}n5~v1b3l2l>7I7q;O5*$GM7RL+D}s+u1L_5?}Vg* zCWs^jG6bQlhG-ZvDyy>y<&3A&iRlDRxP&_;kRA^Czvb)!Sq!mCrHn;(=`%goV)AYy zT2@CFDEBjnt_!p0w$darl zOBaRp5jCdEoIX0#BrsJh=j~bW!e8LaQ4AF+CI?SSPV#<|ddr!n`dHq0%#UJaGxH?( zG-b^)`gS@7F?amiA{qT+__OUq5=e=e6U-#<{@AZ!;(BRXEI03WE4C!`jAAC_cx5;d zt>x70?4_HYHj=6q&;z`TOOVX)KE0UAv~yu0RnIg}nJF*4W~x%m&1sQv0s;CR)i;b2 z&*`q_yJUViYLM*X0P_?~z#AoV_3eiz=jX1@wbI5XL{ydbRJ*FAZ? zF|&5Pg*fyj@W2~HXQWXTjiSe&8Kl-yi3-KpL?}=L@^qjn+C+KMlW9umN@5o6=R8-m zptT=$uBkz7zoK1Zg1LWA0%@$;%mA4QCDa75`C9Xh=8>k0Y^SdrhT$j01la85zNP?$ zCj)eP=4ptU%FpggI~}`bgFFz;$dX>NkFxVEat@RAg_xOhsxR{6WR%eY1^y zkPTBb7JnrD5x*%3;bb@=o|gz?e?|&PI>PAt5Tu%yVOF2k4f0VUX?%vxEM|pNB)(@o zrj{6+7CF%kZ;&Z`GLy?>N+SAp>|60~r$rE%N}WFJltU6J>)G@UFc_WG-fGihT*X;% zM(ML2T(Ko?#NLrzBT=5A8~J`HSq%uR1-qBIJzlHQGb7cSv+-l1P{z zjiCSU>^h*@IJflNDIlXVg9<7X39y7_6WXajro7rA{@_K*H-aC?zATi)Q#~Epc5{|z6-}~MBfA{{Q0GhFl zFu+!+>TH`JfzdW%D~ILwvNxy(*$fzG=ou)PA9_GZEXn` zs@^nmng2Zje8Opg6;fk~Q9hM4opONUP*G1Ay(VE<5BTB0#Mu(*7yu?=5(%5$CHAeQ4YmmBQsV=H{ zPer3)O4v*|iBK}zf<}{dv@;yEcQ_?iprX)->v|40w4<-NLokA1L}A7ev1Lb=;j`?> zGT233aD|w;5VMo|slzi&4(`*w`FmOTwJbb24i|gibtW*I%{ve&D6OJ2@9%XmW&a^I3WmD`-X#XftBtAtTt_SW?@q}RvcgX6F= z4&z^n!M|m{on>R$$r&l)i?9(TJW`e>L77x1^OH|ZK0PT+o|>D@@uzMvWtDWQIKHic zS1V|&_Uz1-q`wTXHR2OUX=DpqW86=gbRc&TQ^rxMFDF zlFLzai^RWj9r=zz$8yJ7N2#N^<07*QY0B&n`+0PTc-5cP6m<9qckAa#Du;S1eX`sx z1HiX63#d(&nWyAWPZ<4&m+aW~Q(pN=au=wX#UANSSGdpCu_N8-6fbddpTEa!Z0(lX z?P;IfXLjgOe%eMmPU0cpVZ*;MtcfEbfuj=`fJVN$52 zv`EZsibR#P?0ab~4@j-d>=@D zFoesDc5LF8HusLq@-?<_c%oomh#?s8uA z6dg#^S`ncheyL<_Z)*s^b$>)g#0nmFhrKuC9vW%)wb{C5_h58Iw2C$dHjW#_ z)+US9+-hyR{$gOXQ%&F5OA^0N>SlAn-fOmZw)xtOzHVp0V)fX)*#GnfLo1q4D^}Ts zS>ur=wpnU1w3s1Z^GdI;_#A<8p~X~u&I#rY=0WCB_~j2w(lIF`6eUDI(HtMDRooDD z!wjWFE%Teo0M!W%VtZtdlv3t@3|+rP!y-tX*NGy zm|mVak)*N^5CWOE0EZ((7qHeZhy0rR4GG&WwB+cYs5?R^v$Xl{-=zKd_@We_;OF zh8`gwn2*w=e)(}Z`Z!u-qdk6FzJ}IFwuq)!37ME)EZw|s<7(Df->>WKt)#s-;p={1 zIojq|+-g^s8TWQNyA+$jgi~3cl{r>vN2cRBcQ^ z8yndbH(&b^W*iMHhNYhq<8Wad{(AgF3Pu)m*xwzehdm8-0>K>=OyBc6{A@HGD2Dkq@Nn(*Glp_En}9G~Zk#{iY=u`&n^A3{SPd zy*F)6AC1lrs-puB#lKnO?q=lf89m<$GK267+L2rUnx%g9HZ|78(}oNk;Yt&GL;CA~ zzJFj4voJE4X(aM$U?ISElr3ssu5Y1_>k|XsKq0^d`i;RWZHxmP{((VxaI=5F-aqi4 zKKNZ9obZ89^MlX7=x6=?VLeInRg$!9GyDOTPTtxCn5|6-zzBdj+Zh1_q+wb>I+>sh z4g@*WKgi1iCZ9GC%C`Gt-PE1qvi z?%>A0$F@70gD!F~5x3gei4Mlm(WO`oMshIXy-)7V;hw2`50gdr9$h|18lI}5??v?I zkVSPeV~h%~{s_~KADkH}^LN`p&?{Q~h&G|#Phdak_As+2`XSyAj(&eX`=9Obg?12K z4%(f=i<(-%b;&ITVZi~ISaRuwHJ4IXQ+z5tA$ZtMU~+~9RC<;_S4+<`mKE`=xGHku6&4m*U^7};Cp5tgQ9f z&MgTb0vasB3ar99Y(q1gXVhu}M@Q2~8w~(SP~CBypO2D%KuH_5Z;Om=f3tw#4YRW^+|WwiSD`)czfn?l{e?qY4dwd}=>2%w z$H+F+c4#fnalq03gkB?DXfL#v+OM|1(B9NO%Y3a9{;3l>uNYfA_3YjudVo@-H4o>R zy|sVbmxv_hFmLkCfHre_=FH5>4Bt8fGpDpjc|1_oCQnbEnOvD%o!p*mqFkTd$?^w- z5G=h`234lyij(EhuI}QDlm#ujm|e-PXZh@fkytUYJqlh7L+t3Yuf%~&EJJ}UfmU<} z^9aLEG7x8=mjQ;6s6E_{9amfUCsO)Gf95j&p(RhVX9EjFErv@>-7G5XWl3JzOSkI` zo6LkbHBs#itd&+=#g3n-Y&B3}9=Bd9uEM_$DLFjb))W5UzM)B6|Hs4e>L2Q+^XD&X zA1@wAqyI}cAfD+(`?*8!tF$pg%rHFi0ht=`TJ__>aq~ko1o0yEF}DB(ArWf;UcL55 zCe~_jqoYy4UoJVXI#~_p+_O%vl2aCxg0iLvO4L3?Uf@ow5DZ=M7P?@u3%bIw;rQ@o zG-i*+`t#vJcrDC@qlt*&4EmVnrsw&y0thxy1cp1!uCm)Kr?9{-BI6y24)gJt$!4c> z%s4w)$~_(3S;j8eeR#js-`_E`C1L`Y3v+a#U%rgLz7%c_Z+Lr(T^*Oew#AE<=4Qcb z$y*8*&T>u?DBy4}i8_p4G1N6cv0eU#h;J=NBPOy=LLkiNe;mC$zq@>>(-blxefVKR z6DGW*h3g>SlJ)z=-j?irReQERd_xne^k=eZY2aI~;4Q z`x2i(GJzQD)!#*||DF+eArcJ_@e#!|h^(QcN+3yX#-fP7H0R~$lJ^$8%ic9CNj7^g z28(T%>aZP57Ha9u(zS+)?|e}|H&l@;jv)H$QUx~J`>AaXEbT7(0xsxXV?GljF%lj( z*>`9qf%Te(`pVDsoOD|8(9WshP$Uo>yN7>`U1IG}t83MP_#D@}HF_A0nSvJW!z^ild}RaUwX1g4er#%TYIEY4ePZGm z=P9ce@L9kzalBW%qF~4$56^|*wN&kZ(4_hc8BjC1%tD6C#LII5Py%Xz4NOi?O!1S) zO!)oAWIHAUTfSc4d+oibvzE0j?|6Q^FwTvi3lCwLL)K(glNaR`d0pn^3yvWEF<85& z?Ls3{6!A~W**Uu8?FIX?ea&97H`_0E7LAvf22kY2q;m;DT571zZd9BwZI5msN_)Wi zY7Hy@!O$F#QNn-R5URhuaTfW2j^f1|Lif}@DI>!%#%h0b3(X{jrVs4wtx(5*1IlsmIr&_009G_cZl%U1pH!xcuM`BAs443TG-!=G1h~9}UYP zqR?kx73k=PvVs{{$fAjJA}dPlS&VNSTTPyV&vkE!y&(3gIQJ^wTj*WxUF$9N8hST& zGvp_%Tq8%WGUTSc47u^sud-qkMbGP`c%y;=K`>7k)FIFTIDiJ%F*$(tzM+oMClBJe zvp2*n#3Y$CL_WeKkdh4Au&Qi8poSzXUPz`tnjTAUrbg|l(Nrc@j&4W47Uj-jRA!^J zH2&IX$wt@05Wbuo9`eT3_*$HcXIvUqffwD}P$fhey$t%qGojVcc8F_5?>I)~W4(BM z#=q*{_H$G~X8mL1sWd+}YDzvgj6?%J+gyyRyyRnr*m7(wR*D&78`L^d@|j_8QCJ&b z4__8WKZrN@q|R2CcIYbZSm_8NjyO!?$MYNVUJ!4l{M&%&;p@8F4d5QOc6 z&-!?cXL;swOAr}HkOR)!q&BVLNwG&GIHzOP#@Vc`&r4k%kHzdZ8AV2tq=>}*lLTj_ zRf&C20;x8|!_vK1)tkaPtY{x~bC9%2ABsVJSbMNx3$x*xOm~k&*lX^TGt^+jn zGVBpf>!{TL*-I8zs;iLZVr6SJDdu~cSO2&h-6DS6+xUTVEBsmfz-i6B1IM22{p8uE zaG!#esAa50$wpGM_=0{%M>%W(FNP<{0gOY!(n772WTf(ukv9TWjl6oXi1VMLGLb}c z$2Hp`&RSWw@wN+x{LpI*V@cX!ftcG7o1ihKsAQsIWBpU#v!EJ3?)`a0+UixiJ_Ph<%c4sUIl|-$?`;%!RLIy_+Xo+XcTCQMt@Oi1Fdbb zZKZ9!jc+?Fb`;f?bhd~vE=B9`QF=v=@w3NBbarM>Z_`Ui7;^x zKM*un8|%CT>=gOIXgn6*9Kt+0Iy4e4W8-O8yV1Db18NWWP+T(-EQ{@={>o!*M`#~u zVVY;CT05oZR|3bA`}`@BnVCJ!mvMRWz{iG%;(RP>QgmX+Nu@4J5Au%QUYD`hb4f0W zD7|4tmx?cWSHZRHT62|L2G>PNr+nO@nIFMLQw$sHEi$StmVUex-O`&Sr7enKN-LG= zuGJUY9ts%M^;r!QCJ;i5Y0;gAH^gjD+Vxb0$_MS;vMUrhs>AiF8k>LLUb=WpXYbB{ z$D;Fho3)X^f2A6y>UFkZ>Jx>W*7A&{T9@?@TL12&80Bs!=7?{nPaHq7IW=vcnw~m2 zQ4XlXpbkGVyf%Dw_=RD?hqAqs-O1!wSq(!W{6v@yYj$V$7s628%?_VL)@Ud*i~~+P zRvfF2vV*76Yu>>*j(5(9i+b^uVL@Y0vny+P^zw`(W4n(gNswA^iA(>iZA$AwZT#8X= zU9^t$k`r30`2KFbTKfj+%TsnxJ zo;lb?1f~aVOnWFQOf{vLLN}>x~E_0i&D4L1ea+R07xnN#4ubE3`gZZLv zA4*-JDs8OuG#{z4bQUe6qMO)`KBY|hG?@rFba{`30I5{{hcSX1aG~IS;Hxjk zj$W%asjut1;RO3g1@^b1J6P$2I`X_U z@{s_XLG&(1G#O$tke)-r4DvKKnP3+$io|QdT#9Is#mGv8k5u2RM%E+Sk><$xQ2&-! zclVrpE+@b)gmY&0KztiF=0A-~wy5u%eVLA%Ac;o>()peE4R}Lh*+Ze~uXD14QM~@+ zhVAxy4#e%hcW(pMGjxAaj7 zJQQYTTl8DK(~@pkx;=rniwfLx-@W&3-hGe#?tAW@M|4Fex$?Y|$Hk5AoFkm)(UaRm ziJUoCU)?3?DyEL}Gh_nB9+Jfk&m|x+LH8qgKT(cEPe;#2xkyw)f5}OBcP6?L<)inW zC=c9L4n_i}17`zVB%lS#0j`ARLO=Q@$(9Y{`+M)d`#%2OdrXQ7YAKk{E$5!dJ)JA% z1T~k-E#$adPPwzVod$2ZfT7~q#VMF7N{Xhi8j5h&6;8RJkkQyUXWj)bxL}We$ea0n zEl8heSgB;te8bA4SOX=b*@e+-B*@1%BE?Q?zT%P3lS_<6Usv19S1v=_sAZ5M_YGQCt`C~bRrf< zRVH$aiDV+JsNppyDmeo%Cz(&PP5P-pZQ2nQn8rhfqQ&Yo?T6qm+}H1i)T7vQQ0snU zo0!itRBh(5Gy7}sReVS1XsmpMvA$T=?xKUhTRS@Xc)q)}uiJU#h_kz|RbY&4JIk^% z&)6B38L-f$XNOmVN`*a!#R9Pk`X#%!K}Hv+2w7@-|lFfyd?q5tM9 zL(XZh1^-n}D4MSw_d^fqA4T~DcFQK>^@dGnjRHEHjg!6k?|kPwc2|e=2B z000000C?JCU}Rumw)-E(z`*$BfAoK6rj5)m7(Or{14aO@F9)~)0C?I>&odZM4HyOB z_cyX_+qSJKd&#zKj@h>7nzF66CEK?z_q-S9obCJVx$=Nbj>@ZyKb86|t2s&-uYn%s z+mO7_L|w(?R#aXsj8a<_8}!gxDU~c&C3&le4)R2+7Hf6|6pB{L-;oqarGD!AKe-aEw~78# zUL8IBBb$3Rsr=ht9$06l-8#tcgb}7Ih{@4gYNobnv7cARdL3h%AL**ove<9yZyEij zs}m+!X_vZENhz-i$=hE%(?O+g3Vc&u-1$QbWq;&F3MaGF{Y7rAwD@N5H+96FKeW?W z%Mg+)$;Y^MaQOIJYAGDC&F1*ta=Gf5#^ z$RSJkFV_6A{TXjFDg5~fpKEJ000000Apju&Apju&YXG`W#ps z${i9NdmWY@0Ukyk%pUn4NFR?MtRK%HKp=4-pdj=iL?Lb=gdv(C*&;|HZ6g>X7$aaK zz$6_cc_iW`5G9`_+a`%7?^b}8K|A1Wv+W-6g7<0~F3 z`7HY_>n=+!U@mnoiY}inxGyX(qc9mTE-*tdSTJ!ghA^8jurSFnLNQk{Y%zf`mNBa_ z#4-Icm@=(0!ZOz~@G}K7Of%0j<1_a(3p5`zH#AK(4>gZ9qcyiR%QfRQ_cjYQA2v5O zw>HZ*-!}6%2R9oxGdG4ftT@0p)Hvul067#nXgPp6z&Xe{@H#mgL z7d?JGhdq!znLVOCt39+my*_R<5Z$ywqk4CCT%1F>jph}5LJxmu( z3QgKholk{OUQuvTb5m+mKUJSqxK+SbMgRc-009L7Q~*@~cmM|g0ss&IF92Bp00pN9 zuK)u80eISUj>UBXP!L5g4h2M(vyI^m#C;cECBfaT4XU6DYUAPl<()e|fR7(sINSlC z4>NXfNPoso@qh_S9~jQqP0-<;v4>+ve8yf*9WPu{p-PWBIWlBvVnhiO(KSW?C{xkT zkq{R#UX+t0C=yTnDa9MoBt}b|6xYQ~vLfT1|B1gTHSVY&UaOX3L^gqkV>g`Q4|4n1R@9s3JHs7(5OkX7OmQ}>(Hr7w;sKs z`t%zxXvnY;qsEMzFloxP8MEfhTd-)!vK6b=tlO|@%eEc6_Ut=w=*Y1Xr_P+aaOujm z8@KMoXm5cd~P?;v>8qIjB3}bPq!XPI(6BXZcIl&kSg&Kj3{&}QKmE{8dL`aOLZVl zo;&w46iGJa#H~_|9zA$csl|dhtzLL3+bc_6o407qvK6b&ys>HBhBj~A$gyL~ws$UE zN%6sZAAR=87v;YC?wcQe`t6rL{yO(hnE%2>iqNk@v?wuRUAi`CHy|V+)Un}bg5be` zVE_OC*fQI;YyE#zUua@rXk=_+YG!U>X=QC=YiIA^=;Z9;>gMj@>E-R?>*p^Jio_DB zOs;6vN>#U!YiUtFdud*#fq|m|ly+gu)XT|F&f!V~@H_@f41*vLy|#(@%VOoC86jz> zUtd|2+k1{I%h^PGI}4>B^(NOzom)@2U0p)>rX{=Zckv-~Qw<}27mcCHHHMJQHG4v< z6s(_kKeTirvuF@v4P3kdI2weZfmt+I@)%3CaDP3=Mu0rW69!7cW@p)L*W`rwDHf4A zYq1D`>=<<3tS}HiM@cQ4Wr1X~H%rrEM^6+#dKr!mvEe0lv@_!EW-kKp<&N0txMN~6 zu5kVjln9KB3{63_o12>p0P)8;4|v)Pi9-ScP!vV8jY+!WA9s*#YZP8KH`Z?AR(gZW z6My`^gzw9W&x`P8-S-056ycl_IPMAiq#LWTz;Z@dux9*I(uV1nFlIJn4H^Rdq!Yak zp~Jk*z11KznKfADv_L6OD6$I7^Q>%|kY<)jSP@Cak}|vB(6Raz9V4fb)9g2O^nP7O z?N@cAeo05`*L385S*P9lZwDj8W-&%q#vP0kymzqw5Axo?5fHtBv15a3Fo<*rjM~7~ zv4J5pDmr2#BV%7=Yi}=uldSg!+2Du`3uGg`H#7hl46+-=7@Q)twHdVGfU%fCn-MAk UV!)YD7EF>6OiBO%+iXy401EDa761SM literal 0 HcmV?d00001 diff --git a/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff2 b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d0fa0cd6d231b1ee076d1956256dd83d58ac1402 GIT binary patch literal 27916 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 Hdl~@%uF5>h literal 0 HcmV?d00001 diff --git a/public/0.17b8d08b9d259577cf6a.js b/public/0.17b8d08b9d259577cf6a.js new file mode 100644 index 00000000..67279288 --- /dev/null +++ b/public/0.17b8d08b9d259577cf6a.js @@ -0,0 +1,859 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[0],{ + +/***/ "./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +var runtime = (function (exports) { + "use strict"; + + var Op = Object.prototype; + var hasOwn = Op.hasOwnProperty; + var undefined; // More compressible than void 0. + var $Symbol = typeof Symbol === "function" ? Symbol : {}; + var iteratorSymbol = $Symbol.iterator || "@@iterator"; + var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; + var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + + function wrap(innerFn, outerFn, self, tryLocsList) { + // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; + var generator = Object.create(protoGenerator.prototype); + var context = new Context(tryLocsList || []); + + // The ._invoke method unifies the implementations of the .next, + // .throw, and .return methods. + generator._invoke = makeInvokeMethod(innerFn, self, context); + + return generator; + } + exports.wrap = wrap; + + // Try/catch helper to minimize deoptimizations. Returns a completion + // record like context.tryEntries[i].completion. This interface could + // have been (and was previously) designed to take a closure to be + // invoked without arguments, but in all the cases we care about we + // already have an existing method we want to call, so there's no need + // to create a new function object. We can even get away with assuming + // the method takes exactly one argument, since that happens to be true + // in every case, so we don't have to touch the arguments object. The + // only additional allocation required is the completion record, which + // has a stable shape and so hopefully should be cheap to allocate. + function tryCatch(fn, obj, arg) { + try { + return { type: "normal", arg: fn.call(obj, arg) }; + } catch (err) { + return { type: "throw", arg: err }; + } + } + + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; + + // Returning this object from the innerFn has the same effect as + // breaking out of the dispatch switch statement. + var ContinueSentinel = {}; + + // Dummy constructor functions that we use as the .constructor and + // .constructor.prototype properties for functions that return Generator + // objects. For full spec compliance, you may wish to configure your + // minifier not to mangle the names of these two functions. + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + + // This is a polyfill for %IteratorPrototype% for environments that + // don't natively support it. + var IteratorPrototype = {}; + IteratorPrototype[iteratorSymbol] = function () { + return this; + }; + + var getProto = Object.getPrototypeOf; + var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + if (NativeIteratorPrototype && + NativeIteratorPrototype !== Op && + hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { + // This environment has a native %IteratorPrototype%; use it instead + // of the polyfill. + IteratorPrototype = NativeIteratorPrototype; + } + + var Gp = GeneratorFunctionPrototype.prototype = + Generator.prototype = Object.create(IteratorPrototype); + GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; + GeneratorFunctionPrototype.constructor = GeneratorFunction; + GeneratorFunctionPrototype[toStringTagSymbol] = + GeneratorFunction.displayName = "GeneratorFunction"; + + // Helper for defining the .next, .throw, and .return methods of the + // Iterator interface in terms of a single ._invoke method. + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function(method) { + prototype[method] = function(arg) { + return this._invoke(method, arg); + }; + }); + } + + exports.isGeneratorFunction = function(genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor + ? ctor === GeneratorFunction || + // For the native GeneratorFunction constructor, the best we can + // do is to check its .name property. + (ctor.displayName || ctor.name) === "GeneratorFunction" + : false; + }; + + exports.mark = function(genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + if (!(toStringTagSymbol in genFun)) { + genFun[toStringTagSymbol] = "GeneratorFunction"; + } + } + genFun.prototype = Object.create(Gp); + return genFun; + }; + + // Within the body of any async function, `await x` is transformed to + // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test + // `hasOwn.call(value, "__await")` to determine if the yielded value is + // meant to be awaited. + exports.awrap = function(arg) { + return { __await: arg }; + }; + + function AsyncIterator(generator) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if (record.type === "throw") { + reject(record.arg); + } else { + var result = record.arg; + var value = result.value; + if (value && + typeof value === "object" && + hasOwn.call(value, "__await")) { + return Promise.resolve(value.__await).then(function(value) { + invoke("next", value, resolve, reject); + }, function(err) { + invoke("throw", err, resolve, reject); + }); + } + + return Promise.resolve(value).then(function(unwrapped) { + // When a yielded Promise is resolved, its final value becomes + // the .value of the Promise<{value,done}> result for the + // current iteration. + result.value = unwrapped; + resolve(result); + }, function(error) { + // If a rejected Promise was yielded, throw the rejection back + // into the async generator function so it can be handled there. + return invoke("throw", error, resolve, reject); + }); + } + } + + var previousPromise; + + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return new Promise(function(resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + + return previousPromise = + // If enqueue has been called before, then we want to wait until + // all previous Promises have been resolved before calling invoke, + // so that results are always delivered in the correct order. If + // enqueue has not been called before, then it is important to + // call invoke immediately, without waiting on a callback to fire, + // so that the async generator function has the opportunity to do + // any necessary setup in a predictable way. This predictability + // is why the Promise constructor synchronously invokes its + // executor callback, and why async functions synchronously + // execute code before the first await. Since we implement simple + // async functions in terms of async generators, it is especially + // important to get this right, even though it requires care. + previousPromise ? previousPromise.then( + callInvokeWithMethodAndArg, + // Avoid propagating failures to Promises returned by later + // invocations of the iterator. + callInvokeWithMethodAndArg + ) : callInvokeWithMethodAndArg(); + } + + // Define the unified helper method that is used to implement .next, + // .throw, and .return (see defineIteratorMethods). + this._invoke = enqueue; + } + + defineIteratorMethods(AsyncIterator.prototype); + AsyncIterator.prototype[asyncIteratorSymbol] = function () { + return this; + }; + exports.AsyncIterator = AsyncIterator; + + // Note that simple async functions are implemented on top of + // AsyncIterator objects; they just return a Promise for the value of + // the final result produced by the iterator. + exports.async = function(innerFn, outerFn, self, tryLocsList) { + var iter = new AsyncIterator( + wrap(innerFn, outerFn, self, tryLocsList) + ); + + return exports.isGeneratorFunction(outerFn) + ? iter // If outerFn is a generator, return the full iterator. + : iter.next().then(function(result) { + return result.done ? result.value : iter.next(); + }); + }; + + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; + + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } + + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } + + // Be forgiving, per 25.3.3.3.3 of the spec: + // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume + return doneResult(); + } + + context.method = method; + context.arg = arg; + + while (true) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + + if (context.method === "next") { + // Setting context._sent for legacy support of Babel's + // function.sent implementation. + context.sent = context._sent = context.arg; + + } else if (context.method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw context.arg; + } + + context.dispatchException(context.arg); + + } else if (context.method === "return") { + context.abrupt("return", context.arg); + } + + state = GenStateExecuting; + + var record = tryCatch(innerFn, self, context); + if (record.type === "normal") { + // If an exception is thrown from innerFn, we leave state === + // GenStateExecuting and loop back for another invocation. + state = context.done + ? GenStateCompleted + : GenStateSuspendedYield; + + if (record.arg === ContinueSentinel) { + continue; + } + + return { + value: record.arg, + done: context.done + }; + + } else if (record.type === "throw") { + state = GenStateCompleted; + // Dispatch the exception by looping back around to the + // context.dispatchException(context.arg) call above. + context.method = "throw"; + context.arg = record.arg; + } + } + }; + } + + // Call delegate.iterator[context.method](context.arg) and handle the + // result, either by returning a { value, done } result from the + // delegate iterator, or by modifying context.method and context.arg, + // setting context.delegate to null, and returning the ContinueSentinel. + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + if (method === undefined) { + // A .throw or .return when the delegate iterator has no .throw + // method always terminates the yield* loop. + context.delegate = null; + + if (context.method === "throw") { + // Note: ["return"] must be used for ES3 parsing compatibility. + if (delegate.iterator["return"]) { + // If the delegate iterator has a return method, give it a + // chance to clean up. + context.method = "return"; + context.arg = undefined; + maybeInvokeDelegate(delegate, context); + + if (context.method === "throw") { + // If maybeInvokeDelegate(context) changed context.method from + // "return" to "throw", let that override the TypeError below. + return ContinueSentinel; + } + } + + context.method = "throw"; + context.arg = new TypeError( + "The iterator does not provide a 'throw' method"); + } + + return ContinueSentinel; + } + + var record = tryCatch(method, delegate.iterator, context.arg); + + if (record.type === "throw") { + context.method = "throw"; + context.arg = record.arg; + context.delegate = null; + return ContinueSentinel; + } + + var info = record.arg; + + if (! info) { + context.method = "throw"; + context.arg = new TypeError("iterator result is not an object"); + context.delegate = null; + return ContinueSentinel; + } + + if (info.done) { + // Assign the result of the finished delegate to the temporary + // variable specified by delegate.resultName (see delegateYield). + context[delegate.resultName] = info.value; + + // Resume execution at the desired location (see delegateYield). + context.next = delegate.nextLoc; + + // If context.method was "throw" but the delegate handled the + // exception, let the outer generator proceed normally. If + // context.method was "next", forget context.arg since it has been + // "consumed" by the delegate iterator. If context.method was + // "return", allow the original .return call to continue in the + // outer generator. + if (context.method !== "return") { + context.method = "next"; + context.arg = undefined; + } + + } else { + // Re-yield the result returned by the delegate method. + return info; + } + + // The delegate iterator is finished, so forget it and continue with + // the outer generator. + context.delegate = null; + return ContinueSentinel; + } + + // Define Generator.prototype.{next,throw,return} in terms of the + // unified ._invoke helper method. + defineIteratorMethods(Gp); + + Gp[toStringTagSymbol] = "Generator"; + + // A Generator should always return itself as the iterator object when the + // @@iterator function is called on it. Some browsers' implementations of the + // iterator prototype chain incorrectly implement this, causing the Generator + // object to not be returned from this call. This ensures that doesn't happen. + // See https://github.com/facebook/regenerator/issues/274 for more details. + Gp[iteratorSymbol] = function() { + return this; + }; + + Gp.toString = function() { + return "[object Generator]"; + }; + + function pushTryEntry(locs) { + var entry = { tryLoc: locs[0] }; + + if (1 in locs) { + entry.catchLoc = locs[1]; + } + + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } + + this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } + + function Context(tryLocsList) { + // The root entry object (effectively a try statement without a catch + // or a finally block) gives us a place to store values thrown from + // locations where there is no enclosing try statement. + this.tryEntries = [{ tryLoc: "root" }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } + + exports.keys = function(object) { + var keys = []; + for (var key in object) { + keys.push(key); + } + keys.reverse(); + + // Rather than returning an object with a next method, we keep + // things simple and return the next function itself. + return function next() { + while (keys.length) { + var key = keys.pop(); + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } + + // To avoid creating an additional object, we just hang the .value + // and .done properties off the next function object itself. This + // also ensures that the minifier will not anonymize the function. + next.done = true; + return next; + }; + }; + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } + + if (typeof iterable.next === "function") { + return iterable; + } + + if (!isNaN(iterable.length)) { + var i = -1, next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } + + next.value = undefined; + next.done = true; + + return next; + }; + + return next.next = next; + } + } + + // Return an iterator with no values. + return { next: doneResult }; + } + exports.values = values; + + function doneResult() { + return { value: undefined, done: true }; + } + + Context.prototype = { + constructor: Context, + + reset: function(skipTempReset) { + this.prev = 0; + this.next = 0; + // Resetting context._sent for legacy support of Babel's + // function.sent implementation. + this.sent = this._sent = undefined; + this.done = false; + this.delegate = null; + + this.method = "next"; + this.arg = undefined; + + this.tryEntries.forEach(resetTryEntry); + + if (!skipTempReset) { + for (var name in this) { + // Not sure about the optimal order of these conditions: + if (name.charAt(0) === "t" && + hasOwn.call(this, name) && + !isNaN(+name.slice(1))) { + this[name] = undefined; + } + } + } + }, + + stop: function() { + this.done = true; + + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } + + return this.rval; + }, + + dispatchException: function(exception) { + if (this.done) { + throw exception; + } + + var context = this; + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + + if (caught) { + // If the dispatched exception was caught by a catch block, + // then let that catch block handle the exception normally. + context.method = "next"; + context.arg = undefined; + } + + return !! caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; + + if (entry.tryLoc === "root") { + // Exception thrown outside of any try block that could handle + // it, so set the completion value of the entire function to + // throw the exception. + return handle("end"); + } + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } + + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, + + abrupt: function(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && + hasOwn.call(entry, "finallyLoc") && + this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + if (finallyEntry && + (type === "break" || + type === "continue") && + finallyEntry.tryLoc <= arg && + arg <= finallyEntry.finallyLoc) { + // Ignore the finally entry if control is not jumping to a + // location outside the try/catch block. + finallyEntry = null; + } + + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; + + if (finallyEntry) { + this.method = "next"; + this.next = finallyEntry.finallyLoc; + return ContinueSentinel; + } + + return this.complete(record); + }, + + complete: function(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } + + if (record.type === "break" || + record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = this.arg = record.arg; + this.method = "return"; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } + + return ContinueSentinel; + }, + + finish: function(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + + "catch": function(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + + // The context.catch method must only be called with a location + // argument that corresponds to a known catch block. + throw new Error("illegal catch attempt"); + }, + + delegateYield: function(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; + + if (this.method === "next") { + // Deliberately forget the last sent value so that we don't + // accidentally pass it on to the delegate. + this.arg = undefined; + } + + return ContinueSentinel; + } + }; + + // Regardless of whether this script is executing as a CommonJS module + // or not, return the runtime object so that we can declare the variable + // regeneratorRuntime in the outer scope, which allows this module to be + // injected easily by `bin/regenerator --include-runtime script.js`. + return exports; + +}( + // If this script is executing as a CommonJS module, use module.exports + // as the regeneratorRuntime namespace. Otherwise create a new empty + // object. Either way, the resulting object will be used to initialize + // the regeneratorRuntime variable at the top of this file. + true ? module.exports : undefined +)); + +try { + regeneratorRuntime = runtime; +} catch (accidentalStrictMode) { + // This module should not be running in strict mode, so the above + // assignment should always work unless something is misconfigured. Just + // in case runtime.js accidentally runs in strict mode, we can escape + // strict mode using a global Function call. This could conceivably fail + // if a Content Security Policy forbids using Function, but in that case + // the proper solution is to fix the accidental strict mode problem. If + // you've misconfigured your bundler to force strict mode and applied a + // CSP to forbid Function, and you're not willing to fix either of those + // problems, please detail your unique predicament in a GitHub issue. + Function("r", "regeneratorRuntime = r")(runtime); +} + + +/***/ }), + +/***/ "./node_modules/@babel/runtime/regenerator/index.js": +/*!**********************************************************!*\ + !*** ./node_modules/@babel/runtime/regenerator/index.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! regenerator-runtime */ "./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js"); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/1.8f721a069933f04e92d7.js b/public/1.8f721a069933f04e92d7.js new file mode 100644 index 00000000..c9640f05 --- /dev/null +++ b/public/1.8f721a069933f04e92d7.js @@ -0,0 +1,336 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[1],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/paginator.vue?vue&type=script&lang=js&": +/*!***********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/paginator.vue?vue&type=script&lang=js& ***! + \***********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'paginator', + props: { + meta: { + type: Object, + default: function _default() { + return { + total: 0, + per_page: 10, + from: 0, + to: 1, + last_page: 1, + current_page: 1 + }; + } + } + }, + computed: { + centerStart: function centerStart() { + if (this.meta.last_page <= 10) { + return 1; + } + + var count = this.meta.last_page - this.meta.current_page <= 4 ? 9 - (this.meta.last_page - this.meta.current_page) : 4; + return this.meta.current_page - count > 1 ? this.meta.current_page - count : 1; + }, + centerEnd: function centerEnd() { + if (this.meta.last_page <= 10) { + return this.meta.last_page; + } + + var count = this.meta.current_page <= 4 ? 9 - (this.meta.current_page - 1) : 4; + return this.meta.current_page + count < this.meta.last_page - 1 ? this.meta.current_page + count : this.meta.last_page; + } + }, + methods: { + range: function range(start, end) { + return Array(end - start + 1).fill().map(function (_, idx) { + return start + idx; + }); + }, + change: function change(page) { + this.meta.current_page = page; + this.$emit('change', page); + } + } +}); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss&": +/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss& ***! + \************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".paginator[data-v-5f72e89e] {\n list-style: none;\n padding: 1em 0;\n}\n.paginator .paginator-item a[data-v-5f72e89e] {\n display: inline-block;\n height: 32px;\n width: 32px;\n text-align: center;\n border-radius: 100%;\n line-height: 32px;\n font-size: 14px;\n margin: 0 0.2em;\n}\n.paginator .paginator-item.active a[data-v-5f72e89e] {\n color: #fff;\n background: rgba(0, 0, 0, 0.5);\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss&": +/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss& ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/paginator.vue?vue&type=template&id=5f72e89e&scoped=true&": +/*!***************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/paginator.vue?vue&type=template&id=5f72e89e&scoped=true& ***! + \***************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm.meta.last_page > 1 + ? _c( + "ul", + { + staticClass: + "paginator d-flex justify-content-center align-items-center" + }, + [ + _vm.centerStart != 1 + ? [ + _c( + "li", + { + staticClass: "paginator-item", + class: { active: 1 == _vm.meta.current_page } + }, + [ + _c( + "a", + { + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + return _vm.change(1) + } + } + }, + [_vm._v("1")] + ) + ] + ), + _vm._v(" "), + _c("li", { staticClass: "paginator-item" }, [ + _c("a", { + staticClass: "text-muted", + attrs: { disabled: "" }, + domProps: { innerHTML: _vm._s("⋯") } + }) + ]) + ] + : _vm._e(), + _vm._v(" "), + _vm._l(_vm.range(_vm.centerStart, _vm.centerEnd), function(i) { + return _c( + "li", + { + key: i, + staticClass: "paginator-item", + class: { active: i == _vm.meta.current_page } + }, + [ + _c( + "a", + { + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + return _vm.change(i) + } + } + }, + [_vm._v(_vm._s(i))] + ) + ] + ) + }), + _vm._v(" "), + _vm.centerEnd != _vm.meta.last_page + ? [ + _c("li", { staticClass: "paginator-item" }, [ + _c("a", { + staticClass: "text-muted", + attrs: { disabled: "" }, + domProps: { innerHTML: _vm._s("⋯") } + }) + ]), + _vm._v(" "), + _c( + "li", + { + staticClass: "paginator-item", + class: { + active: _vm.meta.last_page == _vm.meta.current_page + } + }, + [ + _c( + "a", + { + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + return _vm.change(_vm.meta.last_page) + } + } + }, + [_vm._v(_vm._s(_vm.meta.last_page))] + ) + ] + ) + ] + : _vm._e() + ], + 2 + ) + : _vm._e() +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/paginator.vue": +/*!**************************************!*\ + !*** ./src/components/paginator.vue ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _paginator_vue_vue_type_template_id_5f72e89e_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./paginator.vue?vue&type=template&id=5f72e89e&scoped=true& */ "./src/components/paginator.vue?vue&type=template&id=5f72e89e&scoped=true&"); +/* harmony import */ var _paginator_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./paginator.vue?vue&type=script&lang=js& */ "./src/components/paginator.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _paginator_vue_vue_type_style_index_0_id_5f72e89e_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss& */ "./src/components/paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _paginator_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _paginator_vue_vue_type_template_id_5f72e89e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"], + _paginator_vue_vue_type_template_id_5f72e89e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + "5f72e89e", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/paginator.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/paginator.vue?vue&type=script&lang=js&": +/*!***************************************************************!*\ + !*** ./src/components/paginator.vue?vue&type=script&lang=js& ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./paginator.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/paginator.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss&": +/*!************************************************************************************************!*\ + !*** ./src/components/paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss& ***! + \************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_style_index_0_id_5f72e89e_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../node_modules/style-loader!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_style_index_0_id_5f72e89e_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_style_index_0_id_5f72e89e_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_style_index_0_id_5f72e89e_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_style_index_0_id_5f72e89e_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_style_index_0_id_5f72e89e_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/components/paginator.vue?vue&type=template&id=5f72e89e&scoped=true&": +/*!*********************************************************************************!*\ + !*** ./src/components/paginator.vue?vue&type=template&id=5f72e89e&scoped=true& ***! + \*********************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_template_id_5f72e89e_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./paginator.vue?vue&type=template&id=5f72e89e&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/paginator.vue?vue&type=template&id=5f72e89e&scoped=true&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_template_id_5f72e89e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_template_id_5f72e89e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/10.1163691f38c6de464081.js b/public/10.1163691f38c6de464081.js new file mode 100644 index 00000000..6c49f14c --- /dev/null +++ b/public/10.1163691f38c6de464081.js @@ -0,0 +1,932 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{ + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "CheckIcon", + props: { + title: { + type: String, + default: "Check icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "CloseIcon", + props: { + title: { + type: String, + default: "Close icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "EmailIcon", + props: { + title: { + type: String, + default: "Email icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "PlusIcon", + props: { + title: { + type: String, + default: "Plus icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "TooltipOutlineIcon", + props: { + title: { + type: String, + default: "Tooltip Outline icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon check-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon close-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=503121c0&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=503121c0& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon email-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18C2,19.1 2.9,20 4,20H20C21.1,20 22,19.1 22,18V6C22,4.89 21.1,4 20,4Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&": +/*!**********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6& ***! + \**********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon plus-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { attrs: { d: "M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z" } }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon tooltip-outline-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M4,2H20C21.1,2 22,2.9 22,4V16C22,17.1 21.1,18 20,18H16L12,22L8,18H4C2.9,18 2,17.1 2,16V4C2,2.9 2.9,2 4,2M4,4V16H8.83L12,19.17L15.17,16H20V4H4Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Check.vue?vue&type=template&id=7146728c& */ "./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&"); +/* harmony import */ var _Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Check.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["render"], + _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Check.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Check.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Check.vue?vue&type=template&id=7146728c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Close.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Close.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Close.vue?vue&type=template&id=3cc2737c& */ "./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c&"); +/* harmony import */ var _Close_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Close.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Close_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__["render"], + _Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Close.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Close_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Close.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Close_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Close.vue?vue&type=template&id=3cc2737c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Email.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Email.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Email_vue_vue_type_template_id_503121c0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Email.vue?vue&type=template&id=503121c0& */ "./node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=503121c0&"); +/* harmony import */ var _Email_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Email.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Email_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Email_vue_vue_type_template_id_503121c0___WEBPACK_IMPORTED_MODULE_0__["render"], + _Email_vue_vue_type_template_id_503121c0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Email.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Email_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Email.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Email_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=503121c0&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=503121c0& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Email_vue_vue_type_template_id_503121c0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Email.vue?vue&type=template&id=503121c0& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=503121c0&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Email_vue_vue_type_template_id_503121c0___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Email_vue_vue_type_template_id_503121c0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Plus.vue": +/*!*********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Plus.vue ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Plus.vue?vue&type=template&id=18bbb6c6& */ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&"); +/* harmony import */ var _Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Plus.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["render"], + _Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Plus.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&": +/*!**********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js& ***! + \**********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Plus.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6& ***! + \****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Plus.vue?vue&type=template&id=18bbb6c6& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue": +/*!*******************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony import */ var _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/TooltipOutline.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \********************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!**************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \**************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/11.80e35f84831e7eccba12.js b/public/11.80e35f84831e7eccba12.js new file mode 100644 index 00000000..5331289a --- /dev/null +++ b/public/11.80e35f84831e7eccba12.js @@ -0,0 +1,814 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/follow-btn.vue?vue&type=script&lang=js&": +/*!********************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/follow-btn.vue?vue&type=script&lang=js& ***! + \********************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _relation_btn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./relation-btn */ "./src/components/buttons/relation-btn.vue"); +/* harmony import */ var $icons_Plus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/Plus */ "./node_modules/vue-material-design-icons/Plus.vue"); +/* harmony import */ var $icons_Check__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/Check */ "./node_modules/vue-material-design-icons/Check.vue"); +/* harmony import */ var $icons_Close__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/Close */ "./node_modules/vue-material-design-icons/Close.vue"); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _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; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'follow-btn', + components: { + RelationBtn: _relation_btn__WEBPACK_IMPORTED_MODULE_0__["default"], + PlusIcon: $icons_Plus__WEBPACK_IMPORTED_MODULE_1__["default"], + CheckIcon: $icons_Check__WEBPACK_IMPORTED_MODULE_2__["default"], + CloseIcon: $icons_Close__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + props: { + item: { + type: Object, + required: true + }, + simple: { + type: Boolean, + default: false + } + }, + data: function data() { + return { + hovering: false + }; + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_4__["mapGetters"])(['currentUser'])) +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/relation-btn.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + props: { + relation: { + type: String, + required: true + }, + action: { + type: String, + required: true + }, + item: { + type: Object, + required: true, + default: function _default() { + return {}; + } + } + }, + data: function data() { + return { + types: { + thread: 'App\\Thread', + user: "App\\User", + node: 'App\\Node' + }, + actions: { + like: 'has_liked', + follow: 'has_followed', + subscribe: 'has_subscribed' + } + }; + }, + methods: { + toggle: function toggle() { + var _this = this; + + // let action = !this.item[this.actions[this.action]] ? this.action : `${this.action}` + this.$http.post("relations/".concat(this.action), { + followable_type: this.types[this.relation], + followable_id: this.item.id + }).then(function () { + _this.item[_this.actions[_this.action]] = !_this.item[_this.actions[_this.action]]; + + _this.$emit('after-toggle', _this.item[_this.actions[_this.action]]); + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/empty-state.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_TooltipOutline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/TooltipOutline */ "./node_modules/vue-material-design-icons/TooltipOutline.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'empty-state', + components: { + EmptyIcon: $icons_TooltipOutline__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + title: { + type: String, + default: null + }, + message: { + type: String, + default: '空空如也~~~' + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-list-item.vue?vue&type=script&lang=js&": +/*!****************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-list-item.vue?vue&type=script&lang=js& ***! + \****************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/buttons/follow-btn */ "./src/components/buttons/follow-btn.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'user-list-item', + components: { + FollowBtn: $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + user: { + type: Object + } + } +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4&": +/*!************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4& ***! + \************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm.currentUser.id && _vm.item.id != _vm.currentUser.id + ? _c( + "relation-btn", + { attrs: { relation: "user", action: "follow", item: _vm.item } }, + [ + _c("template", { slot: "on" }, [ + _vm.simple + ? _c( + "button", + { + staticClass: "btn btn-rounded btn-ghost btn-icon ml-auto", + attrs: { title: "关注 TA" } + }, + [_c("plus-icon")], + 1 + ) + : _c( + "button", + { + staticClass: "btn btn-rounded btn-outline-teal-blue mx-1", + attrs: { title: "关注 TA" } + }, + [_c("plus-icon"), _vm._v("关注 TA\n ")], + 1 + ) + ]), + _vm._v(" "), + _c("template", { slot: "off" }, [ + _vm.simple + ? _c( + "button", + { + staticClass: "btn btn-icon ml-auto", + class: { + "btn-ghost": !_vm.hovering, + "btn-danger": _vm.hovering + }, + attrs: { title: "取消关注 TA" }, + on: { + mouseenter: function($event) { + _vm.hovering = true + }, + mouseleave: function($event) { + _vm.hovering = false + } + } + }, + [!_vm.hovering ? _c("check-icon") : _c("close-icon")], + 1 + ) + : _c( + "button", + { + staticClass: "btn mx-1", + class: { + "btn-teal-blue": !_vm.hovering, + "btn-danger": _vm.hovering + }, + attrs: { title: "取消关注 TA" }, + on: { + mouseenter: function($event) { + _vm.hovering = true + }, + mouseleave: function($event) { + _vm.hovering = false + } + } + }, + [ + !_vm.hovering ? _c("check-icon") : _c("close-icon"), + _vm._v( + "\n " + + _vm._s(_vm.hovering ? "取消关注" : "正在关注") + + "\n " + ) + ], + 1 + ) + ]) + ], + 2 + ) + : _vm._e() +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&": +/*!**************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69& ***! + \**************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { on: { click: _vm.toggle } }, + [!_vm.item[_vm.actions[_vm.action]] ? [_vm._t("on")] : [_vm._t("off")]], + 2 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=template&id=772b85b1&": +/*!*****************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/empty-state.vue?vue&type=template&id=772b85b1& ***! + \*****************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "text-center p-5 text-gray-50" }, [ + _c("div", { staticClass: "container" }, [ + _c( + "h1", + { staticClass: "display-4" }, + [_vm._t("icon", [_c("empty-icon")])], + 2 + ), + _vm._v(" "), + _c("h2", [_vm._t("title", [_vm._v(_vm._s(_vm.title))])], 2), + _vm._v(" "), + _c( + "p", + { staticClass: "lead" }, + [_vm._t("message", [_vm._v(_vm._s(_vm.message))])], + 2 + ) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-list-item.vue?vue&type=template&id=77d18d70&": +/*!********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-list-item.vue?vue&type=template&id=77d18d70& ***! + \********************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { staticClass: "user-media d-flex align-items-center" }, + [ + _c( + "router-link", + { + attrs: { + to: { name: "users.show", params: { id: _vm.user.username } } + } + }, + [ + _c("img", { + staticClass: "avatar-40", + attrs: { src: _vm.user.avatar, alt: _vm.user.name } + }) + ] + ), + _vm._v(" "), + _c("div", { staticClass: "ml-2" }, [ + _c( + "div", + [ + _c( + "router-link", + { + attrs: { + tag: "a", + to: { name: "users.show", params: { id: _vm.user.username } } + } + }, + [ + _c("h5", { staticClass: "mb-0 text-gray-50 d-inline" }, [ + _vm._v(_vm._s(_vm.user.name)) + ]) + ] + ), + _vm._v(" "), + _c( + "router-link", + { + staticClass: "ml-1 text-muted text-12", + attrs: { + tag: "a", + to: { name: "users.show", params: { id: _vm.user.username } } + } + }, + [_vm._v("@" + _vm._s(_vm.user.username))] + ) + ], + 1 + ), + _vm._v(" "), + _c("div", { staticClass: "text-12 text-gray-70" }, [ + _vm._v(_vm._s(_vm.user.bio)) + ]) + ]), + _vm._v(" "), + _vm._t( + "appends", + [ + _c("follow-btn", { + staticClass: "ml-auto", + attrs: { item: _vm.user, simple: "" } + }) + ], + { data: _vm.user } + ) + ], + 2 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/buttons/follow-btn.vue": +/*!***********************************************!*\ + !*** ./src/components/buttons/follow-btn.vue ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./follow-btn.vue?vue&type=template&id=4bfe56c4& */ "./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4&"); +/* harmony import */ var _follow_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./follow-btn.vue?vue&type=script&lang=js& */ "./src/components/buttons/follow-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _follow_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__["render"], + _follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/buttons/follow-btn.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/buttons/follow-btn.vue?vue&type=script&lang=js&": +/*!************************************************************************!*\ + !*** ./src/components/buttons/follow-btn.vue?vue&type=script&lang=js& ***! + \************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_follow_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./follow-btn.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/follow-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_follow_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4&": +/*!******************************************************************************!*\ + !*** ./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4& ***! + \******************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./follow-btn.vue?vue&type=template&id=4bfe56c4& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/buttons/relation-btn.vue": +/*!*************************************************!*\ + !*** ./src/components/buttons/relation-btn.vue ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./relation-btn.vue?vue&type=template&id=4a803e69& */ "./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&"); +/* harmony import */ var _relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./relation-btn.vue?vue&type=script&lang=js& */ "./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["render"], + _relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/buttons/relation-btn.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&": +/*!**************************************************************************!*\ + !*** ./src/components/buttons/relation-btn.vue?vue&type=script&lang=js& ***! + \**************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./relation-btn.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&": +/*!********************************************************************************!*\ + !*** ./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69& ***! + \********************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./relation-btn.vue?vue&type=template&id=4a803e69& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/empty-state.vue": +/*!****************************************!*\ + !*** ./src/components/empty-state.vue ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./empty-state.vue?vue&type=template&id=772b85b1& */ "./src/components/empty-state.vue?vue&type=template&id=772b85b1&"); +/* harmony import */ var _empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./empty-state.vue?vue&type=script&lang=js& */ "./src/components/empty-state.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["render"], + _empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/empty-state.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/empty-state.vue?vue&type=script&lang=js&": +/*!*****************************************************************!*\ + !*** ./src/components/empty-state.vue?vue&type=script&lang=js& ***! + \*****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./empty-state.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/empty-state.vue?vue&type=template&id=772b85b1&": +/*!***********************************************************************!*\ + !*** ./src/components/empty-state.vue?vue&type=template&id=772b85b1& ***! + \***********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./empty-state.vue?vue&type=template&id=772b85b1& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=template&id=772b85b1&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/user-list-item.vue": +/*!*******************************************!*\ + !*** ./src/components/user-list-item.vue ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _user_list_item_vue_vue_type_template_id_77d18d70___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user-list-item.vue?vue&type=template&id=77d18d70& */ "./src/components/user-list-item.vue?vue&type=template&id=77d18d70&"); +/* harmony import */ var _user_list_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user-list-item.vue?vue&type=script&lang=js& */ "./src/components/user-list-item.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _user_list_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _user_list_item_vue_vue_type_template_id_77d18d70___WEBPACK_IMPORTED_MODULE_0__["render"], + _user_list_item_vue_vue_type_template_id_77d18d70___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/user-list-item.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/user-list-item.vue?vue&type=script&lang=js&": +/*!********************************************************************!*\ + !*** ./src/components/user-list-item.vue?vue&type=script&lang=js& ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_list_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./user-list-item.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-list-item.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_list_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/user-list-item.vue?vue&type=template&id=77d18d70&": +/*!**************************************************************************!*\ + !*** ./src/components/user-list-item.vue?vue&type=template&id=77d18d70& ***! + \**************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_list_item_vue_vue_type_template_id_77d18d70___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./user-list-item.vue?vue&type=template&id=77d18d70& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-list-item.vue?vue&type=template&id=77d18d70&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_list_item_vue_vue_type_template_id_77d18d70___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_list_item_vue_vue_type_template_id_77d18d70___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/12.ffa155942fd31d411257.js b/public/12.ffa155942fd31d411257.js new file mode 100644 index 00000000..bdc6ab00 --- /dev/null +++ b/public/12.ffa155942fd31d411257.js @@ -0,0 +1,751 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{ + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Facebook.vue?vue&type=script&lang=js&": +/*!****************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Facebook.vue?vue&type=script&lang=js& ***! + \****************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "FacebookIcon", + props: { + title: { + type: String, + default: "Facebook icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=script&lang=js&": +/*!********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=script&lang=js& ***! + \********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "GithubCircleIcon", + props: { + title: { + type: String, + default: "Github Circle icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "GooglePlusIcon", + props: { + title: { + type: String, + default: "Google Plus icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=script&lang=js&": +/*!**************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=script&lang=js& ***! + \**************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "QqchatIcon", + props: { + title: { + type: String, + default: "Qqchat icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Facebook.vue?vue&type=template&id=166b381c&": +/*!**************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Facebook.vue?vue&type=template&id=166b381c& ***! + \**************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon facebook-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M17,2V2H17V6H15C14.31,6 14,6.81 14,7.5V10H14L17,10V14H14V22H10V14H7V10H10V6C10,3.79 11.79,2 14,2H17Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=template&id=167b8182&": +/*!******************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=template&id=167b8182& ***! + \******************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon github-circle-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M12,2C6.48,2 2,6.48 2,12C2,16.42 4.87,20.17 8.84,21.5C9.34,21.58 9.5,21.27 9.5,21C9.5,20.77 9.5,20.14 9.5,19.31C6.73,19.91 6.14,17.97 6.14,17.97C5.68,16.81 5.03,16.5 5.03,16.5C4.12,15.88 5.1,15.9 5.1,15.9C6.1,15.97 6.63,16.93 6.63,16.93C7.5,18.45 8.97,18 9.54,17.76C9.63,17.11 9.89,16.67 10.17,16.42C7.95,16.17 5.62,15.31 5.62,11.5C5.62,10.39 6,9.5 6.65,8.79C6.55,8.54 6.2,7.5 6.75,6.15C6.75,6.15 7.59,5.88 9.5,7.17C10.29,6.95 11.15,6.84 12,6.84C12.85,6.84 13.71,6.95 14.5,7.17C16.41,5.88 17.25,6.15 17.25,6.15C17.8,7.5 17.45,8.54 17.35,8.79C18,9.5 18.38,10.39 18.38,11.5C18.38,15.32 16.04,16.16 13.81,16.41C14.17,16.72 14.5,17.33 14.5,18.26C14.5,19.6 14.5,20.68 14.5,21C14.5,21.27 14.66,21.59 15.17,21.5C19.14,20.16 22,16.42 22,12C22,6.48 17.52,2 12,2Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=template&id=3898311f&": +/*!****************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=template&id=3898311f& ***! + \****************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon google-plus-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M23,11H21V9H19V11H17V13H19V15H21V13H23M8,11V13.4H12C11.8,14.4 10.8,16.4 8,16.4C5.6,16.4 3.7,14.4 3.7,12C3.7,9.6 5.6,7.6 8,7.6C9.4,7.6 10.3,8.2 10.8,8.7L12.7,6.9C11.5,5.7 9.9,5 8,5C4.1,5 1,8.1 1,12C1,15.9 4.1,19 8,19C12,19 14.7,16.2 14.7,12.2C14.7,11.7 14.7,11.4 14.6,11H8Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=template&id=755a06a4&": +/*!************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=template&id=755a06a4& ***! + \************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon qqchat-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M3.18,13.54C3.76,12.16 4.57,11.14 5.17,10.92C5.16,10.12 5.31,9.62 5.56,9.22C5.56,9.19 5.5,8.86 5.72,8.45C5.87,4.85 8.21,2 12,2C15.79,2 18.13,4.85 18.28,8.45C18.5,8.86 18.44,9.19 18.44,9.22C18.69,9.62 18.84,10.12 18.83,10.92C19.43,11.14 20.24,12.16 20.82,13.55C21.57,15.31 21.69,17 21.09,17.3C20.68,17.5 20.03,17 19.42,16.12C19.18,17.1 18.58,18 17.73,18.71C18.63,19.04 19.21,19.58 19.21,20.19C19.21,21.19 17.63,22 15.69,22C13.93,22 12.5,21.34 12.21,20.5H11.79C11.5,21.34 10.07,22 8.31,22C6.37,22 4.79,21.19 4.79,20.19C4.79,19.58 5.37,19.04 6.27,18.71C5.42,18 4.82,17.1 4.58,16.12C3.97,17 3.32,17.5 2.91,17.3C2.31,17 2.43,15.31 3.18,13.54Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Facebook.vue": +/*!*************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Facebook.vue ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Facebook_vue_vue_type_template_id_166b381c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Facebook.vue?vue&type=template&id=166b381c& */ "./node_modules/vue-material-design-icons/Facebook.vue?vue&type=template&id=166b381c&"); +/* harmony import */ var _Facebook_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Facebook.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Facebook.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Facebook_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Facebook_vue_vue_type_template_id_166b381c___WEBPACK_IMPORTED_MODULE_0__["render"], + _Facebook_vue_vue_type_template_id_166b381c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Facebook.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Facebook.vue?vue&type=script&lang=js&": +/*!**************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Facebook.vue?vue&type=script&lang=js& ***! + \**************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Facebook_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Facebook.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Facebook.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Facebook_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Facebook.vue?vue&type=template&id=166b381c&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Facebook.vue?vue&type=template&id=166b381c& ***! + \********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Facebook_vue_vue_type_template_id_166b381c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Facebook.vue?vue&type=template&id=166b381c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Facebook.vue?vue&type=template&id=166b381c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Facebook_vue_vue_type_template_id_166b381c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Facebook_vue_vue_type_template_id_166b381c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/GithubCircle.vue": +/*!*****************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/GithubCircle.vue ***! + \*****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _GithubCircle_vue_vue_type_template_id_167b8182___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GithubCircle.vue?vue&type=template&id=167b8182& */ "./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=template&id=167b8182&"); +/* harmony import */ var _GithubCircle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./GithubCircle.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _GithubCircle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _GithubCircle_vue_vue_type_template_id_167b8182___WEBPACK_IMPORTED_MODULE_0__["render"], + _GithubCircle_vue_vue_type_template_id_167b8182___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/GithubCircle.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=script&lang=js&": +/*!******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=script&lang=js& ***! + \******************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_GithubCircle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./GithubCircle.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_GithubCircle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=template&id=167b8182&": +/*!************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=template&id=167b8182& ***! + \************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_GithubCircle_vue_vue_type_template_id_167b8182___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./GithubCircle.vue?vue&type=template&id=167b8182& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=template&id=167b8182&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_GithubCircle_vue_vue_type_template_id_167b8182___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_GithubCircle_vue_vue_type_template_id_167b8182___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/GooglePlus.vue": +/*!***************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/GooglePlus.vue ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _GooglePlus_vue_vue_type_template_id_3898311f___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GooglePlus.vue?vue&type=template&id=3898311f& */ "./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=template&id=3898311f&"); +/* harmony import */ var _GooglePlus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./GooglePlus.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _GooglePlus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _GooglePlus_vue_vue_type_template_id_3898311f___WEBPACK_IMPORTED_MODULE_0__["render"], + _GooglePlus_vue_vue_type_template_id_3898311f___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/GooglePlus.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=script&lang=js&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=script&lang=js& ***! + \****************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_GooglePlus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./GooglePlus.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_GooglePlus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=template&id=3898311f&": +/*!**********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=template&id=3898311f& ***! + \**********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_GooglePlus_vue_vue_type_template_id_3898311f___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./GooglePlus.vue?vue&type=template&id=3898311f& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=template&id=3898311f&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_GooglePlus_vue_vue_type_template_id_3898311f___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_GooglePlus_vue_vue_type_template_id_3898311f___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Qqchat.vue": +/*!***********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Qqchat.vue ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Qqchat_vue_vue_type_template_id_755a06a4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Qqchat.vue?vue&type=template&id=755a06a4& */ "./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=template&id=755a06a4&"); +/* harmony import */ var _Qqchat_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Qqchat.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Qqchat_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Qqchat_vue_vue_type_template_id_755a06a4___WEBPACK_IMPORTED_MODULE_0__["render"], + _Qqchat_vue_vue_type_template_id_755a06a4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Qqchat.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=script&lang=js&": +/*!************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=script&lang=js& ***! + \************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Qqchat_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Qqchat.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Qqchat_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=template&id=755a06a4&": +/*!******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=template&id=755a06a4& ***! + \******************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Qqchat_vue_vue_type_template_id_755a06a4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Qqchat.vue?vue&type=template&id=755a06a4& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=template&id=755a06a4&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Qqchat_vue_vue_type_template_id_755a06a4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Qqchat_vue_vue_type_template_id_755a06a4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/13.c7f122518fa549773d41.js b/public/13.c7f122518fa549773d41.js new file mode 100644 index 00000000..f8154c8d --- /dev/null +++ b/public/13.c7f122518fa549773d41.js @@ -0,0 +1,551 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/hot-tags.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'HotTags', + data: function data() { + return { + nodes: [] + }; + }, + methods: { + loadNodes: function loadNodes() { + var _this = this; + + this.$http.get('nodes?hot=5&per_page=5').then(function (nodes) { + return _this.nodes = nodes.data; + }); + } + }, + created: function created() { + this.loadNodes(); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-social-btns.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-social-btns.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_Twitter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/Twitter */ "./node_modules/vue-material-design-icons/Twitter.vue"); +/* harmony import */ var $icons_GithubCircle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/GithubCircle */ "./node_modules/vue-material-design-icons/GithubCircle.vue"); +/* harmony import */ var $icons_Facebook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/Facebook */ "./node_modules/vue-material-design-icons/Facebook.vue"); +/* harmony import */ var $icons_Instagram__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/Instagram */ "./node_modules/vue-material-design-icons/Instagram.vue"); +/* harmony import */ var $icons_Telegram__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! $icons/Telegram */ "./node_modules/vue-material-design-icons/Telegram.vue"); +/* harmony import */ var $icons_Steam__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! $icons/Steam */ "./node_modules/vue-material-design-icons/Steam.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'user-social-btns', + props: { + user: { + type: Object, + required: true + }, + size: { + type: Number, + default: 16 + }, + spacing: { + type: Number, + default: 8 + } + }, + computed: { + btnClass: function btnClass() { + return "text-".concat(this.size, " spacing-").concat(this.spacing); + } + }, + components: { + TwitterIcon: $icons_Twitter__WEBPACK_IMPORTED_MODULE_0__["default"], + GithubIcon: $icons_GithubCircle__WEBPACK_IMPORTED_MODULE_1__["default"], + FacebookIcon: $icons_Facebook__WEBPACK_IMPORTED_MODULE_2__["default"], + InstagramIcon: $icons_Instagram__WEBPACK_IMPORTED_MODULE_3__["default"], + TelegramIcon: $icons_Telegram__WEBPACK_IMPORTED_MODULE_4__["default"], + SteamIcon: $icons_Steam__WEBPACK_IMPORTED_MODULE_5__["default"] + } +}); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss&": +/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss& ***! + \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, "", ""]); + + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss&": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss& ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=template&id=622cc129&": +/*!**************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/hot-tags.vue?vue&type=template&id=622cc129& ***! + \**************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box text-gray-50" }, [ + _vm._m(0), + _vm._v(" "), + _c( + "ul", + { staticClass: "plan-list text-13" }, + [ + _vm._l(_vm.nodes, function(node) { + return [ + _c( + "router-link", + { + key: node.id, + staticClass: "py-1 cursor-pointer", + attrs: { + tag: "li", + to: { name: "nodes.node", params: { id: node.id } } + } + }, + [ + _vm._v("\n #" + _vm._s(node.title) + " "), + _c("span", { staticClass: "float-right" }, [ + _vm._v(_vm._s(node.cache ? node.cache.threads_count : 0)) + ]) + ] + ) + ] + }) + ], + 2 + ) + ]) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box-heading" }, [ + _c("div", { staticClass: "text-13" }, [_vm._v("热门话题")]) + ]) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-social-btns.vue?vue&type=template&id=1e242af6&scoped=true&": +/*!**********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-social-btns.vue?vue&type=template&id=1e242af6&scoped=true& ***! + \**********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { staticClass: "user-social-btns d-flex justify-content-start flex-wrap" }, + [ + _vm.user.extends.github + ? _c( + "a", + { + staticClass: "btn btn-dark btn-icon", + class: _vm.btnClass, + attrs: { + href: "https://github.com/" + _vm.user.extends.github, + target: "_blank" + } + }, + [_c("github-icon")], + 1 + ) + : _vm._e(), + _vm._v(" "), + _vm.user.extends.twitter + ? _c( + "a", + { + staticClass: "btn btn-twitter btn-icon", + class: _vm.btnClass, + attrs: { + href: "https://twitter.com/" + _vm.user.extends.twitter, + target: "_blank" + } + }, + [_c("twitter-icon")], + 1 + ) + : _vm._e(), + _vm._v(" "), + _vm.user.extends.facebook + ? _c( + "a", + { + staticClass: "btn btn-facebook btn-icon", + class: _vm.btnClass, + attrs: { + href: "https://www.facebook.com/" + _vm.user.extends.facebook, + target: "_blank" + } + }, + [_c("facebook-icon")], + 1 + ) + : _vm._e(), + _vm._v(" "), + _vm.user.extends.instagram + ? _c( + "a", + { + staticClass: "btn btn-orange btn-icon text-white", + class: _vm.btnClass, + attrs: { + href: "https://www.instagram.com/" + _vm.user.extends.instagram, + target: "_blank" + } + }, + [_c("instagram-icon")], + 1 + ) + : _vm._e(), + _vm._v(" "), + _vm.user.extends.telegram + ? _c( + "a", + { + staticClass: "btn btn-teal-blue btn-icon text-white", + class: _vm.btnClass, + attrs: { + href: "https://t.me/" + _vm.user.extends.telegram, + target: "_blank" + } + }, + [_c("telegram-icon")], + 1 + ) + : _vm._e(), + _vm._v(" "), + _vm.user.extends.steam + ? _c( + "a", + { + staticClass: "btn btn-payne-grey btn-icon text-white", + class: _vm.btnClass, + attrs: { + href: "https://steamcommunity.com/id/" + _vm.user.extends.steam, + target: "_blank" + } + }, + [_c("steam-icon")], + 1 + ) + : _vm._e() + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/hot-tags.vue": +/*!*************************************!*\ + !*** ./src/components/hot-tags.vue ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hot-tags.vue?vue&type=template&id=622cc129& */ "./src/components/hot-tags.vue?vue&type=template&id=622cc129&"); +/* harmony import */ var _hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hot-tags.vue?vue&type=script&lang=js& */ "./src/components/hot-tags.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["render"], + _hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/hot-tags.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/hot-tags.vue?vue&type=script&lang=js&": +/*!**************************************************************!*\ + !*** ./src/components/hot-tags.vue?vue&type=script&lang=js& ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./hot-tags.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/hot-tags.vue?vue&type=template&id=622cc129&": +/*!********************************************************************!*\ + !*** ./src/components/hot-tags.vue?vue&type=template&id=622cc129& ***! + \********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./hot-tags.vue?vue&type=template&id=622cc129& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=template&id=622cc129&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/user-social-btns.vue": +/*!*********************************************!*\ + !*** ./src/components/user-social-btns.vue ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _user_social_btns_vue_vue_type_template_id_1e242af6_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user-social-btns.vue?vue&type=template&id=1e242af6&scoped=true& */ "./src/components/user-social-btns.vue?vue&type=template&id=1e242af6&scoped=true&"); +/* harmony import */ var _user_social_btns_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user-social-btns.vue?vue&type=script&lang=js& */ "./src/components/user-social-btns.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _user_social_btns_vue_vue_type_style_index_0_id_1e242af6_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss& */ "./src/components/user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _user_social_btns_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _user_social_btns_vue_vue_type_template_id_1e242af6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"], + _user_social_btns_vue_vue_type_template_id_1e242af6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + "1e242af6", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/user-social-btns.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/user-social-btns.vue?vue&type=script&lang=js&": +/*!**********************************************************************!*\ + !*** ./src/components/user-social-btns.vue?vue&type=script&lang=js& ***! + \**********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./user-social-btns.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-social-btns.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss&": +/*!*******************************************************************************************************!*\ + !*** ./src/components/user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss& ***! + \*******************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_style_index_0_id_1e242af6_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../node_modules/style-loader!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_style_index_0_id_1e242af6_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_style_index_0_id_1e242af6_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_style_index_0_id_1e242af6_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_style_index_0_id_1e242af6_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_style_index_0_id_1e242af6_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/components/user-social-btns.vue?vue&type=template&id=1e242af6&scoped=true&": +/*!****************************************************************************************!*\ + !*** ./src/components/user-social-btns.vue?vue&type=template&id=1e242af6&scoped=true& ***! + \****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_template_id_1e242af6_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./user-social-btns.vue?vue&type=template&id=1e242af6&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-social-btns.vue?vue&type=template&id=1e242af6&scoped=true&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_template_id_1e242af6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_template_id_1e242af6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/14.644007cb2e6d0ab3b33b.js b/public/14.644007cb2e6d0ab3b33b.js new file mode 100644 index 00000000..3c5850c3 --- /dev/null +++ b/public/14.644007cb2e6d0ab3b33b.js @@ -0,0 +1,259 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[14],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/oauth.vue?vue&type=script&lang=js&": +/*!*********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/auth/oauth.vue?vue&type=script&lang=js& ***! + \*********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'oauth', + mounted: function mounted() { + var _this = this; + + var platform = this.$route.params.platform; + + if (this.$route.name === 'auth.oauth_redirect') { + this.$http.get('oauth/redirect-url/' + platform).then(function (redirectUrl) { + window.location = redirectUrl; + }); + } else { + this.$http.get('oauth/callback/' + platform).then(function (response) { + _this.$store.dispatch('setToken', response.token); + + _this.$store.dispatch('setUser', response.user); + + _this.$store.dispatch('loadUser'); + + _this.$message.success('欢迎回来~'); + + if (window.opener) { + window.opener.location.reload(); + window.close(); + } else { + window.location.href = '/'; + } + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/oauth.vue?vue&type=template&id=eb049ade&": +/*!*************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/auth/oauth.vue?vue&type=template&id=eb049ade& ***! + \*************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "oauth-redirect text-center p-5" }, [ + _vm.$route.name == "auth.oauth_redirect" + ? _c("div", [ + _vm._v("Redirecting to " + _vm._s(_vm.$route.params.platform) + "...") + ]) + : _c("div", [_vm._v("Fetching user info...")]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./src/modules/auth/oauth.vue": +/*!************************************!*\ + !*** ./src/modules/auth/oauth.vue ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _oauth_vue_vue_type_template_id_eb049ade___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./oauth.vue?vue&type=template&id=eb049ade& */ "./src/modules/auth/oauth.vue?vue&type=template&id=eb049ade&"); +/* harmony import */ var _oauth_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./oauth.vue?vue&type=script&lang=js& */ "./src/modules/auth/oauth.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _oauth_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _oauth_vue_vue_type_template_id_eb049ade___WEBPACK_IMPORTED_MODULE_0__["render"], + _oauth_vue_vue_type_template_id_eb049ade___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/auth/oauth.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/auth/oauth.vue?vue&type=script&lang=js&": +/*!*************************************************************!*\ + !*** ./src/modules/auth/oauth.vue?vue&type=script&lang=js& ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_oauth_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./oauth.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/oauth.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_oauth_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/auth/oauth.vue?vue&type=template&id=eb049ade&": +/*!*******************************************************************!*\ + !*** ./src/modules/auth/oauth.vue?vue&type=template&id=eb049ade& ***! + \*******************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_oauth_vue_vue_type_template_id_eb049ade___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./oauth.vue?vue&type=template&id=eb049ade& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/oauth.vue?vue&type=template&id=eb049ade&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_oauth_vue_vue_type_template_id_eb049ade___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_oauth_vue_vue_type_template_id_eb049ade___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/15.556bc6b46922981b0249.js b/public/15.556bc6b46922981b0249.js new file mode 100644 index 00000000..d9176614 --- /dev/null +++ b/public/15.556bc6b46922981b0249.js @@ -0,0 +1,2621 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[15],{ + +/***/ "./node_modules/popper.js/dist/esm/popper.js": +/*!***************************************************!*\ + !*** ./node_modules/popper.js/dist/esm/popper.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* WEBPACK VAR INJECTION */(function(global) {/**! + * @fileOverview Kickass library to create and place poppers near their reference elements. + * @version 1.15.0 + * @license + * Copyright (c) 2016 Federico Zivolo and contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined'; + +var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox']; +var timeoutDuration = 0; +for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) { + if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) { + timeoutDuration = 1; + break; + } +} + +function microtaskDebounce(fn) { + var called = false; + return function () { + if (called) { + return; + } + called = true; + window.Promise.resolve().then(function () { + called = false; + fn(); + }); + }; +} + +function taskDebounce(fn) { + var scheduled = false; + return function () { + if (!scheduled) { + scheduled = true; + setTimeout(function () { + scheduled = false; + fn(); + }, timeoutDuration); + } + }; +} + +var supportsMicroTasks = isBrowser && window.Promise; + +/** +* Create a debounced version of a method, that's asynchronously deferred +* but called in the minimum time possible. +* +* @method +* @memberof Popper.Utils +* @argument {Function} fn +* @returns {Function} +*/ +var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce; + +/** + * Check if the given variable is a function + * @method + * @memberof Popper.Utils + * @argument {Any} functionToCheck - variable to check + * @returns {Boolean} answer to: is a function? + */ +function isFunction(functionToCheck) { + var getType = {}; + return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; +} + +/** + * Get CSS computed property of the given element + * @method + * @memberof Popper.Utils + * @argument {Eement} element + * @argument {String} property + */ +function getStyleComputedProperty(element, property) { + if (element.nodeType !== 1) { + return []; + } + // NOTE: 1 DOM access here + var window = element.ownerDocument.defaultView; + var css = window.getComputedStyle(element, null); + return property ? css[property] : css; +} + +/** + * Returns the parentNode or the host of the element + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} parent + */ +function getParentNode(element) { + if (element.nodeName === 'HTML') { + return element; + } + return element.parentNode || element.host; +} + +/** + * Returns the scrolling parent of the given element + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} scroll parent + */ +function getScrollParent(element) { + // Return body, `getScroll` will take care to get the correct `scrollTop` from it + if (!element) { + return document.body; + } + + switch (element.nodeName) { + case 'HTML': + case 'BODY': + return element.ownerDocument.body; + case '#document': + return element.body; + } + + // Firefox want us to check `-x` and `-y` variations as well + + var _getStyleComputedProp = getStyleComputedProperty(element), + overflow = _getStyleComputedProp.overflow, + overflowX = _getStyleComputedProp.overflowX, + overflowY = _getStyleComputedProp.overflowY; + + if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) { + return element; + } + + return getScrollParent(getParentNode(element)); +} + +var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode); +var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent); + +/** + * Determines if the browser is Internet Explorer + * @method + * @memberof Popper.Utils + * @param {Number} version to check + * @returns {Boolean} isIE + */ +function isIE(version) { + if (version === 11) { + return isIE11; + } + if (version === 10) { + return isIE10; + } + return isIE11 || isIE10; +} + +/** + * Returns the offset parent of the given element + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} offset parent + */ +function getOffsetParent(element) { + if (!element) { + return document.documentElement; + } + + var noOffsetParent = isIE(10) ? document.body : null; + + // NOTE: 1 DOM access here + var offsetParent = element.offsetParent || null; + // Skip hidden elements which don't have an offsetParent + while (offsetParent === noOffsetParent && element.nextElementSibling) { + offsetParent = (element = element.nextElementSibling).offsetParent; + } + + var nodeName = offsetParent && offsetParent.nodeName; + + if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') { + return element ? element.ownerDocument.documentElement : document.documentElement; + } + + // .offsetParent will return the closest TH, TD or TABLE in case + // no offsetParent is present, I hate this job... + if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') { + return getOffsetParent(offsetParent); + } + + return offsetParent; +} + +function isOffsetContainer(element) { + var nodeName = element.nodeName; + + if (nodeName === 'BODY') { + return false; + } + return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element; +} + +/** + * Finds the root node (document, shadowDOM root) of the given element + * @method + * @memberof Popper.Utils + * @argument {Element} node + * @returns {Element} root node + */ +function getRoot(node) { + if (node.parentNode !== null) { + return getRoot(node.parentNode); + } + + return node; +} + +/** + * Finds the offset parent common to the two provided nodes + * @method + * @memberof Popper.Utils + * @argument {Element} element1 + * @argument {Element} element2 + * @returns {Element} common offset parent + */ +function findCommonOffsetParent(element1, element2) { + // This check is needed to avoid errors in case one of the elements isn't defined for any reason + if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) { + return document.documentElement; + } + + // Here we make sure to give as "start" the element that comes first in the DOM + var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING; + var start = order ? element1 : element2; + var end = order ? element2 : element1; + + // Get common ancestor container + var range = document.createRange(); + range.setStart(start, 0); + range.setEnd(end, 0); + var commonAncestorContainer = range.commonAncestorContainer; + + // Both nodes are inside #document + + if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) { + if (isOffsetContainer(commonAncestorContainer)) { + return commonAncestorContainer; + } + + return getOffsetParent(commonAncestorContainer); + } + + // one of the nodes is inside shadowDOM, find which one + var element1root = getRoot(element1); + if (element1root.host) { + return findCommonOffsetParent(element1root.host, element2); + } else { + return findCommonOffsetParent(element1, getRoot(element2).host); + } +} + +/** + * Gets the scroll value of the given element in the given side (top and left) + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @argument {String} side `top` or `left` + * @returns {number} amount of scrolled pixels + */ +function getScroll(element) { + var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top'; + + var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft'; + var nodeName = element.nodeName; + + if (nodeName === 'BODY' || nodeName === 'HTML') { + var html = element.ownerDocument.documentElement; + var scrollingElement = element.ownerDocument.scrollingElement || html; + return scrollingElement[upperSide]; + } + + return element[upperSide]; +} + +/* + * Sum or subtract the element scroll values (left and top) from a given rect object + * @method + * @memberof Popper.Utils + * @param {Object} rect - Rect object you want to change + * @param {HTMLElement} element - The element from the function reads the scroll values + * @param {Boolean} subtract - set to true if you want to subtract the scroll values + * @return {Object} rect - The modifier rect object + */ +function includeScroll(rect, element) { + var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + var scrollTop = getScroll(element, 'top'); + var scrollLeft = getScroll(element, 'left'); + var modifier = subtract ? -1 : 1; + rect.top += scrollTop * modifier; + rect.bottom += scrollTop * modifier; + rect.left += scrollLeft * modifier; + rect.right += scrollLeft * modifier; + return rect; +} + +/* + * Helper to detect borders of a given element + * @method + * @memberof Popper.Utils + * @param {CSSStyleDeclaration} styles + * Result of `getStyleComputedProperty` on the given element + * @param {String} axis - `x` or `y` + * @return {number} borders - The borders size of the given axis + */ + +function getBordersSize(styles, axis) { + var sideA = axis === 'x' ? 'Left' : 'Top'; + var sideB = sideA === 'Left' ? 'Right' : 'Bottom'; + + return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10); +} + +function getSize(axis, body, html, computedStyle) { + return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0); +} + +function getWindowSizes(document) { + var body = document.body; + var html = document.documentElement; + var computedStyle = isIE(10) && getComputedStyle(html); + + return { + height: getSize('Height', body, html, computedStyle), + width: getSize('Width', body, html, computedStyle) + }; +} + +var classCallCheck = function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +}; + +var 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; + }; +}(); + + + + + +var defineProperty = function (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; +}; + +var _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; +}; + +/** + * Given element offsets, generate an output similar to getBoundingClientRect + * @method + * @memberof Popper.Utils + * @argument {Object} offsets + * @returns {Object} ClientRect like output + */ +function getClientRect(offsets) { + return _extends({}, offsets, { + right: offsets.left + offsets.width, + bottom: offsets.top + offsets.height + }); +} + +/** + * Get bounding client rect of given element + * @method + * @memberof Popper.Utils + * @param {HTMLElement} element + * @return {Object} client rect + */ +function getBoundingClientRect(element) { + var rect = {}; + + // IE10 10 FIX: Please, don't ask, the element isn't + // considered in DOM in some circumstances... + // This isn't reproducible in IE10 compatibility mode of IE11 + try { + if (isIE(10)) { + rect = element.getBoundingClientRect(); + var scrollTop = getScroll(element, 'top'); + var scrollLeft = getScroll(element, 'left'); + rect.top += scrollTop; + rect.left += scrollLeft; + rect.bottom += scrollTop; + rect.right += scrollLeft; + } else { + rect = element.getBoundingClientRect(); + } + } catch (e) {} + + var result = { + left: rect.left, + top: rect.top, + width: rect.right - rect.left, + height: rect.bottom - rect.top + }; + + // subtract scrollbar size from sizes + var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {}; + var width = sizes.width || element.clientWidth || result.right - result.left; + var height = sizes.height || element.clientHeight || result.bottom - result.top; + + var horizScrollbar = element.offsetWidth - width; + var vertScrollbar = element.offsetHeight - height; + + // if an hypothetical scrollbar is detected, we must be sure it's not a `border` + // we make this check conditional for performance reasons + if (horizScrollbar || vertScrollbar) { + var styles = getStyleComputedProperty(element); + horizScrollbar -= getBordersSize(styles, 'x'); + vertScrollbar -= getBordersSize(styles, 'y'); + + result.width -= horizScrollbar; + result.height -= vertScrollbar; + } + + return getClientRect(result); +} + +function getOffsetRectRelativeToArbitraryNode(children, parent) { + var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + var isIE10 = isIE(10); + var isHTML = parent.nodeName === 'HTML'; + var childrenRect = getBoundingClientRect(children); + var parentRect = getBoundingClientRect(parent); + var scrollParent = getScrollParent(children); + + var styles = getStyleComputedProperty(parent); + var borderTopWidth = parseFloat(styles.borderTopWidth, 10); + var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10); + + // In cases where the parent is fixed, we must ignore negative scroll in offset calc + if (fixedPosition && isHTML) { + parentRect.top = Math.max(parentRect.top, 0); + parentRect.left = Math.max(parentRect.left, 0); + } + var offsets = getClientRect({ + top: childrenRect.top - parentRect.top - borderTopWidth, + left: childrenRect.left - parentRect.left - borderLeftWidth, + width: childrenRect.width, + height: childrenRect.height + }); + offsets.marginTop = 0; + offsets.marginLeft = 0; + + // Subtract margins of documentElement in case it's being used as parent + // we do this only on HTML because it's the only element that behaves + // differently when margins are applied to it. The margins are included in + // the box of the documentElement, in the other cases not. + if (!isIE10 && isHTML) { + var marginTop = parseFloat(styles.marginTop, 10); + var marginLeft = parseFloat(styles.marginLeft, 10); + + offsets.top -= borderTopWidth - marginTop; + offsets.bottom -= borderTopWidth - marginTop; + offsets.left -= borderLeftWidth - marginLeft; + offsets.right -= borderLeftWidth - marginLeft; + + // Attach marginTop and marginLeft because in some circumstances we may need them + offsets.marginTop = marginTop; + offsets.marginLeft = marginLeft; + } + + if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') { + offsets = includeScroll(offsets, parent); + } + + return offsets; +} + +function getViewportOffsetRectRelativeToArtbitraryNode(element) { + var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + var html = element.ownerDocument.documentElement; + var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html); + var width = Math.max(html.clientWidth, window.innerWidth || 0); + var height = Math.max(html.clientHeight, window.innerHeight || 0); + + var scrollTop = !excludeScroll ? getScroll(html) : 0; + var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0; + + var offset = { + top: scrollTop - relativeOffset.top + relativeOffset.marginTop, + left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft, + width: width, + height: height + }; + + return getClientRect(offset); +} + +/** + * Check if the given element is fixed or is inside a fixed parent + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @argument {Element} customContainer + * @returns {Boolean} answer to "isFixed?" + */ +function isFixed(element) { + var nodeName = element.nodeName; + if (nodeName === 'BODY' || nodeName === 'HTML') { + return false; + } + if (getStyleComputedProperty(element, 'position') === 'fixed') { + return true; + } + var parentNode = getParentNode(element); + if (!parentNode) { + return false; + } + return isFixed(parentNode); +} + +/** + * Finds the first parent of an element that has a transformed property defined + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} first transformed parent or documentElement + */ + +function getFixedPositionOffsetParent(element) { + // This check is needed to avoid errors in case one of the elements isn't defined for any reason + if (!element || !element.parentElement || isIE()) { + return document.documentElement; + } + var el = element.parentElement; + while (el && getStyleComputedProperty(el, 'transform') === 'none') { + el = el.parentElement; + } + return el || document.documentElement; +} + +/** + * Computed the boundaries limits and return them + * @method + * @memberof Popper.Utils + * @param {HTMLElement} popper + * @param {HTMLElement} reference + * @param {number} padding + * @param {HTMLElement} boundariesElement - Element used to define the boundaries + * @param {Boolean} fixedPosition - Is in fixed position mode + * @returns {Object} Coordinates of the boundaries + */ +function getBoundaries(popper, reference, padding, boundariesElement) { + var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + + // NOTE: 1 DOM access here + + var boundaries = { top: 0, left: 0 }; + var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference); + + // Handle viewport case + if (boundariesElement === 'viewport') { + boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition); + } else { + // Handle other cases based on DOM element used as boundaries + var boundariesNode = void 0; + if (boundariesElement === 'scrollParent') { + boundariesNode = getScrollParent(getParentNode(reference)); + if (boundariesNode.nodeName === 'BODY') { + boundariesNode = popper.ownerDocument.documentElement; + } + } else if (boundariesElement === 'window') { + boundariesNode = popper.ownerDocument.documentElement; + } else { + boundariesNode = boundariesElement; + } + + var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition); + + // In case of HTML, we need a different computation + if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) { + var _getWindowSizes = getWindowSizes(popper.ownerDocument), + height = _getWindowSizes.height, + width = _getWindowSizes.width; + + boundaries.top += offsets.top - offsets.marginTop; + boundaries.bottom = height + offsets.top; + boundaries.left += offsets.left - offsets.marginLeft; + boundaries.right = width + offsets.left; + } else { + // for all the other DOM elements, this one is good + boundaries = offsets; + } + } + + // Add paddings + padding = padding || 0; + var isPaddingNumber = typeof padding === 'number'; + boundaries.left += isPaddingNumber ? padding : padding.left || 0; + boundaries.top += isPaddingNumber ? padding : padding.top || 0; + boundaries.right -= isPaddingNumber ? padding : padding.right || 0; + boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; + + return boundaries; +} + +function getArea(_ref) { + var width = _ref.width, + height = _ref.height; + + return width * height; +} + +/** + * Utility used to transform the `auto` placement to the placement with more + * available space. + * @method + * @memberof Popper.Utils + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) { + var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0; + + if (placement.indexOf('auto') === -1) { + return placement; + } + + var boundaries = getBoundaries(popper, reference, padding, boundariesElement); + + var rects = { + top: { + width: boundaries.width, + height: refRect.top - boundaries.top + }, + right: { + width: boundaries.right - refRect.right, + height: boundaries.height + }, + bottom: { + width: boundaries.width, + height: boundaries.bottom - refRect.bottom + }, + left: { + width: refRect.left - boundaries.left, + height: boundaries.height + } + }; + + var sortedAreas = Object.keys(rects).map(function (key) { + return _extends({ + key: key + }, rects[key], { + area: getArea(rects[key]) + }); + }).sort(function (a, b) { + return b.area - a.area; + }); + + var filteredAreas = sortedAreas.filter(function (_ref2) { + var width = _ref2.width, + height = _ref2.height; + return width >= popper.clientWidth && height >= popper.clientHeight; + }); + + var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key; + + var variation = placement.split('-')[1]; + + return computedPlacement + (variation ? '-' + variation : ''); +} + +/** + * Get offsets to the reference element + * @method + * @memberof Popper.Utils + * @param {Object} state + * @param {Element} popper - the popper element + * @param {Element} reference - the reference element (the popper will be relative to this) + * @param {Element} fixedPosition - is in fixed position mode + * @returns {Object} An object containing the offsets which will be applied to the popper + */ +function getReferenceOffsets(state, popper, reference) { + var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + + var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference); + return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition); +} + +/** + * Get the outer sizes of the given element (offset size + margins) + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Object} object containing width and height properties + */ +function getOuterSizes(element) { + var window = element.ownerDocument.defaultView; + var styles = window.getComputedStyle(element); + var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0); + var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0); + var result = { + width: element.offsetWidth + y, + height: element.offsetHeight + x + }; + return result; +} + +/** + * Get the opposite placement of the given one + * @method + * @memberof Popper.Utils + * @argument {String} placement + * @returns {String} flipped placement + */ +function getOppositePlacement(placement) { + var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' }; + return placement.replace(/left|right|bottom|top/g, function (matched) { + return hash[matched]; + }); +} + +/** + * Get offsets to the popper + * @method + * @memberof Popper.Utils + * @param {Object} position - CSS position the Popper will get applied + * @param {HTMLElement} popper - the popper element + * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this) + * @param {String} placement - one of the valid placement options + * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper + */ +function getPopperOffsets(popper, referenceOffsets, placement) { + placement = placement.split('-')[0]; + + // Get popper node sizes + var popperRect = getOuterSizes(popper); + + // Add position, width and height to our offsets object + var popperOffsets = { + width: popperRect.width, + height: popperRect.height + }; + + // depending by the popper placement we have to compute its offsets slightly differently + var isHoriz = ['right', 'left'].indexOf(placement) !== -1; + var mainSide = isHoriz ? 'top' : 'left'; + var secondarySide = isHoriz ? 'left' : 'top'; + var measurement = isHoriz ? 'height' : 'width'; + var secondaryMeasurement = !isHoriz ? 'height' : 'width'; + + popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2; + if (placement === secondarySide) { + popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement]; + } else { + popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)]; + } + + return popperOffsets; +} + +/** + * Mimics the `find` method of Array + * @method + * @memberof Popper.Utils + * @argument {Array} arr + * @argument prop + * @argument value + * @returns index or -1 + */ +function find(arr, check) { + // use native find if supported + if (Array.prototype.find) { + return arr.find(check); + } + + // use `filter` to obtain the same behavior of `find` + return arr.filter(check)[0]; +} + +/** + * Return the index of the matching object + * @method + * @memberof Popper.Utils + * @argument {Array} arr + * @argument prop + * @argument value + * @returns index or -1 + */ +function findIndex(arr, prop, value) { + // use native findIndex if supported + if (Array.prototype.findIndex) { + return arr.findIndex(function (cur) { + return cur[prop] === value; + }); + } + + // use `find` + `indexOf` if `findIndex` isn't supported + var match = find(arr, function (obj) { + return obj[prop] === value; + }); + return arr.indexOf(match); +} + +/** + * Loop trough the list of modifiers and run them in order, + * each of them will then edit the data object. + * @method + * @memberof Popper.Utils + * @param {dataObject} data + * @param {Array} modifiers + * @param {String} ends - Optional modifier name used as stopper + * @returns {dataObject} + */ +function runModifiers(modifiers, data, ends) { + var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends)); + + modifiersToRun.forEach(function (modifier) { + if (modifier['function']) { + // eslint-disable-line dot-notation + console.warn('`modifier.function` is deprecated, use `modifier.fn`!'); + } + var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation + if (modifier.enabled && isFunction(fn)) { + // Add properties to offsets to make them a complete clientRect object + // we do this before each modifier to make sure the previous one doesn't + // mess with these values + data.offsets.popper = getClientRect(data.offsets.popper); + data.offsets.reference = getClientRect(data.offsets.reference); + + data = fn(data, modifier); + } + }); + + return data; +} + +/** + * Updates the position of the popper, computing the new offsets and applying + * the new style.
+ * Prefer `scheduleUpdate` over `update` because of performance reasons. + * @method + * @memberof Popper + */ +function update() { + // if popper is destroyed, don't perform any further update + if (this.state.isDestroyed) { + return; + } + + var data = { + instance: this, + styles: {}, + arrowStyles: {}, + attributes: {}, + flipped: false, + offsets: {} + }; + + // compute reference element offsets + data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); + + // compute auto placement, store placement inside the data object, + // modifiers will be able to edit `placement` if needed + // and refer to originalPlacement to know the original value + data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); + + // store the computed placement inside `originalPlacement` + data.originalPlacement = data.placement; + + data.positionFixed = this.options.positionFixed; + + // compute the popper offsets + data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement); + + data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute'; + + // run the modifiers + data = runModifiers(this.modifiers, data); + + // the first `update` will call `onCreate` callback + // the other ones will call `onUpdate` callback + if (!this.state.isCreated) { + this.state.isCreated = true; + this.options.onCreate(data); + } else { + this.options.onUpdate(data); + } +} + +/** + * Helper used to know if the given modifier is enabled. + * @method + * @memberof Popper.Utils + * @returns {Boolean} + */ +function isModifierEnabled(modifiers, modifierName) { + return modifiers.some(function (_ref) { + var name = _ref.name, + enabled = _ref.enabled; + return enabled && name === modifierName; + }); +} + +/** + * Get the prefixed supported property name + * @method + * @memberof Popper.Utils + * @argument {String} property (camelCase) + * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix) + */ +function getSupportedPropertyName(property) { + var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O']; + var upperProp = property.charAt(0).toUpperCase() + property.slice(1); + + for (var i = 0; i < prefixes.length; i++) { + var prefix = prefixes[i]; + var toCheck = prefix ? '' + prefix + upperProp : property; + if (typeof document.body.style[toCheck] !== 'undefined') { + return toCheck; + } + } + return null; +} + +/** + * Destroys the popper. + * @method + * @memberof Popper + */ +function destroy() { + this.state.isDestroyed = true; + + // touch DOM only if `applyStyle` modifier is enabled + if (isModifierEnabled(this.modifiers, 'applyStyle')) { + this.popper.removeAttribute('x-placement'); + this.popper.style.position = ''; + this.popper.style.top = ''; + this.popper.style.left = ''; + this.popper.style.right = ''; + this.popper.style.bottom = ''; + this.popper.style.willChange = ''; + this.popper.style[getSupportedPropertyName('transform')] = ''; + } + + this.disableEventListeners(); + + // remove the popper if user explicity asked for the deletion on destroy + // do not use `remove` because IE11 doesn't support it + if (this.options.removeOnDestroy) { + this.popper.parentNode.removeChild(this.popper); + } + return this; +} + +/** + * Get the window associated with the element + * @argument {Element} element + * @returns {Window} + */ +function getWindow(element) { + var ownerDocument = element.ownerDocument; + return ownerDocument ? ownerDocument.defaultView : window; +} + +function attachToScrollParents(scrollParent, event, callback, scrollParents) { + var isBody = scrollParent.nodeName === 'BODY'; + var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent; + target.addEventListener(event, callback, { passive: true }); + + if (!isBody) { + attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents); + } + scrollParents.push(target); +} + +/** + * Setup needed event listeners used to update the popper position + * @method + * @memberof Popper.Utils + * @private + */ +function setupEventListeners(reference, options, state, updateBound) { + // Resize event listener on window + state.updateBound = updateBound; + getWindow(reference).addEventListener('resize', state.updateBound, { passive: true }); + + // Scroll event listener on scroll parents + var scrollElement = getScrollParent(reference); + attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents); + state.scrollElement = scrollElement; + state.eventsEnabled = true; + + return state; +} + +/** + * It will add resize/scroll events and start recalculating + * position of the popper element when they are triggered. + * @method + * @memberof Popper + */ +function enableEventListeners() { + if (!this.state.eventsEnabled) { + this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate); + } +} + +/** + * Remove event listeners used to update the popper position + * @method + * @memberof Popper.Utils + * @private + */ +function removeEventListeners(reference, state) { + // Remove resize event listener on window + getWindow(reference).removeEventListener('resize', state.updateBound); + + // Remove scroll event listener on scroll parents + state.scrollParents.forEach(function (target) { + target.removeEventListener('scroll', state.updateBound); + }); + + // Reset state + state.updateBound = null; + state.scrollParents = []; + state.scrollElement = null; + state.eventsEnabled = false; + return state; +} + +/** + * It will remove resize/scroll events and won't recalculate popper position + * when they are triggered. It also won't trigger `onUpdate` callback anymore, + * unless you call `update` method manually. + * @method + * @memberof Popper + */ +function disableEventListeners() { + if (this.state.eventsEnabled) { + cancelAnimationFrame(this.scheduleUpdate); + this.state = removeEventListeners(this.reference, this.state); + } +} + +/** + * Tells if a given input is a number + * @method + * @memberof Popper.Utils + * @param {*} input to check + * @return {Boolean} + */ +function isNumeric(n) { + return n !== '' && !isNaN(parseFloat(n)) && isFinite(n); +} + +/** + * Set the style to the given popper + * @method + * @memberof Popper.Utils + * @argument {Element} element - Element to apply the style to + * @argument {Object} styles + * Object with a list of properties and values which will be applied to the element + */ +function setStyles(element, styles) { + Object.keys(styles).forEach(function (prop) { + var unit = ''; + // add unit if the value is numeric and is one of the following + if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) { + unit = 'px'; + } + element.style[prop] = styles[prop] + unit; + }); +} + +/** + * Set the attributes to the given popper + * @method + * @memberof Popper.Utils + * @argument {Element} element - Element to apply the attributes to + * @argument {Object} styles + * Object with a list of properties and values which will be applied to the element + */ +function setAttributes(element, attributes) { + Object.keys(attributes).forEach(function (prop) { + var value = attributes[prop]; + if (value !== false) { + element.setAttribute(prop, attributes[prop]); + } else { + element.removeAttribute(prop); + } + }); +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} data.styles - List of style properties - values to apply to popper element + * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The same data object + */ +function applyStyle(data) { + // any property present in `data.styles` will be applied to the popper, + // in this way we can make the 3rd party modifiers add custom styles to it + // Be aware, modifiers could override the properties defined in the previous + // lines of this modifier! + setStyles(data.instance.popper, data.styles); + + // any property present in `data.attributes` will be applied to the popper, + // they will be set as HTML attributes of the element + setAttributes(data.instance.popper, data.attributes); + + // if arrowElement is defined and arrowStyles has some properties + if (data.arrowElement && Object.keys(data.arrowStyles).length) { + setStyles(data.arrowElement, data.arrowStyles); + } + + return data; +} + +/** + * Set the x-placement attribute before everything else because it could be used + * to add margins to the popper margins needs to be calculated to get the + * correct popper offsets. + * @method + * @memberof Popper.modifiers + * @param {HTMLElement} reference - The reference element used to position the popper + * @param {HTMLElement} popper - The HTML element used as popper + * @param {Object} options - Popper.js options + */ +function applyStyleOnLoad(reference, popper, options, modifierOptions, state) { + // compute reference element offsets + var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed); + + // compute auto placement, store placement inside the data object, + // modifiers will be able to edit `placement` if needed + // and refer to originalPlacement to know the original value + var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding); + + popper.setAttribute('x-placement', placement); + + // Apply `position` to popper before anything else because + // without the position applied we can't guarantee correct computations + setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' }); + + return options; +} + +/** + * @function + * @memberof Popper.Utils + * @argument {Object} data - The data object generated by `update` method + * @argument {Boolean} shouldRound - If the offsets should be rounded at all + * @returns {Object} The popper's position offsets rounded + * + * The tale of pixel-perfect positioning. It's still not 100% perfect, but as + * good as it can be within reason. + * Discussion here: https://github.com/FezVrasta/popper.js/pull/715 + * + * Low DPI screens cause a popper to be blurry if not using full pixels (Safari + * as well on High DPI screens). + * + * Firefox prefers no rounding for positioning and does not have blurriness on + * high DPI screens. + * + * Only horizontal placement and left/right values need to be considered. + */ +function getRoundedOffsets(data, shouldRound) { + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + var round = Math.round, + floor = Math.floor; + + var noRound = function noRound(v) { + return v; + }; + + var referenceWidth = round(reference.width); + var popperWidth = round(popper.width); + + var isVertical = ['left', 'right'].indexOf(data.placement) !== -1; + var isVariation = data.placement.indexOf('-') !== -1; + var sameWidthParity = referenceWidth % 2 === popperWidth % 2; + var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1; + + var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor; + var verticalToInteger = !shouldRound ? noRound : round; + + return { + left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left), + top: verticalToInteger(popper.top), + bottom: verticalToInteger(popper.bottom), + right: horizontalToInteger(popper.right) + }; +} + +var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent); + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function computeStyle(data, options) { + var x = options.x, + y = options.y; + var popper = data.offsets.popper; + + // Remove this legacy support in Popper.js v2 + + var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) { + return modifier.name === 'applyStyle'; + }).gpuAcceleration; + if (legacyGpuAccelerationOption !== undefined) { + console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'); + } + var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration; + + var offsetParent = getOffsetParent(data.instance.popper); + var offsetParentRect = getBoundingClientRect(offsetParent); + + // Styles + var styles = { + position: popper.position + }; + + var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox); + + var sideA = x === 'bottom' ? 'top' : 'bottom'; + var sideB = y === 'right' ? 'left' : 'right'; + + // if gpuAcceleration is set to `true` and transform is supported, + // we use `translate3d` to apply the position to the popper we + // automatically use the supported prefixed version if needed + var prefixedProperty = getSupportedPropertyName('transform'); + + // now, let's make a step back and look at this code closely (wtf?) + // If the content of the popper grows once it's been positioned, it + // may happen that the popper gets misplaced because of the new content + // overflowing its reference element + // To avoid this problem, we provide two options (x and y), which allow + // the consumer to define the offset origin. + // If we position a popper on top of a reference element, we can set + // `x` to `top` to make the popper grow towards its top instead of + // its bottom. + var left = void 0, + top = void 0; + if (sideA === 'bottom') { + // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar) + // and not the bottom of the html element + if (offsetParent.nodeName === 'HTML') { + top = -offsetParent.clientHeight + offsets.bottom; + } else { + top = -offsetParentRect.height + offsets.bottom; + } + } else { + top = offsets.top; + } + if (sideB === 'right') { + if (offsetParent.nodeName === 'HTML') { + left = -offsetParent.clientWidth + offsets.right; + } else { + left = -offsetParentRect.width + offsets.right; + } + } else { + left = offsets.left; + } + if (gpuAcceleration && prefixedProperty) { + styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)'; + styles[sideA] = 0; + styles[sideB] = 0; + styles.willChange = 'transform'; + } else { + // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties + var invertTop = sideA === 'bottom' ? -1 : 1; + var invertLeft = sideB === 'right' ? -1 : 1; + styles[sideA] = top * invertTop; + styles[sideB] = left * invertLeft; + styles.willChange = sideA + ', ' + sideB; + } + + // Attributes + var attributes = { + 'x-placement': data.placement + }; + + // Update `data` attributes, styles and arrowStyles + data.attributes = _extends({}, attributes, data.attributes); + data.styles = _extends({}, styles, data.styles); + data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles); + + return data; +} + +/** + * Helper used to know if the given modifier depends from another one.
+ * It checks if the needed modifier is listed and enabled. + * @method + * @memberof Popper.Utils + * @param {Array} modifiers - list of modifiers + * @param {String} requestingName - name of requesting modifier + * @param {String} requestedName - name of requested modifier + * @returns {Boolean} + */ +function isModifierRequired(modifiers, requestingName, requestedName) { + var requesting = find(modifiers, function (_ref) { + var name = _ref.name; + return name === requestingName; + }); + + var isRequired = !!requesting && modifiers.some(function (modifier) { + return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order; + }); + + if (!isRequired) { + var _requesting = '`' + requestingName + '`'; + var requested = '`' + requestedName + '`'; + console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!'); + } + return isRequired; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function arrow(data, options) { + var _data$offsets$arrow; + + // arrow depends on keepTogether in order to work + if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) { + return data; + } + + var arrowElement = options.element; + + // if arrowElement is a string, suppose it's a CSS selector + if (typeof arrowElement === 'string') { + arrowElement = data.instance.popper.querySelector(arrowElement); + + // if arrowElement is not found, don't run the modifier + if (!arrowElement) { + return data; + } + } else { + // if the arrowElement isn't a query selector we must check that the + // provided DOM node is child of its popper node + if (!data.instance.popper.contains(arrowElement)) { + console.warn('WARNING: `arrow.element` must be child of its popper element!'); + return data; + } + } + + var placement = data.placement.split('-')[0]; + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var isVertical = ['left', 'right'].indexOf(placement) !== -1; + + var len = isVertical ? 'height' : 'width'; + var sideCapitalized = isVertical ? 'Top' : 'Left'; + var side = sideCapitalized.toLowerCase(); + var altSide = isVertical ? 'left' : 'top'; + var opSide = isVertical ? 'bottom' : 'right'; + var arrowElementSize = getOuterSizes(arrowElement)[len]; + + // + // extends keepTogether behavior making sure the popper and its + // reference have enough pixels in conjunction + // + + // top/left side + if (reference[opSide] - arrowElementSize < popper[side]) { + data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize); + } + // bottom/right side + if (reference[side] + arrowElementSize > popper[opSide]) { + data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide]; + } + data.offsets.popper = getClientRect(data.offsets.popper); + + // compute center of the popper + var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; + + // Compute the sideValue using the updated popper offsets + // take popper margin in account because we don't have this info available + var css = getStyleComputedProperty(data.instance.popper); + var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10); + var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10); + var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; + + // prevent arrowElement from being placed not contiguously to its popper + sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0); + + data.arrowElement = arrowElement; + data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow); + + return data; +} + +/** + * Get the opposite placement variation of the given one + * @method + * @memberof Popper.Utils + * @argument {String} placement variation + * @returns {String} flipped placement variation + */ +function getOppositeVariation(variation) { + if (variation === 'end') { + return 'start'; + } else if (variation === 'start') { + return 'end'; + } + return variation; +} + +/** + * List of accepted placements to use as values of the `placement` option.
+ * Valid placements are: + * - `auto` + * - `top` + * - `right` + * - `bottom` + * - `left` + * + * Each placement can have a variation from this list: + * - `-start` + * - `-end` + * + * Variations are interpreted easily if you think of them as the left to right + * written languages. Horizontally (`top` and `bottom`), `start` is left and `end` + * is right.
+ * Vertically (`left` and `right`), `start` is top and `end` is bottom. + * + * Some valid examples are: + * - `top-end` (on top of reference, right aligned) + * - `right-start` (on right of reference, top aligned) + * - `bottom` (on bottom, centered) + * - `auto-end` (on the side with more space available, alignment depends by placement) + * + * @static + * @type {Array} + * @enum {String} + * @readonly + * @method placements + * @memberof Popper + */ +var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; + +// Get rid of `auto` `auto-start` and `auto-end` +var validPlacements = placements.slice(3); + +/** + * Given an initial placement, returns all the subsequent placements + * clockwise (or counter-clockwise). + * + * @method + * @memberof Popper.Utils + * @argument {String} placement - A valid placement (it accepts variations) + * @argument {Boolean} counter - Set to true to walk the placements counterclockwise + * @returns {Array} placements including their variations + */ +function clockwise(placement) { + var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + var index = validPlacements.indexOf(placement); + var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index)); + return counter ? arr.reverse() : arr; +} + +var BEHAVIORS = { + FLIP: 'flip', + CLOCKWISE: 'clockwise', + COUNTERCLOCKWISE: 'counterclockwise' +}; + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function flip(data, options) { + // if `inner` modifier is enabled, we can't use the `flip` modifier + if (isModifierEnabled(data.instance.modifiers, 'inner')) { + return data; + } + + if (data.flipped && data.placement === data.originalPlacement) { + // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides + return data; + } + + var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed); + + var placement = data.placement.split('-')[0]; + var placementOpposite = getOppositePlacement(placement); + var variation = data.placement.split('-')[1] || ''; + + var flipOrder = []; + + switch (options.behavior) { + case BEHAVIORS.FLIP: + flipOrder = [placement, placementOpposite]; + break; + case BEHAVIORS.CLOCKWISE: + flipOrder = clockwise(placement); + break; + case BEHAVIORS.COUNTERCLOCKWISE: + flipOrder = clockwise(placement, true); + break; + default: + flipOrder = options.behavior; + } + + flipOrder.forEach(function (step, index) { + if (placement !== step || flipOrder.length === index + 1) { + return data; + } + + placement = data.placement.split('-')[0]; + placementOpposite = getOppositePlacement(placement); + + var popperOffsets = data.offsets.popper; + var refOffsets = data.offsets.reference; + + // using floor because the reference offsets may contain decimals we are not going to consider here + var floor = Math.floor; + var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom); + + var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left); + var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right); + var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top); + var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom); + + var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; + + // flip the variation if required + var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; + + // flips variation if reference element overflows boundaries + var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); + + // flips variation if popper content overflows boundaries + var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop); + + var flippedVariation = flippedVariationByRef || flippedVariationByContent; + + if (overlapsRef || overflowsBoundaries || flippedVariation) { + // this boolean to detect any flip loop + data.flipped = true; + + if (overlapsRef || overflowsBoundaries) { + placement = flipOrder[index + 1]; + } + + if (flippedVariation) { + variation = getOppositeVariation(variation); + } + + data.placement = placement + (variation ? '-' + variation : ''); + + // this object contains `position`, we want to preserve it along with + // any additional property we may add in the future + data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement)); + + data = runModifiers(data.instance.modifiers, data, 'flip'); + } + }); + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function keepTogether(data) { + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var placement = data.placement.split('-')[0]; + var floor = Math.floor; + var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; + var side = isVertical ? 'right' : 'bottom'; + var opSide = isVertical ? 'left' : 'top'; + var measurement = isVertical ? 'width' : 'height'; + + if (popper[side] < floor(reference[opSide])) { + data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement]; + } + if (popper[opSide] > floor(reference[side])) { + data.offsets.popper[opSide] = floor(reference[side]); + } + + return data; +} + +/** + * Converts a string containing value + unit into a px value number + * @function + * @memberof {modifiers~offset} + * @private + * @argument {String} str - Value + unit string + * @argument {String} measurement - `height` or `width` + * @argument {Object} popperOffsets + * @argument {Object} referenceOffsets + * @returns {Number|String} + * Value in pixels, or original string if no values were extracted + */ +function toValue(str, measurement, popperOffsets, referenceOffsets) { + // separate value from unit + var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/); + var value = +split[1]; + var unit = split[2]; + + // If it's not a number it's an operator, I guess + if (!value) { + return str; + } + + if (unit.indexOf('%') === 0) { + var element = void 0; + switch (unit) { + case '%p': + element = popperOffsets; + break; + case '%': + case '%r': + default: + element = referenceOffsets; + } + + var rect = getClientRect(element); + return rect[measurement] / 100 * value; + } else if (unit === 'vh' || unit === 'vw') { + // if is a vh or vw, we calculate the size based on the viewport + var size = void 0; + if (unit === 'vh') { + size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); + } else { + size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); + } + return size / 100 * value; + } else { + // if is an explicit pixel unit, we get rid of the unit and keep the value + // if is an implicit unit, it's px, and we return just the value + return value; + } +} + +/** + * Parse an `offset` string to extrapolate `x` and `y` numeric offsets. + * @function + * @memberof {modifiers~offset} + * @private + * @argument {String} offset + * @argument {Object} popperOffsets + * @argument {Object} referenceOffsets + * @argument {String} basePlacement + * @returns {Array} a two cells array with x and y offsets in numbers + */ +function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) { + var offsets = [0, 0]; + + // Use height if placement is left or right and index is 0 otherwise use width + // in this way the first offset will use an axis and the second one + // will use the other one + var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; + + // Split the offset string to obtain a list of values and operands + // The regex addresses values with the plus or minus sign in front (+10, -20, etc) + var fragments = offset.split(/(\+|\-)/).map(function (frag) { + return frag.trim(); + }); + + // Detect if the offset string contains a pair of values or a single one + // they could be separated by comma or space + var divider = fragments.indexOf(find(fragments, function (frag) { + return frag.search(/,|\s/) !== -1; + })); + + if (fragments[divider] && fragments[divider].indexOf(',') === -1) { + console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.'); + } + + // If divider is found, we divide the list of values and operands to divide + // them by ofset X and Y. + var splitRegex = /\s*,\s*|\s+/; + var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; + + // Convert the values with units to absolute pixels to allow our computations + ops = ops.map(function (op, index) { + // Most of the units rely on the orientation of the popper + var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width'; + var mergeWithPrevious = false; + return op + // This aggregates any `+` or `-` sign that aren't considered operators + // e.g.: 10 + +5 => [10, +, +5] + .reduce(function (a, b) { + if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) { + a[a.length - 1] = b; + mergeWithPrevious = true; + return a; + } else if (mergeWithPrevious) { + a[a.length - 1] += b; + mergeWithPrevious = false; + return a; + } else { + return a.concat(b); + } + }, []) + // Here we convert the string values into number values (in px) + .map(function (str) { + return toValue(str, measurement, popperOffsets, referenceOffsets); + }); + }); + + // Loop trough the offsets arrays and execute the operations + ops.forEach(function (op, index) { + op.forEach(function (frag, index2) { + if (isNumeric(frag)) { + offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1); + } + }); + }); + return offsets; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @argument {Number|String} options.offset=0 + * The offset value as described in the modifier description + * @returns {Object} The data object, properly modified + */ +function offset(data, _ref) { + var offset = _ref.offset; + var placement = data.placement, + _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var basePlacement = placement.split('-')[0]; + + var offsets = void 0; + if (isNumeric(+offset)) { + offsets = [+offset, 0]; + } else { + offsets = parseOffset(offset, popper, reference, basePlacement); + } + + if (basePlacement === 'left') { + popper.top += offsets[0]; + popper.left -= offsets[1]; + } else if (basePlacement === 'right') { + popper.top += offsets[0]; + popper.left += offsets[1]; + } else if (basePlacement === 'top') { + popper.left += offsets[0]; + popper.top -= offsets[1]; + } else if (basePlacement === 'bottom') { + popper.left += offsets[0]; + popper.top += offsets[1]; + } + + data.popper = popper; + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function preventOverflow(data, options) { + var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); + + // If offsetParent is the reference element, we really want to + // go one step up and use the next offsetParent as reference to + // avoid to make this modifier completely useless and look like broken + if (data.instance.reference === boundariesElement) { + boundariesElement = getOffsetParent(boundariesElement); + } + + // NOTE: DOM access here + // resets the popper's position so that the document size can be calculated excluding + // the size of the popper element itself + var transformProp = getSupportedPropertyName('transform'); + var popperStyles = data.instance.popper.style; // assignment to help minification + var top = popperStyles.top, + left = popperStyles.left, + transform = popperStyles[transformProp]; + + popperStyles.top = ''; + popperStyles.left = ''; + popperStyles[transformProp] = ''; + + var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); + + // NOTE: DOM access here + // restores the original style properties after the offsets have been computed + popperStyles.top = top; + popperStyles.left = left; + popperStyles[transformProp] = transform; + + options.boundaries = boundaries; + + var order = options.priority; + var popper = data.offsets.popper; + + var check = { + primary: function primary(placement) { + var value = popper[placement]; + if (popper[placement] < boundaries[placement] && !options.escapeWithReference) { + value = Math.max(popper[placement], boundaries[placement]); + } + return defineProperty({}, placement, value); + }, + secondary: function secondary(placement) { + var mainSide = placement === 'right' ? 'left' : 'top'; + var value = popper[mainSide]; + if (popper[placement] > boundaries[placement] && !options.escapeWithReference) { + value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height)); + } + return defineProperty({}, mainSide, value); + } + }; + + order.forEach(function (placement) { + var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary'; + popper = _extends({}, popper, check[side](placement)); + }); + + data.offsets.popper = popper; + + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function shift(data) { + var placement = data.placement; + var basePlacement = placement.split('-')[0]; + var shiftvariation = placement.split('-')[1]; + + // if shift shiftvariation is specified, run the modifier + if (shiftvariation) { + var _data$offsets = data.offsets, + reference = _data$offsets.reference, + popper = _data$offsets.popper; + + var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1; + var side = isVertical ? 'left' : 'top'; + var measurement = isVertical ? 'width' : 'height'; + + var shiftOffsets = { + start: defineProperty({}, side, reference[side]), + end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement]) + }; + + data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]); + } + + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function hide(data) { + if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) { + return data; + } + + var refRect = data.offsets.reference; + var bound = find(data.instance.modifiers, function (modifier) { + return modifier.name === 'preventOverflow'; + }).boundaries; + + if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) { + // Avoid unnecessary DOM access if visibility hasn't changed + if (data.hide === true) { + return data; + } + + data.hide = true; + data.attributes['x-out-of-boundaries'] = ''; + } else { + // Avoid unnecessary DOM access if visibility hasn't changed + if (data.hide === false) { + return data; + } + + data.hide = false; + data.attributes['x-out-of-boundaries'] = false; + } + + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function inner(data) { + var placement = data.placement; + var basePlacement = placement.split('-')[0]; + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1; + + var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1; + + popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0); + + data.placement = getOppositePlacement(placement); + data.offsets.popper = getClientRect(popper); + + return data; +} + +/** + * Modifier function, each modifier can have a function of this type assigned + * to its `fn` property.
+ * These functions will be called on each update, this means that you must + * make sure they are performant enough to avoid performance bottlenecks. + * + * @function ModifierFn + * @argument {dataObject} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {dataObject} The data object, properly modified + */ + +/** + * Modifiers are plugins used to alter the behavior of your poppers.
+ * Popper.js uses a set of 9 modifiers to provide all the basic functionalities + * needed by the library. + * + * Usually you don't want to override the `order`, `fn` and `onLoad` props. + * All the other properties are configurations that could be tweaked. + * @namespace modifiers + */ +var modifiers = { + /** + * Modifier used to shift the popper on the start or end of its reference + * element.
+ * It will read the variation of the `placement` property.
+ * It can be one either `-end` or `-start`. + * @memberof modifiers + * @inner + */ + shift: { + /** @prop {number} order=100 - Index used to define the order of execution */ + order: 100, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: shift + }, + + /** + * The `offset` modifier can shift your popper on both its axis. + * + * It accepts the following units: + * - `px` or unit-less, interpreted as pixels + * - `%` or `%r`, percentage relative to the length of the reference element + * - `%p`, percentage relative to the length of the popper element + * - `vw`, CSS viewport width unit + * - `vh`, CSS viewport height unit + * + * For length is intended the main axis relative to the placement of the popper.
+ * This means that if the placement is `top` or `bottom`, the length will be the + * `width`. In case of `left` or `right`, it will be the `height`. + * + * You can provide a single value (as `Number` or `String`), or a pair of values + * as `String` divided by a comma or one (or more) white spaces.
+ * The latter is a deprecated method because it leads to confusion and will be + * removed in v2.
+ * Additionally, it accepts additions and subtractions between different units. + * Note that multiplications and divisions aren't supported. + * + * Valid examples are: + * ``` + * 10 + * '10%' + * '10, 10' + * '10%, 10' + * '10 + 10%' + * '10 - 5vh + 3%' + * '-10px + 5vh, 5px - 6%' + * ``` + * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap + * > with their reference element, unfortunately, you will have to disable the `flip` modifier. + * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373). + * + * @memberof modifiers + * @inner + */ + offset: { + /** @prop {number} order=200 - Index used to define the order of execution */ + order: 200, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: offset, + /** @prop {Number|String} offset=0 + * The offset value as described in the modifier description + */ + offset: 0 + }, + + /** + * Modifier used to prevent the popper from being positioned outside the boundary. + * + * A scenario exists where the reference itself is not within the boundaries.
+ * We can say it has "escaped the boundaries" — or just "escaped".
+ * In this case we need to decide whether the popper should either: + * + * - detach from the reference and remain "trapped" in the boundaries, or + * - if it should ignore the boundary and "escape with its reference" + * + * When `escapeWithReference` is set to`true` and reference is completely + * outside its boundaries, the popper will overflow (or completely leave) + * the boundaries in order to remain attached to the edge of the reference. + * + * @memberof modifiers + * @inner + */ + preventOverflow: { + /** @prop {number} order=300 - Index used to define the order of execution */ + order: 300, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: preventOverflow, + /** + * @prop {Array} [priority=['left','right','top','bottom']] + * Popper will try to prevent overflow following these priorities by default, + * then, it could overflow on the left and on top of the `boundariesElement` + */ + priority: ['left', 'right', 'top', 'bottom'], + /** + * @prop {number} padding=5 + * Amount of pixel used to define a minimum distance between the boundaries + * and the popper. This makes sure the popper always has a little padding + * between the edges of its container + */ + padding: 5, + /** + * @prop {String|HTMLElement} boundariesElement='scrollParent' + * Boundaries used by the modifier. Can be `scrollParent`, `window`, + * `viewport` or any DOM element. + */ + boundariesElement: 'scrollParent' + }, + + /** + * Modifier used to make sure the reference and its popper stay near each other + * without leaving any gap between the two. Especially useful when the arrow is + * enabled and you want to ensure that it points to its reference element. + * It cares only about the first axis. You can still have poppers with margin + * between the popper and its reference element. + * @memberof modifiers + * @inner + */ + keepTogether: { + /** @prop {number} order=400 - Index used to define the order of execution */ + order: 400, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: keepTogether + }, + + /** + * This modifier is used to move the `arrowElement` of the popper to make + * sure it is positioned between the reference element and its popper element. + * It will read the outer size of the `arrowElement` node to detect how many + * pixels of conjunction are needed. + * + * It has no effect if no `arrowElement` is provided. + * @memberof modifiers + * @inner + */ + arrow: { + /** @prop {number} order=500 - Index used to define the order of execution */ + order: 500, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: arrow, + /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */ + element: '[x-arrow]' + }, + + /** + * Modifier used to flip the popper's placement when it starts to overlap its + * reference element. + * + * Requires the `preventOverflow` modifier before it in order to work. + * + * **NOTE:** this modifier will interrupt the current update cycle and will + * restart it if it detects the need to flip the placement. + * @memberof modifiers + * @inner + */ + flip: { + /** @prop {number} order=600 - Index used to define the order of execution */ + order: 600, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: flip, + /** + * @prop {String|Array} behavior='flip' + * The behavior used to change the popper's placement. It can be one of + * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid + * placements (with optional variations) + */ + behavior: 'flip', + /** + * @prop {number} padding=5 + * The popper will flip if it hits the edges of the `boundariesElement` + */ + padding: 5, + /** + * @prop {String|HTMLElement} boundariesElement='viewport' + * The element which will define the boundaries of the popper position. + * The popper will never be placed outside of the defined boundaries + * (except if `keepTogether` is enabled) + */ + boundariesElement: 'viewport', + /** + * @prop {Boolean} flipVariations=false + * The popper will switch placement variation between `-start` and `-end` when + * the reference element overlaps its boundaries. + * + * The original placement should have a set variation. + */ + flipVariations: false, + /** + * @prop {Boolean} flipVariationsByContent=false + * The popper will switch placement variation between `-start` and `-end` when + * the popper element overlaps its reference boundaries. + * + * The original placement should have a set variation. + */ + flipVariationsByContent: false + }, + + /** + * Modifier used to make the popper flow toward the inner of the reference element. + * By default, when this modifier is disabled, the popper will be placed outside + * the reference element. + * @memberof modifiers + * @inner + */ + inner: { + /** @prop {number} order=700 - Index used to define the order of execution */ + order: 700, + /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */ + enabled: false, + /** @prop {ModifierFn} */ + fn: inner + }, + + /** + * Modifier used to hide the popper when its reference element is outside of the + * popper boundaries. It will set a `x-out-of-boundaries` attribute which can + * be used to hide with a CSS selector the popper when its reference is + * out of boundaries. + * + * Requires the `preventOverflow` modifier before it in order to work. + * @memberof modifiers + * @inner + */ + hide: { + /** @prop {number} order=800 - Index used to define the order of execution */ + order: 800, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: hide + }, + + /** + * Computes the style that will be applied to the popper element to gets + * properly positioned. + * + * Note that this modifier will not touch the DOM, it just prepares the styles + * so that `applyStyle` modifier can apply it. This separation is useful + * in case you need to replace `applyStyle` with a custom implementation. + * + * This modifier has `850` as `order` value to maintain backward compatibility + * with previous versions of Popper.js. Expect the modifiers ordering method + * to change in future major versions of the library. + * + * @memberof modifiers + * @inner + */ + computeStyle: { + /** @prop {number} order=850 - Index used to define the order of execution */ + order: 850, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: computeStyle, + /** + * @prop {Boolean} gpuAcceleration=true + * If true, it uses the CSS 3D transformation to position the popper. + * Otherwise, it will use the `top` and `left` properties + */ + gpuAcceleration: true, + /** + * @prop {string} [x='bottom'] + * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin. + * Change this if your popper should grow in a direction different from `bottom` + */ + x: 'bottom', + /** + * @prop {string} [x='left'] + * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin. + * Change this if your popper should grow in a direction different from `right` + */ + y: 'right' + }, + + /** + * Applies the computed styles to the popper element. + * + * All the DOM manipulations are limited to this modifier. This is useful in case + * you want to integrate Popper.js inside a framework or view library and you + * want to delegate all the DOM manipulations to it. + * + * Note that if you disable this modifier, you must make sure the popper element + * has its position set to `absolute` before Popper.js can do its work! + * + * Just disable this modifier and define your own to achieve the desired effect. + * + * @memberof modifiers + * @inner + */ + applyStyle: { + /** @prop {number} order=900 - Index used to define the order of execution */ + order: 900, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: applyStyle, + /** @prop {Function} */ + onLoad: applyStyleOnLoad, + /** + * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier + * @prop {Boolean} gpuAcceleration=true + * If true, it uses the CSS 3D transformation to position the popper. + * Otherwise, it will use the `top` and `left` properties + */ + gpuAcceleration: undefined + } +}; + +/** + * The `dataObject` is an object containing all the information used by Popper.js. + * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks. + * @name dataObject + * @property {Object} data.instance The Popper.js instance + * @property {String} data.placement Placement applied to popper + * @property {String} data.originalPlacement Placement originally defined on init + * @property {Boolean} data.flipped True if popper has been flipped by flip modifier + * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper + * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier + * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`) + * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`) + * @property {Object} data.boundaries Offsets of the popper boundaries + * @property {Object} data.offsets The measurements of popper, reference and arrow elements + * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values + * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values + * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0 + */ + +/** + * Default options provided to Popper.js constructor.
+ * These can be overridden using the `options` argument of Popper.js.
+ * To override an option, simply pass an object with the same + * structure of the `options` object, as the 3rd argument. For example: + * ``` + * new Popper(ref, pop, { + * modifiers: { + * preventOverflow: { enabled: false } + * } + * }) + * ``` + * @type {Object} + * @static + * @memberof Popper + */ +var Defaults = { + /** + * Popper's placement. + * @prop {Popper.placements} placement='bottom' + */ + placement: 'bottom', + + /** + * Set this to true if you want popper to position it self in 'fixed' mode + * @prop {Boolean} positionFixed=false + */ + positionFixed: false, + + /** + * Whether events (resize, scroll) are initially enabled. + * @prop {Boolean} eventsEnabled=true + */ + eventsEnabled: true, + + /** + * Set to true if you want to automatically remove the popper when + * you call the `destroy` method. + * @prop {Boolean} removeOnDestroy=false + */ + removeOnDestroy: false, + + /** + * Callback called when the popper is created.
+ * By default, it is set to no-op.
+ * Access Popper.js instance with `data.instance`. + * @prop {onCreate} + */ + onCreate: function onCreate() {}, + + /** + * Callback called when the popper is updated. This callback is not called + * on the initialization/creation of the popper, but only on subsequent + * updates.
+ * By default, it is set to no-op.
+ * Access Popper.js instance with `data.instance`. + * @prop {onUpdate} + */ + onUpdate: function onUpdate() {}, + + /** + * List of modifiers used to modify the offsets before they are applied to the popper. + * They provide most of the functionalities of Popper.js. + * @prop {modifiers} + */ + modifiers: modifiers +}; + +/** + * @callback onCreate + * @param {dataObject} data + */ + +/** + * @callback onUpdate + * @param {dataObject} data + */ + +// Utils +// Methods +var Popper = function () { + /** + * Creates a new Popper.js instance. + * @class Popper + * @param {Element|referenceObject} reference - The reference element used to position the popper + * @param {Element} popper - The HTML / XML element used as the popper + * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults) + * @return {Object} instance - The generated Popper.js instance + */ + function Popper(reference, popper) { + var _this = this; + + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + classCallCheck(this, Popper); + + this.scheduleUpdate = function () { + return requestAnimationFrame(_this.update); + }; + + // make update() debounced, so that it only runs at most once-per-tick + this.update = debounce(this.update.bind(this)); + + // with {} we create a new object with the options inside it + this.options = _extends({}, Popper.Defaults, options); + + // init state + this.state = { + isDestroyed: false, + isCreated: false, + scrollParents: [] + }; + + // get reference and popper elements (allow jQuery wrappers) + this.reference = reference && reference.jquery ? reference[0] : reference; + this.popper = popper && popper.jquery ? popper[0] : popper; + + // Deep merge modifiers options + this.options.modifiers = {}; + Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) { + _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {}); + }); + + // Refactoring modifiers' list (Object => Array) + this.modifiers = Object.keys(this.options.modifiers).map(function (name) { + return _extends({ + name: name + }, _this.options.modifiers[name]); + }) + // sort the modifiers by order + .sort(function (a, b) { + return a.order - b.order; + }); + + // modifiers have the ability to execute arbitrary code when Popper.js get inited + // such code is executed in the same order of its modifier + // they could add new properties to their options configuration + // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`! + this.modifiers.forEach(function (modifierOptions) { + if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) { + modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state); + } + }); + + // fire the first update to position the popper in the right place + this.update(); + + var eventsEnabled = this.options.eventsEnabled; + if (eventsEnabled) { + // setup event listeners, they will take care of update the position in specific situations + this.enableEventListeners(); + } + + this.state.eventsEnabled = eventsEnabled; + } + + // We can't use class properties because they don't get listed in the + // class prototype and break stuff like Sinon stubs + + + createClass(Popper, [{ + key: 'update', + value: function update$$1() { + return update.call(this); + } + }, { + key: 'destroy', + value: function destroy$$1() { + return destroy.call(this); + } + }, { + key: 'enableEventListeners', + value: function enableEventListeners$$1() { + return enableEventListeners.call(this); + } + }, { + key: 'disableEventListeners', + value: function disableEventListeners$$1() { + return disableEventListeners.call(this); + } + + /** + * Schedules an update. It will run on the next UI update available. + * @method scheduleUpdate + * @memberof Popper + */ + + + /** + * Collection of utilities useful when writing custom modifiers. + * Starting from version 1.7, this method is available only if you + * include `popper-utils.js` before `popper.js`. + * + * **DEPRECATION**: This way to access PopperUtils is deprecated + * and will be removed in v2! Use the PopperUtils module directly instead. + * Due to the high instability of the methods contained in Utils, we can't + * guarantee them to follow semver. Use them at your own risk! + * @static + * @private + * @type {Object} + * @deprecated since version 1.8 + * @member Utils + * @memberof Popper + */ + + }]); + return Popper; +}(); + +/** + * The `referenceObject` is an object that provides an interface compatible with Popper.js + * and lets you use it as replacement of a real DOM node.
+ * You can use this method to position a popper relatively to a set of coordinates + * in case you don't have a DOM node to use as reference. + * + * ``` + * new Popper(referenceObject, popperNode); + * ``` + * + * NB: This feature isn't supported in Internet Explorer 10. + * @name referenceObject + * @property {Function} data.getBoundingClientRect + * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method. + * @property {number} data.clientWidth + * An ES6 getter that will return the width of the virtual reference element. + * @property {number} data.clientHeight + * An ES6 getter that will return the height of the virtual reference element. + */ + + +Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils; +Popper.placements = placements; +Popper.Defaults = Defaults; + +/* harmony default export */ __webpack_exports__["default"] = (Popper); +//# sourceMappingURL=popper.js.map + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/16.f9216c5dee8b80d554c2.js b/public/16.f9216c5dee8b80d554c2.js new file mode 100644 index 00000000..50947c80 --- /dev/null +++ b/public/16.f9216c5dee8b80d554c2.js @@ -0,0 +1,19645 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[16],{ + +/***/ "./node_modules/clipboard/dist/clipboard.js": +/*!**************************************************!*\ + !*** ./node_modules/clipboard/dist/clipboard.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +/*! + * clipboard.js v2.0.4 + * https://zenorocha.github.io/clipboard.js + * + * Licensed MIT © Zeno Rocha + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(true) + module.exports = factory(); + else {} +})(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] = { +/******/ 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 = 0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +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; }; + +var _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; }; }(); + +var _clipboardAction = __webpack_require__(1); + +var _clipboardAction2 = _interopRequireDefault(_clipboardAction); + +var _tinyEmitter = __webpack_require__(3); + +var _tinyEmitter2 = _interopRequireDefault(_tinyEmitter); + +var _goodListener = __webpack_require__(4); + +var _goodListener2 = _interopRequireDefault(_goodListener); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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; } + +function _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; } + +/** + * Base class which takes one or more elements, adds event listeners to them, + * and instantiates a new `ClipboardAction` on each click. + */ +var Clipboard = function (_Emitter) { + _inherits(Clipboard, _Emitter); + + /** + * @param {String|HTMLElement|HTMLCollection|NodeList} trigger + * @param {Object} options + */ + function Clipboard(trigger, options) { + _classCallCheck(this, Clipboard); + + var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this)); + + _this.resolveOptions(options); + _this.listenClick(trigger); + return _this; + } + + /** + * Defines if attributes would be resolved using internal setter functions + * or custom functions that were passed in the constructor. + * @param {Object} options + */ + + + _createClass(Clipboard, [{ + key: 'resolveOptions', + value: function resolveOptions() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + this.action = typeof options.action === 'function' ? options.action : this.defaultAction; + this.target = typeof options.target === 'function' ? options.target : this.defaultTarget; + this.text = typeof options.text === 'function' ? options.text : this.defaultText; + this.container = _typeof(options.container) === 'object' ? options.container : document.body; + } + + /** + * Adds a click event listener to the passed trigger. + * @param {String|HTMLElement|HTMLCollection|NodeList} trigger + */ + + }, { + key: 'listenClick', + value: function listenClick(trigger) { + var _this2 = this; + + this.listener = (0, _goodListener2.default)(trigger, 'click', function (e) { + return _this2.onClick(e); + }); + } + + /** + * Defines a new `ClipboardAction` on each click event. + * @param {Event} e + */ + + }, { + key: 'onClick', + value: function onClick(e) { + var trigger = e.delegateTarget || e.currentTarget; + + if (this.clipboardAction) { + this.clipboardAction = null; + } + + this.clipboardAction = new _clipboardAction2.default({ + action: this.action(trigger), + target: this.target(trigger), + text: this.text(trigger), + container: this.container, + trigger: trigger, + emitter: this + }); + } + + /** + * Default `action` lookup function. + * @param {Element} trigger + */ + + }, { + key: 'defaultAction', + value: function defaultAction(trigger) { + return getAttributeValue('action', trigger); + } + + /** + * Default `target` lookup function. + * @param {Element} trigger + */ + + }, { + key: 'defaultTarget', + value: function defaultTarget(trigger) { + var selector = getAttributeValue('target', trigger); + + if (selector) { + return document.querySelector(selector); + } + } + + /** + * Returns the support of the given action, or all actions if no action is + * given. + * @param {String} [action] + */ + + }, { + key: 'defaultText', + + + /** + * Default `text` lookup function. + * @param {Element} trigger + */ + value: function defaultText(trigger) { + return getAttributeValue('text', trigger); + } + + /** + * Destroy lifecycle. + */ + + }, { + key: 'destroy', + value: function destroy() { + this.listener.destroy(); + + if (this.clipboardAction) { + this.clipboardAction.destroy(); + this.clipboardAction = null; + } + } + }], [{ + key: 'isSupported', + value: function isSupported() { + var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut']; + + var actions = typeof action === 'string' ? [action] : action; + var support = !!document.queryCommandSupported; + + actions.forEach(function (action) { + support = support && !!document.queryCommandSupported(action); + }); + + return support; + } + }]); + + return Clipboard; +}(_tinyEmitter2.default); + +/** + * Helper function to retrieve attribute value. + * @param {String} suffix + * @param {Element} element + */ + + +function getAttributeValue(suffix, element) { + var attribute = 'data-clipboard-' + suffix; + + if (!element.hasAttribute(attribute)) { + return; + } + + return element.getAttribute(attribute); +} + +module.exports = Clipboard; + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +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; }; + +var _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; }; }(); + +var _select = __webpack_require__(2); + +var _select2 = _interopRequireDefault(_select); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/** + * Inner class which performs selection from either `text` or `target` + * properties and then executes copy or cut operations. + */ +var ClipboardAction = function () { + /** + * @param {Object} options + */ + function ClipboardAction(options) { + _classCallCheck(this, ClipboardAction); + + this.resolveOptions(options); + this.initSelection(); + } + + /** + * Defines base properties passed from constructor. + * @param {Object} options + */ + + + _createClass(ClipboardAction, [{ + key: 'resolveOptions', + value: function resolveOptions() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + this.action = options.action; + this.container = options.container; + this.emitter = options.emitter; + this.target = options.target; + this.text = options.text; + this.trigger = options.trigger; + + this.selectedText = ''; + } + + /** + * Decides which selection strategy is going to be applied based + * on the existence of `text` and `target` properties. + */ + + }, { + key: 'initSelection', + value: function initSelection() { + if (this.text) { + this.selectFake(); + } else if (this.target) { + this.selectTarget(); + } + } + + /** + * Creates a fake textarea element, sets its value from `text` property, + * and makes a selection on it. + */ + + }, { + key: 'selectFake', + value: function selectFake() { + var _this = this; + + var isRTL = document.documentElement.getAttribute('dir') == 'rtl'; + + this.removeFake(); + + this.fakeHandlerCallback = function () { + return _this.removeFake(); + }; + this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true; + + this.fakeElem = document.createElement('textarea'); + // Prevent zooming on iOS + this.fakeElem.style.fontSize = '12pt'; + // Reset box model + this.fakeElem.style.border = '0'; + this.fakeElem.style.padding = '0'; + this.fakeElem.style.margin = '0'; + // Move element out of screen horizontally + this.fakeElem.style.position = 'absolute'; + this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px'; + // Move element to the same position vertically + var yPosition = window.pageYOffset || document.documentElement.scrollTop; + this.fakeElem.style.top = yPosition + 'px'; + + this.fakeElem.setAttribute('readonly', ''); + this.fakeElem.value = this.text; + + this.container.appendChild(this.fakeElem); + + this.selectedText = (0, _select2.default)(this.fakeElem); + this.copyText(); + } + + /** + * Only removes the fake element after another click event, that way + * a user can hit `Ctrl+C` to copy because selection still exists. + */ + + }, { + key: 'removeFake', + value: function removeFake() { + if (this.fakeHandler) { + this.container.removeEventListener('click', this.fakeHandlerCallback); + this.fakeHandler = null; + this.fakeHandlerCallback = null; + } + + if (this.fakeElem) { + this.container.removeChild(this.fakeElem); + this.fakeElem = null; + } + } + + /** + * Selects the content from element passed on `target` property. + */ + + }, { + key: 'selectTarget', + value: function selectTarget() { + this.selectedText = (0, _select2.default)(this.target); + this.copyText(); + } + + /** + * Executes the copy operation based on the current selection. + */ + + }, { + key: 'copyText', + value: function copyText() { + var succeeded = void 0; + + try { + succeeded = document.execCommand(this.action); + } catch (err) { + succeeded = false; + } + + this.handleResult(succeeded); + } + + /** + * Fires an event based on the copy operation result. + * @param {Boolean} succeeded + */ + + }, { + key: 'handleResult', + value: function handleResult(succeeded) { + this.emitter.emit(succeeded ? 'success' : 'error', { + action: this.action, + text: this.selectedText, + trigger: this.trigger, + clearSelection: this.clearSelection.bind(this) + }); + } + + /** + * Moves focus away from `target` and back to the trigger, removes current selection. + */ + + }, { + key: 'clearSelection', + value: function clearSelection() { + if (this.trigger) { + this.trigger.focus(); + } + + window.getSelection().removeAllRanges(); + } + + /** + * Sets the `action` to be performed which can be either 'copy' or 'cut'. + * @param {String} action + */ + + }, { + key: 'destroy', + + + /** + * Destroy lifecycle. + */ + value: function destroy() { + this.removeFake(); + } + }, { + key: 'action', + set: function set() { + var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy'; + + this._action = action; + + if (this._action !== 'copy' && this._action !== 'cut') { + throw new Error('Invalid "action" value, use either "copy" or "cut"'); + } + } + + /** + * Gets the `action` property. + * @return {String} + */ + , + get: function get() { + return this._action; + } + + /** + * Sets the `target` property using an element + * that will be have its content copied. + * @param {Element} target + */ + + }, { + key: 'target', + set: function set(target) { + if (target !== undefined) { + if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) { + if (this.action === 'copy' && target.hasAttribute('disabled')) { + throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute'); + } + + if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) { + throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes'); + } + + this._target = target; + } else { + throw new Error('Invalid "target" value, use a valid Element'); + } + } + } + + /** + * Gets the `target` property. + * @return {String|HTMLElement} + */ + , + get: function get() { + return this._target; + } + }]); + + return ClipboardAction; +}(); + +module.exports = ClipboardAction; + +/***/ }), +/* 2 */ +/***/ (function(module, exports) { + +function select(element) { + var selectedText; + + if (element.nodeName === 'SELECT') { + element.focus(); + + selectedText = element.value; + } + else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') { + var isReadOnly = element.hasAttribute('readonly'); + + if (!isReadOnly) { + element.setAttribute('readonly', ''); + } + + element.select(); + element.setSelectionRange(0, element.value.length); + + if (!isReadOnly) { + element.removeAttribute('readonly'); + } + + selectedText = element.value; + } + else { + if (element.hasAttribute('contenteditable')) { + element.focus(); + } + + var selection = window.getSelection(); + var range = document.createRange(); + + range.selectNodeContents(element); + selection.removeAllRanges(); + selection.addRange(range); + + selectedText = selection.toString(); + } + + return selectedText; +} + +module.exports = select; + + +/***/ }), +/* 3 */ +/***/ (function(module, exports) { + +function E () { + // Keep this empty so it's easier to inherit from + // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3) +} + +E.prototype = { + on: function (name, callback, ctx) { + var e = this.e || (this.e = {}); + + (e[name] || (e[name] = [])).push({ + fn: callback, + ctx: ctx + }); + + return this; + }, + + once: function (name, callback, ctx) { + var self = this; + function listener () { + self.off(name, listener); + callback.apply(ctx, arguments); + }; + + listener._ = callback + return this.on(name, listener, ctx); + }, + + emit: function (name) { + var data = [].slice.call(arguments, 1); + var evtArr = ((this.e || (this.e = {}))[name] || []).slice(); + var i = 0; + var len = evtArr.length; + + for (i; i < len; i++) { + evtArr[i].fn.apply(evtArr[i].ctx, data); + } + + return this; + }, + + off: function (name, callback) { + var e = this.e || (this.e = {}); + var evts = e[name]; + var liveEvents = []; + + if (evts && callback) { + for (var i = 0, len = evts.length; i < len; i++) { + if (evts[i].fn !== callback && evts[i].fn._ !== callback) + liveEvents.push(evts[i]); + } + } + + // Remove event from queue to prevent memory leak + // Suggested by https://github.com/lazd + // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910 + + (liveEvents.length) + ? e[name] = liveEvents + : delete e[name]; + + return this; + } +}; + +module.exports = E; + + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +var is = __webpack_require__(5); +var delegate = __webpack_require__(6); + +/** + * Validates all params and calls the right + * listener function based on its target type. + * + * @param {String|HTMLElement|HTMLCollection|NodeList} target + * @param {String} type + * @param {Function} callback + * @return {Object} + */ +function listen(target, type, callback) { + if (!target && !type && !callback) { + throw new Error('Missing required arguments'); + } + + if (!is.string(type)) { + throw new TypeError('Second argument must be a String'); + } + + if (!is.fn(callback)) { + throw new TypeError('Third argument must be a Function'); + } + + if (is.node(target)) { + return listenNode(target, type, callback); + } + else if (is.nodeList(target)) { + return listenNodeList(target, type, callback); + } + else if (is.string(target)) { + return listenSelector(target, type, callback); + } + else { + throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList'); + } +} + +/** + * Adds an event listener to a HTML element + * and returns a remove listener function. + * + * @param {HTMLElement} node + * @param {String} type + * @param {Function} callback + * @return {Object} + */ +function listenNode(node, type, callback) { + node.addEventListener(type, callback); + + return { + destroy: function() { + node.removeEventListener(type, callback); + } + } +} + +/** + * Add an event listener to a list of HTML elements + * and returns a remove listener function. + * + * @param {NodeList|HTMLCollection} nodeList + * @param {String} type + * @param {Function} callback + * @return {Object} + */ +function listenNodeList(nodeList, type, callback) { + Array.prototype.forEach.call(nodeList, function(node) { + node.addEventListener(type, callback); + }); + + return { + destroy: function() { + Array.prototype.forEach.call(nodeList, function(node) { + node.removeEventListener(type, callback); + }); + } + } +} + +/** + * Add an event listener to a selector + * and returns a remove listener function. + * + * @param {String} selector + * @param {String} type + * @param {Function} callback + * @return {Object} + */ +function listenSelector(selector, type, callback) { + return delegate(document.body, selector, type, callback); +} + +module.exports = listen; + + +/***/ }), +/* 5 */ +/***/ (function(module, exports) { + +/** + * Check if argument is a HTML element. + * + * @param {Object} value + * @return {Boolean} + */ +exports.node = function(value) { + return value !== undefined + && value instanceof HTMLElement + && value.nodeType === 1; +}; + +/** + * Check if argument is a list of HTML elements. + * + * @param {Object} value + * @return {Boolean} + */ +exports.nodeList = function(value) { + var type = Object.prototype.toString.call(value); + + return value !== undefined + && (type === '[object NodeList]' || type === '[object HTMLCollection]') + && ('length' in value) + && (value.length === 0 || exports.node(value[0])); +}; + +/** + * Check if argument is a string. + * + * @param {Object} value + * @return {Boolean} + */ +exports.string = function(value) { + return typeof value === 'string' + || value instanceof String; +}; + +/** + * Check if argument is a function. + * + * @param {Object} value + * @return {Boolean} + */ +exports.fn = function(value) { + var type = Object.prototype.toString.call(value); + + return type === '[object Function]'; +}; + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +var closest = __webpack_require__(7); + +/** + * Delegates event to a selector. + * + * @param {Element} element + * @param {String} selector + * @param {String} type + * @param {Function} callback + * @param {Boolean} useCapture + * @return {Object} + */ +function _delegate(element, selector, type, callback, useCapture) { + var listenerFn = listener.apply(this, arguments); + + element.addEventListener(type, listenerFn, useCapture); + + return { + destroy: function() { + element.removeEventListener(type, listenerFn, useCapture); + } + } +} + +/** + * Delegates event to a selector. + * + * @param {Element|String|Array} [elements] + * @param {String} selector + * @param {String} type + * @param {Function} callback + * @param {Boolean} useCapture + * @return {Object} + */ +function delegate(elements, selector, type, callback, useCapture) { + // Handle the regular Element usage + if (typeof elements.addEventListener === 'function') { + return _delegate.apply(null, arguments); + } + + // Handle Element-less usage, it defaults to global delegation + if (typeof type === 'function') { + // Use `document` as the first parameter, then apply arguments + // This is a short way to .unshift `arguments` without running into deoptimizations + return _delegate.bind(null, document).apply(null, arguments); + } + + // Handle Selector-based usage + if (typeof elements === 'string') { + elements = document.querySelectorAll(elements); + } + + // Handle Array-like based usage + return Array.prototype.map.call(elements, function (element) { + return _delegate(element, selector, type, callback, useCapture); + }); +} + +/** + * Finds closest match and invokes callback. + * + * @param {Element} element + * @param {String} selector + * @param {String} type + * @param {Function} callback + * @return {Function} + */ +function listener(element, selector, type, callback) { + return function(e) { + e.delegateTarget = closest(e.target, selector); + + if (e.delegateTarget) { + callback.call(element, e); + } + } +} + +module.exports = delegate; + + +/***/ }), +/* 7 */ +/***/ (function(module, exports) { + +var DOCUMENT_NODE_TYPE = 9; + +/** + * A polyfill for Element.matches() + */ +if (typeof Element !== 'undefined' && !Element.prototype.matches) { + var proto = Element.prototype; + + proto.matches = proto.matchesSelector || + proto.mozMatchesSelector || + proto.msMatchesSelector || + proto.oMatchesSelector || + proto.webkitMatchesSelector; +} + +/** + * Finds the closest parent that matches a selector. + * + * @param {Element} element + * @param {String} selector + * @return {Function} + */ +function closest (element, selector) { + while (element && element.nodeType !== DOCUMENT_NODE_TYPE) { + if (typeof element.matches === 'function' && + element.matches(selector)) { + return element; + } + element = element.parentNode; + } +} + +module.exports = closest; + + +/***/ }) +/******/ ]); +}); + +/***/ }), + +/***/ "./node_modules/dayjs/dayjs.min.js": +/*!*****************************************!*\ + !*** ./node_modules/dayjs/dayjs.min.js ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +!function(t,n){ true?module.exports=n():undefined}(this,function(){"use strict";var t="millisecond",n="second",e="minute",r="hour",i="day",s="week",u="month",o="quarter",a="year",h=/^(\d{4})-?(\d{1,2})-?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?.?(\d{1,3})?$/,f=/\[([^\]]+)]|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,c=function(t,n,e){var r=String(t);return!r||r.length>=n?t:""+Array(n+1-r.length).join(e)+t},d={s:c,z:function(t){var n=-t.utcOffset(),e=Math.abs(n),r=Math.floor(e/60),i=e%60;return(n<=0?"+":"-")+c(r,2,"0")+":"+c(i,2,"0")},m:function(t,n){var e=12*(n.year()-t.year())+(n.month()-t.month()),r=t.clone().add(e,u),i=n-r<0,s=t.clone().add(e+(i?-1:1),u);return Number(-(e+(n-r)/(i?r-s:s-r))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(h){return{M:u,y:a,w:s,d:i,h:r,m:e,s:n,ms:t,Q:o}[h]||String(h||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},$={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},l="en",m={};m[l]=$;var y=function(t){return t instanceof v},M=function(t,n,e){var r;if(!t)return l;if("string"==typeof t)m[t]&&(r=t),n&&(m[t]=n,r=t);else{var i=t.name;m[i]=t,r=i}return e||(l=r),r},g=function(t,n,e){if(y(t))return t.clone();var r=n?"string"==typeof n?{format:n,pl:e}:n:{};return r.date=t,new v(r)},D=d;D.l=M,D.i=y,D.w=function(t,n){return g(t,{locale:n.$L,utc:n.$u})};var v=function(){function c(t){this.$L=this.$L||M(t.locale,null,!0),this.parse(t)}var d=c.prototype;return d.parse=function(t){this.$d=function(t){var n=t.date,e=t.utc;if(null===n)return new Date(NaN);if(D.u(n))return new Date;if(n instanceof Date)return new Date(n);if("string"==typeof n&&!/Z$/i.test(n)){var r=n.match(h);if(r)return e?new Date(Date.UTC(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)):new Date(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)}return new Date(n)}(t),this.init()},d.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},d.$utils=function(){return D},d.isValid=function(){return!("Invalid Date"===this.$d.toString())},d.isSame=function(t,n){var e=g(t);return this.startOf(n)<=e&&e<=this.endOf(n)},d.isAfter=function(t,n){return g(t) + * All rights reserved + * + * Licensed under the MIT license. + * + * http://www.opensource.org/licenses/mit-license.php + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + *****************************************************************************/ +var dijkstra = { + single_source_shortest_paths: function(graph, s, d) { + // Predecessor map for each node that has been encountered. + // node ID => predecessor node ID + var predecessors = {}; + + // Costs of shortest paths from s to all nodes encountered. + // node ID => cost + var costs = {}; + costs[s] = 0; + + // Costs of shortest paths from s to all nodes encountered; differs from + // `costs` in that it provides easy access to the node that currently has + // the known shortest path from s. + // XXX: Do we actually need both `costs` and `open`? + var open = dijkstra.PriorityQueue.make(); + open.push(s, 0); + + var closest, + u, v, + cost_of_s_to_u, + adjacent_nodes, + cost_of_e, + cost_of_s_to_u_plus_cost_of_e, + cost_of_s_to_v, + first_visit; + while (!open.empty()) { + // In the nodes remaining in graph that have a known cost from s, + // find the node, u, that currently has the shortest path from s. + closest = open.pop(); + u = closest.value; + cost_of_s_to_u = closest.cost; + + // Get nodes adjacent to u... + adjacent_nodes = graph[u] || {}; + + // ...and explore the edges that connect u to those nodes, updating + // the cost of the shortest paths to any or all of those nodes as + // necessary. v is the node across the current edge from u. + for (v in adjacent_nodes) { + if (adjacent_nodes.hasOwnProperty(v)) { + // Get the cost of the edge running from u to v. + cost_of_e = adjacent_nodes[v]; + + // Cost of s to u plus the cost of u to v across e--this is *a* + // cost from s to v that may or may not be less than the current + // known cost to v. + cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e; + + // If we haven't visited v yet OR if the current known cost from s to + // v is greater than the new cost we just found (cost of s to u plus + // cost of u to v across e), update v's cost in the cost list and + // update v's predecessor in the predecessor list (it's now u). + cost_of_s_to_v = costs[v]; + first_visit = (typeof costs[v] === 'undefined'); + if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) { + costs[v] = cost_of_s_to_u_plus_cost_of_e; + open.push(v, cost_of_s_to_u_plus_cost_of_e); + predecessors[v] = u; + } + } + } + } + + if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') { + var msg = ['Could not find a path from ', s, ' to ', d, '.'].join(''); + throw new Error(msg); + } + + return predecessors; + }, + + extract_shortest_path_from_predecessor_list: function(predecessors, d) { + var nodes = []; + var u = d; + var predecessor; + while (u) { + nodes.push(u); + predecessor = predecessors[u]; + u = predecessors[u]; + } + nodes.reverse(); + return nodes; + }, + + find_path: function(graph, s, d) { + var predecessors = dijkstra.single_source_shortest_paths(graph, s, d); + return dijkstra.extract_shortest_path_from_predecessor_list( + predecessors, d); + }, + + /** + * A very naive priority queue implementation. + */ + PriorityQueue: { + make: function (opts) { + var T = dijkstra.PriorityQueue, + t = {}, + key; + opts = opts || {}; + for (key in T) { + if (T.hasOwnProperty(key)) { + t[key] = T[key]; + } + } + t.queue = []; + t.sorter = opts.sorter || T.default_sorter; + return t; + }, + + default_sorter: function (a, b) { + return a.cost - b.cost; + }, + + /** + * Add a new item to the queue and ensure the highest priority element + * is at the front of the queue. + */ + push: function (value, cost) { + var item = {value: value, cost: cost}; + this.queue.push(item); + this.queue.sort(this.sorter); + }, + + /** + * Return the highest priority element in the queue. + */ + pop: function () { + return this.queue.shift(); + }, + + empty: function () { + return this.queue.length === 0; + } + } +}; + + +// node.js module exports +if (true) { + module.exports = dijkstra; +} + + +/***/ }), + +/***/ "./node_modules/mo-js/build/mo.js": +/*!****************************************!*\ + !*** ./node_modules/mo-js/build/mo.js ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +(function webpackUniversalModuleDefinition(root, factory) { + if(true) + module.exports = factory(); + else {} +})(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 = "build/"; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = __webpack_require__(1); + + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + + var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(module) {'use strict'; + + exports.__esModule = true; + + var _typeof2 = __webpack_require__(3); + + var _typeof3 = _interopRequireDefault(_typeof2); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + var _shapesMap = __webpack_require__(72); + + var _shapesMap2 = _interopRequireDefault(_shapesMap); + + var _shape = __webpack_require__(94); + + var _shape2 = _interopRequireDefault(_shape); + + var _shapeSwirl = __webpack_require__(117); + + var _shapeSwirl2 = _interopRequireDefault(_shapeSwirl); + + var _burst = __webpack_require__(118); + + var _burst2 = _interopRequireDefault(_burst); + + var _html = __webpack_require__(119); + + var _html2 = _interopRequireDefault(_html); + + var _stagger = __webpack_require__(127); + + var _stagger2 = _interopRequireDefault(_stagger); + + var _spriter = __webpack_require__(128); + + var _spriter2 = _interopRequireDefault(_spriter); + + var _motionPath = __webpack_require__(129); + + var _motionPath2 = _interopRequireDefault(_motionPath); + + var _tween = __webpack_require__(101); + + var _tween2 = _interopRequireDefault(_tween); + + var _timeline = __webpack_require__(110); + + var _timeline2 = _interopRequireDefault(_timeline); + + var _tweener = __webpack_require__(102); + + var _tweener2 = _interopRequireDefault(_tweener); + + var _tweenable = __webpack_require__(100); + + var _tweenable2 = _interopRequireDefault(_tweenable); + + var _thenable = __webpack_require__(99); + + var _thenable2 = _interopRequireDefault(_thenable); + + var _tunable = __webpack_require__(116); + + var _tunable2 = _interopRequireDefault(_tunable); + + var _delta = __webpack_require__(126); + + var _delta2 = _interopRequireDefault(_delta); + + var _deltas = __webpack_require__(125); + + var _deltas2 = _interopRequireDefault(_deltas); + + var _module = __webpack_require__(84); + + var _module2 = _interopRequireDefault(_module); + + var _easing = __webpack_require__(105); + + var _easing2 = _interopRequireDefault(_easing); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var mojs = { + revision: '0.288.2', isDebug: true, helpers: _h2.default, + Shape: _shape2.default, ShapeSwirl: _shapeSwirl2.default, Burst: _burst2.default, Html: _html2.default, stagger: _stagger2.default, Spriter: _spriter2.default, MotionPath: _motionPath2.default, + Tween: _tween2.default, Timeline: _timeline2.default, Tweenable: _tweenable2.default, Thenable: _thenable2.default, Tunable: _tunable2.default, Module: _module2.default, + tweener: _tweener2.default, easing: _easing2.default, shapesMap: _shapesMap2.default, _pool: { Delta: _delta2.default, Deltas: _deltas2.default } + }; + + // functions alias + mojs.h = mojs.helpers; + mojs.delta = mojs.h.delta; + // custom shape add function and class + mojs.addShape = mojs.shapesMap.addShape; + mojs.CustomShape = mojs.shapesMap.custom; + // module alias + mojs.Transit = mojs.Shape; + mojs.Swirl = mojs.ShapeSwirl; + + // TODO: + /* + H/V in paths + + rand for direction + burst children angle after tune + burst pathScale after tune + swirl then issue + 'rand' angle flick with `then` + not able to `play()` in `onComplete` callback + --- + module names + swirls in then chains for x/y + parse rand(stagger(20, 10), 20) values + percentage for radius + */ + + // istanbul ignore next + if (true) { + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () { + return mojs; + }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } + // istanbul ignore next + if (( false ? undefined : (0, _typeof3.default)(module)) === "object" && (0, _typeof3.default)(module.exports) === "object") { + module.exports = mojs; + } + + exports.default = mojs; + + + typeof window !== 'undefined' && (window.mojs = mojs); + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)(module))) + +/***/ }), +/* 2 */ +/***/ (function(module, exports) { + + module.exports = function(module) { + if(!module.webpackPolyfill) { + module.deprecate = function() {}; + module.paths = []; + // module.parent = undefined by default + module.children = []; + module.webpackPolyfill = 1; + } + return module; + } + + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + + "use strict"; + + exports.__esModule = true; + + var _iterator = __webpack_require__(4); + + var _iterator2 = _interopRequireDefault(_iterator); + + var _symbol = __webpack_require__(55); + + var _symbol2 = _interopRequireDefault(_symbol); + + var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { + return typeof obj === "undefined" ? "undefined" : _typeof(obj); + } : function (obj) { + return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); + }; + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = { "default": __webpack_require__(5), __esModule: true }; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(6); + __webpack_require__(50); + module.exports = __webpack_require__(54).f('iterator'); + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $at = __webpack_require__(7)(true); + + // 21.1.3.27 String.prototype[@@iterator]() + __webpack_require__(10)(String, 'String', function(iterated){ + this._t = String(iterated); // target + this._i = 0; // next index + // 21.1.5.2.1 %StringIteratorPrototype%.next() + }, function(){ + var O = this._t + , index = this._i + , point; + if(index >= O.length)return {value: undefined, done: true}; + point = $at(O, index); + this._i += point.length; + return {value: point, done: false}; + }); + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + + var toInteger = __webpack_require__(8) + , defined = __webpack_require__(9); + // true -> String#at + // false -> String#codePointAt + module.exports = function(TO_STRING){ + return function(that, pos){ + var s = String(defined(that)) + , i = toInteger(pos) + , l = s.length + , a, b; + if(i < 0 || i >= l)return TO_STRING ? '' : undefined; + a = s.charCodeAt(i); + return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff + ? TO_STRING ? s.charAt(i) : a + : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; + }; + }; + +/***/ }), +/* 8 */ +/***/ (function(module, exports) { + + // 7.1.4 ToInteger + var ceil = Math.ceil + , floor = Math.floor; + module.exports = function(it){ + return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); + }; + +/***/ }), +/* 9 */ +/***/ (function(module, exports) { + + // 7.2.1 RequireObjectCoercible(argument) + module.exports = function(it){ + if(it == undefined)throw TypeError("Can't call method on " + it); + return it; + }; + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var LIBRARY = __webpack_require__(11) + , $export = __webpack_require__(12) + , redefine = __webpack_require__(27) + , hide = __webpack_require__(17) + , has = __webpack_require__(28) + , Iterators = __webpack_require__(29) + , $iterCreate = __webpack_require__(30) + , setToStringTag = __webpack_require__(46) + , getPrototypeOf = __webpack_require__(48) + , ITERATOR = __webpack_require__(47)('iterator') + , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next` + , FF_ITERATOR = '@@iterator' + , KEYS = 'keys' + , VALUES = 'values'; + + var returnThis = function(){ return this; }; + + module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){ + $iterCreate(Constructor, NAME, next); + var getMethod = function(kind){ + if(!BUGGY && kind in proto)return proto[kind]; + switch(kind){ + case KEYS: return function keys(){ return new Constructor(this, kind); }; + case VALUES: return function values(){ return new Constructor(this, kind); }; + } return function entries(){ return new Constructor(this, kind); }; + }; + var TAG = NAME + ' Iterator' + , DEF_VALUES = DEFAULT == VALUES + , VALUES_BUG = false + , proto = Base.prototype + , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT] + , $default = $native || getMethod(DEFAULT) + , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined + , $anyNative = NAME == 'Array' ? proto.entries || $native : $native + , methods, key, IteratorPrototype; + // Fix native + if($anyNative){ + IteratorPrototype = getPrototypeOf($anyNative.call(new Base)); + if(IteratorPrototype !== Object.prototype){ + // Set @@toStringTag to native iterators + setToStringTag(IteratorPrototype, TAG, true); + // fix for some old engines + if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis); + } + } + // fix Array#{values, @@iterator}.name in V8 / FF + if(DEF_VALUES && $native && $native.name !== VALUES){ + VALUES_BUG = true; + $default = function values(){ return $native.call(this); }; + } + // Define iterator + if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){ + hide(proto, ITERATOR, $default); + } + // Plug for library + Iterators[NAME] = $default; + Iterators[TAG] = returnThis; + if(DEFAULT){ + methods = { + values: DEF_VALUES ? $default : getMethod(VALUES), + keys: IS_SET ? $default : getMethod(KEYS), + entries: $entries + }; + if(FORCED)for(key in methods){ + if(!(key in proto))redefine(proto, key, methods[key]); + } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); + } + return methods; + }; + +/***/ }), +/* 11 */ +/***/ (function(module, exports) { + + module.exports = true; + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + + var global = __webpack_require__(13) + , core = __webpack_require__(14) + , ctx = __webpack_require__(15) + , hide = __webpack_require__(17) + , PROTOTYPE = 'prototype'; + + var $export = function(type, name, source){ + var IS_FORCED = type & $export.F + , IS_GLOBAL = type & $export.G + , IS_STATIC = type & $export.S + , IS_PROTO = type & $export.P + , IS_BIND = type & $export.B + , IS_WRAP = type & $export.W + , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) + , expProto = exports[PROTOTYPE] + , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] + , key, own, out; + if(IS_GLOBAL)source = name; + for(key in source){ + // contains in native + own = !IS_FORCED && target && target[key] !== undefined; + if(own && key in exports)continue; + // export native or passed + out = own ? target[key] : source[key]; + // prevent global pollution for namespaces + exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] + // bind timers to global for call from export context + : IS_BIND && own ? ctx(out, global) + // wrap global constructors for prevent change them in library + : IS_WRAP && target[key] == out ? (function(C){ + var F = function(a, b, c){ + if(this instanceof C){ + switch(arguments.length){ + case 0: return new C; + case 1: return new C(a); + case 2: return new C(a, b); + } return new C(a, b, c); + } return C.apply(this, arguments); + }; + F[PROTOTYPE] = C[PROTOTYPE]; + return F; + // make static versions for prototype methods + })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; + // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% + if(IS_PROTO){ + (exports.virtual || (exports.virtual = {}))[key] = out; + // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% + if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); + } + } + }; + // type bitmap + $export.F = 1; // forced + $export.G = 2; // global + $export.S = 4; // static + $export.P = 8; // proto + $export.B = 16; // bind + $export.W = 32; // wrap + $export.U = 64; // safe + $export.R = 128; // real proto method for `library` + module.exports = $export; + +/***/ }), +/* 13 */ +/***/ (function(module, exports) { + + // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 + var global = module.exports = typeof window != 'undefined' && window.Math == Math + ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); + if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef + +/***/ }), +/* 14 */ +/***/ (function(module, exports) { + + var core = module.exports = {version: '2.4.0'}; + if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + + // optional / simple context binding + var aFunction = __webpack_require__(16); + module.exports = function(fn, that, length){ + aFunction(fn); + if(that === undefined)return fn; + switch(length){ + case 1: return function(a){ + return fn.call(that, a); + }; + case 2: return function(a, b){ + return fn.call(that, a, b); + }; + case 3: return function(a, b, c){ + return fn.call(that, a, b, c); + }; + } + return function(/* ...args */){ + return fn.apply(that, arguments); + }; + }; + +/***/ }), +/* 16 */ +/***/ (function(module, exports) { + + module.exports = function(it){ + if(typeof it != 'function')throw TypeError(it + ' is not a function!'); + return it; + }; + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + + var dP = __webpack_require__(18) + , createDesc = __webpack_require__(26); + module.exports = __webpack_require__(22) ? function(object, key, value){ + return dP.f(object, key, createDesc(1, value)); + } : function(object, key, value){ + object[key] = value; + return object; + }; + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + + var anObject = __webpack_require__(19) + , IE8_DOM_DEFINE = __webpack_require__(21) + , toPrimitive = __webpack_require__(25) + , dP = Object.defineProperty; + + exports.f = __webpack_require__(22) ? Object.defineProperty : function defineProperty(O, P, Attributes){ + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if(IE8_DOM_DEFINE)try { + return dP(O, P, Attributes); + } catch(e){ /* empty */ } + if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); + if('value' in Attributes)O[P] = Attributes.value; + return O; + }; + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(20); + module.exports = function(it){ + if(!isObject(it))throw TypeError(it + ' is not an object!'); + return it; + }; + +/***/ }), +/* 20 */ +/***/ (function(module, exports) { + + module.exports = function(it){ + return typeof it === 'object' ? it !== null : typeof it === 'function'; + }; + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = !__webpack_require__(22) && !__webpack_require__(23)(function(){ + return Object.defineProperty(__webpack_require__(24)('div'), 'a', {get: function(){ return 7; }}).a != 7; + }); + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + + // Thank's IE8 for his funny defineProperty + module.exports = !__webpack_require__(23)(function(){ + return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; + }); + +/***/ }), +/* 23 */ +/***/ (function(module, exports) { + + module.exports = function(exec){ + try { + return !!exec(); + } catch(e){ + return true; + } + }; + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(20) + , document = __webpack_require__(13).document + // in old IE typeof document.createElement is 'object' + , is = isObject(document) && isObject(document.createElement); + module.exports = function(it){ + return is ? document.createElement(it) : {}; + }; + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + + // 7.1.1 ToPrimitive(input [, PreferredType]) + var isObject = __webpack_require__(20); + // instead of the ES6 spec version, we didn't implement @@toPrimitive case + // and the second argument - flag - preferred type is a string + module.exports = function(it, S){ + if(!isObject(it))return it; + var fn, val; + if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; + if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; + if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; + throw TypeError("Can't convert object to primitive value"); + }; + +/***/ }), +/* 26 */ +/***/ (function(module, exports) { + + module.exports = function(bitmap, value){ + return { + enumerable : !(bitmap & 1), + configurable: !(bitmap & 2), + writable : !(bitmap & 4), + value : value + }; + }; + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = __webpack_require__(17); + +/***/ }), +/* 28 */ +/***/ (function(module, exports) { + + var hasOwnProperty = {}.hasOwnProperty; + module.exports = function(it, key){ + return hasOwnProperty.call(it, key); + }; + +/***/ }), +/* 29 */ +/***/ (function(module, exports) { + + module.exports = {}; + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var create = __webpack_require__(31) + , descriptor = __webpack_require__(26) + , setToStringTag = __webpack_require__(46) + , IteratorPrototype = {}; + + // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() + __webpack_require__(17)(IteratorPrototype, __webpack_require__(47)('iterator'), function(){ return this; }); + + module.exports = function(Constructor, NAME, next){ + Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)}); + setToStringTag(Constructor, NAME + ' Iterator'); + }; + +/***/ }), +/* 31 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) + var anObject = __webpack_require__(19) + , dPs = __webpack_require__(32) + , enumBugKeys = __webpack_require__(44) + , IE_PROTO = __webpack_require__(41)('IE_PROTO') + , Empty = function(){ /* empty */ } + , PROTOTYPE = 'prototype'; + + // Create object with fake `null` prototype: use iframe Object with cleared prototype + var createDict = function(){ + // Thrash, waste and sodomy: IE GC bug + var iframe = __webpack_require__(24)('iframe') + , i = enumBugKeys.length + , lt = '<' + , gt = '>' + , iframeDocument; + iframe.style.display = 'none'; + __webpack_require__(45).appendChild(iframe); + iframe.src = 'javascript:'; // eslint-disable-line no-script-url + // createDict = iframe.contentWindow.Object; + // html.removeChild(iframe); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); + iframeDocument.close(); + createDict = iframeDocument.F; + while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]]; + return createDict(); + }; + + module.exports = Object.create || function create(O, Properties){ + var result; + if(O !== null){ + Empty[PROTOTYPE] = anObject(O); + result = new Empty; + Empty[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = createDict(); + return Properties === undefined ? result : dPs(result, Properties); + }; + + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { + + var dP = __webpack_require__(18) + , anObject = __webpack_require__(19) + , getKeys = __webpack_require__(33); + + module.exports = __webpack_require__(22) ? Object.defineProperties : function defineProperties(O, Properties){ + anObject(O); + var keys = getKeys(Properties) + , length = keys.length + , i = 0 + , P; + while(length > i)dP.f(O, P = keys[i++], Properties[P]); + return O; + }; + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.14 / 15.2.3.14 Object.keys(O) + var $keys = __webpack_require__(34) + , enumBugKeys = __webpack_require__(44); + + module.exports = Object.keys || function keys(O){ + return $keys(O, enumBugKeys); + }; + +/***/ }), +/* 34 */ +/***/ (function(module, exports, __webpack_require__) { + + var has = __webpack_require__(28) + , toIObject = __webpack_require__(35) + , arrayIndexOf = __webpack_require__(38)(false) + , IE_PROTO = __webpack_require__(41)('IE_PROTO'); + + module.exports = function(object, names){ + var O = toIObject(object) + , i = 0 + , result = [] + , key; + for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); + // Don't enum bug & hidden keys + while(names.length > i)if(has(O, key = names[i++])){ + ~arrayIndexOf(result, key) || result.push(key); + } + return result; + }; + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __webpack_require__) { + + // to indexed object, toObject with fallback for non-array-like ES3 strings + var IObject = __webpack_require__(36) + , defined = __webpack_require__(9); + module.exports = function(it){ + return IObject(defined(it)); + }; + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __webpack_require__) { + + // fallback for non-array-like ES3 and non-enumerable old V8 strings + var cof = __webpack_require__(37); + module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ + return cof(it) == 'String' ? it.split('') : Object(it); + }; + +/***/ }), +/* 37 */ +/***/ (function(module, exports) { + + var toString = {}.toString; + + module.exports = function(it){ + return toString.call(it).slice(8, -1); + }; + +/***/ }), +/* 38 */ +/***/ (function(module, exports, __webpack_require__) { + + // false -> Array#indexOf + // true -> Array#includes + var toIObject = __webpack_require__(35) + , toLength = __webpack_require__(39) + , toIndex = __webpack_require__(40); + module.exports = function(IS_INCLUDES){ + return function($this, el, fromIndex){ + var O = toIObject($this) + , length = toLength(O.length) + , index = toIndex(fromIndex, length) + , value; + // Array#includes uses SameValueZero equality algorithm + if(IS_INCLUDES && el != el)while(length > index){ + value = O[index++]; + if(value != value)return true; + // Array#toIndex ignores holes, Array#includes - not + } else for(;length > index; index++)if(IS_INCLUDES || index in O){ + if(O[index] === el)return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; + }; + +/***/ }), +/* 39 */ +/***/ (function(module, exports, __webpack_require__) { + + // 7.1.15 ToLength + var toInteger = __webpack_require__(8) + , min = Math.min; + module.exports = function(it){ + return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 + }; + +/***/ }), +/* 40 */ +/***/ (function(module, exports, __webpack_require__) { + + var toInteger = __webpack_require__(8) + , max = Math.max + , min = Math.min; + module.exports = function(index, length){ + index = toInteger(index); + return index < 0 ? max(index + length, 0) : min(index, length); + }; + +/***/ }), +/* 41 */ +/***/ (function(module, exports, __webpack_require__) { + + var shared = __webpack_require__(42)('keys') + , uid = __webpack_require__(43); + module.exports = function(key){ + return shared[key] || (shared[key] = uid(key)); + }; + +/***/ }), +/* 42 */ +/***/ (function(module, exports, __webpack_require__) { + + var global = __webpack_require__(13) + , SHARED = '__core-js_shared__' + , store = global[SHARED] || (global[SHARED] = {}); + module.exports = function(key){ + return store[key] || (store[key] = {}); + }; + +/***/ }), +/* 43 */ +/***/ (function(module, exports) { + + var id = 0 + , px = Math.random(); + module.exports = function(key){ + return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); + }; + +/***/ }), +/* 44 */ +/***/ (function(module, exports) { + + // IE 8- don't enum bug keys + module.exports = ( + 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' + ).split(','); + +/***/ }), +/* 45 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = __webpack_require__(13).document && document.documentElement; + +/***/ }), +/* 46 */ +/***/ (function(module, exports, __webpack_require__) { + + var def = __webpack_require__(18).f + , has = __webpack_require__(28) + , TAG = __webpack_require__(47)('toStringTag'); + + module.exports = function(it, tag, stat){ + if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag}); + }; + +/***/ }), +/* 47 */ +/***/ (function(module, exports, __webpack_require__) { + + var store = __webpack_require__(42)('wks') + , uid = __webpack_require__(43) + , Symbol = __webpack_require__(13).Symbol + , USE_SYMBOL = typeof Symbol == 'function'; + + var $exports = module.exports = function(name){ + return store[name] || (store[name] = + USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); + }; + + $exports.store = store; + +/***/ }), +/* 48 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) + var has = __webpack_require__(28) + , toObject = __webpack_require__(49) + , IE_PROTO = __webpack_require__(41)('IE_PROTO') + , ObjectProto = Object.prototype; + + module.exports = Object.getPrototypeOf || function(O){ + O = toObject(O); + if(has(O, IE_PROTO))return O[IE_PROTO]; + if(typeof O.constructor == 'function' && O instanceof O.constructor){ + return O.constructor.prototype; + } return O instanceof Object ? ObjectProto : null; + }; + +/***/ }), +/* 49 */ +/***/ (function(module, exports, __webpack_require__) { + + // 7.1.13 ToObject(argument) + var defined = __webpack_require__(9); + module.exports = function(it){ + return Object(defined(it)); + }; + +/***/ }), +/* 50 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(51); + var global = __webpack_require__(13) + , hide = __webpack_require__(17) + , Iterators = __webpack_require__(29) + , TO_STRING_TAG = __webpack_require__(47)('toStringTag'); + + for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){ + var NAME = collections[i] + , Collection = global[NAME] + , proto = Collection && Collection.prototype; + if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME); + Iterators[NAME] = Iterators.Array; + } + +/***/ }), +/* 51 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var addToUnscopables = __webpack_require__(52) + , step = __webpack_require__(53) + , Iterators = __webpack_require__(29) + , toIObject = __webpack_require__(35); + + // 22.1.3.4 Array.prototype.entries() + // 22.1.3.13 Array.prototype.keys() + // 22.1.3.29 Array.prototype.values() + // 22.1.3.30 Array.prototype[@@iterator]() + module.exports = __webpack_require__(10)(Array, 'Array', function(iterated, kind){ + this._t = toIObject(iterated); // target + this._i = 0; // next index + this._k = kind; // kind + // 22.1.5.2.1 %ArrayIteratorPrototype%.next() + }, function(){ + var O = this._t + , kind = this._k + , index = this._i++; + if(!O || index >= O.length){ + this._t = undefined; + return step(1); + } + if(kind == 'keys' )return step(0, index); + if(kind == 'values')return step(0, O[index]); + return step(0, [index, O[index]]); + }, 'values'); + + // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) + Iterators.Arguments = Iterators.Array; + + addToUnscopables('keys'); + addToUnscopables('values'); + addToUnscopables('entries'); + +/***/ }), +/* 52 */ +/***/ (function(module, exports) { + + module.exports = function(){ /* empty */ }; + +/***/ }), +/* 53 */ +/***/ (function(module, exports) { + + module.exports = function(done, value){ + return {value: value, done: !!done}; + }; + +/***/ }), +/* 54 */ +/***/ (function(module, exports, __webpack_require__) { + + exports.f = __webpack_require__(47); + +/***/ }), +/* 55 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = { "default": __webpack_require__(56), __esModule: true }; + +/***/ }), +/* 56 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(57); + __webpack_require__(68); + __webpack_require__(69); + __webpack_require__(70); + module.exports = __webpack_require__(14).Symbol; + +/***/ }), +/* 57 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // ECMAScript 6 symbols shim + var global = __webpack_require__(13) + , has = __webpack_require__(28) + , DESCRIPTORS = __webpack_require__(22) + , $export = __webpack_require__(12) + , redefine = __webpack_require__(27) + , META = __webpack_require__(58).KEY + , $fails = __webpack_require__(23) + , shared = __webpack_require__(42) + , setToStringTag = __webpack_require__(46) + , uid = __webpack_require__(43) + , wks = __webpack_require__(47) + , wksExt = __webpack_require__(54) + , wksDefine = __webpack_require__(59) + , keyOf = __webpack_require__(60) + , enumKeys = __webpack_require__(61) + , isArray = __webpack_require__(64) + , anObject = __webpack_require__(19) + , toIObject = __webpack_require__(35) + , toPrimitive = __webpack_require__(25) + , createDesc = __webpack_require__(26) + , _create = __webpack_require__(31) + , gOPNExt = __webpack_require__(65) + , $GOPD = __webpack_require__(67) + , $DP = __webpack_require__(18) + , $keys = __webpack_require__(33) + , gOPD = $GOPD.f + , dP = $DP.f + , gOPN = gOPNExt.f + , $Symbol = global.Symbol + , $JSON = global.JSON + , _stringify = $JSON && $JSON.stringify + , PROTOTYPE = 'prototype' + , HIDDEN = wks('_hidden') + , TO_PRIMITIVE = wks('toPrimitive') + , isEnum = {}.propertyIsEnumerable + , SymbolRegistry = shared('symbol-registry') + , AllSymbols = shared('symbols') + , OPSymbols = shared('op-symbols') + , ObjectProto = Object[PROTOTYPE] + , USE_NATIVE = typeof $Symbol == 'function' + , QObject = global.QObject; + // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 + var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; + + // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 + var setSymbolDesc = DESCRIPTORS && $fails(function(){ + return _create(dP({}, 'a', { + get: function(){ return dP(this, 'a', {value: 7}).a; } + })).a != 7; + }) ? function(it, key, D){ + var protoDesc = gOPD(ObjectProto, key); + if(protoDesc)delete ObjectProto[key]; + dP(it, key, D); + if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc); + } : dP; + + var wrap = function(tag){ + var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); + sym._k = tag; + return sym; + }; + + var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){ + return typeof it == 'symbol'; + } : function(it){ + return it instanceof $Symbol; + }; + + var $defineProperty = function defineProperty(it, key, D){ + if(it === ObjectProto)$defineProperty(OPSymbols, key, D); + anObject(it); + key = toPrimitive(key, true); + anObject(D); + if(has(AllSymbols, key)){ + if(!D.enumerable){ + if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {})); + it[HIDDEN][key] = true; + } else { + if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false; + D = _create(D, {enumerable: createDesc(0, false)}); + } return setSymbolDesc(it, key, D); + } return dP(it, key, D); + }; + var $defineProperties = function defineProperties(it, P){ + anObject(it); + var keys = enumKeys(P = toIObject(P)) + , i = 0 + , l = keys.length + , key; + while(l > i)$defineProperty(it, key = keys[i++], P[key]); + return it; + }; + var $create = function create(it, P){ + return P === undefined ? _create(it) : $defineProperties(_create(it), P); + }; + var $propertyIsEnumerable = function propertyIsEnumerable(key){ + var E = isEnum.call(this, key = toPrimitive(key, true)); + if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false; + return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; + }; + var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){ + it = toIObject(it); + key = toPrimitive(key, true); + if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return; + var D = gOPD(it, key); + if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true; + return D; + }; + var $getOwnPropertyNames = function getOwnPropertyNames(it){ + var names = gOPN(toIObject(it)) + , result = [] + , i = 0 + , key; + while(names.length > i){ + if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key); + } return result; + }; + var $getOwnPropertySymbols = function getOwnPropertySymbols(it){ + var IS_OP = it === ObjectProto + , names = gOPN(IS_OP ? OPSymbols : toIObject(it)) + , result = [] + , i = 0 + , key; + while(names.length > i){ + if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]); + } return result; + }; + + // 19.4.1.1 Symbol([description]) + if(!USE_NATIVE){ + $Symbol = function Symbol(){ + if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!'); + var tag = uid(arguments.length > 0 ? arguments[0] : undefined); + var $set = function(value){ + if(this === ObjectProto)$set.call(OPSymbols, value); + if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false; + setSymbolDesc(this, tag, createDesc(1, value)); + }; + if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set}); + return wrap(tag); + }; + redefine($Symbol[PROTOTYPE], 'toString', function toString(){ + return this._k; + }); + + $GOPD.f = $getOwnPropertyDescriptor; + $DP.f = $defineProperty; + __webpack_require__(66).f = gOPNExt.f = $getOwnPropertyNames; + __webpack_require__(63).f = $propertyIsEnumerable; + __webpack_require__(62).f = $getOwnPropertySymbols; + + if(DESCRIPTORS && !__webpack_require__(11)){ + redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); + } + + wksExt.f = function(name){ + return wrap(wks(name)); + } + } + + $export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol}); + + for(var symbols = ( + // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 + 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' + ).split(','), i = 0; symbols.length > i; )wks(symbols[i++]); + + for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]); + + $export($export.S + $export.F * !USE_NATIVE, 'Symbol', { + // 19.4.2.1 Symbol.for(key) + 'for': function(key){ + return has(SymbolRegistry, key += '') + ? SymbolRegistry[key] + : SymbolRegistry[key] = $Symbol(key); + }, + // 19.4.2.5 Symbol.keyFor(sym) + keyFor: function keyFor(key){ + if(isSymbol(key))return keyOf(SymbolRegistry, key); + throw TypeError(key + ' is not a symbol!'); + }, + useSetter: function(){ setter = true; }, + useSimple: function(){ setter = false; } + }); + + $export($export.S + $export.F * !USE_NATIVE, 'Object', { + // 19.1.2.2 Object.create(O [, Properties]) + create: $create, + // 19.1.2.4 Object.defineProperty(O, P, Attributes) + defineProperty: $defineProperty, + // 19.1.2.3 Object.defineProperties(O, Properties) + defineProperties: $defineProperties, + // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) + getOwnPropertyDescriptor: $getOwnPropertyDescriptor, + // 19.1.2.7 Object.getOwnPropertyNames(O) + getOwnPropertyNames: $getOwnPropertyNames, + // 19.1.2.8 Object.getOwnPropertySymbols(O) + getOwnPropertySymbols: $getOwnPropertySymbols + }); + + // 24.3.2 JSON.stringify(value [, replacer [, space]]) + $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){ + var S = $Symbol(); + // MS Edge converts symbol values to JSON as {} + // WebKit converts symbol values to JSON as null + // V8 throws on boxed symbols + return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}'; + })), 'JSON', { + stringify: function stringify(it){ + if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined + var args = [it] + , i = 1 + , replacer, $replacer; + while(arguments.length > i)args.push(arguments[i++]); + replacer = args[1]; + if(typeof replacer == 'function')$replacer = replacer; + if($replacer || !isArray(replacer))replacer = function(key, value){ + if($replacer)value = $replacer.call(this, key, value); + if(!isSymbol(value))return value; + }; + args[1] = replacer; + return _stringify.apply($JSON, args); + } + }); + + // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) + $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(17)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); + // 19.4.3.5 Symbol.prototype[@@toStringTag] + setToStringTag($Symbol, 'Symbol'); + // 20.2.1.9 Math[@@toStringTag] + setToStringTag(Math, 'Math', true); + // 24.3.3 JSON[@@toStringTag] + setToStringTag(global.JSON, 'JSON', true); + +/***/ }), +/* 58 */ +/***/ (function(module, exports, __webpack_require__) { + + var META = __webpack_require__(43)('meta') + , isObject = __webpack_require__(20) + , has = __webpack_require__(28) + , setDesc = __webpack_require__(18).f + , id = 0; + var isExtensible = Object.isExtensible || function(){ + return true; + }; + var FREEZE = !__webpack_require__(23)(function(){ + return isExtensible(Object.preventExtensions({})); + }); + var setMeta = function(it){ + setDesc(it, META, {value: { + i: 'O' + ++id, // object ID + w: {} // weak collections IDs + }}); + }; + var fastKey = function(it, create){ + // return primitive with prefix + if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if(!has(it, META)){ + // can't set metadata to uncaught frozen object + if(!isExtensible(it))return 'F'; + // not necessary to add metadata + if(!create)return 'E'; + // add missing metadata + setMeta(it); + // return object ID + } return it[META].i; + }; + var getWeak = function(it, create){ + if(!has(it, META)){ + // can't set metadata to uncaught frozen object + if(!isExtensible(it))return true; + // not necessary to add metadata + if(!create)return false; + // add missing metadata + setMeta(it); + // return hash weak collections IDs + } return it[META].w; + }; + // add metadata on freeze-family methods calling + var onFreeze = function(it){ + if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it); + return it; + }; + var meta = module.exports = { + KEY: META, + NEED: false, + fastKey: fastKey, + getWeak: getWeak, + onFreeze: onFreeze + }; + +/***/ }), +/* 59 */ +/***/ (function(module, exports, __webpack_require__) { + + var global = __webpack_require__(13) + , core = __webpack_require__(14) + , LIBRARY = __webpack_require__(11) + , wksExt = __webpack_require__(54) + , defineProperty = __webpack_require__(18).f; + module.exports = function(name){ + var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); + if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)}); + }; + +/***/ }), +/* 60 */ +/***/ (function(module, exports, __webpack_require__) { + + var getKeys = __webpack_require__(33) + , toIObject = __webpack_require__(35); + module.exports = function(object, el){ + var O = toIObject(object) + , keys = getKeys(O) + , length = keys.length + , index = 0 + , key; + while(length > index)if(O[key = keys[index++]] === el)return key; + }; + +/***/ }), +/* 61 */ +/***/ (function(module, exports, __webpack_require__) { + + // all enumerable object keys, includes symbols + var getKeys = __webpack_require__(33) + , gOPS = __webpack_require__(62) + , pIE = __webpack_require__(63); + module.exports = function(it){ + var result = getKeys(it) + , getSymbols = gOPS.f; + if(getSymbols){ + var symbols = getSymbols(it) + , isEnum = pIE.f + , i = 0 + , key; + while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key); + } return result; + }; + +/***/ }), +/* 62 */ +/***/ (function(module, exports) { + + exports.f = Object.getOwnPropertySymbols; + +/***/ }), +/* 63 */ +/***/ (function(module, exports) { + + exports.f = {}.propertyIsEnumerable; + +/***/ }), +/* 64 */ +/***/ (function(module, exports, __webpack_require__) { + + // 7.2.2 IsArray(argument) + var cof = __webpack_require__(37); + module.exports = Array.isArray || function isArray(arg){ + return cof(arg) == 'Array'; + }; + +/***/ }), +/* 65 */ +/***/ (function(module, exports, __webpack_require__) { + + // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window + var toIObject = __webpack_require__(35) + , gOPN = __webpack_require__(66).f + , toString = {}.toString; + + var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + + var getWindowNames = function(it){ + try { + return gOPN(it); + } catch(e){ + return windowNames.slice(); + } + }; + + module.exports.f = function getOwnPropertyNames(it){ + return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); + }; + + +/***/ }), +/* 66 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) + var $keys = __webpack_require__(34) + , hiddenKeys = __webpack_require__(44).concat('length', 'prototype'); + + exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){ + return $keys(O, hiddenKeys); + }; + +/***/ }), +/* 67 */ +/***/ (function(module, exports, __webpack_require__) { + + var pIE = __webpack_require__(63) + , createDesc = __webpack_require__(26) + , toIObject = __webpack_require__(35) + , toPrimitive = __webpack_require__(25) + , has = __webpack_require__(28) + , IE8_DOM_DEFINE = __webpack_require__(21) + , gOPD = Object.getOwnPropertyDescriptor; + + exports.f = __webpack_require__(22) ? gOPD : function getOwnPropertyDescriptor(O, P){ + O = toIObject(O); + P = toPrimitive(P, true); + if(IE8_DOM_DEFINE)try { + return gOPD(O, P); + } catch(e){ /* empty */ } + if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]); + }; + +/***/ }), +/* 68 */ +/***/ (function(module, exports) { + + + +/***/ }), +/* 69 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(59)('asyncIterator'); + +/***/ }), +/* 70 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(59)('observable'); + +/***/ }), +/* 71 */ +/***/ (function(module, exports) { + + var Helpers, h; + + Helpers = (function() { + Helpers.prototype.NS = 'http://www.w3.org/2000/svg'; + + Helpers.prototype.logBadgeCss = 'background:#3A0839;color:#FF512F;border-radius:5px; padding: 1px 5px 2px; border: 1px solid #FF512F;'; + + Helpers.prototype.shortColors = { + transparent: 'rgba(0,0,0,0)', + none: 'rgba(0,0,0,0)', + aqua: 'rgb(0,255,255)', + black: 'rgb(0,0,0)', + blue: 'rgb(0,0,255)', + fuchsia: 'rgb(255,0,255)', + gray: 'rgb(128,128,128)', + green: 'rgb(0,128,0)', + lime: 'rgb(0,255,0)', + maroon: 'rgb(128,0,0)', + navy: 'rgb(0,0,128)', + olive: 'rgb(128,128,0)', + purple: 'rgb(128,0,128)', + red: 'rgb(255,0,0)', + silver: 'rgb(192,192,192)', + teal: 'rgb(0,128,128)', + white: 'rgb(255,255,255)', + yellow: 'rgb(255,255,0)', + orange: 'rgb(255,128,0)' + }; + + Helpers.prototype.chainOptionMap = {}; + + Helpers.prototype.callbacksMap = { + onRefresh: 1, + onStart: 1, + onComplete: 1, + onFirstUpdate: 1, + onUpdate: 1, + onProgress: 1, + onRepeatStart: 1, + onRepeatComplete: 1, + onPlaybackStart: 1, + onPlaybackPause: 1, + onPlaybackStop: 1, + onPlaybackComplete: 1 + }; + + Helpers.prototype.tweenOptionMap = { + duration: 1, + delay: 1, + speed: 1, + repeat: 1, + easing: 1, + backwardEasing: 1, + isYoyo: 1, + shiftTime: 1, + isReversed: 1, + callbacksContext: 1 + }; + + Helpers.prototype.unitOptionMap = { + left: 1, + top: 1, + x: 1, + y: 1, + rx: 1, + ry: 1 + }; + + Helpers.prototype.RAD_TO_DEG = 180 / Math.PI; + + function Helpers() { + this.vars(); + } + + Helpers.prototype.vars = function() { + var ua; + this.prefix = this.getPrefix(); + this.getRemBase(); + this.isFF = this.prefix.lowercase === 'moz'; + this.isIE = this.prefix.lowercase === 'ms'; + ua = navigator.userAgent; + this.isOldOpera = ua.match(/presto/gim); + this.isSafari = ua.indexOf('Safari') > -1; + this.isChrome = ua.indexOf('Chrome') > -1; + this.isOpera = ua.toLowerCase().indexOf("op") > -1; + this.isChrome && this.isSafari && (this.isSafari = false); + (ua.match(/PhantomJS/gim)) && (this.isSafari = false); + this.isChrome && this.isOpera && (this.isChrome = false); + this.is3d = this.checkIf3d(); + this.uniqIDs = -1; + this.div = document.createElement('div'); + document.body.appendChild(this.div); + return this.defaultStyles = this.computedStyle(this.div); + }; + + Helpers.prototype.cloneObj = function(obj, exclude) { + var i, key, keys, newObj; + keys = Object.keys(obj); + newObj = {}; + i = keys.length; + while (i--) { + key = keys[i]; + if (exclude != null) { + if (!exclude[key]) { + newObj[key] = obj[key]; + } + } else { + newObj[key] = obj[key]; + } + } + return newObj; + }; + + Helpers.prototype.extend = function(objTo, objFrom) { + var key, value; + for (key in objFrom) { + value = objFrom[key]; + if (objTo[key] == null) { + objTo[key] = objFrom[key]; + } + } + return objTo; + }; + + Helpers.prototype.getRemBase = function() { + var html, style; + html = document.querySelector('html'); + style = getComputedStyle(html); + return this.remBase = parseFloat(style.fontSize); + }; + + Helpers.prototype.clamp = function(value, min, max) { + if (value < min) { + return min; + } else if (value > max) { + return max; + } else { + return value; + } + }; + + Helpers.prototype.setPrefixedStyle = function(el, name, value) { + (name === 'transform') && (el.style["" + this.prefix.css + name] = value); + return el.style[name] = value; + }; + + Helpers.prototype.style = function(el, name, value) { + var key, keys, len, results; + if (typeof name === 'object') { + keys = Object.keys(name); + len = keys.length; + results = []; + while (len--) { + key = keys[len]; + value = name[key]; + results.push(this.setPrefixedStyle(el, key, value)); + } + return results; + } else { + return this.setPrefixedStyle(el, name, value); + } + }; + + Helpers.prototype.prepareForLog = function(args) { + args = Array.prototype.slice.apply(args); + args.unshift('::'); + args.unshift(this.logBadgeCss); + args.unshift('%cmo·js%c'); + return args; + }; + + Helpers.prototype.log = function() { + if (mojs.isDebug === false) { + return; + } + return console.log.apply(console, this.prepareForLog(arguments)); + }; + + Helpers.prototype.warn = function() { + if (mojs.isDebug === false) { + return; + } + return console.warn.apply(console, this.prepareForLog(arguments)); + }; + + Helpers.prototype.error = function() { + if (mojs.isDebug === false) { + return; + } + return console.error.apply(console, this.prepareForLog(arguments)); + }; + + Helpers.prototype.parseUnit = function(value) { + var amount, isStrict, ref, regex, returnVal, unit; + if (typeof value === 'number') { + return returnVal = { + unit: 'px', + isStrict: false, + value: value, + string: value === 0 ? "" + value : value + "px" + }; + } else if (typeof value === 'string') { + regex = /px|%|rem|em|ex|cm|ch|mm|in|pt|pc|vh|vw|vmin|deg/gim; + unit = (ref = value.match(regex)) != null ? ref[0] : void 0; + isStrict = true; + if (!unit) { + unit = 'px'; + isStrict = false; + } + amount = parseFloat(value); + return returnVal = { + unit: unit, + isStrict: isStrict, + value: amount, + string: amount === 0 ? "" + amount : "" + amount + unit + }; + } + return value; + }; + + Helpers.prototype.bind = function(func, context) { + var bindArgs, wrapper; + wrapper = function() { + var args, unshiftArgs; + args = Array.prototype.slice.call(arguments); + unshiftArgs = bindArgs.concat(args); + return func.apply(context, unshiftArgs); + }; + bindArgs = Array.prototype.slice.call(arguments, 2); + return wrapper; + }; + + Helpers.prototype.getRadialPoint = function(o) { + var point, radAngle, radiusX, radiusY; + if (o == null) { + o = {}; + } + radAngle = (o.angle - 90) * 0.017453292519943295; + radiusX = o.radiusX != null ? o.radiusX : o.radius; + radiusY = o.radiusY != null ? o.radiusY : o.radius; + return point = { + x: o.center.x + (Math.cos(radAngle) * radiusX), + y: o.center.y + (Math.sin(radAngle) * radiusY) + }; + }; + + Helpers.prototype.getPrefix = function() { + var dom, pre, styles, v; + styles = window.getComputedStyle(document.documentElement, ""); + v = Array.prototype.slice.call(styles).join("").match(/-(moz|webkit|ms)-/); + pre = (v || (styles.OLink === "" && ["", "o"]))[1]; + dom = "WebKit|Moz|MS|O".match(new RegExp("(" + pre + ")", "i"))[1]; + return { + dom: dom, + lowercase: pre, + css: "-" + pre + "-", + js: pre[0].toUpperCase() + pre.substr(1) + }; + }; + + Helpers.prototype.strToArr = function(string) { + var arr; + arr = []; + if (typeof string === 'number' && !isNaN(string)) { + arr.push(this.parseUnit(string)); + return arr; + } + string.trim().split(/\s+/gim).forEach((function(_this) { + return function(str) { + return arr.push(_this.parseUnit(_this.parseIfRand(str))); + }; + })(this)); + return arr; + }; + + Helpers.prototype.calcArrDelta = function(arr1, arr2) { + var delta, i, j, len1, num; + delta = []; + for (i = j = 0, len1 = arr1.length; j < len1; i = ++j) { + num = arr1[i]; + delta[i] = this.parseUnit("" + (arr2[i].value - arr1[i].value) + arr2[i].unit); + } + return delta; + }; + + Helpers.prototype.isArray = function(variable) { + return variable instanceof Array; + }; + + Helpers.prototype.normDashArrays = function(arr1, arr2) { + var arr1Len, arr2Len, currItem, i, j, k, lenDiff, ref, ref1, startI; + arr1Len = arr1.length; + arr2Len = arr2.length; + if (arr1Len > arr2Len) { + lenDiff = arr1Len - arr2Len; + startI = arr2.length; + for (i = j = 0, ref = lenDiff; 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) { + currItem = i + startI; + arr2.push(this.parseUnit("0" + arr1[currItem].unit)); + } + } else if (arr2Len > arr1Len) { + lenDiff = arr2Len - arr1Len; + startI = arr1.length; + for (i = k = 0, ref1 = lenDiff; 0 <= ref1 ? k < ref1 : k > ref1; i = 0 <= ref1 ? ++k : --k) { + currItem = i + startI; + arr1.push(this.parseUnit("0" + arr2[currItem].unit)); + } + } + return [arr1, arr2]; + }; + + Helpers.prototype.makeColorObj = function(color) { + var alpha, b, colorObj, g, isRgb, r, regexString1, regexString2, result, rgbColor; + if (color[0] === '#') { + result = /^#?([a-f\d]{1,2})([a-f\d]{1,2})([a-f\d]{1,2})$/i.exec(color); + colorObj = {}; + if (result) { + r = result[1].length === 2 ? result[1] : result[1] + result[1]; + g = result[2].length === 2 ? result[2] : result[2] + result[2]; + b = result[3].length === 2 ? result[3] : result[3] + result[3]; + colorObj = { + r: parseInt(r, 16), + g: parseInt(g, 16), + b: parseInt(b, 16), + a: 1 + }; + } + } + if (color[0] !== '#') { + isRgb = color[0] === 'r' && color[1] === 'g' && color[2] === 'b'; + if (isRgb) { + rgbColor = color; + } + if (!isRgb) { + rgbColor = !this.shortColors[color] ? (this.div.style.color = color, this.computedStyle(this.div).color) : this.shortColors[color]; + } + regexString1 = '^rgba?\\((\\d{1,3}),\\s?(\\d{1,3}),'; + regexString2 = '\\s?(\\d{1,3}),?\\s?(\\d{1}|0?\\.\\d{1,})?\\)$'; + result = new RegExp(regexString1 + regexString2, 'gi').exec(rgbColor); + colorObj = {}; + alpha = parseFloat(result[4] || 1); + if (result) { + colorObj = { + r: parseInt(result[1], 10), + g: parseInt(result[2], 10), + b: parseInt(result[3], 10), + a: (alpha != null) && !isNaN(alpha) ? alpha : 1 + }; + } + } + return colorObj; + }; + + Helpers.prototype.computedStyle = function(el) { + return getComputedStyle(el); + }; + + Helpers.prototype.capitalize = function(str) { + if (typeof str !== 'string') { + throw Error('String expected - nothing to capitalize'); + } + return str.charAt(0).toUpperCase() + str.substring(1); + }; + + Helpers.prototype.parseRand = function(string) { + var rand, randArr, units; + randArr = string.split(/rand\(|\,|\)/); + units = this.parseUnit(randArr[2]); + rand = this.rand(parseFloat(randArr[1]), parseFloat(randArr[2])); + if (units.unit && randArr[2].match(units.unit)) { + return rand + units.unit; + } else { + return rand; + } + }; + + Helpers.prototype.parseStagger = function(string, index) { + var base, number, splittedValue, unit, unitValue, value; + value = string.split(/stagger\(|\)$/)[1].toLowerCase(); + splittedValue = value.split(/(rand\(.*?\)|[^\(,\s]+)(?=\s*,|\s*$)/gim); + value = splittedValue.length > 3 ? (base = this.parseUnit(this.parseIfRand(splittedValue[1])), splittedValue[3]) : (base = this.parseUnit(0), splittedValue[1]); + value = this.parseIfRand(value); + unitValue = this.parseUnit(value); + number = index * unitValue.value + base.value; + unit = base.isStrict ? base.unit : unitValue.isStrict ? unitValue.unit : ''; + if (unit) { + return "" + number + unit; + } else { + return number; + } + }; + + Helpers.prototype.parseIfStagger = function(value, i) { + if (!(typeof value === 'string' && value.match(/stagger/g))) { + return value; + } else { + return this.parseStagger(value, i); + } + }; + + Helpers.prototype.parseIfRand = function(str) { + if (typeof str === 'string' && str.match(/rand\(/)) { + return this.parseRand(str); + } else { + return str; + } + }; + + Helpers.prototype.parseDelta = function(key, value, index) { + var curve, delta, easing, end, endArr, endColorObj, i, j, len1, start, startArr, startColorObj; + value = this.cloneObj(value); + easing = value.easing; + if (easing != null) { + easing = mojs.easing.parseEasing(easing); + } + delete value.easing; + curve = value.curve; + if (curve != null) { + curve = mojs.easing.parseEasing(curve); + } + delete value.curve; + start = Object.keys(value)[0]; + end = value[start]; + delta = { + start: start + }; + if (isNaN(parseFloat(start)) && !start.match(/rand\(/) && !start.match(/stagger\(/)) { + if (key === 'strokeLinecap') { + this.warn("Sorry, stroke-linecap property is not animatable yet, using the start(" + start + ") value instead", value); + return delta; + } + startColorObj = this.makeColorObj(start); + endColorObj = this.makeColorObj(end); + delta = { + type: 'color', + name: key, + start: startColorObj, + end: endColorObj, + easing: easing, + curve: curve, + delta: { + r: endColorObj.r - startColorObj.r, + g: endColorObj.g - startColorObj.g, + b: endColorObj.b - startColorObj.b, + a: endColorObj.a - startColorObj.a + } + }; + } else if (key === 'strokeDasharray' || key === 'strokeDashoffset' || key === 'origin') { + startArr = this.strToArr(start); + endArr = this.strToArr(end); + this.normDashArrays(startArr, endArr); + for (i = j = 0, len1 = startArr.length; j < len1; i = ++j) { + start = startArr[i]; + end = endArr[i]; + this.mergeUnits(start, end, key); + } + delta = { + type: 'array', + name: key, + start: startArr, + end: endArr, + delta: this.calcArrDelta(startArr, endArr), + easing: easing, + curve: curve + }; + } else { + if (!this.callbacksMap[key] && !this.tweenOptionMap[key]) { + if (this.unitOptionMap[key]) { + end = this.parseUnit(this.parseStringOption(end, index)); + start = this.parseUnit(this.parseStringOption(start, index)); + this.mergeUnits(start, end, key); + delta = { + type: 'unit', + name: key, + start: start, + end: end, + delta: end.value - start.value, + easing: easing, + curve: curve + }; + } else { + end = parseFloat(this.parseStringOption(end, index)); + start = parseFloat(this.parseStringOption(start, index)); + delta = { + type: 'number', + name: key, + start: start, + end: end, + delta: end - start, + easing: easing, + curve: curve + }; + } + } + } + return delta; + }; + + Helpers.prototype.mergeUnits = function(start, end, key) { + if (!end.isStrict && start.isStrict) { + end.unit = start.unit; + return end.string = "" + end.value + end.unit; + } else if (end.isStrict && !start.isStrict) { + start.unit = end.unit; + return start.string = "" + start.value + start.unit; + } else if (end.isStrict && start.isStrict) { + if (end.unit !== start.unit) { + start.unit = end.unit; + start.string = "" + start.value + start.unit; + return this.warn("Two different units were specified on \"" + key + "\" delta property, mo · js will fallback to end \"" + end.unit + "\" unit "); + } + } + }; + + Helpers.prototype.rand = function(min, max) { + return (Math.random() * (max - min)) + min; + }; + + Helpers.prototype.isDOM = function(o) { + var isNode; + if (o == null) { + return false; + } + isNode = typeof o.nodeType === 'number' && typeof o.nodeName === 'string'; + return typeof o === 'object' && isNode; + }; + + Helpers.prototype.getChildElements = function(element) { + var childNodes, children, i; + childNodes = element.childNodes; + children = []; + i = childNodes.length; + while (i--) { + if (childNodes[i].nodeType === 1) { + children.unshift(childNodes[i]); + } + } + return children; + }; + + Helpers.prototype.delta = function(start, end) { + var isType1, isType2, obj, type1, type2; + type1 = typeof start; + type2 = typeof end; + isType1 = type1 === 'string' || type1 === 'number' && !isNaN(start); + isType2 = type2 === 'string' || type2 === 'number' && !isNaN(end); + if (!isType1 || !isType2) { + this.error("delta method expects Strings or Numbers at input but got - " + start + ", " + end); + return; + } + obj = {}; + obj[start] = end; + return obj; + }; + + Helpers.prototype.getUniqID = function() { + return ++this.uniqIDs; + }; + + Helpers.prototype.parsePath = function(path) { + var domPath; + if (typeof path === 'string') { + if (path.charAt(0).toLowerCase() === 'm') { + domPath = document.createElementNS(this.NS, 'path'); + domPath.setAttributeNS(null, 'd', path); + return domPath; + } else { + return document.querySelector(path); + } + } + if (path.style) { + return path; + } + }; + + Helpers.prototype.closeEnough = function(num1, num2, eps) { + return Math.abs(num1 - num2) < eps; + }; + + Helpers.prototype.checkIf3d = function() { + var div, prefixed, style, tr; + div = document.createElement('div'); + this.style(div, 'transform', 'translateZ(0)'); + style = div.style; + prefixed = this.prefix.css + "transform"; + tr = style[prefixed] != null ? style[prefixed] : style.transform; + return tr !== ''; + }; + + + /* + Method to check if variable holds pointer to an object. + @param {Any} Variable to test + @returns {Boolean} If variable is object. + */ + + Helpers.prototype.isObject = function(variable) { + return variable !== null && typeof variable === 'object'; + }; + + + /* + Method to get first value of the object. + Used to get end value on ∆s. + @param {Object} Object to get the value of. + @returns {Any} The value of the first object' property. + */ + + Helpers.prototype.getDeltaEnd = function(obj) { + var key; + key = Object.keys(obj)[0]; + return obj[key]; + }; + + + /* + Method to get first key of the object. + Used to get start value on ∆s. + @param {Object} Object to get the value of. + @returns {String} The key of the first object' property. + */ + + Helpers.prototype.getDeltaStart = function(obj) { + var key; + key = Object.keys(obj)[0]; + return key; + }; + + + /* + Method to check if propery exists in callbacksMap or tweenOptionMap. + @param {String} Property name to check for + @returns {Boolean} If property is tween property. + */ + + Helpers.prototype.isTweenProp = function(keyName) { + return this.tweenOptionMap[keyName] || this.callbacksMap[keyName]; + }; + + + /* + Method to parse string property value + which can include both `rand` and `stagger ` + value in various positions. + @param {String} Property name to check for. + @param {Number} Optional index for stagger. + @returns {Number} Parsed option value. + */ + + Helpers.prototype.parseStringOption = function(value, index) { + if (index == null) { + index = 0; + } + if (typeof value === 'string') { + value = this.parseIfStagger(value, index); + value = this.parseIfRand(value); + } + return value; + }; + + + /* + Method to get the last item of array. + @private + @param {Array} Array to get the last item in. + @returns {Any} The last item of array. + */ + + Helpers.prototype.getLastItem = function(arr) { + return arr[arr.length - 1]; + }; + + + /* + Method parse HTMLElement. + @private + @param {String, Object} Selector string or HTMLElement. + @returns {Object} HTMLElement. + */ + + Helpers.prototype.parseEl = function(el) { + if (h.isDOM(el)) { + return el; + } else if (typeof el === 'string') { + el = document.querySelector(el); + } + if (el === null) { + h.error("Can't parse HTML element: ", el); + } + return el; + }; + + + /* + Method force compositor layer on HTMLElement. + @private + @param {Object} HTMLElement. + @returns {Object} HTMLElement. + */ + + Helpers.prototype.force3d = function(el) { + this.setPrefixedStyle(el, 'backface-visibility', 'hidden'); + return el; + }; + + + /* + Method to check if value is delta. + @private + @param {Any} Property to check. + @returns {Boolean} If value is delta. + */ + + Helpers.prototype.isDelta = function(optionsValue) { + var isObject; + isObject = this.isObject(optionsValue); + isObject = isObject && !optionsValue.unit; + return !(!isObject || this.isArray(optionsValue) || this.isDOM(optionsValue)); + }; + + return Helpers; + + })(); + + h = new Helpers; + + module.exports = h; + + +/***/ }), +/* 72 */ +/***/ (function(module, exports, __webpack_require__) { + + var Bit, BitsMap, Circle, Cross, Curve, Custom, Equal, Line, Polygon, Rect, Zigzag, h; + + Bit = __webpack_require__(73)["default"] || __webpack_require__(73); + + Custom = __webpack_require__(85)["default"] || __webpack_require__(85); + + Circle = __webpack_require__(86); + + Line = __webpack_require__(87); + + Zigzag = __webpack_require__(88); + + Rect = __webpack_require__(89); + + Polygon = __webpack_require__(90); + + Cross = __webpack_require__(91); + + Curve = __webpack_require__(92)["default"] || __webpack_require__(92); + + Equal = __webpack_require__(93); + + h = __webpack_require__(71); + + BitsMap = (function() { + function BitsMap() { + this.addShape = h.bind(this.addShape, this); + } + + BitsMap.prototype.bit = Bit; + + BitsMap.prototype.custom = Custom; + + BitsMap.prototype.circle = Circle; + + BitsMap.prototype.line = Line; + + BitsMap.prototype.zigzag = Zigzag; + + BitsMap.prototype.rect = Rect; + + BitsMap.prototype.polygon = Polygon; + + BitsMap.prototype.cross = Cross; + + BitsMap.prototype.equal = Equal; + + BitsMap.prototype.curve = Curve; + + BitsMap.prototype.getShape = function(name) { + return this[name] || h.error("no \"" + name + "\" shape available yet, please choose from this list:", ['circle', 'line', 'zigzag', 'rect', 'polygon', 'cross', 'equal', 'curve']); + }; + + + /* + Method to add shape to the map. + @public + @param {String} Name of the shape module. + @param {Object} Shape module class. + */ + + BitsMap.prototype.addShape = function(name, Module) { + return this[name] = Module; + }; + + return BitsMap; + + })(); + + module.exports = new BitsMap; + + +/***/ }), +/* 73 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _typeof2 = __webpack_require__(3); + + var _typeof3 = _interopRequireDefault(_typeof2); + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _module = __webpack_require__(84); + + var _module2 = _interopRequireDefault(_module); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var Bit = function (_Module) { + (0, _inherits3.default)(Bit, _Module); + + function Bit() { + (0, _classCallCheck3.default)(this, Bit); + return (0, _possibleConstructorReturn3.default)(this, _Module.apply(this, arguments)); + } + + /* + Method to declare module's defaults. + @private + */ + Bit.prototype._declareDefaults = function _declareDefaults() { + this._defaults = { + 'ns': 'http://www.w3.org/2000/svg', + 'tag': 'ellipse', + 'parent': document.body, + 'ratio': 1, + 'radius': 50, + 'radiusX': null, + 'radiusY': null, + 'stroke': 'hotpink', + 'stroke-dasharray': '', + 'stroke-dashoffset': '', + 'stroke-linecap': '', + 'stroke-width': 2, + 'stroke-opacity': 1, + 'fill': 'transparent', + 'fill-opacity': 1, + 'width': 0, + 'height': 0 + }; + this._drawMap = ['stroke', 'stroke-width', 'stroke-opacity', 'stroke-dasharray', 'fill', 'stroke-dashoffset', 'stroke-linecap', 'fill-opacity', 'transform']; + }; + + Bit.prototype._vars = function _vars() { + this._state = {}; + this._drawMapLength = this._drawMap.length; + }; + /* + Method for initial render of the shape. + @private + */ + + + Bit.prototype._render = function _render() { + if (this._isRendered) { + return; + } + // set `_isRendered` hatch + this._isRendered = true; + // create `SVG` canvas to draw in + this._createSVGCanvas(); + // set canvas size + this._setCanvasSize(); + // draw the initial state + // this._draw(); + // append the canvas to the parent from props + this._props.parent.appendChild(this._canvas); + }; + /* + Method to create `SVG` canvas to draw in. + @private + */ + + + Bit.prototype._createSVGCanvas = function _createSVGCanvas() { + var p = this._props; + // create canvas - `svg` element to draw in + this._canvas = document.createElementNS(p.ns, 'svg'); + // create the element shape element and add it to the canvas + this.el = document.createElementNS(p.ns, p.tag); + this._canvas.appendChild(this.el); + }; + /* + Method to set size of the _canvas. + @private + */ + + + Bit.prototype._setCanvasSize = function _setCanvasSize() { + var p = this._props, + style = this._canvas.style; + + style.display = 'block'; + style.width = '100%'; + style.height = '100%'; + style.left = '0px'; + style.top = '0px'; + }; + /* + Method to draw the shape. + Called on every frame. + @private + */ + + + Bit.prototype._draw = function _draw() { + this._props.length = this._getLength(); + + var state = this._state, + props = this._props; + + var len = this._drawMapLength; + while (len--) { + var name = this._drawMap[len]; + switch (name) { + case 'stroke-dasharray': + case 'stroke-dashoffset': + this.castStrokeDash(name); + } + this._setAttrIfChanged(name, this._props[name]); + } + this._state.radius = this._props.radius; + }; + + Bit.prototype.castStrokeDash = function castStrokeDash(name) { + // # if array of values + var p = this._props; + if (_h2.default.isArray(p[name])) { + var stroke = ''; + for (var i = 0; i < p[name].length; i++) { + var dash = p[name][i], + cast = dash.unit === '%' ? this.castPercent(dash.value) : dash.value; + stroke += cast + ' '; + } + p[name] = stroke === '0 ' ? stroke = '' : stroke; + return p[name] = stroke; + } + // # if single value + if ((0, _typeof3.default)(p[name]) === 'object') { + stroke = p[name].unit === '%' ? this.castPercent(p[name].value) : p[name].value; + p[name] = stroke === 0 ? stroke = '' : stroke; + } + }; + + Bit.prototype.castPercent = function castPercent(percent) { + return percent * (this._props.length / 100); + }; + + /* + Method to set props to attributes and cache the values. + @private + */ + + + Bit.prototype._setAttrIfChanged = function _setAttrIfChanged(name, value) { + if (this._state[name] !== value) { + // this.el.style[name] = value; + this.el.setAttribute(name, value); + this._state[name] = value; + } + }; + /* + Method to length of the shape. + @private + @returns {Number} Length of the shape. + */ + + + Bit.prototype._getLength = function _getLength() { + var p = this._props, + len = 0, + isGetLength = !!(this.el && this.el.getTotalLength); + + if (isGetLength && this.el.getAttribute('d')) { + len = this.el.getTotalLength(); + } else { + len = 2 * (p.radiusX != null ? p.radiusX : p.radius); + } + return len; + }; + /* + Method to calculate total sum between points. + @private + @param {Array} Array of points. + @returns {Number} Distance bewtween all points. + */ + + + Bit.prototype._getPointsPerimiter = function _getPointsPerimiter(points) { + var sum = 0; + + for (var i = 1; i < points.length; i++) { + sum += this._pointsDelta(points[i - 1], points[i]); + } + + sum += this._pointsDelta(points[0], _h2.default.getLastItem(points)); + return sum; + }; + /* + Method to get delta from two points. + @private + @param {Object} Point 1. + @param {Object} Point 2. + @returns {Number} Distance between the pooints. + */ + + + Bit.prototype._pointsDelta = function _pointsDelta(point1, point2) { + var dx = Math.abs(point1.x - point2.x), + dy = Math.abs(point1.y - point2.y); + return Math.sqrt(dx * dx + dy * dy); + }; + /* + Method to set module's size. + @private + @param {Number} Module width. + @param {Number} Module height. + */ + + + Bit.prototype._setSize = function _setSize(width, height) { + var p = this._props; + p.width = width; + p.height = height; + this._draw(); + }; + + return Bit; + }(_module2.default); + + exports.default = Bit; + +/***/ }), +/* 74 */ +/***/ (function(module, exports) { + + "use strict"; + + exports.__esModule = true; + + exports.default = function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + }; + +/***/ }), +/* 75 */ +/***/ (function(module, exports, __webpack_require__) { + + "use strict"; + + exports.__esModule = true; + + var _typeof2 = __webpack_require__(3); + + var _typeof3 = _interopRequireDefault(_typeof2); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + exports.default = function (self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self; + }; + +/***/ }), +/* 76 */ +/***/ (function(module, exports, __webpack_require__) { + + "use strict"; + + exports.__esModule = true; + + var _setPrototypeOf = __webpack_require__(77); + + var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf); + + var _create = __webpack_require__(81); + + var _create2 = _interopRequireDefault(_create); + + var _typeof2 = __webpack_require__(3); + + var _typeof3 = _interopRequireDefault(_typeof2); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + exports.default = function (subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : (0, _typeof3.default)(superClass))); + } + + subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass; + }; + +/***/ }), +/* 77 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = { "default": __webpack_require__(78), __esModule: true }; + +/***/ }), +/* 78 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(79); + module.exports = __webpack_require__(14).Object.setPrototypeOf; + +/***/ }), +/* 79 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.3.19 Object.setPrototypeOf(O, proto) + var $export = __webpack_require__(12); + $export($export.S, 'Object', {setPrototypeOf: __webpack_require__(80).set}); + +/***/ }), +/* 80 */ +/***/ (function(module, exports, __webpack_require__) { + + // Works with __proto__ only. Old v8 can't work with null proto objects. + /* eslint-disable no-proto */ + var isObject = __webpack_require__(20) + , anObject = __webpack_require__(19); + var check = function(O, proto){ + anObject(O); + if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!"); + }; + module.exports = { + set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line + function(test, buggy, set){ + try { + set = __webpack_require__(15)(Function.call, __webpack_require__(67).f(Object.prototype, '__proto__').set, 2); + set(test, []); + buggy = !(test instanceof Array); + } catch(e){ buggy = true; } + return function setPrototypeOf(O, proto){ + check(O, proto); + if(buggy)O.__proto__ = proto; + else set(O, proto); + return O; + }; + }({}, false) : undefined), + check: check + }; + +/***/ }), +/* 81 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = { "default": __webpack_require__(82), __esModule: true }; + +/***/ }), +/* 82 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(83); + var $Object = __webpack_require__(14).Object; + module.exports = function create(P, D){ + return $Object.create(P, D); + }; + +/***/ }), +/* 83 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(12) + // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) + $export($export.S, 'Object', {create: __webpack_require__(31)}); + +/***/ }), +/* 84 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _typeof2 = __webpack_require__(3); + + var _typeof3 = _interopRequireDefault(_typeof2); + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + /* + Base class for module. Extends and parses defaults. + */ + var Module = function () { + function Module() { + var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + (0, _classCallCheck3.default)(this, Module); + + // this._isIt = o.isIt; + // delete o.isIt; + this._o = o; + this._index = this._o.index || 0; + // map of props that should be + // parsed to arrays of values + this._arrayPropertyMap = { + strokeDashoffset: 1, + strokeDasharray: 1, + origin: 1 + }; + + this._skipPropsDelta = { + timeline: 1, + prevChainModule: 1, + callbacksContext: 1 + }; + + this._declareDefaults(); + this._extendDefaults(); + + this._vars(); + this._render(); + } + /* + Method to declare defaults. + @private + */ + + + Module.prototype._declareDefaults = function _declareDefaults() { + this._defaults = {}; + }; + /* + Method to declare module's variables. + @private + */ + + + Module.prototype._vars = function _vars() { + this._progress = 0; + this._strokeDasharrayBuffer = []; + }; + /* + Method to render on initialization. + @private + */ + + + Module.prototype._render = function _render() {}; + /* + Method to set property on the module. + @private + @param {String, Object} Name of the property to set + or object with properties to set. + @param {Any} Value for the property to set. Could be + undefined if the first param is object. + */ + + + Module.prototype._setProp = function _setProp(attr, value) { + if ((typeof attr === 'undefined' ? 'undefined' : (0, _typeof3.default)(attr)) === 'object') { + for (var key in attr) { + this._assignProp(key, attr[key]); + } + } else { + this._assignProp(attr, value); + } + }; + /* + Method to assign single property's value. + @private + @param {String} Property name. + @param {Any} Property value. + */ + + + Module.prototype._assignProp = function _assignProp(key, value) { + this._props[key] = value; + }; + /* + Method to show element. + @private + */ + + + Module.prototype._show = function _show() { + var p = this._props; + if (!this.el) { + return; + } + + if (p.isSoftHide) { + // this.el.style.opacity = p.opacity; + this._showByTransform(); + } else { + this.el.style.display = 'block'; + } + + this._isShown = true; + }; + /* + Method to hide element. + @private + */ + + + Module.prototype._hide = function _hide() { + if (!this.el) { + return; + } + + if (this._props.isSoftHide) { + // this.el.style.opacity = 0; + _h2.default.setPrefixedStyle(this.el, 'transform', 'scale(0)'); + } else { + this.el.style.display = 'none'; + } + + this._isShown = false; + }; + /* + Method to show element by applying transform back to normal. + @private + */ + + + Module.prototype._showByTransform = function _showByTransform() {}; + /* + Method to parse option string. + Searches for stagger and rand values and parses them. + Leaves the value unattended otherwise. + @param {Any} Option value to parse. + @returns {Number} Parsed options value. + */ + + + Module.prototype._parseOptionString = function _parseOptionString(value) { + if (typeof value === 'string') { + if (value.match(/stagger/)) { + value = _h2.default.parseStagger(value, this._index); + } + } + if (typeof value === 'string') { + if (value.match(/rand/)) { + value = _h2.default.parseRand(value); + } + } + return value; + }; + /* + Method to parse postion option. + @param {String} Property name. + @param {Any} Property Value. + @returns {String} Parsed options value. + */ + + + Module.prototype._parsePositionOption = function _parsePositionOption(key, value) { + if (_h2.default.unitOptionMap[key]) { + value = _h2.default.parseUnit(value).string; + } + return value; + }; + /* + Method to parse strokeDash.. option. + @param {String} Property name. + @param {Any} Property value. + @returns {String} Parsed options value. + */ + + + Module.prototype._parseStrokeDashOption = function _parseStrokeDashOption(key, value) { + var result = value; + // parse numeric/percent values for strokeDash.. properties + if (this._arrayPropertyMap[key]) { + var result = []; + switch (typeof value === 'undefined' ? 'undefined' : (0, _typeof3.default)(value)) { + case 'number': + result.push(_h2.default.parseUnit(value)); + break; + case 'string': + var array = value.split(' '); + for (var i = 0; i < array.length; i++) { + result.push(_h2.default.parseUnit(array[i])); + } + break; + } + } + return result; + }; + /* + Method to check if the property is delta property. + @private + @param {Any} Parameter value to check. + @returns {Boolean} + */ + + + Module.prototype._isDelta = function _isDelta(optionsValue) { + var isObject = _h2.default.isObject(optionsValue); + isObject = isObject && !optionsValue.unit; + return !(!isObject || _h2.default.isArray(optionsValue) || _h2.default.isDOM(optionsValue)); + }; + /* + Method to get delta from property and set + the property's start value to the props object. + @private + @param {String} Key name to get delta for. + @param {Object} Option value to get the delta for. + */ + + + Module.prototype._getDelta = function _getDelta(key, optionsValue) { + var delta; + if ((key === 'left' || key === 'top') && !this._o.ctx) { + _h2.default.warn('Consider to animate x/y properties instead of left/top,\n as it would be much more performant', optionsValue); + } + // skip delta calculation for a property if it is listed + // in skipPropsDelta object + if (this._skipPropsDelta && this._skipPropsDelta[key]) { + return; + } + // get delta + delta = _h2.default.parseDelta(key, optionsValue, this._index); + // if successfully parsed - save it + if (delta.type != null) { + this._deltas[key] = delta; + } + + var deltaEnd = (0, _typeof3.default)(delta.end) === 'object' ? delta.end.value === 0 ? 0 : delta.end.string : delta.end; + // set props to end value of the delta + // 0 should be 0 regardless units + this._props[key] = deltaEnd; + }; + /* + Method to copy `_o` options to `_props` object + with fallback to `_defaults`. + @private + */ + + + Module.prototype._extendDefaults = function _extendDefaults() { + this._props = {}; + this._deltas = {}; + for (var key in this._defaults) { + // skip property if it is listed in _skipProps + // if (this._skipProps && this._skipProps[key]) { continue; } + // copy the properties to the _o object + var value = this._o[key] != null ? this._o[key] : this._defaults[key]; + // parse option + this._parseOption(key, value); + } + }; + /* + Method to tune new oprions to _o and _props object. + @private + @param {Object} Options object to tune to. + */ + + + Module.prototype._tuneNewOptions = function _tuneNewOptions(o) { + // hide the module before tuning it's options + // cuz the user could see the change + this._hide(); + for (var key in o) { + // skip property if it is listed in _skipProps + // if (this._skipProps && this._skipProps[key]) { continue; } + // copy the properties to the _o object + // delete the key from deltas + o && delete this._deltas[key]; + // rewrite _o record + this._o[key] = o[key]; + // save the options to _props + this._parseOption(key, o[key]); + } + }; + /* + Method to parse option value. + @private + @param {String} Option name. + @param {Any} Option value. + */ + + + Module.prototype._parseOption = function _parseOption(name, value) { + // if delta property + if (this._isDelta(value) && !this._skipPropsDelta[name]) { + this._getDelta(name, value); + var deltaEnd = _h2.default.getDeltaEnd(value); + return this._assignProp(name, this._parseProperty(name, deltaEnd)); + } + + this._assignProp(name, this._parseProperty(name, value)); + }; + /* + Method to parse postion and string props. + @private + @param {String} Property name. + @param {Any} Property value. + @returns {Any} Parsed property value. + */ + + + Module.prototype._parsePreArrayProperty = function _parsePreArrayProperty(name, value) { + // parse stagger and rand values + value = this._parseOptionString(value); + // parse units for position properties + return this._parsePositionOption(name, value); + }; + /* + Method to parse property value. + @private + @param {String} Property name. + @param {Any} Property value. + @returns {Any} Parsed property value. + */ + + + Module.prototype._parseProperty = function _parseProperty(name, value) { + // parse `HTML` element in `parent` option + if (name === 'parent') { + return _h2.default.parseEl(value); + } + // parse `stagger`, `rand` and `position` + value = this._parsePreArrayProperty(name, value); + // parse numeric/percent values for strokeDash.. properties + return this._parseStrokeDashOption(name, value); + }; + /* + Method to parse values inside ∆. + @private + @param {String} Key name. + @param {Object} Delta. + @returns {Object} Delta with parsed parameters. + */ + + + Module.prototype._parseDeltaValues = function _parseDeltaValues(name, delta) { + // return h.parseDelta( name, delta, this._index ); + + var d = {}; + for (var key in delta) { + var value = delta[key]; + + // delete delta[key]; + // add parsed properties + var newEnd = this._parsePreArrayProperty(name, value); + d[this._parsePreArrayProperty(name, key)] = newEnd; + } + return d; + }; + /* + Method to parse delta and nondelta properties. + @private + @param {String} Property name. + @param {Any} Property value. + @returns {Any} Parsed property value. + */ + + + Module.prototype._preparsePropValue = function _preparsePropValue(key, value) { + return this._isDelta(value) ? this._parseDeltaValues(key, value) : this._parsePreArrayProperty(key, value); + }; + /* + Method to calculate current progress of the deltas. + @private + @param {Number} Eased progress to calculate - [0..1]. + @param {Number} Progress to calculate - [0..1]. + */ + + + Module.prototype._calcCurrentProps = function _calcCurrentProps(easedProgress, p) { + + for (var key in this._deltas) { + + var value = this._deltas[key]; + + // get eased progress from delta easing if defined and not curve + var isCurve = !!value.curve; + var ep = value.easing != null && !isCurve ? value.easing(p) : easedProgress; + + if (value.type === 'array') { + var arr; + // if prop property is array - reuse it else - create an array + if (_h2.default.isArray(this._props[key])) { + arr = this._props[key]; + arr.length = 0; + } else { + arr = []; + } + + // just optimization to prevent curve + // calculations on every array item + var proc = isCurve ? value.curve(p) : null; + + for (var i = 0; i < value.delta.length; i++) { + var item = value.delta[i], + dash = !isCurve ? value.start[i].value + ep * item.value : proc * (value.start[i].value + p * item.value); + arr.push({ + string: '' + dash + item.unit, + value: dash, + unit: item.unit + }); + } + + this._props[key] = arr; + } else if (value.type === 'number') { + this._props[key] = !isCurve ? value.start + ep * value.delta : value.curve(p) * (value.start + p * value.delta); + } else if (value.type === 'unit') { + var currentValue = !isCurve ? value.start.value + ep * value.delta : value.curve(p) * (value.start.value + p * value.delta); + + this._props[key] = '' + currentValue + value.end.unit; + } else if (value.type === 'color') { + var r, g, b, a; + if (!isCurve) { + r = parseInt(value.start.r + ep * value.delta.r, 10); + g = parseInt(value.start.g + ep * value.delta.g, 10); + b = parseInt(value.start.b + ep * value.delta.b, 10); + a = parseFloat(value.start.a + ep * value.delta.a); + } else { + var cp = value.curve(p); + r = parseInt(cp * (value.start.r + p * value.delta.r), 10); + g = parseInt(cp * (value.start.g + p * value.delta.g), 10); + b = parseInt(cp * (value.start.b + p * value.delta.b), 10); + a = parseFloat(cp * (value.start.a + p * value.delta.a)); + } + this._props[key] = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')'; + } + } + }; + /* + Method to calculate current progress and probably draw it in children. + @private + @param {Number} Eased progress to set - [0..1]. + @param {Number} Progress to set - [0..1]. + */ + + + Module.prototype._setProgress = function _setProgress(easedProgress, progress) { + this._progress = easedProgress; + this._calcCurrentProps(easedProgress, progress); + }; + + return Module; + }(); + + exports.default = Module; + +/***/ }), +/* 85 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _bit = __webpack_require__(73); + + var _bit2 = _interopRequireDefault(_bit); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var Custom = function (_Bit) { + (0, _inherits3.default)(Custom, _Bit); + + function Custom() { + (0, _classCallCheck3.default)(this, Custom); + return (0, _possibleConstructorReturn3.default)(this, _Bit.apply(this, arguments)); + } + + /* + Method to declare module's defaults. + @private + @overrides @ Bit + */ + Custom.prototype._declareDefaults = function _declareDefaults() { + _Bit.prototype._declareDefaults.call(this); + + this._defaults.tag = 'path'; + this._defaults.parent = null; + + // remove `stroke-width` from `_drawMap` + // because we need to recal strokeWidth size regarding scale + for (var i = 0; i < this._drawMap.length; i++) { + if (this._drawMap[i] === 'stroke-width') { + this._drawMap.splice(i, 1); + } + } + }; + /* + Method to get shape to set on module's path. + @public + @returns {String} Empty string. + */ + + + Custom.prototype.getShape = function getShape() { + return ''; + }; + /* + Method to get shape perimeter length. + @public + @returns {Number} Default length string. + */ + + + Custom.prototype.getLength = function getLength() { + return 100; + }; + /* + Method to draw the shape. + Called on every frame. + @private + @overrides @ Bit + */ + + + Custom.prototype._draw = function _draw() { + var p = this._props, + state = this._state, + radiusXChange = state['radiusX'] !== p.radiusX, + radiusYChange = state['radiusY'] !== p.radiusY, + radiusChange = state['radius'] !== p.radius; + + // update transform only if one of radiuses changed + if (radiusXChange || radiusYChange || radiusChange) { + this.el.setAttribute('transform', this._getScale()); + state['radiusX'] = p.radiusX; + state['radiusY'] = p.radiusY; + state['radius'] = p.radius; + } + + this._setAttrIfChanged('stroke-width', p['stroke-width'] / p.maxScale); + + _Bit.prototype._draw.call(this); + }; + /* + Method for initial render of the shape. + @private + @overrides @ Bit + */ + + + Custom.prototype._render = function _render() { + if (this._isRendered) { + return; + } + this._isRendered = true; + + this._length = this.getLength(); + + var p = this._props; + p.parent.innerHTML = '' + this.getShape() + ''; + + this._canvas = p.parent.querySelector('#js-mojs-shape-canvas'); + this.el = p.parent.querySelector('#js-mojs-shape-el'); + this._setCanvasSize(); + }; + /* + Method to get scales for the shape. + @private + @mutates @props + */ + + + Custom.prototype._getScale = function _getScale() { + var p = this._props, + radiusX = p.radiusX ? p.radiusX : p.radius, + radiusY = p.radiusY ? p.radiusY : p.radius; + + p.scaleX = 2 * radiusX / 100; + p.scaleY = 2 * radiusY / 100; + p.maxScale = Math.max(p.scaleX, p.scaleY); + + p.shiftX = p.width / 2 - 50 * p.scaleX; + p.shiftY = p.height / 2 - 50 * p.scaleY; + + var translate = 'translate(' + p.shiftX + ', ' + p.shiftY + ')'; + return translate + ' scale(' + p.scaleX + ', ' + p.scaleY + ')'; + }; + /* + Method to length of the shape. + @private + @returns {Number} Length of the shape. + */ + + + Custom.prototype._getLength = function _getLength() { + return this._length; + }; + + return Custom; + }(_bit2.default); + + exports.default = Custom; + +/***/ }), +/* 86 */ +/***/ (function(module, exports, __webpack_require__) { + + + /* istanbul ignore next */ + var Bit, Circle, + extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + hasProp = {}.hasOwnProperty; + + Bit = __webpack_require__(73)["default"] || __webpack_require__(73); + + Circle = (function(superClass) { + extend(Circle, superClass); + + function Circle() { + return Circle.__super__.constructor.apply(this, arguments); + } + + Circle.prototype._declareDefaults = function() { + Circle.__super__._declareDefaults.apply(this, arguments); + return this._defaults.shape = 'ellipse'; + }; + + Circle.prototype._draw = function() { + var rx, ry; + rx = this._props.radiusX != null ? this._props.radiusX : this._props.radius; + ry = this._props.radiusY != null ? this._props.radiusY : this._props.radius; + this._setAttrIfChanged('rx', rx); + this._setAttrIfChanged('ry', ry); + this._setAttrIfChanged('cx', this._props.width / 2); + this._setAttrIfChanged('cy', this._props.height / 2); + return Circle.__super__._draw.apply(this, arguments); + }; + + Circle.prototype._getLength = function() { + var radiusX, radiusY; + radiusX = this._props.radiusX != null ? this._props.radiusX : this._props.radius; + radiusY = this._props.radiusY != null ? this._props.radiusY : this._props.radius; + return 2 * Math.PI * Math.sqrt((radiusX * radiusX + radiusY * radiusY) / 2); + }; + + return Circle; + + })(Bit); + + module.exports = Circle; + + +/***/ }), +/* 87 */ +/***/ (function(module, exports, __webpack_require__) { + + + /* istanbul ignore next */ + var Bit, Line, + extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + hasProp = {}.hasOwnProperty; + + Bit = __webpack_require__(73)["default"] || __webpack_require__(73); + + Line = (function(superClass) { + extend(Line, superClass); + + function Line() { + return Line.__super__.constructor.apply(this, arguments); + } + + Line.prototype._declareDefaults = function() { + Line.__super__._declareDefaults.apply(this, arguments); + return this._defaults.tag = 'line'; + }; + + Line.prototype._draw = function() { + var radiusX, x, y; + radiusX = this._props.radiusX != null ? this._props.radiusX : this._props.radius; + x = this._props.width / 2; + y = this._props.height / 2; + this._setAttrIfChanged('x1', x - radiusX); + this._setAttrIfChanged('x2', x + radiusX); + this._setAttrIfChanged('y1', y); + this._setAttrIfChanged('y2', y); + return Line.__super__._draw.apply(this, arguments); + }; + + return Line; + + })(Bit); + + module.exports = Line; + + +/***/ }), +/* 88 */ +/***/ (function(module, exports, __webpack_require__) { + + + /* istanbul ignore next */ + var Bit, Zigzag, + extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + hasProp = {}.hasOwnProperty; + + Bit = __webpack_require__(73)["default"] || __webpack_require__(73); + + Zigzag = (function(superClass) { + extend(Zigzag, superClass); + + function Zigzag() { + return Zigzag.__super__.constructor.apply(this, arguments); + } + + Zigzag.prototype._declareDefaults = function() { + Zigzag.__super__._declareDefaults.apply(this, arguments); + this._defaults.tag = 'path'; + return this._defaults.points = 3; + }; + + Zigzag.prototype._draw = function() { + var currentX, currentY, delta, i, isPoints, isRadiusX, isRadiusY, j, length, p, points, radiusX, radiusY, ref, stepX, x, y, yFlip; + Zigzag.__super__._draw.apply(this, arguments); + p = this._props; + if (!this._props.points) { + return; + } + radiusX = this._props.radiusX != null ? this._props.radiusX : this._props.radius; + radiusY = this._props.radiusY != null ? this._props.radiusY : this._props.radius; + isRadiusX = radiusX === this._prevRadiusX; + isRadiusY = radiusY === this._prevRadiusY; + isPoints = p.points === this._prevPoints; + if (isRadiusX && isRadiusY && isPoints) { + return; + } + x = p.width / 2; + y = p.height / 2; + currentX = x - radiusX; + currentY = y; + stepX = (2 * radiusX) / (p.points - 1); + yFlip = -1; + delta = Math.sqrt(stepX * stepX + radiusY * radiusY); + length = -delta; + points = "M" + currentX + ", " + y + " "; + for (i = j = 0, ref = p.points; 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) { + points += "L" + currentX + ", " + currentY + " "; + currentX += stepX; + length += delta; + currentY = yFlip === -1 ? y - radiusY : y; + yFlip = -yFlip; + } + this._length = length; + this.el.setAttribute('d', points); + this._prevPoints = p.points; + this._prevRadiusX = radiusX; + return this._prevRadiusY = radiusY; + }; + + Zigzag.prototype._getLength = function() { + return this._length; + }; + + return Zigzag; + + })(Bit); + + module.exports = Zigzag; + + +/***/ }), +/* 89 */ +/***/ (function(module, exports, __webpack_require__) { + + + /* istanbul ignore next */ + var Bit, Rect, + extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + hasProp = {}.hasOwnProperty; + + Bit = __webpack_require__(73)["default"] || __webpack_require__(73); + + Rect = (function(superClass) { + extend(Rect, superClass); + + function Rect() { + return Rect.__super__.constructor.apply(this, arguments); + } + + Rect.prototype._declareDefaults = function() { + Rect.__super__._declareDefaults.apply(this, arguments); + this._defaults.tag = 'rect'; + this._defaults.rx = 0; + return this._defaults.ry = 0; + }; + + Rect.prototype._draw = function() { + var p, radiusX, radiusY; + Rect.__super__._draw.apply(this, arguments); + p = this._props; + radiusX = p.radiusX != null ? p.radiusX : p.radius; + radiusY = p.radiusY != null ? p.radiusY : p.radius; + this._setAttrIfChanged('width', 2 * radiusX); + this._setAttrIfChanged('height', 2 * radiusY); + this._setAttrIfChanged('x', (p.width / 2) - radiusX); + this._setAttrIfChanged('y', (p.height / 2) - radiusY); + this._setAttrIfChanged('rx', p.rx); + return this._setAttrIfChanged('ry', p.ry); + }; + + Rect.prototype._getLength = function() { + var radiusX, radiusY; + radiusX = this._props.radiusX != null ? this._props.radiusX : this._props.radius; + radiusY = this._props.radiusY != null ? this._props.radiusY : this._props.radius; + return 2 * (2 * radiusX + 2 * radiusY); + }; + + return Rect; + + })(Bit); + + module.exports = Rect; + + +/***/ }), +/* 90 */ +/***/ (function(module, exports, __webpack_require__) { + + + /* istanbul ignore next */ + var Bit, Polygon, h, + extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + hasProp = {}.hasOwnProperty; + + Bit = __webpack_require__(73)["default"] || __webpack_require__(73); + + h = __webpack_require__(71); + + Polygon = (function(superClass) { + extend(Polygon, superClass); + + function Polygon() { + return Polygon.__super__.constructor.apply(this, arguments); + } + + + /* + Method to declare defaults. + @overrides @ Bit + */ + + Polygon.prototype._declareDefaults = function() { + Polygon.__super__._declareDefaults.apply(this, arguments); + this._defaults.tag = 'path'; + return this._defaults.points = 3; + }; + + + /* + Method to draw the shape. + @overrides @ Bit + */ + + Polygon.prototype._draw = function() { + var char, d, i, isPoints, isRadiusX, isRadiusY, j, k, len, p, point, radiusX, radiusY, ref, ref1, step; + p = this._props; + radiusX = this._props.radiusX != null ? this._props.radiusX : this._props.radius; + radiusY = this._props.radiusY != null ? this._props.radiusY : this._props.radius; + isRadiusX = radiusX === this._prevRadiusX; + isRadiusY = radiusY === this._prevRadiusY; + isPoints = p.points === this._prevPoints; + if (!(isRadiusX && isRadiusY && isPoints)) { + step = 360 / this._props.points; + if (this._radialPoints == null) { + this._radialPoints = []; + } else { + this._radialPoints.length = 0; + } + for (i = j = 0, ref = this._props.points; 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) { + this._radialPoints.push(h.getRadialPoint({ + radius: this._props.radius, + radiusX: this._props.radiusX, + radiusY: this._props.radiusY, + angle: i * step, + center: { + x: p.width / 2, + y: p.height / 2 + } + })); + } + d = ''; + ref1 = this._radialPoints; + for (i = k = 0, len = ref1.length; k < len; i = ++k) { + point = ref1[i]; + char = i === 0 ? 'M' : 'L'; + d += "" + char + (point.x.toFixed(4)) + "," + (point.y.toFixed(4)) + " "; + } + this._prevPoints = p.points; + this._prevRadiusX = radiusX; + this._prevRadiusY = radiusY; + this.el.setAttribute('d', (d += 'z')); + } + return Polygon.__super__._draw.apply(this, arguments); + }; + + + /* + Method to get length of the shape. + @overrides @ Bit + */ + + Polygon.prototype._getLength = function() { + return this._getPointsPerimiter(this._radialPoints); + }; + + return Polygon; + + })(Bit); + + module.exports = Polygon; + + +/***/ }), +/* 91 */ +/***/ (function(module, exports, __webpack_require__) { + + + /* istanbul ignore next */ + var Bit, Cross, + extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + hasProp = {}.hasOwnProperty; + + Bit = __webpack_require__(73)["default"] || __webpack_require__(73); + + Cross = (function(superClass) { + extend(Cross, superClass); + + function Cross() { + return Cross.__super__.constructor.apply(this, arguments); + } + + Cross.prototype._declareDefaults = function() { + Cross.__super__._declareDefaults.apply(this, arguments); + return this._defaults.tag = 'path'; + }; + + Cross.prototype._draw = function() { + var d, isRadiusX, isRadiusY, line1, line2, p, radiusX, radiusY, x, x1, x2, y, y1, y2; + Cross.__super__._draw.apply(this, arguments); + p = this._props; + radiusX = this._props.radiusX != null ? this._props.radiusX : this._props.radius; + radiusY = this._props.radiusY != null ? this._props.radiusY : this._props.radius; + isRadiusX = radiusX === this._prevRadiusX; + isRadiusY = radiusY === this._prevRadiusY; + if (isRadiusX && isRadiusY) { + return; + } + x = this._props.width / 2; + y = this._props.height / 2; + x1 = x - radiusX; + x2 = x + radiusX; + line1 = "M" + x1 + "," + y + " L" + x2 + "," + y; + y1 = y - radiusY; + y2 = y + radiusY; + line2 = "M" + x + "," + y1 + " L" + x + "," + y2; + d = line1 + " " + line2; + this.el.setAttribute('d', d); + this._prevRadiusX = radiusX; + return this._prevRadiusY = radiusY; + }; + + Cross.prototype._getLength = function() { + var radiusX, radiusY; + radiusX = this._props.radiusX != null ? this._props.radiusX : this._props.radius; + radiusY = this._props.radiusY != null ? this._props.radiusY : this._props.radius; + return 2 * (radiusX + radiusY); + }; + + return Cross; + + })(Bit); + + module.exports = Cross; + + +/***/ }), +/* 92 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _bit = __webpack_require__(73); + + var _bit2 = _interopRequireDefault(_bit); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var Curve = function (_Bit) { + (0, _inherits3.default)(Curve, _Bit); + + function Curve() { + (0, _classCallCheck3.default)(this, Curve); + return (0, _possibleConstructorReturn3.default)(this, _Bit.apply(this, arguments)); + } + + /* + Method to declare module's defaults. + @private + @overrides @ Bit + */ + Curve.prototype._declareDefaults = function _declareDefaults() { + _Bit.prototype._declareDefaults.call(this); + this._defaults.tag = 'path'; + }; + /* + Method to draw the module. + @private + @overrides @ Bit + */ + + + Curve.prototype._draw = function _draw() { + _Bit.prototype._draw.call(this); + var p = this._props; + + var radiusX = p.radiusX != null ? p.radiusX : p.radius; + var radiusY = p.radiusY != null ? p.radiusY : p.radius; + + var isRadiusX = radiusX === this._prevRadiusX; + var isRadiusY = radiusY === this._prevRadiusY; + var isPoints = p.points === this._prevPoints; + // skip if nothing changed + if (isRadiusX && isRadiusY && isPoints) { + return; + } + + var x = p.width / 2; + var y = p.height / 2; + var x1 = x - radiusX; + var x2 = x + radiusX; + + var d = 'M' + x1 + ' ' + y + ' Q ' + x + ' ' + (y - 2 * radiusY) + ' ' + x2 + ' ' + y; + + // set the `d` attribute and save it to `_prevD` + this.el.setAttribute('d', d); + // save the properties + this._prevPoints = p.points; + this._prevRadiusX = radiusX; + this._prevRadiusY = radiusY; + }; + + Curve.prototype._getLength = function _getLength() { + var p = this._props; + + var radiusX = p.radiusX != null ? p.radiusX : p.radius; + var radiusY = p.radiusY != null ? p.radiusY : p.radius; + + var dRadius = radiusX + radiusY; + var sqrt = Math.sqrt((3 * radiusX + radiusY) * (radiusX + 3 * radiusY)); + + return .5 * Math.PI * (3 * dRadius - sqrt); + }; + + return Curve; + }(_bit2.default); // istanbul ignore next + + + exports.default = Curve; + +/***/ }), +/* 93 */ +/***/ (function(module, exports, __webpack_require__) { + + + /* istanbul ignore next */ + var Bit, Equal, + extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + hasProp = {}.hasOwnProperty; + + Bit = __webpack_require__(73)["default"] || __webpack_require__(73); + + Equal = (function(superClass) { + extend(Equal, superClass); + + function Equal() { + return Equal.__super__.constructor.apply(this, arguments); + } + + Equal.prototype._declareDefaults = function() { + Equal.__super__._declareDefaults.apply(this, arguments); + this._defaults.tag = 'path'; + return this._defaults.points = 2; + }; + + Equal.prototype._draw = function() { + var d, i, isPoints, isRadiusX, isRadiusY, j, p, radiusX, radiusY, ref, x, x1, x2, y, yStart, yStep; + Equal.__super__._draw.apply(this, arguments); + p = this._props; + if (!this._props.points) { + return; + } + radiusX = this._props.radiusX != null ? this._props.radiusX : this._props.radius; + radiusY = this._props.radiusY != null ? this._props.radiusY : this._props.radius; + isRadiusX = radiusX === this._prevRadiusX; + isRadiusY = radiusY === this._prevRadiusY; + isPoints = p.points === this._prevPoints; + if (isRadiusX && isRadiusY && isPoints) { + return; + } + x = this._props.width / 2; + y = this._props.height / 2; + x1 = x - radiusX; + x2 = x + radiusX; + d = ''; + yStep = 2 * radiusY / (this._props.points - 1); + yStart = y - radiusY; + for (i = j = 0, ref = this._props.points; 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) { + y = "" + (i * yStep + yStart); + d += "M" + x1 + ", " + y + " L" + x2 + ", " + y + " "; + } + this.el.setAttribute('d', d); + this._prevPoints = p.points; + this._prevRadiusX = radiusX; + return this._prevRadiusY = radiusY; + }; + + Equal.prototype._getLength = function() { + return 2 * (this._props.radiusX != null ? this._props.radiusX : this._props.radius); + }; + + return Equal; + + })(Bit); + + module.exports = Equal; + + +/***/ }), +/* 94 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _keys = __webpack_require__(95); + + var _keys2 = _interopRequireDefault(_keys); + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _module = __webpack_require__(84); + + var _module2 = _interopRequireDefault(_module); + + var _thenable = __webpack_require__(99); + + var _thenable2 = _interopRequireDefault(_thenable); + + var _tunable = __webpack_require__(116); + + var _tunable2 = _interopRequireDefault(_tunable); + + var _tweenable = __webpack_require__(100); + + var _tweenable2 = _interopRequireDefault(_tweenable); + + var _tween = __webpack_require__(101); + + var _tween2 = _interopRequireDefault(_tween); + + var _timeline = __webpack_require__(110); + + var _timeline2 = _interopRequireDefault(_timeline); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var h = __webpack_require__(71); + var Bit = __webpack_require__(73); + var shapesMap = __webpack_require__(72); + + // TODO + // - refactor + // - add setIfChanged to Module + // -- + // - tween for every prop + + var Shape = function (_Tunable) { + (0, _inherits3.default)(Shape, _Tunable); + + function Shape() { + (0, _classCallCheck3.default)(this, Shape); + return (0, _possibleConstructorReturn3.default)(this, _Tunable.apply(this, arguments)); + } + + /* + Method to declare module's defaults. + @private + */ + Shape.prototype._declareDefaults = function _declareDefaults() { + // DEFAULTS / APIs + this._defaults = { + // where to append the module to [selector, HTMLElement] + parent: document.body, + // class name for the `el` + className: '', + // Possible values: [circle, line, zigzag, rect, polygon, cross, equal ] + shape: 'circle', + // ∆ :: Possible values: [color name, rgb, rgba, hex] + stroke: 'transparent', + // ∆ :: Possible values: [ 0..1 ] + strokeOpacity: 1, + // Possible values: ['butt' | 'round' | 'square'] + strokeLinecap: '', + // ∆ :: Possible values: [ number ] + strokeWidth: 2, + // ∆ :: Units :: Possible values: [ number, string ] + strokeDasharray: 0, + // ∆ :: Units :: Possible values: [ number, string ] + strokeDashoffset: 0, + // ∆ :: Possible values: [color name, rgb, rgba, hex] + fill: 'deeppink', + // ∆ :: Possible values: [ 0..1 ] + fillOpacity: 1, + // {Boolean} - if should hide module with `opacity` instead of `display` + isSoftHide: true, + // {Boolean} - if should trigger composite layer for the `el` + isForce3d: false, + // ∆ :: Units :: Possible values: [ number, string ] + left: '50%', + // ∆ :: Units :: Possible values: [ number, string ] + top: '50%', + // ∆ :: Units :: Possible values: [ number, string ] + x: 0, + // ∆ :: Units :: Possible values: [ number, string ] + y: 0, + // ∆ :: Possible values: [ number ] + angle: 0, + // ∆ :: Possible values: [ number ] + scale: 1, + // ∆ :: Possible values: [ number ] Fallbacks to `scale`. + scaleX: null, + // ∆ :: Possible values: [ number ] Fallbacks to `scale`. + scaleY: null, + // ∆ :: Possible values: [ number, string ] + origin: '50% 50%', + // ∆ :: Possible values: [ 0..1 ] + opacity: 1, + // ∆ :: Units :: Possible values: [ number, string ] + rx: 0, + // ∆ :: Units :: Possible values: [ number, string ] + ry: 0, + // ∆ :: Possible values: [ number ] + points: 3, + // ∆ :: Possible values: [ number ] + radius: 50, + // ∆ :: Possible values: [ number ] + radiusX: null, + // ∆ :: Possible values: [ number ] + radiusY: null, + // Possible values: [ boolean ] + isShowStart: false, + // Possible values: [ boolean ] + isShowEnd: true, + // Possible values: [ boolean ] + isRefreshState: true, + // Possible values: [ number > 0 ] + duration: 400, + // Possible values: [ number ] + + /* technical ones: */ + // explicit width of the module canvas + width: null, + // explicit height of the module canvas + height: null, + // Possible values: [ number ] + // sizeGap: 0, + /* [boolean] :: If should have child shape. */ + isWithShape: true, + // context for all the callbacks + callbacksContext: this + }; + }; + /* + Method to start the animation with optional new options. + @public + @overrides @ Tunable + @param {Object} New options to set on the run. + @returns {Object} this. + */ + + + Shape.prototype.tune = function tune(o) { + _Tunable.prototype.tune.call(this, o); + // update shapeModule's size to the max in `then` chain + this._getMaxSizeInChain(); + return this; + }; + /* + Method to create a then record for the module. + @public + @overrides @ Thenable + @param {Object} Options for the next animation. + @returns {Object} this. + */ + + + Shape.prototype.then = function then(o) { + // this._makeTimeline() + _Tunable.prototype.then.call(this, o); + // update shapeModule's size to the max in `then` chain + this._getMaxSizeInChain(); + return this; + }; + + // ^ PUBLIC METHOD(S) ^ + // v PRIVATE METHOD(S) v + + /* + Method to declare variables. + @overrides Thenable + */ + + + Shape.prototype._vars = function _vars() { + // call _vars method on Thenable + _Tunable.prototype._vars.call(this); + this._lastSet = {}; + // save previous module in the chain + this._prevChainModule = this._o.prevChainModule; + // should draw on foreign svg canvas + this.isForeign = !!this._o.ctx; + // this._o.isTimelineLess = true; + // should take an svg element as self bit + return this.isForeignBit = !!this._o.shape; + }; + /* + Method to initialize modules presentation. + @private + @overrides Module + */ + + + Shape.prototype._render = function _render() { + if (!this._isRendered && !this._isChained) { + // create `mojs` shape element + this.el = document.createElement('div'); + // set name on the `el` + this.el.setAttribute('data-name', 'mojs-shape'); + // set class on the `el` + this.el.setAttribute('class', this._props.className); + // create shape module + this._createShape(); + // append `el` to parent + this._props.parent.appendChild(this.el); + // set position styles on the el + this._setElStyles(); + // set initial position for the first module in the chain + this._setProgress(0, 0); + // show at start if `isShowStart` + if (this._props.isShowStart) { + this._show(); + } else { + this._hide(); + } + // set `_isRendered` hatch + this._isRendered = true; + } else if (this._isChained) { + // save elements from master module + this.el = this._masterModule.el; + this.shapeModule = this._masterModule.shapeModule; + } + + return this; + }; + /* + Method to set el styles on initialization. + @private + */ + + + Shape.prototype._setElStyles = function _setElStyles() { + if (!this.el) { + return; + } + // if (!this.isForeign) { + var p = this._props, + style = this.el.style, + width = p.shapeWidth, + height = p.shapeHeight; + + style.position = 'absolute'; + this._setElSizeStyles(width, height); + + if (p.isForce3d) { + var name = 'backface-visibility'; + style['' + name] = 'hidden'; + style['' + h.prefix.css + name] = 'hidden'; + } + // } + }; + /* + Method to set `width`/`height`/`margins` to the `el` styles. + @param {Number} Width. + @param {height} Height. + */ + + + Shape.prototype._setElSizeStyles = function _setElSizeStyles(width, height) { + var style = this.el.style; + style.width = width + 'px'; + style.height = height + 'px'; + style['margin-left'] = -width / 2 + 'px'; + style['margin-top'] = -height / 2 + 'px'; + }; + /* + Method to draw shape. + @private + */ + + + Shape.prototype._draw = function _draw() { + if (!this.shapeModule) { + return; + } + + var p = this._props, + bP = this.shapeModule._props; + // set props on bit + // bP.x = this._origin.x; + // bP.y = this._origin.y; + bP.rx = p.rx; + bP.ry = p.ry; + bP.stroke = p.stroke; + bP['stroke-width'] = p.strokeWidth; + bP['stroke-opacity'] = p.strokeOpacity; + bP['stroke-dasharray'] = p.strokeDasharray; + bP['stroke-dashoffset'] = p.strokeDashoffset; + bP['stroke-linecap'] = p.strokeLinecap; + bP['fill'] = p.fill; + bP['fill-opacity'] = p.fillOpacity; + bP.radius = p.radius; + bP.radiusX = p.radiusX; + bP.radiusY = p.radiusY; + bP.points = p.points; + + this.shapeModule._draw(); + this._drawEl(); + }; + /* + Method to set current modules props to main div el. + @private + */ + + + Shape.prototype._drawEl = function _drawEl() { + // return; + if (this.el == null) { + return true; + } + var p = this._props; + var style = this.el.style; + + // style.opacity = p.opacity; + this._isPropChanged('opacity') && (style.opacity = p.opacity); + if (!this.isForeign) { + this._isPropChanged('left') && (style.left = p.left); + this._isPropChanged('top') && (style.top = p.top); + + var isX = this._isPropChanged('x'), + isY = this._isPropChanged('y'), + isTranslate = isX || isY, + isScaleX = this._isPropChanged('scaleX'), + isScaleY = this._isPropChanged('scaleY'), + isScale = this._isPropChanged('scale'), + isScale = isScale || isScaleX || isScaleY, + isRotate = this._isPropChanged('angle'); + + if (isTranslate || isScale || isRotate) { + var transform = this._fillTransform(); + style[h.prefix.css + 'transform'] = transform; + style['transform'] = transform; + } + + if (this._isPropChanged('origin') || this._deltas['origin']) { + var origin = this._fillOrigin(); + style[h.prefix.css + 'transform-origin'] = origin; + style['transform-origin'] = origin; + } + } + }; + /* + Method to check if property changed after the latest check. + @private + @param {String} Name of the property to check. + @returns {Boolean} + */ + + + Shape.prototype._isPropChanged = function _isPropChanged(name) { + // if there is no recod for the property - create it + if (this._lastSet[name] == null) { + this._lastSet[name] = {}; + } + if (this._lastSet[name].value !== this._props[name]) { + this._lastSet[name].value = this._props[name]; + return true; + } else { + return false; + } + }; + /* + Method to tune new option on run. + @private + @override @ Module + @param {Object} Option to tune on run. + */ + + + Shape.prototype._tuneNewOptions = function _tuneNewOptions(o) { + // call super on Module + _Tunable.prototype._tuneNewOptions.call(this, o); + // return if empty object + if (!(o != null && (0, _keys2.default)(o).length)) { + return 1; + } + + // this._calcSize(); + this._setElStyles(); + }; + /* + Method to get max radiusX value. + @private + @param {String} Radius name. + */ + + + Shape.prototype._getMaxRadius = function _getMaxRadius(name) { + var selfSize, selfSizeX; + selfSize = this._getRadiusSize('radius'); + return this._getRadiusSize(name, selfSize); + }; + /* + Method to increase calculated size based on easing. + @private + */ + + + Shape.prototype._increaseSizeWithEasing = function _increaseSizeWithEasing() { + var p = this._props, + easing = this._o.easing, + isStringEasing = easing && typeof easing === 'string'; + + switch (isStringEasing && easing.toLowerCase()) { + case 'elastic.out': + case 'elastic.inout': + p.size *= 1.25; + break; + case 'back.out': + case 'back.inout': + p.size *= 1.1; + } + }; + /* + Method to increase calculated size based on bit ratio. + @private + */ + // _increaseSizeWithBitRatio () { + // var p = this._props; + // // p.size *= this.shape._props.ratio; + // p.size += 2 * p.sizeGap; + // } + /* + Method to get maximum radius size with optional fallback. + @private + @param {Object} + @param key {String} Name of the radius - [radius|radiusX|radiusY]. + @param @optional fallback {Number} Optional number to set if there + is no value for the key. + */ + + + Shape.prototype._getRadiusSize = function _getRadiusSize(name) { + var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + + var delta = this._deltas[name]; + // if value is delta value + if (delta != null) { + // get maximum number between start and end values of the delta + return Math.max(Math.abs(delta.end), Math.abs(delta.start)); + } else if (this._props[name] != null) { + // else get the value from props object + return parseFloat(this._props[name]); + } else { + return fallback; + } + }; + /* + Method to get max shape canvas size and save it to _props. + @private + */ + + + Shape.prototype._getShapeSize = function _getShapeSize() { + var p = this._props, + + // get maximum stroke value + stroke = this._getMaxStroke(); + // save shape `width` and `height` to `_props` + p.shapeWidth = p.width != null ? p.width : 2 * this._getMaxRadius('radiusX') + stroke; + + p.shapeHeight = p.height != null ? p.height : 2 * this._getMaxRadius('radiusY') + stroke; + }; + /* + Method to create shape. + @private + */ + + + Shape.prototype._createShape = function _createShape() { + // calculate max shape canvas size and set to _props + this._getShapeSize(); + // don't create actual shape if !`isWithShape` + if (!this._props.isWithShape) { + return; + } + + var p = this._props; + // get shape's class + var Shape = shapesMap.getShape(this._props.shape); + // create `_shape` module + this.shapeModule = new Shape({ + width: p.shapeWidth, + height: p.shapeHeight, + parent: this.el + }); + }; + /* + Method to get max size in `then` chain + @private + */ + + + Shape.prototype._getMaxSizeInChain = function _getMaxSizeInChain() { + var p = this._props, + maxW = 0, + maxH = 0; + + for (var i = 0; i < this._modules.length; i++) { + this._modules[i]._getShapeSize(); + maxW = Math.max(maxW, this._modules[i]._props.shapeWidth); + maxH = Math.max(maxH, this._modules[i]._props.shapeHeight); + } + + this.shapeModule && this.shapeModule._setSize(maxW, maxH); + this._setElSizeStyles(maxW, maxH); + }; + /* + Method to get max value of the strokeWidth. + @private + */ + + + Shape.prototype._getMaxStroke = function _getMaxStroke() { + var p = this._props; + var dStroke = this._deltas['strokeWidth']; + return dStroke != null ? Math.max(dStroke.start, dStroke.end) : p.strokeWidth; + }; + /* + Method to draw current progress of the deltas. + @private + @override @ Module + @param {Number} EasedProgress to set - [0..1]. + @param {Number} Progress to set - [0..1]. + */ + + + Shape.prototype._setProgress = function _setProgress(easedProgress, progress) { + // call the super on Module + _module2.default.prototype._setProgress.call(this, easedProgress, progress); + // draw current progress + this._draw(easedProgress); + }; + /* + Method to add callback overrides to passed object. + @private + @param {Object} Object to add the overrides to. + */ + + + Shape.prototype._applyCallbackOverrides = function _applyCallbackOverrides(obj) { + var it = this, + p = this._props; + // specify control functions for the module + obj.callbackOverrides = { + onUpdate: function onUpdate(ep, p) { + return it._setProgress(ep, p); + }, + onStart: function onStart(isFwd) { + // don't touch main `el` onStart in chained elements + if (it._isChained) { + return; + }; + if (isFwd) { + it._show(); + } else { + if (!p.isShowStart) { + it._hide(); + } + } + }, + onComplete: function onComplete(isFwd) { + // don't touch main `el` if not the last in `then` chain + if (!it._isLastInChain()) { + return; + } + if (isFwd) { + if (!p.isShowEnd) { + it._hide(); + } + } else { + it._show(); + } + }, + onRefresh: function onRefresh(isBefore) { + p.isRefreshState && isBefore && it._refreshBefore(); + } + }; + }; + /* + Method to setup tween and timeline options before creating them. + @override @ Tweenable + @private + */ + + + Shape.prototype._transformTweenOptions = function _transformTweenOptions() { + this._applyCallbackOverrides(this._o); + }; + /* + Method to create transform string. + @private + @returns {String} Transform string. + */ + + + Shape.prototype._fillTransform = function _fillTransform() { + var p = this._props, + scaleX = p.scaleX != null ? p.scaleX : p.scale, + scaleY = p.scaleY != null ? p.scaleY : p.scale, + scale = scaleX + ', ' + scaleY; + return 'translate(' + p.x + ', ' + p.y + ') rotate(' + p.angle + 'deg) scale(' + scale + ')'; + }; + /* + Method to create transform-origin string. + @private + @returns {String} Transform string. + */ + + + Shape.prototype._fillOrigin = function _fillOrigin() { + var p = this._props, + str = ''; + for (var i = 0; i < p.origin.length; i++) { + str += p.origin[i].string + ' '; + } + return str; + }; + /* + Method to refresh state befor startTime. + @private + */ + + + Shape.prototype._refreshBefore = function _refreshBefore() { + // call setProgress with eased and normal progress + this._setProgress(this.tween._props.easing(0), 0); + + if (this._props.isShowStart) { + this._show(); + } else { + this._hide(); + } + }; + /* + Method that gets called on `soft` show of the module, + it should restore transform styles of the module. + @private + @overrides @ Module + */ + + + Shape.prototype._showByTransform = function _showByTransform() { + // reset the cache of the scale prop + this._lastSet.scale = null; + // draw el accroding to it's props + this._drawEl(); + }; + + return Shape; + }(_tunable2.default); + + exports.default = Shape; + +/***/ }), +/* 95 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = { "default": __webpack_require__(96), __esModule: true }; + +/***/ }), +/* 96 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(97); + module.exports = __webpack_require__(14).Object.keys; + +/***/ }), +/* 97 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.14 Object.keys(O) + var toObject = __webpack_require__(49) + , $keys = __webpack_require__(33); + + __webpack_require__(98)('keys', function(){ + return function keys(it){ + return $keys(toObject(it)); + }; + }); + +/***/ }), +/* 98 */ +/***/ (function(module, exports, __webpack_require__) { + + // most Object methods by ES6 should accept primitives + var $export = __webpack_require__(12) + , core = __webpack_require__(14) + , fails = __webpack_require__(23); + module.exports = function(KEY, exec){ + var fn = (core.Object || {})[KEY] || Object[KEY] + , exp = {}; + exp[KEY] = exec(fn); + $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp); + }; + +/***/ }), +/* 99 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _keys = __webpack_require__(95); + + var _keys2 = _interopRequireDefault(_keys); + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _tweenable = __webpack_require__(100); + + var _tweenable2 = _interopRequireDefault(_tweenable); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + /* + The Thenable class adds .then public method and + the ability to chain API calls. + */ + var Thenable = function (_Tweenable) { + (0, _inherits3.default)(Thenable, _Tweenable); + + function Thenable() { + (0, _classCallCheck3.default)(this, Thenable); + return (0, _possibleConstructorReturn3.default)(this, _Tweenable.apply(this, arguments)); + } + + /* + Method to create a then record for the module. + @public + @param {Object} Options for the next animation. + @returns {Object} this. + */ + Thenable.prototype.then = function then(o) { + // return if nothing was passed + if (o == null || !(0, _keys2.default)(o).length) { + return 1; + } + // merge then options with the current ones + var prevRecord = this._history[this._history.length - 1], + prevModule = this._modules[this._modules.length - 1], + merged = this._mergeThenOptions(prevRecord, o); + + this._resetMergedFlags(merged); + // create a submodule of the same type as the master module + var module = new this.constructor(merged); + // set `this` as amster module of child module + module._masterModule = this; + // save the modules to the _modules array + this._modules.push(module); + // add module's tween into master timeline + this.timeline.append(module); + + return this; + }; + + // ^ PUBLIC METHOD(S) ^ + // v PRIVATE METHOD(S) v + + /* + Method to reset some flags on merged options object. + @private + @param {Object} Options object. + @returns {Object} Options object. + */ + + + Thenable.prototype._resetMergedFlags = function _resetMergedFlags(obj) { + // set the submodule to be without timeline for perf reasons + obj.isTimelineLess = true; + // reset isShowStart flag for the submodules + obj.isShowStart = false; + // reset isRefreshState flag for the submodules + obj.isRefreshState = false; + // set the submodule callbacks context + obj.callbacksContext = this._props.callbacksContext || this; + // set previous module + obj.prevChainModule = _h2.default.getLastItem(this._modules); + // pass the `this` as master module + obj.masterModule = this; + return obj; + }; + /* + Method to initialize properties. + @private + */ + + + Thenable.prototype._vars = function _vars() { + _Tweenable.prototype._vars.call(this); + // save _master module + this._masterModule = this._o.masterModule; + // set isChained flag based on prevChainModule option + this._isChained = !!this._masterModule; + // we are expect that the _o object + // have been already extended by defaults + var initialRecord = _h2.default.cloneObj(this._props); + for (var key in this._arrayPropertyMap) { + if (this._o[key]) { + var preParsed = this._parsePreArrayProperty(key, this._o[key]); + initialRecord[key] = preParsed; + } + } + + this._history = [initialRecord]; + // the array holds all modules in the then chain + this._modules = [this]; + // the props that to exclude from then merge + this._nonMergeProps = { shape: 1 }; + }; + /* + Method to merge two options into one. Used in .then chains. + @private + @param {Object} Start options for the merge. + @param {Object} End options for the merge. + @returns {Object} Merged options. + */ + + + Thenable.prototype._mergeThenOptions = function _mergeThenOptions(start, end) { + var o = {}; + this._mergeStartLoop(o, start); + this._mergeEndLoop(o, start, end); + this._history.push(o); + return o; + }; + /* + Method to pipe startValue of the delta. + @private + @param {String} Start property name. + @param {Any} Start property value. + @returns {Any} Start property value. + */ + + + Thenable.prototype._checkStartValue = function _checkStartValue(name, value) { + return value; + }; + /* + Originally part of the _mergeThenOptions. + Loops thru start object and copies all the props from it. + @param {Object} An object to copy in. + @parma {Object} Start options object. + */ + + + Thenable.prototype._mergeStartLoop = function _mergeStartLoop(o, start) { + // loop thru start options object + for (var key in start) { + var value = start[key]; + if (start[key] == null) { + continue; + }; + // copy all values from start if not tween prop or duration + if (!_h2.default.isTweenProp(key) || key === 'duration') { + // if delta - copy only the end value + if (this._isDelta(value)) { + o[key] = _h2.default.getDeltaEnd(value); + } else { + o[key] = value; + } + } + } + }; + /* + Originally part of the _mergeThenOptions. + Loops thru start object and merges all the props from it. + @param {Object} An object to copy in. + @parma {Object} Start options object. + @parma {Object} End options object. + */ + + + Thenable.prototype._mergeEndLoop = function _mergeEndLoop(o, start, end) { + var endKeys = (0, _keys2.default)(end); + + for (var key in end) { + // just copy parent option + if (key == 'parent') { + o[key] = end[key];continue; + }; + + // get key/value of the end object + // endKey - name of the property, endValue - value of the property + var endValue = end[key], + startValue = start[key] != null ? start[key] : this._defaults[key]; + + startValue = this._checkStartValue(key, startValue); + if (endValue == null) { + continue; + }; + // make ∆ of start -> end + // if key name is radiusX/radiusY and + // the startValue is not set fallback to radius value + var isSubRadius = key === 'radiusX' || key === 'radiusY'; + if (isSubRadius && startValue == null) { + startValue = start.radius; + } + + var isSubRadius = key === 'scaleX' || key === 'scaleY'; + if (isSubRadius && startValue == null) { + startValue = start.scale; + } + + o[key] = this._mergeThenProperty(key, startValue, endValue); + } + }; + /* + Method to merge `start` and `end` for a property in then record. + @private + @param {String} Property name. + @param {Any} Start value of the property. + @param {Any} End value of the property. + */ + + + Thenable.prototype._mergeThenProperty = function _mergeThenProperty(key, startValue, endValue) { + // if isnt tween property + var isBoolean = typeof endValue === 'boolean', + curve, + easing; + + if (!_h2.default.isTweenProp(key) && !this._nonMergeProps[key] && !isBoolean) { + + if (_h2.default.isObject(endValue) && endValue.to != null) { + curve = endValue.curve; + easing = endValue.easing; + endValue = endValue.to; + } + + // if end value is delta - just save it + if (this._isDelta(endValue)) { + return this._parseDeltaValues(key, endValue); + } else { + var parsedEndValue = this._parsePreArrayProperty(key, endValue); + // if end value is not delta - merge with start value + if (this._isDelta(startValue)) { + var _ref; + + // if start value is delta - take the end value + // as start value of the new delta + return _ref = {}, _ref[_h2.default.getDeltaEnd(startValue)] = parsedEndValue, _ref.easing = easing, _ref.curve = curve, _ref; + // if both start and end value are not ∆ - make ∆ + } else { + var _ref2; + + return _ref2 = {}, _ref2[startValue] = parsedEndValue, _ref2.easing = easing, _ref2.curve = curve, _ref2; + } + } + // copy the tween values unattended + } else { + return endValue; + } + }; + /* + Method to retreive array's length and return -1 for + all other types. + @private + @param {Array, Any} Array to get the width for. + @returns {Number} Array length or -1 if not array. + */ + + + Thenable.prototype._getArrayLength = function _getArrayLength(arr) { + return _h2.default.isArray(arr) ? arr.length : -1; + }; + /* + Method to check if the property is delta property. + @private + @param {Any} Parameter value to check. + @returns {Boolean} + */ + + + Thenable.prototype._isDelta = function _isDelta(optionsValue) { + var isObject = _h2.default.isObject(optionsValue); + isObject = isObject && !optionsValue.unit; + return !(!isObject || _h2.default.isArray(optionsValue) || _h2.default.isDOM(optionsValue)); + }; + /* + Method to check if the module is first in `then` chain. + @private + @returns {Boolean} If the module is the first in module chain. + */ + + + Thenable.prototype._isFirstInChain = function _isFirstInChain() { + return !this._masterModule; + }; + /* + Method to check if the module is last in `then` chain. + @private + @returns {Boolean} If the module is the last in module chain. + */ + + + Thenable.prototype._isLastInChain = function _isLastInChain() { + var master = this._masterModule; + // if there is no master field - check the modules length + // if module length is 1 thus there is no modules chain + // it is the last one, otherwise it isnt + if (!master) { + return this._modules.length === 1; + } + // if there is master - check if it is the last item in _modules chain + return this === _h2.default.getLastItem(master._modules); + }; + + return Thenable; + }(_tweenable2.default); + + exports.default = Thenable; + +/***/ }), +/* 100 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _tween = __webpack_require__(101); + + var _tween2 = _interopRequireDefault(_tween); + + var _timeline = __webpack_require__(110); + + var _timeline2 = _interopRequireDefault(_timeline); + + var _module = __webpack_require__(84); + + var _module2 = _interopRequireDefault(_module); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + /* + Class to define a module ancestor + with timeline and tween options and functionality. + All runable modules should inherit from this class. + + @class Tweenable + */ + var Tweenable = function (_Module) { + (0, _inherits3.default)(Tweenable, _Module); + + /* + `play` method for the timeline. + @public + @param {Number} Time shift. + @returns this. + */ + Tweenable.prototype.play = function play() { + this.timeline.play.apply(this.timeline, arguments); + return this; + }; + /* + `playBackward` method for the timeline. + @public + @param {Number} Time shift. + @returns this. + */ + + + Tweenable.prototype.playBackward = function playBackward() { + this.timeline.playBackward.apply(this.timeline, arguments); + return this; + }; + /* + `pause` method for the timeline. + @public + @returns this. + */ + + + Tweenable.prototype.pause = function pause() { + this.timeline.pause.apply(this.timeline, arguments); + return this; + }; + /* + `stop` method for the timeline. + @public + @param {Number} [0...1] Progress to set on stop. + *Default* is `0` if `play` + and `1` if `playBAckward`. + @returns this. + */ + + + Tweenable.prototype.stop = function stop() { + this.timeline.stop.apply(this.timeline, arguments); + return this; + }; + /* + `reset` method for the timeline. + @public + @returns this. + */ + + + Tweenable.prototype.reset = function reset() { + this.timeline.reset.apply(this.timeline, arguments); + return this; + }; + /* + `replay` method for the timeline. + @public + @returns this. + */ + + + Tweenable.prototype.replay = function replay() { + this.timeline.replay.apply(this.timeline, arguments); + return this; + }; + /* + `replay` method for the timeline. + @public + @returns this. + */ + + + Tweenable.prototype.replayBackward = function replayBackward() { + this.timeline.replayBackward.apply(this.timeline, arguments); + return this; + }; + /* + `resume` method for the timeline. + @public + @param {Number} Time shift. + @returns this. + */ + + + Tweenable.prototype.resume = function resume() { + var shift = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + + this.timeline.resume.apply(this.timeline, arguments); + return this; + }; + /* + `setProgress` method for the timeline. + @public + @param {Number} [0...1] Progress value. + @returns this. + */ + + + Tweenable.prototype.setProgress = function setProgress() { + this.timeline.setProgress.apply(this.timeline, arguments); + return this; + }; + /* + setSpeed method for the timeline. + @param {Number} Speed value. + @returns this. + */ + + + Tweenable.prototype.setSpeed = function setSpeed(speed) { + this.timeline.setSpeed.apply(this.timeline, arguments); + return this; + }; + + // ^ PUBLIC METHOD(S) ^ + // v PRIVATE METHOD(S) v + + function Tweenable() { + var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + (0, _classCallCheck3.default)(this, Tweenable); + + // pipe function for _o object + // before creating tween/timeline + var _this = (0, _possibleConstructorReturn3.default)(this, _Module.call(this, o)); + // super of Module + + + _this._transformTweenOptions(); + // make tween only if isTweenLess option is not set + !_this._o.isTweenLess && _this._makeTween(); + // make timeline only if isTimelineLess option is not set + !_this._o.isTimelineLess && _this._makeTimeline(); + return _this; + } + /* + Placeholder method that should be overrided + and will be called before tween/timeline creation. + @private + */ + + + Tweenable.prototype._transformTweenOptions = function _transformTweenOptions() {}; + /* + Method to create tween. + @private + */ + + + Tweenable.prototype._makeTween = function _makeTween() { + // pass callbacks context + this._o.callbacksContext = this._o.callbacksContext || this; + this.tween = new _tween2.default(this._o); + // make timeline property point to tween one is "no timeline" mode + this._o.isTimelineLess && (this.timeline = this.tween); + }; + /* + Method to create timeline. + @private + @param {Object} Timeline's options. + An object which contains "timeline" property with + timeline options. + */ + + + Tweenable.prototype._makeTimeline = function _makeTimeline() { + // pass callbacks context + this._o.timeline = this._o.timeline || {}; + this._o.timeline.callbacksContext = this._o.callbacksContext || this; + this.timeline = new _timeline2.default(this._o.timeline); + // set the flag to indicate that real timeline is present + this._isTimeline = true; + // if tween exist - add it to the timeline there is some + // modules like burst and stagger that have no tween + this.tween && this.timeline.add(this.tween); + }; + + return Tweenable; + }(_module2.default); + + exports.default = Tweenable; + +/***/ }), +/* 101 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + var _tweener = __webpack_require__(102); + + var _tweener2 = _interopRequireDefault(_tweener); + + var _easing = __webpack_require__(105); + + var _easing2 = _interopRequireDefault(_easing); + + var _module = __webpack_require__(84); + + var _module2 = _interopRequireDefault(_module); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + // import h from '../h'; + var Tween = function (_Module) { + (0, _inherits3.default)(Tween, _Module); + + /* + Method do declare defaults with this._defaults object. + @private + */ + Tween.prototype._declareDefaults = function _declareDefaults() { + // DEFAULTS + this._defaults = { + /* duration of the tween [0..∞] */ + duration: 350, + /* delay of the tween [-∞..∞] */ + delay: 0, + /* repeat of the tween [0..∞], means how much to + repeat the tween regardless first run, + for instance repeat: 2 will make the tween run 3 times */ + repeat: 0, + /* speed of playback [0..∞], speed that is less then 1 + will slowdown playback, for instance .5 will make tween + run 2x slower. Speed of 2 will speedup the tween to 2x. */ + speed: 1, + /* flip onUpdate's progress on each even period. + note that callbacks order won't flip at least + for now (under consideration). */ + isYoyo: false, + /* easing for the tween, could be any easing type [link to easing-types.md] */ + easing: 'Sin.Out', + /* + Easing for backward direction of the tweenthe tween, + if `null` - fallbacks to `easing` property. + forward direction in `yoyo` period is treated as backward for the easing. + */ + backwardEasing: null, + /* custom tween's name */ + name: null, + /* custom tween's base name */ + nameBase: 'Tween', + /* + onProgress callback runs before any other callback. + @param {Number} The entire, not eased, progress + of the tween regarding repeat option. + @param {Boolean} The direction of the tween. + `true` for forward direction. + `false` for backward direction(tween runs in reverse). + */ + onProgress: null, + /* + onStart callback runs on very start of the tween just after onProgress + one. Runs on very end of the tween if tween is reversed. + @param {Boolean} Direction of the tween. + `true` for forward direction. + `false` for backward direction(tween runs in reverse). + */ + onStart: null, + onRefresh: null, + onComplete: null, + onRepeatStart: null, + onRepeatComplete: null, + onFirstUpdate: null, + onUpdate: null, + isChained: false, + // playback callbacks + onPlaybackStart: null, + onPlaybackPause: null, + onPlaybackStop: null, + onPlaybackComplete: null, + // context which all callbacks will be called with + callbacksContext: null + }; + }; + /* + API method to play the Tween. + @public + @param {Number} Shift time in milliseconds. + @return {Object} Self. + */ + + + Tween.prototype.play = function play() { + var shift = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + + if (this._state === 'play' && this._isRunning) { + return this; + } + this._props.isReversed = false; + this._subPlay(shift, 'play'); + this._setPlaybackState('play'); + return this; + }; + /* + API method to play the Tween in reverse. + @public + @param {Number} Shift time in milliseconds. + @return {Object} Self. + */ + + + Tween.prototype.playBackward = function playBackward() { + var shift = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + + if (this._state === 'reverse' && this._isRunning) { + return this; + } + this._props.isReversed = true; + this._subPlay(shift, 'reverse'); + this._setPlaybackState('reverse'); + return this; + }; + /* + API method to pause Tween. + @public + @returns {Object} Self. + */ + + + Tween.prototype.pause = function pause() { + if (this._state === 'pause' || this._state === 'stop') { + return this; + } + this._removeFromTweener(); + this._setPlaybackState('pause'); + return this; + }; + /* + API method to stop the Tween. + @public + @param {Number} Progress [0..1] to set when stopped. + @returns {Object} Self. + */ + + + Tween.prototype.stop = function stop(progress) { + if (this._state === 'stop') { + return this; + } + + this._wasUknownUpdate = undefined; + + var stopProc = progress != null ? progress + /* if no progress passsed - set 1 if tween + is playingBackward, otherwise set to 0 */ + : this._state === 'reverse' ? 1 : 0; + + this.setProgress(stopProc); + + this.reset(); + return this; + }; + /* + API method to replay(restart) the Tween. + @public + @param {Number} Shift time in milliseconds. + @returns {Object} Self. + */ + + + Tween.prototype.replay = function replay() { + var shift = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + + this.reset(); + this.play(shift); + return this; + }; + /* + API method to replay(restart) backward the Tween. + @public + @param {Number} Shift time in milliseconds. + @returns {Object} Self. + */ + + + Tween.prototype.replayBackward = function replayBackward() { + var shift = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + + this.reset(); + this.playBackward(shift); + return this; + }; + /* + API method to resume the Tween. + @public + @param {Number} Shift time in milliseconds. + @return {Object} Self. + */ + + + Tween.prototype.resume = function resume() { + var shift = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + + if (this._state !== 'pause') { + return this; + } + + switch (this._prevState) { + case 'play': + this.play(shift); + break; + case 'reverse': + this.playBackward(shift); + break; + } + + return this; + }; + /* + API method to set progress on tween. + @public + @param {Number} Progress to set. + @returns {Object} Self. + */ + + + Tween.prototype.setProgress = function setProgress(progress) { + var p = this._props; + // set start time if there is no one yet. + !p.startTime && this._setStartTime(); + // reset play time + this._playTime = null; + // progress should be in range of [0..1] + progress < 0 && (progress = 0); + progress > 1 && (progress = 1); + // update self with calculated time + this._update(p.startTime - p.delay + progress * p.repeatTime); + return this; + }; + /* + Method to set tween's speed. + @public + @param {Number} Speed value. + @returns this. + */ + + + Tween.prototype.setSpeed = function setSpeed(speed) { + this._props.speed = speed; + // if playing - normalize _startTime and _prevTime to the current point. + if (this._state === 'play' || this._state === 'reverse') { + this._setResumeTime(this._state); + } + return this; + }; + /* + Method to reset tween's state and properties. + @public + @returns this. + */ + + + Tween.prototype.reset = function reset() { + this._removeFromTweener(); + this._setPlaybackState('stop'); + this._progressTime = 0; + this._isCompleted = false; + this._isStarted = false; + this._isFirstUpdate = false; + this._wasUknownUpdate = undefined; + this._prevTime = undefined; + this._prevYoyo = undefined; + // this._props.startTime = undefined; + this._props.isReversed = false; + return this; + }; + + // ^ PUBLIC METHOD(S) ^ + // v PRIVATE METHOD(S) v + + /* + Method to launch play. Used as launch + method for bothplay and reverse methods. + @private + @param {Number} Shift time in milliseconds. + @param {String} Play or reverse state. + @return {Object} Self. + */ + + + Tween.prototype._subPlay = function _subPlay() { + var shift = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var state = arguments[1]; + + var resumeTime, + startTime, + p = this._props, + + // check if direction of playback changes, + // if so, the _progressTime needs to be flipped + _state = this._state, + _prevState = this._prevState, + isPause = _state === 'pause', + wasPlay = _state === 'play' || isPause && _prevState === 'play', + wasReverse = _state === 'reverse' || isPause && _prevState === 'reverse', + isFlip = wasPlay && state === 'reverse' || wasReverse && state === 'play'; + + // if tween was ended, set progress to 0 if not, set to elapsed progress + this._progressTime = this._progressTime >= p.repeatTime ? 0 : this._progressTime; + // flip the _progressTime if playback direction changed + if (isFlip) { + this._progressTime = p.repeatTime - this._progressTime; + } + // set resume time and normalize prev/start times + this._setResumeTime(state, shift); + // add self to tweener = play + _tweener2.default.add(this); + return this; + }; + /* + Method to set _resumeTime, _startTime and _prevTime. + @private + @param {String} Current state. [play, reverse] + @param {Number} Time shift. *Default* is 0. + */ + + + Tween.prototype._setResumeTime = function _setResumeTime(state) { + var shift = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + + // get current moment as resume time + this._resumeTime = performance.now(); + // set start time regarding passed `shift` and `procTime` + var startTime = this._resumeTime - Math.abs(shift) - this._progressTime; + this._setStartTime(startTime, false); + // if we have prevTime - we need to normalize + // it for the current resume time + if (this._prevTime != null) { + this._prevTime = state === 'play' ? this._normPrevTimeForward() : this._props.endTime - this._progressTime; + } + }; + /* + Method recalculate _prevTime for forward direction. + @private + @return {Number} Normalized prev time. + */ + + + Tween.prototype._normPrevTimeForward = function _normPrevTimeForward() { + var p = this._props; + return p.startTime + this._progressTime - p.delay; + }; + /* + Constructor of the class. + @private + */ + + + function Tween() { + var _ret; + + var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + (0, _classCallCheck3.default)(this, Tween); + + var _this = (0, _possibleConstructorReturn3.default)(this, _Module.call(this, o)); + + _this._props.name == null && _this._setSelfName(); + return _ret = _this, (0, _possibleConstructorReturn3.default)(_this, _ret); + } + /* + Method to set self name to generic one. + @private + */ + + + Tween.prototype._setSelfName = function _setSelfName() { + var globalName = '_' + this._props.nameBase + 's'; + // track amount of tweens globally + _tweener2.default[globalName] = _tweener2.default[globalName] == null ? 1 : ++_tweener2.default[globalName]; + // and set generic tween's name || Tween # || + this._props.name = this._props.nameBase + ' ' + _tweener2.default[globalName]; + }; + /* + Method set playback state string. + @private + @param {String} State name + */ + + + Tween.prototype._setPlaybackState = function _setPlaybackState(state) { + // save previous state + this._prevState = this._state; + this._state = state; + + // callbacks + var wasPause = this._prevState === 'pause', + wasStop = this._prevState === 'stop', + wasPlay = this._prevState === 'play', + wasReverse = this._prevState === 'reverse', + wasPlaying = wasPlay || wasReverse, + wasStill = wasStop || wasPause; + + if ((state === 'play' || state === 'reverse') && wasStill) { + this._playbackStart(); + } + if (state === 'pause' && wasPlaying) { + this._playbackPause(); + } + if (state === 'stop' && (wasPlaying || wasPause)) { + this._playbackStop(); + } + }; + /* + Method to declare some vars. + @private + */ + + + Tween.prototype._vars = function _vars() { + this.progress = 0; + this._prevTime = undefined; + this._progressTime = 0; + this._negativeShift = 0; + this._state = 'stop'; + // if negative delay was specified, + // save it to _negativeShift property and + // reset it back to 0 + if (this._props.delay < 0) { + this._negativeShift = this._props.delay; + this._props.delay = 0; + } + + return this._calcDimentions(); + }; + /* + Method to calculate tween's dimentions. + @private + */ + + + Tween.prototype._calcDimentions = function _calcDimentions() { + this._props.time = this._props.duration + this._props.delay; + this._props.repeatTime = this._props.time * (this._props.repeat + 1); + }; + /* + Method to extend defaults by options and put them in _props. + @private + */ + + + Tween.prototype._extendDefaults = function _extendDefaults() { + // save callback overrides object with fallback to empty one + this._callbackOverrides = this._o.callbackOverrides || {}; + delete this._o.callbackOverrides; + // call the _extendDefaults @ Module + _Module.prototype._extendDefaults.call(this); + + var p = this._props; + p.easing = _easing2.default.parseEasing(p.easing); + p.easing._parent = this; + + // parse only present backward easing to prevent parsing as `linear.none` + // because we need to fallback to `easing` in `_setProgress` method + if (p.backwardEasing != null) { + p.backwardEasing = _easing2.default.parseEasing(p.backwardEasing); + p.backwardEasing._parent = this; + } + }; + /* + Method for setting start and end time to props. + @private + @param {Number(Timestamp)}, {Null} Start time. + @param {Boolean} Should reset flags. + @returns this + */ + + + Tween.prototype._setStartTime = function _setStartTime(time) { + var isResetFlags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + + var p = this._props, + shiftTime = p.shiftTime || 0; + // reset flags + if (isResetFlags) { + this._isCompleted = false;this._isRepeatCompleted = false; + this._isStarted = false; + } + // set start time to passed time or to the current moment + var startTime = time == null ? performance.now() : time; + // calculate bounds + // - negativeShift is negative delay in options hash + // - shift time is shift of the parent + p.startTime = startTime + p.delay + this._negativeShift + shiftTime; + p.endTime = p.startTime + p.repeatTime - p.delay; + // set play time to the startTimes + // if playback controls are used - use _resumeTime as play time, + // else use shifted startTime -- shift is needed for timelines append chains + this._playTime = this._resumeTime != null ? this._resumeTime : startTime + shiftTime; + this._resumeTime = null; + + return this; + }; + /* + Method to update tween's progress. + @private + @param {Number} Current update time. + -- next params only present when parent Timeline calls the method. + @param {Number} Previous Timeline's update time. + @param {Boolean} Was parent in yoyo period. + @param {Number} [-1, 0, 1] If update is on edge. + -1 = edge jump in negative direction. + 0 = no edge jump. + 1 = edge jump in positive direction. + */ + + + Tween.prototype._update = function _update(time, timelinePrevTime, wasYoyo, onEdge) { + var p = this._props; + // if we don't the _prevTime thus the direction we are heading to, + // but prevTime was passed thus we are child of a Timeline + // set _prevTime to passed one and pretent that there was unknown + // update to not to block start/complete callbacks + if (this._prevTime == null && timelinePrevTime != null) { + + if (this._props.speed && this._playTime) { + // play point + ( speed * delta ) + this._prevTime = this._playTime + this._props.speed * (timelinePrevTime - this._playTime); + } + // this._prevTime = timelinePrevTime; + this._wasUknownUpdate = true; + } + + // var before = time; + // cache vars + var startPoint = p.startTime - p.delay; + // if speed param was defined - calculate + // new time regarding speed + if (p.speed && this._playTime) { + // play point + ( speed * delta ) + time = this._playTime + p.speed * (time - this._playTime); + } + + // due to javascript precision issues, after speed mapping + // we can get very close number that was made from progress of 1 + // and in fact represents `endTime` if so, set the time to `endTime` + if (Math.abs(p.endTime - time) < 0.00000001) { + time = p.endTime; + } + + // if parent is onEdge but not very start nor very end + if (onEdge && wasYoyo != null) { + var T = this._getPeriod(time), + isYoyo = !!(p.isYoyo && this._props.repeat && T % 2 === 1); + + // for timeline + // notify children about edge jump + if (this._timelines) { + for (var i = 0; i < this._timelines.length; i++) { + this._timelines[i]._update(time, timelinePrevTime, wasYoyo, onEdge); + } + } + // forward edge direction + if (onEdge === 1) { + // jumped from yoyo period? + if (wasYoyo) { + this._prevTime = time + 1; + this._repeatStart(time, isYoyo); + this._start(time, isYoyo); + } else { + this._prevTime = time - 1; + this._repeatComplete(time, isYoyo); + this._complete(time, isYoyo); + } + // backward edge direction + } else if (onEdge === -1) { + // jumped from yoyo period? + if (wasYoyo) { + this._prevTime = time - 1; + this._repeatComplete(time, isYoyo); + this._complete(time, isYoyo); + } else { + // call _start callbacks only if prev time was in active area + // not always true for append chains + if (this._prevTime >= p.startTime && this._prevTime <= p.endTime) { + this._prevTime = time + 1; + this._repeatStart(time, isYoyo); + this._start(time, isYoyo); + // reset isCOmpleted immediately to prevent onComplete cb + this._isCompleted = true; + } + } + } + // reset the _prevTime - drop one frame to undestand + // where we are heading + this._prevTime = undefined; + } + // if in active area and not ended - save progress time + // for pause/play purposes. + if (time > startPoint && time < p.endTime) { + this._progressTime = time - startPoint; + } + // else if not started or ended set progress time to 0 + else if (time <= startPoint) { + this._progressTime = 0; + } else if (time >= p.endTime) { + // set progress time to repeat time + tiny cofficient + // to make it extend further than the end time + this._progressTime = p.repeatTime + .00000000001; + } + // reverse time if _props.isReversed is set + if (p.isReversed) { + time = p.endTime - this._progressTime; + } + // We need to know what direction we are heading to, + // so if we don't have the previous update value - this is very first + // update, - skip it entirely and wait for the next value + if (this._prevTime == null) { + this._prevTime = time; + this._wasUknownUpdate = true; + return false; + } + + // ====== AFTER SKIPPED FRAME ====== + + // handle onProgress callback + if (time >= startPoint && time <= p.endTime) { + this._progress((time - startPoint) / p.repeatTime, time); + } + /* + if time is inside the active area of the tween. + active area is the area from start time to end time, + with all the repeat and delays in it + */ + if (time >= p.startTime && time <= p.endTime) { + this._updateInActiveArea(time); + } else { + // if was in active area - update in inactive area but just once - + // right after the active area + if (this._isInActiveArea) { + this._updateInInactiveArea(time); + } else if (!this._isRefreshed) { + // onRefresh callback + // before startTime + if (time < p.startTime && this.progress !== 0) { + this._refresh(true); + this._isRefreshed = true; + // after endTime + } + // else if ( time > p.endTime ) { } + } + } + + this._prevTime = time; + return time >= p.endTime || time <= startPoint; + }; + /* + Method to handle tween's progress in inactive area. + @private + @param {Number} Current update time. + */ + + + Tween.prototype._updateInInactiveArea = function _updateInInactiveArea(time) { + if (!this._isInActiveArea) { + return; + } + var p = this._props; + // complete if time is larger then end time + if (time > p.endTime && !this._isCompleted) { + this._progress(1, time); + // get period number + var T = this._getPeriod(p.endTime), + isYoyo = p.isYoyo && T % 2 === 0; + + this._setProgress(isYoyo ? 0 : 1, time, isYoyo); + this._repeatComplete(time, isYoyo); + this._complete(time, isYoyo); + } + // if was active and went to - inactive area "-" + if (time < this._prevTime && time < p.startTime && !this._isStarted && !this._isCompleted) { + // if was in active area and didn't fire onStart callback + this._progress(0, time, false); + this._setProgress(0, time, false); + this._isRepeatStart = false; + this._repeatStart(time, false); + this._start(time, false); + } + this._isInActiveArea = false; + }; + /* + Method to handle tween's progress in active area. + @private + @param {Number} Current update time. + */ + + + Tween.prototype._updateInActiveArea = function _updateInActiveArea(time) { + + var props = this._props, + delayDuration = props.delay + props.duration, + startPoint = props.startTime - props.delay, + elapsed = (time - props.startTime + props.delay) % delayDuration, + TCount = Math.round((props.endTime - props.startTime + props.delay) / delayDuration), + T = this._getPeriod(time), + TValue = this._delayT, + prevT = this._getPeriod(this._prevTime), + TPrevValue = this._delayT; + + // "zero" and "one" value regarding yoyo and it's period + var isYoyo = props.isYoyo && T % 2 === 1, + isYoyoPrev = props.isYoyo && prevT % 2 === 1, + yoyoZero = isYoyo ? 1 : 0, + yoyoOne = 1 - yoyoZero; + + if (time === props.endTime) { + this._wasUknownUpdate = false; + // if `time` is equal to `endTime`, T represents the next period, + // so we need to decrement T and calculate "one" value regarding yoyo + var isYoyo = props.isYoyo && (T - 1) % 2 === 1; + this._setProgress(isYoyo ? 0 : 1, time, isYoyo); + if (time > this._prevTime) { + this._isRepeatCompleted = false; + } + this._repeatComplete(time, isYoyo); + return this._complete(time, isYoyo); + } + + // reset callback flags + this._isCompleted = false; + this._isRefreshed = false; + // if time is inside the duration area of the tween + if (startPoint + elapsed >= props.startTime) { + this._isInActiveArea = true;this._isRepeatCompleted = false; + this._isRepeatStart = false;this._isStarted = false; + // active zone or larger then end + var elapsed2 = (time - props.startTime) % delayDuration, + proc = elapsed2 / props.duration; + // |=====|=====|=====| >>> + // ^1^2 + var isOnEdge = T > 0 && prevT < T; + // |=====|=====|=====| <<< + // ^2^1 + var isOnReverseEdge = prevT > T; + + // for use in timeline + this._onEdge = 0; + isOnEdge && (this._onEdge = 1); + isOnReverseEdge && (this._onEdge = -1); + + if (this._wasUknownUpdate) { + if (time > this._prevTime) { + this._start(time, isYoyo); + this._repeatStart(time, isYoyo); + this._firstUpdate(time, isYoyo); + } + // if backward direction and + // if ( time < this._prevTime && time !== this._props.startTime ) { + if (time < this._prevTime) { + this._complete(time, isYoyo); + this._repeatComplete(time, isYoyo); + this._firstUpdate(time, isYoyo); + // reset isCompleted immediately + this._isCompleted = false; + } + } + + if (isOnEdge) { + // if not just after delay + // |---=====|---=====|---=====| >>> + // ^1 ^2 + // because we have already handled + // 1 and onRepeatComplete in delay gap + if (this.progress !== 1) { + // prevT + var isThisYoyo = props.isYoyo && (T - 1) % 2 === 1; + this._repeatComplete(time, isThisYoyo); + } + // if on edge but not at very start + // |=====|=====|=====| >>> + // ^! ^here ^here + if (prevT >= 0) { + this._repeatStart(time, isYoyo); + } + } + + if (time > this._prevTime) { + // |=====|=====|=====| >>> + // ^1 ^2 + if (!this._isStarted && this._prevTime <= props.startTime) { + this._start(time, isYoyo); + this._repeatStart(time, isYoyo); + // it was zero anyways + + // restart flags immediately in case if we will + // return to '-' inactive area on the next step + this._isStarted = false; + this._isRepeatStart = false; + } + this._firstUpdate(time, isYoyo); + } + + if (isOnReverseEdge) { + // if on edge but not at very end + // |=====|=====|=====| <<< + // ^here ^here ^not here + if (this.progress !== 0 && this.progress !== 1 && prevT != TCount) { + this._repeatStart(time, isYoyoPrev); + } + // if on very end edge + // |=====|=====|=====| <<< + // ^! ^! ^2 ^1 + // we have handled the case in this._wasUknownUpdate + // block so filter that + if (prevT === TCount && !this._wasUknownUpdate) { + this._complete(time, isYoyo); + this._repeatComplete(time, isYoyo); + this._firstUpdate(time, isYoyo); + // reset isComplete flag call + // cuz we returned to active area + // this._isRepeatCompleted = false; + this._isCompleted = false; + } + this._repeatComplete(time, isYoyo); + } + + if (prevT === 'delay') { + // if just before delay gap + // |---=====|---=====|---=====| <<< + // ^2 ^1 + if (T < TPrevValue) { + this._repeatComplete(time, isYoyo); + } + // if just after delay gap + // |---=====|---=====|---=====| >>> + // ^1 ^2 + if (T === TPrevValue && T > 0) { + this._repeatStart(time, isYoyo); + } + } + + // swap progress and repeatStart based on direction + if (time > this._prevTime) { + // if progress is equal 0 and progress grows + if (proc === 0) { + this._repeatStart(time, isYoyo); + } + if (time !== props.endTime) { + this._setProgress(isYoyo ? 1 - proc : proc, time, isYoyo); + } + } else { + if (time !== props.endTime) { + this._setProgress(isYoyo ? 1 - proc : proc, time, isYoyo); + } + // if progress is equal 0 and progress grows + if (proc === 0) { + this._repeatStart(time, isYoyo); + } + } + + if (time === props.startTime) { + this._start(time, isYoyo); + } + // delay gap - react only once + } else if (this._isInActiveArea) { + // because T will be string of "delay" here, + // let's normalize it be setting to TValue + var t = T === 'delay' ? TValue : T, + isGrows = time > this._prevTime; + // decrement period if forward direction of update + isGrows && t--; + // calculate normalized yoyoZero value + yoyoZero = props.isYoyo && t % 2 === 1 ? 1 : 0; + // if was in active area and previous time was larger + // |---=====|---=====|---=====| <<< + // ^2 ^1 ^2 ^1 ^2 ^1 + if (time < this._prevTime) { + this._setProgress(yoyoZero, time, yoyoZero === 1); + this._repeatStart(time, yoyoZero === 1); + } + // set 1 or 0 regarding direction and yoyo + this._setProgress(isGrows ? 1 - yoyoZero : yoyoZero, time, yoyoZero === 1); + // if time grows + if (time > this._prevTime) { + // if reverse direction and in delay gap, then progress will be 0 + // if so we don't need to call the onRepeatComplete callback + // |---=====|---=====|---=====| <<< + // ^0 ^0 ^0 + // OR we have flipped 0 to 1 regarding yoyo option + if (this.progress !== 0 || yoyoZero === 1) { + // since we repeatComplete for previous period + // invert isYoyo option + // is elapsed is 0 - count as previous period + this._repeatComplete(time, yoyoZero === 1); + } + } + // set flag to indicate inactive area + this._isInActiveArea = false; + } + // we've got the first update now + this._wasUknownUpdate = false; + }; + /* + Method to remove the Tween from the tweener. + @private + @returns {Object} Self. + */ + + + Tween.prototype._removeFromTweener = function _removeFromTweener() { + _tweener2.default.remove(this);return this; + }; + /* + Method to get current period number. + @private + @param {Number} Time to get the period for. + @returns {Number} Current period number. + */ + + + Tween.prototype._getPeriod = function _getPeriod(time) { + var p = this._props, + TTime = p.delay + p.duration, + dTime = p.delay + time - p.startTime, + T = dTime / TTime, + + // if time if equal to endTime we need to set the elapsed + // time to 0 to fix the occasional precision js bug, which + // causes 0 to be something like 1e-12 + elapsed = time < p.endTime ? dTime % TTime : 0; + // If the latest period, round the result, otherwise floor it. + // Basically we always can floor the result, but because of js + // precision issues, sometimes the result is 2.99999998 which + // will result in 2 instead of 3 after the floor operation. + T = time >= p.endTime ? Math.round(T) : Math.floor(T); + // if time is larger then the end time + if (time > p.endTime) { + // set equal to the periods count + T = Math.round((p.endTime - p.startTime + p.delay) / TTime); + // if in delay gap, set _delayT to current + // period number and return "delay" + } else if (elapsed > 0 && elapsed < p.delay) { + this._delayT = T;T = 'delay'; + } + // if the end of period and there is a delay + return T; + }; + /* + Method to set Tween's progress and call onUpdate callback. + @private + @override @ Module + @param {Number} Progress to set. + @param {Number} Current update time. + @param {Boolean} Is yoyo perido. Used in Timeline to pass to Tween. + @returns {Object} Self. + */ + + + Tween.prototype._setProgress = function _setProgress(proc, time, isYoyo) { + var p = this._props, + isYoyoChanged = p.wasYoyo !== isYoyo, + isForward = time > this._prevTime; + + this.progress = proc; + // get the current easing for `forward` direction regarding `yoyo` + if (isForward && !isYoyo || !isForward && isYoyo) { + this.easedProgress = p.easing(proc); + // get the current easing for `backward` direction regarding `yoyo` + } else if (!isForward && !isYoyo || isForward && isYoyo) { + var easing = p.backwardEasing != null ? p.backwardEasing : p.easing; + + this.easedProgress = easing(proc); + } + + if (p.prevEasedProgress !== this.easedProgress || isYoyoChanged) { + if (p.onUpdate != null && typeof p.onUpdate === 'function') { + p.onUpdate.call(p.callbacksContext || this, this.easedProgress, this.progress, isForward, isYoyo); + } + } + p.prevEasedProgress = this.easedProgress; + p.wasYoyo = isYoyo; + return this; + }; + /* + Method to set tween's state to start and call onStart callback. + @method _start + @private + @param {Number} Progress to set. + @param {Boolean} Is yoyo period. + */ + + + Tween.prototype._start = function _start(time, isYoyo) { + if (this._isStarted) { + return; + } + var p = this._props; + if (p.onStart != null && typeof p.onStart === 'function') { + p.onStart.call(p.callbacksContext || this, time > this._prevTime, isYoyo); + } + this._isCompleted = false;this._isStarted = true; + this._isFirstUpdate = false; + }; + /* + Method to call onPlaybackStart callback + @private + */ + + + Tween.prototype._playbackStart = function _playbackStart() { + var p = this._props; + if (p.onPlaybackStart != null && typeof p.onPlaybackStart === 'function') { + p.onPlaybackStart.call(p.callbacksContext || this); + } + }; + /* + Method to call onPlaybackPause callback + @private + */ + + + Tween.prototype._playbackPause = function _playbackPause() { + var p = this._props; + if (p.onPlaybackPause != null && typeof p.onPlaybackPause === 'function') { + p.onPlaybackPause.call(p.callbacksContext || this); + } + }; + /* + Method to call onPlaybackStop callback + @private + */ + + + Tween.prototype._playbackStop = function _playbackStop() { + var p = this._props; + if (p.onPlaybackStop != null && typeof p.onPlaybackStop === 'function') { + p.onPlaybackStop.call(p.callbacksContext || this); + } + }; + /* + Method to call onPlaybackComplete callback + @private + */ + + + Tween.prototype._playbackComplete = function _playbackComplete() { + var p = this._props; + if (p.onPlaybackComplete != null && typeof p.onPlaybackComplete === 'function') { + p.onPlaybackComplete.call(p.callbacksContext || this); + } + }; + /* + Method to set tween's state to complete. + @method _complete + @private + @param {Number} Current time. + @param {Boolean} Is yoyo period. + */ + + + Tween.prototype._complete = function _complete(time, isYoyo) { + if (this._isCompleted) { + return; + } + var p = this._props; + if (p.onComplete != null && typeof p.onComplete === 'function') { + p.onComplete.call(p.callbacksContext || this, time > this._prevTime, isYoyo); + } + + this._isCompleted = true;this._isStarted = false; + this._isFirstUpdate = false; + // reset _prevYoyo for timeline usage + this._prevYoyo = undefined; + }; + + /* + Method to run onFirstUpdate callback. + @method _firstUpdate + @private + @param {Number} Current update time. + @param {Boolean} Is yoyo period. + */ + + + Tween.prototype._firstUpdate = function _firstUpdate(time, isYoyo) { + if (this._isFirstUpdate) { + return; + } + var p = this._props; + if (p.onFirstUpdate != null && typeof p.onFirstUpdate === 'function') { + // onFirstUpdate should have tween pointer + p.onFirstUpdate.tween = this; + p.onFirstUpdate.call(p.callbacksContext || this, time > this._prevTime, isYoyo); + } + this._isFirstUpdate = true; + }; + /* + Method call onRepeatComplete calback and set flags. + @private + @param {Number} Current update time. + @param {Boolean} Is repeat period. + */ + + + Tween.prototype._repeatComplete = function _repeatComplete(time, isYoyo) { + if (this._isRepeatCompleted) { + return; + } + var p = this._props; + if (p.onRepeatComplete != null && typeof p.onRepeatComplete === 'function') { + p.onRepeatComplete.call(p.callbacksContext || this, time > this._prevTime, isYoyo); + } + this._isRepeatCompleted = true; + // this._prevYoyo = null; + }; + + /* + Method call onRepeatStart calback and set flags. + @private + @param {Number} Current update time. + @param {Boolean} Is yoyo period. + */ + + + Tween.prototype._repeatStart = function _repeatStart(time, isYoyo) { + if (this._isRepeatStart) { + return; + } + var p = this._props; + if (p.onRepeatStart != null && typeof p.onRepeatStart === 'function') { + p.onRepeatStart.call(p.callbacksContext || this, time > this._prevTime, isYoyo); + } + this._isRepeatStart = true; + }; + /* + Method to launch onProgress callback. + @method _progress + @private + @param {Number} Progress to set. + */ + + + Tween.prototype._progress = function _progress(progress, time) { + var p = this._props; + if (p.onProgress != null && typeof p.onProgress === 'function') { + p.onProgress.call(p.callbacksContext || this, progress, time > this._prevTime); + } + }; + /* + Method to launch onRefresh callback. + @method _refresh + @private + @param {Boolean} If refresh even before start time. + */ + + + Tween.prototype._refresh = function _refresh(isBefore) { + var p = this._props; + if (p.onRefresh != null) { + var context = p.callbacksContext || this, + progress = isBefore ? 0 : 1; + + p.onRefresh.call(context, isBefore, p.easing(progress), progress); + } + }; + /* + Method which is called when the tween is removed from tweener. + @private + */ + + + Tween.prototype._onTweenerRemove = function _onTweenerRemove() {}; + /* + Method which is called when the tween is removed + from tweener when finished. + @private + */ + + + Tween.prototype._onTweenerFinish = function _onTweenerFinish() { + this._setPlaybackState('stop'); + this._playbackComplete(); + }; + /* + Method to set property[s] on Tween. + @private + @override @ Module + @param {Object, String} Hash object of key/value pairs, or property name. + @param {_} Property's value to set. + */ + + + Tween.prototype._setProp = function _setProp(obj, value) { + _Module.prototype._setProp.call(this, obj, value); + this._calcDimentions(); + }; + /* + Method to set single property. + @private + @override @ Module + @param {String} Name of the property. + @param {Any} Value for the property. + */ + + + Tween.prototype._assignProp = function _assignProp(key, value) { + // fallback to defaults + if (value == null) { + value = this._defaults[key]; + } + // parse easing + if (key === 'easing') { + value = _easing2.default.parseEasing(value); + value._parent = this; + } + // handle control callbacks overrides + var control = this._callbackOverrides[key], + isntOverriden = !value || !value.isMojsCallbackOverride; + if (control && isntOverriden) { + value = this._overrideCallback(value, control); + } + // call super on Module + _Module.prototype._assignProp.call(this, key, value); + }; + /* + Method to override callback for controll pupropes. + @private + @param {String} Callback name. + @parma {Function} Method to call + */ + + + Tween.prototype._overrideCallback = function _overrideCallback(callback, fun) { + var isCallback = callback && typeof callback === 'function', + override = function callbackOverride() { + // call overriden callback if it exists + isCallback && callback.apply(this, arguments); + // call the passed cleanup function + fun.apply(this, arguments); + }; + // add overridden flag + override.isMojsCallbackOverride = true; + return override; + }; + + // _visualizeProgress(time) { + // var str = '|', + // procStr = ' ', + // p = this._props, + // proc = p.startTime - p.delay; + + // while ( proc < p.endTime ) { + // if (p.delay > 0 ) { + // var newProc = proc + p.delay; + // if ( time > proc && time < newProc ) { + // procStr += ' ^ '; + // } else { + // procStr += ' '; + // } + // proc = newProc; + // str += '---'; + // } + // var newProc = proc + p.duration; + // if ( time > proc && time < newProc ) { + // procStr += ' ^ '; + // } else if (time === proc) { + // procStr += '^ '; + // } else if (time === newProc) { + // procStr += ' ^ '; + // } else { + // procStr += ' '; + // } + // proc = newProc; + // str += '=====|'; + // } + + // console.log(str); + // console.log(procStr); + // } + + + return Tween; + }(_module2.default); + + exports.default = Tween; + +/***/ }), +/* 102 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + __webpack_require__(103); + + __webpack_require__(104); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var Tweener = function () { + function Tweener() { + (0, _classCallCheck3.default)(this, Tweener); + + this._vars(); + this._listenVisibilityChange(); + return this; + } + + Tweener.prototype._vars = function _vars() { + this.tweens = []; + this._savedTweens = []; + this._loop = this._loop.bind(this); + this._onVisibilityChange = this._onVisibilityChange.bind(this); + }; + /* + Main animation loop. Should have only one concurrent loop. + @private + @returns this + */ + + + Tweener.prototype._loop = function _loop() { + if (!this._isRunning) { + return false; + } + this._update(window.performance.now()); + if (!this.tweens.length) { + return this._isRunning = false; + } + requestAnimationFrame(this._loop); + return this; + }; + /* + Method to start animation loop. + @private + */ + + + Tweener.prototype._startLoop = function _startLoop() { + if (this._isRunning) { + return; + };this._isRunning = true; + requestAnimationFrame(this._loop); + }; + /* + Method to stop animation loop. + @private + */ + + + Tweener.prototype._stopLoop = function _stopLoop() { + this._isRunning = false; + }; + /* + Method to update every tween/timeline on animation frame. + @private + */ + + + Tweener.prototype._update = function _update(time) { + var i = this.tweens.length; + while (i--) { + // cache the current tween + var tween = this.tweens[i]; + if (tween && tween._update(time) === true) { + this.remove(tween); + tween._onTweenerFinish(); + tween._prevTime = undefined; + } + } + }; + /* + Method to add a Tween/Timeline to loop pool. + @param {Object} Tween/Timeline to add. + */ + + + Tweener.prototype.add = function add(tween) { + // return if tween is already running + if (tween._isRunning) { + return; + } + tween._isRunning = true; + this.tweens.push(tween); + this._startLoop(); + }; + /* + Method stop updating all the child tweens/timelines. + @private + */ + + + Tweener.prototype.removeAll = function removeAll() { + this.tweens.length = 0; + }; + /* + Method to remove specific tween/timeline form updating. + @private + */ + + + Tweener.prototype.remove = function remove(tween) { + var index = typeof tween === 'number' ? tween : this.tweens.indexOf(tween); + + if (index !== -1) { + tween = this.tweens[index]; + if (tween) { + tween._isRunning = false; + this.tweens.splice(index, 1); + tween._onTweenerRemove(); + } + } + }; + + /* + Method to initialize event listeners to visibility change events. + @private + */ + + + Tweener.prototype._listenVisibilityChange = function _listenVisibilityChange() { + if (typeof document.hidden !== "undefined") { + this._visibilityHidden = "hidden"; + this._visibilityChange = "visibilitychange"; + } else if (typeof document.mozHidden !== "undefined") { + this._visibilityHidden = "mozHidden"; + this._visibilityChange = "mozvisibilitychange"; + } else if (typeof document.msHidden !== "undefined") { + this._visibilityHidden = "msHidden"; + this._visibilityChange = "msvisibilitychange"; + } else if (typeof document.webkitHidden !== "undefined") { + this._visibilityHidden = "webkitHidden"; + this._visibilityChange = "webkitvisibilitychange"; + } + + document.addEventListener(this._visibilityChange, this._onVisibilityChange, false); + }; + /* + Method that will fire on visibility change. + */ + + + Tweener.prototype._onVisibilityChange = function _onVisibilityChange() { + if (document[this._visibilityHidden]) { + this._savePlayingTweens(); + } else { + this._restorePlayingTweens(); + } + }; + /* + Method to save all playing tweens. + @private + */ + + + Tweener.prototype._savePlayingTweens = function _savePlayingTweens() { + this._savedTweens = this.tweens.slice(0); + for (var i = 0; i < this._savedTweens.length; i++) { + this._savedTweens[i].pause(); + } + }; + /* + Method to restore all playing tweens. + @private + */ + + + Tweener.prototype._restorePlayingTweens = function _restorePlayingTweens() { + for (var i = 0; i < this._savedTweens.length; i++) { + this._savedTweens[i].resume(); + } + }; + + return Tweener; + }(); + + var t = new Tweener(); + exports.default = t; + +/***/ }), +/* 103 */ +/***/ (function(module, exports) { + + + /* istanbul ignore next */ + (function() { + 'use strict'; + var cancel, i, isOldBrowser, lastTime, vendors, vp, w; + vendors = ['webkit', 'moz']; + i = 0; + w = window; + while (i < vendors.length && !w.requestAnimationFrame) { + vp = vendors[i]; + w.requestAnimationFrame = w[vp + 'RequestAnimationFrame']; + cancel = w[vp + 'CancelAnimationFrame']; + w.cancelAnimationFrame = cancel || w[vp + 'CancelRequestAnimationFrame']; + ++i; + } + isOldBrowser = !w.requestAnimationFrame || !w.cancelAnimationFrame; + if (/iP(ad|hone|od).*OS 6/.test(w.navigator.userAgent) || isOldBrowser) { + lastTime = 0; + w.requestAnimationFrame = function(callback) { + var nextTime, now; + now = Date.now(); + nextTime = Math.max(lastTime + 16, now); + return setTimeout((function() { + callback(lastTime = nextTime); + }), nextTime - now); + }; + w.cancelAnimationFrame = clearTimeout; + } + })(); + + +/***/ }), +/* 104 */ +/***/ (function(module, exports) { + + + /* istanbul ignore next */ + (function(root) { + var offset, ref, ref1; + if (root.performance == null) { + root.performance = {}; + } + Date.now = Date.now || function() { + return (new Date).getTime(); + }; + if (root.performance.now == null) { + offset = ((ref = root.performance) != null ? (ref1 = ref.timing) != null ? ref1.navigationStart : void 0 : void 0) ? performance.timing.navigationStart : Date.now(); + return root.performance.now = function() { + return Date.now() - offset; + }; + } + })(window); + + +/***/ }), +/* 105 */ +/***/ (function(module, exports, __webpack_require__) { + + var Easing, PI, PathEasing, approximate, bezier, easing, h, mix, sin; + + bezier = __webpack_require__(106); + + PathEasing = __webpack_require__(107); + + mix = __webpack_require__(108); + + h = __webpack_require__(71); + + approximate = __webpack_require__(109)["default"] || __webpack_require__(109); + + sin = Math.sin; + + PI = Math.PI; + + Easing = (function() { + function Easing() {} + + Easing.prototype.bezier = bezier; + + Easing.prototype.PathEasing = PathEasing; + + Easing.prototype.path = (new PathEasing('creator')).create; + + Easing.prototype.approximate = approximate; + + Easing.prototype.inverse = function(p) { + return 1 - p; + }; + + Easing.prototype.linear = { + none: function(k) { + return k; + } + }; + + Easing.prototype.ease = { + "in": bezier.apply(Easing, [0.42, 0, 1, 1]), + out: bezier.apply(Easing, [0, 0, 0.58, 1]), + inout: bezier.apply(Easing, [0.42, 0, 0.58, 1]) + }; + + Easing.prototype.sin = { + "in": function(k) { + return 1 - Math.cos(k * PI / 2); + }, + out: function(k) { + return sin(k * PI / 2); + }, + inout: function(k) { + return 0.5 * (1 - Math.cos(PI * k)); + } + }; + + Easing.prototype.quad = { + "in": function(k) { + return k * k; + }, + out: function(k) { + return k * (2 - k); + }, + inout: function(k) { + if ((k *= 2) < 1) { + return 0.5 * k * k; + } + return -0.5 * (--k * (k - 2) - 1); + } + }; + + Easing.prototype.cubic = { + "in": function(k) { + return k * k * k; + }, + out: function(k) { + return --k * k * k + 1; + }, + inout: function(k) { + if ((k *= 2) < 1) { + return 0.5 * k * k * k; + } + return 0.5 * ((k -= 2) * k * k + 2); + } + }; + + Easing.prototype.quart = { + "in": function(k) { + return k * k * k * k; + }, + out: function(k) { + return 1 - (--k * k * k * k); + }, + inout: function(k) { + if ((k *= 2) < 1) { + return 0.5 * k * k * k * k; + } + return -0.5 * ((k -= 2) * k * k * k - 2); + } + }; + + Easing.prototype.quint = { + "in": function(k) { + return k * k * k * k * k; + }, + out: function(k) { + return --k * k * k * k * k + 1; + }, + inout: function(k) { + if ((k *= 2) < 1) { + return 0.5 * k * k * k * k * k; + } + return 0.5 * ((k -= 2) * k * k * k * k + 2); + } + }; + + Easing.prototype.expo = { + "in": function(k) { + if (k === 0) { + return 0; + } else { + return Math.pow(1024, k - 1); + } + }, + out: function(k) { + if (k === 1) { + return 1; + } else { + return 1 - Math.pow(2, -10 * k); + } + }, + inout: function(k) { + if (k === 0) { + return 0; + } + if (k === 1) { + return 1; + } + if ((k *= 2) < 1) { + return 0.5 * Math.pow(1024, k - 1); + } + return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2); + } + }; + + Easing.prototype.circ = { + "in": function(k) { + return 1 - Math.sqrt(1 - k * k); + }, + out: function(k) { + return Math.sqrt(1 - (--k * k)); + }, + inout: function(k) { + if ((k *= 2) < 1) { + return -0.5 * (Math.sqrt(1 - k * k) - 1); + } + return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1); + } + }; + + Easing.prototype.back = { + "in": function(k) { + var s; + s = 1.70158; + return k * k * ((s + 1) * k - s); + }, + out: function(k) { + var s; + s = 1.70158; + return --k * k * ((s + 1) * k + s) + 1; + }, + inout: function(k) { + var s; + s = 1.70158 * 1.525; + if ((k *= 2) < 1) { + return 0.5 * (k * k * ((s + 1) * k - s)); + } + return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2); + } + }; + + Easing.prototype.elastic = { + "in": function(k) { + var a, p, s; + s = void 0; + p = 0.4; + if (k === 0) { + return 0; + } + if (k === 1) { + return 1; + } + a = 1; + s = p / 4; + return -(a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p)); + }, + out: function(k) { + var a, p, s; + s = void 0; + p = 0.4; + if (k === 0) { + return 0; + } + if (k === 1) { + return 1; + } + a = 1; + s = p / 4; + return a * Math.pow(2, -10 * k) * Math.sin((k - s) * (2 * Math.PI) / p) + 1; + }, + inout: function(k) { + var a, p, s; + s = void 0; + p = 0.4; + if (k === 0) { + return 0; + } + if (k === 1) { + return 1; + } + a = 1; + s = p / 4; + if ((k *= 2) < 1) { + return -0.5 * (a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p)); + } + return a * Math.pow(2, -10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1; + } + }; + + Easing.prototype.bounce = { + "in": function(k) { + return 1 - easing.bounce.out(1 - k); + }, + out: function(k) { + if (k < (1 / 2.75)) { + return 7.5625 * k * k; + } else if (k < (2 / 2.75)) { + return 7.5625 * (k -= 1.5 / 2.75) * k + 0.75; + } else if (k < (2.5 / 2.75)) { + return 7.5625 * (k -= 2.25 / 2.75) * k + 0.9375; + } else { + return 7.5625 * (k -= 2.625 / 2.75) * k + 0.984375; + } + }, + inout: function(k) { + if (k < 0.5) { + return easing.bounce["in"](k * 2) * 0.5; + } + return easing.bounce.out(k * 2 - 1) * 0.5 + 0.5; + } + }; + + Easing.prototype.parseEasing = function(easing) { + var easingParent, type; + if (easing == null) { + easing = 'linear.none'; + } + type = typeof easing; + if (type === 'string') { + if (easing.charAt(0).toLowerCase() === 'm') { + return this.path(easing); + } else { + easing = this._splitEasing(easing); + easingParent = this[easing[0]]; + if (!easingParent) { + h.error("Easing with name \"" + easing[0] + "\" was not found, fallback to \"linear.none\" instead"); + return this['linear']['none']; + } + return easingParent[easing[1]]; + } + } + if (h.isArray(easing)) { + return this.bezier.apply(this, easing); + } + if ('function') { + return easing; + } + }; + + Easing.prototype._splitEasing = function(string) { + var firstPart, secondPart, split; + if (typeof string === 'function') { + return string; + } + if (typeof string === 'string' && string.length) { + split = string.split('.'); + firstPart = split[0].toLowerCase() || 'linear'; + secondPart = split[1].toLowerCase() || 'none'; + return [firstPart, secondPart]; + } else { + return ['linear', 'none']; + } + }; + + return Easing; + + })(); + + easing = new Easing; + + easing.mix = mix(easing); + + module.exports = easing; + + +/***/ }), +/* 106 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {var BezierEasing, bezierEasing, h, + indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + + h = __webpack_require__(71); + + + /** + * Copyright (c) 2014 Gaëtan Renaudeau http://goo.gl/El3k7u + * Adopted from https://github.com/gre/bezier-easing + */ + + BezierEasing = (function() { + function BezierEasing(o) { + this.vars(); + return this.generate; + } + + BezierEasing.prototype.vars = function() { + return this.generate = h.bind(this.generate, this); + }; + + BezierEasing.prototype.generate = function(mX1, mY1, mX2, mY2) { + var A, B, C, NEWTON_ITERATIONS, NEWTON_MIN_SLOPE, SUBDIVISION_MAX_ITERATIONS, SUBDIVISION_PRECISION, _precomputed, arg, binarySubdivide, calcBezier, calcSampleValues, f, float32ArraySupported, getSlope, getTForX, i, j, kSampleStepSize, kSplineTableSize, mSampleValues, newtonRaphsonIterate, precompute, str; + if (arguments.length < 4) { + return this.error('Bezier function expects 4 arguments'); + } + for (i = j = 0; j < 4; i = ++j) { + arg = arguments[i]; + if (typeof arg !== "number" || isNaN(arg) || !isFinite(arg)) { + return this.error('Bezier function expects 4 arguments'); + } + } + if (mX1 < 0 || mX1 > 1 || mX2 < 0 || mX2 > 1) { + return this.error('Bezier x values should be > 0 and < 1'); + } + NEWTON_ITERATIONS = 4; + NEWTON_MIN_SLOPE = 0.001; + SUBDIVISION_PRECISION = 0.0000001; + SUBDIVISION_MAX_ITERATIONS = 10; + kSplineTableSize = 11; + kSampleStepSize = 1.0 / (kSplineTableSize - 1.0); + float32ArraySupported = indexOf.call(global, 'Float32Array') >= 0; + A = function(aA1, aA2) { + return 1.0 - 3.0 * aA2 + 3.0 * aA1; + }; + B = function(aA1, aA2) { + return 3.0 * aA2 - 6.0 * aA1; + }; + C = function(aA1) { + return 3.0 * aA1; + }; + calcBezier = function(aT, aA1, aA2) { + return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; + }; + getSlope = function(aT, aA1, aA2) { + return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); + }; + newtonRaphsonIterate = function(aX, aGuessT) { + var currentSlope, currentX; + i = 0; + while (i < NEWTON_ITERATIONS) { + currentSlope = getSlope(aGuessT, mX1, mX2); + + /* istanbul ignore if */ + if (currentSlope === 0.0) { + return aGuessT; + } + currentX = calcBezier(aGuessT, mX1, mX2) - aX; + aGuessT -= currentX / currentSlope; + ++i; + } + return aGuessT; + }; + calcSampleValues = function() { + i = 0; + while (i < kSplineTableSize) { + mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2); + ++i; + } + }; + + /* istanbul ignore next */ + binarySubdivide = function(aX, aA, aB) { + var currentT, currentX, isBig; + currentX = void 0; + currentT = void 0; + i = 0; + while (true) { + currentT = aA + (aB - aA) / 2.0; + currentX = calcBezier(currentT, mX1, mX2) - aX; + if (currentX > 0.0) { + aB = currentT; + } else { + aA = currentT; + } + isBig = Math.abs(currentX) > SUBDIVISION_PRECISION; + if (!(isBig && ++i < SUBDIVISION_MAX_ITERATIONS)) { + break; + } + } + return currentT; + }; + getTForX = function(aX) { + var currentSample, delta, dist, guessForT, initialSlope, intervalStart, lastSample; + intervalStart = 0.0; + currentSample = 1; + lastSample = kSplineTableSize - 1; + while (currentSample !== lastSample && mSampleValues[currentSample] <= aX) { + intervalStart += kSampleStepSize; + ++currentSample; + } + --currentSample; + delta = mSampleValues[currentSample + 1] - mSampleValues[currentSample]; + dist = (aX - mSampleValues[currentSample]) / delta; + guessForT = intervalStart + dist * kSampleStepSize; + initialSlope = getSlope(guessForT, mX1, mX2); + if (initialSlope >= NEWTON_MIN_SLOPE) { + return newtonRaphsonIterate(aX, guessForT); + } else { + + /* istanbul ignore next */ + if (initialSlope === 0.0) { + return guessForT; + } else { + return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize); + } + } + }; + precompute = function() { + var _precomputed; + _precomputed = true; + if (mX1 !== mY1 || mX2 !== mY2) { + return calcSampleValues(); + } + }; + mSampleValues = !float32ArraySupported ? new Array(kSplineTableSize) : new Float32Array(kSplineTableSize); + _precomputed = false; + f = function(aX) { + if (!_precomputed) { + precompute(); + } + if (mX1 === mY1 && mX2 === mY2) { + return aX; + } + if (aX === 0) { + return 0; + } + if (aX === 1) { + return 1; + } + return calcBezier(getTForX(aX), mY1, mY2); + }; + str = "bezier(" + [mX1, mY1, mX2, mY2] + ")"; + f.toStr = function() { + return str; + }; + return f; + }; + + BezierEasing.prototype.error = function(msg) { + return h.error(msg); + }; + + return BezierEasing; + + })(); + + bezierEasing = new BezierEasing; + + module.exports = bezierEasing; + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }), +/* 107 */ +/***/ (function(module, exports, __webpack_require__) { + + var PathEasing, h; + + h = __webpack_require__(71); + + PathEasing = (function() { + PathEasing.prototype._vars = function() { + this._precompute = h.clamp(this.o.precompute || 1450, 100, 10000); + this._step = 1 / this._precompute; + this._rect = this.o.rect || 100; + this._approximateMax = this.o.approximateMax || 5; + this._eps = this.o.eps || 0.001; + return this._boundsPrevProgress = -1; + }; + + function PathEasing(path, o1) { + this.o = o1 != null ? o1 : {}; + if (path === 'creator') { + return; + } + this.path = h.parsePath(path); + if (this.path == null) { + return h.error('Error while parsing the path'); + } + this._vars(); + this.path.setAttribute('d', this._normalizePath(this.path.getAttribute('d'))); + this.pathLength = this.path.getTotalLength(); + this.sample = h.bind(this.sample, this); + this._hardSample = h.bind(this._hardSample, this); + this._preSample(); + this; + } + + PathEasing.prototype._preSample = function() { + var i, j, length, point, progress, ref, results; + this._samples = []; + results = []; + for (i = j = 0, ref = this._precompute; 0 <= ref ? j <= ref : j >= ref; i = 0 <= ref ? ++j : --j) { + progress = i * this._step; + length = this.pathLength * progress; + point = this.path.getPointAtLength(length); + results.push(this._samples[i] = { + point: point, + length: length, + progress: progress + }); + } + return results; + }; + + PathEasing.prototype._findBounds = function(array, p) { + var buffer, direction, end, i, j, len, loopEnd, pointP, pointX, ref, ref1, start, value; + if (p === this._boundsPrevProgress) { + return this._prevBounds; + } + if (this._boundsStartIndex == null) { + this._boundsStartIndex = 0; + } + len = array.length; + if (this._boundsPrevProgress > p) { + loopEnd = 0; + direction = 'reverse'; + } else { + loopEnd = len; + direction = 'forward'; + } + if (direction === 'forward') { + start = array[0]; + end = array[array.length - 1]; + } else { + start = array[array.length - 1]; + end = array[0]; + } + for (i = j = ref = this._boundsStartIndex, ref1 = loopEnd; ref <= ref1 ? j < ref1 : j > ref1; i = ref <= ref1 ? ++j : --j) { + value = array[i]; + pointX = value.point.x / this._rect; + pointP = p; + if (direction === 'reverse') { + buffer = pointX; + pointX = pointP; + pointP = buffer; + } + if (pointX < pointP) { + start = value; + this._boundsStartIndex = i; + } else { + end = value; + break; + } + } + this._boundsPrevProgress = p; + return this._prevBounds = { + start: start, + end: end + }; + }; + + PathEasing.prototype.sample = function(p) { + var bounds, res; + p = h.clamp(p, 0, 1); + bounds = this._findBounds(this._samples, p); + res = this._checkIfBoundsCloseEnough(p, bounds); + if (res != null) { + return res; + } + return this._findApproximate(p, bounds.start, bounds.end); + }; + + PathEasing.prototype._checkIfBoundsCloseEnough = function(p, bounds) { + var point, y; + point = void 0; + y = this._checkIfPointCloseEnough(p, bounds.start.point); + if (y != null) { + return y; + } + return this._checkIfPointCloseEnough(p, bounds.end.point); + }; + + PathEasing.prototype._checkIfPointCloseEnough = function(p, point) { + if (h.closeEnough(p, point.x / this._rect, this._eps)) { + return this._resolveY(point); + } + }; + + PathEasing.prototype._approximate = function(start, end, p) { + var deltaP, percentP; + deltaP = end.point.x - start.point.x; + percentP = (p - (start.point.x / this._rect)) / (deltaP / this._rect); + return start.length + percentP * (end.length - start.length); + }; + + PathEasing.prototype._findApproximate = function(p, start, end, approximateMax) { + var approximation, args, newPoint, point, x; + if (approximateMax == null) { + approximateMax = this._approximateMax; + } + approximation = this._approximate(start, end, p); + point = this.path.getPointAtLength(approximation); + x = point.x / this._rect; + if (h.closeEnough(p, x, this._eps)) { + return this._resolveY(point); + } else { + if (--approximateMax < 1) { + return this._resolveY(point); + } + newPoint = { + point: point, + length: approximation + }; + args = p < x ? [p, start, newPoint, approximateMax] : [p, newPoint, end, approximateMax]; + return this._findApproximate.apply(this, args); + } + }; + + PathEasing.prototype._resolveY = function(point) { + return 1 - (point.y / this._rect); + }; + + PathEasing.prototype._normalizePath = function(path) { + var commands, endIndex, normalizedPath, points, startIndex, svgCommandsRegexp; + svgCommandsRegexp = /[M|L|H|V|C|S|Q|T|A]/gim; + points = path.split(svgCommandsRegexp); + points.shift(); + commands = path.match(svgCommandsRegexp); + startIndex = 0; + points[startIndex] = this._normalizeSegment(points[startIndex]); + endIndex = points.length - 1; + points[endIndex] = this._normalizeSegment(points[endIndex], this._rect || 100); + return normalizedPath = this._joinNormalizedPath(commands, points); + }; + + PathEasing.prototype._joinNormalizedPath = function(commands, points) { + var command, i, j, len1, normalizedPath, space; + normalizedPath = ''; + for (i = j = 0, len1 = commands.length; j < len1; i = ++j) { + command = commands[i]; + space = i === 0 ? '' : ' '; + normalizedPath += "" + space + command + (points[i].trim()); + } + return normalizedPath; + }; + + PathEasing.prototype._normalizeSegment = function(segment, value) { + var i, j, lastPoint, len1, nRgx, pairs, parsedX, point, space, x; + if (value == null) { + value = 0; + } + segment = segment.trim(); + nRgx = /(-|\+)?((\d+(\.(\d|\e(-|\+)?)+)?)|(\.?(\d|\e|(\-|\+))+))/gim; + pairs = this._getSegmentPairs(segment.match(nRgx)); + lastPoint = pairs[pairs.length - 1]; + x = lastPoint[0]; + parsedX = Number(x); + if (parsedX !== value) { + segment = ''; + lastPoint[0] = value; + for (i = j = 0, len1 = pairs.length; j < len1; i = ++j) { + point = pairs[i]; + space = i === 0 ? '' : ' '; + segment += "" + space + point[0] + "," + point[1]; + } + } + return segment; + }; + + PathEasing.prototype._getSegmentPairs = function(array) { + var i, j, len1, newArray, pair, value; + if (array.length % 2 !== 0) { + h.error('Failed to parse the path - segment pairs are not even.', array); + } + newArray = []; + for (i = j = 0, len1 = array.length; j < len1; i = j += 2) { + value = array[i]; + pair = [array[i], array[i + 1]]; + newArray.push(pair); + } + return newArray; + }; + + PathEasing.prototype.create = function(path, o) { + var handler; + handler = new PathEasing(path, o); + handler.sample.path = handler.path; + return handler.sample; + }; + + return PathEasing; + + })(); + + module.exports = PathEasing; + + +/***/ }), +/* 108 */ +/***/ (function(module, exports) { + + var create, easing, getNearest, mix, parseIfEasing, sort, + slice = [].slice; + + easing = null; + + parseIfEasing = function(item) { + if (typeof item.value === 'number') { + return item.value; + } else { + return easing.parseEasing(item.value); + } + }; + + sort = function(a, b) { + var returnValue; + a.value = parseIfEasing(a); + b.value = parseIfEasing(b); + returnValue = 0; + a.to < b.to && (returnValue = -1); + a.to > b.to && (returnValue = 1); + return returnValue; + }; + + getNearest = function(array, progress) { + var i, index, j, len, value; + index = 0; + for (i = j = 0, len = array.length; j < len; i = ++j) { + value = array[i]; + index = i; + if (value.to > progress) { + break; + } + } + return index; + }; + + mix = function() { + var args; + args = 1 <= arguments.length ? slice.call(arguments, 0) : []; + if (args.length > 1) { + args = args.sort(sort); + } else { + args[0].value = parseIfEasing(args[0]); + } + return function(progress) { + var index, value; + index = getNearest(args, progress); + if (index !== -1) { + value = args[index].value; + if (index === args.length - 1 && progress > args[index].to) { + return 1; + } + if (typeof value === 'function') { + return value(progress); + } else { + return value; + } + } + }; + }; + + create = function(e) { + easing = e; + return mix; + }; + + module.exports = create; + + +/***/ }), +/* 109 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _typeof2 = __webpack_require__(3); + + var _typeof3 = _interopRequireDefault(_typeof2); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + /* + Method to bootstrap approximation function. + @private + @param {Object} Samples Object. + @returns {Function} Approximate function. + */ + var _proximate = function _proximate(samples) { + var n = samples.base, + samplesAmount = Math.pow(10, n), + samplesStep = 1 / samplesAmount; + + function RoundNumber(input, numberDecimals) { + numberDecimals = +numberDecimals || 0; // +var magic! + + var multiplyer = Math.pow(10.0, numberDecimals); + + return Math.round(input * multiplyer) / multiplyer; + } + + var cached = function cached(p) { + var newKey = RoundNumber(p, n), + sample = samples[newKey.toString()]; + + if (Math.abs(p - newKey) < samplesStep) { + return sample; + } + + if (p > newKey) { + var nextIndex = newKey + samplesStep; + var nextValue = samples[nextIndex]; + } else { + var nextIndex = newKey - samplesStep; + var nextValue = samples[nextIndex]; + } + + var dLength = nextIndex - newKey; + var dValue = nextValue - sample; + if (dValue < samplesStep) { + return sample; + } + + var progressScale = (p - newKey) / dLength; + var coef = nextValue > sample ? -1 : 1; + var scaledDifference = coef * progressScale * dValue; + + return sample + scaledDifference; + }; + + cached.getSamples = function () { + return samples; + }; + + return cached; + }; + /* + Method to take samples of the function and call the _proximate + method with the dunction and samples. Or if samples passed - pipe + them to the _proximate method without sampling. + @private + @param {Function} Function to sample. + @param {Number, Object, String} Precision or precomputed samples. + */ + var _sample = function _sample(fn) { + var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 4; + + + var nType = typeof n === 'undefined' ? 'undefined' : (0, _typeof3.default)(n); + + var samples = {}; + if (nType === 'number') { + var p = 0, + samplesCount = Math.pow(10, n), + step = 1 / samplesCount; + + samples[0] = fn(0); + for (var i = 0; i < samplesCount - 1; i++) { + p += step; + + var index = parseFloat(p.toFixed(n)); + samples[index] = fn(p); + } + samples[1] = fn(1); + + samples.base = n; + } else if (nType === 'object') { + samples = n; + } else if (nType === 'string') { + samples = JSON.parse(n); + } + + return Approximate._sample._proximate(samples); + }; + + var Approximate = { _sample: _sample, _proximate: _proximate }; + Approximate._sample._proximate = Approximate._proximate; + + exports.default = Approximate._sample; + +/***/ }), +/* 110 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _getIterator2 = __webpack_require__(111); + + var _getIterator3 = _interopRequireDefault(_getIterator2); + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + var _tweener = __webpack_require__(102); + + var _tweener2 = _interopRequireDefault(_tweener); + + var _tween = __webpack_require__(101); + + var _tween2 = _interopRequireDefault(_tween); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var Timeline = function (_Tween) { + (0, _inherits3.default)(Timeline, _Tween); + + /* + API method to add child tweens/timelines. + @public + @param {Object, Array} Tween/Timeline or an array of such. + @returns {Object} Self. + */ + Timeline.prototype.add = function add() { + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + this._pushTimelineArray(args); + this._calcDimentions(); + return this; + }; + /* + API method to append the Tween/Timeline to the end of the + timeline. Each argument is treated as a new append. + Array of tweens is treated as a parallel sequence. + @public + @param {Object, Array} Tween/Timeline to append or array of such. + @returns {Object} Self. + */ + + + Timeline.prototype.append = function append() { + for (var _len2 = arguments.length, timeline = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + timeline[_key2] = arguments[_key2]; + } + + for (var _iterator = timeline, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3.default)(_iterator);;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + var tm = _ref; + + if (_h2.default.isArray(tm)) { + this._appendTimelineArray(tm); + } else { + this._appendTimeline(tm, this._timelines.length); + } + this._calcDimentions(); + } + return this; + }; + /* + API method to stop the Tween. + @public + @param {Number} Progress [0..1] to set when stopped. + @returns {Object} Self. + */ + + + Timeline.prototype.stop = function stop(progress) { + _Tween.prototype.stop.call(this, progress); + this._stopChildren(progress); + return this; + }; + /* + Method to reset tween's state and properties. + @public + @overrides @ Tween + @returns this. + */ + + + Timeline.prototype.reset = function reset() { + _Tween.prototype.reset.call(this); + this._resetChildren(); + return this; + }; + /* + Method to call `reset` method on all children. + @private + */ + + + Timeline.prototype._resetChildren = function _resetChildren() { + for (var i = 0; i < this._timelines.length; i++) { + this._timelines[i].reset(); + } + }; + /* + Method to call `stop` method on all children. + @private + @param {Number} Progress [0..1] to set when stopped. + */ + + + Timeline.prototype._stopChildren = function _stopChildren(progress) { + for (var i = this._timelines.length - 1; i >= 0; i--) { + this._timelines[i].stop(progress); + } + }; + /* + Method to set tween's state to complete. + @private + @overrides @ Tween + @param {Number} Current time. + @param {Boolean} Is yoyo period. + */ + // _complete ( time, isYoyo ) { + // // this._updateChildren( 1, time, isYoyo ); + // // this._setProgress( 1, time, isYoyo ); + // super._complete( time, isYoyo ); + // // this._resetChildren(); + // } + + // ^ PUBLIC METHOD(S) ^ + // v PRIVATE METHOD(S) v + + /* + Method to append Tween/Timeline array or mix of such. + @private + @param {Array} Array of Tweens/Timelines. + */ + + + Timeline.prototype._appendTimelineArray = function _appendTimelineArray(timelineArray) { + var i = timelineArray.length, + time = this._props.repeatTime - this._props.delay, + len = this._timelines.length; + + while (i--) { + this._appendTimeline(timelineArray[i], len, time); + } + }; + /* + Method to append a single timeline to the Timeline. + @private + @param {Object} Tween/Timline to append. + @param {Number} Index of the append. + @param {Number} Shift time. + */ + + + Timeline.prototype._appendTimeline = function _appendTimeline(timeline, index, time) { + // if timeline is a module with timeline property then extract it + if (timeline.timeline instanceof Timeline) { + timeline = timeline.timeline; + } + if (timeline.tween instanceof _tween2.default) { + timeline = timeline.tween; + } + + var shift = time != null ? time : this._props.duration; + shift += timeline._props.shiftTime || 0; + timeline.index = index;this._pushTimeline(timeline, shift); + }; + /* + PrivateMethod to push Tween/Timeline array. + @private + @param {Array} Array of Tweens/Timelines. + */ + + + Timeline.prototype._pushTimelineArray = function _pushTimelineArray(array) { + for (var i = 0; i < array.length; i++) { + var tm = array[i]; + // recursive push to handle arrays of arrays + if (_h2.default.isArray(tm)) { + this._pushTimelineArray(tm); + } else { + this._pushTimeline(tm); + } + }; + }; + /* + Method to push a single Tween/Timeline. + @private + @param {Object} Tween or Timeline to push. + @param {Number} Number of milliseconds to shift the start time + of the Tween/Timeline. + */ + + + Timeline.prototype._pushTimeline = function _pushTimeline(timeline, shift) { + // if timeline is a module with timeline property then extract it + if (timeline.timeline instanceof Timeline) { + timeline = timeline.timeline; + } + if (timeline.tween instanceof _tween2.default) { + timeline = timeline.tween; + } + // add self delay to the timeline + shift != null && timeline._setProp({ 'shiftTime': shift }); + this._timelines.push(timeline); + this._recalcDuration(timeline); + }; + /* + Method set progress on self and child Tweens/Timelines. + @private + @param {Number} Progress to set. + @param {Number} Current update time. + */ + + + Timeline.prototype._setProgress = function _setProgress(p, time, isYoyo) { + // we need to pass self previous time to children + // to prevent initial _wasUnknownUpdate nested waterfall + // if not yoyo option set, pass the previous time + // otherwise, pass previous or next time regarding yoyo period. + + // COVER CURRENT SWAPPED ORDER + this._updateChildren(p, time, isYoyo); + + _tween2.default.prototype._setProgress.call(this, p, time); + }; + + Timeline.prototype._updateChildren = function _updateChildren(p, time, isYoyo) { + var coef = time > this._prevTime ? -1 : 1; + if (this._props.isYoyo && isYoyo) { + coef *= -1; + } + var timeToTimelines = this._props.startTime + p * this._props.duration, + prevTimeToTimelines = timeToTimelines + coef, + len = this._timelines.length; + + for (var i = 0; i < len; i++) { + // specify the children's array update loop direction + // if time > prevTime go from 0->length else from length->0 + // var j = ( time > this._prevTime ) ? i : (len-1) - i ; + var j = timeToTimelines > prevTimeToTimelines ? i : len - 1 - i; + this._timelines[j]._update(timeToTimelines, prevTimeToTimelines, this._prevYoyo, this._onEdge); + } + this._prevYoyo = isYoyo; + }; + /* + Method calculate self duration based on timeline's duration. + @private + @param {Object} Tween or Timeline to calculate. + */ + + + Timeline.prototype._recalcDuration = function _recalcDuration(timeline) { + var p = timeline._props, + timelineTime = p.repeatTime / p.speed + (p.shiftTime || 0) + timeline._negativeShift; + + this._props.duration = Math.max(timelineTime, this._props.duration); + }; + /* + Method calculate self duration from skretch. + @private + */ + + + Timeline.prototype._recalcTotalDuration = function _recalcTotalDuration() { + var i = this._timelines.length; + this._props.duration = 0; + while (i--) { + var tm = this._timelines[i]; + // recalc total duration on child timelines + tm._recalcTotalDuration && tm._recalcTotalDuration(); + // add the timeline's duration to selft duration + this._recalcDuration(tm); + } + this._calcDimentions(); + }; + /* + Method set start and end times. + @private + @param {Number, Null} Time to start with. + */ + + + Timeline.prototype._setStartTime = function _setStartTime(time) { + var isReset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + + _Tween.prototype._setStartTime.call(this, time); + this._startTimelines(this._props.startTime, isReset); + }; + /* + Method calculate self duration based on timeline's duration. + @private + @param {Number, Null} Time to start with. + */ + + + Timeline.prototype._startTimelines = function _startTimelines(time) { + var isReset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + + var p = this._props, + isStop = this._state === 'stop'; + + time == null && (time = this._props.startTime); + + for (var i = 0; i < this._timelines.length; i++) { + var tm = this._timelines[i]; + tm._setStartTime(time, isReset); + // if from `_subPlay` and `_prevTime` is set and state is `stop` + // prevTime normalizing is for play/pause functionality, so no + // need to normalize if the timeline is in `stop` state. + if (!isReset && tm._prevTime != null && !isStop) { + tm._prevTime = tm._normPrevTimeForward(); + } + } + }; + /* + Method to launch onRefresh callback. + @method _refresh + @private + @overrides @ Tween + @param {Boolean} If refresh even before start time. + */ + + + Timeline.prototype._refresh = function _refresh(isBefore) { + var len = this._timelines.length; + for (var i = 0; i < len; i++) { + this._timelines[i]._refresh(isBefore); + } + _Tween.prototype._refresh.call(this, isBefore); + }; + /* + Method do declare defaults by this._defaults object + @private + */ + + + Timeline.prototype._declareDefaults = function _declareDefaults() { + // if duration was passed on initialization stage, warn user and reset it. + if (this._o.duration != null) { + _h2.default.error('Duration can not be declared on Timeline, but "' + this._o.duration + '" is. You probably want to use Tween instead.'); + this._o.duration = 0; + } + _Tween.prototype._declareDefaults.call(this); + // remove default + this._defaults.duration = 0; + this._defaults.easing = 'Linear.None'; + this._defaults.backwardEasing = 'Linear.None'; + this._defaults.nameBase = 'Timeline'; + }; + + function Timeline() { + var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + (0, _classCallCheck3.default)(this, Timeline); + return (0, _possibleConstructorReturn3.default)(this, _Tween.call(this, o)); + } + /* + Method to declare some vars. + @private + */ + + + Timeline.prototype._vars = function _vars() { + this._timelines = []; + _Tween.prototype._vars.call(this); + }; + + return Timeline; + }(_tween2.default); + + exports.default = Timeline; + +/***/ }), +/* 111 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = { "default": __webpack_require__(112), __esModule: true }; + +/***/ }), +/* 112 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(50); + __webpack_require__(6); + module.exports = __webpack_require__(113); + +/***/ }), +/* 113 */ +/***/ (function(module, exports, __webpack_require__) { + + var anObject = __webpack_require__(19) + , get = __webpack_require__(114); + module.exports = __webpack_require__(14).getIterator = function(it){ + var iterFn = get(it); + if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!'); + return anObject(iterFn.call(it)); + }; + +/***/ }), +/* 114 */ +/***/ (function(module, exports, __webpack_require__) { + + var classof = __webpack_require__(115) + , ITERATOR = __webpack_require__(47)('iterator') + , Iterators = __webpack_require__(29); + module.exports = __webpack_require__(14).getIteratorMethod = function(it){ + if(it != undefined)return it[ITERATOR] + || it['@@iterator'] + || Iterators[classof(it)]; + }; + +/***/ }), +/* 115 */ +/***/ (function(module, exports, __webpack_require__) { + + // getting tag from 19.1.3.6 Object.prototype.toString() + var cof = __webpack_require__(37) + , TAG = __webpack_require__(47)('toStringTag') + // ES3 wrong here + , ARG = cof(function(){ return arguments; }()) == 'Arguments'; + + // fallback for IE11 Script Access Denied error + var tryGet = function(it, key){ + try { + return it[key]; + } catch(e){ /* empty */ } + }; + + module.exports = function(it){ + var O, T, B; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T + // builtinTag case + : ARG ? cof(O) + // ES3 arguments fallback + : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; + }; + +/***/ }), +/* 116 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _keys = __webpack_require__(95); + + var _keys2 = _interopRequireDefault(_keys); + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + var _thenable = __webpack_require__(99); + + var _thenable2 = _interopRequireDefault(_thenable); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var Tuneable = function (_Thenable) { + (0, _inherits3.default)(Tuneable, _Thenable); + + function Tuneable() { + (0, _classCallCheck3.default)(this, Tuneable); + return (0, _possibleConstructorReturn3.default)(this, _Thenable.apply(this, arguments)); + } + + /* + Method to start the animation with optional new options. + @public + @param {Object} New options to set on the run. + @returns {Object} this. + */ + Tuneable.prototype.tune = function tune(o) { + // if options object was passed + if (o && (0, _keys2.default)(o).length) { + this._transformHistory(o); + this._tuneNewOptions(o); + // restore array prop values because _props + // contain them as parsed arrays + // but we need the as strings to store in history + // and merge in history chains + this._history[0] = _h2.default.cloneObj(this._props); + for (var key in this._arrayPropertyMap) { + if (o[key] != null) { + this._history[0][key] = this._preparsePropValue(key, o[key]); + } + } + + this._tuneSubModules(); + this._resetTweens(); + } + return this; + }; + /* + Method to regenerate all the random properties form initial object. + @public + @returns this. + */ + + + Tuneable.prototype.generate = function generate() { + return this.tune(this._o); + }; + + // ^ PUBLIC METHOD(S) ^ + // v PRIVATE METHOD(S) v + + /* + Method to preparse options in object. + @private + @param {Object} Object to preparse properties on. + @returns {Object} Passed object with preparsed props. + */ + // _preParseOptions ( o ) { + // for (var key in o) { + // o[key] = this._preparsePropValue( key, o[key] ); + // } + // return o; + // } + /* + Method to transform history rewrite new options object chain on run. + @private + @param {Object} New options to tune for. + */ + + + Tuneable.prototype._transformHistory = function _transformHistory(o) { + for (var key in o) { + var value = o[key]; + // don't transform for childOptions + // if ( key === 'childOptions' ) { continue; } + this._transformHistoryFor(key, this._preparsePropValue(key, value)); + } + }; + /* + Method to transform history chain for specific key/value. + @param {String} Name of the property to transform history for. + @param {Any} The new property's value. + */ + + + Tuneable.prototype._transformHistoryFor = function _transformHistoryFor(key, value) { + for (var i = 0; i < this._history.length; i++) { + if (value = this._transformHistoryRecord(i, key, value)) { + // break if no further history modifications needed + if (value == null) { + break; + } + } + } + }; + /* + Method to transform history recod with key/value. + @param {Number} Index of the history record to transform. + @param {String} Property name to transform. + @param {Any} Property value to transform to. + @param {Object} Optional the current history record. + @param {Object} Optional the next history record. + @returns {Boolean} Returns true if no further + history modifications is needed. + */ + + + Tuneable.prototype._transformHistoryRecord = function _transformHistoryRecord(index, key, newVal, currRecord, nextRecord) { + // newVal = this._parseProperty( key, newVal ); + if (newVal == null) { + return null; + } + + // fallback to history records, if wasn't specified + currRecord = currRecord == null ? this._history[index] : currRecord; + nextRecord = nextRecord == null ? this._history[index + 1] : nextRecord; + + var oldVal = currRecord[key], + nextVal = nextRecord == null ? null : nextRecord[key]; + + // if index is 0 - always save the newVal + // and return non-delta for subsequent modifications + if (index === 0) { + currRecord[key] = newVal; + // always return on tween properties + if (_h2.default.isTweenProp(key) && key !== 'duration') { + return null; + } + // nontween properties + var isRewriteNext = this._isRewriteNext(oldVal, nextVal), + returnVal = this._isDelta(newVal) ? _h2.default.getDeltaEnd(newVal) : newVal; + return isRewriteNext ? returnVal : null; + } else { + // if was delta and came none-deltta - rewrite + // the start of the delta and stop + if (this._isDelta(oldVal)) { + var _currRecord$key; + + currRecord[key] = (_currRecord$key = {}, _currRecord$key[newVal] = _h2.default.getDeltaEnd(oldVal), _currRecord$key); + return null; + } else { + // if the old value is not delta and the new one is + currRecord[key] = newVal; + // if the next item has the same value - return the + // item for subsequent modifications or stop + return this._isRewriteNext(oldVal, nextVal) ? newVal : null; + } + } + }; + /* + Method to check if the next item should + be rewrited in transform history operation. + @private + @param {Any} Current value. + @param {Any} Next value. + @returns {Boolean} If need to rewrite the next value. + */ + + + Tuneable.prototype._isRewriteNext = function _isRewriteNext(currVal, nextVal) { + // return false if nothing to rewrite next + if (nextVal == null && currVal != null) { + return false; + } + + var isEqual = currVal === nextVal, + isNextDelta = this._isDelta(nextVal), + isDelta = this._isDelta(currVal), + isValueDeltaChain = false, + isDeltaChain = false; + + if (isDelta && isNextDelta) { + if (_h2.default.getDeltaEnd(currVal) == _h2.default.getDeltaStart(nextVal)) { + isDeltaChain = true; + } + } else if (isNextDelta) { + isValueDeltaChain = _h2.default.getDeltaStart(nextVal) === '' + currVal; + } + + return isEqual || isValueDeltaChain || isDeltaChain; + }; + /* + Method to tune new history options to all the submodules. + @private + */ + + + Tuneable.prototype._tuneSubModules = function _tuneSubModules() { + for (var i = 1; i < this._modules.length; i++) { + this._modules[i]._tuneNewOptions(this._history[i]); + } + }; + /* + Method to set new options on run. + @param {Boolean} If foreign context. + @private + */ + + + Tuneable.prototype._resetTweens = function _resetTweens() { + var i = 0, + shift = 0, + tweens = this.timeline._timelines; + + // if `isTimelineLess` return + if (tweens == null) { + return; + } + + for (var i = 0; i < tweens.length; i++) { + var tween = tweens[i], + prevTween = tweens[i - 1]; + + shift += prevTween ? prevTween._props.repeatTime : 0; + this._resetTween(tween, this._history[i], shift); + } + this.timeline._setProp(this._props.timeline); + this.timeline._recalcTotalDuration(); + }; + /* + Method to reset tween with new options. + @param {Object} Tween to reset. + @param {Object} Tween's to reset tween with. + @param {Number} Optional number to shift tween start time. + */ + + + Tuneable.prototype._resetTween = function _resetTween(tween, o) { + var shift = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; + + o.shiftTime = shift;tween._setProp(o); + }; + + return Tuneable; + }(_thenable2.default); + + exports.default = Tuneable; + +/***/ }), +/* 117 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _shape = __webpack_require__(94); + + var _shape2 = _interopRequireDefault(_shape); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + /* + *TODO:* + --- + - tweak then chains + */ + + var ShapeSwirl = function (_Shape) { + (0, _inherits3.default)(ShapeSwirl, _Shape); + + function ShapeSwirl() { + (0, _classCallCheck3.default)(this, ShapeSwirl); + return (0, _possibleConstructorReturn3.default)(this, _Shape.apply(this, arguments)); + } + + /* + Method to declare _defaults and other default objects. + @private + @override @ Shape + */ + ShapeSwirl.prototype._declareDefaults = function _declareDefaults() { + _Shape.prototype._declareDefaults.call(this); + + /* _DEFAULTS ARE - Shape DEFAULTS + THESE: */ + + /* [boolean] :: If shape should follow sinusoidal path. */ + this._defaults.isSwirl = true; + /* ∆ :: [number > 0] :: Degree size of the sinusoidal path. */ + this._defaults.swirlSize = 10; + /* ∆ :: [number > 0] :: Frequency of the sinusoidal path. */ + this._defaults.swirlFrequency = 3; + /* ∆ :: [number > 0] :: Sinusoidal path length scale. */ + this._defaults.pathScale = 1; + /* ∆ :: [number] :: Degree shift for the sinusoidal path. */ + this._defaults.degreeShift = 0; + /* ∆ :: [number] :: Radius of the shape. */ + this._defaults.radius = 5; + // ∆ :: Units :: Possible values: [ number, string ] + this._defaults.x = 0; + // ∆ :: Units :: Possible values: [ number, string ] + this._defaults.y = 0; + // ∆ :: Possible values: [ number ] + this._defaults.scale = { 1: 0 }; + /* [number: -1, 1] :: Directon of Swirl. */ + this._defaults.direction = 1; + }; + + // ^ PUBLIC METHOD(S) ^ + // v PRIVATE METHOD(S) v + + /* + Method to copy _o options to _props with + fallback to _defaults. + @private + @override @ Module + */ + + + ShapeSwirl.prototype._extendDefaults = function _extendDefaults() { + _Shape.prototype._extendDefaults.call(this); + this._calcPosData(); + }; + /* + Method to tune new oprions to _o and _props object. + @private + @overrides @ Module + @param {Object} Options object to tune to. + */ + + + ShapeSwirl.prototype._tuneNewOptions = function _tuneNewOptions(o) { + if (o == null) { + return; + } + + _Shape.prototype._tuneNewOptions.call(this, o); + if (o.x != null || o.y != null) { + this._calcPosData(); + } + }; + /* + Method to calculate Swirl's position data. + @private + */ + + + ShapeSwirl.prototype._calcPosData = function _calcPosData() { + var x = this._getPosValue('x'), + y = this._getPosValue('y'), + angle = 90 + Math.atan(y.delta / x.delta || 0) * _h2.default.RAD_TO_DEG; + + this._posData = { + radius: Math.sqrt(x.delta * x.delta + y.delta * y.delta), + angle: x.delta < 0 ? angle + 180 : angle, + x: x, y: y + }; + // set the last position to _props + // this._calcSwirlXY( 1 ); + }; + /* + Gets `x` or `y` position value. + @private + @param {String} Name of the property. + */ + + + ShapeSwirl.prototype._getPosValue = function _getPosValue(name) { + var delta = this._deltas[name]; + if (delta) { + // delete from deltas to prevent normal + delete this._deltas[name]; + return { + start: delta.start.value, + end: delta.end.value, + delta: delta.delta, + units: delta.end.unit + }; + } else { + var pos = _h2.default.parseUnit(this._props[name]); + return { start: pos.value, end: pos.value, delta: 0, units: pos.unit }; + } + }; + /* + Method to calculate the progress of the Swirl. + @private + @overrides @ Shape + @param {Numer} Eased progress of the Swirl in range of [0..1] + @param {Numer} Progress of the Swirl in range of [0..1] + */ + + + ShapeSwirl.prototype._setProgress = function _setProgress(easedProgress, progress) { + this._progress = easedProgress; + this._calcCurrentProps(easedProgress, progress); + this._calcSwirlXY(easedProgress); + // this._calcOrigin(); + this._draw(easedProgress); + }; + /* + Method to calculate x/y for Swirl's progress + @private + @mutates _props + @param {Number} Current progress in [0...1] + */ + + + ShapeSwirl.prototype._calcSwirlXY = function _calcSwirlXY(proc) { + var p = this._props, + angle = this._posData.angle + p.degreeShift, + point = _h2.default.getRadialPoint({ + angle: p.isSwirl ? angle + this._getSwirl(proc) : angle, + radius: proc * this._posData.radius * p.pathScale, + center: { + x: this._posData.x.start, + y: this._posData.y.start + } + }); + // if foreign svg canvas - set position without units + var x = point.x, + y = point.y, + smallNumber = 0.000001; + + // remove very small numbers to prevent exponential forms + if (x > 0 && x < smallNumber) { + x = smallNumber; + } + if (y > 0 && y < smallNumber) { + y = smallNumber; + } + if (x < 0 && x > -smallNumber) { + x = -smallNumber; + } + if (y < 0 && y > -smallNumber) { + y = -smallNumber; + } + + p.x = this._o.ctx ? x : '' + x + this._posData.x.units; + p.y = this._o.ctx ? y : '' + y + this._posData.y.units; + }; + /* + Method to get progress of the swirl. + @private + @param {Number} Progress of the Swirl. + @returns {Number} Progress of the swirl. + */ + + + ShapeSwirl.prototype._getSwirl = function _getSwirl(proc) { + var p = this._props; + return p.direction * p.swirlSize * Math.sin(p.swirlFrequency * proc); + }; + /* + Method to draw shape. + If !isWithShape - draw self el only, but not shape. + @private + @overrides @ Shape. + */ + + + ShapeSwirl.prototype._draw = function _draw() { + // call _draw or just _drawEl @ Shape depending if there is `shape` + var methodName = this._props.isWithShape ? '_draw' : '_drawEl'; + _shape2.default.prototype[methodName].call(this); + }; + + return ShapeSwirl; + }(_shape2.default); + + exports.default = ShapeSwirl; + +/***/ }), +/* 118 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _keys = __webpack_require__(95); + + var _keys2 = _interopRequireDefault(_keys); + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _timeline = __webpack_require__(110); + + var _timeline2 = _interopRequireDefault(_timeline); + + var _shapeSwirl = __webpack_require__(117); + + var _shapeSwirl2 = _interopRequireDefault(_shapeSwirl); + + var _tunable = __webpack_require__(116); + + var _tunable2 = _interopRequireDefault(_tunable); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + // import Shape from './shape'; + var Burst = function (_Tunable) { + (0, _inherits3.default)(Burst, _Tunable); + + function Burst() { + (0, _classCallCheck3.default)(this, Burst); + return (0, _possibleConstructorReturn3.default)(this, _Tunable.apply(this, arguments)); + } + + /* + Method to declare defaults. + @override @ ShapeSwirl. + */ + Burst.prototype._declareDefaults = function _declareDefaults() { + this._defaults = { + /* [number > 0] :: Quantity of Burst particles. */ + count: 5, + /* [0 < number < 360] :: Degree of the Burst. */ + degree: 360, + /* ∆ :: [number > 0] :: Radius of the Burst. */ + radius: { 0: 50 }, + /* ∆ :: [number > 0] :: X radius of the Burst. */ + radiusX: null, + /* ∆ :: [number > 0] :: Y radius of the Burst. */ + radiusY: null, + /* [number >= 0] :: width of the main swirl. */ + width: 0, + /* [number >= 0] :: height of the main swirl. */ + height: 0 + }; + }; + /* + Method to create a then record for the module. + @public + overrides @ Thenable + @param {Object} Options for the next animation. + @returns {Object} this. + */ + + + Burst.prototype.then = function then(o) { + // remove tween properties (not callbacks) + this._removeTweenProperties(o); + + var newMaster = this._masterThen(o), + newSwirls = this._childThen(o); + + this._setSwirlDuration(newMaster, this._calcPackTime(newSwirls)); + + this.timeline._recalcTotalDuration(); + return this; + }; + /* + Method to start the animation with optional new options. + @public + @param {Object} New options to set on the run. + @returns {Object} this. + */ + + + Burst.prototype.tune = function tune(o) { + if (o == null) { + return this; + } + // save timeline options to _timelineOptions + // and delete the timeline options on o + // cuz masterSwirl should not get them + this._saveTimelineOptions(o); + + // add new timeline properties to timeline + this.timeline._setProp(this._timelineOptions); + + // remove tween options (not callbacks) + this._removeTweenProperties(o); + + // tune _props + this._tuneNewOptions(o); + + // tune master swirl + this.masterSwirl.tune(o); + + // tune child swirls + this._tuneSwirls(o); + + // recalc time for modules + this._recalcModulesTime(); + return this; + }; + + // ^ PUBLIC METHODS ^ + // v PRIVATE METHODS v + + /* + Method to copy `_o` options to `_props` object + with fallback to `_defaults`. + @private + @overrides @ Module + */ + + + Burst.prototype._extendDefaults = function _extendDefaults() { + // remove tween properties (not callbacks) + this._removeTweenProperties(this._o); + _Tunable.prototype._extendDefaults.call(this); + }; + /* + Method to remove all tween (excluding + callbacks) props from object. + @private + @param {Object} Object which should be cleaned + up from tween properties. + */ + + + Burst.prototype._removeTweenProperties = function _removeTweenProperties(o) { + for (var key in _h2.default.tweenOptionMap) { + // remove all items that are not declared in _defaults + if (this._defaults[key] == null) { + delete o[key]; + } + } + }; + /* + Method to recalc modules chain tween + times after tuning new options. + @private + */ + + + Burst.prototype._recalcModulesTime = function _recalcModulesTime() { + var modules = this.masterSwirl._modules, + swirls = this._swirls, + shiftTime = 0; + + for (var i = 0; i < modules.length; i++) { + var tween = modules[i].tween, + packTime = this._calcPackTime(swirls[i]); + tween._setProp({ 'duration': packTime, 'shiftTime': shiftTime }); + shiftTime += packTime; + } + + this.timeline._recalcTotalDuration(); + }; + /* + Method to tune Swirls with new options. + @private + @param {Object} New options. + */ + + + Burst.prototype._tuneSwirls = function _tuneSwirls(o) { + // get swirls in first pack + var pack0 = this._swirls[0]; + for (var i = 0; i < pack0.length; i++) { + var swirl = pack0[i], + option = this._getChildOption(o || {}, i); + + // since the `degreeShift` participate in + // children position calculations, we need to keep + // the old `degreeShift` value if new not set + var isDegreeShift = option.degreeShift != null; + if (!isDegreeShift) { + option.degreeShift = this._swirls[0][i]._props.degreeShift; + } + + this._addBurstProperties(option, i); + + // after burst position calculation - delete the old `degreeShift` + // from the options, since anyways we have copied it from the swirl + if (!isDegreeShift) { + delete option.degreeShift; + } + + swirl.tune(option); + this._refreshBurstOptions(swirl._modules, i); + } + }; + /* + Method to refresh burst x/y/angle options on further chained + swirls, because they will be overriden after `tune` call on + very first swirl. + @param {Array} Chained modules array + param {Number} Index of the first swirl in the chain. + */ + + + Burst.prototype._refreshBurstOptions = function _refreshBurstOptions(modules, i) { + for (var j = 1; j < modules.length; j++) { + var module = modules[j], + options = {}; + this._addBurstProperties(options, i, j); + module._tuneNewOptions(options); + } + }; + /* + Method to call then on masterSwirl. + @param {Object} Then options. + @returns {Object} New master swirl. + */ + + + Burst.prototype._masterThen = function _masterThen(o) { + this.masterSwirl.then(o); + // get the latest master swirl in then chain + var newMasterSwirl = _h2.default.getLastItem(this.masterSwirl._modules); + // save to masterSwirls + this._masterSwirls.push(newMasterSwirl); + return newMasterSwirl; + }; + /* + Method to call then on child swilrs. + @param {Object} Then options. + @return {Array} Array of new Swirls. + */ + + + Burst.prototype._childThen = function _childThen(o) { + var pack = this._swirls[0], + newPack = []; + + for (var i = 0; i < pack.length; i++) { + // get option by modulus + var options = this._getChildOption(o, i); + var swirl = pack[i]; + var lastSwirl = _h2.default.getLastItem(swirl._modules); + // add new Master Swirl as parent of new childswirl + options.parent = this.el; + + this._addBurstProperties(options, i, this._masterSwirls.length - 1); + + swirl.then(options); + + // save the new item in `then` chain + newPack.push(_h2.default.getLastItem(swirl._modules)); + } + // save the pack to _swirls object + this._swirls[this._masterSwirls.length - 1] = newPack; + return newPack; + }; + /* + Method to initialize properties. + @private + @overrides @ Thenable + */ + + + Burst.prototype._vars = function _vars() { + _Tunable.prototype._vars.call(this); + // just buffer timeline for calculations + this._bufferTimeline = new _timeline2.default(); + }; + /* + Method for initial render of the module. + */ + + + Burst.prototype._render = function _render() { + this._o.isWithShape = false; + this._o.isSwirl = this._props.isSwirl; + this._o.callbacksContext = this; + // save timeline options and remove from _o + // cuz the master swirl should not get them + this._saveTimelineOptions(this._o); + + this.masterSwirl = new MainSwirl(this._o); + this._masterSwirls = [this.masterSwirl]; + this.el = this.masterSwirl.el; + + this._renderSwirls(); + }; + /* + Method for initial render of swirls. + @private + */ + + + Burst.prototype._renderSwirls = function _renderSwirls() { + var p = this._props, + pack = []; + + for (var i = 0; i < p.count; i++) { + var option = this._getChildOption(this._o, i); + pack.push(new ChildSwirl(this._addOptionalProps(option, i))); + } + this._swirls = { 0: pack }; + this._setSwirlDuration(this.masterSwirl, this._calcPackTime(pack)); + }; + /* + Method to save timeline options to _timelineOptions + and delete the property on the object. + @private + @param {Object} The object to save the timeline options from. + */ + + + Burst.prototype._saveTimelineOptions = function _saveTimelineOptions(o) { + this._timelineOptions = o.timeline; + delete o.timeline; + }; + /* + Method to calculate total time of array of + concurrent tweens. + @param {Array} Pack to calculate the total time for. + @returns {Number} Total pack duration. + */ + + + Burst.prototype._calcPackTime = function _calcPackTime(pack) { + var maxTime = 0; + for (var i = 0; i < pack.length; i++) { + var tween = pack[i].tween, + p = tween._props; + + maxTime = Math.max(p.repeatTime / p.speed, maxTime); + } + + return maxTime; + }; + /* + Method to set duration for Swirl. + @param {Object} Swirl instance to set the duration to. + @param {Number} Duration to set. + */ + + + Burst.prototype._setSwirlDuration = function _setSwirlDuration(swirl, duration) { + swirl.tween._setProp('duration', duration); + var isRecalc = swirl.timeline && swirl.timeline._recalcTotalDuration; + isRecalc && swirl.timeline._recalcTotalDuration(); + }; + /* + Method to get childOption form object call by modulus. + @private + @param {Object} Object to look in. + @param {Number} Index of the current Swirl. + @returns {Object} Options for the current swirl. + */ + + + Burst.prototype._getChildOption = function _getChildOption(obj, i) { + var options = {}; + for (var key in obj.children) { + options[key] = this._getPropByMod(key, i, obj.children); + } + return options; + }; + /* + Method to get property by modulus. + @private + @param {String} Name of the property. + @param {Number} Index for the modulus. + @param {Object} Source object to check in. + @returns {Any} Property. + */ + + + Burst.prototype._getPropByMod = function _getPropByMod(name, index) { + var sourceObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + + var prop = sourceObj[name]; + return _h2.default.isArray(prop) ? prop[index % prop.length] : prop; + }; + /* + Method to add optional Swirls' properties to passed object. + @private + @param {Object} Object to add the properties to. + @param {Number} Index of the property. + */ + + + Burst.prototype._addOptionalProps = function _addOptionalProps(options, index) { + options.index = index; + options.parent = this.masterSwirl.el; + + this._addBurstProperties(options, index); + + return options; + }; + /* + Method to add Burst options to object. + @private + @param {Object} Options to add the properties to. + @param {Number} Index of the Swirl. + @param {Number} Index of the main swirl. + */ + + + Burst.prototype._addBurstProperties = function _addBurstProperties(options, index, i) { + // save index of the module + var mainIndex = this._index; + // temporary change the index to parse index based properties like stagger + this._index = index; + // parse degree shift for the bit + var degreeShift = this._parseProperty('degreeShift', options.degreeShift || 0); + // put the index of the module back + this._index = mainIndex; + + var p = this._props, + degreeCnt = p.degree % 360 === 0 ? p.count : p.count - 1 || 1, + step = p.degree / degreeCnt, + pointStart = this._getSidePoint('start', index * step + degreeShift, i), + pointEnd = this._getSidePoint('end', index * step + degreeShift, i); + + options.x = this._getDeltaFromPoints('x', pointStart, pointEnd); + options.y = this._getDeltaFromPoints('y', pointStart, pointEnd); + + options.angle = this._getBitAngle(options.angle || 0, degreeShift, index); + }; + /* + Method to get shapes angle in burst so + it will follow circular shape. + + @param {Number, Object} Base angle. + @param {Number} Angle shift for the bit + @param {Number} Shape's index in burst. + @returns {Number} Angle in burst. + */ + + + Burst.prototype._getBitAngle = function _getBitAngle() { + var angleProperty = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var angleShift = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var i = arguments[2]; + + var p = this._props, + degCnt = p.degree % 360 === 0 ? p.count : p.count - 1 || 1, + step = p.degree / degCnt, + angle = i * step + 90; + + angle += angleShift; + // if not delta option + if (!this._isDelta(angleProperty)) { + angleProperty += angle; + } else { + var delta = {}, + keys = (0, _keys2.default)(angleProperty), + start = keys[0], + end = angleProperty[start]; + + start = _h2.default.parseStringOption(start, i); + end = _h2.default.parseStringOption(end, i); + // new start = newEnd + delta[parseFloat(start) + angle] = parseFloat(end) + angle; + + angleProperty = delta; + } + return angleProperty; + }; + /* + Method to get radial point on `start` or `end`. + @private + @param {String} Name of the side - [start, end]. + @param {Number} Angle of the radial point. + @param {Number} Index of the main swirl. + @returns radial point. + */ + + + Burst.prototype._getSidePoint = function _getSidePoint(side, angle, i) { + var p = this._props, + sideRadius = this._getSideRadius(side, i); + + return _h2.default.getRadialPoint({ + radius: sideRadius.radius, + radiusX: sideRadius.radiusX, + radiusY: sideRadius.radiusY, + angle: angle, + // center: { x: p.center, y: p.center } + center: { x: 0, y: 0 } + }); + }; + /* + Method to get radius of the side. + @private + @param {String} Name of the side - [start, end]. + @param {Number} Index of the main swirl. + @returns {Object} Radius. + */ + + + Burst.prototype._getSideRadius = function _getSideRadius(side, i) { + return { + radius: this._getRadiusByKey('radius', side, i), + radiusX: this._getRadiusByKey('radiusX', side, i), + radiusY: this._getRadiusByKey('radiusY', side, i) + }; + }; + /* + Method to get radius from ∆ or plain property. + @private + @param {String} Key name. + @param {String} Side name - [start, end]. + @param {Number} Index of the main swirl. + @returns {Number} Radius value. + */ + + + Burst.prototype._getRadiusByKey = function _getRadiusByKey(key, side) { + var i = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; + + var swirl = this._masterSwirls[i], + deltas = swirl._deltas, + props = swirl._props; + + if (deltas[key] != null) { + return deltas[key][side]; + } else if (props[key] != null) { + return props[key]; + } + }; + /* + Method to get delta from start and end position points. + @private + @param {String} Key name. + @param {Object} Start position point. + @param {Object} End position point. + @returns {Object} Delta of the end/start. + */ + + + Burst.prototype._getDeltaFromPoints = function _getDeltaFromPoints(key, pointStart, pointEnd) { + var delta = {}; + if (pointStart[key] === pointEnd[key]) { + delta = pointStart[key]; + } else { + delta[pointStart[key]] = pointEnd[key]; + } + return delta; + }; + /* + Method to create timeline. + @private + @override @ Tweenable + */ + + + Burst.prototype._makeTimeline = function _makeTimeline() { + // restore timeline options that were deleted in _render method + this._o.timeline = this._timelineOptions; + _Tunable.prototype._makeTimeline.call(this); + this.timeline.add(this.masterSwirl, this._swirls[0]); + }; + /* + Method to make Tween for the module. + @private + @override @ Tweenable + */ + + + Burst.prototype._makeTween = function _makeTween() {} /* don't create any tween */ + /* + Override `_hide` and `_show` methods on module + since we don't have to hide nor show on the module. + */ + ; + + Burst.prototype._hide = function _hide() {/* do nothing */}; + + Burst.prototype._show = function _show() {/* do nothing */}; + + return Burst; + }(_tunable2.default); + + var ChildSwirl = function (_ShapeSwirl) { + (0, _inherits3.default)(ChildSwirl, _ShapeSwirl); + + function ChildSwirl() { + (0, _classCallCheck3.default)(this, ChildSwirl); + return (0, _possibleConstructorReturn3.default)(this, _ShapeSwirl.apply(this, arguments)); + } + + ChildSwirl.prototype._declareDefaults = function _declareDefaults() { + _ShapeSwirl.prototype._declareDefaults.call(this); + this._defaults.isSwirl = false; + this._o.duration = this._o.duration != null ? this._o.duration : 700; + }; + // disable degreeshift calculations + + + ChildSwirl.prototype._calcSwirlXY = function _calcSwirlXY(proc) { + var degreeShift = this._props.degreeShift; + + this._props.degreeShift = 0; + _ShapeSwirl.prototype._calcSwirlXY.call(this, proc); + this._props.degreeShift = degreeShift; + }; + + return ChildSwirl; + }(_shapeSwirl2.default); + + var MainSwirl = function (_ChildSwirl) { + (0, _inherits3.default)(MainSwirl, _ChildSwirl); + + function MainSwirl() { + (0, _classCallCheck3.default)(this, MainSwirl); + return (0, _possibleConstructorReturn3.default)(this, _ChildSwirl.apply(this, arguments)); + } + + MainSwirl.prototype._declareDefaults = function _declareDefaults() { + _ChildSwirl.prototype._declareDefaults.call(this); + this._defaults.scale = 1; + this._defaults.width = 0; + this._defaults.height = 0; + this._defaults.radius = { 25: 75 }; + // this._defaults.duration = 2000; + }; + + return MainSwirl; + }(ChildSwirl); + + Burst.ChildSwirl = ChildSwirl; + Burst.MainSwirl = MainSwirl; + + exports.default = Burst; + +/***/ }), +/* 119 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _extends4 = __webpack_require__(120); + + var _extends5 = _interopRequireDefault(_extends4); + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _keys = __webpack_require__(95); + + var _keys2 = _interopRequireDefault(_keys); + + var _thenable = __webpack_require__(99); + + var _thenable2 = _interopRequireDefault(_thenable); + + var _tween = __webpack_require__(101); + + var _tween2 = _interopRequireDefault(_tween); + + var _deltas = __webpack_require__(125); + + var _deltas2 = _interopRequireDefault(_deltas); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var h = __webpack_require__(71); + + + // get tween properties + var obj = {}; + _tween2.default.prototype._declareDefaults.call(obj); + var keys = (0, _keys2.default)(obj._defaults); + for (var i = 0; i < keys.length; i++) { + obj._defaults[keys[i]] = 1; + } + obj._defaults['timeline'] = 1; + var TWEEN_PROPERTIES = obj._defaults; + + /* + TODO: + + - change _props to _propsObj for animations + - current values in deltas + */ + + var Html = function (_Thenable) { + (0, _inherits3.default)(Html, _Thenable); + + function Html() { + (0, _classCallCheck3.default)(this, Html); + return (0, _possibleConstructorReturn3.default)(this, _Thenable.apply(this, arguments)); + } + + Html.prototype._declareDefaults = function _declareDefaults() { + this._defaults = { + x: 0, + y: 0, + z: 0, + + skewX: 0, + skewY: 0, + + // angle: 0, + angleX: 0, + angleY: 0, + angleZ: 0, + + scale: 1, + scaleX: 1, + scaleY: 1, + + isSoftHide: true, + isShowStart: true, + isShowEnd: true, + isForce3d: false, + isRefreshState: true + + }; + // exclude from automatic drawing + this._drawExclude = { el: 1 }; + // properties that cause 3d layer + this._3dProperties = ['angleX', 'angleY', 'z']; + // properties that have array values + this._arrayPropertyMap = { transformOrigin: 1, backgroundPosition: 1 }; + // properties that have no units + this._numberPropertyMap = { + opacity: 1, scale: 1, scaleX: 1, scaleY: 1, + // angle: 1, + angleX: 1, angleY: 1, angleZ: 1, + skewX: 1, skewY: 1 + }; + // properties that should be prefixed + this._prefixPropertyMap = { transform: 1, transformOrigin: 1 }; + // save prefix + this._prefix = h.prefix.css; + }; + + Html.prototype.then = function then(o) { + // return if nothing was passed + if (o == null || !(0, _keys2.default)(o).length) { + return 1; + } + + // get the last item in `then` chain + var prevModule = h.getLastItem(this._modules); + // set deltas to the finish state + prevModule.deltas.refresh(false); + // copy finish state to the last history record + this._history[this._history.length - 1] = prevModule._o; + // call super + _Thenable.prototype.then.call(this, o); + // restore the _props + prevModule.deltas.restore(); + + return this; + }; + /* + Method to pipe startValue of the delta. + @private + @ovarrides @ Thenable + @param {String} Start property name. + @param {Any} Start property value. + @returns {Any} Start property value. + */ + + + Html.prototype._checkStartValue = function _checkStartValue(key, value) { + if (value == null) { + // return default value for transforms + if (this._defaults[key] != null) { + return this._defaults[key]; + } + // return default value from _customProps + if (this._customProps[key] != null) { + return this._customProps[key]; + } + // try to get the default value + if (h.defaultStyles[key] != null) { + return h.defaultStyles[key]; + } + // at the end return 0 + return 0; + } + + return value; + }; + /* + Method to draw _props to el. + @private + */ + + + Html.prototype._draw = function _draw() { + var p = this._props; + for (var i = 0; i < this._drawProps.length; i++) { + var name = this._drawProps[i]; + this._setStyle(name, p[name]); + } + // draw transforms + this._drawTransform(); + // call custom transform callback if exist + this._customDraw && this._customDraw(this._props.el, this._props); + }; + /* + Method to set transform on element. + @private + */ + + + Html.prototype._drawTransform = function _drawTransform() { + var p = this._props; + var string = !this._is3d ? 'translate(' + p.x + ', ' + p.y + ')\n rotate(' + p.angleZ + 'deg)\n skew(' + p.skewX + 'deg, ' + p.skewY + 'deg)\n scale(' + p.scaleX + ', ' + p.scaleY + ')' : 'translate3d(' + p.x + ', ' + p.y + ', ' + p.z + ')\n rotateX(' + p.angleX + 'deg)\n rotateY(' + p.angleY + 'deg)\n rotateZ(' + p.angleZ + 'deg)\n skew(' + p.skewX + 'deg, ' + p.skewY + 'deg)\n scale(' + p.scaleX + ', ' + p.scaleY + ')'; + + this._setStyle('transform', string); + }; + /* + Method to render on initialization. + @private + @overrides @ Module + */ + + + Html.prototype._render = function _render() { + // return immediately if not the first in `then` chain + if (this._o.prevChainModule) { + return; + } + + var p = this._props; + + for (var i = 0; i < this._renderProps.length; i++) { + var name = this._renderProps[i], + value = p[name]; + + value = typeof value === 'number' ? value + 'px' : value; + this._setStyle(name, value); + } + + this._draw(); + + if (!p.isShowStart) { + this._hide(); + } + }; + /* + Method to set style on el. + @private + @param {String} Style property name. + @param {String} Style property value. + */ + + + Html.prototype._setStyle = function _setStyle(name, value) { + if (this._state[name] !== value) { + var style = this._props.el.style; + // set style + style[name] = value; + // if prefix needed - set it + if (this._prefixPropertyMap[name]) { + style['' + this._prefix + name] = value; + } + // cache the last set value + this._state[name] = value; + } + }; + /* + Method to copy `_o` options to `_props` object. + @private + */ + + + Html.prototype._extendDefaults = function _extendDefaults() { + this._props = this._o.props || {}; + // props for intial render only + this._renderProps = []; + // props for draw on every frame update + this._drawProps = []; + // save custom properties if present + this._saveCustomProperties(this._o); + // copy the options + var o = (0, _extends5.default)({}, this._o); + // extend options with defaults + o = this._addDefaults(o); + + var keys = (0, _keys2.default)(o); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + // include the property if it is not in drawExclude object + // and not in defaults = not a transform + var isInclude = !this._drawExclude[key] && // not in exclude map + this._defaults[key] == null && // not transform property + !TWEEN_PROPERTIES[key]; // not tween property + + var isCustom = this._customProps[key]; + // copy all non-delta properties to the props + // if not delta then add the property to render + // list that is called on initialization + // otherwise add it to the draw list that will + // be drawed on each frame + if (!h.isDelta(o[key]) && !TWEEN_PROPERTIES[key]) { + this._parseOption(key, o[key]); + if (key === 'el') { + this._props.el = h.parseEl(o.el); + this.el = this._props.el; + } + if (isInclude && !isCustom) { + this._renderProps.push(key); + } + // copy delta prop but not transforms + // otherwise push it to draw list that gets traversed on every draw + } else if (isInclude && !isCustom) { + this._drawProps.push(key); + } + } + + this._createDeltas(o); + }; + /* + Method to save customProperties to _customProps. + @param {Object} Options of the module. + */ + + + Html.prototype._saveCustomProperties = function _saveCustomProperties() { + var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + this._customProps = o.customProperties || {}; + this._customProps = (0, _extends5.default)({}, this._customProps); + this._customDraw = this._customProps.draw; + delete this._customProps.draw; + delete o.customProperties; + + this._copyDefaultCustomProps(); + + // if ( this._customProps ) {} + // this._customProps = this._customProps || {}; + }; + + Html.prototype._copyDefaultCustomProps = function _copyDefaultCustomProps() { + for (var key in this._customProps) { + if (this._o[key] == null) { + this._o[key] = this._customProps[key]; + } + } + }; + /* + Method to reset some flags on merged options object. + @private + @overrides @ Thenable + @param {Object} Options object. + @returns {Object} Options object. + */ + + + Html.prototype._resetMergedFlags = function _resetMergedFlags(o) { + _Thenable.prototype._resetMergedFlags.call(this, o); + o.props = this._props; + o.customProperties = this._customProps; + return o; + }; + /* + Method to parse option value. + @private + @param {String} Option name. + @param {Any} Option value. + */ + + + Html.prototype._parseOption = function _parseOption(key, value) { + _Thenable.prototype._parseOption.call(this, key, value); + // at this point the property is parsed + var parsed = this._props[key]; + // cast it to string if it is array + if (h.isArray(parsed)) { + this._props[key] = this._arrToString(parsed); + } + }; + /* + Method cast array to string value. + @private + @param {Array} Array of parsed numbers with units. + @returns {String} Casted array. + */ + + + Html.prototype._arrToString = function _arrToString(arr) { + var string = ''; + for (var i = 0; i < arr.length; i++) { + string += arr[i].string + ' '; + } + return string; + }; + /* + Method to add defauls to passed object. + @private + @param {Object} Object to add defaults to. + */ + + + Html.prototype._addDefaults = function _addDefaults(obj) { + // flag that after all defaults are set will indicate + // if user have set the 3d transform + this._is3d = false; + + for (var key in this._defaults) { + // skip property if it is listed in _skipProps + // if (this._skipProps && this._skipProps[key]) { continue; } + + // copy the properties to the _o object + // if it's null - set the default value + if (obj[key] == null) { + // scaleX and scaleY should fallback to scale + if (key === 'scaleX' || key === 'scaleY') { + obj[key] = obj['scale'] != null ? obj['scale'] : this._defaults['scale']; + } else { + obj[key] = this._defaults[key]; + } + } else { + // get if 3d property was set. + if (this._3dProperties.indexOf(key) !== -1) { + this._is3d = true; + } + } + } + + if (this._o.isForce3d) { + this._is3d = true; + } + + return obj; + }; + /* + Lifecycle method to declare variables. + @private + */ + + + Html.prototype._vars = function _vars() { + // set deltas to the last value, so the _props with + // end values will be copied to the _history, it is + // crucial for `then` chaining + this.deltas.refresh(false); + // call super vars + _Thenable.prototype._vars.call(this); + // state of set properties + this._state = {}; + // restore delta values that we have refreshed before + this.deltas.restore(false); + }; + /* + Method to create deltas from passed object. + @private + @param {Object} Options object to pass to the Deltas. + */ + + + Html.prototype._createDeltas = function _createDeltas(options) { + this.deltas = new _deltas2.default({ + options: options, + props: this._props, + arrayPropertyMap: this._arrayPropertyMap, + numberPropertyMap: this._numberPropertyMap, + customProps: this._customProps, + callbacksContext: options.callbacksContext || this, + isChained: !!this._o.prevChainModule + }); + + // if chained module set timeline to deltas' timeline + if (this._o.prevChainModule) { + this.timeline = this.deltas.timeline; + } + }; + /* @overrides @ Tweenable */ + + + Html.prototype._makeTween = function _makeTween() {}; + + Html.prototype._makeTimeline = function _makeTimeline() { + // do not create timeline if module if chained + if (this._o.prevChainModule) { + return; + } + // add callbacks overrides + this._o.timeline = this._o.timeline || {}; + this._addCallbackOverrides(this._o.timeline); + _Thenable.prototype._makeTimeline.call(this); + this.timeline.add(this.deltas); + }; + /* + Method to add callback overrides to passed object object. + @param {Object} Object to add overrides on. + */ + + + Html.prototype._addCallbackOverrides = function _addCallbackOverrides(o) { + var it = this; + var p = this._props; + o.callbackOverrides = { + onUpdate: this._draw, + onRefresh: this._props.isRefreshState ? this._draw : void 0, + onStart: function onStart(isFwd) { + // don't touch main `el` onStart in chained elements + if (it._isChained) { + return; + }; + // show if was hidden at start + if (isFwd && !p.isShowStart) { + it._show(); + } + // hide if should be hidden at start + else { + if (!p.isShowStart) { + it._hide(); + } + } + }, + onComplete: function onComplete(isFwd) { + // don't touch main `el` if not the last in `then` chain + if (it._isChained) { + return; + } + if (isFwd) { + if (!p.isShowEnd) { + it._hide(); + } + } else if (!p.isShowEnd) { + it._show(); + } + } + }; + }; + + /* + Method that gets called on `soft` show of the module, + it should restore transform styles of the module. + @private + @overrides @ Module + */ + + + Html.prototype._showByTransform = function _showByTransform() { + this._drawTransform(); + }; + + /* + Method to merge `start` and `end` for a property in then record. + @private + @param {String} Property name. + @param {Any} Start value of the property. + @param {Any} End value of the property. + */ + // !! COVER !! + + + Html.prototype._mergeThenProperty = function _mergeThenProperty(key, startValue, endValue) { + // if isnt tween property + var isBoolean = typeof endValue === 'boolean', + curve, + easing; + + if (!h.isTweenProp(key) && !this._nonMergeProps[key] && !isBoolean) { + + var TWEEN_PROPS = {}; + if (h.isObject(endValue) && endValue.to != null) { + for (var _key in endValue) { + if (TWEEN_PROPERTIES[_key] || _key === 'curve') { + TWEEN_PROPS[_key] = endValue[_key]; + delete endValue[_key]; + } + } + // curve = endValue.curve; + // easing = endValue.easing; + endValue = endValue.to; + } + + // if end value is delta - just save it + if (this._isDelta(endValue)) { + + var _TWEEN_PROPS = {}; + for (var _key2 in endValue) { + if (TWEEN_PROPERTIES[_key2] || _key2 === 'curve') { + _TWEEN_PROPS[_key2] = endValue[_key2]; + delete endValue[_key2]; + } + } + var result = this._parseDeltaValues(key, endValue); + + return (0, _extends5.default)({}, result, _TWEEN_PROPS); + } else { + var parsedEndValue = this._parsePreArrayProperty(key, endValue); + // if end value is not delta - merge with start value + if (this._isDelta(startValue)) { + var _extends2; + + // if start value is delta - take the end value + // as start value of the new delta + return (0, _extends5.default)((_extends2 = {}, _extends2[h.getDeltaEnd(startValue)] = parsedEndValue, _extends2), TWEEN_PROPS); + // if both start and end value are not ∆ - make ∆ + } else { + var _extends3; + + return (0, _extends5.default)((_extends3 = {}, _extends3[startValue] = parsedEndValue, _extends3), TWEEN_PROPS); + } + } + // copy the tween values unattended + } else { + return endValue; + } + }; + + return Html; + }(_thenable2.default); + + exports.default = Html; + +/***/ }), +/* 120 */ +/***/ (function(module, exports, __webpack_require__) { + + "use strict"; + + exports.__esModule = true; + + var _assign = __webpack_require__(121); + + var _assign2 = _interopRequireDefault(_assign); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + exports.default = _assign2.default || 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; + }; + +/***/ }), +/* 121 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = { "default": __webpack_require__(122), __esModule: true }; + +/***/ }), +/* 122 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(123); + module.exports = __webpack_require__(14).Object.assign; + +/***/ }), +/* 123 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.3.1 Object.assign(target, source) + var $export = __webpack_require__(12); + + $export($export.S + $export.F, 'Object', {assign: __webpack_require__(124)}); + +/***/ }), +/* 124 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 19.1.2.1 Object.assign(target, source, ...) + var getKeys = __webpack_require__(33) + , gOPS = __webpack_require__(62) + , pIE = __webpack_require__(63) + , toObject = __webpack_require__(49) + , IObject = __webpack_require__(36) + , $assign = Object.assign; + + // should work with symbols and should have deterministic property order (V8 bug) + module.exports = !$assign || __webpack_require__(23)(function(){ + var A = {} + , B = {} + , S = Symbol() + , K = 'abcdefghijklmnopqrst'; + A[S] = 7; + K.split('').forEach(function(k){ B[k] = k; }); + return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; + }) ? function assign(target, source){ // eslint-disable-line no-unused-vars + var T = toObject(target) + , aLen = arguments.length + , index = 1 + , getSymbols = gOPS.f + , isEnum = pIE.f; + while(aLen > index){ + var S = IObject(arguments[index++]) + , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) + , length = keys.length + , j = 0 + , key; + while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; + } return T; + } : $assign; + +/***/ }), +/* 125 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _extends2 = __webpack_require__(120); + + var _extends3 = _interopRequireDefault(_extends2); + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _keys = __webpack_require__(95); + + var _keys2 = _interopRequireDefault(_keys); + + var _timeline = __webpack_require__(110); + + var _timeline2 = _interopRequireDefault(_timeline); + + var _tween = __webpack_require__(101); + + var _tween2 = _interopRequireDefault(_tween); + + var _delta = __webpack_require__(126); + + var _delta2 = _interopRequireDefault(_delta); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + /* + This module's target is to parse options object, + find deltas in it and send them to `Delta` classes. + The `Delta` class is dull - they expect actual parsed deltas + and separated tween options, so we should parse them here. + The timeline of the module controls the `Delta` modules' tweens. + + @param {Object} props Object to set deltas result to (pass to the Delta classes). + @param {Object} options Object to parse the deltas from. + @param {Function} onUpdate onUpdate callback. + @param optional {Object} arrayPropertyMap List of properties with truthy + values which describe properties + that should be parsed as arrays. + @param optional {Object} numberPropertyMap List of properties with truthy + values which describe properties + that should be parsed as numbers + without units. + */ + + // TODO: + // - colors with curves change alpha level too + // const html = new mojs.Html({ + // el: '#js-el', + // x: { 0: 100 }, + // onUpdate () { + // console.log(this._props.originX); + // }, + // originX: { 'white': 'black', curve: 'M0,100 L100, 0' }, + // customProperties: { + // originX: { + // type: 'color', + // default: 'cyan' + // }, + // draw() { console.log('draw'); } + // } + // }); + + + var easing = __webpack_require__(105); + var h = __webpack_require__(71); + + + // get tween properties + var obj = {}; + _tween2.default.prototype._declareDefaults.call(obj); + var keys = (0, _keys2.default)(obj._defaults); + for (var i = 0; i < keys.length; i++) { + obj._defaults[keys[i]] = 1; + } + obj._defaults['timeline'] = 1; + var TWEEN_PROPERTIES = obj._defaults; + + var Deltas = function () { + function Deltas() { + var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + (0, _classCallCheck3.default)(this, Deltas); + + this._o = o; + + this._shortColors = { + transparent: 'rgba(0,0,0,0)', + none: 'rgba(0,0,0,0)', + aqua: 'rgb(0,255,255)', + black: 'rgb(0,0,0)', + blue: 'rgb(0,0,255)', + fuchsia: 'rgb(255,0,255)', + gray: 'rgb(128,128,128)', + green: 'rgb(0,128,0)', + lime: 'rgb(0,255,0)', + maroon: 'rgb(128,0,0)', + navy: 'rgb(0,0,128)', + olive: 'rgb(128,128,0)', + purple: 'rgb(128,0,128)', + red: 'rgb(255,0,0)', + silver: 'rgb(192,192,192)', + teal: 'rgb(0,128,128)', + white: 'rgb(255,255,255)', + yellow: 'rgb(255,255,0)', + orange: 'rgb(255,128,0)' + }; + + this._ignoreDeltasMap = { prevChainModule: 1, masterModule: 1 }; + + this._parseDeltas(o.options); + this._createDeltas(); + this._createTimeline(this._mainTweenOptions); + } + /* + Method to call `refresh` on all child `delta` objects. + @public + @param {Boolean} If before start time (true) or after end time (false). + */ + + + Deltas.prototype.refresh = function refresh(isBefore) { + for (var i = 0; i < this._deltas.length; i++) { + this._deltas[i].refresh(isBefore); + } + return this; + }; + /* + Method to call `restore` on all child `delta` objects. + @public + */ + + + Deltas.prototype.restore = function restore() { + for (var i = 0; i < this._deltas.length; i++) { + this._deltas[i].restore(); + } + return this; + }; + /* + Method to create Timeline. + @private + @param {Object} Timeline options. + */ + + + Deltas.prototype._createTimeline = function _createTimeline() { + var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + // const o = this._o; + // opts.timeline = opts.timeline || {}; + // opts.timeline.callbackOverrides = { + // onUpdate: o.onUpdate, + // onRefresh: o.onUpdate + // } + // send callbacksContext to timeline if set + // o.callbacksContext && (opts.timeline.callbacksContext = o.callbacksContext); + // opts.timeline + this.timeline = new _timeline2.default(); + this.timeline.add(this._deltas); + }; + /* + Method to create Deltas from parsed options. + @private + */ + + + Deltas.prototype._createDeltas = function _createDeltas() { + this._deltas = []; + + // create main delta object + this._deltas.push(this._createDelta(this._mainDeltas, this._mainTweenOptions)); + + // create child delta object + for (var i = 0; i < this._childDeltas.length; i++) { + var delta = this._childDeltas[i]; + this._deltas.push(this._createDelta([delta.delta], delta.tweenOptions)); + } + }; + /* + Method to create Delta object with passed options. + @private + @param {Array} Array of deltas. + @param {Object} Tween properties. + @returns {Object} Delta object + */ + + + Deltas.prototype._createDelta = function _createDelta(deltas, tweenOptions) { + var o = this._o; + return new _delta2.default({ + deltas: deltas, tweenOptions: tweenOptions, + props: o.props, + isChained: o.isChained, + callbacksContext: o.callbacksContext + }); + }; + /* + Method to parse delta objects from options. + @private + @param {Object} Options object to parse the deltas from. + */ + + + Deltas.prototype._parseDeltas = function _parseDeltas(obj) { + // spilt main animation properties and main tween properties + var mainSplit = this._splitTweenOptions(obj); + // main animation properties + var opts = mainSplit.delta; + // main tween properties + this._mainTweenOptions = mainSplit.tweenOptions; + + this._mainDeltas = []; + this._childDeltas = []; + var keys = (0, _keys2.default)(opts); + // loop thru all properties without tween ones + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + // is property is delta - parse it + if (this._isDelta(opts[key]) && !this._ignoreDeltasMap[key]) { + var delta = this._splitAndParseDelta(key, opts[key]); + // if parsed object has no tween values - it's delta of the main object + if (!delta.tweenOptions) { + this._mainDeltas.push(delta.delta); + } + // otherwise it is distinct delta object + else { + this._childDeltas.push(delta); + } + } + } + }; + /* + Method to split tween values and parse single delta record. + @private + @param {String} Property name. + @param {Object} Raw delta object. + @returns {Object} Split object. + @param {Object} tweenOptions Tween properties. + @param {Object} delta Parsed delta. + */ + + + Deltas.prototype._splitAndParseDelta = function _splitAndParseDelta(name, object) { + var split = this._splitTweenOptions(object); + // parse delta in the object + split.delta = this._parseDelta(name, split.delta); + return split; + }; + /* + Method to parse delta by delegating the variables to _parse*Delta methods. + @private + @param {String} Property name. + @param {Object} Raw delta object. + @param {Number} Module index. + */ + + + Deltas.prototype._parseDelta = function _parseDelta(name, object, index) { + // if name is in _o.customProps - parse it regarding the type + return this._o.customProps && this._o.customProps[name] != null ? this._parseDeltaByCustom(name, object, index) : this._parseDeltaByGuess(name, object, index); + }; + /** + Method to parse delta by taking the type from the customProps object. + @private + @param {String} Property name. + @param {Object} Raw delta object. + @param {Number} Module index. + */ + + + Deltas.prototype._parseDeltaByCustom = function _parseDeltaByCustom(name, object, index) { + return this._parseNumberDelta(name, object, index); + // const customRecord = this._o.customProps[name]; + // switch ( customRecord.type.toLowerCase() ) { + // case 'color': { return this._parseColorDelta( name, object ); } + // case 'array': { return this._parseArrayDelta( name, object ); } + // case 'number': { return this._parseNumberDelta( name, object, index ); } + // case 'unit': { return this._parseUnitDelta( name, object, index ); } + // } + }; + /** + Method to parse delta by reasoning about it's value. + @private + @param {String} Property name. + @param {Object} Raw delta object. + @param {Number} Module index. + */ + + + Deltas.prototype._parseDeltaByGuess = function _parseDeltaByGuess(name, object, index) { + var _preparseDelta2 = this._preparseDelta(object), + start = _preparseDelta2.start; + + var o = this._o; + + // color values + if (isNaN(parseFloat(start)) && !start.match(/rand\(/) && !start.match(/stagger\(/)) { + return this._parseColorDelta(name, object); + // array values + } else if (o.arrayPropertyMap && o.arrayPropertyMap[name]) { + return this._parseArrayDelta(name, object); + // unit or number values + } else { + return o.numberPropertyMap && o.numberPropertyMap[name] ? + // if the property is in the number property map - parse it like number + this._parseNumberDelta(name, object, index) + // otherwise - like number with units + : this._parseUnitDelta(name, object, index); + } + }; + /* + Method to separate tween options from delta properties. + @param {Object} Object for separation. + @returns {Object} Object that contains 2 objects + - one delta options + - one tween options ( could be empty if no tween opts ) + */ + + + Deltas.prototype._splitTweenOptions = function _splitTweenOptions(delta) { + delta = (0, _extends3.default)({}, delta); + + var keys = (0, _keys2.default)(delta), + tweenOptions = {}; + var isTween = null; + + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (TWEEN_PROPERTIES[key]) { + if (delta[key] != null) { + tweenOptions[key] = delta[key]; + isTween = true; + } + delete delta[key]; + } + } + return { + delta: delta, + tweenOptions: isTween ? tweenOptions : undefined + }; + }; + /* + Method to check if the property is delta property. + @private + @param {Any} Parameter value to check. + @returns {Boolean} + */ + + + Deltas.prototype._isDelta = function _isDelta(optionsValue) { + var isObject = h.isObject(optionsValue); + isObject = isObject && !optionsValue.unit; + return !(!isObject || h.isArray(optionsValue) || h.isDOM(optionsValue)); + }; + /* + Method to parse color delta values. + @private + @param {String} Name of the property. + @param {Any} Property value. + @returns {Object} Parsed delta. + */ + + + Deltas.prototype._parseColorDelta = function _parseColorDelta(key, value) { + if (key === 'strokeLinecap') { + h.warn('Sorry, stroke-linecap property is not animatable yet, using the start(#{start}) value instead', value); + return {}; + } + var preParse = this._preparseDelta(value); + + var startColorObj = this._makeColorObj(preParse.start), + endColorObj = this._makeColorObj(preParse.end); + + var delta = { + type: 'color', + name: key, + start: startColorObj, + end: endColorObj, + curve: preParse.curve, + delta: { + r: endColorObj.r - startColorObj.r, + g: endColorObj.g - startColorObj.g, + b: endColorObj.b - startColorObj.b, + a: endColorObj.a - startColorObj.a + } + }; + return delta; + }; + /* + Method to parse array delta values. + @private + @param {String} Name of the property. + @param {Any} Property value. + @returns {Object} Parsed delta. + */ + + + Deltas.prototype._parseArrayDelta = function _parseArrayDelta(key, value) { + var preParse = this._preparseDelta(value); + + var startArr = this._strToArr(preParse.start), + endArr = this._strToArr(preParse.end); + + h.normDashArrays(startArr, endArr); + + for (var i = 0; i < startArr.length; i++) { + var end = endArr[i]; + h.mergeUnits(startArr[i], end, key); + } + + var delta = { + type: 'array', + name: key, + start: startArr, + end: endArr, + delta: h.calcArrDelta(startArr, endArr), + curve: preParse.curve + }; + + return delta; + }; + /* + Method to parse numeric delta values with units. + @private + @param {String} Name of the property. + @param {Any} Property value. + @param {Number} Index of the module. + @returns {Object} Parsed delta. + */ + + + Deltas.prototype._parseUnitDelta = function _parseUnitDelta(key, value, index) { + var preParse = this._preparseDelta(value); + + var end = h.parseUnit(h.parseStringOption(preParse.end, index)), + start = h.parseUnit(h.parseStringOption(preParse.start, index)); + + h.mergeUnits(start, end, key); + var delta = { + type: 'unit', + name: key, + start: start, + end: end, + delta: end.value - start.value, + curve: preParse.curve + }; + return delta; + }; + /* + Method to parse numeric delta values without units. + @private + @param {String} Name of the property. + @param {Any} Property value. + @param {Number} Index of the module. + @returns {Object} Parsed delta. + */ + + + Deltas.prototype._parseNumberDelta = function _parseNumberDelta(key, value, index) { + var preParse = this._preparseDelta(value); + + var end = parseFloat(h.parseStringOption(preParse.end, index)), + start = parseFloat(h.parseStringOption(preParse.start, index)); + + var delta = { + type: 'number', + name: key, + start: start, + end: end, + delta: end - start, + curve: preParse.curve + }; + + return delta; + }; + /* + Method to extract `curve` and `start`/`end` values. + @private + @param {Object} Delta object. + @returns {Object} Preparsed delta. + @property {String} Start value. + @property {String, Number} End value. + */ + + + Deltas.prototype._preparseDelta = function _preparseDelta(value) { + // clone value object + value = (0, _extends3.default)({}, value); + // parse curve if exist + var curve = value.curve; + if (curve != null) { + curve = easing.parseEasing(curve); + curve._parent = this; + } + delete value.curve; + // parse start and end values + var start = (0, _keys2.default)(value)[0], + end = value[start]; + + return { start: start, end: end, curve: curve }; + }; + /* + Method to parse color into usable object. + @private + @param {String} Color string. + @returns {Object} Parsed color value. + */ + + + Deltas.prototype._makeColorObj = function _makeColorObj(color) { + // HEX + var colorObj = {}; + if (color[0] === '#') { + var result = /^#?([a-f\d]{1,2})([a-f\d]{1,2})([a-f\d]{1,2})$/i.exec(color); + if (result) { + var r = result[1].length === 2 ? result[1] : result[1] + result[1], + g = result[2].length === 2 ? result[2] : result[2] + result[2], + b = result[3].length === 2 ? result[3] : result[3] + result[3]; + + colorObj = { + r: parseInt(r, 16), g: parseInt(g, 16), b: parseInt(b, 16), a: 1 + }; + } + } + + // not HEX + // shorthand color and rgb() + if (color[0] !== '#') { + var isRgb = color[0] === 'r' && color[1] === 'g' && color[2] === 'b'; + var rgbColor = void 0; + // rgb color + if (isRgb) { + rgbColor = color; + }; + // shorthand color name + if (!isRgb) { + if (!this._shortColors[color]) { + h.div.style.color = color; + rgbColor = h.computedStyle(h.div).color; + } else { + rgbColor = this._shortColors[color]; + } + } + + var regexString1 = '^rgba?\\((\\d{1,3}),\\s?(\\d{1,3}),', + regexString2 = '\\s?(\\d{1,3}),?\\s?(\\d{1}|0?\\.\\d{1,})?\\)$', + _result = new RegExp(regexString1 + regexString2, 'gi').exec(rgbColor), + alpha = parseFloat(_result[4] || 1); + + if (_result) { + colorObj = { + r: parseInt(_result[1], 10), + g: parseInt(_result[2], 10), + b: parseInt(_result[3], 10), + a: alpha != null && !isNaN(alpha) ? alpha : 1 + }; + } + } + + return colorObj; + }; + /* + Method to parse string into array. + @private + @param {String, Number} String or number to parse. + @returns {Array} Parsed array. + */ + + + Deltas.prototype._strToArr = function _strToArr(string) { + var arr = []; + // plain number + if (typeof string === 'number' && !isNaN(string)) { + arr.push(h.parseUnit(string)); + return arr; + } + // string array + string.trim().split(/\s+/gim).forEach(function (str) { + arr.push(h.parseUnit(h.parseIfRand(str))); + }); + return arr; + }; + + return Deltas; + }(); + + exports.default = Deltas; + +/***/ }), +/* 126 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _tween = __webpack_require__(101); + + var _tween2 = _interopRequireDefault(_tween); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var h = __webpack_require__(71); + + var Delta = function () { + function Delta() { + var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + (0, _classCallCheck3.default)(this, Delta); + + this._o = o; + this._createTween(o.tweenOptions); + // initial properties render + !this._o.isChained && this.refresh(true); + } + /* + Method to call `_refresh` method on `tween`. + Use switch between `0` and `1` progress for delta value. + @public + @param {Boolean} If refresh before start time or after. + @returns this. + */ + + + Delta.prototype.refresh = function refresh(isBefore) { + this._previousValues = []; + + var deltas = this._o.deltas; + for (var i = 0; i < deltas.length; i++) { + var name = deltas[i].name; + this._previousValues.push({ + name: name, value: this._o.props[name] + }); + } + + this.tween._refresh(isBefore); + return this; + }; + /* + Method to restore all saved properties from `_previousValues` array. + @public + @returns this. + */ + + + Delta.prototype.restore = function restore() { + var prev = this._previousValues; + for (var i = 0; i < prev.length; i++) { + var record = prev[i]; + this._o.props[record.name] = record.value; + } + return this; + }; + /* + Method to create tween of the delta. + @private + @param {Object} Options object. + */ + + + Delta.prototype._createTween = function _createTween() { + var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + var it = this; + o.callbackOverrides = { + onUpdate: function onUpdate(ep, p) { + it._calcCurrentProps(ep, p); + } + }; + + // if not chained - add the onRefresh callback + // to refresh the tween when needed + if (!this._o.isChained) { + o.callbackOverrides.onRefresh = function (isBefore, ep, p) { + it._calcCurrentProps(ep, p); + }; + } + + o.callbacksContext = this._o.callbacksContext; + this.tween = new _tween2.default(o); + }; + /* + Method to calculate current progress of the deltas. + @private + @param {Number} Eased progress to calculate - [0..1]. + @param {Number} Progress to calculate - [0..1]. + */ + + + Delta.prototype._calcCurrentProps = function _calcCurrentProps(easedProgress, p) { + var deltas = this._o.deltas; + for (var i = 0; i < deltas.length; i++) { + var type = deltas[i].type; + this['_calcCurrent_' + type](deltas[i], easedProgress, p); + } + }; + /* + Method to calc the current color delta value. + @param {Object} Delta + @param {Number} Eased progress [0..1]. + @param {Number} Plain progress [0..1]. + */ + + + Delta.prototype._calcCurrent_color = function _calcCurrent_color(delta, ep, p) { + var r, + g, + b, + a, + start = delta.start, + d = delta.delta; + if (!delta.curve) { + r = parseInt(start.r + ep * d.r, 10); + g = parseInt(start.g + ep * d.g, 10); + b = parseInt(start.b + ep * d.b, 10); + a = parseFloat(start.a + ep * d.a); + } else { + var cp = delta.curve(p); + r = parseInt(cp * (start.r + p * d.r), 10); + g = parseInt(cp * (start.g + p * d.g), 10); + b = parseInt(cp * (start.b + p * d.b), 10); + a = parseFloat(cp * (start.a + p * d.a)); + } + this._o.props[delta.name] = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')'; + }; + /* + Method to calc the current number delta value. + @param {Object} Delta + @param {Number} Eased progress [0..1]. + @param {Number} Plain progress [0..1]. + */ + + + Delta.prototype._calcCurrent_number = function _calcCurrent_number(delta, ep, p) { + this._o.props[delta.name] = !delta.curve ? delta.start + ep * delta.delta : delta.curve(p) * (delta.start + p * delta.delta); + }; + /* + Method to calc the current number with units delta value. + @param {Object} Delta + @param {Number} Eased progress [0..1]. + @param {Number} Plain progress [0..1]. + */ + + + Delta.prototype._calcCurrent_unit = function _calcCurrent_unit(delta, ep, p) { + var currentValue = !delta.curve ? delta.start.value + ep * delta.delta : delta.curve(p) * (delta.start.value + p * delta.delta); + + this._o.props[delta.name] = '' + currentValue + delta.end.unit; + }; + /* + Method to calc the current array delta value. + @param {Object} Delta + @param {Number} Eased progress [0..1]. + @param {Number} Plain progress [0..1]. + */ + + + Delta.prototype._calcCurrent_array = function _calcCurrent_array(delta, ep, p) { + // var arr, + var name = delta.name, + props = this._o.props, + string = ''; + + // to prevent GC bothering with arrays garbage + // if ( h.isArray( props[name] ) ) { + // arr = props[name]; + // arr.length = 0; + // } else { arr = []; } + + // just optimization to prevent curve + // calculations on every array item + var proc = delta.curve ? delta.curve(p) : null; + + for (var i = 0; i < delta.delta.length; i++) { + var item = delta.delta[i], + dash = !delta.curve ? delta.start[i].value + ep * item.value : proc * (delta.start[i].value + p * item.value); + + string += '' + dash + item.unit + ' '; + // arr.push({ + // string: `${dash}${item.unit}`, + // value: dash, + // unit: item.unit, + // }); + } + props[name] = string; + }; + + return Delta; + }(); + + exports.default = Delta; + +/***/ }), +/* 127 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var _keys = __webpack_require__(95); + + var _keys2 = _interopRequireDefault(_keys); + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + var _timeline = __webpack_require__(110); + + var _timeline2 = _interopRequireDefault(_timeline); + + var _tunable = __webpack_require__(116); + + var _tunable2 = _interopRequireDefault(_tunable); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var Stagger = function (_Tunable) { + (0, _inherits3.default)(Stagger, _Tunable); + + function Stagger(options, Module) { + var _ret; + + (0, _classCallCheck3.default)(this, Stagger); + + var _this = (0, _possibleConstructorReturn3.default)(this, _Tunable.call(this)); + + return _ret = _this._init(options, Module), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + /* + Method to create then chain on child modules. + @param {Object} Then options. + @return {Object} this. + */ + + + Stagger.prototype.then = function then(o) { + if (o == null) { + return this; + } + for (var i = 0; i < this._modules.length; i++) { + // get child module's option and pass to the child `then` + this._modules[i].then(this._getOptionByIndex(i, o)); + } + this.timeline._recalcTotalDuration(); + return this; + }; + /* + Method to tune child modules. + @param {Object} Tune options. + @return {Object} this. + */ + + + Stagger.prototype.tune = function tune(o) { + if (o == null) { + return this; + } + for (var i = 0; i < this._modules.length; i++) { + // get child module's option and pass to the child `then` + this._modules[i].tune(this._getOptionByIndex(i, o)); + } + this.timeline._recalcTotalDuration(); + return this; + }; + /* + Method to generate child modules. + @return {Object} this. + */ + + + Stagger.prototype.generate = function generate() { + for (var i = 0; i < this._modules.length; i++) { + // get child module's option and pass to the child `then` + this._modules[i].generate(); + } + this.timeline._recalcTotalDuration(); + return this; + }; + /* + Method to get an option by modulo and name. + @param {String} Name of the property to get. + @param {Number} Index for the modulo calculation. + @param {Object} Options hash to look in. + @return {Any} Property. + */ + + + Stagger.prototype._getOptionByMod = function _getOptionByMod(name, i, store) { + var props = store[name]; + // if not dom list then clone it to array + if (props + '' === '[object NodeList]' || props + '' === '[object HTMLCollection]') props = Array.prototype.slice.call(props, 0); + // get the value in array or return the value itself + var value = _h2.default.isArray(props) ? props[i % props.length] : props; + // check if value has the stagger expression, if so parse it + return _h2.default.parseIfStagger(value, i); + }; + /* + Method to get option by modulo of index. + @param {Number} Index for modulo calculations. + @param {Object} Options hash to look in. + */ + + + Stagger.prototype._getOptionByIndex = function _getOptionByIndex(i, store) { + var _this2 = this; + + var options = {}; + (0, _keys2.default)(store).forEach(function (key) { + return options[key] = _this2._getOptionByMod(key, i, store); + }); + return options; + }; + /* + Method to get total child modules quantity. + @param {String} Name of quantifier in options hash. + @param {Object} Options hash object. + @return {Number} Number of child object that should be defined. + */ + + + Stagger.prototype._getChildQuantity = function _getChildQuantity(name, store) { + // if number was set + if (typeof name === 'number') { + return name; + } + + var quantifier = store[name]; + if (_h2.default.isArray(quantifier)) { + return quantifier.length; + } else if (quantifier + '' === '[object NodeList]') { + return quantifier.length; + } else if (quantifier + '' === '[object HTMLCollection]') { + return Array.prototype.slice.call(quantifier, 0).length; + } else if (quantifier instanceof HTMLElement) { + return 1; + } else if (typeof quantifier == 'string') { + return 1; + } + }; + /* + Method to make stagger form options + @param {Object} Options. + @param {Object} Child class. + */ + + + Stagger.prototype._init = function _init(options, Module) { + var count = this._getChildQuantity(options.quantifier || 'el', options); + this._createTimeline(options);this._modules = []; + for (var i = 0; i < count; i++) { + // get child module's option + var option = this._getOptionByIndex(i, options); + option.isRunLess = true; + // set index of the module + option.index = i; + // create child module + var module = new Module(option);this._modules.push(module); + // add child module's timeline to the self timeline + this.timeline.add(module); + } + return this; + }; + /* + Method to create timeline. + @param {Object} Timeline options. + */ + + + Stagger.prototype._createTimeline = function _createTimeline() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + this.timeline = new _timeline2.default(options.timeline); + }; + + /* @overrides @ Tweenable */ + + + Stagger.prototype._makeTween = function _makeTween() {}; + + Stagger.prototype._makeTimeline = function _makeTimeline() {}; + + return Stagger; + }(_tunable2.default); + + module.exports = function (Module) { + return function (options) { + return new Stagger(options, Module); + }; + }; + +/***/ }), +/* 128 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + var _tween = __webpack_require__(101); + + var _tween2 = _interopRequireDefault(_tween); + + var _timeline = __webpack_require__(110); + + var _timeline2 = _interopRequireDefault(_timeline); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + /* + Class for toggling opacity on bunch of elements + @class Spriter + @todo + - add isForce3d option + - add run new option merging + - add then chains + */ + var Spriter = function () { + /* + Defaults/APIs + */ + Spriter.prototype._declareDefaults = function _declareDefaults() { + this._defaults = { + /* + Duration + @property duration + @type {Number} + */ + duration: 500, + /* + Delay + @property delay + @type {Number} + */ + delay: 0, + /* + Easing. Please see the + [timeline module parseEasing function](timeline.coffee.html#parseEasing) + for all avaliable options. + @property easing + @type {String, Function} + */ + easing: 'linear.none', + /* + Repeat times count + + @property repeat + @type {Number} + */ + repeat: 0, + /* + Yoyo option defines if animation should be altered on repeat. + + @property yoyo + @type {Boolean} + */ + yoyo: false, + /* + isRunLess option prevents animation from running immediately after + initialization. + + @property isRunLess + @type {Boolean} + */ + isRunLess: false, + /* + isShowEnd option defines if the last frame should be shown when + animation completed. + + @property isShowEnd + @type {Boolean} + */ + isShowEnd: false, + /* + onStart callback will be called once on animation start. + + @property onStart + @type {Function} + */ + onStart: null, + /* + onUpdate callback will be called on every frame of the animation. + The current progress in range **[0,1]** will be passed to the callback. + + @property onUpdate + @type {Function} + */ + onUpdate: null, + /* + onComplete callback will be called once on animation complete. + + @property onComplete + @type {Function} + */ + onComplete: null + }; + }; + + function Spriter() { + var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + (0, _classCallCheck3.default)(this, Spriter); + + this.o = o; + if (!this.o.el) { + return _h2.default.error('No "el" option specified, aborting'); + } + this._vars();this._declareDefaults();this._extendDefaults();this._parseFrames(); + if (this._frames.length <= 2) _h2.default.warn('Spriter: only ' + this._frames.length + ' frames found'); + if (this._frames.length < 1) _h2.default.error("Spriter: there is no frames to animate, aborting"); + this._createTween(); + return this; + } + /* + Method to declare some variables. + + @method run + @param {Object} New options + @todo Implement new object merging + */ + + + Spriter.prototype._vars = function _vars() { + this._props = _h2.default.cloneObj(this.o); + this.el = this.o.el; + this._frames = []; + }; + /* + Method to run the spriter on demand. + + @method run + @param {Object} New options + @todo Implement new object merging + */ + + + Spriter.prototype.run = function run(o) { + return this.timeline.play(); + }; + /* + Method to extend _props by options(this.o) + + @method _extendDefaults + */ + + + Spriter.prototype._extendDefaults = function _extendDefaults() { + return _h2.default.extend(this._props, this._defaults); + }; + /* + Method to parse frames as child nodes of el. + + @method _parseFrames + */ + + + Spriter.prototype._parseFrames = function _parseFrames() { + this._frames = Array.prototype.slice.call(this.el.children, 0); + this._frames.forEach(function (frame, i) { + return frame.style.opacity = 0; + }); + this._frameStep = 1 / this._frames.length; + }; + + /* + Method to create tween and timeline and supply callbacks. + + @method _createTween + */ + + + Spriter.prototype._createTween = function _createTween() { + var _this = this; + + this._tween = new _tween2.default({ + duration: this._props.duration, + delay: this._props.delay, + yoyo: this._props.yoyo, + repeat: this._props.repeat, + easing: this._props.easing, + onStart: function onStart() { + return _this._props.onStart && _this._props.onStart(); + }, + onComplete: function onComplete() { + return _this._props.onComplete && _this._props.onComplete(); + }, + onUpdate: function onUpdate(p) { + return _this._setProgress(p); + } + }); + this.timeline = new _timeline2.default();this.timeline.add(this._tween); + if (!this._props.isRunLess) this._startTween(); + }; + + /* + Method to start tween + + @method _startTween + */ + + + Spriter.prototype._startTween = function _startTween() { + var _this2 = this; + + setTimeout(function () { + return _this2.timeline.play(); + }, 1); + }; + /* + Method to set progress of the sprite + + @method _setProgress + @param {Number} Progress in range **[0,1]** + */ + + + Spriter.prototype._setProgress = function _setProgress(p) { + // get the frame number + var proc = Math.floor(p / this._frameStep); + // react only if frame changes + if (this._prevFrame != this._frames[proc]) { + // if previous frame isnt current one, hide it + if (this._prevFrame) { + this._prevFrame.style.opacity = 0; + } + // if end of animation and isShowEnd flag was specified + // then show the last frame else show current frame + var currentNum = p === 1 && this._props.isShowEnd ? proc - 1 : proc; + // show the current frame + if (this._frames[currentNum]) { + this._frames[currentNum].style.opacity = 1; + } + // set previous frame as current + this._prevFrame = this._frames[proc]; + } + if (this._props.onUpdate) { + this._props.onUpdate(p); + } + }; + + return Spriter; + }(); + + exports.default = Spriter; + +/***/ }), +/* 129 */ +/***/ (function(module, exports, __webpack_require__) { + + var MotionPath, Timeline, Tween, h, resize, + bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; + + h = __webpack_require__(71); + + resize = __webpack_require__(130); + + Tween = __webpack_require__(101)["default"]; + + Timeline = __webpack_require__(110)["default"]; + + MotionPath = (function() { + MotionPath.prototype.defaults = { + path: null, + curvature: { + x: '75%', + y: '50%' + }, + isCompositeLayer: true, + delay: 0, + duration: 1000, + easing: null, + repeat: 0, + yoyo: false, + onStart: null, + onComplete: null, + onUpdate: null, + offsetX: 0, + offsetY: 0, + angleOffset: null, + pathStart: 0, + pathEnd: 1, + motionBlur: 0, + transformOrigin: null, + isAngle: false, + isReverse: false, + isRunLess: false, + isPresetPosition: true + }; + + function MotionPath(o1) { + this.o = o1 != null ? o1 : {}; + this.calcHeight = bind(this.calcHeight, this); + if (this.vars()) { + return; + } + this.createTween(); + this; + } + + MotionPath.prototype.vars = function() { + this.getScaler = h.bind(this.getScaler, this); + this.resize = resize; + this.props = h.cloneObj(this.defaults); + this.extendOptions(this.o); + this.isMotionBlurReset = h.isSafari || h.isIE; + this.isMotionBlurReset && (this.props.motionBlur = 0); + this.history = [h.cloneObj(this.props)]; + return this.postVars(); + }; + + MotionPath.prototype.curveToPath = function(o) { + var angle, curvature, curvatureX, curvatureY, curvePoint, curveXPoint, dX, dY, endPoint, path, percent, radius, start; + path = document.createElementNS(h.NS, 'path'); + start = o.start; + endPoint = { + x: start.x + o.shift.x, + y: start.x + o.shift.y + }; + curvature = o.curvature; + dX = o.shift.x; + dY = o.shift.y; + radius = Math.sqrt(dX * dX + dY * dY); + percent = radius / 100; + angle = Math.atan(dY / dX) * (180 / Math.PI) + 90; + if (o.shift.x < 0) { + angle = angle + 180; + } + curvatureX = h.parseUnit(curvature.x); + curvatureX = curvatureX.unit === '%' ? curvatureX.value * percent : curvatureX.value; + curveXPoint = h.getRadialPoint({ + center: { + x: start.x, + y: start.y + }, + radius: curvatureX, + angle: angle + }); + curvatureY = h.parseUnit(curvature.y); + curvatureY = curvatureY.unit === '%' ? curvatureY.value * percent : curvatureY.value; + curvePoint = h.getRadialPoint({ + center: { + x: curveXPoint.x, + y: curveXPoint.y + }, + radius: curvatureY, + angle: angle + 90 + }); + path.setAttribute('d', "M" + start.x + "," + start.y + " Q" + curvePoint.x + "," + curvePoint.y + " " + endPoint.x + "," + endPoint.y); + return path; + }; + + MotionPath.prototype.postVars = function() { + this.props.pathStart = h.clamp(this.props.pathStart, 0, 1); + this.props.pathEnd = h.clamp(this.props.pathEnd, this.props.pathStart, 1); + this.angle = 0; + this.speedX = 0; + this.speedY = 0; + this.blurX = 0; + this.blurY = 0; + this.prevCoords = {}; + this.blurAmount = 20; + this.props.motionBlur = h.clamp(this.props.motionBlur, 0, 1); + this.onUpdate = this.props.onUpdate; + if (!this.o.el) { + h.error('Missed "el" option. It could be a selector, DOMNode or another module.'); + return true; + } + this.el = this.parseEl(this.props.el); + this.props.motionBlur > 0 && this.createFilter(); + this.path = this.getPath(); + if (!this.path.getAttribute('d')) { + h.error('Path has no coordinates to work with, aborting'); + return true; + } + this.len = this.path.getTotalLength(); + this.slicedLen = this.len * (this.props.pathEnd - this.props.pathStart); + this.startLen = this.props.pathStart * this.len; + this.fill = this.props.fill; + if (this.fill != null) { + this.container = this.parseEl(this.props.fill.container); + this.fillRule = this.props.fill.fillRule || 'all'; + this.getScaler(); + if (this.container != null) { + this.removeEvent(this.container, 'onresize', this.getScaler); + return this.addEvent(this.container, 'onresize', this.getScaler); + } + } + }; + + MotionPath.prototype.addEvent = function(el, type, handler) { + return el.addEventListener(type, handler, false); + }; + + MotionPath.prototype.removeEvent = function(el, type, handler) { + return el.removeEventListener(type, handler, false); + }; + + MotionPath.prototype.createFilter = function() { + var div, svg; + div = document.createElement('div'); + this.filterID = "filter-" + (h.getUniqID()); + div.innerHTML = "\n \n \n \n \n \n \n \n \n"; + svg = div.querySelector("#svg-" + this.filterID); + this.filter = svg.querySelector('#blur'); + this.filterOffset = svg.querySelector('#blur-offset'); + document.body.insertBefore(svg, document.body.firstChild); + this.el.style['filter'] = "url(#" + this.filterID + ")"; + return this.el.style[h.prefix.css + "filter"] = "url(#" + this.filterID + ")"; + }; + + MotionPath.prototype.parseEl = function(el) { + if (typeof el === 'string') { + return document.querySelector(el); + } + if (el instanceof HTMLElement) { + return el; + } + if (el._setProp != null) { + this.isModule = true; + return el; + } + }; + + MotionPath.prototype.getPath = function() { + var path; + path = h.parsePath(this.props.path); + if (path) { + return path; + } + if (this.props.path.x || this.props.path.y) { + return this.curveToPath({ + start: { + x: 0, + y: 0 + }, + shift: { + x: this.props.path.x || 0, + y: this.props.path.y || 0 + }, + curvature: { + x: this.props.curvature.x || this.defaults.curvature.x, + y: this.props.curvature.y || this.defaults.curvature.y + } + }); + } + }; + + MotionPath.prototype.getScaler = function() { + var end, size, start; + this.cSize = { + width: this.container.offsetWidth || 0, + height: this.container.offsetHeight || 0 + }; + start = this.path.getPointAtLength(0); + end = this.path.getPointAtLength(this.len); + size = {}; + this.scaler = {}; + size.width = end.x >= start.x ? end.x - start.x : start.x - end.x; + size.height = end.y >= start.y ? end.y - start.y : start.y - end.y; + switch (this.fillRule) { + case 'all': + this.calcWidth(size); + return this.calcHeight(size); + case 'width': + this.calcWidth(size); + return this.scaler.y = this.scaler.x; + case 'height': + this.calcHeight(size); + return this.scaler.x = this.scaler.y; + } + }; + + MotionPath.prototype.calcWidth = function(size) { + this.scaler.x = this.cSize.width / size.width; + return !isFinite(this.scaler.x) && (this.scaler.x = 1); + }; + + MotionPath.prototype.calcHeight = function(size) { + this.scaler.y = this.cSize.height / size.height; + return !isFinite(this.scaler.y) && (this.scaler.y = 1); + }; + + MotionPath.prototype.run = function(o) { + var fistItem, key, value; + if (o) { + fistItem = this.history[0]; + for (key in o) { + value = o[key]; + if (h.callbacksMap[key] || h.tweenOptionMap[key]) { + h.warn("the property \"" + key + "\" property can not be overridden on run yet"); + delete o[key]; + } else { + this.history[0][key] = value; + } + } + this.tuneOptions(o); + } + return this.startTween(); + }; + + MotionPath.prototype.createTween = function() { + this.tween = new Tween({ + duration: this.props.duration, + delay: this.props.delay, + yoyo: this.props.yoyo, + repeat: this.props.repeat, + easing: this.props.easing, + onStart: (function(_this) { + return function() { + var ref; + return (ref = _this.props.onStart) != null ? ref.apply(_this) : void 0; + }; + })(this), + onComplete: (function(_this) { + return function() { + var ref; + _this.props.motionBlur && _this.setBlur({ + blur: { + x: 0, + y: 0 + }, + offset: { + x: 0, + y: 0 + } + }); + return (ref = _this.props.onComplete) != null ? ref.apply(_this) : void 0; + }; + })(this), + onUpdate: (function(_this) { + return function(p) { + return _this.setProgress(p); + }; + })(this), + onFirstUpdate: (function(_this) { + return function(isForward, isYoyo) { + if (!isForward) { + return _this.history.length > 1 && _this.tuneOptions(_this.history[0]); + } + }; + })(this) + }); + this.timeline = new Timeline; + this.timeline.add(this.tween); + !this.props.isRunLess && this.startTween(); + return this.props.isPresetPosition && this.setProgress(0, true); + }; + + MotionPath.prototype.startTween = function() { + return setTimeout(((function(_this) { + return function() { + var ref; + return (ref = _this.timeline) != null ? ref.play() : void 0; + }; + })(this)), 1); + }; + + MotionPath.prototype.setProgress = function(p, isInit) { + var len, point, x, y; + len = this.startLen + (!this.props.isReverse ? p * this.slicedLen : (1 - p) * this.slicedLen); + point = this.path.getPointAtLength(len); + x = point.x + this.props.offsetX; + y = point.y + this.props.offsetY; + this._getCurrentAngle(point, len, p); + this._setTransformOrigin(p); + this._setTransform(x, y, p, isInit); + return this.props.motionBlur && this.makeMotionBlur(x, y); + }; + + MotionPath.prototype.setElPosition = function(x, y, p) { + var composite, isComposite, rotate, transform; + rotate = this.angle !== 0 ? "rotate(" + this.angle + "deg)" : ''; + isComposite = this.props.isCompositeLayer && h.is3d; + composite = isComposite ? 'translateZ(0)' : ''; + transform = "translate(" + x + "px," + y + "px) " + rotate + " " + composite; + return h.setPrefixedStyle(this.el, 'transform', transform); + }; + + MotionPath.prototype.setModulePosition = function(x, y) { + this.el._setProp({ + shiftX: x + "px", + shiftY: y + "px", + angle: this.angle + }); + return this.el._draw(); + }; + + MotionPath.prototype._getCurrentAngle = function(point, len, p) { + var atan, isTransformFunOrigin, prevPoint, x1, x2; + isTransformFunOrigin = typeof this.props.transformOrigin === 'function'; + if (this.props.isAngle || (this.props.angleOffset != null) || isTransformFunOrigin) { + prevPoint = this.path.getPointAtLength(len - 1); + x1 = point.y - prevPoint.y; + x2 = point.x - prevPoint.x; + atan = Math.atan(x1 / x2); + !isFinite(atan) && (atan = 0); + this.angle = atan * h.RAD_TO_DEG; + if ((typeof this.props.angleOffset) !== 'function') { + return this.angle += this.props.angleOffset || 0; + } else { + return this.angle = this.props.angleOffset.call(this, this.angle, p); + } + } else { + return this.angle = 0; + } + }; + + MotionPath.prototype._setTransform = function(x, y, p, isInit) { + var transform; + if (this.scaler) { + x *= this.scaler.x; + y *= this.scaler.y; + } + transform = null; + if (!isInit) { + transform = typeof this.onUpdate === "function" ? this.onUpdate(p, { + x: x, + y: y, + angle: this.angle + }) : void 0; + } + if (this.isModule) { + return this.setModulePosition(x, y); + } else { + if (typeof transform !== 'string') { + return this.setElPosition(x, y, p); + } else { + return h.setPrefixedStyle(this.el, 'transform', transform); + } + } + }; + + MotionPath.prototype._setTransformOrigin = function(p) { + var isTransformFunOrigin, tOrigin; + if (this.props.transformOrigin) { + isTransformFunOrigin = typeof this.props.transformOrigin === 'function'; + tOrigin = !isTransformFunOrigin ? this.props.transformOrigin : this.props.transformOrigin(this.angle, p); + return h.setPrefixedStyle(this.el, 'transform-origin', tOrigin); + } + }; + + MotionPath.prototype.makeMotionBlur = function(x, y) { + var absoluteAngle, coords, dX, dY, signX, signY, tailAngle; + tailAngle = 0; + signX = 1; + signY = 1; + if ((this.prevCoords.x == null) || (this.prevCoords.y == null)) { + this.speedX = 0; + this.speedY = 0; + } else { + dX = x - this.prevCoords.x; + dY = y - this.prevCoords.y; + if (dX > 0) { + signX = -1; + } + if (signX < 0) { + signY = -1; + } + this.speedX = Math.abs(dX); + this.speedY = Math.abs(dY); + tailAngle = Math.atan(dY / dX) * (180 / Math.PI) + 90; + } + absoluteAngle = tailAngle - this.angle; + coords = this.angToCoords(absoluteAngle); + this.blurX = h.clamp((this.speedX / 16) * this.props.motionBlur, 0, 1); + this.blurY = h.clamp((this.speedY / 16) * this.props.motionBlur, 0, 1); + this.setBlur({ + blur: { + x: 3 * this.blurX * this.blurAmount * Math.abs(coords.x), + y: 3 * this.blurY * this.blurAmount * Math.abs(coords.y) + }, + offset: { + x: 3 * signX * this.blurX * coords.x * this.blurAmount, + y: 3 * signY * this.blurY * coords.y * this.blurAmount + } + }); + this.prevCoords.x = x; + return this.prevCoords.y = y; + }; + + MotionPath.prototype.setBlur = function(o) { + if (!this.isMotionBlurReset) { + this.filter.setAttribute('stdDeviation', o.blur.x + "," + o.blur.y); + this.filterOffset.setAttribute('dx', o.offset.x); + return this.filterOffset.setAttribute('dy', o.offset.y); + } + }; + + MotionPath.prototype.extendDefaults = function(o) { + var key, results, value; + results = []; + for (key in o) { + value = o[key]; + results.push(this[key] = value); + } + return results; + }; + + MotionPath.prototype.extendOptions = function(o) { + var key, results, value; + results = []; + for (key in o) { + value = o[key]; + results.push(this.props[key] = value); + } + return results; + }; + + MotionPath.prototype.then = function(o) { + var it, key, opts, prevOptions, value; + prevOptions = this.history[this.history.length - 1]; + opts = {}; + for (key in prevOptions) { + value = prevOptions[key]; + if (!h.callbacksMap[key] && !h.tweenOptionMap[key] || key === 'duration') { + if (o[key] == null) { + o[key] = value; + } + } else { + if (o[key] == null) { + o[key] = void 0; + } + } + if (h.tweenOptionMap[key]) { + opts[key] = key !== 'duration' ? o[key] : o[key] != null ? o[key] : prevOptions[key]; + } + } + this.history.push(o); + it = this; + opts.onUpdate = (function(_this) { + return function(p) { + return _this.setProgress(p); + }; + })(this); + opts.onStart = (function(_this) { + return function() { + var ref; + return (ref = _this.props.onStart) != null ? ref.apply(_this) : void 0; + }; + })(this); + opts.onComplete = (function(_this) { + return function() { + var ref; + return (ref = _this.props.onComplete) != null ? ref.apply(_this) : void 0; + }; + })(this); + opts.onFirstUpdate = function() { + return it.tuneOptions(it.history[this.index]); + }; + opts.isChained = !o.delay; + this.timeline.append(new Tween(opts)); + return this; + }; + + MotionPath.prototype.tuneOptions = function(o) { + this.extendOptions(o); + return this.postVars(); + }; + + MotionPath.prototype.angToCoords = function(angle) { + var radAngle, x, y; + angle = angle % 360; + radAngle = ((angle - 90) * Math.PI) / 180; + x = Math.cos(radAngle); + y = Math.sin(radAngle); + x = x < 0 ? Math.max(x, -0.7) : Math.min(x, .7); + y = y < 0 ? Math.max(y, -0.7) : Math.min(y, .7); + return { + x: x * 1.428571429, + y: y * 1.428571429 + }; + }; + + return MotionPath; + + })(); + + module.exports = MotionPath; + + +/***/ }), +/* 130 */ +/***/ (function(module, exports, __webpack_require__) { + + var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; + /*! + LegoMushroom @legomushroom http://legomushroom.com + MIT License 2014 + */ + + /* istanbul ignore next */ + (function() { + var Main; + Main = (function() { + function Main(o) { + this.o = o != null ? o : {}; + if (window.isAnyResizeEventInited) { + return; + } + this.vars(); + this.redefineProto(); + } + + Main.prototype.vars = function() { + window.isAnyResizeEventInited = true; + this.allowedProtos = [HTMLDivElement, HTMLFormElement, HTMLLinkElement, HTMLBodyElement, HTMLParagraphElement, HTMLFieldSetElement, HTMLLegendElement, HTMLLabelElement, HTMLButtonElement, HTMLUListElement, HTMLOListElement, HTMLLIElement, HTMLHeadingElement, HTMLQuoteElement, HTMLPreElement, HTMLBRElement, HTMLFontElement, HTMLHRElement, HTMLModElement, HTMLParamElement, HTMLMapElement, HTMLTableElement, HTMLTableCaptionElement, HTMLImageElement, HTMLTableCellElement, HTMLSelectElement, HTMLInputElement, HTMLTextAreaElement, HTMLAnchorElement, HTMLObjectElement, HTMLTableColElement, HTMLTableSectionElement, HTMLTableRowElement]; + return this.timerElements = { + img: 1, + textarea: 1, + input: 1, + embed: 1, + object: 1, + svg: 1, + canvas: 1, + tr: 1, + tbody: 1, + thead: 1, + tfoot: 1, + a: 1, + select: 1, + option: 1, + optgroup: 1, + dl: 1, + dt: 1, + br: 1, + basefont: 1, + font: 1, + col: 1, + iframe: 1 + }; + }; + + Main.prototype.redefineProto = function() { + var i, it, proto, t; + it = this; + return t = (function() { + var j, len, ref, results; + ref = this.allowedProtos; + results = []; + for (i = j = 0, len = ref.length; j < len; i = ++j) { + proto = ref[i]; + if (proto.prototype == null) { + continue; + } + results.push((function(proto) { + var listener, remover; + listener = proto.prototype.addEventListener || proto.prototype.attachEvent; + (function(listener) { + var wrappedListener; + wrappedListener = function() { + var option; + if (this !== window || this !== document) { + option = arguments[0] === 'onresize' && !this.isAnyResizeEventInited; + option && it.handleResize({ + args: arguments, + that: this + }); + } + return listener.apply(this, arguments); + }; + if (proto.prototype.addEventListener) { + return proto.prototype.addEventListener = wrappedListener; + } else if (proto.prototype.attachEvent) { + return proto.prototype.attachEvent = wrappedListener; + } + })(listener); + remover = proto.prototype.removeEventListener || proto.prototype.detachEvent; + return (function(remover) { + var wrappedRemover; + wrappedRemover = function() { + this.isAnyResizeEventInited = false; + this.iframe && this.removeChild(this.iframe); + return remover.apply(this, arguments); + }; + if (proto.prototype.removeEventListener) { + return proto.prototype.removeEventListener = wrappedRemover; + } else if (proto.prototype.detachEvent) { + return proto.prototype.detachEvent = wrappedListener; + } + })(remover); + })(proto)); + } + return results; + }).call(this); + }; + + Main.prototype.handleResize = function(args) { + var computedStyle, el, iframe, isEmpty, isNoPos, isStatic, ref; + el = args.that; + if (!this.timerElements[el.tagName.toLowerCase()]) { + iframe = document.createElement('iframe'); + el.appendChild(iframe); + iframe.style.width = '100%'; + iframe.style.height = '100%'; + iframe.style.position = 'absolute'; + iframe.style.zIndex = -999; + iframe.style.opacity = 0; + iframe.style.top = 0; + iframe.style.left = 0; + computedStyle = window.getComputedStyle ? getComputedStyle(el) : el.currentStyle; + isNoPos = el.style.position === ''; + isStatic = computedStyle.position === 'static' && isNoPos; + isEmpty = computedStyle.position === '' && el.style.position === ''; + if (isStatic || isEmpty) { + el.style.position = 'relative'; + } + if ((ref = iframe.contentWindow) != null) { + ref.onresize = (function(_this) { + return function(e) { + return _this.dispatchEvent(el); + }; + })(this); + } + el.iframe = iframe; + } else { + this.initTimer(el); + } + return el.isAnyResizeEventInited = true; + }; + + Main.prototype.initTimer = function(el) { + var height, width; + width = 0; + height = 0; + return this.interval = setInterval((function(_this) { + return function() { + var newHeight, newWidth; + newWidth = el.offsetWidth; + newHeight = el.offsetHeight; + if (newWidth !== width || newHeight !== height) { + _this.dispatchEvent(el); + width = newWidth; + return height = newHeight; + } + }; + })(this), this.o.interval || 62.5); + }; + + Main.prototype.dispatchEvent = function(el) { + var e; + if (document.createEvent) { + e = document.createEvent('HTMLEvents'); + e.initEvent('onresize', false, false); + return el.dispatchEvent(e); + } else if (document.createEventObject) { + e = document.createEventObject(); + return el.fireEvent('onresize', e); + } else { + return false; + } + }; + + Main.prototype.destroy = function() { + var i, it, j, len, proto, ref, results; + clearInterval(this.interval); + this.interval = null; + window.isAnyResizeEventInited = false; + it = this; + ref = this.allowedProtos; + results = []; + for (i = j = 0, len = ref.length; j < len; i = ++j) { + proto = ref[i]; + if (proto.prototype == null) { + continue; + } + results.push((function(proto) { + var listener; + listener = proto.prototype.addEventListener || proto.prototype.attachEvent; + if (proto.prototype.addEventListener) { + proto.prototype.addEventListener = Element.prototype.addEventListener; + } else if (proto.prototype.attachEvent) { + proto.prototype.attachEvent = Element.prototype.attachEvent; + } + if (proto.prototype.removeEventListener) { + return proto.prototype.removeEventListener = Element.prototype.removeEventListener; + } else if (proto.prototype.detachEvent) { + return proto.prototype.detachEvent = Element.prototype.detachEvent; + } + })(proto)); + } + return results; + }; + + return Main; + + })(); + if (true) { + return !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() { + return new Main; + }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else {} + })(); + + +/***/ }) +/******/ ]) +}); +; + +/***/ }), + +/***/ "./node_modules/qrcode/lib/browser.js": +/*!********************************************!*\ + !*** ./node_modules/qrcode/lib/browser.js ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var canPromise = __webpack_require__(/*! ./can-promise */ "./node_modules/qrcode/lib/can-promise.js") + +var QRCode = __webpack_require__(/*! ./core/qrcode */ "./node_modules/qrcode/lib/core/qrcode.js") +var CanvasRenderer = __webpack_require__(/*! ./renderer/canvas */ "./node_modules/qrcode/lib/renderer/canvas.js") +var SvgRenderer = __webpack_require__(/*! ./renderer/svg-tag.js */ "./node_modules/qrcode/lib/renderer/svg-tag.js") + +function renderCanvas (renderFunc, canvas, text, opts, cb) { + var args = [].slice.call(arguments, 1) + var argsNum = args.length + var isLastArgCb = typeof args[argsNum - 1] === 'function' + + if (!isLastArgCb && !canPromise()) { + throw new Error('Callback required as last argument') + } + + if (isLastArgCb) { + if (argsNum < 2) { + throw new Error('Too few arguments provided') + } + + if (argsNum === 2) { + cb = text + text = canvas + canvas = opts = undefined + } else if (argsNum === 3) { + if (canvas.getContext && typeof cb === 'undefined') { + cb = opts + opts = undefined + } else { + cb = opts + opts = text + text = canvas + canvas = undefined + } + } + } else { + if (argsNum < 1) { + throw new Error('Too few arguments provided') + } + + if (argsNum === 1) { + text = canvas + canvas = opts = undefined + } else if (argsNum === 2 && !canvas.getContext) { + opts = text + text = canvas + canvas = undefined + } + + return new Promise(function (resolve, reject) { + try { + var data = QRCode.create(text, opts) + resolve(renderFunc(data, canvas, opts)) + } catch (e) { + reject(e) + } + }) + } + + try { + var data = QRCode.create(text, opts) + cb(null, renderFunc(data, canvas, opts)) + } catch (e) { + cb(e) + } +} + +exports.create = QRCode.create +exports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render) +exports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL) + +// only svg for now. +exports.toString = renderCanvas.bind(null, function (data, _, opts) { + return SvgRenderer.render(data, opts) +}) + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/can-promise.js": +/*!************************************************!*\ + !*** ./node_modules/qrcode/lib/can-promise.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +// can-promise has a crash in some versions of react native that dont have +// standard global objects +// https://github.com/soldair/node-qrcode/issues/157 + +module.exports = function () { + return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/alignment-pattern.js": +/*!***********************************************************!*\ + !*** ./node_modules/qrcode/lib/core/alignment-pattern.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +/** + * Alignment pattern are fixed reference pattern in defined positions + * in a matrix symbology, which enables the decode software to re-synchronise + * the coordinate mapping of the image modules in the event of moderate amounts + * of distortion of the image. + * + * Alignment patterns are present only in QR Code symbols of version 2 or larger + * and their number depends on the symbol version. + */ + +var getSymbolSize = __webpack_require__(/*! ./utils */ "./node_modules/qrcode/lib/core/utils.js").getSymbolSize + +/** + * Calculate the row/column coordinates of the center module of each alignment pattern + * for the specified QR Code version. + * + * The alignment patterns are positioned symmetrically on either side of the diagonal + * running from the top left corner of the symbol to the bottom right corner. + * + * Since positions are simmetrical only half of the coordinates are returned. + * Each item of the array will represent in turn the x and y coordinate. + * @see {@link getPositions} + * + * @param {Number} version QR Code version + * @return {Array} Array of coordinate + */ +exports.getRowColCoords = function getRowColCoords (version) { + if (version === 1) return [] + + var posCount = Math.floor(version / 7) + 2 + var size = getSymbolSize(version) + var intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2 + var positions = [size - 7] // Last coord is always (size - 7) + + for (var i = 1; i < posCount - 1; i++) { + positions[i] = positions[i - 1] - intervals + } + + positions.push(6) // First coord is always 6 + + return positions.reverse() +} + +/** + * Returns an array containing the positions of each alignment pattern. + * Each array's element represent the center point of the pattern as (x, y) coordinates + * + * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords} + * and filtering out the items that overlaps with finder pattern + * + * @example + * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38. + * The alignment patterns, therefore, are to be centered on (row, column) + * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38). + * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns + * and are not therefore used for alignment patterns. + * + * var pos = getPositions(7) + * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]] + * + * @param {Number} version QR Code version + * @return {Array} Array of coordinates + */ +exports.getPositions = function getPositions (version) { + var coords = [] + var pos = exports.getRowColCoords(version) + var posLength = pos.length + + for (var i = 0; i < posLength; i++) { + for (var j = 0; j < posLength; j++) { + // Skip if position is occupied by finder patterns + if ((i === 0 && j === 0) || // top-left + (i === 0 && j === posLength - 1) || // bottom-left + (i === posLength - 1 && j === 0)) { // top-right + continue + } + + coords.push([pos[i], pos[j]]) + } + } + + return coords +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/alphanumeric-data.js": +/*!***********************************************************!*\ + !*** ./node_modules/qrcode/lib/core/alphanumeric-data.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Mode = __webpack_require__(/*! ./mode */ "./node_modules/qrcode/lib/core/mode.js") + +/** + * Array of characters available in alphanumeric mode + * + * As per QR Code specification, to each character + * is assigned a value from 0 to 44 which in this case coincides + * with the array index + * + * @type {Array} + */ +var ALPHA_NUM_CHARS = [ + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', + 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', + ' ', '$', '%', '*', '+', '-', '.', '/', ':' +] + +function AlphanumericData (data) { + this.mode = Mode.ALPHANUMERIC + this.data = data +} + +AlphanumericData.getBitsLength = function getBitsLength (length) { + return 11 * Math.floor(length / 2) + 6 * (length % 2) +} + +AlphanumericData.prototype.getLength = function getLength () { + return this.data.length +} + +AlphanumericData.prototype.getBitsLength = function getBitsLength () { + return AlphanumericData.getBitsLength(this.data.length) +} + +AlphanumericData.prototype.write = function write (bitBuffer) { + var i + + // Input data characters are divided into groups of two characters + // and encoded as 11-bit binary codes. + for (i = 0; i + 2 <= this.data.length; i += 2) { + // The character value of the first character is multiplied by 45 + var value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45 + + // The character value of the second digit is added to the product + value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1]) + + // The sum is then stored as 11-bit binary number + bitBuffer.put(value, 11) + } + + // If the number of input data characters is not a multiple of two, + // the character value of the final character is encoded as a 6-bit binary number. + if (this.data.length % 2) { + bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6) + } +} + +module.exports = AlphanumericData + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/bit-buffer.js": +/*!****************************************************!*\ + !*** ./node_modules/qrcode/lib/core/bit-buffer.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +function BitBuffer () { + this.buffer = [] + this.length = 0 +} + +BitBuffer.prototype = { + + get: function (index) { + var bufIndex = Math.floor(index / 8) + return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1 + }, + + put: function (num, length) { + for (var i = 0; i < length; i++) { + this.putBit(((num >>> (length - i - 1)) & 1) === 1) + } + }, + + getLengthInBits: function () { + return this.length + }, + + putBit: function (bit) { + var bufIndex = Math.floor(this.length / 8) + if (this.buffer.length <= bufIndex) { + this.buffer.push(0) + } + + if (bit) { + this.buffer[bufIndex] |= (0x80 >>> (this.length % 8)) + } + + this.length++ + } +} + +module.exports = BitBuffer + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/bit-matrix.js": +/*!****************************************************!*\ + !*** ./node_modules/qrcode/lib/core/bit-matrix.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Buffer = __webpack_require__(/*! ../utils/buffer */ "./node_modules/qrcode/lib/utils/typedarray-buffer.js") + +/** + * Helper class to handle QR Code symbol modules + * + * @param {Number} size Symbol size + */ +function BitMatrix (size) { + if (!size || size < 1) { + throw new Error('BitMatrix size must be defined and greater than 0') + } + + this.size = size + this.data = new Buffer(size * size) + this.data.fill(0) + this.reservedBit = new Buffer(size * size) + this.reservedBit.fill(0) +} + +/** + * Set bit value at specified location + * If reserved flag is set, this bit will be ignored during masking process + * + * @param {Number} row + * @param {Number} col + * @param {Boolean} value + * @param {Boolean} reserved + */ +BitMatrix.prototype.set = function (row, col, value, reserved) { + var index = row * this.size + col + this.data[index] = value + if (reserved) this.reservedBit[index] = true +} + +/** + * Returns bit value at specified location + * + * @param {Number} row + * @param {Number} col + * @return {Boolean} + */ +BitMatrix.prototype.get = function (row, col) { + return this.data[row * this.size + col] +} + +/** + * Applies xor operator at specified location + * (used during masking process) + * + * @param {Number} row + * @param {Number} col + * @param {Boolean} value + */ +BitMatrix.prototype.xor = function (row, col, value) { + this.data[row * this.size + col] ^= value +} + +/** + * Check if bit at specified location is reserved + * + * @param {Number} row + * @param {Number} col + * @return {Boolean} + */ +BitMatrix.prototype.isReserved = function (row, col) { + return this.reservedBit[row * this.size + col] +} + +module.exports = BitMatrix + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/byte-data.js": +/*!***************************************************!*\ + !*** ./node_modules/qrcode/lib/core/byte-data.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Buffer = __webpack_require__(/*! ../utils/buffer */ "./node_modules/qrcode/lib/utils/typedarray-buffer.js") +var Mode = __webpack_require__(/*! ./mode */ "./node_modules/qrcode/lib/core/mode.js") + +function ByteData (data) { + this.mode = Mode.BYTE + this.data = new Buffer(data) +} + +ByteData.getBitsLength = function getBitsLength (length) { + return length * 8 +} + +ByteData.prototype.getLength = function getLength () { + return this.data.length +} + +ByteData.prototype.getBitsLength = function getBitsLength () { + return ByteData.getBitsLength(this.data.length) +} + +ByteData.prototype.write = function (bitBuffer) { + for (var i = 0, l = this.data.length; i < l; i++) { + bitBuffer.put(this.data[i], 8) + } +} + +module.exports = ByteData + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/error-correction-code.js": +/*!***************************************************************!*\ + !*** ./node_modules/qrcode/lib/core/error-correction-code.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var ECLevel = __webpack_require__(/*! ./error-correction-level */ "./node_modules/qrcode/lib/core/error-correction-level.js") + +var EC_BLOCKS_TABLE = [ +// L M Q H + 1, 1, 1, 1, + 1, 1, 1, 1, + 1, 1, 2, 2, + 1, 2, 2, 4, + 1, 2, 4, 4, + 2, 4, 4, 4, + 2, 4, 6, 5, + 2, 4, 6, 6, + 2, 5, 8, 8, + 4, 5, 8, 8, + 4, 5, 8, 11, + 4, 8, 10, 11, + 4, 9, 12, 16, + 4, 9, 16, 16, + 6, 10, 12, 18, + 6, 10, 17, 16, + 6, 11, 16, 19, + 6, 13, 18, 21, + 7, 14, 21, 25, + 8, 16, 20, 25, + 8, 17, 23, 25, + 9, 17, 23, 34, + 9, 18, 25, 30, + 10, 20, 27, 32, + 12, 21, 29, 35, + 12, 23, 34, 37, + 12, 25, 34, 40, + 13, 26, 35, 42, + 14, 28, 38, 45, + 15, 29, 40, 48, + 16, 31, 43, 51, + 17, 33, 45, 54, + 18, 35, 48, 57, + 19, 37, 51, 60, + 19, 38, 53, 63, + 20, 40, 56, 66, + 21, 43, 59, 70, + 22, 45, 62, 74, + 24, 47, 65, 77, + 25, 49, 68, 81 +] + +var EC_CODEWORDS_TABLE = [ +// L M Q H + 7, 10, 13, 17, + 10, 16, 22, 28, + 15, 26, 36, 44, + 20, 36, 52, 64, + 26, 48, 72, 88, + 36, 64, 96, 112, + 40, 72, 108, 130, + 48, 88, 132, 156, + 60, 110, 160, 192, + 72, 130, 192, 224, + 80, 150, 224, 264, + 96, 176, 260, 308, + 104, 198, 288, 352, + 120, 216, 320, 384, + 132, 240, 360, 432, + 144, 280, 408, 480, + 168, 308, 448, 532, + 180, 338, 504, 588, + 196, 364, 546, 650, + 224, 416, 600, 700, + 224, 442, 644, 750, + 252, 476, 690, 816, + 270, 504, 750, 900, + 300, 560, 810, 960, + 312, 588, 870, 1050, + 336, 644, 952, 1110, + 360, 700, 1020, 1200, + 390, 728, 1050, 1260, + 420, 784, 1140, 1350, + 450, 812, 1200, 1440, + 480, 868, 1290, 1530, + 510, 924, 1350, 1620, + 540, 980, 1440, 1710, + 570, 1036, 1530, 1800, + 570, 1064, 1590, 1890, + 600, 1120, 1680, 1980, + 630, 1204, 1770, 2100, + 660, 1260, 1860, 2220, + 720, 1316, 1950, 2310, + 750, 1372, 2040, 2430 +] + +/** + * Returns the number of error correction block that the QR Code should contain + * for the specified version and error correction level. + * + * @param {Number} version QR Code version + * @param {Number} errorCorrectionLevel Error correction level + * @return {Number} Number of error correction blocks + */ +exports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) { + switch (errorCorrectionLevel) { + case ECLevel.L: + return EC_BLOCKS_TABLE[(version - 1) * 4 + 0] + case ECLevel.M: + return EC_BLOCKS_TABLE[(version - 1) * 4 + 1] + case ECLevel.Q: + return EC_BLOCKS_TABLE[(version - 1) * 4 + 2] + case ECLevel.H: + return EC_BLOCKS_TABLE[(version - 1) * 4 + 3] + default: + return undefined + } +} + +/** + * Returns the number of error correction codewords to use for the specified + * version and error correction level. + * + * @param {Number} version QR Code version + * @param {Number} errorCorrectionLevel Error correction level + * @return {Number} Number of error correction codewords + */ +exports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) { + switch (errorCorrectionLevel) { + case ECLevel.L: + return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0] + case ECLevel.M: + return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1] + case ECLevel.Q: + return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2] + case ECLevel.H: + return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3] + default: + return undefined + } +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/error-correction-level.js": +/*!****************************************************************!*\ + !*** ./node_modules/qrcode/lib/core/error-correction-level.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +exports.L = { bit: 1 } +exports.M = { bit: 0 } +exports.Q = { bit: 3 } +exports.H = { bit: 2 } + +function fromString (string) { + if (typeof string !== 'string') { + throw new Error('Param is not a string') + } + + var lcStr = string.toLowerCase() + + switch (lcStr) { + case 'l': + case 'low': + return exports.L + + case 'm': + case 'medium': + return exports.M + + case 'q': + case 'quartile': + return exports.Q + + case 'h': + case 'high': + return exports.H + + default: + throw new Error('Unknown EC Level: ' + string) + } +} + +exports.isValid = function isValid (level) { + return level && typeof level.bit !== 'undefined' && + level.bit >= 0 && level.bit < 4 +} + +exports.from = function from (value, defaultValue) { + if (exports.isValid(value)) { + return value + } + + try { + return fromString(value) + } catch (e) { + return defaultValue + } +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/finder-pattern.js": +/*!********************************************************!*\ + !*** ./node_modules/qrcode/lib/core/finder-pattern.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var getSymbolSize = __webpack_require__(/*! ./utils */ "./node_modules/qrcode/lib/core/utils.js").getSymbolSize +var FINDER_PATTERN_SIZE = 7 + +/** + * Returns an array containing the positions of each finder pattern. + * Each array's element represent the top-left point of the pattern as (x, y) coordinates + * + * @param {Number} version QR Code version + * @return {Array} Array of coordinates + */ +exports.getPositions = function getPositions (version) { + var size = getSymbolSize(version) + + return [ + // top-left + [0, 0], + // top-right + [size - FINDER_PATTERN_SIZE, 0], + // bottom-left + [0, size - FINDER_PATTERN_SIZE] + ] +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/format-info.js": +/*!*****************************************************!*\ + !*** ./node_modules/qrcode/lib/core/format-info.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Utils = __webpack_require__(/*! ./utils */ "./node_modules/qrcode/lib/core/utils.js") + +var G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0) +var G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1) +var G15_BCH = Utils.getBCHDigit(G15) + +/** + * Returns format information with relative error correction bits + * + * The format information is a 15-bit sequence containing 5 data bits, + * with 10 error correction bits calculated using the (15, 5) BCH code. + * + * @param {Number} errorCorrectionLevel Error correction level + * @param {Number} mask Mask pattern + * @return {Number} Encoded format information bits + */ +exports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) { + var data = ((errorCorrectionLevel.bit << 3) | mask) + var d = data << 10 + + while (Utils.getBCHDigit(d) - G15_BCH >= 0) { + d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH)) + } + + // xor final data with mask pattern in order to ensure that + // no combination of Error Correction Level and data mask pattern + // will result in an all-zero data string + return ((data << 10) | d) ^ G15_MASK +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/galois-field.js": +/*!******************************************************!*\ + !*** ./node_modules/qrcode/lib/core/galois-field.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Buffer = __webpack_require__(/*! ../utils/buffer */ "./node_modules/qrcode/lib/utils/typedarray-buffer.js") + +var EXP_TABLE +var LOG_TABLE + +if (Buffer.alloc) { + EXP_TABLE = Buffer.alloc(512) + LOG_TABLE = Buffer.alloc(256) +} else { + EXP_TABLE = new Buffer(512) + LOG_TABLE = new Buffer(256) +} +/** + * Precompute the log and anti-log tables for faster computation later + * + * For each possible value in the galois field 2^8, we will pre-compute + * the logarithm and anti-logarithm (exponential) of this value + * + * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields} + */ +;(function initTables () { + var x = 1 + for (var i = 0; i < 255; i++) { + EXP_TABLE[i] = x + LOG_TABLE[x] = i + + x <<= 1 // multiply by 2 + + // The QR code specification says to use byte-wise modulo 100011101 arithmetic. + // This means that when a number is 256 or larger, it should be XORed with 0x11D. + if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256) + x ^= 0x11D + } + } + + // Optimization: double the size of the anti-log table so that we don't need to mod 255 to + // stay inside the bounds (because we will mainly use this table for the multiplication of + // two GF numbers, no more). + // @see {@link mul} + for (i = 255; i < 512; i++) { + EXP_TABLE[i] = EXP_TABLE[i - 255] + } +}()) + +/** + * Returns log value of n inside Galois Field + * + * @param {Number} n + * @return {Number} + */ +exports.log = function log (n) { + if (n < 1) throw new Error('log(' + n + ')') + return LOG_TABLE[n] +} + +/** + * Returns anti-log value of n inside Galois Field + * + * @param {Number} n + * @return {Number} + */ +exports.exp = function exp (n) { + return EXP_TABLE[n] +} + +/** + * Multiplies two number inside Galois Field + * + * @param {Number} x + * @param {Number} y + * @return {Number} + */ +exports.mul = function mul (x, y) { + if (x === 0 || y === 0) return 0 + + // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized + // @see {@link initTables} + return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]] +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/kanji-data.js": +/*!****************************************************!*\ + !*** ./node_modules/qrcode/lib/core/kanji-data.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Mode = __webpack_require__(/*! ./mode */ "./node_modules/qrcode/lib/core/mode.js") +var Utils = __webpack_require__(/*! ./utils */ "./node_modules/qrcode/lib/core/utils.js") + +function KanjiData (data) { + this.mode = Mode.KANJI + this.data = data +} + +KanjiData.getBitsLength = function getBitsLength (length) { + return length * 13 +} + +KanjiData.prototype.getLength = function getLength () { + return this.data.length +} + +KanjiData.prototype.getBitsLength = function getBitsLength () { + return KanjiData.getBitsLength(this.data.length) +} + +KanjiData.prototype.write = function (bitBuffer) { + var i + + // In the Shift JIS system, Kanji characters are represented by a two byte combination. + // These byte values are shifted from the JIS X 0208 values. + // JIS X 0208 gives details of the shift coded representation. + for (i = 0; i < this.data.length; i++) { + var value = Utils.toSJIS(this.data[i]) + + // For characters with Shift JIS values from 0x8140 to 0x9FFC: + if (value >= 0x8140 && value <= 0x9FFC) { + // Subtract 0x8140 from Shift JIS value + value -= 0x8140 + + // For characters with Shift JIS values from 0xE040 to 0xEBBF + } else if (value >= 0xE040 && value <= 0xEBBF) { + // Subtract 0xC140 from Shift JIS value + value -= 0xC140 + } else { + throw new Error( + 'Invalid SJIS character: ' + this.data[i] + '\n' + + 'Make sure your charset is UTF-8') + } + + // Multiply most significant byte of result by 0xC0 + // and add least significant byte to product + value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff) + + // Convert result to a 13-bit binary string + bitBuffer.put(value, 13) + } +} + +module.exports = KanjiData + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/mask-pattern.js": +/*!******************************************************!*\ + !*** ./node_modules/qrcode/lib/core/mask-pattern.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +/** + * Data mask pattern reference + * @type {Object} + */ +exports.Patterns = { + PATTERN000: 0, + PATTERN001: 1, + PATTERN010: 2, + PATTERN011: 3, + PATTERN100: 4, + PATTERN101: 5, + PATTERN110: 6, + PATTERN111: 7 +} + +/** + * Weighted penalty scores for the undesirable features + * @type {Object} + */ +var PenaltyScores = { + N1: 3, + N2: 3, + N3: 40, + N4: 10 +} + +/** + * Check if mask pattern value is valid + * + * @param {Number} mask Mask pattern + * @return {Boolean} true if valid, false otherwise + */ +exports.isValid = function isValid (mask) { + return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7 +} + +/** + * Returns mask pattern from a value. + * If value is not valid, returns undefined + * + * @param {Number|String} value Mask pattern value + * @return {Number} Valid mask pattern or undefined + */ +exports.from = function from (value) { + return exports.isValid(value) ? parseInt(value, 10) : undefined +} + +/** +* Find adjacent modules in row/column with the same color +* and assign a penalty value. +* +* Points: N1 + i +* i is the amount by which the number of adjacent modules of the same color exceeds 5 +*/ +exports.getPenaltyN1 = function getPenaltyN1 (data) { + var size = data.size + var points = 0 + var sameCountCol = 0 + var sameCountRow = 0 + var lastCol = null + var lastRow = null + + for (var row = 0; row < size; row++) { + sameCountCol = sameCountRow = 0 + lastCol = lastRow = null + + for (var col = 0; col < size; col++) { + var module = data.get(row, col) + if (module === lastCol) { + sameCountCol++ + } else { + if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5) + lastCol = module + sameCountCol = 1 + } + + module = data.get(col, row) + if (module === lastRow) { + sameCountRow++ + } else { + if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5) + lastRow = module + sameCountRow = 1 + } + } + + if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5) + if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5) + } + + return points +} + +/** + * Find 2x2 blocks with the same color and assign a penalty value + * + * Points: N2 * (m - 1) * (n - 1) + */ +exports.getPenaltyN2 = function getPenaltyN2 (data) { + var size = data.size + var points = 0 + + for (var row = 0; row < size - 1; row++) { + for (var col = 0; col < size - 1; col++) { + var last = data.get(row, col) + + data.get(row, col + 1) + + data.get(row + 1, col) + + data.get(row + 1, col + 1) + + if (last === 4 || last === 0) points++ + } + } + + return points * PenaltyScores.N2 +} + +/** + * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column, + * preceded or followed by light area 4 modules wide + * + * Points: N3 * number of pattern found + */ +exports.getPenaltyN3 = function getPenaltyN3 (data) { + var size = data.size + var points = 0 + var bitsCol = 0 + var bitsRow = 0 + + for (var row = 0; row < size; row++) { + bitsCol = bitsRow = 0 + for (var col = 0; col < size; col++) { + bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col) + if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++ + + bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row) + if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++ + } + } + + return points * PenaltyScores.N3 +} + +/** + * Calculate proportion of dark modules in entire symbol + * + * Points: N4 * k + * + * k is the rating of the deviation of the proportion of dark modules + * in the symbol from 50% in steps of 5% + */ +exports.getPenaltyN4 = function getPenaltyN4 (data) { + var darkCount = 0 + var modulesCount = data.data.length + + for (var i = 0; i < modulesCount; i++) darkCount += data.data[i] + + var k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10) + + return k * PenaltyScores.N4 +} + +/** + * Return mask value at given position + * + * @param {Number} maskPattern Pattern reference value + * @param {Number} i Row + * @param {Number} j Column + * @return {Boolean} Mask value + */ +function getMaskAt (maskPattern, i, j) { + switch (maskPattern) { + case exports.Patterns.PATTERN000: return (i + j) % 2 === 0 + case exports.Patterns.PATTERN001: return i % 2 === 0 + case exports.Patterns.PATTERN010: return j % 3 === 0 + case exports.Patterns.PATTERN011: return (i + j) % 3 === 0 + case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0 + case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0 + case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0 + case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0 + + default: throw new Error('bad maskPattern:' + maskPattern) + } +} + +/** + * Apply a mask pattern to a BitMatrix + * + * @param {Number} pattern Pattern reference number + * @param {BitMatrix} data BitMatrix data + */ +exports.applyMask = function applyMask (pattern, data) { + var size = data.size + + for (var col = 0; col < size; col++) { + for (var row = 0; row < size; row++) { + if (data.isReserved(row, col)) continue + data.xor(row, col, getMaskAt(pattern, row, col)) + } + } +} + +/** + * Returns the best mask pattern for data + * + * @param {BitMatrix} data + * @return {Number} Mask pattern reference number + */ +exports.getBestMask = function getBestMask (data, setupFormatFunc) { + var numPatterns = Object.keys(exports.Patterns).length + var bestPattern = 0 + var lowerPenalty = Infinity + + for (var p = 0; p < numPatterns; p++) { + setupFormatFunc(p) + exports.applyMask(p, data) + + // Calculate penalty + var penalty = + exports.getPenaltyN1(data) + + exports.getPenaltyN2(data) + + exports.getPenaltyN3(data) + + exports.getPenaltyN4(data) + + // Undo previously applied mask + exports.applyMask(p, data) + + if (penalty < lowerPenalty) { + lowerPenalty = penalty + bestPattern = p + } + } + + return bestPattern +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/mode.js": +/*!**********************************************!*\ + !*** ./node_modules/qrcode/lib/core/mode.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var VersionCheck = __webpack_require__(/*! ./version-check */ "./node_modules/qrcode/lib/core/version-check.js") +var Regex = __webpack_require__(/*! ./regex */ "./node_modules/qrcode/lib/core/regex.js") + +/** + * Numeric mode encodes data from the decimal digit set (0 - 9) + * (byte values 30HEX to 39HEX). + * Normally, 3 data characters are represented by 10 bits. + * + * @type {Object} + */ +exports.NUMERIC = { + id: 'Numeric', + bit: 1 << 0, + ccBits: [10, 12, 14] +} + +/** + * Alphanumeric mode encodes data from a set of 45 characters, + * i.e. 10 numeric digits (0 - 9), + * 26 alphabetic characters (A - Z), + * and 9 symbols (SP, $, %, *, +, -, ., /, :). + * Normally, two input characters are represented by 11 bits. + * + * @type {Object} + */ +exports.ALPHANUMERIC = { + id: 'Alphanumeric', + bit: 1 << 1, + ccBits: [9, 11, 13] +} + +/** + * In byte mode, data is encoded at 8 bits per character. + * + * @type {Object} + */ +exports.BYTE = { + id: 'Byte', + bit: 1 << 2, + ccBits: [8, 16, 16] +} + +/** + * The Kanji mode efficiently encodes Kanji characters in accordance with + * the Shift JIS system based on JIS X 0208. + * The Shift JIS values are shifted from the JIS X 0208 values. + * JIS X 0208 gives details of the shift coded representation. + * Each two-byte character value is compacted to a 13-bit binary codeword. + * + * @type {Object} + */ +exports.KANJI = { + id: 'Kanji', + bit: 1 << 3, + ccBits: [8, 10, 12] +} + +/** + * Mixed mode will contain a sequences of data in a combination of any of + * the modes described above + * + * @type {Object} + */ +exports.MIXED = { + bit: -1 +} + +/** + * Returns the number of bits needed to store the data length + * according to QR Code specifications. + * + * @param {Mode} mode Data mode + * @param {Number} version QR Code version + * @return {Number} Number of bits + */ +exports.getCharCountIndicator = function getCharCountIndicator (mode, version) { + if (!mode.ccBits) throw new Error('Invalid mode: ' + mode) + + if (!VersionCheck.isValid(version)) { + throw new Error('Invalid version: ' + version) + } + + if (version >= 1 && version < 10) return mode.ccBits[0] + else if (version < 27) return mode.ccBits[1] + return mode.ccBits[2] +} + +/** + * Returns the most efficient mode to store the specified data + * + * @param {String} dataStr Input data string + * @return {Mode} Best mode + */ +exports.getBestModeForData = function getBestModeForData (dataStr) { + if (Regex.testNumeric(dataStr)) return exports.NUMERIC + else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC + else if (Regex.testKanji(dataStr)) return exports.KANJI + else return exports.BYTE +} + +/** + * Return mode name as string + * + * @param {Mode} mode Mode object + * @returns {String} Mode name + */ +exports.toString = function toString (mode) { + if (mode && mode.id) return mode.id + throw new Error('Invalid mode') +} + +/** + * Check if input param is a valid mode object + * + * @param {Mode} mode Mode object + * @returns {Boolean} True if valid mode, false otherwise + */ +exports.isValid = function isValid (mode) { + return mode && mode.bit && mode.ccBits +} + +/** + * Get mode object from its name + * + * @param {String} string Mode name + * @returns {Mode} Mode object + */ +function fromString (string) { + if (typeof string !== 'string') { + throw new Error('Param is not a string') + } + + var lcStr = string.toLowerCase() + + switch (lcStr) { + case 'numeric': + return exports.NUMERIC + case 'alphanumeric': + return exports.ALPHANUMERIC + case 'kanji': + return exports.KANJI + case 'byte': + return exports.BYTE + default: + throw new Error('Unknown mode: ' + string) + } +} + +/** + * Returns mode from a value. + * If value is not a valid mode, returns defaultValue + * + * @param {Mode|String} value Encoding mode + * @param {Mode} defaultValue Fallback value + * @return {Mode} Encoding mode + */ +exports.from = function from (value, defaultValue) { + if (exports.isValid(value)) { + return value + } + + try { + return fromString(value) + } catch (e) { + return defaultValue + } +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/numeric-data.js": +/*!******************************************************!*\ + !*** ./node_modules/qrcode/lib/core/numeric-data.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Mode = __webpack_require__(/*! ./mode */ "./node_modules/qrcode/lib/core/mode.js") + +function NumericData (data) { + this.mode = Mode.NUMERIC + this.data = data.toString() +} + +NumericData.getBitsLength = function getBitsLength (length) { + return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0) +} + +NumericData.prototype.getLength = function getLength () { + return this.data.length +} + +NumericData.prototype.getBitsLength = function getBitsLength () { + return NumericData.getBitsLength(this.data.length) +} + +NumericData.prototype.write = function write (bitBuffer) { + var i, group, value + + // The input data string is divided into groups of three digits, + // and each group is converted to its 10-bit binary equivalent. + for (i = 0; i + 3 <= this.data.length; i += 3) { + group = this.data.substr(i, 3) + value = parseInt(group, 10) + + bitBuffer.put(value, 10) + } + + // If the number of input digits is not an exact multiple of three, + // the final one or two digits are converted to 4 or 7 bits respectively. + var remainingNum = this.data.length - i + if (remainingNum > 0) { + group = this.data.substr(i) + value = parseInt(group, 10) + + bitBuffer.put(value, remainingNum * 3 + 1) + } +} + +module.exports = NumericData + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/polynomial.js": +/*!****************************************************!*\ + !*** ./node_modules/qrcode/lib/core/polynomial.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Buffer = __webpack_require__(/*! ../utils/buffer */ "./node_modules/qrcode/lib/utils/typedarray-buffer.js") +var GF = __webpack_require__(/*! ./galois-field */ "./node_modules/qrcode/lib/core/galois-field.js") + +/** + * Multiplies two polynomials inside Galois Field + * + * @param {Buffer} p1 Polynomial + * @param {Buffer} p2 Polynomial + * @return {Buffer} Product of p1 and p2 + */ +exports.mul = function mul (p1, p2) { + var coeff = new Buffer(p1.length + p2.length - 1) + coeff.fill(0) + + for (var i = 0; i < p1.length; i++) { + for (var j = 0; j < p2.length; j++) { + coeff[i + j] ^= GF.mul(p1[i], p2[j]) + } + } + + return coeff +} + +/** + * Calculate the remainder of polynomials division + * + * @param {Buffer} divident Polynomial + * @param {Buffer} divisor Polynomial + * @return {Buffer} Remainder + */ +exports.mod = function mod (divident, divisor) { + var result = new Buffer(divident) + + while ((result.length - divisor.length) >= 0) { + var coeff = result[0] + + for (var i = 0; i < divisor.length; i++) { + result[i] ^= GF.mul(divisor[i], coeff) + } + + // remove all zeros from buffer head + var offset = 0 + while (offset < result.length && result[offset] === 0) offset++ + result = result.slice(offset) + } + + return result +} + +/** + * Generate an irreducible generator polynomial of specified degree + * (used by Reed-Solomon encoder) + * + * @param {Number} degree Degree of the generator polynomial + * @return {Buffer} Buffer containing polynomial coefficients + */ +exports.generateECPolynomial = function generateECPolynomial (degree) { + var poly = new Buffer([1]) + for (var i = 0; i < degree; i++) { + poly = exports.mul(poly, [1, GF.exp(i)]) + } + + return poly +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/qrcode.js": +/*!************************************************!*\ + !*** ./node_modules/qrcode/lib/core/qrcode.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Buffer = __webpack_require__(/*! ../utils/buffer */ "./node_modules/qrcode/lib/utils/typedarray-buffer.js") +var Utils = __webpack_require__(/*! ./utils */ "./node_modules/qrcode/lib/core/utils.js") +var ECLevel = __webpack_require__(/*! ./error-correction-level */ "./node_modules/qrcode/lib/core/error-correction-level.js") +var BitBuffer = __webpack_require__(/*! ./bit-buffer */ "./node_modules/qrcode/lib/core/bit-buffer.js") +var BitMatrix = __webpack_require__(/*! ./bit-matrix */ "./node_modules/qrcode/lib/core/bit-matrix.js") +var AlignmentPattern = __webpack_require__(/*! ./alignment-pattern */ "./node_modules/qrcode/lib/core/alignment-pattern.js") +var FinderPattern = __webpack_require__(/*! ./finder-pattern */ "./node_modules/qrcode/lib/core/finder-pattern.js") +var MaskPattern = __webpack_require__(/*! ./mask-pattern */ "./node_modules/qrcode/lib/core/mask-pattern.js") +var ECCode = __webpack_require__(/*! ./error-correction-code */ "./node_modules/qrcode/lib/core/error-correction-code.js") +var ReedSolomonEncoder = __webpack_require__(/*! ./reed-solomon-encoder */ "./node_modules/qrcode/lib/core/reed-solomon-encoder.js") +var Version = __webpack_require__(/*! ./version */ "./node_modules/qrcode/lib/core/version.js") +var FormatInfo = __webpack_require__(/*! ./format-info */ "./node_modules/qrcode/lib/core/format-info.js") +var Mode = __webpack_require__(/*! ./mode */ "./node_modules/qrcode/lib/core/mode.js") +var Segments = __webpack_require__(/*! ./segments */ "./node_modules/qrcode/lib/core/segments.js") +var isArray = __webpack_require__(/*! isarray */ "./node_modules/qrcode/node_modules/isarray/index.js") + +/** + * QRCode for JavaScript + * + * modified by Ryan Day for nodejs support + * Copyright (c) 2011 Ryan Day + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/mit-license.php + * +//--------------------------------------------------------------------- +// QRCode for JavaScript +// +// Copyright (c) 2009 Kazuhiko Arase +// +// URL: http://www.d-project.com/ +// +// Licensed under the MIT license: +// http://www.opensource.org/licenses/mit-license.php +// +// The word "QR Code" is registered trademark of +// DENSO WAVE INCORPORATED +// http://www.denso-wave.com/qrcode/faqpatent-e.html +// +//--------------------------------------------------------------------- +*/ + +/** + * Add finder patterns bits to matrix + * + * @param {BitMatrix} matrix Modules matrix + * @param {Number} version QR Code version + */ +function setupFinderPattern (matrix, version) { + var size = matrix.size + var pos = FinderPattern.getPositions(version) + + for (var i = 0; i < pos.length; i++) { + var row = pos[i][0] + var col = pos[i][1] + + for (var r = -1; r <= 7; r++) { + if (row + r <= -1 || size <= row + r) continue + + for (var c = -1; c <= 7; c++) { + if (col + c <= -1 || size <= col + c) continue + + if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) || + (c >= 0 && c <= 6 && (r === 0 || r === 6)) || + (r >= 2 && r <= 4 && c >= 2 && c <= 4)) { + matrix.set(row + r, col + c, true, true) + } else { + matrix.set(row + r, col + c, false, true) + } + } + } + } +} + +/** + * Add timing pattern bits to matrix + * + * Note: this function must be called before {@link setupAlignmentPattern} + * + * @param {BitMatrix} matrix Modules matrix + */ +function setupTimingPattern (matrix) { + var size = matrix.size + + for (var r = 8; r < size - 8; r++) { + var value = r % 2 === 0 + matrix.set(r, 6, value, true) + matrix.set(6, r, value, true) + } +} + +/** + * Add alignment patterns bits to matrix + * + * Note: this function must be called after {@link setupTimingPattern} + * + * @param {BitMatrix} matrix Modules matrix + * @param {Number} version QR Code version + */ +function setupAlignmentPattern (matrix, version) { + var pos = AlignmentPattern.getPositions(version) + + for (var i = 0; i < pos.length; i++) { + var row = pos[i][0] + var col = pos[i][1] + + for (var r = -2; r <= 2; r++) { + for (var c = -2; c <= 2; c++) { + if (r === -2 || r === 2 || c === -2 || c === 2 || + (r === 0 && c === 0)) { + matrix.set(row + r, col + c, true, true) + } else { + matrix.set(row + r, col + c, false, true) + } + } + } + } +} + +/** + * Add version info bits to matrix + * + * @param {BitMatrix} matrix Modules matrix + * @param {Number} version QR Code version + */ +function setupVersionInfo (matrix, version) { + var size = matrix.size + var bits = Version.getEncodedBits(version) + var row, col, mod + + for (var i = 0; i < 18; i++) { + row = Math.floor(i / 3) + col = i % 3 + size - 8 - 3 + mod = ((bits >> i) & 1) === 1 + + matrix.set(row, col, mod, true) + matrix.set(col, row, mod, true) + } +} + +/** + * Add format info bits to matrix + * + * @param {BitMatrix} matrix Modules matrix + * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level + * @param {Number} maskPattern Mask pattern reference value + */ +function setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) { + var size = matrix.size + var bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern) + var i, mod + + for (i = 0; i < 15; i++) { + mod = ((bits >> i) & 1) === 1 + + // vertical + if (i < 6) { + matrix.set(i, 8, mod, true) + } else if (i < 8) { + matrix.set(i + 1, 8, mod, true) + } else { + matrix.set(size - 15 + i, 8, mod, true) + } + + // horizontal + if (i < 8) { + matrix.set(8, size - i - 1, mod, true) + } else if (i < 9) { + matrix.set(8, 15 - i - 1 + 1, mod, true) + } else { + matrix.set(8, 15 - i - 1, mod, true) + } + } + + // fixed module + matrix.set(size - 8, 8, 1, true) +} + +/** + * Add encoded data bits to matrix + * + * @param {BitMatrix} matrix Modules matrix + * @param {Buffer} data Data codewords + */ +function setupData (matrix, data) { + var size = matrix.size + var inc = -1 + var row = size - 1 + var bitIndex = 7 + var byteIndex = 0 + + for (var col = size - 1; col > 0; col -= 2) { + if (col === 6) col-- + + while (true) { + for (var c = 0; c < 2; c++) { + if (!matrix.isReserved(row, col - c)) { + var dark = false + + if (byteIndex < data.length) { + dark = (((data[byteIndex] >>> bitIndex) & 1) === 1) + } + + matrix.set(row, col - c, dark) + bitIndex-- + + if (bitIndex === -1) { + byteIndex++ + bitIndex = 7 + } + } + } + + row += inc + + if (row < 0 || size <= row) { + row -= inc + inc = -inc + break + } + } + } +} + +/** + * Create encoded codewords from data input + * + * @param {Number} version QR Code version + * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level + * @param {ByteData} data Data input + * @return {Buffer} Buffer containing encoded codewords + */ +function createData (version, errorCorrectionLevel, segments) { + // Prepare data buffer + var buffer = new BitBuffer() + + segments.forEach(function (data) { + // prefix data with mode indicator (4 bits) + buffer.put(data.mode.bit, 4) + + // Prefix data with character count indicator. + // The character count indicator is a string of bits that represents the + // number of characters that are being encoded. + // The character count indicator must be placed after the mode indicator + // and must be a certain number of bits long, depending on the QR version + // and data mode + // @see {@link Mode.getCharCountIndicator}. + buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version)) + + // add binary data sequence to buffer + data.write(buffer) + }) + + // Calculate required number of bits + var totalCodewords = Utils.getSymbolTotalCodewords(version) + var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel) + var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8 + + // Add a terminator. + // If the bit string is shorter than the total number of required bits, + // a terminator of up to four 0s must be added to the right side of the string. + // If the bit string is more than four bits shorter than the required number of bits, + // add four 0s to the end. + if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) { + buffer.put(0, 4) + } + + // If the bit string is fewer than four bits shorter, add only the number of 0s that + // are needed to reach the required number of bits. + + // After adding the terminator, if the number of bits in the string is not a multiple of 8, + // pad the string on the right with 0s to make the string's length a multiple of 8. + while (buffer.getLengthInBits() % 8 !== 0) { + buffer.putBit(0) + } + + // Add pad bytes if the string is still shorter than the total number of required bits. + // Extend the buffer to fill the data capacity of the symbol corresponding to + // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC) + // and 00010001 (0x11) alternately. + var remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8 + for (var i = 0; i < remainingByte; i++) { + buffer.put(i % 2 ? 0x11 : 0xEC, 8) + } + + return createCodewords(buffer, version, errorCorrectionLevel) +} + +/** + * Encode input data with Reed-Solomon and return codewords with + * relative error correction bits + * + * @param {BitBuffer} bitBuffer Data to encode + * @param {Number} version QR Code version + * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level + * @return {Buffer} Buffer containing encoded codewords + */ +function createCodewords (bitBuffer, version, errorCorrectionLevel) { + // Total codewords for this QR code version (Data + Error correction) + var totalCodewords = Utils.getSymbolTotalCodewords(version) + + // Total number of error correction codewords + var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel) + + // Total number of data codewords + var dataTotalCodewords = totalCodewords - ecTotalCodewords + + // Total number of blocks + var ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel) + + // Calculate how many blocks each group should contain + var blocksInGroup2 = totalCodewords % ecTotalBlocks + var blocksInGroup1 = ecTotalBlocks - blocksInGroup2 + + var totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks) + + var dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks) + var dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1 + + // Number of EC codewords is the same for both groups + var ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1 + + // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount + var rs = new ReedSolomonEncoder(ecCount) + + var offset = 0 + var dcData = new Array(ecTotalBlocks) + var ecData = new Array(ecTotalBlocks) + var maxDataSize = 0 + var buffer = new Buffer(bitBuffer.buffer) + + // Divide the buffer into the required number of blocks + for (var b = 0; b < ecTotalBlocks; b++) { + var dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2 + + // extract a block of data from buffer + dcData[b] = buffer.slice(offset, offset + dataSize) + + // Calculate EC codewords for this data block + ecData[b] = rs.encode(dcData[b]) + + offset += dataSize + maxDataSize = Math.max(maxDataSize, dataSize) + } + + // Create final data + // Interleave the data and error correction codewords from each block + var data = new Buffer(totalCodewords) + var index = 0 + var i, r + + // Add data codewords + for (i = 0; i < maxDataSize; i++) { + for (r = 0; r < ecTotalBlocks; r++) { + if (i < dcData[r].length) { + data[index++] = dcData[r][i] + } + } + } + + // Apped EC codewords + for (i = 0; i < ecCount; i++) { + for (r = 0; r < ecTotalBlocks; r++) { + data[index++] = ecData[r][i] + } + } + + return data +} + +/** + * Build QR Code symbol + * + * @param {String} data Input string + * @param {Number} version QR Code version + * @param {ErrorCorretionLevel} errorCorrectionLevel Error level + * @param {MaskPattern} maskPattern Mask pattern + * @return {Object} Object containing symbol data + */ +function createSymbol (data, version, errorCorrectionLevel, maskPattern) { + var segments + + if (isArray(data)) { + segments = Segments.fromArray(data) + } else if (typeof data === 'string') { + var estimatedVersion = version + + if (!estimatedVersion) { + var rawSegments = Segments.rawSplit(data) + + // Estimate best version that can contain raw splitted segments + estimatedVersion = Version.getBestVersionForData(rawSegments, + errorCorrectionLevel) + } + + // Build optimized segments + // If estimated version is undefined, try with the highest version + segments = Segments.fromString(data, estimatedVersion || 40) + } else { + throw new Error('Invalid data') + } + + // Get the min version that can contain data + var bestVersion = Version.getBestVersionForData(segments, + errorCorrectionLevel) + + // If no version is found, data cannot be stored + if (!bestVersion) { + throw new Error('The amount of data is too big to be stored in a QR Code') + } + + // If not specified, use min version as default + if (!version) { + version = bestVersion + + // Check if the specified version can contain the data + } else if (version < bestVersion) { + throw new Error('\n' + + 'The chosen QR Code version cannot contain this amount of data.\n' + + 'Minimum version required to store current data is: ' + bestVersion + '.\n' + ) + } + + var dataBits = createData(version, errorCorrectionLevel, segments) + + // Allocate matrix buffer + var moduleCount = Utils.getSymbolSize(version) + var modules = new BitMatrix(moduleCount) + + // Add function modules + setupFinderPattern(modules, version) + setupTimingPattern(modules) + setupAlignmentPattern(modules, version) + + // Add temporary dummy bits for format info just to set them as reserved. + // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask} + // since the masking operation must be performed only on the encoding region. + // These blocks will be replaced with correct values later in code. + setupFormatInfo(modules, errorCorrectionLevel, 0) + + if (version >= 7) { + setupVersionInfo(modules, version) + } + + // Add data codewords + setupData(modules, dataBits) + + if (isNaN(maskPattern)) { + // Find best mask pattern + maskPattern = MaskPattern.getBestMask(modules, + setupFormatInfo.bind(null, modules, errorCorrectionLevel)) + } + + // Apply mask pattern + MaskPattern.applyMask(maskPattern, modules) + + // Replace format info bits with correct values + setupFormatInfo(modules, errorCorrectionLevel, maskPattern) + + return { + modules: modules, + version: version, + errorCorrectionLevel: errorCorrectionLevel, + maskPattern: maskPattern, + segments: segments + } +} + +/** + * QR Code + * + * @param {String | Array} data Input data + * @param {Object} options Optional configurations + * @param {Number} options.version QR Code version + * @param {String} options.errorCorrectionLevel Error correction level + * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis + */ +exports.create = function create (data, options) { + if (typeof data === 'undefined' || data === '') { + throw new Error('No input text') + } + + var errorCorrectionLevel = ECLevel.M + var version + var mask + + if (typeof options !== 'undefined') { + // Use higher error correction level as default + errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M) + version = Version.from(options.version) + mask = MaskPattern.from(options.maskPattern) + + if (options.toSJISFunc) { + Utils.setToSJISFunction(options.toSJISFunc) + } + } + + return createSymbol(data, version, errorCorrectionLevel, mask) +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/reed-solomon-encoder.js": +/*!**************************************************************!*\ + !*** ./node_modules/qrcode/lib/core/reed-solomon-encoder.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Buffer = __webpack_require__(/*! ../utils/buffer */ "./node_modules/qrcode/lib/utils/typedarray-buffer.js") +var Polynomial = __webpack_require__(/*! ./polynomial */ "./node_modules/qrcode/lib/core/polynomial.js") + +function ReedSolomonEncoder (degree) { + this.genPoly = undefined + this.degree = degree + + if (this.degree) this.initialize(this.degree) +} + +/** + * Initialize the encoder. + * The input param should correspond to the number of error correction codewords. + * + * @param {Number} degree + */ +ReedSolomonEncoder.prototype.initialize = function initialize (degree) { + // create an irreducible generator polynomial + this.degree = degree + this.genPoly = Polynomial.generateECPolynomial(this.degree) +} + +/** + * Encodes a chunk of data + * + * @param {Buffer} data Buffer containing input data + * @return {Buffer} Buffer containing encoded data + */ +ReedSolomonEncoder.prototype.encode = function encode (data) { + if (!this.genPoly) { + throw new Error('Encoder not initialized') + } + + // Calculate EC for this data block + // extends data size to data+genPoly size + var pad = new Buffer(this.degree) + pad.fill(0) + var paddedData = Buffer.concat([data, pad], data.length + this.degree) + + // The error correction codewords are the remainder after dividing the data codewords + // by a generator polynomial + var remainder = Polynomial.mod(paddedData, this.genPoly) + + // return EC data blocks (last n byte, where n is the degree of genPoly) + // If coefficients number in remainder are less than genPoly degree, + // pad with 0s to the left to reach the needed number of coefficients + var start = this.degree - remainder.length + if (start > 0) { + var buff = new Buffer(this.degree) + buff.fill(0) + remainder.copy(buff, start) + + return buff + } + + return remainder +} + +module.exports = ReedSolomonEncoder + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/regex.js": +/*!***********************************************!*\ + !*** ./node_modules/qrcode/lib/core/regex.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +var numeric = '[0-9]+' +var alphanumeric = '[A-Z $%*+\\-./:]+' +var kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' + + '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' + + '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' + + '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+' +kanji = kanji.replace(/u/g, '\\u') + +var byte = '(?:(?![A-Z0-9 $%*+\\-./:]|' + kanji + ')(?:.|[\r\n]))+' + +exports.KANJI = new RegExp(kanji, 'g') +exports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\-./:]+', 'g') +exports.BYTE = new RegExp(byte, 'g') +exports.NUMERIC = new RegExp(numeric, 'g') +exports.ALPHANUMERIC = new RegExp(alphanumeric, 'g') + +var TEST_KANJI = new RegExp('^' + kanji + '$') +var TEST_NUMERIC = new RegExp('^' + numeric + '$') +var TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\-./:]+$') + +exports.testKanji = function testKanji (str) { + return TEST_KANJI.test(str) +} + +exports.testNumeric = function testNumeric (str) { + return TEST_NUMERIC.test(str) +} + +exports.testAlphanumeric = function testAlphanumeric (str) { + return TEST_ALPHANUMERIC.test(str) +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/segments.js": +/*!**************************************************!*\ + !*** ./node_modules/qrcode/lib/core/segments.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Mode = __webpack_require__(/*! ./mode */ "./node_modules/qrcode/lib/core/mode.js") +var NumericData = __webpack_require__(/*! ./numeric-data */ "./node_modules/qrcode/lib/core/numeric-data.js") +var AlphanumericData = __webpack_require__(/*! ./alphanumeric-data */ "./node_modules/qrcode/lib/core/alphanumeric-data.js") +var ByteData = __webpack_require__(/*! ./byte-data */ "./node_modules/qrcode/lib/core/byte-data.js") +var KanjiData = __webpack_require__(/*! ./kanji-data */ "./node_modules/qrcode/lib/core/kanji-data.js") +var Regex = __webpack_require__(/*! ./regex */ "./node_modules/qrcode/lib/core/regex.js") +var Utils = __webpack_require__(/*! ./utils */ "./node_modules/qrcode/lib/core/utils.js") +var dijkstra = __webpack_require__(/*! dijkstrajs */ "./node_modules/dijkstrajs/dijkstra.js") + +/** + * Returns UTF8 byte length + * + * @param {String} str Input string + * @return {Number} Number of byte + */ +function getStringByteLength (str) { + return unescape(encodeURIComponent(str)).length +} + +/** + * Get a list of segments of the specified mode + * from a string + * + * @param {Mode} mode Segment mode + * @param {String} str String to process + * @return {Array} Array of object with segments data + */ +function getSegments (regex, mode, str) { + var segments = [] + var result + + while ((result = regex.exec(str)) !== null) { + segments.push({ + data: result[0], + index: result.index, + mode: mode, + length: result[0].length + }) + } + + return segments +} + +/** + * Extracts a series of segments with the appropriate + * modes from a string + * + * @param {String} dataStr Input string + * @return {Array} Array of object with segments data + */ +function getSegmentsFromString (dataStr) { + var numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr) + var alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr) + var byteSegs + var kanjiSegs + + if (Utils.isKanjiModeEnabled()) { + byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr) + kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr) + } else { + byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr) + kanjiSegs = [] + } + + var segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs) + + return segs + .sort(function (s1, s2) { + return s1.index - s2.index + }) + .map(function (obj) { + return { + data: obj.data, + mode: obj.mode, + length: obj.length + } + }) +} + +/** + * Returns how many bits are needed to encode a string of + * specified length with the specified mode + * + * @param {Number} length String length + * @param {Mode} mode Segment mode + * @return {Number} Bit length + */ +function getSegmentBitsLength (length, mode) { + switch (mode) { + case Mode.NUMERIC: + return NumericData.getBitsLength(length) + case Mode.ALPHANUMERIC: + return AlphanumericData.getBitsLength(length) + case Mode.KANJI: + return KanjiData.getBitsLength(length) + case Mode.BYTE: + return ByteData.getBitsLength(length) + } +} + +/** + * Merges adjacent segments which have the same mode + * + * @param {Array} segs Array of object with segments data + * @return {Array} Array of object with segments data + */ +function mergeSegments (segs) { + return segs.reduce(function (acc, curr) { + var prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null + if (prevSeg && prevSeg.mode === curr.mode) { + acc[acc.length - 1].data += curr.data + return acc + } + + acc.push(curr) + return acc + }, []) +} + +/** + * Generates a list of all possible nodes combination which + * will be used to build a segments graph. + * + * Nodes are divided by groups. Each group will contain a list of all the modes + * in which is possible to encode the given text. + * + * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte. + * The group for '12345' will contain then 3 objects, one for each + * possible encoding mode. + * + * Each node represents a possible segment. + * + * @param {Array} segs Array of object with segments data + * @return {Array} Array of object with segments data + */ +function buildNodes (segs) { + var nodes = [] + for (var i = 0; i < segs.length; i++) { + var seg = segs[i] + + switch (seg.mode) { + case Mode.NUMERIC: + nodes.push([seg, + { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length }, + { data: seg.data, mode: Mode.BYTE, length: seg.length } + ]) + break + case Mode.ALPHANUMERIC: + nodes.push([seg, + { data: seg.data, mode: Mode.BYTE, length: seg.length } + ]) + break + case Mode.KANJI: + nodes.push([seg, + { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) } + ]) + break + case Mode.BYTE: + nodes.push([ + { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) } + ]) + } + } + + return nodes +} + +/** + * Builds a graph from a list of nodes. + * All segments in each node group will be connected with all the segments of + * the next group and so on. + * + * At each connection will be assigned a weight depending on the + * segment's byte length. + * + * @param {Array} nodes Array of object with segments data + * @param {Number} version QR Code version + * @return {Object} Graph of all possible segments + */ +function buildGraph (nodes, version) { + var table = {} + var graph = {'start': {}} + var prevNodeIds = ['start'] + + for (var i = 0; i < nodes.length; i++) { + var nodeGroup = nodes[i] + var currentNodeIds = [] + + for (var j = 0; j < nodeGroup.length; j++) { + var node = nodeGroup[j] + var key = '' + i + j + + currentNodeIds.push(key) + table[key] = { node: node, lastCount: 0 } + graph[key] = {} + + for (var n = 0; n < prevNodeIds.length; n++) { + var prevNodeId = prevNodeIds[n] + + if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) { + graph[prevNodeId][key] = + getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) - + getSegmentBitsLength(table[prevNodeId].lastCount, node.mode) + + table[prevNodeId].lastCount += node.length + } else { + if (table[prevNodeId]) table[prevNodeId].lastCount = node.length + + graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) + + 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost + } + } + } + + prevNodeIds = currentNodeIds + } + + for (n = 0; n < prevNodeIds.length; n++) { + graph[prevNodeIds[n]]['end'] = 0 + } + + return { map: graph, table: table } +} + +/** + * Builds a segment from a specified data and mode. + * If a mode is not specified, the more suitable will be used. + * + * @param {String} data Input data + * @param {Mode | String} modesHint Data mode + * @return {Segment} Segment + */ +function buildSingleSegment (data, modesHint) { + var mode + var bestMode = Mode.getBestModeForData(data) + + mode = Mode.from(modesHint, bestMode) + + // Make sure data can be encoded + if (mode !== Mode.BYTE && mode.bit < bestMode.bit) { + throw new Error('"' + data + '"' + + ' cannot be encoded with mode ' + Mode.toString(mode) + + '.\n Suggested mode is: ' + Mode.toString(bestMode)) + } + + // Use Mode.BYTE if Kanji support is disabled + if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) { + mode = Mode.BYTE + } + + switch (mode) { + case Mode.NUMERIC: + return new NumericData(data) + + case Mode.ALPHANUMERIC: + return new AlphanumericData(data) + + case Mode.KANJI: + return new KanjiData(data) + + case Mode.BYTE: + return new ByteData(data) + } +} + +/** + * Builds a list of segments from an array. + * Array can contain Strings or Objects with segment's info. + * + * For each item which is a string, will be generated a segment with the given + * string and the more appropriate encoding mode. + * + * For each item which is an object, will be generated a segment with the given + * data and mode. + * Objects must contain at least the property "data". + * If property "mode" is not present, the more suitable mode will be used. + * + * @param {Array} array Array of objects with segments data + * @return {Array} Array of Segments + */ +exports.fromArray = function fromArray (array) { + return array.reduce(function (acc, seg) { + if (typeof seg === 'string') { + acc.push(buildSingleSegment(seg, null)) + } else if (seg.data) { + acc.push(buildSingleSegment(seg.data, seg.mode)) + } + + return acc + }, []) +} + +/** + * Builds an optimized sequence of segments from a string, + * which will produce the shortest possible bitstream. + * + * @param {String} data Input string + * @param {Number} version QR Code version + * @return {Array} Array of segments + */ +exports.fromString = function fromString (data, version) { + var segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled()) + + var nodes = buildNodes(segs) + var graph = buildGraph(nodes, version) + var path = dijkstra.find_path(graph.map, 'start', 'end') + + var optimizedSegs = [] + for (var i = 1; i < path.length - 1; i++) { + optimizedSegs.push(graph.table[path[i]].node) + } + + return exports.fromArray(mergeSegments(optimizedSegs)) +} + +/** + * Splits a string in various segments with the modes which + * best represent their content. + * The produced segments are far from being optimized. + * The output of this function is only used to estimate a QR Code version + * which may contain the data. + * + * @param {string} data Input string + * @return {Array} Array of segments + */ +exports.rawSplit = function rawSplit (data) { + return exports.fromArray( + getSegmentsFromString(data, Utils.isKanjiModeEnabled()) + ) +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/utils.js": +/*!***********************************************!*\ + !*** ./node_modules/qrcode/lib/core/utils.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +var toSJISFunction +var CODEWORDS_COUNT = [ + 0, // Not used + 26, 44, 70, 100, 134, 172, 196, 242, 292, 346, + 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085, + 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185, + 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706 +] + +/** + * Returns the QR Code size for the specified version + * + * @param {Number} version QR Code version + * @return {Number} size of QR code + */ +exports.getSymbolSize = function getSymbolSize (version) { + if (!version) throw new Error('"version" cannot be null or undefined') + if (version < 1 || version > 40) throw new Error('"version" should be in range from 1 to 40') + return version * 4 + 17 +} + +/** + * Returns the total number of codewords used to store data and EC information. + * + * @param {Number} version QR Code version + * @return {Number} Data length in bits + */ +exports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) { + return CODEWORDS_COUNT[version] +} + +/** + * Encode data with Bose-Chaudhuri-Hocquenghem + * + * @param {Number} data Value to encode + * @return {Number} Encoded value + */ +exports.getBCHDigit = function (data) { + var digit = 0 + + while (data !== 0) { + digit++ + data >>>= 1 + } + + return digit +} + +exports.setToSJISFunction = function setToSJISFunction (f) { + if (typeof f !== 'function') { + throw new Error('"toSJISFunc" is not a valid function.') + } + + toSJISFunction = f +} + +exports.isKanjiModeEnabled = function () { + return typeof toSJISFunction !== 'undefined' +} + +exports.toSJIS = function toSJIS (kanji) { + return toSJISFunction(kanji) +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/version-check.js": +/*!*******************************************************!*\ + !*** ./node_modules/qrcode/lib/core/version-check.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +/** + * Check if QR Code version is valid + * + * @param {Number} version QR Code version + * @return {Boolean} true if valid version, false otherwise + */ +exports.isValid = function isValid (version) { + return !isNaN(version) && version >= 1 && version <= 40 +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/version.js": +/*!*************************************************!*\ + !*** ./node_modules/qrcode/lib/core/version.js ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Utils = __webpack_require__(/*! ./utils */ "./node_modules/qrcode/lib/core/utils.js") +var ECCode = __webpack_require__(/*! ./error-correction-code */ "./node_modules/qrcode/lib/core/error-correction-code.js") +var ECLevel = __webpack_require__(/*! ./error-correction-level */ "./node_modules/qrcode/lib/core/error-correction-level.js") +var Mode = __webpack_require__(/*! ./mode */ "./node_modules/qrcode/lib/core/mode.js") +var VersionCheck = __webpack_require__(/*! ./version-check */ "./node_modules/qrcode/lib/core/version-check.js") +var isArray = __webpack_require__(/*! isarray */ "./node_modules/qrcode/node_modules/isarray/index.js") + +// Generator polynomial used to encode version information +var G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0) +var G18_BCH = Utils.getBCHDigit(G18) + +function getBestVersionForDataLength (mode, length, errorCorrectionLevel) { + for (var currentVersion = 1; currentVersion <= 40; currentVersion++) { + if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) { + return currentVersion + } + } + + return undefined +} + +function getReservedBitsCount (mode, version) { + // Character count indicator + mode indicator bits + return Mode.getCharCountIndicator(mode, version) + 4 +} + +function getTotalBitsFromDataArray (segments, version) { + var totalBits = 0 + + segments.forEach(function (data) { + var reservedBits = getReservedBitsCount(data.mode, version) + totalBits += reservedBits + data.getBitsLength() + }) + + return totalBits +} + +function getBestVersionForMixedData (segments, errorCorrectionLevel) { + for (var currentVersion = 1; currentVersion <= 40; currentVersion++) { + var length = getTotalBitsFromDataArray(segments, currentVersion) + if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) { + return currentVersion + } + } + + return undefined +} + +/** + * Returns version number from a value. + * If value is not a valid version, returns defaultValue + * + * @param {Number|String} value QR Code version + * @param {Number} defaultValue Fallback value + * @return {Number} QR Code version number + */ +exports.from = function from (value, defaultValue) { + if (VersionCheck.isValid(value)) { + return parseInt(value, 10) + } + + return defaultValue +} + +/** + * Returns how much data can be stored with the specified QR code version + * and error correction level + * + * @param {Number} version QR Code version (1-40) + * @param {Number} errorCorrectionLevel Error correction level + * @param {Mode} mode Data mode + * @return {Number} Quantity of storable data + */ +exports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) { + if (!VersionCheck.isValid(version)) { + throw new Error('Invalid QR Code version') + } + + // Use Byte mode as default + if (typeof mode === 'undefined') mode = Mode.BYTE + + // Total codewords for this QR code version (Data + Error correction) + var totalCodewords = Utils.getSymbolTotalCodewords(version) + + // Total number of error correction codewords + var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel) + + // Total number of data codewords + var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8 + + if (mode === Mode.MIXED) return dataTotalCodewordsBits + + var usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version) + + // Return max number of storable codewords + switch (mode) { + case Mode.NUMERIC: + return Math.floor((usableBits / 10) * 3) + + case Mode.ALPHANUMERIC: + return Math.floor((usableBits / 11) * 2) + + case Mode.KANJI: + return Math.floor(usableBits / 13) + + case Mode.BYTE: + default: + return Math.floor(usableBits / 8) + } +} + +/** + * Returns the minimum version needed to contain the amount of data + * + * @param {Segment} data Segment of data + * @param {Number} [errorCorrectionLevel=H] Error correction level + * @param {Mode} mode Data mode + * @return {Number} QR Code version + */ +exports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) { + var seg + + var ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M) + + if (isArray(data)) { + if (data.length > 1) { + return getBestVersionForMixedData(data, ecl) + } + + if (data.length === 0) { + return 1 + } + + seg = data[0] + } else { + seg = data + } + + return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl) +} + +/** + * Returns version information with relative error correction bits + * + * The version information is included in QR Code symbols of version 7 or larger. + * It consists of an 18-bit sequence containing 6 data bits, + * with 12 error correction bits calculated using the (18, 6) Golay code. + * + * @param {Number} version QR Code version + * @return {Number} Encoded version info bits + */ +exports.getEncodedBits = function getEncodedBits (version) { + if (!VersionCheck.isValid(version) || version < 7) { + throw new Error('Invalid QR Code version') + } + + var d = version << 12 + + while (Utils.getBCHDigit(d) - G18_BCH >= 0) { + d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH)) + } + + return (version << 12) | d +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/renderer/canvas.js": +/*!****************************************************!*\ + !*** ./node_modules/qrcode/lib/renderer/canvas.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Utils = __webpack_require__(/*! ./utils */ "./node_modules/qrcode/lib/renderer/utils.js") + +function clearCanvas (ctx, canvas, size) { + ctx.clearRect(0, 0, canvas.width, canvas.height) + + if (!canvas.style) canvas.style = {} + canvas.height = size + canvas.width = size + canvas.style.height = size + 'px' + canvas.style.width = size + 'px' +} + +function getCanvasElement () { + try { + return document.createElement('canvas') + } catch (e) { + throw new Error('You need to specify a canvas element') + } +} + +exports.render = function render (qrData, canvas, options) { + var opts = options + var canvasEl = canvas + + if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) { + opts = canvas + canvas = undefined + } + + if (!canvas) { + canvasEl = getCanvasElement() + } + + opts = Utils.getOptions(opts) + var size = Utils.getImageWidth(qrData.modules.size, opts) + + var ctx = canvasEl.getContext('2d') + var image = ctx.createImageData(size, size) + Utils.qrToImageData(image.data, qrData, opts) + + clearCanvas(ctx, canvasEl, size) + ctx.putImageData(image, 0, 0) + + return canvasEl +} + +exports.renderToDataURL = function renderToDataURL (qrData, canvas, options) { + var opts = options + + if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) { + opts = canvas + canvas = undefined + } + + if (!opts) opts = {} + + var canvasEl = exports.render(qrData, canvas, opts) + + var type = opts.type || 'image/png' + var rendererOpts = opts.rendererOpts || {} + + return canvasEl.toDataURL(type, rendererOpts.quality) +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/renderer/svg-tag.js": +/*!*****************************************************!*\ + !*** ./node_modules/qrcode/lib/renderer/svg-tag.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Utils = __webpack_require__(/*! ./utils */ "./node_modules/qrcode/lib/renderer/utils.js") + +function getColorAttrib (color, attrib) { + var alpha = color.a / 255 + var str = attrib + '="' + color.hex + '"' + + return alpha < 1 + ? str + ' ' + attrib + '-opacity="' + alpha.toFixed(2).slice(1) + '"' + : str +} + +function svgCmd (cmd, x, y) { + var str = cmd + x + if (typeof y !== 'undefined') str += ' ' + y + + return str +} + +function qrToPath (data, size, margin) { + var path = '' + var moveBy = 0 + var newRow = false + var lineLength = 0 + + for (var i = 0; i < data.length; i++) { + var col = Math.floor(i % size) + var row = Math.floor(i / size) + + if (!col && !newRow) newRow = true + + if (data[i]) { + lineLength++ + + if (!(i > 0 && col > 0 && data[i - 1])) { + path += newRow + ? svgCmd('M', col + margin, 0.5 + row + margin) + : svgCmd('m', moveBy, 0) + + moveBy = 0 + newRow = false + } + + if (!(col + 1 < size && data[i + 1])) { + path += svgCmd('h', lineLength) + lineLength = 0 + } + } else { + moveBy++ + } + } + + return path +} + +exports.render = function render (qrData, options, cb) { + var opts = Utils.getOptions(options) + var size = qrData.modules.size + var data = qrData.modules.data + var qrcodesize = size + opts.margin * 2 + + var bg = !opts.color.light.a + ? '' + : '' + + var path = + '' + + var viewBox = 'viewBox="' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '"' + + var width = !opts.width ? '' : 'width="' + opts.width + '" height="' + opts.width + '" ' + + var svgTag = '' + bg + path + '\n' + + if (typeof cb === 'function') { + cb(null, svgTag) + } + + return svgTag +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/renderer/utils.js": +/*!***************************************************!*\ + !*** ./node_modules/qrcode/lib/renderer/utils.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +function hex2rgba (hex) { + if (typeof hex === 'number') { + hex = hex.toString() + } + + if (typeof hex !== 'string') { + throw new Error('Color should be defined as hex string') + } + + var hexCode = hex.slice().replace('#', '').split('') + if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) { + throw new Error('Invalid hex color: ' + hex) + } + + // Convert from short to long form (fff -> ffffff) + if (hexCode.length === 3 || hexCode.length === 4) { + hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) { + return [c, c] + })) + } + + // Add default alpha value + if (hexCode.length === 6) hexCode.push('F', 'F') + + var hexValue = parseInt(hexCode.join(''), 16) + + return { + r: (hexValue >> 24) & 255, + g: (hexValue >> 16) & 255, + b: (hexValue >> 8) & 255, + a: hexValue & 255, + hex: '#' + hexCode.slice(0, 6).join('') + } +} + +exports.getOptions = function getOptions (options) { + if (!options) options = {} + if (!options.color) options.color = {} + + var margin = typeof options.margin === 'undefined' || + options.margin === null || + options.margin < 0 ? 4 : options.margin + + var width = options.width && options.width >= 21 ? options.width : undefined + var scale = options.scale || 4 + + return { + width: width, + scale: width ? 4 : scale, + margin: margin, + color: { + dark: hex2rgba(options.color.dark || '#000000ff'), + light: hex2rgba(options.color.light || '#ffffffff') + }, + type: options.type, + rendererOpts: options.rendererOpts || {} + } +} + +exports.getScale = function getScale (qrSize, opts) { + return opts.width && opts.width >= qrSize + opts.margin * 2 + ? opts.width / (qrSize + opts.margin * 2) + : opts.scale +} + +exports.getImageWidth = function getImageWidth (qrSize, opts) { + var scale = exports.getScale(qrSize, opts) + return Math.floor((qrSize + opts.margin * 2) * scale) +} + +exports.qrToImageData = function qrToImageData (imgData, qr, opts) { + var size = qr.modules.size + var data = qr.modules.data + var scale = exports.getScale(size, opts) + var symbolSize = Math.floor((size + opts.margin * 2) * scale) + var scaledMargin = opts.margin * scale + var palette = [opts.color.light, opts.color.dark] + + for (var i = 0; i < symbolSize; i++) { + for (var j = 0; j < symbolSize; j++) { + var posDst = (i * symbolSize + j) * 4 + var pxColor = opts.color.light + + if (i >= scaledMargin && j >= scaledMargin && + i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) { + var iSrc = Math.floor((i - scaledMargin) / scale) + var jSrc = Math.floor((j - scaledMargin) / scale) + pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0] + } + + imgData[posDst++] = pxColor.r + imgData[posDst++] = pxColor.g + imgData[posDst++] = pxColor.b + imgData[posDst] = pxColor.a + } + } +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/utils/typedarray-buffer.js": +/*!************************************************************!*\ + !*** ./node_modules/qrcode/lib/utils/typedarray-buffer.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Implementation of a subset of node.js Buffer methods for the browser. + * Based on https://github.com/feross/buffer + */ + +/* eslint-disable no-proto */ + + + +var isArray = __webpack_require__(/*! isarray */ "./node_modules/qrcode/node_modules/isarray/index.js") + +function typedArraySupport () { + // Can typed array instances be augmented? + try { + var arr = new Uint8Array(1) + arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} + return arr.foo() === 42 + } catch (e) { + return false + } +} + +Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport() + +var K_MAX_LENGTH = Buffer.TYPED_ARRAY_SUPPORT + ? 0x7fffffff + : 0x3fffffff + +function Buffer (arg, offset, length) { + if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { + return new Buffer(arg, offset, length) + } + + if (typeof arg === 'number') { + return allocUnsafe(this, arg) + } + + return from(this, arg, offset, length) +} + +if (Buffer.TYPED_ARRAY_SUPPORT) { + Buffer.prototype.__proto__ = Uint8Array.prototype + Buffer.__proto__ = Uint8Array + + // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 + if (typeof Symbol !== 'undefined' && Symbol.species && + Buffer[Symbol.species] === Buffer) { + Object.defineProperty(Buffer, Symbol.species, { + value: null, + configurable: true, + enumerable: false, + writable: false + }) + } +} + +function checked (length) { + // Note: cannot use `length < K_MAX_LENGTH` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= K_MAX_LENGTH) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes') + } + return length | 0 +} + +function isnan (val) { + return val !== val // eslint-disable-line no-self-compare +} + +function createBuffer (that, length) { + var buf + if (Buffer.TYPED_ARRAY_SUPPORT) { + buf = new Uint8Array(length) + buf.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + buf = that + if (buf === null) { + buf = new Buffer(length) + } + buf.length = length + } + + return buf +} + +function allocUnsafe (that, size) { + var buf = createBuffer(that, size < 0 ? 0 : checked(size) | 0) + + if (!Buffer.TYPED_ARRAY_SUPPORT) { + for (var i = 0; i < size; ++i) { + buf[i] = 0 + } + } + + return buf +} + +function fromString (that, string) { + var length = byteLength(string) | 0 + var buf = createBuffer(that, length) + + var actual = buf.write(string) + + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + buf = buf.slice(0, actual) + } + + return buf +} + +function fromArrayLike (that, array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0 + var buf = createBuffer(that, length) + for (var i = 0; i < length; i += 1) { + buf[i] = array[i] & 255 + } + return buf +} + +function fromArrayBuffer (that, array, byteOffset, length) { + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('\'offset\' is out of bounds') + } + + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('\'length\' is out of bounds') + } + + var buf + if (byteOffset === undefined && length === undefined) { + buf = new Uint8Array(array) + } else if (length === undefined) { + buf = new Uint8Array(array, byteOffset) + } else { + buf = new Uint8Array(array, byteOffset, length) + } + + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + buf.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + buf = fromArrayLike(that, buf) + } + + return buf +} + +function fromObject (that, obj) { + if (Buffer.isBuffer(obj)) { + var len = checked(obj.length) | 0 + var buf = createBuffer(that, len) + + if (buf.length === 0) { + return buf + } + + obj.copy(buf, 0, 0, len) + return buf + } + + if (obj) { + if ((typeof ArrayBuffer !== 'undefined' && + obj.buffer instanceof ArrayBuffer) || 'length' in obj) { + if (typeof obj.length !== 'number' || isnan(obj.length)) { + return createBuffer(that, 0) + } + return fromArrayLike(that, obj) + } + + if (obj.type === 'Buffer' && Array.isArray(obj.data)) { + return fromArrayLike(that, obj.data) + } + } + + throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') +} + +function utf8ToBytes (string, units) { + units = units || Infinity + var codePoint + var length = string.length + var leadSurrogate = null + var bytes = [] + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i) + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } + + // valid lead + leadSurrogate = codePoint + + continue + } + + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = codePoint + continue + } + + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + } + + leadSurrogate = null + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else { + throw new Error('Invalid code point') + } + } + + return bytes +} + +function byteLength (string) { + if (Buffer.isBuffer(string)) { + return string.length + } + if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && + (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + string = '' + string + } + + var len = string.length + if (len === 0) return 0 + + return utf8ToBytes(string).length +} + +function blitBuffer (src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i] + } + return i +} + +function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) +} + +function from (that, value, offset, length) { + if (typeof value === 'number') { + throw new TypeError('"value" argument must not be a number') + } + + if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { + return fromArrayBuffer(that, value, offset, length) + } + + if (typeof value === 'string') { + return fromString(that, value, offset) + } + + return fromObject(that, value) +} + +Buffer.prototype.write = function write (string, offset, length) { + // Buffer#write(string) + if (offset === undefined) { + length = this.length + offset = 0 + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + length = this.length + offset = 0 + // Buffer#write(string, offset[, length]) + } else if (isFinite(offset)) { + offset = offset | 0 + if (isFinite(length)) { + length = length | 0 + } else { + length = undefined + } + } + + var remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') + } + + return utf8Write(this, string, offset, length) +} + +Buffer.prototype.slice = function slice (start, end) { + var len = this.length + start = ~~start + end = end === undefined ? len : ~~end + + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } + + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } + + if (end < start) end = start + + var newBuf + if (Buffer.TYPED_ARRAY_SUPPORT) { + newBuf = this.subarray(start, end) + // Return an augmented `Uint8Array` instance + newBuf.__proto__ = Buffer.prototype + } else { + var sliceLen = end - start + newBuf = new Buffer(sliceLen, undefined) + for (var i = 0; i < sliceLen; ++i) { + newBuf[i] = this[i + start] + } + } + + return newBuf +} + +Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start + + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } + + var len = end - start + var i + + if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start] + } + } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { + // ascending copy from start + for (i = 0; i < len; ++i) { + target[i + targetStart] = this[i + start] + } + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, start + len), + targetStart + ) + } + + return len +} + +Buffer.prototype.fill = function fill (val, start, end) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + start = 0 + end = this.length + } else if (typeof end === 'string') { + end = this.length + } + if (val.length === 1) { + var code = val.charCodeAt(0) + if (code < 256) { + val = code + } + } + } else if (typeof val === 'number') { + val = val & 255 + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } + + if (end <= start) { + return this + } + + start = start >>> 0 + end = end === undefined ? this.length : end >>> 0 + + if (!val) val = 0 + + var i + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val + } + } else { + var bytes = Buffer.isBuffer(val) + ? val + : new Buffer(val) + var len = bytes.length + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len] + } + } + + return this +} + +Buffer.concat = function concat (list, length) { + if (!isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + + if (list.length === 0) { + return createBuffer(null, 0) + } + + var i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; ++i) { + length += list[i].length + } + } + + var buffer = allocUnsafe(null, length) + var pos = 0 + for (i = 0; i < list.length; ++i) { + var buf = list[i] + if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + buf.copy(buffer, pos) + pos += buf.length + } + return buffer +} + +Buffer.byteLength = byteLength + +Buffer.prototype._isBuffer = true +Buffer.isBuffer = function isBuffer (b) { + return !!(b != null && b._isBuffer) +} + +module.exports = Buffer + + +/***/ }), + +/***/ "./node_modules/qrcode/node_modules/isarray/index.js": +/*!***********************************************************!*\ + !*** ./node_modules/qrcode/node_modules/isarray/index.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +var toString = {}.toString; + +module.exports = Array.isArray || function (arr) { + return toString.call(arr) == '[object Array]'; +}; + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=script&lang=js&": +/*!****************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=script&lang=js& ***! + \****************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "AlertBoxIcon", + props: { + title: { + type: String, + default: "Alert Box icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Delete.vue?vue&type=script&lang=js&": +/*!**************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Delete.vue?vue&type=script&lang=js& ***! + \**************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "DeleteIcon", + props: { + title: { + type: String, + default: "Delete icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "DotsHorizontalIcon", + props: { + title: { + type: String, + default: "Dots Horizontal icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "LinkVariantIcon", + props: { + title: { + type: String, + default: "Link Variant icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "LockAlertIcon", + props: { + title: { + type: String, + default: "Lock Alert icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Markdown.vue?vue&type=script&lang=js&": +/*!****************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Markdown.vue?vue&type=script&lang=js& ***! + \****************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "MarkdownIcon", + props: { + title: { + type: String, + default: "Markdown icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Pencil.vue?vue&type=script&lang=js&": +/*!**************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Pencil.vue?vue&type=script&lang=js& ***! + \**************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "PencilIcon", + props: { + title: { + type: String, + default: "Pencil icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Reply.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Reply.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "ReplyIcon", + props: { + title: { + type: String, + default: "Reply icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Share.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Share.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "ShareIcon", + props: { + title: { + type: String, + default: "Share icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Star.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Star.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "StarIcon", + props: { + title: { + type: String, + default: "Star icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "ThumbDownIcon", + props: { + title: { + type: String, + default: "Thumb Down icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "ThumbDownOutlineIcon", + props: { + title: { + type: String, + default: "Thumb Down Outline icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=script&lang=js&": +/*!***************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=script&lang=js& ***! + \***************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "ThumbUpIcon", + props: { + title: { + type: String, + default: "Thumb Up icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "ThumbUpOutlineIcon", + props: { + title: { + type: String, + default: "Thumb Up Outline icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "VolumeHighIcon", + props: { + title: { + type: String, + default: "Volume High icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "VolumeMuteIcon", + props: { + title: { + type: String, + default: "Volume Mute icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=template&id=b373690a&": +/*!**************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=template&id=b373690a& ***! + \**************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon alert-box-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M5,3H19C20.1,3 21,3.9 21,5V19C21,20.1 20.1,21 19,21H5C3.9,21 3,20.1 3,19V5C3,3.9 3.9,3 5,3M13,13V7H11V13H13M13,17V15H11V17H13Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Delete.vue?vue&type=template&id=423aa957&": +/*!************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Delete.vue?vue&type=template&id=423aa957& ***! + \************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon delete-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19C6,20.1 6.9,21 8,21H16C17.1,21 18,20.1 18,19V7H6V19Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=3174c38c&": +/*!********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=3174c38c& ***! + \********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon dots-horizontal-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M16,12C16,10.9 16.9,10 18,10C19.1,10 20,10.9 20,12C20,13.1 19.1,14 18,14C16.9,14 16,13.1 16,12M10,12C10,10.9 10.9,10 12,10C13.1,10 14,10.9 14,12C14,13.1 13.1,14 12,14C10.9,14 10,13.1 10,12M4,12C4,10.9 4.9,10 6,10C7.1,10 8,10.9 8,12C8,13.1 7.1,14 6,14C4.9,14 4,13.1 4,12Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=template&id=36a2ce2f&": +/*!*****************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=template&id=36a2ce2f& ***! + \*****************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon link-variant-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=template&id=0b3b71f5&": +/*!***************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=template&id=0b3b71f5& ***! + \***************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon lock-alert-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M12,1C9.24,1 7,3.24 7,6V8H6C4.9,8 4,8.9 4,10V20C4,21.1 4.9,22 6,22H18C19.1,22 20,21.1 20,20V10C20,8.9 19.1,8 18,8H17V6C17,3.24 14.76,1 12,1M12,2.9C13.71,2.9 15.1,4.29 15.1,6V8H8.9V6C8.9,4.29 10.29,2.9 12,2.9M11,11H13V15H11V11M11,17H13V19H11V17Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Markdown.vue?vue&type=template&id=5bbcecca&": +/*!**************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Markdown.vue?vue&type=template&id=5bbcecca& ***! + \**************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon markdown-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M2,16V8H4L7,11L10,8H12V16H10V10.83L7,13.83L4,10.83V16H2M16,8H19V12H21.5L17.5,16.5L13.5,12H16V8Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Pencil.vue?vue&type=template&id=093f2fb9&": +/*!************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Pencil.vue?vue&type=template&id=093f2fb9& ***! + \************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon pencil-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Reply.vue?vue&type=template&id=3faadf6e&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Reply.vue?vue&type=template&id=3faadf6e& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon reply-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M10,9V5L3,12L10,19V14.9C15,14.9 18.5,16.5 21,20C20,15 17,10 10,9Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Share.vue?vue&type=template&id=098ecc3a&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Share.vue?vue&type=template&id=098ecc3a& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon share-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M21,12L14,5V9C7,10 4,15 3,20C5.5,16.5 9,14.9 14,14.9V19L21,12Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Star.vue?vue&type=template&id=553bd904&": +/*!**********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Star.vue?vue&type=template&id=553bd904& ***! + \**********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon star-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=template&id=b61641c8&": +/*!***************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=template&id=b61641c8& ***! + \***************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon thumb-down-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M19,15H23V3H19M15,3H6C5.17,3 4.46,3.5 4.16,4.22L1.14,11.27C1.05,11.5 1,11.74 1,12V14C1,15.1 1.9,16 3,16H9.31L8.36,20.57C8.34,20.67 8.33,20.77 8.33,20.88C8.33,21.3 8.5,21.67 8.77,21.94L9.83,23L16.41,16.41C16.78,16.05 17,15.55 17,15V5C17,3.89 16.1,3 15,3Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=template&id=1721e8b6&": +/*!**********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=template&id=1721e8b6& ***! + \**********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon thumb-down-outline-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M19,15V3H23V15H19M15,3C16.1,3 17,3.9 17,5V15C17,15.55 16.78,16.05 16.41,16.41L9.83,23L8.77,21.94C8.5,21.67 8.33,21.3 8.33,20.88L8.36,20.57L9.31,16H3C1.89,16 1,15.1 1,14V12C1,11.74 1.05,11.5 1.14,11.27L4.16,4.22C4.46,3.5 5.17,3 6,3H15M15,5H5.97L3,12V14H11.78L10.65,19.32L15,14.97V5Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=template&id=549215d6&": +/*!*************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=template&id=549215d6& ***! + \*************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon thumb-up-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M23,10C23,8.89 22.1,8 21,8H14.68L15.64,3.43C15.66,3.33 15.67,3.22 15.67,3.11C15.67,2.7 15.5,2.32 15.23,2.05L14.17,1L7.59,7.58C7.22,7.95 7,8.45 7,9V19C7,20.1 7.9,21 9,21H18C18.83,21 19.54,20.5 19.84,19.78L22.86,12.73C22.95,12.5 23,12.26 23,12V10M1,21H5V9H1V21Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=template&id=6ad2d89d&": +/*!********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=template&id=6ad2d89d& ***! + \********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon thumb-up-outline-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M5,9V21H1V9H5M9,21C7.9,21 7,20.1 7,19V9C7,8.45 7.22,7.95 7.59,7.59L14.17,1L15.23,2.06C15.5,2.33 15.67,2.7 15.67,3.11L15.64,3.43L14.69,8H21C22.11,8 23,8.9 23,10V12C23,12.26 22.95,12.5 22.86,12.73L19.84,19.78C19.54,20.5 18.83,21 18,21H9M9,19H18.03L21,12V10H12.21L13.34,4.68L9,9.03V19Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0&": +/*!****************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0& ***! + \****************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon volume-high-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M14,3.23V5.29C16.89,6.15 19,8.83 19,12C19,15.17 16.89,17.84 14,18.7V20.77C18,19.86 21,16.28 21,12C21,7.72 18,4.14 14,3.23M16.5,12C16.5,10.23 15.5,8.71 14,7.97V16C15.5,15.29 16.5,13.76 16.5,12M3,9V15H7L12,20V4L7,9H3Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff&": +/*!****************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff& ***! + \****************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon volume-mute-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M3,9H7L12,4V20L7,15H3V9M16.59,12L14,9.41L15.41,8L18,10.59L20.59,8L22,9.41L19.41,12L22,14.59L20.59,16L18,13.41L15.41,16L14,14.59L16.59,12Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/AlertBox.vue": +/*!*************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/AlertBox.vue ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _AlertBox_vue_vue_type_template_id_b373690a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AlertBox.vue?vue&type=template&id=b373690a& */ "./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=template&id=b373690a&"); +/* harmony import */ var _AlertBox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AlertBox.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _AlertBox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _AlertBox_vue_vue_type_template_id_b373690a___WEBPACK_IMPORTED_MODULE_0__["render"], + _AlertBox_vue_vue_type_template_id_b373690a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/AlertBox.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=script&lang=js&": +/*!**************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=script&lang=js& ***! + \**************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_AlertBox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./AlertBox.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_AlertBox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=template&id=b373690a&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=template&id=b373690a& ***! + \********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_AlertBox_vue_vue_type_template_id_b373690a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./AlertBox.vue?vue&type=template&id=b373690a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=template&id=b373690a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_AlertBox_vue_vue_type_template_id_b373690a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_AlertBox_vue_vue_type_template_id_b373690a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Delete.vue": +/*!***********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Delete.vue ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Delete_vue_vue_type_template_id_423aa957___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Delete.vue?vue&type=template&id=423aa957& */ "./node_modules/vue-material-design-icons/Delete.vue?vue&type=template&id=423aa957&"); +/* harmony import */ var _Delete_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Delete.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Delete.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Delete_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Delete_vue_vue_type_template_id_423aa957___WEBPACK_IMPORTED_MODULE_0__["render"], + _Delete_vue_vue_type_template_id_423aa957___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Delete.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Delete.vue?vue&type=script&lang=js&": +/*!************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Delete.vue?vue&type=script&lang=js& ***! + \************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Delete_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Delete.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Delete.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Delete_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Delete.vue?vue&type=template&id=423aa957&": +/*!******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Delete.vue?vue&type=template&id=423aa957& ***! + \******************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Delete_vue_vue_type_template_id_423aa957___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Delete.vue?vue&type=template&id=423aa957& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Delete.vue?vue&type=template&id=423aa957&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Delete_vue_vue_type_template_id_423aa957___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Delete_vue_vue_type_template_id_423aa957___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/DotsHorizontal.vue": +/*!*******************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/DotsHorizontal.vue ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _DotsHorizontal_vue_vue_type_template_id_3174c38c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DotsHorizontal.vue?vue&type=template&id=3174c38c& */ "./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=3174c38c&"); +/* harmony import */ var _DotsHorizontal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DotsHorizontal.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _DotsHorizontal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _DotsHorizontal_vue_vue_type_template_id_3174c38c___WEBPACK_IMPORTED_MODULE_0__["render"], + _DotsHorizontal_vue_vue_type_template_id_3174c38c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/DotsHorizontal.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js& ***! + \********************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_DotsHorizontal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./DotsHorizontal.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_DotsHorizontal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=3174c38c&": +/*!**************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=3174c38c& ***! + \**************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_DotsHorizontal_vue_vue_type_template_id_3174c38c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./DotsHorizontal.vue?vue&type=template&id=3174c38c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=3174c38c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_DotsHorizontal_vue_vue_type_template_id_3174c38c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_DotsHorizontal_vue_vue_type_template_id_3174c38c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/LinkVariant.vue": +/*!****************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/LinkVariant.vue ***! + \****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _LinkVariant_vue_vue_type_template_id_36a2ce2f___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LinkVariant.vue?vue&type=template&id=36a2ce2f& */ "./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=template&id=36a2ce2f&"); +/* harmony import */ var _LinkVariant_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./LinkVariant.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _LinkVariant_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _LinkVariant_vue_vue_type_template_id_36a2ce2f___WEBPACK_IMPORTED_MODULE_0__["render"], + _LinkVariant_vue_vue_type_template_id_36a2ce2f___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/LinkVariant.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_LinkVariant_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./LinkVariant.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_LinkVariant_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=template&id=36a2ce2f&": +/*!***********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=template&id=36a2ce2f& ***! + \***********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_LinkVariant_vue_vue_type_template_id_36a2ce2f___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./LinkVariant.vue?vue&type=template&id=36a2ce2f& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=template&id=36a2ce2f&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_LinkVariant_vue_vue_type_template_id_36a2ce2f___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_LinkVariant_vue_vue_type_template_id_36a2ce2f___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/LockAlert.vue": +/*!**************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/LockAlert.vue ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _LockAlert_vue_vue_type_template_id_0b3b71f5___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LockAlert.vue?vue&type=template&id=0b3b71f5& */ "./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=template&id=0b3b71f5&"); +/* harmony import */ var _LockAlert_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./LockAlert.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _LockAlert_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _LockAlert_vue_vue_type_template_id_0b3b71f5___WEBPACK_IMPORTED_MODULE_0__["render"], + _LockAlert_vue_vue_type_template_id_0b3b71f5___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/LockAlert.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=script&lang=js&": +/*!***************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=script&lang=js& ***! + \***************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_LockAlert_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./LockAlert.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_LockAlert_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=template&id=0b3b71f5&": +/*!*********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=template&id=0b3b71f5& ***! + \*********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_LockAlert_vue_vue_type_template_id_0b3b71f5___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./LockAlert.vue?vue&type=template&id=0b3b71f5& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=template&id=0b3b71f5&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_LockAlert_vue_vue_type_template_id_0b3b71f5___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_LockAlert_vue_vue_type_template_id_0b3b71f5___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Markdown.vue": +/*!*************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Markdown.vue ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Markdown_vue_vue_type_template_id_5bbcecca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Markdown.vue?vue&type=template&id=5bbcecca& */ "./node_modules/vue-material-design-icons/Markdown.vue?vue&type=template&id=5bbcecca&"); +/* harmony import */ var _Markdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Markdown.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Markdown.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Markdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Markdown_vue_vue_type_template_id_5bbcecca___WEBPACK_IMPORTED_MODULE_0__["render"], + _Markdown_vue_vue_type_template_id_5bbcecca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Markdown.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Markdown.vue?vue&type=script&lang=js&": +/*!**************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Markdown.vue?vue&type=script&lang=js& ***! + \**************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Markdown.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Markdown.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Markdown.vue?vue&type=template&id=5bbcecca&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Markdown.vue?vue&type=template&id=5bbcecca& ***! + \********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_template_id_5bbcecca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Markdown.vue?vue&type=template&id=5bbcecca& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Markdown.vue?vue&type=template&id=5bbcecca&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_template_id_5bbcecca___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_template_id_5bbcecca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Pencil.vue": +/*!***********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Pencil.vue ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Pencil_vue_vue_type_template_id_093f2fb9___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Pencil.vue?vue&type=template&id=093f2fb9& */ "./node_modules/vue-material-design-icons/Pencil.vue?vue&type=template&id=093f2fb9&"); +/* harmony import */ var _Pencil_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Pencil.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Pencil.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Pencil_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Pencil_vue_vue_type_template_id_093f2fb9___WEBPACK_IMPORTED_MODULE_0__["render"], + _Pencil_vue_vue_type_template_id_093f2fb9___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Pencil.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Pencil.vue?vue&type=script&lang=js&": +/*!************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Pencil.vue?vue&type=script&lang=js& ***! + \************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Pencil_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Pencil.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Pencil.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Pencil_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Pencil.vue?vue&type=template&id=093f2fb9&": +/*!******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Pencil.vue?vue&type=template&id=093f2fb9& ***! + \******************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Pencil_vue_vue_type_template_id_093f2fb9___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Pencil.vue?vue&type=template&id=093f2fb9& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Pencil.vue?vue&type=template&id=093f2fb9&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Pencil_vue_vue_type_template_id_093f2fb9___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Pencil_vue_vue_type_template_id_093f2fb9___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Reply.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Reply.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Reply_vue_vue_type_template_id_3faadf6e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Reply.vue?vue&type=template&id=3faadf6e& */ "./node_modules/vue-material-design-icons/Reply.vue?vue&type=template&id=3faadf6e&"); +/* harmony import */ var _Reply_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Reply.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Reply.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Reply_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Reply_vue_vue_type_template_id_3faadf6e___WEBPACK_IMPORTED_MODULE_0__["render"], + _Reply_vue_vue_type_template_id_3faadf6e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Reply.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Reply.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Reply.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Reply_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Reply.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Reply.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Reply_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Reply.vue?vue&type=template&id=3faadf6e&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Reply.vue?vue&type=template&id=3faadf6e& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Reply_vue_vue_type_template_id_3faadf6e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Reply.vue?vue&type=template&id=3faadf6e& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Reply.vue?vue&type=template&id=3faadf6e&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Reply_vue_vue_type_template_id_3faadf6e___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Reply_vue_vue_type_template_id_3faadf6e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Share.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Share.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Share_vue_vue_type_template_id_098ecc3a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Share.vue?vue&type=template&id=098ecc3a& */ "./node_modules/vue-material-design-icons/Share.vue?vue&type=template&id=098ecc3a&"); +/* harmony import */ var _Share_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Share.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Share.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Share_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Share_vue_vue_type_template_id_098ecc3a___WEBPACK_IMPORTED_MODULE_0__["render"], + _Share_vue_vue_type_template_id_098ecc3a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Share.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Share.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Share.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Share_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Share.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Share.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Share_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Share.vue?vue&type=template&id=098ecc3a&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Share.vue?vue&type=template&id=098ecc3a& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Share_vue_vue_type_template_id_098ecc3a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Share.vue?vue&type=template&id=098ecc3a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Share.vue?vue&type=template&id=098ecc3a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Share_vue_vue_type_template_id_098ecc3a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Share_vue_vue_type_template_id_098ecc3a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Star.vue": +/*!*********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Star.vue ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Star_vue_vue_type_template_id_553bd904___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Star.vue?vue&type=template&id=553bd904& */ "./node_modules/vue-material-design-icons/Star.vue?vue&type=template&id=553bd904&"); +/* harmony import */ var _Star_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Star.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Star.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Star_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Star_vue_vue_type_template_id_553bd904___WEBPACK_IMPORTED_MODULE_0__["render"], + _Star_vue_vue_type_template_id_553bd904___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Star.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Star.vue?vue&type=script&lang=js&": +/*!**********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Star.vue?vue&type=script&lang=js& ***! + \**********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Star_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Star.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Star.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Star_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Star.vue?vue&type=template&id=553bd904&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Star.vue?vue&type=template&id=553bd904& ***! + \****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Star_vue_vue_type_template_id_553bd904___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Star.vue?vue&type=template&id=553bd904& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Star.vue?vue&type=template&id=553bd904&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Star_vue_vue_type_template_id_553bd904___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Star_vue_vue_type_template_id_553bd904___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbDown.vue": +/*!**************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbDown.vue ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _ThumbDown_vue_vue_type_template_id_b61641c8___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ThumbDown.vue?vue&type=template&id=b61641c8& */ "./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=template&id=b61641c8&"); +/* harmony import */ var _ThumbDown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ThumbDown.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _ThumbDown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _ThumbDown_vue_vue_type_template_id_b61641c8___WEBPACK_IMPORTED_MODULE_0__["render"], + _ThumbDown_vue_vue_type_template_id_b61641c8___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/ThumbDown.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=script&lang=js&": +/*!***************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=script&lang=js& ***! + \***************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_ThumbDown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./ThumbDown.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_ThumbDown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=template&id=b61641c8&": +/*!*********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=template&id=b61641c8& ***! + \*********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbDown_vue_vue_type_template_id_b61641c8___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./ThumbDown.vue?vue&type=template&id=b61641c8& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=template&id=b61641c8&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbDown_vue_vue_type_template_id_b61641c8___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbDown_vue_vue_type_template_id_b61641c8___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbDownOutline.vue": +/*!*********************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbDownOutline.vue ***! + \*********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _ThumbDownOutline_vue_vue_type_template_id_1721e8b6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ThumbDownOutline.vue?vue&type=template&id=1721e8b6& */ "./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=template&id=1721e8b6&"); +/* harmony import */ var _ThumbDownOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ThumbDownOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _ThumbDownOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _ThumbDownOutline_vue_vue_type_template_id_1721e8b6___WEBPACK_IMPORTED_MODULE_0__["render"], + _ThumbDownOutline_vue_vue_type_template_id_1721e8b6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/ThumbDownOutline.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_ThumbDownOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./ThumbDownOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_ThumbDownOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=template&id=1721e8b6&": +/*!****************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=template&id=1721e8b6& ***! + \****************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbDownOutline_vue_vue_type_template_id_1721e8b6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./ThumbDownOutline.vue?vue&type=template&id=1721e8b6& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=template&id=1721e8b6&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbDownOutline_vue_vue_type_template_id_1721e8b6___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbDownOutline_vue_vue_type_template_id_1721e8b6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbUp.vue": +/*!************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbUp.vue ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _ThumbUp_vue_vue_type_template_id_549215d6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ThumbUp.vue?vue&type=template&id=549215d6& */ "./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=template&id=549215d6&"); +/* harmony import */ var _ThumbUp_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ThumbUp.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _ThumbUp_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _ThumbUp_vue_vue_type_template_id_549215d6___WEBPACK_IMPORTED_MODULE_0__["render"], + _ThumbUp_vue_vue_type_template_id_549215d6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/ThumbUp.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=script&lang=js&": +/*!*************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=script&lang=js& ***! + \*************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_ThumbUp_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./ThumbUp.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_ThumbUp_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=template&id=549215d6&": +/*!*******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=template&id=549215d6& ***! + \*******************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbUp_vue_vue_type_template_id_549215d6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./ThumbUp.vue?vue&type=template&id=549215d6& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=template&id=549215d6&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbUp_vue_vue_type_template_id_549215d6___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbUp_vue_vue_type_template_id_549215d6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbUpOutline.vue": +/*!*******************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbUpOutline.vue ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _ThumbUpOutline_vue_vue_type_template_id_6ad2d89d___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ThumbUpOutline.vue?vue&type=template&id=6ad2d89d& */ "./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=template&id=6ad2d89d&"); +/* harmony import */ var _ThumbUpOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ThumbUpOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _ThumbUpOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _ThumbUpOutline_vue_vue_type_template_id_6ad2d89d___WEBPACK_IMPORTED_MODULE_0__["render"], + _ThumbUpOutline_vue_vue_type_template_id_6ad2d89d___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/ThumbUpOutline.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=script&lang=js&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=script&lang=js& ***! + \********************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_ThumbUpOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./ThumbUpOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_ThumbUpOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=template&id=6ad2d89d&": +/*!**************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=template&id=6ad2d89d& ***! + \**************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbUpOutline_vue_vue_type_template_id_6ad2d89d___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./ThumbUpOutline.vue?vue&type=template&id=6ad2d89d& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=template&id=6ad2d89d&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbUpOutline_vue_vue_type_template_id_6ad2d89d___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbUpOutline_vue_vue_type_template_id_6ad2d89d___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeHigh.vue": +/*!***************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeHigh.vue ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VolumeHigh.vue?vue&type=template&id=ffdb55f0& */ "./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0&"); +/* harmony import */ var _VolumeHigh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VolumeHigh.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _VolumeHigh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__["render"], + _VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/VolumeHigh.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js& ***! + \****************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_VolumeHigh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./VolumeHigh.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_VolumeHigh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0&": +/*!**********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0& ***! + \**********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./VolumeHigh.vue?vue&type=template&id=ffdb55f0& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeMute.vue": +/*!***************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeMute.vue ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VolumeMute.vue?vue&type=template&id=1847b5ff& */ "./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff&"); +/* harmony import */ var _VolumeMute_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VolumeMute.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _VolumeMute_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__["render"], + _VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/VolumeMute.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js& ***! + \****************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_VolumeMute_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./VolumeMute.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_VolumeMute_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff&": +/*!**********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff& ***! + \**********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./VolumeMute.vue?vue&type=template&id=1847b5ff& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/17.731bae53e208787b7c5c.js b/public/17.731bae53e208787b7c5c.js new file mode 100644 index 00000000..ff680ae9 --- /dev/null +++ b/public/17.731bae53e208787b7c5c.js @@ -0,0 +1,4264 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[17],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/animate-action.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/animate-action.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var mo_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mo-js */ "./node_modules/mo-js/build/mo.js"); +/* harmony import */ var mo_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(mo_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var $icons_ThumbUpOutline__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/ThumbUpOutline */ "./node_modules/vue-material-design-icons/ThumbUpOutline.vue"); +/* harmony import */ var $icons_ThumbUp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/ThumbUp */ "./node_modules/vue-material-design-icons/ThumbUp.vue"); +/* harmony import */ var _relation_btn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./relation-btn */ "./src/components/buttons/relation-btn.vue"); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _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; } + +// +// +// +// +// +// +// +// +// +// +// + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + RelationBtn: _relation_btn__WEBPACK_IMPORTED_MODULE_3__["default"], + ThumbUp: $icons_ThumbUp__WEBPACK_IMPORTED_MODULE_2__["default"], + ThumbUpOutline: $icons_ThumbUpOutline__WEBPACK_IMPORTED_MODULE_1__["default"] + }, + props: { + item: { + type: Object, + required: true + } + }, + data: function data() { + return { + likers: this.item.cache.likes_count, + animationTimeline: null + }; + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_4__["mapGetters"])(['currentUser'])), + methods: { + toggle: function toggle() { + var _this = this; + + if (!this.currentUser.id) { + return this.$router.push({ + name: 'auth.login' + }); + } + + this.$http.post("relations/like", { + followable_type: 'App\\Thread', + followable_id: this.item.id + }).then(function () { + _this.item.has_liked = !_this.item.has_liked; + _this.item.has_liked ? _this.$parent.thread.cache.likes_count++ : _this.$parent.thread.cache.likes_count--; + }); + }, + repeatClapping: function repeatClapping() { + var clapIcon = document.getElementById('clap--icon'); + this.updateNumberOfClaps(); + this.animationTimeline.replay(); + clapIcon.classList.add('checked'); + }, + updateNumberOfClaps: function updateNumberOfClaps() { + var clapCount = document.getElementById('clap--count'); + var clapTotalCount = document.getElementById('clap--count-total'); + this.likers = this.$parent.thread.cache.likes_count; + + if (this.item.has_liked) { + clapCount.innerHTML = '-1'; + clapTotalCount.innerHTML = this.likers - 1; + this.likers--; + } else { + clapCount.innerHTML = '+1'; + clapTotalCount.innerHTML = this.likers + 1; + this.likers++; + } + } + }, + mounted: function mounted() { + var vm = this; + var clap = document.getElementById('clap'); + var tlDuration = 300; + var clapHold; + var triangleBurst = new mo_js__WEBPACK_IMPORTED_MODULE_0___default.a.Burst({ + parent: clap, + radius: { + 50: 95 + }, + count: 5, + angle: 30, + children: { + shape: 'polygon', + radius: { + 6: 0 + }, + scale: 1, + stroke: 'rgba(211,84,0 ,0.5)', + strokeWidth: 2, + angle: 210, + delay: 30, + speed: 0.2, + easing: mo_js__WEBPACK_IMPORTED_MODULE_0___default.a.easing.bezier(0.1, 1, 0.3, 1), + duration: tlDuration + } + }); + var circleBurst = new mo_js__WEBPACK_IMPORTED_MODULE_0___default.a.Burst({ + parent: clap, + radius: { + 50: 75 + }, + angle: 25, + duration: tlDuration, + children: { + shape: 'circle', + fill: 'rgba(149,165,166 ,0.5)', + delay: 30, + speed: 0.2, + radius: { + 3: 0 + }, + easing: mo_js__WEBPACK_IMPORTED_MODULE_0___default.a.easing.bezier(0.1, 1, 0.3, 1) + } + }); + var countAnimation = new mo_js__WEBPACK_IMPORTED_MODULE_0___default.a.Html({ + el: '#clap--count', + isShowStart: false, + isShowEnd: true, + y: { + 0: -30 + }, + opacity: { + 0: 1 + }, + duration: tlDuration + }).then({ + opacity: { + 1: 0 + }, + y: -80, + delay: tlDuration / 2 + }); + var countTotalAnimation = new mo_js__WEBPACK_IMPORTED_MODULE_0___default.a.Html({ + el: '#clap--count-total', + isShowStart: false, + isShowEnd: true, + opacity: { + 0: 1 + }, + delay: 3 * tlDuration / 2, + duration: tlDuration, + y: { + 0: -3 + } + }); + var scaleButton = new mo_js__WEBPACK_IMPORTED_MODULE_0___default.a.Html({ + el: '#clap', + duration: tlDuration, + scale: { + 1.3: 1 + }, + easing: mo_js__WEBPACK_IMPORTED_MODULE_0___default.a.easing.out + }); + clap.style.transform = 'scale(1, 1)'; + /* Bug1 fix */ + + this.animationTimeline = new mo_js__WEBPACK_IMPORTED_MODULE_0___default.a.Timeline(); + this.animationTimeline.add([triangleBurst, circleBurst, countAnimation, countTotalAnimation, scaleButton]); + clap.addEventListener('click', function () { + vm.repeatClapping(); + }); + clap.addEventListener('mousedown', function () { + clapHold = setInterval(function () { + vm.repeatClapping(); + }, 400); + }); + clap.addEventListener('mouseup', function () { + clearInterval(clapHold); + }); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/like-btn.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/like-btn.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _relation_btn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./relation-btn */ "./src/components/buttons/relation-btn.vue"); +/* harmony import */ var $icons_ThumbUp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/ThumbUp */ "./node_modules/vue-material-design-icons/ThumbUp.vue"); +// +// +// +// +// +// +// +// +// +// +// + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'like-btn', + components: { + RelationBtn: _relation_btn__WEBPACK_IMPORTED_MODULE_0__["default"], + ThumbUpIcon: $icons_ThumbUp__WEBPACK_IMPORTED_MODULE_1__["default"] + }, + props: { + relation: { + type: String, + required: true + }, + item: { + type: Object, + required: true + } + }, + methods: { + afterToggle: function afterToggle(bool) { + bool ? this.item.cache.likes_count++ : this.item.cache.likes_count--; + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/share-action.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/share-action.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _relation_btn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./relation-btn */ "./src/components/buttons/relation-btn.vue"); +/* harmony import */ var $icons_LinkVariant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/LinkVariant */ "./node_modules/vue-material-design-icons/LinkVariant.vue"); +/* harmony import */ var $icons_VolumeMute__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/VolumeMute */ "./node_modules/vue-material-design-icons/VolumeMute.vue"); +/* harmony import */ var $icons_VolumeHigh__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/VolumeHigh */ "./node_modules/vue-material-design-icons/VolumeHigh.vue"); +/* harmony import */ var $icons_Check__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! $icons/Check */ "./node_modules/vue-material-design-icons/Check.vue"); +/* harmony import */ var $icons_Twitter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! $icons/Twitter */ "./node_modules/vue-material-design-icons/Twitter.vue"); +/* harmony import */ var $icons_Facebook__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! $icons/Facebook */ "./node_modules/vue-material-design-icons/Facebook.vue"); +/* harmony import */ var clipboard__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! clipboard */ "./node_modules/clipboard/dist/clipboard.js"); +/* harmony import */ var clipboard__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(clipboard__WEBPACK_IMPORTED_MODULE_7__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'share-action', + components: { + RelationBtn: _relation_btn__WEBPACK_IMPORTED_MODULE_0__["default"], + LinkVariant: $icons_LinkVariant__WEBPACK_IMPORTED_MODULE_1__["default"], + VolumeMute: $icons_VolumeMute__WEBPACK_IMPORTED_MODULE_2__["default"], + VolumeHigh: $icons_VolumeHigh__WEBPACK_IMPORTED_MODULE_3__["default"], + CheckIcon: $icons_Check__WEBPACK_IMPORTED_MODULE_4__["default"], + TwitterIcon: $icons_Twitter__WEBPACK_IMPORTED_MODULE_5__["default"], + FacebookIcon: $icons_Facebook__WEBPACK_IMPORTED_MODULE_6__["default"] + }, + props: { + item: { + type: Object, + default: function _default() { + return {}; + } + } + }, + data: function data() { + return { + weibo: '', + twitter: '', + facebook: '', + btnClasses: 'btn btn-icon d-block mx-auto mt-2 bg-white text-18 text-gray-50', + hovering: false, + title: encodeURIComponent(this.item.title + ' -- via ' + document.title) + }; + }, + computed: { + copyText: function copyText() { + return this.title + '\n\n' + window.location.href; + } + }, + mounted: function mounted() { + var _this = this; + + var url = encodeURIComponent(window.location.href); + this.weibo = "https://service.weibo.com/share/share.php?url=".concat(url, "&title=").concat(this.title, "&pic=&appkey="); + this.twitter = "https://twitter.com/intent/tweet?text=".concat(this.title, "&url=").concat(url); + this.facebook = "https://www.facebook.com/sharer/sharer.php?u=".concat(url); + var btn = new clipboard__WEBPACK_IMPORTED_MODULE_7___default.a('.copy-link'); + btn.on('success', function () { + _this.$message.success('链接已复制'); + }); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js&": +/*!***********************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js& ***! + \***********************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _relation_btn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./relation-btn */ "./src/components/buttons/relation-btn.vue"); +/* harmony import */ var $icons_VolumeMute__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/VolumeMute */ "./node_modules/vue-material-design-icons/VolumeMute.vue"); +/* harmony import */ var $icons_VolumeHigh__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/VolumeHigh */ "./node_modules/vue-material-design-icons/VolumeHigh.vue"); +/* harmony import */ var $icons_Check__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/Check */ "./node_modules/vue-material-design-icons/Check.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'subscribe-btn', + components: { + RelationBtn: _relation_btn__WEBPACK_IMPORTED_MODULE_0__["default"], + VolumeMute: $icons_VolumeMute__WEBPACK_IMPORTED_MODULE_1__["default"], + VolumeHigh: $icons_VolumeHigh__WEBPACK_IMPORTED_MODULE_2__["default"], + CheckIcon: $icons_Check__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + props: { + relation: { + type: String, + required: true + }, + item: { + type: Object, + required: true + } + }, + data: function data() { + return { + hovering: false + }; + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/comments.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/comments.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/editor */ "./src/components/editor/index.js"); +/* harmony import */ var $components_paginator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $components/paginator */ "./src/components/paginator.vue"); +/* harmony import */ var $components_markdown_body__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $components/markdown-body */ "./src/components/markdown-body.vue"); +/* harmony import */ var $components_user_media__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $components/user-media */ "./src/components/user-media.vue"); +/* harmony import */ var localforage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! localforage */ "./node_modules/localforage/dist/localforage.js"); +/* harmony import */ var localforage__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(localforage__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +/* harmony import */ var $icons_ThumbUp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! $icons/ThumbUp */ "./node_modules/vue-material-design-icons/ThumbUp.vue"); +/* harmony import */ var $icons_Reply__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! $icons/Reply */ "./node_modules/vue-material-design-icons/Reply.vue"); +/* harmony import */ var $icons_Markdown__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! $icons/Markdown */ "./node_modules/vue-material-design-icons/Markdown.vue"); +/* harmony import */ var $icons_ThumbDown__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! $icons/ThumbDown */ "./node_modules/vue-material-design-icons/ThumbDown.vue"); +/* harmony import */ var $icons_ThumbUpOutline__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! $icons/ThumbUpOutline */ "./node_modules/vue-material-design-icons/ThumbUpOutline.vue"); +/* harmony import */ var $icons_ThumbDownOutline__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! $icons/ThumbDownOutline */ "./node_modules/vue-material-design-icons/ThumbDownOutline.vue"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _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; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'comments', + components: { + Editor: $components_editor__WEBPACK_IMPORTED_MODULE_0__["default"], + UserMedia: $components_user_media__WEBPACK_IMPORTED_MODULE_3__["default"], + Markdown: $icons_Markdown__WEBPACK_IMPORTED_MODULE_8__["default"], + MarkdownBody: $components_markdown_body__WEBPACK_IMPORTED_MODULE_2__["default"], + Paginator: $components_paginator__WEBPACK_IMPORTED_MODULE_1__["default"], + ThumbUp: $icons_ThumbUp__WEBPACK_IMPORTED_MODULE_6__["default"], + Reply: $icons_Reply__WEBPACK_IMPORTED_MODULE_7__["default"], + ThumbDown: $icons_ThumbDown__WEBPACK_IMPORTED_MODULE_9__["default"], + ThumbUpOutline: $icons_ThumbUpOutline__WEBPACK_IMPORTED_MODULE_10__["default"], + ThumbDownOutline: $icons_ThumbDownOutline__WEBPACK_IMPORTED_MODULE_11__["default"] + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_5__["mapGetters"])(['currentUser']), { + formReady: function formReady() { + return this.content.length >= 3; + }, + cacheKey: function cacheKey() { + return 'comment.content_' + this.objectType.replace('\\\\', '_').toLowerCase() + '_' + this.objectId; + } + }), + props: { + objectId: { + type: Number, + required: true + }, + objectType: { + type: String, + default: 'App\\Thread' + } + }, + data: function data() { + return { + writing: false, + content: '', + comments: [], + editorOptions: { + minLines: 3, + maxLines: 20 + }, + query: Object.assign({ + page: 1 + }, this.$route.query) + }; + }, + watch: { + query: { + deep: true, + handler: function handler() { + this.$router.replace({ + query: this.query + }); + this.loadComments(); + } + }, + content: function content() { + localforage__WEBPACK_IMPORTED_MODULE_4___default.a.setItem(this.cacheKey, this.content); + }, + writing: function writing() { + if (!this.writing) { + this.content = ''; + localforage__WEBPACK_IMPORTED_MODULE_4___default.a.removeItem(this.cacheKey); + this.$refs['editor'].editor.setValue(''); + } else { + var editor = this.$refs['editor'].editor; + editor.focus(); + setTimeout(function () { + editor.setCursor(editor.lineCount(), 0); + }); + } + } + }, + mounted: function mounted() { + this.loadComments().then(function () { + if (window.location.hash.length > 0) { + setTimeout(function () { + window.location.replace(window.location.hash); + }); + } + }); + this.syncCachedContent(); + }, + methods: { + handlePaginate: function handlePaginate(page) { + this.query.page = page; + }, + vote: function vote() { + var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'up'; + var item = arguments.length > 1 ? arguments[1] : undefined; + var index = arguments.length > 2 ? arguments[2] : undefined; + + if (!this.$user().id) { + return this.$router.push({ + name: 'auth.login' + }); + } + + var reverse = type == 'up' ? 'down' : 'up'; + + if (item["has_".concat(type, "_voted")]) { + this.$http.post("comments/".concat(item.id, "/cancel-vote")); + this.comments.data[index]["".concat(type, "_voters")]--; + this.comments.data[index]["has_".concat(type, "_voted")] = false; + } else { + this.$http.post("comments/".concat(item.id, "/").concat(type, "-vote")); + + if (item["has_".concat(reverse, "_voted")]) { + this.comments.data[index]["".concat(reverse, "_voters")]--; + this.comments.data[index]["has_".concat(reverse, "_voted")] = false; + } + + this.comments.data[index]["".concat(type, "_voters")]++; + this.comments.data[index]["has_".concat(type, "_voted")] = true; + } + }, + reply: function reply(item) { + if (!this.$user().id) { + return this.$router.push({ + name: 'auth.login' + }); + } + + this.content = "@".concat(item.user.username, " "); + this.writing = true; + window.scrollTo(0, document.querySelector('[name="comments"]').offsetTop); + }, + submit: function submit() { + var _this = this; + + this.$http.post('comments', { + commentable_type: this.objectType, + commentable_id: this.objectId, + content: { + markdown: this.content, + type: 'markdown' + } + }).then(function () { + _this.content = ''; + _this.writing = false; + + _this.$message.success('评论成功!'); + + _this.$emit('created'); + + _this.loadComments(); + }); + }, + syncCachedContent: function syncCachedContent() { + var _this2 = this; + + localforage__WEBPACK_IMPORTED_MODULE_4___default.a.getItem(this.cacheKey, function (err, content) { + if (!err && content && content.length > 0) { + _this2.writing = true; + _this2.content = content; + } + }); + }, + loadComments: function loadComments() { + var _this3 = this; + + return this.$http.get("comments?commentable_type=".concat(this.objectType, "&commentable_id=").concat(this.objectId, "&page=").concat(this.query.page)).then(function (comments) { + _this3.comments = comments; + + _this3.mapCommentsUserForMention(comments.data); + }); + }, + mapCommentsUserForMention: function mapCommentsUserForMention(comments) { + comments.map(function (comment) { + window.pageUsers.some(function (u) { + return u.id === comment.user_id; + }) || window.pageUsers.push(comment.user); + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/share-dropdown.vue?vue&type=script&lang=js&": +/*!****************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/share-dropdown.vue?vue&type=script&lang=js& ***! + \****************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_LinkVariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/LinkVariant */ "./node_modules/vue-material-design-icons/LinkVariant.vue"); +/* harmony import */ var clipboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! clipboard */ "./node_modules/clipboard/dist/clipboard.js"); +/* harmony import */ var clipboard__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(clipboard__WEBPACK_IMPORTED_MODULE_1__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'share-dropdown', + components: { + LinkVariant: $icons_LinkVariant__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + data: function data() { + return { + url: encodeURI(window.location.href), + title: encodeURIComponent(window.document.title), + description: '' + }; + }, + computed: { + weibo: function weibo() { + return "https://service.weibo.com/share/share.php?url=".concat(this.url, "&title=").concat(this.title, "&pic=&appkey="); + }, + qq: function qq() { + return "http://connect.qq.com/widget/shareqq/index.html?url=".concat(this.url, "&title=").concat(this.title, "&source=").concat(window.location.host, "&desc=").concat(this.description); + }, + qzone: function qzone() { + return "http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=".concat(this.url, "&summary=").concat(this.title, "&site=").concat(window.location.host); + } + }, + methods: { + getDescription: function getDescription() { + var d = document.querySelector('[name="description"]'); + + if (d) { + return encodeURIComponent(d.getAttribute('content')); + } + + return encodeURIComponent(document.querySelector('.markdown-body').textContent.substr(0, 40).trim().replace(new RegExp(/\n/, 'g'), '')); + } + }, + mounted: function mounted() { + var _this = this; + + new clipboard__WEBPACK_IMPORTED_MODULE_1___default.a('.copy-link'); + setTimeout(function () { + _this.description = _this.getDescription(); + }, 1000); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-list-card.vue?vue&type=script&lang=js&": +/*!****************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-list-card.vue?vue&type=script&lang=js& ***! + \****************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_user_media__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/user-media */ "./src/components/user-media.vue"); +/* harmony import */ var $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/ArrowRight */ "./node_modules/vue-material-design-icons/ArrowRight.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'user-list-card', + components: { + UserMedia: $components_user_media__WEBPACK_IMPORTED_MODULE_0__["default"], + ArrowRight: $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__["default"] + }, + props: { + title: { + type: String, + default: null + }, + users: { + type: Array, + default: function _default() { + return []; + } + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-profile-card.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-profile-card.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_user_media__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/user-media */ "./src/components/user-media.vue"); +/* harmony import */ var $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $components/buttons/follow-btn */ "./src/components/buttons/follow-btn.vue"); +/* harmony import */ var $icons_Plus__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/Plus */ "./node_modules/vue-material-design-icons/Plus.vue"); +/* harmony import */ var $components_user_social_btns__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $components/user-social-btns */ "./src/components/user-social-btns.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'user-profile-card', + props: { + user: { + type: Object, + required: true + } + }, + components: { + UserMedia: $components_user_media__WEBPACK_IMPORTED_MODULE_0__["default"], + FollowBtn: $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_1__["default"], + PlusIcon: $icons_Plus__WEBPACK_IMPORTED_MODULE_2__["default"], + UserSocialBtns: $components_user_social_btns__WEBPACK_IMPORTED_MODULE_3__["default"] + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/wechat-qrcode.vue?vue&type=script&lang=js&": +/*!***************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/wechat-qrcode.vue?vue&type=script&lang=js& ***! + \***************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var qrcode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! qrcode */ "./node_modules/qrcode/lib/browser.js"); +/* harmony import */ var qrcode__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(qrcode__WEBPACK_IMPORTED_MODULE_0__); +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'wechat-qrcode', + mounted: function mounted() { + setTimeout(function () { + qrcode__WEBPACK_IMPORTED_MODULE_0___default.a.toCanvas(document.getElementById('page-wechat-qrcode-canvas'), window.location.href, { + width: 200 + }); + }, 500); + document.body.appendChild(this.$refs['pageWechatQrcode']); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/report-form.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/threads/report-form.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var element_ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! element-ui */ "./node_modules/element-ui/lib/element-ui.common.js"); +/* harmony import */ var element_ui__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(element_ui__WEBPACK_IMPORTED_MODULE_0__); +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + 'el-dialog': element_ui__WEBPACK_IMPORTED_MODULE_0__["Dialog"] + }, + props: { + visible: { + type: Boolean, + default: false + } + }, + data: function data() { + return { + remark: '' + }; + }, + methods: { + report: function report() { + var _this = this; + + this.$http.post("threads/".concat(this.$route.params.id, "/report"), { + remark: this.remark + }).then(function () { + _this.close(); + + _this.$message.success('举报成功!'); + }); + }, + close: function close() { + this.$emit('close'); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/show.vue?vue&type=script&lang=js&": +/*!***********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/threads/show.vue?vue&type=script&lang=js& ***! + \***********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dayjs */ "./node_modules/dayjs/dayjs.min.js"); +/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(dayjs__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var $icons_Medal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/Medal */ "./node_modules/vue-material-design-icons/Medal.vue"); +/* harmony import */ var $icons_LockAlert__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/LockAlert */ "./node_modules/vue-material-design-icons/LockAlert.vue"); +/* harmony import */ var $icons_FormatVerticalAlignTop__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/FormatVerticalAlignTop */ "./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue"); +/* harmony import */ var $icons_Pencil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! $icons/Pencil */ "./node_modules/vue-material-design-icons/Pencil.vue"); +/* harmony import */ var $icons_Delete__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! $icons/Delete */ "./node_modules/vue-material-design-icons/Delete.vue"); +/* harmony import */ var $icons_AlertBox__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! $icons/AlertBox */ "./node_modules/vue-material-design-icons/AlertBox.vue"); +/* harmony import */ var $components_user_media__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! $components/user-media */ "./src/components/user-media.vue"); +/* harmony import */ var $components_hot_tags__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! $components/hot-tags */ "./src/components/hot-tags.vue"); +/* harmony import */ var $components_user_list_card__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! $components/user-list-card */ "./src/components/user-list-card.vue"); +/* harmony import */ var $components_wechat_qrcode__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! $components/wechat-qrcode */ "./src/components/wechat-qrcode.vue"); +/* harmony import */ var $components_comments__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! $components/comments */ "./src/components/comments.vue"); +/* harmony import */ var $icons_Star__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! $icons/Star */ "./node_modules/vue-material-design-icons/Star.vue"); +/* harmony import */ var $icons_DotsHorizontal__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! $icons/DotsHorizontal */ "./node_modules/vue-material-design-icons/DotsHorizontal.vue"); +/* harmony import */ var $icons_Share__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! $icons/Share */ "./node_modules/vue-material-design-icons/Share.vue"); +/* harmony import */ var $components_buttons_subscribe_btn__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! $components/buttons/subscribe-btn */ "./src/components/buttons/subscribe-btn.vue"); +/* harmony import */ var $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! $components/buttons/follow-btn */ "./src/components/buttons/follow-btn.vue"); +/* harmony import */ var $components_buttons_like_btn__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! $components/buttons/like-btn */ "./src/components/buttons/like-btn.vue"); +/* harmony import */ var $components_markdown_body__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! $components/markdown-body */ "./src/components/markdown-body.vue"); +/* harmony import */ var _report_form__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./report-form */ "./src/modules/threads/report-form.vue"); +/* harmony import */ var $components_buttons_animate_action__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! $components/buttons/animate-action */ "./src/components/buttons/animate-action.vue"); +/* harmony import */ var $components_buttons_share_action__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! $components/buttons/share-action */ "./src/components/buttons/share-action.vue"); +/* harmony import */ var $components_user_profile_card__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! $components/user-profile-card */ "./src/components/user-profile-card.vue"); +/* harmony import */ var $components_share_dropdown__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! $components/share-dropdown */ "./src/components/share-dropdown.vue"); +/* harmony import */ var $icons_Comment__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! $icons/Comment */ "./node_modules/vue-material-design-icons/Comment.vue"); +/* harmony import */ var $icons_Eye__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! $icons/Eye */ "./node_modules/vue-material-design-icons/Eye.vue"); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _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; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + + + + + + + + + + + + + + + + + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + UserListCard: $components_user_list_card__WEBPACK_IMPORTED_MODULE_9__["default"], + LikeBtn: $components_buttons_like_btn__WEBPACK_IMPORTED_MODULE_17__["default"], + AnimateAction: $components_buttons_animate_action__WEBPACK_IMPORTED_MODULE_20__["default"], + ShareAction: $components_buttons_share_action__WEBPACK_IMPORTED_MODULE_21__["default"], + ReportForm: _report_form__WEBPACK_IMPORTED_MODULE_19__["default"], + SubscribeBtn: $components_buttons_subscribe_btn__WEBPACK_IMPORTED_MODULE_15__["default"], + CommentIcon: $icons_Comment__WEBPACK_IMPORTED_MODULE_24__["default"], + ViewIcon: $icons_Eye__WEBPACK_IMPORTED_MODULE_25__["default"], + FollowBtn: $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_16__["default"], + UserMedia: $components_user_media__WEBPACK_IMPORTED_MODULE_7__["default"], + HotTags: $components_hot_tags__WEBPACK_IMPORTED_MODULE_8__["default"], + PencilIcon: $icons_Pencil__WEBPACK_IMPORTED_MODULE_4__["default"], + AlertBoxIcon: $icons_AlertBox__WEBPACK_IMPORTED_MODULE_6__["default"], + DeleteIcon: $icons_Delete__WEBPACK_IMPORTED_MODULE_5__["default"], + ShareIcon: $icons_Share__WEBPACK_IMPORTED_MODULE_14__["default"], + StarIcon: $icons_Star__WEBPACK_IMPORTED_MODULE_12__["default"], + MoreIcon: $icons_DotsHorizontal__WEBPACK_IMPORTED_MODULE_13__["default"], + MedalIcon: $icons_Medal__WEBPACK_IMPORTED_MODULE_1__["default"], + TopIcon: $icons_FormatVerticalAlignTop__WEBPACK_IMPORTED_MODULE_3__["default"], + LockIcon: $icons_LockAlert__WEBPACK_IMPORTED_MODULE_2__["default"], + MarkdownBody: $components_markdown_body__WEBPACK_IMPORTED_MODULE_18__["default"], + Comments: $components_comments__WEBPACK_IMPORTED_MODULE_11__["default"], + UserProfileCard: $components_user_profile_card__WEBPACK_IMPORTED_MODULE_22__["default"], + ShareDropdown: $components_share_dropdown__WEBPACK_IMPORTED_MODULE_23__["default"], + WechatQrcode: $components_wechat_qrcode__WEBPACK_IMPORTED_MODULE_10__["default"] + }, + data: function data() { + return { + thread: null, + showReportForm: false + }; + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_26__["mapGetters"])(['currentUser']), { + canEdit: function canEdit() { + return this.thread.user_id === this.$user().id || this.$user().is_admin; + } + }), + beforeRouteUpdate: function beforeRouteUpdate(to, from, next) { + if (to.params.id !== from.params.id) { + this.loadThread(); + } + + next(); + }, + methods: { + loadThread: function loadThread() { + var _this = this; + + this.$http.get("threads/".concat(this.$route.params.id, "?include=user,likers")).then(function (response) { + return _this.thread = response; + }).then(this.registerEventListener).catch(function (response) { + if (response.status === 404) { + _this.$message.error('该主题已被删除或锁定!'); + + setTimeout(function () { + _this.$router.go(-1); + }, 1000); + } + }).then(function () { + window.pageUsers = [_this.thread.user]; + }); + }, + handleDelete: function handleDelete(thread) { + var _this2 = this; + + this.$http.delete("threads/".concat(thread.id)).then(function () { + _this2.$message.success('已删除!'); + + _this2.$router.go(-1); + }); + }, + toggleStatus: function toggleStatus(timestamp) { + var _this3 = this; + + this.thread[timestamp] = this.thread[timestamp] ? null : dayjs__WEBPACK_IMPORTED_MODULE_0___default()().format('YYYY-MM-DD HH:mm:ss'); + this.$http.patch("threads/".concat(this.thread.id), this.thread).then(function () { + _this3.$message.success('搞定!'); + + _this3.loadThread(); + }); + } + }, + mounted: function mounted() { + this.loadThread(); + } +}); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/animate-action.vue?vue&type=style&index=0&lang=scss&": +/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/animate-action.vue?vue&type=style&index=0&lang=scss& ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, "/*========================\n SASS definitions\n =======================*/\n/*========================\n BUTTON styles\n =======================*/\n.clap--icon {\n color: #0078ff;\n}\n.clap {\n position: relative;\n border-radius: 50%;\n background: #fff;\n font-size: 24px;\n width: 60px;\n height: 60px;\n}\n.clap:after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n display: block;\n border-radius: 50%;\n width: 59px;\n height: 59px;\n}\n.clap:hover {\n cursor: pointer;\n background: #fff60;\n font-size: 26px;\n -webkit-transition: all 0.3s ease-in;\n transition: all 0.3s ease-in;\n}\n.clap:hover:after {\n -webkit-animation: shockwave 1s ease-in infinite;\n animation: shockwave 1s ease-in infinite;\n}\n.clap .clap--count {\n position: absolute;\n top: -37.5px;\n left: 15px;\n font-size: 0.8rem;\n color: white;\n background: #0078ff;\n border-radius: 50%;\n height: 30px;\n width: 30px;\n line-height: 30px;\n}\n.clap .clap--count-total {\n position: absolute;\n font-size: 0.8rem;\n width: 60px;\n text-align: center;\n left: 0;\n bottom: -24px;\n color: #bdc3c7;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true&": +/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true& ***! + \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".share-action .material-design-icon[data-v-fde12a7c] {\n vertical-align: middle;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/comments.vue?vue&type=style&index=0&lang=scss&": +/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/comments.vue?vue&type=style&index=0&lang=scss& ***! + \***********************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".comments .pop-comment-form {\n border: none;\n max-height: 0;\n}\n.comments .pop-comment-form.show {\n max-height: 320px;\n}\n.comments .comment-editor .CodeMirror {\n height: auto;\n min-height: 100px;\n max-height: 180px;\n}\n.comments .pop-comment-form {\n position: -webkit-sticky;\n position: sticky;\n bottom: 55px;\n min-width: 500px;\n max-width: 100%;\n max-height: 0;\n overflow: hidden;\n -webkit-transition: max-height 0.5s;\n transition: max-height 0.5s;\n}\n.comments .markdown-body.comment-content p:last-child {\n margin-bottom: 0;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true&": +/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true& ***! + \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".dropdown-toggle[data-v-035c7ccf]::after {\n display: none;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/report-form.vue?vue&type=style&index=0&lang=scss&": +/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/threads/report-form.vue?vue&type=style&index=0&lang=scss& ***! + \*******************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, "textarea {\n resize: none;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/show.vue?vue&type=style&index=0&lang=scss&": +/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/threads/show.vue?vue&type=style&index=0&lang=scss& ***! + \************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".thread-toolbar {\n position: fixed;\n top: 150px;\n margin-left: -80px;\n}\n.thread-stats-bar {\n position: -webkit-sticky;\n position: sticky;\n bottom: 0;\n width: 100%;\n left: 0;\n}\n.thread-stats-bar .material-design-icon {\n font-size: 1.2em;\n bottom: -0.06em;\n}\n.user-profile-card {\n position: -webkit-sticky;\n position: sticky;\n top: 20px;\n}\n@media screen and (min-width: 1200px) and (max-width: 1350px) {\n.page-threads-show {\n margin-left: 65px;\n}\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/animate-action.vue?vue&type=style&index=0&lang=scss&": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/animate-action.vue?vue&type=style&index=0&lang=scss& ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./animate-action.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/animate-action.vue?vue&type=style&index=0&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true&": +/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true& ***! + \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/comments.vue?vue&type=style&index=0&lang=scss&": +/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/comments.vue?vue&type=style&index=0&lang=scss& ***! + \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./comments.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/comments.vue?vue&type=style&index=0&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true&": +/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true& ***! + \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/report-form.vue?vue&type=style&index=0&lang=scss&": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/threads/report-form.vue?vue&type=style&index=0&lang=scss& ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./report-form.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/report-form.vue?vue&type=style&index=0&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/show.vue?vue&type=style&index=0&lang=scss&": +/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/threads/show.vue?vue&type=style&index=0&lang=scss& ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/show.vue?vue&type=style&index=0&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/animate-action.vue?vue&type=template&id=010b0e00&": +/*!****************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/animate-action.vue?vue&type=template&id=010b0e00& ***! + \****************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { + staticClass: + "text-center clap d-flex align-items-center justify-content-center", + attrs: { id: "clap" }, + on: { click: _vm.toggle } + }, + [ + _c( + "span", + { staticClass: "clap--icon", attrs: { id: "clap--icon" } }, + [!_vm.item.has_liked ? _c("thumb-up-outline") : _c("thumb-up")], + 1 + ), + _vm._v(" "), + _c("span", { staticClass: "clap--count", attrs: { id: "clap--count" } }), + _vm._v(" "), + _c("span", { + staticClass: "clap--count-total", + attrs: { id: "clap--count-total" } + }) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/like-btn.vue?vue&type=template&id=055d3c04&": +/*!**********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/like-btn.vue?vue&type=template&id=055d3c04& ***! + \**********************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "relation-btn", + { + attrs: { relation: _vm.relation, action: "like", item: _vm.item }, + on: { "after-toggle": _vm.afterToggle } + }, + [ + _c( + "a", + { + staticClass: "btn btn-sm btn-link text-gray-50", + attrs: { slot: "on", href: "javascript:void(0)" }, + slot: "on" + }, + [ + _c("thumb-up-icon"), + _vm._v(" " + _vm._s(_vm.item.cache.likes_count) + "\n ") + ], + 1 + ), + _vm._v(" "), + _c( + "a", + { + staticClass: "btn btn-sm btn-primary", + attrs: { slot: "off", href: "javascript:void(0)" }, + slot: "off" + }, + [ + _c("thumb-up-icon"), + _vm._v(" " + _vm._s(_vm.item.cache.likes_count) + "\n ") + ], + 1 + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/share-action.vue?vue&type=template&id=fde12a7c&scoped=true&": +/*!**************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/share-action.vue?vue&type=template&id=fde12a7c&scoped=true& ***! + \**************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "share-action" }, [ + _c("p", { staticClass: "text-center text-gray-40 text-14" }, [ + _vm._v("分享") + ]), + _vm._v(" "), + _c( + "button", + { + staticClass: "mx-auto btn btn-icon text-18 copy-link text-gray-50", + attrs: { + "data-clipboard-text": _vm.copyText, + "data-toggle": "tooltip", + title: "复制链接" + } + }, + [_c("link-variant", { attrs: { title: "复制链接" } })], + 1 + ), + _vm._v(" "), + _c("div", [ + _c( + "a", + { + class: _vm.btnClasses, + attrs: { target: "_blank", href: _vm.weibo, title: "分享到微博" } + }, + [ + _c("span", { staticClass: "material-design-icon sina-icon" }, [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + t: "1528816678350", + viewBox: "0 0 1260 1024", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "p-id": "1944", + "xmlns:xlink": "http://www.w3.org/1999/xlink", + width: "17.5", + height: "14" + } + }, + [ + _c("path", { + attrs: { + d: + "M1174.286235 110.614403A330.443026 330.443026 0 0 0 858.311759 7.467639a50.406563 50.406563 0 0 0-37.804922 58.34093 50.406563 50.406563 0 0 0 58.34093 37.804922 238.497721 238.497721 0 0 1 226.829535 72.342753 233.363719 233.363719 0 0 1 46.672744 233.36372 46.672744 46.672744 0 0 0 3.267092 37.804922 60.674567 60.674567 0 0 0 27.536919 24.269827 53.673655 53.673655 0 0 0 61.608021-30.804011 351.445761 351.445761 0 0 0-72.342753-329.509572z m0 0", + "p-id": "1945" + } + }), + _vm._v(" "), + _c("path", { + attrs: { + d: + "M1026.800365 412.587056a40.13856 40.13856 0 0 0 51.340018-27.536919 158.220602 158.220602 0 0 0-34.537831-157.753874 167.088423 167.088423 0 0 0-154.486782-51.340019 37.338195 37.338195 0 0 0-30.804011 46.672744 37.338195 37.338195 0 0 0 46.672744 30.804011A79.343665 79.343665 0 0 1 980.127621 280.036463a82.144029 82.144029 0 0 1 17.268915 78.876937A46.672744 46.672744 0 0 0 1026.800365 412.587056z m-82.610757 78.876937c-17.268915-7.000912-30.804011-10.268004-20.536007-30.804011a136.751139 136.751139 0 0 0 0-126.949863c-41.072015-58.34093-154.486782-55.073838-280.036463 0 0 0-41.072015 17.268915-30.804011-13.535096 20.536007-65.341841 17.268915-116.68186-13.535096-147.485871-70.475843-69.075661-255.766636 2.800365-412.587056 161.020967-116.68186 119.948952-186.690975 243.631723-186.690975 353.779398 0 209.56062 267.90155 336.510483 528.802188 336.510483 343.511395 0 569.874202-199.292616 569.874202-357.04649 0-96.145852-82.610757-151.21969-154.486782-175.02279z m-415.38742 456.926162c-209.56062 20.536007-388.783956-75.609845-401.852325-209.56062s144.218778-264.634458 353.779399-285.170465 387.850501 75.609845 401.852324 209.56062-144.218778 264.16773-353.779398 285.170465z m0 0", + "p-id": "1946" + } + }), + _vm._v(" "), + _c("path", { + attrs: { + d: + "M549.338195 556.805834a224.495898 224.495898 0 0 0-253.899726 109.680948A154.020055 154.020055 0 0 0 394.851413 886.782133a222.628988 222.628988 0 0 0 267.90155-113.414767 155.420237 155.420237 0 0 0-113.414768-216.561532z m-75.609845 230.096627a77.476755 77.476755 0 0 1-96.145852 30.804011 54.60711 54.60711 0 0 1-20.536008-82.610756 78.41021 78.41021 0 0 1 93.345488-30.804011 52.273473 52.273473 0 0 1 24.269827 82.610756z m0 0", + "p-id": "1947" + } + }) + ] + ) + ]) + ] + ), + _vm._v(" "), + _c( + "a", + { + class: _vm.btnClasses, + attrs: { + "data-toggle": "modal", + "data-target": "#page-wechat-qrcode", + title: "分享到微信" + } + }, + [ + _c( + "span", + { staticClass: "material-design-icon link-variant-icon" }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + t: "1531575816445", + viewBox: "0 0 1171 1024", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "p-id": "1968", + "xmlns:xlink": "http://www.w3.org/1999/xlink" + } + }, + [ + _c("path", { + attrs: { + d: + "M331.428571 263.428571q0-23.428571-14.285714-37.714286t-37.714286-14.285714q-24.571429 0-43.428571 14.571429t-18.857143 37.428571q0 22.285714 18.857143 36.857143t43.428571 14.571429q23.428571 0 37.714286-14t14.285714-37.428571zm424.571429 289.714286q0-16-14.571429-28.571429t-37.428571-12.571429q-15.428571 0-28.285714 12.857143t-12.857143 28.285714q0 16 12.857143 28.857143t28.285714 12.857143q22.857143 0 37.428571-12.571429t14.571429-29.142857zm-134.857143-289.714286q0-23.428571-14-37.714286t-37.428571-14.285714q-24.571429 0-43.428571 14.571429t-18.857143 37.428571q0 22.285714 18.857143 36.857143t43.428571 14.571429q23.428571 0 37.428571-14t14-37.428571zm362.857143 289.714286q0-16-14.857143-28.571429t-37.142857-12.571429q-15.428571 0-28.285714 12.857143t-12.857143 28.285714q0 16 12.857143 28.857143t28.285714 12.857143q22.285714 0 37.142857-12.571429t14.857143-29.142857zm-152-226.857143q-17.714286-2.285714-40-2.285714-96.571429 0-177.714286 44t-127.714286 119.142857-46.571429 164.285714q0 44.571429 13.142857 86.857143-20 1.714286-38.857143 1.714286-14.857143 0-28.571429-0.857143t-31.428571-3.714286-25.428571-4-31.142857-6-28.571429-6l-144.571429 72.571429 41.142857-124.571429q-165.714286-116-165.714286-280 0-96.571429 55.714286-177.714286t150.857143-127.714286 207.714286-46.571429q100.571429 0 190 37.714286t149.714286 104.285714 78 148.857143zm338.285714 320.571429q0 66.857143-39.142857 127.714286t-106 110.571429l31.428571 103.428571-113.714286-62.285714q-85.714286 21.142857-124.571429 21.142857-96.571429 0-177.714286-40.285714t-127.714286-109.428571-46.571429-150.857143 46.571429-150.857143 127.714286-109.428571 177.714286-40.285714q92 0 173.142857 40.285714t130 109.714286 48.857143 150.571429z", + "p-id": "1969" + } + }) + ] + ) + ] + ) + ] + ), + _vm._v(" "), + _c( + "a", + { + class: _vm.btnClasses, + attrs: { + target: "_blank", + title: "分享到 Twitter", + href: _vm.twitter + } + }, + [_c("twitter-icon")], + 1 + ), + _vm._v(" "), + _c( + "a", + { + class: _vm.btnClasses, + attrs: { + target: "_blank", + title: "分享到 Facebook", + href: _vm.facebook + } + }, + [_c("facebook-icon")], + 1 + ) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a&": +/*!***************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a& ***! + \***************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "relation-btn", + { attrs: { relation: _vm.relation, action: "subscribe", item: _vm.item } }, + [ + _c( + "button", + { + staticClass: "btn btn-sm text-gray-50", + attrs: { slot: "on" }, + slot: "on" + }, + [ + _c("volume-high"), + _c("span", { staticClass: "pl-1" }, [_vm._v("订阅")]) + ], + 1 + ), + _vm._v(" "), + _c( + "button", + { + staticClass: "btn btn-sm", + class: { "btn-primary": !_vm.hovering, "btn-danger": _vm.hovering }, + attrs: { slot: "off" }, + on: { + mouseenter: function($event) { + _vm.hovering = true + }, + mouseleave: function($event) { + _vm.hovering = false + } + }, + slot: "off" + }, + [ + _vm.hovering ? _c("volume-mute") : _c("check-icon"), + _vm._v(" "), + _c("span", { staticClass: "pl-1" }, [ + _vm._v(_vm._s(_vm.hovering ? "取消订阅" : "已订阅")) + ]) + ], + 1 + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/comments.vue?vue&type=template&id=4e7c9004&": +/*!**************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/comments.vue?vue&type=template&id=4e7c9004& ***! + \**************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { staticClass: "comments", attrs: { name: "comments" } }, + [ + _c("div", { staticClass: "py-2" }, [ + _c("div", { staticClass: "text-16 text-gray-50" }, [ + _vm._v( + _vm._s(_vm.comments.meta ? _vm.comments.meta.total : 0) + " 条评论" + ) + ]) + ]), + _vm._v(" "), + _vm.currentUser.id + ? _c( + "div", + { staticClass: "box mb-3" }, + [ + _vm.currentUser.has_activated + ? [ + _c("div", { staticClass: "d-flex align-items-center" }, [ + _c("img", { + staticClass: "avatar-40", + attrs: { + src: _vm.currentUser.avatar, + alt: _vm.currentUser.username + } + }), + _vm._v(" "), + _c( + "div", + { + staticClass: "text-18 text-muted ml-2 w-100", + on: { + click: function($event) { + _vm.writing = true + } + } + }, + [_vm._v("撰写评论...")] + ) + ]) + ] + : [ + _c( + "div", + { staticClass: "text-18 ml-2 text-muted text-center" }, + [_vm._v("您需要激活账户才能评论~")] + ) + ] + ], + 2 + ) + : _c("div", [ + _vm.currentUser + ? _c("div", { staticClass: "box mb-3" }, [ + _c( + "div", + { staticClass: "text-18 ml-2 text-center" }, + [ + _vm._v("\n 您需要\n "), + _c( + "router-link", + { + staticClass: "text-blue", + attrs: { to: { name: "auth.login" }, tag: "a" } + }, + [_vm._v("登录")] + ), + _vm._v("\n 或\n "), + _c( + "router-link", + { + staticClass: "text-blue", + attrs: { to: { name: "auth.register" }, tag: "a" } + }, + [_vm._v("注册")] + ), + _vm._v("\n 才能发表评论\n ") + ], + 1 + ) + ]) + : _vm._e() + ]), + _vm._v(" "), + _c("paginator", { + attrs: { meta: _vm.comments.meta }, + on: { change: _vm.handlePaginate } + }), + _vm._v(" "), + _c( + "div", + { staticClass: "box box-flush" }, + _vm._l(_vm.comments.data, function(item, index) { + return item.content && item.content.body + ? _c( + "div", + { + key: item.id, + staticClass: "border-bottom box-body py-2", + class: { + "animated flash": _vm.$route.hash === "#comment-" + item.id + }, + attrs: { + id: "comment-" + item.id, + name: "comment-" + item.id + } + }, + [ + _c( + "user-media", + { attrs: { user: item.user } }, + [ + _c( + "template", + { slot: "name-appends" }, + [ + _c( + "router-link", + { + staticClass: "text-muted text-12 ml-1", + attrs: { + tag: "a", + to: { + name: "users.show", + params: { username: item.user.username } + } + } + }, + [_vm._v(_vm._s(item.user.username))] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "small", + { attrs: { slot: "description" }, slot: "description" }, + [ + _c( + "a", + { + staticClass: "text-gray-70", + attrs: { href: "#comment-" + item.id } + }, + [_vm._v(_vm._s(item.created_at_timeago))] + ) + ] + ), + _vm._v(" "), + _c( + "div", + { + staticClass: + "text-16 text-gray-60 ml-auto d-flex align-items-center", + attrs: { slot: "appends" }, + slot: "appends" + }, + [ + _c( + "div", + { + staticClass: "mx-1 cursor-pointer d-flex", + on: { + click: function($event) { + return _vm.vote("up", item, index) + } + } + }, + [ + !item.has_up_voted + ? _c( + "button", + { + staticClass: + "btn btn-icon btn-light text-gray-60" + }, + [_c("thumb-up-outline")], + 1 + ) + : _c( + "button", + { staticClass: "btn btn-icon btn-primary" }, + [_c("thumb-up")], + 1 + ), + _vm._v(" "), + _c( + "span", + { staticClass: "ml-1 align-self-center" }, + [_vm._v(_vm._s(item.up_voters))] + ) + ] + ), + _vm._v(" "), + _c( + "div", + { + staticClass: "mx-1 cursor-pointer d-flex", + on: { + click: function($event) { + return _vm.vote("down", item, index) + } + } + }, + [ + !item.has_down_voted + ? _c( + "button", + { + staticClass: + "btn btn-icon btn-light text-gray-60" + }, + [_c("thumb-down-outline")], + 1 + ) + : _c( + "button", + { staticClass: "btn btn-icon btn-danger" }, + [_c("thumb-down")], + 1 + ), + _vm._v(" "), + _c( + "span", + { staticClass: "ml-1 align-self-center" }, + [_vm._v(_vm._s(item.down_voters))] + ) + ] + ), + _vm._v(" "), + _c( + "div", + { + staticClass: "mx-1 cursor-pointer", + on: { + click: function($event) { + return _vm.reply(item) + } + } + }, + [ + _c( + "button", + { + staticClass: + "btn btn-icon btn-light text-gray-60" + }, + [_c("reply")], + 1 + ) + ] + ) + ] + ) + ], + 2 + ), + _vm._v(" "), + _c("markdown-body", { + staticClass: "comment-content text-gray-40 pt-2", + model: { + value: item.content.body, + callback: function($$v) { + _vm.$set(item.content, "body", $$v) + }, + expression: "item.content.body" + } + }) + ], + 1 + ) + : _vm._e() + }), + 0 + ), + _vm._v(" "), + _c("paginator", { + attrs: { meta: _vm.comments.meta }, + on: { change: _vm.handlePaginate } + }), + _vm._v(" "), + _c( + "div", + { + staticClass: "card card-flush shadow-30 pop-comment-form", + class: { show: _vm.writing } + }, + [ + _c("editor", { + ref: "editor", + staticClass: "comment-editor", + attrs: { + placeholder: "请使用 markdown 语法", + options: _vm.editorOptions + }, + model: { + value: _vm.content, + callback: function($$v) { + _vm.content = $$v + }, + expression: "content" + } + }), + _vm._v(" "), + _c( + "div", + { + staticClass: + "p-2 d-flex align-items-center justify-content-between" + }, + [ + _c("div", { staticClass: "d-flex align-items-end" }, [ + _c( + "a", + { + staticClass: "text-gray-50", + attrs: { + href: + "https://guides.github.com/features/mastering-markdown/", + target: "_blank" + } + }, + [ + _c( + "span", + { staticClass: "text-14 material-design-icon" }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + viewBox: "0 0 16 16", + version: "1.1", + "aria-hidden": "true" + } + }, + [ + _c("path", { + attrs: { + "fill-rule": "evenodd", + d: + "M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z" + } + }) + ] + ) + ] + ), + _vm._v(" Markdown 语法指南") + ] + ) + ]), + _vm._v(" "), + _c("div", { staticClass: "pop-form-btns" }, [ + _c( + "button", + { + staticClass: "btn btn-sm btn-primary", + attrs: { type: "button", disabled: !_vm.formReady }, + on: { click: _vm.submit } + }, + [_vm._v("提交")] + ), + _vm._v(" "), + _c( + "button", + { + staticClass: "ml-2 btn btn-sm btn-secondary", + attrs: { type: "button" }, + on: { + click: function($event) { + _vm.writing = false + } + } + }, + [_vm._v("取消")] + ) + ]) + ] + ) + ], + 1 + ) + ], + 1 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/share-dropdown.vue?vue&type=template&id=035c7ccf&scoped=true&": +/*!********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/share-dropdown.vue?vue&type=template&id=035c7ccf&scoped=true& ***! + \********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "dropdown" }, [ + _c( + "div", + { + attrs: { + "data-toggle": "dropdown", + "aria-haspopup": "true", + "aria-expanded": "false" + } + }, + [ + _vm._t("default", [ + _c( + "a", + { staticClass: "nav-link text-gray-50 btn btn-sm btn-link" }, + [_vm._v("分享")] + ) + ]) + ], + 2 + ), + _vm._v(" "), + _c( + "div", + { + staticClass: "dropdown-menu", + attrs: { "aria-labelledby": "share-dropdown-menu" } + }, + [ + _c( + "a", + { + staticClass: "dropdown-item", + attrs: { target: "_blank", href: _vm.weibo } + }, + [ + _c( + "span", + { staticClass: "material-design-icon link-variant-icon" }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + t: "1528816678350", + viewBox: "0 0 1260 1024", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "p-id": "1944", + "xmlns:xlink": "http://www.w3.org/1999/xlink" + } + }, + [ + _c("path", { + attrs: { + d: + "M1174.286235 110.614403A330.443026 330.443026 0 0 0 858.311759 7.467639a50.406563 50.406563 0 0 0-37.804922 58.34093 50.406563 50.406563 0 0 0 58.34093 37.804922 238.497721 238.497721 0 0 1 226.829535 72.342753 233.363719 233.363719 0 0 1 46.672744 233.36372 46.672744 46.672744 0 0 0 3.267092 37.804922 60.674567 60.674567 0 0 0 27.536919 24.269827 53.673655 53.673655 0 0 0 61.608021-30.804011 351.445761 351.445761 0 0 0-72.342753-329.509572z m0 0", + "p-id": "1945" + } + }), + _vm._v(" "), + _c("path", { + attrs: { + d: + "M1026.800365 412.587056a40.13856 40.13856 0 0 0 51.340018-27.536919 158.220602 158.220602 0 0 0-34.537831-157.753874 167.088423 167.088423 0 0 0-154.486782-51.340019 37.338195 37.338195 0 0 0-30.804011 46.672744 37.338195 37.338195 0 0 0 46.672744 30.804011A79.343665 79.343665 0 0 1 980.127621 280.036463a82.144029 82.144029 0 0 1 17.268915 78.876937A46.672744 46.672744 0 0 0 1026.800365 412.587056z m-82.610757 78.876937c-17.268915-7.000912-30.804011-10.268004-20.536007-30.804011a136.751139 136.751139 0 0 0 0-126.949863c-41.072015-58.34093-154.486782-55.073838-280.036463 0 0 0-41.072015 17.268915-30.804011-13.535096 20.536007-65.341841 17.268915-116.68186-13.535096-147.485871-70.475843-69.075661-255.766636 2.800365-412.587056 161.020967-116.68186 119.948952-186.690975 243.631723-186.690975 353.779398 0 209.56062 267.90155 336.510483 528.802188 336.510483 343.511395 0 569.874202-199.292616 569.874202-357.04649 0-96.145852-82.610757-151.21969-154.486782-175.02279z m-415.38742 456.926162c-209.56062 20.536007-388.783956-75.609845-401.852325-209.56062s144.218778-264.634458 353.779399-285.170465 387.850501 75.609845 401.852324 209.56062-144.218778 264.16773-353.779398 285.170465z m0 0", + "p-id": "1946" + } + }), + _vm._v(" "), + _c("path", { + attrs: { + d: + "M549.338195 556.805834a224.495898 224.495898 0 0 0-253.899726 109.680948A154.020055 154.020055 0 0 0 394.851413 886.782133a222.628988 222.628988 0 0 0 267.90155-113.414767 155.420237 155.420237 0 0 0-113.414768-216.561532z m-75.609845 230.096627a77.476755 77.476755 0 0 1-96.145852 30.804011 54.60711 54.60711 0 0 1-20.536008-82.610756 78.41021 78.41021 0 0 1 93.345488-30.804011 52.273473 52.273473 0 0 1 24.269827 82.610756z m0 0", + "p-id": "1947" + } + }) + ] + ) + ] + ), + _vm._v(" 新浪微博") + ] + ), + _vm._v(" "), + _c( + "a", + { + staticClass: "dropdown-item", + attrs: { target: "_blank", href: _vm.qq } + }, + [ + _c( + "span", + { staticClass: "material-design-icon link-variant-icon" }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + t: "1531573585923", + viewBox: "0 0 1024 1024", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "p-id": "18559", + "xmlns:xlink": "http://www.w3.org/1999/xlink" + } + }, + [ + _c("path", { + attrs: { + d: + "M936.194300839506 691.6934192494618c-5.891587367822223-94.26540047423211-70.69904970840491-170.8560375504593-106.04857520987652-212.09715041975304 5.891587367822223-11.783174735644446 17.674762103466666-79.53643140740742-29.457938133649378-126.66913164452346V349.981342854005c0-182.63921228610366-129.61492468116543-315.1999312984493-294.57937486380246-315.1999312984493s-294.57937615834066 132.5607190123457-294.57937615834066 315.1999312984493v2.9457943311802466c-47.132700237116055 47.132700237116055-35.349525501471604 114.885956908879-29.45793683911111 126.66913164452346-35.349525501471604 41.24111286929382-100.15698784205432 117.83174994552098-106.04857520987652 212.09715041975304 0 23.56634947128889 2.9457943311802466 58.91587497276049 14.728969066824689 76.59063707622718 14.728969066824689 20.62055643464691 55.97008193611851-2.9457943311802466 82.48222444404936-64.80746234058272 8.837381699002469 29.457938133649378 26.51214380246913 73.64484403958517 67.75325667176295 126.66913164452346-70.69904970840491 14.728969066824689-88.37381310640988 85.42801877522965-64.80746234058272 123.72333731334321 17.674762103466666 26.51214380246913 53.02428760493826 47.132700237116055 120.77754298216297 47.132700237116055 114.885956908879 0 167.9102445138173-32.40373117029136 191.4765952796444-53.02428760493826 5.891587367822223-5.891587367822223 11.783174735644446-5.891587367822223 20.620555140108642-5.891587367822223 8.837381699002469 0 14.728969066824689 2.9457943311802466 20.62055643464691 5.891587367822223 23.56634947128889 20.62055643464691 73.64484403958517 53.02428760493826 191.4765939851062 53.02428760493826 64.80746234058272 0 103.10278087869627-20.62055643464691 120.77754427670124-47.132700237116055 23.56634947128889-38.29531853811359 2.9457943311802466-106.04857520987652-64.80746234058272-123.72333731334321 41.24111286929382-55.97008193611851 58.91587497276049-100.15698784205432 67.75325667176295-126.66913164452346 29.457938133649378 61.86166930394074 67.75325667176295 85.42801877522965 82.48222444404936 64.80746234058272 5.891587367822223-17.674762103466666 11.783174735644446-53.02428760493826 8.837381699002469-76.59063707622718z m0 0", + "p-id": "18560" + } + }) + ] + ) + ] + ), + _vm._v(" QQ 好友") + ] + ), + _vm._v(" "), + _c( + "a", + { + staticClass: "dropdown-item", + attrs: { + "data-toggle": "modal", + "data-target": "#page-wechat-qrcode" + } + }, + [ + _c( + "span", + { staticClass: "material-design-icon link-variant-icon" }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + t: "1531575816445", + viewBox: "0 0 1171 1024", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "p-id": "1968", + "xmlns:xlink": "http://www.w3.org/1999/xlink" + } + }, + [ + _c("path", { + attrs: { + d: + "M331.428571 263.428571q0-23.428571-14.285714-37.714286t-37.714286-14.285714q-24.571429 0-43.428571 14.571429t-18.857143 37.428571q0 22.285714 18.857143 36.857143t43.428571 14.571429q23.428571 0 37.714286-14t14.285714-37.428571zm424.571429 289.714286q0-16-14.571429-28.571429t-37.428571-12.571429q-15.428571 0-28.285714 12.857143t-12.857143 28.285714q0 16 12.857143 28.857143t28.285714 12.857143q22.857143 0 37.428571-12.571429t14.571429-29.142857zm-134.857143-289.714286q0-23.428571-14-37.714286t-37.428571-14.285714q-24.571429 0-43.428571 14.571429t-18.857143 37.428571q0 22.285714 18.857143 36.857143t43.428571 14.571429q23.428571 0 37.428571-14t14-37.428571zm362.857143 289.714286q0-16-14.857143-28.571429t-37.142857-12.571429q-15.428571 0-28.285714 12.857143t-12.857143 28.285714q0 16 12.857143 28.857143t28.285714 12.857143q22.285714 0 37.142857-12.571429t14.857143-29.142857zm-152-226.857143q-17.714286-2.285714-40-2.285714-96.571429 0-177.714286 44t-127.714286 119.142857-46.571429 164.285714q0 44.571429 13.142857 86.857143-20 1.714286-38.857143 1.714286-14.857143 0-28.571429-0.857143t-31.428571-3.714286-25.428571-4-31.142857-6-28.571429-6l-144.571429 72.571429 41.142857-124.571429q-165.714286-116-165.714286-280 0-96.571429 55.714286-177.714286t150.857143-127.714286 207.714286-46.571429q100.571429 0 190 37.714286t149.714286 104.285714 78 148.857143zm338.285714 320.571429q0 66.857143-39.142857 127.714286t-106 110.571429l31.428571 103.428571-113.714286-62.285714q-85.714286 21.142857-124.571429 21.142857-96.571429 0-177.714286-40.285714t-127.714286-109.428571-46.571429-150.857143 46.571429-150.857143 127.714286-109.428571 177.714286-40.285714q92 0 173.142857 40.285714t130 109.714286 48.857143 150.571429z", + "p-id": "1969" + } + }) + ] + ) + ] + ), + _vm._v(" 微信扫码") + ] + ), + _vm._v(" "), + _c( + "a", + { + staticClass: "dropdown-item", + attrs: { target: "_blank", href: _vm.qzone } + }, + [ + _c( + "span", + { staticClass: "material-design-icon link-variant-icon" }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + t: "1531573585923", + viewBox: "0 0 1024 1024", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "p-id": "18559", + "xmlns:xlink": "http://www.w3.org/1999/xlink" + } + }, + [ + _c("path", { + attrs: { + d: + "M757.116343 440.1536 457.245257 655.263086c0 0 120.347429 17.856 301.853257 15.786057l-8.259657-35.5712 258.618514-224.067657c4.754286-4.1216 6.577371-10.680686 4.629943-16.661943-1.9456-5.981257-7.277714-10.225371-13.540571-10.750171L659.604114 354.724571 526.4 39.506286c-2.437486-5.787429-8.120686-9.557943-14.4-9.557943s-11.960686 3.770514-14.398171 9.557943L364.397714 354.724571 23.451429 383.996343c-6.261029 0.526629-11.593143 4.768914-13.538743 10.750171-1.947429 5.981257-0.122514 12.540343 4.629943 16.661943l258.620343 224.067657L195.642514 968.813714c-1.4208 6.101943 0.9472 12.485486 6.032457 16.2048 5.103543 3.646171 11.8912 3.927771 17.2928 0.700343L512 809.003886l293.0304 176.7168c2.5088 1.545143 5.297371 2.247314 8.085943 2.247314 3.243886 0 6.473143-0.981943 9.206857-2.945829 5.087086-3.719314 7.455086-10.102857 6.034286-16.2048l-61.295543-263.6032c26.289371-13.2224 55.2448-35.602286 55.2448-35.602286s-114.753829 56.053029-526.729143 28.677486l298.574629-216.407771c0 0-11.733943-18.256457-385.914514-31.286857C183.191771 449.713371 513.296457 387.995429 757.116343 440.1536z", + "p-id": "13675" + } + }) + ] + ) + ] + ), + _vm._v(" QQ 空间") + ] + ), + _vm._v(" "), + _c( + "a", + { + staticClass: "dropdown-item copy-link", + attrs: { + href: "#", + "data-clipboard-text": _vm.url, + title: "复制链接" + } + }, + [ + _c("link-variant", { attrs: { title: "复制链接" } }), + _vm._v(" 复制链接") + ], + 1 + ) + ] + ) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-list-card.vue?vue&type=template&id=312446ed&": +/*!********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-list-card.vue?vue&type=template&id=312446ed& ***! + \********************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm.users.length > 0 + ? _c("div", { staticClass: "box box-flush text-gray-50" }, [ + _vm.title + ? _c("div", { staticClass: "box-body" }, [ + _c( + "div", + { + staticClass: + "d-flex align-items-center justify-content-between" + }, + [ + _c("div", { staticClass: "text-13" }, [ + _vm._v(_vm._s(_vm.title)) + ]) + ] + ) + ]) + : _vm._e(), + _vm._v(" "), + _c( + "ul", + { staticClass: "plan-list px-2 pb-2", class: { "pt-2": !_vm.title } }, + _vm._l(_vm.users, function(item) { + return _c("user-media", { + key: item.id, + attrs: { type: "vertical w25", user: item } + }) + }), + 1 + ) + ]) + : _vm._e() +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-profile-card.vue?vue&type=template&id=710c76d4&": +/*!***********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-profile-card.vue?vue&type=template&id=710c76d4& ***! + \***********************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm.user + ? _c( + "div", + { staticClass: "user-card box box-flush text-center" }, + [ + _c( + "div", + { staticClass: "box-body" }, + [ + _c( + "div", + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { username: _vm.user.username } + } + } + }, + [ + _c("img", { + staticClass: "avatar-80", + attrs: { src: _vm.user.avatar, alt: _vm.user.name } + }) + ] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "h6", + { staticClass: "mt-1 mb-0 text-22 d-inline-block" }, + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { username: _vm.user.username } + } + } + }, + [_vm._v(_vm._s(_vm.user.name))] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "div", + [ + _c( + "router-link", + { + staticClass: "text-12 text-muted", + attrs: { + to: { + name: "users.show", + params: { username: _vm.user.username } + } + } + }, + [_vm._v("@" + _vm._s(_vm.user.username))] + ) + ], + 1 + ), + _vm._v(" "), + _c("div", { staticClass: "text-gray-50" }, [ + _c("div", { staticClass: "py-1" }, [ + _vm._v(_vm._s(_vm.user.bio)) + ]) + ]), + _vm._v(" "), + _c("user-social-btns", { + staticClass: "flex-wrap justify-content-center", + attrs: { user: _vm.user, size: 12, spacing: 2 } + }) + ], + 1 + ), + _vm._v(" "), + _c("follow-btn", { + staticClass: "pb-2 ml-auto", + attrs: { item: _vm.user } + }) + ], + 1 + ) + : _vm._e() +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/wechat-qrcode.vue?vue&type=template&id=647c9db5&": +/*!*******************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/wechat-qrcode.vue?vue&type=template&id=647c9db5& ***! + \*******************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { + ref: "pageWechatQrcode", + staticClass: "modal fade", + attrs: { + id: "page-wechat-qrcode", + tabindex: "-1", + role: "dialog", + "aria-labelledby": "qrcode-wechat", + "aria-hidden": "true" + } + }, + [_vm._m(0)] + ) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { + staticClass: "modal-dialog modal-sm modal-dialog-centered", + staticStyle: { "z-index": "99999" }, + attrs: { role: "document" } + }, + [ + _c("div", { staticClass: "modal-content" }, [ + _c("div", { staticClass: "modal-body text-center" }, [ + _c("canvas", { attrs: { id: "page-wechat-qrcode-canvas" } }), + _vm._v(" "), + _c("p", [_vm._v("使用微信扫一扫识别上方二维码")]) + ]) + ]) + ] + ) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/report-form.vue?vue&type=template&id=bea1adf4&": +/*!**********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/threads/report-form.vue?vue&type=template&id=bea1adf4& ***! + \**********************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "el-dialog", + { + attrs: { title: "举报文章", visible: _vm.visible, width: "30%" }, + on: { close: _vm.close } + }, + [ + _c("form", [ + _c("div", { staticClass: "form-group" }, [ + _c("textarea", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.remark, + expression: "remark" + } + ], + staticClass: "form-control", + attrs: { rows: "6", placeholder: "请详细描述举报原因" }, + domProps: { value: _vm.remark }, + on: { + input: function($event) { + if ($event.target.composing) { + return + } + _vm.remark = $event.target.value + } + } + }) + ]) + ]), + _vm._v(" "), + _c( + "div", + { + staticClass: "dialog-footer", + attrs: { slot: "footer" }, + slot: "footer" + }, + [ + _c( + "button", + { + staticClass: "btn btn-sm btn-success", + on: { click: _vm.report } + }, + [_vm._v("提 交")] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/show.vue?vue&type=template&id=448fe904&": +/*!***************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/threads/show.vue?vue&type=template&id=448fe904& ***! + \***************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm.thread + ? _c( + "div", + { staticClass: "page-threads-show pb-4" }, + [ + _c("div", { staticClass: "row" }, [ + _c("div", { staticClass: "col-md-9" }, [ + _c("article", { staticClass: "box box-flush" }, [ + _c( + "header", + { + staticClass: + "thread-header box-body d-flex justify-content-between align-items-center" + }, + [ + _c("user-media", { attrs: { user: _vm.thread.user } }, [ + _c( + "small", + { + staticClass: "text-muted", + attrs: { slot: "description" }, + slot: "description" + }, + [ + _vm._v( + "发布于 " + _vm._s(_vm.thread.created_at_timeago) + ) + ] + ) + ]) + ], + 1 + ), + _vm._v(" "), + _c( + "div", + { + staticClass: "thread-content box-body text-gray-40 text-16" + }, + [ + _c("header", [ + _c("h2", { staticClass: "mb-3 pb-2 border-bottom" }, [ + _vm._v(_vm._s(_vm.thread.title)) + ]) + ]), + _vm._v(" "), + _c("markdown-body", { + model: { + value: _vm.thread.content.body, + callback: function($$v) { + _vm.$set(_vm.thread.content, "body", $$v) + }, + expression: "thread.content.body" + } + }) + ], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "thread-stats-bar bg-white border-top py-1" }, + [ + _c("div", { staticClass: "container" }, [ + _c("ul", { staticClass: "nav align-items-center" }, [ + _c( + "li", + { staticClass: "nav-item" }, + [ + _c("like-btn", { + attrs: { relation: "thread", item: _vm.thread } + }) + ], + 1 + ), + _vm._v(" "), + _c("li", { staticClass: "nav-item" }, [ + _c( + "a", + { + staticClass: "text-gray-50 btn btn-sm btn-link", + attrs: { href: "#comments" } + }, + [ + _c("comment-icon"), + _vm._v( + "\n " + + _vm._s(_vm.thread.cache.comments_count) + + " 条评论\n " + ) + ], + 1 + ) + ]), + _vm._v(" "), + _c( + "li", + { staticClass: "nav-item" }, + [ + _c("share-dropdown", [ + _c( + "a", + { + staticClass: + "text-gray-50 btn btn-sm btn-link" + }, + [ + _c("share-icon"), + _vm._v("分享\n ") + ], + 1 + ) + ]) + ], + 1 + ), + _vm._v(" "), + _c("li", { staticClass: "nav-item" }, [ + _c( + "button", + { + staticClass: "text-gray-50 btn btn-sm btn-link", + attrs: { + type: "button", + "data-toggle": "dropdown", + "aria-haspopup": "true", + "aria-expanded": "false" + } + }, + [_c("more-icon")], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "dropdown-menu" }, + [ + _vm.canEdit + ? [ + _vm.currentUser.is_admin + ? [ + _c( + "button", + { + staticClass: "dropdown-item", + attrs: { type: "button" }, + on: { + click: function($event) { + return _vm.toggleStatus( + "excellent_at" + ) + } + } + }, + [ + _c("medal-icon", { + staticClass: "mr-1" + }), + _vm._v( + "\n " + + _vm._s( + _vm.thread.excellent_at + ? "取消精华" + : "精华" + ) + + "\n " + ) + ], + 1 + ), + _vm._v(" "), + _c( + "button", + { + staticClass: "dropdown-item", + attrs: { type: "button" }, + on: { + click: function($event) { + return _vm.toggleStatus( + "pinned_at" + ) + } + } + }, + [ + _c("top-icon", { + staticClass: "mr-1" + }), + _vm._v( + "\n " + + _vm._s( + _vm.thread.pinned_at + ? "取消置顶" + : "置顶" + ) + + "\n " + ) + ], + 1 + ), + _vm._v(" "), + _c( + "button", + { + staticClass: "dropdown-item", + attrs: { type: "button" }, + on: { + click: function($event) { + return _vm.toggleStatus( + "banned_at" + ) + } + } + }, + [ + _c("lock-icon", { + staticClass: "mr-1" + }), + _vm._v( + "\n " + + _vm._s( + _vm.thread.banned_at + ? "取消冻结" + : "冻结" + ) + + "\n " + ) + ], + 1 + ) + ] + : _vm._e(), + _vm._v(" "), + _c( + "button", + { + staticClass: "dropdown-item", + attrs: { type: "button" }, + on: { + click: function($event) { + return _vm.$router.push({ + name: "threads.edit", + params: { id: _vm.thread.id } + }) + } + } + }, + [ + _c("pencil-icon", { + staticClass: "mr-1" + }), + _vm._v("编辑\n ") + ], + 1 + ), + _vm._v(" "), + _c( + "button", + { + staticClass: + "dropdown-item text-danger", + attrs: { type: "button" }, + on: { + click: function($event) { + return _vm.handleDelete(_vm.thread) + } + } + }, + [ + _c("delete-icon", { + staticClass: "mr-1" + }), + _vm._v("删除\n ") + ], + 1 + ) + ] + : _vm._e(), + _vm._v(" "), + _c( + "button", + { + staticClass: "dropdown-item cursor-pointer", + attrs: { type: "button" }, + on: { + click: function($event) { + _vm.showReportForm = true + } + } + }, + [ + _c("alert-box-icon", { staticClass: "mr-1" }), + _vm._v("举报\n ") + ], + 1 + ) + ], + 2 + ) + ]), + _vm._v(" "), + _c( + "li", + { staticClass: "nav-item ml-auto" }, + [ + _c("subscribe-btn", { + attrs: { relation: "thread", item: _vm.thread } + }) + ], + 1 + ) + ]) + ]) + ] + ), + _vm._v(" "), + _c( + "div", + { staticClass: "thread-author-card border-top p-3" }, + [ + _c( + "div", + { + staticClass: + "d-flex align-items-center justify-content-between" + }, + [ + _c( + "div", + { + staticClass: "user-info d-flex align-items-center" + }, + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { + username: _vm.thread.user.username + } + } + } + }, + [ + _c("img", { + staticClass: "avatar-60", + attrs: { + src: _vm.thread.user.avatar, + alt: "User avatar" + } + }) + ] + ), + _vm._v(" "), + _c( + "div", + { staticClass: "p-2" }, + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { + username: _vm.thread.user.username + } + } + } + }, + [ + _c( + "h3", + { staticClass: "text-gray-50 text-14" }, + [_vm._v(_vm._s(_vm.thread.user.name))] + ) + ] + ), + _vm._v(" "), + _c( + "div", + { staticClass: "text-12 text-muted" }, + [_vm._v(_vm._s(_vm.thread.user.bio))] + ) + ], + 1 + ) + ], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "right-action" }, + [ + _c("follow-btn", { + attrs: { item: _vm.thread.user } + }) + ], + 1 + ) + ] + ) + ] + ) + ]), + _vm._v(" "), + _c( + "div", + { staticClass: "thread-comments mt-3" }, + [ + _c("comments", { + attrs: { + "object-type": "App\\Thread", + "object-id": _vm.thread.id + }, + on: { created: _vm.loadThread } + }) + ], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "thread-toolbar" }, + [ + _c("animate-action", { attrs: { item: _vm.thread } }), + _vm._v(" "), + _c("share-action", { + staticClass: "mt-3", + attrs: { item: _vm.thread } + }) + ], + 1 + ) + ]), + _vm._v(" "), + _c( + "div", + { staticClass: "col-md-3 position-relative" }, + [ + _c("user-profile-card", { + staticClass: "user-profile-card", + attrs: { user: _vm.thread.user } + }), + _vm._v(" "), + _c("user-list-card", { + staticClass: "mt-2", + attrs: { title: "他们觉得很赞", users: _vm.thread.likers } + }), + _vm._v(" "), + _c("hot-tags", { staticClass: "mt-2" }) + ], + 1 + ) + ]), + _vm._v(" "), + _c("wechat-qrcode"), + _vm._v(" "), + _c("report-form", { + attrs: { visible: _vm.showReportForm }, + on: { + close: function($event) { + _vm.showReportForm = false + } + } + }) + ], + 1 + ) + : _vm._e() +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/buttons/animate-action.vue": +/*!***************************************************!*\ + !*** ./src/components/buttons/animate-action.vue ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _animate_action_vue_vue_type_template_id_010b0e00___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animate-action.vue?vue&type=template&id=010b0e00& */ "./src/components/buttons/animate-action.vue?vue&type=template&id=010b0e00&"); +/* harmony import */ var _animate_action_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./animate-action.vue?vue&type=script&lang=js& */ "./src/components/buttons/animate-action.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _animate_action_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./animate-action.vue?vue&type=style&index=0&lang=scss& */ "./src/components/buttons/animate-action.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _animate_action_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _animate_action_vue_vue_type_template_id_010b0e00___WEBPACK_IMPORTED_MODULE_0__["render"], + _animate_action_vue_vue_type_template_id_010b0e00___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/buttons/animate-action.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/buttons/animate-action.vue?vue&type=script&lang=js&": +/*!****************************************************************************!*\ + !*** ./src/components/buttons/animate-action.vue?vue&type=script&lang=js& ***! + \****************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./animate-action.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/animate-action.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/buttons/animate-action.vue?vue&type=style&index=0&lang=scss&": +/*!*************************************************************************************!*\ + !*** ./src/components/buttons/animate-action.vue?vue&type=style&index=0&lang=scss& ***! + \*************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../../node_modules/style-loader!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./animate-action.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/animate-action.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/components/buttons/animate-action.vue?vue&type=template&id=010b0e00&": +/*!**********************************************************************************!*\ + !*** ./src/components/buttons/animate-action.vue?vue&type=template&id=010b0e00& ***! + \**********************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_template_id_010b0e00___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./animate-action.vue?vue&type=template&id=010b0e00& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/animate-action.vue?vue&type=template&id=010b0e00&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_template_id_010b0e00___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_template_id_010b0e00___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/buttons/like-btn.vue": +/*!*********************************************!*\ + !*** ./src/components/buttons/like-btn.vue ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _like_btn_vue_vue_type_template_id_055d3c04___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./like-btn.vue?vue&type=template&id=055d3c04& */ "./src/components/buttons/like-btn.vue?vue&type=template&id=055d3c04&"); +/* harmony import */ var _like_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./like-btn.vue?vue&type=script&lang=js& */ "./src/components/buttons/like-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _like_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _like_btn_vue_vue_type_template_id_055d3c04___WEBPACK_IMPORTED_MODULE_0__["render"], + _like_btn_vue_vue_type_template_id_055d3c04___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/buttons/like-btn.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/buttons/like-btn.vue?vue&type=script&lang=js&": +/*!**********************************************************************!*\ + !*** ./src/components/buttons/like-btn.vue?vue&type=script&lang=js& ***! + \**********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_like_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./like-btn.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/like-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_like_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/buttons/like-btn.vue?vue&type=template&id=055d3c04&": +/*!****************************************************************************!*\ + !*** ./src/components/buttons/like-btn.vue?vue&type=template&id=055d3c04& ***! + \****************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_like_btn_vue_vue_type_template_id_055d3c04___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./like-btn.vue?vue&type=template&id=055d3c04& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/like-btn.vue?vue&type=template&id=055d3c04&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_like_btn_vue_vue_type_template_id_055d3c04___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_like_btn_vue_vue_type_template_id_055d3c04___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/buttons/share-action.vue": +/*!*************************************************!*\ + !*** ./src/components/buttons/share-action.vue ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _share_action_vue_vue_type_template_id_fde12a7c_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./share-action.vue?vue&type=template&id=fde12a7c&scoped=true& */ "./src/components/buttons/share-action.vue?vue&type=template&id=fde12a7c&scoped=true&"); +/* harmony import */ var _share_action_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./share-action.vue?vue&type=script&lang=js& */ "./src/components/buttons/share-action.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _share_action_vue_vue_type_style_index_0_id_fde12a7c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true& */ "./src/components/buttons/share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _share_action_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _share_action_vue_vue_type_template_id_fde12a7c_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"], + _share_action_vue_vue_type_template_id_fde12a7c_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + "fde12a7c", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/buttons/share-action.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/buttons/share-action.vue?vue&type=script&lang=js&": +/*!**************************************************************************!*\ + !*** ./src/components/buttons/share-action.vue?vue&type=script&lang=js& ***! + \**************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./share-action.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/share-action.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/buttons/share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true&": +/*!***********************************************************************************************************!*\ + !*** ./src/components/buttons/share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true& ***! + \***********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_style_index_0_id_fde12a7c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../../node_modules/style-loader!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_style_index_0_id_fde12a7c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_style_index_0_id_fde12a7c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_style_index_0_id_fde12a7c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_style_index_0_id_fde12a7c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_style_index_0_id_fde12a7c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/components/buttons/share-action.vue?vue&type=template&id=fde12a7c&scoped=true&": +/*!********************************************************************************************!*\ + !*** ./src/components/buttons/share-action.vue?vue&type=template&id=fde12a7c&scoped=true& ***! + \********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_template_id_fde12a7c_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./share-action.vue?vue&type=template&id=fde12a7c&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/share-action.vue?vue&type=template&id=fde12a7c&scoped=true&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_template_id_fde12a7c_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_template_id_fde12a7c_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/buttons/subscribe-btn.vue": +/*!**************************************************!*\ + !*** ./src/components/buttons/subscribe-btn.vue ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./subscribe-btn.vue?vue&type=template&id=e241702a& */ "./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a&"); +/* harmony import */ var _subscribe_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./subscribe-btn.vue?vue&type=script&lang=js& */ "./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _subscribe_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__["render"], + _subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/buttons/subscribe-btn.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js&": +/*!***************************************************************************!*\ + !*** ./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js& ***! + \***************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribe_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./subscribe-btn.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribe_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a&": +/*!*********************************************************************************!*\ + !*** ./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a& ***! + \*********************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./subscribe-btn.vue?vue&type=template&id=e241702a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/comments.vue": +/*!*************************************!*\ + !*** ./src/components/comments.vue ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _comments_vue_vue_type_template_id_4e7c9004___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./comments.vue?vue&type=template&id=4e7c9004& */ "./src/components/comments.vue?vue&type=template&id=4e7c9004&"); +/* harmony import */ var _comments_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./comments.vue?vue&type=script&lang=js& */ "./src/components/comments.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _comments_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./comments.vue?vue&type=style&index=0&lang=scss& */ "./src/components/comments.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _comments_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _comments_vue_vue_type_template_id_4e7c9004___WEBPACK_IMPORTED_MODULE_0__["render"], + _comments_vue_vue_type_template_id_4e7c9004___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/comments.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/comments.vue?vue&type=script&lang=js&": +/*!**************************************************************!*\ + !*** ./src/components/comments.vue?vue&type=script&lang=js& ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./comments.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/comments.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/comments.vue?vue&type=style&index=0&lang=scss&": +/*!***********************************************************************!*\ + !*** ./src/components/comments.vue?vue&type=style&index=0&lang=scss& ***! + \***********************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../node_modules/style-loader!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./comments.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/comments.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/components/comments.vue?vue&type=template&id=4e7c9004&": +/*!********************************************************************!*\ + !*** ./src/components/comments.vue?vue&type=template&id=4e7c9004& ***! + \********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_template_id_4e7c9004___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./comments.vue?vue&type=template&id=4e7c9004& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/comments.vue?vue&type=template&id=4e7c9004&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_template_id_4e7c9004___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_template_id_4e7c9004___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/share-dropdown.vue": +/*!*******************************************!*\ + !*** ./src/components/share-dropdown.vue ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _share_dropdown_vue_vue_type_template_id_035c7ccf_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./share-dropdown.vue?vue&type=template&id=035c7ccf&scoped=true& */ "./src/components/share-dropdown.vue?vue&type=template&id=035c7ccf&scoped=true&"); +/* harmony import */ var _share_dropdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./share-dropdown.vue?vue&type=script&lang=js& */ "./src/components/share-dropdown.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _share_dropdown_vue_vue_type_style_index_0_id_035c7ccf_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true& */ "./src/components/share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _share_dropdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _share_dropdown_vue_vue_type_template_id_035c7ccf_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"], + _share_dropdown_vue_vue_type_template_id_035c7ccf_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + "035c7ccf", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/share-dropdown.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/share-dropdown.vue?vue&type=script&lang=js&": +/*!********************************************************************!*\ + !*** ./src/components/share-dropdown.vue?vue&type=script&lang=js& ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./share-dropdown.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/share-dropdown.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true&": +/*!*****************************************************************************************************!*\ + !*** ./src/components/share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true& ***! + \*****************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_style_index_0_id_035c7ccf_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../node_modules/style-loader!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_style_index_0_id_035c7ccf_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_style_index_0_id_035c7ccf_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_style_index_0_id_035c7ccf_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_style_index_0_id_035c7ccf_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_style_index_0_id_035c7ccf_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/components/share-dropdown.vue?vue&type=template&id=035c7ccf&scoped=true&": +/*!**************************************************************************************!*\ + !*** ./src/components/share-dropdown.vue?vue&type=template&id=035c7ccf&scoped=true& ***! + \**************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_template_id_035c7ccf_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./share-dropdown.vue?vue&type=template&id=035c7ccf&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/share-dropdown.vue?vue&type=template&id=035c7ccf&scoped=true&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_template_id_035c7ccf_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_template_id_035c7ccf_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/user-list-card.vue": +/*!*******************************************!*\ + !*** ./src/components/user-list-card.vue ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _user_list_card_vue_vue_type_template_id_312446ed___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user-list-card.vue?vue&type=template&id=312446ed& */ "./src/components/user-list-card.vue?vue&type=template&id=312446ed&"); +/* harmony import */ var _user_list_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user-list-card.vue?vue&type=script&lang=js& */ "./src/components/user-list-card.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _user_list_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _user_list_card_vue_vue_type_template_id_312446ed___WEBPACK_IMPORTED_MODULE_0__["render"], + _user_list_card_vue_vue_type_template_id_312446ed___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/user-list-card.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/user-list-card.vue?vue&type=script&lang=js&": +/*!********************************************************************!*\ + !*** ./src/components/user-list-card.vue?vue&type=script&lang=js& ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_list_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./user-list-card.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-list-card.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_list_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/user-list-card.vue?vue&type=template&id=312446ed&": +/*!**************************************************************************!*\ + !*** ./src/components/user-list-card.vue?vue&type=template&id=312446ed& ***! + \**************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_list_card_vue_vue_type_template_id_312446ed___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./user-list-card.vue?vue&type=template&id=312446ed& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-list-card.vue?vue&type=template&id=312446ed&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_list_card_vue_vue_type_template_id_312446ed___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_list_card_vue_vue_type_template_id_312446ed___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/user-profile-card.vue": +/*!**********************************************!*\ + !*** ./src/components/user-profile-card.vue ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _user_profile_card_vue_vue_type_template_id_710c76d4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user-profile-card.vue?vue&type=template&id=710c76d4& */ "./src/components/user-profile-card.vue?vue&type=template&id=710c76d4&"); +/* harmony import */ var _user_profile_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user-profile-card.vue?vue&type=script&lang=js& */ "./src/components/user-profile-card.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _user_profile_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _user_profile_card_vue_vue_type_template_id_710c76d4___WEBPACK_IMPORTED_MODULE_0__["render"], + _user_profile_card_vue_vue_type_template_id_710c76d4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/user-profile-card.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/user-profile-card.vue?vue&type=script&lang=js&": +/*!***********************************************************************!*\ + !*** ./src/components/user-profile-card.vue?vue&type=script&lang=js& ***! + \***********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_profile_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./user-profile-card.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-profile-card.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_profile_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/user-profile-card.vue?vue&type=template&id=710c76d4&": +/*!*****************************************************************************!*\ + !*** ./src/components/user-profile-card.vue?vue&type=template&id=710c76d4& ***! + \*****************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_profile_card_vue_vue_type_template_id_710c76d4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./user-profile-card.vue?vue&type=template&id=710c76d4& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-profile-card.vue?vue&type=template&id=710c76d4&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_profile_card_vue_vue_type_template_id_710c76d4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_profile_card_vue_vue_type_template_id_710c76d4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/wechat-qrcode.vue": +/*!******************************************!*\ + !*** ./src/components/wechat-qrcode.vue ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wechat_qrcode_vue_vue_type_template_id_647c9db5___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./wechat-qrcode.vue?vue&type=template&id=647c9db5& */ "./src/components/wechat-qrcode.vue?vue&type=template&id=647c9db5&"); +/* harmony import */ var _wechat_qrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./wechat-qrcode.vue?vue&type=script&lang=js& */ "./src/components/wechat-qrcode.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _wechat_qrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _wechat_qrcode_vue_vue_type_template_id_647c9db5___WEBPACK_IMPORTED_MODULE_0__["render"], + _wechat_qrcode_vue_vue_type_template_id_647c9db5___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/wechat-qrcode.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/wechat-qrcode.vue?vue&type=script&lang=js&": +/*!*******************************************************************!*\ + !*** ./src/components/wechat-qrcode.vue?vue&type=script&lang=js& ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_wechat_qrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./wechat-qrcode.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/wechat-qrcode.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_wechat_qrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/wechat-qrcode.vue?vue&type=template&id=647c9db5&": +/*!*************************************************************************!*\ + !*** ./src/components/wechat-qrcode.vue?vue&type=template&id=647c9db5& ***! + \*************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_wechat_qrcode_vue_vue_type_template_id_647c9db5___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./wechat-qrcode.vue?vue&type=template&id=647c9db5& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/wechat-qrcode.vue?vue&type=template&id=647c9db5&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_wechat_qrcode_vue_vue_type_template_id_647c9db5___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_wechat_qrcode_vue_vue_type_template_id_647c9db5___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/threads/report-form.vue": +/*!*********************************************!*\ + !*** ./src/modules/threads/report-form.vue ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _report_form_vue_vue_type_template_id_bea1adf4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./report-form.vue?vue&type=template&id=bea1adf4& */ "./src/modules/threads/report-form.vue?vue&type=template&id=bea1adf4&"); +/* harmony import */ var _report_form_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./report-form.vue?vue&type=script&lang=js& */ "./src/modules/threads/report-form.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _report_form_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./report-form.vue?vue&type=style&index=0&lang=scss& */ "./src/modules/threads/report-form.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _report_form_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _report_form_vue_vue_type_template_id_bea1adf4___WEBPACK_IMPORTED_MODULE_0__["render"], + _report_form_vue_vue_type_template_id_bea1adf4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/threads/report-form.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/threads/report-form.vue?vue&type=script&lang=js&": +/*!**********************************************************************!*\ + !*** ./src/modules/threads/report-form.vue?vue&type=script&lang=js& ***! + \**********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./report-form.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/report-form.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/threads/report-form.vue?vue&type=style&index=0&lang=scss&": +/*!*******************************************************************************!*\ + !*** ./src/modules/threads/report-form.vue?vue&type=style&index=0&lang=scss& ***! + \*******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../../node_modules/style-loader!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./report-form.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/report-form.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/modules/threads/report-form.vue?vue&type=template&id=bea1adf4&": +/*!****************************************************************************!*\ + !*** ./src/modules/threads/report-form.vue?vue&type=template&id=bea1adf4& ***! + \****************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_template_id_bea1adf4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./report-form.vue?vue&type=template&id=bea1adf4& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/report-form.vue?vue&type=template&id=bea1adf4&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_template_id_bea1adf4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_template_id_bea1adf4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/threads/show.vue": +/*!**************************************!*\ + !*** ./src/modules/threads/show.vue ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _show_vue_vue_type_template_id_448fe904___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./show.vue?vue&type=template&id=448fe904& */ "./src/modules/threads/show.vue?vue&type=template&id=448fe904&"); +/* harmony import */ var _show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./show.vue?vue&type=script&lang=js& */ "./src/modules/threads/show.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _show_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./show.vue?vue&type=style&index=0&lang=scss& */ "./src/modules/threads/show.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _show_vue_vue_type_template_id_448fe904___WEBPACK_IMPORTED_MODULE_0__["render"], + _show_vue_vue_type_template_id_448fe904___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/threads/show.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/threads/show.vue?vue&type=script&lang=js&": +/*!***************************************************************!*\ + !*** ./src/modules/threads/show.vue?vue&type=script&lang=js& ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/show.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/threads/show.vue?vue&type=style&index=0&lang=scss&": +/*!************************************************************************!*\ + !*** ./src/modules/threads/show.vue?vue&type=style&index=0&lang=scss& ***! + \************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../../node_modules/style-loader!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/show.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/modules/threads/show.vue?vue&type=template&id=448fe904&": +/*!*********************************************************************!*\ + !*** ./src/modules/threads/show.vue?vue&type=template&id=448fe904& ***! + \*********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_448fe904___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=template&id=448fe904& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/show.vue?vue&type=template&id=448fe904&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_448fe904___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_448fe904___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/18.f574057c6b5260a9673e.js b/public/18.f574057c6b5260a9673e.js new file mode 100644 index 00000000..71228ce3 --- /dev/null +++ b/public/18.f574057c6b5260a9673e.js @@ -0,0 +1,1654 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[18],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/empty-state.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_TooltipOutline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/TooltipOutline */ "./node_modules/vue-material-design-icons/TooltipOutline.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'empty-state', + components: { + EmptyIcon: $icons_TooltipOutline__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + title: { + type: String, + default: null + }, + message: { + type: String, + default: '空空如也~~~' + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/show.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/show.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_Bell__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/Bell */ "./node_modules/vue-material-design-icons/Bell.vue"); +/* harmony import */ var $icons_Inbox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/Inbox */ "./node_modules/vue-material-design-icons/Inbox.vue"); +/* harmony import */ var $icons_Check__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/Check */ "./node_modules/vue-material-design-icons/Check.vue"); +/* harmony import */ var $components_empty_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $components/empty-state */ "./src/components/empty-state.vue"); +/* harmony import */ var _types_new_follower__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./types/new-follower */ "./src/modules/notifications/types/new-follower.vue"); +/* harmony import */ var _types_comment_my_thread__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./types/comment-my-thread */ "./src/modules/notifications/types/comment-my-thread.vue"); +/* harmony import */ var _types_liked_my_thread__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./types/liked-my-thread */ "./src/modules/notifications/types/liked-my-thread.vue"); +/* harmony import */ var _types_mentioned_me__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./types/mentioned-me */ "./src/modules/notifications/types/mentioned-me.vue"); +/* harmony import */ var _types_subscribed_my_thread__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./types/subscribed-my-thread */ "./src/modules/notifications/types/subscribed-my-thread.vue"); +/* harmony import */ var _types_welcome__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./types/welcome */ "./src/modules/notifications/types/welcome.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + EmptyState: $components_empty_state__WEBPACK_IMPORTED_MODULE_3__["default"], + MentionedMe: _types_mentioned_me__WEBPACK_IMPORTED_MODULE_7__["default"], + BellIcon: $icons_Bell__WEBPACK_IMPORTED_MODULE_0__["default"], + InboxIcon: $icons_Inbox__WEBPACK_IMPORTED_MODULE_1__["default"], + CheckIcon: $icons_Check__WEBPACK_IMPORTED_MODULE_2__["default"], + NewFollower: _types_new_follower__WEBPACK_IMPORTED_MODULE_4__["default"], + CommentMyThread: _types_comment_my_thread__WEBPACK_IMPORTED_MODULE_5__["default"], + LikedMyThread: _types_liked_my_thread__WEBPACK_IMPORTED_MODULE_6__["default"], + SubscribedMyThread: _types_subscribed_my_thread__WEBPACK_IMPORTED_MODULE_8__["default"], + Welcome: _types_welcome__WEBPACK_IMPORTED_MODULE_9__["default"] + }, + data: function data() { + return { + tabs: { + all: '全部 ', + follow: '关注', + comment: '评论', + subscribe: '订阅', + like: '点赞' + }, + currentTab: 'all', + notifications: [] + }; + }, + watch: { + currentTab: function currentTab() { + this.loadNotifications(1); + } + }, + created: function created() { + this.loadNotifications(); + }, + methods: { + loadNotifications: function loadNotifications() { + var _this = this; + + var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; + this.$router.push({ + name: 'notifications.show', + query: { + tab: this.currentTab + } + }); + this.$http.get("user/notifications?tab=".concat(this.currentTab, "&page=").concat(page)).then(function (notifications) { + return _this.notifications = notifications.data; + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/comment-my-thread.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/comment-my-thread.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _notification__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./notification */ "./src/modules/notifications/types/notification.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + Notification: _notification__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + notification: { + type: Object, + default: null + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/liked-my-thread.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/liked-my-thread.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _notification__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./notification */ "./src/modules/notifications/types/notification.vue"); +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + Notification: _notification__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + notification: { + type: Object, + default: null + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/mentioned-me.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/mentioned-me.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _notification__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./notification */ "./src/modules/notifications/types/notification.vue"); +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + Notification: _notification__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + notification: { + type: Object, + default: null + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/new-follower.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/new-follower.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _notification__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./notification */ "./src/modules/notifications/types/notification.vue"); +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + Notification: _notification__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + notification: { + type: Object, + default: null + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/notification.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/notification.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + props: { + notification: { + type: Object, + required: true + } + }, + name: 'notification' +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=script&lang=js&": +/*!***************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=script&lang=js& ***! + \***************************************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _notification__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./notification */ "./src/modules/notifications/types/notification.vue"); +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + Notification: _notification__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + notification: { + type: Object, + default: null + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/welcome.vue?vue&type=script&lang=js&": +/*!**************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/welcome.vue?vue&type=script&lang=js& ***! + \**************************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _notification__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./notification */ "./src/modules/notifications/types/notification.vue"); +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + Notification: _notification__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + notification: { + type: Object, + default: null + } + } +}); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true&": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true& ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".notification-body a[data-v-88f5ecae] {\n color: #6c757d !important;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true&": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true& ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--7-3!../../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../../node_modules/vue-loader/lib??vue-loader-options!./notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=template&id=772b85b1&": +/*!*****************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/empty-state.vue?vue&type=template&id=772b85b1& ***! + \*****************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "text-center p-5 text-gray-50" }, [ + _c("div", { staticClass: "container" }, [ + _c( + "h1", + { staticClass: "display-4" }, + [_vm._t("icon", [_c("empty-icon")])], + 2 + ), + _vm._v(" "), + _c("h2", [_vm._t("title", [_vm._v(_vm._s(_vm.title))])], 2), + _vm._v(" "), + _c( + "p", + { staticClass: "lead" }, + [_vm._t("message", [_vm._v(_vm._s(_vm.message))])], + 2 + ) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/show.vue?vue&type=template&id=9c473836&": +/*!*********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/show.vue?vue&type=template&id=9c473836& ***! + \*********************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "page-notification-show" }, [ + _c("div", { staticClass: "row" }, [ + _c("div", { staticClass: "col-md-3" }, [ + _c("div", { staticClass: "box mb-2" }, [ + _c( + "div", + { staticClass: "box-heading" }, + [ + _c("bell-icon", { staticClass: "mr-1 text-16" }), + _vm._v("通知\n ") + ], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "nav flex-lg-column nav-pills" }, + _vm._l(_vm.tabs, function(tab, id) { + return _c( + "a", + { + staticClass: "nav-link", + class: { active: _vm.currentTab == id }, + attrs: { href: "javascript:void(0);" }, + on: { + click: function($event) { + _vm.currentTab = id + } + } + }, + [_vm._v(_vm._s(tab))] + ) + }), + 0 + ) + ]) + ]), + _vm._v(" "), + _c("div", { staticClass: "col-md-9" }, [ + _c("div", { staticClass: "box box-flush" }, [ + _vm.notifications.length > 0 + ? _c( + "ul", + { staticClass: "list-group list-group-flush" }, + [ + _c("li", { staticClass: "list-group-item" }, [ + _vm._v( + "\n " + + _vm._s(_vm.tabs[_vm.currentTab]) + + "\n " + ) + ]), + _vm._v(" "), + _vm._l(_vm.notifications, function(notification) { + return _c( + "li", + { + key: notification.id, + staticClass: "list-group-item list-group-item-action", + class: { "bg-gray-98": notification.read_at == null } + }, + [ + _c( + "keep-alive", + [ + _c(notification.type.split("_").join("-"), { + tag: "component", + attrs: { notification: notification } + }) + ], + 1 + ) + ], + 1 + ) + }) + ], + 2 + ) + : _c( + "div", + { staticClass: "text-center text-gray-50" }, + [ + _c( + "empty-state", + { attrs: { message: "没有新的消息哦~" } }, + [_c("template", { slot: "icon" }, [_c("inbox-icon")], 1)], + 2 + ) + ], + 1 + ) + ]) + ]) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/comment-my-thread.vue?vue&type=template&id=36016f8f&": +/*!****************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/comment-my-thread.vue?vue&type=template&id=36016f8f& ***! + \****************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "notification", + { attrs: { notification: _vm.notification } }, + [ + _c( + "template", + { slot: "title" }, + [ + _vm._v("\n 评论了你的文章\n "), + _c( + "router-link", + { + attrs: { + to: { + name: "threads.show", + params: { id: _vm.notification.data.thread_id }, + hash: "#comment-" + _vm.notification.data.comment_id + } + } + }, + [ + _vm._v( + "\n 《" + + _vm._s(_vm.notification.data.thread_title) + + "》\n " + ) + ] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "pt-2 pl-md-4" }, + [ + _c("router-link", { + staticClass: "text-muted", + attrs: { + to: { + name: "threads.show", + params: { id: _vm.notification.data.thread_id } + } + }, + domProps: { innerHTML: _vm._s(_vm.notification.data.content) } + }) + ], + 1 + ) + ], + 2 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/liked-my-thread.vue?vue&type=template&id=a066ba46&": +/*!**************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/liked-my-thread.vue?vue&type=template&id=a066ba46& ***! + \**************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "notification", + { attrs: { notification: _vm.notification } }, + [ + _c( + "template", + { slot: "title" }, + [ + _vm._v("赞了你的文章\n "), + _c( + "router-link", + { + attrs: { + to: { + name: "threads.show", + params: { id: _vm.notification.data.thread_id } + } + } + }, + [ + _vm._v( + "\n 《" + + _vm._s(_vm.notification.data.thread_title) + + "》\n " + ) + ] + ) + ], + 1 + ) + ], + 2 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/mentioned-me.vue?vue&type=template&id=6eedd3cc&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/mentioned-me.vue?vue&type=template&id=6eedd3cc& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "notification", + { attrs: { notification: _vm.notification } }, + [ + _c("template", { slot: "title" }, [ + _c( + "span", + [ + _vm._v("在 "), + _c( + "router-link", + { + attrs: { + to: { + name: "threads.show", + params: { id: _vm.notification.data.commentable_id }, + hash: "#comment-" + _vm.notification.data.comment_id + } + } + }, + [ + _vm._v( + "《" + _vm._s(_vm.notification.data.commentable_title) + "》" + ) + ] + ), + _vm._v(" 的评论了中提到了您") + ], + 1 + ) + ]), + _vm._v(" "), + _c( + "div", + { staticClass: "pt-2 pl-md-4" }, + [ + _c("router-link", { + staticClass: "text-muted", + attrs: { + to: { + name: "threads.show", + params: { id: _vm.notification.data.thread_id } + } + }, + domProps: { innerHTML: _vm._s(_vm.notification.data.content) } + }) + ], + 1 + ) + ], + 2 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/new-follower.vue?vue&type=template&id=3711ee69&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/new-follower.vue?vue&type=template&id=3711ee69& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "notification", + { attrs: { notification: _vm.notification } }, + [_c("template", { slot: "title" }, [_vm._v("关注了你")])], + 2 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/notification.vue?vue&type=template&id=88f5ecae&scoped=true&": +/*!***********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/notification.vue?vue&type=template&id=88f5ecae&scoped=true& ***! + \***********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "notification-item" }, [ + _c( + "div", + { staticClass: "heading d-flex align-items-center flex-wrap" }, + [ + _c( + "router-link", + { + staticClass: "mr-1", + attrs: { + to: { + name: "users.show", + params: { username: _vm.notification.data.username } + } + } + }, + [ + _c("img", { + staticClass: "rounded-circle mr-1", + attrs: { width: "30", src: _vm.notification.data.avatar } + }), + _vm._v("\n " + _vm._s(_vm.notification.data.name) + "\n ") + ] + ), + _vm._v(" "), + _c( + "div", + { staticClass: "d-inline" }, + [_vm._t("title", [_vm._v("评论了你的文章")])], + 2 + ), + _vm._v(" "), + _c("small", { staticClass: "date text-muted ml-lg-auto text-mini" }, [ + _vm._v(_vm._s(_vm.notification.created_at)) + ]) + ], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "notification-body text-muted" }, + [_vm._t("default")], + 2 + ) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=template&id=0f95d3d6&": +/*!*******************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=template&id=0f95d3d6& ***! + \*******************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "notification", + { attrs: { notification: _vm.notification } }, + [ + _c( + "template", + { slot: "title" }, + [ + _vm._v("\n 订阅了你的文章\n "), + _c( + "router-link", + { + attrs: { + to: { + name: "threads.show", + params: { id: _vm.notification.data.thread_id } + } + } + }, + [ + _vm._v( + "\n 《" + + _vm._s(_vm.notification.data.thread_title) + + "》\n " + ) + ] + ) + ], + 1 + ) + ], + 2 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/welcome.vue?vue&type=template&id=0ef46194&": +/*!******************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/welcome.vue?vue&type=template&id=0ef46194& ***! + \******************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "notification", + { attrs: { notification: _vm.notification } }, + [_c("template", { slot: "title" }, [_vm._v("欢迎加入一刻!")])], + 2 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/empty-state.vue": +/*!****************************************!*\ + !*** ./src/components/empty-state.vue ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./empty-state.vue?vue&type=template&id=772b85b1& */ "./src/components/empty-state.vue?vue&type=template&id=772b85b1&"); +/* harmony import */ var _empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./empty-state.vue?vue&type=script&lang=js& */ "./src/components/empty-state.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["render"], + _empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/empty-state.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/empty-state.vue?vue&type=script&lang=js&": +/*!*****************************************************************!*\ + !*** ./src/components/empty-state.vue?vue&type=script&lang=js& ***! + \*****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./empty-state.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/empty-state.vue?vue&type=template&id=772b85b1&": +/*!***********************************************************************!*\ + !*** ./src/components/empty-state.vue?vue&type=template&id=772b85b1& ***! + \***********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./empty-state.vue?vue&type=template&id=772b85b1& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=template&id=772b85b1&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/notifications/show.vue": +/*!********************************************!*\ + !*** ./src/modules/notifications/show.vue ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _show_vue_vue_type_template_id_9c473836___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./show.vue?vue&type=template&id=9c473836& */ "./src/modules/notifications/show.vue?vue&type=template&id=9c473836&"); +/* harmony import */ var _show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./show.vue?vue&type=script&lang=js& */ "./src/modules/notifications/show.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _show_vue_vue_type_template_id_9c473836___WEBPACK_IMPORTED_MODULE_0__["render"], + _show_vue_vue_type_template_id_9c473836___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/notifications/show.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/notifications/show.vue?vue&type=script&lang=js&": +/*!*********************************************************************!*\ + !*** ./src/modules/notifications/show.vue?vue&type=script&lang=js& ***! + \*********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/show.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/notifications/show.vue?vue&type=template&id=9c473836&": +/*!***************************************************************************!*\ + !*** ./src/modules/notifications/show.vue?vue&type=template&id=9c473836& ***! + \***************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_9c473836___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=template&id=9c473836& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/show.vue?vue&type=template&id=9c473836&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_9c473836___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_9c473836___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/notifications/types/comment-my-thread.vue": +/*!***************************************************************!*\ + !*** ./src/modules/notifications/types/comment-my-thread.vue ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _comment_my_thread_vue_vue_type_template_id_36016f8f___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./comment-my-thread.vue?vue&type=template&id=36016f8f& */ "./src/modules/notifications/types/comment-my-thread.vue?vue&type=template&id=36016f8f&"); +/* harmony import */ var _comment_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./comment-my-thread.vue?vue&type=script&lang=js& */ "./src/modules/notifications/types/comment-my-thread.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _comment_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _comment_my_thread_vue_vue_type_template_id_36016f8f___WEBPACK_IMPORTED_MODULE_0__["render"], + _comment_my_thread_vue_vue_type_template_id_36016f8f___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/notifications/types/comment-my-thread.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/notifications/types/comment-my-thread.vue?vue&type=script&lang=js&": +/*!****************************************************************************************!*\ + !*** ./src/modules/notifications/types/comment-my-thread.vue?vue&type=script&lang=js& ***! + \****************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_comment_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./comment-my-thread.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/comment-my-thread.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_comment_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/notifications/types/comment-my-thread.vue?vue&type=template&id=36016f8f&": +/*!**********************************************************************************************!*\ + !*** ./src/modules/notifications/types/comment-my-thread.vue?vue&type=template&id=36016f8f& ***! + \**********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_comment_my_thread_vue_vue_type_template_id_36016f8f___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./comment-my-thread.vue?vue&type=template&id=36016f8f& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/comment-my-thread.vue?vue&type=template&id=36016f8f&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_comment_my_thread_vue_vue_type_template_id_36016f8f___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_comment_my_thread_vue_vue_type_template_id_36016f8f___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/notifications/types/liked-my-thread.vue": +/*!*************************************************************!*\ + !*** ./src/modules/notifications/types/liked-my-thread.vue ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _liked_my_thread_vue_vue_type_template_id_a066ba46___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./liked-my-thread.vue?vue&type=template&id=a066ba46& */ "./src/modules/notifications/types/liked-my-thread.vue?vue&type=template&id=a066ba46&"); +/* harmony import */ var _liked_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./liked-my-thread.vue?vue&type=script&lang=js& */ "./src/modules/notifications/types/liked-my-thread.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _liked_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _liked_my_thread_vue_vue_type_template_id_a066ba46___WEBPACK_IMPORTED_MODULE_0__["render"], + _liked_my_thread_vue_vue_type_template_id_a066ba46___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/notifications/types/liked-my-thread.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/notifications/types/liked-my-thread.vue?vue&type=script&lang=js&": +/*!**************************************************************************************!*\ + !*** ./src/modules/notifications/types/liked-my-thread.vue?vue&type=script&lang=js& ***! + \**************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_liked_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./liked-my-thread.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/liked-my-thread.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_liked_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/notifications/types/liked-my-thread.vue?vue&type=template&id=a066ba46&": +/*!********************************************************************************************!*\ + !*** ./src/modules/notifications/types/liked-my-thread.vue?vue&type=template&id=a066ba46& ***! + \********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_liked_my_thread_vue_vue_type_template_id_a066ba46___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./liked-my-thread.vue?vue&type=template&id=a066ba46& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/liked-my-thread.vue?vue&type=template&id=a066ba46&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_liked_my_thread_vue_vue_type_template_id_a066ba46___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_liked_my_thread_vue_vue_type_template_id_a066ba46___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/notifications/types/mentioned-me.vue": +/*!**********************************************************!*\ + !*** ./src/modules/notifications/types/mentioned-me.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _mentioned_me_vue_vue_type_template_id_6eedd3cc___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mentioned-me.vue?vue&type=template&id=6eedd3cc& */ "./src/modules/notifications/types/mentioned-me.vue?vue&type=template&id=6eedd3cc&"); +/* harmony import */ var _mentioned_me_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mentioned-me.vue?vue&type=script&lang=js& */ "./src/modules/notifications/types/mentioned-me.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _mentioned_me_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _mentioned_me_vue_vue_type_template_id_6eedd3cc___WEBPACK_IMPORTED_MODULE_0__["render"], + _mentioned_me_vue_vue_type_template_id_6eedd3cc___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/notifications/types/mentioned-me.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/notifications/types/mentioned-me.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./src/modules/notifications/types/mentioned-me.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_mentioned_me_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./mentioned-me.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/mentioned-me.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_mentioned_me_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/notifications/types/mentioned-me.vue?vue&type=template&id=6eedd3cc&": +/*!*****************************************************************************************!*\ + !*** ./src/modules/notifications/types/mentioned-me.vue?vue&type=template&id=6eedd3cc& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_mentioned_me_vue_vue_type_template_id_6eedd3cc___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./mentioned-me.vue?vue&type=template&id=6eedd3cc& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/mentioned-me.vue?vue&type=template&id=6eedd3cc&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_mentioned_me_vue_vue_type_template_id_6eedd3cc___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_mentioned_me_vue_vue_type_template_id_6eedd3cc___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/notifications/types/new-follower.vue": +/*!**********************************************************!*\ + !*** ./src/modules/notifications/types/new-follower.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _new_follower_vue_vue_type_template_id_3711ee69___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./new-follower.vue?vue&type=template&id=3711ee69& */ "./src/modules/notifications/types/new-follower.vue?vue&type=template&id=3711ee69&"); +/* harmony import */ var _new_follower_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./new-follower.vue?vue&type=script&lang=js& */ "./src/modules/notifications/types/new-follower.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _new_follower_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _new_follower_vue_vue_type_template_id_3711ee69___WEBPACK_IMPORTED_MODULE_0__["render"], + _new_follower_vue_vue_type_template_id_3711ee69___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/notifications/types/new-follower.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/notifications/types/new-follower.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./src/modules/notifications/types/new-follower.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_new_follower_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./new-follower.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/new-follower.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_new_follower_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/notifications/types/new-follower.vue?vue&type=template&id=3711ee69&": +/*!*****************************************************************************************!*\ + !*** ./src/modules/notifications/types/new-follower.vue?vue&type=template&id=3711ee69& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_new_follower_vue_vue_type_template_id_3711ee69___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./new-follower.vue?vue&type=template&id=3711ee69& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/new-follower.vue?vue&type=template&id=3711ee69&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_new_follower_vue_vue_type_template_id_3711ee69___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_new_follower_vue_vue_type_template_id_3711ee69___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/notifications/types/notification.vue": +/*!**********************************************************!*\ + !*** ./src/modules/notifications/types/notification.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _notification_vue_vue_type_template_id_88f5ecae_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./notification.vue?vue&type=template&id=88f5ecae&scoped=true& */ "./src/modules/notifications/types/notification.vue?vue&type=template&id=88f5ecae&scoped=true&"); +/* harmony import */ var _notification_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./notification.vue?vue&type=script&lang=js& */ "./src/modules/notifications/types/notification.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _notification_vue_vue_type_style_index_0_id_88f5ecae_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true& */ "./src/modules/notifications/types/notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _notification_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _notification_vue_vue_type_template_id_88f5ecae_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"], + _notification_vue_vue_type_template_id_88f5ecae_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + "88f5ecae", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/notifications/types/notification.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/notifications/types/notification.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./src/modules/notifications/types/notification.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./notification.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/notification.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/notifications/types/notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true&": +/*!********************************************************************************************************************!*\ + !*** ./src/modules/notifications/types/notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true& ***! + \********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_style_index_0_id_88f5ecae_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../../../node_modules/style-loader!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--7-3!../../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../../node_modules/vue-loader/lib??vue-loader-options!./notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_style_index_0_id_88f5ecae_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_style_index_0_id_88f5ecae_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_style_index_0_id_88f5ecae_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_style_index_0_id_88f5ecae_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_style_index_0_id_88f5ecae_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/modules/notifications/types/notification.vue?vue&type=template&id=88f5ecae&scoped=true&": +/*!*****************************************************************************************************!*\ + !*** ./src/modules/notifications/types/notification.vue?vue&type=template&id=88f5ecae&scoped=true& ***! + \*****************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_template_id_88f5ecae_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./notification.vue?vue&type=template&id=88f5ecae&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/notification.vue?vue&type=template&id=88f5ecae&scoped=true&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_template_id_88f5ecae_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_template_id_88f5ecae_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/notifications/types/subscribed-my-thread.vue": +/*!******************************************************************!*\ + !*** ./src/modules/notifications/types/subscribed-my-thread.vue ***! + \******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _subscribed_my_thread_vue_vue_type_template_id_0f95d3d6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./subscribed-my-thread.vue?vue&type=template&id=0f95d3d6& */ "./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=template&id=0f95d3d6&"); +/* harmony import */ var _subscribed_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./subscribed-my-thread.vue?vue&type=script&lang=js& */ "./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _subscribed_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _subscribed_my_thread_vue_vue_type_template_id_0f95d3d6___WEBPACK_IMPORTED_MODULE_0__["render"], + _subscribed_my_thread_vue_vue_type_template_id_0f95d3d6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/notifications/types/subscribed-my-thread.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************!*\ + !*** ./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribed_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./subscribed-my-thread.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribed_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=template&id=0f95d3d6&": +/*!*************************************************************************************************!*\ + !*** ./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=template&id=0f95d3d6& ***! + \*************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribed_my_thread_vue_vue_type_template_id_0f95d3d6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./subscribed-my-thread.vue?vue&type=template&id=0f95d3d6& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=template&id=0f95d3d6&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribed_my_thread_vue_vue_type_template_id_0f95d3d6___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribed_my_thread_vue_vue_type_template_id_0f95d3d6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/notifications/types/welcome.vue": +/*!*****************************************************!*\ + !*** ./src/modules/notifications/types/welcome.vue ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _welcome_vue_vue_type_template_id_0ef46194___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./welcome.vue?vue&type=template&id=0ef46194& */ "./src/modules/notifications/types/welcome.vue?vue&type=template&id=0ef46194&"); +/* harmony import */ var _welcome_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./welcome.vue?vue&type=script&lang=js& */ "./src/modules/notifications/types/welcome.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _welcome_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _welcome_vue_vue_type_template_id_0ef46194___WEBPACK_IMPORTED_MODULE_0__["render"], + _welcome_vue_vue_type_template_id_0ef46194___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/notifications/types/welcome.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/notifications/types/welcome.vue?vue&type=script&lang=js&": +/*!******************************************************************************!*\ + !*** ./src/modules/notifications/types/welcome.vue?vue&type=script&lang=js& ***! + \******************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_welcome_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./welcome.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/welcome.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_welcome_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/notifications/types/welcome.vue?vue&type=template&id=0ef46194&": +/*!************************************************************************************!*\ + !*** ./src/modules/notifications/types/welcome.vue?vue&type=template&id=0ef46194& ***! + \************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_welcome_vue_vue_type_template_id_0ef46194___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./welcome.vue?vue&type=template&id=0ef46194& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/welcome.vue?vue&type=template&id=0ef46194&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_welcome_vue_vue_type_template_id_0ef46194___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_welcome_vue_vue_type_template_id_0ef46194___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/19.43fecf1df635cbbb1bfb.js b/public/19.43fecf1df635cbbb1bfb.js new file mode 100644 index 00000000..f3fc2e64 --- /dev/null +++ b/public/19.43fecf1df635cbbb1bfb.js @@ -0,0 +1,1784 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[19],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/banner.vue?vue&type=script&lang=js&": +/*!********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/banner.vue?vue&type=script&lang=js& ***! + \********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_ArrowLeft__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/ArrowLeft */ "./node_modules/vue-material-design-icons/ArrowLeft.vue"); +/* harmony import */ var $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/ArrowRight */ "./node_modules/vue-material-design-icons/ArrowRight.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'Banner', + components: { + ArrowLeft: $icons_ArrowLeft__WEBPACK_IMPORTED_MODULE_0__["default"], + ArrowRight: $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__["default"] + }, + props: { + name: { + type: String, + required: true + } + }, + computed: { + id: function id() { + return 'banner-' + this.name; + }, + idSelector: function idSelector() { + return '#' + this.id; + } + }, + data: function data() { + return { + banner: null + }; + }, + methods: { + loadBanner: function loadBanner() { + var _this = this; + + this.$http.get('banners/' + this.name).then(function (banner) { + _this.banner = banner; + }).catch(function (err) {}); + } + }, + mounted: function mounted() { + this.loadBanner(); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/guest-login-guide.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/guest-login-guide.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _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; } + +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'guest-login-guide', + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_0__["mapGetters"])(['isLogged'])) +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/hot-tags.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'HotTags', + data: function data() { + return { + nodes: [] + }; + }, + methods: { + loadNodes: function loadNodes() { + var _this = this; + + this.$http.get('nodes?hot=5&per_page=5').then(function (nodes) { + return _this.nodes = nodes.data; + }); + } + }, + created: function created() { + this.loadNodes(); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/new-users.vue?vue&type=script&lang=js&": +/*!***********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/new-users.vue?vue&type=script&lang=js& ***! + \***********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_user_media__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/user-media */ "./src/components/user-media.vue"); +/* harmony import */ var $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/ArrowRight */ "./node_modules/vue-material-design-icons/ArrowRight.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'NewUsers', + components: { + UserMedia: $components_user_media__WEBPACK_IMPORTED_MODULE_0__["default"], + ArrowRight: $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__["default"] + }, + data: function data() { + return { + users: [] + }; + }, + methods: { + loadUsers: function loadUsers() { + var _this = this; + + this.$http.get('users?latest=1&limit=12').then(function (users) { + return _this.users = users.data; + }); + } + }, + mounted: function mounted() { + this.loadUsers(); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/quick-docs.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/quick-docs.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_FileDocumentBoxOutline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/FileDocumentBoxOutline */ "./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'quick-docs', + components: { + DocsIcon: $icons_FileDocumentBoxOutline__WEBPACK_IMPORTED_MODULE_0__["default"] + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-ranking.vue?vue&type=script&lang=js&": +/*!**************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-ranking.vue?vue&type=script&lang=js& ***! + \**************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_user_media__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/user-media */ "./src/components/user-media.vue"); +/* harmony import */ var $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/ArrowRight */ "./node_modules/vue-material-design-icons/ArrowRight.vue"); +/* harmony import */ var $icons_Check__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/Check */ "./node_modules/vue-material-design-icons/Check.vue"); +/* harmony import */ var $icons_Plus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/Plus */ "./node_modules/vue-material-design-icons/Plus.vue"); +/* harmony import */ var $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! $components/buttons/follow-btn */ "./src/components/buttons/follow-btn.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'NewUsers', + components: { + FollowBtn: $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_4__["default"], + UserMedia: $components_user_media__WEBPACK_IMPORTED_MODULE_0__["default"], + ArrowRightIcon: $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__["default"], + CheckIcon: $icons_Check__WEBPACK_IMPORTED_MODULE_2__["default"], + PlusIcon: $icons_Plus__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + data: function data() { + return { + users: [] + }; + }, + methods: { + loadUsers: function loadUsers() { + var _this = this; + + this.$http.get('users?limit=10').then(function (users) { + return _this.users = users.data; + }); + } + }, + mounted: function mounted() { + this.loadUsers(); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/home/home.vue?vue&type=script&lang=js&": +/*!********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/home/home.vue?vue&type=script&lang=js& ***! + \********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_banner__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/banner */ "./src/components/banner.vue"); +/* harmony import */ var $components_hot_tags__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $components/hot-tags */ "./src/components/hot-tags.vue"); +/* harmony import */ var $components_user_ranking__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $components/user-ranking */ "./src/components/user-ranking.vue"); +/* harmony import */ var $components_new_users__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $components/new-users */ "./src/components/new-users.vue"); +/* harmony import */ var $components_quick_docs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! $components/quick-docs */ "./src/components/quick-docs.vue"); +/* harmony import */ var $components_threads_list__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! $components/threads-list */ "./src/components/threads-list.vue"); +/* harmony import */ var $components_guest_login_guide__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! $components/guest-login-guide */ "./src/components/guest-login-guide.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + data: function data() { + return { + threads: { + default: {}, + featured: {}, + zeroComment: {}, + recent: {} + }, + currentThreadsTab: 'default' + }; + }, + components: { + Banner: $components_banner__WEBPACK_IMPORTED_MODULE_0__["default"], + QuickDocs: $components_quick_docs__WEBPACK_IMPORTED_MODULE_4__["default"], + HotTags: $components_hot_tags__WEBPACK_IMPORTED_MODULE_1__["default"], + UserRanking: $components_user_ranking__WEBPACK_IMPORTED_MODULE_2__["default"], + NewUsers: $components_new_users__WEBPACK_IMPORTED_MODULE_3__["default"], + ThreadsList: $components_threads_list__WEBPACK_IMPORTED_MODULE_5__["default"], + GuestLoginGuide: $components_guest_login_guide__WEBPACK_IMPORTED_MODULE_6__["default"] + }, + watch: { + currentThreadsTab: function currentThreadsTab() { + this.loadThreads(1); + } + }, + methods: { + loadThreads: function loadThreads() { + var _this = this; + + var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; + this.$http.get("threads?tab=".concat(this.currentThreadsTab, "&page=").concat(page)).then(function (threads) { + return _this.threads[_this.currentThreadsTab] = threads; + }); + }, + handlePageChanged: function handlePageChanged(page) { + this.loadThreads(page); + } + }, + mounted: function mounted() { + this.loadThreads(); + } +}); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/banner.vue?vue&type=style&index=0&lang=scss&": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/banner.vue?vue&type=style&index=0&lang=scss& ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".carousel-item {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: stretch;\n -ms-flex-pack: stretch;\n justify-content: stretch;\n max-height: 300px;\n border-radius: 2px;\n overflow: hidden;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss&": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss& ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".guest-login-guide[data-v-02aafdc3] {\n background: url(\"/banners/technology.jpg\");\n background-size: 160%;\n background-position: center;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/banner.vue?vue&type=style&index=0&lang=scss&": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/banner.vue?vue&type=style&index=0&lang=scss& ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./banner.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/banner.vue?vue&type=style&index=0&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss&": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss& ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/banner.vue?vue&type=template&id=37aed33c&": +/*!************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/banner.vue?vue&type=template&id=37aed33c& ***! + \************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm.banner + ? _c( + "div", + { + staticClass: "carousel slide", + attrs: { id: _vm.id, "data-ride": "carousel" } + }, + [ + _vm.banner.banners.length > 1 + ? _c( + "ol", + { staticClass: "carousel-indicators" }, + _vm._l(_vm.banner.banners.length, function(i) { + return _c("li", { + key: i, + staticClass: "active", + attrs: { + "data-target": _vm.idSelector, + "data-slide-to": i - 1 + } + }) + }), + 0 + ) + : _vm._e(), + _vm._v(" "), + _c( + "div", + { staticClass: "carousel-inner" }, + _vm._l(_vm.banner.banners, function(item) { + return _c( + "div", + { key: item.id, staticClass: "carousel-item active" }, + [ + _c("a", { attrs: { href: item.url || "javascript:;" } }, [ + _c("img", { + staticClass: "d-block w-100", + attrs: { src: item.image_url, alt: "First slide" } + }), + _vm._v(" "), + item.title || item.description + ? _c("div", { staticClass: "carousel-caption" }, [ + item.title + ? _c("h1", [_vm._v(_vm._s(item.title))]) + : _vm._e(), + _vm._v(" "), + item.description + ? _c("p", [_vm._v(_vm._s(item.description))]) + : _vm._e() + ]) + : _vm._e() + ]) + ] + ) + }), + 0 + ), + _vm._v(" "), + _vm.banner.banners.length > 1 + ? _c( + "a", + { + staticClass: "carousel-control-prev", + attrs: { + href: _vm.idSelector, + role: "button", + "data-slide": "prev" + } + }, + [ + _c( + "span", + { + staticClass: "carousel-control-prev-icon", + attrs: { "aria-hidden": "true" } + }, + [_c("arrow-left")], + 1 + ), + _vm._v(" "), + _c("span", { staticClass: "sr-only" }, [_vm._v("Previous")]) + ] + ) + : _vm._e(), + _vm._v(" "), + _vm.banner.banners.length > 1 + ? _c( + "a", + { + staticClass: "carousel-control-next", + attrs: { + href: _vm.idSelector, + role: "button", + "data-slide": "next" + } + }, + [ + _c( + "span", + { + staticClass: "carousel-control-next-icon", + attrs: { "aria-hidden": "true" } + }, + [_c("arrow-right")], + 1 + ), + _vm._v(" "), + _c("span", { staticClass: "sr-only" }, [_vm._v("Next")]) + ] + ) + : _vm._e() + ] + ) + : _vm._e() +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/guest-login-guide.vue?vue&type=template&id=02aafdc3&scoped=true&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/guest-login-guide.vue?vue&type=template&id=02aafdc3&scoped=true& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return !_vm.isLogged + ? _c( + "div", + { staticClass: "box guest-login-guide text-center" }, + [ + _vm._m(0), + _vm._v(" "), + _c( + "router-link", + { + staticClass: "btn btn-block btn-primary", + attrs: { to: { name: "auth.register" } } + }, + [_vm._v("注册")] + ), + _vm._v(" "), + _c( + "router-link", + { + staticClass: "btn btn-block btn-outline-primary", + attrs: { to: { name: "auth.login" } } + }, + [_vm._v("登录")] + ) + ], + 1 + ) + : _vm._e() +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "text-18 p-2" }, [ + _vm._v("加入一刻"), + _c("br"), + _vm._v("做专业的微信开发者") + ]) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=template&id=622cc129&": +/*!**************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/hot-tags.vue?vue&type=template&id=622cc129& ***! + \**************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box text-gray-50" }, [ + _vm._m(0), + _vm._v(" "), + _c( + "ul", + { staticClass: "plan-list text-13" }, + [ + _vm._l(_vm.nodes, function(node) { + return [ + _c( + "router-link", + { + key: node.id, + staticClass: "py-1 cursor-pointer", + attrs: { + tag: "li", + to: { name: "nodes.node", params: { id: node.id } } + } + }, + [ + _vm._v("\n #" + _vm._s(node.title) + " "), + _c("span", { staticClass: "float-right" }, [ + _vm._v(_vm._s(node.cache ? node.cache.threads_count : 0)) + ]) + ] + ) + ] + }) + ], + 2 + ) + ]) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box-heading" }, [ + _c("div", { staticClass: "text-13" }, [_vm._v("热门话题")]) + ]) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/new-users.vue?vue&type=template&id=667f163b&": +/*!***************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/new-users.vue?vue&type=template&id=667f163b& ***! + \***************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box box-flush text-gray-50" }, [ + _vm._m(0), + _vm._v(" "), + _c( + "ul", + { staticClass: "plan-list px-2 pb-2" }, + _vm._l(_vm.users, function(item) { + return _c("user-media", { + key: item.id, + attrs: { type: "vertical w25", user: item } + }) + }), + 1 + ) + ]) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box-body" }, [ + _c( + "div", + { staticClass: "d-flex align-items-center justify-content-between" }, + [_c("div", { staticClass: "text-13" }, [_vm._v("最新用户")])] + ) + ]) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/quick-docs.vue?vue&type=template&id=802cdaaa&": +/*!****************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/quick-docs.vue?vue&type=template&id=802cdaaa& ***! + \****************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box text-gray-50" }, [ + _vm._m(0), + _vm._v(" "), + _c("ul", [ + _c( + "li", + { staticClass: "py-1" }, + [ + _c("docs-icon", { staticClass: "mr-1" }), + _vm._v(" "), + _c( + "a", + { + staticClass: "text-gray-50", + attrs: { + href: + "https://developers.weixin.qq.com/miniprogram/dev/framework/", + target: "_blank" + } + }, + [_vm._v("小程序开发文档")] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "li", + { staticClass: "py-1" }, + [ + _c("docs-icon", { staticClass: "mr-1" }), + _vm._v(" "), + _c( + "a", + { + staticClass: "text-gray-50", + attrs: { + href: + "https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview", + target: "_blank" + } + }, + [_vm._v("公众平台官方文档")] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "li", + { staticClass: "py-1" }, + [ + _c("docs-icon", { staticClass: "mr-1" }), + _vm._v(" "), + _c( + "a", + { + staticClass: "text-gray-50", + attrs: { + href: + "https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Resource_Center_Homepage", + target: "_blank" + } + }, + [_vm._v("微信开放平台文档")] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "li", + { staticClass: "py-1" }, + [ + _c("docs-icon", { staticClass: "mr-1" }), + _vm._v(" "), + _c( + "a", + { + staticClass: "text-gray-50", + attrs: { + href: "https://work.weixin.qq.com/api/doc", + target: "_blank" + } + }, + [_vm._v("企业微信官方文档")] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "li", + { staticClass: "py-1" }, + [ + _c("docs-icon", { staticClass: "mr-1" }), + _vm._v(" "), + _c( + "a", + { + staticClass: "text-gray-50", + attrs: { + href: "https://www.easywechat.com/docs", + target: "_blank" + } + }, + [_vm._v("EasyWeChat SDK 4.0 文档")] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "li", + { staticClass: "py-1" }, + [ + _c("docs-icon", { staticClass: "mr-1" }), + _vm._v(" "), + _c( + "a", + { + staticClass: "text-gray-50", + attrs: { + href: "https://www.easywechat.com/docs/3.x", + target: "_blank" + } + }, + [_vm._v("EasyWeChat SDK 3.x 文档")] + ) + ], + 1 + ) + ]) + ]) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { + staticClass: + "box-heading d-flex align-items-center justify-content-between" + }, + [_c("div", { staticClass: "text-13" }, [_vm._v("快速文档入口")])] + ) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-ranking.vue?vue&type=template&id=1e61b644&": +/*!******************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-ranking.vue?vue&type=template&id=1e61b644& ***! + \******************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box text-gray-50" }, [ + _vm._m(0), + _vm._v(" "), + _c( + "ul", + { staticClass: "plan-list" }, + _vm._l(_vm.users, function(item) { + return _c( + "user-media", + { + key: item.id, + staticClass: "mb-2 d-flex align-items-center", + attrs: { user: item } + }, + [ + _c( + "template", + { slot: "appends" }, + [ + _c("follow-btn", { + staticClass: "ml-auto", + attrs: { item: item, simple: "" } + }) + ], + 1 + ), + _vm._v(" "), + _c("template", { slot: "description" }, [ + _c("div", { staticClass: "text-gray-70 text-12" }, [ + _vm._v(_vm._s(item.created_at_timeago)) + ]) + ]) + ], + 2 + ) + }), + 1 + ) + ]) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { + staticClass: + "box-heading d-flex align-items-center justify-content-between" + }, + [_c("div", { staticClass: "text-13" }, [_vm._v("活跃用户")])] + ) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/home/home.vue?vue&type=template&id=4256fd7e&": +/*!************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/home/home.vue?vue&type=template&id=4256fd7e& ***! + \************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "page-home" }, [ + _c("div", { staticClass: "row mt-3" }, [ + _c("div", { staticClass: "col-md-9" }, [ + _c( + "div", + { staticClass: "box box-flush" }, + [ + _c("div", { staticClass: "box-body" }, [ + _c("ul", { staticClass: "nav nav-pills" }, [ + _c("li", { staticClass: "nav-item" }, [ + _c( + "a", + { + staticClass: "nav-link", + class: { active: _vm.currentThreadsTab == "default" }, + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + _vm.currentThreadsTab = "default" + } + } + }, + [_vm._v("活跃")] + ) + ]), + _vm._v(" "), + _c("li", { staticClass: "nav-item" }, [ + _c( + "a", + { + staticClass: "nav-link", + class: { active: _vm.currentThreadsTab == "featured" }, + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + _vm.currentThreadsTab = "featured" + } + } + }, + [_vm._v("精选")] + ) + ]), + _vm._v(" "), + _c("li", { staticClass: "nav-item" }, [ + _c( + "a", + { + staticClass: "nav-link", + class: { active: _vm.currentThreadsTab == "zeroComment" }, + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + _vm.currentThreadsTab = "zeroComment" + } + } + }, + [_vm._v("零回复")] + ) + ]), + _vm._v(" "), + _c("li", { staticClass: "nav-item" }, [ + _c( + "a", + { + staticClass: "nav-link", + class: { active: _vm.currentThreadsTab == "recent" }, + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + _vm.currentThreadsTab = "recent" + } + } + }, + [_vm._v("最新发布")] + ) + ]) + ]) + ]), + _vm._v(" "), + _c("threads-list", { + attrs: { threads: _vm.threads[_vm.currentThreadsTab] }, + on: { "page-changed": _vm.handlePageChanged } + }) + ], + 1 + ) + ]), + _vm._v(" "), + _c( + "div", + { staticClass: "col-md-3" }, + [ + _c("guest-login-guide", { staticClass: "mb-2" }), + _vm._v(" "), + _c("quick-docs", { staticClass: "mb-2" }), + _vm._v(" "), + _c("hot-tags"), + _vm._v(" "), + _c("user-ranking", { staticClass: "mt-2" }), + _vm._v(" "), + _c("new-users", { staticClass: "mt-2" }) + ], + 1 + ) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/banner.vue": +/*!***********************************!*\ + !*** ./src/components/banner.vue ***! + \***********************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _banner_vue_vue_type_template_id_37aed33c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./banner.vue?vue&type=template&id=37aed33c& */ "./src/components/banner.vue?vue&type=template&id=37aed33c&"); +/* harmony import */ var _banner_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./banner.vue?vue&type=script&lang=js& */ "./src/components/banner.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _banner_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./banner.vue?vue&type=style&index=0&lang=scss& */ "./src/components/banner.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _banner_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _banner_vue_vue_type_template_id_37aed33c___WEBPACK_IMPORTED_MODULE_0__["render"], + _banner_vue_vue_type_template_id_37aed33c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/banner.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/banner.vue?vue&type=script&lang=js&": +/*!************************************************************!*\ + !*** ./src/components/banner.vue?vue&type=script&lang=js& ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./banner.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/banner.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/banner.vue?vue&type=style&index=0&lang=scss&": +/*!*********************************************************************!*\ + !*** ./src/components/banner.vue?vue&type=style&index=0&lang=scss& ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../node_modules/style-loader!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./banner.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/banner.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/components/banner.vue?vue&type=template&id=37aed33c&": +/*!******************************************************************!*\ + !*** ./src/components/banner.vue?vue&type=template&id=37aed33c& ***! + \******************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_template_id_37aed33c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./banner.vue?vue&type=template&id=37aed33c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/banner.vue?vue&type=template&id=37aed33c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_template_id_37aed33c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_template_id_37aed33c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/guest-login-guide.vue": +/*!**********************************************!*\ + !*** ./src/components/guest-login-guide.vue ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _guest_login_guide_vue_vue_type_template_id_02aafdc3_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./guest-login-guide.vue?vue&type=template&id=02aafdc3&scoped=true& */ "./src/components/guest-login-guide.vue?vue&type=template&id=02aafdc3&scoped=true&"); +/* harmony import */ var _guest_login_guide_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./guest-login-guide.vue?vue&type=script&lang=js& */ "./src/components/guest-login-guide.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _guest_login_guide_vue_vue_type_style_index_0_id_02aafdc3_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss& */ "./src/components/guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _guest_login_guide_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _guest_login_guide_vue_vue_type_template_id_02aafdc3_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"], + _guest_login_guide_vue_vue_type_template_id_02aafdc3_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + "02aafdc3", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/guest-login-guide.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/guest-login-guide.vue?vue&type=script&lang=js&": +/*!***********************************************************************!*\ + !*** ./src/components/guest-login-guide.vue?vue&type=script&lang=js& ***! + \***********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./guest-login-guide.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/guest-login-guide.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss&": +/*!********************************************************************************************************!*\ + !*** ./src/components/guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss& ***! + \********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_style_index_0_id_02aafdc3_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../node_modules/style-loader!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_style_index_0_id_02aafdc3_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_style_index_0_id_02aafdc3_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_style_index_0_id_02aafdc3_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_style_index_0_id_02aafdc3_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_style_index_0_id_02aafdc3_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/components/guest-login-guide.vue?vue&type=template&id=02aafdc3&scoped=true&": +/*!*****************************************************************************************!*\ + !*** ./src/components/guest-login-guide.vue?vue&type=template&id=02aafdc3&scoped=true& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_template_id_02aafdc3_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./guest-login-guide.vue?vue&type=template&id=02aafdc3&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/guest-login-guide.vue?vue&type=template&id=02aafdc3&scoped=true&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_template_id_02aafdc3_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_template_id_02aafdc3_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/hot-tags.vue": +/*!*************************************!*\ + !*** ./src/components/hot-tags.vue ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hot-tags.vue?vue&type=template&id=622cc129& */ "./src/components/hot-tags.vue?vue&type=template&id=622cc129&"); +/* harmony import */ var _hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hot-tags.vue?vue&type=script&lang=js& */ "./src/components/hot-tags.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["render"], + _hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/hot-tags.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/hot-tags.vue?vue&type=script&lang=js&": +/*!**************************************************************!*\ + !*** ./src/components/hot-tags.vue?vue&type=script&lang=js& ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./hot-tags.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/hot-tags.vue?vue&type=template&id=622cc129&": +/*!********************************************************************!*\ + !*** ./src/components/hot-tags.vue?vue&type=template&id=622cc129& ***! + \********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./hot-tags.vue?vue&type=template&id=622cc129& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=template&id=622cc129&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/new-users.vue": +/*!**************************************!*\ + !*** ./src/components/new-users.vue ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./new-users.vue?vue&type=template&id=667f163b& */ "./src/components/new-users.vue?vue&type=template&id=667f163b&"); +/* harmony import */ var _new_users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./new-users.vue?vue&type=script&lang=js& */ "./src/components/new-users.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _new_users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__["render"], + _new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/new-users.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/new-users.vue?vue&type=script&lang=js&": +/*!***************************************************************!*\ + !*** ./src/components/new-users.vue?vue&type=script&lang=js& ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_new_users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./new-users.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/new-users.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_new_users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/new-users.vue?vue&type=template&id=667f163b&": +/*!*********************************************************************!*\ + !*** ./src/components/new-users.vue?vue&type=template&id=667f163b& ***! + \*********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./new-users.vue?vue&type=template&id=667f163b& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/new-users.vue?vue&type=template&id=667f163b&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/quick-docs.vue": +/*!***************************************!*\ + !*** ./src/components/quick-docs.vue ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _quick_docs_vue_vue_type_template_id_802cdaaa___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quick-docs.vue?vue&type=template&id=802cdaaa& */ "./src/components/quick-docs.vue?vue&type=template&id=802cdaaa&"); +/* harmony import */ var _quick_docs_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./quick-docs.vue?vue&type=script&lang=js& */ "./src/components/quick-docs.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _quick_docs_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _quick_docs_vue_vue_type_template_id_802cdaaa___WEBPACK_IMPORTED_MODULE_0__["render"], + _quick_docs_vue_vue_type_template_id_802cdaaa___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/quick-docs.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/quick-docs.vue?vue&type=script&lang=js&": +/*!****************************************************************!*\ + !*** ./src/components/quick-docs.vue?vue&type=script&lang=js& ***! + \****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_quick_docs_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./quick-docs.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/quick-docs.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_quick_docs_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/quick-docs.vue?vue&type=template&id=802cdaaa&": +/*!**********************************************************************!*\ + !*** ./src/components/quick-docs.vue?vue&type=template&id=802cdaaa& ***! + \**********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_quick_docs_vue_vue_type_template_id_802cdaaa___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./quick-docs.vue?vue&type=template&id=802cdaaa& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/quick-docs.vue?vue&type=template&id=802cdaaa&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_quick_docs_vue_vue_type_template_id_802cdaaa___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_quick_docs_vue_vue_type_template_id_802cdaaa___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/user-ranking.vue": +/*!*****************************************!*\ + !*** ./src/components/user-ranking.vue ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user-ranking.vue?vue&type=template&id=1e61b644& */ "./src/components/user-ranking.vue?vue&type=template&id=1e61b644&"); +/* harmony import */ var _user_ranking_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user-ranking.vue?vue&type=script&lang=js& */ "./src/components/user-ranking.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _user_ranking_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__["render"], + _user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/user-ranking.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/user-ranking.vue?vue&type=script&lang=js&": +/*!******************************************************************!*\ + !*** ./src/components/user-ranking.vue?vue&type=script&lang=js& ***! + \******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_ranking_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./user-ranking.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-ranking.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_ranking_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/user-ranking.vue?vue&type=template&id=1e61b644&": +/*!************************************************************************!*\ + !*** ./src/components/user-ranking.vue?vue&type=template&id=1e61b644& ***! + \************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./user-ranking.vue?vue&type=template&id=1e61b644& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-ranking.vue?vue&type=template&id=1e61b644&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/home/home.vue": +/*!***********************************!*\ + !*** ./src/modules/home/home.vue ***! + \***********************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _home_vue_vue_type_template_id_4256fd7e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./home.vue?vue&type=template&id=4256fd7e& */ "./src/modules/home/home.vue?vue&type=template&id=4256fd7e&"); +/* harmony import */ var _home_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./home.vue?vue&type=script&lang=js& */ "./src/modules/home/home.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _home_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _home_vue_vue_type_template_id_4256fd7e___WEBPACK_IMPORTED_MODULE_0__["render"], + _home_vue_vue_type_template_id_4256fd7e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/home/home.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/home/home.vue?vue&type=script&lang=js&": +/*!************************************************************!*\ + !*** ./src/modules/home/home.vue?vue&type=script&lang=js& ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./home.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/home/home.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/home/home.vue?vue&type=template&id=4256fd7e&": +/*!******************************************************************!*\ + !*** ./src/modules/home/home.vue?vue&type=template&id=4256fd7e& ***! + \******************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_4256fd7e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./home.vue?vue&type=template&id=4256fd7e& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/home/home.vue?vue&type=template&id=4256fd7e&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_4256fd7e___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_4256fd7e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/2.2d07d32ec258ea6d7149.js b/public/2.2d07d32ec258ea6d7149.js new file mode 100644 index 00000000..fca569c0 --- /dev/null +++ b/public/2.2d07d32ec258ea6d7149.js @@ -0,0 +1,746 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[2],{ + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Comment.vue?vue&type=script&lang=js&": +/*!***************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Comment.vue?vue&type=script&lang=js& ***! + \***************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "CommentIcon", + props: { + title: { + type: String, + default: "Comment icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js&": +/*!***********************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js& ***! + \***********************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "EyeIcon", + props: { + title: { + type: String, + default: "Eye icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "FormatVerticalAlignTopIcon", + props: { + title: { + type: String, + default: "Format Vertical Align Top icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Medal.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Medal.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "MedalIcon", + props: { + title: { + type: String, + default: "Medal icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Comment.vue?vue&type=template&id=700c253a&": +/*!*************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Comment.vue?vue&type=template&id=700c253a& ***! + \*************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon comment-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M9,22C8.45,22 8,21.55 8,21V18H4C2.9,18 2,17.1 2,16V4C2,2.89 2.9,2 4,2H20C21.1,2 22,2.9 22,4V16C22,17.1 21.1,18 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=6cfe2635&": +/*!*********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=6cfe2635& ***! + \*********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon eye-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M12,9C10.34,9 9,10.34 9,12C9,13.66 10.34,15 12,15C13.66,15 15,13.66 15,12C15,10.34 13.66,9 12,9M12,17C9.24,17 7,14.76 7,12C7,9.24 9.24,7 12,7C14.76,7 17,9.24 17,12C17,14.76 14.76,17 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=template&id=12241e69&": +/*!****************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=template&id=12241e69& ***! + \****************************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon format-vertical-align-top-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { attrs: { d: "M8,11H11V21H13V11H16L12,7L8,11M4,3V5H20V3H4Z" } }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Medal.vue?vue&type=template&id=67e5260a&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Medal.vue?vue&type=template&id=67e5260a& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon medal-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M20,2H4V4L9.81,8.36C6.14,9.57 4.14,13.53 5.35,17.2C6.56,20.87 10.5,22.87 14.19,21.66C17.86,20.45 19.86,16.5 18.65,12.82C17.95,10.71 16.3,9.05 14.19,8.36L20,4V2M14.94,19.5L12,17.78L9.06,19.5L9.84,16.17L7.25,13.93L10.66,13.64L12,10.5L13.34,13.64L16.75,13.93L14.16,16.17L14.94,19.5Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Comment.vue": +/*!************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Comment.vue ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Comment_vue_vue_type_template_id_700c253a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Comment.vue?vue&type=template&id=700c253a& */ "./node_modules/vue-material-design-icons/Comment.vue?vue&type=template&id=700c253a&"); +/* harmony import */ var _Comment_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Comment.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Comment.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Comment_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Comment_vue_vue_type_template_id_700c253a___WEBPACK_IMPORTED_MODULE_0__["render"], + _Comment_vue_vue_type_template_id_700c253a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Comment.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Comment.vue?vue&type=script&lang=js&": +/*!*************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Comment.vue?vue&type=script&lang=js& ***! + \*************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Comment_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Comment.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Comment.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Comment_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Comment.vue?vue&type=template&id=700c253a&": +/*!*******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Comment.vue?vue&type=template&id=700c253a& ***! + \*******************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Comment_vue_vue_type_template_id_700c253a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Comment.vue?vue&type=template&id=700c253a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Comment.vue?vue&type=template&id=700c253a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Comment_vue_vue_type_template_id_700c253a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Comment_vue_vue_type_template_id_700c253a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Eye.vue": +/*!********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Eye.vue ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Eye_vue_vue_type_template_id_6cfe2635___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Eye.vue?vue&type=template&id=6cfe2635& */ "./node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=6cfe2635&"); +/* harmony import */ var _Eye_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Eye.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Eye_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Eye_vue_vue_type_template_id_6cfe2635___WEBPACK_IMPORTED_MODULE_0__["render"], + _Eye_vue_vue_type_template_id_6cfe2635___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Eye.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js&": +/*!*********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js& ***! + \*********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Eye_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Eye.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Eye_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=6cfe2635&": +/*!***************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=6cfe2635& ***! + \***************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Eye_vue_vue_type_template_id_6cfe2635___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Eye.vue?vue&type=template&id=6cfe2635& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=6cfe2635&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Eye_vue_vue_type_template_id_6cfe2635___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Eye_vue_vue_type_template_id_6cfe2635___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue": +/*!***************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue ***! + \***************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _FormatVerticalAlignTop_vue_vue_type_template_id_12241e69___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FormatVerticalAlignTop.vue?vue&type=template&id=12241e69& */ "./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=template&id=12241e69&"); +/* harmony import */ var _FormatVerticalAlignTop_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FormatVerticalAlignTop.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _FormatVerticalAlignTop_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _FormatVerticalAlignTop_vue_vue_type_template_id_12241e69___WEBPACK_IMPORTED_MODULE_0__["render"], + _FormatVerticalAlignTop_vue_vue_type_template_id_12241e69___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=script&lang=js&": +/*!****************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=script&lang=js& ***! + \****************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_FormatVerticalAlignTop_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./FormatVerticalAlignTop.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_FormatVerticalAlignTop_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=template&id=12241e69&": +/*!**********************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=template&id=12241e69& ***! + \**********************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_FormatVerticalAlignTop_vue_vue_type_template_id_12241e69___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./FormatVerticalAlignTop.vue?vue&type=template&id=12241e69& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=template&id=12241e69&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_FormatVerticalAlignTop_vue_vue_type_template_id_12241e69___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_FormatVerticalAlignTop_vue_vue_type_template_id_12241e69___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Medal.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Medal.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Medal_vue_vue_type_template_id_67e5260a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Medal.vue?vue&type=template&id=67e5260a& */ "./node_modules/vue-material-design-icons/Medal.vue?vue&type=template&id=67e5260a&"); +/* harmony import */ var _Medal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Medal.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Medal.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Medal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Medal_vue_vue_type_template_id_67e5260a___WEBPACK_IMPORTED_MODULE_0__["render"], + _Medal_vue_vue_type_template_id_67e5260a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Medal.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Medal.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Medal.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Medal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Medal.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Medal.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Medal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Medal.vue?vue&type=template&id=67e5260a&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Medal.vue?vue&type=template&id=67e5260a& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Medal_vue_vue_type_template_id_67e5260a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Medal.vue?vue&type=template&id=67e5260a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Medal.vue?vue&type=template&id=67e5260a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Medal_vue_vue_type_template_id_67e5260a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Medal_vue_vue_type_template_id_67e5260a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/20.2812c7c913933bde3112.js b/public/20.2812c7c913933bde3112.js new file mode 100644 index 00000000..44246947 --- /dev/null +++ b/public/20.2812c7c913933bde3112.js @@ -0,0 +1,1596 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[20],{ + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Account.vue?vue&type=script&lang=js&": +/*!***************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Account.vue?vue&type=script&lang=js& ***! + \***************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "AccountIcon", + props: { + title: { + type: String, + default: "Account icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "AccountEditIcon", + props: { + title: { + type: String, + default: "Account Edit icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=script&lang=js&": +/*!***************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=script&lang=js& ***! + \***************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "ArrowUpIcon", + props: { + title: { + type: String, + default: "Arrow Up icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "BellIcon", + props: { + title: { + type: String, + default: "Bell icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=script&lang=js&": +/*!*********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=script&lang=js& ***! + \*********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "LogoutVariantIcon", + props: { + title: { + type: String, + default: "Logout Variant icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Magnify.vue?vue&type=script&lang=js&": +/*!***************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Magnify.vue?vue&type=script&lang=js& ***! + \***************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "MagnifyIcon", + props: { + title: { + type: String, + default: "Magnify icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Menu.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Menu.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "MenuIcon", + props: { + title: { + type: String, + default: "Menu icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "PlusIcon", + props: { + title: { + type: String, + default: "Plus icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Account.vue?vue&type=template&id=7e38f231&": +/*!*************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Account.vue?vue&type=template&id=7e38f231& ***! + \*************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon account-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M12,4C14.21,4 16,5.79 16,8C16,10.21 14.21,12 12,12C9.79,12 8,10.21 8,8C8,5.79 9.79,4 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=template&id=fec58a4a&": +/*!*****************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=template&id=fec58a4a& ***! + \*****************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon account-edit-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M21.7,13.35L20.7,14.35L18.65,12.3L19.65,11.3C19.86,11.09 20.21,11.09 20.42,11.3L21.7,12.58C21.91,12.79 21.91,13.14 21.7,13.35M12,18.94L18.06,12.88L20.11,14.93L14.06,21H12V18.94M12,14C7.58,14 4,15.79 4,18V20H10V18.11L14,14.11C13.34,14.03 12.67,14 12,14M12,4C9.79,4 8,5.79 8,8C8,10.21 9.79,12 12,12C14.21,12 16,10.21 16,8C16,5.79 14.21,4 12,4Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=template&id=8517f5f0&": +/*!*************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=template&id=8517f5f0& ***! + \*************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon arrow-up-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2&": +/*!**********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2& ***! + \**********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon bell-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M21,19V20H3V19L5,17V11C5,7.9 7.03,5.17 10,4.29C10,4.19 10,4.1 10,4C10,2.9 10.9,2 12,2C13.1,2 14,2.9 14,4C14,4.1 14,4.19 14,4.29C16.97,5.17 19,7.9 19,11V17L21,19M14,21C14,22.1 13.1,23 12,23C10.9,23 10,22.1 10,21" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=template&id=4ed1839f&": +/*!*******************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=template&id=4ed1839f& ***! + \*******************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon logout-variant-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M14.08,15.59L16.67,13H7V11H16.67L14.08,8.41L15.5,7L20.5,12L15.5,17L14.08,15.59M19,3C20.1,3 21,3.9 21,5V9.67L19,7.67V5H5V19H19V16.33L21,14.33V19C21,20.1 20.1,21 19,21H5C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3H19Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Magnify.vue?vue&type=template&id=1d382cb6&": +/*!*************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Magnify.vue?vue&type=template&id=1d382cb6& ***! + \*************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon magnify-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M9.5,3C13.09,3 16,5.91 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16C5.91,16 3,13.09 3,9.5C3,5.91 5.91,3 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Menu.vue?vue&type=template&id=62f6d40b&": +/*!**********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Menu.vue?vue&type=template&id=62f6d40b& ***! + \**********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon menu-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { attrs: { d: "M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z" } }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&": +/*!**********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6& ***! + \**********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon plus-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { attrs: { d: "M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z" } }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Account.vue": +/*!************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Account.vue ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Account_vue_vue_type_template_id_7e38f231___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Account.vue?vue&type=template&id=7e38f231& */ "./node_modules/vue-material-design-icons/Account.vue?vue&type=template&id=7e38f231&"); +/* harmony import */ var _Account_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Account.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Account.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Account_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Account_vue_vue_type_template_id_7e38f231___WEBPACK_IMPORTED_MODULE_0__["render"], + _Account_vue_vue_type_template_id_7e38f231___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Account.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Account.vue?vue&type=script&lang=js&": +/*!*************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Account.vue?vue&type=script&lang=js& ***! + \*************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Account_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Account.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Account.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Account_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Account.vue?vue&type=template&id=7e38f231&": +/*!*******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Account.vue?vue&type=template&id=7e38f231& ***! + \*******************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Account_vue_vue_type_template_id_7e38f231___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Account.vue?vue&type=template&id=7e38f231& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Account.vue?vue&type=template&id=7e38f231&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Account_vue_vue_type_template_id_7e38f231___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Account_vue_vue_type_template_id_7e38f231___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/AccountEdit.vue": +/*!****************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/AccountEdit.vue ***! + \****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _AccountEdit_vue_vue_type_template_id_fec58a4a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AccountEdit.vue?vue&type=template&id=fec58a4a& */ "./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=template&id=fec58a4a&"); +/* harmony import */ var _AccountEdit_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AccountEdit.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _AccountEdit_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _AccountEdit_vue_vue_type_template_id_fec58a4a___WEBPACK_IMPORTED_MODULE_0__["render"], + _AccountEdit_vue_vue_type_template_id_fec58a4a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/AccountEdit.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_AccountEdit_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./AccountEdit.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_AccountEdit_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=template&id=fec58a4a&": +/*!***********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=template&id=fec58a4a& ***! + \***********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_AccountEdit_vue_vue_type_template_id_fec58a4a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./AccountEdit.vue?vue&type=template&id=fec58a4a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=template&id=fec58a4a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_AccountEdit_vue_vue_type_template_id_fec58a4a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_AccountEdit_vue_vue_type_template_id_fec58a4a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ArrowUp.vue": +/*!************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ArrowUp.vue ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _ArrowUp_vue_vue_type_template_id_8517f5f0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ArrowUp.vue?vue&type=template&id=8517f5f0& */ "./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=template&id=8517f5f0&"); +/* harmony import */ var _ArrowUp_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ArrowUp.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _ArrowUp_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _ArrowUp_vue_vue_type_template_id_8517f5f0___WEBPACK_IMPORTED_MODULE_0__["render"], + _ArrowUp_vue_vue_type_template_id_8517f5f0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/ArrowUp.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=script&lang=js&": +/*!*************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=script&lang=js& ***! + \*************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_ArrowUp_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./ArrowUp.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_ArrowUp_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=template&id=8517f5f0&": +/*!*******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=template&id=8517f5f0& ***! + \*******************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ArrowUp_vue_vue_type_template_id_8517f5f0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./ArrowUp.vue?vue&type=template&id=8517f5f0& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=template&id=8517f5f0&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ArrowUp_vue_vue_type_template_id_8517f5f0___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ArrowUp_vue_vue_type_template_id_8517f5f0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Bell.vue": +/*!*********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Bell.vue ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Bell.vue?vue&type=template&id=2f3d3ca2& */ "./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2&"); +/* harmony import */ var _Bell_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Bell.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Bell_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__["render"], + _Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Bell.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js&": +/*!**********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js& ***! + \**********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Bell_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Bell.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Bell_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2& ***! + \****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Bell.vue?vue&type=template&id=2f3d3ca2& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/LogoutVariant.vue": +/*!******************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/LogoutVariant.vue ***! + \******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _LogoutVariant_vue_vue_type_template_id_4ed1839f___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LogoutVariant.vue?vue&type=template&id=4ed1839f& */ "./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=template&id=4ed1839f&"); +/* harmony import */ var _LogoutVariant_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./LogoutVariant.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _LogoutVariant_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _LogoutVariant_vue_vue_type_template_id_4ed1839f___WEBPACK_IMPORTED_MODULE_0__["render"], + _LogoutVariant_vue_vue_type_template_id_4ed1839f___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/LogoutVariant.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_LogoutVariant_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./LogoutVariant.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_LogoutVariant_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=template&id=4ed1839f&": +/*!*************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=template&id=4ed1839f& ***! + \*************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_LogoutVariant_vue_vue_type_template_id_4ed1839f___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./LogoutVariant.vue?vue&type=template&id=4ed1839f& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=template&id=4ed1839f&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_LogoutVariant_vue_vue_type_template_id_4ed1839f___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_LogoutVariant_vue_vue_type_template_id_4ed1839f___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Magnify.vue": +/*!************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Magnify.vue ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Magnify_vue_vue_type_template_id_1d382cb6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Magnify.vue?vue&type=template&id=1d382cb6& */ "./node_modules/vue-material-design-icons/Magnify.vue?vue&type=template&id=1d382cb6&"); +/* harmony import */ var _Magnify_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Magnify.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Magnify.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Magnify_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Magnify_vue_vue_type_template_id_1d382cb6___WEBPACK_IMPORTED_MODULE_0__["render"], + _Magnify_vue_vue_type_template_id_1d382cb6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Magnify.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Magnify.vue?vue&type=script&lang=js&": +/*!*************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Magnify.vue?vue&type=script&lang=js& ***! + \*************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Magnify_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Magnify.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Magnify.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Magnify_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Magnify.vue?vue&type=template&id=1d382cb6&": +/*!*******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Magnify.vue?vue&type=template&id=1d382cb6& ***! + \*******************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Magnify_vue_vue_type_template_id_1d382cb6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Magnify.vue?vue&type=template&id=1d382cb6& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Magnify.vue?vue&type=template&id=1d382cb6&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Magnify_vue_vue_type_template_id_1d382cb6___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Magnify_vue_vue_type_template_id_1d382cb6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Menu.vue": +/*!*********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Menu.vue ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Menu_vue_vue_type_template_id_62f6d40b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Menu.vue?vue&type=template&id=62f6d40b& */ "./node_modules/vue-material-design-icons/Menu.vue?vue&type=template&id=62f6d40b&"); +/* harmony import */ var _Menu_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Menu.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Menu.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Menu_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Menu_vue_vue_type_template_id_62f6d40b___WEBPACK_IMPORTED_MODULE_0__["render"], + _Menu_vue_vue_type_template_id_62f6d40b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Menu.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Menu.vue?vue&type=script&lang=js&": +/*!**********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Menu.vue?vue&type=script&lang=js& ***! + \**********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Menu_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Menu.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Menu.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Menu_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Menu.vue?vue&type=template&id=62f6d40b&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Menu.vue?vue&type=template&id=62f6d40b& ***! + \****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Menu_vue_vue_type_template_id_62f6d40b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Menu.vue?vue&type=template&id=62f6d40b& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Menu.vue?vue&type=template&id=62f6d40b&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Menu_vue_vue_type_template_id_62f6d40b___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Menu_vue_vue_type_template_id_62f6d40b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Plus.vue": +/*!*********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Plus.vue ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Plus.vue?vue&type=template&id=18bbb6c6& */ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&"); +/* harmony import */ var _Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Plus.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["render"], + _Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Plus.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&": +/*!**********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js& ***! + \**********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Plus.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6& ***! + \****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Plus.vue?vue&type=template&id=18bbb6c6& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/21.8531ae436fafa7e82e41.js b/public/21.8531ae436fafa7e82e41.js new file mode 100644 index 00000000..08cfd51a --- /dev/null +++ b/public/21.8531ae436fafa7e82e41.js @@ -0,0 +1,1413 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[21],{ + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "ArrowDownIcon", + props: { + title: { + type: String, + default: "Arrow Down icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "CheckIcon", + props: { + title: { + type: String, + default: "Check icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "CloseIcon", + props: { + title: { + type: String, + default: "Close icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "MapMarkerIcon", + props: { + title: { + type: String, + default: "Map Marker icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "PlusIcon", + props: { + title: { + type: String, + default: "Plus icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=script&lang=js&": +/*!***********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=script&lang=js& ***! + \***********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "SourceCommitEndIcon", + props: { + title: { + type: String, + default: "Source Commit End icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "TooltipOutlineIcon", + props: { + title: { + type: String, + default: "Tooltip Outline icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=template&id=dca48362&": +/*!***************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=template&id=dca48362& ***! + \***************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon arrow-down-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M11,4H13V16L18.5,10.5L19.92,11.92L12,19.84L4.08,11.92L5.5,10.5L11,16V4Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon check-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon close-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=template&id=c80f3d8c&": +/*!***************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=template&id=c80f3d8c& ***! + \***************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon map-marker-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M12,11.5C10.62,11.5 9.5,10.38 9.5,9C9.5,7.62 10.62,6.5 12,6.5C13.38,6.5 14.5,7.62 14.5,9C14.5,10.38 13.38,11.5 12,11.5M12,2C8.13,2 5,5.13 5,9C5,14.25 12,22 12,22C12,22 19,14.25 19,9C19,5.13 15.87,2 12,2Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&": +/*!**********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6& ***! + \**********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon plus-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { attrs: { d: "M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z" } }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=template&id=68a53c4d&": +/*!*********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=template&id=68a53c4d& ***! + \*********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon source-commit-end-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M17,12C17,14.76 14.76,17 12,17C9.24,17 7,14.76 7,12C7,9.58 8.72,7.56 11,7.1V3H13V7.1C15.28,7.56 17,9.58 17,12M12,9C10.34,9 9,10.34 9,12C9,13.66 10.34,15 12,15C13.66,15 15,13.66 15,12C15,10.34 13.66,9 12,9Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon tooltip-outline-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M4,2H20C21.1,2 22,2.9 22,4V16C22,17.1 21.1,18 20,18H16L12,22L8,18H4C2.9,18 2,17.1 2,16V4C2,2.9 2.9,2 4,2M4,4V16H8.83L12,19.17L15.17,16H20V4H4Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ArrowDown.vue": +/*!**************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ArrowDown.vue ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _ArrowDown_vue_vue_type_template_id_dca48362___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ArrowDown.vue?vue&type=template&id=dca48362& */ "./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=template&id=dca48362&"); +/* harmony import */ var _ArrowDown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ArrowDown.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _ArrowDown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _ArrowDown_vue_vue_type_template_id_dca48362___WEBPACK_IMPORTED_MODULE_0__["render"], + _ArrowDown_vue_vue_type_template_id_dca48362___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/ArrowDown.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=script&lang=js&": +/*!***************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=script&lang=js& ***! + \***************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_ArrowDown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./ArrowDown.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_ArrowDown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=template&id=dca48362&": +/*!*********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=template&id=dca48362& ***! + \*********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ArrowDown_vue_vue_type_template_id_dca48362___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./ArrowDown.vue?vue&type=template&id=dca48362& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=template&id=dca48362&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ArrowDown_vue_vue_type_template_id_dca48362___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ArrowDown_vue_vue_type_template_id_dca48362___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Check.vue?vue&type=template&id=7146728c& */ "./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&"); +/* harmony import */ var _Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Check.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["render"], + _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Check.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Check.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Check.vue?vue&type=template&id=7146728c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Close.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Close.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Close.vue?vue&type=template&id=3cc2737c& */ "./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c&"); +/* harmony import */ var _Close_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Close.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Close_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__["render"], + _Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Close.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Close_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Close.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Close_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Close.vue?vue&type=template&id=3cc2737c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/MapMarker.vue": +/*!**************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/MapMarker.vue ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _MapMarker_vue_vue_type_template_id_c80f3d8c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MapMarker.vue?vue&type=template&id=c80f3d8c& */ "./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=template&id=c80f3d8c&"); +/* harmony import */ var _MapMarker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MapMarker.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _MapMarker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _MapMarker_vue_vue_type_template_id_c80f3d8c___WEBPACK_IMPORTED_MODULE_0__["render"], + _MapMarker_vue_vue_type_template_id_c80f3d8c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/MapMarker.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=script&lang=js&": +/*!***************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=script&lang=js& ***! + \***************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_MapMarker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./MapMarker.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_MapMarker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=template&id=c80f3d8c&": +/*!*********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=template&id=c80f3d8c& ***! + \*********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_MapMarker_vue_vue_type_template_id_c80f3d8c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./MapMarker.vue?vue&type=template&id=c80f3d8c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=template&id=c80f3d8c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_MapMarker_vue_vue_type_template_id_c80f3d8c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_MapMarker_vue_vue_type_template_id_c80f3d8c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Plus.vue": +/*!*********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Plus.vue ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Plus.vue?vue&type=template&id=18bbb6c6& */ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&"); +/* harmony import */ var _Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Plus.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["render"], + _Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Plus.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&": +/*!**********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js& ***! + \**********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Plus.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6& ***! + \****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Plus.vue?vue&type=template&id=18bbb6c6& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/SourceCommitEnd.vue": +/*!********************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/SourceCommitEnd.vue ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _SourceCommitEnd_vue_vue_type_template_id_68a53c4d___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SourceCommitEnd.vue?vue&type=template&id=68a53c4d& */ "./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=template&id=68a53c4d&"); +/* harmony import */ var _SourceCommitEnd_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SourceCommitEnd.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _SourceCommitEnd_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _SourceCommitEnd_vue_vue_type_template_id_68a53c4d___WEBPACK_IMPORTED_MODULE_0__["render"], + _SourceCommitEnd_vue_vue_type_template_id_68a53c4d___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/SourceCommitEnd.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=script&lang=js&": +/*!*********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=script&lang=js& ***! + \*********************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_SourceCommitEnd_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./SourceCommitEnd.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_SourceCommitEnd_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=template&id=68a53c4d&": +/*!***************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=template&id=68a53c4d& ***! + \***************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_SourceCommitEnd_vue_vue_type_template_id_68a53c4d___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./SourceCommitEnd.vue?vue&type=template&id=68a53c4d& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=template&id=68a53c4d&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_SourceCommitEnd_vue_vue_type_template_id_68a53c4d___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_SourceCommitEnd_vue_vue_type_template_id_68a53c4d___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue": +/*!*******************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony import */ var _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/TooltipOutline.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \********************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!**************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \**************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/22.6ca5b4d120f1520ae9e5.js b/public/22.6ca5b4d120f1520ae9e5.js new file mode 100644 index 00000000..52c204b8 --- /dev/null +++ b/public/22.6ca5b4d120f1520ae9e5.js @@ -0,0 +1,1137 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[22],{ + +/***/ "./node_modules/dayjs/dayjs.min.js": +/*!*****************************************!*\ + !*** ./node_modules/dayjs/dayjs.min.js ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +!function(t,n){ true?module.exports=n():undefined}(this,function(){"use strict";var t="millisecond",n="second",e="minute",r="hour",i="day",s="week",u="month",o="quarter",a="year",h=/^(\d{4})-?(\d{1,2})-?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?.?(\d{1,3})?$/,f=/\[([^\]]+)]|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,c=function(t,n,e){var r=String(t);return!r||r.length>=n?t:""+Array(n+1-r.length).join(e)+t},d={s:c,z:function(t){var n=-t.utcOffset(),e=Math.abs(n),r=Math.floor(e/60),i=e%60;return(n<=0?"+":"-")+c(r,2,"0")+":"+c(i,2,"0")},m:function(t,n){var e=12*(n.year()-t.year())+(n.month()-t.month()),r=t.clone().add(e,u),i=n-r<0,s=t.clone().add(e+(i?-1:1),u);return Number(-(e+(n-r)/(i?r-s:s-r))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(h){return{M:u,y:a,w:s,d:i,h:r,m:e,s:n,ms:t,Q:o}[h]||String(h||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},$={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},l="en",m={};m[l]=$;var y=function(t){return t instanceof v},M=function(t,n,e){var r;if(!t)return l;if("string"==typeof t)m[t]&&(r=t),n&&(m[t]=n,r=t);else{var i=t.name;m[i]=t,r=i}return e||(l=r),r},g=function(t,n,e){if(y(t))return t.clone();var r=n?"string"==typeof n?{format:n,pl:e}:n:{};return r.date=t,new v(r)},D=d;D.l=M,D.i=y,D.w=function(t,n){return g(t,{locale:n.$L,utc:n.$u})};var v=function(){function c(t){this.$L=this.$L||M(t.locale,null,!0),this.parse(t)}var d=c.prototype;return d.parse=function(t){this.$d=function(t){var n=t.date,e=t.utc;if(null===n)return new Date(NaN);if(D.u(n))return new Date;if(n instanceof Date)return new Date(n);if("string"==typeof n&&!/Z$/i.test(n)){var r=n.match(h);if(r)return e?new Date(Date.UTC(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)):new Date(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)}return new Date(n)}(t),this.init()},d.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},d.$utils=function(){return D},d.isValid=function(){return!("Invalid Date"===this.$d.toString())},d.isSame=function(t,n){var e=g(t);return this.startOf(n)<=e&&e<=this.endOf(n)},d.isAfter=function(t,n){return g(t) 0) { + this.search(); + } else { + this.threads = []; + } + } + }, + mounted: function mounted() { + var _this = this; + + this.$nextTick(function () { + document.addEventListener('click', _this.onBodyClick); + }); + }, + beforeDestroy: function beforeDestroy() { + document.removeEventListener('click', this.onBodyClick); + }, + methods: { + onBodyClick: function onBodyClick(e) { + var searchForm = document.querySelector('.search-form'); + + if (e.target !== searchForm) { + this.threads = []; + } + }, + highlightContent: function highlightContent(item) { + return (item.highlights['content'] || []).join('...'); + }, + search: function search() { + var _this2 = this; + + this.$http.get("/threads/search?q=" + this.q).then(function (response) { + _this2.threads = response.data; + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/navbar.vue?vue&type=script&lang=js&": +/*!********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/navbar.vue?vue&type=script&lang=js& ***! + \********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_Menu__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/Menu */ "./node_modules/vue-material-design-icons/Menu.vue"); +/* harmony import */ var $icons_Bell__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/Bell */ "./node_modules/vue-material-design-icons/Bell.vue"); +/* harmony import */ var $icons_Plus__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/Plus */ "./node_modules/vue-material-design-icons/Plus.vue"); +/* harmony import */ var $icons_Magnify__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/Magnify */ "./node_modules/vue-material-design-icons/Magnify.vue"); +/* harmony import */ var $icons_Account__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! $icons/Account */ "./node_modules/vue-material-design-icons/Account.vue"); +/* harmony import */ var $icons_AccountEdit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! $icons/AccountEdit */ "./node_modules/vue-material-design-icons/AccountEdit.vue"); +/* harmony import */ var $icons_LogoutVariant__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! $icons/LogoutVariant */ "./node_modules/vue-material-design-icons/LogoutVariant.vue"); +/* harmony import */ var _nav_search__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./nav-search */ "./src/components/nav-search.vue"); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _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; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + MenuIcon: $icons_Menu__WEBPACK_IMPORTED_MODULE_0__["default"], + BellIcon: $icons_Bell__WEBPACK_IMPORTED_MODULE_1__["default"], + PlusIcon: $icons_Plus__WEBPACK_IMPORTED_MODULE_2__["default"], + AccountIcon: $icons_Account__WEBPACK_IMPORTED_MODULE_4__["default"], + MagnifyIcon: $icons_Magnify__WEBPACK_IMPORTED_MODULE_3__["default"], + AccountEditIcon: $icons_AccountEdit__WEBPACK_IMPORTED_MODULE_5__["default"], + LogoutVariant: $icons_LogoutVariant__WEBPACK_IMPORTED_MODULE_6__["default"], + NavSearch: _nav_search__WEBPACK_IMPORTED_MODULE_7__["default"] + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_8__["mapGetters"])(['isLogged', 'currentUser'])), + methods: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_8__["mapActions"])(['logout', 'toggle'])) +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/sidebar.vue?vue&type=script&lang=js&": +/*!*********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/sidebar.vue?vue&type=script&lang=js& ***! + \*********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + data: function data() { + return {}; + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/root.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/root.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +/* harmony import */ var $components_navbar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $components/navbar */ "./src/components/navbar.vue"); +/* harmony import */ var $components_sidebar__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $components/sidebar */ "./src/components/sidebar.vue"); +/* harmony import */ var $icons_ArrowUp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/ArrowUp */ "./node_modules/vue-material-design-icons/ArrowUp.vue"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _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; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + +/* harmony default export */ __webpack_exports__["default"] = (_defineProperty({ + name: 'app', + components: { + Navbar: $components_navbar__WEBPACK_IMPORTED_MODULE_1__["default"], + Sidebar: $components_sidebar__WEBPACK_IMPORTED_MODULE_2__["default"], + ArrowUpIcon: $icons_ArrowUp__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_0__["mapGetters"])(['currentUser', 'isToggled']), { + checkParams: function checkParams() { + return this.$route.query['active-success'] == 'yes'; + }, + shouldShowNavbar: function shouldShowNavbar() { + return typeof this.$route.meta['navbar'] === 'undefined' || !!this.$route.meta['navbar']; + }, + withContainer: function withContainer() { + if (typeof this.$route.meta['container'] !== 'undefined') { + return !!this.$route.meta['container']; + } + + return true; + } + }), + mounted: function mounted() { + console.log('app mounted'); + }, + methods: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_0__["mapActions"])(['toggle']), { + sendActiveMail: function sendActiveMail() { + var _this = this; + + this.$http.post('user/send-active-mail').then(function (data) { + _this.$message.success(data.message); + }); + }, + scrollToTop: function scrollToTop() { + window.scroll({ + top: 0, + left: 0, + behavior: 'smooth' + }); + } + }) +}, "mounted", function mounted() { + var _this2 = this; + + setTimeout(function () { + window.addEventListener('scroll', function () { + if (document.body.scrollTop > 400 || document.documentElement.scrollTop > 400) { + _this2.$refs['backToTopLayer'].style.display = 'block'; + } else { + _this2.$refs['backToTopLayer'].style.display = 'none'; + } + }); + }, 1000); +})); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss&": +/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss& ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".search-form[data-v-28d942bc] {\n position: relative;\n}\n.search-form .list-group[data-v-28d942bc] {\n position: absolute;\n top: 100%;\n left: 0;\n min-width: 400px;\n max-height: 80vh;\n overflow-y: auto;\n -webkit-box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.1);\n box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.1);\n z-index: 99;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/navbar.vue?vue&type=style&index=0&lang=scss&": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/navbar.vue?vue&type=style&index=0&lang=scss& ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".navbar-nav .nav-item {\n margin-left: 10px;\n margin-right: 10px;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/root.vue?vue&type=style&index=0&lang=scss&": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/root.vue?vue&type=style&index=0&lang=scss& ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".back-to-top {\n display: none;\n position: fixed;\n bottom: 30px;\n right: 50px;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss&": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss& ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/navbar.vue?vue&type=style&index=0&lang=scss&": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/navbar.vue?vue&type=style&index=0&lang=scss& ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./navbar.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/navbar.vue?vue&type=style&index=0&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/root.vue?vue&type=style&index=0&lang=scss&": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/root.vue?vue&type=style&index=0&lang=scss& ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../node_modules/css-loader/dist/cjs.js!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src??ref--7-3!../node_modules/sass-loader/lib/loader.js??ref--7-4!../node_modules/vue-loader/lib??vue-loader-options!./root.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/root.vue?vue&type=style&index=0&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/nav-search.vue?vue&type=template&id=28d942bc&scoped=true&": +/*!****************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/nav-search.vue?vue&type=template&id=28d942bc&scoped=true& ***! + \****************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("form", { staticClass: "search-form form-inline my-2 my-lg-0" }, [ + _c("input", { + directives: [ + { name: "model", rawName: "v-model", value: _vm.q, expression: "q" } + ], + staticClass: "form-control mr-sm-2", + attrs: { + type: "search", + placeholder: "搜索讨论", + "aria-label": "Search" + }, + domProps: { value: _vm.q }, + on: { + input: function($event) { + if ($event.target.composing) { + return + } + _vm.q = $event.target.value + } + } + }), + _vm._v(" "), + _vm.threads.length > 0 + ? _c( + "div", + { staticClass: "list-group" }, + _vm._l(_vm.threads, function(item) { + return _c( + "div", + { + key: item.id, + staticClass: + "list-group-item list-group-item-action cursor-pointer", + on: { + click: function($event) { + return _vm.$router.push({ + name: "threads.show", + params: { id: item.id } + }) + } + } + }, + [ + _c("div", { staticClass: "d-flex align-items-center" }, [ + _c("a", { staticClass: "mr-2", attrs: { href: "#" } }, [ + _c("img", { + staticClass: "avatar-30", + attrs: { src: item.user.avatar, alt: "" } + }) + ]), + _vm._v(" "), + _c("div", { + staticClass: "highlights text-gray-50 text-truncate", + domProps: { + innerHTML: _vm._s( + item["highlights"] && item["highlights"]["title"] + ? item.highlights.title[0] + : item.title + ) + } + }) + ]), + _vm._v(" "), + item.highlights["content"] + ? _c("p", { + staticClass: "highlights mt-1 text-gray-60", + domProps: { + innerHTML: _vm._s(_vm.highlightContent(item)) + } + }) + : _vm._e() + ] + ) + }), + 0 + ) + : _vm._e() + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/navbar.vue?vue&type=template&id=688b5e20&": +/*!************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/navbar.vue?vue&type=template&id=688b5e20& ***! + \************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "bg-white bg-white shadow-6" }, [ + _c("div", { staticClass: "container" }, [ + _c( + "nav", + { + staticClass: "navbar px-0 py-1 text-14 navbar-expand-lg navbar-light" + }, + [ + _c( + "router-link", + { + staticClass: + "navbar-brand text-22 d-flex align-items-center antialiased", + attrs: { to: { name: "home" } } + }, + [ + _c("img", { + staticClass: "mr-2 avatar-40", + attrs: { src: "/yike.svg", alt: "一刻社区" } + }), + _vm._v("一刻"), + _c("span", { staticClass: "text-14 text-muted ml-1" }, [ + _vm._v("| 高品质微信开发者社区") + ]), + _c("sup", { staticClass: "ml-1 text-10 text-danger" }, [ + _vm._v(" Beta") + ]) + ] + ), + _vm._v(" "), + _vm._m(0), + _vm._v(" "), + _c( + "div", + { + staticClass: "collapse navbar-collapse", + attrs: { id: "navbarSupportedContent" } + }, + [ + _c( + "ul", + { + staticClass: + "navbar-nav flex-row align-items-center justify-content-center py-sm-2 py-md-0 mx-auto" + }, + [ + _c( + "router-link", + { + staticClass: "nav-item", + attrs: { to: { name: "home" }, exact: "", tag: "li" } + }, + [ + _c( + "a", + { + staticClass: "nav-link", + attrs: { href: "javascript:void(0);" } + }, + [_vm._v("首页")] + ) + ] + ), + _vm._v(" "), + _c( + "router-link", + { + staticClass: "nav-item", + attrs: { + to: { name: "nodes.show" }, + exact: "", + tag: "li" + } + }, + [ + _c( + "a", + { + staticClass: "nav-link", + attrs: { href: "javascript:void(0);" } + }, + [_vm._v("节点")] + ) + ] + ), + _vm._v(" "), + _vm._m(1), + _vm._v(" "), + _c("li", { staticClass: "nav-item" }, [_c("nav-search")], 1) + ], + 1 + ), + _vm._v(" "), + _c( + "ul", + { + staticClass: + "navbar-nav ml-md-auto flex-row d-md-flex align-items-center justify-content-around" + }, + [ + _vm.isLogged + ? [ + _c( + "li", + { staticClass: "nav-item" }, + [ + _c( + "router-link", + { + staticClass: + "text-20 btn btn-icon btn-transparent btn-light", + attrs: { + to: { name: "threads.create" }, + exact: "" + } + }, + [_c("plus-icon")], + 1 + ) + ], + 1 + ), + _vm._v(" "), + _c( + "li", + { staticClass: "nav-item nav-item-icon" }, + [ + _c( + "router-link", + { + staticClass: + "text-20 btn btn-icon btn-transparent btn-light", + attrs: { to: { name: "notifications.show" } } + }, + [_c("bell-icon")], + 1 + ) + ], + 1 + ), + _vm._v(" "), + _c("li", { staticClass: "nav-item" }, [ + _c("div", { staticClass: "btn-group" }, [ + _c( + "a", + { + staticClass: "dropdown-toggle cursor-pointer", + attrs: { + href: "#", + "data-toggle": "dropdown", + "aria-haspopup": "true", + "aria-expanded": "false" + } + }, + [ + _c("img", { + staticClass: "avatar-40 mr-2", + attrs: { src: _vm.currentUser.avatar } + }) + ] + ), + _vm._v(" "), + _c( + "div", + { + staticClass: "dropdown-menu dropdown-menu-right" + }, + [ + _c( + "div", + { staticClass: "dropdown-item" }, + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { + username: _vm.currentUser.username + } + } + } + }, + [ + _c( + "div", + { + staticClass: "text-16 text-gray-30" + }, + [_vm._v(_vm._s(_vm.currentUser.name))] + ), + _vm._v(" "), + _c("div", [ + _vm._v( + "@" + + _vm._s(_vm.currentUser.username) + ) + ]) + ] + ) + ], + 1 + ), + _vm._v(" "), + _c("div", { staticClass: "dropdown-divider" }), + _vm._v(" "), + _c( + "router-link", + { + staticClass: "dropdown-item", + attrs: { + to: { + name: "users.show", + params: { + username: _vm.currentUser.username + } + }, + exact: "" + } + }, + [ + _c("account-icon", { staticClass: "mr-1" }), + _vm._v( + "\n 个人中心\n " + ) + ], + 1 + ), + _vm._v(" "), + _c( + "router-link", + { + staticClass: "dropdown-item", + attrs: { + to: { name: "user.profile" }, + exact: "" + } + }, + [ + _c("account-edit-icon", { + staticClass: "mr-1" + }), + _vm._v( + "\n 编辑资料\n " + ) + ], + 1 + ), + _vm._v(" "), + _c("div", { staticClass: "dropdown-divider" }), + _vm._v(" "), + _c( + "a", + { + staticClass: "dropdown-item", + attrs: { href: "javascript:void(0);" }, + on: { click: _vm.logout } + }, + [ + _c("logout-variant", { + staticClass: "mr-1" + }), + _vm._v( + "\n 退出登录\n " + ) + ], + 1 + ) + ], + 1 + ) + ]) + ]) + ] + : [ + _c( + "router-link", + { + staticClass: "nav-item", + attrs: { to: { name: "auth.login" }, tag: "li" } + }, + [ + _c( + "a", + { attrs: { href: "javascript:void(0);" } }, + [_vm._v("登录")] + ) + ] + ), + _vm._v(" "), + _c( + "router-link", + { + staticClass: "nav-item", + attrs: { to: { name: "auth.register" }, tag: "li" } + }, + [ + _c( + "a", + { attrs: { href: "javascript:void(0);" } }, + [_vm._v("注册")] + ) + ] + ) + ] + ], + 2 + ) + ] + ) + ], + 1 + ) + ]) + ]) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "button", + { + staticClass: "navbar-toggler", + attrs: { + type: "button", + "data-toggle": "collapse", + "data-target": "#navbarSupportedContent", + "aria-controls": "navbarSupportedContent", + "aria-expanded": "false", + "aria-label": "Toggle navigation" + } + }, + [_c("span", { staticClass: "navbar-toggler-icon" })] + ) + }, + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("li", { staticClass: "nav-item" }, [ + _c( + "a", + { + staticClass: "nav-link", + attrs: { href: "https://easywechat.com?utm_source=yike.io" } + }, + [_vm._v("SDK")] + ) + ]) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/sidebar.vue?vue&type=template&id=19f8877c&": +/*!*************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/sidebar.vue?vue&type=template&id=19f8877c& ***! + \*************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm._m(0) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { + staticClass: "border-right position-fixed h-100 bg-white", + attrs: { id: "sidebar-wrapper" } + }, + [ + _c("ul", { staticClass: "px-2" }, [ + _c("li", { staticClass: "text-16 text-gray-40 py-2" }, [ + _vm._v("数据统计") + ]), + _vm._v(" "), + _c("li", [ + _c( + "div", + { staticClass: "text-14 font-weight-bold text-gray-40" }, + [_vm._v("站点统计")] + ), + _vm._v(" "), + _c("ul", { staticClass: "text-12 px-2" }, [ + _c("li", { staticClass: "d-flex justify-content-between py-1" }, [ + _c("span", [_vm._v("总人数")]), + _vm._v(" "), + _c("span", [_vm._v("1000")]) + ]), + _vm._v(" "), + _c("li", { staticClass: "d-flex justify-content-between py-1" }, [ + _c("span", [_vm._v("总帖子数")]), + _vm._v(" "), + _c("span", [_vm._v("1000")]) + ]) + ]) + ]) + ]) + ] + ) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/root.vue?vue&type=template&id=32af413b&": +/*!***********************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/root.vue?vue&type=template&id=32af413b& ***! + \***********************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { + staticClass: "h-100", + class: { toggled: _vm.isToggled }, + attrs: { id: "wrapper" } + }, + [ + _c( + "div", + { + staticClass: "w-100 position-absolute", + attrs: { id: "page-content-wrapper" } + }, + [ + _vm.shouldShowNavbar ? _c("navbar") : _vm._e(), + _vm._v(" "), + _vm.currentUser && + _vm.currentUser.id && + !_vm.currentUser.has_activated + ? _c( + "div", + { + staticClass: "alert alert-warning text-center m-0", + attrs: { role: "alert" } + }, + [ + _vm._v( + "\n 您的邮箱尚未验证,将影响你的正常使用。请先验证您的邮箱,如果未收到邮件,请点击\n " + ), + _c( + "a", + { + staticClass: "text-blue", + attrs: { href: "javascript:void(0)" }, + on: { click: _vm.sendActiveMail } + }, + [_vm._v("重新发送")] + ), + _vm._v("!\n ") + ] + ) + : _vm._e(), + _vm._v(" "), + _vm.$route.query["active-success"] && _vm.$route.query.type + ? [ + _vm.$route.query.type == "register" + ? [ + _vm.checkParams + ? _c( + "div", + { + staticClass: + "alert alert-success text-center m-0", + attrs: { role: "alert" } + }, + [_vm._v("您的账号已激活!")] + ) + : _c( + "div", + { + staticClass: "alert alert-danger text-center m-0", + attrs: { role: "alert" } + }, + [ + _vm._v( + "\n 邮箱验证失败,请\n " + ), + _c( + "a", + { + staticClass: "text-blue", + attrs: { href: "javascript:void(0)" }, + on: { click: _vm.sendActiveMail } + }, + [_vm._v("重新发送验证邮件")] + ), + _vm._v("!\n ") + ] + ) + ] + : _vm._e(), + _vm._v(" "), + _vm.$route.query.type == "email" + ? [ + _vm.checkParams + ? _c( + "div", + { + staticClass: + "alert alert-success text-center m-0", + attrs: { role: "alert" } + }, + [_vm._v("账号已修改邮箱!")] + ) + : _c( + "div", + { + staticClass: "alert alert-danger text-center m-0", + attrs: { role: "alert" } + }, + [ + _vm._v("\n 验证失败!请\n "), + _c( + "router-link", + { + staticClass: "text-blue", + attrs: { + to: { + name: "user.account", + hash: "#edit-email" + } + } + }, + [_vm._v("重新提交验证新邮箱")] + ), + _vm._v("!\n ") + ], + 1 + ) + ] + : _vm._e() + ] + : _vm._e(), + _vm._v(" "), + _c( + "div", + { + staticClass: "main-content", + class: { "container my-3": _vm.withContainer } + }, + [_c("router-view")], + 1 + ) + ], + 2 + ), + _vm._v(" "), + _vm.isToggled + ? _c("div", { + staticClass: "position-absolute w-100 h-100 bg-white opacity-70", + on: { click: _vm.toggle } + }) + : _vm._e(), + _vm._v(" "), + _c("div", { ref: "backToTopLayer", staticClass: "back-to-top" }, [ + _c( + "a", + { + staticClass: "btn btn-icon btn-secondary text-20", + attrs: { + "data-placement": "top", + "data-toggle": "tooltip", + href: "javascript:", + title: "返回顶部" + }, + on: { click: _vm.scrollToTop } + }, + [_c("arrow-up-icon")], + 1 + ) + ]) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/nav-search.vue": +/*!***************************************!*\ + !*** ./src/components/nav-search.vue ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _nav_search_vue_vue_type_template_id_28d942bc_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./nav-search.vue?vue&type=template&id=28d942bc&scoped=true& */ "./src/components/nav-search.vue?vue&type=template&id=28d942bc&scoped=true&"); +/* harmony import */ var _nav_search_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nav-search.vue?vue&type=script&lang=js& */ "./src/components/nav-search.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _nav_search_vue_vue_type_style_index_0_id_28d942bc_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss& */ "./src/components/nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _nav_search_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _nav_search_vue_vue_type_template_id_28d942bc_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"], + _nav_search_vue_vue_type_template_id_28d942bc_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + "28d942bc", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/nav-search.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/nav-search.vue?vue&type=script&lang=js&": +/*!****************************************************************!*\ + !*** ./src/components/nav-search.vue?vue&type=script&lang=js& ***! + \****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./nav-search.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/nav-search.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss&": +/*!*************************************************************************************************!*\ + !*** ./src/components/nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss& ***! + \*************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_style_index_0_id_28d942bc_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../node_modules/style-loader!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_style_index_0_id_28d942bc_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_style_index_0_id_28d942bc_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_style_index_0_id_28d942bc_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_style_index_0_id_28d942bc_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_style_index_0_id_28d942bc_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/components/nav-search.vue?vue&type=template&id=28d942bc&scoped=true&": +/*!**********************************************************************************!*\ + !*** ./src/components/nav-search.vue?vue&type=template&id=28d942bc&scoped=true& ***! + \**********************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_template_id_28d942bc_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./nav-search.vue?vue&type=template&id=28d942bc&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/nav-search.vue?vue&type=template&id=28d942bc&scoped=true&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_template_id_28d942bc_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_template_id_28d942bc_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/navbar.vue": +/*!***********************************!*\ + !*** ./src/components/navbar.vue ***! + \***********************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _navbar_vue_vue_type_template_id_688b5e20___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./navbar.vue?vue&type=template&id=688b5e20& */ "./src/components/navbar.vue?vue&type=template&id=688b5e20&"); +/* harmony import */ var _navbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./navbar.vue?vue&type=script&lang=js& */ "./src/components/navbar.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _navbar_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./navbar.vue?vue&type=style&index=0&lang=scss& */ "./src/components/navbar.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _navbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _navbar_vue_vue_type_template_id_688b5e20___WEBPACK_IMPORTED_MODULE_0__["render"], + _navbar_vue_vue_type_template_id_688b5e20___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/navbar.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/navbar.vue?vue&type=script&lang=js&": +/*!************************************************************!*\ + !*** ./src/components/navbar.vue?vue&type=script&lang=js& ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./navbar.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/navbar.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/navbar.vue?vue&type=style&index=0&lang=scss&": +/*!*********************************************************************!*\ + !*** ./src/components/navbar.vue?vue&type=style&index=0&lang=scss& ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../node_modules/style-loader!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./navbar.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/navbar.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/components/navbar.vue?vue&type=template&id=688b5e20&": +/*!******************************************************************!*\ + !*** ./src/components/navbar.vue?vue&type=template&id=688b5e20& ***! + \******************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_template_id_688b5e20___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./navbar.vue?vue&type=template&id=688b5e20& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/navbar.vue?vue&type=template&id=688b5e20&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_template_id_688b5e20___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_template_id_688b5e20___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/sidebar.vue": +/*!************************************!*\ + !*** ./src/components/sidebar.vue ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _sidebar_vue_vue_type_template_id_19f8877c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sidebar.vue?vue&type=template&id=19f8877c& */ "./src/components/sidebar.vue?vue&type=template&id=19f8877c&"); +/* harmony import */ var _sidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sidebar.vue?vue&type=script&lang=js& */ "./src/components/sidebar.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _sidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _sidebar_vue_vue_type_template_id_19f8877c___WEBPACK_IMPORTED_MODULE_0__["render"], + _sidebar_vue_vue_type_template_id_19f8877c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/sidebar.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/sidebar.vue?vue&type=script&lang=js&": +/*!*************************************************************!*\ + !*** ./src/components/sidebar.vue?vue&type=script&lang=js& ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_sidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./sidebar.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/sidebar.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_sidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/sidebar.vue?vue&type=template&id=19f8877c&": +/*!*******************************************************************!*\ + !*** ./src/components/sidebar.vue?vue&type=template&id=19f8877c& ***! + \*******************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_sidebar_vue_vue_type_template_id_19f8877c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./sidebar.vue?vue&type=template&id=19f8877c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/sidebar.vue?vue&type=template&id=19f8877c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_sidebar_vue_vue_type_template_id_19f8877c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_sidebar_vue_vue_type_template_id_19f8877c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/root.vue": +/*!**********************!*\ + !*** ./src/root.vue ***! + \**********************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _root_vue_vue_type_template_id_32af413b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./root.vue?vue&type=template&id=32af413b& */ "./src/root.vue?vue&type=template&id=32af413b&"); +/* harmony import */ var _root_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./root.vue?vue&type=script&lang=js& */ "./src/root.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _root_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./root.vue?vue&type=style&index=0&lang=scss& */ "./src/root.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _root_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _root_vue_vue_type_template_id_32af413b___WEBPACK_IMPORTED_MODULE_0__["render"], + _root_vue_vue_type_template_id_32af413b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/root.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/root.vue?vue&type=script&lang=js&": +/*!***********************************************!*\ + !*** ./src/root.vue?vue&type=script&lang=js& ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../node_modules/babel-loader/lib??ref--4-0!../node_modules/vue-loader/lib??vue-loader-options!./root.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/root.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/root.vue?vue&type=style&index=0&lang=scss&": +/*!********************************************************!*\ + !*** ./src/root.vue?vue&type=style&index=0&lang=scss& ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../node_modules/style-loader!../node_modules/css-loader/dist/cjs.js!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src??ref--7-3!../node_modules/sass-loader/lib/loader.js??ref--7-4!../node_modules/vue-loader/lib??vue-loader-options!./root.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/root.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/root.vue?vue&type=template&id=32af413b&": +/*!*****************************************************!*\ + !*** ./src/root.vue?vue&type=template&id=32af413b& ***! + \*****************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_template_id_32af413b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../node_modules/vue-loader/lib??vue-loader-options!./root.vue?vue&type=template&id=32af413b& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/root.vue?vue&type=template&id=32af413b&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_template_id_32af413b___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_template_id_32af413b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/24.59458ba0db37c080c078.js b/public/24.59458ba0db37c080c078.js new file mode 100644 index 00000000..42200271 --- /dev/null +++ b/public/24.59458ba0db37c080c078.js @@ -0,0 +1,1044 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[24],{ + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "CheckIcon", + props: { + title: { + type: String, + default: "Check icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "HeartIcon", + props: { + title: { + type: String, + default: "Heart icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "TooltipOutlineIcon", + props: { + title: { + type: String, + default: "Tooltip Outline icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "VolumeHighIcon", + props: { + title: { + type: String, + default: "Volume High icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "VolumeMuteIcon", + props: { + title: { + type: String, + default: "Volume Mute icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon check-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon heart-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon tooltip-outline-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M4,2H20C21.1,2 22,2.9 22,4V16C22,17.1 21.1,18 20,18H16L12,22L8,18H4C2.9,18 2,17.1 2,16V4C2,2.9 2.9,2 4,2M4,4V16H8.83L12,19.17L15.17,16H20V4H4Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0&": +/*!****************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0& ***! + \****************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon volume-high-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M14,3.23V5.29C16.89,6.15 19,8.83 19,12C19,15.17 16.89,17.84 14,18.7V20.77C18,19.86 21,16.28 21,12C21,7.72 18,4.14 14,3.23M16.5,12C16.5,10.23 15.5,8.71 14,7.97V16C15.5,15.29 16.5,13.76 16.5,12M3,9V15H7L12,20V4L7,9H3Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff&": +/*!****************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff& ***! + \****************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon volume-mute-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M3,9H7L12,4V20L7,15H3V9M16.59,12L14,9.41L15.41,8L18,10.59L20.59,8L22,9.41L19.41,12L22,14.59L20.59,16L18,13.41L15.41,16L14,14.59L16.59,12Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Check.vue?vue&type=template&id=7146728c& */ "./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&"); +/* harmony import */ var _Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Check.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["render"], + _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Check.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Check.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Check.vue?vue&type=template&id=7146728c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Heart.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Heart.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Heart.vue?vue&type=template&id=6577aeca& */ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&"); +/* harmony import */ var _Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Heart.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["render"], + _Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Heart.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Heart.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Heart.vue?vue&type=template&id=6577aeca& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue": +/*!*******************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony import */ var _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/TooltipOutline.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \********************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!**************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \**************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeHigh.vue": +/*!***************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeHigh.vue ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VolumeHigh.vue?vue&type=template&id=ffdb55f0& */ "./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0&"); +/* harmony import */ var _VolumeHigh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VolumeHigh.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _VolumeHigh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__["render"], + _VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/VolumeHigh.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js& ***! + \****************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_VolumeHigh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./VolumeHigh.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_VolumeHigh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0&": +/*!**********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0& ***! + \**********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./VolumeHigh.vue?vue&type=template&id=ffdb55f0& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeMute.vue": +/*!***************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeMute.vue ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VolumeMute.vue?vue&type=template&id=1847b5ff& */ "./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff&"); +/* harmony import */ var _VolumeMute_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VolumeMute.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _VolumeMute_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__["render"], + _VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/VolumeMute.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js& ***! + \****************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_VolumeMute_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./VolumeMute.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_VolumeMute_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff&": +/*!**********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff& ***! + \**********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./VolumeMute.vue?vue&type=template&id=1847b5ff& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/25.d87a38ad5bca1c24d4e3.js b/public/25.d87a38ad5bca1c24d4e3.js new file mode 100644 index 00000000..93338487 --- /dev/null +++ b/public/25.d87a38ad5bca1c24d4e3.js @@ -0,0 +1,1251 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[25],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/new-users.vue?vue&type=script&lang=js&": +/*!***********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/new-users.vue?vue&type=script&lang=js& ***! + \***********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_user_media__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/user-media */ "./src/components/user-media.vue"); +/* harmony import */ var $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/ArrowRight */ "./node_modules/vue-material-design-icons/ArrowRight.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'NewUsers', + components: { + UserMedia: $components_user_media__WEBPACK_IMPORTED_MODULE_0__["default"], + ArrowRight: $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__["default"] + }, + data: function data() { + return { + users: [] + }; + }, + methods: { + loadUsers: function loadUsers() { + var _this = this; + + this.$http.get('users?latest=1&limit=12').then(function (users) { + return _this.users = users.data; + }); + } + }, + mounted: function mounted() { + this.loadUsers(); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-locked.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-locked.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_AccountOff__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/AccountOff */ "./node_modules/vue-material-design-icons/AccountOff.vue"); +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'user-locked', + components: { + AccountOffIcon: $icons_AccountOff__WEBPACK_IMPORTED_MODULE_0__["default"] + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-ranking.vue?vue&type=script&lang=js&": +/*!**************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-ranking.vue?vue&type=script&lang=js& ***! + \**************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_user_media__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/user-media */ "./src/components/user-media.vue"); +/* harmony import */ var $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/ArrowRight */ "./node_modules/vue-material-design-icons/ArrowRight.vue"); +/* harmony import */ var $icons_Check__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/Check */ "./node_modules/vue-material-design-icons/Check.vue"); +/* harmony import */ var $icons_Plus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/Plus */ "./node_modules/vue-material-design-icons/Plus.vue"); +/* harmony import */ var $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! $components/buttons/follow-btn */ "./src/components/buttons/follow-btn.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'NewUsers', + components: { + FollowBtn: $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_4__["default"], + UserMedia: $components_user_media__WEBPACK_IMPORTED_MODULE_0__["default"], + ArrowRightIcon: $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__["default"], + CheckIcon: $icons_Check__WEBPACK_IMPORTED_MODULE_2__["default"], + PlusIcon: $icons_Plus__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + data: function data() { + return { + users: [] + }; + }, + methods: { + loadUsers: function loadUsers() { + var _this = this; + + this.$http.get('users?limit=10').then(function (users) { + return _this.users = users.data; + }); + } + }, + mounted: function mounted() { + this.loadUsers(); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/show.vue?vue&type=script&lang=js&": +/*!*********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/show.vue?vue&type=script&lang=js& ***! + \*********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dayjs */ "./node_modules/dayjs/dayjs.min.js"); +/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dayjs__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +/* harmony import */ var $components_hot_tags__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $components/hot-tags */ "./src/components/hot-tags.vue"); +/* harmony import */ var $components_user_ranking__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! $components/user-ranking */ "./src/components/user-ranking.vue"); +/* harmony import */ var $components_new_users__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! $components/new-users */ "./src/components/new-users.vue"); +/* harmony import */ var $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! $components/buttons/follow-btn */ "./src/components/buttons/follow-btn.vue"); +/* harmony import */ var $icons_MapMarker__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! $icons/MapMarker */ "./node_modules/vue-material-design-icons/MapMarker.vue"); +/* harmony import */ var $icons_Domain__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! $icons/Domain */ "./node_modules/vue-material-design-icons/Domain.vue"); +/* harmony import */ var $icons_Link__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! $icons/Link */ "./node_modules/vue-material-design-icons/Link.vue"); +/* harmony import */ var $icons_AccountOff__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! $icons/AccountOff */ "./node_modules/vue-material-design-icons/AccountOff.vue"); +/* harmony import */ var $icons_CalendarCheck__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! $icons/CalendarCheck */ "./node_modules/vue-material-design-icons/CalendarCheck.vue"); +/* harmony import */ var $icons_AccountTie__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! $icons/AccountTie */ "./node_modules/vue-material-design-icons/AccountTie.vue"); +/* harmony import */ var $components_user_social_btns__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! $components/user-social-btns */ "./src/components/user-social-btns.vue"); +/* harmony import */ var $components_user_locked__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! $components/user-locked */ "./src/components/user-locked.vue"); + + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _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; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + + + + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'show', + components: { + UserLocked: $components_user_locked__WEBPACK_IMPORTED_MODULE_14__["default"], + FollowBtn: $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_6__["default"], + DomainIcon: $icons_Domain__WEBPACK_IMPORTED_MODULE_8__["default"], + CalendarCheckIcon: $icons_CalendarCheck__WEBPACK_IMPORTED_MODULE_11__["default"], + LinkIcon: $icons_Link__WEBPACK_IMPORTED_MODULE_9__["default"], + AdminIcon: $icons_AccountTie__WEBPACK_IMPORTED_MODULE_12__["default"], + AccountOffIcon: $icons_AccountOff__WEBPACK_IMPORTED_MODULE_10__["default"], + MapMarkerIcon: $icons_MapMarker__WEBPACK_IMPORTED_MODULE_7__["default"], + HotTags: $components_hot_tags__WEBPACK_IMPORTED_MODULE_3__["default"], + UserRanking: $components_user_ranking__WEBPACK_IMPORTED_MODULE_4__["default"], + NewUsers: $components_new_users__WEBPACK_IMPORTED_MODULE_5__["default"], + UserSocialBtns: $components_user_social_btns__WEBPACK_IMPORTED_MODULE_13__["default"] + }, + data: function data() { + return { + user: {}, + navFixed: false + }; + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_2__["mapGetters"])(['currentUser'])), + beforeRouteUpdate: function beforeRouteUpdate(to, from, next) { + if (to.params.username !== from.params.username) { + this.getUser(to.params.username); + } + + next(); + }, + created: function created() { + this.getUser(this.$route.params.username); + this.$nextTick(this.registerEventListener); + }, + methods: { + getUser: function () { + var _getUser = _asyncToGenerator( + /*#__PURE__*/ + _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee(username) { + var _this = this; + + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + username = username || this.$route.params.username; + _context.next = 3; + return this.$http.get("users/".concat(username)).catch(function () { + _this.$router.replace({ + name: 'pages.not-found' + }); + }); + + case 3: + this.user = _context.sent; + + case 4: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function getUser(_x) { + return _getUser.apply(this, arguments); + } + + return getUser; + }(), + toggleStatus: function toggleStatus(timestamp) { + var _this2 = this; + + this.user[timestamp] = this.user[timestamp] ? null : dayjs__WEBPACK_IMPORTED_MODULE_1___default()().format('YYYY-MM-DD HH:mm:ss'); + this.$http.patch("users/".concat(this.user.username), this.user).then(function () { + _this2.$message.success('搞定!'); + + _this2.getUser(); + }); + }, + registerEventListener: function registerEventListener() { + var _this3 = this; + + var vm = this; + window.addEventListener('scroll', function () { + if (vm.$route.name.substr(0, 5) === 'users') { + var top = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; + _this3.navFixed = top >= document.querySelector('.user-show-navbar').offsetTop; + } + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss&": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss& ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".page-user-show .bg-image[data-v-192747c5] {\n overflow: hidden;\n}\n.page-user-show .bg-image img[data-v-192747c5] {\n width: 100%;\n height: auto;\n}\n.page-user-show .page-header[data-v-192747c5] {\n min-height: 40vh;\n overflow-y: visible;\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n}\n.page-user-show .user-show-navbar[data-v-192747c5] {\n position: -webkit-sticky;\n position: sticky;\n top: -1px;\n z-index: 999;\n}\n.page-user-show .user-show-navbar .nav[data-v-192747c5] {\n position: relative;\n background: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.page-user-show .avatar[data-v-192747c5] {\n border: 2px solid #fff;\n}\n.page-user-show .user-profile[data-v-192747c5] {\n z-index: 2;\n text-shadow: 1px 1px 10px #3d465e;\n}\n@media (max-width: 768px) {\n.page-user-show .user-profile[data-v-192747c5] {\n text-align: center;\n}\n.page-user-show .user-social-btns[data-v-192747c5] {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss&": +/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss& ***! + \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/new-users.vue?vue&type=template&id=667f163b&": +/*!***************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/new-users.vue?vue&type=template&id=667f163b& ***! + \***************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box box-flush text-gray-50" }, [ + _vm._m(0), + _vm._v(" "), + _c( + "ul", + { staticClass: "plan-list px-2 pb-2" }, + _vm._l(_vm.users, function(item) { + return _c("user-media", { + key: item.id, + attrs: { type: "vertical w25", user: item } + }) + }), + 1 + ) + ]) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box-body" }, [ + _c( + "div", + { staticClass: "d-flex align-items-center justify-content-between" }, + [_c("div", { staticClass: "text-13" }, [_vm._v("最新用户")])] + ) + ]) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-locked.vue?vue&type=template&id=88e03128&": +/*!*****************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-locked.vue?vue&type=template&id=88e03128& ***! + \*****************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box text-center text-danger" }, [ + _c("h1", [_c("account-off-icon")], 1), + _vm._v(" 该账户已被冻结\n") + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-ranking.vue?vue&type=template&id=1e61b644&": +/*!******************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-ranking.vue?vue&type=template&id=1e61b644& ***! + \******************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box text-gray-50" }, [ + _vm._m(0), + _vm._v(" "), + _c( + "ul", + { staticClass: "plan-list" }, + _vm._l(_vm.users, function(item) { + return _c( + "user-media", + { + key: item.id, + staticClass: "mb-2 d-flex align-items-center", + attrs: { user: item } + }, + [ + _c( + "template", + { slot: "appends" }, + [ + _c("follow-btn", { + staticClass: "ml-auto", + attrs: { item: item, simple: "" } + }) + ], + 1 + ), + _vm._v(" "), + _c("template", { slot: "description" }, [ + _c("div", { staticClass: "text-gray-70 text-12" }, [ + _vm._v(_vm._s(item.created_at_timeago)) + ]) + ]) + ], + 2 + ) + }), + 1 + ) + ]) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { + staticClass: + "box-heading d-flex align-items-center justify-content-between" + }, + [_c("div", { staticClass: "text-13" }, [_vm._v("活跃用户")])] + ) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/show.vue?vue&type=template&id=192747c5&scoped=true&": +/*!*************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/show.vue?vue&type=template&id=192747c5&scoped=true& ***! + \*************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm.user.id + ? _c("div", { staticClass: "page-user-show" }, [ + _c( + "header", + { + staticClass: "page-header d-flex align-items-end bg-grey-blue py-2", + staticStyle: { "background-image": "url(/banners/shanghai.jpg)" } + }, + [ + _c( + "div", + { + staticClass: + "user-profile container position-relative w-100 text-white p-2 d-md-flex flex-row align-items-center" + }, + [ + _c("img", { + staticClass: "avatar avatar-120", + attrs: { src: _vm.user.avatar, alt: "User avatar" } + }), + _vm._v(" "), + _c("div", { staticClass: "ml-md-3" }, [ + _c("h1", { staticClass: "mt-2 mb-0" }, [ + _vm._v( + "\n " + _vm._s(_vm.user.name) + "\n " + ), + _c( + "a", + { + staticClass: + "ml-md-1 d-block d-md-inline text-gray-90 text-16" + }, + [_vm._v("@" + _vm._s(_vm.user.username))] + ) + ]), + _vm._v(" "), + !_vm.user.banned_at + ? _c("div", { staticClass: "my-1" }, [ + _vm._v(_vm._s(_vm.user.bio)) + ]) + : _vm._e(), + _vm._v(" "), + !_vm.user.banned_at + ? _c( + "div", + { + staticClass: + "extends text-white d-none d-md-block d-lg-flex" + }, + [ + _vm.user.extends.location + ? _c( + "div", + { staticClass: "mr-1" }, + [ + _c("map-marker-icon", { + staticClass: "mr-1" + }), + _vm._v( + "\n " + + _vm._s(_vm.user.extends.location) + + "\n " + ) + ], + 1 + ) + : _vm._e(), + _vm._v(" "), + _vm.user.extends.company + ? _c( + "div", + { staticClass: "mr-1" }, + [ + _c("domain-icon", { staticClass: "mr-1" }), + _vm._v( + "\n " + + _vm._s(_vm.user.extends.company) + + "\n " + ) + ], + 1 + ) + : _vm._e(), + _vm._v(" "), + _vm.user.extends.home_url + ? _c( + "div", + { staticClass: "mr-1" }, + [ + _c("link-icon", { staticClass: "mr-1" }), + _vm._v(" "), + _c( + "a", + { + staticClass: "text-white", + attrs: { href: _vm.user.extends.home_url } + }, + [_vm._v(_vm._s(_vm.user.extends.home_url))] + ) + ], + 1 + ) + : _vm._e(), + _vm._v(" "), + _c( + "div", + { staticClass: "mr-1" }, + [ + _c("calendar-check-icon", { + staticClass: "mr-1" + }), + _vm._v( + "\n 加入于 " + + _vm._s(_vm.user.created_at_timeago) + + "\n " + ) + ], + 1 + ) + ] + ) + : _vm._e(), + _vm._v(" "), + _c( + "div", + { staticClass: "pt-2" }, + [ + _c("user-social-btns", { + attrs: { user: _vm.user, spacing: 2 } + }) + ], + 1 + ) + ]), + _vm._v(" "), + _vm.currentUser && + _vm.currentUser.id != _vm.user.id && + !_vm.user.banned_at + ? [ + _c("follow-btn", { + staticClass: "d-inline-block ml-md-auto", + attrs: { item: _vm.user } + }) + ] + : _vm._e() + ], + 2 + ) + ] + ), + _vm._v(" "), + _c("div", { staticClass: "user-show-navbar bg-white" }, [ + _c("div", { staticClass: "container" }, [ + _c( + "div", + { + staticClass: + "nav nav-tab-line text-center shadow-6 align-items-stretch" + }, + [ + _c( + "div", + { staticClass: "nav-item" }, + [ + _c( + "router-link", + { + staticClass: "nav-link", + attrs: { to: { name: "users.show" }, exact: "" } + }, + [_vm._v("最新动态")] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "nav-item" }, + [ + _c( + "router-link", + { + staticClass: "nav-link", + attrs: { to: { name: "users.threads" }, exact: "" } + }, + [ + _vm._v("\n 讨论\n "), + _c("span", { staticClass: "text-gray-70 pl-1" }, [ + _vm._v(_vm._s(_vm.user.cache.threads_count)) + ]) + ] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "nav-item" }, + [ + _c( + "router-link", + { + staticClass: "nav-link", + attrs: { to: { name: "users.following" }, exact: "" } + }, + [ + _vm._v("\n 关注\n "), + _c("span", { staticClass: "text-gray-70 pl-1" }, [ + _vm._v(_vm._s(_vm.user.cache.followings_count)) + ]) + ] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "nav-item" }, + [ + _c( + "router-link", + { + staticClass: "nav-link", + attrs: { to: { name: "users.followers" }, exact: "" } + }, + [ + _vm._v("\n 粉丝\n "), + _c("span", { staticClass: "text-gray-70 pl-1" }, [ + _vm._v(_vm._s(_vm.user.cache.followers_count)) + ]) + ] + ) + ], + 1 + ), + _vm._v(" "), + _vm.currentUser.is_admin + ? _c("div", { staticClass: "nav-item ml-auto" }, [ + _c("div", { staticClass: "btn-group" }, [ + _c( + "button", + { + staticClass: + "btn btn-link nav-link dropdown-toggle", + attrs: { + type: "button", + "data-toggle": "dropdown", + "aria-haspopup": "true", + "aria-expanded": "false" + } + }, + [_c("admin-icon"), _vm._v("管理\n ")], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "dropdown-menu dropdown-menu-right" }, + [ + _c( + "button", + { + staticClass: "dropdown-item", + class: { "text-danger": !_vm.user.banned_at }, + attrs: { type: "button" }, + on: { + click: function($event) { + return _vm.toggleStatus("banned_at") + } + } + }, + [ + _c("account-off-icon", { staticClass: "mr-1" }), + _vm._v( + "\n " + + _vm._s( + _vm.user.banned_at ? "取消冻结" : "冻结" + ) + + "\n " + ) + ], + 1 + ) + ] + ) + ]) + ]) + : _vm._e() + ] + ) + ]) + ]), + _vm._v(" "), + !_vm.user.banned_at + ? _c("div", { staticClass: "container pt-4" }, [ + _c("div", { staticClass: "row" }, [ + _c("div", { staticClass: "col-lg-9" }, [_c("router-view")], 1), + _vm._v(" "), + _c( + "div", + { staticClass: "col-lg-3" }, + [ + _c("hot-tags"), + _vm._v(" "), + _c("new-users", { staticClass: "mt-2" }), + _vm._v(" "), + _c("user-ranking", { staticClass: "mt-2" }) + ], + 1 + ) + ]) + ]) + : _c("div", { staticClass: "container mt-4" }, [_c("user-locked")], 1) + ]) + : _vm._e() +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/new-users.vue": +/*!**************************************!*\ + !*** ./src/components/new-users.vue ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./new-users.vue?vue&type=template&id=667f163b& */ "./src/components/new-users.vue?vue&type=template&id=667f163b&"); +/* harmony import */ var _new_users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./new-users.vue?vue&type=script&lang=js& */ "./src/components/new-users.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _new_users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__["render"], + _new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/new-users.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/new-users.vue?vue&type=script&lang=js&": +/*!***************************************************************!*\ + !*** ./src/components/new-users.vue?vue&type=script&lang=js& ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_new_users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./new-users.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/new-users.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_new_users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/new-users.vue?vue&type=template&id=667f163b&": +/*!*********************************************************************!*\ + !*** ./src/components/new-users.vue?vue&type=template&id=667f163b& ***! + \*********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./new-users.vue?vue&type=template&id=667f163b& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/new-users.vue?vue&type=template&id=667f163b&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/user-locked.vue": +/*!****************************************!*\ + !*** ./src/components/user-locked.vue ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _user_locked_vue_vue_type_template_id_88e03128___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user-locked.vue?vue&type=template&id=88e03128& */ "./src/components/user-locked.vue?vue&type=template&id=88e03128&"); +/* harmony import */ var _user_locked_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user-locked.vue?vue&type=script&lang=js& */ "./src/components/user-locked.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _user_locked_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _user_locked_vue_vue_type_template_id_88e03128___WEBPACK_IMPORTED_MODULE_0__["render"], + _user_locked_vue_vue_type_template_id_88e03128___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/user-locked.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/user-locked.vue?vue&type=script&lang=js&": +/*!*****************************************************************!*\ + !*** ./src/components/user-locked.vue?vue&type=script&lang=js& ***! + \*****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_locked_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./user-locked.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-locked.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_locked_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/user-locked.vue?vue&type=template&id=88e03128&": +/*!***********************************************************************!*\ + !*** ./src/components/user-locked.vue?vue&type=template&id=88e03128& ***! + \***********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_locked_vue_vue_type_template_id_88e03128___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./user-locked.vue?vue&type=template&id=88e03128& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-locked.vue?vue&type=template&id=88e03128&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_locked_vue_vue_type_template_id_88e03128___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_locked_vue_vue_type_template_id_88e03128___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/user-ranking.vue": +/*!*****************************************!*\ + !*** ./src/components/user-ranking.vue ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user-ranking.vue?vue&type=template&id=1e61b644& */ "./src/components/user-ranking.vue?vue&type=template&id=1e61b644&"); +/* harmony import */ var _user_ranking_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user-ranking.vue?vue&type=script&lang=js& */ "./src/components/user-ranking.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _user_ranking_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__["render"], + _user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/user-ranking.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/user-ranking.vue?vue&type=script&lang=js&": +/*!******************************************************************!*\ + !*** ./src/components/user-ranking.vue?vue&type=script&lang=js& ***! + \******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_ranking_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./user-ranking.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-ranking.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_ranking_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/user-ranking.vue?vue&type=template&id=1e61b644&": +/*!************************************************************************!*\ + !*** ./src/components/user-ranking.vue?vue&type=template&id=1e61b644& ***! + \************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./user-ranking.vue?vue&type=template&id=1e61b644& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-ranking.vue?vue&type=template&id=1e61b644&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/users/show.vue": +/*!************************************!*\ + !*** ./src/modules/users/show.vue ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _show_vue_vue_type_template_id_192747c5_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./show.vue?vue&type=template&id=192747c5&scoped=true& */ "./src/modules/users/show.vue?vue&type=template&id=192747c5&scoped=true&"); +/* harmony import */ var _show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./show.vue?vue&type=script&lang=js& */ "./src/modules/users/show.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _show_vue_vue_type_style_index_0_id_192747c5_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss& */ "./src/modules/users/show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _show_vue_vue_type_template_id_192747c5_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"], + _show_vue_vue_type_template_id_192747c5_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + "192747c5", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/users/show.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/users/show.vue?vue&type=script&lang=js&": +/*!*************************************************************!*\ + !*** ./src/modules/users/show.vue?vue&type=script&lang=js& ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/show.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/users/show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss&": +/*!**********************************************************************************************!*\ + !*** ./src/modules/users/show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss& ***! + \**********************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_id_192747c5_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../../node_modules/style-loader!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_id_192747c5_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_id_192747c5_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_id_192747c5_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_id_192747c5_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_id_192747c5_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/modules/users/show.vue?vue&type=template&id=192747c5&scoped=true&": +/*!*******************************************************************************!*\ + !*** ./src/modules/users/show.vue?vue&type=template&id=192747c5&scoped=true& ***! + \*******************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_192747c5_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=template&id=192747c5&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/show.vue?vue&type=template&id=192747c5&scoped=true&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_192747c5_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_192747c5_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/26.b8030d901505289d5697.js b/public/26.b8030d901505289d5697.js new file mode 100644 index 00000000..ba82e558 --- /dev/null +++ b/public/26.b8030d901505289d5697.js @@ -0,0 +1,858 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[26],{ + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "ArrowLeftIcon", + props: { + title: { + type: String, + default: "Arrow Left icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "FileDocumentBoxOutlineIcon", + props: { + title: { + type: String, + default: "File Document Box Outline icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "HeartIcon", + props: { + title: { + type: String, + default: "Heart icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "TooltipOutlineIcon", + props: { + title: { + type: String, + default: "Tooltip Outline icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=template&id=b9ea0198&": +/*!***************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=template&id=b9ea0198& ***! + \***************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon arrow-left-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=template&id=6a70bc3a&": +/*!****************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=template&id=6a70bc3a& ***! + \****************************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon file-document-box-outline-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M5,3C3.89,3 3,3.89 3,5V19C3,20.11 3.89,21 5,21H19C20.11,21 21,20.11 21,19V5C21,3.89 20.11,3 19,3H5M5,5H19V19H5V5M7,7V9H17V7H7M7,11V13H17V11H7M7,15V17H14V15H7Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon heart-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon tooltip-outline-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M4,2H20C21.1,2 22,2.9 22,4V16C22,17.1 21.1,18 20,18H16L12,22L8,18H4C2.9,18 2,17.1 2,16V4C2,2.9 2.9,2 4,2M4,4V16H8.83L12,19.17L15.17,16H20V4H4Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ArrowLeft.vue": +/*!**************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ArrowLeft.vue ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _ArrowLeft_vue_vue_type_template_id_b9ea0198___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ArrowLeft.vue?vue&type=template&id=b9ea0198& */ "./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=template&id=b9ea0198&"); +/* harmony import */ var _ArrowLeft_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ArrowLeft.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _ArrowLeft_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _ArrowLeft_vue_vue_type_template_id_b9ea0198___WEBPACK_IMPORTED_MODULE_0__["render"], + _ArrowLeft_vue_vue_type_template_id_b9ea0198___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/ArrowLeft.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=script&lang=js&": +/*!***************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=script&lang=js& ***! + \***************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_ArrowLeft_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./ArrowLeft.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_ArrowLeft_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=template&id=b9ea0198&": +/*!*********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=template&id=b9ea0198& ***! + \*********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ArrowLeft_vue_vue_type_template_id_b9ea0198___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./ArrowLeft.vue?vue&type=template&id=b9ea0198& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=template&id=b9ea0198&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ArrowLeft_vue_vue_type_template_id_b9ea0198___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ArrowLeft_vue_vue_type_template_id_b9ea0198___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue": +/*!***************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue ***! + \***************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _FileDocumentBoxOutline_vue_vue_type_template_id_6a70bc3a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FileDocumentBoxOutline.vue?vue&type=template&id=6a70bc3a& */ "./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=template&id=6a70bc3a&"); +/* harmony import */ var _FileDocumentBoxOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FileDocumentBoxOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _FileDocumentBoxOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _FileDocumentBoxOutline_vue_vue_type_template_id_6a70bc3a___WEBPACK_IMPORTED_MODULE_0__["render"], + _FileDocumentBoxOutline_vue_vue_type_template_id_6a70bc3a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=script&lang=js&": +/*!****************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=script&lang=js& ***! + \****************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_FileDocumentBoxOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./FileDocumentBoxOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_FileDocumentBoxOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=template&id=6a70bc3a&": +/*!**********************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=template&id=6a70bc3a& ***! + \**********************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_FileDocumentBoxOutline_vue_vue_type_template_id_6a70bc3a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./FileDocumentBoxOutline.vue?vue&type=template&id=6a70bc3a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=template&id=6a70bc3a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_FileDocumentBoxOutline_vue_vue_type_template_id_6a70bc3a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_FileDocumentBoxOutline_vue_vue_type_template_id_6a70bc3a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Heart.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Heart.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Heart.vue?vue&type=template&id=6577aeca& */ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&"); +/* harmony import */ var _Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Heart.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["render"], + _Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Heart.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Heart.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Heart.vue?vue&type=template&id=6577aeca& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue": +/*!*******************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony import */ var _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/TooltipOutline.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \********************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!**************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \**************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/27.01037232ebbfbdd37446.js b/public/27.01037232ebbfbdd37446.js new file mode 100644 index 00000000..726f8f1b --- /dev/null +++ b/public/27.01037232ebbfbdd37446.js @@ -0,0 +1,857 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[27],{ + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "BellIcon", + props: { + title: { + type: String, + default: "Bell icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "CheckIcon", + props: { + title: { + type: String, + default: "Check icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Inbox.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Inbox.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "InboxIcon", + props: { + title: { + type: String, + default: "Inbox icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "TooltipOutlineIcon", + props: { + title: { + type: String, + default: "Tooltip Outline icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2&": +/*!**********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2& ***! + \**********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon bell-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M21,19V20H3V19L5,17V11C5,7.9 7.03,5.17 10,4.29C10,4.19 10,4.1 10,4C10,2.9 10.9,2 12,2C13.1,2 14,2.9 14,4C14,4.1 14,4.19 14,4.29C16.97,5.17 19,7.9 19,11V17L21,19M14,21C14,22.1 13.1,23 12,23C10.9,23 10,22.1 10,21" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon check-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Inbox.vue?vue&type=template&id=5eb27dec&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Inbox.vue?vue&type=template&id=5eb27dec& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon inbox-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M19,15H15C15,16.66 13.66,18 12,18C10.34,18 9,16.66 9,15H5V5H19M19,3H5C3.89,3 3,3.9 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.9 20.1,3 19,3Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon tooltip-outline-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M4,2H20C21.1,2 22,2.9 22,4V16C22,17.1 21.1,18 20,18H16L12,22L8,18H4C2.9,18 2,17.1 2,16V4C2,2.9 2.9,2 4,2M4,4V16H8.83L12,19.17L15.17,16H20V4H4Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Bell.vue": +/*!*********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Bell.vue ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Bell.vue?vue&type=template&id=2f3d3ca2& */ "./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2&"); +/* harmony import */ var _Bell_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Bell.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Bell_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__["render"], + _Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Bell.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js&": +/*!**********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js& ***! + \**********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Bell_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Bell.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Bell_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2& ***! + \****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Bell.vue?vue&type=template&id=2f3d3ca2& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Check.vue?vue&type=template&id=7146728c& */ "./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&"); +/* harmony import */ var _Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Check.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["render"], + _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Check.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Check.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Check.vue?vue&type=template&id=7146728c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Inbox.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Inbox.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Inbox_vue_vue_type_template_id_5eb27dec___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Inbox.vue?vue&type=template&id=5eb27dec& */ "./node_modules/vue-material-design-icons/Inbox.vue?vue&type=template&id=5eb27dec&"); +/* harmony import */ var _Inbox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Inbox.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Inbox.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Inbox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Inbox_vue_vue_type_template_id_5eb27dec___WEBPACK_IMPORTED_MODULE_0__["render"], + _Inbox_vue_vue_type_template_id_5eb27dec___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Inbox.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Inbox.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Inbox.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Inbox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Inbox.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Inbox.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Inbox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Inbox.vue?vue&type=template&id=5eb27dec&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Inbox.vue?vue&type=template&id=5eb27dec& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Inbox_vue_vue_type_template_id_5eb27dec___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Inbox.vue?vue&type=template&id=5eb27dec& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Inbox.vue?vue&type=template&id=5eb27dec&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Inbox_vue_vue_type_template_id_5eb27dec___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Inbox_vue_vue_type_template_id_5eb27dec___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue": +/*!*******************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony import */ var _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/TooltipOutline.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \********************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!**************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \**************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/28.e38d3c3987dee7e489b5.js b/public/28.e38d3c3987dee7e489b5.js new file mode 100644 index 00000000..8873ce73 --- /dev/null +++ b/public/28.e38d3c3987dee7e489b5.js @@ -0,0 +1,886 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[28],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/relation-btn.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + props: { + relation: { + type: String, + required: true + }, + action: { + type: String, + required: true + }, + item: { + type: Object, + required: true, + default: function _default() { + return {}; + } + } + }, + data: function data() { + return { + types: { + thread: 'App\\Thread', + user: "App\\User", + node: 'App\\Node' + }, + actions: { + like: 'has_liked', + follow: 'has_followed', + subscribe: 'has_subscribed' + } + }; + }, + methods: { + toggle: function toggle() { + var _this = this; + + // let action = !this.item[this.actions[this.action]] ? this.action : `${this.action}` + this.$http.post("relations/".concat(this.action), { + followable_type: this.types[this.relation], + followable_id: this.item.id + }).then(function () { + _this.item[_this.actions[_this.action]] = !_this.item[_this.actions[_this.action]]; + + _this.$emit('after-toggle', _this.item[_this.actions[_this.action]]); + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js&": +/*!***********************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js& ***! + \***********************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _relation_btn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./relation-btn */ "./src/components/buttons/relation-btn.vue"); +/* harmony import */ var $icons_VolumeMute__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/VolumeMute */ "./node_modules/vue-material-design-icons/VolumeMute.vue"); +/* harmony import */ var $icons_VolumeHigh__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/VolumeHigh */ "./node_modules/vue-material-design-icons/VolumeHigh.vue"); +/* harmony import */ var $icons_Check__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/Check */ "./node_modules/vue-material-design-icons/Check.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'subscribe-btn', + components: { + RelationBtn: _relation_btn__WEBPACK_IMPORTED_MODULE_0__["default"], + VolumeMute: $icons_VolumeMute__WEBPACK_IMPORTED_MODULE_1__["default"], + VolumeHigh: $icons_VolumeHigh__WEBPACK_IMPORTED_MODULE_2__["default"], + CheckIcon: $icons_Check__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + props: { + relation: { + type: String, + required: true + }, + item: { + type: Object, + required: true + } + }, + data: function data() { + return { + hovering: false + }; + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/hot-tags.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'HotTags', + data: function data() { + return { + nodes: [] + }; + }, + methods: { + loadNodes: function loadNodes() { + var _this = this; + + this.$http.get('nodes?hot=5&per_page=5').then(function (nodes) { + return _this.nodes = nodes.data; + }); + } + }, + created: function created() { + this.loadNodes(); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/nodes/show.vue?vue&type=script&lang=js&": +/*!*********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/nodes/show.vue?vue&type=script&lang=js& ***! + \*********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +/* harmony import */ var $components_hot_tags__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $components/hot-tags */ "./src/components/hot-tags.vue"); +/* harmony import */ var $components_threads_list__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $components/threads-list */ "./src/components/threads-list.vue"); +/* harmony import */ var $components_buttons_subscribe_btn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $components/buttons/subscribe-btn */ "./src/components/buttons/subscribe-btn.vue"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _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; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + SubscribeBtn: $components_buttons_subscribe_btn__WEBPACK_IMPORTED_MODULE_3__["default"], + HotTags: $components_hot_tags__WEBPACK_IMPORTED_MODULE_1__["default"], + ThreadsList: $components_threads_list__WEBPACK_IMPORTED_MODULE_2__["default"] + }, + data: function data() { + return { + node: {}, + threads: { + default: {}, + featured: {}, + zeroComment: {}, + recent: {} + }, + currentThreadsTab: 'default' + }; + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_0__["mapGetters"])(['currentUser'])), + beforeRouteUpdate: function beforeRouteUpdate(to, from, next) { + if (to.params.id != from.params.id) { + this.getNode(to.params.id); + this.loadThreads(to.params.id); + } + + next(); + }, + created: function created() { + this.getNode(this.$route.params.id); + this.loadThreads(this.$route.params.id); + }, + watch: { + currentThreadsTab: function currentThreadsTab() { + this.loadThreads(this.$route.params.id, 1); + } + }, + methods: { + loadThreads: function loadThreads(id) { + var _this = this; + + var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; + this.$http.get("nodes/".concat(id, "/threads?all=yes&page=").concat(page)).then(function (threads) { + return _this.threads[_this.currentThreadsTab] = threads; + }); + }, + handlePageChanged: function handlePageChanged(page) { + this.loadThreads(page); + }, + getNode: function getNode(id) { + var _this2 = this; + + this.$http.get("nodes/".concat(id)).then(function (data) { + _this2.node = data; + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&": +/*!**************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69& ***! + \**************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { on: { click: _vm.toggle } }, + [!_vm.item[_vm.actions[_vm.action]] ? [_vm._t("on")] : [_vm._t("off")]], + 2 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a&": +/*!***************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a& ***! + \***************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "relation-btn", + { attrs: { relation: _vm.relation, action: "subscribe", item: _vm.item } }, + [ + _c( + "button", + { + staticClass: "btn btn-sm text-gray-50", + attrs: { slot: "on" }, + slot: "on" + }, + [ + _c("volume-high"), + _c("span", { staticClass: "pl-1" }, [_vm._v("订阅")]) + ], + 1 + ), + _vm._v(" "), + _c( + "button", + { + staticClass: "btn btn-sm", + class: { "btn-primary": !_vm.hovering, "btn-danger": _vm.hovering }, + attrs: { slot: "off" }, + on: { + mouseenter: function($event) { + _vm.hovering = true + }, + mouseleave: function($event) { + _vm.hovering = false + } + }, + slot: "off" + }, + [ + _vm.hovering ? _c("volume-mute") : _c("check-icon"), + _vm._v(" "), + _c("span", { staticClass: "pl-1" }, [ + _vm._v(_vm._s(_vm.hovering ? "取消订阅" : "已订阅")) + ]) + ], + 1 + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=template&id=622cc129&": +/*!**************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/hot-tags.vue?vue&type=template&id=622cc129& ***! + \**************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box text-gray-50" }, [ + _vm._m(0), + _vm._v(" "), + _c( + "ul", + { staticClass: "plan-list text-13" }, + [ + _vm._l(_vm.nodes, function(node) { + return [ + _c( + "router-link", + { + key: node.id, + staticClass: "py-1 cursor-pointer", + attrs: { + tag: "li", + to: { name: "nodes.node", params: { id: node.id } } + } + }, + [ + _vm._v("\n #" + _vm._s(node.title) + " "), + _c("span", { staticClass: "float-right" }, [ + _vm._v(_vm._s(node.cache ? node.cache.threads_count : 0)) + ]) + ] + ) + ] + }) + ], + 2 + ) + ]) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box-heading" }, [ + _c("div", { staticClass: "text-13" }, [_vm._v("热门话题")]) + ]) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/nodes/show.vue?vue&type=template&id=ca881d88&": +/*!*************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/nodes/show.vue?vue&type=template&id=ca881d88& ***! + \*************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "page-node-show" }, [ + _c("header", { staticClass: "page-header bg-grey-blue py-3 text-white" }, [ + _c("div", { staticClass: "container" }, [ + _c("div", { staticClass: "row align-items-center" }, [ + _c("div", { staticClass: "col-md-6" }, [ + _c("h1", [_vm._v(_vm._s(_vm.node.title))]), + _vm._v(" "), + _c("p", [_vm._v(_vm._s(_vm.node.description))]) + ]), + _vm._v(" "), + _c( + "div", + { staticClass: "col-md-6 d-flex justify-content-end" }, + [ + _c("subscribe-btn", { + attrs: { relation: "node", item: _vm.node } + }) + ], + 1 + ) + ]) + ]) + ]), + _vm._v(" "), + _c("div", { staticClass: "container" }, [ + _c("div", { staticClass: "row mt-3" }, [ + _c("div", { staticClass: "col-md-9" }, [ + _c( + "div", + { staticClass: "box box-flush" }, + [ + _c("div", { staticClass: "box-body" }, [ + _c("ul", { staticClass: "nav nav-pills" }, [ + _c("li", { staticClass: "nav-item" }, [ + _c( + "a", + { + staticClass: "nav-link", + class: { active: _vm.currentThreadsTab == "default" }, + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + _vm.currentThreadsTab = "default" + } + } + }, + [_vm._v("活跃")] + ) + ]), + _vm._v(" "), + _c("li", { staticClass: "nav-item" }, [ + _c( + "a", + { + staticClass: "nav-link", + class: { active: _vm.currentThreadsTab == "featured" }, + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + _vm.currentThreadsTab = "featured" + } + } + }, + [_vm._v("精选")] + ) + ]), + _vm._v(" "), + _c("li", { staticClass: "nav-item" }, [ + _c( + "a", + { + staticClass: "nav-link", + class: { + active: _vm.currentThreadsTab == "zeroComment" + }, + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + _vm.currentThreadsTab = "zeroComment" + } + } + }, + [_vm._v("零回复")] + ) + ]), + _vm._v(" "), + _c("li", { staticClass: "nav-item" }, [ + _c( + "a", + { + staticClass: "nav-link", + class: { active: _vm.currentThreadsTab == "recent" }, + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + _vm.currentThreadsTab = "recent" + } + } + }, + [_vm._v("最新发布")] + ) + ]) + ]) + ]), + _vm._v(" "), + _c("threads-list", { + attrs: { threads: _vm.threads[_vm.currentThreadsTab] }, + on: { "page-changed": _vm.handlePageChanged } + }) + ], + 1 + ) + ]), + _vm._v(" "), + _c("div", { staticClass: "col-md-3" }, [_c("hot-tags")], 1) + ]) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/buttons/relation-btn.vue": +/*!*************************************************!*\ + !*** ./src/components/buttons/relation-btn.vue ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./relation-btn.vue?vue&type=template&id=4a803e69& */ "./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&"); +/* harmony import */ var _relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./relation-btn.vue?vue&type=script&lang=js& */ "./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["render"], + _relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/buttons/relation-btn.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&": +/*!**************************************************************************!*\ + !*** ./src/components/buttons/relation-btn.vue?vue&type=script&lang=js& ***! + \**************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./relation-btn.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&": +/*!********************************************************************************!*\ + !*** ./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69& ***! + \********************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./relation-btn.vue?vue&type=template&id=4a803e69& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/buttons/subscribe-btn.vue": +/*!**************************************************!*\ + !*** ./src/components/buttons/subscribe-btn.vue ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./subscribe-btn.vue?vue&type=template&id=e241702a& */ "./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a&"); +/* harmony import */ var _subscribe_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./subscribe-btn.vue?vue&type=script&lang=js& */ "./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _subscribe_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__["render"], + _subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/buttons/subscribe-btn.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js&": +/*!***************************************************************************!*\ + !*** ./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js& ***! + \***************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribe_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./subscribe-btn.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribe_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a&": +/*!*********************************************************************************!*\ + !*** ./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a& ***! + \*********************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./subscribe-btn.vue?vue&type=template&id=e241702a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/hot-tags.vue": +/*!*************************************!*\ + !*** ./src/components/hot-tags.vue ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hot-tags.vue?vue&type=template&id=622cc129& */ "./src/components/hot-tags.vue?vue&type=template&id=622cc129&"); +/* harmony import */ var _hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hot-tags.vue?vue&type=script&lang=js& */ "./src/components/hot-tags.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["render"], + _hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/hot-tags.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/hot-tags.vue?vue&type=script&lang=js&": +/*!**************************************************************!*\ + !*** ./src/components/hot-tags.vue?vue&type=script&lang=js& ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./hot-tags.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/hot-tags.vue?vue&type=template&id=622cc129&": +/*!********************************************************************!*\ + !*** ./src/components/hot-tags.vue?vue&type=template&id=622cc129& ***! + \********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./hot-tags.vue?vue&type=template&id=622cc129& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=template&id=622cc129&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/nodes/show.vue": +/*!************************************!*\ + !*** ./src/modules/nodes/show.vue ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _show_vue_vue_type_template_id_ca881d88___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./show.vue?vue&type=template&id=ca881d88& */ "./src/modules/nodes/show.vue?vue&type=template&id=ca881d88&"); +/* harmony import */ var _show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./show.vue?vue&type=script&lang=js& */ "./src/modules/nodes/show.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _show_vue_vue_type_template_id_ca881d88___WEBPACK_IMPORTED_MODULE_0__["render"], + _show_vue_vue_type_template_id_ca881d88___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/nodes/show.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/nodes/show.vue?vue&type=script&lang=js&": +/*!*************************************************************!*\ + !*** ./src/modules/nodes/show.vue?vue&type=script&lang=js& ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/nodes/show.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/nodes/show.vue?vue&type=template&id=ca881d88&": +/*!*******************************************************************!*\ + !*** ./src/modules/nodes/show.vue?vue&type=template&id=ca881d88& ***! + \*******************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_ca881d88___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=template&id=ca881d88& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/nodes/show.vue?vue&type=template&id=ca881d88&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_ca881d88___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_ca881d88___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/29.b6d8eb97f89feb4e8b29.js b/public/29.b6d8eb97f89feb4e8b29.js new file mode 100644 index 00000000..1e81e363 --- /dev/null +++ b/public/29.b6d8eb97f89feb4e8b29.js @@ -0,0 +1,668 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[29],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/profile.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $modules_users_profile_sidebar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $modules/users/profile/sidebar */ "./src/modules/users/profile/sidebar.vue"); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _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; } + +// +// +// +// +// +// +// +// +// +// +// +// +// + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'show', + components: { + Sidebar: $modules_users_profile_sidebar__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_1__["mapGetters"])(['currentUser'])), + methods: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_1__["mapActions"])(['setUser'])) +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile/sidebar.vue?vue&type=script&lang=js&": +/*!********************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/profile/sidebar.vue?vue&type=script&lang=js& ***! + \********************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_Settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/Settings */ "./node_modules/vue-material-design-icons/Settings.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + SettingIcon: $icons_Settings__WEBPACK_IMPORTED_MODULE_0__["default"] + } +}); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile.vue?vue&type=style&index=0&lang=scss&": +/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/profile.vue?vue&type=style&index=0&lang=scss& ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".page-user-show {\n min-height: 100vh;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile.vue?vue&type=style&index=0&lang=scss&": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/profile.vue?vue&type=style&index=0&lang=scss& ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./profile.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile.vue?vue&type=style&index=0&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Settings.vue?vue&type=script&lang=js&": +/*!****************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Settings.vue?vue&type=script&lang=js& ***! + \****************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "SettingsIcon", + props: { + title: { + type: String, + default: "Settings icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Settings.vue?vue&type=template&id=2a518ecf&": +/*!**************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Settings.vue?vue&type=template&id=2a518ecf& ***! + \**************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon settings-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M12,15.5C10.07,15.5 8.5,13.93 8.5,12C8.5,10.07 10.07,8.5 12,8.5C13.93,8.5 15.5,10.07 15.5,12C15.5,13.93 13.93,15.5 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile.vue?vue&type=template&id=275bc111&": +/*!****************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/profile.vue?vue&type=template&id=275bc111& ***! + \****************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "page-user-show" }, [ + _c("div", { staticClass: "row" }, [ + _c("div", { staticClass: "col-md-3" }, [_c("sidebar")], 1), + _vm._v(" "), + _c("div", { staticClass: "col-md-9" }, [_c("router-view")], 1) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile/sidebar.vue?vue&type=template&id=35c091de&": +/*!************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/profile/sidebar.vue?vue&type=template&id=35c091de& ***! + \************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box" }, [ + _c( + "div", + { staticClass: "box-heading" }, + [_c("setting-icon", { staticClass: "mr-1 text-16" }), _vm._v("设置\n ")], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "nav flex-column nav-pills" }, + [ + _c( + "router-link", + { staticClass: "nav-link", attrs: { to: { name: "user.profile" } } }, + [_vm._v("基本资料")] + ), + _vm._v(" "), + _c( + "router-link", + { staticClass: "nav-link", attrs: { to: { name: "user.avatar" } } }, + [_vm._v("修改头像")] + ), + _vm._v(" "), + _c( + "router-link", + { staticClass: "nav-link", attrs: { to: { name: "user.account" } } }, + [_vm._v("账号设置")] + ), + _vm._v(" "), + _c( + "router-link", + { staticClass: "nav-link", attrs: { to: { name: "user.extends" } } }, + [_vm._v("拓展资料")] + ) + ], + 1 + ) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Settings.vue": +/*!*************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Settings.vue ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Settings_vue_vue_type_template_id_2a518ecf___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Settings.vue?vue&type=template&id=2a518ecf& */ "./node_modules/vue-material-design-icons/Settings.vue?vue&type=template&id=2a518ecf&"); +/* harmony import */ var _Settings_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Settings.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Settings.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Settings_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Settings_vue_vue_type_template_id_2a518ecf___WEBPACK_IMPORTED_MODULE_0__["render"], + _Settings_vue_vue_type_template_id_2a518ecf___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Settings.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Settings.vue?vue&type=script&lang=js&": +/*!**************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Settings.vue?vue&type=script&lang=js& ***! + \**************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Settings_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Settings.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Settings.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Settings_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Settings.vue?vue&type=template&id=2a518ecf&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Settings.vue?vue&type=template&id=2a518ecf& ***! + \********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Settings_vue_vue_type_template_id_2a518ecf___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Settings.vue?vue&type=template&id=2a518ecf& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Settings.vue?vue&type=template&id=2a518ecf&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Settings_vue_vue_type_template_id_2a518ecf___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Settings_vue_vue_type_template_id_2a518ecf___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/users/profile.vue": +/*!***************************************!*\ + !*** ./src/modules/users/profile.vue ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _profile_vue_vue_type_template_id_275bc111___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./profile.vue?vue&type=template&id=275bc111& */ "./src/modules/users/profile.vue?vue&type=template&id=275bc111&"); +/* harmony import */ var _profile_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./profile.vue?vue&type=script&lang=js& */ "./src/modules/users/profile.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _profile_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./profile.vue?vue&type=style&index=0&lang=scss& */ "./src/modules/users/profile.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _profile_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _profile_vue_vue_type_template_id_275bc111___WEBPACK_IMPORTED_MODULE_0__["render"], + _profile_vue_vue_type_template_id_275bc111___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/users/profile.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/users/profile.vue?vue&type=script&lang=js&": +/*!****************************************************************!*\ + !*** ./src/modules/users/profile.vue?vue&type=script&lang=js& ***! + \****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./profile.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/users/profile.vue?vue&type=style&index=0&lang=scss&": +/*!*************************************************************************!*\ + !*** ./src/modules/users/profile.vue?vue&type=style&index=0&lang=scss& ***! + \*************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../../node_modules/style-loader!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./profile.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/modules/users/profile.vue?vue&type=template&id=275bc111&": +/*!**********************************************************************!*\ + !*** ./src/modules/users/profile.vue?vue&type=template&id=275bc111& ***! + \**********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_template_id_275bc111___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./profile.vue?vue&type=template&id=275bc111& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile.vue?vue&type=template&id=275bc111&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_template_id_275bc111___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_template_id_275bc111___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/users/profile/sidebar.vue": +/*!***********************************************!*\ + !*** ./src/modules/users/profile/sidebar.vue ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _sidebar_vue_vue_type_template_id_35c091de___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sidebar.vue?vue&type=template&id=35c091de& */ "./src/modules/users/profile/sidebar.vue?vue&type=template&id=35c091de&"); +/* harmony import */ var _sidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sidebar.vue?vue&type=script&lang=js& */ "./src/modules/users/profile/sidebar.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _sidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _sidebar_vue_vue_type_template_id_35c091de___WEBPACK_IMPORTED_MODULE_0__["render"], + _sidebar_vue_vue_type_template_id_35c091de___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/users/profile/sidebar.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/users/profile/sidebar.vue?vue&type=script&lang=js&": +/*!************************************************************************!*\ + !*** ./src/modules/users/profile/sidebar.vue?vue&type=script&lang=js& ***! + \************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_sidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./sidebar.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile/sidebar.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_sidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/users/profile/sidebar.vue?vue&type=template&id=35c091de&": +/*!******************************************************************************!*\ + !*** ./src/modules/users/profile/sidebar.vue?vue&type=template&id=35c091de& ***! + \******************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_sidebar_vue_vue_type_template_id_35c091de___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./sidebar.vue?vue&type=template&id=35c091de& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile/sidebar.vue?vue&type=template&id=35c091de&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_sidebar_vue_vue_type_template_id_35c091de___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_sidebar_vue_vue_type_template_id_35c091de___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/3.8278b66d6119ccf10c85.js b/public/3.8278b66d6119ccf10c85.js new file mode 100644 index 00000000..44ea677a --- /dev/null +++ b/public/3.8278b66d6119ccf10c85.js @@ -0,0 +1,692 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[3],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/follow-btn.vue?vue&type=script&lang=js&": +/*!********************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/follow-btn.vue?vue&type=script&lang=js& ***! + \********************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _relation_btn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./relation-btn */ "./src/components/buttons/relation-btn.vue"); +/* harmony import */ var $icons_Plus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/Plus */ "./node_modules/vue-material-design-icons/Plus.vue"); +/* harmony import */ var $icons_Check__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/Check */ "./node_modules/vue-material-design-icons/Check.vue"); +/* harmony import */ var $icons_Close__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/Close */ "./node_modules/vue-material-design-icons/Close.vue"); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _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; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'follow-btn', + components: { + RelationBtn: _relation_btn__WEBPACK_IMPORTED_MODULE_0__["default"], + PlusIcon: $icons_Plus__WEBPACK_IMPORTED_MODULE_1__["default"], + CheckIcon: $icons_Check__WEBPACK_IMPORTED_MODULE_2__["default"], + CloseIcon: $icons_Close__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + props: { + item: { + type: Object, + required: true + }, + simple: { + type: Boolean, + default: false + } + }, + data: function data() { + return { + hovering: false + }; + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_4__["mapGetters"])(['currentUser'])) +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/relation-btn.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + props: { + relation: { + type: String, + required: true + }, + action: { + type: String, + required: true + }, + item: { + type: Object, + required: true, + default: function _default() { + return {}; + } + } + }, + data: function data() { + return { + types: { + thread: 'App\\Thread', + user: "App\\User", + node: 'App\\Node' + }, + actions: { + like: 'has_liked', + follow: 'has_followed', + subscribe: 'has_subscribed' + } + }; + }, + methods: { + toggle: function toggle() { + var _this = this; + + // let action = !this.item[this.actions[this.action]] ? this.action : `${this.action}` + this.$http.post("relations/".concat(this.action), { + followable_type: this.types[this.relation], + followable_id: this.item.id + }).then(function () { + _this.item[_this.actions[_this.action]] = !_this.item[_this.actions[_this.action]]; + + _this.$emit('after-toggle', _this.item[_this.actions[_this.action]]); + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-media.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-media.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'UserMedia', + props: { + type: { + type: String, + default: 'default' + }, + user: { + type: Object + }, + nameClasses: { + type: String, + default: 'text-black-50 text-14' + } + } +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4&": +/*!************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4& ***! + \************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm.currentUser.id && _vm.item.id != _vm.currentUser.id + ? _c( + "relation-btn", + { attrs: { relation: "user", action: "follow", item: _vm.item } }, + [ + _c("template", { slot: "on" }, [ + _vm.simple + ? _c( + "button", + { + staticClass: "btn btn-rounded btn-ghost btn-icon ml-auto", + attrs: { title: "关注 TA" } + }, + [_c("plus-icon")], + 1 + ) + : _c( + "button", + { + staticClass: "btn btn-rounded btn-outline-teal-blue mx-1", + attrs: { title: "关注 TA" } + }, + [_c("plus-icon"), _vm._v("关注 TA\n ")], + 1 + ) + ]), + _vm._v(" "), + _c("template", { slot: "off" }, [ + _vm.simple + ? _c( + "button", + { + staticClass: "btn btn-icon ml-auto", + class: { + "btn-ghost": !_vm.hovering, + "btn-danger": _vm.hovering + }, + attrs: { title: "取消关注 TA" }, + on: { + mouseenter: function($event) { + _vm.hovering = true + }, + mouseleave: function($event) { + _vm.hovering = false + } + } + }, + [!_vm.hovering ? _c("check-icon") : _c("close-icon")], + 1 + ) + : _c( + "button", + { + staticClass: "btn mx-1", + class: { + "btn-teal-blue": !_vm.hovering, + "btn-danger": _vm.hovering + }, + attrs: { title: "取消关注 TA" }, + on: { + mouseenter: function($event) { + _vm.hovering = true + }, + mouseleave: function($event) { + _vm.hovering = false + } + } + }, + [ + !_vm.hovering ? _c("check-icon") : _c("close-icon"), + _vm._v( + "\n " + + _vm._s(_vm.hovering ? "取消关注" : "正在关注") + + "\n " + ) + ], + 1 + ) + ]) + ], + 2 + ) + : _vm._e() +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&": +/*!**************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69& ***! + \**************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { on: { click: _vm.toggle } }, + [!_vm.item[_vm.actions[_vm.action]] ? [_vm._t("on")] : [_vm._t("off")]], + 2 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-media.vue?vue&type=template&id=1788f872&": +/*!****************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-media.vue?vue&type=template&id=1788f872& ***! + \****************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm.type == "default" + ? _c( + "div", + { staticClass: "user-media d-flex" }, + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { username: _vm.user.username } + } + } + }, + [ + _c("img", { + staticClass: "avatar-40", + attrs: { src: _vm.user.avatar, alt: _vm.user.name } + }) + ] + ), + _vm._v(" "), + _c( + "div", + { staticClass: "ml-2" }, + [ + _c( + "div", + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { username: _vm.user.username } + } + } + }, + [ + _vm._t("name", [ + _c( + "h6", + { + staticClass: "mb-0 text-16 d-inline-block", + class: _vm.nameClasses + }, + [_vm._v(_vm._s(_vm.user.name))] + ) + ]), + _vm._v(" "), + _vm._t("name-appends") + ], + 2 + ) + ], + 1 + ), + _vm._v(" "), + _vm._t("description", [ + _c("div", { staticClass: "text-12 text-gray-70" }, [ + _vm._v(_vm._s(_vm.user.bio)) + ]) + ]) + ], + 2 + ), + _vm._v(" "), + _vm._t("appends", null, { data: _vm.user }) + ], + 2 + ) + : _c( + "div", + { staticClass: "user-media text-center d-inline-block p-1" }, + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { username: _vm.user.username } + } + } + }, + [ + _c("img", { + staticClass: "avatar-40", + attrs: { src: _vm.user.avatar, alt: _vm.user.username } + }), + _vm._v(" "), + _vm._t("default") + ], + 2 + ) + ], + 1 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/buttons/follow-btn.vue": +/*!***********************************************!*\ + !*** ./src/components/buttons/follow-btn.vue ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./follow-btn.vue?vue&type=template&id=4bfe56c4& */ "./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4&"); +/* harmony import */ var _follow_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./follow-btn.vue?vue&type=script&lang=js& */ "./src/components/buttons/follow-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _follow_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__["render"], + _follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/buttons/follow-btn.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/buttons/follow-btn.vue?vue&type=script&lang=js&": +/*!************************************************************************!*\ + !*** ./src/components/buttons/follow-btn.vue?vue&type=script&lang=js& ***! + \************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_follow_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./follow-btn.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/follow-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_follow_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4&": +/*!******************************************************************************!*\ + !*** ./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4& ***! + \******************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./follow-btn.vue?vue&type=template&id=4bfe56c4& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/buttons/relation-btn.vue": +/*!*************************************************!*\ + !*** ./src/components/buttons/relation-btn.vue ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./relation-btn.vue?vue&type=template&id=4a803e69& */ "./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&"); +/* harmony import */ var _relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./relation-btn.vue?vue&type=script&lang=js& */ "./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["render"], + _relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/buttons/relation-btn.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&": +/*!**************************************************************************!*\ + !*** ./src/components/buttons/relation-btn.vue?vue&type=script&lang=js& ***! + \**************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./relation-btn.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&": +/*!********************************************************************************!*\ + !*** ./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69& ***! + \********************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./relation-btn.vue?vue&type=template&id=4a803e69& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/user-media.vue": +/*!***************************************!*\ + !*** ./src/components/user-media.vue ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _user_media_vue_vue_type_template_id_1788f872___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user-media.vue?vue&type=template&id=1788f872& */ "./src/components/user-media.vue?vue&type=template&id=1788f872&"); +/* harmony import */ var _user_media_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user-media.vue?vue&type=script&lang=js& */ "./src/components/user-media.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _user_media_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _user_media_vue_vue_type_template_id_1788f872___WEBPACK_IMPORTED_MODULE_0__["render"], + _user_media_vue_vue_type_template_id_1788f872___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/user-media.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/user-media.vue?vue&type=script&lang=js&": +/*!****************************************************************!*\ + !*** ./src/components/user-media.vue?vue&type=script&lang=js& ***! + \****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_media_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./user-media.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-media.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_media_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/user-media.vue?vue&type=template&id=1788f872&": +/*!**********************************************************************!*\ + !*** ./src/components/user-media.vue?vue&type=template&id=1788f872& ***! + \**********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_media_vue_vue_type_template_id_1788f872___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./user-media.vue?vue&type=template&id=1788f872& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-media.vue?vue&type=template&id=1788f872&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_media_vue_vue_type_template_id_1788f872___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_media_vue_vue_type_template_id_1788f872___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/30.5d6fd97603c0f7b9f9cd.js b/public/30.5d6fd97603c0f7b9f9cd.js new file mode 100644 index 00000000..f07b1180 --- /dev/null +++ b/public/30.5d6fd97603c0f7b9f9cd.js @@ -0,0 +1,625 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[30],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/threads.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/threads.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_threads_list__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/threads-list */ "./src/components/threads-list.vue"); +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'user-threads', + components: { + ThreadsList: $components_threads_list__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + data: function data() { + return { + threads: {} + }; + }, + methods: { + loadThreads: function loadThreads() { + var _this = this; + + var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; + this.$http.get("threads?user_id=".concat(this.$parent.user.id, "&page=").concat(page)).then(function (threads) { + _this.threads = threads; + }); + }, + handlePageChanged: function handlePageChanged(page) { + this.loadThreads(page); + } + }, + mounted: function mounted() { + this.loadThreads(); + } +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "HeartIcon", + props: { + title: { + type: String, + default: "Heart icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "TooltipOutlineIcon", + props: { + title: { + type: String, + default: "Tooltip Outline icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon heart-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon tooltip-outline-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M4,2H20C21.1,2 22,2.9 22,4V16C22,17.1 21.1,18 20,18H16L12,22L8,18H4C2.9,18 2,17.1 2,16V4C2,2.9 2.9,2 4,2M4,4V16H8.83L12,19.17L15.17,16H20V4H4Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/threads.vue?vue&type=template&id=05a67d60&": +/*!*********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/threads.vue?vue&type=template&id=05a67d60& ***! + \*********************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("threads-list", { + attrs: { threads: _vm.threads }, + on: { "page-changed": _vm.handlePageChanged } + }) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Heart.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Heart.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Heart.vue?vue&type=template&id=6577aeca& */ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&"); +/* harmony import */ var _Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Heart.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["render"], + _Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Heart.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Heart.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Heart.vue?vue&type=template&id=6577aeca& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue": +/*!*******************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony import */ var _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/TooltipOutline.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \********************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!**************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \**************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/users/tabs/threads.vue": +/*!********************************************!*\ + !*** ./src/modules/users/tabs/threads.vue ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _threads_vue_vue_type_template_id_05a67d60___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./threads.vue?vue&type=template&id=05a67d60& */ "./src/modules/users/tabs/threads.vue?vue&type=template&id=05a67d60&"); +/* harmony import */ var _threads_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./threads.vue?vue&type=script&lang=js& */ "./src/modules/users/tabs/threads.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _threads_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _threads_vue_vue_type_template_id_05a67d60___WEBPACK_IMPORTED_MODULE_0__["render"], + _threads_vue_vue_type_template_id_05a67d60___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/users/tabs/threads.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/users/tabs/threads.vue?vue&type=script&lang=js&": +/*!*********************************************************************!*\ + !*** ./src/modules/users/tabs/threads.vue?vue&type=script&lang=js& ***! + \*********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_threads_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./threads.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/threads.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_threads_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/users/tabs/threads.vue?vue&type=template&id=05a67d60&": +/*!***************************************************************************!*\ + !*** ./src/modules/users/tabs/threads.vue?vue&type=template&id=05a67d60& ***! + \***************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_threads_vue_vue_type_template_id_05a67d60___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./threads.vue?vue&type=template&id=05a67d60& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/threads.vue?vue&type=template&id=05a67d60&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_threads_vue_vue_type_template_id_05a67d60___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_threads_vue_vue_type_template_id_05a67d60___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/31.8b52d6035df314a177ad.js b/public/31.8b52d6035df314a177ad.js new file mode 100644 index 00000000..33ef361c --- /dev/null +++ b/public/31.8b52d6035df314a177ad.js @@ -0,0 +1,917 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[31],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/empty-state.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_TooltipOutline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/TooltipOutline */ "./node_modules/vue-material-design-icons/TooltipOutline.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'empty-state', + components: { + EmptyIcon: $icons_TooltipOutline__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + title: { + type: String, + default: null + }, + message: { + type: String, + default: '空空如也~~~' + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-card.vue?vue&type=script&lang=js&": +/*!***********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-card.vue?vue&type=script&lang=js& ***! + \***********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_user_media__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/user-media */ "./src/components/user-media.vue"); +/* harmony import */ var $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $components/buttons/follow-btn */ "./src/components/buttons/follow-btn.vue"); +/* harmony import */ var $icons_MapMarker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/MapMarker */ "./node_modules/vue-material-design-icons/MapMarker.vue"); +/* harmony import */ var $icons_Plus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/Plus */ "./node_modules/vue-material-design-icons/Plus.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'UserCard', + props: { + user: { + type: Object, + required: true + } + }, + components: { + UserMedia: $components_user_media__WEBPACK_IMPORTED_MODULE_0__["default"], + FollowBtn: $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_1__["default"], + MapMarkerIcon: $icons_MapMarker__WEBPACK_IMPORTED_MODULE_2__["default"], + PlusIcon: $icons_Plus__WEBPACK_IMPORTED_MODULE_3__["default"] + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/activities.vue?vue&type=script&lang=js&": +/*!********************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/activities.vue?vue&type=script&lang=js& ***! + \********************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_user_card__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/user-card */ "./src/components/user-card.vue"); +/* harmony import */ var $icons_ArrowDown__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/ArrowDown */ "./node_modules/vue-material-design-icons/ArrowDown.vue"); +/* harmony import */ var $icons_SourceCommitEnd__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/SourceCommitEnd */ "./node_modules/vue-material-design-icons/SourceCommitEnd.vue"); +/* harmony import */ var $components_empty_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $components/empty-state */ "./src/components/empty-state.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'user-activities', + data: function data() { + return { + activities: { + data: [], + meta: { + current_page: 0, + last_page: 0 + } + } + }; + }, + components: { + UserCard: $components_user_card__WEBPACK_IMPORTED_MODULE_0__["default"], + ArrowDownIcon: $icons_ArrowDown__WEBPACK_IMPORTED_MODULE_1__["default"], + SourceCommitEnd: $icons_SourceCommitEnd__WEBPACK_IMPORTED_MODULE_2__["default"], + EmptyState: $components_empty_state__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + beforeRouteUpdate: function beforeRouteUpdate(to, from, next) { + if (to.params.username != from.params.username) { + this.activities = { + data: [], + meta: { + current_page: 0, + last_page: 0 + } + }; + this.loadActivities(to.params.username); + } + + next(); + }, + methods: { + subjectLink: function subjectLink(activity) { + switch (activity.subject_type) { + case 'App\\Thread': + if (activity.log_name == 'commented.thread') { + return { + name: 'threads.show', + params: { + id: activity.subject.id + }, + hash: '#comment-' + activity.properties.comment_id || false + }; + } + + return { + name: 'threads.show', + params: { + id: activity.subject.id + } + }; + + case 'App\\Comment': + return { + name: 'threads.show', + params: { + id: activity.subject.id + } + }; + + case "App\\User": + return { + name: 'users.show', + params: { + id: activity.subject.username + } + }; + } + + return {}; + }, + loadActivities: function loadActivities(username) { + var _this = this; + + var page = this.activities.meta.current_page + 1; + this.$http.get("user/".concat(username, "/activities?per_page=10&page=").concat(page)).then(function (activities) { + _this.activities.data = _this.activities.data.concat(activities.data); + _this.activities.meta = activities.meta; + }); + } + }, + mounted: function mounted() { + this.loadActivities(this.$parent.user.username); + } +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=template&id=772b85b1&": +/*!*****************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/empty-state.vue?vue&type=template&id=772b85b1& ***! + \*****************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "text-center p-5 text-gray-50" }, [ + _c("div", { staticClass: "container" }, [ + _c( + "h1", + { staticClass: "display-4" }, + [_vm._t("icon", [_c("empty-icon")])], + 2 + ), + _vm._v(" "), + _c("h2", [_vm._t("title", [_vm._v(_vm._s(_vm.title))])], 2), + _vm._v(" "), + _c( + "p", + { staticClass: "lead" }, + [_vm._t("message", [_vm._v(_vm._s(_vm.message))])], + 2 + ) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-card.vue?vue&type=template&id=9c78321c&": +/*!***************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-card.vue?vue&type=template&id=9c78321c& ***! + \***************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm.user + ? _c("div", { staticClass: "user-card box" }, [ + _c( + "div", + { staticClass: "d-flex flex-md-row flex-column" }, + [ + _c( + "div", + { staticClass: "d-flex align-items-center" }, + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { username: _vm.user.username } + } + } + }, + [ + _c("img", { + staticClass: "avatar-40", + attrs: { src: _vm.user.avatar, alt: _vm.user.name } + }) + ] + ), + _vm._v(" "), + _c( + "div", + { staticClass: "ml-2" }, + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { username: _vm.user.username } + } + } + }, + [ + _c( + "h6", + { staticClass: "mb-0 text-16 d-inline-block" }, + [_vm._v(_vm._s(_vm.user.name))] + ) + ] + ), + _vm._v(" "), + _c( + "router-link", + { + staticClass: "text-12 ml-1 text-muted", + attrs: { + to: { + name: "users.show", + params: { id: _vm.user.username } + } + } + }, + [_vm._v("@" + _vm._s(_vm.user.username))] + ) + ], + 1 + ) + ], + 1 + ), + _vm._v(" "), + _c("follow-btn", { + staticClass: "ml-md-auto mt-1 mtsm-0", + attrs: { item: _vm.user } + }) + ], + 1 + ), + _vm._v(" "), + _c("div", { staticClass: "text-gray-70" }, [ + _c("div", { staticClass: "py-2" }, [_vm._v(_vm._s(_vm.user.bio))]), + _vm._v(" "), + _c("div", [_c("map-marker-icon"), _vm._v("Beijing, China\n ")], 1) + ]) + ]) + : _vm._e() +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/activities.vue?vue&type=template&id=28bef7f4&": +/*!************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/activities.vue?vue&type=template&id=28bef7f4& ***! + \************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "user-activities" }, [ + _vm.activities.data.length <= 0 + ? _c("div", [_c("empty-state")], 1) + : _c( + "ul", + { staticClass: "timeline pb-2" }, + [ + _vm._l(_vm.activities.data, function(activity) { + return activity.subject + ? _c("li", { key: activity.id, staticClass: "timeline-item" }, [ + _c("div", { staticClass: "timeline-heading" }, [ + _c( + "div", + { staticClass: "d-flex" }, + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { + username: _vm.$parent.user.username + } + } + } + }, + [ + _c("img", { + staticClass: "avatar-40", + attrs: { + src: _vm.$parent.user.avatar, + alt: _vm.$parent.user.name + } + }) + ] + ), + _vm._v(" "), + _c("div", { staticClass: "ml-2" }, [ + _c( + "div", + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { + username: _vm.$parent.user.username + } + } + } + }, + [ + _c( + "h6", + { + staticClass: + "mb-0 text-16 d-inline-block" + }, + [_vm._v(_vm._s(_vm.$parent.user.name))] + ) + ] + ), + _vm._v(" "), + _c( + "span", + { staticClass: "text-gray-60 ml-1" }, + [ + activity.log_name == "commented.thread" + ? [ + _vm._v("\n 评论了 "), + _c( + "router-link", + { + attrs: { + to: _vm.subjectLink(activity) + } + }, + [ + _vm._v( + "《" + + _vm._s( + activity.subject.title + ) + + "》" + ) + ] + ) + ] + : activity.log_name == "published.thread" + ? [ + _vm._v("\n 发布了 "), + _c( + "router-link", + { + attrs: { + to: _vm.subjectLink(activity) + } + }, + [ + _vm._v( + "《" + + _vm._s( + activity.subject.title + ) + + "》" + ) + ] + ) + ] + : activity.log_name == "like.thread" + ? [ + _vm._v("\n 赞了 "), + _c( + "router-link", + { + attrs: { + to: _vm.subjectLink(activity) + } + }, + [ + _vm._v( + "《" + + _vm._s( + activity.subject.title + ) + + "》" + ) + ] + ) + ] + : activity.log_name == "follow.user" + ? [ + _vm._v("\n 关注了 "), + _c( + "router-link", + { + attrs: { + to: _vm.subjectLink(activity) + } + }, + [ + _vm._v( + _vm._s( + activity.subject.username + ) + ) + ] + ) + ] + : _vm._e() + ], + 2 + ) + ], + 1 + ), + _vm._v(" "), + _c("div", { staticClass: "text-12 text-gray-70" }, [ + _c("small", { staticClass: "text-muted" }, [ + _vm._v(_vm._s(activity.created_at_timeago)) + ]) + ]) + ]) + ], + 1 + ) + ]), + _vm._v(" "), + _c( + "div", + { staticClass: "timeline-body" }, + [ + activity.log_name == "follow.user" + ? _c("user-card", { + attrs: { user: activity.subject } + }) + : _c( + "div", + { staticClass: "box cursor-pointer" }, + [ + _c( + "router-link", + { + staticClass: "text-muted", + attrs: { to: _vm.subjectLink(activity) } + }, + [ + _vm._v( + _vm._s( + activity.properties["content"] || "无" + ) + ) + ] + ) + ], + 1 + ) + ], + 1 + ) + ]) + : _vm._e() + }), + _vm._v(" "), + _vm.activities.meta.current_page < _vm.activities.meta.last_page + ? _c("li", { staticClass: "timeline-item" }, [ + _c("div", { staticClass: "timeline-heading" }, [ + _c("div", { staticClass: "d-flex" }, [ + _c( + "button", + { + staticClass: "btn btn-secondary btn-icon text-20", + on: { + click: function($event) { + return _vm.loadActivities( + _vm.$parent.user.username + ) + } + } + }, + [_c("arrow-down-icon")], + 1 + ) + ]) + ]) + ]) + : _vm._e(), + _vm._v(" "), + _vm.activities.meta.current_page == _vm.activities.meta.last_page + ? _c("li", { staticClass: "timeline-item" }, [ + _c("div", { staticClass: "timeline-heading" }, [ + _c("div", { staticClass: "d-flex" }, [ + _c( + "button", + { + staticClass: "btn btn-secondary btn-icon text-20", + attrs: { disabled: "" } + }, + [_c("source-commit-end")], + 1 + ) + ]) + ]) + ]) + : _vm._e() + ], + 2 + ) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/empty-state.vue": +/*!****************************************!*\ + !*** ./src/components/empty-state.vue ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./empty-state.vue?vue&type=template&id=772b85b1& */ "./src/components/empty-state.vue?vue&type=template&id=772b85b1&"); +/* harmony import */ var _empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./empty-state.vue?vue&type=script&lang=js& */ "./src/components/empty-state.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["render"], + _empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/empty-state.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/empty-state.vue?vue&type=script&lang=js&": +/*!*****************************************************************!*\ + !*** ./src/components/empty-state.vue?vue&type=script&lang=js& ***! + \*****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./empty-state.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/empty-state.vue?vue&type=template&id=772b85b1&": +/*!***********************************************************************!*\ + !*** ./src/components/empty-state.vue?vue&type=template&id=772b85b1& ***! + \***********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./empty-state.vue?vue&type=template&id=772b85b1& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=template&id=772b85b1&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/user-card.vue": +/*!**************************************!*\ + !*** ./src/components/user-card.vue ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _user_card_vue_vue_type_template_id_9c78321c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user-card.vue?vue&type=template&id=9c78321c& */ "./src/components/user-card.vue?vue&type=template&id=9c78321c&"); +/* harmony import */ var _user_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user-card.vue?vue&type=script&lang=js& */ "./src/components/user-card.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _user_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _user_card_vue_vue_type_template_id_9c78321c___WEBPACK_IMPORTED_MODULE_0__["render"], + _user_card_vue_vue_type_template_id_9c78321c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/user-card.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/user-card.vue?vue&type=script&lang=js&": +/*!***************************************************************!*\ + !*** ./src/components/user-card.vue?vue&type=script&lang=js& ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./user-card.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-card.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/user-card.vue?vue&type=template&id=9c78321c&": +/*!*********************************************************************!*\ + !*** ./src/components/user-card.vue?vue&type=template&id=9c78321c& ***! + \*********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_card_vue_vue_type_template_id_9c78321c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./user-card.vue?vue&type=template&id=9c78321c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-card.vue?vue&type=template&id=9c78321c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_card_vue_vue_type_template_id_9c78321c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_card_vue_vue_type_template_id_9c78321c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/users/tabs/activities.vue": +/*!***********************************************!*\ + !*** ./src/modules/users/tabs/activities.vue ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _activities_vue_vue_type_template_id_28bef7f4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./activities.vue?vue&type=template&id=28bef7f4& */ "./src/modules/users/tabs/activities.vue?vue&type=template&id=28bef7f4&"); +/* harmony import */ var _activities_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./activities.vue?vue&type=script&lang=js& */ "./src/modules/users/tabs/activities.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _activities_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _activities_vue_vue_type_template_id_28bef7f4___WEBPACK_IMPORTED_MODULE_0__["render"], + _activities_vue_vue_type_template_id_28bef7f4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/users/tabs/activities.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/users/tabs/activities.vue?vue&type=script&lang=js&": +/*!************************************************************************!*\ + !*** ./src/modules/users/tabs/activities.vue?vue&type=script&lang=js& ***! + \************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_activities_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./activities.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/activities.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_activities_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/users/tabs/activities.vue?vue&type=template&id=28bef7f4&": +/*!******************************************************************************!*\ + !*** ./src/modules/users/tabs/activities.vue?vue&type=template&id=28bef7f4& ***! + \******************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_activities_vue_vue_type_template_id_28bef7f4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./activities.vue?vue&type=template&id=28bef7f4& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/activities.vue?vue&type=template&id=28bef7f4&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_activities_vue_vue_type_template_id_28bef7f4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_activities_vue_vue_type_template_id_28bef7f4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/32.bbf23d1419157ca40683.js b/public/32.bbf23d1419157ca40683.js new file mode 100644 index 00000000..2ad228b2 --- /dev/null +++ b/public/32.bbf23d1419157ca40683.js @@ -0,0 +1,471 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[32],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/following.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/following.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +/* harmony import */ var $components_empty_state__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $components/empty-state */ "./src/components/empty-state.vue"); +/* harmony import */ var $components_user_list_item__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $components/user-list-item */ "./src/components/user-list-item.vue"); +/* harmony import */ var $components_paginator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! $components/paginator */ "./src/components/paginator.vue"); +/* harmony import */ var $icons_Email__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! $icons/Email */ "./node_modules/vue-material-design-icons/Email.vue"); +/* harmony import */ var $icons_Plus__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! $icons/Plus */ "./node_modules/vue-material-design-icons/Plus.vue"); +/* harmony import */ var $icons_Minus__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! $icons/Minus */ "./node_modules/vue-material-design-icons/Minus.vue"); + + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _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; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'user-followings', + components: { + UserListItem: $components_user_list_item__WEBPACK_IMPORTED_MODULE_3__["default"], + EmptyState: $components_empty_state__WEBPACK_IMPORTED_MODULE_2__["default"], + Paginator: $components_paginator__WEBPACK_IMPORTED_MODULE_4__["default"], + PlusIcon: $icons_Plus__WEBPACK_IMPORTED_MODULE_6__["default"], + EmailIcon: $icons_Email__WEBPACK_IMPORTED_MODULE_5__["default"], + MinusIcon: $icons_Minus__WEBPACK_IMPORTED_MODULE_7__["default"] + }, + data: function data() { + return { + users: [] + }; + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_1__["mapGetters"])(['currentUser'])), + created: function created() { + this.followings(); + }, + methods: { + followings: function () { + var _followings = _asyncToGenerator( + /*#__PURE__*/ + _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee() { + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return this.$http.get("user/".concat(this.$parent.user.username, "/followings")); + + case 2: + this.users = _context.sent; + + case 3: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function followings() { + return _followings.apply(this, arguments); + } + + return followings; + }() + } +}); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true&": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true& ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".form-control[data-v-83e6c6f0]:focus {\n border: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true&": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true& ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--7-3!../../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../../node_modules/vue-loader/lib??vue-loader-options!./following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Minus.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Minus.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "MinusIcon", + props: { + title: { + type: String, + default: "Minus icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Minus.vue?vue&type=template&id=c1d7fc18&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Minus.vue?vue&type=template&id=c1d7fc18& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon minus-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c("path", { attrs: { d: "M19,13H5V11H19V13Z" } }, [ + _c("title", [_vm._v(_vm._s(_vm.title))]) + ]) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/following.vue?vue&type=template&id=83e6c6f0&scoped=true&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/following.vue?vue&type=template&id=83e6c6f0&scoped=true& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box box-flush" }, [ + _c( + "div", + { staticClass: "list-group list-group-flush" }, + [ + _vm._l(_vm.users.data, function(user) { + return _c("user-list-item", { + key: user.id, + staticClass: "list-group-item", + attrs: { user: user } + }) + }), + _vm._v(" "), + _vm.users.data && _vm.users.data.length == 0 + ? _c("empty-state") + : _vm._e(), + _vm._v(" "), + _c("paginator", { attrs: { meta: _vm.users.meta } }) + ], + 2 + ), + _vm._v(" "), + false + ? undefined + : _vm._e() + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Minus.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Minus.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Minus_vue_vue_type_template_id_c1d7fc18___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Minus.vue?vue&type=template&id=c1d7fc18& */ "./node_modules/vue-material-design-icons/Minus.vue?vue&type=template&id=c1d7fc18&"); +/* harmony import */ var _Minus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Minus.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Minus.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Minus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Minus_vue_vue_type_template_id_c1d7fc18___WEBPACK_IMPORTED_MODULE_0__["render"], + _Minus_vue_vue_type_template_id_c1d7fc18___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Minus.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Minus.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Minus.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Minus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Minus.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Minus.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Minus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Minus.vue?vue&type=template&id=c1d7fc18&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Minus.vue?vue&type=template&id=c1d7fc18& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Minus_vue_vue_type_template_id_c1d7fc18___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Minus.vue?vue&type=template&id=c1d7fc18& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Minus.vue?vue&type=template&id=c1d7fc18&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Minus_vue_vue_type_template_id_c1d7fc18___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Minus_vue_vue_type_template_id_c1d7fc18___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/users/tabs/following.vue": +/*!**********************************************!*\ + !*** ./src/modules/users/tabs/following.vue ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _following_vue_vue_type_template_id_83e6c6f0_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./following.vue?vue&type=template&id=83e6c6f0&scoped=true& */ "./src/modules/users/tabs/following.vue?vue&type=template&id=83e6c6f0&scoped=true&"); +/* harmony import */ var _following_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./following.vue?vue&type=script&lang=js& */ "./src/modules/users/tabs/following.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _following_vue_vue_type_style_index_0_id_83e6c6f0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true& */ "./src/modules/users/tabs/following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _following_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _following_vue_vue_type_template_id_83e6c6f0_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"], + _following_vue_vue_type_template_id_83e6c6f0_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + "83e6c6f0", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/users/tabs/following.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/users/tabs/following.vue?vue&type=script&lang=js&": +/*!***********************************************************************!*\ + !*** ./src/modules/users/tabs/following.vue?vue&type=script&lang=js& ***! + \***********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./following.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/following.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/users/tabs/following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true&": +/*!********************************************************************************************************!*\ + !*** ./src/modules/users/tabs/following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true& ***! + \********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_style_index_0_id_83e6c6f0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../../../node_modules/style-loader!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--7-3!../../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../../node_modules/vue-loader/lib??vue-loader-options!./following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_style_index_0_id_83e6c6f0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_style_index_0_id_83e6c6f0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_style_index_0_id_83e6c6f0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_style_index_0_id_83e6c6f0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_style_index_0_id_83e6c6f0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/modules/users/tabs/following.vue?vue&type=template&id=83e6c6f0&scoped=true&": +/*!*****************************************************************************************!*\ + !*** ./src/modules/users/tabs/following.vue?vue&type=template&id=83e6c6f0&scoped=true& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_template_id_83e6c6f0_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./following.vue?vue&type=template&id=83e6c6f0&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/following.vue?vue&type=template&id=83e6c6f0&scoped=true&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_template_id_83e6c6f0_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_template_id_83e6c6f0_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/33.9520bc675d0bb780c44c.js b/public/33.9520bc675d0bb780c44c.js new file mode 100644 index 00000000..93180863 --- /dev/null +++ b/public/33.9520bc675d0bb780c44c.js @@ -0,0 +1,426 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[33],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/pages/not-found.vue?vue&type=script&lang=js&": +/*!**************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/pages/not-found.vue?vue&type=script&lang=js& ***! + \**************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_AlertCircle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/AlertCircle */ "./node_modules/vue-material-design-icons/AlertCircle.vue"); +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'not-found', + components: { + AlertCircleIcon: $icons_AlertCircle__WEBPACK_IMPORTED_MODULE_0__["default"] + } +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "AlertCircleIcon", + props: { + title: { + type: String, + default: "Alert Circle icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=template&id=7b52a7d0&": +/*!*****************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=template&id=7b52a7d0& ***! + \*****************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon alert-circle-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M13,13H11V7H13M13,17H11V15H13M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/pages/not-found.vue?vue&type=template&id=49cb9ea8&": +/*!******************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/pages/not-found.vue?vue&type=template&id=49cb9ea8& ***! + \******************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "text-center p-5 text-gray-40" }, [ + _c("div", { staticClass: "display-1" }, [_c("alert-circle-icon")], 1), + _vm._v(" "), + _c("div", { staticClass: "display-2" }, [_vm._v("404")]), + _vm._v(" "), + _c("div", { staticClass: "display-4" }, [_vm._v("页面未找到~")]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/AlertCircle.vue": +/*!****************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/AlertCircle.vue ***! + \****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _AlertCircle_vue_vue_type_template_id_7b52a7d0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AlertCircle.vue?vue&type=template&id=7b52a7d0& */ "./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=template&id=7b52a7d0&"); +/* harmony import */ var _AlertCircle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AlertCircle.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _AlertCircle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _AlertCircle_vue_vue_type_template_id_7b52a7d0___WEBPACK_IMPORTED_MODULE_0__["render"], + _AlertCircle_vue_vue_type_template_id_7b52a7d0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/AlertCircle.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_AlertCircle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./AlertCircle.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_AlertCircle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=template&id=7b52a7d0&": +/*!***********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=template&id=7b52a7d0& ***! + \***********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_AlertCircle_vue_vue_type_template_id_7b52a7d0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./AlertCircle.vue?vue&type=template&id=7b52a7d0& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=template&id=7b52a7d0&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_AlertCircle_vue_vue_type_template_id_7b52a7d0___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_AlertCircle_vue_vue_type_template_id_7b52a7d0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/pages/not-found.vue": +/*!*****************************************!*\ + !*** ./src/modules/pages/not-found.vue ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _not_found_vue_vue_type_template_id_49cb9ea8___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./not-found.vue?vue&type=template&id=49cb9ea8& */ "./src/modules/pages/not-found.vue?vue&type=template&id=49cb9ea8&"); +/* harmony import */ var _not_found_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./not-found.vue?vue&type=script&lang=js& */ "./src/modules/pages/not-found.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _not_found_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _not_found_vue_vue_type_template_id_49cb9ea8___WEBPACK_IMPORTED_MODULE_0__["render"], + _not_found_vue_vue_type_template_id_49cb9ea8___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/pages/not-found.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/pages/not-found.vue?vue&type=script&lang=js&": +/*!******************************************************************!*\ + !*** ./src/modules/pages/not-found.vue?vue&type=script&lang=js& ***! + \******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_not_found_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./not-found.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/pages/not-found.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_not_found_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/pages/not-found.vue?vue&type=template&id=49cb9ea8&": +/*!************************************************************************!*\ + !*** ./src/modules/pages/not-found.vue?vue&type=template&id=49cb9ea8& ***! + \************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_not_found_vue_vue_type_template_id_49cb9ea8___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./not-found.vue?vue&type=template&id=49cb9ea8& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/pages/not-found.vue?vue&type=template&id=49cb9ea8&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_not_found_vue_vue_type_template_id_49cb9ea8___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_not_found_vue_vue_type_template_id_49cb9ea8___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/34.c36a6175297d0182cf45.js b/public/34.c36a6175297d0182cf45.js new file mode 100644 index 00000000..28808754 --- /dev/null +++ b/public/34.c36a6175297d0182cf45.js @@ -0,0 +1,572 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[34],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/socialite-login.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/socialite-login.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_GooglePlus__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/GooglePlus */ "./node_modules/vue-material-design-icons/GooglePlus.vue"); +/* harmony import */ var $icons_Facebook__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/Facebook */ "./node_modules/vue-material-design-icons/Facebook.vue"); +/* harmony import */ var $icons_Qqchat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/Qqchat */ "./node_modules/vue-material-design-icons/Qqchat.vue"); +/* harmony import */ var $icons_GithubCircle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/GithubCircle */ "./node_modules/vue-material-design-icons/GithubCircle.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'oauth-btn', + components: { + GooglePlus: $icons_GooglePlus__WEBPACK_IMPORTED_MODULE_0__["default"], + FacebookIcon: $icons_Facebook__WEBPACK_IMPORTED_MODULE_1__["default"], + QqIcon: $icons_Qqchat__WEBPACK_IMPORTED_MODULE_2__["default"], + GithubIcon: $icons_GithubCircle__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + methods: { + oauth: function oauth(platform) { + var iOSChrome = /Mobile/.test(navigator.userAgent) && /CriOS/.test(navigator.userAgent); + var url = '/auth/oauth-redirect/' + platform; + + if (iOSChrome) { + window.location.href = url; + } else { + var windowObjectReference = null; + + if (windowObjectReference == null || windowObjectReference.closed) { + var heights = { + github: 680, + google: 540, + facebook: 700 + }; + windowObjectReference = this.popupCenter(url, '_blank', 500, heights[platform]); + } else { + windowObjectReference.focus(); + } + } + }, + popupCenter: function popupCenter(url, title, w, h) { + // Fixes dual-screen position Most browsers Firefox + var dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : window.screenX; + var dualScreenTop = window.screenTop !== undefined ? window.screenTop : window.screenY; + var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : window.screen.width; + var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : window.screen.height; + var left = width / 2 - w / 2 + dualScreenLeft; + var top = height / 2 - h / 2 + dualScreenTop; + var newWindow = window.open(url, title, 'scrollbars=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left); // Puts focus on the newWindow + + if (window.focus) { + newWindow.focus(); + } + + return newWindow; + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/login.vue?vue&type=script&lang=js&": +/*!*********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/auth/login.vue?vue&type=script&lang=js& ***! + \*********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +/* harmony import */ var $components_socialite_login__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $components/socialite-login */ "./src/components/socialite-login.vue"); + + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _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; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + +/* harmony default export */ __webpack_exports__["default"] = ({ + data: function data() { + return { + username: '', + password: '' + }; + }, + components: { + SocialiteBtns: $components_socialite_login__WEBPACK_IMPORTED_MODULE_2__["default"] + }, + methods: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_1__["mapActions"])(['attemptLogin']), { + submit: function () { + var _submit = _asyncToGenerator( + /*#__PURE__*/ + _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee() { + var username, password; + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + username = this.username, password = this.password; + _context.prev = 1; + _context.next = 4; + return this.attemptLogin({ + username: username, + password: password + }); + + case 4: + this.$message.success('欢迎回来~'); + this.$router.push({ + name: 'home' + }); + _context.next = 11; + break; + + case 8: + _context.prev = 8; + _context.t0 = _context["catch"](1); + + if (_context.t0.status !== 422) { + this.$message.error('账号密码错误!'); + } + + case 11: + case "end": + return _context.stop(); + } + } + }, _callee, this, [[1, 8]]); + })); + + function submit() { + return _submit.apply(this, arguments); + } + + return submit; + }() + }) +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/socialite-login.vue?vue&type=template&id=201c8d6e&": +/*!*********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/socialite-login.vue?vue&type=template&id=201c8d6e& ***! + \*********************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { + staticClass: + "oauth-btns d-flex align-items-center justify-content-between" + }, + [ + _c( + "div", + { + staticClass: "text-20 btn mx-1 btn-icon btn-dark", + on: { + click: function($event) { + return _vm.oauth("github") + } + } + }, + [_c("github-icon")], + 1 + ), + _vm._v(" "), + _c( + "div", + { + staticClass: "text-20 btn mx-1 btn-icon btn-pink", + on: { + click: function($event) { + return _vm.oauth("google") + } + } + }, + [_c("google-plus")], + 1 + ), + _vm._v(" "), + _c( + "div", + { + staticClass: "text-20 btn mx-1 btn-icon btn-facebook", + on: { + click: function($event) { + return _vm.oauth("facebook") + } + } + }, + [_c("facebook-icon")], + 1 + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/login.vue?vue&type=template&id=f60e4b3a&": +/*!*************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/auth/login.vue?vue&type=template&id=f60e4b3a& ***! + \*************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "row pt-3" }, [ + _c("div", { staticClass: "offset-sm-4 col-sm-4" }, [ + _c("div", { staticClass: "box" }, [ + _c("h4", { staticClass: "text-center font-weight-normal mt-2" }, [ + _vm._v("用户登录") + ]), + _vm._v(" "), + _c( + "form", + { + on: { + submit: function($event) { + $event.preventDefault() + return _vm.submit($event) + } + } + }, + [ + _c("div", { staticClass: "form-group" }, [ + _vm._m(0), + _vm._v(" "), + _c("input", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.username, + expression: "username" + } + ], + staticClass: "form-control", + attrs: { type: "text", required: "" }, + domProps: { value: _vm.username }, + on: { + input: function($event) { + if ($event.target.composing) { + return + } + _vm.username = $event.target.value + } + } + }) + ]), + _vm._v(" "), + _c("div", { staticClass: "form-group" }, [ + _c("label", [_vm._v("密码")]), + _vm._v(" "), + _c("input", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.password, + expression: "password" + } + ], + staticClass: "form-control", + attrs: { type: "password", required: "" }, + domProps: { value: _vm.password }, + on: { + input: function($event) { + if ($event.target.composing) { + return + } + _vm.password = $event.target.value + } + } + }) + ]), + _vm._v(" "), + _c( + "button", + { + staticClass: "my-2 btn btn-primary w-100", + attrs: { type: "submit" } + }, + [_vm._v("登录")] + ) + ] + ), + _vm._v(" "), + _c("div", { staticClass: "mb-2 d-flex justify-content-around" }) + ]) + ]), + _vm._v(" "), + _c( + "div", + { + staticClass: + "offset-sm-4 col-sm-4 text-center mt-2 d-flex justify-content-between" + }, + [ + _c( + "p", + [ + _vm._v("没有账号? "), + _c( + "router-link", + { + staticClass: "text-blue", + attrs: { to: { name: "auth.register" } } + }, + [_vm._v("快速注册")] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "p", + [ + _c( + "router-link", + { + staticClass: "text-blue", + attrs: { to: { name: "auth.forget-password" } } + }, + [_vm._v("忘记密码?")] + ) + ], + 1 + ) + ] + ) + ]) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("label", [_vm._v("用户名"), _c("small", [_vm._v("(或邮箱)")])]) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/socialite-login.vue": +/*!********************************************!*\ + !*** ./src/components/socialite-login.vue ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _socialite_login_vue_vue_type_template_id_201c8d6e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./socialite-login.vue?vue&type=template&id=201c8d6e& */ "./src/components/socialite-login.vue?vue&type=template&id=201c8d6e&"); +/* harmony import */ var _socialite_login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./socialite-login.vue?vue&type=script&lang=js& */ "./src/components/socialite-login.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _socialite_login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _socialite_login_vue_vue_type_template_id_201c8d6e___WEBPACK_IMPORTED_MODULE_0__["render"], + _socialite_login_vue_vue_type_template_id_201c8d6e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/socialite-login.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/socialite-login.vue?vue&type=script&lang=js&": +/*!*********************************************************************!*\ + !*** ./src/components/socialite-login.vue?vue&type=script&lang=js& ***! + \*********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_socialite_login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./socialite-login.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/socialite-login.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_socialite_login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/socialite-login.vue?vue&type=template&id=201c8d6e&": +/*!***************************************************************************!*\ + !*** ./src/components/socialite-login.vue?vue&type=template&id=201c8d6e& ***! + \***************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_socialite_login_vue_vue_type_template_id_201c8d6e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./socialite-login.vue?vue&type=template&id=201c8d6e& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/socialite-login.vue?vue&type=template&id=201c8d6e&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_socialite_login_vue_vue_type_template_id_201c8d6e___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_socialite_login_vue_vue_type_template_id_201c8d6e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/auth/login.vue": +/*!************************************!*\ + !*** ./src/modules/auth/login.vue ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _login_vue_vue_type_template_id_f60e4b3a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./login.vue?vue&type=template&id=f60e4b3a& */ "./src/modules/auth/login.vue?vue&type=template&id=f60e4b3a&"); +/* harmony import */ var _login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./login.vue?vue&type=script&lang=js& */ "./src/modules/auth/login.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _login_vue_vue_type_template_id_f60e4b3a___WEBPACK_IMPORTED_MODULE_0__["render"], + _login_vue_vue_type_template_id_f60e4b3a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/auth/login.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/auth/login.vue?vue&type=script&lang=js&": +/*!*************************************************************!*\ + !*** ./src/modules/auth/login.vue?vue&type=script&lang=js& ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./login.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/login.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/auth/login.vue?vue&type=template&id=f60e4b3a&": +/*!*******************************************************************!*\ + !*** ./src/modules/auth/login.vue?vue&type=template&id=f60e4b3a& ***! + \*******************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_template_id_f60e4b3a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./login.vue?vue&type=template&id=f60e4b3a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/login.vue?vue&type=template&id=f60e4b3a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_template_id_f60e4b3a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_template_id_f60e4b3a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/35.483e497d4563c1a5d184.js b/public/35.483e497d4563c1a5d184.js new file mode 100644 index 00000000..9259bb54 --- /dev/null +++ b/public/35.483e497d4563c1a5d184.js @@ -0,0 +1,145 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[35],{ + +/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/typeface-ubuntu-mono/index.css": +/*!*************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js??ref--6-2!./node_modules/postcss-loader/src??ref--6-3!./node_modules/typeface-ubuntu-mono/index.css ***! + \*************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Imports +var getUrl = __webpack_require__(/*! ../css-loader/dist/runtime/getUrl.js */ "./node_modules/css-loader/dist/runtime/getUrl.js"); +var ___CSS_LOADER_URL___0___ = getUrl(__webpack_require__(/*! ./files/ubuntu-mono-latin-400.woff2 */ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff2")); +var ___CSS_LOADER_URL___1___ = getUrl(__webpack_require__(/*! ./files/ubuntu-mono-latin-400.woff */ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff")); +var ___CSS_LOADER_URL___2___ = getUrl(__webpack_require__(/*! ./files/ubuntu-mono-latin-400italic.woff2 */ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff2")); +var ___CSS_LOADER_URL___3___ = getUrl(__webpack_require__(/*! ./files/ubuntu-mono-latin-400italic.woff */ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff")); +var ___CSS_LOADER_URL___4___ = getUrl(__webpack_require__(/*! ./files/ubuntu-mono-latin-700.woff2 */ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff2")); +var ___CSS_LOADER_URL___5___ = getUrl(__webpack_require__(/*! ./files/ubuntu-mono-latin-700.woff */ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff")); +var ___CSS_LOADER_URL___6___ = getUrl(__webpack_require__(/*! ./files/ubuntu-mono-latin-700italic.woff2 */ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff2")); +var ___CSS_LOADER_URL___7___ = getUrl(__webpack_require__(/*! ./files/ubuntu-mono-latin-700italic.woff */ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff")); +// Module +exports.push([module.i, "/* ubuntu-mono-400normal - latin */\n@font-face {\n font-family: 'Ubuntu Mono';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src:\n local('Ubuntu Mono Regular '),\n local('Ubuntu Mono-Regular'),\n url(" + ___CSS_LOADER_URL___0___ + ") format('woff2'), \n url(" + ___CSS_LOADER_URL___1___ + ") format('woff'); /* Modern Browsers */\n}\n\n/* ubuntu-mono-400italic - latin */\n@font-face {\n font-family: 'Ubuntu Mono';\n font-style: italic;\n font-display: swap;\n font-weight: 400;\n src:\n local('Ubuntu Mono Regular italic'),\n local('Ubuntu Mono-Regularitalic'),\n url(" + ___CSS_LOADER_URL___2___ + ") format('woff2'), \n url(" + ___CSS_LOADER_URL___3___ + ") format('woff'); /* Modern Browsers */\n}\n\n/* ubuntu-mono-700normal - latin */\n@font-face {\n font-family: 'Ubuntu Mono';\n font-style: normal;\n font-display: swap;\n font-weight: 700;\n src:\n local('Ubuntu Mono Bold '),\n local('Ubuntu Mono-Bold'),\n url(" + ___CSS_LOADER_URL___4___ + ") format('woff2'), \n url(" + ___CSS_LOADER_URL___5___ + ") format('woff'); /* Modern Browsers */\n}\n\n/* ubuntu-mono-700italic - latin */\n@font-face {\n font-family: 'Ubuntu Mono';\n font-style: italic;\n font-display: swap;\n font-weight: 700;\n src:\n local('Ubuntu Mono Bold italic'),\n local('Ubuntu Mono-Bolditalic'),\n url(" + ___CSS_LOADER_URL___6___ + ") format('woff2'), \n url(" + ___CSS_LOADER_URL___7___ + ") format('woff'); /* Modern Browsers */\n}\n\n", ""]); + + +/***/ }), + +/***/ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff": +/*!****************************************************************************!*\ + !*** ./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = "/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff?84924f07cdf2bc11727cbdb92bdecb60"; + +/***/ }), + +/***/ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff2": +/*!*****************************************************************************!*\ + !*** ./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff2 ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = "/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff2?469ee47867fa81c9eb1677cb6df36493"; + +/***/ }), + +/***/ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff": +/*!**********************************************************************************!*\ + !*** ./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = "/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff?cb47101ae05a75cababcf320c3f18521"; + +/***/ }), + +/***/ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff2": +/*!***********************************************************************************!*\ + !*** ./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff2 ***! + \***********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = "/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff2?b058de1ff02721b7c227749a6842c386"; + +/***/ }), + +/***/ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff": +/*!****************************************************************************!*\ + !*** ./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = "/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff?ad755437adc718d060c2ebe9e76b47f6"; + +/***/ }), + +/***/ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff2": +/*!*****************************************************************************!*\ + !*** ./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff2 ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = "/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff2?5fb8b6fc36c4131b485e76b5834c02f7"; + +/***/ }), + +/***/ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff": +/*!**********************************************************************************!*\ + !*** ./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = "/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff?449ed936ed1e019ed9115637e3d8549c"; + +/***/ }), + +/***/ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff2": +/*!***********************************************************************************!*\ + !*** ./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff2 ***! + \***********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = "/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff2?5c6270425bb30b6ba25abbb42c628221"; + +/***/ }), + +/***/ "./node_modules/typeface-ubuntu-mono/index.css": +/*!*****************************************************!*\ + !*** ./node_modules/typeface-ubuntu-mono/index.css ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../css-loader/dist/cjs.js??ref--6-2!../postcss-loader/src??ref--6-3!./index.css */ "./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/typeface-ubuntu-mono/index.css"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/36.a16ce06c2846dd84f6b3.js b/public/36.a16ce06c2846dd84f6b3.js new file mode 100644 index 00000000..f0782e0b --- /dev/null +++ b/public/36.a16ce06c2846dd84f6b3.js @@ -0,0 +1,288 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[36],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/followers.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/followers.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +/* harmony import */ var $components_empty_state__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $components/empty-state */ "./src/components/empty-state.vue"); +/* harmony import */ var $components_user_list_item__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $components/user-list-item */ "./src/components/user-list-item.vue"); +/* harmony import */ var $components_paginator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! $components/paginator */ "./src/components/paginator.vue"); +/* harmony import */ var $icons_Email__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! $icons/Email */ "./node_modules/vue-material-design-icons/Email.vue"); +/* harmony import */ var $icons_Plus__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! $icons/Plus */ "./node_modules/vue-material-design-icons/Plus.vue"); + + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _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; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'user-followers', + components: { + UserListItem: $components_user_list_item__WEBPACK_IMPORTED_MODULE_3__["default"], + EmptyState: $components_empty_state__WEBPACK_IMPORTED_MODULE_2__["default"], + Paginator: $components_paginator__WEBPACK_IMPORTED_MODULE_4__["default"], + PlusIcon: $icons_Plus__WEBPACK_IMPORTED_MODULE_6__["default"], + EmailIcon: $icons_Email__WEBPACK_IMPORTED_MODULE_5__["default"] + }, + data: function data() { + return { + users: [] + }; + }, + created: function created() { + this.followers(); + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_1__["mapGetters"])(['currentUser'])), + methods: { + followers: function () { + var _followers = _asyncToGenerator( + /*#__PURE__*/ + _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee() { + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return this.$http.get("user/".concat(this.$parent.user.username, "/followers")); + + case 2: + this.users = _context.sent; + + case 3: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function followers() { + return _followers.apply(this, arguments); + } + + return followers; + }() + } +}); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true&": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true& ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".form-control[data-v-1c1fa7e8]:focus {\n border: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true&": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true& ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--7-3!../../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../../node_modules/vue-loader/lib??vue-loader-options!./followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/followers.vue?vue&type=template&id=1c1fa7e8&scoped=true&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/followers.vue?vue&type=template&id=1c1fa7e8&scoped=true& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box box-flush" }, [ + _c( + "div", + { staticClass: "list-group list-group-flush" }, + [ + _vm._l(_vm.users.data, function(user) { + return _c("user-list-item", { + key: user.id, + staticClass: "list-group-item", + attrs: { user: user } + }) + }), + _vm._v(" "), + _vm.users.data && _vm.users.data.length == 0 + ? _c("empty-state") + : _vm._e(), + _vm._v(" "), + _c("paginator", { attrs: { meta: _vm.users.meta } }) + ], + 2 + ), + _vm._v(" "), + false + ? undefined + : _vm._e() + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/modules/users/tabs/followers.vue": +/*!**********************************************!*\ + !*** ./src/modules/users/tabs/followers.vue ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _followers_vue_vue_type_template_id_1c1fa7e8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./followers.vue?vue&type=template&id=1c1fa7e8&scoped=true& */ "./src/modules/users/tabs/followers.vue?vue&type=template&id=1c1fa7e8&scoped=true&"); +/* harmony import */ var _followers_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./followers.vue?vue&type=script&lang=js& */ "./src/modules/users/tabs/followers.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _followers_vue_vue_type_style_index_0_id_1c1fa7e8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true& */ "./src/modules/users/tabs/followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _followers_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _followers_vue_vue_type_template_id_1c1fa7e8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"], + _followers_vue_vue_type_template_id_1c1fa7e8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + "1c1fa7e8", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/users/tabs/followers.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/users/tabs/followers.vue?vue&type=script&lang=js&": +/*!***********************************************************************!*\ + !*** ./src/modules/users/tabs/followers.vue?vue&type=script&lang=js& ***! + \***********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./followers.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/followers.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/users/tabs/followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true&": +/*!********************************************************************************************************!*\ + !*** ./src/modules/users/tabs/followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true& ***! + \********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_style_index_0_id_1c1fa7e8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../../../node_modules/style-loader!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--7-3!../../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../../node_modules/vue-loader/lib??vue-loader-options!./followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_style_index_0_id_1c1fa7e8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_style_index_0_id_1c1fa7e8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_style_index_0_id_1c1fa7e8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_style_index_0_id_1c1fa7e8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_style_index_0_id_1c1fa7e8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/modules/users/tabs/followers.vue?vue&type=template&id=1c1fa7e8&scoped=true&": +/*!*****************************************************************************************!*\ + !*** ./src/modules/users/tabs/followers.vue?vue&type=template&id=1c1fa7e8&scoped=true& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_template_id_1c1fa7e8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./followers.vue?vue&type=template&id=1c1fa7e8&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/followers.vue?vue&type=template&id=1c1fa7e8&scoped=true&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_template_id_1c1fa7e8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_template_id_1c1fa7e8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/37.71b575d6ef77dea8533c.js b/public/37.71b575d6ef77dea8533c.js new file mode 100644 index 00000000..ff0520b0 --- /dev/null +++ b/public/37.71b575d6ef77dea8533c.js @@ -0,0 +1,303 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[37],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/forget-password.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/auth/forget-password.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + data: function data() { + return { + email: '' + }; + }, + methods: { + submit: function submit() { + var _this = this; + + this.$http.post('user/forget-password', { + email: this.email + }).then(function () { + _this.$message.success('邮件发送成功,请及时查看您的邮箱!'); + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/forget-password.vue?vue&type=template&id=5bae15f5&": +/*!***********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/auth/forget-password.vue?vue&type=template&id=5bae15f5& ***! + \***********************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "row pt-3" }, [ + _c("div", { staticClass: "offset-sm-4 col-sm-4" }, [ + _c("div", { staticClass: "box" }, [ + _c("h4", { staticClass: "text-center font-weight-normal mt-2 pb-2" }, [ + _vm._v("忘记密码") + ]), + _vm._v(" "), + _c( + "form", + { + on: { + submit: function($event) { + $event.preventDefault() + return _vm.submit($event) + } + } + }, + [ + _c("div", { staticClass: "form-group input-group" }, [ + _c("input", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.email, + expression: "email" + } + ], + staticClass: "form-control", + attrs: { type: "text", placeholder: "请输入邮箱地址" }, + domProps: { value: _vm.email }, + on: { + input: function($event) { + if ($event.target.composing) { + return + } + _vm.email = $event.target.value + } + } + }) + ]), + _vm._v(" "), + _c( + "button", + { + staticClass: "my-2 btn btn-primary w-100 btn-sm", + attrs: { type: "submit" } + }, + [_vm._v("发送邮件")] + ) + ] + ) + ]) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./src/modules/auth/forget-password.vue": +/*!**********************************************!*\ + !*** ./src/modules/auth/forget-password.vue ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _forget_password_vue_vue_type_template_id_5bae15f5___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./forget-password.vue?vue&type=template&id=5bae15f5& */ "./src/modules/auth/forget-password.vue?vue&type=template&id=5bae15f5&"); +/* harmony import */ var _forget_password_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./forget-password.vue?vue&type=script&lang=js& */ "./src/modules/auth/forget-password.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _forget_password_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _forget_password_vue_vue_type_template_id_5bae15f5___WEBPACK_IMPORTED_MODULE_0__["render"], + _forget_password_vue_vue_type_template_id_5bae15f5___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/auth/forget-password.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/auth/forget-password.vue?vue&type=script&lang=js&": +/*!***********************************************************************!*\ + !*** ./src/modules/auth/forget-password.vue?vue&type=script&lang=js& ***! + \***********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_forget_password_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./forget-password.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/forget-password.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_forget_password_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/auth/forget-password.vue?vue&type=template&id=5bae15f5&": +/*!*****************************************************************************!*\ + !*** ./src/modules/auth/forget-password.vue?vue&type=template&id=5bae15f5& ***! + \*****************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_forget_password_vue_vue_type_template_id_5bae15f5___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./forget-password.vue?vue&type=template&id=5bae15f5& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/forget-password.vue?vue&type=template&id=5bae15f5&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_forget_password_vue_vue_type_template_id_5bae15f5___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_forget_password_vue_vue_type_template_id_5bae15f5___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/38.860cbe75296d6bf490b9.js b/public/38.860cbe75296d6bf490b9.js new file mode 100644 index 00000000..7368d00d --- /dev/null +++ b/public/38.860cbe75296d6bf490b9.js @@ -0,0 +1,343 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[38],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/reset-password.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/auth/reset-password.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _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; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + data: function data() { + return { + password: '', + password_confirmation: '' + }; + }, + methods: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_0__["mapActions"])(['logout']), { + submit: function submit() { + this.$http.post('user/reset-password', { + token: this.$route.query.token, + email: this.$route.query.email, + password: this.password, + password_confirmation: this.password_confirmation + }); + this.logout(); + this.$router.push({ + name: 'auth.login' + }); + this.$message.success('成功修改密码,请重新登录!'); + } + }) +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/reset-password.vue?vue&type=template&id=8c035e62&": +/*!**********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/auth/reset-password.vue?vue&type=template&id=8c035e62& ***! + \**********************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "row pt-3" }, [ + _c("div", { staticClass: "offset-sm-4 col-sm-4" }, [ + _c("div", { staticClass: "box" }, [ + _c("h4", { staticClass: "text-center font-weight-normal mt-2 pb-2" }, [ + _vm._v("重置密码") + ]), + _vm._v(" "), + _c( + "form", + { + on: { + submit: function($event) { + $event.preventDefault() + return _vm.submit($event) + } + } + }, + [ + _c("div", { staticClass: "form-group input-group" }, [ + _c("input", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.password, + expression: "password" + } + ], + staticClass: "form-control", + attrs: { type: "password", placeholder: "请输入密码" }, + domProps: { value: _vm.password }, + on: { + input: function($event) { + if ($event.target.composing) { + return + } + _vm.password = $event.target.value + } + } + }) + ]), + _vm._v(" "), + _c("div", { staticClass: "form-group input-group" }, [ + _c("input", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.password_confirmation, + expression: "password_confirmation" + } + ], + staticClass: "form-control", + attrs: { type: "password", placeholder: "请输入确认密码" }, + domProps: { value: _vm.password_confirmation }, + on: { + input: function($event) { + if ($event.target.composing) { + return + } + _vm.password_confirmation = $event.target.value + } + } + }) + ]), + _vm._v(" "), + _c( + "button", + { + staticClass: "my-2 btn btn-primary w-100 btn-sm", + attrs: { type: "submit" } + }, + [_vm._v("修改密码")] + ) + ] + ) + ]) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./src/modules/auth/reset-password.vue": +/*!*********************************************!*\ + !*** ./src/modules/auth/reset-password.vue ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _reset_password_vue_vue_type_template_id_8c035e62___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reset-password.vue?vue&type=template&id=8c035e62& */ "./src/modules/auth/reset-password.vue?vue&type=template&id=8c035e62&"); +/* harmony import */ var _reset_password_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reset-password.vue?vue&type=script&lang=js& */ "./src/modules/auth/reset-password.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _reset_password_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _reset_password_vue_vue_type_template_id_8c035e62___WEBPACK_IMPORTED_MODULE_0__["render"], + _reset_password_vue_vue_type_template_id_8c035e62___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/auth/reset-password.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/auth/reset-password.vue?vue&type=script&lang=js&": +/*!**********************************************************************!*\ + !*** ./src/modules/auth/reset-password.vue?vue&type=script&lang=js& ***! + \**********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_reset_password_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./reset-password.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/reset-password.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_reset_password_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/auth/reset-password.vue?vue&type=template&id=8c035e62&": +/*!****************************************************************************!*\ + !*** ./src/modules/auth/reset-password.vue?vue&type=template&id=8c035e62& ***! + \****************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_reset_password_vue_vue_type_template_id_8c035e62___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./reset-password.vue?vue&type=template&id=8c035e62& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/reset-password.vue?vue&type=template&id=8c035e62&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_reset_password_vue_vue_type_template_id_8c035e62___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_reset_password_vue_vue_type_template_id_8c035e62___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/39.09e96dce1f3b81bcb26a.js b/public/39.09e96dce1f3b81bcb26a.js new file mode 100644 index 00000000..3ad01bd9 --- /dev/null +++ b/public/39.09e96dce1f3b81bcb26a.js @@ -0,0 +1,306 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[39],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/nodes/list.vue?vue&type=script&lang=js&": +/*!*********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/nodes/list.vue?vue&type=script&lang=js& ***! + \*********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + data: function data() { + return { + nodes: [] + }; + }, + created: function created() { + this.getNodes(); + }, + methods: { + getNodes: function getNodes() { + var _this = this; + + this.$http.get('nodes?all=yes').then(function (_ref) { + var data = _ref.data; + _this.nodes = data; + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/nodes/list.vue?vue&type=template&id=01b9e346&": +/*!*************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/nodes/list.vue?vue&type=template&id=01b9e346& ***! + \*************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "page-node-show" }, [ + _c("div", { staticClass: "row mt-3" }, [ + _c( + "div", + { staticClass: "col-md-12" }, + _vm._l(_vm.nodes, function(node) { + return _c("div", { key: node.id, staticClass: "box mb-3" }, [ + _c("div", { staticClass: "box-heading" }, [ + _vm._v("\n " + _vm._s(node.title) + "\n ") + ]), + _vm._v(" "), + _c("div", { staticClass: "box-body" }, [ + _c( + "ul", + { staticClass: "nav nav-pills" }, + _vm._l(node.children, function(child) { + return _c( + "li", + { key: child.id, staticClass: "nav-item mr-2 mb-1" }, + [ + _c( + "router-link", + { + staticClass: "btn text-gray-40 btn-outline-light", + attrs: { + to: { name: "nodes.node", params: { id: child.id } } + } + }, + [ + _vm._v( + "\n " + + _vm._s(child.title) + + "\n " + ) + ] + ) + ], + 1 + ) + }), + 0 + ) + ]) + ]) + }), + 0 + ) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./src/modules/nodes/list.vue": +/*!************************************!*\ + !*** ./src/modules/nodes/list.vue ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _list_vue_vue_type_template_id_01b9e346___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./list.vue?vue&type=template&id=01b9e346& */ "./src/modules/nodes/list.vue?vue&type=template&id=01b9e346&"); +/* harmony import */ var _list_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./list.vue?vue&type=script&lang=js& */ "./src/modules/nodes/list.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _list_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _list_vue_vue_type_template_id_01b9e346___WEBPACK_IMPORTED_MODULE_0__["render"], + _list_vue_vue_type_template_id_01b9e346___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/nodes/list.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/nodes/list.vue?vue&type=script&lang=js&": +/*!*************************************************************!*\ + !*** ./src/modules/nodes/list.vue?vue&type=script&lang=js& ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_list_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./list.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/nodes/list.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_list_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/nodes/list.vue?vue&type=template&id=01b9e346&": +/*!*******************************************************************!*\ + !*** ./src/modules/nodes/list.vue?vue&type=template&id=01b9e346& ***! + \*******************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_list_vue_vue_type_template_id_01b9e346___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./list.vue?vue&type=template&id=01b9e346& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/nodes/list.vue?vue&type=template&id=01b9e346&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_list_vue_vue_type_template_id_01b9e346___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_list_vue_vue_type_template_id_01b9e346___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/4.e3c896f652480a50d859.js b/public/4.e3c896f652480a50d859.js new file mode 100644 index 00000000..e2ff5fdc --- /dev/null +++ b/public/4.e3c896f652480a50d859.js @@ -0,0 +1,17901 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{ + +/***/ "./node_modules/codemirror/addon/display/placeholder.js": +/*!**************************************************************!*\ + !*** ./node_modules/codemirror/addon/display/placeholder.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")); + else {} +})(function(CodeMirror) { + CodeMirror.defineOption("placeholder", "", function(cm, val, old) { + var prev = old && old != CodeMirror.Init; + if (val && !prev) { + cm.on("blur", onBlur); + cm.on("change", onChange); + cm.on("swapDoc", onChange); + onChange(cm); + } else if (!val && prev) { + cm.off("blur", onBlur); + cm.off("change", onChange); + cm.off("swapDoc", onChange); + clearPlaceholder(cm); + var wrapper = cm.getWrapperElement(); + wrapper.className = wrapper.className.replace(" CodeMirror-empty", ""); + } + + if (val && !cm.hasFocus()) onBlur(cm); + }); + + function clearPlaceholder(cm) { + if (cm.state.placeholder) { + cm.state.placeholder.parentNode.removeChild(cm.state.placeholder); + cm.state.placeholder = null; + } + } + function setPlaceholder(cm) { + clearPlaceholder(cm); + var elt = cm.state.placeholder = document.createElement("pre"); + elt.style.cssText = "height: 0; overflow: visible"; + elt.style.direction = cm.getOption("direction"); + elt.className = "CodeMirror-placeholder"; + var placeHolder = cm.getOption("placeholder") + if (typeof placeHolder == "string") placeHolder = document.createTextNode(placeHolder) + elt.appendChild(placeHolder) + cm.display.lineSpace.insertBefore(elt, cm.display.lineSpace.firstChild); + } + + function onBlur(cm) { + if (isEmpty(cm)) setPlaceholder(cm); + } + function onChange(cm) { + var wrapper = cm.getWrapperElement(), empty = isEmpty(cm); + wrapper.className = wrapper.className.replace(" CodeMirror-empty", "") + (empty ? " CodeMirror-empty" : ""); + + if (empty) setPlaceholder(cm); + else clearPlaceholder(cm); + } + + function isEmpty(cm) { + return (cm.lineCount() === 1) && (cm.getLine(0) === ""); + } +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/addon/edit/closebrackets.js": +/*!*************************************************************!*\ + !*** ./node_modules/codemirror/addon/edit/closebrackets.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")); + else {} +})(function(CodeMirror) { + var defaults = { + pairs: "()[]{}''\"\"", + closeBefore: ")]}'\":;>", + triples: "", + explode: "[]{}" + }; + + var Pos = CodeMirror.Pos; + + CodeMirror.defineOption("autoCloseBrackets", false, function(cm, val, old) { + if (old && old != CodeMirror.Init) { + cm.removeKeyMap(keyMap); + cm.state.closeBrackets = null; + } + if (val) { + ensureBound(getOption(val, "pairs")) + cm.state.closeBrackets = val; + cm.addKeyMap(keyMap); + } + }); + + function getOption(conf, name) { + if (name == "pairs" && typeof conf == "string") return conf; + if (typeof conf == "object" && conf[name] != null) return conf[name]; + return defaults[name]; + } + + var keyMap = {Backspace: handleBackspace, Enter: handleEnter}; + function ensureBound(chars) { + for (var i = 0; i < chars.length; i++) { + var ch = chars.charAt(i), key = "'" + ch + "'" + if (!keyMap[key]) keyMap[key] = handler(ch) + } + } + ensureBound(defaults.pairs + "`") + + function handler(ch) { + return function(cm) { return handleChar(cm, ch); }; + } + + function getConfig(cm) { + var deflt = cm.state.closeBrackets; + if (!deflt || deflt.override) return deflt; + var mode = cm.getModeAt(cm.getCursor()); + return mode.closeBrackets || deflt; + } + + function handleBackspace(cm) { + var conf = getConfig(cm); + if (!conf || cm.getOption("disableInput")) return CodeMirror.Pass; + + var pairs = getOption(conf, "pairs"); + var ranges = cm.listSelections(); + for (var i = 0; i < ranges.length; i++) { + if (!ranges[i].empty()) return CodeMirror.Pass; + var around = charsAround(cm, ranges[i].head); + if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass; + } + for (var i = ranges.length - 1; i >= 0; i--) { + var cur = ranges[i].head; + cm.replaceRange("", Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1), "+delete"); + } + } + + function handleEnter(cm) { + var conf = getConfig(cm); + var explode = conf && getOption(conf, "explode"); + if (!explode || cm.getOption("disableInput")) return CodeMirror.Pass; + + var ranges = cm.listSelections(); + for (var i = 0; i < ranges.length; i++) { + if (!ranges[i].empty()) return CodeMirror.Pass; + var around = charsAround(cm, ranges[i].head); + if (!around || explode.indexOf(around) % 2 != 0) return CodeMirror.Pass; + } + cm.operation(function() { + var linesep = cm.lineSeparator() || "\n"; + cm.replaceSelection(linesep + linesep, null); + cm.execCommand("goCharLeft"); + ranges = cm.listSelections(); + for (var i = 0; i < ranges.length; i++) { + var line = ranges[i].head.line; + cm.indentLine(line, null, true); + cm.indentLine(line + 1, null, true); + } + }); + } + + function contractSelection(sel) { + var inverted = CodeMirror.cmpPos(sel.anchor, sel.head) > 0; + return {anchor: new Pos(sel.anchor.line, sel.anchor.ch + (inverted ? -1 : 1)), + head: new Pos(sel.head.line, sel.head.ch + (inverted ? 1 : -1))}; + } + + function handleChar(cm, ch) { + var conf = getConfig(cm); + if (!conf || cm.getOption("disableInput")) return CodeMirror.Pass; + + var pairs = getOption(conf, "pairs"); + var pos = pairs.indexOf(ch); + if (pos == -1) return CodeMirror.Pass; + + var closeBefore = getOption(conf,"closeBefore"); + + var triples = getOption(conf, "triples"); + + var identical = pairs.charAt(pos + 1) == ch; + var ranges = cm.listSelections(); + var opening = pos % 2 == 0; + + var type; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i], cur = range.head, curType; + var next = cm.getRange(cur, Pos(cur.line, cur.ch + 1)); + if (opening && !range.empty()) { + curType = "surround"; + } else if ((identical || !opening) && next == ch) { + if (identical && stringStartsAfter(cm, cur)) + curType = "both"; + else if (triples.indexOf(ch) >= 0 && cm.getRange(cur, Pos(cur.line, cur.ch + 3)) == ch + ch + ch) + curType = "skipThree"; + else + curType = "skip"; + } else if (identical && cur.ch > 1 && triples.indexOf(ch) >= 0 && + cm.getRange(Pos(cur.line, cur.ch - 2), cur) == ch + ch) { + if (cur.ch > 2 && /\bstring/.test(cm.getTokenTypeAt(Pos(cur.line, cur.ch - 2)))) return CodeMirror.Pass; + curType = "addFour"; + } else if (identical) { + var prev = cur.ch == 0 ? " " : cm.getRange(Pos(cur.line, cur.ch - 1), cur) + if (!CodeMirror.isWordChar(next) && prev != ch && !CodeMirror.isWordChar(prev)) curType = "both"; + else return CodeMirror.Pass; + } else if (opening && (next.length === 0 || /\s/.test(next) || closeBefore.indexOf(next) > -1)) { + curType = "both"; + } else { + return CodeMirror.Pass; + } + if (!type) type = curType; + else if (type != curType) return CodeMirror.Pass; + } + + var left = pos % 2 ? pairs.charAt(pos - 1) : ch; + var right = pos % 2 ? ch : pairs.charAt(pos + 1); + cm.operation(function() { + if (type == "skip") { + cm.execCommand("goCharRight"); + } else if (type == "skipThree") { + for (var i = 0; i < 3; i++) + cm.execCommand("goCharRight"); + } else if (type == "surround") { + var sels = cm.getSelections(); + for (var i = 0; i < sels.length; i++) + sels[i] = left + sels[i] + right; + cm.replaceSelections(sels, "around"); + sels = cm.listSelections().slice(); + for (var i = 0; i < sels.length; i++) + sels[i] = contractSelection(sels[i]); + cm.setSelections(sels); + } else if (type == "both") { + cm.replaceSelection(left + right, null); + cm.triggerElectric(left + right); + cm.execCommand("goCharLeft"); + } else if (type == "addFour") { + cm.replaceSelection(left + left + left + left, "before"); + cm.execCommand("goCharRight"); + } + }); + } + + function charsAround(cm, pos) { + var str = cm.getRange(Pos(pos.line, pos.ch - 1), + Pos(pos.line, pos.ch + 1)); + return str.length == 2 ? str : null; + } + + function stringStartsAfter(cm, pos) { + var token = cm.getTokenAt(Pos(pos.line, pos.ch + 1)) + return /\bstring/.test(token.type) && token.start == pos.ch && + (pos.ch == 0 || !/\bstring/.test(cm.getTokenTypeAt(pos))) + } +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/addon/edit/continuelist.js": +/*!************************************************************!*\ + !*** ./node_modules/codemirror/addon/edit/continuelist.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")); + else {} +})(function(CodeMirror) { + "use strict"; + + var listRE = /^(\s*)(>[> ]*|[*+-] \[[x ]\]\s|[*+-]\s|(\d+)([.)]))(\s*)/, + emptyListRE = /^(\s*)(>[> ]*|[*+-] \[[x ]\]|[*+-]|(\d+)[.)])(\s*)$/, + unorderedListRE = /[*+-]\s/; + + CodeMirror.commands.newlineAndIndentContinueMarkdownList = function(cm) { + if (cm.getOption("disableInput")) return CodeMirror.Pass; + var ranges = cm.listSelections(), replacements = []; + for (var i = 0; i < ranges.length; i++) { + var pos = ranges[i].head; + + // If we're not in Markdown mode, fall back to normal newlineAndIndent + var eolState = cm.getStateAfter(pos.line); + var inner = CodeMirror.innerMode(cm.getMode(), eolState); + if (inner.mode.name !== "markdown") { + cm.execCommand("newlineAndIndent"); + return; + } else { + eolState = inner.state; + } + + var inList = eolState.list !== false; + var inQuote = eolState.quote !== 0; + + var line = cm.getLine(pos.line), match = listRE.exec(line); + var cursorBeforeBullet = /^\s*$/.test(line.slice(0, pos.ch)); + if (!ranges[i].empty() || (!inList && !inQuote) || !match || cursorBeforeBullet) { + cm.execCommand("newlineAndIndent"); + return; + } + if (emptyListRE.test(line)) { + if (!/>\s*$/.test(line)) cm.replaceRange("", { + line: pos.line, ch: 0 + }, { + line: pos.line, ch: pos.ch + 1 + }); + replacements[i] = "\n"; + } else { + var indent = match[1], after = match[5]; + var numbered = !(unorderedListRE.test(match[2]) || match[2].indexOf(">") >= 0); + var bullet = numbered ? (parseInt(match[3], 10) + 1) + match[4] : match[2].replace("x", " "); + replacements[i] = "\n" + indent + bullet + after; + + if (numbered) incrementRemainingMarkdownListNumbers(cm, pos); + } + } + + cm.replaceSelections(replacements); + }; + + // Auto-updating Markdown list numbers when a new item is added to the + // middle of a list + function incrementRemainingMarkdownListNumbers(cm, pos) { + var startLine = pos.line, lookAhead = 0, skipCount = 0; + var startItem = listRE.exec(cm.getLine(startLine)), startIndent = startItem[1]; + + do { + lookAhead += 1; + var nextLineNumber = startLine + lookAhead; + var nextLine = cm.getLine(nextLineNumber), nextItem = listRE.exec(nextLine); + + if (nextItem) { + var nextIndent = nextItem[1]; + var newNumber = (parseInt(startItem[3], 10) + lookAhead - skipCount); + var nextNumber = (parseInt(nextItem[3], 10)), itemNumber = nextNumber; + + if (startIndent === nextIndent && !isNaN(nextNumber)) { + if (newNumber === nextNumber) itemNumber = nextNumber + 1; + if (newNumber > nextNumber) itemNumber = newNumber + 1; + cm.replaceRange( + nextLine.replace(listRE, nextIndent + itemNumber + nextItem[4] + nextItem[5]), + { + line: nextLineNumber, ch: 0 + }, { + line: nextLineNumber, ch: nextLine.length + }); + } else { + if (startIndent.length > nextIndent.length) return; + // This doesn't run if the next line immediatley indents, as it is + // not clear of the users intention (new indented item or same level) + if ((startIndent.length < nextIndent.length) && (lookAhead === 1)) return; + skipCount += 1; + } + } + } while (nextItem); + } +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/addon/edit/matchbrackets.js": +/*!*************************************************************!*\ + !*** ./node_modules/codemirror/addon/edit/matchbrackets.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")); + else {} +})(function(CodeMirror) { + var ie_lt8 = /MSIE \d/.test(navigator.userAgent) && + (document.documentMode == null || document.documentMode < 8); + + var Pos = CodeMirror.Pos; + + var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<", "<": ">>", ">": "<<"}; + + function bracketRegex(config) { + return config && config.bracketRegex || /[(){}[\]]/ + } + + function findMatchingBracket(cm, where, config) { + var line = cm.getLineHandle(where.line), pos = where.ch - 1; + var afterCursor = config && config.afterCursor + if (afterCursor == null) + afterCursor = /(^| )cm-fat-cursor($| )/.test(cm.getWrapperElement().className) + var re = bracketRegex(config) + + // A cursor is defined as between two characters, but in in vim command mode + // (i.e. not insert mode), the cursor is visually represented as a + // highlighted box on top of the 2nd character. Otherwise, we allow matches + // from before or after the cursor. + var match = (!afterCursor && pos >= 0 && re.test(line.text.charAt(pos)) && matching[line.text.charAt(pos)]) || + re.test(line.text.charAt(pos + 1)) && matching[line.text.charAt(++pos)]; + if (!match) return null; + var dir = match.charAt(1) == ">" ? 1 : -1; + if (config && config.strict && (dir > 0) != (pos == where.ch)) return null; + var style = cm.getTokenTypeAt(Pos(where.line, pos + 1)); + + var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style || null, config); + if (found == null) return null; + return {from: Pos(where.line, pos), to: found && found.pos, + match: found && found.ch == match.charAt(0), forward: dir > 0}; + } + + // bracketRegex is used to specify which type of bracket to scan + // should be a regexp, e.g. /[[\]]/ + // + // Note: If "where" is on an open bracket, then this bracket is ignored. + // + // Returns false when no bracket was found, null when it reached + // maxScanLines and gave up + function scanForBracket(cm, where, dir, style, config) { + var maxScanLen = (config && config.maxScanLineLength) || 10000; + var maxScanLines = (config && config.maxScanLines) || 1000; + + var stack = []; + var re = bracketRegex(config) + var lineEnd = dir > 0 ? Math.min(where.line + maxScanLines, cm.lastLine() + 1) + : Math.max(cm.firstLine() - 1, where.line - maxScanLines); + for (var lineNo = where.line; lineNo != lineEnd; lineNo += dir) { + var line = cm.getLine(lineNo); + if (!line) continue; + var pos = dir > 0 ? 0 : line.length - 1, end = dir > 0 ? line.length : -1; + if (line.length > maxScanLen) continue; + if (lineNo == where.line) pos = where.ch - (dir < 0 ? 1 : 0); + for (; pos != end; pos += dir) { + var ch = line.charAt(pos); + if (re.test(ch) && (style === undefined || cm.getTokenTypeAt(Pos(lineNo, pos + 1)) == style)) { + var match = matching[ch]; + if (match && (match.charAt(1) == ">") == (dir > 0)) stack.push(ch); + else if (!stack.length) return {pos: Pos(lineNo, pos), ch: ch}; + else stack.pop(); + } + } + } + return lineNo - dir == (dir > 0 ? cm.lastLine() : cm.firstLine()) ? false : null; + } + + function matchBrackets(cm, autoclear, config) { + // Disable brace matching in long lines, since it'll cause hugely slow updates + var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000; + var marks = [], ranges = cm.listSelections(); + for (var i = 0; i < ranges.length; i++) { + var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head, config); + if (match && cm.getLine(match.from.line).length <= maxHighlightLen) { + var style = match.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket"; + marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), {className: style})); + if (match.to && cm.getLine(match.to.line).length <= maxHighlightLen) + marks.push(cm.markText(match.to, Pos(match.to.line, match.to.ch + 1), {className: style})); + } + } + + if (marks.length) { + // Kludge to work around the IE bug from issue #1193, where text + // input stops going to the textare whever this fires. + if (ie_lt8 && cm.state.focused) cm.focus(); + + var clear = function() { + cm.operation(function() { + for (var i = 0; i < marks.length; i++) marks[i].clear(); + }); + }; + if (autoclear) setTimeout(clear, 800); + else return clear; + } + } + + function doMatchBrackets(cm) { + cm.operation(function() { + if (cm.state.matchBrackets.currentlyHighlighted) { + cm.state.matchBrackets.currentlyHighlighted(); + cm.state.matchBrackets.currentlyHighlighted = null; + } + cm.state.matchBrackets.currentlyHighlighted = matchBrackets(cm, false, cm.state.matchBrackets); + }); + } + + CodeMirror.defineOption("matchBrackets", false, function(cm, val, old) { + if (old && old != CodeMirror.Init) { + cm.off("cursorActivity", doMatchBrackets); + if (cm.state.matchBrackets && cm.state.matchBrackets.currentlyHighlighted) { + cm.state.matchBrackets.currentlyHighlighted(); + cm.state.matchBrackets.currentlyHighlighted = null; + } + } + if (val) { + cm.state.matchBrackets = typeof val == "object" ? val : {}; + cm.on("cursorActivity", doMatchBrackets); + } + }); + + CodeMirror.defineExtension("matchBrackets", function() {matchBrackets(this, true);}); + CodeMirror.defineExtension("findMatchingBracket", function(pos, config, oldConfig){ + // Backwards-compatibility kludge + if (oldConfig || typeof config == "boolean") { + if (!oldConfig) { + config = config ? {strict: true} : null + } else { + oldConfig.strict = config + config = oldConfig + } + } + return findMatchingBracket(this, pos, config) + }); + CodeMirror.defineExtension("scanForBracket", function(pos, dir, style, config){ + return scanForBracket(this, pos, dir, style, config); + }); +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/addon/edit/matchtags.js": +/*!*********************************************************!*\ + !*** ./node_modules/codemirror/addon/edit/matchtags.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js"), __webpack_require__(/*! ../fold/xml-fold */ "./node_modules/codemirror/addon/fold/xml-fold.js")); + else {} +})(function(CodeMirror) { + "use strict"; + + CodeMirror.defineOption("matchTags", false, function(cm, val, old) { + if (old && old != CodeMirror.Init) { + cm.off("cursorActivity", doMatchTags); + cm.off("viewportChange", maybeUpdateMatch); + clear(cm); + } + if (val) { + cm.state.matchBothTags = typeof val == "object" && val.bothTags; + cm.on("cursorActivity", doMatchTags); + cm.on("viewportChange", maybeUpdateMatch); + doMatchTags(cm); + } + }); + + function clear(cm) { + if (cm.state.tagHit) cm.state.tagHit.clear(); + if (cm.state.tagOther) cm.state.tagOther.clear(); + cm.state.tagHit = cm.state.tagOther = null; + } + + function doMatchTags(cm) { + cm.state.failedTagMatch = false; + cm.operation(function() { + clear(cm); + if (cm.somethingSelected()) return; + var cur = cm.getCursor(), range = cm.getViewport(); + range.from = Math.min(range.from, cur.line); range.to = Math.max(cur.line + 1, range.to); + var match = CodeMirror.findMatchingTag(cm, cur, range); + if (!match) return; + if (cm.state.matchBothTags) { + var hit = match.at == "open" ? match.open : match.close; + if (hit) cm.state.tagHit = cm.markText(hit.from, hit.to, {className: "CodeMirror-matchingtag"}); + } + var other = match.at == "close" ? match.open : match.close; + if (other) + cm.state.tagOther = cm.markText(other.from, other.to, {className: "CodeMirror-matchingtag"}); + else + cm.state.failedTagMatch = true; + }); + } + + function maybeUpdateMatch(cm) { + if (cm.state.failedTagMatch) doMatchTags(cm); + } + + CodeMirror.commands.toMatchingTag = function(cm) { + var found = CodeMirror.findMatchingTag(cm, cm.getCursor()); + if (found) { + var other = found.at == "close" ? found.open : found.close; + if (other) cm.extendSelection(other.to, other.from); + } + }; +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/addon/fold/xml-fold.js": +/*!********************************************************!*\ + !*** ./node_modules/codemirror/addon/fold/xml-fold.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")); + else {} +})(function(CodeMirror) { + "use strict"; + + var Pos = CodeMirror.Pos; + function cmp(a, b) { return a.line - b.line || a.ch - b.ch; } + + var nameStartChar = "A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD"; + var nameChar = nameStartChar + "\-\:\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040"; + var xmlTagStart = new RegExp("<(/?)([" + nameStartChar + "][" + nameChar + "]*)", "g"); + + function Iter(cm, line, ch, range) { + this.line = line; this.ch = ch; + this.cm = cm; this.text = cm.getLine(line); + this.min = range ? Math.max(range.from, cm.firstLine()) : cm.firstLine(); + this.max = range ? Math.min(range.to - 1, cm.lastLine()) : cm.lastLine(); + } + + function tagAt(iter, ch) { + var type = iter.cm.getTokenTypeAt(Pos(iter.line, ch)); + return type && /\btag\b/.test(type); + } + + function nextLine(iter) { + if (iter.line >= iter.max) return; + iter.ch = 0; + iter.text = iter.cm.getLine(++iter.line); + return true; + } + function prevLine(iter) { + if (iter.line <= iter.min) return; + iter.text = iter.cm.getLine(--iter.line); + iter.ch = iter.text.length; + return true; + } + + function toTagEnd(iter) { + for (;;) { + var gt = iter.text.indexOf(">", iter.ch); + if (gt == -1) { if (nextLine(iter)) continue; else return; } + if (!tagAt(iter, gt + 1)) { iter.ch = gt + 1; continue; } + var lastSlash = iter.text.lastIndexOf("/", gt); + var selfClose = lastSlash > -1 && !/\S/.test(iter.text.slice(lastSlash + 1, gt)); + iter.ch = gt + 1; + return selfClose ? "selfClose" : "regular"; + } + } + function toTagStart(iter) { + for (;;) { + var lt = iter.ch ? iter.text.lastIndexOf("<", iter.ch - 1) : -1; + if (lt == -1) { if (prevLine(iter)) continue; else return; } + if (!tagAt(iter, lt + 1)) { iter.ch = lt; continue; } + xmlTagStart.lastIndex = lt; + iter.ch = lt; + var match = xmlTagStart.exec(iter.text); + if (match && match.index == lt) return match; + } + } + + function toNextTag(iter) { + for (;;) { + xmlTagStart.lastIndex = iter.ch; + var found = xmlTagStart.exec(iter.text); + if (!found) { if (nextLine(iter)) continue; else return; } + if (!tagAt(iter, found.index + 1)) { iter.ch = found.index + 1; continue; } + iter.ch = found.index + found[0].length; + return found; + } + } + function toPrevTag(iter) { + for (;;) { + var gt = iter.ch ? iter.text.lastIndexOf(">", iter.ch - 1) : -1; + if (gt == -1) { if (prevLine(iter)) continue; else return; } + if (!tagAt(iter, gt + 1)) { iter.ch = gt; continue; } + var lastSlash = iter.text.lastIndexOf("/", gt); + var selfClose = lastSlash > -1 && !/\S/.test(iter.text.slice(lastSlash + 1, gt)); + iter.ch = gt + 1; + return selfClose ? "selfClose" : "regular"; + } + } + + function findMatchingClose(iter, tag) { + var stack = []; + for (;;) { + var next = toNextTag(iter), end, startLine = iter.line, startCh = iter.ch - (next ? next[0].length : 0); + if (!next || !(end = toTagEnd(iter))) return; + if (end == "selfClose") continue; + if (next[1]) { // closing tag + for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == next[2]) { + stack.length = i; + break; + } + if (i < 0 && (!tag || tag == next[2])) return { + tag: next[2], + from: Pos(startLine, startCh), + to: Pos(iter.line, iter.ch) + }; + } else { // opening tag + stack.push(next[2]); + } + } + } + function findMatchingOpen(iter, tag) { + var stack = []; + for (;;) { + var prev = toPrevTag(iter); + if (!prev) return; + if (prev == "selfClose") { toTagStart(iter); continue; } + var endLine = iter.line, endCh = iter.ch; + var start = toTagStart(iter); + if (!start) return; + if (start[1]) { // closing tag + stack.push(start[2]); + } else { // opening tag + for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == start[2]) { + stack.length = i; + break; + } + if (i < 0 && (!tag || tag == start[2])) return { + tag: start[2], + from: Pos(iter.line, iter.ch), + to: Pos(endLine, endCh) + }; + } + } + } + + CodeMirror.registerHelper("fold", "xml", function(cm, start) { + var iter = new Iter(cm, start.line, 0); + for (;;) { + var openTag = toNextTag(iter) + if (!openTag || iter.line != start.line) return + var end = toTagEnd(iter) + if (!end) return + if (!openTag[1] && end != "selfClose") { + var startPos = Pos(iter.line, iter.ch); + var endPos = findMatchingClose(iter, openTag[2]); + return endPos && cmp(endPos.from, startPos) > 0 ? {from: startPos, to: endPos.from} : null + } + } + }); + CodeMirror.findMatchingTag = function(cm, pos, range) { + var iter = new Iter(cm, pos.line, pos.ch, range); + if (iter.text.indexOf(">") == -1 && iter.text.indexOf("<") == -1) return; + var end = toTagEnd(iter), to = end && Pos(iter.line, iter.ch); + var start = end && toTagStart(iter); + if (!end || !start || cmp(iter, pos) > 0) return; + var here = {from: Pos(iter.line, iter.ch), to: to, tag: start[2]}; + if (end == "selfClose") return {open: here, close: null, at: "open"}; + + if (start[1]) { // closing tag + return {open: findMatchingOpen(iter, start[2]), close: here, at: "close"}; + } else { // opening tag + iter = new Iter(cm, to.line, to.ch, range); + return {open: here, close: findMatchingClose(iter, start[2]), at: "open"}; + } + }; + + CodeMirror.findEnclosingTag = function(cm, pos, range, tag) { + var iter = new Iter(cm, pos.line, pos.ch, range); + for (;;) { + var open = findMatchingOpen(iter, tag); + if (!open) break; + var forward = new Iter(cm, pos.line, pos.ch, range); + var close = findMatchingClose(forward, open.tag); + if (close) return {open: open, close: close}; + } + }; + + // Used by addon/edit/closetag.js + CodeMirror.scanForClosingTag = function(cm, pos, name, end) { + var iter = new Iter(cm, pos.line, pos.ch, end ? {from: 0, to: end} : null); + return findMatchingClose(iter, name); + }; +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/addon/hint/html-hint.js": +/*!*********************************************************!*\ + !*** ./node_modules/codemirror/addon/hint/html-hint.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js"), __webpack_require__(/*! ./xml-hint */ "./node_modules/codemirror/addon/hint/xml-hint.js")); + else {} +})(function(CodeMirror) { + "use strict"; + + var langs = "ab aa af ak sq am ar an hy as av ae ay az bm ba eu be bn bh bi bs br bg my ca ch ce ny zh cv kw co cr hr cs da dv nl dz en eo et ee fo fj fi fr ff gl ka de el gn gu ht ha he hz hi ho hu ia id ie ga ig ik io is it iu ja jv kl kn kr ks kk km ki rw ky kv kg ko ku kj la lb lg li ln lo lt lu lv gv mk mg ms ml mt mi mr mh mn na nv nb nd ne ng nn no ii nr oc oj cu om or os pa pi fa pl ps pt qu rm rn ro ru sa sc sd se sm sg sr gd sn si sk sl so st es su sw ss sv ta te tg th ti bo tk tl tn to tr ts tt tw ty ug uk ur uz ve vi vo wa cy wo fy xh yi yo za zu".split(" "); + var targets = ["_blank", "_self", "_top", "_parent"]; + var charsets = ["ascii", "utf-8", "utf-16", "latin1", "latin1"]; + var methods = ["get", "post", "put", "delete"]; + var encs = ["application/x-www-form-urlencoded", "multipart/form-data", "text/plain"]; + var media = ["all", "screen", "print", "embossed", "braille", "handheld", "print", "projection", "screen", "tty", "tv", "speech", + "3d-glasses", "resolution [>][<][=] [X]", "device-aspect-ratio: X/Y", "orientation:portrait", + "orientation:landscape", "device-height: [X]", "device-width: [X]"]; + var s = { attrs: {} }; // Simple tag, reused for a whole lot of tags + + var data = { + a: { + attrs: { + href: null, ping: null, type: null, + media: media, + target: targets, + hreflang: langs + } + }, + abbr: s, + acronym: s, + address: s, + applet: s, + area: { + attrs: { + alt: null, coords: null, href: null, target: null, ping: null, + media: media, hreflang: langs, type: null, + shape: ["default", "rect", "circle", "poly"] + } + }, + article: s, + aside: s, + audio: { + attrs: { + src: null, mediagroup: null, + crossorigin: ["anonymous", "use-credentials"], + preload: ["none", "metadata", "auto"], + autoplay: ["", "autoplay"], + loop: ["", "loop"], + controls: ["", "controls"] + } + }, + b: s, + base: { attrs: { href: null, target: targets } }, + basefont: s, + bdi: s, + bdo: s, + big: s, + blockquote: { attrs: { cite: null } }, + body: s, + br: s, + button: { + attrs: { + form: null, formaction: null, name: null, value: null, + autofocus: ["", "autofocus"], + disabled: ["", "autofocus"], + formenctype: encs, + formmethod: methods, + formnovalidate: ["", "novalidate"], + formtarget: targets, + type: ["submit", "reset", "button"] + } + }, + canvas: { attrs: { width: null, height: null } }, + caption: s, + center: s, + cite: s, + code: s, + col: { attrs: { span: null } }, + colgroup: { attrs: { span: null } }, + command: { + attrs: { + type: ["command", "checkbox", "radio"], + label: null, icon: null, radiogroup: null, command: null, title: null, + disabled: ["", "disabled"], + checked: ["", "checked"] + } + }, + data: { attrs: { value: null } }, + datagrid: { attrs: { disabled: ["", "disabled"], multiple: ["", "multiple"] } }, + datalist: { attrs: { data: null } }, + dd: s, + del: { attrs: { cite: null, datetime: null } }, + details: { attrs: { open: ["", "open"] } }, + dfn: s, + dir: s, + div: s, + dl: s, + dt: s, + em: s, + embed: { attrs: { src: null, type: null, width: null, height: null } }, + eventsource: { attrs: { src: null } }, + fieldset: { attrs: { disabled: ["", "disabled"], form: null, name: null } }, + figcaption: s, + figure: s, + font: s, + footer: s, + form: { + attrs: { + action: null, name: null, + "accept-charset": charsets, + autocomplete: ["on", "off"], + enctype: encs, + method: methods, + novalidate: ["", "novalidate"], + target: targets + } + }, + frame: s, + frameset: s, + h1: s, h2: s, h3: s, h4: s, h5: s, h6: s, + head: { + attrs: {}, + children: ["title", "base", "link", "style", "meta", "script", "noscript", "command"] + }, + header: s, + hgroup: s, + hr: s, + html: { + attrs: { manifest: null }, + children: ["head", "body"] + }, + i: s, + iframe: { + attrs: { + src: null, srcdoc: null, name: null, width: null, height: null, + sandbox: ["allow-top-navigation", "allow-same-origin", "allow-forms", "allow-scripts"], + seamless: ["", "seamless"] + } + }, + img: { + attrs: { + alt: null, src: null, ismap: null, usemap: null, width: null, height: null, + crossorigin: ["anonymous", "use-credentials"] + } + }, + input: { + attrs: { + alt: null, dirname: null, form: null, formaction: null, + height: null, list: null, max: null, maxlength: null, min: null, + name: null, pattern: null, placeholder: null, size: null, src: null, + step: null, value: null, width: null, + accept: ["audio/*", "video/*", "image/*"], + autocomplete: ["on", "off"], + autofocus: ["", "autofocus"], + checked: ["", "checked"], + disabled: ["", "disabled"], + formenctype: encs, + formmethod: methods, + formnovalidate: ["", "novalidate"], + formtarget: targets, + multiple: ["", "multiple"], + readonly: ["", "readonly"], + required: ["", "required"], + type: ["hidden", "text", "search", "tel", "url", "email", "password", "datetime", "date", "month", + "week", "time", "datetime-local", "number", "range", "color", "checkbox", "radio", + "file", "submit", "image", "reset", "button"] + } + }, + ins: { attrs: { cite: null, datetime: null } }, + kbd: s, + keygen: { + attrs: { + challenge: null, form: null, name: null, + autofocus: ["", "autofocus"], + disabled: ["", "disabled"], + keytype: ["RSA"] + } + }, + label: { attrs: { "for": null, form: null } }, + legend: s, + li: { attrs: { value: null } }, + link: { + attrs: { + href: null, type: null, + hreflang: langs, + media: media, + sizes: ["all", "16x16", "16x16 32x32", "16x16 32x32 64x64"] + } + }, + map: { attrs: { name: null } }, + mark: s, + menu: { attrs: { label: null, type: ["list", "context", "toolbar"] } }, + meta: { + attrs: { + content: null, + charset: charsets, + name: ["viewport", "application-name", "author", "description", "generator", "keywords"], + "http-equiv": ["content-language", "content-type", "default-style", "refresh"] + } + }, + meter: { attrs: { value: null, min: null, low: null, high: null, max: null, optimum: null } }, + nav: s, + noframes: s, + noscript: s, + object: { + attrs: { + data: null, type: null, name: null, usemap: null, form: null, width: null, height: null, + typemustmatch: ["", "typemustmatch"] + } + }, + ol: { attrs: { reversed: ["", "reversed"], start: null, type: ["1", "a", "A", "i", "I"] } }, + optgroup: { attrs: { disabled: ["", "disabled"], label: null } }, + option: { attrs: { disabled: ["", "disabled"], label: null, selected: ["", "selected"], value: null } }, + output: { attrs: { "for": null, form: null, name: null } }, + p: s, + param: { attrs: { name: null, value: null } }, + pre: s, + progress: { attrs: { value: null, max: null } }, + q: { attrs: { cite: null } }, + rp: s, + rt: s, + ruby: s, + s: s, + samp: s, + script: { + attrs: { + type: ["text/javascript"], + src: null, + async: ["", "async"], + defer: ["", "defer"], + charset: charsets + } + }, + section: s, + select: { + attrs: { + form: null, name: null, size: null, + autofocus: ["", "autofocus"], + disabled: ["", "disabled"], + multiple: ["", "multiple"] + } + }, + small: s, + source: { attrs: { src: null, type: null, media: null } }, + span: s, + strike: s, + strong: s, + style: { + attrs: { + type: ["text/css"], + media: media, + scoped: null + } + }, + sub: s, + summary: s, + sup: s, + table: s, + tbody: s, + td: { attrs: { colspan: null, rowspan: null, headers: null } }, + textarea: { + attrs: { + dirname: null, form: null, maxlength: null, name: null, placeholder: null, + rows: null, cols: null, + autofocus: ["", "autofocus"], + disabled: ["", "disabled"], + readonly: ["", "readonly"], + required: ["", "required"], + wrap: ["soft", "hard"] + } + }, + tfoot: s, + th: { attrs: { colspan: null, rowspan: null, headers: null, scope: ["row", "col", "rowgroup", "colgroup"] } }, + thead: s, + time: { attrs: { datetime: null } }, + title: s, + tr: s, + track: { + attrs: { + src: null, label: null, "default": null, + kind: ["subtitles", "captions", "descriptions", "chapters", "metadata"], + srclang: langs + } + }, + tt: s, + u: s, + ul: s, + "var": s, + video: { + attrs: { + src: null, poster: null, width: null, height: null, + crossorigin: ["anonymous", "use-credentials"], + preload: ["auto", "metadata", "none"], + autoplay: ["", "autoplay"], + mediagroup: ["movie"], + muted: ["", "muted"], + controls: ["", "controls"] + } + }, + wbr: s + }; + + var globalAttrs = { + accesskey: ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + "class": null, + contenteditable: ["true", "false"], + contextmenu: null, + dir: ["ltr", "rtl", "auto"], + draggable: ["true", "false", "auto"], + dropzone: ["copy", "move", "link", "string:", "file:"], + hidden: ["hidden"], + id: null, + inert: ["inert"], + itemid: null, + itemprop: null, + itemref: null, + itemscope: ["itemscope"], + itemtype: null, + lang: ["en", "es"], + spellcheck: ["true", "false"], + autocorrect: ["true", "false"], + autocapitalize: ["true", "false"], + style: null, + tabindex: ["1", "2", "3", "4", "5", "6", "7", "8", "9"], + title: null, + translate: ["yes", "no"], + onclick: null, + rel: ["stylesheet", "alternate", "author", "bookmark", "help", "license", "next", "nofollow", "noreferrer", "prefetch", "prev", "search", "tag"] + }; + function populate(obj) { + for (var attr in globalAttrs) if (globalAttrs.hasOwnProperty(attr)) + obj.attrs[attr] = globalAttrs[attr]; + } + + populate(s); + for (var tag in data) if (data.hasOwnProperty(tag) && data[tag] != s) + populate(data[tag]); + + CodeMirror.htmlSchema = data; + function htmlHint(cm, options) { + var local = {schemaInfo: data}; + if (options) for (var opt in options) local[opt] = options[opt]; + return CodeMirror.hint.xml(cm, local); + } + CodeMirror.registerHelper("hint", "html", htmlHint); +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/addon/hint/show-hint.js": +/*!*********************************************************!*\ + !*** ./node_modules/codemirror/addon/hint/show-hint.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")); + else {} +})(function(CodeMirror) { + "use strict"; + + var HINT_ELEMENT_CLASS = "CodeMirror-hint"; + var ACTIVE_HINT_ELEMENT_CLASS = "CodeMirror-hint-active"; + + // This is the old interface, kept around for now to stay + // backwards-compatible. + CodeMirror.showHint = function(cm, getHints, options) { + if (!getHints) return cm.showHint(options); + if (options && options.async) getHints.async = true; + var newOpts = {hint: getHints}; + if (options) for (var prop in options) newOpts[prop] = options[prop]; + return cm.showHint(newOpts); + }; + + CodeMirror.defineExtension("showHint", function(options) { + options = parseOptions(this, this.getCursor("start"), options); + var selections = this.listSelections() + if (selections.length > 1) return; + // By default, don't allow completion when something is selected. + // A hint function can have a `supportsSelection` property to + // indicate that it can handle selections. + if (this.somethingSelected()) { + if (!options.hint.supportsSelection) return; + // Don't try with cross-line selections + for (var i = 0; i < selections.length; i++) + if (selections[i].head.line != selections[i].anchor.line) return; + } + + if (this.state.completionActive) this.state.completionActive.close(); + var completion = this.state.completionActive = new Completion(this, options); + if (!completion.options.hint) return; + + CodeMirror.signal(this, "startCompletion", this); + completion.update(true); + }); + + CodeMirror.defineExtension("closeHint", function() { + if (this.state.completionActive) this.state.completionActive.close() + }) + + function Completion(cm, options) { + this.cm = cm; + this.options = options; + this.widget = null; + this.debounce = 0; + this.tick = 0; + this.startPos = this.cm.getCursor("start"); + this.startLen = this.cm.getLine(this.startPos.line).length - this.cm.getSelection().length; + + var self = this; + cm.on("cursorActivity", this.activityFunc = function() { self.cursorActivity(); }); + } + + var requestAnimationFrame = window.requestAnimationFrame || function(fn) { + return setTimeout(fn, 1000/60); + }; + var cancelAnimationFrame = window.cancelAnimationFrame || clearTimeout; + + Completion.prototype = { + close: function() { + if (!this.active()) return; + this.cm.state.completionActive = null; + this.tick = null; + this.cm.off("cursorActivity", this.activityFunc); + + if (this.widget && this.data) CodeMirror.signal(this.data, "close"); + if (this.widget) this.widget.close(); + CodeMirror.signal(this.cm, "endCompletion", this.cm); + }, + + active: function() { + return this.cm.state.completionActive == this; + }, + + pick: function(data, i) { + var completion = data.list[i]; + if (completion.hint) completion.hint(this.cm, data, completion); + else this.cm.replaceRange(getText(completion), completion.from || data.from, + completion.to || data.to, "complete"); + CodeMirror.signal(data, "pick", completion); + this.close(); + }, + + cursorActivity: function() { + if (this.debounce) { + cancelAnimationFrame(this.debounce); + this.debounce = 0; + } + + var pos = this.cm.getCursor(), line = this.cm.getLine(pos.line); + if (pos.line != this.startPos.line || line.length - pos.ch != this.startLen - this.startPos.ch || + pos.ch < this.startPos.ch || this.cm.somethingSelected() || + (!pos.ch || this.options.closeCharacters.test(line.charAt(pos.ch - 1)))) { + this.close(); + } else { + var self = this; + this.debounce = requestAnimationFrame(function() {self.update();}); + if (this.widget) this.widget.disable(); + } + }, + + update: function(first) { + if (this.tick == null) return + var self = this, myTick = ++this.tick + fetchHints(this.options.hint, this.cm, this.options, function(data) { + if (self.tick == myTick) self.finishUpdate(data, first) + }) + }, + + finishUpdate: function(data, first) { + if (this.data) CodeMirror.signal(this.data, "update"); + + var picked = (this.widget && this.widget.picked) || (first && this.options.completeSingle); + if (this.widget) this.widget.close(); + + this.data = data; + + if (data && data.list.length) { + if (picked && data.list.length == 1) { + this.pick(data, 0); + } else { + this.widget = new Widget(this, data); + CodeMirror.signal(data, "shown"); + } + } + } + }; + + function parseOptions(cm, pos, options) { + var editor = cm.options.hintOptions; + var out = {}; + for (var prop in defaultOptions) out[prop] = defaultOptions[prop]; + if (editor) for (var prop in editor) + if (editor[prop] !== undefined) out[prop] = editor[prop]; + if (options) for (var prop in options) + if (options[prop] !== undefined) out[prop] = options[prop]; + if (out.hint.resolve) out.hint = out.hint.resolve(cm, pos) + return out; + } + + function getText(completion) { + if (typeof completion == "string") return completion; + else return completion.text; + } + + function buildKeyMap(completion, handle) { + var baseMap = { + Up: function() {handle.moveFocus(-1);}, + Down: function() {handle.moveFocus(1);}, + PageUp: function() {handle.moveFocus(-handle.menuSize() + 1, true);}, + PageDown: function() {handle.moveFocus(handle.menuSize() - 1, true);}, + Home: function() {handle.setFocus(0);}, + End: function() {handle.setFocus(handle.length - 1);}, + Enter: handle.pick, + Tab: handle.pick, + Esc: handle.close + }; + + var mac = /Mac/.test(navigator.platform); + + if (mac) { + baseMap["Ctrl-P"] = function() {handle.moveFocus(-1);}; + baseMap["Ctrl-N"] = function() {handle.moveFocus(1);}; + } + + var custom = completion.options.customKeys; + var ourMap = custom ? {} : baseMap; + function addBinding(key, val) { + var bound; + if (typeof val != "string") + bound = function(cm) { return val(cm, handle); }; + // This mechanism is deprecated + else if (baseMap.hasOwnProperty(val)) + bound = baseMap[val]; + else + bound = val; + ourMap[key] = bound; + } + if (custom) + for (var key in custom) if (custom.hasOwnProperty(key)) + addBinding(key, custom[key]); + var extra = completion.options.extraKeys; + if (extra) + for (var key in extra) if (extra.hasOwnProperty(key)) + addBinding(key, extra[key]); + return ourMap; + } + + function getHintElement(hintsElement, el) { + while (el && el != hintsElement) { + if (el.nodeName.toUpperCase() === "LI" && el.parentNode == hintsElement) return el; + el = el.parentNode; + } + } + + function Widget(completion, data) { + this.completion = completion; + this.data = data; + this.picked = false; + var widget = this, cm = completion.cm; + var ownerDocument = cm.getInputField().ownerDocument; + var parentWindow = ownerDocument.defaultView || ownerDocument.parentWindow; + + var hints = this.hints = ownerDocument.createElement("ul"); + var theme = completion.cm.options.theme; + hints.className = "CodeMirror-hints " + theme; + this.selectedHint = data.selectedHint || 0; + + var completions = data.list; + for (var i = 0; i < completions.length; ++i) { + var elt = hints.appendChild(ownerDocument.createElement("li")), cur = completions[i]; + var className = HINT_ELEMENT_CLASS + (i != this.selectedHint ? "" : " " + ACTIVE_HINT_ELEMENT_CLASS); + if (cur.className != null) className = cur.className + " " + className; + elt.className = className; + if (cur.render) cur.render(elt, data, cur); + else elt.appendChild(ownerDocument.createTextNode(cur.displayText || getText(cur))); + elt.hintId = i; + } + + var container = completion.options.container || ownerDocument.body; + var pos = cm.cursorCoords(completion.options.alignWithWord ? data.from : null); + var left = pos.left, top = pos.bottom, below = true; + var offsetLeft = 0, offsetTop = 0; + if (container !== ownerDocument.body) { + // We offset the cursor position because left and top are relative to the offsetParent's top left corner. + var isContainerPositioned = ['absolute', 'relative', 'fixed'].indexOf(parentWindow.getComputedStyle(container).position) !== -1; + var offsetParent = isContainerPositioned ? container : container.offsetParent; + var offsetParentPosition = offsetParent.getBoundingClientRect(); + var bodyPosition = ownerDocument.body.getBoundingClientRect(); + offsetLeft = (offsetParentPosition.left - bodyPosition.left - offsetParent.scrollLeft); + offsetTop = (offsetParentPosition.top - bodyPosition.top - offsetParent.scrollTop); + } + hints.style.left = (left - offsetLeft) + "px"; + hints.style.top = (top - offsetTop) + "px"; + + // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor. + var winW = parentWindow.innerWidth || Math.max(ownerDocument.body.offsetWidth, ownerDocument.documentElement.offsetWidth); + var winH = parentWindow.innerHeight || Math.max(ownerDocument.body.offsetHeight, ownerDocument.documentElement.offsetHeight); + container.appendChild(hints); + var box = hints.getBoundingClientRect(), overlapY = box.bottom - winH; + var scrolls = hints.scrollHeight > hints.clientHeight + 1 + var startScroll = cm.getScrollInfo(); + + if (overlapY > 0) { + var height = box.bottom - box.top, curTop = pos.top - (pos.bottom - box.top); + if (curTop - height > 0) { // Fits above cursor + hints.style.top = (top = pos.top - height - offsetTop) + "px"; + below = false; + } else if (height > winH) { + hints.style.height = (winH - 5) + "px"; + hints.style.top = (top = pos.bottom - box.top - offsetTop) + "px"; + var cursor = cm.getCursor(); + if (data.from.ch != cursor.ch) { + pos = cm.cursorCoords(cursor); + hints.style.left = (left = pos.left - offsetLeft) + "px"; + box = hints.getBoundingClientRect(); + } + } + } + var overlapX = box.right - winW; + if (overlapX > 0) { + if (box.right - box.left > winW) { + hints.style.width = (winW - 5) + "px"; + overlapX -= (box.right - box.left) - winW; + } + hints.style.left = (left = pos.left - overlapX - offsetLeft) + "px"; + } + if (scrolls) for (var node = hints.firstChild; node; node = node.nextSibling) + node.style.paddingRight = cm.display.nativeBarWidth + "px" + + cm.addKeyMap(this.keyMap = buildKeyMap(completion, { + moveFocus: function(n, avoidWrap) { widget.changeActive(widget.selectedHint + n, avoidWrap); }, + setFocus: function(n) { widget.changeActive(n); }, + menuSize: function() { return widget.screenAmount(); }, + length: completions.length, + close: function() { completion.close(); }, + pick: function() { widget.pick(); }, + data: data + })); + + if (completion.options.closeOnUnfocus) { + var closingOnBlur; + cm.on("blur", this.onBlur = function() { closingOnBlur = setTimeout(function() { completion.close(); }, 100); }); + cm.on("focus", this.onFocus = function() { clearTimeout(closingOnBlur); }); + } + + cm.on("scroll", this.onScroll = function() { + var curScroll = cm.getScrollInfo(), editor = cm.getWrapperElement().getBoundingClientRect(); + var newTop = top + startScroll.top - curScroll.top; + var point = newTop - (parentWindow.pageYOffset || (ownerDocument.documentElement || ownerDocument.body).scrollTop); + if (!below) point += hints.offsetHeight; + if (point <= editor.top || point >= editor.bottom) return completion.close(); + hints.style.top = newTop + "px"; + hints.style.left = (left + startScroll.left - curScroll.left) + "px"; + }); + + CodeMirror.on(hints, "dblclick", function(e) { + var t = getHintElement(hints, e.target || e.srcElement); + if (t && t.hintId != null) {widget.changeActive(t.hintId); widget.pick();} + }); + + CodeMirror.on(hints, "click", function(e) { + var t = getHintElement(hints, e.target || e.srcElement); + if (t && t.hintId != null) { + widget.changeActive(t.hintId); + if (completion.options.completeOnSingleClick) widget.pick(); + } + }); + + CodeMirror.on(hints, "mousedown", function() { + setTimeout(function(){cm.focus();}, 20); + }); + + CodeMirror.signal(data, "select", completions[this.selectedHint], hints.childNodes[this.selectedHint]); + return true; + } + + Widget.prototype = { + close: function() { + if (this.completion.widget != this) return; + this.completion.widget = null; + this.hints.parentNode.removeChild(this.hints); + this.completion.cm.removeKeyMap(this.keyMap); + + var cm = this.completion.cm; + if (this.completion.options.closeOnUnfocus) { + cm.off("blur", this.onBlur); + cm.off("focus", this.onFocus); + } + cm.off("scroll", this.onScroll); + }, + + disable: function() { + this.completion.cm.removeKeyMap(this.keyMap); + var widget = this; + this.keyMap = {Enter: function() { widget.picked = true; }}; + this.completion.cm.addKeyMap(this.keyMap); + }, + + pick: function() { + this.completion.pick(this.data, this.selectedHint); + }, + + changeActive: function(i, avoidWrap) { + if (i >= this.data.list.length) + i = avoidWrap ? this.data.list.length - 1 : 0; + else if (i < 0) + i = avoidWrap ? 0 : this.data.list.length - 1; + if (this.selectedHint == i) return; + var node = this.hints.childNodes[this.selectedHint]; + if (node) node.className = node.className.replace(" " + ACTIVE_HINT_ELEMENT_CLASS, ""); + node = this.hints.childNodes[this.selectedHint = i]; + node.className += " " + ACTIVE_HINT_ELEMENT_CLASS; + if (node.offsetTop < this.hints.scrollTop) + this.hints.scrollTop = node.offsetTop - 3; + else if (node.offsetTop + node.offsetHeight > this.hints.scrollTop + this.hints.clientHeight) + this.hints.scrollTop = node.offsetTop + node.offsetHeight - this.hints.clientHeight + 3; + CodeMirror.signal(this.data, "select", this.data.list[this.selectedHint], node); + }, + + screenAmount: function() { + return Math.floor(this.hints.clientHeight / this.hints.firstChild.offsetHeight) || 1; + } + }; + + function applicableHelpers(cm, helpers) { + if (!cm.somethingSelected()) return helpers + var result = [] + for (var i = 0; i < helpers.length; i++) + if (helpers[i].supportsSelection) result.push(helpers[i]) + return result + } + + function fetchHints(hint, cm, options, callback) { + if (hint.async) { + hint(cm, callback, options) + } else { + var result = hint(cm, options) + if (result && result.then) result.then(callback) + else callback(result) + } + } + + function resolveAutoHints(cm, pos) { + var helpers = cm.getHelpers(pos, "hint"), words + if (helpers.length) { + var resolved = function(cm, callback, options) { + var app = applicableHelpers(cm, helpers); + function run(i) { + if (i == app.length) return callback(null) + fetchHints(app[i], cm, options, function(result) { + if (result && result.list.length > 0) callback(result) + else run(i + 1) + }) + } + run(0) + } + resolved.async = true + resolved.supportsSelection = true + return resolved + } else if (words = cm.getHelper(cm.getCursor(), "hintWords")) { + return function(cm) { return CodeMirror.hint.fromList(cm, {words: words}) } + } else if (CodeMirror.hint.anyword) { + return function(cm, options) { return CodeMirror.hint.anyword(cm, options) } + } else { + return function() {} + } + } + + CodeMirror.registerHelper("hint", "auto", { + resolve: resolveAutoHints + }); + + CodeMirror.registerHelper("hint", "fromList", function(cm, options) { + var cur = cm.getCursor(), token = cm.getTokenAt(cur) + var term, from = CodeMirror.Pos(cur.line, token.start), to = cur + if (token.start < cur.ch && /\w/.test(token.string.charAt(cur.ch - token.start - 1))) { + term = token.string.substr(0, cur.ch - token.start) + } else { + term = "" + from = cur + } + var found = []; + for (var i = 0; i < options.words.length; i++) { + var word = options.words[i]; + if (word.slice(0, term.length) == term) + found.push(word); + } + + if (found.length) return {list: found, from: from, to: to}; + }); + + CodeMirror.commands.autocomplete = CodeMirror.showHint; + + var defaultOptions = { + hint: CodeMirror.hint.auto, + completeSingle: true, + alignWithWord: true, + closeCharacters: /[\s()\[\]{};:>,]/, + closeOnUnfocus: true, + completeOnSingleClick: true, + container: null, + customKeys: null, + extraKeys: null + }; + + CodeMirror.defineOption("hintOptions", null); +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/addon/hint/xml-hint.js": +/*!********************************************************!*\ + !*** ./node_modules/codemirror/addon/hint/xml-hint.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")); + else {} +})(function(CodeMirror) { + "use strict"; + + var Pos = CodeMirror.Pos; + + function matches(hint, typed, matchInMiddle) { + if (matchInMiddle) return hint.indexOf(typed) >= 0; + else return hint.lastIndexOf(typed, 0) == 0; + } + + function getHints(cm, options) { + var tags = options && options.schemaInfo; + var quote = (options && options.quoteChar) || '"'; + var matchInMiddle = options && options.matchInMiddle; + if (!tags) return; + var cur = cm.getCursor(), token = cm.getTokenAt(cur); + if (token.end > cur.ch) { + token.end = cur.ch; + token.string = token.string.slice(0, cur.ch - token.start); + } + var inner = CodeMirror.innerMode(cm.getMode(), token.state); + if (inner.mode.name != "xml") return; + var result = [], replaceToken = false, prefix; + var tag = /\btag\b/.test(token.type) && !/>$/.test(token.string); + var tagName = tag && /^\w/.test(token.string), tagStart; + + if (tagName) { + var before = cm.getLine(cur.line).slice(Math.max(0, token.start - 2), token.start); + var tagType = /<\/$/.test(before) ? "close" : /<$/.test(before) ? "open" : null; + if (tagType) tagStart = token.start - (tagType == "close" ? 2 : 1); + } else if (tag && token.string == "<") { + tagType = "open"; + } else if (tag && token.string == ""); + } else { + // Attribute completion + var curTag = tags[inner.state.tagName], attrs = curTag && curTag.attrs; + var globalAttrs = tags["!attrs"]; + if (!attrs && !globalAttrs) return; + if (!attrs) { + attrs = globalAttrs; + } else if (globalAttrs) { // Combine tag-local and global attributes + var set = {}; + for (var nm in globalAttrs) if (globalAttrs.hasOwnProperty(nm)) set[nm] = globalAttrs[nm]; + for (var nm in attrs) if (attrs.hasOwnProperty(nm)) set[nm] = attrs[nm]; + attrs = set; + } + if (token.type == "string" || token.string == "=") { // A value + var before = cm.getRange(Pos(cur.line, Math.max(0, cur.ch - 60)), + Pos(cur.line, token.type == "string" ? token.start : token.end)); + var atName = before.match(/([^\s\u00a0=<>\"\']+)=$/), atValues; + if (!atName || !attrs.hasOwnProperty(atName[1]) || !(atValues = attrs[atName[1]])) return; + if (typeof atValues == 'function') atValues = atValues.call(this, cm); // Functions can be used to supply values for autocomplete widget + if (token.type == "string") { + prefix = token.string; + var n = 0; + if (/['"]/.test(token.string.charAt(0))) { + quote = token.string.charAt(0); + prefix = token.string.slice(1); + n++; + } + var len = token.string.length; + if (/['"]/.test(token.string.charAt(len - 1))) { + quote = token.string.charAt(len - 1); + prefix = token.string.substr(n, len - 2); + } + if (n) { // an opening quote + var line = cm.getLine(cur.line); + if (line.length > token.end && line.charAt(token.end) == quote) token.end++; // include a closing quote + } + replaceToken = true; + } + for (var i = 0; i < atValues.length; ++i) if (!prefix || matches(atValues[i], prefix, matchInMiddle)) + result.push(quote + atValues[i] + quote); + } else { // An attribute name + if (token.type == "attribute") { + prefix = token.string; + replaceToken = true; + } + for (var attr in attrs) if (attrs.hasOwnProperty(attr) && (!prefix || matches(attr, prefix, matchInMiddle))) + result.push(attr); + } + } + return { + list: result, + from: replaceToken ? Pos(cur.line, tagStart == null ? token.start : tagStart) : cur, + to: replaceToken ? Pos(cur.line, token.end) : cur + }; + } + + CodeMirror.registerHelper("hint", "xml", getHints); +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/addon/mode/overlay.js": +/*!*******************************************************!*\ + !*** ./node_modules/codemirror/addon/mode/overlay.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +// Utility function that allows modes to be combined. The mode given +// as the base argument takes care of most of the normal mode +// functionality, but a second (typically simple) mode is used, which +// can override the style of text. Both modes get to parse all of the +// text, but when both assign a non-null style to a piece of code, the +// overlay wins, unless the combine argument was true and not overridden, +// or state.overlay.combineTokens was true, in which case the styles are +// combined. + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")); + else {} +})(function(CodeMirror) { +"use strict"; + +CodeMirror.overlayMode = function(base, overlay, combine) { + return { + startState: function() { + return { + base: CodeMirror.startState(base), + overlay: CodeMirror.startState(overlay), + basePos: 0, baseCur: null, + overlayPos: 0, overlayCur: null, + streamSeen: null + }; + }, + copyState: function(state) { + return { + base: CodeMirror.copyState(base, state.base), + overlay: CodeMirror.copyState(overlay, state.overlay), + basePos: state.basePos, baseCur: null, + overlayPos: state.overlayPos, overlayCur: null + }; + }, + + token: function(stream, state) { + if (stream != state.streamSeen || + Math.min(state.basePos, state.overlayPos) < stream.start) { + state.streamSeen = stream; + state.basePos = state.overlayPos = stream.start; + } + + if (stream.start == state.basePos) { + state.baseCur = base.token(stream, state.base); + state.basePos = stream.pos; + } + if (stream.start == state.overlayPos) { + stream.pos = stream.start; + state.overlayCur = overlay.token(stream, state.overlay); + state.overlayPos = stream.pos; + } + stream.pos = Math.min(state.basePos, state.overlayPos); + + // state.overlay.combineTokens always takes precedence over combine, + // unless set to null + if (state.overlayCur == null) return state.baseCur; + else if (state.baseCur != null && + state.overlay.combineTokens || + combine && state.overlay.combineTokens == null) + return state.baseCur + " " + state.overlayCur; + else return state.overlayCur; + }, + + indent: base.indent && function(state, textAfter, line) { + return base.indent(state.base, textAfter, line); + }, + electricChars: base.electricChars, + + innerMode: function(state) { return {state: state.base, mode: base}; }, + + blankLine: function(state) { + var baseToken, overlayToken; + if (base.blankLine) baseToken = base.blankLine(state.base); + if (overlay.blankLine) overlayToken = overlay.blankLine(state.overlay); + + return overlayToken == null ? + baseToken : + (combine && baseToken != null ? baseToken + " " + overlayToken : overlayToken); + } + }; +}; + +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/addon/search/searchcursor.js": +/*!**************************************************************!*\ + !*** ./node_modules/codemirror/addon/search/searchcursor.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")) + else {} +})(function(CodeMirror) { + "use strict" + var Pos = CodeMirror.Pos + + function regexpFlags(regexp) { + var flags = regexp.flags + return flags != null ? flags : (regexp.ignoreCase ? "i" : "") + + (regexp.global ? "g" : "") + + (regexp.multiline ? "m" : "") + } + + function ensureFlags(regexp, flags) { + var current = regexpFlags(regexp), target = current + for (var i = 0; i < flags.length; i++) if (target.indexOf(flags.charAt(i)) == -1) + target += flags.charAt(i) + return current == target ? regexp : new RegExp(regexp.source, target) + } + + function maybeMultiline(regexp) { + return /\\s|\\n|\n|\\W|\\D|\[\^/.test(regexp.source) + } + + function searchRegexpForward(doc, regexp, start) { + regexp = ensureFlags(regexp, "g") + for (var line = start.line, ch = start.ch, last = doc.lastLine(); line <= last; line++, ch = 0) { + regexp.lastIndex = ch + var string = doc.getLine(line), match = regexp.exec(string) + if (match) + return {from: Pos(line, match.index), + to: Pos(line, match.index + match[0].length), + match: match} + } + } + + function searchRegexpForwardMultiline(doc, regexp, start) { + if (!maybeMultiline(regexp)) return searchRegexpForward(doc, regexp, start) + + regexp = ensureFlags(regexp, "gm") + var string, chunk = 1 + for (var line = start.line, last = doc.lastLine(); line <= last;) { + // This grows the search buffer in exponentially-sized chunks + // between matches, so that nearby matches are fast and don't + // require concatenating the whole document (in case we're + // searching for something that has tons of matches), but at the + // same time, the amount of retries is limited. + for (var i = 0; i < chunk; i++) { + if (line > last) break + var curLine = doc.getLine(line++) + string = string == null ? curLine : string + "\n" + curLine + } + chunk = chunk * 2 + regexp.lastIndex = start.ch + var match = regexp.exec(string) + if (match) { + var before = string.slice(0, match.index).split("\n"), inside = match[0].split("\n") + var startLine = start.line + before.length - 1, startCh = before[before.length - 1].length + return {from: Pos(startLine, startCh), + to: Pos(startLine + inside.length - 1, + inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length), + match: match} + } + } + } + + function lastMatchIn(string, regexp) { + var cutOff = 0, match + for (;;) { + regexp.lastIndex = cutOff + var newMatch = regexp.exec(string) + if (!newMatch) return match + match = newMatch + cutOff = match.index + (match[0].length || 1) + if (cutOff == string.length) return match + } + } + + function searchRegexpBackward(doc, regexp, start) { + regexp = ensureFlags(regexp, "g") + for (var line = start.line, ch = start.ch, first = doc.firstLine(); line >= first; line--, ch = -1) { + var string = doc.getLine(line) + if (ch > -1) string = string.slice(0, ch) + var match = lastMatchIn(string, regexp) + if (match) + return {from: Pos(line, match.index), + to: Pos(line, match.index + match[0].length), + match: match} + } + } + + function searchRegexpBackwardMultiline(doc, regexp, start) { + regexp = ensureFlags(regexp, "gm") + var string, chunk = 1 + for (var line = start.line, first = doc.firstLine(); line >= first;) { + for (var i = 0; i < chunk; i++) { + var curLine = doc.getLine(line--) + string = string == null ? curLine.slice(0, start.ch) : curLine + "\n" + string + } + chunk *= 2 + + var match = lastMatchIn(string, regexp) + if (match) { + var before = string.slice(0, match.index).split("\n"), inside = match[0].split("\n") + var startLine = line + before.length, startCh = before[before.length - 1].length + return {from: Pos(startLine, startCh), + to: Pos(startLine + inside.length - 1, + inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length), + match: match} + } + } + } + + var doFold, noFold + if (String.prototype.normalize) { + doFold = function(str) { return str.normalize("NFD").toLowerCase() } + noFold = function(str) { return str.normalize("NFD") } + } else { + doFold = function(str) { return str.toLowerCase() } + noFold = function(str) { return str } + } + + // Maps a position in a case-folded line back to a position in the original line + // (compensating for codepoints increasing in number during folding) + function adjustPos(orig, folded, pos, foldFunc) { + if (orig.length == folded.length) return pos + for (var min = 0, max = pos + Math.max(0, orig.length - folded.length);;) { + if (min == max) return min + var mid = (min + max) >> 1 + var len = foldFunc(orig.slice(0, mid)).length + if (len == pos) return mid + else if (len > pos) max = mid + else min = mid + 1 + } + } + + function searchStringForward(doc, query, start, caseFold) { + // Empty string would match anything and never progress, so we + // define it to match nothing instead. + if (!query.length) return null + var fold = caseFold ? doFold : noFold + var lines = fold(query).split(/\r|\n\r?/) + + search: for (var line = start.line, ch = start.ch, last = doc.lastLine() + 1 - lines.length; line <= last; line++, ch = 0) { + var orig = doc.getLine(line).slice(ch), string = fold(orig) + if (lines.length == 1) { + var found = string.indexOf(lines[0]) + if (found == -1) continue search + var start = adjustPos(orig, string, found, fold) + ch + return {from: Pos(line, adjustPos(orig, string, found, fold) + ch), + to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold) + ch)} + } else { + var cutFrom = string.length - lines[0].length + if (string.slice(cutFrom) != lines[0]) continue search + for (var i = 1; i < lines.length - 1; i++) + if (fold(doc.getLine(line + i)) != lines[i]) continue search + var end = doc.getLine(line + lines.length - 1), endString = fold(end), lastLine = lines[lines.length - 1] + if (endString.slice(0, lastLine.length) != lastLine) continue search + return {from: Pos(line, adjustPos(orig, string, cutFrom, fold) + ch), + to: Pos(line + lines.length - 1, adjustPos(end, endString, lastLine.length, fold))} + } + } + } + + function searchStringBackward(doc, query, start, caseFold) { + if (!query.length) return null + var fold = caseFold ? doFold : noFold + var lines = fold(query).split(/\r|\n\r?/) + + search: for (var line = start.line, ch = start.ch, first = doc.firstLine() - 1 + lines.length; line >= first; line--, ch = -1) { + var orig = doc.getLine(line) + if (ch > -1) orig = orig.slice(0, ch) + var string = fold(orig) + if (lines.length == 1) { + var found = string.lastIndexOf(lines[0]) + if (found == -1) continue search + return {from: Pos(line, adjustPos(orig, string, found, fold)), + to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold))} + } else { + var lastLine = lines[lines.length - 1] + if (string.slice(0, lastLine.length) != lastLine) continue search + for (var i = 1, start = line - lines.length + 1; i < lines.length - 1; i++) + if (fold(doc.getLine(start + i)) != lines[i]) continue search + var top = doc.getLine(line + 1 - lines.length), topString = fold(top) + if (topString.slice(topString.length - lines[0].length) != lines[0]) continue search + return {from: Pos(line + 1 - lines.length, adjustPos(top, topString, top.length - lines[0].length, fold)), + to: Pos(line, adjustPos(orig, string, lastLine.length, fold))} + } + } + } + + function SearchCursor(doc, query, pos, options) { + this.atOccurrence = false + this.doc = doc + pos = pos ? doc.clipPos(pos) : Pos(0, 0) + this.pos = {from: pos, to: pos} + + var caseFold + if (typeof options == "object") { + caseFold = options.caseFold + } else { // Backwards compat for when caseFold was the 4th argument + caseFold = options + options = null + } + + if (typeof query == "string") { + if (caseFold == null) caseFold = false + this.matches = function(reverse, pos) { + return (reverse ? searchStringBackward : searchStringForward)(doc, query, pos, caseFold) + } + } else { + query = ensureFlags(query, "gm") + if (!options || options.multiline !== false) + this.matches = function(reverse, pos) { + return (reverse ? searchRegexpBackwardMultiline : searchRegexpForwardMultiline)(doc, query, pos) + } + else + this.matches = function(reverse, pos) { + return (reverse ? searchRegexpBackward : searchRegexpForward)(doc, query, pos) + } + } + } + + SearchCursor.prototype = { + findNext: function() {return this.find(false)}, + findPrevious: function() {return this.find(true)}, + + find: function(reverse) { + var result = this.matches(reverse, this.doc.clipPos(reverse ? this.pos.from : this.pos.to)) + + // Implements weird auto-growing behavior on null-matches for + // backwards-compatiblity with the vim code (unfortunately) + while (result && CodeMirror.cmpPos(result.from, result.to) == 0) { + if (reverse) { + if (result.from.ch) result.from = Pos(result.from.line, result.from.ch - 1) + else if (result.from.line == this.doc.firstLine()) result = null + else result = this.matches(reverse, this.doc.clipPos(Pos(result.from.line - 1))) + } else { + if (result.to.ch < this.doc.getLine(result.to.line).length) result.to = Pos(result.to.line, result.to.ch + 1) + else if (result.to.line == this.doc.lastLine()) result = null + else result = this.matches(reverse, Pos(result.to.line + 1, 0)) + } + } + + if (result) { + this.pos = result + this.atOccurrence = true + return this.pos.match || true + } else { + var end = Pos(reverse ? this.doc.firstLine() : this.doc.lastLine() + 1, 0) + this.pos = {from: end, to: end} + return this.atOccurrence = false + } + }, + + from: function() {if (this.atOccurrence) return this.pos.from}, + to: function() {if (this.atOccurrence) return this.pos.to}, + + replace: function(newText, origin) { + if (!this.atOccurrence) return + var lines = CodeMirror.splitLines(newText) + this.doc.replaceRange(lines, this.pos.from, this.pos.to, origin) + this.pos.to = Pos(this.pos.from.line + lines.length - 1, + lines[lines.length - 1].length + (lines.length == 1 ? this.pos.from.ch : 0)) + } + } + + CodeMirror.defineExtension("getSearchCursor", function(query, pos, caseFold) { + return new SearchCursor(this.doc, query, pos, caseFold) + }) + CodeMirror.defineDocExtension("getSearchCursor", function(query, pos, caseFold) { + return new SearchCursor(this, query, pos, caseFold) + }) + + CodeMirror.defineExtension("selectMatches", function(query, caseFold) { + var ranges = [] + var cur = this.getSearchCursor(query, this.getCursor("from"), caseFold) + while (cur.findNext()) { + if (CodeMirror.cmpPos(cur.to(), this.getCursor("to")) > 0) break + ranges.push({anchor: cur.from(), head: cur.to()}) + } + if (ranges.length) + this.setSelections(ranges, 0) + }) +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/keymap/sublime.js": +/*!***************************************************!*\ + !*** ./node_modules/codemirror/keymap/sublime.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +// A rough approximation of Sublime Text's keybindings +// Depends on addon/search/searchcursor.js and optionally addon/dialog/dialogs.js + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js"), __webpack_require__(/*! ../addon/search/searchcursor */ "./node_modules/codemirror/addon/search/searchcursor.js"), __webpack_require__(/*! ../addon/edit/matchbrackets */ "./node_modules/codemirror/addon/edit/matchbrackets.js")); + else {} +})(function(CodeMirror) { + "use strict"; + + var cmds = CodeMirror.commands; + var Pos = CodeMirror.Pos; + + // This is not exactly Sublime's algorithm. I couldn't make heads or tails of that. + function findPosSubword(doc, start, dir) { + if (dir < 0 && start.ch == 0) return doc.clipPos(Pos(start.line - 1)); + var line = doc.getLine(start.line); + if (dir > 0 && start.ch >= line.length) return doc.clipPos(Pos(start.line + 1, 0)); + var state = "start", type; + for (var pos = start.ch, e = dir < 0 ? 0 : line.length, i = 0; pos != e; pos += dir, i++) { + var next = line.charAt(dir < 0 ? pos - 1 : pos); + var cat = next != "_" && CodeMirror.isWordChar(next) ? "w" : "o"; + if (cat == "w" && next.toUpperCase() == next) cat = "W"; + if (state == "start") { + if (cat != "o") { state = "in"; type = cat; } + } else if (state == "in") { + if (type != cat) { + if (type == "w" && cat == "W" && dir < 0) pos--; + if (type == "W" && cat == "w" && dir > 0) { type = "w"; continue; } + break; + } + } + } + return Pos(start.line, pos); + } + + function moveSubword(cm, dir) { + cm.extendSelectionsBy(function(range) { + if (cm.display.shift || cm.doc.extend || range.empty()) + return findPosSubword(cm.doc, range.head, dir); + else + return dir < 0 ? range.from() : range.to(); + }); + } + + cmds.goSubwordLeft = function(cm) { moveSubword(cm, -1); }; + cmds.goSubwordRight = function(cm) { moveSubword(cm, 1); }; + + cmds.scrollLineUp = function(cm) { + var info = cm.getScrollInfo(); + if (!cm.somethingSelected()) { + var visibleBottomLine = cm.lineAtHeight(info.top + info.clientHeight, "local"); + if (cm.getCursor().line >= visibleBottomLine) + cm.execCommand("goLineUp"); + } + cm.scrollTo(null, info.top - cm.defaultTextHeight()); + }; + cmds.scrollLineDown = function(cm) { + var info = cm.getScrollInfo(); + if (!cm.somethingSelected()) { + var visibleTopLine = cm.lineAtHeight(info.top, "local")+1; + if (cm.getCursor().line <= visibleTopLine) + cm.execCommand("goLineDown"); + } + cm.scrollTo(null, info.top + cm.defaultTextHeight()); + }; + + cmds.splitSelectionByLine = function(cm) { + var ranges = cm.listSelections(), lineRanges = []; + for (var i = 0; i < ranges.length; i++) { + var from = ranges[i].from(), to = ranges[i].to(); + for (var line = from.line; line <= to.line; ++line) + if (!(to.line > from.line && line == to.line && to.ch == 0)) + lineRanges.push({anchor: line == from.line ? from : Pos(line, 0), + head: line == to.line ? to : Pos(line)}); + } + cm.setSelections(lineRanges, 0); + }; + + cmds.singleSelectionTop = function(cm) { + var range = cm.listSelections()[0]; + cm.setSelection(range.anchor, range.head, {scroll: false}); + }; + + cmds.selectLine = function(cm) { + var ranges = cm.listSelections(), extended = []; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i]; + extended.push({anchor: Pos(range.from().line, 0), + head: Pos(range.to().line + 1, 0)}); + } + cm.setSelections(extended); + }; + + function insertLine(cm, above) { + if (cm.isReadOnly()) return CodeMirror.Pass + cm.operation(function() { + var len = cm.listSelections().length, newSelection = [], last = -1; + for (var i = 0; i < len; i++) { + var head = cm.listSelections()[i].head; + if (head.line <= last) continue; + var at = Pos(head.line + (above ? 0 : 1), 0); + cm.replaceRange("\n", at, null, "+insertLine"); + cm.indentLine(at.line, null, true); + newSelection.push({head: at, anchor: at}); + last = head.line + 1; + } + cm.setSelections(newSelection); + }); + cm.execCommand("indentAuto"); + } + + cmds.insertLineAfter = function(cm) { return insertLine(cm, false); }; + + cmds.insertLineBefore = function(cm) { return insertLine(cm, true); }; + + function wordAt(cm, pos) { + var start = pos.ch, end = start, line = cm.getLine(pos.line); + while (start && CodeMirror.isWordChar(line.charAt(start - 1))) --start; + while (end < line.length && CodeMirror.isWordChar(line.charAt(end))) ++end; + return {from: Pos(pos.line, start), to: Pos(pos.line, end), word: line.slice(start, end)}; + } + + cmds.selectNextOccurrence = function(cm) { + var from = cm.getCursor("from"), to = cm.getCursor("to"); + var fullWord = cm.state.sublimeFindFullWord == cm.doc.sel; + if (CodeMirror.cmpPos(from, to) == 0) { + var word = wordAt(cm, from); + if (!word.word) return; + cm.setSelection(word.from, word.to); + fullWord = true; + } else { + var text = cm.getRange(from, to); + var query = fullWord ? new RegExp("\\b" + text + "\\b") : text; + var cur = cm.getSearchCursor(query, to); + var found = cur.findNext(); + if (!found) { + cur = cm.getSearchCursor(query, Pos(cm.firstLine(), 0)); + found = cur.findNext(); + } + if (!found || isSelectedRange(cm.listSelections(), cur.from(), cur.to())) + return CodeMirror.Pass + cm.addSelection(cur.from(), cur.to()); + } + if (fullWord) + cm.state.sublimeFindFullWord = cm.doc.sel; + }; + + function addCursorToSelection(cm, dir) { + var ranges = cm.listSelections(), newRanges = []; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i]; + var newAnchor = cm.findPosV( + range.anchor, dir, "line", range.anchor.goalColumn); + var newHead = cm.findPosV( + range.head, dir, "line", range.head.goalColumn); + newAnchor.goalColumn = range.anchor.goalColumn != null ? + range.anchor.goalColumn : cm.cursorCoords(range.anchor, "div").left; + newHead.goalColumn = range.head.goalColumn != null ? + range.head.goalColumn : cm.cursorCoords(range.head, "div").left; + var newRange = {anchor: newAnchor, head: newHead}; + newRanges.push(range); + newRanges.push(newRange); + } + cm.setSelections(newRanges); + } + cmds.addCursorToPrevLine = function(cm) { addCursorToSelection(cm, -1); }; + cmds.addCursorToNextLine = function(cm) { addCursorToSelection(cm, 1); }; + + function isSelectedRange(ranges, from, to) { + for (var i = 0; i < ranges.length; i++) + if (ranges[i].from() == from && ranges[i].to() == to) return true + return false + } + + var mirror = "(){}[]"; + function selectBetweenBrackets(cm) { + var ranges = cm.listSelections(), newRanges = [] + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i], pos = range.head, opening = cm.scanForBracket(pos, -1); + if (!opening) return false; + for (;;) { + var closing = cm.scanForBracket(pos, 1); + if (!closing) return false; + if (closing.ch == mirror.charAt(mirror.indexOf(opening.ch) + 1)) { + var startPos = Pos(opening.pos.line, opening.pos.ch + 1); + if (CodeMirror.cmpPos(startPos, range.from()) == 0 && + CodeMirror.cmpPos(closing.pos, range.to()) == 0) { + opening = cm.scanForBracket(opening.pos, -1); + if (!opening) return false; + } else { + newRanges.push({anchor: startPos, head: closing.pos}); + break; + } + } + pos = Pos(closing.pos.line, closing.pos.ch + 1); + } + } + cm.setSelections(newRanges); + return true; + } + + cmds.selectScope = function(cm) { + selectBetweenBrackets(cm) || cm.execCommand("selectAll"); + }; + cmds.selectBetweenBrackets = function(cm) { + if (!selectBetweenBrackets(cm)) return CodeMirror.Pass; + }; + + cmds.goToBracket = function(cm) { + cm.extendSelectionsBy(function(range) { + var next = cm.scanForBracket(range.head, 1); + if (next && CodeMirror.cmpPos(next.pos, range.head) != 0) return next.pos; + var prev = cm.scanForBracket(range.head, -1); + return prev && Pos(prev.pos.line, prev.pos.ch + 1) || range.head; + }); + }; + + cmds.swapLineUp = function(cm) { + if (cm.isReadOnly()) return CodeMirror.Pass + var ranges = cm.listSelections(), linesToMove = [], at = cm.firstLine() - 1, newSels = []; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i], from = range.from().line - 1, to = range.to().line; + newSels.push({anchor: Pos(range.anchor.line - 1, range.anchor.ch), + head: Pos(range.head.line - 1, range.head.ch)}); + if (range.to().ch == 0 && !range.empty()) --to; + if (from > at) linesToMove.push(from, to); + else if (linesToMove.length) linesToMove[linesToMove.length - 1] = to; + at = to; + } + cm.operation(function() { + for (var i = 0; i < linesToMove.length; i += 2) { + var from = linesToMove[i], to = linesToMove[i + 1]; + var line = cm.getLine(from); + cm.replaceRange("", Pos(from, 0), Pos(from + 1, 0), "+swapLine"); + if (to > cm.lastLine()) + cm.replaceRange("\n" + line, Pos(cm.lastLine()), null, "+swapLine"); + else + cm.replaceRange(line + "\n", Pos(to, 0), null, "+swapLine"); + } + cm.setSelections(newSels); + cm.scrollIntoView(); + }); + }; + + cmds.swapLineDown = function(cm) { + if (cm.isReadOnly()) return CodeMirror.Pass + var ranges = cm.listSelections(), linesToMove = [], at = cm.lastLine() + 1; + for (var i = ranges.length - 1; i >= 0; i--) { + var range = ranges[i], from = range.to().line + 1, to = range.from().line; + if (range.to().ch == 0 && !range.empty()) from--; + if (from < at) linesToMove.push(from, to); + else if (linesToMove.length) linesToMove[linesToMove.length - 1] = to; + at = to; + } + cm.operation(function() { + for (var i = linesToMove.length - 2; i >= 0; i -= 2) { + var from = linesToMove[i], to = linesToMove[i + 1]; + var line = cm.getLine(from); + if (from == cm.lastLine()) + cm.replaceRange("", Pos(from - 1), Pos(from), "+swapLine"); + else + cm.replaceRange("", Pos(from, 0), Pos(from + 1, 0), "+swapLine"); + cm.replaceRange(line + "\n", Pos(to, 0), null, "+swapLine"); + } + cm.scrollIntoView(); + }); + }; + + cmds.toggleCommentIndented = function(cm) { + cm.toggleComment({ indent: true }); + } + + cmds.joinLines = function(cm) { + var ranges = cm.listSelections(), joined = []; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i], from = range.from(); + var start = from.line, end = range.to().line; + while (i < ranges.length - 1 && ranges[i + 1].from().line == end) + end = ranges[++i].to().line; + joined.push({start: start, end: end, anchor: !range.empty() && from}); + } + cm.operation(function() { + var offset = 0, ranges = []; + for (var i = 0; i < joined.length; i++) { + var obj = joined[i]; + var anchor = obj.anchor && Pos(obj.anchor.line - offset, obj.anchor.ch), head; + for (var line = obj.start; line <= obj.end; line++) { + var actual = line - offset; + if (line == obj.end) head = Pos(actual, cm.getLine(actual).length + 1); + if (actual < cm.lastLine()) { + cm.replaceRange(" ", Pos(actual), Pos(actual + 1, /^\s*/.exec(cm.getLine(actual + 1))[0].length)); + ++offset; + } + } + ranges.push({anchor: anchor || head, head: head}); + } + cm.setSelections(ranges, 0); + }); + }; + + cmds.duplicateLine = function(cm) { + cm.operation(function() { + var rangeCount = cm.listSelections().length; + for (var i = 0; i < rangeCount; i++) { + var range = cm.listSelections()[i]; + if (range.empty()) + cm.replaceRange(cm.getLine(range.head.line) + "\n", Pos(range.head.line, 0)); + else + cm.replaceRange(cm.getRange(range.from(), range.to()), range.from()); + } + cm.scrollIntoView(); + }); + }; + + + function sortLines(cm, caseSensitive) { + if (cm.isReadOnly()) return CodeMirror.Pass + var ranges = cm.listSelections(), toSort = [], selected; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i]; + if (range.empty()) continue; + var from = range.from().line, to = range.to().line; + while (i < ranges.length - 1 && ranges[i + 1].from().line == to) + to = ranges[++i].to().line; + if (!ranges[i].to().ch) to--; + toSort.push(from, to); + } + if (toSort.length) selected = true; + else toSort.push(cm.firstLine(), cm.lastLine()); + + cm.operation(function() { + var ranges = []; + for (var i = 0; i < toSort.length; i += 2) { + var from = toSort[i], to = toSort[i + 1]; + var start = Pos(from, 0), end = Pos(to); + var lines = cm.getRange(start, end, false); + if (caseSensitive) + lines.sort(); + else + lines.sort(function(a, b) { + var au = a.toUpperCase(), bu = b.toUpperCase(); + if (au != bu) { a = au; b = bu; } + return a < b ? -1 : a == b ? 0 : 1; + }); + cm.replaceRange(lines, start, end); + if (selected) ranges.push({anchor: start, head: Pos(to + 1, 0)}); + } + if (selected) cm.setSelections(ranges, 0); + }); + } + + cmds.sortLines = function(cm) { sortLines(cm, true); }; + cmds.sortLinesInsensitive = function(cm) { sortLines(cm, false); }; + + cmds.nextBookmark = function(cm) { + var marks = cm.state.sublimeBookmarks; + if (marks) while (marks.length) { + var current = marks.shift(); + var found = current.find(); + if (found) { + marks.push(current); + return cm.setSelection(found.from, found.to); + } + } + }; + + cmds.prevBookmark = function(cm) { + var marks = cm.state.sublimeBookmarks; + if (marks) while (marks.length) { + marks.unshift(marks.pop()); + var found = marks[marks.length - 1].find(); + if (!found) + marks.pop(); + else + return cm.setSelection(found.from, found.to); + } + }; + + cmds.toggleBookmark = function(cm) { + var ranges = cm.listSelections(); + var marks = cm.state.sublimeBookmarks || (cm.state.sublimeBookmarks = []); + for (var i = 0; i < ranges.length; i++) { + var from = ranges[i].from(), to = ranges[i].to(); + var found = ranges[i].empty() ? cm.findMarksAt(from) : cm.findMarks(from, to); + for (var j = 0; j < found.length; j++) { + if (found[j].sublimeBookmark) { + found[j].clear(); + for (var k = 0; k < marks.length; k++) + if (marks[k] == found[j]) + marks.splice(k--, 1); + break; + } + } + if (j == found.length) + marks.push(cm.markText(from, to, {sublimeBookmark: true, clearWhenEmpty: false})); + } + }; + + cmds.clearBookmarks = function(cm) { + var marks = cm.state.sublimeBookmarks; + if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear(); + marks.length = 0; + }; + + cmds.selectBookmarks = function(cm) { + var marks = cm.state.sublimeBookmarks, ranges = []; + if (marks) for (var i = 0; i < marks.length; i++) { + var found = marks[i].find(); + if (!found) + marks.splice(i--, 0); + else + ranges.push({anchor: found.from, head: found.to}); + } + if (ranges.length) + cm.setSelections(ranges, 0); + }; + + function modifyWordOrSelection(cm, mod) { + cm.operation(function() { + var ranges = cm.listSelections(), indices = [], replacements = []; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i]; + if (range.empty()) { indices.push(i); replacements.push(""); } + else replacements.push(mod(cm.getRange(range.from(), range.to()))); + } + cm.replaceSelections(replacements, "around", "case"); + for (var i = indices.length - 1, at; i >= 0; i--) { + var range = ranges[indices[i]]; + if (at && CodeMirror.cmpPos(range.head, at) > 0) continue; + var word = wordAt(cm, range.head); + at = word.from; + cm.replaceRange(mod(word.word), word.from, word.to); + } + }); + } + + cmds.smartBackspace = function(cm) { + if (cm.somethingSelected()) return CodeMirror.Pass; + + cm.operation(function() { + var cursors = cm.listSelections(); + var indentUnit = cm.getOption("indentUnit"); + + for (var i = cursors.length - 1; i >= 0; i--) { + var cursor = cursors[i].head; + var toStartOfLine = cm.getRange({line: cursor.line, ch: 0}, cursor); + var column = CodeMirror.countColumn(toStartOfLine, null, cm.getOption("tabSize")); + + // Delete by one character by default + var deletePos = cm.findPosH(cursor, -1, "char", false); + + if (toStartOfLine && !/\S/.test(toStartOfLine) && column % indentUnit == 0) { + var prevIndent = new Pos(cursor.line, + CodeMirror.findColumn(toStartOfLine, column - indentUnit, indentUnit)); + + // Smart delete only if we found a valid prevIndent location + if (prevIndent.ch != cursor.ch) deletePos = prevIndent; + } + + cm.replaceRange("", deletePos, cursor, "+delete"); + } + }); + }; + + cmds.delLineRight = function(cm) { + cm.operation(function() { + var ranges = cm.listSelections(); + for (var i = ranges.length - 1; i >= 0; i--) + cm.replaceRange("", ranges[i].anchor, Pos(ranges[i].to().line), "+delete"); + cm.scrollIntoView(); + }); + }; + + cmds.upcaseAtCursor = function(cm) { + modifyWordOrSelection(cm, function(str) { return str.toUpperCase(); }); + }; + cmds.downcaseAtCursor = function(cm) { + modifyWordOrSelection(cm, function(str) { return str.toLowerCase(); }); + }; + + cmds.setSublimeMark = function(cm) { + if (cm.state.sublimeMark) cm.state.sublimeMark.clear(); + cm.state.sublimeMark = cm.setBookmark(cm.getCursor()); + }; + cmds.selectToSublimeMark = function(cm) { + var found = cm.state.sublimeMark && cm.state.sublimeMark.find(); + if (found) cm.setSelection(cm.getCursor(), found); + }; + cmds.deleteToSublimeMark = function(cm) { + var found = cm.state.sublimeMark && cm.state.sublimeMark.find(); + if (found) { + var from = cm.getCursor(), to = found; + if (CodeMirror.cmpPos(from, to) > 0) { var tmp = to; to = from; from = tmp; } + cm.state.sublimeKilled = cm.getRange(from, to); + cm.replaceRange("", from, to); + } + }; + cmds.swapWithSublimeMark = function(cm) { + var found = cm.state.sublimeMark && cm.state.sublimeMark.find(); + if (found) { + cm.state.sublimeMark.clear(); + cm.state.sublimeMark = cm.setBookmark(cm.getCursor()); + cm.setCursor(found); + } + }; + cmds.sublimeYank = function(cm) { + if (cm.state.sublimeKilled != null) + cm.replaceSelection(cm.state.sublimeKilled, null, "paste"); + }; + + cmds.showInCenter = function(cm) { + var pos = cm.cursorCoords(null, "local"); + cm.scrollTo(null, (pos.top + pos.bottom) / 2 - cm.getScrollInfo().clientHeight / 2); + }; + + function getTarget(cm) { + var from = cm.getCursor("from"), to = cm.getCursor("to"); + if (CodeMirror.cmpPos(from, to) == 0) { + var word = wordAt(cm, from); + if (!word.word) return; + from = word.from; + to = word.to; + } + return {from: from, to: to, query: cm.getRange(from, to), word: word}; + } + + function findAndGoTo(cm, forward) { + var target = getTarget(cm); + if (!target) return; + var query = target.query; + var cur = cm.getSearchCursor(query, forward ? target.to : target.from); + + if (forward ? cur.findNext() : cur.findPrevious()) { + cm.setSelection(cur.from(), cur.to()); + } else { + cur = cm.getSearchCursor(query, forward ? Pos(cm.firstLine(), 0) + : cm.clipPos(Pos(cm.lastLine()))); + if (forward ? cur.findNext() : cur.findPrevious()) + cm.setSelection(cur.from(), cur.to()); + else if (target.word) + cm.setSelection(target.from, target.to); + } + }; + cmds.findUnder = function(cm) { findAndGoTo(cm, true); }; + cmds.findUnderPrevious = function(cm) { findAndGoTo(cm,false); }; + cmds.findAllUnder = function(cm) { + var target = getTarget(cm); + if (!target) return; + var cur = cm.getSearchCursor(target.query); + var matches = []; + var primaryIndex = -1; + while (cur.findNext()) { + matches.push({anchor: cur.from(), head: cur.to()}); + if (cur.from().line <= target.from.line && cur.from().ch <= target.from.ch) + primaryIndex++; + } + cm.setSelections(matches, primaryIndex); + }; + + + var keyMap = CodeMirror.keyMap; + keyMap.macSublime = { + "Cmd-Left": "goLineStartSmart", + "Shift-Tab": "indentLess", + "Shift-Ctrl-K": "deleteLine", + "Alt-Q": "wrapLines", + "Ctrl-Left": "goSubwordLeft", + "Ctrl-Right": "goSubwordRight", + "Ctrl-Alt-Up": "scrollLineUp", + "Ctrl-Alt-Down": "scrollLineDown", + "Cmd-L": "selectLine", + "Shift-Cmd-L": "splitSelectionByLine", + "Esc": "singleSelectionTop", + "Cmd-Enter": "insertLineAfter", + "Shift-Cmd-Enter": "insertLineBefore", + "Cmd-D": "selectNextOccurrence", + "Shift-Cmd-Space": "selectScope", + "Shift-Cmd-M": "selectBetweenBrackets", + "Cmd-M": "goToBracket", + "Cmd-Ctrl-Up": "swapLineUp", + "Cmd-Ctrl-Down": "swapLineDown", + "Cmd-/": "toggleCommentIndented", + "Cmd-J": "joinLines", + "Shift-Cmd-D": "duplicateLine", + "F5": "sortLines", + "Cmd-F5": "sortLinesInsensitive", + "F2": "nextBookmark", + "Shift-F2": "prevBookmark", + "Cmd-F2": "toggleBookmark", + "Shift-Cmd-F2": "clearBookmarks", + "Alt-F2": "selectBookmarks", + "Backspace": "smartBackspace", + "Cmd-K Cmd-K": "delLineRight", + "Cmd-K Cmd-U": "upcaseAtCursor", + "Cmd-K Cmd-L": "downcaseAtCursor", + "Cmd-K Cmd-Space": "setSublimeMark", + "Cmd-K Cmd-A": "selectToSublimeMark", + "Cmd-K Cmd-W": "deleteToSublimeMark", + "Cmd-K Cmd-X": "swapWithSublimeMark", + "Cmd-K Cmd-Y": "sublimeYank", + "Cmd-K Cmd-C": "showInCenter", + "Cmd-K Cmd-G": "clearBookmarks", + "Cmd-K Cmd-Backspace": "delLineLeft", + "Cmd-K Cmd-0": "unfoldAll", + "Cmd-K Cmd-J": "unfoldAll", + "Ctrl-Shift-Up": "addCursorToPrevLine", + "Ctrl-Shift-Down": "addCursorToNextLine", + "Cmd-F3": "findUnder", + "Shift-Cmd-F3": "findUnderPrevious", + "Alt-F3": "findAllUnder", + "Shift-Cmd-[": "fold", + "Shift-Cmd-]": "unfold", + "Cmd-I": "findIncremental", + "Shift-Cmd-I": "findIncrementalReverse", + "Cmd-H": "replace", + "F3": "findNext", + "Shift-F3": "findPrev", + "fallthrough": "macDefault" + }; + CodeMirror.normalizeKeyMap(keyMap.macSublime); + + keyMap.pcSublime = { + "Shift-Tab": "indentLess", + "Shift-Ctrl-K": "deleteLine", + "Alt-Q": "wrapLines", + "Ctrl-T": "transposeChars", + "Alt-Left": "goSubwordLeft", + "Alt-Right": "goSubwordRight", + "Ctrl-Up": "scrollLineUp", + "Ctrl-Down": "scrollLineDown", + "Ctrl-L": "selectLine", + "Shift-Ctrl-L": "splitSelectionByLine", + "Esc": "singleSelectionTop", + "Ctrl-Enter": "insertLineAfter", + "Shift-Ctrl-Enter": "insertLineBefore", + "Ctrl-D": "selectNextOccurrence", + "Shift-Ctrl-Space": "selectScope", + "Shift-Ctrl-M": "selectBetweenBrackets", + "Ctrl-M": "goToBracket", + "Shift-Ctrl-Up": "swapLineUp", + "Shift-Ctrl-Down": "swapLineDown", + "Ctrl-/": "toggleCommentIndented", + "Ctrl-J": "joinLines", + "Shift-Ctrl-D": "duplicateLine", + "F9": "sortLines", + "Ctrl-F9": "sortLinesInsensitive", + "F2": "nextBookmark", + "Shift-F2": "prevBookmark", + "Ctrl-F2": "toggleBookmark", + "Shift-Ctrl-F2": "clearBookmarks", + "Alt-F2": "selectBookmarks", + "Backspace": "smartBackspace", + "Ctrl-K Ctrl-K": "delLineRight", + "Ctrl-K Ctrl-U": "upcaseAtCursor", + "Ctrl-K Ctrl-L": "downcaseAtCursor", + "Ctrl-K Ctrl-Space": "setSublimeMark", + "Ctrl-K Ctrl-A": "selectToSublimeMark", + "Ctrl-K Ctrl-W": "deleteToSublimeMark", + "Ctrl-K Ctrl-X": "swapWithSublimeMark", + "Ctrl-K Ctrl-Y": "sublimeYank", + "Ctrl-K Ctrl-C": "showInCenter", + "Ctrl-K Ctrl-G": "clearBookmarks", + "Ctrl-K Ctrl-Backspace": "delLineLeft", + "Ctrl-K Ctrl-0": "unfoldAll", + "Ctrl-K Ctrl-J": "unfoldAll", + "Ctrl-Alt-Up": "addCursorToPrevLine", + "Ctrl-Alt-Down": "addCursorToNextLine", + "Ctrl-F3": "findUnder", + "Shift-Ctrl-F3": "findUnderPrevious", + "Alt-F3": "findAllUnder", + "Shift-Ctrl-[": "fold", + "Shift-Ctrl-]": "unfold", + "Ctrl-I": "findIncremental", + "Shift-Ctrl-I": "findIncrementalReverse", + "Ctrl-H": "replace", + "F3": "findNext", + "Shift-F3": "findPrev", + "fallthrough": "pcDefault" + }; + CodeMirror.normalizeKeyMap(keyMap.pcSublime); + + var mac = keyMap.default == keyMap.macDefault; + keyMap.sublime = mac ? keyMap.macSublime : keyMap.pcSublime; +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/lib/codemirror.js": +/*!***************************************************!*\ + !*** ./node_modules/codemirror/lib/codemirror.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +// This is CodeMirror (https://codemirror.net), a code editor +// implemented in JavaScript on top of the browser's DOM. +// +// You can find some technical background for some of the code below +// at http://marijnhaverbeke.nl/blog/#cm-internals . + +(function (global, factory) { + true ? module.exports = factory() : + undefined; +}(this, (function () { 'use strict'; + + // Kludges for bugs and behavior differences that can't be feature + // detected are enabled based on userAgent etc sniffing. + var userAgent = navigator.userAgent; + var platform = navigator.platform; + + var gecko = /gecko\/\d/i.test(userAgent); + var ie_upto10 = /MSIE \d/.test(userAgent); + var ie_11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(userAgent); + var edge = /Edge\/(\d+)/.exec(userAgent); + var ie = ie_upto10 || ie_11up || edge; + var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]); + var webkit = !edge && /WebKit\//.test(userAgent); + var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(userAgent); + var chrome = !edge && /Chrome\//.test(userAgent); + var presto = /Opera\//.test(userAgent); + var safari = /Apple Computer/.test(navigator.vendor); + var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(userAgent); + var phantom = /PhantomJS/.test(userAgent); + + var ios = !edge && /AppleWebKit/.test(userAgent) && /Mobile\/\w+/.test(userAgent); + var android = /Android/.test(userAgent); + // This is woefully incomplete. Suggestions for alternative methods welcome. + var mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent); + var mac = ios || /Mac/.test(platform); + var chromeOS = /\bCrOS\b/.test(userAgent); + var windows = /win/i.test(platform); + + var presto_version = presto && userAgent.match(/Version\/(\d*\.\d*)/); + if (presto_version) { presto_version = Number(presto_version[1]); } + if (presto_version && presto_version >= 15) { presto = false; webkit = true; } + // Some browsers use the wrong event properties to signal cmd/ctrl on OS X + var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11)); + var captureRightClick = gecko || (ie && ie_version >= 9); + + function classTest(cls) { return new RegExp("(^|\\s)" + cls + "(?:$|\\s)\\s*") } + + var rmClass = function(node, cls) { + var current = node.className; + var match = classTest(cls).exec(current); + if (match) { + var after = current.slice(match.index + match[0].length); + node.className = current.slice(0, match.index) + (after ? match[1] + after : ""); + } + }; + + function removeChildren(e) { + for (var count = e.childNodes.length; count > 0; --count) + { e.removeChild(e.firstChild); } + return e + } + + function removeChildrenAndAdd(parent, e) { + return removeChildren(parent).appendChild(e) + } + + function elt(tag, content, className, style) { + var e = document.createElement(tag); + if (className) { e.className = className; } + if (style) { e.style.cssText = style; } + if (typeof content == "string") { e.appendChild(document.createTextNode(content)); } + else if (content) { for (var i = 0; i < content.length; ++i) { e.appendChild(content[i]); } } + return e + } + // wrapper for elt, which removes the elt from the accessibility tree + function eltP(tag, content, className, style) { + var e = elt(tag, content, className, style); + e.setAttribute("role", "presentation"); + return e + } + + var range; + if (document.createRange) { range = function(node, start, end, endNode) { + var r = document.createRange(); + r.setEnd(endNode || node, end); + r.setStart(node, start); + return r + }; } + else { range = function(node, start, end) { + var r = document.body.createTextRange(); + try { r.moveToElementText(node.parentNode); } + catch(e) { return r } + r.collapse(true); + r.moveEnd("character", end); + r.moveStart("character", start); + return r + }; } + + function contains(parent, child) { + if (child.nodeType == 3) // Android browser always returns false when child is a textnode + { child = child.parentNode; } + if (parent.contains) + { return parent.contains(child) } + do { + if (child.nodeType == 11) { child = child.host; } + if (child == parent) { return true } + } while (child = child.parentNode) + } + + function activeElt() { + // IE and Edge may throw an "Unspecified Error" when accessing document.activeElement. + // IE < 10 will throw when accessed while the page is loading or in an iframe. + // IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable. + var activeElement; + try { + activeElement = document.activeElement; + } catch(e) { + activeElement = document.body || null; + } + while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement) + { activeElement = activeElement.shadowRoot.activeElement; } + return activeElement + } + + function addClass(node, cls) { + var current = node.className; + if (!classTest(cls).test(current)) { node.className += (current ? " " : "") + cls; } + } + function joinClasses(a, b) { + var as = a.split(" "); + for (var i = 0; i < as.length; i++) + { if (as[i] && !classTest(as[i]).test(b)) { b += " " + as[i]; } } + return b + } + + var selectInput = function(node) { node.select(); }; + if (ios) // Mobile Safari apparently has a bug where select() is broken. + { selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; } + else if (ie) // Suppress mysterious IE10 errors + { selectInput = function(node) { try { node.select(); } catch(_e) {} }; } + + function bind(f) { + var args = Array.prototype.slice.call(arguments, 1); + return function(){return f.apply(null, args)} + } + + function copyObj(obj, target, overwrite) { + if (!target) { target = {}; } + for (var prop in obj) + { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop))) + { target[prop] = obj[prop]; } } + return target + } + + // Counts the column offset in a string, taking tabs into account. + // Used mostly to find indentation. + function countColumn(string, end, tabSize, startIndex, startValue) { + if (end == null) { + end = string.search(/[^\s\u00a0]/); + if (end == -1) { end = string.length; } + } + for (var i = startIndex || 0, n = startValue || 0;;) { + var nextTab = string.indexOf("\t", i); + if (nextTab < 0 || nextTab >= end) + { return n + (end - i) } + n += nextTab - i; + n += tabSize - (n % tabSize); + i = nextTab + 1; + } + } + + var Delayed = function() {this.id = null;}; + Delayed.prototype.set = function (ms, f) { + clearTimeout(this.id); + this.id = setTimeout(f, ms); + }; + + function indexOf(array, elt) { + for (var i = 0; i < array.length; ++i) + { if (array[i] == elt) { return i } } + return -1 + } + + // Number of pixels added to scroller and sizer to hide scrollbar + var scrollerGap = 30; + + // Returned or thrown by various protocols to signal 'I'm not + // handling this'. + var Pass = {toString: function(){return "CodeMirror.Pass"}}; + + // Reused option objects for setSelection & friends + var sel_dontScroll = {scroll: false}, sel_mouse = {origin: "*mouse"}, sel_move = {origin: "+move"}; + + // The inverse of countColumn -- find the offset that corresponds to + // a particular column. + function findColumn(string, goal, tabSize) { + for (var pos = 0, col = 0;;) { + var nextTab = string.indexOf("\t", pos); + if (nextTab == -1) { nextTab = string.length; } + var skipped = nextTab - pos; + if (nextTab == string.length || col + skipped >= goal) + { return pos + Math.min(skipped, goal - col) } + col += nextTab - pos; + col += tabSize - (col % tabSize); + pos = nextTab + 1; + if (col >= goal) { return pos } + } + } + + var spaceStrs = [""]; + function spaceStr(n) { + while (spaceStrs.length <= n) + { spaceStrs.push(lst(spaceStrs) + " "); } + return spaceStrs[n] + } + + function lst(arr) { return arr[arr.length-1] } + + function map(array, f) { + var out = []; + for (var i = 0; i < array.length; i++) { out[i] = f(array[i], i); } + return out + } + + function insertSorted(array, value, score) { + var pos = 0, priority = score(value); + while (pos < array.length && score(array[pos]) <= priority) { pos++; } + array.splice(pos, 0, value); + } + + function nothing() {} + + function createObj(base, props) { + var inst; + if (Object.create) { + inst = Object.create(base); + } else { + nothing.prototype = base; + inst = new nothing(); + } + if (props) { copyObj(props, inst); } + return inst + } + + var nonASCIISingleCaseWordChar = /[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/; + function isWordCharBasic(ch) { + return /\w/.test(ch) || ch > "\x80" && + (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch)) + } + function isWordChar(ch, helper) { + if (!helper) { return isWordCharBasic(ch) } + if (helper.source.indexOf("\\w") > -1 && isWordCharBasic(ch)) { return true } + return helper.test(ch) + } + + function isEmpty(obj) { + for (var n in obj) { if (obj.hasOwnProperty(n) && obj[n]) { return false } } + return true + } + + // Extending unicode characters. A series of a non-extending char + + // any number of extending chars is treated as a single unit as far + // as editing and measuring is concerned. This is not fully correct, + // since some scripts/fonts/browsers also treat other configurations + // of code points as a group. + var extendingChars = /[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/; + function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch) } + + // Returns a number from the range [`0`; `str.length`] unless `pos` is outside that range. + function skipExtendingChars(str, pos, dir) { + while ((dir < 0 ? pos > 0 : pos < str.length) && isExtendingChar(str.charAt(pos))) { pos += dir; } + return pos + } + + // Returns the value from the range [`from`; `to`] that satisfies + // `pred` and is closest to `from`. Assumes that at least `to` + // satisfies `pred`. Supports `from` being greater than `to`. + function findFirst(pred, from, to) { + // At any point we are certain `to` satisfies `pred`, don't know + // whether `from` does. + var dir = from > to ? -1 : 1; + for (;;) { + if (from == to) { return from } + var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF); + if (mid == from) { return pred(mid) ? from : to } + if (pred(mid)) { to = mid; } + else { from = mid + dir; } + } + } + + // BIDI HELPERS + + function iterateBidiSections(order, from, to, f) { + if (!order) { return f(from, to, "ltr", 0) } + var found = false; + for (var i = 0; i < order.length; ++i) { + var part = order[i]; + if (part.from < to && part.to > from || from == to && part.to == from) { + f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr", i); + found = true; + } + } + if (!found) { f(from, to, "ltr"); } + } + + var bidiOther = null; + function getBidiPartAt(order, ch, sticky) { + var found; + bidiOther = null; + for (var i = 0; i < order.length; ++i) { + var cur = order[i]; + if (cur.from < ch && cur.to > ch) { return i } + if (cur.to == ch) { + if (cur.from != cur.to && sticky == "before") { found = i; } + else { bidiOther = i; } + } + if (cur.from == ch) { + if (cur.from != cur.to && sticky != "before") { found = i; } + else { bidiOther = i; } + } + } + return found != null ? found : bidiOther + } + + // Bidirectional ordering algorithm + // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm + // that this (partially) implements. + + // One-char codes used for character types: + // L (L): Left-to-Right + // R (R): Right-to-Left + // r (AL): Right-to-Left Arabic + // 1 (EN): European Number + // + (ES): European Number Separator + // % (ET): European Number Terminator + // n (AN): Arabic Number + // , (CS): Common Number Separator + // m (NSM): Non-Spacing Mark + // b (BN): Boundary Neutral + // s (B): Paragraph Separator + // t (S): Segment Separator + // w (WS): Whitespace + // N (ON): Other Neutrals + + // Returns null if characters are ordered as they appear + // (left-to-right), or an array of sections ({from, to, level} + // objects) in the order in which they occur visually. + var bidiOrdering = (function() { + // Character types for codepoints 0 to 0xff + var lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN"; + // Character types for codepoints 0x600 to 0x6f9 + var arabicTypes = "nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111"; + function charType(code) { + if (code <= 0xf7) { return lowTypes.charAt(code) } + else if (0x590 <= code && code <= 0x5f4) { return "R" } + else if (0x600 <= code && code <= 0x6f9) { return arabicTypes.charAt(code - 0x600) } + else if (0x6ee <= code && code <= 0x8ac) { return "r" } + else if (0x2000 <= code && code <= 0x200b) { return "w" } + else if (code == 0x200c) { return "b" } + else { return "L" } + } + + var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/; + var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/; + + function BidiSpan(level, from, to) { + this.level = level; + this.from = from; this.to = to; + } + + return function(str, direction) { + var outerType = direction == "ltr" ? "L" : "R"; + + if (str.length == 0 || direction == "ltr" && !bidiRE.test(str)) { return false } + var len = str.length, types = []; + for (var i = 0; i < len; ++i) + { types.push(charType(str.charCodeAt(i))); } + + // W1. Examine each non-spacing mark (NSM) in the level run, and + // change the type of the NSM to the type of the previous + // character. If the NSM is at the start of the level run, it will + // get the type of sor. + for (var i$1 = 0, prev = outerType; i$1 < len; ++i$1) { + var type = types[i$1]; + if (type == "m") { types[i$1] = prev; } + else { prev = type; } + } + + // W2. Search backwards from each instance of a European number + // until the first strong type (R, L, AL, or sor) is found. If an + // AL is found, change the type of the European number to Arabic + // number. + // W3. Change all ALs to R. + for (var i$2 = 0, cur = outerType; i$2 < len; ++i$2) { + var type$1 = types[i$2]; + if (type$1 == "1" && cur == "r") { types[i$2] = "n"; } + else if (isStrong.test(type$1)) { cur = type$1; if (type$1 == "r") { types[i$2] = "R"; } } + } + + // W4. A single European separator between two European numbers + // changes to a European number. A single common separator between + // two numbers of the same type changes to that type. + for (var i$3 = 1, prev$1 = types[0]; i$3 < len - 1; ++i$3) { + var type$2 = types[i$3]; + if (type$2 == "+" && prev$1 == "1" && types[i$3+1] == "1") { types[i$3] = "1"; } + else if (type$2 == "," && prev$1 == types[i$3+1] && + (prev$1 == "1" || prev$1 == "n")) { types[i$3] = prev$1; } + prev$1 = type$2; + } + + // W5. A sequence of European terminators adjacent to European + // numbers changes to all European numbers. + // W6. Otherwise, separators and terminators change to Other + // Neutral. + for (var i$4 = 0; i$4 < len; ++i$4) { + var type$3 = types[i$4]; + if (type$3 == ",") { types[i$4] = "N"; } + else if (type$3 == "%") { + var end = (void 0); + for (end = i$4 + 1; end < len && types[end] == "%"; ++end) {} + var replace = (i$4 && types[i$4-1] == "!") || (end < len && types[end] == "1") ? "1" : "N"; + for (var j = i$4; j < end; ++j) { types[j] = replace; } + i$4 = end - 1; + } + } + + // W7. Search backwards from each instance of a European number + // until the first strong type (R, L, or sor) is found. If an L is + // found, then change the type of the European number to L. + for (var i$5 = 0, cur$1 = outerType; i$5 < len; ++i$5) { + var type$4 = types[i$5]; + if (cur$1 == "L" && type$4 == "1") { types[i$5] = "L"; } + else if (isStrong.test(type$4)) { cur$1 = type$4; } + } + + // N1. A sequence of neutrals takes the direction of the + // surrounding strong text if the text on both sides has the same + // direction. European and Arabic numbers act as if they were R in + // terms of their influence on neutrals. Start-of-level-run (sor) + // and end-of-level-run (eor) are used at level run boundaries. + // N2. Any remaining neutrals take the embedding direction. + for (var i$6 = 0; i$6 < len; ++i$6) { + if (isNeutral.test(types[i$6])) { + var end$1 = (void 0); + for (end$1 = i$6 + 1; end$1 < len && isNeutral.test(types[end$1]); ++end$1) {} + var before = (i$6 ? types[i$6-1] : outerType) == "L"; + var after = (end$1 < len ? types[end$1] : outerType) == "L"; + var replace$1 = before == after ? (before ? "L" : "R") : outerType; + for (var j$1 = i$6; j$1 < end$1; ++j$1) { types[j$1] = replace$1; } + i$6 = end$1 - 1; + } + } + + // Here we depart from the documented algorithm, in order to avoid + // building up an actual levels array. Since there are only three + // levels (0, 1, 2) in an implementation that doesn't take + // explicit embedding into account, we can build up the order on + // the fly, without following the level-based algorithm. + var order = [], m; + for (var i$7 = 0; i$7 < len;) { + if (countsAsLeft.test(types[i$7])) { + var start = i$7; + for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {} + order.push(new BidiSpan(0, start, i$7)); + } else { + var pos = i$7, at = order.length; + for (++i$7; i$7 < len && types[i$7] != "L"; ++i$7) {} + for (var j$2 = pos; j$2 < i$7;) { + if (countsAsNum.test(types[j$2])) { + if (pos < j$2) { order.splice(at, 0, new BidiSpan(1, pos, j$2)); } + var nstart = j$2; + for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {} + order.splice(at, 0, new BidiSpan(2, nstart, j$2)); + pos = j$2; + } else { ++j$2; } + } + if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); } + } + } + if (direction == "ltr") { + if (order[0].level == 1 && (m = str.match(/^\s+/))) { + order[0].from = m[0].length; + order.unshift(new BidiSpan(0, 0, m[0].length)); + } + if (lst(order).level == 1 && (m = str.match(/\s+$/))) { + lst(order).to -= m[0].length; + order.push(new BidiSpan(0, len - m[0].length, len)); + } + } + + return direction == "rtl" ? order.reverse() : order + } + })(); + + // Get the bidi ordering for the given line (and cache it). Returns + // false for lines that are fully left-to-right, and an array of + // BidiSpan objects otherwise. + function getOrder(line, direction) { + var order = line.order; + if (order == null) { order = line.order = bidiOrdering(line.text, direction); } + return order + } + + // EVENT HANDLING + + // Lightweight event framework. on/off also work on DOM nodes, + // registering native DOM handlers. + + var noHandlers = []; + + var on = function(emitter, type, f) { + if (emitter.addEventListener) { + emitter.addEventListener(type, f, false); + } else if (emitter.attachEvent) { + emitter.attachEvent("on" + type, f); + } else { + var map$$1 = emitter._handlers || (emitter._handlers = {}); + map$$1[type] = (map$$1[type] || noHandlers).concat(f); + } + }; + + function getHandlers(emitter, type) { + return emitter._handlers && emitter._handlers[type] || noHandlers + } + + function off(emitter, type, f) { + if (emitter.removeEventListener) { + emitter.removeEventListener(type, f, false); + } else if (emitter.detachEvent) { + emitter.detachEvent("on" + type, f); + } else { + var map$$1 = emitter._handlers, arr = map$$1 && map$$1[type]; + if (arr) { + var index = indexOf(arr, f); + if (index > -1) + { map$$1[type] = arr.slice(0, index).concat(arr.slice(index + 1)); } + } + } + } + + function signal(emitter, type /*, values...*/) { + var handlers = getHandlers(emitter, type); + if (!handlers.length) { return } + var args = Array.prototype.slice.call(arguments, 2); + for (var i = 0; i < handlers.length; ++i) { handlers[i].apply(null, args); } + } + + // The DOM events that CodeMirror handles can be overridden by + // registering a (non-DOM) handler on the editor for the event name, + // and preventDefault-ing the event in that handler. + function signalDOMEvent(cm, e, override) { + if (typeof e == "string") + { e = {type: e, preventDefault: function() { this.defaultPrevented = true; }}; } + signal(cm, override || e.type, cm, e); + return e_defaultPrevented(e) || e.codemirrorIgnore + } + + function signalCursorActivity(cm) { + var arr = cm._handlers && cm._handlers.cursorActivity; + if (!arr) { return } + var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []); + for (var i = 0; i < arr.length; ++i) { if (indexOf(set, arr[i]) == -1) + { set.push(arr[i]); } } + } + + function hasHandler(emitter, type) { + return getHandlers(emitter, type).length > 0 + } + + // Add on and off methods to a constructor's prototype, to make + // registering events on such objects more convenient. + function eventMixin(ctor) { + ctor.prototype.on = function(type, f) {on(this, type, f);}; + ctor.prototype.off = function(type, f) {off(this, type, f);}; + } + + // Due to the fact that we still support jurassic IE versions, some + // compatibility wrappers are needed. + + function e_preventDefault(e) { + if (e.preventDefault) { e.preventDefault(); } + else { e.returnValue = false; } + } + function e_stopPropagation(e) { + if (e.stopPropagation) { e.stopPropagation(); } + else { e.cancelBubble = true; } + } + function e_defaultPrevented(e) { + return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false + } + function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);} + + function e_target(e) {return e.target || e.srcElement} + function e_button(e) { + var b = e.which; + if (b == null) { + if (e.button & 1) { b = 1; } + else if (e.button & 2) { b = 3; } + else if (e.button & 4) { b = 2; } + } + if (mac && e.ctrlKey && b == 1) { b = 3; } + return b + } + + // Detect drag-and-drop + var dragAndDrop = function() { + // There is *some* kind of drag-and-drop support in IE6-8, but I + // couldn't get it to work yet. + if (ie && ie_version < 9) { return false } + var div = elt('div'); + return "draggable" in div || "dragDrop" in div + }(); + + var zwspSupported; + function zeroWidthElement(measure) { + if (zwspSupported == null) { + var test = elt("span", "\u200b"); + removeChildrenAndAdd(measure, elt("span", [test, document.createTextNode("x")])); + if (measure.firstChild.offsetHeight != 0) + { zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); } + } + var node = zwspSupported ? elt("span", "\u200b") : + elt("span", "\u00a0", null, "display: inline-block; width: 1px; margin-right: -1px"); + node.setAttribute("cm-text", ""); + return node + } + + // Feature-detect IE's crummy client rect reporting for bidi text + var badBidiRects; + function hasBadBidiRects(measure) { + if (badBidiRects != null) { return badBidiRects } + var txt = removeChildrenAndAdd(measure, document.createTextNode("A\u062eA")); + var r0 = range(txt, 0, 1).getBoundingClientRect(); + var r1 = range(txt, 1, 2).getBoundingClientRect(); + removeChildren(measure); + if (!r0 || r0.left == r0.right) { return false } // Safari returns null in some cases (#2780) + return badBidiRects = (r1.right - r0.right < 3) + } + + // See if "".split is the broken IE version, if so, provide an + // alternative way to split lines. + var splitLinesAuto = "\n\nb".split(/\n/).length != 3 ? function (string) { + var pos = 0, result = [], l = string.length; + while (pos <= l) { + var nl = string.indexOf("\n", pos); + if (nl == -1) { nl = string.length; } + var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl); + var rt = line.indexOf("\r"); + if (rt != -1) { + result.push(line.slice(0, rt)); + pos += rt + 1; + } else { + result.push(line); + pos = nl + 1; + } + } + return result + } : function (string) { return string.split(/\r\n?|\n/); }; + + var hasSelection = window.getSelection ? function (te) { + try { return te.selectionStart != te.selectionEnd } + catch(e) { return false } + } : function (te) { + var range$$1; + try {range$$1 = te.ownerDocument.selection.createRange();} + catch(e) {} + if (!range$$1 || range$$1.parentElement() != te) { return false } + return range$$1.compareEndPoints("StartToEnd", range$$1) != 0 + }; + + var hasCopyEvent = (function () { + var e = elt("div"); + if ("oncopy" in e) { return true } + e.setAttribute("oncopy", "return;"); + return typeof e.oncopy == "function" + })(); + + var badZoomedRects = null; + function hasBadZoomedRects(measure) { + if (badZoomedRects != null) { return badZoomedRects } + var node = removeChildrenAndAdd(measure, elt("span", "x")); + var normal = node.getBoundingClientRect(); + var fromRange = range(node, 0, 1).getBoundingClientRect(); + return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1 + } + + // Known modes, by name and by MIME + var modes = {}, mimeModes = {}; + + // Extra arguments are stored as the mode's dependencies, which is + // used by (legacy) mechanisms like loadmode.js to automatically + // load a mode. (Preferred mechanism is the require/define calls.) + function defineMode(name, mode) { + if (arguments.length > 2) + { mode.dependencies = Array.prototype.slice.call(arguments, 2); } + modes[name] = mode; + } + + function defineMIME(mime, spec) { + mimeModes[mime] = spec; + } + + // Given a MIME type, a {name, ...options} config object, or a name + // string, return a mode config object. + function resolveMode(spec) { + if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) { + spec = mimeModes[spec]; + } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) { + var found = mimeModes[spec.name]; + if (typeof found == "string") { found = {name: found}; } + spec = createObj(found, spec); + spec.name = found.name; + } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) { + return resolveMode("application/xml") + } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+json$/.test(spec)) { + return resolveMode("application/json") + } + if (typeof spec == "string") { return {name: spec} } + else { return spec || {name: "null"} } + } + + // Given a mode spec (anything that resolveMode accepts), find and + // initialize an actual mode object. + function getMode(options, spec) { + spec = resolveMode(spec); + var mfactory = modes[spec.name]; + if (!mfactory) { return getMode(options, "text/plain") } + var modeObj = mfactory(options, spec); + if (modeExtensions.hasOwnProperty(spec.name)) { + var exts = modeExtensions[spec.name]; + for (var prop in exts) { + if (!exts.hasOwnProperty(prop)) { continue } + if (modeObj.hasOwnProperty(prop)) { modeObj["_" + prop] = modeObj[prop]; } + modeObj[prop] = exts[prop]; + } + } + modeObj.name = spec.name; + if (spec.helperType) { modeObj.helperType = spec.helperType; } + if (spec.modeProps) { for (var prop$1 in spec.modeProps) + { modeObj[prop$1] = spec.modeProps[prop$1]; } } + + return modeObj + } + + // This can be used to attach properties to mode objects from + // outside the actual mode definition. + var modeExtensions = {}; + function extendMode(mode, properties) { + var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {}); + copyObj(properties, exts); + } + + function copyState(mode, state) { + if (state === true) { return state } + if (mode.copyState) { return mode.copyState(state) } + var nstate = {}; + for (var n in state) { + var val = state[n]; + if (val instanceof Array) { val = val.concat([]); } + nstate[n] = val; + } + return nstate + } + + // Given a mode and a state (for that mode), find the inner mode and + // state at the position that the state refers to. + function innerMode(mode, state) { + var info; + while (mode.innerMode) { + info = mode.innerMode(state); + if (!info || info.mode == mode) { break } + state = info.state; + mode = info.mode; + } + return info || {mode: mode, state: state} + } + + function startState(mode, a1, a2) { + return mode.startState ? mode.startState(a1, a2) : true + } + + // STRING STREAM + + // Fed to the mode parsers, provides helper functions to make + // parsers more succinct. + + var StringStream = function(string, tabSize, lineOracle) { + this.pos = this.start = 0; + this.string = string; + this.tabSize = tabSize || 8; + this.lastColumnPos = this.lastColumnValue = 0; + this.lineStart = 0; + this.lineOracle = lineOracle; + }; + + StringStream.prototype.eol = function () {return this.pos >= this.string.length}; + StringStream.prototype.sol = function () {return this.pos == this.lineStart}; + StringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined}; + StringStream.prototype.next = function () { + if (this.pos < this.string.length) + { return this.string.charAt(this.pos++) } + }; + StringStream.prototype.eat = function (match) { + var ch = this.string.charAt(this.pos); + var ok; + if (typeof match == "string") { ok = ch == match; } + else { ok = ch && (match.test ? match.test(ch) : match(ch)); } + if (ok) {++this.pos; return ch} + }; + StringStream.prototype.eatWhile = function (match) { + var start = this.pos; + while (this.eat(match)){} + return this.pos > start + }; + StringStream.prototype.eatSpace = function () { + var this$1 = this; + + var start = this.pos; + while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) { ++this$1.pos; } + return this.pos > start + }; + StringStream.prototype.skipToEnd = function () {this.pos = this.string.length;}; + StringStream.prototype.skipTo = function (ch) { + var found = this.string.indexOf(ch, this.pos); + if (found > -1) {this.pos = found; return true} + }; + StringStream.prototype.backUp = function (n) {this.pos -= n;}; + StringStream.prototype.column = function () { + if (this.lastColumnPos < this.start) { + this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue); + this.lastColumnPos = this.start; + } + return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0) + }; + StringStream.prototype.indentation = function () { + return countColumn(this.string, null, this.tabSize) - + (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0) + }; + StringStream.prototype.match = function (pattern, consume, caseInsensitive) { + if (typeof pattern == "string") { + var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; }; + var substr = this.string.substr(this.pos, pattern.length); + if (cased(substr) == cased(pattern)) { + if (consume !== false) { this.pos += pattern.length; } + return true + } + } else { + var match = this.string.slice(this.pos).match(pattern); + if (match && match.index > 0) { return null } + if (match && consume !== false) { this.pos += match[0].length; } + return match + } + }; + StringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)}; + StringStream.prototype.hideFirstChars = function (n, inner) { + this.lineStart += n; + try { return inner() } + finally { this.lineStart -= n; } + }; + StringStream.prototype.lookAhead = function (n) { + var oracle = this.lineOracle; + return oracle && oracle.lookAhead(n) + }; + StringStream.prototype.baseToken = function () { + var oracle = this.lineOracle; + return oracle && oracle.baseToken(this.pos) + }; + + // Find the line object corresponding to the given line number. + function getLine(doc, n) { + n -= doc.first; + if (n < 0 || n >= doc.size) { throw new Error("There is no line " + (n + doc.first) + " in the document.") } + var chunk = doc; + while (!chunk.lines) { + for (var i = 0;; ++i) { + var child = chunk.children[i], sz = child.chunkSize(); + if (n < sz) { chunk = child; break } + n -= sz; + } + } + return chunk.lines[n] + } + + // Get the part of a document between two positions, as an array of + // strings. + function getBetween(doc, start, end) { + var out = [], n = start.line; + doc.iter(start.line, end.line + 1, function (line) { + var text = line.text; + if (n == end.line) { text = text.slice(0, end.ch); } + if (n == start.line) { text = text.slice(start.ch); } + out.push(text); + ++n; + }); + return out + } + // Get the lines between from and to, as array of strings. + function getLines(doc, from, to) { + var out = []; + doc.iter(from, to, function (line) { out.push(line.text); }); // iter aborts when callback returns truthy value + return out + } + + // Update the height of a line, propagating the height change + // upwards to parent nodes. + function updateLineHeight(line, height) { + var diff = height - line.height; + if (diff) { for (var n = line; n; n = n.parent) { n.height += diff; } } + } + + // Given a line object, find its line number by walking up through + // its parent links. + function lineNo(line) { + if (line.parent == null) { return null } + var cur = line.parent, no = indexOf(cur.lines, line); + for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) { + for (var i = 0;; ++i) { + if (chunk.children[i] == cur) { break } + no += chunk.children[i].chunkSize(); + } + } + return no + cur.first + } + + // Find the line at the given vertical position, using the height + // information in the document tree. + function lineAtHeight(chunk, h) { + var n = chunk.first; + outer: do { + for (var i$1 = 0; i$1 < chunk.children.length; ++i$1) { + var child = chunk.children[i$1], ch = child.height; + if (h < ch) { chunk = child; continue outer } + h -= ch; + n += child.chunkSize(); + } + return n + } while (!chunk.lines) + var i = 0; + for (; i < chunk.lines.length; ++i) { + var line = chunk.lines[i], lh = line.height; + if (h < lh) { break } + h -= lh; + } + return n + i + } + + function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size} + + function lineNumberFor(options, i) { + return String(options.lineNumberFormatter(i + options.firstLineNumber)) + } + + // A Pos instance represents a position within the text. + function Pos(line, ch, sticky) { + if ( sticky === void 0 ) sticky = null; + + if (!(this instanceof Pos)) { return new Pos(line, ch, sticky) } + this.line = line; + this.ch = ch; + this.sticky = sticky; + } + + // Compare two positions, return 0 if they are the same, a negative + // number when a is less, and a positive number otherwise. + function cmp(a, b) { return a.line - b.line || a.ch - b.ch } + + function equalCursorPos(a, b) { return a.sticky == b.sticky && cmp(a, b) == 0 } + + function copyPos(x) {return Pos(x.line, x.ch)} + function maxPos(a, b) { return cmp(a, b) < 0 ? b : a } + function minPos(a, b) { return cmp(a, b) < 0 ? a : b } + + // Most of the external API clips given positions to make sure they + // actually exist within the document. + function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1))} + function clipPos(doc, pos) { + if (pos.line < doc.first) { return Pos(doc.first, 0) } + var last = doc.first + doc.size - 1; + if (pos.line > last) { return Pos(last, getLine(doc, last).text.length) } + return clipToLen(pos, getLine(doc, pos.line).text.length) + } + function clipToLen(pos, linelen) { + var ch = pos.ch; + if (ch == null || ch > linelen) { return Pos(pos.line, linelen) } + else if (ch < 0) { return Pos(pos.line, 0) } + else { return pos } + } + function clipPosArray(doc, array) { + var out = []; + for (var i = 0; i < array.length; i++) { out[i] = clipPos(doc, array[i]); } + return out + } + + var SavedContext = function(state, lookAhead) { + this.state = state; + this.lookAhead = lookAhead; + }; + + var Context = function(doc, state, line, lookAhead) { + this.state = state; + this.doc = doc; + this.line = line; + this.maxLookAhead = lookAhead || 0; + this.baseTokens = null; + this.baseTokenPos = 1; + }; + + Context.prototype.lookAhead = function (n) { + var line = this.doc.getLine(this.line + n); + if (line != null && n > this.maxLookAhead) { this.maxLookAhead = n; } + return line + }; + + Context.prototype.baseToken = function (n) { + var this$1 = this; + + if (!this.baseTokens) { return null } + while (this.baseTokens[this.baseTokenPos] <= n) + { this$1.baseTokenPos += 2; } + var type = this.baseTokens[this.baseTokenPos + 1]; + return {type: type && type.replace(/( |^)overlay .*/, ""), + size: this.baseTokens[this.baseTokenPos] - n} + }; + + Context.prototype.nextLine = function () { + this.line++; + if (this.maxLookAhead > 0) { this.maxLookAhead--; } + }; + + Context.fromSaved = function (doc, saved, line) { + if (saved instanceof SavedContext) + { return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead) } + else + { return new Context(doc, copyState(doc.mode, saved), line) } + }; + + Context.prototype.save = function (copy) { + var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state; + return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state + }; + + + // Compute a style array (an array starting with a mode generation + // -- for invalidation -- followed by pairs of end positions and + // style strings), which is used to highlight the tokens on the + // line. + function highlightLine(cm, line, context, forceToEnd) { + // A styles array always starts with a number identifying the + // mode/overlays that it is based on (for easy invalidation). + var st = [cm.state.modeGen], lineClasses = {}; + // Compute the base array of styles + runMode(cm, line.text, cm.doc.mode, context, function (end, style) { return st.push(end, style); }, + lineClasses, forceToEnd); + var state = context.state; + + // Run overlays, adjust style array. + var loop = function ( o ) { + context.baseTokens = st; + var overlay = cm.state.overlays[o], i = 1, at = 0; + context.state = true; + runMode(cm, line.text, overlay.mode, context, function (end, style) { + var start = i; + // Ensure there's a token end at the current position, and that i points at it + while (at < end) { + var i_end = st[i]; + if (i_end > end) + { st.splice(i, 1, end, st[i+1], i_end); } + i += 2; + at = Math.min(end, i_end); + } + if (!style) { return } + if (overlay.opaque) { + st.splice(start, i - start, end, "overlay " + style); + i = start + 2; + } else { + for (; start < i; start += 2) { + var cur = st[start+1]; + st[start+1] = (cur ? cur + " " : "") + "overlay " + style; + } + } + }, lineClasses); + context.state = state; + context.baseTokens = null; + context.baseTokenPos = 1; + }; + + for (var o = 0; o < cm.state.overlays.length; ++o) loop( o ); + + return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null} + } + + function getLineStyles(cm, line, updateFrontier) { + if (!line.styles || line.styles[0] != cm.state.modeGen) { + var context = getContextBefore(cm, lineNo(line)); + var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state); + var result = highlightLine(cm, line, context); + if (resetState) { context.state = resetState; } + line.stateAfter = context.save(!resetState); + line.styles = result.styles; + if (result.classes) { line.styleClasses = result.classes; } + else if (line.styleClasses) { line.styleClasses = null; } + if (updateFrontier === cm.doc.highlightFrontier) + { cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); } + } + return line.styles + } + + function getContextBefore(cm, n, precise) { + var doc = cm.doc, display = cm.display; + if (!doc.mode.startState) { return new Context(doc, true, n) } + var start = findStartLine(cm, n, precise); + var saved = start > doc.first && getLine(doc, start - 1).stateAfter; + var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start); + + doc.iter(start, n, function (line) { + processLine(cm, line.text, context); + var pos = context.line; + line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null; + context.nextLine(); + }); + if (precise) { doc.modeFrontier = context.line; } + return context + } + + // Lightweight form of highlight -- proceed over this line and + // update state, but don't save a style array. Used for lines that + // aren't currently visible. + function processLine(cm, text, context, startAt) { + var mode = cm.doc.mode; + var stream = new StringStream(text, cm.options.tabSize, context); + stream.start = stream.pos = startAt || 0; + if (text == "") { callBlankLine(mode, context.state); } + while (!stream.eol()) { + readToken(mode, stream, context.state); + stream.start = stream.pos; + } + } + + function callBlankLine(mode, state) { + if (mode.blankLine) { return mode.blankLine(state) } + if (!mode.innerMode) { return } + var inner = innerMode(mode, state); + if (inner.mode.blankLine) { return inner.mode.blankLine(inner.state) } + } + + function readToken(mode, stream, state, inner) { + for (var i = 0; i < 10; i++) { + if (inner) { inner[0] = innerMode(mode, state).mode; } + var style = mode.token(stream, state); + if (stream.pos > stream.start) { return style } + } + throw new Error("Mode " + mode.name + " failed to advance stream.") + } + + var Token = function(stream, type, state) { + this.start = stream.start; this.end = stream.pos; + this.string = stream.current(); + this.type = type || null; + this.state = state; + }; + + // Utility for getTokenAt and getLineTokens + function takeToken(cm, pos, precise, asArray) { + var doc = cm.doc, mode = doc.mode, style; + pos = clipPos(doc, pos); + var line = getLine(doc, pos.line), context = getContextBefore(cm, pos.line, precise); + var stream = new StringStream(line.text, cm.options.tabSize, context), tokens; + if (asArray) { tokens = []; } + while ((asArray || stream.pos < pos.ch) && !stream.eol()) { + stream.start = stream.pos; + style = readToken(mode, stream, context.state); + if (asArray) { tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); } + } + return asArray ? tokens : new Token(stream, style, context.state) + } + + function extractLineClasses(type, output) { + if (type) { for (;;) { + var lineClass = type.match(/(?:^|\s+)line-(background-)?(\S+)/); + if (!lineClass) { break } + type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length); + var prop = lineClass[1] ? "bgClass" : "textClass"; + if (output[prop] == null) + { output[prop] = lineClass[2]; } + else if (!(new RegExp("(?:^|\s)" + lineClass[2] + "(?:$|\s)")).test(output[prop])) + { output[prop] += " " + lineClass[2]; } + } } + return type + } + + // Run the given mode's parser over a line, calling f for each token. + function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) { + var flattenSpans = mode.flattenSpans; + if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; } + var curStart = 0, curStyle = null; + var stream = new StringStream(text, cm.options.tabSize, context), style; + var inner = cm.options.addModeClass && [null]; + if (text == "") { extractLineClasses(callBlankLine(mode, context.state), lineClasses); } + while (!stream.eol()) { + if (stream.pos > cm.options.maxHighlightLength) { + flattenSpans = false; + if (forceToEnd) { processLine(cm, text, context, stream.pos); } + stream.pos = text.length; + style = null; + } else { + style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses); + } + if (inner) { + var mName = inner[0].name; + if (mName) { style = "m-" + (style ? mName + " " + style : mName); } + } + if (!flattenSpans || curStyle != style) { + while (curStart < stream.start) { + curStart = Math.min(stream.start, curStart + 5000); + f(curStart, curStyle); + } + curStyle = style; + } + stream.start = stream.pos; + } + while (curStart < stream.pos) { + // Webkit seems to refuse to render text nodes longer than 57444 + // characters, and returns inaccurate measurements in nodes + // starting around 5000 chars. + var pos = Math.min(stream.pos, curStart + 5000); + f(pos, curStyle); + curStart = pos; + } + } + + // Finds the line to start with when starting a parse. Tries to + // find a line with a stateAfter, so that it can start with a + // valid state. If that fails, it returns the line with the + // smallest indentation, which tends to need the least context to + // parse correctly. + function findStartLine(cm, n, precise) { + var minindent, minline, doc = cm.doc; + var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100); + for (var search = n; search > lim; --search) { + if (search <= doc.first) { return doc.first } + var line = getLine(doc, search - 1), after = line.stateAfter; + if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier)) + { return search } + var indented = countColumn(line.text, null, cm.options.tabSize); + if (minline == null || minindent > indented) { + minline = search - 1; + minindent = indented; + } + } + return minline + } + + function retreatFrontier(doc, n) { + doc.modeFrontier = Math.min(doc.modeFrontier, n); + if (doc.highlightFrontier < n - 10) { return } + var start = doc.first; + for (var line = n - 1; line > start; line--) { + var saved = getLine(doc, line).stateAfter; + // change is on 3 + // state on line 1 looked ahead 2 -- so saw 3 + // test 1 + 2 < 3 should cover this + if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) { + start = line + 1; + break + } + } + doc.highlightFrontier = Math.min(doc.highlightFrontier, start); + } + + // Optimize some code when these features are not used. + var sawReadOnlySpans = false, sawCollapsedSpans = false; + + function seeReadOnlySpans() { + sawReadOnlySpans = true; + } + + function seeCollapsedSpans() { + sawCollapsedSpans = true; + } + + // TEXTMARKER SPANS + + function MarkedSpan(marker, from, to) { + this.marker = marker; + this.from = from; this.to = to; + } + + // Search an array of spans for a span matching the given marker. + function getMarkedSpanFor(spans, marker) { + if (spans) { for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if (span.marker == marker) { return span } + } } + } + // Remove a span from an array, returning undefined if no spans are + // left (we don't store arrays for lines without spans). + function removeMarkedSpan(spans, span) { + var r; + for (var i = 0; i < spans.length; ++i) + { if (spans[i] != span) { (r || (r = [])).push(spans[i]); } } + return r + } + // Add a span to a line. + function addMarkedSpan(line, span) { + line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span]; + span.marker.attachLine(line); + } + + // Used for the algorithm that adjusts markers for a change in the + // document. These functions cut an array of spans at a given + // character position, returning an array of remaining chunks (or + // undefined if nothing remains). + function markedSpansBefore(old, startCh, isInsert) { + var nw; + if (old) { for (var i = 0; i < old.length; ++i) { + var span = old[i], marker = span.marker; + var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh); + if (startsBefore || span.from == startCh && marker.type == "bookmark" && (!isInsert || !span.marker.insertLeft)) { + var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh) + ;(nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to)); + } + } } + return nw + } + function markedSpansAfter(old, endCh, isInsert) { + var nw; + if (old) { for (var i = 0; i < old.length; ++i) { + var span = old[i], marker = span.marker; + var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh); + if (endsAfter || span.from == endCh && marker.type == "bookmark" && (!isInsert || span.marker.insertLeft)) { + var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh) + ;(nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh, + span.to == null ? null : span.to - endCh)); + } + } } + return nw + } + + // Given a change object, compute the new set of marker spans that + // cover the line in which the change took place. Removes spans + // entirely within the change, reconnects spans belonging to the + // same marker that appear on both sides of the change, and cuts off + // spans partially within the change. Returns an array of span + // arrays with one element for each line in (after) the change. + function stretchSpansOverChange(doc, change) { + if (change.full) { return null } + var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans; + var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans; + if (!oldFirst && !oldLast) { return null } + + var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0; + // Get the spans that 'stick out' on both sides + var first = markedSpansBefore(oldFirst, startCh, isInsert); + var last = markedSpansAfter(oldLast, endCh, isInsert); + + // Next, merge those two ends + var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0); + if (first) { + // Fix up .to properties of first + for (var i = 0; i < first.length; ++i) { + var span = first[i]; + if (span.to == null) { + var found = getMarkedSpanFor(last, span.marker); + if (!found) { span.to = startCh; } + else if (sameLine) { span.to = found.to == null ? null : found.to + offset; } + } + } + } + if (last) { + // Fix up .from in last (or move them into first in case of sameLine) + for (var i$1 = 0; i$1 < last.length; ++i$1) { + var span$1 = last[i$1]; + if (span$1.to != null) { span$1.to += offset; } + if (span$1.from == null) { + var found$1 = getMarkedSpanFor(first, span$1.marker); + if (!found$1) { + span$1.from = offset; + if (sameLine) { (first || (first = [])).push(span$1); } + } + } else { + span$1.from += offset; + if (sameLine) { (first || (first = [])).push(span$1); } + } + } + } + // Make sure we didn't create any zero-length spans + if (first) { first = clearEmptySpans(first); } + if (last && last != first) { last = clearEmptySpans(last); } + + var newMarkers = [first]; + if (!sameLine) { + // Fill gap with whole-line-spans + var gap = change.text.length - 2, gapMarkers; + if (gap > 0 && first) + { for (var i$2 = 0; i$2 < first.length; ++i$2) + { if (first[i$2].to == null) + { (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i$2].marker, null, null)); } } } + for (var i$3 = 0; i$3 < gap; ++i$3) + { newMarkers.push(gapMarkers); } + newMarkers.push(last); + } + return newMarkers + } + + // Remove spans that are empty and don't have a clearWhenEmpty + // option of false. + function clearEmptySpans(spans) { + for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false) + { spans.splice(i--, 1); } + } + if (!spans.length) { return null } + return spans + } + + // Used to 'clip' out readOnly ranges when making a change. + function removeReadOnlyRanges(doc, from, to) { + var markers = null; + doc.iter(from.line, to.line + 1, function (line) { + if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) { + var mark = line.markedSpans[i].marker; + if (mark.readOnly && (!markers || indexOf(markers, mark) == -1)) + { (markers || (markers = [])).push(mark); } + } } + }); + if (!markers) { return null } + var parts = [{from: from, to: to}]; + for (var i = 0; i < markers.length; ++i) { + var mk = markers[i], m = mk.find(0); + for (var j = 0; j < parts.length; ++j) { + var p = parts[j]; + if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) { continue } + var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to); + if (dfrom < 0 || !mk.inclusiveLeft && !dfrom) + { newParts.push({from: p.from, to: m.from}); } + if (dto > 0 || !mk.inclusiveRight && !dto) + { newParts.push({from: m.to, to: p.to}); } + parts.splice.apply(parts, newParts); + j += newParts.length - 3; + } + } + return parts + } + + // Connect or disconnect spans from a line. + function detachMarkedSpans(line) { + var spans = line.markedSpans; + if (!spans) { return } + for (var i = 0; i < spans.length; ++i) + { spans[i].marker.detachLine(line); } + line.markedSpans = null; + } + function attachMarkedSpans(line, spans) { + if (!spans) { return } + for (var i = 0; i < spans.length; ++i) + { spans[i].marker.attachLine(line); } + line.markedSpans = spans; + } + + // Helpers used when computing which overlapping collapsed span + // counts as the larger one. + function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0 } + function extraRight(marker) { return marker.inclusiveRight ? 1 : 0 } + + // Returns a number indicating which of two overlapping collapsed + // spans is larger (and thus includes the other). Falls back to + // comparing ids when the spans cover exactly the same range. + function compareCollapsedMarkers(a, b) { + var lenDiff = a.lines.length - b.lines.length; + if (lenDiff != 0) { return lenDiff } + var aPos = a.find(), bPos = b.find(); + var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b); + if (fromCmp) { return -fromCmp } + var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b); + if (toCmp) { return toCmp } + return b.id - a.id + } + + // Find out whether a line ends or starts in a collapsed span. If + // so, return the marker for that span. + function collapsedSpanAtSide(line, start) { + var sps = sawCollapsedSpans && line.markedSpans, found; + if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) { + sp = sps[i]; + if (sp.marker.collapsed && (start ? sp.from : sp.to) == null && + (!found || compareCollapsedMarkers(found, sp.marker) < 0)) + { found = sp.marker; } + } } + return found + } + function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) } + function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) } + + function collapsedSpanAround(line, ch) { + var sps = sawCollapsedSpans && line.markedSpans, found; + if (sps) { for (var i = 0; i < sps.length; ++i) { + var sp = sps[i]; + if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) && + (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { found = sp.marker; } + } } + return found + } + + // Test whether there exists a collapsed span that partially + // overlaps (covers the start or end, but not both) of a new span. + // Such overlap is not allowed. + function conflictingCollapsedRange(doc, lineNo$$1, from, to, marker) { + var line = getLine(doc, lineNo$$1); + var sps = sawCollapsedSpans && line.markedSpans; + if (sps) { for (var i = 0; i < sps.length; ++i) { + var sp = sps[i]; + if (!sp.marker.collapsed) { continue } + var found = sp.marker.find(0); + var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker); + var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker); + if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) { continue } + if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) || + fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0)) + { return true } + } } + } + + // A visual line is a line as drawn on the screen. Folding, for + // example, can cause multiple logical lines to appear on the same + // visual line. This finds the start of the visual line that the + // given line is part of (usually that is the line itself). + function visualLine(line) { + var merged; + while (merged = collapsedSpanAtStart(line)) + { line = merged.find(-1, true).line; } + return line + } + + function visualLineEnd(line) { + var merged; + while (merged = collapsedSpanAtEnd(line)) + { line = merged.find(1, true).line; } + return line + } + + // Returns an array of logical lines that continue the visual line + // started by the argument, or undefined if there are no such lines. + function visualLineContinued(line) { + var merged, lines; + while (merged = collapsedSpanAtEnd(line)) { + line = merged.find(1, true).line + ;(lines || (lines = [])).push(line); + } + return lines + } + + // Get the line number of the start of the visual line that the + // given line number is part of. + function visualLineNo(doc, lineN) { + var line = getLine(doc, lineN), vis = visualLine(line); + if (line == vis) { return lineN } + return lineNo(vis) + } + + // Get the line number of the start of the next visual line after + // the given line. + function visualLineEndNo(doc, lineN) { + if (lineN > doc.lastLine()) { return lineN } + var line = getLine(doc, lineN), merged; + if (!lineIsHidden(doc, line)) { return lineN } + while (merged = collapsedSpanAtEnd(line)) + { line = merged.find(1, true).line; } + return lineNo(line) + 1 + } + + // Compute whether a line is hidden. Lines count as hidden when they + // are part of a visual line that starts with another line, or when + // they are entirely covered by collapsed, non-widget span. + function lineIsHidden(doc, line) { + var sps = sawCollapsedSpans && line.markedSpans; + if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) { + sp = sps[i]; + if (!sp.marker.collapsed) { continue } + if (sp.from == null) { return true } + if (sp.marker.widgetNode) { continue } + if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp)) + { return true } + } } + } + function lineIsHiddenInner(doc, line, span) { + if (span.to == null) { + var end = span.marker.find(1, true); + return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker)) + } + if (span.marker.inclusiveRight && span.to == line.text.length) + { return true } + for (var sp = (void 0), i = 0; i < line.markedSpans.length; ++i) { + sp = line.markedSpans[i]; + if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to && + (sp.to == null || sp.to != span.from) && + (sp.marker.inclusiveLeft || span.marker.inclusiveRight) && + lineIsHiddenInner(doc, line, sp)) { return true } + } + } + + // Find the height above the given line. + function heightAtLine(lineObj) { + lineObj = visualLine(lineObj); + + var h = 0, chunk = lineObj.parent; + for (var i = 0; i < chunk.lines.length; ++i) { + var line = chunk.lines[i]; + if (line == lineObj) { break } + else { h += line.height; } + } + for (var p = chunk.parent; p; chunk = p, p = chunk.parent) { + for (var i$1 = 0; i$1 < p.children.length; ++i$1) { + var cur = p.children[i$1]; + if (cur == chunk) { break } + else { h += cur.height; } + } + } + return h + } + + // Compute the character length of a line, taking into account + // collapsed ranges (see markText) that might hide parts, and join + // other lines onto it. + function lineLength(line) { + if (line.height == 0) { return 0 } + var len = line.text.length, merged, cur = line; + while (merged = collapsedSpanAtStart(cur)) { + var found = merged.find(0, true); + cur = found.from.line; + len += found.from.ch - found.to.ch; + } + cur = line; + while (merged = collapsedSpanAtEnd(cur)) { + var found$1 = merged.find(0, true); + len -= cur.text.length - found$1.from.ch; + cur = found$1.to.line; + len += cur.text.length - found$1.to.ch; + } + return len + } + + // Find the longest line in the document. + function findMaxLine(cm) { + var d = cm.display, doc = cm.doc; + d.maxLine = getLine(doc, doc.first); + d.maxLineLength = lineLength(d.maxLine); + d.maxLineChanged = true; + doc.iter(function (line) { + var len = lineLength(line); + if (len > d.maxLineLength) { + d.maxLineLength = len; + d.maxLine = line; + } + }); + } + + // LINE DATA STRUCTURE + + // Line objects. These hold state related to a line, including + // highlighting info (the styles array). + var Line = function(text, markedSpans, estimateHeight) { + this.text = text; + attachMarkedSpans(this, markedSpans); + this.height = estimateHeight ? estimateHeight(this) : 1; + }; + + Line.prototype.lineNo = function () { return lineNo(this) }; + eventMixin(Line); + + // Change the content (text, markers) of a line. Automatically + // invalidates cached information and tries to re-estimate the + // line's height. + function updateLine(line, text, markedSpans, estimateHeight) { + line.text = text; + if (line.stateAfter) { line.stateAfter = null; } + if (line.styles) { line.styles = null; } + if (line.order != null) { line.order = null; } + detachMarkedSpans(line); + attachMarkedSpans(line, markedSpans); + var estHeight = estimateHeight ? estimateHeight(line) : 1; + if (estHeight != line.height) { updateLineHeight(line, estHeight); } + } + + // Detach a line from the document tree and its markers. + function cleanUpLine(line) { + line.parent = null; + detachMarkedSpans(line); + } + + // Convert a style as returned by a mode (either null, or a string + // containing one or more styles) to a CSS style. This is cached, + // and also looks for line-wide styles. + var styleToClassCache = {}, styleToClassCacheWithMode = {}; + function interpretTokenStyle(style, options) { + if (!style || /^\s*$/.test(style)) { return null } + var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache; + return cache[style] || + (cache[style] = style.replace(/\S+/g, "cm-$&")) + } + + // Render the DOM representation of the text of a line. Also builds + // up a 'line map', which points at the DOM nodes that represent + // specific stretches of text, and is used by the measuring code. + // The returned object contains the DOM node, this map, and + // information about line-wide styles that were set by the mode. + function buildLineContent(cm, lineView) { + // The padding-right forces the element to have a 'border', which + // is needed on Webkit to be able to get line-level bounding + // rectangles for it (in measureChar). + var content = eltP("span", null, null, webkit ? "padding-right: .1px" : null); + var builder = {pre: eltP("pre", [content], "CodeMirror-line"), content: content, + col: 0, pos: 0, cm: cm, + trailingSpace: false, + splitSpaces: cm.getOption("lineWrapping")}; + lineView.measure = {}; + + // Iterate over the logical lines that make up this visual line. + for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) { + var line = i ? lineView.rest[i - 1] : lineView.line, order = (void 0); + builder.pos = 0; + builder.addToken = buildToken; + // Optionally wire in some hacks into the token-rendering + // algorithm, to deal with browser quirks. + if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line, cm.doc.direction))) + { builder.addToken = buildTokenBadBidi(builder.addToken, order); } + builder.map = []; + var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line); + insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate)); + if (line.styleClasses) { + if (line.styleClasses.bgClass) + { builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || ""); } + if (line.styleClasses.textClass) + { builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || ""); } + } + + // Ensure at least a single node is present, for measuring. + if (builder.map.length == 0) + { builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); } + + // Store the map and a cache object for the current logical line + if (i == 0) { + lineView.measure.map = builder.map; + lineView.measure.cache = {}; + } else { + (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map) + ;(lineView.measure.caches || (lineView.measure.caches = [])).push({}); + } + } + + // See issue #2901 + if (webkit) { + var last = builder.content.lastChild; + if (/\bcm-tab\b/.test(last.className) || (last.querySelector && last.querySelector(".cm-tab"))) + { builder.content.className = "cm-tab-wrap-hack"; } + } + + signal(cm, "renderLine", cm, lineView.line, builder.pre); + if (builder.pre.className) + { builder.textClass = joinClasses(builder.pre.className, builder.textClass || ""); } + + return builder + } + + function defaultSpecialCharPlaceholder(ch) { + var token = elt("span", "\u2022", "cm-invalidchar"); + token.title = "\\u" + ch.charCodeAt(0).toString(16); + token.setAttribute("aria-label", token.title); + return token + } + + // Build up the DOM representation for a single token, and add it to + // the line map. Takes care to render special characters separately. + function buildToken(builder, text, style, startStyle, endStyle, css, attributes) { + if (!text) { return } + var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text; + var special = builder.cm.state.specialChars, mustWrap = false; + var content; + if (!special.test(text)) { + builder.col += text.length; + content = document.createTextNode(displayText); + builder.map.push(builder.pos, builder.pos + text.length, content); + if (ie && ie_version < 9) { mustWrap = true; } + builder.pos += text.length; + } else { + content = document.createDocumentFragment(); + var pos = 0; + while (true) { + special.lastIndex = pos; + var m = special.exec(text); + var skipped = m ? m.index - pos : text.length - pos; + if (skipped) { + var txt = document.createTextNode(displayText.slice(pos, pos + skipped)); + if (ie && ie_version < 9) { content.appendChild(elt("span", [txt])); } + else { content.appendChild(txt); } + builder.map.push(builder.pos, builder.pos + skipped, txt); + builder.col += skipped; + builder.pos += skipped; + } + if (!m) { break } + pos += skipped + 1; + var txt$1 = (void 0); + if (m[0] == "\t") { + var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize; + txt$1 = content.appendChild(elt("span", spaceStr(tabWidth), "cm-tab")); + txt$1.setAttribute("role", "presentation"); + txt$1.setAttribute("cm-text", "\t"); + builder.col += tabWidth; + } else if (m[0] == "\r" || m[0] == "\n") { + txt$1 = content.appendChild(elt("span", m[0] == "\r" ? "\u240d" : "\u2424", "cm-invalidchar")); + txt$1.setAttribute("cm-text", m[0]); + builder.col += 1; + } else { + txt$1 = builder.cm.options.specialCharPlaceholder(m[0]); + txt$1.setAttribute("cm-text", m[0]); + if (ie && ie_version < 9) { content.appendChild(elt("span", [txt$1])); } + else { content.appendChild(txt$1); } + builder.col += 1; + } + builder.map.push(builder.pos, builder.pos + 1, txt$1); + builder.pos++; + } + } + builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32; + if (style || startStyle || endStyle || mustWrap || css) { + var fullStyle = style || ""; + if (startStyle) { fullStyle += startStyle; } + if (endStyle) { fullStyle += endStyle; } + var token = elt("span", [content], fullStyle, css); + if (attributes) { + for (var attr in attributes) { if (attributes.hasOwnProperty(attr) && attr != "style" && attr != "class") + { token.setAttribute(attr, attributes[attr]); } } + } + return builder.content.appendChild(token) + } + builder.content.appendChild(content); + } + + // Change some spaces to NBSP to prevent the browser from collapsing + // trailing spaces at the end of a line when rendering text (issue #1362). + function splitSpaces(text, trailingBefore) { + if (text.length > 1 && !/ /.test(text)) { return text } + var spaceBefore = trailingBefore, result = ""; + for (var i = 0; i < text.length; i++) { + var ch = text.charAt(i); + if (ch == " " && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32)) + { ch = "\u00a0"; } + result += ch; + spaceBefore = ch == " "; + } + return result + } + + // Work around nonsense dimensions being reported for stretches of + // right-to-left text. + function buildTokenBadBidi(inner, order) { + return function (builder, text, style, startStyle, endStyle, css, attributes) { + style = style ? style + " cm-force-border" : "cm-force-border"; + var start = builder.pos, end = start + text.length; + for (;;) { + // Find the part that overlaps with the start of this text + var part = (void 0); + for (var i = 0; i < order.length; i++) { + part = order[i]; + if (part.to > start && part.from <= start) { break } + } + if (part.to >= end) { return inner(builder, text, style, startStyle, endStyle, css, attributes) } + inner(builder, text.slice(0, part.to - start), style, startStyle, null, css, attributes); + startStyle = null; + text = text.slice(part.to - start); + start = part.to; + } + } + } + + function buildCollapsedSpan(builder, size, marker, ignoreWidget) { + var widget = !ignoreWidget && marker.widgetNode; + if (widget) { builder.map.push(builder.pos, builder.pos + size, widget); } + if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) { + if (!widget) + { widget = builder.content.appendChild(document.createElement("span")); } + widget.setAttribute("cm-marker", marker.id); + } + if (widget) { + builder.cm.display.input.setUneditable(widget); + builder.content.appendChild(widget); + } + builder.pos += size; + builder.trailingSpace = false; + } + + // Outputs a number of spans to make up a line, taking highlighting + // and marked text into account. + function insertLineContent(line, builder, styles) { + var spans = line.markedSpans, allText = line.text, at = 0; + if (!spans) { + for (var i$1 = 1; i$1 < styles.length; i$1+=2) + { builder.addToken(builder, allText.slice(at, at = styles[i$1]), interpretTokenStyle(styles[i$1+1], builder.cm.options)); } + return + } + + var len = allText.length, pos = 0, i = 1, text = "", style, css; + var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, collapsed, attributes; + for (;;) { + if (nextChange == pos) { // Update current marker set + spanStyle = spanEndStyle = spanStartStyle = css = ""; + attributes = null; + collapsed = null; nextChange = Infinity; + var foundBookmarks = [], endStyles = (void 0); + for (var j = 0; j < spans.length; ++j) { + var sp = spans[j], m = sp.marker; + if (m.type == "bookmark" && sp.from == pos && m.widgetNode) { + foundBookmarks.push(m); + } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) { + if (sp.to != null && sp.to != pos && nextChange > sp.to) { + nextChange = sp.to; + spanEndStyle = ""; + } + if (m.className) { spanStyle += " " + m.className; } + if (m.css) { css = (css ? css + ";" : "") + m.css; } + if (m.startStyle && sp.from == pos) { spanStartStyle += " " + m.startStyle; } + if (m.endStyle && sp.to == nextChange) { (endStyles || (endStyles = [])).push(m.endStyle, sp.to); } + // support for the old title property + // https://github.com/codemirror/CodeMirror/pull/5673 + if (m.title) { (attributes || (attributes = {})).title = m.title; } + if (m.attributes) { + for (var attr in m.attributes) + { (attributes || (attributes = {}))[attr] = m.attributes[attr]; } + } + if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0)) + { collapsed = sp; } + } else if (sp.from > pos && nextChange > sp.from) { + nextChange = sp.from; + } + } + if (endStyles) { for (var j$1 = 0; j$1 < endStyles.length; j$1 += 2) + { if (endStyles[j$1 + 1] == nextChange) { spanEndStyle += " " + endStyles[j$1]; } } } + + if (!collapsed || collapsed.from == pos) { for (var j$2 = 0; j$2 < foundBookmarks.length; ++j$2) + { buildCollapsedSpan(builder, 0, foundBookmarks[j$2]); } } + if (collapsed && (collapsed.from || 0) == pos) { + buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos, + collapsed.marker, collapsed.from == null); + if (collapsed.to == null) { return } + if (collapsed.to == pos) { collapsed = false; } + } + } + if (pos >= len) { break } + + var upto = Math.min(len, nextChange); + while (true) { + if (text) { + var end = pos + text.length; + if (!collapsed) { + var tokenText = end > upto ? text.slice(0, upto - pos) : text; + builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle, + spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : "", css, attributes); + } + if (end >= upto) {text = text.slice(upto - pos); pos = upto; break} + pos = end; + spanStartStyle = ""; + } + text = allText.slice(at, at = styles[i++]); + style = interpretTokenStyle(styles[i++], builder.cm.options); + } + } + } + + + // These objects are used to represent the visible (currently drawn) + // part of the document. A LineView may correspond to multiple + // logical lines, if those are connected by collapsed ranges. + function LineView(doc, line, lineN) { + // The starting line + this.line = line; + // Continuing lines, if any + this.rest = visualLineContinued(line); + // Number of logical lines in this visual line + this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1; + this.node = this.text = null; + this.hidden = lineIsHidden(doc, line); + } + + // Create a range of LineView objects for the given lines. + function buildViewArray(cm, from, to) { + var array = [], nextPos; + for (var pos = from; pos < to; pos = nextPos) { + var view = new LineView(cm.doc, getLine(cm.doc, pos), pos); + nextPos = pos + view.size; + array.push(view); + } + return array + } + + var operationGroup = null; + + function pushOperation(op) { + if (operationGroup) { + operationGroup.ops.push(op); + } else { + op.ownsGroup = operationGroup = { + ops: [op], + delayedCallbacks: [] + }; + } + } + + function fireCallbacksForOps(group) { + // Calls delayed callbacks and cursorActivity handlers until no + // new ones appear + var callbacks = group.delayedCallbacks, i = 0; + do { + for (; i < callbacks.length; i++) + { callbacks[i].call(null); } + for (var j = 0; j < group.ops.length; j++) { + var op = group.ops[j]; + if (op.cursorActivityHandlers) + { while (op.cursorActivityCalled < op.cursorActivityHandlers.length) + { op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); } } + } + } while (i < callbacks.length) + } + + function finishOperation(op, endCb) { + var group = op.ownsGroup; + if (!group) { return } + + try { fireCallbacksForOps(group); } + finally { + operationGroup = null; + endCb(group); + } + } + + var orphanDelayedCallbacks = null; + + // Often, we want to signal events at a point where we are in the + // middle of some work, but don't want the handler to start calling + // other methods on the editor, which might be in an inconsistent + // state or simply not expect any other events to happen. + // signalLater looks whether there are any handlers, and schedules + // them to be executed when the last operation ends, or, if no + // operation is active, when a timeout fires. + function signalLater(emitter, type /*, values...*/) { + var arr = getHandlers(emitter, type); + if (!arr.length) { return } + var args = Array.prototype.slice.call(arguments, 2), list; + if (operationGroup) { + list = operationGroup.delayedCallbacks; + } else if (orphanDelayedCallbacks) { + list = orphanDelayedCallbacks; + } else { + list = orphanDelayedCallbacks = []; + setTimeout(fireOrphanDelayed, 0); + } + var loop = function ( i ) { + list.push(function () { return arr[i].apply(null, args); }); + }; + + for (var i = 0; i < arr.length; ++i) + loop( i ); + } + + function fireOrphanDelayed() { + var delayed = orphanDelayedCallbacks; + orphanDelayedCallbacks = null; + for (var i = 0; i < delayed.length; ++i) { delayed[i](); } + } + + // When an aspect of a line changes, a string is added to + // lineView.changes. This updates the relevant part of the line's + // DOM structure. + function updateLineForChanges(cm, lineView, lineN, dims) { + for (var j = 0; j < lineView.changes.length; j++) { + var type = lineView.changes[j]; + if (type == "text") { updateLineText(cm, lineView); } + else if (type == "gutter") { updateLineGutter(cm, lineView, lineN, dims); } + else if (type == "class") { updateLineClasses(cm, lineView); } + else if (type == "widget") { updateLineWidgets(cm, lineView, dims); } + } + lineView.changes = null; + } + + // Lines with gutter elements, widgets or a background class need to + // be wrapped, and have the extra elements added to the wrapper div + function ensureLineWrapped(lineView) { + if (lineView.node == lineView.text) { + lineView.node = elt("div", null, null, "position: relative"); + if (lineView.text.parentNode) + { lineView.text.parentNode.replaceChild(lineView.node, lineView.text); } + lineView.node.appendChild(lineView.text); + if (ie && ie_version < 8) { lineView.node.style.zIndex = 2; } + } + return lineView.node + } + + function updateLineBackground(cm, lineView) { + var cls = lineView.bgClass ? lineView.bgClass + " " + (lineView.line.bgClass || "") : lineView.line.bgClass; + if (cls) { cls += " CodeMirror-linebackground"; } + if (lineView.background) { + if (cls) { lineView.background.className = cls; } + else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; } + } else if (cls) { + var wrap = ensureLineWrapped(lineView); + lineView.background = wrap.insertBefore(elt("div", null, cls), wrap.firstChild); + cm.display.input.setUneditable(lineView.background); + } + } + + // Wrapper around buildLineContent which will reuse the structure + // in display.externalMeasured when possible. + function getLineContent(cm, lineView) { + var ext = cm.display.externalMeasured; + if (ext && ext.line == lineView.line) { + cm.display.externalMeasured = null; + lineView.measure = ext.measure; + return ext.built + } + return buildLineContent(cm, lineView) + } + + // Redraw the line's text. Interacts with the background and text + // classes because the mode may output tokens that influence these + // classes. + function updateLineText(cm, lineView) { + var cls = lineView.text.className; + var built = getLineContent(cm, lineView); + if (lineView.text == lineView.node) { lineView.node = built.pre; } + lineView.text.parentNode.replaceChild(built.pre, lineView.text); + lineView.text = built.pre; + if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) { + lineView.bgClass = built.bgClass; + lineView.textClass = built.textClass; + updateLineClasses(cm, lineView); + } else if (cls) { + lineView.text.className = cls; + } + } + + function updateLineClasses(cm, lineView) { + updateLineBackground(cm, lineView); + if (lineView.line.wrapClass) + { ensureLineWrapped(lineView).className = lineView.line.wrapClass; } + else if (lineView.node != lineView.text) + { lineView.node.className = ""; } + var textClass = lineView.textClass ? lineView.textClass + " " + (lineView.line.textClass || "") : lineView.line.textClass; + lineView.text.className = textClass || ""; + } + + function updateLineGutter(cm, lineView, lineN, dims) { + if (lineView.gutter) { + lineView.node.removeChild(lineView.gutter); + lineView.gutter = null; + } + if (lineView.gutterBackground) { + lineView.node.removeChild(lineView.gutterBackground); + lineView.gutterBackground = null; + } + if (lineView.line.gutterClass) { + var wrap = ensureLineWrapped(lineView); + lineView.gutterBackground = elt("div", null, "CodeMirror-gutter-background " + lineView.line.gutterClass, + ("left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px; width: " + (dims.gutterTotalWidth) + "px")); + cm.display.input.setUneditable(lineView.gutterBackground); + wrap.insertBefore(lineView.gutterBackground, lineView.text); + } + var markers = lineView.line.gutterMarkers; + if (cm.options.lineNumbers || markers) { + var wrap$1 = ensureLineWrapped(lineView); + var gutterWrap = lineView.gutter = elt("div", null, "CodeMirror-gutter-wrapper", ("left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px")); + cm.display.input.setUneditable(gutterWrap); + wrap$1.insertBefore(gutterWrap, lineView.text); + if (lineView.line.gutterClass) + { gutterWrap.className += " " + lineView.line.gutterClass; } + if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"])) + { lineView.lineNumber = gutterWrap.appendChild( + elt("div", lineNumberFor(cm.options, lineN), + "CodeMirror-linenumber CodeMirror-gutter-elt", + ("left: " + (dims.gutterLeft["CodeMirror-linenumbers"]) + "px; width: " + (cm.display.lineNumInnerWidth) + "px"))); } + if (markers) { for (var k = 0; k < cm.display.gutterSpecs.length; ++k) { + var id = cm.display.gutterSpecs[k].className, found = markers.hasOwnProperty(id) && markers[id]; + if (found) + { gutterWrap.appendChild(elt("div", [found], "CodeMirror-gutter-elt", + ("left: " + (dims.gutterLeft[id]) + "px; width: " + (dims.gutterWidth[id]) + "px"))); } + } } + } + } + + function updateLineWidgets(cm, lineView, dims) { + if (lineView.alignable) { lineView.alignable = null; } + for (var node = lineView.node.firstChild, next = (void 0); node; node = next) { + next = node.nextSibling; + if (node.className == "CodeMirror-linewidget") + { lineView.node.removeChild(node); } + } + insertLineWidgets(cm, lineView, dims); + } + + // Build a line's DOM representation from scratch + function buildLineElement(cm, lineView, lineN, dims) { + var built = getLineContent(cm, lineView); + lineView.text = lineView.node = built.pre; + if (built.bgClass) { lineView.bgClass = built.bgClass; } + if (built.textClass) { lineView.textClass = built.textClass; } + + updateLineClasses(cm, lineView); + updateLineGutter(cm, lineView, lineN, dims); + insertLineWidgets(cm, lineView, dims); + return lineView.node + } + + // A lineView may contain multiple logical lines (when merged by + // collapsed spans). The widgets for all of them need to be drawn. + function insertLineWidgets(cm, lineView, dims) { + insertLineWidgetsFor(cm, lineView.line, lineView, dims, true); + if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++) + { insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false); } } + } + + function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) { + if (!line.widgets) { return } + var wrap = ensureLineWrapped(lineView); + for (var i = 0, ws = line.widgets; i < ws.length; ++i) { + var widget = ws[i], node = elt("div", [widget.node], "CodeMirror-linewidget"); + if (!widget.handleMouseEvents) { node.setAttribute("cm-ignore-events", "true"); } + positionLineWidget(widget, node, lineView, dims); + cm.display.input.setUneditable(node); + if (allowAbove && widget.above) + { wrap.insertBefore(node, lineView.gutter || lineView.text); } + else + { wrap.appendChild(node); } + signalLater(widget, "redraw"); + } + } + + function positionLineWidget(widget, node, lineView, dims) { + if (widget.noHScroll) { + (lineView.alignable || (lineView.alignable = [])).push(node); + var width = dims.wrapperWidth; + node.style.left = dims.fixedPos + "px"; + if (!widget.coverGutter) { + width -= dims.gutterTotalWidth; + node.style.paddingLeft = dims.gutterTotalWidth + "px"; + } + node.style.width = width + "px"; + } + if (widget.coverGutter) { + node.style.zIndex = 5; + node.style.position = "relative"; + if (!widget.noHScroll) { node.style.marginLeft = -dims.gutterTotalWidth + "px"; } + } + } + + function widgetHeight(widget) { + if (widget.height != null) { return widget.height } + var cm = widget.doc.cm; + if (!cm) { return 0 } + if (!contains(document.body, widget.node)) { + var parentStyle = "position: relative;"; + if (widget.coverGutter) + { parentStyle += "margin-left: -" + cm.display.gutters.offsetWidth + "px;"; } + if (widget.noHScroll) + { parentStyle += "width: " + cm.display.wrapper.clientWidth + "px;"; } + removeChildrenAndAdd(cm.display.measure, elt("div", [widget.node], null, parentStyle)); + } + return widget.height = widget.node.parentNode.offsetHeight + } + + // Return true when the given mouse event happened in a widget + function eventInWidget(display, e) { + for (var n = e_target(e); n != display.wrapper; n = n.parentNode) { + if (!n || (n.nodeType == 1 && n.getAttribute("cm-ignore-events") == "true") || + (n.parentNode == display.sizer && n != display.mover)) + { return true } + } + } + + // POSITION MEASUREMENT + + function paddingTop(display) {return display.lineSpace.offsetTop} + function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight} + function paddingH(display) { + if (display.cachedPaddingH) { return display.cachedPaddingH } + var e = removeChildrenAndAdd(display.measure, elt("pre", "x")); + var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle; + var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)}; + if (!isNaN(data.left) && !isNaN(data.right)) { display.cachedPaddingH = data; } + return data + } + + function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth } + function displayWidth(cm) { + return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth + } + function displayHeight(cm) { + return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight + } + + // Ensure the lineView.wrapping.heights array is populated. This is + // an array of bottom offsets for the lines that make up a drawn + // line. When lineWrapping is on, there might be more than one + // height. + function ensureLineHeights(cm, lineView, rect) { + var wrapping = cm.options.lineWrapping; + var curWidth = wrapping && displayWidth(cm); + if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) { + var heights = lineView.measure.heights = []; + if (wrapping) { + lineView.measure.width = curWidth; + var rects = lineView.text.firstChild.getClientRects(); + for (var i = 0; i < rects.length - 1; i++) { + var cur = rects[i], next = rects[i + 1]; + if (Math.abs(cur.bottom - next.bottom) > 2) + { heights.push((cur.bottom + next.top) / 2 - rect.top); } + } + } + heights.push(rect.bottom - rect.top); + } + } + + // Find a line map (mapping character offsets to text nodes) and a + // measurement cache for the given line number. (A line view might + // contain multiple lines when collapsed ranges are present.) + function mapFromLineView(lineView, line, lineN) { + if (lineView.line == line) + { return {map: lineView.measure.map, cache: lineView.measure.cache} } + for (var i = 0; i < lineView.rest.length; i++) + { if (lineView.rest[i] == line) + { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } } + for (var i$1 = 0; i$1 < lineView.rest.length; i$1++) + { if (lineNo(lineView.rest[i$1]) > lineN) + { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } } + } + + // Render a line into the hidden node display.externalMeasured. Used + // when measurement is needed for a line that's not in the viewport. + function updateExternalMeasurement(cm, line) { + line = visualLine(line); + var lineN = lineNo(line); + var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN); + view.lineN = lineN; + var built = view.built = buildLineContent(cm, view); + view.text = built.pre; + removeChildrenAndAdd(cm.display.lineMeasure, built.pre); + return view + } + + // Get a {top, bottom, left, right} box (in line-local coordinates) + // for a given character. + function measureChar(cm, line, ch, bias) { + return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias) + } + + // Find a line view that corresponds to the given line number. + function findViewForLine(cm, lineN) { + if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo) + { return cm.display.view[findViewIndex(cm, lineN)] } + var ext = cm.display.externalMeasured; + if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size) + { return ext } + } + + // Measurement can be split in two steps, the set-up work that + // applies to the whole line, and the measurement of the actual + // character. Functions like coordsChar, that need to do a lot of + // measurements in a row, can thus ensure that the set-up work is + // only done once. + function prepareMeasureForLine(cm, line) { + var lineN = lineNo(line); + var view = findViewForLine(cm, lineN); + if (view && !view.text) { + view = null; + } else if (view && view.changes) { + updateLineForChanges(cm, view, lineN, getDimensions(cm)); + cm.curOp.forceUpdate = true; + } + if (!view) + { view = updateExternalMeasurement(cm, line); } + + var info = mapFromLineView(view, line, lineN); + return { + line: line, view: view, rect: null, + map: info.map, cache: info.cache, before: info.before, + hasHeights: false + } + } + + // Given a prepared measurement object, measures the position of an + // actual character (or fetches it from the cache). + function measureCharPrepared(cm, prepared, ch, bias, varHeight) { + if (prepared.before) { ch = -1; } + var key = ch + (bias || ""), found; + if (prepared.cache.hasOwnProperty(key)) { + found = prepared.cache[key]; + } else { + if (!prepared.rect) + { prepared.rect = prepared.view.text.getBoundingClientRect(); } + if (!prepared.hasHeights) { + ensureLineHeights(cm, prepared.view, prepared.rect); + prepared.hasHeights = true; + } + found = measureCharInner(cm, prepared, ch, bias); + if (!found.bogus) { prepared.cache[key] = found; } + } + return {left: found.left, right: found.right, + top: varHeight ? found.rtop : found.top, + bottom: varHeight ? found.rbottom : found.bottom} + } + + var nullRect = {left: 0, right: 0, top: 0, bottom: 0}; + + function nodeAndOffsetInLineMap(map$$1, ch, bias) { + var node, start, end, collapse, mStart, mEnd; + // First, search the line map for the text node corresponding to, + // or closest to, the target character. + for (var i = 0; i < map$$1.length; i += 3) { + mStart = map$$1[i]; + mEnd = map$$1[i + 1]; + if (ch < mStart) { + start = 0; end = 1; + collapse = "left"; + } else if (ch < mEnd) { + start = ch - mStart; + end = start + 1; + } else if (i == map$$1.length - 3 || ch == mEnd && map$$1[i + 3] > ch) { + end = mEnd - mStart; + start = end - 1; + if (ch >= mEnd) { collapse = "right"; } + } + if (start != null) { + node = map$$1[i + 2]; + if (mStart == mEnd && bias == (node.insertLeft ? "left" : "right")) + { collapse = bias; } + if (bias == "left" && start == 0) + { while (i && map$$1[i - 2] == map$$1[i - 3] && map$$1[i - 1].insertLeft) { + node = map$$1[(i -= 3) + 2]; + collapse = "left"; + } } + if (bias == "right" && start == mEnd - mStart) + { while (i < map$$1.length - 3 && map$$1[i + 3] == map$$1[i + 4] && !map$$1[i + 5].insertLeft) { + node = map$$1[(i += 3) + 2]; + collapse = "right"; + } } + break + } + } + return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd} + } + + function getUsefulRect(rects, bias) { + var rect = nullRect; + if (bias == "left") { for (var i = 0; i < rects.length; i++) { + if ((rect = rects[i]).left != rect.right) { break } + } } else { for (var i$1 = rects.length - 1; i$1 >= 0; i$1--) { + if ((rect = rects[i$1]).left != rect.right) { break } + } } + return rect + } + + function measureCharInner(cm, prepared, ch, bias) { + var place = nodeAndOffsetInLineMap(prepared.map, ch, bias); + var node = place.node, start = place.start, end = place.end, collapse = place.collapse; + + var rect; + if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates. + for (var i$1 = 0; i$1 < 4; i$1++) { // Retry a maximum of 4 times when nonsense rectangles are returned + while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) { --start; } + while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) { ++end; } + if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart) + { rect = node.parentNode.getBoundingClientRect(); } + else + { rect = getUsefulRect(range(node, start, end).getClientRects(), bias); } + if (rect.left || rect.right || start == 0) { break } + end = start; + start = start - 1; + collapse = "right"; + } + if (ie && ie_version < 11) { rect = maybeUpdateRectForZooming(cm.display.measure, rect); } + } else { // If it is a widget, simply get the box for the whole widget. + if (start > 0) { collapse = bias = "right"; } + var rects; + if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1) + { rect = rects[bias == "right" ? rects.length - 1 : 0]; } + else + { rect = node.getBoundingClientRect(); } + } + if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) { + var rSpan = node.parentNode.getClientRects()[0]; + if (rSpan) + { rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; } + else + { rect = nullRect; } + } + + var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top; + var mid = (rtop + rbot) / 2; + var heights = prepared.view.measure.heights; + var i = 0; + for (; i < heights.length - 1; i++) + { if (mid < heights[i]) { break } } + var top = i ? heights[i - 1] : 0, bot = heights[i]; + var result = {left: (collapse == "right" ? rect.right : rect.left) - prepared.rect.left, + right: (collapse == "left" ? rect.left : rect.right) - prepared.rect.left, + top: top, bottom: bot}; + if (!rect.left && !rect.right) { result.bogus = true; } + if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; } + + return result + } + + // Work around problem with bounding client rects on ranges being + // returned incorrectly when zoomed on IE10 and below. + function maybeUpdateRectForZooming(measure, rect) { + if (!window.screen || screen.logicalXDPI == null || + screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure)) + { return rect } + var scaleX = screen.logicalXDPI / screen.deviceXDPI; + var scaleY = screen.logicalYDPI / screen.deviceYDPI; + return {left: rect.left * scaleX, right: rect.right * scaleX, + top: rect.top * scaleY, bottom: rect.bottom * scaleY} + } + + function clearLineMeasurementCacheFor(lineView) { + if (lineView.measure) { + lineView.measure.cache = {}; + lineView.measure.heights = null; + if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++) + { lineView.measure.caches[i] = {}; } } + } + } + + function clearLineMeasurementCache(cm) { + cm.display.externalMeasure = null; + removeChildren(cm.display.lineMeasure); + for (var i = 0; i < cm.display.view.length; i++) + { clearLineMeasurementCacheFor(cm.display.view[i]); } + } + + function clearCaches(cm) { + clearLineMeasurementCache(cm); + cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null; + if (!cm.options.lineWrapping) { cm.display.maxLineChanged = true; } + cm.display.lineNumChars = null; + } + + function pageScrollX() { + // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206 + // which causes page_Offset and bounding client rects to use + // different reference viewports and invalidate our calculations. + if (chrome && android) { return -(document.body.getBoundingClientRect().left - parseInt(getComputedStyle(document.body).marginLeft)) } + return window.pageXOffset || (document.documentElement || document.body).scrollLeft + } + function pageScrollY() { + if (chrome && android) { return -(document.body.getBoundingClientRect().top - parseInt(getComputedStyle(document.body).marginTop)) } + return window.pageYOffset || (document.documentElement || document.body).scrollTop + } + + function widgetTopHeight(lineObj) { + var height = 0; + if (lineObj.widgets) { for (var i = 0; i < lineObj.widgets.length; ++i) { if (lineObj.widgets[i].above) + { height += widgetHeight(lineObj.widgets[i]); } } } + return height + } + + // Converts a {top, bottom, left, right} box from line-local + // coordinates into another coordinate system. Context may be one of + // "line", "div" (display.lineDiv), "local"./null (editor), "window", + // or "page". + function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) { + if (!includeWidgets) { + var height = widgetTopHeight(lineObj); + rect.top += height; rect.bottom += height; + } + if (context == "line") { return rect } + if (!context) { context = "local"; } + var yOff = heightAtLine(lineObj); + if (context == "local") { yOff += paddingTop(cm.display); } + else { yOff -= cm.display.viewOffset; } + if (context == "page" || context == "window") { + var lOff = cm.display.lineSpace.getBoundingClientRect(); + yOff += lOff.top + (context == "window" ? 0 : pageScrollY()); + var xOff = lOff.left + (context == "window" ? 0 : pageScrollX()); + rect.left += xOff; rect.right += xOff; + } + rect.top += yOff; rect.bottom += yOff; + return rect + } + + // Coverts a box from "div" coords to another coordinate system. + // Context may be "window", "page", "div", or "local"./null. + function fromCoordSystem(cm, coords, context) { + if (context == "div") { return coords } + var left = coords.left, top = coords.top; + // First move into "page" coordinate system + if (context == "page") { + left -= pageScrollX(); + top -= pageScrollY(); + } else if (context == "local" || !context) { + var localBox = cm.display.sizer.getBoundingClientRect(); + left += localBox.left; + top += localBox.top; + } + + var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect(); + return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top} + } + + function charCoords(cm, pos, context, lineObj, bias) { + if (!lineObj) { lineObj = getLine(cm.doc, pos.line); } + return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context) + } + + // Returns a box for a given cursor position, which may have an + // 'other' property containing the position of the secondary cursor + // on a bidi boundary. + // A cursor Pos(line, char, "before") is on the same visual line as `char - 1` + // and after `char - 1` in writing order of `char - 1` + // A cursor Pos(line, char, "after") is on the same visual line as `char` + // and before `char` in writing order of `char` + // Examples (upper-case letters are RTL, lower-case are LTR): + // Pos(0, 1, ...) + // before after + // ab a|b a|b + // aB a|B aB| + // Ab |Ab A|b + // AB B|A B|A + // Every position after the last character on a line is considered to stick + // to the last character on the line. + function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) { + lineObj = lineObj || getLine(cm.doc, pos.line); + if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); } + function get(ch, right) { + var m = measureCharPrepared(cm, preparedMeasure, ch, right ? "right" : "left", varHeight); + if (right) { m.left = m.right; } else { m.right = m.left; } + return intoCoordSystem(cm, lineObj, m, context) + } + var order = getOrder(lineObj, cm.doc.direction), ch = pos.ch, sticky = pos.sticky; + if (ch >= lineObj.text.length) { + ch = lineObj.text.length; + sticky = "before"; + } else if (ch <= 0) { + ch = 0; + sticky = "after"; + } + if (!order) { return get(sticky == "before" ? ch - 1 : ch, sticky == "before") } + + function getBidi(ch, partPos, invert) { + var part = order[partPos], right = part.level == 1; + return get(invert ? ch - 1 : ch, right != invert) + } + var partPos = getBidiPartAt(order, ch, sticky); + var other = bidiOther; + var val = getBidi(ch, partPos, sticky == "before"); + if (other != null) { val.other = getBidi(ch, other, sticky != "before"); } + return val + } + + // Used to cheaply estimate the coordinates for a position. Used for + // intermediate scroll updates. + function estimateCoords(cm, pos) { + var left = 0; + pos = clipPos(cm.doc, pos); + if (!cm.options.lineWrapping) { left = charWidth(cm.display) * pos.ch; } + var lineObj = getLine(cm.doc, pos.line); + var top = heightAtLine(lineObj) + paddingTop(cm.display); + return {left: left, right: left, top: top, bottom: top + lineObj.height} + } + + // Positions returned by coordsChar contain some extra information. + // xRel is the relative x position of the input coordinates compared + // to the found position (so xRel > 0 means the coordinates are to + // the right of the character position, for example). When outside + // is true, that means the coordinates lie outside the line's + // vertical range. + function PosWithInfo(line, ch, sticky, outside, xRel) { + var pos = Pos(line, ch, sticky); + pos.xRel = xRel; + if (outside) { pos.outside = true; } + return pos + } + + // Compute the character position closest to the given coordinates. + // Input must be lineSpace-local ("div" coordinate system). + function coordsChar(cm, x, y) { + var doc = cm.doc; + y += cm.display.viewOffset; + if (y < 0) { return PosWithInfo(doc.first, 0, null, true, -1) } + var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1; + if (lineN > last) + { return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, true, 1) } + if (x < 0) { x = 0; } + + var lineObj = getLine(doc, lineN); + for (;;) { + var found = coordsCharInner(cm, lineObj, lineN, x, y); + var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 ? 1 : 0)); + if (!collapsed) { return found } + var rangeEnd = collapsed.find(1); + if (rangeEnd.line == lineN) { return rangeEnd } + lineObj = getLine(doc, lineN = rangeEnd.line); + } + } + + function wrappedLineExtent(cm, lineObj, preparedMeasure, y) { + y -= widgetTopHeight(lineObj); + var end = lineObj.text.length; + var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0); + end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end); + return {begin: begin, end: end} + } + + function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) { + if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); } + var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), "line").top; + return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop) + } + + // Returns true if the given side of a box is after the given + // coordinates, in top-to-bottom, left-to-right order. + function boxIsAfter(box, x, y, left) { + return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x + } + + function coordsCharInner(cm, lineObj, lineNo$$1, x, y) { + // Move y into line-local coordinate space + y -= heightAtLine(lineObj); + var preparedMeasure = prepareMeasureForLine(cm, lineObj); + // When directly calling `measureCharPrepared`, we have to adjust + // for the widgets at this line. + var widgetHeight$$1 = widgetTopHeight(lineObj); + var begin = 0, end = lineObj.text.length, ltr = true; + + var order = getOrder(lineObj, cm.doc.direction); + // If the line isn't plain left-to-right text, first figure out + // which bidi section the coordinates fall into. + if (order) { + var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart) + (cm, lineObj, lineNo$$1, preparedMeasure, order, x, y); + ltr = part.level != 1; + // The awkward -1 offsets are needed because findFirst (called + // on these below) will treat its first bound as inclusive, + // second as exclusive, but we want to actually address the + // characters in the part's range + begin = ltr ? part.from : part.to - 1; + end = ltr ? part.to : part.from - 1; + } + + // A binary search to find the first character whose bounding box + // starts after the coordinates. If we run across any whose box wrap + // the coordinates, store that. + var chAround = null, boxAround = null; + var ch = findFirst(function (ch) { + var box = measureCharPrepared(cm, preparedMeasure, ch); + box.top += widgetHeight$$1; box.bottom += widgetHeight$$1; + if (!boxIsAfter(box, x, y, false)) { return false } + if (box.top <= y && box.left <= x) { + chAround = ch; + boxAround = box; + } + return true + }, begin, end); + + var baseX, sticky, outside = false; + // If a box around the coordinates was found, use that + if (boxAround) { + // Distinguish coordinates nearer to the left or right side of the box + var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr; + ch = chAround + (atStart ? 0 : 1); + sticky = atStart ? "after" : "before"; + baseX = atLeft ? boxAround.left : boxAround.right; + } else { + // (Adjust for extended bound, if necessary.) + if (!ltr && (ch == end || ch == begin)) { ch++; } + // To determine which side to associate with, get the box to the + // left of the character and compare it's vertical position to the + // coordinates + sticky = ch == 0 ? "after" : ch == lineObj.text.length ? "before" : + (measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight$$1 <= y) == ltr ? + "after" : "before"; + // Now get accurate coordinates for this place, in order to get a + // base X position + var coords = cursorCoords(cm, Pos(lineNo$$1, ch, sticky), "line", lineObj, preparedMeasure); + baseX = coords.left; + outside = y < coords.top || y >= coords.bottom; + } + + ch = skipExtendingChars(lineObj.text, ch, 1); + return PosWithInfo(lineNo$$1, ch, sticky, outside, x - baseX) + } + + function coordsBidiPart(cm, lineObj, lineNo$$1, preparedMeasure, order, x, y) { + // Bidi parts are sorted left-to-right, and in a non-line-wrapping + // situation, we can take this ordering to correspond to the visual + // ordering. This finds the first part whose end is after the given + // coordinates. + var index = findFirst(function (i) { + var part = order[i], ltr = part.level != 1; + return boxIsAfter(cursorCoords(cm, Pos(lineNo$$1, ltr ? part.to : part.from, ltr ? "before" : "after"), + "line", lineObj, preparedMeasure), x, y, true) + }, 0, order.length - 1); + var part = order[index]; + // If this isn't the first part, the part's start is also after + // the coordinates, and the coordinates aren't on the same line as + // that start, move one part back. + if (index > 0) { + var ltr = part.level != 1; + var start = cursorCoords(cm, Pos(lineNo$$1, ltr ? part.from : part.to, ltr ? "after" : "before"), + "line", lineObj, preparedMeasure); + if (boxIsAfter(start, x, y, true) && start.top > y) + { part = order[index - 1]; } + } + return part + } + + function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) { + // In a wrapped line, rtl text on wrapping boundaries can do things + // that don't correspond to the ordering in our `order` array at + // all, so a binary search doesn't work, and we want to return a + // part that only spans one line so that the binary search in + // coordsCharInner is safe. As such, we first find the extent of the + // wrapped line, and then do a flat search in which we discard any + // spans that aren't on the line. + var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y); + var begin = ref.begin; + var end = ref.end; + if (/\s/.test(lineObj.text.charAt(end - 1))) { end--; } + var part = null, closestDist = null; + for (var i = 0; i < order.length; i++) { + var p = order[i]; + if (p.from >= end || p.to <= begin) { continue } + var ltr = p.level != 1; + var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right; + // Weigh against spans ending before this, so that they are only + // picked if nothing ends after + var dist = endX < x ? x - endX + 1e9 : endX - x; + if (!part || closestDist > dist) { + part = p; + closestDist = dist; + } + } + if (!part) { part = order[order.length - 1]; } + // Clip the part to the wrapped line. + if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; } + if (part.to > end) { part = {from: part.from, to: end, level: part.level}; } + return part + } + + var measureText; + // Compute the default text height. + function textHeight(display) { + if (display.cachedTextHeight != null) { return display.cachedTextHeight } + if (measureText == null) { + measureText = elt("pre"); + // Measure a bunch of lines, for browsers that compute + // fractional heights. + for (var i = 0; i < 49; ++i) { + measureText.appendChild(document.createTextNode("x")); + measureText.appendChild(elt("br")); + } + measureText.appendChild(document.createTextNode("x")); + } + removeChildrenAndAdd(display.measure, measureText); + var height = measureText.offsetHeight / 50; + if (height > 3) { display.cachedTextHeight = height; } + removeChildren(display.measure); + return height || 1 + } + + // Compute the default character width. + function charWidth(display) { + if (display.cachedCharWidth != null) { return display.cachedCharWidth } + var anchor = elt("span", "xxxxxxxxxx"); + var pre = elt("pre", [anchor]); + removeChildrenAndAdd(display.measure, pre); + var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10; + if (width > 2) { display.cachedCharWidth = width; } + return width || 10 + } + + // Do a bulk-read of the DOM positions and sizes needed to draw the + // view, so that we don't interleave reading and writing to the DOM. + function getDimensions(cm) { + var d = cm.display, left = {}, width = {}; + var gutterLeft = d.gutters.clientLeft; + for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) { + var id = cm.display.gutterSpecs[i].className; + left[id] = n.offsetLeft + n.clientLeft + gutterLeft; + width[id] = n.clientWidth; + } + return {fixedPos: compensateForHScroll(d), + gutterTotalWidth: d.gutters.offsetWidth, + gutterLeft: left, + gutterWidth: width, + wrapperWidth: d.wrapper.clientWidth} + } + + // Computes display.scroller.scrollLeft + display.gutters.offsetWidth, + // but using getBoundingClientRect to get a sub-pixel-accurate + // result. + function compensateForHScroll(display) { + return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left + } + + // Returns a function that estimates the height of a line, to use as + // first approximation until the line becomes visible (and is thus + // properly measurable). + function estimateHeight(cm) { + var th = textHeight(cm.display), wrapping = cm.options.lineWrapping; + var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3); + return function (line) { + if (lineIsHidden(cm.doc, line)) { return 0 } + + var widgetsHeight = 0; + if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) { + if (line.widgets[i].height) { widgetsHeight += line.widgets[i].height; } + } } + + if (wrapping) + { return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th } + else + { return widgetsHeight + th } + } + } + + function estimateLineHeights(cm) { + var doc = cm.doc, est = estimateHeight(cm); + doc.iter(function (line) { + var estHeight = est(line); + if (estHeight != line.height) { updateLineHeight(line, estHeight); } + }); + } + + // Given a mouse event, find the corresponding position. If liberal + // is false, it checks whether a gutter or scrollbar was clicked, + // and returns null if it was. forRect is used by rectangular + // selections, and tries to estimate a character position even for + // coordinates beyond the right of the text. + function posFromMouse(cm, e, liberal, forRect) { + var display = cm.display; + if (!liberal && e_target(e).getAttribute("cm-not-content") == "true") { return null } + + var x, y, space = display.lineSpace.getBoundingClientRect(); + // Fails unpredictably on IE[67] when mouse is dragged around quickly. + try { x = e.clientX - space.left; y = e.clientY - space.top; } + catch (e) { return null } + var coords = coordsChar(cm, x, y), line; + if (forRect && coords.xRel == 1 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) { + var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length; + coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff)); + } + return coords + } + + // Find the view element corresponding to a given line. Return null + // when the line isn't visible. + function findViewIndex(cm, n) { + if (n >= cm.display.viewTo) { return null } + n -= cm.display.viewFrom; + if (n < 0) { return null } + var view = cm.display.view; + for (var i = 0; i < view.length; i++) { + n -= view[i].size; + if (n < 0) { return i } + } + } + + // Updates the display.view data structure for a given change to the + // document. From and to are in pre-change coordinates. Lendiff is + // the amount of lines added or subtracted by the change. This is + // used for changes that span multiple lines, or change the way + // lines are divided into visual lines. regLineChange (below) + // registers single-line changes. + function regChange(cm, from, to, lendiff) { + if (from == null) { from = cm.doc.first; } + if (to == null) { to = cm.doc.first + cm.doc.size; } + if (!lendiff) { lendiff = 0; } + + var display = cm.display; + if (lendiff && to < display.viewTo && + (display.updateLineNumbers == null || display.updateLineNumbers > from)) + { display.updateLineNumbers = from; } + + cm.curOp.viewChanged = true; + + if (from >= display.viewTo) { // Change after + if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo) + { resetView(cm); } + } else if (to <= display.viewFrom) { // Change before + if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) { + resetView(cm); + } else { + display.viewFrom += lendiff; + display.viewTo += lendiff; + } + } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap + resetView(cm); + } else if (from <= display.viewFrom) { // Top overlap + var cut = viewCuttingPoint(cm, to, to + lendiff, 1); + if (cut) { + display.view = display.view.slice(cut.index); + display.viewFrom = cut.lineN; + display.viewTo += lendiff; + } else { + resetView(cm); + } + } else if (to >= display.viewTo) { // Bottom overlap + var cut$1 = viewCuttingPoint(cm, from, from, -1); + if (cut$1) { + display.view = display.view.slice(0, cut$1.index); + display.viewTo = cut$1.lineN; + } else { + resetView(cm); + } + } else { // Gap in the middle + var cutTop = viewCuttingPoint(cm, from, from, -1); + var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1); + if (cutTop && cutBot) { + display.view = display.view.slice(0, cutTop.index) + .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN)) + .concat(display.view.slice(cutBot.index)); + display.viewTo += lendiff; + } else { + resetView(cm); + } + } + + var ext = display.externalMeasured; + if (ext) { + if (to < ext.lineN) + { ext.lineN += lendiff; } + else if (from < ext.lineN + ext.size) + { display.externalMeasured = null; } + } + } + + // Register a change to a single line. Type must be one of "text", + // "gutter", "class", "widget" + function regLineChange(cm, line, type) { + cm.curOp.viewChanged = true; + var display = cm.display, ext = cm.display.externalMeasured; + if (ext && line >= ext.lineN && line < ext.lineN + ext.size) + { display.externalMeasured = null; } + + if (line < display.viewFrom || line >= display.viewTo) { return } + var lineView = display.view[findViewIndex(cm, line)]; + if (lineView.node == null) { return } + var arr = lineView.changes || (lineView.changes = []); + if (indexOf(arr, type) == -1) { arr.push(type); } + } + + // Clear the view. + function resetView(cm) { + cm.display.viewFrom = cm.display.viewTo = cm.doc.first; + cm.display.view = []; + cm.display.viewOffset = 0; + } + + function viewCuttingPoint(cm, oldN, newN, dir) { + var index = findViewIndex(cm, oldN), diff, view = cm.display.view; + if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size) + { return {index: index, lineN: newN} } + var n = cm.display.viewFrom; + for (var i = 0; i < index; i++) + { n += view[i].size; } + if (n != oldN) { + if (dir > 0) { + if (index == view.length - 1) { return null } + diff = (n + view[index].size) - oldN; + index++; + } else { + diff = n - oldN; + } + oldN += diff; newN += diff; + } + while (visualLineNo(cm.doc, newN) != newN) { + if (index == (dir < 0 ? 0 : view.length - 1)) { return null } + newN += dir * view[index - (dir < 0 ? 1 : 0)].size; + index += dir; + } + return {index: index, lineN: newN} + } + + // Force the view to cover a given range, adding empty view element + // or clipping off existing ones as needed. + function adjustView(cm, from, to) { + var display = cm.display, view = display.view; + if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) { + display.view = buildViewArray(cm, from, to); + display.viewFrom = from; + } else { + if (display.viewFrom > from) + { display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); } + else if (display.viewFrom < from) + { display.view = display.view.slice(findViewIndex(cm, from)); } + display.viewFrom = from; + if (display.viewTo < to) + { display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); } + else if (display.viewTo > to) + { display.view = display.view.slice(0, findViewIndex(cm, to)); } + } + display.viewTo = to; + } + + // Count the number of lines in the view whose DOM representation is + // out of date (or nonexistent). + function countDirtyView(cm) { + var view = cm.display.view, dirty = 0; + for (var i = 0; i < view.length; i++) { + var lineView = view[i]; + if (!lineView.hidden && (!lineView.node || lineView.changes)) { ++dirty; } + } + return dirty + } + + function updateSelection(cm) { + cm.display.input.showSelection(cm.display.input.prepareSelection()); + } + + function prepareSelection(cm, primary) { + if ( primary === void 0 ) primary = true; + + var doc = cm.doc, result = {}; + var curFragment = result.cursors = document.createDocumentFragment(); + var selFragment = result.selection = document.createDocumentFragment(); + + for (var i = 0; i < doc.sel.ranges.length; i++) { + if (!primary && i == doc.sel.primIndex) { continue } + var range$$1 = doc.sel.ranges[i]; + if (range$$1.from().line >= cm.display.viewTo || range$$1.to().line < cm.display.viewFrom) { continue } + var collapsed = range$$1.empty(); + if (collapsed || cm.options.showCursorWhenSelecting) + { drawSelectionCursor(cm, range$$1.head, curFragment); } + if (!collapsed) + { drawSelectionRange(cm, range$$1, selFragment); } + } + return result + } + + // Draws a cursor for the given range + function drawSelectionCursor(cm, head, output) { + var pos = cursorCoords(cm, head, "div", null, null, !cm.options.singleCursorHeightPerLine); + + var cursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor")); + cursor.style.left = pos.left + "px"; + cursor.style.top = pos.top + "px"; + cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + "px"; + + if (pos.other) { + // Secondary cursor, shown when on a 'jump' in bi-directional text + var otherCursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor CodeMirror-secondarycursor")); + otherCursor.style.display = ""; + otherCursor.style.left = pos.other.left + "px"; + otherCursor.style.top = pos.other.top + "px"; + otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + "px"; + } + } + + function cmpCoords(a, b) { return a.top - b.top || a.left - b.left } + + // Draws the given range as a highlighted selection + function drawSelectionRange(cm, range$$1, output) { + var display = cm.display, doc = cm.doc; + var fragment = document.createDocumentFragment(); + var padding = paddingH(cm.display), leftSide = padding.left; + var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right; + var docLTR = doc.direction == "ltr"; + + function add(left, top, width, bottom) { + if (top < 0) { top = 0; } + top = Math.round(top); + bottom = Math.round(bottom); + fragment.appendChild(elt("div", null, "CodeMirror-selected", ("position: absolute; left: " + left + "px;\n top: " + top + "px; width: " + (width == null ? rightSide - left : width) + "px;\n height: " + (bottom - top) + "px"))); + } + + function drawForLine(line, fromArg, toArg) { + var lineObj = getLine(doc, line); + var lineLen = lineObj.text.length; + var start, end; + function coords(ch, bias) { + return charCoords(cm, Pos(line, ch), "div", lineObj, bias) + } + + function wrapX(pos, dir, side) { + var extent = wrappedLineExtentChar(cm, lineObj, null, pos); + var prop = (dir == "ltr") == (side == "after") ? "left" : "right"; + var ch = side == "after" ? extent.begin : extent.end - (/\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1); + return coords(ch, prop)[prop] + } + + var order = getOrder(lineObj, doc.direction); + iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) { + var ltr = dir == "ltr"; + var fromPos = coords(from, ltr ? "left" : "right"); + var toPos = coords(to - 1, ltr ? "right" : "left"); + + var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen; + var first = i == 0, last = !order || i == order.length - 1; + if (toPos.top - fromPos.top <= 3) { // Single line + var openLeft = (docLTR ? openStart : openEnd) && first; + var openRight = (docLTR ? openEnd : openStart) && last; + var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left; + var right = openRight ? rightSide : (ltr ? toPos : fromPos).right; + add(left, fromPos.top, right - left, fromPos.bottom); + } else { // Multiple lines + var topLeft, topRight, botLeft, botRight; + if (ltr) { + topLeft = docLTR && openStart && first ? leftSide : fromPos.left; + topRight = docLTR ? rightSide : wrapX(from, dir, "before"); + botLeft = docLTR ? leftSide : wrapX(to, dir, "after"); + botRight = docLTR && openEnd && last ? rightSide : toPos.right; + } else { + topLeft = !docLTR ? leftSide : wrapX(from, dir, "before"); + topRight = !docLTR && openStart && first ? rightSide : fromPos.right; + botLeft = !docLTR && openEnd && last ? leftSide : toPos.left; + botRight = !docLTR ? rightSide : wrapX(to, dir, "after"); + } + add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom); + if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); } + add(botLeft, toPos.top, botRight - botLeft, toPos.bottom); + } + + if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; } + if (cmpCoords(toPos, start) < 0) { start = toPos; } + if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; } + if (cmpCoords(toPos, end) < 0) { end = toPos; } + }); + return {start: start, end: end} + } + + var sFrom = range$$1.from(), sTo = range$$1.to(); + if (sFrom.line == sTo.line) { + drawForLine(sFrom.line, sFrom.ch, sTo.ch); + } else { + var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line); + var singleVLine = visualLine(fromLine) == visualLine(toLine); + var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end; + var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start; + if (singleVLine) { + if (leftEnd.top < rightStart.top - 2) { + add(leftEnd.right, leftEnd.top, null, leftEnd.bottom); + add(leftSide, rightStart.top, rightStart.left, rightStart.bottom); + } else { + add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom); + } + } + if (leftEnd.bottom < rightStart.top) + { add(leftSide, leftEnd.bottom, null, rightStart.top); } + } + + output.appendChild(fragment); + } + + // Cursor-blinking + function restartBlink(cm) { + if (!cm.state.focused) { return } + var display = cm.display; + clearInterval(display.blinker); + var on = true; + display.cursorDiv.style.visibility = ""; + if (cm.options.cursorBlinkRate > 0) + { display.blinker = setInterval(function () { return display.cursorDiv.style.visibility = (on = !on) ? "" : "hidden"; }, + cm.options.cursorBlinkRate); } + else if (cm.options.cursorBlinkRate < 0) + { display.cursorDiv.style.visibility = "hidden"; } + } + + function ensureFocus(cm) { + if (!cm.state.focused) { cm.display.input.focus(); onFocus(cm); } + } + + function delayBlurEvent(cm) { + cm.state.delayingBlurEvent = true; + setTimeout(function () { if (cm.state.delayingBlurEvent) { + cm.state.delayingBlurEvent = false; + onBlur(cm); + } }, 100); + } + + function onFocus(cm, e) { + if (cm.state.delayingBlurEvent) { cm.state.delayingBlurEvent = false; } + + if (cm.options.readOnly == "nocursor") { return } + if (!cm.state.focused) { + signal(cm, "focus", cm, e); + cm.state.focused = true; + addClass(cm.display.wrapper, "CodeMirror-focused"); + // This test prevents this from firing when a context + // menu is closed (since the input reset would kill the + // select-all detection hack) + if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) { + cm.display.input.reset(); + if (webkit) { setTimeout(function () { return cm.display.input.reset(true); }, 20); } // Issue #1730 + } + cm.display.input.receivedFocus(); + } + restartBlink(cm); + } + function onBlur(cm, e) { + if (cm.state.delayingBlurEvent) { return } + + if (cm.state.focused) { + signal(cm, "blur", cm, e); + cm.state.focused = false; + rmClass(cm.display.wrapper, "CodeMirror-focused"); + } + clearInterval(cm.display.blinker); + setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150); + } + + // Read the actual heights of the rendered lines, and update their + // stored heights to match. + function updateHeightsInViewport(cm) { + var display = cm.display; + var prevBottom = display.lineDiv.offsetTop; + for (var i = 0; i < display.view.length; i++) { + var cur = display.view[i], wrapping = cm.options.lineWrapping; + var height = (void 0), width = 0; + if (cur.hidden) { continue } + if (ie && ie_version < 8) { + var bot = cur.node.offsetTop + cur.node.offsetHeight; + height = bot - prevBottom; + prevBottom = bot; + } else { + var box = cur.node.getBoundingClientRect(); + height = box.bottom - box.top; + // Check that lines don't extend past the right of the current + // editor width + if (!wrapping && cur.text.firstChild) + { width = cur.text.firstChild.getBoundingClientRect().right - box.left - 1; } + } + var diff = cur.line.height - height; + if (diff > .005 || diff < -.005) { + updateLineHeight(cur.line, height); + updateWidgetHeight(cur.line); + if (cur.rest) { for (var j = 0; j < cur.rest.length; j++) + { updateWidgetHeight(cur.rest[j]); } } + } + if (width > cm.display.sizerWidth) { + var chWidth = Math.ceil(width / charWidth(cm.display)); + if (chWidth > cm.display.maxLineLength) { + cm.display.maxLineLength = chWidth; + cm.display.maxLine = cur.line; + cm.display.maxLineChanged = true; + } + } + } + } + + // Read and store the height of line widgets associated with the + // given line. + function updateWidgetHeight(line) { + if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) { + var w = line.widgets[i], parent = w.node.parentNode; + if (parent) { w.height = parent.offsetHeight; } + } } + } + + // Compute the lines that are visible in a given viewport (defaults + // the the current scroll position). viewport may contain top, + // height, and ensure (see op.scrollToPos) properties. + function visibleLines(display, doc, viewport) { + var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop; + top = Math.floor(top - paddingTop(display)); + var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight; + + var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom); + // Ensure is a {from: {line, ch}, to: {line, ch}} object, and + // forces those lines into the viewport (if possible). + if (viewport && viewport.ensure) { + var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line; + if (ensureFrom < from) { + from = ensureFrom; + to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight); + } else if (Math.min(ensureTo, doc.lastLine()) >= to) { + from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight); + to = ensureTo; + } + } + return {from: from, to: Math.max(to, from + 1)} + } + + // SCROLLING THINGS INTO VIEW + + // If an editor sits on the top or bottom of the window, partially + // scrolled out of view, this ensures that the cursor is visible. + function maybeScrollWindow(cm, rect) { + if (signalDOMEvent(cm, "scrollCursorIntoView")) { return } + + var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null; + if (rect.top + box.top < 0) { doScroll = true; } + else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { doScroll = false; } + if (doScroll != null && !phantom) { + var scrollNode = elt("div", "\u200b", null, ("position: absolute;\n top: " + (rect.top - display.viewOffset - paddingTop(cm.display)) + "px;\n height: " + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + "px;\n left: " + (rect.left) + "px; width: " + (Math.max(2, rect.right - rect.left)) + "px;")); + cm.display.lineSpace.appendChild(scrollNode); + scrollNode.scrollIntoView(doScroll); + cm.display.lineSpace.removeChild(scrollNode); + } + } + + // Scroll a given position into view (immediately), verifying that + // it actually became visible (as line heights are accurately + // measured, the position of something may 'drift' during drawing). + function scrollPosIntoView(cm, pos, end, margin) { + if (margin == null) { margin = 0; } + var rect; + if (!cm.options.lineWrapping && pos == end) { + // Set pos and end to the cursor positions around the character pos sticks to + // If pos.sticky == "before", that is around pos.ch - 1, otherwise around pos.ch + // If pos == Pos(_, 0, "before"), pos and end are unchanged + pos = pos.ch ? Pos(pos.line, pos.sticky == "before" ? pos.ch - 1 : pos.ch, "after") : pos; + end = pos.sticky == "before" ? Pos(pos.line, pos.ch + 1, "before") : pos; + } + for (var limit = 0; limit < 5; limit++) { + var changed = false; + var coords = cursorCoords(cm, pos); + var endCoords = !end || end == pos ? coords : cursorCoords(cm, end); + rect = {left: Math.min(coords.left, endCoords.left), + top: Math.min(coords.top, endCoords.top) - margin, + right: Math.max(coords.left, endCoords.left), + bottom: Math.max(coords.bottom, endCoords.bottom) + margin}; + var scrollPos = calculateScrollPos(cm, rect); + var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft; + if (scrollPos.scrollTop != null) { + updateScrollTop(cm, scrollPos.scrollTop); + if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; } + } + if (scrollPos.scrollLeft != null) { + setScrollLeft(cm, scrollPos.scrollLeft); + if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; } + } + if (!changed) { break } + } + return rect + } + + // Scroll a given set of coordinates into view (immediately). + function scrollIntoView(cm, rect) { + var scrollPos = calculateScrollPos(cm, rect); + if (scrollPos.scrollTop != null) { updateScrollTop(cm, scrollPos.scrollTop); } + if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); } + } + + // Calculate a new scroll position needed to scroll the given + // rectangle into view. Returns an object with scrollTop and + // scrollLeft properties. When these are undefined, the + // vertical/horizontal position does not need to be adjusted. + function calculateScrollPos(cm, rect) { + var display = cm.display, snapMargin = textHeight(cm.display); + if (rect.top < 0) { rect.top = 0; } + var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop; + var screen = displayHeight(cm), result = {}; + if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; } + var docBottom = cm.doc.height + paddingVert(display); + var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin; + if (rect.top < screentop) { + result.scrollTop = atTop ? 0 : rect.top; + } else if (rect.bottom > screentop + screen) { + var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen); + if (newTop != screentop) { result.scrollTop = newTop; } + } + + var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft; + var screenw = displayWidth(cm) - (cm.options.fixedGutter ? display.gutters.offsetWidth : 0); + var tooWide = rect.right - rect.left > screenw; + if (tooWide) { rect.right = rect.left + screenw; } + if (rect.left < 10) + { result.scrollLeft = 0; } + else if (rect.left < screenleft) + { result.scrollLeft = Math.max(0, rect.left - (tooWide ? 0 : 10)); } + else if (rect.right > screenw + screenleft - 3) + { result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; } + return result + } + + // Store a relative adjustment to the scroll position in the current + // operation (to be applied when the operation finishes). + function addToScrollTop(cm, top) { + if (top == null) { return } + resolveScrollToPos(cm); + cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top; + } + + // Make sure that at the end of the operation the current cursor is + // shown. + function ensureCursorVisible(cm) { + resolveScrollToPos(cm); + var cur = cm.getCursor(); + cm.curOp.scrollToPos = {from: cur, to: cur, margin: cm.options.cursorScrollMargin}; + } + + function scrollToCoords(cm, x, y) { + if (x != null || y != null) { resolveScrollToPos(cm); } + if (x != null) { cm.curOp.scrollLeft = x; } + if (y != null) { cm.curOp.scrollTop = y; } + } + + function scrollToRange(cm, range$$1) { + resolveScrollToPos(cm); + cm.curOp.scrollToPos = range$$1; + } + + // When an operation has its scrollToPos property set, and another + // scroll action is applied before the end of the operation, this + // 'simulates' scrolling that position into view in a cheap way, so + // that the effect of intermediate scroll commands is not ignored. + function resolveScrollToPos(cm) { + var range$$1 = cm.curOp.scrollToPos; + if (range$$1) { + cm.curOp.scrollToPos = null; + var from = estimateCoords(cm, range$$1.from), to = estimateCoords(cm, range$$1.to); + scrollToCoordsRange(cm, from, to, range$$1.margin); + } + } + + function scrollToCoordsRange(cm, from, to, margin) { + var sPos = calculateScrollPos(cm, { + left: Math.min(from.left, to.left), + top: Math.min(from.top, to.top) - margin, + right: Math.max(from.right, to.right), + bottom: Math.max(from.bottom, to.bottom) + margin + }); + scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop); + } + + // Sync the scrollable area and scrollbars, ensure the viewport + // covers the visible area. + function updateScrollTop(cm, val) { + if (Math.abs(cm.doc.scrollTop - val) < 2) { return } + if (!gecko) { updateDisplaySimple(cm, {top: val}); } + setScrollTop(cm, val, true); + if (gecko) { updateDisplaySimple(cm); } + startWorker(cm, 100); + } + + function setScrollTop(cm, val, forceScroll) { + val = Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val); + if (cm.display.scroller.scrollTop == val && !forceScroll) { return } + cm.doc.scrollTop = val; + cm.display.scrollbars.setScrollTop(val); + if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; } + } + + // Sync scroller and scrollbar, ensure the gutter elements are + // aligned. + function setScrollLeft(cm, val, isScroller, forceScroll) { + val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth); + if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return } + cm.doc.scrollLeft = val; + alignHorizontally(cm); + if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; } + cm.display.scrollbars.setScrollLeft(val); + } + + // SCROLLBARS + + // Prepare DOM reads needed to update the scrollbars. Done in one + // shot to minimize update/measure roundtrips. + function measureForScrollbars(cm) { + var d = cm.display, gutterW = d.gutters.offsetWidth; + var docH = Math.round(cm.doc.height + paddingVert(cm.display)); + return { + clientHeight: d.scroller.clientHeight, + viewHeight: d.wrapper.clientHeight, + scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth, + viewWidth: d.wrapper.clientWidth, + barLeft: cm.options.fixedGutter ? gutterW : 0, + docHeight: docH, + scrollHeight: docH + scrollGap(cm) + d.barHeight, + nativeBarWidth: d.nativeBarWidth, + gutterWidth: gutterW + } + } + + var NativeScrollbars = function(place, scroll, cm) { + this.cm = cm; + var vert = this.vert = elt("div", [elt("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar"); + var horiz = this.horiz = elt("div", [elt("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar"); + vert.tabIndex = horiz.tabIndex = -1; + place(vert); place(horiz); + + on(vert, "scroll", function () { + if (vert.clientHeight) { scroll(vert.scrollTop, "vertical"); } + }); + on(horiz, "scroll", function () { + if (horiz.clientWidth) { scroll(horiz.scrollLeft, "horizontal"); } + }); + + this.checkedZeroWidth = false; + // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8). + if (ie && ie_version < 8) { this.horiz.style.minHeight = this.vert.style.minWidth = "18px"; } + }; + + NativeScrollbars.prototype.update = function (measure) { + var needsH = measure.scrollWidth > measure.clientWidth + 1; + var needsV = measure.scrollHeight > measure.clientHeight + 1; + var sWidth = measure.nativeBarWidth; + + if (needsV) { + this.vert.style.display = "block"; + this.vert.style.bottom = needsH ? sWidth + "px" : "0"; + var totalHeight = measure.viewHeight - (needsH ? sWidth : 0); + // A bug in IE8 can cause this value to be negative, so guard it. + this.vert.firstChild.style.height = + Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + "px"; + } else { + this.vert.style.display = ""; + this.vert.firstChild.style.height = "0"; + } + + if (needsH) { + this.horiz.style.display = "block"; + this.horiz.style.right = needsV ? sWidth + "px" : "0"; + this.horiz.style.left = measure.barLeft + "px"; + var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0); + this.horiz.firstChild.style.width = + Math.max(0, measure.scrollWidth - measure.clientWidth + totalWidth) + "px"; + } else { + this.horiz.style.display = ""; + this.horiz.firstChild.style.width = "0"; + } + + if (!this.checkedZeroWidth && measure.clientHeight > 0) { + if (sWidth == 0) { this.zeroWidthHack(); } + this.checkedZeroWidth = true; + } + + return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0} + }; + + NativeScrollbars.prototype.setScrollLeft = function (pos) { + if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; } + if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz, "horiz"); } + }; + + NativeScrollbars.prototype.setScrollTop = function (pos) { + if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; } + if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert, "vert"); } + }; + + NativeScrollbars.prototype.zeroWidthHack = function () { + var w = mac && !mac_geMountainLion ? "12px" : "18px"; + this.horiz.style.height = this.vert.style.width = w; + this.horiz.style.pointerEvents = this.vert.style.pointerEvents = "none"; + this.disableHoriz = new Delayed; + this.disableVert = new Delayed; + }; + + NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) { + bar.style.pointerEvents = "auto"; + function maybeDisable() { + // To find out whether the scrollbar is still visible, we + // check whether the element under the pixel in the bottom + // right corner of the scrollbar box is the scrollbar box + // itself (when the bar is still visible) or its filler child + // (when the bar is hidden). If it is still visible, we keep + // it enabled, if it's hidden, we disable pointer events. + var box = bar.getBoundingClientRect(); + var elt$$1 = type == "vert" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2) + : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1); + if (elt$$1 != bar) { bar.style.pointerEvents = "none"; } + else { delay.set(1000, maybeDisable); } + } + delay.set(1000, maybeDisable); + }; + + NativeScrollbars.prototype.clear = function () { + var parent = this.horiz.parentNode; + parent.removeChild(this.horiz); + parent.removeChild(this.vert); + }; + + var NullScrollbars = function () {}; + + NullScrollbars.prototype.update = function () { return {bottom: 0, right: 0} }; + NullScrollbars.prototype.setScrollLeft = function () {}; + NullScrollbars.prototype.setScrollTop = function () {}; + NullScrollbars.prototype.clear = function () {}; + + function updateScrollbars(cm, measure) { + if (!measure) { measure = measureForScrollbars(cm); } + var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight; + updateScrollbarsInner(cm, measure); + for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) { + if (startWidth != cm.display.barWidth && cm.options.lineWrapping) + { updateHeightsInViewport(cm); } + updateScrollbarsInner(cm, measureForScrollbars(cm)); + startWidth = cm.display.barWidth; startHeight = cm.display.barHeight; + } + } + + // Re-synchronize the fake scrollbars with the actual size of the + // content. + function updateScrollbarsInner(cm, measure) { + var d = cm.display; + var sizes = d.scrollbars.update(measure); + + d.sizer.style.paddingRight = (d.barWidth = sizes.right) + "px"; + d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + "px"; + d.heightForcer.style.borderBottom = sizes.bottom + "px solid transparent"; + + if (sizes.right && sizes.bottom) { + d.scrollbarFiller.style.display = "block"; + d.scrollbarFiller.style.height = sizes.bottom + "px"; + d.scrollbarFiller.style.width = sizes.right + "px"; + } else { d.scrollbarFiller.style.display = ""; } + if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) { + d.gutterFiller.style.display = "block"; + d.gutterFiller.style.height = sizes.bottom + "px"; + d.gutterFiller.style.width = measure.gutterWidth + "px"; + } else { d.gutterFiller.style.display = ""; } + } + + var scrollbarModel = {"native": NativeScrollbars, "null": NullScrollbars}; + + function initScrollbars(cm) { + if (cm.display.scrollbars) { + cm.display.scrollbars.clear(); + if (cm.display.scrollbars.addClass) + { rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); } + } + + cm.display.scrollbars = new scrollbarModel[cm.options.scrollbarStyle](function (node) { + cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller); + // Prevent clicks in the scrollbars from killing focus + on(node, "mousedown", function () { + if (cm.state.focused) { setTimeout(function () { return cm.display.input.focus(); }, 0); } + }); + node.setAttribute("cm-not-content", "true"); + }, function (pos, axis) { + if (axis == "horizontal") { setScrollLeft(cm, pos); } + else { updateScrollTop(cm, pos); } + }, cm); + if (cm.display.scrollbars.addClass) + { addClass(cm.display.wrapper, cm.display.scrollbars.addClass); } + } + + // Operations are used to wrap a series of changes to the editor + // state in such a way that each change won't have to update the + // cursor and display (which would be awkward, slow, and + // error-prone). Instead, display updates are batched and then all + // combined and executed at once. + + var nextOpId = 0; + // Start a new operation. + function startOperation(cm) { + cm.curOp = { + cm: cm, + viewChanged: false, // Flag that indicates that lines might need to be redrawn + startHeight: cm.doc.height, // Used to detect need to update scrollbar + forceUpdate: false, // Used to force a redraw + updateInput: 0, // Whether to reset the input textarea + typing: false, // Whether this reset should be careful to leave existing text (for compositing) + changeObjs: null, // Accumulated changes, for firing change events + cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on + cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already + selectionChanged: false, // Whether the selection needs to be redrawn + updateMaxLine: false, // Set when the widest line needs to be determined anew + scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet + scrollToPos: null, // Used to scroll to a specific position + focus: false, + id: ++nextOpId // Unique ID + }; + pushOperation(cm.curOp); + } + + // Finish an operation, updating the display and signalling delayed events + function endOperation(cm) { + var op = cm.curOp; + if (op) { finishOperation(op, function (group) { + for (var i = 0; i < group.ops.length; i++) + { group.ops[i].cm.curOp = null; } + endOperations(group); + }); } + } + + // The DOM updates done when an operation finishes are batched so + // that the minimum number of relayouts are required. + function endOperations(group) { + var ops = group.ops; + for (var i = 0; i < ops.length; i++) // Read DOM + { endOperation_R1(ops[i]); } + for (var i$1 = 0; i$1 < ops.length; i$1++) // Write DOM (maybe) + { endOperation_W1(ops[i$1]); } + for (var i$2 = 0; i$2 < ops.length; i$2++) // Read DOM + { endOperation_R2(ops[i$2]); } + for (var i$3 = 0; i$3 < ops.length; i$3++) // Write DOM (maybe) + { endOperation_W2(ops[i$3]); } + for (var i$4 = 0; i$4 < ops.length; i$4++) // Read DOM + { endOperation_finish(ops[i$4]); } + } + + function endOperation_R1(op) { + var cm = op.cm, display = cm.display; + maybeClipScrollbars(cm); + if (op.updateMaxLine) { findMaxLine(cm); } + + op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null || + op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom || + op.scrollToPos.to.line >= display.viewTo) || + display.maxLineChanged && cm.options.lineWrapping; + op.update = op.mustUpdate && + new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate); + } + + function endOperation_W1(op) { + op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update); + } + + function endOperation_R2(op) { + var cm = op.cm, display = cm.display; + if (op.updatedDisplay) { updateHeightsInViewport(cm); } + + op.barMeasure = measureForScrollbars(cm); + + // If the max line changed since it was last measured, measure it, + // and ensure the document's width matches it. + // updateDisplay_W2 will use these properties to do the actual resizing + if (display.maxLineChanged && !cm.options.lineWrapping) { + op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3; + cm.display.sizerWidth = op.adjustWidthTo; + op.barMeasure.scrollWidth = + Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth); + op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm)); + } + + if (op.updatedDisplay || op.selectionChanged) + { op.preparedSelection = display.input.prepareSelection(); } + } + + function endOperation_W2(op) { + var cm = op.cm; + + if (op.adjustWidthTo != null) { + cm.display.sizer.style.minWidth = op.adjustWidthTo + "px"; + if (op.maxScrollLeft < cm.doc.scrollLeft) + { setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); } + cm.display.maxLineChanged = false; + } + + var takeFocus = op.focus && op.focus == activeElt(); + if (op.preparedSelection) + { cm.display.input.showSelection(op.preparedSelection, takeFocus); } + if (op.updatedDisplay || op.startHeight != cm.doc.height) + { updateScrollbars(cm, op.barMeasure); } + if (op.updatedDisplay) + { setDocumentHeight(cm, op.barMeasure); } + + if (op.selectionChanged) { restartBlink(cm); } + + if (cm.state.focused && op.updateInput) + { cm.display.input.reset(op.typing); } + if (takeFocus) { ensureFocus(op.cm); } + } + + function endOperation_finish(op) { + var cm = op.cm, display = cm.display, doc = cm.doc; + + if (op.updatedDisplay) { postUpdateDisplay(cm, op.update); } + + // Abort mouse wheel delta measurement, when scrolling explicitly + if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos)) + { display.wheelStartX = display.wheelStartY = null; } + + // Propagate the scroll position to the actual DOM scroller + if (op.scrollTop != null) { setScrollTop(cm, op.scrollTop, op.forceScroll); } + + if (op.scrollLeft != null) { setScrollLeft(cm, op.scrollLeft, true, true); } + // If we need to scroll a specific position into view, do so. + if (op.scrollToPos) { + var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from), + clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin); + maybeScrollWindow(cm, rect); + } + + // Fire events for markers that are hidden/unidden by editing or + // undoing + var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers; + if (hidden) { for (var i = 0; i < hidden.length; ++i) + { if (!hidden[i].lines.length) { signal(hidden[i], "hide"); } } } + if (unhidden) { for (var i$1 = 0; i$1 < unhidden.length; ++i$1) + { if (unhidden[i$1].lines.length) { signal(unhidden[i$1], "unhide"); } } } + + if (display.wrapper.offsetHeight) + { doc.scrollTop = cm.display.scroller.scrollTop; } + + // Fire change events, and delayed event handlers + if (op.changeObjs) + { signal(cm, "changes", cm, op.changeObjs); } + if (op.update) + { op.update.finish(); } + } + + // Run the given function in an operation + function runInOp(cm, f) { + if (cm.curOp) { return f() } + startOperation(cm); + try { return f() } + finally { endOperation(cm); } + } + // Wraps a function in an operation. Returns the wrapped function. + function operation(cm, f) { + return function() { + if (cm.curOp) { return f.apply(cm, arguments) } + startOperation(cm); + try { return f.apply(cm, arguments) } + finally { endOperation(cm); } + } + } + // Used to add methods to editor and doc instances, wrapping them in + // operations. + function methodOp(f) { + return function() { + if (this.curOp) { return f.apply(this, arguments) } + startOperation(this); + try { return f.apply(this, arguments) } + finally { endOperation(this); } + } + } + function docMethodOp(f) { + return function() { + var cm = this.cm; + if (!cm || cm.curOp) { return f.apply(this, arguments) } + startOperation(cm); + try { return f.apply(this, arguments) } + finally { endOperation(cm); } + } + } + + // HIGHLIGHT WORKER + + function startWorker(cm, time) { + if (cm.doc.highlightFrontier < cm.display.viewTo) + { cm.state.highlight.set(time, bind(highlightWorker, cm)); } + } + + function highlightWorker(cm) { + var doc = cm.doc; + if (doc.highlightFrontier >= cm.display.viewTo) { return } + var end = +new Date + cm.options.workTime; + var context = getContextBefore(cm, doc.highlightFrontier); + var changedLines = []; + + doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) { + if (context.line >= cm.display.viewFrom) { // Visible + var oldStyles = line.styles; + var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null; + var highlighted = highlightLine(cm, line, context, true); + if (resetState) { context.state = resetState; } + line.styles = highlighted.styles; + var oldCls = line.styleClasses, newCls = highlighted.classes; + if (newCls) { line.styleClasses = newCls; } + else if (oldCls) { line.styleClasses = null; } + var ischange = !oldStyles || oldStyles.length != line.styles.length || + oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass); + for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; } + if (ischange) { changedLines.push(context.line); } + line.stateAfter = context.save(); + context.nextLine(); + } else { + if (line.text.length <= cm.options.maxHighlightLength) + { processLine(cm, line.text, context); } + line.stateAfter = context.line % 5 == 0 ? context.save() : null; + context.nextLine(); + } + if (+new Date > end) { + startWorker(cm, cm.options.workDelay); + return true + } + }); + doc.highlightFrontier = context.line; + doc.modeFrontier = Math.max(doc.modeFrontier, context.line); + if (changedLines.length) { runInOp(cm, function () { + for (var i = 0; i < changedLines.length; i++) + { regLineChange(cm, changedLines[i], "text"); } + }); } + } + + // DISPLAY DRAWING + + var DisplayUpdate = function(cm, viewport, force) { + var display = cm.display; + + this.viewport = viewport; + // Store some values that we'll need later (but don't want to force a relayout for) + this.visible = visibleLines(display, cm.doc, viewport); + this.editorIsHidden = !display.wrapper.offsetWidth; + this.wrapperHeight = display.wrapper.clientHeight; + this.wrapperWidth = display.wrapper.clientWidth; + this.oldDisplayWidth = displayWidth(cm); + this.force = force; + this.dims = getDimensions(cm); + this.events = []; + }; + + DisplayUpdate.prototype.signal = function (emitter, type) { + if (hasHandler(emitter, type)) + { this.events.push(arguments); } + }; + DisplayUpdate.prototype.finish = function () { + var this$1 = this; + + for (var i = 0; i < this.events.length; i++) + { signal.apply(null, this$1.events[i]); } + }; + + function maybeClipScrollbars(cm) { + var display = cm.display; + if (!display.scrollbarsClipped && display.scroller.offsetWidth) { + display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth; + display.heightForcer.style.height = scrollGap(cm) + "px"; + display.sizer.style.marginBottom = -display.nativeBarWidth + "px"; + display.sizer.style.borderRightWidth = scrollGap(cm) + "px"; + display.scrollbarsClipped = true; + } + } + + function selectionSnapshot(cm) { + if (cm.hasFocus()) { return null } + var active = activeElt(); + if (!active || !contains(cm.display.lineDiv, active)) { return null } + var result = {activeElt: active}; + if (window.getSelection) { + var sel = window.getSelection(); + if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) { + result.anchorNode = sel.anchorNode; + result.anchorOffset = sel.anchorOffset; + result.focusNode = sel.focusNode; + result.focusOffset = sel.focusOffset; + } + } + return result + } + + function restoreSelection(snapshot) { + if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt()) { return } + snapshot.activeElt.focus(); + if (snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) { + var sel = window.getSelection(), range$$1 = document.createRange(); + range$$1.setEnd(snapshot.anchorNode, snapshot.anchorOffset); + range$$1.collapse(false); + sel.removeAllRanges(); + sel.addRange(range$$1); + sel.extend(snapshot.focusNode, snapshot.focusOffset); + } + } + + // Does the actual updating of the line display. Bails out + // (returning false) when there is nothing to be done and forced is + // false. + function updateDisplayIfNeeded(cm, update) { + var display = cm.display, doc = cm.doc; + + if (update.editorIsHidden) { + resetView(cm); + return false + } + + // Bail out if the visible area is already rendered and nothing changed. + if (!update.force && + update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo && + (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) && + display.renderedView == display.view && countDirtyView(cm) == 0) + { return false } + + if (maybeUpdateLineNumberWidth(cm)) { + resetView(cm); + update.dims = getDimensions(cm); + } + + // Compute a suitable new viewport (from & to) + var end = doc.first + doc.size; + var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first); + var to = Math.min(end, update.visible.to + cm.options.viewportMargin); + if (display.viewFrom < from && from - display.viewFrom < 20) { from = Math.max(doc.first, display.viewFrom); } + if (display.viewTo > to && display.viewTo - to < 20) { to = Math.min(end, display.viewTo); } + if (sawCollapsedSpans) { + from = visualLineNo(cm.doc, from); + to = visualLineEndNo(cm.doc, to); + } + + var different = from != display.viewFrom || to != display.viewTo || + display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth; + adjustView(cm, from, to); + + display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom)); + // Position the mover div to align with the current scroll position + cm.display.mover.style.top = display.viewOffset + "px"; + + var toUpdate = countDirtyView(cm); + if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view && + (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo)) + { return false } + + // For big changes, we hide the enclosing element during the + // update, since that speeds up the operations on most browsers. + var selSnapshot = selectionSnapshot(cm); + if (toUpdate > 4) { display.lineDiv.style.display = "none"; } + patchDisplay(cm, display.updateLineNumbers, update.dims); + if (toUpdate > 4) { display.lineDiv.style.display = ""; } + display.renderedView = display.view; + // There might have been a widget with a focused element that got + // hidden or updated, if so re-focus it. + restoreSelection(selSnapshot); + + // Prevent selection and cursors from interfering with the scroll + // width and height. + removeChildren(display.cursorDiv); + removeChildren(display.selectionDiv); + display.gutters.style.height = display.sizer.style.minHeight = 0; + + if (different) { + display.lastWrapHeight = update.wrapperHeight; + display.lastWrapWidth = update.wrapperWidth; + startWorker(cm, 400); + } + + display.updateLineNumbers = null; + + return true + } + + function postUpdateDisplay(cm, update) { + var viewport = update.viewport; + + for (var first = true;; first = false) { + if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) { + // Clip forced viewport to actual scrollable area. + if (viewport && viewport.top != null) + { viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)}; } + // Updated line heights might result in the drawn area not + // actually covering the viewport. Keep looping until it does. + update.visible = visibleLines(cm.display, cm.doc, viewport); + if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo) + { break } + } + if (!updateDisplayIfNeeded(cm, update)) { break } + updateHeightsInViewport(cm); + var barMeasure = measureForScrollbars(cm); + updateSelection(cm); + updateScrollbars(cm, barMeasure); + setDocumentHeight(cm, barMeasure); + update.force = false; + } + + update.signal(cm, "update", cm); + if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) { + update.signal(cm, "viewportChange", cm, cm.display.viewFrom, cm.display.viewTo); + cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo; + } + } + + function updateDisplaySimple(cm, viewport) { + var update = new DisplayUpdate(cm, viewport); + if (updateDisplayIfNeeded(cm, update)) { + updateHeightsInViewport(cm); + postUpdateDisplay(cm, update); + var barMeasure = measureForScrollbars(cm); + updateSelection(cm); + updateScrollbars(cm, barMeasure); + setDocumentHeight(cm, barMeasure); + update.finish(); + } + } + + // Sync the actual display DOM structure with display.view, removing + // nodes for lines that are no longer in view, and creating the ones + // that are not there yet, and updating the ones that are out of + // date. + function patchDisplay(cm, updateNumbersFrom, dims) { + var display = cm.display, lineNumbers = cm.options.lineNumbers; + var container = display.lineDiv, cur = container.firstChild; + + function rm(node) { + var next = node.nextSibling; + // Works around a throw-scroll bug in OS X Webkit + if (webkit && mac && cm.display.currentWheelTarget == node) + { node.style.display = "none"; } + else + { node.parentNode.removeChild(node); } + return next + } + + var view = display.view, lineN = display.viewFrom; + // Loop over the elements in the view, syncing cur (the DOM nodes + // in display.lineDiv) with the view as we go. + for (var i = 0; i < view.length; i++) { + var lineView = view[i]; + if (lineView.hidden) ; else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet + var node = buildLineElement(cm, lineView, lineN, dims); + container.insertBefore(node, cur); + } else { // Already drawn + while (cur != lineView.node) { cur = rm(cur); } + var updateNumber = lineNumbers && updateNumbersFrom != null && + updateNumbersFrom <= lineN && lineView.lineNumber; + if (lineView.changes) { + if (indexOf(lineView.changes, "gutter") > -1) { updateNumber = false; } + updateLineForChanges(cm, lineView, lineN, dims); + } + if (updateNumber) { + removeChildren(lineView.lineNumber); + lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN))); + } + cur = lineView.node.nextSibling; + } + lineN += lineView.size; + } + while (cur) { cur = rm(cur); } + } + + function updateGutterSpace(display) { + var width = display.gutters.offsetWidth; + display.sizer.style.marginLeft = width + "px"; + } + + function setDocumentHeight(cm, measure) { + cm.display.sizer.style.minHeight = measure.docHeight + "px"; + cm.display.heightForcer.style.top = measure.docHeight + "px"; + cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + "px"; + } + + // Re-align line numbers and gutter marks to compensate for + // horizontal scrolling. + function alignHorizontally(cm) { + var display = cm.display, view = display.view; + if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return } + var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft; + var gutterW = display.gutters.offsetWidth, left = comp + "px"; + for (var i = 0; i < view.length; i++) { if (!view[i].hidden) { + if (cm.options.fixedGutter) { + if (view[i].gutter) + { view[i].gutter.style.left = left; } + if (view[i].gutterBackground) + { view[i].gutterBackground.style.left = left; } + } + var align = view[i].alignable; + if (align) { for (var j = 0; j < align.length; j++) + { align[j].style.left = left; } } + } } + if (cm.options.fixedGutter) + { display.gutters.style.left = (comp + gutterW) + "px"; } + } + + // Used to ensure that the line number gutter is still the right + // size for the current document size. Returns true when an update + // is needed. + function maybeUpdateLineNumberWidth(cm) { + if (!cm.options.lineNumbers) { return false } + var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display; + if (last.length != display.lineNumChars) { + var test = display.measure.appendChild(elt("div", [elt("div", last)], + "CodeMirror-linenumber CodeMirror-gutter-elt")); + var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW; + display.lineGutter.style.width = ""; + display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1; + display.lineNumWidth = display.lineNumInnerWidth + padding; + display.lineNumChars = display.lineNumInnerWidth ? last.length : -1; + display.lineGutter.style.width = display.lineNumWidth + "px"; + updateGutterSpace(cm.display); + return true + } + return false + } + + function getGutters(gutters, lineNumbers) { + var result = [], sawLineNumbers = false; + for (var i = 0; i < gutters.length; i++) { + var name = gutters[i], style = null; + if (typeof name != "string") { style = name.style; name = name.className; } + if (name == "CodeMirror-linenumbers") { + if (!lineNumbers) { continue } + else { sawLineNumbers = true; } + } + result.push({className: name, style: style}); + } + if (lineNumbers && !sawLineNumbers) { result.push({className: "CodeMirror-linenumbers", style: null}); } + return result + } + + // Rebuild the gutter elements, ensure the margin to the left of the + // code matches their width. + function renderGutters(display) { + var gutters = display.gutters, specs = display.gutterSpecs; + removeChildren(gutters); + display.lineGutter = null; + for (var i = 0; i < specs.length; ++i) { + var ref = specs[i]; + var className = ref.className; + var style = ref.style; + var gElt = gutters.appendChild(elt("div", null, "CodeMirror-gutter " + className)); + if (style) { gElt.style.cssText = style; } + if (className == "CodeMirror-linenumbers") { + display.lineGutter = gElt; + gElt.style.width = (display.lineNumWidth || 1) + "px"; + } + } + gutters.style.display = specs.length ? "" : "none"; + updateGutterSpace(display); + } + + function updateGutters(cm) { + renderGutters(cm.display); + regChange(cm); + alignHorizontally(cm); + } + + // The display handles the DOM integration, both for input reading + // and content drawing. It holds references to DOM nodes and + // display-related state. + + function Display(place, doc, input, options) { + var d = this; + this.input = input; + + // Covers bottom-right square when both scrollbars are present. + d.scrollbarFiller = elt("div", null, "CodeMirror-scrollbar-filler"); + d.scrollbarFiller.setAttribute("cm-not-content", "true"); + // Covers bottom of gutter when coverGutterNextToScrollbar is on + // and h scrollbar is present. + d.gutterFiller = elt("div", null, "CodeMirror-gutter-filler"); + d.gutterFiller.setAttribute("cm-not-content", "true"); + // Will contain the actual code, positioned to cover the viewport. + d.lineDiv = eltP("div", null, "CodeMirror-code"); + // Elements are added to these to represent selection and cursors. + d.selectionDiv = elt("div", null, null, "position: relative; z-index: 1"); + d.cursorDiv = elt("div", null, "CodeMirror-cursors"); + // A visibility: hidden element used to find the size of things. + d.measure = elt("div", null, "CodeMirror-measure"); + // When lines outside of the viewport are measured, they are drawn in this. + d.lineMeasure = elt("div", null, "CodeMirror-measure"); + // Wraps everything that needs to exist inside the vertically-padded coordinate system + d.lineSpace = eltP("div", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv], + null, "position: relative; outline: none"); + var lines = eltP("div", [d.lineSpace], "CodeMirror-lines"); + // Moved around its parent to cover visible view. + d.mover = elt("div", [lines], null, "position: relative"); + // Set to the height of the document, allowing scrolling. + d.sizer = elt("div", [d.mover], "CodeMirror-sizer"); + d.sizerWidth = null; + // Behavior of elts with overflow: auto and padding is + // inconsistent across browsers. This is used to ensure the + // scrollable area is big enough. + d.heightForcer = elt("div", null, null, "position: absolute; height: " + scrollerGap + "px; width: 1px;"); + // Will contain the gutters, if any. + d.gutters = elt("div", null, "CodeMirror-gutters"); + d.lineGutter = null; + // Actual scrollable element. + d.scroller = elt("div", [d.sizer, d.heightForcer, d.gutters], "CodeMirror-scroll"); + d.scroller.setAttribute("tabIndex", "-1"); + // The element in which the editor lives. + d.wrapper = elt("div", [d.scrollbarFiller, d.gutterFiller, d.scroller], "CodeMirror"); + + // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported) + if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; } + if (!webkit && !(gecko && mobile)) { d.scroller.draggable = true; } + + if (place) { + if (place.appendChild) { place.appendChild(d.wrapper); } + else { place(d.wrapper); } + } + + // Current rendered range (may be bigger than the view window). + d.viewFrom = d.viewTo = doc.first; + d.reportedViewFrom = d.reportedViewTo = doc.first; + // Information about the rendered lines. + d.view = []; + d.renderedView = null; + // Holds info about a single rendered line when it was rendered + // for measurement, while not in view. + d.externalMeasured = null; + // Empty space (in pixels) above the view + d.viewOffset = 0; + d.lastWrapHeight = d.lastWrapWidth = 0; + d.updateLineNumbers = null; + + d.nativeBarWidth = d.barHeight = d.barWidth = 0; + d.scrollbarsClipped = false; + + // Used to only resize the line number gutter when necessary (when + // the amount of lines crosses a boundary that makes its width change) + d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null; + // Set to true when a non-horizontal-scrolling line widget is + // added. As an optimization, line widget aligning is skipped when + // this is false. + d.alignWidgets = false; + + d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null; + + // Tracks the maximum line length so that the horizontal scrollbar + // can be kept static when scrolling. + d.maxLine = null; + d.maxLineLength = 0; + d.maxLineChanged = false; + + // Used for measuring wheel scrolling granularity + d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null; + + // True when shift is held down. + d.shift = false; + + // Used to track whether anything happened since the context menu + // was opened. + d.selForContextMenu = null; + + d.activeTouch = null; + + d.gutterSpecs = getGutters(options.gutters, options.lineNumbers); + renderGutters(d); + + input.init(d); + } + + // Since the delta values reported on mouse wheel events are + // unstandardized between browsers and even browser versions, and + // generally horribly unpredictable, this code starts by measuring + // the scroll effect that the first few mouse wheel events have, + // and, from that, detects the way it can convert deltas to pixel + // offsets afterwards. + // + // The reason we want to know the amount a wheel event will scroll + // is that it gives us a chance to update the display before the + // actual scrolling happens, reducing flickering. + + var wheelSamples = 0, wheelPixelsPerUnit = null; + // Fill in a browser-detected starting value on browsers where we + // know one. These don't have to be accurate -- the result of them + // being wrong would just be a slight flicker on the first wheel + // scroll (if it is large enough). + if (ie) { wheelPixelsPerUnit = -.53; } + else if (gecko) { wheelPixelsPerUnit = 15; } + else if (chrome) { wheelPixelsPerUnit = -.7; } + else if (safari) { wheelPixelsPerUnit = -1/3; } + + function wheelEventDelta(e) { + var dx = e.wheelDeltaX, dy = e.wheelDeltaY; + if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; } + if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; } + else if (dy == null) { dy = e.wheelDelta; } + return {x: dx, y: dy} + } + function wheelEventPixels(e) { + var delta = wheelEventDelta(e); + delta.x *= wheelPixelsPerUnit; + delta.y *= wheelPixelsPerUnit; + return delta + } + + function onScrollWheel(cm, e) { + var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y; + + var display = cm.display, scroll = display.scroller; + // Quit if there's nothing to scroll here + var canScrollX = scroll.scrollWidth > scroll.clientWidth; + var canScrollY = scroll.scrollHeight > scroll.clientHeight; + if (!(dx && canScrollX || dy && canScrollY)) { return } + + // Webkit browsers on OS X abort momentum scrolls when the target + // of the scroll event is removed from the scrollable element. + // This hack (see related code in patchDisplay) makes sure the + // element is kept around. + if (dy && mac && webkit) { + outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) { + for (var i = 0; i < view.length; i++) { + if (view[i].node == cur) { + cm.display.currentWheelTarget = cur; + break outer + } + } + } + } + + // On some browsers, horizontal scrolling will cause redraws to + // happen before the gutter has been realigned, causing it to + // wriggle around in a most unseemly way. When we have an + // estimated pixels/delta value, we just handle horizontal + // scrolling entirely here. It'll be slightly off from native, but + // better than glitching out. + if (dx && !gecko && !presto && wheelPixelsPerUnit != null) { + if (dy && canScrollY) + { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * wheelPixelsPerUnit)); } + setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * wheelPixelsPerUnit)); + // Only prevent default scrolling if vertical scrolling is + // actually possible. Otherwise, it causes vertical scroll + // jitter on OSX trackpads when deltaX is small and deltaY + // is large (issue #3579) + if (!dy || (dy && canScrollY)) + { e_preventDefault(e); } + display.wheelStartX = null; // Abort measurement, if in progress + return + } + + // 'Project' the visible viewport to cover the area that is being + // scrolled into view (if we know enough to estimate it). + if (dy && wheelPixelsPerUnit != null) { + var pixels = dy * wheelPixelsPerUnit; + var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight; + if (pixels < 0) { top = Math.max(0, top + pixels - 50); } + else { bot = Math.min(cm.doc.height, bot + pixels + 50); } + updateDisplaySimple(cm, {top: top, bottom: bot}); + } + + if (wheelSamples < 20) { + if (display.wheelStartX == null) { + display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop; + display.wheelDX = dx; display.wheelDY = dy; + setTimeout(function () { + if (display.wheelStartX == null) { return } + var movedX = scroll.scrollLeft - display.wheelStartX; + var movedY = scroll.scrollTop - display.wheelStartY; + var sample = (movedY && display.wheelDY && movedY / display.wheelDY) || + (movedX && display.wheelDX && movedX / display.wheelDX); + display.wheelStartX = display.wheelStartY = null; + if (!sample) { return } + wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1); + ++wheelSamples; + }, 200); + } else { + display.wheelDX += dx; display.wheelDY += dy; + } + } + } + + // Selection objects are immutable. A new one is created every time + // the selection changes. A selection is one or more non-overlapping + // (and non-touching) ranges, sorted, and an integer that indicates + // which one is the primary selection (the one that's scrolled into + // view, that getCursor returns, etc). + var Selection = function(ranges, primIndex) { + this.ranges = ranges; + this.primIndex = primIndex; + }; + + Selection.prototype.primary = function () { return this.ranges[this.primIndex] }; + + Selection.prototype.equals = function (other) { + var this$1 = this; + + if (other == this) { return true } + if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) { return false } + for (var i = 0; i < this.ranges.length; i++) { + var here = this$1.ranges[i], there = other.ranges[i]; + if (!equalCursorPos(here.anchor, there.anchor) || !equalCursorPos(here.head, there.head)) { return false } + } + return true + }; + + Selection.prototype.deepCopy = function () { + var this$1 = this; + + var out = []; + for (var i = 0; i < this.ranges.length; i++) + { out[i] = new Range(copyPos(this$1.ranges[i].anchor), copyPos(this$1.ranges[i].head)); } + return new Selection(out, this.primIndex) + }; + + Selection.prototype.somethingSelected = function () { + var this$1 = this; + + for (var i = 0; i < this.ranges.length; i++) + { if (!this$1.ranges[i].empty()) { return true } } + return false + }; + + Selection.prototype.contains = function (pos, end) { + var this$1 = this; + + if (!end) { end = pos; } + for (var i = 0; i < this.ranges.length; i++) { + var range = this$1.ranges[i]; + if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0) + { return i } + } + return -1 + }; + + var Range = function(anchor, head) { + this.anchor = anchor; this.head = head; + }; + + Range.prototype.from = function () { return minPos(this.anchor, this.head) }; + Range.prototype.to = function () { return maxPos(this.anchor, this.head) }; + Range.prototype.empty = function () { return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch }; + + // Take an unsorted, potentially overlapping set of ranges, and + // build a selection out of it. 'Consumes' ranges array (modifying + // it). + function normalizeSelection(cm, ranges, primIndex) { + var mayTouch = cm && cm.options.selectionsMayTouch; + var prim = ranges[primIndex]; + ranges.sort(function (a, b) { return cmp(a.from(), b.from()); }); + primIndex = indexOf(ranges, prim); + for (var i = 1; i < ranges.length; i++) { + var cur = ranges[i], prev = ranges[i - 1]; + var diff = cmp(prev.to(), cur.from()); + if (mayTouch && !cur.empty() ? diff > 0 : diff >= 0) { + var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to()); + var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head; + if (i <= primIndex) { --primIndex; } + ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to)); + } + } + return new Selection(ranges, primIndex) + } + + function simpleSelection(anchor, head) { + return new Selection([new Range(anchor, head || anchor)], 0) + } + + // Compute the position of the end of a change (its 'to' property + // refers to the pre-change end). + function changeEnd(change) { + if (!change.text) { return change.to } + return Pos(change.from.line + change.text.length - 1, + lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0)) + } + + // Adjust a position to refer to the post-change position of the + // same text, or the end of the change if the change covers it. + function adjustForChange(pos, change) { + if (cmp(pos, change.from) < 0) { return pos } + if (cmp(pos, change.to) <= 0) { return changeEnd(change) } + + var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch; + if (pos.line == change.to.line) { ch += changeEnd(change).ch - change.to.ch; } + return Pos(line, ch) + } + + function computeSelAfterChange(doc, change) { + var out = []; + for (var i = 0; i < doc.sel.ranges.length; i++) { + var range = doc.sel.ranges[i]; + out.push(new Range(adjustForChange(range.anchor, change), + adjustForChange(range.head, change))); + } + return normalizeSelection(doc.cm, out, doc.sel.primIndex) + } + + function offsetPos(pos, old, nw) { + if (pos.line == old.line) + { return Pos(nw.line, pos.ch - old.ch + nw.ch) } + else + { return Pos(nw.line + (pos.line - old.line), pos.ch) } + } + + // Used by replaceSelections to allow moving the selection to the + // start or around the replaced test. Hint may be "start" or "around". + function computeReplacedSel(doc, changes, hint) { + var out = []; + var oldPrev = Pos(doc.first, 0), newPrev = oldPrev; + for (var i = 0; i < changes.length; i++) { + var change = changes[i]; + var from = offsetPos(change.from, oldPrev, newPrev); + var to = offsetPos(changeEnd(change), oldPrev, newPrev); + oldPrev = change.to; + newPrev = to; + if (hint == "around") { + var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0; + out[i] = new Range(inv ? to : from, inv ? from : to); + } else { + out[i] = new Range(from, from); + } + } + return new Selection(out, doc.sel.primIndex) + } + + // Used to get the editor into a consistent state again when options change. + + function loadMode(cm) { + cm.doc.mode = getMode(cm.options, cm.doc.modeOption); + resetModeState(cm); + } + + function resetModeState(cm) { + cm.doc.iter(function (line) { + if (line.stateAfter) { line.stateAfter = null; } + if (line.styles) { line.styles = null; } + }); + cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first; + startWorker(cm, 100); + cm.state.modeGen++; + if (cm.curOp) { regChange(cm); } + } + + // DOCUMENT DATA STRUCTURE + + // By default, updates that start and end at the beginning of a line + // are treated specially, in order to make the association of line + // widgets and marker elements with the text behave more intuitive. + function isWholeLineUpdate(doc, change) { + return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == "" && + (!doc.cm || doc.cm.options.wholeLineUpdateBefore) + } + + // Perform a change on the document data structure. + function updateDoc(doc, change, markedSpans, estimateHeight$$1) { + function spansFor(n) {return markedSpans ? markedSpans[n] : null} + function update(line, text, spans) { + updateLine(line, text, spans, estimateHeight$$1); + signalLater(line, "change", line, change); + } + function linesFor(start, end) { + var result = []; + for (var i = start; i < end; ++i) + { result.push(new Line(text[i], spansFor(i), estimateHeight$$1)); } + return result + } + + var from = change.from, to = change.to, text = change.text; + var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line); + var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line; + + // Adjust the line structure + if (change.full) { + doc.insert(0, linesFor(0, text.length)); + doc.remove(text.length, doc.size - text.length); + } else if (isWholeLineUpdate(doc, change)) { + // This is a whole-line replace. Treated specially to make + // sure line objects move the way they are supposed to. + var added = linesFor(0, text.length - 1); + update(lastLine, lastLine.text, lastSpans); + if (nlines) { doc.remove(from.line, nlines); } + if (added.length) { doc.insert(from.line, added); } + } else if (firstLine == lastLine) { + if (text.length == 1) { + update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans); + } else { + var added$1 = linesFor(1, text.length - 1); + added$1.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight$$1)); + update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); + doc.insert(from.line + 1, added$1); + } + } else if (text.length == 1) { + update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0)); + doc.remove(from.line + 1, nlines); + } else { + update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); + update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans); + var added$2 = linesFor(1, text.length - 1); + if (nlines > 1) { doc.remove(from.line + 1, nlines - 1); } + doc.insert(from.line + 1, added$2); + } + + signalLater(doc, "change", doc, change); + } + + // Call f for all linked documents. + function linkedDocs(doc, f, sharedHistOnly) { + function propagate(doc, skip, sharedHist) { + if (doc.linked) { for (var i = 0; i < doc.linked.length; ++i) { + var rel = doc.linked[i]; + if (rel.doc == skip) { continue } + var shared = sharedHist && rel.sharedHist; + if (sharedHistOnly && !shared) { continue } + f(rel.doc, shared); + propagate(rel.doc, doc, shared); + } } + } + propagate(doc, null, true); + } + + // Attach a document to an editor. + function attachDoc(cm, doc) { + if (doc.cm) { throw new Error("This document is already in use.") } + cm.doc = doc; + doc.cm = cm; + estimateLineHeights(cm); + loadMode(cm); + setDirectionClass(cm); + if (!cm.options.lineWrapping) { findMaxLine(cm); } + cm.options.mode = doc.modeOption; + regChange(cm); + } + + function setDirectionClass(cm) { + (cm.doc.direction == "rtl" ? addClass : rmClass)(cm.display.lineDiv, "CodeMirror-rtl"); + } + + function directionChanged(cm) { + runInOp(cm, function () { + setDirectionClass(cm); + regChange(cm); + }); + } + + function History(startGen) { + // Arrays of change events and selections. Doing something adds an + // event to done and clears undo. Undoing moves events from done + // to undone, redoing moves them in the other direction. + this.done = []; this.undone = []; + this.undoDepth = Infinity; + // Used to track when changes can be merged into a single undo + // event + this.lastModTime = this.lastSelTime = 0; + this.lastOp = this.lastSelOp = null; + this.lastOrigin = this.lastSelOrigin = null; + // Used by the isClean() method + this.generation = this.maxGeneration = startGen || 1; + } + + // Create a history change event from an updateDoc-style change + // object. + function historyChangeFromChange(doc, change) { + var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)}; + attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); + linkedDocs(doc, function (doc) { return attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); }, true); + return histChange + } + + // Pop all selection events off the end of a history array. Stop at + // a change event. + function clearSelectionEvents(array) { + while (array.length) { + var last = lst(array); + if (last.ranges) { array.pop(); } + else { break } + } + } + + // Find the top change event in the history. Pop off selection + // events that are in the way. + function lastChangeEvent(hist, force) { + if (force) { + clearSelectionEvents(hist.done); + return lst(hist.done) + } else if (hist.done.length && !lst(hist.done).ranges) { + return lst(hist.done) + } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) { + hist.done.pop(); + return lst(hist.done) + } + } + + // Register a change in the history. Merges changes that are within + // a single operation, or are close together with an origin that + // allows merging (starting with "+") into a single event. + function addChangeToHistory(doc, change, selAfter, opId) { + var hist = doc.history; + hist.undone.length = 0; + var time = +new Date, cur; + var last; + + if ((hist.lastOp == opId || + hist.lastOrigin == change.origin && change.origin && + ((change.origin.charAt(0) == "+" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500)) || + change.origin.charAt(0) == "*")) && + (cur = lastChangeEvent(hist, hist.lastOp == opId))) { + // Merge this change into the last event + last = lst(cur.changes); + if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) { + // Optimized case for simple insertion -- don't want to add + // new changesets for every character typed + last.to = changeEnd(change); + } else { + // Add new sub-event + cur.changes.push(historyChangeFromChange(doc, change)); + } + } else { + // Can not be merged, start a new event. + var before = lst(hist.done); + if (!before || !before.ranges) + { pushSelectionToHistory(doc.sel, hist.done); } + cur = {changes: [historyChangeFromChange(doc, change)], + generation: hist.generation}; + hist.done.push(cur); + while (hist.done.length > hist.undoDepth) { + hist.done.shift(); + if (!hist.done[0].ranges) { hist.done.shift(); } + } + } + hist.done.push(selAfter); + hist.generation = ++hist.maxGeneration; + hist.lastModTime = hist.lastSelTime = time; + hist.lastOp = hist.lastSelOp = opId; + hist.lastOrigin = hist.lastSelOrigin = change.origin; + + if (!last) { signal(doc, "historyAdded"); } + } + + function selectionEventCanBeMerged(doc, origin, prev, sel) { + var ch = origin.charAt(0); + return ch == "*" || + ch == "+" && + prev.ranges.length == sel.ranges.length && + prev.somethingSelected() == sel.somethingSelected() && + new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500) + } + + // Called whenever the selection changes, sets the new selection as + // the pending selection in the history, and pushes the old pending + // selection into the 'done' array when it was significantly + // different (in number of selected ranges, emptiness, or time). + function addSelectionToHistory(doc, sel, opId, options) { + var hist = doc.history, origin = options && options.origin; + + // A new event is started when the previous origin does not match + // the current, or the origins don't allow matching. Origins + // starting with * are always merged, those starting with + are + // merged when similar and close together in time. + if (opId == hist.lastSelOp || + (origin && hist.lastSelOrigin == origin && + (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin || + selectionEventCanBeMerged(doc, origin, lst(hist.done), sel)))) + { hist.done[hist.done.length - 1] = sel; } + else + { pushSelectionToHistory(sel, hist.done); } + + hist.lastSelTime = +new Date; + hist.lastSelOrigin = origin; + hist.lastSelOp = opId; + if (options && options.clearRedo !== false) + { clearSelectionEvents(hist.undone); } + } + + function pushSelectionToHistory(sel, dest) { + var top = lst(dest); + if (!(top && top.ranges && top.equals(sel))) + { dest.push(sel); } + } + + // Used to store marked span information in the history. + function attachLocalSpans(doc, change, from, to) { + var existing = change["spans_" + doc.id], n = 0; + doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function (line) { + if (line.markedSpans) + { (existing || (existing = change["spans_" + doc.id] = {}))[n] = line.markedSpans; } + ++n; + }); + } + + // When un/re-doing restores text containing marked spans, those + // that have been explicitly cleared should not be restored. + function removeClearedSpans(spans) { + if (!spans) { return null } + var out; + for (var i = 0; i < spans.length; ++i) { + if (spans[i].marker.explicitlyCleared) { if (!out) { out = spans.slice(0, i); } } + else if (out) { out.push(spans[i]); } + } + return !out ? spans : out.length ? out : null + } + + // Retrieve and filter the old marked spans stored in a change event. + function getOldSpans(doc, change) { + var found = change["spans_" + doc.id]; + if (!found) { return null } + var nw = []; + for (var i = 0; i < change.text.length; ++i) + { nw.push(removeClearedSpans(found[i])); } + return nw + } + + // Used for un/re-doing changes from the history. Combines the + // result of computing the existing spans with the set of spans that + // existed in the history (so that deleting around a span and then + // undoing brings back the span). + function mergeOldSpans(doc, change) { + var old = getOldSpans(doc, change); + var stretched = stretchSpansOverChange(doc, change); + if (!old) { return stretched } + if (!stretched) { return old } + + for (var i = 0; i < old.length; ++i) { + var oldCur = old[i], stretchCur = stretched[i]; + if (oldCur && stretchCur) { + spans: for (var j = 0; j < stretchCur.length; ++j) { + var span = stretchCur[j]; + for (var k = 0; k < oldCur.length; ++k) + { if (oldCur[k].marker == span.marker) { continue spans } } + oldCur.push(span); + } + } else if (stretchCur) { + old[i] = stretchCur; + } + } + return old + } + + // Used both to provide a JSON-safe object in .getHistory, and, when + // detaching a document, to split the history in two + function copyHistoryArray(events, newGroup, instantiateSel) { + var copy = []; + for (var i = 0; i < events.length; ++i) { + var event = events[i]; + if (event.ranges) { + copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event); + continue + } + var changes = event.changes, newChanges = []; + copy.push({changes: newChanges}); + for (var j = 0; j < changes.length; ++j) { + var change = changes[j], m = (void 0); + newChanges.push({from: change.from, to: change.to, text: change.text}); + if (newGroup) { for (var prop in change) { if (m = prop.match(/^spans_(\d+)$/)) { + if (indexOf(newGroup, Number(m[1])) > -1) { + lst(newChanges)[prop] = change[prop]; + delete change[prop]; + } + } } } + } + } + return copy + } + + // The 'scroll' parameter given to many of these indicated whether + // the new cursor position should be scrolled into view after + // modifying the selection. + + // If shift is held or the extend flag is set, extends a range to + // include a given position (and optionally a second position). + // Otherwise, simply returns the range between the given positions. + // Used for cursor motion and such. + function extendRange(range, head, other, extend) { + if (extend) { + var anchor = range.anchor; + if (other) { + var posBefore = cmp(head, anchor) < 0; + if (posBefore != (cmp(other, anchor) < 0)) { + anchor = head; + head = other; + } else if (posBefore != (cmp(head, other) < 0)) { + head = other; + } + } + return new Range(anchor, head) + } else { + return new Range(other || head, head) + } + } + + // Extend the primary selection range, discard the rest. + function extendSelection(doc, head, other, options, extend) { + if (extend == null) { extend = doc.cm && (doc.cm.display.shift || doc.extend); } + setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options); + } + + // Extend all selections (pos is an array of selections with length + // equal the number of selections) + function extendSelections(doc, heads, options) { + var out = []; + var extend = doc.cm && (doc.cm.display.shift || doc.extend); + for (var i = 0; i < doc.sel.ranges.length; i++) + { out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); } + var newSel = normalizeSelection(doc.cm, out, doc.sel.primIndex); + setSelection(doc, newSel, options); + } + + // Updates a single range in the selection. + function replaceOneSelection(doc, i, range, options) { + var ranges = doc.sel.ranges.slice(0); + ranges[i] = range; + setSelection(doc, normalizeSelection(doc.cm, ranges, doc.sel.primIndex), options); + } + + // Reset the selection to a single range. + function setSimpleSelection(doc, anchor, head, options) { + setSelection(doc, simpleSelection(anchor, head), options); + } + + // Give beforeSelectionChange handlers a change to influence a + // selection update. + function filterSelectionChange(doc, sel, options) { + var obj = { + ranges: sel.ranges, + update: function(ranges) { + var this$1 = this; + + this.ranges = []; + for (var i = 0; i < ranges.length; i++) + { this$1.ranges[i] = new Range(clipPos(doc, ranges[i].anchor), + clipPos(doc, ranges[i].head)); } + }, + origin: options && options.origin + }; + signal(doc, "beforeSelectionChange", doc, obj); + if (doc.cm) { signal(doc.cm, "beforeSelectionChange", doc.cm, obj); } + if (obj.ranges != sel.ranges) { return normalizeSelection(doc.cm, obj.ranges, obj.ranges.length - 1) } + else { return sel } + } + + function setSelectionReplaceHistory(doc, sel, options) { + var done = doc.history.done, last = lst(done); + if (last && last.ranges) { + done[done.length - 1] = sel; + setSelectionNoUndo(doc, sel, options); + } else { + setSelection(doc, sel, options); + } + } + + // Set a new selection. + function setSelection(doc, sel, options) { + setSelectionNoUndo(doc, sel, options); + addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options); + } + + function setSelectionNoUndo(doc, sel, options) { + if (hasHandler(doc, "beforeSelectionChange") || doc.cm && hasHandler(doc.cm, "beforeSelectionChange")) + { sel = filterSelectionChange(doc, sel, options); } + + var bias = options && options.bias || + (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1); + setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true)); + + if (!(options && options.scroll === false) && doc.cm) + { ensureCursorVisible(doc.cm); } + } + + function setSelectionInner(doc, sel) { + if (sel.equals(doc.sel)) { return } + + doc.sel = sel; + + if (doc.cm) { + doc.cm.curOp.updateInput = 1; + doc.cm.curOp.selectionChanged = true; + signalCursorActivity(doc.cm); + } + signalLater(doc, "cursorActivity", doc); + } + + // Verify that the selection does not partially select any atomic + // marked ranges. + function reCheckSelection(doc) { + setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false)); + } + + // Return a selection that does not partially select any atomic + // ranges. + function skipAtomicInSelection(doc, sel, bias, mayClear) { + var out; + for (var i = 0; i < sel.ranges.length; i++) { + var range = sel.ranges[i]; + var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i]; + var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear); + var newHead = skipAtomic(doc, range.head, old && old.head, bias, mayClear); + if (out || newAnchor != range.anchor || newHead != range.head) { + if (!out) { out = sel.ranges.slice(0, i); } + out[i] = new Range(newAnchor, newHead); + } + } + return out ? normalizeSelection(doc.cm, out, sel.primIndex) : sel + } + + function skipAtomicInner(doc, pos, oldPos, dir, mayClear) { + var line = getLine(doc, pos.line); + if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) { + var sp = line.markedSpans[i], m = sp.marker; + + // Determine if we should prevent the cursor being placed to the left/right of an atomic marker + // Historically this was determined using the inclusiveLeft/Right option, but the new way to control it + // is with selectLeft/Right + var preventCursorLeft = ("selectLeft" in m) ? !m.selectLeft : m.inclusiveLeft; + var preventCursorRight = ("selectRight" in m) ? !m.selectRight : m.inclusiveRight; + + if ((sp.from == null || (preventCursorLeft ? sp.from <= pos.ch : sp.from < pos.ch)) && + (sp.to == null || (preventCursorRight ? sp.to >= pos.ch : sp.to > pos.ch))) { + if (mayClear) { + signal(m, "beforeCursorEnter"); + if (m.explicitlyCleared) { + if (!line.markedSpans) { break } + else {--i; continue} + } + } + if (!m.atomic) { continue } + + if (oldPos) { + var near = m.find(dir < 0 ? 1 : -1), diff = (void 0); + if (dir < 0 ? preventCursorRight : preventCursorLeft) + { near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); } + if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0)) + { return skipAtomicInner(doc, near, pos, dir, mayClear) } + } + + var far = m.find(dir < 0 ? -1 : 1); + if (dir < 0 ? preventCursorLeft : preventCursorRight) + { far = movePos(doc, far, dir, far.line == pos.line ? line : null); } + return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null + } + } } + return pos + } + + // Ensure a given position is not inside an atomic range. + function skipAtomic(doc, pos, oldPos, bias, mayClear) { + var dir = bias || 1; + var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) || + (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) || + skipAtomicInner(doc, pos, oldPos, -dir, mayClear) || + (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true)); + if (!found) { + doc.cantEdit = true; + return Pos(doc.first, 0) + } + return found + } + + function movePos(doc, pos, dir, line) { + if (dir < 0 && pos.ch == 0) { + if (pos.line > doc.first) { return clipPos(doc, Pos(pos.line - 1)) } + else { return null } + } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) { + if (pos.line < doc.first + doc.size - 1) { return Pos(pos.line + 1, 0) } + else { return null } + } else { + return new Pos(pos.line, pos.ch + dir) + } + } + + function selectAll(cm) { + cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll); + } + + // UPDATING + + // Allow "beforeChange" event handlers to influence a change + function filterChange(doc, change, update) { + var obj = { + canceled: false, + from: change.from, + to: change.to, + text: change.text, + origin: change.origin, + cancel: function () { return obj.canceled = true; } + }; + if (update) { obj.update = function (from, to, text, origin) { + if (from) { obj.from = clipPos(doc, from); } + if (to) { obj.to = clipPos(doc, to); } + if (text) { obj.text = text; } + if (origin !== undefined) { obj.origin = origin; } + }; } + signal(doc, "beforeChange", doc, obj); + if (doc.cm) { signal(doc.cm, "beforeChange", doc.cm, obj); } + + if (obj.canceled) { + if (doc.cm) { doc.cm.curOp.updateInput = 2; } + return null + } + return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin} + } + + // Apply a change to a document, and add it to the document's + // history, and propagating it to all linked documents. + function makeChange(doc, change, ignoreReadOnly) { + if (doc.cm) { + if (!doc.cm.curOp) { return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly) } + if (doc.cm.state.suppressEdits) { return } + } + + if (hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange")) { + change = filterChange(doc, change, true); + if (!change) { return } + } + + // Possibly split or suppress the update based on the presence + // of read-only spans in its range. + var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to); + if (split) { + for (var i = split.length - 1; i >= 0; --i) + { makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [""] : change.text, origin: change.origin}); } + } else { + makeChangeInner(doc, change); + } + } + + function makeChangeInner(doc, change) { + if (change.text.length == 1 && change.text[0] == "" && cmp(change.from, change.to) == 0) { return } + var selAfter = computeSelAfterChange(doc, change); + addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN); + + makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change)); + var rebased = []; + + linkedDocs(doc, function (doc, sharedHist) { + if (!sharedHist && indexOf(rebased, doc.history) == -1) { + rebaseHist(doc.history, change); + rebased.push(doc.history); + } + makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change)); + }); + } + + // Revert a change stored in a document's history. + function makeChangeFromHistory(doc, type, allowSelectionOnly) { + var suppress = doc.cm && doc.cm.state.suppressEdits; + if (suppress && !allowSelectionOnly) { return } + + var hist = doc.history, event, selAfter = doc.sel; + var source = type == "undo" ? hist.done : hist.undone, dest = type == "undo" ? hist.undone : hist.done; + + // Verify that there is a useable event (so that ctrl-z won't + // needlessly clear selection events) + var i = 0; + for (; i < source.length; i++) { + event = source[i]; + if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges) + { break } + } + if (i == source.length) { return } + hist.lastOrigin = hist.lastSelOrigin = null; + + for (;;) { + event = source.pop(); + if (event.ranges) { + pushSelectionToHistory(event, dest); + if (allowSelectionOnly && !event.equals(doc.sel)) { + setSelection(doc, event, {clearRedo: false}); + return + } + selAfter = event; + } else if (suppress) { + source.push(event); + return + } else { break } + } + + // Build up a reverse change object to add to the opposite history + // stack (redo when undoing, and vice versa). + var antiChanges = []; + pushSelectionToHistory(selAfter, dest); + dest.push({changes: antiChanges, generation: hist.generation}); + hist.generation = event.generation || ++hist.maxGeneration; + + var filter = hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange"); + + var loop = function ( i ) { + var change = event.changes[i]; + change.origin = type; + if (filter && !filterChange(doc, change, false)) { + source.length = 0; + return {} + } + + antiChanges.push(historyChangeFromChange(doc, change)); + + var after = i ? computeSelAfterChange(doc, change) : lst(source); + makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change)); + if (!i && doc.cm) { doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); } + var rebased = []; + + // Propagate to the linked documents + linkedDocs(doc, function (doc, sharedHist) { + if (!sharedHist && indexOf(rebased, doc.history) == -1) { + rebaseHist(doc.history, change); + rebased.push(doc.history); + } + makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change)); + }); + }; + + for (var i$1 = event.changes.length - 1; i$1 >= 0; --i$1) { + var returned = loop( i$1 ); + + if ( returned ) return returned.v; + } + } + + // Sub-views need their line numbers shifted when text is added + // above or below them in the parent document. + function shiftDoc(doc, distance) { + if (distance == 0) { return } + doc.first += distance; + doc.sel = new Selection(map(doc.sel.ranges, function (range) { return new Range( + Pos(range.anchor.line + distance, range.anchor.ch), + Pos(range.head.line + distance, range.head.ch) + ); }), doc.sel.primIndex); + if (doc.cm) { + regChange(doc.cm, doc.first, doc.first - distance, distance); + for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++) + { regLineChange(doc.cm, l, "gutter"); } + } + } + + // More lower-level change function, handling only a single document + // (not linked ones). + function makeChangeSingleDoc(doc, change, selAfter, spans) { + if (doc.cm && !doc.cm.curOp) + { return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans) } + + if (change.to.line < doc.first) { + shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line)); + return + } + if (change.from.line > doc.lastLine()) { return } + + // Clip the change to the size of this doc + if (change.from.line < doc.first) { + var shift = change.text.length - 1 - (doc.first - change.from.line); + shiftDoc(doc, shift); + change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch), + text: [lst(change.text)], origin: change.origin}; + } + var last = doc.lastLine(); + if (change.to.line > last) { + change = {from: change.from, to: Pos(last, getLine(doc, last).text.length), + text: [change.text[0]], origin: change.origin}; + } + + change.removed = getBetween(doc, change.from, change.to); + + if (!selAfter) { selAfter = computeSelAfterChange(doc, change); } + if (doc.cm) { makeChangeSingleDocInEditor(doc.cm, change, spans); } + else { updateDoc(doc, change, spans); } + setSelectionNoUndo(doc, selAfter, sel_dontScroll); + } + + // Handle the interaction of a change to a document with the editor + // that this document is part of. + function makeChangeSingleDocInEditor(cm, change, spans) { + var doc = cm.doc, display = cm.display, from = change.from, to = change.to; + + var recomputeMaxLength = false, checkWidthStart = from.line; + if (!cm.options.lineWrapping) { + checkWidthStart = lineNo(visualLine(getLine(doc, from.line))); + doc.iter(checkWidthStart, to.line + 1, function (line) { + if (line == display.maxLine) { + recomputeMaxLength = true; + return true + } + }); + } + + if (doc.sel.contains(change.from, change.to) > -1) + { signalCursorActivity(cm); } + + updateDoc(doc, change, spans, estimateHeight(cm)); + + if (!cm.options.lineWrapping) { + doc.iter(checkWidthStart, from.line + change.text.length, function (line) { + var len = lineLength(line); + if (len > display.maxLineLength) { + display.maxLine = line; + display.maxLineLength = len; + display.maxLineChanged = true; + recomputeMaxLength = false; + } + }); + if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; } + } + + retreatFrontier(doc, from.line); + startWorker(cm, 400); + + var lendiff = change.text.length - (to.line - from.line) - 1; + // Remember that these lines changed, for updating the display + if (change.full) + { regChange(cm); } + else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change)) + { regLineChange(cm, from.line, "text"); } + else + { regChange(cm, from.line, to.line + 1, lendiff); } + + var changesHandler = hasHandler(cm, "changes"), changeHandler = hasHandler(cm, "change"); + if (changeHandler || changesHandler) { + var obj = { + from: from, to: to, + text: change.text, + removed: change.removed, + origin: change.origin + }; + if (changeHandler) { signalLater(cm, "change", cm, obj); } + if (changesHandler) { (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); } + } + cm.display.selForContextMenu = null; + } + + function replaceRange(doc, code, from, to, origin) { + var assign; + + if (!to) { to = from; } + if (cmp(to, from) < 0) { (assign = [to, from], from = assign[0], to = assign[1]); } + if (typeof code == "string") { code = doc.splitLines(code); } + makeChange(doc, {from: from, to: to, text: code, origin: origin}); + } + + // Rebasing/resetting history to deal with externally-sourced changes + + function rebaseHistSelSingle(pos, from, to, diff) { + if (to < pos.line) { + pos.line += diff; + } else if (from < pos.line) { + pos.line = from; + pos.ch = 0; + } + } + + // Tries to rebase an array of history events given a change in the + // document. If the change touches the same lines as the event, the + // event, and everything 'behind' it, is discarded. If the change is + // before the event, the event's positions are updated. Uses a + // copy-on-write scheme for the positions, to avoid having to + // reallocate them all on every rebase, but also avoid problems with + // shared position objects being unsafely updated. + function rebaseHistArray(array, from, to, diff) { + for (var i = 0; i < array.length; ++i) { + var sub = array[i], ok = true; + if (sub.ranges) { + if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; } + for (var j = 0; j < sub.ranges.length; j++) { + rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff); + rebaseHistSelSingle(sub.ranges[j].head, from, to, diff); + } + continue + } + for (var j$1 = 0; j$1 < sub.changes.length; ++j$1) { + var cur = sub.changes[j$1]; + if (to < cur.from.line) { + cur.from = Pos(cur.from.line + diff, cur.from.ch); + cur.to = Pos(cur.to.line + diff, cur.to.ch); + } else if (from <= cur.to.line) { + ok = false; + break + } + } + if (!ok) { + array.splice(0, i + 1); + i = 0; + } + } + } + + function rebaseHist(hist, change) { + var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1; + rebaseHistArray(hist.done, from, to, diff); + rebaseHistArray(hist.undone, from, to, diff); + } + + // Utility for applying a change to a line by handle or number, + // returning the number and optionally registering the line as + // changed. + function changeLine(doc, handle, changeType, op) { + var no = handle, line = handle; + if (typeof handle == "number") { line = getLine(doc, clipLine(doc, handle)); } + else { no = lineNo(handle); } + if (no == null) { return null } + if (op(line, no) && doc.cm) { regLineChange(doc.cm, no, changeType); } + return line + } + + // The document is represented as a BTree consisting of leaves, with + // chunk of lines in them, and branches, with up to ten leaves or + // other branch nodes below them. The top node is always a branch + // node, and is the document object itself (meaning it has + // additional methods and properties). + // + // All nodes have parent links. The tree is used both to go from + // line numbers to line objects, and to go from objects to numbers. + // It also indexes by height, and is used to convert between height + // and line object, and to find the total height of the document. + // + // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html + + function LeafChunk(lines) { + var this$1 = this; + + this.lines = lines; + this.parent = null; + var height = 0; + for (var i = 0; i < lines.length; ++i) { + lines[i].parent = this$1; + height += lines[i].height; + } + this.height = height; + } + + LeafChunk.prototype = { + chunkSize: function() { return this.lines.length }, + + // Remove the n lines at offset 'at'. + removeInner: function(at, n) { + var this$1 = this; + + for (var i = at, e = at + n; i < e; ++i) { + var line = this$1.lines[i]; + this$1.height -= line.height; + cleanUpLine(line); + signalLater(line, "delete"); + } + this.lines.splice(at, n); + }, + + // Helper used to collapse a small branch into a single leaf. + collapse: function(lines) { + lines.push.apply(lines, this.lines); + }, + + // Insert the given array of lines at offset 'at', count them as + // having the given height. + insertInner: function(at, lines, height) { + var this$1 = this; + + this.height += height; + this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at)); + for (var i = 0; i < lines.length; ++i) { lines[i].parent = this$1; } + }, + + // Used to iterate over a part of the tree. + iterN: function(at, n, op) { + var this$1 = this; + + for (var e = at + n; at < e; ++at) + { if (op(this$1.lines[at])) { return true } } + } + }; + + function BranchChunk(children) { + var this$1 = this; + + this.children = children; + var size = 0, height = 0; + for (var i = 0; i < children.length; ++i) { + var ch = children[i]; + size += ch.chunkSize(); height += ch.height; + ch.parent = this$1; + } + this.size = size; + this.height = height; + this.parent = null; + } + + BranchChunk.prototype = { + chunkSize: function() { return this.size }, + + removeInner: function(at, n) { + var this$1 = this; + + this.size -= n; + for (var i = 0; i < this.children.length; ++i) { + var child = this$1.children[i], sz = child.chunkSize(); + if (at < sz) { + var rm = Math.min(n, sz - at), oldHeight = child.height; + child.removeInner(at, rm); + this$1.height -= oldHeight - child.height; + if (sz == rm) { this$1.children.splice(i--, 1); child.parent = null; } + if ((n -= rm) == 0) { break } + at = 0; + } else { at -= sz; } + } + // If the result is smaller than 25 lines, ensure that it is a + // single leaf node. + if (this.size - n < 25 && + (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) { + var lines = []; + this.collapse(lines); + this.children = [new LeafChunk(lines)]; + this.children[0].parent = this; + } + }, + + collapse: function(lines) { + var this$1 = this; + + for (var i = 0; i < this.children.length; ++i) { this$1.children[i].collapse(lines); } + }, + + insertInner: function(at, lines, height) { + var this$1 = this; + + this.size += lines.length; + this.height += height; + for (var i = 0; i < this.children.length; ++i) { + var child = this$1.children[i], sz = child.chunkSize(); + if (at <= sz) { + child.insertInner(at, lines, height); + if (child.lines && child.lines.length > 50) { + // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced. + // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest. + var remaining = child.lines.length % 25 + 25; + for (var pos = remaining; pos < child.lines.length;) { + var leaf = new LeafChunk(child.lines.slice(pos, pos += 25)); + child.height -= leaf.height; + this$1.children.splice(++i, 0, leaf); + leaf.parent = this$1; + } + child.lines = child.lines.slice(0, remaining); + this$1.maybeSpill(); + } + break + } + at -= sz; + } + }, + + // When a node has grown, check whether it should be split. + maybeSpill: function() { + if (this.children.length <= 10) { return } + var me = this; + do { + var spilled = me.children.splice(me.children.length - 5, 5); + var sibling = new BranchChunk(spilled); + if (!me.parent) { // Become the parent node + var copy = new BranchChunk(me.children); + copy.parent = me; + me.children = [copy, sibling]; + me = copy; + } else { + me.size -= sibling.size; + me.height -= sibling.height; + var myIndex = indexOf(me.parent.children, me); + me.parent.children.splice(myIndex + 1, 0, sibling); + } + sibling.parent = me.parent; + } while (me.children.length > 10) + me.parent.maybeSpill(); + }, + + iterN: function(at, n, op) { + var this$1 = this; + + for (var i = 0; i < this.children.length; ++i) { + var child = this$1.children[i], sz = child.chunkSize(); + if (at < sz) { + var used = Math.min(n, sz - at); + if (child.iterN(at, used, op)) { return true } + if ((n -= used) == 0) { break } + at = 0; + } else { at -= sz; } + } + } + }; + + // Line widgets are block elements displayed above or below a line. + + var LineWidget = function(doc, node, options) { + var this$1 = this; + + if (options) { for (var opt in options) { if (options.hasOwnProperty(opt)) + { this$1[opt] = options[opt]; } } } + this.doc = doc; + this.node = node; + }; + + LineWidget.prototype.clear = function () { + var this$1 = this; + + var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line); + if (no == null || !ws) { return } + for (var i = 0; i < ws.length; ++i) { if (ws[i] == this$1) { ws.splice(i--, 1); } } + if (!ws.length) { line.widgets = null; } + var height = widgetHeight(this); + updateLineHeight(line, Math.max(0, line.height - height)); + if (cm) { + runInOp(cm, function () { + adjustScrollWhenAboveVisible(cm, line, -height); + regLineChange(cm, no, "widget"); + }); + signalLater(cm, "lineWidgetCleared", cm, this, no); + } + }; + + LineWidget.prototype.changed = function () { + var this$1 = this; + + var oldH = this.height, cm = this.doc.cm, line = this.line; + this.height = null; + var diff = widgetHeight(this) - oldH; + if (!diff) { return } + if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff); } + if (cm) { + runInOp(cm, function () { + cm.curOp.forceUpdate = true; + adjustScrollWhenAboveVisible(cm, line, diff); + signalLater(cm, "lineWidgetChanged", cm, this$1, lineNo(line)); + }); + } + }; + eventMixin(LineWidget); + + function adjustScrollWhenAboveVisible(cm, line, diff) { + if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop)) + { addToScrollTop(cm, diff); } + } + + function addLineWidget(doc, handle, node, options) { + var widget = new LineWidget(doc, node, options); + var cm = doc.cm; + if (cm && widget.noHScroll) { cm.display.alignWidgets = true; } + changeLine(doc, handle, "widget", function (line) { + var widgets = line.widgets || (line.widgets = []); + if (widget.insertAt == null) { widgets.push(widget); } + else { widgets.splice(Math.min(widgets.length - 1, Math.max(0, widget.insertAt)), 0, widget); } + widget.line = line; + if (cm && !lineIsHidden(doc, line)) { + var aboveVisible = heightAtLine(line) < doc.scrollTop; + updateLineHeight(line, line.height + widgetHeight(widget)); + if (aboveVisible) { addToScrollTop(cm, widget.height); } + cm.curOp.forceUpdate = true; + } + return true + }); + if (cm) { signalLater(cm, "lineWidgetAdded", cm, widget, typeof handle == "number" ? handle : lineNo(handle)); } + return widget + } + + // TEXTMARKERS + + // Created with markText and setBookmark methods. A TextMarker is a + // handle that can be used to clear or find a marked position in the + // document. Line objects hold arrays (markedSpans) containing + // {from, to, marker} object pointing to such marker objects, and + // indicating that such a marker is present on that line. Multiple + // lines may point to the same marker when it spans across lines. + // The spans will have null for their from/to properties when the + // marker continues beyond the start/end of the line. Markers have + // links back to the lines they currently touch. + + // Collapsed markers have unique ids, in order to be able to order + // them, which is needed for uniquely determining an outer marker + // when they overlap (they may nest, but not partially overlap). + var nextMarkerId = 0; + + var TextMarker = function(doc, type) { + this.lines = []; + this.type = type; + this.doc = doc; + this.id = ++nextMarkerId; + }; + + // Clear the marker. + TextMarker.prototype.clear = function () { + var this$1 = this; + + if (this.explicitlyCleared) { return } + var cm = this.doc.cm, withOp = cm && !cm.curOp; + if (withOp) { startOperation(cm); } + if (hasHandler(this, "clear")) { + var found = this.find(); + if (found) { signalLater(this, "clear", found.from, found.to); } + } + var min = null, max = null; + for (var i = 0; i < this.lines.length; ++i) { + var line = this$1.lines[i]; + var span = getMarkedSpanFor(line.markedSpans, this$1); + if (cm && !this$1.collapsed) { regLineChange(cm, lineNo(line), "text"); } + else if (cm) { + if (span.to != null) { max = lineNo(line); } + if (span.from != null) { min = lineNo(line); } + } + line.markedSpans = removeMarkedSpan(line.markedSpans, span); + if (span.from == null && this$1.collapsed && !lineIsHidden(this$1.doc, line) && cm) + { updateLineHeight(line, textHeight(cm.display)); } + } + if (cm && this.collapsed && !cm.options.lineWrapping) { for (var i$1 = 0; i$1 < this.lines.length; ++i$1) { + var visual = visualLine(this$1.lines[i$1]), len = lineLength(visual); + if (len > cm.display.maxLineLength) { + cm.display.maxLine = visual; + cm.display.maxLineLength = len; + cm.display.maxLineChanged = true; + } + } } + + if (min != null && cm && this.collapsed) { regChange(cm, min, max + 1); } + this.lines.length = 0; + this.explicitlyCleared = true; + if (this.atomic && this.doc.cantEdit) { + this.doc.cantEdit = false; + if (cm) { reCheckSelection(cm.doc); } + } + if (cm) { signalLater(cm, "markerCleared", cm, this, min, max); } + if (withOp) { endOperation(cm); } + if (this.parent) { this.parent.clear(); } + }; + + // Find the position of the marker in the document. Returns a {from, + // to} object by default. Side can be passed to get a specific side + // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the + // Pos objects returned contain a line object, rather than a line + // number (used to prevent looking up the same line twice). + TextMarker.prototype.find = function (side, lineObj) { + var this$1 = this; + + if (side == null && this.type == "bookmark") { side = 1; } + var from, to; + for (var i = 0; i < this.lines.length; ++i) { + var line = this$1.lines[i]; + var span = getMarkedSpanFor(line.markedSpans, this$1); + if (span.from != null) { + from = Pos(lineObj ? line : lineNo(line), span.from); + if (side == -1) { return from } + } + if (span.to != null) { + to = Pos(lineObj ? line : lineNo(line), span.to); + if (side == 1) { return to } + } + } + return from && {from: from, to: to} + }; + + // Signals that the marker's widget changed, and surrounding layout + // should be recomputed. + TextMarker.prototype.changed = function () { + var this$1 = this; + + var pos = this.find(-1, true), widget = this, cm = this.doc.cm; + if (!pos || !cm) { return } + runInOp(cm, function () { + var line = pos.line, lineN = lineNo(pos.line); + var view = findViewForLine(cm, lineN); + if (view) { + clearLineMeasurementCacheFor(view); + cm.curOp.selectionChanged = cm.curOp.forceUpdate = true; + } + cm.curOp.updateMaxLine = true; + if (!lineIsHidden(widget.doc, line) && widget.height != null) { + var oldHeight = widget.height; + widget.height = null; + var dHeight = widgetHeight(widget) - oldHeight; + if (dHeight) + { updateLineHeight(line, line.height + dHeight); } + } + signalLater(cm, "markerChanged", cm, this$1); + }); + }; + + TextMarker.prototype.attachLine = function (line) { + if (!this.lines.length && this.doc.cm) { + var op = this.doc.cm.curOp; + if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1) + { (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); } + } + this.lines.push(line); + }; + + TextMarker.prototype.detachLine = function (line) { + this.lines.splice(indexOf(this.lines, line), 1); + if (!this.lines.length && this.doc.cm) { + var op = this.doc.cm.curOp + ;(op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this); + } + }; + eventMixin(TextMarker); + + // Create a marker, wire it up to the right lines, and + function markText(doc, from, to, options, type) { + // Shared markers (across linked documents) are handled separately + // (markTextShared will call out to this again, once per + // document). + if (options && options.shared) { return markTextShared(doc, from, to, options, type) } + // Ensure we are in an operation. + if (doc.cm && !doc.cm.curOp) { return operation(doc.cm, markText)(doc, from, to, options, type) } + + var marker = new TextMarker(doc, type), diff = cmp(from, to); + if (options) { copyObj(options, marker, false); } + // Don't connect empty markers unless clearWhenEmpty is false + if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false) + { return marker } + if (marker.replacedWith) { + // Showing up as a widget implies collapsed (widget replaces text) + marker.collapsed = true; + marker.widgetNode = eltP("span", [marker.replacedWith], "CodeMirror-widget"); + if (!options.handleMouseEvents) { marker.widgetNode.setAttribute("cm-ignore-events", "true"); } + if (options.insertLeft) { marker.widgetNode.insertLeft = true; } + } + if (marker.collapsed) { + if (conflictingCollapsedRange(doc, from.line, from, to, marker) || + from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker)) + { throw new Error("Inserting collapsed marker partially overlapping an existing one") } + seeCollapsedSpans(); + } + + if (marker.addToHistory) + { addChangeToHistory(doc, {from: from, to: to, origin: "markText"}, doc.sel, NaN); } + + var curLine = from.line, cm = doc.cm, updateMaxLine; + doc.iter(curLine, to.line + 1, function (line) { + if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine) + { updateMaxLine = true; } + if (marker.collapsed && curLine != from.line) { updateLineHeight(line, 0); } + addMarkedSpan(line, new MarkedSpan(marker, + curLine == from.line ? from.ch : null, + curLine == to.line ? to.ch : null)); + ++curLine; + }); + // lineIsHidden depends on the presence of the spans, so needs a second pass + if (marker.collapsed) { doc.iter(from.line, to.line + 1, function (line) { + if (lineIsHidden(doc, line)) { updateLineHeight(line, 0); } + }); } + + if (marker.clearOnEnter) { on(marker, "beforeCursorEnter", function () { return marker.clear(); }); } + + if (marker.readOnly) { + seeReadOnlySpans(); + if (doc.history.done.length || doc.history.undone.length) + { doc.clearHistory(); } + } + if (marker.collapsed) { + marker.id = ++nextMarkerId; + marker.atomic = true; + } + if (cm) { + // Sync editor state + if (updateMaxLine) { cm.curOp.updateMaxLine = true; } + if (marker.collapsed) + { regChange(cm, from.line, to.line + 1); } + else if (marker.className || marker.startStyle || marker.endStyle || marker.css || + marker.attributes || marker.title) + { for (var i = from.line; i <= to.line; i++) { regLineChange(cm, i, "text"); } } + if (marker.atomic) { reCheckSelection(cm.doc); } + signalLater(cm, "markerAdded", cm, marker); + } + return marker + } + + // SHARED TEXTMARKERS + + // A shared marker spans multiple linked documents. It is + // implemented as a meta-marker-object controlling multiple normal + // markers. + var SharedTextMarker = function(markers, primary) { + var this$1 = this; + + this.markers = markers; + this.primary = primary; + for (var i = 0; i < markers.length; ++i) + { markers[i].parent = this$1; } + }; + + SharedTextMarker.prototype.clear = function () { + var this$1 = this; + + if (this.explicitlyCleared) { return } + this.explicitlyCleared = true; + for (var i = 0; i < this.markers.length; ++i) + { this$1.markers[i].clear(); } + signalLater(this, "clear"); + }; + + SharedTextMarker.prototype.find = function (side, lineObj) { + return this.primary.find(side, lineObj) + }; + eventMixin(SharedTextMarker); + + function markTextShared(doc, from, to, options, type) { + options = copyObj(options); + options.shared = false; + var markers = [markText(doc, from, to, options, type)], primary = markers[0]; + var widget = options.widgetNode; + linkedDocs(doc, function (doc) { + if (widget) { options.widgetNode = widget.cloneNode(true); } + markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type)); + for (var i = 0; i < doc.linked.length; ++i) + { if (doc.linked[i].isParent) { return } } + primary = lst(markers); + }); + return new SharedTextMarker(markers, primary) + } + + function findSharedMarkers(doc) { + return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), function (m) { return m.parent; }) + } + + function copySharedMarkers(doc, markers) { + for (var i = 0; i < markers.length; i++) { + var marker = markers[i], pos = marker.find(); + var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to); + if (cmp(mFrom, mTo)) { + var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type); + marker.markers.push(subMark); + subMark.parent = marker; + } + } + } + + function detachSharedMarkers(markers) { + var loop = function ( i ) { + var marker = markers[i], linked = [marker.primary.doc]; + linkedDocs(marker.primary.doc, function (d) { return linked.push(d); }); + for (var j = 0; j < marker.markers.length; j++) { + var subMarker = marker.markers[j]; + if (indexOf(linked, subMarker.doc) == -1) { + subMarker.parent = null; + marker.markers.splice(j--, 1); + } + } + }; + + for (var i = 0; i < markers.length; i++) loop( i ); + } + + var nextDocId = 0; + var Doc = function(text, mode, firstLine, lineSep, direction) { + if (!(this instanceof Doc)) { return new Doc(text, mode, firstLine, lineSep, direction) } + if (firstLine == null) { firstLine = 0; } + + BranchChunk.call(this, [new LeafChunk([new Line("", null)])]); + this.first = firstLine; + this.scrollTop = this.scrollLeft = 0; + this.cantEdit = false; + this.cleanGeneration = 1; + this.modeFrontier = this.highlightFrontier = firstLine; + var start = Pos(firstLine, 0); + this.sel = simpleSelection(start); + this.history = new History(null); + this.id = ++nextDocId; + this.modeOption = mode; + this.lineSep = lineSep; + this.direction = (direction == "rtl") ? "rtl" : "ltr"; + this.extend = false; + + if (typeof text == "string") { text = this.splitLines(text); } + updateDoc(this, {from: start, to: start, text: text}); + setSelection(this, simpleSelection(start), sel_dontScroll); + }; + + Doc.prototype = createObj(BranchChunk.prototype, { + constructor: Doc, + // Iterate over the document. Supports two forms -- with only one + // argument, it calls that for each line in the document. With + // three, it iterates over the range given by the first two (with + // the second being non-inclusive). + iter: function(from, to, op) { + if (op) { this.iterN(from - this.first, to - from, op); } + else { this.iterN(this.first, this.first + this.size, from); } + }, + + // Non-public interface for adding and removing lines. + insert: function(at, lines) { + var height = 0; + for (var i = 0; i < lines.length; ++i) { height += lines[i].height; } + this.insertInner(at - this.first, lines, height); + }, + remove: function(at, n) { this.removeInner(at - this.first, n); }, + + // From here, the methods are part of the public interface. Most + // are also available from CodeMirror (editor) instances. + + getValue: function(lineSep) { + var lines = getLines(this, this.first, this.first + this.size); + if (lineSep === false) { return lines } + return lines.join(lineSep || this.lineSeparator()) + }, + setValue: docMethodOp(function(code) { + var top = Pos(this.first, 0), last = this.first + this.size - 1; + makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length), + text: this.splitLines(code), origin: "setValue", full: true}, true); + if (this.cm) { scrollToCoords(this.cm, 0, 0); } + setSelection(this, simpleSelection(top), sel_dontScroll); + }), + replaceRange: function(code, from, to, origin) { + from = clipPos(this, from); + to = to ? clipPos(this, to) : from; + replaceRange(this, code, from, to, origin); + }, + getRange: function(from, to, lineSep) { + var lines = getBetween(this, clipPos(this, from), clipPos(this, to)); + if (lineSep === false) { return lines } + return lines.join(lineSep || this.lineSeparator()) + }, + + getLine: function(line) {var l = this.getLineHandle(line); return l && l.text}, + + getLineHandle: function(line) {if (isLine(this, line)) { return getLine(this, line) }}, + getLineNumber: function(line) {return lineNo(line)}, + + getLineHandleVisualStart: function(line) { + if (typeof line == "number") { line = getLine(this, line); } + return visualLine(line) + }, + + lineCount: function() {return this.size}, + firstLine: function() {return this.first}, + lastLine: function() {return this.first + this.size - 1}, + + clipPos: function(pos) {return clipPos(this, pos)}, + + getCursor: function(start) { + var range$$1 = this.sel.primary(), pos; + if (start == null || start == "head") { pos = range$$1.head; } + else if (start == "anchor") { pos = range$$1.anchor; } + else if (start == "end" || start == "to" || start === false) { pos = range$$1.to(); } + else { pos = range$$1.from(); } + return pos + }, + listSelections: function() { return this.sel.ranges }, + somethingSelected: function() {return this.sel.somethingSelected()}, + + setCursor: docMethodOp(function(line, ch, options) { + setSimpleSelection(this, clipPos(this, typeof line == "number" ? Pos(line, ch || 0) : line), null, options); + }), + setSelection: docMethodOp(function(anchor, head, options) { + setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options); + }), + extendSelection: docMethodOp(function(head, other, options) { + extendSelection(this, clipPos(this, head), other && clipPos(this, other), options); + }), + extendSelections: docMethodOp(function(heads, options) { + extendSelections(this, clipPosArray(this, heads), options); + }), + extendSelectionsBy: docMethodOp(function(f, options) { + var heads = map(this.sel.ranges, f); + extendSelections(this, clipPosArray(this, heads), options); + }), + setSelections: docMethodOp(function(ranges, primary, options) { + var this$1 = this; + + if (!ranges.length) { return } + var out = []; + for (var i = 0; i < ranges.length; i++) + { out[i] = new Range(clipPos(this$1, ranges[i].anchor), + clipPos(this$1, ranges[i].head)); } + if (primary == null) { primary = Math.min(ranges.length - 1, this.sel.primIndex); } + setSelection(this, normalizeSelection(this.cm, out, primary), options); + }), + addSelection: docMethodOp(function(anchor, head, options) { + var ranges = this.sel.ranges.slice(0); + ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor))); + setSelection(this, normalizeSelection(this.cm, ranges, ranges.length - 1), options); + }), + + getSelection: function(lineSep) { + var this$1 = this; + + var ranges = this.sel.ranges, lines; + for (var i = 0; i < ranges.length; i++) { + var sel = getBetween(this$1, ranges[i].from(), ranges[i].to()); + lines = lines ? lines.concat(sel) : sel; + } + if (lineSep === false) { return lines } + else { return lines.join(lineSep || this.lineSeparator()) } + }, + getSelections: function(lineSep) { + var this$1 = this; + + var parts = [], ranges = this.sel.ranges; + for (var i = 0; i < ranges.length; i++) { + var sel = getBetween(this$1, ranges[i].from(), ranges[i].to()); + if (lineSep !== false) { sel = sel.join(lineSep || this$1.lineSeparator()); } + parts[i] = sel; + } + return parts + }, + replaceSelection: function(code, collapse, origin) { + var dup = []; + for (var i = 0; i < this.sel.ranges.length; i++) + { dup[i] = code; } + this.replaceSelections(dup, collapse, origin || "+input"); + }, + replaceSelections: docMethodOp(function(code, collapse, origin) { + var this$1 = this; + + var changes = [], sel = this.sel; + for (var i = 0; i < sel.ranges.length; i++) { + var range$$1 = sel.ranges[i]; + changes[i] = {from: range$$1.from(), to: range$$1.to(), text: this$1.splitLines(code[i]), origin: origin}; + } + var newSel = collapse && collapse != "end" && computeReplacedSel(this, changes, collapse); + for (var i$1 = changes.length - 1; i$1 >= 0; i$1--) + { makeChange(this$1, changes[i$1]); } + if (newSel) { setSelectionReplaceHistory(this, newSel); } + else if (this.cm) { ensureCursorVisible(this.cm); } + }), + undo: docMethodOp(function() {makeChangeFromHistory(this, "undo");}), + redo: docMethodOp(function() {makeChangeFromHistory(this, "redo");}), + undoSelection: docMethodOp(function() {makeChangeFromHistory(this, "undo", true);}), + redoSelection: docMethodOp(function() {makeChangeFromHistory(this, "redo", true);}), + + setExtending: function(val) {this.extend = val;}, + getExtending: function() {return this.extend}, + + historySize: function() { + var hist = this.history, done = 0, undone = 0; + for (var i = 0; i < hist.done.length; i++) { if (!hist.done[i].ranges) { ++done; } } + for (var i$1 = 0; i$1 < hist.undone.length; i$1++) { if (!hist.undone[i$1].ranges) { ++undone; } } + return {undo: done, redo: undone} + }, + clearHistory: function() {this.history = new History(this.history.maxGeneration);}, + + markClean: function() { + this.cleanGeneration = this.changeGeneration(true); + }, + changeGeneration: function(forceSplit) { + if (forceSplit) + { this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; } + return this.history.generation + }, + isClean: function (gen) { + return this.history.generation == (gen || this.cleanGeneration) + }, + + getHistory: function() { + return {done: copyHistoryArray(this.history.done), + undone: copyHistoryArray(this.history.undone)} + }, + setHistory: function(histData) { + var hist = this.history = new History(this.history.maxGeneration); + hist.done = copyHistoryArray(histData.done.slice(0), null, true); + hist.undone = copyHistoryArray(histData.undone.slice(0), null, true); + }, + + setGutterMarker: docMethodOp(function(line, gutterID, value) { + return changeLine(this, line, "gutter", function (line) { + var markers = line.gutterMarkers || (line.gutterMarkers = {}); + markers[gutterID] = value; + if (!value && isEmpty(markers)) { line.gutterMarkers = null; } + return true + }) + }), + + clearGutter: docMethodOp(function(gutterID) { + var this$1 = this; + + this.iter(function (line) { + if (line.gutterMarkers && line.gutterMarkers[gutterID]) { + changeLine(this$1, line, "gutter", function () { + line.gutterMarkers[gutterID] = null; + if (isEmpty(line.gutterMarkers)) { line.gutterMarkers = null; } + return true + }); + } + }); + }), + + lineInfo: function(line) { + var n; + if (typeof line == "number") { + if (!isLine(this, line)) { return null } + n = line; + line = getLine(this, line); + if (!line) { return null } + } else { + n = lineNo(line); + if (n == null) { return null } + } + return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers, + textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass, + widgets: line.widgets} + }, + + addLineClass: docMethodOp(function(handle, where, cls) { + return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function (line) { + var prop = where == "text" ? "textClass" + : where == "background" ? "bgClass" + : where == "gutter" ? "gutterClass" : "wrapClass"; + if (!line[prop]) { line[prop] = cls; } + else if (classTest(cls).test(line[prop])) { return false } + else { line[prop] += " " + cls; } + return true + }) + }), + removeLineClass: docMethodOp(function(handle, where, cls) { + return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function (line) { + var prop = where == "text" ? "textClass" + : where == "background" ? "bgClass" + : where == "gutter" ? "gutterClass" : "wrapClass"; + var cur = line[prop]; + if (!cur) { return false } + else if (cls == null) { line[prop] = null; } + else { + var found = cur.match(classTest(cls)); + if (!found) { return false } + var end = found.index + found[0].length; + line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? "" : " ") + cur.slice(end) || null; + } + return true + }) + }), + + addLineWidget: docMethodOp(function(handle, node, options) { + return addLineWidget(this, handle, node, options) + }), + removeLineWidget: function(widget) { widget.clear(); }, + + markText: function(from, to, options) { + return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || "range") + }, + setBookmark: function(pos, options) { + var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options), + insertLeft: options && options.insertLeft, + clearWhenEmpty: false, shared: options && options.shared, + handleMouseEvents: options && options.handleMouseEvents}; + pos = clipPos(this, pos); + return markText(this, pos, pos, realOpts, "bookmark") + }, + findMarksAt: function(pos) { + pos = clipPos(this, pos); + var markers = [], spans = getLine(this, pos.line).markedSpans; + if (spans) { for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if ((span.from == null || span.from <= pos.ch) && + (span.to == null || span.to >= pos.ch)) + { markers.push(span.marker.parent || span.marker); } + } } + return markers + }, + findMarks: function(from, to, filter) { + from = clipPos(this, from); to = clipPos(this, to); + var found = [], lineNo$$1 = from.line; + this.iter(from.line, to.line + 1, function (line) { + var spans = line.markedSpans; + if (spans) { for (var i = 0; i < spans.length; i++) { + var span = spans[i]; + if (!(span.to != null && lineNo$$1 == from.line && from.ch >= span.to || + span.from == null && lineNo$$1 != from.line || + span.from != null && lineNo$$1 == to.line && span.from >= to.ch) && + (!filter || filter(span.marker))) + { found.push(span.marker.parent || span.marker); } + } } + ++lineNo$$1; + }); + return found + }, + getAllMarks: function() { + var markers = []; + this.iter(function (line) { + var sps = line.markedSpans; + if (sps) { for (var i = 0; i < sps.length; ++i) + { if (sps[i].from != null) { markers.push(sps[i].marker); } } } + }); + return markers + }, + + posFromIndex: function(off) { + var ch, lineNo$$1 = this.first, sepSize = this.lineSeparator().length; + this.iter(function (line) { + var sz = line.text.length + sepSize; + if (sz > off) { ch = off; return true } + off -= sz; + ++lineNo$$1; + }); + return clipPos(this, Pos(lineNo$$1, ch)) + }, + indexFromPos: function (coords) { + coords = clipPos(this, coords); + var index = coords.ch; + if (coords.line < this.first || coords.ch < 0) { return 0 } + var sepSize = this.lineSeparator().length; + this.iter(this.first, coords.line, function (line) { // iter aborts when callback returns a truthy value + index += line.text.length + sepSize; + }); + return index + }, + + copy: function(copyHistory) { + var doc = new Doc(getLines(this, this.first, this.first + this.size), + this.modeOption, this.first, this.lineSep, this.direction); + doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft; + doc.sel = this.sel; + doc.extend = false; + if (copyHistory) { + doc.history.undoDepth = this.history.undoDepth; + doc.setHistory(this.getHistory()); + } + return doc + }, + + linkedDoc: function(options) { + if (!options) { options = {}; } + var from = this.first, to = this.first + this.size; + if (options.from != null && options.from > from) { from = options.from; } + if (options.to != null && options.to < to) { to = options.to; } + var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep, this.direction); + if (options.sharedHist) { copy.history = this.history + ; }(this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist}); + copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}]; + copySharedMarkers(copy, findSharedMarkers(this)); + return copy + }, + unlinkDoc: function(other) { + var this$1 = this; + + if (other instanceof CodeMirror) { other = other.doc; } + if (this.linked) { for (var i = 0; i < this.linked.length; ++i) { + var link = this$1.linked[i]; + if (link.doc != other) { continue } + this$1.linked.splice(i, 1); + other.unlinkDoc(this$1); + detachSharedMarkers(findSharedMarkers(this$1)); + break + } } + // If the histories were shared, split them again + if (other.history == this.history) { + var splitIds = [other.id]; + linkedDocs(other, function (doc) { return splitIds.push(doc.id); }, true); + other.history = new History(null); + other.history.done = copyHistoryArray(this.history.done, splitIds); + other.history.undone = copyHistoryArray(this.history.undone, splitIds); + } + }, + iterLinkedDocs: function(f) {linkedDocs(this, f);}, + + getMode: function() {return this.mode}, + getEditor: function() {return this.cm}, + + splitLines: function(str) { + if (this.lineSep) { return str.split(this.lineSep) } + return splitLinesAuto(str) + }, + lineSeparator: function() { return this.lineSep || "\n" }, + + setDirection: docMethodOp(function (dir) { + if (dir != "rtl") { dir = "ltr"; } + if (dir == this.direction) { return } + this.direction = dir; + this.iter(function (line) { return line.order = null; }); + if (this.cm) { directionChanged(this.cm); } + }) + }); + + // Public alias. + Doc.prototype.eachLine = Doc.prototype.iter; + + // Kludge to work around strange IE behavior where it'll sometimes + // re-fire a series of drag-related events right after the drop (#1551) + var lastDrop = 0; + + function onDrop(e) { + var cm = this; + clearDragCursor(cm); + if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) + { return } + e_preventDefault(e); + if (ie) { lastDrop = +new Date; } + var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files; + if (!pos || cm.isReadOnly()) { return } + // Might be a file drop, in which case we simply extract the text + // and insert it. + if (files && files.length && window.FileReader && window.File) { + var n = files.length, text = Array(n), read = 0; + var loadFile = function (file, i) { + if (cm.options.allowDropFileTypes && + indexOf(cm.options.allowDropFileTypes, file.type) == -1) + { return } + + var reader = new FileReader; + reader.onload = operation(cm, function () { + var content = reader.result; + if (/[\x00-\x08\x0e-\x1f]{2}/.test(content)) { content = ""; } + text[i] = content; + if (++read == n) { + pos = clipPos(cm.doc, pos); + var change = {from: pos, to: pos, + text: cm.doc.splitLines(text.join(cm.doc.lineSeparator())), + origin: "paste"}; + makeChange(cm.doc, change); + setSelectionReplaceHistory(cm.doc, simpleSelection(pos, changeEnd(change))); + } + }); + reader.readAsText(file); + }; + for (var i = 0; i < n; ++i) { loadFile(files[i], i); } + } else { // Normal drop + // Don't do a replace if the drop happened inside of the selected text. + if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) { + cm.state.draggingText(e); + // Ensure the editor is re-focused + setTimeout(function () { return cm.display.input.focus(); }, 20); + return + } + try { + var text$1 = e.dataTransfer.getData("Text"); + if (text$1) { + var selected; + if (cm.state.draggingText && !cm.state.draggingText.copy) + { selected = cm.listSelections(); } + setSelectionNoUndo(cm.doc, simpleSelection(pos, pos)); + if (selected) { for (var i$1 = 0; i$1 < selected.length; ++i$1) + { replaceRange(cm.doc, "", selected[i$1].anchor, selected[i$1].head, "drag"); } } + cm.replaceSelection(text$1, "around", "paste"); + cm.display.input.focus(); + } + } + catch(e){} + } + } + + function onDragStart(cm, e) { + if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return } + if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { return } + + e.dataTransfer.setData("Text", cm.getSelection()); + e.dataTransfer.effectAllowed = "copyMove"; + + // Use dummy image instead of default browsers image. + // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there. + if (e.dataTransfer.setDragImage && !safari) { + var img = elt("img", null, null, "position: fixed; left: 0; top: 0;"); + img.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="; + if (presto) { + img.width = img.height = 1; + cm.display.wrapper.appendChild(img); + // Force a relayout, or Opera won't use our image for some obscure reason + img._top = img.offsetTop; + } + e.dataTransfer.setDragImage(img, 0, 0); + if (presto) { img.parentNode.removeChild(img); } + } + } + + function onDragOver(cm, e) { + var pos = posFromMouse(cm, e); + if (!pos) { return } + var frag = document.createDocumentFragment(); + drawSelectionCursor(cm, pos, frag); + if (!cm.display.dragCursor) { + cm.display.dragCursor = elt("div", null, "CodeMirror-cursors CodeMirror-dragcursors"); + cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv); + } + removeChildrenAndAdd(cm.display.dragCursor, frag); + } + + function clearDragCursor(cm) { + if (cm.display.dragCursor) { + cm.display.lineSpace.removeChild(cm.display.dragCursor); + cm.display.dragCursor = null; + } + } + + // These must be handled carefully, because naively registering a + // handler for each editor will cause the editors to never be + // garbage collected. + + function forEachCodeMirror(f) { + if (!document.getElementsByClassName) { return } + var byClass = document.getElementsByClassName("CodeMirror"), editors = []; + for (var i = 0; i < byClass.length; i++) { + var cm = byClass[i].CodeMirror; + if (cm) { editors.push(cm); } + } + if (editors.length) { editors[0].operation(function () { + for (var i = 0; i < editors.length; i++) { f(editors[i]); } + }); } + } + + var globalsRegistered = false; + function ensureGlobalHandlers() { + if (globalsRegistered) { return } + registerGlobalHandlers(); + globalsRegistered = true; + } + function registerGlobalHandlers() { + // When the window resizes, we need to refresh active editors. + var resizeTimer; + on(window, "resize", function () { + if (resizeTimer == null) { resizeTimer = setTimeout(function () { + resizeTimer = null; + forEachCodeMirror(onResize); + }, 100); } + }); + // When the window loses focus, we want to show the editor as blurred + on(window, "blur", function () { return forEachCodeMirror(onBlur); }); + } + // Called when the window resizes + function onResize(cm) { + var d = cm.display; + // Might be a text scaling operation, clear size caches. + d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null; + d.scrollbarsClipped = false; + cm.setSize(); + } + + var keyNames = { + 3: "Pause", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt", + 19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End", + 36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert", + 46: "Delete", 59: ";", 61: "=", 91: "Mod", 92: "Mod", 93: "Mod", + 106: "*", 107: "=", 109: "-", 110: ".", 111: "/", 145: "ScrollLock", + 173: "-", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", + 221: "]", 222: "'", 63232: "Up", 63233: "Down", 63234: "Left", 63235: "Right", 63272: "Delete", + 63273: "Home", 63275: "End", 63276: "PageUp", 63277: "PageDown", 63302: "Insert" + }; + + // Number keys + for (var i = 0; i < 10; i++) { keyNames[i + 48] = keyNames[i + 96] = String(i); } + // Alphabetic keys + for (var i$1 = 65; i$1 <= 90; i$1++) { keyNames[i$1] = String.fromCharCode(i$1); } + // Function keys + for (var i$2 = 1; i$2 <= 12; i$2++) { keyNames[i$2 + 111] = keyNames[i$2 + 63235] = "F" + i$2; } + + var keyMap = {}; + + keyMap.basic = { + "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown", + "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown", + "Delete": "delCharAfter", "Backspace": "delCharBefore", "Shift-Backspace": "delCharBefore", + "Tab": "defaultTab", "Shift-Tab": "indentAuto", + "Enter": "newlineAndIndent", "Insert": "toggleOverwrite", + "Esc": "singleSelection" + }; + // Note that the save and find-related commands aren't defined by + // default. User code or addons can define them. Unknown commands + // are simply ignored. + keyMap.pcDefault = { + "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo", + "Ctrl-Home": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Up": "goLineUp", "Ctrl-Down": "goLineDown", + "Ctrl-Left": "goGroupLeft", "Ctrl-Right": "goGroupRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd", + "Ctrl-Backspace": "delGroupBefore", "Ctrl-Delete": "delGroupAfter", "Ctrl-S": "save", "Ctrl-F": "find", + "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll", + "Ctrl-[": "indentLess", "Ctrl-]": "indentMore", + "Ctrl-U": "undoSelection", "Shift-Ctrl-U": "redoSelection", "Alt-U": "redoSelection", + "fallthrough": "basic" + }; + // Very basic readline/emacs-style bindings, which are standard on Mac. + keyMap.emacsy = { + "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown", + "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd", + "Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore", + "Alt-D": "delWordAfter", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars", + "Ctrl-O": "openLine" + }; + keyMap.macDefault = { + "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo", + "Cmd-Home": "goDocStart", "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goGroupLeft", + "Alt-Right": "goGroupRight", "Cmd-Left": "goLineLeft", "Cmd-Right": "goLineRight", "Alt-Backspace": "delGroupBefore", + "Ctrl-Alt-Backspace": "delGroupAfter", "Alt-Delete": "delGroupAfter", "Cmd-S": "save", "Cmd-F": "find", + "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll", + "Cmd-[": "indentLess", "Cmd-]": "indentMore", "Cmd-Backspace": "delWrappedLineLeft", "Cmd-Delete": "delWrappedLineRight", + "Cmd-U": "undoSelection", "Shift-Cmd-U": "redoSelection", "Ctrl-Up": "goDocStart", "Ctrl-Down": "goDocEnd", + "fallthrough": ["basic", "emacsy"] + }; + keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault; + + // KEYMAP DISPATCH + + function normalizeKeyName(name) { + var parts = name.split(/-(?!$)/); + name = parts[parts.length - 1]; + var alt, ctrl, shift, cmd; + for (var i = 0; i < parts.length - 1; i++) { + var mod = parts[i]; + if (/^(cmd|meta|m)$/i.test(mod)) { cmd = true; } + else if (/^a(lt)?$/i.test(mod)) { alt = true; } + else if (/^(c|ctrl|control)$/i.test(mod)) { ctrl = true; } + else if (/^s(hift)?$/i.test(mod)) { shift = true; } + else { throw new Error("Unrecognized modifier name: " + mod) } + } + if (alt) { name = "Alt-" + name; } + if (ctrl) { name = "Ctrl-" + name; } + if (cmd) { name = "Cmd-" + name; } + if (shift) { name = "Shift-" + name; } + return name + } + + // This is a kludge to keep keymaps mostly working as raw objects + // (backwards compatibility) while at the same time support features + // like normalization and multi-stroke key bindings. It compiles a + // new normalized keymap, and then updates the old object to reflect + // this. + function normalizeKeyMap(keymap) { + var copy = {}; + for (var keyname in keymap) { if (keymap.hasOwnProperty(keyname)) { + var value = keymap[keyname]; + if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) { continue } + if (value == "...") { delete keymap[keyname]; continue } + + var keys = map(keyname.split(" "), normalizeKeyName); + for (var i = 0; i < keys.length; i++) { + var val = (void 0), name = (void 0); + if (i == keys.length - 1) { + name = keys.join(" "); + val = value; + } else { + name = keys.slice(0, i + 1).join(" "); + val = "..."; + } + var prev = copy[name]; + if (!prev) { copy[name] = val; } + else if (prev != val) { throw new Error("Inconsistent bindings for " + name) } + } + delete keymap[keyname]; + } } + for (var prop in copy) { keymap[prop] = copy[prop]; } + return keymap + } + + function lookupKey(key, map$$1, handle, context) { + map$$1 = getKeyMap(map$$1); + var found = map$$1.call ? map$$1.call(key, context) : map$$1[key]; + if (found === false) { return "nothing" } + if (found === "...") { return "multi" } + if (found != null && handle(found)) { return "handled" } + + if (map$$1.fallthrough) { + if (Object.prototype.toString.call(map$$1.fallthrough) != "[object Array]") + { return lookupKey(key, map$$1.fallthrough, handle, context) } + for (var i = 0; i < map$$1.fallthrough.length; i++) { + var result = lookupKey(key, map$$1.fallthrough[i], handle, context); + if (result) { return result } + } + } + } + + // Modifier key presses don't count as 'real' key presses for the + // purpose of keymap fallthrough. + function isModifierKey(value) { + var name = typeof value == "string" ? value : keyNames[value.keyCode]; + return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod" + } + + function addModifierNames(name, event, noShift) { + var base = name; + if (event.altKey && base != "Alt") { name = "Alt-" + name; } + if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != "Ctrl") { name = "Ctrl-" + name; } + if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != "Cmd") { name = "Cmd-" + name; } + if (!noShift && event.shiftKey && base != "Shift") { name = "Shift-" + name; } + return name + } + + // Look up the name of a key as indicated by an event object. + function keyName(event, noShift) { + if (presto && event.keyCode == 34 && event["char"]) { return false } + var name = keyNames[event.keyCode]; + if (name == null || event.altGraphKey) { return false } + // Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause, + // so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+) + if (event.keyCode == 3 && event.code) { name = event.code; } + return addModifierNames(name, event, noShift) + } + + function getKeyMap(val) { + return typeof val == "string" ? keyMap[val] : val + } + + // Helper for deleting text near the selection(s), used to implement + // backspace, delete, and similar functionality. + function deleteNearSelection(cm, compute) { + var ranges = cm.doc.sel.ranges, kill = []; + // Build up a set of ranges to kill first, merging overlapping + // ranges. + for (var i = 0; i < ranges.length; i++) { + var toKill = compute(ranges[i]); + while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) { + var replaced = kill.pop(); + if (cmp(replaced.from, toKill.from) < 0) { + toKill.from = replaced.from; + break + } + } + kill.push(toKill); + } + // Next, remove those actual ranges. + runInOp(cm, function () { + for (var i = kill.length - 1; i >= 0; i--) + { replaceRange(cm.doc, "", kill[i].from, kill[i].to, "+delete"); } + ensureCursorVisible(cm); + }); + } + + function moveCharLogically(line, ch, dir) { + var target = skipExtendingChars(line.text, ch + dir, dir); + return target < 0 || target > line.text.length ? null : target + } + + function moveLogically(line, start, dir) { + var ch = moveCharLogically(line, start.ch, dir); + return ch == null ? null : new Pos(start.line, ch, dir < 0 ? "after" : "before") + } + + function endOfLine(visually, cm, lineObj, lineNo, dir) { + if (visually) { + var order = getOrder(lineObj, cm.doc.direction); + if (order) { + var part = dir < 0 ? lst(order) : order[0]; + var moveInStorageOrder = (dir < 0) == (part.level == 1); + var sticky = moveInStorageOrder ? "after" : "before"; + var ch; + // With a wrapped rtl chunk (possibly spanning multiple bidi parts), + // it could be that the last bidi part is not on the last visual line, + // since visual lines contain content order-consecutive chunks. + // Thus, in rtl, we are looking for the first (content-order) character + // in the rtl chunk that is on the last line (that is, the same line + // as the last (content-order) character). + if (part.level > 0 || cm.doc.direction == "rtl") { + var prep = prepareMeasureForLine(cm, lineObj); + ch = dir < 0 ? lineObj.text.length - 1 : 0; + var targetTop = measureCharPrepared(cm, prep, ch).top; + ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch); + if (sticky == "before") { ch = moveCharLogically(lineObj, ch, 1); } + } else { ch = dir < 0 ? part.to : part.from; } + return new Pos(lineNo, ch, sticky) + } + } + return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? "before" : "after") + } + + function moveVisually(cm, line, start, dir) { + var bidi = getOrder(line, cm.doc.direction); + if (!bidi) { return moveLogically(line, start, dir) } + if (start.ch >= line.text.length) { + start.ch = line.text.length; + start.sticky = "before"; + } else if (start.ch <= 0) { + start.ch = 0; + start.sticky = "after"; + } + var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos]; + if (cm.doc.direction == "ltr" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) { + // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines, + // nothing interesting happens. + return moveLogically(line, start, dir) + } + + var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); }; + var prep; + var getWrappedLineExtent = function (ch) { + if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} } + prep = prep || prepareMeasureForLine(cm, line); + return wrappedLineExtentChar(cm, line, prep, ch) + }; + var wrappedLineExtent = getWrappedLineExtent(start.sticky == "before" ? mv(start, -1) : start.ch); + + if (cm.doc.direction == "rtl" || part.level == 1) { + var moveInStorageOrder = (part.level == 1) == (dir < 0); + var ch = mv(start, moveInStorageOrder ? 1 : -1); + if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) { + // Case 2: We move within an rtl part or in an rtl editor on the same visual line + var sticky = moveInStorageOrder ? "before" : "after"; + return new Pos(start.line, ch, sticky) + } + } + + // Case 3: Could not move within this bidi part in this visual line, so leave + // the current bidi part + + var searchInVisualLine = function (partPos, dir, wrappedLineExtent) { + var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder + ? new Pos(start.line, mv(ch, 1), "before") + : new Pos(start.line, ch, "after"); }; + + for (; partPos >= 0 && partPos < bidi.length; partPos += dir) { + var part = bidi[partPos]; + var moveInStorageOrder = (dir > 0) == (part.level != 1); + var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1); + if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) } + ch = moveInStorageOrder ? part.from : mv(part.to, -1); + if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) } + } + }; + + // Case 3a: Look for other bidi parts on the same visual line + var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent); + if (res) { return res } + + // Case 3b: Look for other bidi parts on the next visual line + var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1); + if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) { + res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh)); + if (res) { return res } + } + + // Case 4: Nowhere to move + return null + } + + // Commands are parameter-less actions that can be performed on an + // editor, mostly used for keybindings. + var commands = { + selectAll: selectAll, + singleSelection: function (cm) { return cm.setSelection(cm.getCursor("anchor"), cm.getCursor("head"), sel_dontScroll); }, + killLine: function (cm) { return deleteNearSelection(cm, function (range) { + if (range.empty()) { + var len = getLine(cm.doc, range.head.line).text.length; + if (range.head.ch == len && range.head.line < cm.lastLine()) + { return {from: range.head, to: Pos(range.head.line + 1, 0)} } + else + { return {from: range.head, to: Pos(range.head.line, len)} } + } else { + return {from: range.from(), to: range.to()} + } + }); }, + deleteLine: function (cm) { return deleteNearSelection(cm, function (range) { return ({ + from: Pos(range.from().line, 0), + to: clipPos(cm.doc, Pos(range.to().line + 1, 0)) + }); }); }, + delLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { return ({ + from: Pos(range.from().line, 0), to: range.from() + }); }); }, + delWrappedLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { + var top = cm.charCoords(range.head, "div").top + 5; + var leftPos = cm.coordsChar({left: 0, top: top}, "div"); + return {from: leftPos, to: range.from()} + }); }, + delWrappedLineRight: function (cm) { return deleteNearSelection(cm, function (range) { + var top = cm.charCoords(range.head, "div").top + 5; + var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div"); + return {from: range.from(), to: rightPos } + }); }, + undo: function (cm) { return cm.undo(); }, + redo: function (cm) { return cm.redo(); }, + undoSelection: function (cm) { return cm.undoSelection(); }, + redoSelection: function (cm) { return cm.redoSelection(); }, + goDocStart: function (cm) { return cm.extendSelection(Pos(cm.firstLine(), 0)); }, + goDocEnd: function (cm) { return cm.extendSelection(Pos(cm.lastLine())); }, + goLineStart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStart(cm, range.head.line); }, + {origin: "+move", bias: 1} + ); }, + goLineStartSmart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStartSmart(cm, range.head); }, + {origin: "+move", bias: 1} + ); }, + goLineEnd: function (cm) { return cm.extendSelectionsBy(function (range) { return lineEnd(cm, range.head.line); }, + {origin: "+move", bias: -1} + ); }, + goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) { + var top = cm.cursorCoords(range.head, "div").top + 5; + return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div") + }, sel_move); }, + goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) { + var top = cm.cursorCoords(range.head, "div").top + 5; + return cm.coordsChar({left: 0, top: top}, "div") + }, sel_move); }, + goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) { + var top = cm.cursorCoords(range.head, "div").top + 5; + var pos = cm.coordsChar({left: 0, top: top}, "div"); + if (pos.ch < cm.getLine(pos.line).search(/\S/)) { return lineStartSmart(cm, range.head) } + return pos + }, sel_move); }, + goLineUp: function (cm) { return cm.moveV(-1, "line"); }, + goLineDown: function (cm) { return cm.moveV(1, "line"); }, + goPageUp: function (cm) { return cm.moveV(-1, "page"); }, + goPageDown: function (cm) { return cm.moveV(1, "page"); }, + goCharLeft: function (cm) { return cm.moveH(-1, "char"); }, + goCharRight: function (cm) { return cm.moveH(1, "char"); }, + goColumnLeft: function (cm) { return cm.moveH(-1, "column"); }, + goColumnRight: function (cm) { return cm.moveH(1, "column"); }, + goWordLeft: function (cm) { return cm.moveH(-1, "word"); }, + goGroupRight: function (cm) { return cm.moveH(1, "group"); }, + goGroupLeft: function (cm) { return cm.moveH(-1, "group"); }, + goWordRight: function (cm) { return cm.moveH(1, "word"); }, + delCharBefore: function (cm) { return cm.deleteH(-1, "char"); }, + delCharAfter: function (cm) { return cm.deleteH(1, "char"); }, + delWordBefore: function (cm) { return cm.deleteH(-1, "word"); }, + delWordAfter: function (cm) { return cm.deleteH(1, "word"); }, + delGroupBefore: function (cm) { return cm.deleteH(-1, "group"); }, + delGroupAfter: function (cm) { return cm.deleteH(1, "group"); }, + indentAuto: function (cm) { return cm.indentSelection("smart"); }, + indentMore: function (cm) { return cm.indentSelection("add"); }, + indentLess: function (cm) { return cm.indentSelection("subtract"); }, + insertTab: function (cm) { return cm.replaceSelection("\t"); }, + insertSoftTab: function (cm) { + var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize; + for (var i = 0; i < ranges.length; i++) { + var pos = ranges[i].from(); + var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize); + spaces.push(spaceStr(tabSize - col % tabSize)); + } + cm.replaceSelections(spaces); + }, + defaultTab: function (cm) { + if (cm.somethingSelected()) { cm.indentSelection("add"); } + else { cm.execCommand("insertTab"); } + }, + // Swap the two chars left and right of each selection's head. + // Move cursor behind the two swapped characters afterwards. + // + // Doesn't consider line feeds a character. + // Doesn't scan more than one line above to find a character. + // Doesn't do anything on an empty line. + // Doesn't do anything with non-empty selections. + transposeChars: function (cm) { return runInOp(cm, function () { + var ranges = cm.listSelections(), newSel = []; + for (var i = 0; i < ranges.length; i++) { + if (!ranges[i].empty()) { continue } + var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text; + if (line) { + if (cur.ch == line.length) { cur = new Pos(cur.line, cur.ch - 1); } + if (cur.ch > 0) { + cur = new Pos(cur.line, cur.ch + 1); + cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2), + Pos(cur.line, cur.ch - 2), cur, "+transpose"); + } else if (cur.line > cm.doc.first) { + var prev = getLine(cm.doc, cur.line - 1).text; + if (prev) { + cur = new Pos(cur.line, 1); + cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() + + prev.charAt(prev.length - 1), + Pos(cur.line - 1, prev.length - 1), cur, "+transpose"); + } + } + } + newSel.push(new Range(cur, cur)); + } + cm.setSelections(newSel); + }); }, + newlineAndIndent: function (cm) { return runInOp(cm, function () { + var sels = cm.listSelections(); + for (var i = sels.length - 1; i >= 0; i--) + { cm.replaceRange(cm.doc.lineSeparator(), sels[i].anchor, sels[i].head, "+input"); } + sels = cm.listSelections(); + for (var i$1 = 0; i$1 < sels.length; i$1++) + { cm.indentLine(sels[i$1].from().line, null, true); } + ensureCursorVisible(cm); + }); }, + openLine: function (cm) { return cm.replaceSelection("\n", "start"); }, + toggleOverwrite: function (cm) { return cm.toggleOverwrite(); } + }; + + + function lineStart(cm, lineN) { + var line = getLine(cm.doc, lineN); + var visual = visualLine(line); + if (visual != line) { lineN = lineNo(visual); } + return endOfLine(true, cm, visual, lineN, 1) + } + function lineEnd(cm, lineN) { + var line = getLine(cm.doc, lineN); + var visual = visualLineEnd(line); + if (visual != line) { lineN = lineNo(visual); } + return endOfLine(true, cm, line, lineN, -1) + } + function lineStartSmart(cm, pos) { + var start = lineStart(cm, pos.line); + var line = getLine(cm.doc, start.line); + var order = getOrder(line, cm.doc.direction); + if (!order || order[0].level == 0) { + var firstNonWS = Math.max(0, line.text.search(/\S/)); + var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch; + return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky) + } + return start + } + + // Run a handler that was bound to a key. + function doHandleBinding(cm, bound, dropShift) { + if (typeof bound == "string") { + bound = commands[bound]; + if (!bound) { return false } + } + // Ensure previous input has been read, so that the handler sees a + // consistent view of the document + cm.display.input.ensurePolled(); + var prevShift = cm.display.shift, done = false; + try { + if (cm.isReadOnly()) { cm.state.suppressEdits = true; } + if (dropShift) { cm.display.shift = false; } + done = bound(cm) != Pass; + } finally { + cm.display.shift = prevShift; + cm.state.suppressEdits = false; + } + return done + } + + function lookupKeyForEditor(cm, name, handle) { + for (var i = 0; i < cm.state.keyMaps.length; i++) { + var result = lookupKey(name, cm.state.keyMaps[i], handle, cm); + if (result) { return result } + } + return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm)) + || lookupKey(name, cm.options.keyMap, handle, cm) + } + + // Note that, despite the name, this function is also used to check + // for bound mouse clicks. + + var stopSeq = new Delayed; + + function dispatchKey(cm, name, e, handle) { + var seq = cm.state.keySeq; + if (seq) { + if (isModifierKey(name)) { return "handled" } + if (/\'$/.test(name)) + { cm.state.keySeq = null; } + else + { stopSeq.set(50, function () { + if (cm.state.keySeq == seq) { + cm.state.keySeq = null; + cm.display.input.reset(); + } + }); } + if (dispatchKeyInner(cm, seq + " " + name, e, handle)) { return true } + } + return dispatchKeyInner(cm, name, e, handle) + } + + function dispatchKeyInner(cm, name, e, handle) { + var result = lookupKeyForEditor(cm, name, handle); + + if (result == "multi") + { cm.state.keySeq = name; } + if (result == "handled") + { signalLater(cm, "keyHandled", cm, name, e); } + + if (result == "handled" || result == "multi") { + e_preventDefault(e); + restartBlink(cm); + } + + return !!result + } + + // Handle a key from the keydown event. + function handleKeyBinding(cm, e) { + var name = keyName(e, true); + if (!name) { return false } + + if (e.shiftKey && !cm.state.keySeq) { + // First try to resolve full name (including 'Shift-'). Failing + // that, see if there is a cursor-motion command (starting with + // 'go') bound to the keyname without 'Shift-'. + return dispatchKey(cm, "Shift-" + name, e, function (b) { return doHandleBinding(cm, b, true); }) + || dispatchKey(cm, name, e, function (b) { + if (typeof b == "string" ? /^go[A-Z]/.test(b) : b.motion) + { return doHandleBinding(cm, b) } + }) + } else { + return dispatchKey(cm, name, e, function (b) { return doHandleBinding(cm, b); }) + } + } + + // Handle a key from the keypress event + function handleCharBinding(cm, e, ch) { + return dispatchKey(cm, "'" + ch + "'", e, function (b) { return doHandleBinding(cm, b, true); }) + } + + var lastStoppedKey = null; + function onKeyDown(e) { + var cm = this; + cm.curOp.focus = activeElt(); + if (signalDOMEvent(cm, e)) { return } + // IE does strange things with escape. + if (ie && ie_version < 11 && e.keyCode == 27) { e.returnValue = false; } + var code = e.keyCode; + cm.display.shift = code == 16 || e.shiftKey; + var handled = handleKeyBinding(cm, e); + if (presto) { + lastStoppedKey = handled ? code : null; + // Opera has no cut event... we try to at least catch the key combo + if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey)) + { cm.replaceSelection("", null, "cut"); } + } + + // Turn mouse into crosshair when Alt is held on Mac. + if (code == 18 && !/\bCodeMirror-crosshair\b/.test(cm.display.lineDiv.className)) + { showCrossHair(cm); } + } + + function showCrossHair(cm) { + var lineDiv = cm.display.lineDiv; + addClass(lineDiv, "CodeMirror-crosshair"); + + function up(e) { + if (e.keyCode == 18 || !e.altKey) { + rmClass(lineDiv, "CodeMirror-crosshair"); + off(document, "keyup", up); + off(document, "mouseover", up); + } + } + on(document, "keyup", up); + on(document, "mouseover", up); + } + + function onKeyUp(e) { + if (e.keyCode == 16) { this.doc.sel.shift = false; } + signalDOMEvent(this, e); + } + + function onKeyPress(e) { + var cm = this; + if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { return } + var keyCode = e.keyCode, charCode = e.charCode; + if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return} + if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) { return } + var ch = String.fromCharCode(charCode == null ? keyCode : charCode); + // Some browsers fire keypress events for backspace + if (ch == "\x08") { return } + if (handleCharBinding(cm, e, ch)) { return } + cm.display.input.onKeyPress(e); + } + + var DOUBLECLICK_DELAY = 400; + + var PastClick = function(time, pos, button) { + this.time = time; + this.pos = pos; + this.button = button; + }; + + PastClick.prototype.compare = function (time, pos, button) { + return this.time + DOUBLECLICK_DELAY > time && + cmp(pos, this.pos) == 0 && button == this.button + }; + + var lastClick, lastDoubleClick; + function clickRepeat(pos, button) { + var now = +new Date; + if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) { + lastClick = lastDoubleClick = null; + return "triple" + } else if (lastClick && lastClick.compare(now, pos, button)) { + lastDoubleClick = new PastClick(now, pos, button); + lastClick = null; + return "double" + } else { + lastClick = new PastClick(now, pos, button); + lastDoubleClick = null; + return "single" + } + } + + // A mouse down can be a single click, double click, triple click, + // start of selection drag, start of text drag, new cursor + // (ctrl-click), rectangle drag (alt-drag), or xwin + // middle-click-paste. Or it might be a click on something we should + // not interfere with, such as a scrollbar or widget. + function onMouseDown(e) { + var cm = this, display = cm.display; + if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) { return } + display.input.ensurePolled(); + display.shift = e.shiftKey; + + if (eventInWidget(display, e)) { + if (!webkit) { + // Briefly turn off draggability, to allow widgets to do + // normal dragging things. + display.scroller.draggable = false; + setTimeout(function () { return display.scroller.draggable = true; }, 100); + } + return + } + if (clickInGutter(cm, e)) { return } + var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : "single"; + window.focus(); + + // #3261: make sure, that we're not starting a second selection + if (button == 1 && cm.state.selectingText) + { cm.state.selectingText(e); } + + if (pos && handleMappedButton(cm, button, pos, repeat, e)) { return } + + if (button == 1) { + if (pos) { leftButtonDown(cm, pos, repeat, e); } + else if (e_target(e) == display.scroller) { e_preventDefault(e); } + } else if (button == 2) { + if (pos) { extendSelection(cm.doc, pos); } + setTimeout(function () { return display.input.focus(); }, 20); + } else if (button == 3) { + if (captureRightClick) { cm.display.input.onContextMenu(e); } + else { delayBlurEvent(cm); } + } + } + + function handleMappedButton(cm, button, pos, repeat, event) { + var name = "Click"; + if (repeat == "double") { name = "Double" + name; } + else if (repeat == "triple") { name = "Triple" + name; } + name = (button == 1 ? "Left" : button == 2 ? "Middle" : "Right") + name; + + return dispatchKey(cm, addModifierNames(name, event), event, function (bound) { + if (typeof bound == "string") { bound = commands[bound]; } + if (!bound) { return false } + var done = false; + try { + if (cm.isReadOnly()) { cm.state.suppressEdits = true; } + done = bound(cm, pos) != Pass; + } finally { + cm.state.suppressEdits = false; + } + return done + }) + } + + function configureMouse(cm, repeat, event) { + var option = cm.getOption("configureMouse"); + var value = option ? option(cm, repeat, event) : {}; + if (value.unit == null) { + var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey; + value.unit = rect ? "rectangle" : repeat == "single" ? "char" : repeat == "double" ? "word" : "line"; + } + if (value.extend == null || cm.doc.extend) { value.extend = cm.doc.extend || event.shiftKey; } + if (value.addNew == null) { value.addNew = mac ? event.metaKey : event.ctrlKey; } + if (value.moveOnDrag == null) { value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); } + return value + } + + function leftButtonDown(cm, pos, repeat, event) { + if (ie) { setTimeout(bind(ensureFocus, cm), 0); } + else { cm.curOp.focus = activeElt(); } + + var behavior = configureMouse(cm, repeat, event); + + var sel = cm.doc.sel, contained; + if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() && + repeat == "single" && (contained = sel.contains(pos)) > -1 && + (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) && + (cmp(contained.to(), pos) > 0 || pos.xRel < 0)) + { leftButtonStartDrag(cm, event, pos, behavior); } + else + { leftButtonSelect(cm, event, pos, behavior); } + } + + // Start a text drag. When it ends, see if any dragging actually + // happen, and treat as a click if it didn't. + function leftButtonStartDrag(cm, event, pos, behavior) { + var display = cm.display, moved = false; + var dragEnd = operation(cm, function (e) { + if (webkit) { display.scroller.draggable = false; } + cm.state.draggingText = false; + off(display.wrapper.ownerDocument, "mouseup", dragEnd); + off(display.wrapper.ownerDocument, "mousemove", mouseMove); + off(display.scroller, "dragstart", dragStart); + off(display.scroller, "drop", dragEnd); + if (!moved) { + e_preventDefault(e); + if (!behavior.addNew) + { extendSelection(cm.doc, pos, null, null, behavior.extend); } + // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081) + if (webkit || ie && ie_version == 9) + { setTimeout(function () {display.wrapper.ownerDocument.body.focus(); display.input.focus();}, 20); } + else + { display.input.focus(); } + } + }); + var mouseMove = function(e2) { + moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10; + }; + var dragStart = function () { return moved = true; }; + // Let the drag handler handle this. + if (webkit) { display.scroller.draggable = true; } + cm.state.draggingText = dragEnd; + dragEnd.copy = !behavior.moveOnDrag; + // IE's approach to draggable + if (display.scroller.dragDrop) { display.scroller.dragDrop(); } + on(display.wrapper.ownerDocument, "mouseup", dragEnd); + on(display.wrapper.ownerDocument, "mousemove", mouseMove); + on(display.scroller, "dragstart", dragStart); + on(display.scroller, "drop", dragEnd); + + delayBlurEvent(cm); + setTimeout(function () { return display.input.focus(); }, 20); + } + + function rangeForUnit(cm, pos, unit) { + if (unit == "char") { return new Range(pos, pos) } + if (unit == "word") { return cm.findWordAt(pos) } + if (unit == "line") { return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))) } + var result = unit(cm, pos); + return new Range(result.from, result.to) + } + + // Normal selection, as opposed to text dragging. + function leftButtonSelect(cm, event, start, behavior) { + var display = cm.display, doc = cm.doc; + e_preventDefault(event); + + var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges; + if (behavior.addNew && !behavior.extend) { + ourIndex = doc.sel.contains(start); + if (ourIndex > -1) + { ourRange = ranges[ourIndex]; } + else + { ourRange = new Range(start, start); } + } else { + ourRange = doc.sel.primary(); + ourIndex = doc.sel.primIndex; + } + + if (behavior.unit == "rectangle") { + if (!behavior.addNew) { ourRange = new Range(start, start); } + start = posFromMouse(cm, event, true, true); + ourIndex = -1; + } else { + var range$$1 = rangeForUnit(cm, start, behavior.unit); + if (behavior.extend) + { ourRange = extendRange(ourRange, range$$1.anchor, range$$1.head, behavior.extend); } + else + { ourRange = range$$1; } + } + + if (!behavior.addNew) { + ourIndex = 0; + setSelection(doc, new Selection([ourRange], 0), sel_mouse); + startSel = doc.sel; + } else if (ourIndex == -1) { + ourIndex = ranges.length; + setSelection(doc, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex), + {scroll: false, origin: "*mouse"}); + } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == "char" && !behavior.extend) { + setSelection(doc, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0), + {scroll: false, origin: "*mouse"}); + startSel = doc.sel; + } else { + replaceOneSelection(doc, ourIndex, ourRange, sel_mouse); + } + + var lastPos = start; + function extendTo(pos) { + if (cmp(lastPos, pos) == 0) { return } + lastPos = pos; + + if (behavior.unit == "rectangle") { + var ranges = [], tabSize = cm.options.tabSize; + var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize); + var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize); + var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol); + for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line)); + line <= end; line++) { + var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize); + if (left == right) + { ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); } + else if (text.length > leftPos) + { ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); } + } + if (!ranges.length) { ranges.push(new Range(start, start)); } + setSelection(doc, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex), + {origin: "*mouse", scroll: false}); + cm.scrollIntoView(pos); + } else { + var oldRange = ourRange; + var range$$1 = rangeForUnit(cm, pos, behavior.unit); + var anchor = oldRange.anchor, head; + if (cmp(range$$1.anchor, anchor) > 0) { + head = range$$1.head; + anchor = minPos(oldRange.from(), range$$1.anchor); + } else { + head = range$$1.anchor; + anchor = maxPos(oldRange.to(), range$$1.head); + } + var ranges$1 = startSel.ranges.slice(0); + ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head)); + setSelection(doc, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse); + } + } + + var editorSize = display.wrapper.getBoundingClientRect(); + // Used to ensure timeout re-tries don't fire when another extend + // happened in the meantime (clearTimeout isn't reliable -- at + // least on Chrome, the timeouts still happen even when cleared, + // if the clear happens after their scheduled firing time). + var counter = 0; + + function extend(e) { + var curCount = ++counter; + var cur = posFromMouse(cm, e, true, behavior.unit == "rectangle"); + if (!cur) { return } + if (cmp(cur, lastPos) != 0) { + cm.curOp.focus = activeElt(); + extendTo(cur); + var visible = visibleLines(display, doc); + if (cur.line >= visible.to || cur.line < visible.from) + { setTimeout(operation(cm, function () {if (counter == curCount) { extend(e); }}), 150); } + } else { + var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0; + if (outside) { setTimeout(operation(cm, function () { + if (counter != curCount) { return } + display.scroller.scrollTop += outside; + extend(e); + }), 50); } + } + } + + function done(e) { + cm.state.selectingText = false; + counter = Infinity; + // If e is null or undefined we interpret this as someone trying + // to explicitly cancel the selection rather than the user + // letting go of the mouse button. + if (e) { + e_preventDefault(e); + display.input.focus(); + } + off(display.wrapper.ownerDocument, "mousemove", move); + off(display.wrapper.ownerDocument, "mouseup", up); + doc.history.lastSelOrigin = null; + } + + var move = operation(cm, function (e) { + if (e.buttons === 0 || !e_button(e)) { done(e); } + else { extend(e); } + }); + var up = operation(cm, done); + cm.state.selectingText = up; + on(display.wrapper.ownerDocument, "mousemove", move); + on(display.wrapper.ownerDocument, "mouseup", up); + } + + // Used when mouse-selecting to adjust the anchor to the proper side + // of a bidi jump depending on the visual position of the head. + function bidiSimplify(cm, range$$1) { + var anchor = range$$1.anchor; + var head = range$$1.head; + var anchorLine = getLine(cm.doc, anchor.line); + if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range$$1 } + var order = getOrder(anchorLine); + if (!order) { return range$$1 } + var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index]; + if (part.from != anchor.ch && part.to != anchor.ch) { return range$$1 } + var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1); + if (boundary == 0 || boundary == order.length) { return range$$1 } + + // Compute the relative visual position of the head compared to the + // anchor (<0 is to the left, >0 to the right) + var leftSide; + if (head.line != anchor.line) { + leftSide = (head.line - anchor.line) * (cm.doc.direction == "ltr" ? 1 : -1) > 0; + } else { + var headIndex = getBidiPartAt(order, head.ch, head.sticky); + var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1); + if (headIndex == boundary - 1 || headIndex == boundary) + { leftSide = dir < 0; } + else + { leftSide = dir > 0; } + } + + var usePart = order[boundary + (leftSide ? -1 : 0)]; + var from = leftSide == (usePart.level == 1); + var ch = from ? usePart.from : usePart.to, sticky = from ? "after" : "before"; + return anchor.ch == ch && anchor.sticky == sticky ? range$$1 : new Range(new Pos(anchor.line, ch, sticky), head) + } + + + // Determines whether an event happened in the gutter, and fires the + // handlers for the corresponding event. + function gutterEvent(cm, e, type, prevent) { + var mX, mY; + if (e.touches) { + mX = e.touches[0].clientX; + mY = e.touches[0].clientY; + } else { + try { mX = e.clientX; mY = e.clientY; } + catch(e) { return false } + } + if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false } + if (prevent) { e_preventDefault(e); } + + var display = cm.display; + var lineBox = display.lineDiv.getBoundingClientRect(); + + if (mY > lineBox.bottom || !hasHandler(cm, type)) { return e_defaultPrevented(e) } + mY -= lineBox.top - display.viewOffset; + + for (var i = 0; i < cm.display.gutterSpecs.length; ++i) { + var g = display.gutters.childNodes[i]; + if (g && g.getBoundingClientRect().right >= mX) { + var line = lineAtHeight(cm.doc, mY); + var gutter = cm.display.gutterSpecs[i]; + signal(cm, type, cm, line, gutter.className, e); + return e_defaultPrevented(e) + } + } + } + + function clickInGutter(cm, e) { + return gutterEvent(cm, e, "gutterClick", true) + } + + // CONTEXT MENU HANDLING + + // To make the context menu work, we need to briefly unhide the + // textarea (making it as unobtrusive as possible) to let the + // right-click take effect on it. + function onContextMenu(cm, e) { + if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) { return } + if (signalDOMEvent(cm, e, "contextmenu")) { return } + if (!captureRightClick) { cm.display.input.onContextMenu(e); } + } + + function contextMenuInGutter(cm, e) { + if (!hasHandler(cm, "gutterContextMenu")) { return false } + return gutterEvent(cm, e, "gutterContextMenu", false) + } + + function themeChanged(cm) { + cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") + + cm.options.theme.replace(/(^|\s)\s*/g, " cm-s-"); + clearCaches(cm); + } + + var Init = {toString: function(){return "CodeMirror.Init"}}; + + var defaults = {}; + var optionHandlers = {}; + + function defineOptions(CodeMirror) { + var optionHandlers = CodeMirror.optionHandlers; + + function option(name, deflt, handle, notOnInit) { + CodeMirror.defaults[name] = deflt; + if (handle) { optionHandlers[name] = + notOnInit ? function (cm, val, old) {if (old != Init) { handle(cm, val, old); }} : handle; } + } + + CodeMirror.defineOption = option; + + // Passed to option handlers when there is no old value. + CodeMirror.Init = Init; + + // These two are, on init, called from the constructor because they + // have to be initialized before the editor can start at all. + option("value", "", function (cm, val) { return cm.setValue(val); }, true); + option("mode", null, function (cm, val) { + cm.doc.modeOption = val; + loadMode(cm); + }, true); + + option("indentUnit", 2, loadMode, true); + option("indentWithTabs", false); + option("smartIndent", true); + option("tabSize", 4, function (cm) { + resetModeState(cm); + clearCaches(cm); + regChange(cm); + }, true); + + option("lineSeparator", null, function (cm, val) { + cm.doc.lineSep = val; + if (!val) { return } + var newBreaks = [], lineNo = cm.doc.first; + cm.doc.iter(function (line) { + for (var pos = 0;;) { + var found = line.text.indexOf(val, pos); + if (found == -1) { break } + pos = found + val.length; + newBreaks.push(Pos(lineNo, found)); + } + lineNo++; + }); + for (var i = newBreaks.length - 1; i >= 0; i--) + { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); } + }); + option("specialChars", /[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g, function (cm, val, old) { + cm.state.specialChars = new RegExp(val.source + (val.test("\t") ? "" : "|\t"), "g"); + if (old != Init) { cm.refresh(); } + }); + option("specialCharPlaceholder", defaultSpecialCharPlaceholder, function (cm) { return cm.refresh(); }, true); + option("electricChars", true); + option("inputStyle", mobile ? "contenteditable" : "textarea", function () { + throw new Error("inputStyle can not (yet) be changed in a running editor") // FIXME + }, true); + option("spellcheck", false, function (cm, val) { return cm.getInputField().spellcheck = val; }, true); + option("autocorrect", false, function (cm, val) { return cm.getInputField().autocorrect = val; }, true); + option("autocapitalize", false, function (cm, val) { return cm.getInputField().autocapitalize = val; }, true); + option("rtlMoveVisually", !windows); + option("wholeLineUpdateBefore", true); + + option("theme", "default", function (cm) { + themeChanged(cm); + updateGutters(cm); + }, true); + option("keyMap", "default", function (cm, val, old) { + var next = getKeyMap(val); + var prev = old != Init && getKeyMap(old); + if (prev && prev.detach) { prev.detach(cm, next); } + if (next.attach) { next.attach(cm, prev || null); } + }); + option("extraKeys", null); + option("configureMouse", null); + + option("lineWrapping", false, wrappingChanged, true); + option("gutters", [], function (cm, val) { + cm.display.gutterSpecs = getGutters(val, cm.options.lineNumbers); + updateGutters(cm); + }, true); + option("fixedGutter", true, function (cm, val) { + cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + "px" : "0"; + cm.refresh(); + }, true); + option("coverGutterNextToScrollbar", false, function (cm) { return updateScrollbars(cm); }, true); + option("scrollbarStyle", "native", function (cm) { + initScrollbars(cm); + updateScrollbars(cm); + cm.display.scrollbars.setScrollTop(cm.doc.scrollTop); + cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft); + }, true); + option("lineNumbers", false, function (cm, val) { + cm.display.gutterSpecs = getGutters(cm.options.gutters, val); + updateGutters(cm); + }, true); + option("firstLineNumber", 1, updateGutters, true); + option("lineNumberFormatter", function (integer) { return integer; }, updateGutters, true); + option("showCursorWhenSelecting", false, updateSelection, true); + + option("resetSelectionOnContextMenu", true); + option("lineWiseCopyCut", true); + option("pasteLinesPerSelection", true); + option("selectionsMayTouch", false); + + option("readOnly", false, function (cm, val) { + if (val == "nocursor") { + onBlur(cm); + cm.display.input.blur(); + } + cm.display.input.readOnlyChanged(val); + }); + option("disableInput", false, function (cm, val) {if (!val) { cm.display.input.reset(); }}, true); + option("dragDrop", true, dragDropChanged); + option("allowDropFileTypes", null); + + option("cursorBlinkRate", 530); + option("cursorScrollMargin", 0); + option("cursorHeight", 1, updateSelection, true); + option("singleCursorHeightPerLine", true, updateSelection, true); + option("workTime", 100); + option("workDelay", 100); + option("flattenSpans", true, resetModeState, true); + option("addModeClass", false, resetModeState, true); + option("pollInterval", 100); + option("undoDepth", 200, function (cm, val) { return cm.doc.history.undoDepth = val; }); + option("historyEventDelay", 1250); + option("viewportMargin", 10, function (cm) { return cm.refresh(); }, true); + option("maxHighlightLength", 10000, resetModeState, true); + option("moveInputWithCursor", true, function (cm, val) { + if (!val) { cm.display.input.resetPosition(); } + }); + + option("tabindex", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || ""; }); + option("autofocus", null); + option("direction", "ltr", function (cm, val) { return cm.doc.setDirection(val); }, true); + option("phrases", null); + } + + function dragDropChanged(cm, value, old) { + var wasOn = old && old != Init; + if (!value != !wasOn) { + var funcs = cm.display.dragFunctions; + var toggle = value ? on : off; + toggle(cm.display.scroller, "dragstart", funcs.start); + toggle(cm.display.scroller, "dragenter", funcs.enter); + toggle(cm.display.scroller, "dragover", funcs.over); + toggle(cm.display.scroller, "dragleave", funcs.leave); + toggle(cm.display.scroller, "drop", funcs.drop); + } + } + + function wrappingChanged(cm) { + if (cm.options.lineWrapping) { + addClass(cm.display.wrapper, "CodeMirror-wrap"); + cm.display.sizer.style.minWidth = ""; + cm.display.sizerWidth = null; + } else { + rmClass(cm.display.wrapper, "CodeMirror-wrap"); + findMaxLine(cm); + } + estimateLineHeights(cm); + regChange(cm); + clearCaches(cm); + setTimeout(function () { return updateScrollbars(cm); }, 100); + } + + // A CodeMirror instance represents an editor. This is the object + // that user code is usually dealing with. + + function CodeMirror(place, options) { + var this$1 = this; + + if (!(this instanceof CodeMirror)) { return new CodeMirror(place, options) } + + this.options = options = options ? copyObj(options) : {}; + // Determine effective options based on given values and defaults. + copyObj(defaults, options, false); + + var doc = options.value; + if (typeof doc == "string") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); } + else if (options.mode) { doc.modeOption = options.mode; } + this.doc = doc; + + var input = new CodeMirror.inputStyles[options.inputStyle](this); + var display = this.display = new Display(place, doc, input, options); + display.wrapper.CodeMirror = this; + themeChanged(this); + if (options.lineWrapping) + { this.display.wrapper.className += " CodeMirror-wrap"; } + initScrollbars(this); + + this.state = { + keyMaps: [], // stores maps added by addKeyMap + overlays: [], // highlighting overlays, as added by addOverlay + modeGen: 0, // bumped when mode/overlay changes, used to invalidate highlighting info + overwrite: false, + delayingBlurEvent: false, + focused: false, + suppressEdits: false, // used to disable editing during key handlers when in readOnly mode + pasteIncoming: -1, cutIncoming: -1, // help recognize paste/cut edits in input.poll + selectingText: false, + draggingText: false, + highlight: new Delayed(), // stores highlight worker timeout + keySeq: null, // Unfinished key sequence + specialChars: null + }; + + if (options.autofocus && !mobile) { display.input.focus(); } + + // Override magic textarea content restore that IE sometimes does + // on our hidden textarea on reload + if (ie && ie_version < 11) { setTimeout(function () { return this$1.display.input.reset(true); }, 20); } + + registerEventHandlers(this); + ensureGlobalHandlers(); + + startOperation(this); + this.curOp.forceUpdate = true; + attachDoc(this, doc); + + if ((options.autofocus && !mobile) || this.hasFocus()) + { setTimeout(bind(onFocus, this), 20); } + else + { onBlur(this); } + + for (var opt in optionHandlers) { if (optionHandlers.hasOwnProperty(opt)) + { optionHandlers[opt](this$1, options[opt], Init); } } + maybeUpdateLineNumberWidth(this); + if (options.finishInit) { options.finishInit(this); } + for (var i = 0; i < initHooks.length; ++i) { initHooks[i](this$1); } + endOperation(this); + // Suppress optimizelegibility in Webkit, since it breaks text + // measuring on line wrapping boundaries. + if (webkit && options.lineWrapping && + getComputedStyle(display.lineDiv).textRendering == "optimizelegibility") + { display.lineDiv.style.textRendering = "auto"; } + } + + // The default configuration options. + CodeMirror.defaults = defaults; + // Functions to run when options are changed. + CodeMirror.optionHandlers = optionHandlers; + + // Attach the necessary event handlers when initializing the editor + function registerEventHandlers(cm) { + var d = cm.display; + on(d.scroller, "mousedown", operation(cm, onMouseDown)); + // Older IE's will not fire a second mousedown for a double click + if (ie && ie_version < 11) + { on(d.scroller, "dblclick", operation(cm, function (e) { + if (signalDOMEvent(cm, e)) { return } + var pos = posFromMouse(cm, e); + if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) { return } + e_preventDefault(e); + var word = cm.findWordAt(pos); + extendSelection(cm.doc, word.anchor, word.head); + })); } + else + { on(d.scroller, "dblclick", function (e) { return signalDOMEvent(cm, e) || e_preventDefault(e); }); } + // Some browsers fire contextmenu *after* opening the menu, at + // which point we can't mess with it anymore. Context menu is + // handled in onMouseDown for these browsers. + on(d.scroller, "contextmenu", function (e) { return onContextMenu(cm, e); }); + + // Used to suppress mouse event handling when a touch happens + var touchFinished, prevTouch = {end: 0}; + function finishTouch() { + if (d.activeTouch) { + touchFinished = setTimeout(function () { return d.activeTouch = null; }, 1000); + prevTouch = d.activeTouch; + prevTouch.end = +new Date; + } + } + function isMouseLikeTouchEvent(e) { + if (e.touches.length != 1) { return false } + var touch = e.touches[0]; + return touch.radiusX <= 1 && touch.radiusY <= 1 + } + function farAway(touch, other) { + if (other.left == null) { return true } + var dx = other.left - touch.left, dy = other.top - touch.top; + return dx * dx + dy * dy > 20 * 20 + } + on(d.scroller, "touchstart", function (e) { + if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) { + d.input.ensurePolled(); + clearTimeout(touchFinished); + var now = +new Date; + d.activeTouch = {start: now, moved: false, + prev: now - prevTouch.end <= 300 ? prevTouch : null}; + if (e.touches.length == 1) { + d.activeTouch.left = e.touches[0].pageX; + d.activeTouch.top = e.touches[0].pageY; + } + } + }); + on(d.scroller, "touchmove", function () { + if (d.activeTouch) { d.activeTouch.moved = true; } + }); + on(d.scroller, "touchend", function (e) { + var touch = d.activeTouch; + if (touch && !eventInWidget(d, e) && touch.left != null && + !touch.moved && new Date - touch.start < 300) { + var pos = cm.coordsChar(d.activeTouch, "page"), range; + if (!touch.prev || farAway(touch, touch.prev)) // Single tap + { range = new Range(pos, pos); } + else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap + { range = cm.findWordAt(pos); } + else // Triple tap + { range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); } + cm.setSelection(range.anchor, range.head); + cm.focus(); + e_preventDefault(e); + } + finishTouch(); + }); + on(d.scroller, "touchcancel", finishTouch); + + // Sync scrolling between fake scrollbars and real scrollable + // area, ensure viewport is updated when scrolling. + on(d.scroller, "scroll", function () { + if (d.scroller.clientHeight) { + updateScrollTop(cm, d.scroller.scrollTop); + setScrollLeft(cm, d.scroller.scrollLeft, true); + signal(cm, "scroll", cm); + } + }); + + // Listen to wheel events in order to try and update the viewport on time. + on(d.scroller, "mousewheel", function (e) { return onScrollWheel(cm, e); }); + on(d.scroller, "DOMMouseScroll", function (e) { return onScrollWheel(cm, e); }); + + // Prevent wrapper from ever scrolling + on(d.wrapper, "scroll", function () { return d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; }); + + d.dragFunctions = { + enter: function (e) {if (!signalDOMEvent(cm, e)) { e_stop(e); }}, + over: function (e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }}, + start: function (e) { return onDragStart(cm, e); }, + drop: operation(cm, onDrop), + leave: function (e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }} + }; + + var inp = d.input.getField(); + on(inp, "keyup", function (e) { return onKeyUp.call(cm, e); }); + on(inp, "keydown", operation(cm, onKeyDown)); + on(inp, "keypress", operation(cm, onKeyPress)); + on(inp, "focus", function (e) { return onFocus(cm, e); }); + on(inp, "blur", function (e) { return onBlur(cm, e); }); + } + + var initHooks = []; + CodeMirror.defineInitHook = function (f) { return initHooks.push(f); }; + + // Indent the given line. The how parameter can be "smart", + // "add"/null, "subtract", or "prev". When aggressive is false + // (typically set to true for forced single-line indents), empty + // lines are not indented, and places where the mode returns Pass + // are left alone. + function indentLine(cm, n, how, aggressive) { + var doc = cm.doc, state; + if (how == null) { how = "add"; } + if (how == "smart") { + // Fall back to "prev" when the mode doesn't have an indentation + // method. + if (!doc.mode.indent) { how = "prev"; } + else { state = getContextBefore(cm, n).state; } + } + + var tabSize = cm.options.tabSize; + var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize); + if (line.stateAfter) { line.stateAfter = null; } + var curSpaceString = line.text.match(/^\s*/)[0], indentation; + if (!aggressive && !/\S/.test(line.text)) { + indentation = 0; + how = "not"; + } else if (how == "smart") { + indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text); + if (indentation == Pass || indentation > 150) { + if (!aggressive) { return } + how = "prev"; + } + } + if (how == "prev") { + if (n > doc.first) { indentation = countColumn(getLine(doc, n-1).text, null, tabSize); } + else { indentation = 0; } + } else if (how == "add") { + indentation = curSpace + cm.options.indentUnit; + } else if (how == "subtract") { + indentation = curSpace - cm.options.indentUnit; + } else if (typeof how == "number") { + indentation = curSpace + how; + } + indentation = Math.max(0, indentation); + + var indentString = "", pos = 0; + if (cm.options.indentWithTabs) + { for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += "\t";} } + if (pos < indentation) { indentString += spaceStr(indentation - pos); } + + if (indentString != curSpaceString) { + replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), "+input"); + line.stateAfter = null; + return true + } else { + // Ensure that, if the cursor was in the whitespace at the start + // of the line, it is moved to the end of that space. + for (var i$1 = 0; i$1 < doc.sel.ranges.length; i$1++) { + var range = doc.sel.ranges[i$1]; + if (range.head.line == n && range.head.ch < curSpaceString.length) { + var pos$1 = Pos(n, curSpaceString.length); + replaceOneSelection(doc, i$1, new Range(pos$1, pos$1)); + break + } + } + } + } + + // This will be set to a {lineWise: bool, text: [string]} object, so + // that, when pasting, we know what kind of selections the copied + // text was made out of. + var lastCopied = null; + + function setLastCopied(newLastCopied) { + lastCopied = newLastCopied; + } + + function applyTextInput(cm, inserted, deleted, sel, origin) { + var doc = cm.doc; + cm.display.shift = false; + if (!sel) { sel = doc.sel; } + + var recent = +new Date - 200; + var paste = origin == "paste" || cm.state.pasteIncoming > recent; + var textLines = splitLinesAuto(inserted), multiPaste = null; + // When pasting N lines into N selections, insert one line per selection + if (paste && sel.ranges.length > 1) { + if (lastCopied && lastCopied.text.join("\n") == inserted) { + if (sel.ranges.length % lastCopied.text.length == 0) { + multiPaste = []; + for (var i = 0; i < lastCopied.text.length; i++) + { multiPaste.push(doc.splitLines(lastCopied.text[i])); } + } + } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) { + multiPaste = map(textLines, function (l) { return [l]; }); + } + } + + var updateInput = cm.curOp.updateInput; + // Normal behavior is to insert the new text into every selection + for (var i$1 = sel.ranges.length - 1; i$1 >= 0; i$1--) { + var range$$1 = sel.ranges[i$1]; + var from = range$$1.from(), to = range$$1.to(); + if (range$$1.empty()) { + if (deleted && deleted > 0) // Handle deletion + { from = Pos(from.line, from.ch - deleted); } + else if (cm.state.overwrite && !paste) // Handle overwrite + { to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); } + else if (paste && lastCopied && lastCopied.lineWise && lastCopied.text.join("\n") == inserted) + { from = to = Pos(from.line, 0); } + } + var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i$1 % multiPaste.length] : textLines, + origin: origin || (paste ? "paste" : cm.state.cutIncoming > recent ? "cut" : "+input")}; + makeChange(cm.doc, changeEvent); + signalLater(cm, "inputRead", cm, changeEvent); + } + if (inserted && !paste) + { triggerElectric(cm, inserted); } + + ensureCursorVisible(cm); + if (cm.curOp.updateInput < 2) { cm.curOp.updateInput = updateInput; } + cm.curOp.typing = true; + cm.state.pasteIncoming = cm.state.cutIncoming = -1; + } + + function handlePaste(e, cm) { + var pasted = e.clipboardData && e.clipboardData.getData("Text"); + if (pasted) { + e.preventDefault(); + if (!cm.isReadOnly() && !cm.options.disableInput) + { runInOp(cm, function () { return applyTextInput(cm, pasted, 0, null, "paste"); }); } + return true + } + } + + function triggerElectric(cm, inserted) { + // When an 'electric' character is inserted, immediately trigger a reindent + if (!cm.options.electricChars || !cm.options.smartIndent) { return } + var sel = cm.doc.sel; + + for (var i = sel.ranges.length - 1; i >= 0; i--) { + var range$$1 = sel.ranges[i]; + if (range$$1.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range$$1.head.line)) { continue } + var mode = cm.getModeAt(range$$1.head); + var indented = false; + if (mode.electricChars) { + for (var j = 0; j < mode.electricChars.length; j++) + { if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) { + indented = indentLine(cm, range$$1.head.line, "smart"); + break + } } + } else if (mode.electricInput) { + if (mode.electricInput.test(getLine(cm.doc, range$$1.head.line).text.slice(0, range$$1.head.ch))) + { indented = indentLine(cm, range$$1.head.line, "smart"); } + } + if (indented) { signalLater(cm, "electricInput", cm, range$$1.head.line); } + } + } + + function copyableRanges(cm) { + var text = [], ranges = []; + for (var i = 0; i < cm.doc.sel.ranges.length; i++) { + var line = cm.doc.sel.ranges[i].head.line; + var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)}; + ranges.push(lineRange); + text.push(cm.getRange(lineRange.anchor, lineRange.head)); + } + return {text: text, ranges: ranges} + } + + function disableBrowserMagic(field, spellcheck, autocorrect, autocapitalize) { + field.setAttribute("autocorrect", autocorrect ? "" : "off"); + field.setAttribute("autocapitalize", autocapitalize ? "" : "off"); + field.setAttribute("spellcheck", !!spellcheck); + } + + function hiddenTextarea() { + var te = elt("textarea", null, null, "position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"); + var div = elt("div", [te], null, "overflow: hidden; position: relative; width: 3px; height: 0px;"); + // The textarea is kept positioned near the cursor to prevent the + // fact that it'll be scrolled into view on input from scrolling + // our fake cursor out of view. On webkit, when wrap=off, paste is + // very slow. So make the area wide instead. + if (webkit) { te.style.width = "1000px"; } + else { te.setAttribute("wrap", "off"); } + // If border: 0; -- iOS fails to open keyboard (issue #1287) + if (ios) { te.style.border = "1px solid black"; } + disableBrowserMagic(te); + return div + } + + // The publicly visible API. Note that methodOp(f) means + // 'wrap f in an operation, performed on its `this` parameter'. + + // This is not the complete set of editor methods. Most of the + // methods defined on the Doc type are also injected into + // CodeMirror.prototype, for backwards compatibility and + // convenience. + + function addEditorMethods(CodeMirror) { + var optionHandlers = CodeMirror.optionHandlers; + + var helpers = CodeMirror.helpers = {}; + + CodeMirror.prototype = { + constructor: CodeMirror, + focus: function(){window.focus(); this.display.input.focus();}, + + setOption: function(option, value) { + var options = this.options, old = options[option]; + if (options[option] == value && option != "mode") { return } + options[option] = value; + if (optionHandlers.hasOwnProperty(option)) + { operation(this, optionHandlers[option])(this, value, old); } + signal(this, "optionChange", this, option); + }, + + getOption: function(option) {return this.options[option]}, + getDoc: function() {return this.doc}, + + addKeyMap: function(map$$1, bottom) { + this.state.keyMaps[bottom ? "push" : "unshift"](getKeyMap(map$$1)); + }, + removeKeyMap: function(map$$1) { + var maps = this.state.keyMaps; + for (var i = 0; i < maps.length; ++i) + { if (maps[i] == map$$1 || maps[i].name == map$$1) { + maps.splice(i, 1); + return true + } } + }, + + addOverlay: methodOp(function(spec, options) { + var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec); + if (mode.startState) { throw new Error("Overlays may not be stateful.") } + insertSorted(this.state.overlays, + {mode: mode, modeSpec: spec, opaque: options && options.opaque, + priority: (options && options.priority) || 0}, + function (overlay) { return overlay.priority; }); + this.state.modeGen++; + regChange(this); + }), + removeOverlay: methodOp(function(spec) { + var this$1 = this; + + var overlays = this.state.overlays; + for (var i = 0; i < overlays.length; ++i) { + var cur = overlays[i].modeSpec; + if (cur == spec || typeof spec == "string" && cur.name == spec) { + overlays.splice(i, 1); + this$1.state.modeGen++; + regChange(this$1); + return + } + } + }), + + indentLine: methodOp(function(n, dir, aggressive) { + if (typeof dir != "string" && typeof dir != "number") { + if (dir == null) { dir = this.options.smartIndent ? "smart" : "prev"; } + else { dir = dir ? "add" : "subtract"; } + } + if (isLine(this.doc, n)) { indentLine(this, n, dir, aggressive); } + }), + indentSelection: methodOp(function(how) { + var this$1 = this; + + var ranges = this.doc.sel.ranges, end = -1; + for (var i = 0; i < ranges.length; i++) { + var range$$1 = ranges[i]; + if (!range$$1.empty()) { + var from = range$$1.from(), to = range$$1.to(); + var start = Math.max(end, from.line); + end = Math.min(this$1.lastLine(), to.line - (to.ch ? 0 : 1)) + 1; + for (var j = start; j < end; ++j) + { indentLine(this$1, j, how); } + var newRanges = this$1.doc.sel.ranges; + if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0) + { replaceOneSelection(this$1.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); } + } else if (range$$1.head.line > end) { + indentLine(this$1, range$$1.head.line, how, true); + end = range$$1.head.line; + if (i == this$1.doc.sel.primIndex) { ensureCursorVisible(this$1); } + } + } + }), + + // Fetch the parser token for a given character. Useful for hacks + // that want to inspect the mode state (say, for completion). + getTokenAt: function(pos, precise) { + return takeToken(this, pos, precise) + }, + + getLineTokens: function(line, precise) { + return takeToken(this, Pos(line), precise, true) + }, + + getTokenTypeAt: function(pos) { + pos = clipPos(this.doc, pos); + var styles = getLineStyles(this, getLine(this.doc, pos.line)); + var before = 0, after = (styles.length - 1) / 2, ch = pos.ch; + var type; + if (ch == 0) { type = styles[2]; } + else { for (;;) { + var mid = (before + after) >> 1; + if ((mid ? styles[mid * 2 - 1] : 0) >= ch) { after = mid; } + else if (styles[mid * 2 + 1] < ch) { before = mid + 1; } + else { type = styles[mid * 2 + 2]; break } + } } + var cut = type ? type.indexOf("overlay ") : -1; + return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1) + }, + + getModeAt: function(pos) { + var mode = this.doc.mode; + if (!mode.innerMode) { return mode } + return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode + }, + + getHelper: function(pos, type) { + return this.getHelpers(pos, type)[0] + }, + + getHelpers: function(pos, type) { + var this$1 = this; + + var found = []; + if (!helpers.hasOwnProperty(type)) { return found } + var help = helpers[type], mode = this.getModeAt(pos); + if (typeof mode[type] == "string") { + if (help[mode[type]]) { found.push(help[mode[type]]); } + } else if (mode[type]) { + for (var i = 0; i < mode[type].length; i++) { + var val = help[mode[type][i]]; + if (val) { found.push(val); } + } + } else if (mode.helperType && help[mode.helperType]) { + found.push(help[mode.helperType]); + } else if (help[mode.name]) { + found.push(help[mode.name]); + } + for (var i$1 = 0; i$1 < help._global.length; i$1++) { + var cur = help._global[i$1]; + if (cur.pred(mode, this$1) && indexOf(found, cur.val) == -1) + { found.push(cur.val); } + } + return found + }, + + getStateAfter: function(line, precise) { + var doc = this.doc; + line = clipLine(doc, line == null ? doc.first + doc.size - 1: line); + return getContextBefore(this, line + 1, precise).state + }, + + cursorCoords: function(start, mode) { + var pos, range$$1 = this.doc.sel.primary(); + if (start == null) { pos = range$$1.head; } + else if (typeof start == "object") { pos = clipPos(this.doc, start); } + else { pos = start ? range$$1.from() : range$$1.to(); } + return cursorCoords(this, pos, mode || "page") + }, + + charCoords: function(pos, mode) { + return charCoords(this, clipPos(this.doc, pos), mode || "page") + }, + + coordsChar: function(coords, mode) { + coords = fromCoordSystem(this, coords, mode || "page"); + return coordsChar(this, coords.left, coords.top) + }, + + lineAtHeight: function(height, mode) { + height = fromCoordSystem(this, {top: height, left: 0}, mode || "page").top; + return lineAtHeight(this.doc, height + this.display.viewOffset) + }, + heightAtLine: function(line, mode, includeWidgets) { + var end = false, lineObj; + if (typeof line == "number") { + var last = this.doc.first + this.doc.size - 1; + if (line < this.doc.first) { line = this.doc.first; } + else if (line > last) { line = last; end = true; } + lineObj = getLine(this.doc, line); + } else { + lineObj = line; + } + return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || "page", includeWidgets || end).top + + (end ? this.doc.height - heightAtLine(lineObj) : 0) + }, + + defaultTextHeight: function() { return textHeight(this.display) }, + defaultCharWidth: function() { return charWidth(this.display) }, + + getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo}}, + + addWidget: function(pos, node, scroll, vert, horiz) { + var display = this.display; + pos = cursorCoords(this, clipPos(this.doc, pos)); + var top = pos.bottom, left = pos.left; + node.style.position = "absolute"; + node.setAttribute("cm-ignore-events", "true"); + this.display.input.setUneditable(node); + display.sizer.appendChild(node); + if (vert == "over") { + top = pos.top; + } else if (vert == "above" || vert == "near") { + var vspace = Math.max(display.wrapper.clientHeight, this.doc.height), + hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth); + // Default to positioning above (if specified and possible); otherwise default to positioning below + if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight) + { top = pos.top - node.offsetHeight; } + else if (pos.bottom + node.offsetHeight <= vspace) + { top = pos.bottom; } + if (left + node.offsetWidth > hspace) + { left = hspace - node.offsetWidth; } + } + node.style.top = top + "px"; + node.style.left = node.style.right = ""; + if (horiz == "right") { + left = display.sizer.clientWidth - node.offsetWidth; + node.style.right = "0px"; + } else { + if (horiz == "left") { left = 0; } + else if (horiz == "middle") { left = (display.sizer.clientWidth - node.offsetWidth) / 2; } + node.style.left = left + "px"; + } + if (scroll) + { scrollIntoView(this, {left: left, top: top, right: left + node.offsetWidth, bottom: top + node.offsetHeight}); } + }, + + triggerOnKeyDown: methodOp(onKeyDown), + triggerOnKeyPress: methodOp(onKeyPress), + triggerOnKeyUp: onKeyUp, + triggerOnMouseDown: methodOp(onMouseDown), + + execCommand: function(cmd) { + if (commands.hasOwnProperty(cmd)) + { return commands[cmd].call(null, this) } + }, + + triggerElectric: methodOp(function(text) { triggerElectric(this, text); }), + + findPosH: function(from, amount, unit, visually) { + var this$1 = this; + + var dir = 1; + if (amount < 0) { dir = -1; amount = -amount; } + var cur = clipPos(this.doc, from); + for (var i = 0; i < amount; ++i) { + cur = findPosH(this$1.doc, cur, dir, unit, visually); + if (cur.hitSide) { break } + } + return cur + }, + + moveH: methodOp(function(dir, unit) { + var this$1 = this; + + this.extendSelectionsBy(function (range$$1) { + if (this$1.display.shift || this$1.doc.extend || range$$1.empty()) + { return findPosH(this$1.doc, range$$1.head, dir, unit, this$1.options.rtlMoveVisually) } + else + { return dir < 0 ? range$$1.from() : range$$1.to() } + }, sel_move); + }), + + deleteH: methodOp(function(dir, unit) { + var sel = this.doc.sel, doc = this.doc; + if (sel.somethingSelected()) + { doc.replaceSelection("", null, "+delete"); } + else + { deleteNearSelection(this, function (range$$1) { + var other = findPosH(doc, range$$1.head, dir, unit, false); + return dir < 0 ? {from: other, to: range$$1.head} : {from: range$$1.head, to: other} + }); } + }), + + findPosV: function(from, amount, unit, goalColumn) { + var this$1 = this; + + var dir = 1, x = goalColumn; + if (amount < 0) { dir = -1; amount = -amount; } + var cur = clipPos(this.doc, from); + for (var i = 0; i < amount; ++i) { + var coords = cursorCoords(this$1, cur, "div"); + if (x == null) { x = coords.left; } + else { coords.left = x; } + cur = findPosV(this$1, coords, dir, unit); + if (cur.hitSide) { break } + } + return cur + }, + + moveV: methodOp(function(dir, unit) { + var this$1 = this; + + var doc = this.doc, goals = []; + var collapse = !this.display.shift && !doc.extend && doc.sel.somethingSelected(); + doc.extendSelectionsBy(function (range$$1) { + if (collapse) + { return dir < 0 ? range$$1.from() : range$$1.to() } + var headPos = cursorCoords(this$1, range$$1.head, "div"); + if (range$$1.goalColumn != null) { headPos.left = range$$1.goalColumn; } + goals.push(headPos.left); + var pos = findPosV(this$1, headPos, dir, unit); + if (unit == "page" && range$$1 == doc.sel.primary()) + { addToScrollTop(this$1, charCoords(this$1, pos, "div").top - headPos.top); } + return pos + }, sel_move); + if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++) + { doc.sel.ranges[i].goalColumn = goals[i]; } } + }), + + // Find the word at the given position (as returned by coordsChar). + findWordAt: function(pos) { + var doc = this.doc, line = getLine(doc, pos.line).text; + var start = pos.ch, end = pos.ch; + if (line) { + var helper = this.getHelper(pos, "wordChars"); + if ((pos.sticky == "before" || end == line.length) && start) { --start; } else { ++end; } + var startChar = line.charAt(start); + var check = isWordChar(startChar, helper) + ? function (ch) { return isWordChar(ch, helper); } + : /\s/.test(startChar) ? function (ch) { return /\s/.test(ch); } + : function (ch) { return (!/\s/.test(ch) && !isWordChar(ch)); }; + while (start > 0 && check(line.charAt(start - 1))) { --start; } + while (end < line.length && check(line.charAt(end))) { ++end; } + } + return new Range(Pos(pos.line, start), Pos(pos.line, end)) + }, + + toggleOverwrite: function(value) { + if (value != null && value == this.state.overwrite) { return } + if (this.state.overwrite = !this.state.overwrite) + { addClass(this.display.cursorDiv, "CodeMirror-overwrite"); } + else + { rmClass(this.display.cursorDiv, "CodeMirror-overwrite"); } + + signal(this, "overwriteToggle", this, this.state.overwrite); + }, + hasFocus: function() { return this.display.input.getField() == activeElt() }, + isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) }, + + scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }), + getScrollInfo: function() { + var scroller = this.display.scroller; + return {left: scroller.scrollLeft, top: scroller.scrollTop, + height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight, + width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth, + clientHeight: displayHeight(this), clientWidth: displayWidth(this)} + }, + + scrollIntoView: methodOp(function(range$$1, margin) { + if (range$$1 == null) { + range$$1 = {from: this.doc.sel.primary().head, to: null}; + if (margin == null) { margin = this.options.cursorScrollMargin; } + } else if (typeof range$$1 == "number") { + range$$1 = {from: Pos(range$$1, 0), to: null}; + } else if (range$$1.from == null) { + range$$1 = {from: range$$1, to: null}; + } + if (!range$$1.to) { range$$1.to = range$$1.from; } + range$$1.margin = margin || 0; + + if (range$$1.from.line != null) { + scrollToRange(this, range$$1); + } else { + scrollToCoordsRange(this, range$$1.from, range$$1.to, range$$1.margin); + } + }), + + setSize: methodOp(function(width, height) { + var this$1 = this; + + var interpret = function (val) { return typeof val == "number" || /^\d+$/.test(String(val)) ? val + "px" : val; }; + if (width != null) { this.display.wrapper.style.width = interpret(width); } + if (height != null) { this.display.wrapper.style.height = interpret(height); } + if (this.options.lineWrapping) { clearLineMeasurementCache(this); } + var lineNo$$1 = this.display.viewFrom; + this.doc.iter(lineNo$$1, this.display.viewTo, function (line) { + if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) + { if (line.widgets[i].noHScroll) { regLineChange(this$1, lineNo$$1, "widget"); break } } } + ++lineNo$$1; + }); + this.curOp.forceUpdate = true; + signal(this, "refresh", this); + }), + + operation: function(f){return runInOp(this, f)}, + startOperation: function(){return startOperation(this)}, + endOperation: function(){return endOperation(this)}, + + refresh: methodOp(function() { + var oldHeight = this.display.cachedTextHeight; + regChange(this); + this.curOp.forceUpdate = true; + clearCaches(this); + scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop); + updateGutterSpace(this.display); + if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5) + { estimateLineHeights(this); } + signal(this, "refresh", this); + }), + + swapDoc: methodOp(function(doc) { + var old = this.doc; + old.cm = null; + // Cancel the current text selection if any (#5821) + if (this.state.selectingText) { this.state.selectingText(); } + attachDoc(this, doc); + clearCaches(this); + this.display.input.reset(); + scrollToCoords(this, doc.scrollLeft, doc.scrollTop); + this.curOp.forceScroll = true; + signalLater(this, "swapDoc", this, old); + return old + }), + + phrase: function(phraseText) { + var phrases = this.options.phrases; + return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText + }, + + getInputField: function(){return this.display.input.getField()}, + getWrapperElement: function(){return this.display.wrapper}, + getScrollerElement: function(){return this.display.scroller}, + getGutterElement: function(){return this.display.gutters} + }; + eventMixin(CodeMirror); + + CodeMirror.registerHelper = function(type, name, value) { + if (!helpers.hasOwnProperty(type)) { helpers[type] = CodeMirror[type] = {_global: []}; } + helpers[type][name] = value; + }; + CodeMirror.registerGlobalHelper = function(type, name, predicate, value) { + CodeMirror.registerHelper(type, name, value); + helpers[type]._global.push({pred: predicate, val: value}); + }; + } + + // Used for horizontal relative motion. Dir is -1 or 1 (left or + // right), unit can be "char", "column" (like char, but doesn't + // cross line boundaries), "word" (across next word), or "group" (to + // the start of next group of word or non-word-non-whitespace + // chars). The visually param controls whether, in right-to-left + // text, direction 1 means to move towards the next index in the + // string, or towards the character to the right of the current + // position. The resulting position will have a hitSide=true + // property if it reached the end of the document. + function findPosH(doc, pos, dir, unit, visually) { + var oldPos = pos; + var origDir = dir; + var lineObj = getLine(doc, pos.line); + function findNextLine() { + var l = pos.line + dir; + if (l < doc.first || l >= doc.first + doc.size) { return false } + pos = new Pos(l, pos.ch, pos.sticky); + return lineObj = getLine(doc, l) + } + function moveOnce(boundToLine) { + var next; + if (visually) { + next = moveVisually(doc.cm, lineObj, pos, dir); + } else { + next = moveLogically(lineObj, pos, dir); + } + if (next == null) { + if (!boundToLine && findNextLine()) + { pos = endOfLine(visually, doc.cm, lineObj, pos.line, dir); } + else + { return false } + } else { + pos = next; + } + return true + } + + if (unit == "char") { + moveOnce(); + } else if (unit == "column") { + moveOnce(true); + } else if (unit == "word" || unit == "group") { + var sawType = null, group = unit == "group"; + var helper = doc.cm && doc.cm.getHelper(pos, "wordChars"); + for (var first = true;; first = false) { + if (dir < 0 && !moveOnce(!first)) { break } + var cur = lineObj.text.charAt(pos.ch) || "\n"; + var type = isWordChar(cur, helper) ? "w" + : group && cur == "\n" ? "n" + : !group || /\s/.test(cur) ? null + : "p"; + if (group && !first && !type) { type = "s"; } + if (sawType && sawType != type) { + if (dir < 0) {dir = 1; moveOnce(); pos.sticky = "after";} + break + } + + if (type) { sawType = type; } + if (dir > 0 && !moveOnce(!first)) { break } + } + } + var result = skipAtomic(doc, pos, oldPos, origDir, true); + if (equalCursorPos(oldPos, result)) { result.hitSide = true; } + return result + } + + // For relative vertical movement. Dir may be -1 or 1. Unit can be + // "page" or "line". The resulting position will have a hitSide=true + // property if it reached the end of the document. + function findPosV(cm, pos, dir, unit) { + var doc = cm.doc, x = pos.left, y; + if (unit == "page") { + var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight); + var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3); + y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount; + + } else if (unit == "line") { + y = dir > 0 ? pos.bottom + 3 : pos.top - 3; + } + var target; + for (;;) { + target = coordsChar(cm, x, y); + if (!target.outside) { break } + if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break } + y += dir * 5; + } + return target + } + + // CONTENTEDITABLE INPUT STYLE + + var ContentEditableInput = function(cm) { + this.cm = cm; + this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null; + this.polling = new Delayed(); + this.composing = null; + this.gracePeriod = false; + this.readDOMTimeout = null; + }; + + ContentEditableInput.prototype.init = function (display) { + var this$1 = this; + + var input = this, cm = input.cm; + var div = input.div = display.lineDiv; + disableBrowserMagic(div, cm.options.spellcheck, cm.options.autocorrect, cm.options.autocapitalize); + + on(div, "paste", function (e) { + if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return } + // IE doesn't fire input events, so we schedule a read for the pasted content in this way + if (ie_version <= 11) { setTimeout(operation(cm, function () { return this$1.updateFromDOM(); }), 20); } + }); + + on(div, "compositionstart", function (e) { + this$1.composing = {data: e.data, done: false}; + }); + on(div, "compositionupdate", function (e) { + if (!this$1.composing) { this$1.composing = {data: e.data, done: false}; } + }); + on(div, "compositionend", function (e) { + if (this$1.composing) { + if (e.data != this$1.composing.data) { this$1.readFromDOMSoon(); } + this$1.composing.done = true; + } + }); + + on(div, "touchstart", function () { return input.forceCompositionEnd(); }); + + on(div, "input", function () { + if (!this$1.composing) { this$1.readFromDOMSoon(); } + }); + + function onCopyCut(e) { + if (signalDOMEvent(cm, e)) { return } + if (cm.somethingSelected()) { + setLastCopied({lineWise: false, text: cm.getSelections()}); + if (e.type == "cut") { cm.replaceSelection("", null, "cut"); } + } else if (!cm.options.lineWiseCopyCut) { + return + } else { + var ranges = copyableRanges(cm); + setLastCopied({lineWise: true, text: ranges.text}); + if (e.type == "cut") { + cm.operation(function () { + cm.setSelections(ranges.ranges, 0, sel_dontScroll); + cm.replaceSelection("", null, "cut"); + }); + } + } + if (e.clipboardData) { + e.clipboardData.clearData(); + var content = lastCopied.text.join("\n"); + // iOS exposes the clipboard API, but seems to discard content inserted into it + e.clipboardData.setData("Text", content); + if (e.clipboardData.getData("Text") == content) { + e.preventDefault(); + return + } + } + // Old-fashioned briefly-focus-a-textarea hack + var kludge = hiddenTextarea(), te = kludge.firstChild; + cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild); + te.value = lastCopied.text.join("\n"); + var hadFocus = document.activeElement; + selectInput(te); + setTimeout(function () { + cm.display.lineSpace.removeChild(kludge); + hadFocus.focus(); + if (hadFocus == div) { input.showPrimarySelection(); } + }, 50); + } + on(div, "copy", onCopyCut); + on(div, "cut", onCopyCut); + }; + + ContentEditableInput.prototype.prepareSelection = function () { + var result = prepareSelection(this.cm, false); + result.focus = this.cm.state.focused; + return result + }; + + ContentEditableInput.prototype.showSelection = function (info, takeFocus) { + if (!info || !this.cm.display.view.length) { return } + if (info.focus || takeFocus) { this.showPrimarySelection(); } + this.showMultipleSelections(info); + }; + + ContentEditableInput.prototype.getSelection = function () { + return this.cm.display.wrapper.ownerDocument.getSelection() + }; + + ContentEditableInput.prototype.showPrimarySelection = function () { + var sel = this.getSelection(), cm = this.cm, prim = cm.doc.sel.primary(); + var from = prim.from(), to = prim.to(); + + if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) { + sel.removeAllRanges(); + return + } + + var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset); + var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset); + if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad && + cmp(minPos(curAnchor, curFocus), from) == 0 && + cmp(maxPos(curAnchor, curFocus), to) == 0) + { return } + + var view = cm.display.view; + var start = (from.line >= cm.display.viewFrom && posToDOM(cm, from)) || + {node: view[0].measure.map[2], offset: 0}; + var end = to.line < cm.display.viewTo && posToDOM(cm, to); + if (!end) { + var measure = view[view.length - 1].measure; + var map$$1 = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map; + end = {node: map$$1[map$$1.length - 1], offset: map$$1[map$$1.length - 2] - map$$1[map$$1.length - 3]}; + } + + if (!start || !end) { + sel.removeAllRanges(); + return + } + + var old = sel.rangeCount && sel.getRangeAt(0), rng; + try { rng = range(start.node, start.offset, end.offset, end.node); } + catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible + if (rng) { + if (!gecko && cm.state.focused) { + sel.collapse(start.node, start.offset); + if (!rng.collapsed) { + sel.removeAllRanges(); + sel.addRange(rng); + } + } else { + sel.removeAllRanges(); + sel.addRange(rng); + } + if (old && sel.anchorNode == null) { sel.addRange(old); } + else if (gecko) { this.startGracePeriod(); } + } + this.rememberSelection(); + }; + + ContentEditableInput.prototype.startGracePeriod = function () { + var this$1 = this; + + clearTimeout(this.gracePeriod); + this.gracePeriod = setTimeout(function () { + this$1.gracePeriod = false; + if (this$1.selectionChanged()) + { this$1.cm.operation(function () { return this$1.cm.curOp.selectionChanged = true; }); } + }, 20); + }; + + ContentEditableInput.prototype.showMultipleSelections = function (info) { + removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors); + removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection); + }; + + ContentEditableInput.prototype.rememberSelection = function () { + var sel = this.getSelection(); + this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset; + this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset; + }; + + ContentEditableInput.prototype.selectionInEditor = function () { + var sel = this.getSelection(); + if (!sel.rangeCount) { return false } + var node = sel.getRangeAt(0).commonAncestorContainer; + return contains(this.div, node) + }; + + ContentEditableInput.prototype.focus = function () { + if (this.cm.options.readOnly != "nocursor") { + if (!this.selectionInEditor()) + { this.showSelection(this.prepareSelection(), true); } + this.div.focus(); + } + }; + ContentEditableInput.prototype.blur = function () { this.div.blur(); }; + ContentEditableInput.prototype.getField = function () { return this.div }; + + ContentEditableInput.prototype.supportsTouch = function () { return true }; + + ContentEditableInput.prototype.receivedFocus = function () { + var input = this; + if (this.selectionInEditor()) + { this.pollSelection(); } + else + { runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); } + + function poll() { + if (input.cm.state.focused) { + input.pollSelection(); + input.polling.set(input.cm.options.pollInterval, poll); + } + } + this.polling.set(this.cm.options.pollInterval, poll); + }; + + ContentEditableInput.prototype.selectionChanged = function () { + var sel = this.getSelection(); + return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset || + sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset + }; + + ContentEditableInput.prototype.pollSelection = function () { + if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return } + var sel = this.getSelection(), cm = this.cm; + // On Android Chrome (version 56, at least), backspacing into an + // uneditable block element will put the cursor in that element, + // and then, because it's not editable, hide the virtual keyboard. + // Because Android doesn't allow us to actually detect backspace + // presses in a sane way, this code checks for when that happens + // and simulates a backspace press in this case. + if (android && chrome && this.cm.display.gutterSpecs.length && isInGutter(sel.anchorNode)) { + this.cm.triggerOnKeyDown({type: "keydown", keyCode: 8, preventDefault: Math.abs}); + this.blur(); + this.focus(); + return + } + if (this.composing) { return } + this.rememberSelection(); + var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset); + var head = domToPos(cm, sel.focusNode, sel.focusOffset); + if (anchor && head) { runInOp(cm, function () { + setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll); + if (anchor.bad || head.bad) { cm.curOp.selectionChanged = true; } + }); } + }; + + ContentEditableInput.prototype.pollContent = function () { + if (this.readDOMTimeout != null) { + clearTimeout(this.readDOMTimeout); + this.readDOMTimeout = null; + } + + var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary(); + var from = sel.from(), to = sel.to(); + if (from.ch == 0 && from.line > cm.firstLine()) + { from = Pos(from.line - 1, getLine(cm.doc, from.line - 1).length); } + if (to.ch == getLine(cm.doc, to.line).text.length && to.line < cm.lastLine()) + { to = Pos(to.line + 1, 0); } + if (from.line < display.viewFrom || to.line > display.viewTo - 1) { return false } + + var fromIndex, fromLine, fromNode; + if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) { + fromLine = lineNo(display.view[0].line); + fromNode = display.view[0].node; + } else { + fromLine = lineNo(display.view[fromIndex].line); + fromNode = display.view[fromIndex - 1].node.nextSibling; + } + var toIndex = findViewIndex(cm, to.line); + var toLine, toNode; + if (toIndex == display.view.length - 1) { + toLine = display.viewTo - 1; + toNode = display.lineDiv.lastChild; + } else { + toLine = lineNo(display.view[toIndex + 1].line) - 1; + toNode = display.view[toIndex + 1].node.previousSibling; + } + + if (!fromNode) { return false } + var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine)); + var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length)); + while (newText.length > 1 && oldText.length > 1) { + if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; } + else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; } + else { break } + } + + var cutFront = 0, cutEnd = 0; + var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length); + while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront)) + { ++cutFront; } + var newBot = lst(newText), oldBot = lst(oldText); + var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0), + oldBot.length - (oldText.length == 1 ? cutFront : 0)); + while (cutEnd < maxCutEnd && + newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) + { ++cutEnd; } + // Try to move start of change to start of selection if ambiguous + if (newText.length == 1 && oldText.length == 1 && fromLine == from.line) { + while (cutFront && cutFront > from.ch && + newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) { + cutFront--; + cutEnd++; + } + } + + newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd).replace(/^\u200b+/, ""); + newText[0] = newText[0].slice(cutFront).replace(/\u200b+$/, ""); + + var chFrom = Pos(fromLine, cutFront); + var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0); + if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) { + replaceRange(cm.doc, newText, chFrom, chTo, "+input"); + return true + } + }; + + ContentEditableInput.prototype.ensurePolled = function () { + this.forceCompositionEnd(); + }; + ContentEditableInput.prototype.reset = function () { + this.forceCompositionEnd(); + }; + ContentEditableInput.prototype.forceCompositionEnd = function () { + if (!this.composing) { return } + clearTimeout(this.readDOMTimeout); + this.composing = null; + this.updateFromDOM(); + this.div.blur(); + this.div.focus(); + }; + ContentEditableInput.prototype.readFromDOMSoon = function () { + var this$1 = this; + + if (this.readDOMTimeout != null) { return } + this.readDOMTimeout = setTimeout(function () { + this$1.readDOMTimeout = null; + if (this$1.composing) { + if (this$1.composing.done) { this$1.composing = null; } + else { return } + } + this$1.updateFromDOM(); + }, 80); + }; + + ContentEditableInput.prototype.updateFromDOM = function () { + var this$1 = this; + + if (this.cm.isReadOnly() || !this.pollContent()) + { runInOp(this.cm, function () { return regChange(this$1.cm); }); } + }; + + ContentEditableInput.prototype.setUneditable = function (node) { + node.contentEditable = "false"; + }; + + ContentEditableInput.prototype.onKeyPress = function (e) { + if (e.charCode == 0 || this.composing) { return } + e.preventDefault(); + if (!this.cm.isReadOnly()) + { operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); } + }; + + ContentEditableInput.prototype.readOnlyChanged = function (val) { + this.div.contentEditable = String(val != "nocursor"); + }; + + ContentEditableInput.prototype.onContextMenu = function () {}; + ContentEditableInput.prototype.resetPosition = function () {}; + + ContentEditableInput.prototype.needsContentAttribute = true; + + function posToDOM(cm, pos) { + var view = findViewForLine(cm, pos.line); + if (!view || view.hidden) { return null } + var line = getLine(cm.doc, pos.line); + var info = mapFromLineView(view, line, pos.line); + + var order = getOrder(line, cm.doc.direction), side = "left"; + if (order) { + var partPos = getBidiPartAt(order, pos.ch); + side = partPos % 2 ? "right" : "left"; + } + var result = nodeAndOffsetInLineMap(info.map, pos.ch, side); + result.offset = result.collapse == "right" ? result.end : result.start; + return result + } + + function isInGutter(node) { + for (var scan = node; scan; scan = scan.parentNode) + { if (/CodeMirror-gutter-wrapper/.test(scan.className)) { return true } } + return false + } + + function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos } + + function domTextBetween(cm, from, to, fromLine, toLine) { + var text = "", closing = false, lineSep = cm.doc.lineSeparator(), extraLinebreak = false; + function recognizeMarker(id) { return function (marker) { return marker.id == id; } } + function close() { + if (closing) { + text += lineSep; + if (extraLinebreak) { text += lineSep; } + closing = extraLinebreak = false; + } + } + function addText(str) { + if (str) { + close(); + text += str; + } + } + function walk(node) { + if (node.nodeType == 1) { + var cmText = node.getAttribute("cm-text"); + if (cmText) { + addText(cmText); + return + } + var markerID = node.getAttribute("cm-marker"), range$$1; + if (markerID) { + var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID)); + if (found.length && (range$$1 = found[0].find(0))) + { addText(getBetween(cm.doc, range$$1.from, range$$1.to).join(lineSep)); } + return + } + if (node.getAttribute("contenteditable") == "false") { return } + var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName); + if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { return } + + if (isBlock) { close(); } + for (var i = 0; i < node.childNodes.length; i++) + { walk(node.childNodes[i]); } + + if (/^(pre|p)$/i.test(node.nodeName)) { extraLinebreak = true; } + if (isBlock) { closing = true; } + } else if (node.nodeType == 3) { + addText(node.nodeValue.replace(/\u200b/g, "").replace(/\u00a0/g, " ")); + } + } + for (;;) { + walk(from); + if (from == to) { break } + from = from.nextSibling; + extraLinebreak = false; + } + return text + } + + function domToPos(cm, node, offset) { + var lineNode; + if (node == cm.display.lineDiv) { + lineNode = cm.display.lineDiv.childNodes[offset]; + if (!lineNode) { return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true) } + node = null; offset = 0; + } else { + for (lineNode = node;; lineNode = lineNode.parentNode) { + if (!lineNode || lineNode == cm.display.lineDiv) { return null } + if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { break } + } + } + for (var i = 0; i < cm.display.view.length; i++) { + var lineView = cm.display.view[i]; + if (lineView.node == lineNode) + { return locateNodeInLineView(lineView, node, offset) } + } + } + + function locateNodeInLineView(lineView, node, offset) { + var wrapper = lineView.text.firstChild, bad = false; + if (!node || !contains(wrapper, node)) { return badPos(Pos(lineNo(lineView.line), 0), true) } + if (node == wrapper) { + bad = true; + node = wrapper.childNodes[offset]; + offset = 0; + if (!node) { + var line = lineView.rest ? lst(lineView.rest) : lineView.line; + return badPos(Pos(lineNo(line), line.text.length), bad) + } + } + + var textNode = node.nodeType == 3 ? node : null, topNode = node; + if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) { + textNode = node.firstChild; + if (offset) { offset = textNode.nodeValue.length; } + } + while (topNode.parentNode != wrapper) { topNode = topNode.parentNode; } + var measure = lineView.measure, maps = measure.maps; + + function find(textNode, topNode, offset) { + for (var i = -1; i < (maps ? maps.length : 0); i++) { + var map$$1 = i < 0 ? measure.map : maps[i]; + for (var j = 0; j < map$$1.length; j += 3) { + var curNode = map$$1[j + 2]; + if (curNode == textNode || curNode == topNode) { + var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]); + var ch = map$$1[j] + offset; + if (offset < 0 || curNode != textNode) { ch = map$$1[j + (offset ? 1 : 0)]; } + return Pos(line, ch) + } + } + } + } + var found = find(textNode, topNode, offset); + if (found) { return badPos(found, bad) } + + // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems + for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) { + found = find(after, after.firstChild, 0); + if (found) + { return badPos(Pos(found.line, found.ch - dist), bad) } + else + { dist += after.textContent.length; } + } + for (var before = topNode.previousSibling, dist$1 = offset; before; before = before.previousSibling) { + found = find(before, before.firstChild, -1); + if (found) + { return badPos(Pos(found.line, found.ch + dist$1), bad) } + else + { dist$1 += before.textContent.length; } + } + } + + // TEXTAREA INPUT STYLE + + var TextareaInput = function(cm) { + this.cm = cm; + // See input.poll and input.reset + this.prevInput = ""; + + // Flag that indicates whether we expect input to appear real soon + // now (after some event like 'keypress' or 'input') and are + // polling intensively. + this.pollingFast = false; + // Self-resetting timeout for the poller + this.polling = new Delayed(); + // Used to work around IE issue with selection being forgotten when focus moves away from textarea + this.hasSelection = false; + this.composing = null; + }; + + TextareaInput.prototype.init = function (display) { + var this$1 = this; + + var input = this, cm = this.cm; + this.createField(display); + var te = this.textarea; + + display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild); + + // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore) + if (ios) { te.style.width = "0px"; } + + on(te, "input", function () { + if (ie && ie_version >= 9 && this$1.hasSelection) { this$1.hasSelection = null; } + input.poll(); + }); + + on(te, "paste", function (e) { + if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return } + + cm.state.pasteIncoming = +new Date; + input.fastPoll(); + }); + + function prepareCopyCut(e) { + if (signalDOMEvent(cm, e)) { return } + if (cm.somethingSelected()) { + setLastCopied({lineWise: false, text: cm.getSelections()}); + } else if (!cm.options.lineWiseCopyCut) { + return + } else { + var ranges = copyableRanges(cm); + setLastCopied({lineWise: true, text: ranges.text}); + if (e.type == "cut") { + cm.setSelections(ranges.ranges, null, sel_dontScroll); + } else { + input.prevInput = ""; + te.value = ranges.text.join("\n"); + selectInput(te); + } + } + if (e.type == "cut") { cm.state.cutIncoming = +new Date; } + } + on(te, "cut", prepareCopyCut); + on(te, "copy", prepareCopyCut); + + on(display.scroller, "paste", function (e) { + if (eventInWidget(display, e) || signalDOMEvent(cm, e)) { return } + if (!te.dispatchEvent) { + cm.state.pasteIncoming = +new Date; + input.focus(); + return + } + + // Pass the `paste` event to the textarea so it's handled by its event listener. + var event = new Event("paste"); + event.clipboardData = e.clipboardData; + te.dispatchEvent(event); + }); + + // Prevent normal selection in the editor (we handle our own) + on(display.lineSpace, "selectstart", function (e) { + if (!eventInWidget(display, e)) { e_preventDefault(e); } + }); + + on(te, "compositionstart", function () { + var start = cm.getCursor("from"); + if (input.composing) { input.composing.range.clear(); } + input.composing = { + start: start, + range: cm.markText(start, cm.getCursor("to"), {className: "CodeMirror-composing"}) + }; + }); + on(te, "compositionend", function () { + if (input.composing) { + input.poll(); + input.composing.range.clear(); + input.composing = null; + } + }); + }; + + TextareaInput.prototype.createField = function (_display) { + // Wraps and hides input textarea + this.wrapper = hiddenTextarea(); + // The semihidden textarea that is focused when the editor is + // focused, and receives input. + this.textarea = this.wrapper.firstChild; + }; + + TextareaInput.prototype.prepareSelection = function () { + // Redraw the selection and/or cursor + var cm = this.cm, display = cm.display, doc = cm.doc; + var result = prepareSelection(cm); + + // Move the hidden textarea near the cursor to prevent scrolling artifacts + if (cm.options.moveInputWithCursor) { + var headPos = cursorCoords(cm, doc.sel.primary().head, "div"); + var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect(); + result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10, + headPos.top + lineOff.top - wrapOff.top)); + result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10, + headPos.left + lineOff.left - wrapOff.left)); + } + + return result + }; + + TextareaInput.prototype.showSelection = function (drawn) { + var cm = this.cm, display = cm.display; + removeChildrenAndAdd(display.cursorDiv, drawn.cursors); + removeChildrenAndAdd(display.selectionDiv, drawn.selection); + if (drawn.teTop != null) { + this.wrapper.style.top = drawn.teTop + "px"; + this.wrapper.style.left = drawn.teLeft + "px"; + } + }; + + // Reset the input to correspond to the selection (or to be empty, + // when not typing and nothing is selected) + TextareaInput.prototype.reset = function (typing) { + if (this.contextMenuPending || this.composing) { return } + var cm = this.cm; + if (cm.somethingSelected()) { + this.prevInput = ""; + var content = cm.getSelection(); + this.textarea.value = content; + if (cm.state.focused) { selectInput(this.textarea); } + if (ie && ie_version >= 9) { this.hasSelection = content; } + } else if (!typing) { + this.prevInput = this.textarea.value = ""; + if (ie && ie_version >= 9) { this.hasSelection = null; } + } + }; + + TextareaInput.prototype.getField = function () { return this.textarea }; + + TextareaInput.prototype.supportsTouch = function () { return false }; + + TextareaInput.prototype.focus = function () { + if (this.cm.options.readOnly != "nocursor" && (!mobile || activeElt() != this.textarea)) { + try { this.textarea.focus(); } + catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM + } + }; + + TextareaInput.prototype.blur = function () { this.textarea.blur(); }; + + TextareaInput.prototype.resetPosition = function () { + this.wrapper.style.top = this.wrapper.style.left = 0; + }; + + TextareaInput.prototype.receivedFocus = function () { this.slowPoll(); }; + + // Poll for input changes, using the normal rate of polling. This + // runs as long as the editor is focused. + TextareaInput.prototype.slowPoll = function () { + var this$1 = this; + + if (this.pollingFast) { return } + this.polling.set(this.cm.options.pollInterval, function () { + this$1.poll(); + if (this$1.cm.state.focused) { this$1.slowPoll(); } + }); + }; + + // When an event has just come in that is likely to add or change + // something in the input textarea, we poll faster, to ensure that + // the change appears on the screen quickly. + TextareaInput.prototype.fastPoll = function () { + var missed = false, input = this; + input.pollingFast = true; + function p() { + var changed = input.poll(); + if (!changed && !missed) {missed = true; input.polling.set(60, p);} + else {input.pollingFast = false; input.slowPoll();} + } + input.polling.set(20, p); + }; + + // Read input from the textarea, and update the document to match. + // When something is selected, it is present in the textarea, and + // selected (unless it is huge, in which case a placeholder is + // used). When nothing is selected, the cursor sits after previously + // seen text (can be empty), which is stored in prevInput (we must + // not reset the textarea when typing, because that breaks IME). + TextareaInput.prototype.poll = function () { + var this$1 = this; + + var cm = this.cm, input = this.textarea, prevInput = this.prevInput; + // Since this is called a *lot*, try to bail out as cheaply as + // possible when it is clear that nothing happened. hasSelection + // will be the case when there is a lot of text in the textarea, + // in which case reading its value would be expensive. + if (this.contextMenuPending || !cm.state.focused || + (hasSelection(input) && !prevInput && !this.composing) || + cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq) + { return false } + + var text = input.value; + // If nothing changed, bail. + if (text == prevInput && !cm.somethingSelected()) { return false } + // Work around nonsensical selection resetting in IE9/10, and + // inexplicable appearance of private area unicode characters on + // some key combos in Mac (#2689). + if (ie && ie_version >= 9 && this.hasSelection === text || + mac && /[\uf700-\uf7ff]/.test(text)) { + cm.display.input.reset(); + return false + } + + if (cm.doc.sel == cm.display.selForContextMenu) { + var first = text.charCodeAt(0); + if (first == 0x200b && !prevInput) { prevInput = "\u200b"; } + if (first == 0x21da) { this.reset(); return this.cm.execCommand("undo") } + } + // Find the part of the input that is actually new + var same = 0, l = Math.min(prevInput.length, text.length); + while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) { ++same; } + + runInOp(cm, function () { + applyTextInput(cm, text.slice(same), prevInput.length - same, + null, this$1.composing ? "*compose" : null); + + // Don't leave long text in the textarea, since it makes further polling slow + if (text.length > 1000 || text.indexOf("\n") > -1) { input.value = this$1.prevInput = ""; } + else { this$1.prevInput = text; } + + if (this$1.composing) { + this$1.composing.range.clear(); + this$1.composing.range = cm.markText(this$1.composing.start, cm.getCursor("to"), + {className: "CodeMirror-composing"}); + } + }); + return true + }; + + TextareaInput.prototype.ensurePolled = function () { + if (this.pollingFast && this.poll()) { this.pollingFast = false; } + }; + + TextareaInput.prototype.onKeyPress = function () { + if (ie && ie_version >= 9) { this.hasSelection = null; } + this.fastPoll(); + }; + + TextareaInput.prototype.onContextMenu = function (e) { + var input = this, cm = input.cm, display = cm.display, te = input.textarea; + if (input.contextMenuPending) { input.contextMenuPending(); } + var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop; + if (!pos || presto) { return } // Opera is difficult. + + // Reset the current text selection only if the click is done outside of the selection + // and 'resetSelectionOnContextMenu' option is true. + var reset = cm.options.resetSelectionOnContextMenu; + if (reset && cm.doc.sel.contains(pos) == -1) + { operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); } + + var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText; + var wrapperBox = input.wrapper.offsetParent.getBoundingClientRect(); + input.wrapper.style.cssText = "position: static"; + te.style.cssText = "position: absolute; width: 30px; height: 30px;\n top: " + (e.clientY - wrapperBox.top - 5) + "px; left: " + (e.clientX - wrapperBox.left - 5) + "px;\n z-index: 1000; background: " + (ie ? "rgba(255, 255, 255, .05)" : "transparent") + ";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);"; + var oldScrollY; + if (webkit) { oldScrollY = window.scrollY; } // Work around Chrome issue (#2712) + display.input.focus(); + if (webkit) { window.scrollTo(null, oldScrollY); } + display.input.reset(); + // Adds "Select all" to context menu in FF + if (!cm.somethingSelected()) { te.value = input.prevInput = " "; } + input.contextMenuPending = rehide; + display.selForContextMenu = cm.doc.sel; + clearTimeout(display.detectingSelectAll); + + // Select-all will be greyed out if there's nothing to select, so + // this adds a zero-width space so that we can later check whether + // it got selected. + function prepareSelectAllHack() { + if (te.selectionStart != null) { + var selected = cm.somethingSelected(); + var extval = "\u200b" + (selected ? te.value : ""); + te.value = "\u21da"; // Used to catch context-menu undo + te.value = extval; + input.prevInput = selected ? "" : "\u200b"; + te.selectionStart = 1; te.selectionEnd = extval.length; + // Re-set this, in case some other handler touched the + // selection in the meantime. + display.selForContextMenu = cm.doc.sel; + } + } + function rehide() { + if (input.contextMenuPending != rehide) { return } + input.contextMenuPending = false; + input.wrapper.style.cssText = oldWrapperCSS; + te.style.cssText = oldCSS; + if (ie && ie_version < 9) { display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); } + + // Try to detect the user choosing select-all + if (te.selectionStart != null) { + if (!ie || (ie && ie_version < 9)) { prepareSelectAllHack(); } + var i = 0, poll = function () { + if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 && + te.selectionEnd > 0 && input.prevInput == "\u200b") { + operation(cm, selectAll)(cm); + } else if (i++ < 10) { + display.detectingSelectAll = setTimeout(poll, 500); + } else { + display.selForContextMenu = null; + display.input.reset(); + } + }; + display.detectingSelectAll = setTimeout(poll, 200); + } + } + + if (ie && ie_version >= 9) { prepareSelectAllHack(); } + if (captureRightClick) { + e_stop(e); + var mouseup = function () { + off(window, "mouseup", mouseup); + setTimeout(rehide, 20); + }; + on(window, "mouseup", mouseup); + } else { + setTimeout(rehide, 50); + } + }; + + TextareaInput.prototype.readOnlyChanged = function (val) { + if (!val) { this.reset(); } + this.textarea.disabled = val == "nocursor"; + }; + + TextareaInput.prototype.setUneditable = function () {}; + + TextareaInput.prototype.needsContentAttribute = false; + + function fromTextArea(textarea, options) { + options = options ? copyObj(options) : {}; + options.value = textarea.value; + if (!options.tabindex && textarea.tabIndex) + { options.tabindex = textarea.tabIndex; } + if (!options.placeholder && textarea.placeholder) + { options.placeholder = textarea.placeholder; } + // Set autofocus to true if this textarea is focused, or if it has + // autofocus and no other element is focused. + if (options.autofocus == null) { + var hasFocus = activeElt(); + options.autofocus = hasFocus == textarea || + textarea.getAttribute("autofocus") != null && hasFocus == document.body; + } + + function save() {textarea.value = cm.getValue();} + + var realSubmit; + if (textarea.form) { + on(textarea.form, "submit", save); + // Deplorable hack to make the submit method do the right thing. + if (!options.leaveSubmitMethodAlone) { + var form = textarea.form; + realSubmit = form.submit; + try { + var wrappedSubmit = form.submit = function () { + save(); + form.submit = realSubmit; + form.submit(); + form.submit = wrappedSubmit; + }; + } catch(e) {} + } + } + + options.finishInit = function (cm) { + cm.save = save; + cm.getTextArea = function () { return textarea; }; + cm.toTextArea = function () { + cm.toTextArea = isNaN; // Prevent this from being ran twice + save(); + textarea.parentNode.removeChild(cm.getWrapperElement()); + textarea.style.display = ""; + if (textarea.form) { + off(textarea.form, "submit", save); + if (typeof textarea.form.submit == "function") + { textarea.form.submit = realSubmit; } + } + }; + }; + + textarea.style.display = "none"; + var cm = CodeMirror(function (node) { return textarea.parentNode.insertBefore(node, textarea.nextSibling); }, + options); + return cm + } + + function addLegacyProps(CodeMirror) { + CodeMirror.off = off; + CodeMirror.on = on; + CodeMirror.wheelEventPixels = wheelEventPixels; + CodeMirror.Doc = Doc; + CodeMirror.splitLines = splitLinesAuto; + CodeMirror.countColumn = countColumn; + CodeMirror.findColumn = findColumn; + CodeMirror.isWordChar = isWordCharBasic; + CodeMirror.Pass = Pass; + CodeMirror.signal = signal; + CodeMirror.Line = Line; + CodeMirror.changeEnd = changeEnd; + CodeMirror.scrollbarModel = scrollbarModel; + CodeMirror.Pos = Pos; + CodeMirror.cmpPos = cmp; + CodeMirror.modes = modes; + CodeMirror.mimeModes = mimeModes; + CodeMirror.resolveMode = resolveMode; + CodeMirror.getMode = getMode; + CodeMirror.modeExtensions = modeExtensions; + CodeMirror.extendMode = extendMode; + CodeMirror.copyState = copyState; + CodeMirror.startState = startState; + CodeMirror.innerMode = innerMode; + CodeMirror.commands = commands; + CodeMirror.keyMap = keyMap; + CodeMirror.keyName = keyName; + CodeMirror.isModifierKey = isModifierKey; + CodeMirror.lookupKey = lookupKey; + CodeMirror.normalizeKeyMap = normalizeKeyMap; + CodeMirror.StringStream = StringStream; + CodeMirror.SharedTextMarker = SharedTextMarker; + CodeMirror.TextMarker = TextMarker; + CodeMirror.LineWidget = LineWidget; + CodeMirror.e_preventDefault = e_preventDefault; + CodeMirror.e_stopPropagation = e_stopPropagation; + CodeMirror.e_stop = e_stop; + CodeMirror.addClass = addClass; + CodeMirror.contains = contains; + CodeMirror.rmClass = rmClass; + CodeMirror.keyNames = keyNames; + } + + // EDITOR CONSTRUCTOR + + defineOptions(CodeMirror); + + addEditorMethods(CodeMirror); + + // Set up methods on CodeMirror's prototype to redirect to the editor's document. + var dontDelegate = "iter insert remove copy getEditor constructor".split(" "); + for (var prop in Doc.prototype) { if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0) + { CodeMirror.prototype[prop] = (function(method) { + return function() {return method.apply(this.doc, arguments)} + })(Doc.prototype[prop]); } } + + eventMixin(Doc); + CodeMirror.inputStyles = {"textarea": TextareaInput, "contenteditable": ContentEditableInput}; + + // Extra arguments are stored as the mode's dependencies, which is + // used by (legacy) mechanisms like loadmode.js to automatically + // load a mode. (Preferred mechanism is the require/define calls.) + CodeMirror.defineMode = function(name/*, mode, …*/) { + if (!CodeMirror.defaults.mode && name != "null") { CodeMirror.defaults.mode = name; } + defineMode.apply(this, arguments); + }; + + CodeMirror.defineMIME = defineMIME; + + // Minimal default mode. + CodeMirror.defineMode("null", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); }); + CodeMirror.defineMIME("text/plain", "null"); + + // EXTENSIONS + + CodeMirror.defineExtension = function (name, func) { + CodeMirror.prototype[name] = func; + }; + CodeMirror.defineDocExtension = function (name, func) { + Doc.prototype[name] = func; + }; + + CodeMirror.fromTextArea = fromTextArea; + + addLegacyProps(CodeMirror); + + CodeMirror.version = "5.48.2"; + + return CodeMirror; + +}))); + + +/***/ }), + +/***/ "./node_modules/codemirror/mode/gfm/gfm.js": +/*!*************************************************!*\ + !*** ./node_modules/codemirror/mode/gfm/gfm.js ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js"), __webpack_require__(/*! ../markdown/markdown */ "./node_modules/codemirror/mode/markdown/markdown.js"), __webpack_require__(/*! ../../addon/mode/overlay */ "./node_modules/codemirror/addon/mode/overlay.js")); + else {} +})(function(CodeMirror) { +"use strict"; + +var urlRE = /^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\.beep|\.lwz|\.xpc|\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\.beeps?|xmpp|xri|ymsgr|z39\.50[rs]?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i + +CodeMirror.defineMode("gfm", function(config, modeConfig) { + var codeDepth = 0; + function blankLine(state) { + state.code = false; + return null; + } + var gfmOverlay = { + startState: function() { + return { + code: false, + codeBlock: false, + ateSpace: false + }; + }, + copyState: function(s) { + return { + code: s.code, + codeBlock: s.codeBlock, + ateSpace: s.ateSpace + }; + }, + token: function(stream, state) { + state.combineTokens = null; + + // Hack to prevent formatting override inside code blocks (block and inline) + if (state.codeBlock) { + if (stream.match(/^```+/)) { + state.codeBlock = false; + return null; + } + stream.skipToEnd(); + return null; + } + if (stream.sol()) { + state.code = false; + } + if (stream.sol() && stream.match(/^```+/)) { + stream.skipToEnd(); + state.codeBlock = true; + return null; + } + // If this block is changed, it may need to be updated in Markdown mode + if (stream.peek() === '`') { + stream.next(); + var before = stream.pos; + stream.eatWhile('`'); + var difference = 1 + stream.pos - before; + if (!state.code) { + codeDepth = difference; + state.code = true; + } else { + if (difference === codeDepth) { // Must be exact + state.code = false; + } + } + return null; + } else if (state.code) { + stream.next(); + return null; + } + // Check if space. If so, links can be formatted later on + if (stream.eatSpace()) { + state.ateSpace = true; + return null; + } + if (stream.sol() || state.ateSpace) { + state.ateSpace = false; + if (modeConfig.gitHubSpice !== false) { + if(stream.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?=.{0,6}\d)(?:[a-f0-9]{7,40}\b)/)) { + // User/Project@SHA + // User@SHA + // SHA + state.combineTokens = true; + return "link"; + } else if (stream.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/)) { + // User/Project#Num + // User#Num + // #Num + state.combineTokens = true; + return "link"; + } + } + } + if (stream.match(urlRE) && + stream.string.slice(stream.start - 2, stream.start) != "](" && + (stream.start == 0 || /\W/.test(stream.string.charAt(stream.start - 1)))) { + // URLs + // Taken from http://daringfireball.net/2010/07/improved_regex_for_matching_urls + // And then (issue #1160) simplified to make it not crash the Chrome Regexp engine + // And then limited url schemes to the CommonMark list, so foo:bar isn't matched as a URL + state.combineTokens = true; + return "link"; + } + stream.next(); + return null; + }, + blankLine: blankLine + }; + + var markdownConfig = { + taskLists: true, + strikethrough: true, + emoji: true + }; + for (var attr in modeConfig) { + markdownConfig[attr] = modeConfig[attr]; + } + markdownConfig.name = "markdown"; + return CodeMirror.overlayMode(CodeMirror.getMode(config, markdownConfig), gfmOverlay); + +}, "markdown"); + + CodeMirror.defineMIME("text/x-gfm", "gfm"); +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/mode/markdown/markdown.js": +/*!***********************************************************!*\ + !*** ./node_modules/codemirror/mode/markdown/markdown.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js"), __webpack_require__(/*! ../xml/xml */ "./node_modules/codemirror/mode/xml/xml.js"), __webpack_require__(/*! ../meta */ "./node_modules/codemirror/mode/meta.js")); + else {} +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) { + + var htmlMode = CodeMirror.getMode(cmCfg, "text/html"); + var htmlModeMissing = htmlMode.name == "null" + + function getMode(name) { + if (CodeMirror.findModeByName) { + var found = CodeMirror.findModeByName(name); + if (found) name = found.mime || found.mimes[0]; + } + var mode = CodeMirror.getMode(cmCfg, name); + return mode.name == "null" ? null : mode; + } + + // Should characters that affect highlighting be highlighted separate? + // Does not include characters that will be output (such as `1.` and `-` for lists) + if (modeCfg.highlightFormatting === undefined) + modeCfg.highlightFormatting = false; + + // Maximum number of nested blockquotes. Set to 0 for infinite nesting. + // Excess `>` will emit `error` token. + if (modeCfg.maxBlockquoteDepth === undefined) + modeCfg.maxBlockquoteDepth = 0; + + // Turn on task lists? ("- [ ] " and "- [x] ") + if (modeCfg.taskLists === undefined) modeCfg.taskLists = false; + + // Turn on strikethrough syntax + if (modeCfg.strikethrough === undefined) + modeCfg.strikethrough = false; + + if (modeCfg.emoji === undefined) + modeCfg.emoji = false; + + if (modeCfg.fencedCodeBlockHighlighting === undefined) + modeCfg.fencedCodeBlockHighlighting = true; + + if (modeCfg.xml === undefined) + modeCfg.xml = true; + + // Allow token types to be overridden by user-provided token types. + if (modeCfg.tokenTypeOverrides === undefined) + modeCfg.tokenTypeOverrides = {}; + + var tokenTypes = { + header: "header", + code: "comment", + quote: "quote", + list1: "variable-2", + list2: "variable-3", + list3: "keyword", + hr: "hr", + image: "image", + imageAltText: "image-alt-text", + imageMarker: "image-marker", + formatting: "formatting", + linkInline: "link", + linkEmail: "link", + linkText: "link", + linkHref: "string", + em: "em", + strong: "strong", + strikethrough: "strikethrough", + emoji: "builtin" + }; + + for (var tokenType in tokenTypes) { + if (tokenTypes.hasOwnProperty(tokenType) && modeCfg.tokenTypeOverrides[tokenType]) { + tokenTypes[tokenType] = modeCfg.tokenTypeOverrides[tokenType]; + } + } + + var hrRE = /^([*\-_])(?:\s*\1){2,}\s*$/ + , listRE = /^(?:[*\-+]|^[0-9]+([.)]))\s+/ + , taskListRE = /^\[(x| )\](?=\s)/i // Must follow listRE + , atxHeaderRE = modeCfg.allowAtxHeaderWithoutSpace ? /^(#+)/ : /^(#+)(?: |$)/ + , setextHeaderRE = /^ *(?:\={1,}|-{1,})\s*$/ + , textRE = /^[^#!\[\]*_\\<>` "'(~:]+/ + , fencedCodeRE = /^(~~~+|```+)[ \t]*([\w+#-]*)[^\n`]*$/ + , linkDefRE = /^\s*\[[^\]]+?\]:.*$/ // naive link-definition + , punctuation = /[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/ + , expandedTab = " " // CommonMark specifies tab as 4 spaces + + function switchInline(stream, state, f) { + state.f = state.inline = f; + return f(stream, state); + } + + function switchBlock(stream, state, f) { + state.f = state.block = f; + return f(stream, state); + } + + function lineIsEmpty(line) { + return !line || !/\S/.test(line.string) + } + + // Blocks + + function blankLine(state) { + // Reset linkTitle state + state.linkTitle = false; + state.linkHref = false; + state.linkText = false; + // Reset EM state + state.em = false; + // Reset STRONG state + state.strong = false; + // Reset strikethrough state + state.strikethrough = false; + // Reset state.quote + state.quote = 0; + // Reset state.indentedCode + state.indentedCode = false; + if (state.f == htmlBlock) { + var exit = htmlModeMissing + if (!exit) { + var inner = CodeMirror.innerMode(htmlMode, state.htmlState) + exit = inner.mode.name == "xml" && inner.state.tagStart === null && + (!inner.state.context && inner.state.tokenize.isInText) + } + if (exit) { + state.f = inlineNormal; + state.block = blockNormal; + state.htmlState = null; + } + } + // Reset state.trailingSpace + state.trailingSpace = 0; + state.trailingSpaceNewLine = false; + // Mark this line as blank + state.prevLine = state.thisLine + state.thisLine = {stream: null} + return null; + } + + function blockNormal(stream, state) { + var firstTokenOnLine = stream.column() === state.indentation; + var prevLineLineIsEmpty = lineIsEmpty(state.prevLine.stream); + var prevLineIsIndentedCode = state.indentedCode; + var prevLineIsHr = state.prevLine.hr; + var prevLineIsList = state.list !== false; + var maxNonCodeIndentation = (state.listStack[state.listStack.length - 1] || 0) + 3; + + state.indentedCode = false; + + var lineIndentation = state.indentation; + // compute once per line (on first token) + if (state.indentationDiff === null) { + state.indentationDiff = state.indentation; + if (prevLineIsList) { + // Reset inline styles which shouldn't propagate aross list items + state.em = false; + state.strong = false; + state.code = false; + state.strikethrough = false; + + state.list = null; + // While this list item's marker's indentation is less than the deepest + // list item's content's indentation,pop the deepest list item + // indentation off the stack, and update block indentation state + while (lineIndentation < state.listStack[state.listStack.length - 1]) { + state.listStack.pop(); + if (state.listStack.length) { + state.indentation = state.listStack[state.listStack.length - 1]; + // less than the first list's indent -> the line is no longer a list + } else { + state.list = false; + } + } + if (state.list !== false) { + state.indentationDiff = lineIndentation - state.listStack[state.listStack.length - 1] + } + } + } + + // not comprehensive (currently only for setext detection purposes) + var allowsInlineContinuation = ( + !prevLineLineIsEmpty && !prevLineIsHr && !state.prevLine.header && + (!prevLineIsList || !prevLineIsIndentedCode) && + !state.prevLine.fencedCodeEnd + ); + + var isHr = (state.list === false || prevLineIsHr || prevLineLineIsEmpty) && + state.indentation <= maxNonCodeIndentation && stream.match(hrRE); + + var match = null; + if (state.indentationDiff >= 4 && (prevLineIsIndentedCode || state.prevLine.fencedCodeEnd || + state.prevLine.header || prevLineLineIsEmpty)) { + stream.skipToEnd(); + state.indentedCode = true; + return tokenTypes.code; + } else if (stream.eatSpace()) { + return null; + } else if (firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(atxHeaderRE)) && match[1].length <= 6) { + state.quote = 0; + state.header = match[1].length; + state.thisLine.header = true; + if (modeCfg.highlightFormatting) state.formatting = "header"; + state.f = state.inline; + return getType(state); + } else if (state.indentation <= maxNonCodeIndentation && stream.eat('>')) { + state.quote = firstTokenOnLine ? 1 : state.quote + 1; + if (modeCfg.highlightFormatting) state.formatting = "quote"; + stream.eatSpace(); + return getType(state); + } else if (!isHr && !state.setext && firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(listRE))) { + var listType = match[1] ? "ol" : "ul"; + + state.indentation = lineIndentation + stream.current().length; + state.list = true; + state.quote = 0; + + // Add this list item's content's indentation to the stack + state.listStack.push(state.indentation); + + if (modeCfg.taskLists && stream.match(taskListRE, false)) { + state.taskList = true; + } + state.f = state.inline; + if (modeCfg.highlightFormatting) state.formatting = ["list", "list-" + listType]; + return getType(state); + } else if (firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(fencedCodeRE, true))) { + state.quote = 0; + state.fencedEndRE = new RegExp(match[1] + "+ *$"); + // try switching mode + state.localMode = modeCfg.fencedCodeBlockHighlighting && getMode(match[2]); + if (state.localMode) state.localState = CodeMirror.startState(state.localMode); + state.f = state.block = local; + if (modeCfg.highlightFormatting) state.formatting = "code-block"; + state.code = -1 + return getType(state); + // SETEXT has lowest block-scope precedence after HR, so check it after + // the others (code, blockquote, list...) + } else if ( + // if setext set, indicates line after ---/=== + state.setext || ( + // line before ---/=== + (!allowsInlineContinuation || !prevLineIsList) && !state.quote && state.list === false && + !state.code && !isHr && !linkDefRE.test(stream.string) && + (match = stream.lookAhead(1)) && (match = match.match(setextHeaderRE)) + ) + ) { + if ( !state.setext ) { + state.header = match[0].charAt(0) == '=' ? 1 : 2; + state.setext = state.header; + } else { + state.header = state.setext; + // has no effect on type so we can reset it now + state.setext = 0; + stream.skipToEnd(); + if (modeCfg.highlightFormatting) state.formatting = "header"; + } + state.thisLine.header = true; + state.f = state.inline; + return getType(state); + } else if (isHr) { + stream.skipToEnd(); + state.hr = true; + state.thisLine.hr = true; + return tokenTypes.hr; + } else if (stream.peek() === '[') { + return switchInline(stream, state, footnoteLink); + } + + return switchInline(stream, state, state.inline); + } + + function htmlBlock(stream, state) { + var style = htmlMode.token(stream, state.htmlState); + if (!htmlModeMissing) { + var inner = CodeMirror.innerMode(htmlMode, state.htmlState) + if ((inner.mode.name == "xml" && inner.state.tagStart === null && + (!inner.state.context && inner.state.tokenize.isInText)) || + (state.md_inside && stream.current().indexOf(">") > -1)) { + state.f = inlineNormal; + state.block = blockNormal; + state.htmlState = null; + } + } + return style; + } + + function local(stream, state) { + var currListInd = state.listStack[state.listStack.length - 1] || 0; + var hasExitedList = state.indentation < currListInd; + var maxFencedEndInd = currListInd + 3; + if (state.fencedEndRE && state.indentation <= maxFencedEndInd && (hasExitedList || stream.match(state.fencedEndRE))) { + if (modeCfg.highlightFormatting) state.formatting = "code-block"; + var returnType; + if (!hasExitedList) returnType = getType(state) + state.localMode = state.localState = null; + state.block = blockNormal; + state.f = inlineNormal; + state.fencedEndRE = null; + state.code = 0 + state.thisLine.fencedCodeEnd = true; + if (hasExitedList) return switchBlock(stream, state, state.block); + return returnType; + } else if (state.localMode) { + return state.localMode.token(stream, state.localState); + } else { + stream.skipToEnd(); + return tokenTypes.code; + } + } + + // Inline + function getType(state) { + var styles = []; + + if (state.formatting) { + styles.push(tokenTypes.formatting); + + if (typeof state.formatting === "string") state.formatting = [state.formatting]; + + for (var i = 0; i < state.formatting.length; i++) { + styles.push(tokenTypes.formatting + "-" + state.formatting[i]); + + if (state.formatting[i] === "header") { + styles.push(tokenTypes.formatting + "-" + state.formatting[i] + "-" + state.header); + } + + // Add `formatting-quote` and `formatting-quote-#` for blockquotes + // Add `error` instead if the maximum blockquote nesting depth is passed + if (state.formatting[i] === "quote") { + if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) { + styles.push(tokenTypes.formatting + "-" + state.formatting[i] + "-" + state.quote); + } else { + styles.push("error"); + } + } + } + } + + if (state.taskOpen) { + styles.push("meta"); + return styles.length ? styles.join(' ') : null; + } + if (state.taskClosed) { + styles.push("property"); + return styles.length ? styles.join(' ') : null; + } + + if (state.linkHref) { + styles.push(tokenTypes.linkHref, "url"); + } else { // Only apply inline styles to non-url text + if (state.strong) { styles.push(tokenTypes.strong); } + if (state.em) { styles.push(tokenTypes.em); } + if (state.strikethrough) { styles.push(tokenTypes.strikethrough); } + if (state.emoji) { styles.push(tokenTypes.emoji); } + if (state.linkText) { styles.push(tokenTypes.linkText); } + if (state.code) { styles.push(tokenTypes.code); } + if (state.image) { styles.push(tokenTypes.image); } + if (state.imageAltText) { styles.push(tokenTypes.imageAltText, "link"); } + if (state.imageMarker) { styles.push(tokenTypes.imageMarker); } + } + + if (state.header) { styles.push(tokenTypes.header, tokenTypes.header + "-" + state.header); } + + if (state.quote) { + styles.push(tokenTypes.quote); + + // Add `quote-#` where the maximum for `#` is modeCfg.maxBlockquoteDepth + if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) { + styles.push(tokenTypes.quote + "-" + state.quote); + } else { + styles.push(tokenTypes.quote + "-" + modeCfg.maxBlockquoteDepth); + } + } + + if (state.list !== false) { + var listMod = (state.listStack.length - 1) % 3; + if (!listMod) { + styles.push(tokenTypes.list1); + } else if (listMod === 1) { + styles.push(tokenTypes.list2); + } else { + styles.push(tokenTypes.list3); + } + } + + if (state.trailingSpaceNewLine) { + styles.push("trailing-space-new-line"); + } else if (state.trailingSpace) { + styles.push("trailing-space-" + (state.trailingSpace % 2 ? "a" : "b")); + } + + return styles.length ? styles.join(' ') : null; + } + + function handleText(stream, state) { + if (stream.match(textRE, true)) { + return getType(state); + } + return undefined; + } + + function inlineNormal(stream, state) { + var style = state.text(stream, state); + if (typeof style !== 'undefined') + return style; + + if (state.list) { // List marker (*, +, -, 1., etc) + state.list = null; + return getType(state); + } + + if (state.taskList) { + var taskOpen = stream.match(taskListRE, true)[1] === " "; + if (taskOpen) state.taskOpen = true; + else state.taskClosed = true; + if (modeCfg.highlightFormatting) state.formatting = "task"; + state.taskList = false; + return getType(state); + } + + state.taskOpen = false; + state.taskClosed = false; + + if (state.header && stream.match(/^#+$/, true)) { + if (modeCfg.highlightFormatting) state.formatting = "header"; + return getType(state); + } + + var ch = stream.next(); + + // Matches link titles present on next line + if (state.linkTitle) { + state.linkTitle = false; + var matchCh = ch; + if (ch === '(') { + matchCh = ')'; + } + matchCh = (matchCh+'').replace(/([.?*+^\[\]\\(){}|-])/g, "\\$1"); + var regex = '^\\s*(?:[^' + matchCh + '\\\\]+|\\\\\\\\|\\\\.)' + matchCh; + if (stream.match(new RegExp(regex), true)) { + return tokenTypes.linkHref; + } + } + + // If this block is changed, it may need to be updated in GFM mode + if (ch === '`') { + var previousFormatting = state.formatting; + if (modeCfg.highlightFormatting) state.formatting = "code"; + stream.eatWhile('`'); + var count = stream.current().length + if (state.code == 0 && (!state.quote || count == 1)) { + state.code = count + return getType(state) + } else if (count == state.code) { // Must be exact + var t = getType(state) + state.code = 0 + return t + } else { + state.formatting = previousFormatting + return getType(state) + } + } else if (state.code) { + return getType(state); + } + + if (ch === '\\') { + stream.next(); + if (modeCfg.highlightFormatting) { + var type = getType(state); + var formattingEscape = tokenTypes.formatting + "-escape"; + return type ? type + " " + formattingEscape : formattingEscape; + } + } + + if (ch === '!' && stream.match(/\[[^\]]*\] ?(?:\(|\[)/, false)) { + state.imageMarker = true; + state.image = true; + if (modeCfg.highlightFormatting) state.formatting = "image"; + return getType(state); + } + + if (ch === '[' && state.imageMarker && stream.match(/[^\]]*\](\(.*?\)| ?\[.*?\])/, false)) { + state.imageMarker = false; + state.imageAltText = true + if (modeCfg.highlightFormatting) state.formatting = "image"; + return getType(state); + } + + if (ch === ']' && state.imageAltText) { + if (modeCfg.highlightFormatting) state.formatting = "image"; + var type = getType(state); + state.imageAltText = false; + state.image = false; + state.inline = state.f = linkHref; + return type; + } + + if (ch === '[' && !state.image) { + if (state.linkText && stream.match(/^.*?\]/)) return getType(state) + state.linkText = true; + if (modeCfg.highlightFormatting) state.formatting = "link"; + return getType(state); + } + + if (ch === ']' && state.linkText) { + if (modeCfg.highlightFormatting) state.formatting = "link"; + var type = getType(state); + state.linkText = false; + state.inline = state.f = stream.match(/\(.*?\)| ?\[.*?\]/, false) ? linkHref : inlineNormal + return type; + } + + if (ch === '<' && stream.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/, false)) { + state.f = state.inline = linkInline; + if (modeCfg.highlightFormatting) state.formatting = "link"; + var type = getType(state); + if (type){ + type += " "; + } else { + type = ""; + } + return type + tokenTypes.linkInline; + } + + if (ch === '<' && stream.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/, false)) { + state.f = state.inline = linkInline; + if (modeCfg.highlightFormatting) state.formatting = "link"; + var type = getType(state); + if (type){ + type += " "; + } else { + type = ""; + } + return type + tokenTypes.linkEmail; + } + + if (modeCfg.xml && ch === '<' && stream.match(/^(!--|\?|!\[CDATA\[|[a-z][a-z0-9-]*(?:\s+[a-z_:.\-]+(?:\s*=\s*[^>]+)?)*\s*(?:>|$))/i, false)) { + var end = stream.string.indexOf(">", stream.pos); + if (end != -1) { + var atts = stream.string.substring(stream.start, end); + if (/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(atts)) state.md_inside = true; + } + stream.backUp(1); + state.htmlState = CodeMirror.startState(htmlMode); + return switchBlock(stream, state, htmlBlock); + } + + if (modeCfg.xml && ch === '<' && stream.match(/^\/\w*?>/)) { + state.md_inside = false; + return "tag"; + } else if (ch === "*" || ch === "_") { + var len = 1, before = stream.pos == 1 ? " " : stream.string.charAt(stream.pos - 2) + while (len < 3 && stream.eat(ch)) len++ + var after = stream.peek() || " " + // See http://spec.commonmark.org/0.27/#emphasis-and-strong-emphasis + var leftFlanking = !/\s/.test(after) && (!punctuation.test(after) || /\s/.test(before) || punctuation.test(before)) + var rightFlanking = !/\s/.test(before) && (!punctuation.test(before) || /\s/.test(after) || punctuation.test(after)) + var setEm = null, setStrong = null + if (len % 2) { // Em + if (!state.em && leftFlanking && (ch === "*" || !rightFlanking || punctuation.test(before))) + setEm = true + else if (state.em == ch && rightFlanking && (ch === "*" || !leftFlanking || punctuation.test(after))) + setEm = false + } + if (len > 1) { // Strong + if (!state.strong && leftFlanking && (ch === "*" || !rightFlanking || punctuation.test(before))) + setStrong = true + else if (state.strong == ch && rightFlanking && (ch === "*" || !leftFlanking || punctuation.test(after))) + setStrong = false + } + if (setStrong != null || setEm != null) { + if (modeCfg.highlightFormatting) state.formatting = setEm == null ? "strong" : setStrong == null ? "em" : "strong em" + if (setEm === true) state.em = ch + if (setStrong === true) state.strong = ch + var t = getType(state) + if (setEm === false) state.em = false + if (setStrong === false) state.strong = false + return t + } + } else if (ch === ' ') { + if (stream.eat('*') || stream.eat('_')) { // Probably surrounded by spaces + if (stream.peek() === ' ') { // Surrounded by spaces, ignore + return getType(state); + } else { // Not surrounded by spaces, back up pointer + stream.backUp(1); + } + } + } + + if (modeCfg.strikethrough) { + if (ch === '~' && stream.eatWhile(ch)) { + if (state.strikethrough) {// Remove strikethrough + if (modeCfg.highlightFormatting) state.formatting = "strikethrough"; + var t = getType(state); + state.strikethrough = false; + return t; + } else if (stream.match(/^[^\s]/, false)) {// Add strikethrough + state.strikethrough = true; + if (modeCfg.highlightFormatting) state.formatting = "strikethrough"; + return getType(state); + } + } else if (ch === ' ') { + if (stream.match(/^~~/, true)) { // Probably surrounded by space + if (stream.peek() === ' ') { // Surrounded by spaces, ignore + return getType(state); + } else { // Not surrounded by spaces, back up pointer + stream.backUp(2); + } + } + } + } + + if (modeCfg.emoji && ch === ":" && stream.match(/^(?:[a-z_\d+][a-z_\d+-]*|\-[a-z_\d+][a-z_\d+-]*):/)) { + state.emoji = true; + if (modeCfg.highlightFormatting) state.formatting = "emoji"; + var retType = getType(state); + state.emoji = false; + return retType; + } + + if (ch === ' ') { + if (stream.match(/^ +$/, false)) { + state.trailingSpace++; + } else if (state.trailingSpace) { + state.trailingSpaceNewLine = true; + } + } + + return getType(state); + } + + function linkInline(stream, state) { + var ch = stream.next(); + + if (ch === ">") { + state.f = state.inline = inlineNormal; + if (modeCfg.highlightFormatting) state.formatting = "link"; + var type = getType(state); + if (type){ + type += " "; + } else { + type = ""; + } + return type + tokenTypes.linkInline; + } + + stream.match(/^[^>]+/, true); + + return tokenTypes.linkInline; + } + + function linkHref(stream, state) { + // Check if space, and return NULL if so (to avoid marking the space) + if(stream.eatSpace()){ + return null; + } + var ch = stream.next(); + if (ch === '(' || ch === '[') { + state.f = state.inline = getLinkHrefInside(ch === "(" ? ")" : "]"); + if (modeCfg.highlightFormatting) state.formatting = "link-string"; + state.linkHref = true; + return getType(state); + } + return 'error'; + } + + var linkRE = { + ")": /^(?:[^\\\(\)]|\\.|\((?:[^\\\(\)]|\\.)*\))*?(?=\))/, + "]": /^(?:[^\\\[\]]|\\.|\[(?:[^\\\[\]]|\\.)*\])*?(?=\])/ + } + + function getLinkHrefInside(endChar) { + return function(stream, state) { + var ch = stream.next(); + + if (ch === endChar) { + state.f = state.inline = inlineNormal; + if (modeCfg.highlightFormatting) state.formatting = "link-string"; + var returnState = getType(state); + state.linkHref = false; + return returnState; + } + + stream.match(linkRE[endChar]) + state.linkHref = true; + return getType(state); + }; + } + + function footnoteLink(stream, state) { + if (stream.match(/^([^\]\\]|\\.)*\]:/, false)) { + state.f = footnoteLinkInside; + stream.next(); // Consume [ + if (modeCfg.highlightFormatting) state.formatting = "link"; + state.linkText = true; + return getType(state); + } + return switchInline(stream, state, inlineNormal); + } + + function footnoteLinkInside(stream, state) { + if (stream.match(/^\]:/, true)) { + state.f = state.inline = footnoteUrl; + if (modeCfg.highlightFormatting) state.formatting = "link"; + var returnType = getType(state); + state.linkText = false; + return returnType; + } + + stream.match(/^([^\]\\]|\\.)+/, true); + + return tokenTypes.linkText; + } + + function footnoteUrl(stream, state) { + // Check if space, and return NULL if so (to avoid marking the space) + if(stream.eatSpace()){ + return null; + } + // Match URL + stream.match(/^[^\s]+/, true); + // Check for link title + if (stream.peek() === undefined) { // End of line, set flag to check next line + state.linkTitle = true; + } else { // More content on line, check if link title + stream.match(/^(?:\s+(?:"(?:[^"\\]|\\\\|\\.)+"|'(?:[^'\\]|\\\\|\\.)+'|\((?:[^)\\]|\\\\|\\.)+\)))?/, true); + } + state.f = state.inline = inlineNormal; + return tokenTypes.linkHref + " url"; + } + + var mode = { + startState: function() { + return { + f: blockNormal, + + prevLine: {stream: null}, + thisLine: {stream: null}, + + block: blockNormal, + htmlState: null, + indentation: 0, + + inline: inlineNormal, + text: handleText, + + formatting: false, + linkText: false, + linkHref: false, + linkTitle: false, + code: 0, + em: false, + strong: false, + header: 0, + setext: 0, + hr: false, + taskList: false, + list: false, + listStack: [], + quote: 0, + trailingSpace: 0, + trailingSpaceNewLine: false, + strikethrough: false, + emoji: false, + fencedEndRE: null + }; + }, + + copyState: function(s) { + return { + f: s.f, + + prevLine: s.prevLine, + thisLine: s.thisLine, + + block: s.block, + htmlState: s.htmlState && CodeMirror.copyState(htmlMode, s.htmlState), + indentation: s.indentation, + + localMode: s.localMode, + localState: s.localMode ? CodeMirror.copyState(s.localMode, s.localState) : null, + + inline: s.inline, + text: s.text, + formatting: false, + linkText: s.linkText, + linkTitle: s.linkTitle, + linkHref: s.linkHref, + code: s.code, + em: s.em, + strong: s.strong, + strikethrough: s.strikethrough, + emoji: s.emoji, + header: s.header, + setext: s.setext, + hr: s.hr, + taskList: s.taskList, + list: s.list, + listStack: s.listStack.slice(0), + quote: s.quote, + indentedCode: s.indentedCode, + trailingSpace: s.trailingSpace, + trailingSpaceNewLine: s.trailingSpaceNewLine, + md_inside: s.md_inside, + fencedEndRE: s.fencedEndRE + }; + }, + + token: function(stream, state) { + + // Reset state.formatting + state.formatting = false; + + if (stream != state.thisLine.stream) { + state.header = 0; + state.hr = false; + + if (stream.match(/^\s*$/, true)) { + blankLine(state); + return null; + } + + state.prevLine = state.thisLine + state.thisLine = {stream: stream} + + // Reset state.taskList + state.taskList = false; + + // Reset state.trailingSpace + state.trailingSpace = 0; + state.trailingSpaceNewLine = false; + + if (!state.localState) { + state.f = state.block; + if (state.f != htmlBlock) { + var indentation = stream.match(/^\s*/, true)[0].replace(/\t/g, expandedTab).length; + state.indentation = indentation; + state.indentationDiff = null; + if (indentation > 0) return null; + } + } + } + return state.f(stream, state); + }, + + innerMode: function(state) { + if (state.block == htmlBlock) return {state: state.htmlState, mode: htmlMode}; + if (state.localState) return {state: state.localState, mode: state.localMode}; + return {state: state, mode: mode}; + }, + + indent: function(state, textAfter, line) { + if (state.block == htmlBlock && htmlMode.indent) return htmlMode.indent(state.htmlState, textAfter, line) + if (state.localState && state.localMode.indent) return state.localMode.indent(state.localState, textAfter, line) + return CodeMirror.Pass + }, + + blankLine: blankLine, + + getType: getType, + + blockCommentStart: "", + closeBrackets: "()[]{}''\"\"``", + fold: "markdown" + }; + return mode; +}, "xml"); + +CodeMirror.defineMIME("text/markdown", "markdown"); + +CodeMirror.defineMIME("text/x-markdown", "markdown"); + +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/mode/meta.js": +/*!**********************************************!*\ + !*** ./node_modules/codemirror/mode/meta.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")); + else {} +})(function(CodeMirror) { + "use strict"; + + CodeMirror.modeInfo = [ + {name: "APL", mime: "text/apl", mode: "apl", ext: ["dyalog", "apl"]}, + {name: "PGP", mimes: ["application/pgp", "application/pgp-encrypted", "application/pgp-keys", "application/pgp-signature"], mode: "asciiarmor", ext: ["asc", "pgp", "sig"]}, + {name: "ASN.1", mime: "text/x-ttcn-asn", mode: "asn.1", ext: ["asn", "asn1"]}, + {name: "Asterisk", mime: "text/x-asterisk", mode: "asterisk", file: /^extensions\.conf$/i}, + {name: "Brainfuck", mime: "text/x-brainfuck", mode: "brainfuck", ext: ["b", "bf"]}, + {name: "C", mime: "text/x-csrc", mode: "clike", ext: ["c", "h", "ino"]}, + {name: "C++", mime: "text/x-c++src", mode: "clike", ext: ["cpp", "c++", "cc", "cxx", "hpp", "h++", "hh", "hxx"], alias: ["cpp"]}, + {name: "Cobol", mime: "text/x-cobol", mode: "cobol", ext: ["cob", "cpy"]}, + {name: "C#", mime: "text/x-csharp", mode: "clike", ext: ["cs"], alias: ["csharp", "cs"]}, + {name: "Clojure", mime: "text/x-clojure", mode: "clojure", ext: ["clj", "cljc", "cljx"]}, + {name: "ClojureScript", mime: "text/x-clojurescript", mode: "clojure", ext: ["cljs"]}, + {name: "Closure Stylesheets (GSS)", mime: "text/x-gss", mode: "css", ext: ["gss"]}, + {name: "CMake", mime: "text/x-cmake", mode: "cmake", ext: ["cmake", "cmake.in"], file: /^CMakeLists.txt$/}, + {name: "CoffeeScript", mimes: ["application/vnd.coffeescript", "text/coffeescript", "text/x-coffeescript"], mode: "coffeescript", ext: ["coffee"], alias: ["coffee", "coffee-script"]}, + {name: "Common Lisp", mime: "text/x-common-lisp", mode: "commonlisp", ext: ["cl", "lisp", "el"], alias: ["lisp"]}, + {name: "Cypher", mime: "application/x-cypher-query", mode: "cypher", ext: ["cyp", "cypher"]}, + {name: "Cython", mime: "text/x-cython", mode: "python", ext: ["pyx", "pxd", "pxi"]}, + {name: "Crystal", mime: "text/x-crystal", mode: "crystal", ext: ["cr"]}, + {name: "CSS", mime: "text/css", mode: "css", ext: ["css"]}, + {name: "CQL", mime: "text/x-cassandra", mode: "sql", ext: ["cql"]}, + {name: "D", mime: "text/x-d", mode: "d", ext: ["d"]}, + {name: "Dart", mimes: ["application/dart", "text/x-dart"], mode: "dart", ext: ["dart"]}, + {name: "diff", mime: "text/x-diff", mode: "diff", ext: ["diff", "patch"]}, + {name: "Django", mime: "text/x-django", mode: "django"}, + {name: "Dockerfile", mime: "text/x-dockerfile", mode: "dockerfile", file: /^Dockerfile$/}, + {name: "DTD", mime: "application/xml-dtd", mode: "dtd", ext: ["dtd"]}, + {name: "Dylan", mime: "text/x-dylan", mode: "dylan", ext: ["dylan", "dyl", "intr"]}, + {name: "EBNF", mime: "text/x-ebnf", mode: "ebnf"}, + {name: "ECL", mime: "text/x-ecl", mode: "ecl", ext: ["ecl"]}, + {name: "edn", mime: "application/edn", mode: "clojure", ext: ["edn"]}, + {name: "Eiffel", mime: "text/x-eiffel", mode: "eiffel", ext: ["e"]}, + {name: "Elm", mime: "text/x-elm", mode: "elm", ext: ["elm"]}, + {name: "Embedded Javascript", mime: "application/x-ejs", mode: "htmlembedded", ext: ["ejs"]}, + {name: "Embedded Ruby", mime: "application/x-erb", mode: "htmlembedded", ext: ["erb"]}, + {name: "Erlang", mime: "text/x-erlang", mode: "erlang", ext: ["erl"]}, + {name: "Esper", mime: "text/x-esper", mode: "sql"}, + {name: "Factor", mime: "text/x-factor", mode: "factor", ext: ["factor"]}, + {name: "FCL", mime: "text/x-fcl", mode: "fcl"}, + {name: "Forth", mime: "text/x-forth", mode: "forth", ext: ["forth", "fth", "4th"]}, + {name: "Fortran", mime: "text/x-fortran", mode: "fortran", ext: ["f", "for", "f77", "f90", "f95"]}, + {name: "F#", mime: "text/x-fsharp", mode: "mllike", ext: ["fs"], alias: ["fsharp"]}, + {name: "Gas", mime: "text/x-gas", mode: "gas", ext: ["s"]}, + {name: "Gherkin", mime: "text/x-feature", mode: "gherkin", ext: ["feature"]}, + {name: "GitHub Flavored Markdown", mime: "text/x-gfm", mode: "gfm", file: /^(readme|contributing|history).md$/i}, + {name: "Go", mime: "text/x-go", mode: "go", ext: ["go"]}, + {name: "Groovy", mime: "text/x-groovy", mode: "groovy", ext: ["groovy", "gradle"], file: /^Jenkinsfile$/}, + {name: "HAML", mime: "text/x-haml", mode: "haml", ext: ["haml"]}, + {name: "Haskell", mime: "text/x-haskell", mode: "haskell", ext: ["hs"]}, + {name: "Haskell (Literate)", mime: "text/x-literate-haskell", mode: "haskell-literate", ext: ["lhs"]}, + {name: "Haxe", mime: "text/x-haxe", mode: "haxe", ext: ["hx"]}, + {name: "HXML", mime: "text/x-hxml", mode: "haxe", ext: ["hxml"]}, + {name: "ASP.NET", mime: "application/x-aspx", mode: "htmlembedded", ext: ["aspx"], alias: ["asp", "aspx"]}, + {name: "HTML", mime: "text/html", mode: "htmlmixed", ext: ["html", "htm", "handlebars", "hbs"], alias: ["xhtml"]}, + {name: "HTTP", mime: "message/http", mode: "http"}, + {name: "IDL", mime: "text/x-idl", mode: "idl", ext: ["pro"]}, + {name: "Pug", mime: "text/x-pug", mode: "pug", ext: ["jade", "pug"], alias: ["jade"]}, + {name: "Java", mime: "text/x-java", mode: "clike", ext: ["java"]}, + {name: "Java Server Pages", mime: "application/x-jsp", mode: "htmlembedded", ext: ["jsp"], alias: ["jsp"]}, + {name: "JavaScript", mimes: ["text/javascript", "text/ecmascript", "application/javascript", "application/x-javascript", "application/ecmascript"], + mode: "javascript", ext: ["js"], alias: ["ecmascript", "js", "node"]}, + {name: "JSON", mimes: ["application/json", "application/x-json"], mode: "javascript", ext: ["json", "map"], alias: ["json5"]}, + {name: "JSON-LD", mime: "application/ld+json", mode: "javascript", ext: ["jsonld"], alias: ["jsonld"]}, + {name: "JSX", mime: "text/jsx", mode: "jsx", ext: ["jsx"]}, + {name: "Jinja2", mime: "text/jinja2", mode: "jinja2", ext: ["j2", "jinja", "jinja2"]}, + {name: "Julia", mime: "text/x-julia", mode: "julia", ext: ["jl"]}, + {name: "Kotlin", mime: "text/x-kotlin", mode: "clike", ext: ["kt"]}, + {name: "LESS", mime: "text/x-less", mode: "css", ext: ["less"]}, + {name: "LiveScript", mime: "text/x-livescript", mode: "livescript", ext: ["ls"], alias: ["ls"]}, + {name: "Lua", mime: "text/x-lua", mode: "lua", ext: ["lua"]}, + {name: "Markdown", mime: "text/x-markdown", mode: "markdown", ext: ["markdown", "md", "mkd"]}, + {name: "mIRC", mime: "text/mirc", mode: "mirc"}, + {name: "MariaDB SQL", mime: "text/x-mariadb", mode: "sql"}, + {name: "Mathematica", mime: "text/x-mathematica", mode: "mathematica", ext: ["m", "nb"]}, + {name: "Modelica", mime: "text/x-modelica", mode: "modelica", ext: ["mo"]}, + {name: "MUMPS", mime: "text/x-mumps", mode: "mumps", ext: ["mps"]}, + {name: "MS SQL", mime: "text/x-mssql", mode: "sql"}, + {name: "mbox", mime: "application/mbox", mode: "mbox", ext: ["mbox"]}, + {name: "MySQL", mime: "text/x-mysql", mode: "sql"}, + {name: "Nginx", mime: "text/x-nginx-conf", mode: "nginx", file: /nginx.*\.conf$/i}, + {name: "NSIS", mime: "text/x-nsis", mode: "nsis", ext: ["nsh", "nsi"]}, + {name: "NTriples", mimes: ["application/n-triples", "application/n-quads", "text/n-triples"], + mode: "ntriples", ext: ["nt", "nq"]}, + {name: "Objective-C", mime: "text/x-objectivec", mode: "clike", ext: ["m", "mm"], alias: ["objective-c", "objc"]}, + {name: "OCaml", mime: "text/x-ocaml", mode: "mllike", ext: ["ml", "mli", "mll", "mly"]}, + {name: "Octave", mime: "text/x-octave", mode: "octave", ext: ["m"]}, + {name: "Oz", mime: "text/x-oz", mode: "oz", ext: ["oz"]}, + {name: "Pascal", mime: "text/x-pascal", mode: "pascal", ext: ["p", "pas"]}, + {name: "PEG.js", mime: "null", mode: "pegjs", ext: ["jsonld"]}, + {name: "Perl", mime: "text/x-perl", mode: "perl", ext: ["pl", "pm"]}, + {name: "PHP", mimes: ["text/x-php", "application/x-httpd-php", "application/x-httpd-php-open"], mode: "php", ext: ["php", "php3", "php4", "php5", "php7", "phtml"]}, + {name: "Pig", mime: "text/x-pig", mode: "pig", ext: ["pig"]}, + {name: "Plain Text", mime: "text/plain", mode: "null", ext: ["txt", "text", "conf", "def", "list", "log"]}, + {name: "PLSQL", mime: "text/x-plsql", mode: "sql", ext: ["pls"]}, + {name: "PostgreSQL", mime: "text/x-pgsql", mode: "sql"}, + {name: "PowerShell", mime: "application/x-powershell", mode: "powershell", ext: ["ps1", "psd1", "psm1"]}, + {name: "Properties files", mime: "text/x-properties", mode: "properties", ext: ["properties", "ini", "in"], alias: ["ini", "properties"]}, + {name: "ProtoBuf", mime: "text/x-protobuf", mode: "protobuf", ext: ["proto"]}, + {name: "Python", mime: "text/x-python", mode: "python", ext: ["BUILD", "bzl", "py", "pyw"], file: /^(BUCK|BUILD)$/}, + {name: "Puppet", mime: "text/x-puppet", mode: "puppet", ext: ["pp"]}, + {name: "Q", mime: "text/x-q", mode: "q", ext: ["q"]}, + {name: "R", mime: "text/x-rsrc", mode: "r", ext: ["r", "R"], alias: ["rscript"]}, + {name: "reStructuredText", mime: "text/x-rst", mode: "rst", ext: ["rst"], alias: ["rst"]}, + {name: "RPM Changes", mime: "text/x-rpm-changes", mode: "rpm"}, + {name: "RPM Spec", mime: "text/x-rpm-spec", mode: "rpm", ext: ["spec"]}, + {name: "Ruby", mime: "text/x-ruby", mode: "ruby", ext: ["rb"], alias: ["jruby", "macruby", "rake", "rb", "rbx"]}, + {name: "Rust", mime: "text/x-rustsrc", mode: "rust", ext: ["rs"]}, + {name: "SAS", mime: "text/x-sas", mode: "sas", ext: ["sas"]}, + {name: "Sass", mime: "text/x-sass", mode: "sass", ext: ["sass"]}, + {name: "Scala", mime: "text/x-scala", mode: "clike", ext: ["scala"]}, + {name: "Scheme", mime: "text/x-scheme", mode: "scheme", ext: ["scm", "ss"]}, + {name: "SCSS", mime: "text/x-scss", mode: "css", ext: ["scss"]}, + {name: "Shell", mimes: ["text/x-sh", "application/x-sh"], mode: "shell", ext: ["sh", "ksh", "bash"], alias: ["bash", "sh", "zsh"], file: /^PKGBUILD$/}, + {name: "Sieve", mime: "application/sieve", mode: "sieve", ext: ["siv", "sieve"]}, + {name: "Slim", mimes: ["text/x-slim", "application/x-slim"], mode: "slim", ext: ["slim"]}, + {name: "Smalltalk", mime: "text/x-stsrc", mode: "smalltalk", ext: ["st"]}, + {name: "Smarty", mime: "text/x-smarty", mode: "smarty", ext: ["tpl"]}, + {name: "Solr", mime: "text/x-solr", mode: "solr"}, + {name: "SML", mime: "text/x-sml", mode: "mllike", ext: ["sml", "sig", "fun", "smackspec"]}, + {name: "Soy", mime: "text/x-soy", mode: "soy", ext: ["soy"], alias: ["closure template"]}, + {name: "SPARQL", mime: "application/sparql-query", mode: "sparql", ext: ["rq", "sparql"], alias: ["sparul"]}, + {name: "Spreadsheet", mime: "text/x-spreadsheet", mode: "spreadsheet", alias: ["excel", "formula"]}, + {name: "SQL", mime: "text/x-sql", mode: "sql", ext: ["sql"]}, + {name: "SQLite", mime: "text/x-sqlite", mode: "sql"}, + {name: "Squirrel", mime: "text/x-squirrel", mode: "clike", ext: ["nut"]}, + {name: "Stylus", mime: "text/x-styl", mode: "stylus", ext: ["styl"]}, + {name: "Swift", mime: "text/x-swift", mode: "swift", ext: ["swift"]}, + {name: "sTeX", mime: "text/x-stex", mode: "stex"}, + {name: "LaTeX", mime: "text/x-latex", mode: "stex", ext: ["text", "ltx", "tex"], alias: ["tex"]}, + {name: "SystemVerilog", mime: "text/x-systemverilog", mode: "verilog", ext: ["v", "sv", "svh"]}, + {name: "Tcl", mime: "text/x-tcl", mode: "tcl", ext: ["tcl"]}, + {name: "Textile", mime: "text/x-textile", mode: "textile", ext: ["textile"]}, + {name: "TiddlyWiki ", mime: "text/x-tiddlywiki", mode: "tiddlywiki"}, + {name: "Tiki wiki", mime: "text/tiki", mode: "tiki"}, + {name: "TOML", mime: "text/x-toml", mode: "toml", ext: ["toml"]}, + {name: "Tornado", mime: "text/x-tornado", mode: "tornado"}, + {name: "troff", mime: "text/troff", mode: "troff", ext: ["1", "2", "3", "4", "5", "6", "7", "8", "9"]}, + {name: "TTCN", mime: "text/x-ttcn", mode: "ttcn", ext: ["ttcn", "ttcn3", "ttcnpp"]}, + {name: "TTCN_CFG", mime: "text/x-ttcn-cfg", mode: "ttcn-cfg", ext: ["cfg"]}, + {name: "Turtle", mime: "text/turtle", mode: "turtle", ext: ["ttl"]}, + {name: "TypeScript", mime: "application/typescript", mode: "javascript", ext: ["ts"], alias: ["ts"]}, + {name: "TypeScript-JSX", mime: "text/typescript-jsx", mode: "jsx", ext: ["tsx"], alias: ["tsx"]}, + {name: "Twig", mime: "text/x-twig", mode: "twig"}, + {name: "Web IDL", mime: "text/x-webidl", mode: "webidl", ext: ["webidl"]}, + {name: "VB.NET", mime: "text/x-vb", mode: "vb", ext: ["vb"]}, + {name: "VBScript", mime: "text/vbscript", mode: "vbscript", ext: ["vbs"]}, + {name: "Velocity", mime: "text/velocity", mode: "velocity", ext: ["vtl"]}, + {name: "Verilog", mime: "text/x-verilog", mode: "verilog", ext: ["v"]}, + {name: "VHDL", mime: "text/x-vhdl", mode: "vhdl", ext: ["vhd", "vhdl"]}, + {name: "Vue.js Component", mimes: ["script/x-vue", "text/x-vue"], mode: "vue", ext: ["vue"]}, + {name: "XML", mimes: ["application/xml", "text/xml"], mode: "xml", ext: ["xml", "xsl", "xsd", "svg"], alias: ["rss", "wsdl", "xsd"]}, + {name: "XQuery", mime: "application/xquery", mode: "xquery", ext: ["xy", "xquery"]}, + {name: "Yacas", mime: "text/x-yacas", mode: "yacas", ext: ["ys"]}, + {name: "YAML", mimes: ["text/x-yaml", "text/yaml"], mode: "yaml", ext: ["yaml", "yml"], alias: ["yml"]}, + {name: "Z80", mime: "text/x-z80", mode: "z80", ext: ["z80"]}, + {name: "mscgen", mime: "text/x-mscgen", mode: "mscgen", ext: ["mscgen", "mscin", "msc"]}, + {name: "xu", mime: "text/x-xu", mode: "mscgen", ext: ["xu"]}, + {name: "msgenny", mime: "text/x-msgenny", mode: "mscgen", ext: ["msgenny"]} + ]; + // Ensure all modes have a mime property for backwards compatibility + for (var i = 0; i < CodeMirror.modeInfo.length; i++) { + var info = CodeMirror.modeInfo[i]; + if (info.mimes) info.mime = info.mimes[0]; + } + + CodeMirror.findModeByMIME = function(mime) { + mime = mime.toLowerCase(); + for (var i = 0; i < CodeMirror.modeInfo.length; i++) { + var info = CodeMirror.modeInfo[i]; + if (info.mime == mime) return info; + if (info.mimes) for (var j = 0; j < info.mimes.length; j++) + if (info.mimes[j] == mime) return info; + } + if (/\+xml$/.test(mime)) return CodeMirror.findModeByMIME("application/xml") + if (/\+json$/.test(mime)) return CodeMirror.findModeByMIME("application/json") + }; + + CodeMirror.findModeByExtension = function(ext) { + for (var i = 0; i < CodeMirror.modeInfo.length; i++) { + var info = CodeMirror.modeInfo[i]; + if (info.ext) for (var j = 0; j < info.ext.length; j++) + if (info.ext[j] == ext) return info; + } + }; + + CodeMirror.findModeByFileName = function(filename) { + for (var i = 0; i < CodeMirror.modeInfo.length; i++) { + var info = CodeMirror.modeInfo[i]; + if (info.file && info.file.test(filename)) return info; + } + var dot = filename.lastIndexOf("."); + var ext = dot > -1 && filename.substring(dot + 1, filename.length); + if (ext) return CodeMirror.findModeByExtension(ext); + }; + + CodeMirror.findModeByName = function(name) { + name = name.toLowerCase(); + for (var i = 0; i < CodeMirror.modeInfo.length; i++) { + var info = CodeMirror.modeInfo[i]; + if (info.name.toLowerCase() == name) return info; + if (info.alias) for (var j = 0; j < info.alias.length; j++) + if (info.alias[j].toLowerCase() == name) return info; + } + }; +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/mode/xml/xml.js": +/*!*************************************************!*\ + !*** ./node_modules/codemirror/mode/xml/xml.js ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")); + else {} +})(function(CodeMirror) { +"use strict"; + +var htmlConfig = { + autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true, + 'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true, + 'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true, + 'track': true, 'wbr': true, 'menuitem': true}, + implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true, + 'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true, + 'th': true, 'tr': true}, + contextGrabbers: { + 'dd': {'dd': true, 'dt': true}, + 'dt': {'dd': true, 'dt': true}, + 'li': {'li': true}, + 'option': {'option': true, 'optgroup': true}, + 'optgroup': {'optgroup': true}, + 'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true, + 'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true, + 'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true, + 'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true, + 'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true}, + 'rp': {'rp': true, 'rt': true}, + 'rt': {'rp': true, 'rt': true}, + 'tbody': {'tbody': true, 'tfoot': true}, + 'td': {'td': true, 'th': true}, + 'tfoot': {'tbody': true}, + 'th': {'td': true, 'th': true}, + 'thead': {'tbody': true, 'tfoot': true}, + 'tr': {'tr': true} + }, + doNotIndent: {"pre": true}, + allowUnquoted: true, + allowMissing: true, + caseFold: true +} + +var xmlConfig = { + autoSelfClosers: {}, + implicitlyClosed: {}, + contextGrabbers: {}, + doNotIndent: {}, + allowUnquoted: false, + allowMissing: false, + allowMissingTagName: false, + caseFold: false +} + +CodeMirror.defineMode("xml", function(editorConf, config_) { + var indentUnit = editorConf.indentUnit + var config = {} + var defaults = config_.htmlMode ? htmlConfig : xmlConfig + for (var prop in defaults) config[prop] = defaults[prop] + for (var prop in config_) config[prop] = config_[prop] + + // Return variables for tokenizers + var type, setStyle; + + function inText(stream, state) { + function chain(parser) { + state.tokenize = parser; + return parser(stream, state); + } + + var ch = stream.next(); + if (ch == "<") { + if (stream.eat("!")) { + if (stream.eat("[")) { + if (stream.match("CDATA[")) return chain(inBlock("atom", "]]>")); + else return null; + } else if (stream.match("--")) { + return chain(inBlock("comment", "-->")); + } else if (stream.match("DOCTYPE", true, true)) { + stream.eatWhile(/[\w\._\-]/); + return chain(doctype(1)); + } else { + return null; + } + } else if (stream.eat("?")) { + stream.eatWhile(/[\w\._\-]/); + state.tokenize = inBlock("meta", "?>"); + return "meta"; + } else { + type = stream.eat("/") ? "closeTag" : "openTag"; + state.tokenize = inTag; + return "tag bracket"; + } + } else if (ch == "&") { + var ok; + if (stream.eat("#")) { + if (stream.eat("x")) { + ok = stream.eatWhile(/[a-fA-F\d]/) && stream.eat(";"); + } else { + ok = stream.eatWhile(/[\d]/) && stream.eat(";"); + } + } else { + ok = stream.eatWhile(/[\w\.\-:]/) && stream.eat(";"); + } + return ok ? "atom" : "error"; + } else { + stream.eatWhile(/[^&<]/); + return null; + } + } + inText.isInText = true; + + function inTag(stream, state) { + var ch = stream.next(); + if (ch == ">" || (ch == "/" && stream.eat(">"))) { + state.tokenize = inText; + type = ch == ">" ? "endTag" : "selfcloseTag"; + return "tag bracket"; + } else if (ch == "=") { + type = "equals"; + return null; + } else if (ch == "<") { + state.tokenize = inText; + state.state = baseState; + state.tagName = state.tagStart = null; + var next = state.tokenize(stream, state); + return next ? next + " tag error" : "tag error"; + } else if (/[\'\"]/.test(ch)) { + state.tokenize = inAttribute(ch); + state.stringStartCol = stream.column(); + return state.tokenize(stream, state); + } else { + stream.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/); + return "word"; + } + } + + function inAttribute(quote) { + var closure = function(stream, state) { + while (!stream.eol()) { + if (stream.next() == quote) { + state.tokenize = inTag; + break; + } + } + return "string"; + }; + closure.isInAttribute = true; + return closure; + } + + function inBlock(style, terminator) { + return function(stream, state) { + while (!stream.eol()) { + if (stream.match(terminator)) { + state.tokenize = inText; + break; + } + stream.next(); + } + return style; + } + } + + function doctype(depth) { + return function(stream, state) { + var ch; + while ((ch = stream.next()) != null) { + if (ch == "<") { + state.tokenize = doctype(depth + 1); + return state.tokenize(stream, state); + } else if (ch == ">") { + if (depth == 1) { + state.tokenize = inText; + break; + } else { + state.tokenize = doctype(depth - 1); + return state.tokenize(stream, state); + } + } + } + return "meta"; + }; + } + + function Context(state, tagName, startOfLine) { + this.prev = state.context; + this.tagName = tagName; + this.indent = state.indented; + this.startOfLine = startOfLine; + if (config.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent)) + this.noIndent = true; + } + function popContext(state) { + if (state.context) state.context = state.context.prev; + } + function maybePopContext(state, nextTagName) { + var parentTagName; + while (true) { + if (!state.context) { + return; + } + parentTagName = state.context.tagName; + if (!config.contextGrabbers.hasOwnProperty(parentTagName) || + !config.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) { + return; + } + popContext(state); + } + } + + function baseState(type, stream, state) { + if (type == "openTag") { + state.tagStart = stream.column(); + return tagNameState; + } else if (type == "closeTag") { + return closeTagNameState; + } else { + return baseState; + } + } + function tagNameState(type, stream, state) { + if (type == "word") { + state.tagName = stream.current(); + setStyle = "tag"; + return attrState; + } else if (config.allowMissingTagName && type == "endTag") { + setStyle = "tag bracket"; + return attrState(type, stream, state); + } else { + setStyle = "error"; + return tagNameState; + } + } + function closeTagNameState(type, stream, state) { + if (type == "word") { + var tagName = stream.current(); + if (state.context && state.context.tagName != tagName && + config.implicitlyClosed.hasOwnProperty(state.context.tagName)) + popContext(state); + if ((state.context && state.context.tagName == tagName) || config.matchClosing === false) { + setStyle = "tag"; + return closeState; + } else { + setStyle = "tag error"; + return closeStateErr; + } + } else if (config.allowMissingTagName && type == "endTag") { + setStyle = "tag bracket"; + return closeState(type, stream, state); + } else { + setStyle = "error"; + return closeStateErr; + } + } + + function closeState(type, _stream, state) { + if (type != "endTag") { + setStyle = "error"; + return closeState; + } + popContext(state); + return baseState; + } + function closeStateErr(type, stream, state) { + setStyle = "error"; + return closeState(type, stream, state); + } + + function attrState(type, _stream, state) { + if (type == "word") { + setStyle = "attribute"; + return attrEqState; + } else if (type == "endTag" || type == "selfcloseTag") { + var tagName = state.tagName, tagStart = state.tagStart; + state.tagName = state.tagStart = null; + if (type == "selfcloseTag" || + config.autoSelfClosers.hasOwnProperty(tagName)) { + maybePopContext(state, tagName); + } else { + maybePopContext(state, tagName); + state.context = new Context(state, tagName, tagStart == state.indented); + } + return baseState; + } + setStyle = "error"; + return attrState; + } + function attrEqState(type, stream, state) { + if (type == "equals") return attrValueState; + if (!config.allowMissing) setStyle = "error"; + return attrState(type, stream, state); + } + function attrValueState(type, stream, state) { + if (type == "string") return attrContinuedState; + if (type == "word" && config.allowUnquoted) {setStyle = "string"; return attrState;} + setStyle = "error"; + return attrState(type, stream, state); + } + function attrContinuedState(type, stream, state) { + if (type == "string") return attrContinuedState; + return attrState(type, stream, state); + } + + return { + startState: function(baseIndent) { + var state = {tokenize: inText, + state: baseState, + indented: baseIndent || 0, + tagName: null, tagStart: null, + context: null} + if (baseIndent != null) state.baseIndent = baseIndent + return state + }, + + token: function(stream, state) { + if (!state.tagName && stream.sol()) + state.indented = stream.indentation(); + + if (stream.eatSpace()) return null; + type = null; + var style = state.tokenize(stream, state); + if ((style || type) && style != "comment") { + setStyle = null; + state.state = state.state(type || style, stream, state); + if (setStyle) + style = setStyle == "error" ? style + " error" : setStyle; + } + return style; + }, + + indent: function(state, textAfter, fullLine) { + var context = state.context; + // Indent multi-line strings (e.g. css). + if (state.tokenize.isInAttribute) { + if (state.tagStart == state.indented) + return state.stringStartCol + 1; + else + return state.indented + indentUnit; + } + if (context && context.noIndent) return CodeMirror.Pass; + if (state.tokenize != inTag && state.tokenize != inText) + return fullLine ? fullLine.match(/^(\s*)/)[0].length : 0; + // Indent the starts of attribute names. + if (state.tagName) { + if (config.multilineTagIndentPastTag !== false) + return state.tagStart + state.tagName.length + 2; + else + return state.tagStart + indentUnit * (config.multilineTagIndentFactor || 1); + } + if (config.alignCDATA && /$/, + blockCommentStart: "", + + configuration: config.htmlMode ? "html" : "xml", + helperType: config.htmlMode ? "html" : "xml", + + skipAttribute: function(state) { + if (state.state == attrValueState) + state.state = attrState + } + }; +}); + +CodeMirror.defineMIME("text/xml", "xml"); +CodeMirror.defineMIME("application/xml", "xml"); +if (!CodeMirror.mimeModes.hasOwnProperty("text/html")) + CodeMirror.defineMIME("text/html", {name: "xml", htmlMode: true}); + +}); + + +/***/ }), + +/***/ "./node_modules/prismjs/components/prism-css.js": +/*!******************************************************!*\ + !*** ./node_modules/prismjs/components/prism-css.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +(function (Prism) { + + var string = /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/; + + Prism.languages.css = { + 'comment': /\/\*[\s\S]*?\*\//, + 'atrule': { + pattern: /@[\w-]+[\s\S]*?(?:;|(?=\s*\{))/, + inside: { + 'rule': /@[\w-]+/ + // See rest below + } + }, + 'url': { + pattern: RegExp('url\\((?:' + string.source + '|[^\n\r()]*)\\)', 'i'), + inside: { + 'function': /^url/i, + 'punctuation': /^\(|\)$/ + } + }, + 'selector': RegExp('[^{}\\s](?:[^{};"\']|' + string.source + ')*?(?=\\s*\\{)'), + 'string': { + pattern: string, + greedy: true + }, + 'property': /[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i, + 'important': /!important\b/i, + 'function': /[-a-z0-9]+(?=\()/i, + 'punctuation': /[(){};:,]/ + }; + + Prism.languages.css['atrule'].inside.rest = Prism.languages.css; + + var markup = Prism.languages.markup; + if (markup) { + markup.tag.addInlined('style', 'css'); + + Prism.languages.insertBefore('inside', 'attr-value', { + 'style-attr': { + pattern: /\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i, + inside: { + 'attr-name': { + pattern: /^\s*style/i, + inside: markup.tag.inside + }, + 'punctuation': /^\s*=\s*['"]|['"]\s*$/, + 'attr-value': { + pattern: /.+/i, + inside: Prism.languages.css + } + }, + alias: 'language-css' + } + }, markup.tag); + } + +}(Prism)); + + +/***/ }), + +/***/ "./node_modules/prismjs/components/prism-javascript.js": +/*!*************************************************************!*\ + !*** ./node_modules/prismjs/components/prism-javascript.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +Prism.languages.javascript = Prism.languages.extend('clike', { + 'class-name': [ + Prism.languages.clike['class-name'], + { + pattern: /(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/, + lookbehind: true + } + ], + 'keyword': [ + { + pattern: /((?:^|})\s*)(?:catch|finally)\b/, + lookbehind: true + }, + { + pattern: /(^|[^.])\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/, + lookbehind: true + }, + ], + 'number': /\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/, + // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444) + 'function': /#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/, + 'operator': /-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/ +}); + +Prism.languages.javascript['class-name'][0].pattern = /(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/; + +Prism.languages.insertBefore('javascript', 'keyword', { + 'regex': { + pattern: /((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=\s*($|[\r\n,.;})\]]))/, + lookbehind: true, + greedy: true + }, + // This must be declared before keyword because we use "function" inside the look-forward + 'function-variable': { + pattern: /#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/, + alias: 'function' + }, + 'parameter': [ + { + pattern: /(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/, + lookbehind: true, + inside: Prism.languages.javascript + }, + { + pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i, + inside: Prism.languages.javascript + }, + { + pattern: /(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/, + lookbehind: true, + inside: Prism.languages.javascript + }, + { + pattern: /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/, + lookbehind: true, + inside: Prism.languages.javascript + } + ], + 'constant': /\b[A-Z](?:[A-Z_]|\dx?)*\b/ +}); + +Prism.languages.insertBefore('javascript', 'string', { + 'template-string': { + pattern: /`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/, + greedy: true, + inside: { + 'template-punctuation': { + pattern: /^`|`$/, + alias: 'string' + }, + 'interpolation': { + pattern: /((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/, + lookbehind: true, + inside: { + 'interpolation-punctuation': { + pattern: /^\${|}$/, + alias: 'punctuation' + }, + rest: Prism.languages.javascript + } + }, + 'string': /[\s\S]+/ + } + } +}); + +if (Prism.languages.markup) { + Prism.languages.markup.tag.addInlined('script', 'javascript'); +} + +Prism.languages.js = Prism.languages.javascript; + + +/***/ }), + +/***/ "./node_modules/prismjs/components/prism-json.js": +/*!*******************************************************!*\ + !*** ./node_modules/prismjs/components/prism-json.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +Prism.languages.json = { + 'property': { + pattern: /"(?:\\.|[^\\"\r\n])*"(?=\s*:)/, + greedy: true + }, + 'string': { + pattern: /"(?:\\.|[^\\"\r\n])*"(?!\s*:)/, + greedy: true + }, + 'comment': /\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/, + 'number': /-?\d+\.?\d*(e[+-]?\d+)?/i, + 'punctuation': /[{}[\],]/, + 'operator': /:/, + 'boolean': /\b(?:true|false)\b/, + 'null': { + pattern: /\bnull\b/, + alias: 'keyword' + } +}; + + +/***/ }), + +/***/ "./node_modules/prismjs/components/prism-markup-templating.js": +/*!********************************************************************!*\ + !*** ./node_modules/prismjs/components/prism-markup-templating.js ***! + \********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +(function (Prism) { + + /** + * Returns the placeholder for the given language id and index. + * + * @param {string} language + * @param {string|number} index + * @returns {string} + */ + function getPlaceholder(language, index) { + return '___' + language.toUpperCase() + index + '___'; + } + + Object.defineProperties(Prism.languages['markup-templating'] = {}, { + buildPlaceholders: { + /** + * Tokenize all inline templating expressions matching `placeholderPattern`. + * + * If `replaceFilter` is provided, only matches of `placeholderPattern` for which `replaceFilter` returns + * `true` will be replaced. + * + * @param {object} env The environment of the `before-tokenize` hook. + * @param {string} language The language id. + * @param {RegExp} placeholderPattern The matches of this pattern will be replaced by placeholders. + * @param {(match: string) => boolean} [replaceFilter] + */ + value: function (env, language, placeholderPattern, replaceFilter) { + if (env.language !== language) { + return; + } + + var tokenStack = env.tokenStack = []; + + env.code = env.code.replace(placeholderPattern, function (match) { + if (typeof replaceFilter === 'function' && !replaceFilter(match)) { + return match; + } + var i = tokenStack.length; + var placeholder; + + // Check for existing strings + while (env.code.indexOf(placeholder = getPlaceholder(language, i)) !== -1) + ++i; + + // Create a sparse array + tokenStack[i] = match; + + return placeholder; + }); + + // Switch the grammar to markup + env.grammar = Prism.languages.markup; + } + }, + tokenizePlaceholders: { + /** + * Replace placeholders with proper tokens after tokenizing. + * + * @param {object} env The environment of the `after-tokenize` hook. + * @param {string} language The language id. + */ + value: function (env, language) { + if (env.language !== language || !env.tokenStack) { + return; + } + + // Switch the grammar back + env.grammar = Prism.languages[language]; + + var j = 0; + var keys = Object.keys(env.tokenStack); + + function walkTokens(tokens) { + for (var i = 0; i < tokens.length; i++) { + // all placeholders are replaced already + if (j >= keys.length) { + break; + } + + var token = tokens[i]; + if (typeof token === 'string' || (token.content && typeof token.content === 'string')) { + var k = keys[j]; + var t = env.tokenStack[k]; + var s = typeof token === 'string' ? token : token.content; + var placeholder = getPlaceholder(language, k); + + var index = s.indexOf(placeholder); + if (index > -1) { + ++j; + + var before = s.substring(0, index); + var middle = new Prism.Token(language, Prism.tokenize(t, env.grammar), 'language-' + language, t); + var after = s.substring(index + placeholder.length); + + var replacement = []; + if (before) { + replacement.push.apply(replacement, walkTokens([before])); + } + replacement.push(middle); + if (after) { + replacement.push.apply(replacement, walkTokens([after])); + } + + if (typeof token === 'string') { + tokens.splice.apply(tokens, [i, 1].concat(replacement)); + } else { + token.content = replacement; + } + } + } else if (token.content /* && typeof token.content !== 'string' */) { + walkTokens(token.content); + } + } + + return tokens; + } + + walkTokens(env.tokens); + } + } + }); + +}(Prism)); + + +/***/ }), + +/***/ "./node_modules/prismjs/components/prism-markup.js": +/*!*********************************************************!*\ + !*** ./node_modules/prismjs/components/prism-markup.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +Prism.languages.markup = { + 'comment': //, + 'prolog': /<\?[\s\S]+?\?>/, + 'doctype': //i, + 'cdata': //i, + 'tag': { + pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i, + greedy: true, + inside: { + 'tag': { + pattern: /^<\/?[^\s>\/]+/i, + inside: { + 'punctuation': /^<\/?/, + 'namespace': /^[^\s>\/:]+:/ + } + }, + 'attr-value': { + pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i, + inside: { + 'punctuation': [ + /^=/, + { + pattern: /^(\s*)["']|["']$/, + lookbehind: true + } + ] + } + }, + 'punctuation': /\/?>/, + 'attr-name': { + pattern: /[^\s>\/]+/, + inside: { + 'namespace': /^[^\s>\/:]+:/ + } + } + + } + }, + 'entity': /&#?[\da-z]{1,8};/i +}; + +Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] = + Prism.languages.markup['entity']; + +// Plugin to make entity title show the real entity, idea by Roman Komarov +Prism.hooks.add('wrap', function(env) { + + if (env.type === 'entity') { + env.attributes['title'] = env.content.replace(/&/, '&'); + } +}); + +Object.defineProperty(Prism.languages.markup.tag, 'addInlined', { + /** + * Adds an inlined language to markup. + * + * An example of an inlined language is CSS with `