From d606cc129bdae9cc31544867d77428d0c3874d7e Mon Sep 17 00:00:00 2001 From: Samuel Pua Date: Sat, 11 May 2019 16:17:19 +0800 Subject: [PATCH] Included preview for new campaign --- tapit-backend/campaign.go | 4 +- tapit-backend/tapit-backend | Bin 11129834 -> 11129834 bytes tapit-build/static/main.js | 2 +- tapit-build/static/main.js.map | 2 +- tapit-build/tapit | Bin 11129834 -> 11129834 bytes .../campaign-new/campaign-new.component.html | 51 ++++++++++-------- .../campaign-new/campaign-new.component.ts | 26 +++++++++ .../text-template-new.component.ts | 1 + 8 files changed, 60 insertions(+), 26 deletions(-) diff --git a/tapit-backend/campaign.go b/tapit-backend/campaign.go index 97c23d4..7dc5509 100644 --- a/tapit-backend/campaign.go +++ b/tapit-backend/campaign.go @@ -158,7 +158,7 @@ func (tapit *Tapit) createCampaign(w http.ResponseWriter, r *http.Request) { http.Error(w, "Bad request", 400) return } - if newCampaignJson.Name != "" { + if newCampaignJson.Name != "" && newCampaignJson.FromNumber != "" && newCampaignJson.PhonebookId != 0 && newCampaignJson.TextTemplateId != 0 { var newCampaign Campaign // populate details to be used later @@ -226,7 +226,7 @@ func (tapit *Tapit) createCampaign(w http.ResponseWriter, r *http.Request) { notifyPopup(w, r, "success", "Successfully added new campaign", newCampaignJson) return } else { - notifyPopup(w, r, "failure", "Please enter the campaign name", nil) + notifyPopup(w, r, "failure", "Please enter campaign details", nil) return } } diff --git a/tapit-backend/tapit-backend b/tapit-backend/tapit-backend index 5c9a1a7773ca4639ddd4d3059d5ab8b535021b53..16dbcca92303484c6de5d4e66b28ed8cf5e3b61a 100755 GIT binary patch delta 44371 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 NXrCpr<^KJa{{hz96rYwwO_ z6|r|wSKYPaT7uYJd*M4b35vh>|Lyav!3{Bl>$DS0DQ^l9WQFh}}_Lza=itX$Y>;`rE(_9-=+z@N5 z{~>dYEiS;?^@FA6+V$eoSQ8ww)C9$L_6c^~=G`&3b=%p{zJV}%V7IKs5u+12r}ynY z!eD5T-m_2K@Tjzr(Y7om(fiU0Z#xhJCt3=@PSI2Mp@myHUD6F0X5k+#z)m zfR?KeOQk+#s50%NPMxEiIL(w#W5b(YRcn#7APxfndf5=)V^YD@gz5I_qu#bq4G~l%T+8) znZ=vkhK1Sl4U;~n4ooFO{WA*6GYXz$6udJQyfE2dOa9@sf|JAc84JhRm~4uhxCfI( z#Y5dQ$kO6ccVCB@yK(1_ci}$)#g*=A(!bcnqkgS;gc|b?8w-vO?PM&tYckgh9`S!B z@l8cj)iy4;?=XQHVa9@bHYObp$M(uy#l;?xeuX=cfQhF0h#7YlSJf07PsAKH9sOKY zRXN2JUR>^x7Pf(JEx2PW>Y&DReNw{kq*`kR-ZgbJ4;`u&^H_6=n|Q`bcu@Y$q236% zTwLg>CryeEdwNfB=X*~1P&L%aIOUl5XwPc0n%eKchHlt~P-kDu`Mk%4|K0*;HIE3m^r>0=XY)Qye6ZAoAjDc`8$} zt$2Yvh3qT-3;&%_?B=5Aq8VC|*D!b|xPgC?E%S zZaT3b1dBQ^mJ?FAv;3vMCs{^WTXM#MB*6tKk&}r~AthT$b6Dg?I*~Q>gB$sUA?|d7 zC&^++620V2F4+-|t_~mz#bh&ZVMMO@Mb{8H2f6QLx>_8_v(2OF#KzgdSR|}X^TLS4 zi7cSw4CEj~YSW}-f-4(Azttj-SyG=qN+S$QvY{fKG$lhIu^wqi_QT|QWI9<14)t+O zlm^!)fnuV8Moq~GGLjx?N<3IH3I5I^tw~deZjPPuY2)VPlO35w>vte-BC?OR>q=6D zq!JeOB5^p+#a?8rkT^p|f5H&~OzThPku6j{fXtVWL9lf+*~}ch3EM{FH2Gu5ct&BZ zgpVZy*q4%qF#cDi4EBsA3AoDVV{u9b?8cEyG7s8~Bh5)Gx_KPg#*lK_X(D;+LYmVS zbIC_Jtu%Gl15Ca64ke7J(%um@Qn=?k;zSfxS;mT zD*=+nD~A!dkV>k^V?HsYC3p?NJ*}dzhcJ%>io2g0{5Y^+e&()8)d^q#^5a&Oux-wzKF;L_&k@H zNDAoKdCV~h=}yyDFz$qS(pD>(8Mfp-EnmmHb0$sb-;_~%l8*H2c}629hiT9?CYU9O zkns;APY7sUW5G&(!GGPTsxmKUP*II0HQ%(ax@jpa;|F)?Q=^9;-(yO34~NAyn#_dA z{oVx6|6#h4@sM?csZGRm?hR(FfLx$XcNwD{GIDDZbB6fWyIuo!Kv z&Tv2~Z1rY;A*2qCm$OHl$UXQN!p1Q+{xmw2-9r>c-x{;~^Ru@ou##mRWy08_0z`2l ziv8q6OtiEy%Q0jj{nCVW7a+I0HfOJUD;9pM|AQ5RcofYWT2XAHg1+oHLVD84{a9ZQ zT;*?**xoFzQj*UO2qQ*1W*h4wBQ5C6)2vcRvgw8ktlFLA(Tn%lSB_*kEq%#OlMs8_ z@GCoyA$#Fg6{{q*;Zqemh-5G5Cr}cydxpT(o$R7Z-31B}4%sIcTt@zdnZAPQ#F2XV z3HAv|JiQnsNG0S3bJ1Xb7U7ZPY|>tztPPJf^Q6o zfK8mBE;&tKa)O405XvPBG$OK>cC910;6j$rm~25SDJiAXdkC^wGN0bc6(|V#2p@Y3 z#-PL+)<@vQl2BUIUr@$i*(p!ZPl60^cC28mJ2JF!u0Sp)b!oSa0#{G+f(|PcY!fOr z{95k^JklY-HtBm8+%AScu5^^<}{Vieqi$^^gI5efb9kKnBXv4iIi z1shN=EqWvv%wkpY1bermnkRw|tRk;V4fN&{rzfoFchMEk1iyKcR!~PI)R7)^xJbCn znREkpPvIuA2TDDKwaIWwyo47S6eO2q!X*spOZzK?Na1j*2@u|NMD}2#gj@E>0xRg|Q=;1rB#IXPCCVe@HvMu{bV!4;{=iq!USy)7 z-$ePoG+JewEhn?-)I{5{zNp1W8{2vIWCESv)pp7_yaC?#Y?pAP2kerI z#}F?X?IT_zAam(eU$MtHlth(F#YGOpnU4BH?8qShOxqxC>q8dN^5f!XL5{mq((s^d zDeD-9saB1x<*(nmnZ$A@*Y#(i=`|v6@bwYwgopqD0b7 z#A;h;Gtqt_nFTNST5sw;$^Mm``~#w;_7SM7^h@o(N|uRI`8DDS)9OIVM0*+P!`92} zFB7~n+7&qLS7^4vemkmvvJyxA1yL*QCyy-Zg)P>p;?Y&7`Izr@thLR3A zv4fg8L1(eUb|ky2okIjkfZBEr6UbR8;cLt2GdqXS>Er=;&BLxGG3v# zqFe7s@V?|h<8p*XLQ%OSgIuIH$|b9eC>h6U9hb(EGa&2es3vP^N=HZcIwTmfS2&I$ zC#IcW;YiP~aM~Y0#=`U?P7$Oj-E+jL)Pa0}kr$lQXhST!;Iz{n4XmtxoqB|zP@xXa znS^+Q*wI;!O0t%tvy6}#w6&A-Ee6G*-qksfMdPiFyEBKTZLzy^pb!s;%A7B;XqFWy zoeKxxnmuMZ*I`gDx0&VKn~+KL$ZY4~{2eyTbqDZT-uT8FsQ<149bLO z6)q)Wl0i4Wb}0!b4{3j2*PdcDiT={Kb`mkIgW#&hHHvnNbVZ%C<5?nM+;aNFdd4*KWK;I(ejPS~GGLj-ABbdw@OV z`X{*zhfiTG1FHDqCZwFk;v$UW3orWTY1bYJ%%^d1lSl)g9+CQx1JH#?N0L9_29c)V z-H|cU?LszdL?XoO2~a_$tyDwosGC???!kJuvqC*o2rZ+vRMJ0KVuVNj(rCo)6(IFu z$QX!HW3>^@QAmA-+h0uY6Gq$ql5V@ZRicAic|yBD%1#)QKVE>DngJ zc??r|ofbrX88oG<6n&rj z^maGt3kI##^F5`6B^&6)-qI@M5xCe-+L>IVQT?SK#i*V_hfCAN`uaQS|;dQBA%4@|6X*VBI3QA z+~lyJm0LR505@8>btX@MYmJ4LE^duL)K+)fxV1w9V&MZV+al}~EN+WEP^$AqA#K;r z4Oz1gUUWc|PiMi)4v4ZxN9_3mHgv=;C&9iG7At6${wr)%6iJ|++!Sl-xUI+;f`86HU7SeVudtLvw^wDzDb ztvydsQXl?t^6KkwL#e|EN6z!A$~iD+M65eB+u|vj*4x>O_ICDOJd)G_!F2C%(hg## zdxs%|cbx96CQ&eXy7xRXm3kC-zpzCgK{(gDCn0@kzj@yMSmtXny|KVMiJ*n!3EshB zjLk?$IpSRluj$w$-s4aOd^+OYS&TBM-C6HD1>`jtTFR2iZaTcBY;!%vW&sUaB3qhF z7Q&J1vUt?rAFsii@713lJCzSf8a+>p63WE2WbnKy&JQnNd{)VbboNoyvKb1Wur$PNpR)8{M%QIOJ@yk9F zjWkbJ=kgACUJTl!#=?H;L=38=9z`{_7v4OVg`;Wb_d?c~9D;r?WLi{W@It0S;GP$< zR9xWu7qV>f2^zn|E`L#YDcera|8DqN)&o_<*4MJBs9yAMWRa-KyS+fWB98o071@atTn2r(2hciy~{^l2I6`m=ODmDbt z06Tdaiz=eKM1Gz8N|PPsp)8uTJzeCBS@cwiyF6MFtL?)>vx=bz92|a4+Zi+CciPwY)DObD&RK ztagSaZLuprL_4hYgih_SD+Lo@`-RHd%Q*o#LtAu~7ZUOc?&Zjn@W>Ti$ z$lai{t6W14Lq%7)9$8q`4ZGZhcHQK!nRULF9$mU)kG@dQUH*&_vlduk4}_hgJA26A z5GF`r0Uqcj*Em%8MBA7a*j83m9)_mJl)hAwD{o5}+ZL8SqkH4Pv+!GQ`EN|u5DTnr zAA|+Nq(1U2rlHINd(6We!MU%zGxN7)QugBzJ*0LE_kgNCa%ZxXZtN>R#E@|4GXS^y znJyV1N9S=i92q39OB#b{u>2Wm1pf`jnusP2kzcZ9|3uSs?quAx?-)csfi@T;KP^NX z#dVTAnY^P-C&|&__zbfrWAzX{H(6efu%{!fV>DB7%uL#Bs@zS)I;UHqBWED=GF>@C z9wA_Bsjbj|XUR2;jhaek%Td5Rfvh=*aWkDYNB)qotj^l2U>=S=LATG7#|YU;F;?gY zKxjJk`&B*>oqt%h2#1>JokjBB1?-16QIMqz45K@i%P%pC1#6?s(yFk9IumcolUjPL zeyp5}e~*S0tK)_6e9G_?~Qd|JL+Ko}ZwK^{WTjLNzwFJtI%ICNF+LsQD+tyt74 z3$Dmp5j?%8f62@60v^07U&fMdwEaKmZ;`8X_zn4W2Jdjw+wzCZ+FbKk$h;#jck*3U zV_FTQ?TGVO*W#|6H``j4V<6K3=9kMk(w|-|m!qz{0hb=ggOCs2Kal%-xjv7w*_VJ4 zr*e<+q=1hkV1(IG1yK*>Dbmt^u`v!o6`e4qiZtyG6CTPv(GXeq5O*>GN**HO#_;K( zd=l#7v5(}alXuX574lobC~+IQ__TaV@EpGQoFdz4?pL3GW$e)4NGQ)zyFnK(g}+m+ z;7A+O+tw9TmB)<*5}0&f;Yok@Qv4z&uV{pyVty3bL`Rw_kT89zEKBi{pwDKXtr$&E z$LF_Dq%v&8f=I||qwt1%trVH$2*k8j^k(Z%vI2LvM&L~lwNbQ2ecY*yq7VA8r`sq> zJ<&QY9H@}kqW1oExI&9|P_9`xYqXi`X8!tKqo{In z+7uM|gJ1MeS}(zm&RL;AO~L_PsZbLSdTXWPB=485S*_S&hu(AcW<`#O?0{W66~AGK zqV+BXnm7Gn>7NQ-Y@Yv9u^yvjBMvHtGsF#^mmu^$^*yXm+N053>x?2CB~PC-iaO*O zZ02i+;l>$7fAqwRXR#Ix!_F$Q$znLo*ZRY|vx>%KJ=8gewXrbpoZ=Hkbo!jfT0?;I zh{XUm_?iT4FJNsdG`fJb)^x-L#dTy^XjX>vub~sm6qlUQ4sU)>p&o%&=!n+JL^2t+ zwN^GlMev!g38}t~QbmZGX17%a61;jN+9^K}vKsO_U~?Z>-$8i-4d1+uSQ`iHJ1W;= zIHXx8o@HaV^g^odA&Cz4pXl1y4bXO=#t(zbUbEUuyG%K zK1_K81M9GTBu@S>y+2YpREk=(bs<*&pwkPLZzO0Dj{Q}cCm;#**-|BXSJ`y!a%G;_ zwjj-n6G~hoyg;{3sU>O9X`S*T#(UfRp;V(>9`}c`%8uNDaXXYv$Q*ihhjJPrV#wa5 z3?sK-!Y*YR29`?s+D!Uvmoi_(4%-(F+n&kfboK!y2539Lq(jPN;tPikDfMJ0yy0uZ zA-Y7FjaPqa3D({~X$iJvz&pO?Om&Bq$TmG-!x5~8z~dv>7z>J{SbIy`9#u;0hyr?^ z!~IoKIERat*i=~vS0vo-3WLrmgV6tYa~?_R4Fwml-(%Q+K{<;&g@zZgb^u0SRHh*7 z?c-~I(kB;{?-+C!$}eMe07$PW=SXg^s>WF6V8OVF{&hu}F0xHqVs2UZLhB6)Haa@|%-17u4@AYOCSpi) zTO8Kv(Z=yO1-T8=5>(+1+ZKe|n2sepuByBUbH{k8;8udF79OEIQ5B9}MT11u13ThE z!|SLLkQr$Ax~d9-(=@H88i#YAtEWmKEM{C(9C=Rb*H@wW>JDuhsOqBTTG~K0*d9sm z++3w5r>MTUY8s2i+Mg{|UBk&J@SUtuJG7AD^!jIysw%HT<`k6&bepWwpxIxDjcE37 zn~c;w4G;O+8frg9)lh&2eT!+T2IL!EI!%RX^C2{Iv1*Jrs@HQnRNY8F8og81OpbQ) z#Pg~FQqLXOc&_kg#KWGR#f1bC2N z;C(#0J`it@YMt~#=G2C6L6C0G6MWG0q$T735ZAiG$ACQRDvOz zw77s;c4!GqNC|j~?nl4c0o!dcrKf5Tu!122=%I!I-ZE6_*SiK>lVA{F%fNsR65>D| z#s=IMlMwoRYCu+3%$lS=4mgi-IVV%VFeLa?Q^0!k5h5!BQdzt!1D^&obHM0W$@_q( z5|pW%1c4d`ef+;ffn5p4!xF@S=NWRB3LOHU_@L+ZGB^+ehSWn7=paA=;2#zkAtv6m znJzG!U<_lmJ}|%*!!{?90;hZ9+|619)p>0@93jZyOkGk72+C-2(SI;VexD z2cqhpK>IEV+{NG(@>?1hW>1FEjNb!K3oyszxiPSv5O3w6ZGrEkc%yTV2ENCbSkAG) zb1Vj1B2ESR5)8{XIUPtu=zBN27&uyj;mk8P18?JX{o_{P44e&gj{|R@(sD8dKEg=o zTT@`Dfb6Hf&jJVAq2)90UEnnat$^Mi1EmD#9{VY9y)7mtgBkS#!n8UGX#%x7Tw>J& z&>&A0s8I_SP;ZesF9eO)f=G4CK=KvtW~t-R=Jsr^W(7!1c`Nk=g4d;@wHgx>?Wt{B zb*Ko-n9l0k1oH;YUDPE)@)j=k#C`@?-b)>gyS&&-EpWiN%3p)kTg4=bP93A3!JzB! zJYF4XhfZ|LH1%fk1)fe*Ct)%sWV-sT1Pv3_0(G_smC4{GYCQJ)wB;JL5wk>e`C4^* zg2ejtyE++dCYo?TeP4)yVfkO`>9(wFO%Pn_sa8T*w%m!9-Bj-sVJ2$oeKoa3>6H9L zy%wE?`%l!r2}om_|3WQc$v<@7YxPC}W*t)AtCLY&k9n^iV@H}UcpsEZT&bP}{Vqh8 z;HD_3Cuu_K*aj`L!%)jTm!SQ~yh~hzJ`k3>5d^O~U~prDThJTgJ#Q-o@Zl& z=7=ye(!mh)#0|AjgC;>mXt&d=O@nf!JxJGj4uR1P1gr&JWV# z`QGDeM(VU6sB^J*})GT zkXP?_4*n`8RrFqNa33_PXyZP?9Ye@gx_(}8cXy<-)4Jf68gh$vzYsjl9j(o$_k(j? zF>KuOzu*Cw`9Jnw@GRCT<4oWWDXq5zPA7f{{=)Ka1HJ^WmyqV5vC~92sCNX~m;!s= zsj9pH_kM}@f^cKwpc7wgfMt9!2X67jdGN``VhOb4i$GY! z7q0L(Uwi|v7Fd)+s}{J(3WE-5SjAat&qDi^jtT+3ppB3 z=F+@~(5AdMToM&Z<>;M^XcXFv#U-9>5~^Y_p8u#>=vjhiz9TDiD8b;DCOh;si)Sit z9eRzRxO>$m6t%^yb#vQ?y5Low*Ee)FLFYW6f2g-N2KG8A zK%c-~FYQ(o$hqEF^aXDj7BO&&FG^vg+*}Ls!6FU*=8Ib}U4exoBr37!NKHzuScHfE zDp0G%(33)~{l}Kvr0>GCCK=PN3y>ySH!x{j71X)D_B_i(cC>&ROi56HVPdIMJnkTKhT{{B(bU3g>+W=Fl>`v_*f@$*kyR=CXG8D=V zYt^V{-yYUdF(xxMpVt0{hD7EW?JFUwv^r(l(1DmX?N>W24}J67wZqoAA$#X%hn;Xm zC7#hEY^9vkqR%FTVUoKSrUS#K@`LoFUFqr_gk+C35 zjai)j1!1S$@NDCkh26j#=(;?NLvfz5JZyIp3_UYX!-k+WF#Ks)C$s>sJ`L-StW)=V80j@!8N{vEjps4{fXqzv7CyMc;bid1z0}sTcmqo_TQ{W@d)}LV8iR ztnf9qcq8|=2`|D(XZ^O}dX}j=3u8Nk&qmWo(lPv<5T{_fg^y)E9ix-Fg_jX@znb^J zhf5o$UF;D~FZPJobQDvuV?!h5EOIb}M-F39$2mqtV%n+><>DgyI%DeQ_w-0ibp1n> z^&dJBBRhhriWWb&a%gQ+AJsXA}=$2yGAY*F~7WlNv|W_XjyLLOoG;P$3Bs< z=-JKb6S>6|iB)@SWEz?tlg38=Vvhn-JS}odHYQN$jmQUXDDsv*=jU2V-CjoaV=z%N z@pa@N7IO)&-y)V#H0WLA?{4U`oU@DikJmt@9#QxfVgPO79krgt^Ze!$b(O)Gz+b8; zH-=4Z<^wM#g!#d(evwYp+dpcQizxA%+-9E&vZAB>VQ)-SSEQs*Y*Y&&CfxH9qDHXH z8c!IM5amX{a8c`o7+hPE8r9DQJ#p8pD2#5mrlrlJUSP0|Zf_BV`_s~tR#BJ&&ZMqw zqDG3*jhc}Yg;Ldy&g~Mll5sNF`1}wnYIx}q6-c{wk8;GLpm{x_n($e;L%pJw5maFv zdPfPJoD7X>jKH`oAMG=*f8L0wa5>sSC3B+&d7(`lvpy;l4fDzCqtHOSNN;b6x|V`5 zpk2?R#O+ZGA2deCBSro*Mn9g9p2)4+(KCZF1Jzp)qxWQN9?=!@m}3kEaJwsG))I7R z?R{fr{f1I_QEAKuR}|{$S7MTovJe3u8>9F-$ukWqU*CEgiuG{J! z5`cqZT^#8GZ^SsDEiAFaDZ=R~JKZC1%qMIO(4mm51yyR@J2WTX1?kj6)F?h-I;lMw zM1r`(Xq?)D&{H&PtFD&-skLvXZZa}#@-7|YiY|2R&;*aggeD==OVQ~qZ=H7h+{YTx15cEN>`0LX#_~IR)AK*R8&C{mh5+ALb@zna@#`Aspa%UogveWt$yg1Hhuy_wm`N9#3&gjRXesDO8H9u&?7sXJ( z7ro%rS#0~4)<35|fFhkT7xb4^cpz7w>h*c32JJh>C80E^-!TrQa5=mk5H}7(P(udB zaYVmv%fL7v4D)WC5tr?h8{+XpU`3mw{t#3c7lYZG)`fA|c(XPZ#-Zu(0REmCcZ^YD zbZ|zTKP@SW`_&PzWt$~&H$BM+s^1ZJ*Bh+`_p@=Oe9-;cmAFv^_m_D!4ukCF^z5~` zX|7HSM!Nr)EYLg|9cGGCG8pI(!#HFdkka^}m{%BH8XsuS-2BVZw&yHP z+yea1#TPK@71sXe5VnlQo{z^coGaa57T=s9QgFNy-yLH$gRjK5k}@wl!|lho@P`lM zTO)_ndKBM|`8LP`+w}-xGeGh<{vz6=w;tn)Dru}K{(=nc5yB*_$w9Z__pS*$l_-YV zO-%S3pI=hll!RTFv;xz#ghrmf3~<8}O~)?VZK+wW7If3VVMxE*+)eQYZ+wE znR61*@@NW~^AcK-*07E*^ze-@hR~M930sBwqdV{%hFm*eRnhR1IX12si-4{?p!}m5 zaD6lavUtEK3!obTXQ*DoyZXNj@AohGUJi>R5tU$X>Z8g)V0k0wDZMf`&|^EzTs^ z6UGK5{n>;@c&j&_O_;;5XaBSI%DI5OCcyLy32E$a`>ep{Jg^n@yqJ*hhSz85{RFfR z%INBU6Qc3J>0gP71NneRI+xf0QSYTiNr@P{jislP6GyWc3rSB+ESI1{4sMb-51o*G zO%k8_V1)Sh-igs@bzbkCI2Xkw^zN6a#cOHB77sqpK}#31C|Lo*W{ zB2oRE*`GKFBNE96u(%6b4kT7$1bOkFiBnMIs19Or9Dd`A7c}?~YU2rB?oyiycT1A4 z#94~ppKLqF=P9b(5PssD`51o>cYl0wh%ghIc&@7Qh7r?A1s6^4 z5^&;zla%#)&uIM~>bf~@_8FGfOAh5=uyz`hKub%76jag-)B zG351PZWP1Dy#|@!(>NO&C_ioRpf`6JE}));4SNl8=EEp@Vy|H}Z&LR;V894iIURAx zuvmoBRC?UdO^j0xKW|tpAYG~JWy26>kJEKs%=bTpzyHzZ$K^p;uxgORjczJ89I(YC zQEr7{80KZ}R2aqwueRggq)b(R-~~mY(Z!g5+Igx!4=fT2wmX`YgQ*bKKQTnA{%pmA zhoWdH`co~&&wq>s{nRgwMfi`&X$HJ~Vo3LSGM2}~i=Tq2>QiQ<8ES81!A$k9(4x}N z4*7d)r6J5?QP+5zCPm$H>*Zf|&aV{N*klxW=-@@A!4p>|dTL0=#6;t#hMsm79Q^S8 zPYvThG&Li2`1{MFaLXo_+9$Cqe)NU3sThylGmr@PEF$;;_`NhJ*!S`?aA|Y6 zyEEU%SWvtTTMIqhIziW$26ap2gtJwZ|MDpO1Uwz_qb`XWbC(Yr3a~ToEu#Rx0W-CF z@zy+#r4zQ`&WnVH&7JT=pXw!87G;2&FAa$pdvWhX2pE3#_H^dJW z@oS_%oNY{hn%hko1=o=oA`nvX@k5Pn892?N?_DZ3U>lBnyvyE90FzS;Xxtt2!rixq*_hNB_|D+tI(ZzAw4XWzAB068HL=ZL$vZ=< z#%o7^Kb)0otXEJI!Lt^BxX5X#$P)Fx@Y|HAO^!8N60xP9c?`C^2|o#Q%T(@=`QBiM zk-&EE4Zg0cOL^Ww(O~78H!$P9LG7Ay8o@=v2G6YX4S%LfDh z-a77sA%t;m1)V<_qA{T~=YzpR{C+qx@hQ_w*!;oJJhj%w4?N;MXKbtabaG#3{Il9Z zF@MY$a{PpOQGO_bkbNyZd44wyfZ87oS(vV#`_T}_h{nL7kA`^3lOGiNy6}_1gQee2 zK+I>22Qzy*l%gVsUZ0TJ$HLrChAbvvEo4#T=G})Z6MOTb(GNe&L?03yJ{$5F;R^F9 zGs8y0pnV26f@}Y5=xh7SF!Mpcs>_KUDD)}INs?~vv~XjbC{ABmu+f{nu)YA3zKCQRowNXgLSiJVUo^w<|RqHXv=YD8VfVj zMkBt0O0DQ)84~r;0ZLDX$uXo=`OVNBpRis@82mpW^WncTL=zLWb(_x~aH zs6*e$jnq!HNEw`0Y$}20RR)!M&Jrsdc&Tf!9X`Zz9Bytw=K8uIn)4+Q3o z=Bcj>CUR7s_OZwxX>C!Ct`USuXeJALp| z=+%M?K*r*)p{H@M<$kom`;l|hbh<9eoHbuzKf|TqgRhSa#}OCHy;=?f87|$nq7L>@ zSK&iwt`;L~0|jpl24;)1rOzQ~#&YS5T^(4!a*a|ut~68XTFG}x{g(4TlrrxB|D)6_ z@D*_W_8q`Vsehr7fQ!ag3S$IZ6yu!-n*?0XX4?i@uQH1C+-g06&#?}hm4b)ENZ!(D zfrOu%b{ZK2JMn7aWNMx*uNNGB8X_B=cFxb?p+$}f&_&3}T$wnlHn8vtdjSfCTqxr- z5cUYUcwE9WAr~7^GT^%uxxC-9NF!=1F z5t(iHeNQ@;gT+zPK!_A`S*Zt?n28^M;5+e|4*x^^KX(8B5&t=qh`Dt1y#;n$9lYiZ z?6|(ng*lehrocrzF3xdwukWk1>kh8=TpGTc%eLoYF)H?pJr~5d8ey|N7sfb^wh-Vc zJh$f>F~-?uG>W~smgRd}md|VXqb41P40hoQ%qbEpp~!)2kXX{=`!u&NTUAlIca2+< zhX*%BB}Ag5Do4S?8%{Q+G>}NRPz-s+OSnjfdwDz`bihOD1Op{pA?9*EOYk1_2bCj- zc}2)@)s9@QRyz~lSkrm836T5x?2XY!4BtNTHz6Ov|O7?kcbs9Zfa{Cu%{f|oO=AzPrf zGv~p1*Txs+MI&?bPY>fY(jc>3H|81(XR6Ea_X3QCcIG`7IaXEEWn~x#+Oc6J~1MD6mqai}X7+($ynz7l+L)NQwsV z$Q4O3D8xdFSHJ&EiZn=;a_S~Cw^+a<`AdstGhW({Nk5V0AG}b;g8vs;?rDA^OZj0l zS$r1qH}G-?+*-k@N@_Y4i!8SqjUD`y9#ZQ{yx_f*Q#m|dXNPD7YLk;I__-kkBcO#F z=Wlzm(TS=;;VT&H#s%XShO6C>anP|j=#FHY3%A@kh5gj=PL`ozz<6-+E>lA->p(Ld z^`dDv7(KXF_#AzO2j`KqH_^Ns^b3a7Lh`gWYZD`?q?zi&yi_W5H5Ry|`RTDDh{uAm z%p#Rm9^?r#RsAc{q~ay-FBX&{8+ze*)BLvP%^^B*cl@4@Ys1(i!T?WB6?HFxpKUZh zn;Z6SY@V%-(O6Jc;b(Dz6L|y`ZP3Jcg4+9lC)WgHHg;Z|Z+yCW>?mXYC!L zdzumdT+@yJ^Groc3yK76G1cc${A;QWoxC`&+VA7}dCgtt2MI^K1~?U(U1;*Uvj z7#R-@$Zb4e(y_f*95s!Iz_Zu|K ziZw5{BFgMAoWRL8BgmB3lIMe$72f7^aqKe5vOBYSG8Sd1b9kS}#k3Dv$hoKn?!9n` zyLrf|iU2f*OtxW2zIn)7=gxIE7D|Hfl2jR!y0{DBuG8$l&k z%QLAS&m1k#tL4o|q_mCclllxC-W%izXO$?V(1=oU?`+@I<@*f<{{}Ko)(3lJK9qTY z%$IA-8UxS3*Dg94O!VbE@l_4@a;-eJ&EWf|qc^~N?oK>jMIbPKoK}|Egx4RumxrPi z8_d3-Y4ME{u>H7B30?g-CB96W=*P*N*|Dei54OLIF&A&)4?k`N`*6euxTJ7ac@_x= z&9=;9S-mqqOB9Uv=K?%$HLji{gEvEY>pS$H6X1{E%)vQ-&If%NlRpZYNuUVevQoT{ zSrCc&<+^zAt11%O7S+Vg?*W0mPSo@w)A%U|!^QwEM7F+B^^`N!i9FAmXMJ=11k8=o z_^^+AIYXo-N(nhb0-e~C)84|eFDe;i1#)SEM$I2ofnQfg_hha$uRQtXp2AJ%A9l`v zi4)_zA17J$agL4k9yzx@?Cd&K?QOXp|HuT;rAeY2d<^6?t}}Tbr${*Ln#CeFeSsJ? z9!?w>)m*YR#L~KbvK8g8RTkSsY(;5~pA=sZ|7VcN zOdrQ*;1YyW$O^{A>n(%E9kLEu^Y!QD{9ze% z8&(E$$%?W==5;KZVBKn}xi>mBg~DO*A(&ITx7P47p|zN|XFEHX4`>*KYPg2l8!f93 zFw+;UV0?tlSlNO%m(0IBL_>J3b_tehI8{*d?)*ylXb=BoRgvT6sr=?qWw-reU1Fi* zEV!%Te8kPu@w<^ik8EHhe?m>W=xV?yVeEfijJ^EcV?`@9`3IO#4A<1mg12$7SvFPg z$jgGa$Ip1`J=(<62ZAQ^50lup+%w`C2y>#OljglFNXDVkW&HXdISEebE54BdW4tGA#%f7iO)zux^=?(}N3RWKj| z(Vm03{AyLJYNBEIv+! z#y(D&XKGioWslVjFt?;a#~4l)7hJQ$L_Wk`JycS&bpdt=y=Csjuex4$s<192~ZOvUTR?Pkn8<8YArnkx1w>?(pm^KVMWp)=r z_~^={W6@X~HC^p(HtH_G#aM2y)5bL1J|-p*U!OttFlnIHja47F#6j_$SE-ImWLIu> zh8IT+GWLD#r?9efm#Hg!K{-S1dPOW?XPy^~?sLqi&)$~AA$WBa84+29=m+lT4f!D}H+d zR+un!>Bn)Ns$WW~1GpHy$>7};v+Bw~{pDx+2U>7kd;B_Q8^?8)6b10Y1~{dNSn9^M--qX1j>#2$Jxj3e5}c~dMKJ547G`leMqk$wRrWXwX{nsvUK52V zFlI3KGgQ^a5Z|skmQe;coQfg7;cd+!KITy@#5Ct38Lg%6wK&$o({kMklC4LPdB0js;3Y~$lkUZK{^;9?S(%pRG1#KGkKRpnR)&>) zW}(A-gVOcfaGpp%@-nxeOC3(_)@!`kuHNQvweO+)1eCrvsBA@_cp7Iw&U=GQTL1qH zUWlsigCP)8n3B4vxKkjiF6YZ^ih;Qw4DODJ;dpF+nPM2cgbMI?bW}i5T`o3tT#i{m zy_@hoD0{@ua(yh1Nst^irrgn%E&p$-W(!o+<RS-IiVd&eGKuf#W`NBl7M<*qni4V%SR- zwqHP|jqCR_)7Hbc4HzFj4}MM1XbyuqO}K&V5RFwrrE1K(2VO!s{E$$;f^$>u5PmOu zp(z(GeH~;avQ;w0dcdVx7{h!F!ObwS^4J{|DVz_x|3D3)B;Y*7t@j{@Fayxz$98&CKu^+P;EV!B4L~LR+-cM539@x!;fMx8;(ES zaw!v|@o4&GA`6DaT4au7KQD7+&@GGeVN@!Z$P1*6F_y;YhfvBl{+orlq5hE59K$HL z@pmz~C`=skHPu}I|A)+xyulN`jur@vsxri-U|GAfK`+mQd|0k!n z;vD{zRFy%Yjt;Y)@%ysxXUv<0MUI~47ChkFkeQ8Xz4MTVg=_w3b{;=7cXy>cFX(GwGJWoC@Z);(YCSv(~2ktq_^;YfG*bV`uH> zXz7Qq^yakU0^H9xw~*$CGiy2tCt7hiOuWj1n5%0+yg|VucEiusIjLW^qm?#`&wZzj zC3ubGc_$P@o>uHDFzMEx0B4QfQ&uGO&gac!RAts6x0$&xu=Tk$XCxJn-iFioZtwj4 z$YRwskBkqKnvT*LZ8-cbzeVs@TP}|A@d1Z+oKmrCxn(K54Pky@Vq+Ged|LQ4q_^W@ z*j~#WVD31vC)^vS7vN|8#qGE@vY15{`^kuM)Wn-uR zwm!E#m%t>aTV&})bNJ&YWAF>SYR}E$LyH|yf0WlU6D}>w%fhloi%88hi_~+q&9>=r zOL53jP)p&LYHnL^Lar9@Tz%`lA({DF26EnB#Paz`w5QNs^k#Nj&BX?|Io@3S+!4*i z?vHWc4|B0|C(a`&ccIl>+-iM0V9q=6%x3T6J$TlMYv5^GP))t>wq?DgRu$9{ayp}J*~r~uTUOP!*p~C!{*Ue{aW&hP z-XUn;;-nS48Zh}h#MR@^8uCH@e%I7Kur7yFxwlqXPTA~=@fxqy`qQxLH%E7Pmc!M< zl&h`_7a-p0W|2#fHC^KkseVyn7}tfHfgkgWyW$?cKxkLIDpwWo+<>vl&5+ZT3m42$ zIM_g!HKA^{yg}+`ngScTa&3{#1l_pyl3Jg5o<#D@UuM-588E3EnxVaYtXCip4tC=r zT<6{RNl~yX;d3`GlX3I4NW(hNr8^g6zoCvb;x`wTc1K&ICzNzY*?%6&yQ6H_vaknQ zzUz@3yxJ>tWGkR=4_x>-nAwAqaqu@k#dkx|IGUF?_+*M_tU_!t8;XO?op{Mzn2zy2 zWNQ}_zN6`ZS;6)o?a2kJ%bdPT?~kdL~Hgpm;r9NT#Widij_cj4}6y_>G&H^MUHpOEqD^gAvYKA*Y2xkf5&xL z=Feg`ANJ;=G<9hMcd)cud<*%>gJ18)hFmhc`&Ah{X~@-Lhv6UEMqCQ3$3OZu;tcGq zKdgqsQ~3Xi`|`M|iueC>?*-+e=*5ji5KtgoSOt~i25O2Mi@RkBnklFV?ve?(p&|l$ z%Q`Om4sL@ALY-et-P#>-F3@@8_9$ zX3oru zH#*Q<^oheq>4S-CC)4Mb>vf9$WSNQv7~fr-WB;SioFntiKCek|j-5z14Rzn@GNlh! z+c;kxQvV#kr_s}})Jms?)6@>S)3kdUI?+x#gEXetOFU2Q3O8Bv>B%&-Jsh6X)pkBr z4WG9C`_8{AM#o6yHxBu=^>aWKIU`(uo-HI z{z(VkaZ;&d20G4L9JXp}$2(5Fb@i5_G&L^z=g!)!|LX96rjQ5hzAf|SU@pYN512x( z4dwL>YuskmZ*zzW(o|2!{4Szt=8`21HGG+Fq^a#Y8|*~2<(l!_H@n>2nPG(SGr~hl z5ssTpZ~Ing6Ul50PenNtI$L$8Vd<)i^Wg#YTkj-gq(gTsm84^}HS@gIj}4U*|3gi4 z8U@(p*fe8kS5+WY&xE^q5B+B* zw(I;IqE*M-_@~v;=ia}n!-|{VY?MHC*z6+^zUeA5xpj243{@96a^uy8w;wZjfk%+cabW#=XK* zT7SV)F{>A-t`4vK$?J;Zrv$dZ+qut6q=3&)3aCqo?!V?5+FbzEc9H(~&syzDfk2l=+JvwDsClA?ce zZb2WthRqVkdy5;#ed)*7)W9IWll2C`t2w`DJuU#>foQrchV2!~vp>;MoS>DSU#NN+ zHdONUl83cF??Y3x%QYUC>^R@Vn3cnEi|SJ6Y@# z@#(~P=LCx+CPt`X6Js?6zOF{h|%@e1GThP5MwachptVEgz$Lu>s zyS&ZXU1#gU%V+9x?R??$4rlB<``l{YfH8Tig#!b(mvK*KY7HB5Mu-s@dw>;d6}_IV z4vg7#K0;acd(&mVvkgbNZ~IoWYiMP-GnD;#>wmB8E9<|MrNtI4QCs)#%aoxzWoybr zvuiItF8&{M9sIYhn>1swI&i?-=Xk+3V#&b@R?7>fN5PE$gEG&5D_cZ$i(xD$kjE0$ zt<&zC|NAqltbX>4kdb2jiISGUoW+E`L~YZ_&t;N|kf%|lKsoKLKqV`*MTVnzRFH<|X8Yb{tC73#v`f4}CaXkfC4^a9t zb+qf!FxE4d`j)c!FgKvsBkTva>8CZ!5i;8`h1OuAKAn8&PCo%{!|Xjj++V5lJ0y{r+8lgK!zLzd7E313{$ptU~x44I-Ex1@tB z)n@)*vxU)ocAo_a*#%=g$2e?-$SyLLaO1Z;M_pjiDww|W--F!nJ0_#)v;17BAIi|^ z@gKZ1T2B;H8iohF{snP^^m-$mUZn=MoO*|K%5m65jmC+$XQ$fW7&+vs9&N@Xh^|z( zL7J@}N4dhXM!#^{Lw$194yM`{S--$Cik(YVtPu`Eu2p@>j#GNv55v)me_qsze*#AfG(dMQ`p$3v*Og z8kVQ}8(LV-P=&d{bFK62uicV8`JdkDU~N17H0g5i2AwbS(C(AyQJxyzaH0j3^otlU zUs|K~FnxP~4eU>sS$Amf8g)eDJXAIt4*TWWV+UQn+P2wv!O>nA$y_Z})H7e*s5?T} z^3@IjDIY|jBfVRNDqQwe(`7fbkz_H0xQt#huxiGpH9IqPD1e`F;+uR56Swi<%PhdI z!Yx!$pyElN_nE5sY@Z*tXgPJ!#?_dZnj&$BFwednSk}^;Y!3MZFP%Z%X4~?;6%5FcX7+ybh@s_nVs-a<-UCfjCs6OzN*o7*7zp!Ze+b% zAbUK&(~G)uYN+ip!&>daQ(>M{Gi@`XLvG7I-qo7SfjzJlq)n48cZIWS17^(17*nq2 zH5MTxZ@w$*9KW)R^E}sUF~*<|#CYdM;HwL))dSc>Y0)A?ETuE+;3qgj)^)14a|^%v zHnuOhnc3E?5U}&?kHm|uNH-|KtcJ#&?c74Kw)~29k=mM`tRk^a%d_9X*iW$3#qteB zFay>+(N=Mlkj`P!YE4>&8U0lzWv(T*=iRJ6-)NUfj0sNpwQwuwvm z(vG4>n9T-UD6o(KB&Ffy6&`n0J70P&EIHTvK~89upfO|k9~bFR}yoh9(#dccPp;Pb`$LR2kWtq?cqwM9IeM5tFhxv{p)f6 z*v%u)A6<`KEZ70B)MH0-wrNj&_I2{zstz&)eSeA)9=f_y?p7@8F-~qpcQ2>&TXCtb zrMoPcMUEv1Mo@beV3#BUeXA^*Qi7T2AuR_qT+2K~<=s29!ux$bC{ghpmNc5a9pYh> zyB#+WI#iye4`&$LG{K5ndzf-1o-M_`%iG&=m*oNrnp4{yaK4rD<9K#FlOHc)$Nl*6 zfgQM=qT|QE?!a>)$rQd5XVIqm6y2_Icc)D|aTZ@w#ZKHf+Lm#OvV7fK?X1giq?K+p zIlrO)roZ+9rEbS#39JzBen9a@R2S;L3n^cx#9dgXdX`Z3E;Y*V-uzQkwmQ<24n1(S z*T3^MC6uWyx-CV!)l9sXE^9X&34Px`Ti5g*W)Q+O4PmRiZg;n{`DVA8h<7!jYq_EV zJM2-{I(r{yQQ^=J0I(6TOK zXuaD8T6Rz!Xt;0{iPze@>(ft>)0{{*ues?qr3m<^6fYpsg}6wxXfGUTc|K2L-c-MU zKRo1+>Z#8^!Wz?)rX5m^`pHLV{t>lZ2R06B{VnpyGnIq38sXcm<}oIO&@(l^v3cP- zeRK$&Y0Z^W&9qR`D5v0~Cr=L@seh;MRJT<{d$; zcB40rsPV?#`N-=V*a@`N)G~}JPO6TE2^T~T{>jv-Om(xfIwteV(>v!|JU@aiL)gKy zlr%T8wZ6qcel^^-;6lUIauh}EbsjzKiL1MQGH)Wh)PRn{OMUwszaBoJ&yT8C@J#5w zW9oB0jrRY$l82zyP|3{mZrxA!kEwmV226UUnQeM~$4R*CR-p=-;vn9&t-Jn}Q?&X@ zxLfxxUa?7q#h~n>@7c-{|B;nIK{XT@mf+y8E8!l7S8&k!a~wR61C<^4<6ta1Xo!RP zILNe4te;z68i#nJ@6;B6i$~9S7pk)mtp6 zBBv7wwo`W&%%)@(^d~}~cilm!PpF;nP9~p9XlhW2)W_LzAbOm}n!s3z{J4M}hweQ4oHHP&#sLUhxj7ezPCcu`#A z*%ptFPz8qVC8C!uEqSJw{zcnPVXWRX7EN4=PLs(Fyxd&$nP=&b&jPdbThH==(tj%( zD4W|^s}`N5i!N>Zdrclwzk#0}dIygYoiG>&Sz%6YhUPff%nlxo7K8DV*YSvdm{YCS z;LYsho(}E26EJ@TmXjuHAeDWBNzficw_~_dN5dDJ&Qik2$Tp@P80NLL8k>mrf}1%q zvSp?n7cnBC!^mGnjirKUh*TxJZm$E!*4On_O{nVX?P#QcpN~f3DNL&hMASEJ@8fMw~=8d$Y`YFK61jp29=hcWEVaFm8SFx;Bq z5Dm9w*n?qj4ZAa($=>8qW6~JS7^4ltiiRB-W-n*Zp0h(AVAz{s_C9>{fvdni3|DFR zKErJpuF&w047X#rOvB$W?8|VehQ9=koZ`nA1sdZri{Q_2mWIzV{2aq+8m?qGfZ@cy z>nK|n( z6I6{BzsePc#HtFT#+e+~PC1&ZWqsy#7W5KAn7pc*EqKZoIqXs}#0#^?~0YOfcTw&>CGzlZrNJXax zN>wG|f*y$iRrf>uesuat%%IGy-y#)8Z9n6+>HR2DVbuRUVEjxOXnxSdZ33qOgBA|w zdBt~E6-Et-Ap;r|~ zr3Vn9pPdr22(_Jaq%OvCq;6n;KZ~p1ppT4g;-^hYnl;ILQtIqUGrea|ndCh&X?j{x z^5j(S)THT?a&80-vfKz7ynldY#oWOg8aO95;+IB6GaiOmLSG*|uYu9Dfn!rn`I5n) zA)uj_@+Gmod*U@~_bOt&d~Wn!r4`JZ7f;!@j^mC3yHMzf*x=~h$(+pwPxdnoa_%#ve(HBfR~Z|exi6)DCf{!5I8Z44+@@@UZ3=PG z2HVE(5yka+3w<{6GnM}m;s09x;3ChktH`j!M2^{<#D4V)h?&dwjOs^Fl!ugX5{>r$ zf6*(VDLZ*~K|D9*LHf07fY8;#`X@Kmdc~aw!J^Oeks#`=XfwrrQ}ldN3r9b z8|!m5#!G@dkIFxa?TuyPy^mtO@M0_HQ?b3Bv(tH6Hp#LdUc_+<(xH@nDs~3ewf9(X z(UNpJHeUzx`rgL~CsFn%v4`*$qR=zYca+l4#NNW^LlVx$X5zKOm(D_MuQIMSglkn+ zk zJf6m}yhy#K*T;1>z48T{^BiTXejnO&y%x{J*P8ju<2*qakFPx1&#}Bd z$5QBL7{@-Qq|Y!=KBjG-;VLuHiO*s)6AlIQxboWlf5nHX@CvkVq4F!ShkV|s;o74` z$*5kt~$zR6iEDC*R8CN1JEXhVm zhz%ZP@fjOe*G&J|m)cH?TZ8Xhl~0SycmA^rS0e^yWe+7xk2{1n@aj_IGTq>1&CZD% z@BDHBkJUj`;}>)s;Jpi|dWofflZa^TKDu%U8t3>Fi0jGVa5K zzF|DA?1eAA#Ic+)Vis^LXOt`(d38RQcMwH7PR^_1;+nnpa(y+*5SqCvE-2Jz20x9P9R!nuc@3Z`dV>LMJ3DF|7~eLs zp|NpO=Vo1HBkA>a_6;43j*g8Q_hURAuzdrK zSfEwflyv6dQj~(sKBLqj$`Il zf#XNOEPq9r!WpKOB7(rB0+*$5dDJQ)pTTiRF2~g~IkpO1I#1x$BK~}iv+_9hevRWX zYutGLrYz2g%I6VGt2ka!z;VbLj^`J0Tw&%oaV^L3#Bsb^k6=h|ruP<6fL%Pp z4FXH=rt4NNmp<15fu*<8p@hq&4|avX(hKTP%H_g0o2g_8hIEfA+js=&w9OJ&x=oes zTrQot^93#w?$lZ-e~X_$;tn2Px=*VFuF#yi=zmc=c?9W)Ju0yD4u`zK<gP%T9@9f}2ZSE&8)J>qx_mey6l`=YWKY2G^ zgPHytf>LsOkbDTinFq-wxXYOQAD{|y`#m`y%)KngqR5BIA7gi`?h#~(mhwl*O?8NK z;*aDnVA~fzhMFvj{xdm~S^9q_TcCTvUkq9P_zUR~b>)-f-TK;a3ad+AgEvH-s6$>+ z>yuJ)bfxQSQXXRS%57cBZe+hwpK=J#yG9yP2wE-~Qc863lx~M8S(I#_a!6l2!s6Z_ zG00uHqDrHBI>e<=$pW8KA@2)HtX7iX5&t0~aUU zJmn&aQ`iFKHj!J)l*zcWo82;H9-{og0@P`%lzIBvV*0UF$|6Kfc0trKy62LTj}+Oi zKxt%jOUXpSm2N;Gy+h4Sln7m=;MLFM0-6_Wsry3TZZGFHDq1!${X_V9!K@`4XilB^= z+Ci2`*I7_T3BJfM5pP;cnW3+Ji^BX;QlV{|AF`@GLhk-4bI~4!{z$2i^K%F)s1Sj^ z`WQ6}KsnN=FhDz3xAqXCkFcPC+&X9}idld@))9FXSPDC)d_1Sos5AT$ef3O+W%#y~ zo;n)UZmPGXVtdM%Oy>w8R7_E9PE;at+P9qwnr3O=cKYNQK5gFOHk~wZ?TR>-wknn~ zh0`zM$>Hp^(@UIhbj;PX{OY9z%6FE~b<=-sif_sJ?3mu0eIzXDjp_IZ*fvYy;pra_ zaH#X++DPXe-yHY4oSfSyaE>(bj#J^E(}Q(&mJ@$Y|IicPYs+>^9c^-J6vU&+rG^vF zPf4VE?NeRwhJ7u-w!aRkE^gHWcw}jpvfHlgr=tWW9&D4P6l0+TF}@+K1*52(MQ(1h z&@*vW$}PIh#P(@CE9rJ%cW~KnC^>h8uHF>Qg2`IoR$=2EWVd(O?~OPn$|u!ILYIRNe_?akFs>=!DpXZg)x@kN2cR z2O{Xp0vES&Hg^VanQOlix)hiijF*+_f)J~#jmm7H@@onWN*zGeol;Gf6+x+11Kw_& z9+vtc-nkpvIn@iU--OPona<;ERxHiwc4rhJ+7ca}nyJGJgHJ@H9>NPr)4QbhPC98* zl^ZAUs+G&RXq#p3t9!Xz`b*B+w3PchTrRy9W5~HH&g>Xo!GjoI>}~E5GU~sc?p$<<^e$F%9rKTyBoFpri5W`tlIdOI+qE5?nV0yBa!ws`~r zmC}fyjOQ>oEery)f(`)bOZ9XxD5H&0u4uF9FBaFE!h;bc(li!S(9U3_G|~BBq(l^s zd_#Z=Xheu6TNt9nd>c$QVFgBH1R1c*pjLqyffz0Og(6ldO$*H!fI;r8kJ0oct?d*&+wG-&m&KdnN zmbM6Ia0*vZM$^JG2CzBnNO(pUHfQ}Dp3w`rcZy(zn@=w>Ro=8ZBBM7us|b|BM0Q=E zIE2Expr92rt_zs)WM;@j#}OD{anprcbNuzi8T5Xl)piwCK`oKh)k&kh3|>vuB1s8mnJVmeom=p$cLXZDtszA#H6o$Ik$pkba3+ z5Tr*KTRq25SCBKLR|e=c&_dAbphcieP!=c~v>3Dmv=p=qwA?bJS5D|UL(be>3Z1vC zdCs~^IiMAwm7rCiT+nJz9%v0HA5;J;1g*8KyR>f82;Cc&V1M&Nol&|F7E^G5d7Pv4 zAgq5x<-TSYIuKx0v>McXkKTOUW8#ZxRbf4k-RbdezOb;^*6g)8U&h6I-|T# z+=RS>%nyyym4KH92b*6pW(iM1Ls}hd?roHggaWz}Y%VcMKY|@C3^Au0O~Q>}q2EKy ziyWmB;m2@V6l$(EN+&`nO%5{;ca%PaUfrli1Wxcqn0dWXIubTeMrZSzM(IaLvxJ7@ zEAvL_M;JlfBg|Pw=|*^tK8i3OF-kAOa$4NQoM)6ighAxm)jY;1T?h*-3%Z)|QAg=Q zxG{p|??&6Z;e4eZ;fAGYqbZ8kTN^6uP0B-*%K7r*L-)c}AH%sIsT|C1b5{EbOCzUgj~5(yxGz3P6Py z?d@g$#IaU57rvg!6H;&ULZkFBY$lH=^F`yC**vc#dJtuP-ckA+ZqKK_(I|PX@He>9 z_Gt5V|?%el)eWi%dEcUA9P0PduVH!_`JEF4&R#MsasK5 ze{+~ox+0Fz-TvmQjie_chBD})kJ+8RA7I{Ol>P`Kt%@;^e7YUsJXvGRK}P9~Xir`P z%`wIh;cHk)X#>rJ9HlFwrkFk&XpS{XSHwVSJ;*%5C_NE-Y5pMd%SP#lFw(6-Xm{y{ zNT#U4=HW)^hB!l;2jdcwUWoQZLm&(hE{2sfZiso9qx3-3Y^I|_%wvtULOhV%hnhzl zr2}FwWei0XmkIxak**JA*NWH!wTpaW%>#^bV;0`T5o;c5l+K4g7;H{Kaps2fz55zp z@*ZQhcOEoj!k}3*QWfcvm_n`N%p)A7L*lz#v>?u$V62r63HmG!)gt{7O(`>;Rl8J& z*(Akil-`LWOghRaofCuUW;|3&-^B2JbSoZL!^i}4S4Zif2-#1+B!GD+!5m?fJIJQd z&k1Nq>7$6E!Nb^9{U+}k2M*DYVMuafn7Ol2`Y96V?_uV_M(L*5P6@*SrI#Xs-WYBk z=$I&+6g6+rBZj4uqT(=Z9s!L{PpiquS(9ce+-IREH)+!dG@0~R%zlUBM9%;E-W-W@mtKo6kI^BP#&49lr%`S>n?X}YnMXQG&&4YzY1$~n`F509 zHA?q|9r=$o4>QU=aw{o&G&-L2UHrvhbNbI{b6=zMUmT(6G3HoD>AuMMn0^@ptuDjO z?dfJmw3c*aM9|M;%wu$?@hN8WtN0iy9UN!gsLRTUdC6>vd1?J`!}0yl9_8zUJ$2re zX&2Tv*6Ru_3#!(?+CbOcQhjy(dmi{M;^yDhZyt~jYc zT`=L}fzOXAdZ&@j&hpp9qHzuI@$0cEMMZDp^P077sMY}s#oNzOu@k=I`dS2yZrLQZ zkDXHS^UIpu=?E$9ovb?RIEo1kEha%9y%XO${y<7NLOar zcbM8Y#MfD`yi53aW|(E=aS9C3&9+$XkV&U&Yx(3m3UR{ck^i_)vl`(eo711rSCde( zfv;@%w6*Sl#U*QlZv%V=xySMiy&5(7y2MT?{Vho=iK($x61w_)Q48|+d(Dxm^m`o1 zyM25?T4!mdRrr0L<8uh~$H+?c4 zPm5HX*+kgeGUn{2RZRk4w^tIso2_LT--Ml-ho$kkO$Ykw`dN-O*}QxNzS$+;EEDvdQ+%ZG$m+G~F`gQyOjyMPdBQcwwXg*GSa&0KtE1xrvHSmhpx0CQH3m@TC>kP3So+<8woiKS(Bj3-upf13Ip6HC)WmJ5K9|P@|Oy}G}a{lklrL{Ikhz|*|wA%Iv{&~Td=GzRx|4#5tq;p4Z z(qQ90R7LST!pj;@p-e1owJMQ%j1Y%V5)(@^O^VkFaTFZj5K9Yfn@IhM5W^L%iN%d1 zDSq%&e2=&~DHkOSH${ Hy_Ww4QRNBa diff --git a/tapit-build/static/main.js b/tapit-build/static/main.js index 7233b42..e4abb89 100644 --- a/tapit-build/static/main.js +++ b/tapit-build/static/main.js @@ -1,2 +1,2 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{"+M5x":function(t,n){t.exports=".no-space-break {\n white-space:nowrap;\n }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGhvbmVib29rLW5ldy9waG9uZWJvb2stbmV3LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxrQkFBa0I7RUFDcEIiLCJmaWxlIjoic3JjL2FwcC9waG9uZWJvb2stbmV3L3Bob25lYm9vay1uZXcuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5uby1zcGFjZS1icmVhayB7XG4gICAgd2hpdGUtc3BhY2U6bm93cmFwO1xuICB9XG4iXX0= */"},"+nPA":function(t,n){t.exports="\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3JlZ2lzdGVyL3JlZ2lzdGVyLmNvbXBvbmVudC5jc3MifQ== */"},"/+rS":function(t,n){t.exports='#new-text-preview {\n font-family: "Courier New"\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdGV4dC10ZW1wbGF0ZS1uZXcvdGV4dC10ZW1wbGF0ZS1uZXcuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC90ZXh0LXRlbXBsYXRlLW5ldy90ZXh0LXRlbXBsYXRlLW5ldy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI25ldy10ZXh0LXByZXZpZXcge1xuICAgIGZvbnQtZmFtaWx5OiBcIkNvdXJpZXIgTmV3XCJcbn1cbiJdfQ== */'},"/ZKd":function(t,n){t.exports="\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3RleHQtdGVtcGxhdGUvdGV4dC10ZW1wbGF0ZS5jb21wb25lbnQuY3NzIn0= */"},0:function(t,n,e){t.exports=e("zUnb")},"0KVQ":function(t,n){t.exports='
\n
\n
\n
\n

Login

\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n'},"2eZ0":function(t,n){t.exports='
\n
\n \n \n \n
\n
\n\n\n
\n
\n
\n
\n Campaign Name\n
\n \n
\n
\n
\n Campaign Size\n
\n \n
\n
\n
\n Campaign Status\n
\n \n
\n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
FromToCurrrent StatusTime Sent
{{ job.fromNum }}{{ job.toNum }}{{ job.currentStatus }}{{ job.timeSent | date:\'dd-MMM-yyyy\'}}
\n
\n
\n\n\n\n'},"3Swe":function(t,n){t.exports='
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n\n \n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

Press enter to insert additional record

\n \n \n
First NameLast NameAliasPhone Number
{{ phoneRecord.firstName }}{{ phoneRecord.lastName }}{{ phoneRecord.alias }}{{ phoneRecord.phoneNumber }}
\n
\n
\n
\n
\n \n \n
\n
\n
\n\n\n'},"6fdi":function(t,n){t.exports='
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \x3c!-- Add phonebook & template via list --\x3e \n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n \n
\n
\n \n \n \n
\n
\n
\n'},"8glu":function(t,n){t.exports="\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NhbXBhaWduL2NhbXBhaWduLmNvbXBvbmVudC5jc3MifQ== */"},"99W7":function(t,n){t.exports="
\n{{ notification.text }}\n
\n"},A3xY:function(t,n){t.exports="\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuY3NzIn0= */"},Aqmg:function(t,n){t.exports="\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21haW4vbWFpbi5jb21wb25lbnQuY3NzIn0= */"},CpHs:function(t,n){t.exports='
\n
\n \n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

No text template created yet. Create templates by clicking here

\n \n
NameCreate Date
{{ textTemplate.name }}{{ textTemplate.createDate | date:\'dd-MMM-yyyy\'}}
\n
\n
\n'},"GQ/r":function(t,n){t.exports="\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50LmNzcyJ9 */"},JtO7:function(t,n){t.exports='
\n
\n
\n
\n

Settings for {{ currUser.username }}

\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n'},LOYK:function(t,n){t.exports='
\n
\n \n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

No phonebooks created yet. Create phonebooks by clicking here

\n \n
NamePhonebook SizeCreate Date
{{ phonebook.name }}{{ phonebook.size }}{{ phonebook.createDate | date:\'dd-MMM-yyyy\'}}
\n
\n
\n'},MjFU:function(t,n){t.exports="\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NhbXBhaWduLW5ldy9jYW1wYWlnbi1uZXcuY29tcG9uZW50LmNzcyJ9 */"},Q1uh:function(t,n){t.exports=".campaign-details:-moz-read-only {\n background-color: white;\n}\n.campaign-details:read-only {\n background-color: white;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY2FtcGFpZ24tdmlldy9jYW1wYWlnbi12aWV3LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSx1QkFBdUI7QUFDM0I7QUFGQTtJQUNJLHVCQUF1QjtBQUMzQiIsImZpbGUiOiJzcmMvYXBwL2NhbXBhaWduLXZpZXcvY2FtcGFpZ24tdmlldy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNhbXBhaWduLWRldGFpbHM6cmVhZC1vbmx5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiJdfQ== */"},XbfJ:function(t,n){t.exports='
\n
\n \n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

No campaigns created yet. Create compaigns by clicking here

\n \n
NameStatusTarget SizeCreate Date
{{ campaign.name }}{{ campaign.currentStatus }}{{ campaign.size }}{{ campaign.createDate | date:\'dd-MMM-yyyy\'}}
\n
\n
\n'},ZgUC:function(t,n){t.exports='
\n
\n
\n
\n Twilio Settings\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n'},ZlTE:function(t,n){t.exports='
\n
\n
\n
\n

Login

\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n'},crnd:function(t,n){function e(t){return Promise.resolve().then(function(){var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n})}e.keys=function(){return[]},e.resolve=e,t.exports=e,e.id="crnd"},fMGI:function(t,n){t.exports="\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Byb2ZpbGUvcHJvZmlsZS5jb21wb25lbnQuY3NzIn0= */"},"gO/L":function(t,n){t.exports="\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Byb3ZpZGVyL3Byb3ZpZGVyLmNvbXBvbmVudC5jc3MifQ== */"},kt9D:function(t,n){t.exports='
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
    \n
  • {{ \'{\' }}firstName{{ \'}\' }}
  • \n
  • {{ \'{\' }}lastName{{ \'}\' }}
  • \n
  • {{ \'{\' }}alias{{ \'}\' }}
  • \n
  • {{ \'{\' }}phoneNumber{{ \'}\' }}
  • \n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n\n\n'},lsP6:function(t,n){t.exports="

\n main works!\n

\n"},n7sk:function(t,n){t.exports="\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2xvZ2luL2xvZ2luLmNvbXBvbmVudC5jc3MifQ== */"},"nH/3":function(t,n){t.exports='\n\n
\n \n
\n\n\n
\n'},uZxZ:function(t,n){t.exports="\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Bob25lYm9vay9waG9uZWJvb2suY29tcG9uZW50LmNzcyJ9 */"},zUnb:function(t,n,e){"use strict";e.r(n);var i=e("CcnG"),o=e("ToYH"),a=e("mrSG"),r=e("ZYjt"),s=e("t/Na"),l=e("gIcY"),c=e("ZYCi"),p=function(){function t(){}return t.prototype.ngOnInit=function(){},t=a.b([Object(i.n)({selector:"app-main",template:e("lsP6"),styles:[e("Aqmg")]}),a.d("design:paramtypes",[])],t)}(),d=function(){return function(){}}(),u=function(){function t(){this.notifications=[],this.currentCount=0}return t.prototype.addNotification=function(t,n){var e=this,i=new d;i.id=this.currentCount,this.currentCount++,i.resultType=t,i.text=n,this.notifications.push(i),setTimeout(function(){return e.closeNotification(i)},3e3)},t.prototype.closeNotification=function(t){for(var n=0;n\n
\n
\n
\n

Login

\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n'},"2eZ0":function(t,e){t.exports='
\n
\n \n \n \n
\n
\n\n\n
\n
\n
\n
\n Campaign Name\n
\n \n
\n
\n
\n Campaign Size\n
\n \n
\n
\n
\n Campaign Status\n
\n \n
\n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
FromToCurrrent StatusTime Sent
{{ job.fromNum }}{{ job.toNum }}{{ job.currentStatus }}{{ job.timeSent | date:\'dd-MMM-yyyy\'}}
\n
\n
\n\n\n\n'},"3Swe":function(t,e){t.exports='
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n\n \n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

Press enter to insert additional record

\n \n \n
First NameLast NameAliasPhone Number
{{ phoneRecord.firstName }}{{ phoneRecord.lastName }}{{ phoneRecord.alias }}{{ phoneRecord.phoneNumber }}
\n
\n
\n
\n
\n \n \n
\n
\n
\n\n\n'},"6fdi":function(t,e){t.exports='
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \x3c!-- Add phonebook & template via list --\x3e \n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n'},"8glu":function(t,e){t.exports="\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NhbXBhaWduL2NhbXBhaWduLmNvbXBvbmVudC5jc3MifQ== */"},"99W7":function(t,e){t.exports="
\n{{ notification.text }}\n
\n"},A3xY:function(t,e){t.exports="\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuY3NzIn0= */"},Aqmg:function(t,e){t.exports="\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21haW4vbWFpbi5jb21wb25lbnQuY3NzIn0= */"},CpHs:function(t,e){t.exports='
\n
\n \n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

No text template created yet. Create templates by clicking here

\n \n
NameCreate Date
{{ textTemplate.name }}{{ textTemplate.createDate | date:\'dd-MMM-yyyy\'}}
\n
\n
\n'},"GQ/r":function(t,e){t.exports="\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50LmNzcyJ9 */"},JtO7:function(t,e){t.exports='
\n
\n
\n
\n

Settings for {{ currUser.username }}

\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n'},LOYK:function(t,e){t.exports='
\n
\n \n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

No phonebooks created yet. Create phonebooks by clicking here

\n \n
NamePhonebook SizeCreate Date
{{ phonebook.name }}{{ phonebook.size }}{{ phonebook.createDate | date:\'dd-MMM-yyyy\'}}
\n
\n
\n'},MjFU:function(t,e){t.exports="\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NhbXBhaWduLW5ldy9jYW1wYWlnbi1uZXcuY29tcG9uZW50LmNzcyJ9 */"},Q1uh:function(t,e){t.exports=".campaign-details:-moz-read-only {\n background-color: white;\n}\n.campaign-details:read-only {\n background-color: white;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY2FtcGFpZ24tdmlldy9jYW1wYWlnbi12aWV3LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSx1QkFBdUI7QUFDM0I7QUFGQTtJQUNJLHVCQUF1QjtBQUMzQiIsImZpbGUiOiJzcmMvYXBwL2NhbXBhaWduLXZpZXcvY2FtcGFpZ24tdmlldy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNhbXBhaWduLWRldGFpbHM6cmVhZC1vbmx5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiJdfQ== */"},XbfJ:function(t,e){t.exports='
\n
\n \n
\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

No campaigns created yet. Create compaigns by clicking here

\n \n
NameStatusTarget SizeCreate Date
{{ campaign.name }}{{ campaign.currentStatus }}{{ campaign.size }}{{ campaign.createDate | date:\'dd-MMM-yyyy\'}}
\n
\n
\n'},ZgUC:function(t,e){t.exports='
\n
\n
\n
\n Twilio Settings\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n'},ZlTE:function(t,e){t.exports='
\n
\n
\n
\n

Login

\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
\n'},crnd:function(t,e){function n(t){return Promise.resolve().then(function(){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e})}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id="crnd"},fMGI:function(t,e){t.exports="\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Byb2ZpbGUvcHJvZmlsZS5jb21wb25lbnQuY3NzIn0= */"},"gO/L":function(t,e){t.exports="\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Byb3ZpZGVyL3Byb3ZpZGVyLmNvbXBvbmVudC5jc3MifQ== */"},kt9D:function(t,e){t.exports='
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
    \n
  • {{ \'{\' }}firstName{{ \'}\' }}
  • \n
  • {{ \'{\' }}lastName{{ \'}\' }}
  • \n
  • {{ \'{\' }}alias{{ \'}\' }}
  • \n
  • {{ \'{\' }}phoneNumber{{ \'}\' }}
  • \n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n\n\n'},lsP6:function(t,e){t.exports="

\n main works!\n

\n"},n7sk:function(t,e){t.exports="\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2xvZ2luL2xvZ2luLmNvbXBvbmVudC5jc3MifQ== */"},"nH/3":function(t,e){t.exports='\n\n
\n \n
\n\n\n
\n'},uZxZ:function(t,e){t.exports="\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Bob25lYm9vay9waG9uZWJvb2suY29tcG9uZW50LmNzcyJ9 */"},zUnb:function(t,e,n){"use strict";n.r(e);var i=n("CcnG"),o=n("ToYH"),a=n("mrSG"),r=n("ZYjt"),s=n("t/Na"),l=n("gIcY"),c=n("ZYCi"),p=function(){function t(){}return t.prototype.ngOnInit=function(){},t=a.b([Object(i.n)({selector:"app-main",template:n("lsP6"),styles:[n("Aqmg")]}),a.d("design:paramtypes",[])],t)}(),d=function(){return function(){}}(),u=function(){function t(){this.notifications=[],this.currentCount=0}return t.prototype.addNotification=function(t,e){var n=this,i=new d;i.id=this.currentCount,this.currentCount++,i.resultType=t,i.text=e,this.notifications.push(i),setTimeout(function(){return n.closeNotification(i)},3e3)},t.prototype.closeNotification=function(t){for(var e=0;e\\n
\\n
\\n
\\n

Login

\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\"","module.exports = \"
\\n
\\n \\n \\n \\n
\\n
\\n\\n\\n
\\n
\\n
\\n
\\n Campaign Name\\n
\\n \\n
\\n
\\n
\\n Campaign Size\\n
\\n \\n
\\n
\\n
\\n Campaign Status\\n
\\n \\n
\\n
\\n
\\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
FromToCurrrent StatusTime Sent
{{ job.fromNum }}{{ job.toNum }}{{ job.currentStatus }}{{ job.timeSent | date:'dd-MMM-yyyy'}}
\\n
\\n
\\n\\n\\n
\\n
\\n
\\n
\\n
{{ currCampaign.name }}
\\n \\n
\\n
\\n

Are you sure you want to delete the campaign?

\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\"","module.exports = \"
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n\\n \\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n

Press enter to insert additional record

\\n \\n \\n
First NameLast NameAliasPhone Number
{{ phoneRecord.firstName }}{{ phoneRecord.lastName }}{{ phoneRecord.alias }}{{ phoneRecord.phoneNumber }}
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
{{ newPhonebook.name }}
\\n \\n
\\n
\\n

Are you sure you want to delete the phonebook?

\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\"","module.exports = \"
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NhbXBhaWduL2NhbXBhaWduLmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"
\\n{{ notification.text }}\\n
\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21haW4vbWFpbi5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"
\\n
\\n \\n
\\n
\\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n

No text template created yet. Create templates by clicking here

\\n \\n
NameCreate Date
{{ textTemplate.name }}{{ textTemplate.createDate | date:'dd-MMM-yyyy'}}
\\n
\\n
\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50LmNzcyJ9 */\"","module.exports = \"
\\n
\\n
\\n
\\n

Settings for {{ currUser.username }}

\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\"","module.exports = \"
\\n
\\n \\n
\\n
\\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n

No phonebooks created yet. Create phonebooks by clicking here

\\n \\n
NamePhonebook SizeCreate Date
{{ phonebook.name }}{{ phonebook.size }}{{ phonebook.createDate | date:'dd-MMM-yyyy'}}
\\n
\\n
\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NhbXBhaWduLW5ldy9jYW1wYWlnbi1uZXcuY29tcG9uZW50LmNzcyJ9 */\"","module.exports = \".campaign-details:-moz-read-only {\\n background-color: white;\\n}\\n.campaign-details:read-only {\\n background-color: white;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY2FtcGFpZ24tdmlldy9jYW1wYWlnbi12aWV3LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSx1QkFBdUI7QUFDM0I7QUFGQTtJQUNJLHVCQUF1QjtBQUMzQiIsImZpbGUiOiJzcmMvYXBwL2NhbXBhaWduLXZpZXcvY2FtcGFpZ24tdmlldy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNhbXBhaWduLWRldGFpbHM6cmVhZC1vbmx5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiJdfQ== */\"","module.exports = \"
\\n
\\n \\n
\\n
\\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n

No campaigns created yet. Create compaigns by clicking here

\\n \\n
NameStatusTarget SizeCreate Date
{{ campaign.name }}{{ campaign.currentStatus }}{{ campaign.size }}{{ campaign.createDate | date:'dd-MMM-yyyy'}}
\\n
\\n
\\n\"","module.exports = \"
\\n
\\n
\\n
\\n Twilio Settings\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\"","module.exports = \"
\\n
\\n
\\n
\\n

Login

\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\"","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"crnd\";","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Byb2ZpbGUvcHJvZmlsZS5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Byb3ZpZGVyL3Byb3ZpZGVyLmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
    \\n
  • {{ '{' }}firstName{{ '}' }}
  • \\n
  • {{ '{' }}lastName{{ '}' }}
  • \\n
  • {{ '{' }}alias{{ '}' }}
  • \\n
  • {{ '{' }}phoneNumber{{ '}' }}
  • \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
{{ newTextTemplate.name }}
\\n \\n
\\n
\\n

Are you sure you want to delete the text template?

\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\"","module.exports = \"

\\n main works!\\n

\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2xvZ2luL2xvZ2luLmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"\\n\\n
\\n \\n
\\n\\n\\n
\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Bob25lYm9vay9waG9uZWJvb2suY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-main',\n templateUrl: './main.component.html',\n styleUrls: ['./main.component.css']\n})\nexport class MainComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Injectable } from '@angular/core';\n\nexport class Notification {\n id: number;\n resultType: string; // enum success or failure or info\n text: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n notifications: Notification[] = [];\n currentCount = 0;\n\n addNotification(resultType, text) {\n const newNotification = new Notification();\n newNotification.id = this.currentCount;\n this.currentCount++;\n newNotification.resultType = resultType;\n newNotification.text = text;\n\n this.notifications.push(newNotification);\n setTimeout(() => this.closeNotification(newNotification), 3000);\n }\n\n closeNotification(notify: Notification) {\n for (let i = 0; i < this.notifications.length; i++) {\n if (this.notifications[i].id === notify.id) {\n this.notifications.splice(i, 1);\n break;\n }\n }\n }\n\n constructor() {\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { NotificationService } from './notification.service';\nimport { Observable, of } from 'rxjs';\n\nexport class User {\n username: string;\n password: string;\n name: string;\n email: string;\n secretCode: string;\n}\n\nexport class UserNotification {\n resultType: string;\n text: string;\n payload: User;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n currUser = new User();\n loggedin = false;\n loginUrl = 'api/login';\n logoutUrl = 'api/logout';\n registerUrl = 'api/register';\n myselfUrl = 'api/myself';\n\n httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }),\n };\n\n login(username: string, password: string) {\n this.currUser.username = username;\n this.currUser.password = password;\n this.http.post(this.loginUrl, this.currUser, this.httpOptions).subscribe(usermessage => {\n if (usermessage.payload !== null) {\n this.loggedin = true;\n\n // update user\n this.currUser.username = usermessage.payload.username;\n this.currUser.email = usermessage.payload.email;\n this.currUser.name = usermessage.payload.name;\n\n this.notificationService.addNotification(usermessage.resultType, usermessage.text);\n this.router.navigate(['/campaign']);\n } else {\n this.notificationService.addNotification(usermessage.resultType, usermessage.text);\n }\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in logging in');\n });\n this.currUser.password = '';\n }\n\n register(username: string, password: string, email: string, name: string, secretCode: string) {\n this.currUser.username = username;\n this.currUser.password = password;\n this.currUser.email = email;\n this.currUser.name = name;\n this.currUser.secretCode = secretCode;\n\n this.http.post(this.registerUrl, this.currUser, this.httpOptions).subscribe(usermessage => {\n if (usermessage.payload !== null) {\n this.loggedin = true;\n this.notificationService.addNotification(usermessage.resultType, usermessage.text);\n this.router.navigate(['/campaign']);\n\n // update user\n this.currUser.username = usermessage.payload.username;\n this.currUser.email = usermessage.payload.email;\n this.currUser.name = usermessage.payload.name;\n } else {\n this.notificationService.addNotification(usermessage.resultType, usermessage.text);\n }\n });\n\n this.currUser.secretCode = '';\n }\n\n logout() {\n this.http.post(this.logoutUrl, '', this.httpOptions).subscribe(usermessage => {\n this.notificationService.addNotification(usermessage.resultType, usermessage.text);\n this.loggedin = false;\n this.currUser = new User();\n this.router.navigate(['/']);\n });\n }\n\n getUser(): User {\n this.http.get(this.myselfUrl, this.httpOptions).subscribe(thisUser => {\n this.currUser = thisUser;\n if (this.currUser.username !== '') {\n this.loggedin = true;\n } else {\n this.router.navigate(['/']);\n }\n // separate one to redirect main to campaign dashboard\n if (this.router.url === '/' || this.router.url === '') {\n this.router.navigate(['/campaign']);\n }\n },\n err => {\n this.router.navigate(['/']);\n });\n return this.currUser;\n }\n\n getUserObs(): Observable {\n return this.http.get(this.myselfUrl, this.httpOptions);\n }\n\n updateUser(user: User) {\n this.currUser = user;\n this.http.put(this.myselfUrl, this.currUser, this.httpOptions).subscribe(usermessage => {\n this.notificationService.addNotification(usermessage.resultType, usermessage.text);\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in updating profile');\n });\n this.currUser.password = '';\n }\n\n constructor(private http: HttpClient, private router: Router, private notificationService: NotificationService) { }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthService } from '../auth.service';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.css']\n})\nexport class LoginComponent implements OnInit {\n\n username: string;\n password: string;\n\n login() {\n this.authService.login(this.username, this.password);\n }\n\n routeRegister() {\n this.router.navigate(['/register']);\n }\n constructor(private authService: AuthService, private router: Router) { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthService } from '../auth.service';\n\n@Component({\n selector: 'app-register',\n templateUrl: './register.component.html',\n styleUrls: ['./register.component.css']\n})\nexport class RegisterComponent implements OnInit {\n username = '';\n password = '';\n email = '';\n name = '';\n secretCode = '';\n\n register() {\n this.authService.register(this.username, this.password, this.email, this.name, this.secretCode);\n }\n constructor(private authService: AuthService) { }\n\n ngOnInit() {\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { NotificationService } from './notification.service';\n\nexport class Campaign {\n id: number;\n name: string;\n fromNumber: string;\n size: number;\n currentStatus: string;\n createDate: Date;\n phonebookId: number;\n textTemplateId: number;\n webTemplateId: number;\n providerTag: string;\n jobs: Job[];\n}\n\nexport class Job {\n id: number;\n currentStatus: string;\n timeSent: Date;\n fromNum: string;\n toNum: string;\n}\n\nexport class CampaignNotification {\n resultType: string;\n text: string;\n payload: Campaign;\n}\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class CampaignService {\n\n campaigns: Campaign[] = [];\n\n campaignUrl = '/api/campaign';\n\n httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }),\n };\n\n getCampaigns() {\n this.http.get(this.campaignUrl).subscribe(campaigns => {\n if (campaigns === null) {\n this.campaigns = [];\n } else {\n this.campaigns = campaigns;\n }\n });\n }\n\n getCampaignObs(id: number): Observable {\n return this.http.get(this.campaignUrl + '/' + id.toString());\n }\n\n addCampaign(newCampaign: Campaign) {\n this.http.post(this.campaignUrl, newCampaign, this.httpOptions).subscribe(campaignNotification => {\n this.notificationService.addNotification(campaignNotification.resultType, campaignNotification.text);\n this.campaigns.push(campaignNotification.payload);\n if (campaignNotification.payload !== null) {\n this.router.navigate(['/campaign']);\n }\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in creating template');\n });\n }\n\n addCampaignRun(newCampaign: Campaign) {\n this.http.post(this.campaignUrl, newCampaign, this.httpOptions).subscribe(campaignNotification => {\n this.notificationService.addNotification(campaignNotification.resultType, campaignNotification.text);\n this.campaigns.push(campaignNotification.payload);\n if (campaignNotification.payload !== null) {\n this.startCampaign(campaignNotification.payload).subscribe();\n this.router.navigate(['/campaign']);\n }\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in creating template');\n });\n }\n\n deleteCampaign(campaign: Campaign) {\n this.http.delete(this.campaignUrl + '/' + campaign.id.toString(), this.httpOptions)\n .subscribe(campaignNotification => {\n this.notificationService.addNotification(campaignNotification.resultType, campaignNotification.text);\n this.router.navigate(['/campaign']);\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in deleting campaign');\n });\n }\n\n startCampaign(campaign: Campaign) {\n return this.http.get(this.campaignUrl + '/' + campaign.id.toString() + '/' + 'start');\n }\n\n pauseCampaign(campaign: Campaign) {\n return this.http.get(this.campaignUrl + '/' + campaign.id.toString() + '/' + 'pause');\n }\n\n constructor(private http: HttpClient, private router: Router, private notificationService: NotificationService) {\n this.campaigns = [];\n this.getCampaigns();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\nimport { CampaignService } from '../campaign.service';\n\n@Component({\n selector: 'app-campaign',\n templateUrl: './campaign.component.html',\n styleUrls: ['./campaign.component.css']\n})\nexport class CampaignComponent implements OnInit {\n\n constructor(private campaignService: CampaignService, private router: Router) { }\n\n ngOnInit() {\n this.campaignService.getCampaigns();\n const intervalId = setInterval(() => {\n this.campaignService.getCampaigns();\n if (!this.router.url.includes('/campaign')) {\n clearInterval(intervalId);\n }\n }, 2000);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { NotificationService } from './notification.service';\nimport { Observable, of } from 'rxjs';\n\nexport class TwilioProvider {\n accountSID: string;\n authToken: string;\n}\n\nexport class TwilioProviderNotification {\n resultType: string;\n text: string;\n payload: TwilioProvider;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProviderService {\n\n twilioProviderSettings: TwilioProvider = new TwilioProvider();\n twilioUrl = '/api/provider/twilio';\n\n httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }),\n };\n\n providerEnums = [\n {name: 'Twilio', tag: 'twilio'},\n ];\n\n getTwilioProvider() {\n this.http.get(this.twilioUrl, this.httpOptions).subscribe(thisTwilio => {\n this.twilioProviderSettings = thisTwilio;\n });\n }\n\n getTwilioProviderObs(): Observable {\n return this.http.get(this.twilioUrl, this.httpOptions);\n }\n\n updateTwilioProvider(tProvider: TwilioProvider) {\n this.http.post(this.twilioUrl, tProvider, this.httpOptions).subscribe(usermessage => {\n this.notificationService.addNotification(usermessage.resultType, usermessage.text);\n this.twilioProviderSettings = usermessage.payload;\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in updating Twilio provider');\n });\n }\n\n constructor(private http: HttpClient, private notificationService: NotificationService) {\n this.getTwilioProvider();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { NotificationService } from './notification.service';\n\nexport class Phonebook {\n id: number;\n name: string;\n size: number;\n createDate: Date;\n records: PhoneRecord[];\n}\n\nexport class PhoneRecord {\n id: number;\n firstName: string;\n lastName: string;\n alias: string;\n phoneNumber: string;\n}\n\nexport class PhonebookNotification {\n resultType: string;\n text: string;\n payload: Phonebook;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PhonebookService {\n\n phonebooks: Phonebook[] = [];\n\n phonebookUrl = '/api/phonebook';\n phonebookImportUrl = '/api/import-phonebook';\n\n httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }),\n };\n\n getPhonebooks() {\n this.http.get(this.phonebookUrl).subscribe(phonebooks => {\n if (phonebooks === null) {\n this.phonebooks = [];\n } else {\n this.phonebooks = phonebooks;\n }\n });\n }\n\n getPhonebookObs(id: number): Observable {\n return this.http.get(this.phonebookUrl + '/' + id.toString());\n }\n\n addPhonebook(phonebook: Phonebook) {\n this.http.post(this.phonebookUrl, phonebook, this.httpOptions).subscribe(pbNotification => {\n this.notificationService.addNotification(pbNotification.resultType, pbNotification.text);\n this.phonebooks.push(pbNotification.payload);\n if (pbNotification.payload !== null) {\n this.router.navigate(['/phonebook']);\n }\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in creating phonebook');\n });\n }\n\n editPhonebook(phonebook: Phonebook) {\n this.http.put(this.phonebookUrl + '/' + phonebook.id.toString(), phonebook, this.httpOptions)\n .subscribe(pbNotification => {\n this.notificationService.addNotification(pbNotification.resultType, pbNotification.text);\n if (pbNotification.payload !== null) {\n this.router.navigate(['/phonebook']);\n }\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in editing phonebook');\n });\n }\n\n deletePhonebook(phonebook: Phonebook) {\n this.http.delete(this.phonebookUrl + '/' + phonebook.id.toString(), this.httpOptions)\n .subscribe(pbNotification => {\n this.notificationService.addNotification(pbNotification.resultType, pbNotification.text);\n this.router.navigate(['/phonebook']);\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in deleting phonebook');\n });\n }\n\n uploadPhonebook(file: File): Observable {\n const formData = new FormData();\n formData.append('phonebookFile', file);\n return this.http.post(this.phonebookImportUrl, formData);\n }\n\n constructor(private http: HttpClient, private router: Router, private notificationService: NotificationService) {\n this.getPhonebooks();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { NotificationService } from './notification.service';\n\nexport class TextTemplate {\n id: number;\n name: string;\n templateStr: string;\n createDate: Date;\n}\n\nexport class TextTemplateNotification {\n resultType: string;\n text: string;\n payload: TextTemplate;\n}\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class TextTemplateService {\n\n textTemplates: TextTemplate[] = [];\n\n templateUrl = '/api/text-template';\n\n httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }),\n };\n\n getTextTemplates() {\n this.http.get(this.templateUrl).subscribe(templates => {\n if (templates === null) {\n this.textTemplates = [];\n } else {\n this.textTemplates = templates;\n }\n });\n }\n\n getTextTemplateObs(id: number) {\n return this.http.get(this.templateUrl + '/' + id.toString());\n }\n\n addTextTemplate(newTextTemplate: TextTemplate) {\n this.http.post(this.templateUrl, newTextTemplate, this.httpOptions).subscribe(templateNotification => {\n this.notificationService.addNotification(templateNotification.resultType, templateNotification.text);\n this.textTemplates.push(templateNotification.payload);\n if (templateNotification.payload !== null) {\n this.router.navigate(['/text-template']);\n }\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in creating template');\n });\n }\n\n deleteTextTemplate(textTemplate: TextTemplate) {\n this.http.delete(this.templateUrl + '/' + textTemplate.id.toString(), this.httpOptions)\n .subscribe(templateNotification => {\n this.notificationService.addNotification(templateNotification.resultType, templateNotification.text);\n this.router.navigate(['/text-template']);\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in deleting text template');\n });\n }\n\n editTextTemplate(textTemplate: TextTemplate) {\n this.http.put(this.templateUrl + '/' + textTemplate.id.toString(), textTemplate, this.httpOptions)\n .subscribe(templateNotification => {\n this.notificationService.addNotification(templateNotification.resultType, templateNotification.text);\n if (templateNotification.payload !== null) {\n this.router.navigate(['/text-template']);\n }\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in editing text template');\n });\n }\n\n constructor(private http: HttpClient, private router: Router, private notificationService: NotificationService) {\n this.getTextTemplates();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { CampaignService, Campaign } from '../campaign.service';\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\nimport { ProviderService } from '../provider.service';\nimport { PhonebookService } from '../phonebook.service';\nimport { TextTemplateService } from '../text-template.service';\n\n@Component({\n selector: 'app-campaign-new',\n templateUrl: './campaign-new.component.html',\n styleUrls: ['./campaign-new.component.css']\n})\nexport class CampaignNewComponent implements OnInit {\n\n constructor(\n private campaignService: CampaignService,\n private router: Router,\n private providerService: ProviderService,\n private phonebookService: PhonebookService,\n private textTemplateService: TextTemplateService) { }\n\n newCampaign: Campaign = new Campaign();\n\n submitNewCampaign() {\n this.campaignService.addCampaign(this.newCampaign);\n }\n\n submitNewCampaignRun() {\n this.campaignService.addCampaignRun(this.newCampaign);\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { CampaignService, Campaign, Job, CampaignNotification } from '../campaign.service';\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\nimport { NotificationService } from '../notification.service';\n\n@Component({\n selector: 'app-campaign-view',\n templateUrl: './campaign-view.component.html',\n styleUrls: ['./campaign-view.component.css']\n})\nexport class CampaignViewComponent implements OnInit {\n\n currCampaign: Campaign = new Campaign();\n\n id = 0;\n\n constructor(\n private campaignService: CampaignService,\n private router: Router,\n private route: ActivatedRoute,\n private notificationService: NotificationService\n ) { }\n\n startCampaign() {\n this.campaignService.startCampaign(this.currCampaign).subscribe(campaignNotification => {\n this.notificationService.addNotification(campaignNotification.resultType, campaignNotification.text);\n this.campaignService.getCampaignObs(this.id).subscribe(campaign => {\n this.currCampaign = campaign;\n });\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in starting campaign');\n });\n }\n\n pauseCampaign() {\n this.campaignService.pauseCampaign(this.currCampaign).subscribe(campaignNotification => {\n this.notificationService.addNotification(campaignNotification.resultType, campaignNotification.text);\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in pausing campaign');\n });\n }\n\n deleteCampaign() {\n this.campaignService.deleteCampaign(this.currCampaign);\n }\n\n updateThisCampaign() {\n this.campaignService.getCampaignObs(this.id).subscribe(campaign => {\n this.currCampaign = campaign;\n });\n }\n\n ngOnInit() {\n const idParam = 'id';\n this.route.params.subscribe( params => {\n this.id = parseInt(params[idParam], 10);\n });\n this.updateThisCampaign();\n const intervalId = setInterval(() => {\n this.updateThisCampaign();\n if (!this.router.url.includes('/campaign')) {\n clearInterval(intervalId);\n }\n }, 2000);\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { PhonebookService } from '../phonebook.service';\n\n@Component({\n selector: 'app-phonebook',\n templateUrl: './phonebook.component.html',\n styleUrls: ['./phonebook.component.css']\n})\nexport class PhonebookComponent implements OnInit {\n\n constructor(private phonebookService: PhonebookService) { }\n\n ngOnInit() {\n this.phonebookService.getPhonebooks();\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { PhonebookService, Phonebook, PhoneRecord } from '../phonebook.service';\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\n\n@Component({\n selector: 'app-phonebook-new',\n templateUrl: './phonebook-new.component.html',\n styleUrls: ['./phonebook-new.component.css']\n})\nexport class PhonebookNewComponent implements OnInit {\n\n constructor(private phonebookService: PhonebookService, private router: Router, private route: ActivatedRoute) { }\n\n id = 0;\n\n newPhonebook: Phonebook = new Phonebook();\n newPhoneRecords: PhoneRecord[] = [];\n additionalRecord: PhoneRecord = new PhoneRecord();\n\n insertAdditionalRecord() {\n this.newPhoneRecords = this.newPhoneRecords.concat(this.additionalRecord);\n this.additionalRecord = new PhoneRecord();\n this.additionalRecord.phoneNumber = '';\n }\n\n importPhoneRecords(files: FileList) {\n this.phonebookService.uploadPhonebook(files.item(0)).subscribe(data => {\n this.newPhoneRecords = this.newPhoneRecords.concat(data);\n });\n }\n\n submitNewPhonebook() {\n if (this.router.url === '/phonebook/new') {\n if (this.additionalRecord.phoneNumber !== '') {\n this.insertAdditionalRecord();\n }\n this.newPhonebook.records = this.newPhoneRecords;\n this.phonebookService.addPhonebook(this.newPhonebook);\n } else {\n this.editPhonebook();\n }\n }\n\n deletePhonebook() {\n this.phonebookService.deletePhonebook(this.newPhonebook);\n }\n\n editPhonebook() {\n this.newPhonebook.records = this.newPhoneRecords;\n this.phonebookService.editPhonebook(this.newPhonebook);\n }\n\n ngOnInit() {\n this.additionalRecord = new PhoneRecord();\n this.additionalRecord.phoneNumber = '';\n\n // if page is edit\n if (this.router.url !== '/phonebook/new') {\n const idParam = 'id';\n this.route.params.subscribe( params => {\n this.id = parseInt(params[idParam], 10);\n this.phonebookService.getPhonebookObs(this.id).subscribe(currPb => {\n this.newPhonebook = currPb;\n this.newPhoneRecords = this.newPhonebook.records;\n });\n });\n }\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { TextTemplateService } from '../text-template.service';\n\n@Component({\n selector: 'app-text-template',\n templateUrl: './text-template.component.html',\n styleUrls: ['./text-template.component.css']\n})\nexport class TextTemplateComponent implements OnInit {\n\n constructor(private textTemplateService: TextTemplateService) { }\n\n ngOnInit() {\n this.textTemplateService.getTextTemplates();\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { TextTemplate, TextTemplateService } from '../text-template.service';\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\n\n@Component({\n selector: 'app-text-template-new',\n templateUrl: './text-template-new.component.html',\n styleUrls: ['./text-template-new.component.css']\n})\nexport class TextTemplateNewComponent implements OnInit {\n\n newTextTemplate: TextTemplate = new TextTemplate();\n previewStr: string;\n id = 0;\n\n submitNewTextTemplate() {\n if (this.router.url === '/text-template/new') {\n this.textTemplateService.addTextTemplate(this.newTextTemplate);\n } else {\n this.editTextTemplate();\n }\n }\n\n updatePreview() {\n let tempStr = '';\n tempStr = this.newTextTemplate.templateStr;\n tempStr = tempStr.replace('{firstName}', 'John');\n tempStr = tempStr.replace('{lastName}', 'Smith');\n tempStr = tempStr.replace('{alias}', 'Johnny');\n tempStr = tempStr.replace('{phoneNumber}', '+6598765432');\n\n this.previewStr = tempStr;\n }\n\n deleteTextTemplate() {\n this.textTemplateService.deleteTextTemplate(this.newTextTemplate);\n }\n\n editTextTemplate() {\n this.textTemplateService.editTextTemplate(this.newTextTemplate);\n }\n\n constructor(private textTemplateService: TextTemplateService, private router: Router, private route: ActivatedRoute) { }\n\n ngOnInit() {\n // if page is edit\n if (this.router.url !== '/text-template/new') {\n const idParam = 'id';\n this.route.params.subscribe( params => {\n this.id = parseInt(params[idParam], 10);\n this.textTemplateService.getTextTemplateObs(this.id).subscribe(currTT => {\n this.newTextTemplate = currTT;\n });\n });\n }\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ProviderService, TwilioProvider } from '../provider.service';\n\n\n@Component({\n selector: 'app-provider',\n templateUrl: './provider.component.html',\n styleUrls: ['./provider.component.css']\n})\nexport class ProviderComponent implements OnInit {\n\n currTwilioProvider: TwilioProvider = new TwilioProvider();\n\n submitProviders() {\n this.providerService.updateTwilioProvider(this.currTwilioProvider);\n }\n\n constructor(private providerService: ProviderService) { }\n\n ngOnInit() {\n this.providerService.getTwilioProviderObs().subscribe(currTwilio => {\n this.currTwilioProvider = currTwilio;\n });\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { AuthService, User } from '../auth.service';\n\n@Component({\n selector: 'app-profile',\n templateUrl: './profile.component.html',\n styleUrls: ['./profile.component.css']\n})\nexport class ProfileComponent implements OnInit {\n\n constructor(private authService: AuthService) { }\n currUser: User;\n\n updateUser() {\n this.authService.updateUser(this.currUser);\n }\n\n ngOnInit() {\n this.authService.getUserObs().subscribe(user => {\n this.currUser = JSON.parse(JSON.stringify(user));\n });\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { MainComponent } from './main/main.component';\nimport { LoginComponent } from './login/login.component';\nimport { RegisterComponent } from './register/register.component';\nimport { CampaignComponent } from './campaign/campaign.component';\nimport { CampaignNewComponent } from './campaign-new/campaign-new.component';\nimport { CampaignViewComponent } from './campaign-view/campaign-view.component';\nimport { PhonebookComponent } from './phonebook/phonebook.component';\nimport { PhonebookNewComponent } from './phonebook-new/phonebook-new.component';\nimport { TextTemplateComponent } from './text-template/text-template.component';\nimport { TextTemplateNewComponent } from './text-template-new/text-template-new.component';\nimport { ProviderComponent } from './provider/provider.component';\nimport { ProfileComponent } from './profile/profile.component';\n\nconst routes: Routes = [\n { path: '', component: MainComponent },\n { path: 'login', component: LoginComponent },\n { path: 'register', component: RegisterComponent },\n { path: 'profile', component: ProfileComponent },\n { path: 'campaign', component: CampaignComponent },\n { path: 'campaign/new', component: CampaignNewComponent },\n { path: 'campaign/:id/view', component: CampaignViewComponent },\n { path: 'phonebook', component: PhonebookComponent },\n { path: 'phonebook/new', component: PhonebookNewComponent },\n { path: 'phonebook/:id/edit', component: PhonebookNewComponent },\n { path: 'text-template', component: TextTemplateComponent },\n { path: 'text-template/new', component: TextTemplateNewComponent },\n { path: 'text-template/:id/edit', component: TextTemplateNewComponent },\n { path: 'provider', component: ProviderComponent },\n ];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component } from '@angular/core';\nimport { RouterModule, Routes, Router } from '@angular/router';\nimport { AuthService } from './auth.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n title = 'tapit-frontend';\n navlinks = [\n {\n link: '/campaign',\n name: 'Campaigns',\n loginOnly: true,\n },\n {\n link: '/phonebook',\n name: 'Phonebook',\n loginOnly: true,\n },\n {\n link: '/text-template',\n name: 'Text Templates',\n loginOnly: true,\n },\n {\n link: '/web-template',\n name: 'Web Templates',\n loginOnly: true,\n },\n ];\n constructor( private router: Router, private authService: AuthService) {\n authService.getUser();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { NotificationService } from '../notification.service';\n\n@Component({\n selector: 'app-notification',\n templateUrl: './notification.component.html',\n styleUrls: ['./notification.component.css']\n})\nexport class NotificationComponent implements OnInit {\n\n constructor(private notificationService: NotificationService) { }\n\n ngOnInit() {\n }\n\n}\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { HttpClientModule } from '@angular/common/http';\nimport { FormsModule } from '@angular/forms';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { MainComponent } from './main/main.component';\nimport { CampaignComponent } from './campaign/campaign.component';\nimport { CampaignNewComponent } from './campaign-new/campaign-new.component';\nimport { NotificationComponent } from './notification/notification.component';\nimport { PhonebookComponent } from './phonebook/phonebook.component';\nimport { PhonebookNewComponent } from './phonebook-new/phonebook-new.component';\nimport { TextTemplateComponent } from './text-template/text-template.component';\nimport { TextTemplateNewComponent } from './text-template-new/text-template-new.component';\nimport { LoginComponent } from './login/login.component';\nimport { RegisterComponent } from './register/register.component';\nimport { ProviderComponent } from './provider/provider.component';\nimport { ProfileComponent } from './profile/profile.component';\nimport { CampaignViewComponent } from './campaign-view/campaign-view.component';\n\n@NgModule({\n declarations: [\n AppComponent,\n MainComponent,\n CampaignComponent,\n CampaignNewComponent,\n NotificationComponent,\n PhonebookComponent,\n PhonebookNewComponent,\n TextTemplateComponent,\n TextTemplateNewComponent,\n LoginComponent,\n RegisterComponent,\n ProviderComponent,\n ProfileComponent,\n CampaignViewComponent\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n FormsModule,\n HttpClientModule,\n ],\n providers: [],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./src/app/phonebook-new/phonebook-new.component.css","webpack:///./src/app/register/register.component.css","webpack:///./src/app/text-template-new/text-template-new.component.css","webpack:///./src/app/text-template/text-template.component.css","webpack:///./src/app/login/login.component.html","webpack:///./src/app/campaign-view/campaign-view.component.html","webpack:///./src/app/phonebook-new/phonebook-new.component.html","webpack:///./src/app/campaign-new/campaign-new.component.html","webpack:///./src/app/campaign/campaign.component.css","webpack:///./src/app/notification/notification.component.html","webpack:///./src/app/app.component.css","webpack:///./src/app/main/main.component.css","webpack:///./src/app/text-template/text-template.component.html","webpack:///./src/app/notification/notification.component.css","webpack:///./src/app/profile/profile.component.html","webpack:///./src/app/phonebook/phonebook.component.html","webpack:///./src/app/campaign-new/campaign-new.component.css","webpack:///./src/app/campaign-view/campaign-view.component.css","webpack:///./src/app/campaign/campaign.component.html","webpack:///./src/app/provider/provider.component.html","webpack:///./src/app/register/register.component.html","webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/profile/profile.component.css","webpack:///./src/app/provider/provider.component.css","webpack:///./src/app/text-template-new/text-template-new.component.html","webpack:///./src/app/main/main.component.html","webpack:///./src/app/login/login.component.css","webpack:///./src/app/app.component.html","webpack:///./src/app/phonebook/phonebook.component.css","webpack:///./src/app/main/main.component.ts","webpack:///./src/app/notification.service.ts","webpack:///./src/app/auth.service.ts","webpack:///./src/app/login/login.component.ts","webpack:///./src/app/register/register.component.ts","webpack:///./src/app/campaign.service.ts","webpack:///./src/app/campaign/campaign.component.ts","webpack:///./src/app/provider.service.ts","webpack:///./src/app/phonebook.service.ts","webpack:///./src/app/text-template.service.ts","webpack:///./src/app/campaign-new/campaign-new.component.ts","webpack:///./src/app/campaign-view/campaign-view.component.ts","webpack:///./src/app/phonebook/phonebook.component.ts","webpack:///./src/app/phonebook-new/phonebook-new.component.ts","webpack:///./src/app/text-template/text-template.component.ts","webpack:///./src/app/text-template-new/text-template-new.component.ts","webpack:///./src/app/provider/provider.component.ts","webpack:///./src/app/profile/profile.component.ts","webpack:///./src/app/app-routing.module.ts","webpack:///./src/app/app.component.ts","webpack:///./src/app/notification/notification.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/main.ts"],"names":["module","exports","webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","id","main_component_MainComponent","MainComponent","prototype","ngOnInit","tslib_es6","Object","core","selector","template","__webpack_require__","Notification","notification_service_NotificationService","NotificationService","this","notifications","currentCount","addNotification","resultType","text","_this","newNotification","push","setTimeout","closeNotification","notify","i","length","splice","providedIn","User","auth_service_AuthService","AuthService","http","router","notificationService","currUser","loggedin","loginUrl","logoutUrl","registerUrl","myselfUrl","httpOptions","headers","fesm5_http","Content-Type","login","username","password","post","subscribe","usermessage","payload","email","name","navigate","err","register","secretCode","logout","getUser","get","thisUser","url","getUserObs","updateUser","user","put","fesm5_router","login_component_LoginComponent","LoginComponent","authService","routeRegister","register_component_RegisterComponent","RegisterComponent","Campaign","campaign_service_CampaignService","CampaignService","campaigns","campaignUrl","getCampaigns","getCampaignObs","toString","addCampaign","newCampaign","campaignNotification","addCampaignRun","startCampaign","deleteCampaign","campaign","delete","pauseCampaign","campaign_component_CampaignComponent","CampaignComponent","campaignService","intervalId","setInterval","includes","clearInterval","TwilioProvider","provider_service_ProviderService","ProviderService","twilioProviderSettings","twilioUrl","providerEnums","tag","getTwilioProvider","thisTwilio","getTwilioProviderObs","updateTwilioProvider","tProvider","Phonebook","PhoneRecord","phonebook_service_PhonebookService","PhonebookService","phonebooks","phonebookUrl","phonebookImportUrl","getPhonebooks","getPhonebookObs","addPhonebook","phonebook","pbNotification","editPhonebook","deletePhonebook","uploadPhonebook","file","formData","FormData","append","TextTemplate","text_template_service_TextTemplateService","TextTemplateService","textTemplates","templateUrl","getTextTemplates","templates","getTextTemplateObs","addTextTemplate","newTextTemplate","templateNotification","deleteTextTemplate","textTemplate","editTextTemplate","campaign_new_component_CampaignNewComponent","CampaignNewComponent","providerService","phonebookService","textTemplateService","templateStr","previewStr","submitNewCampaign","submitNewCampaignRun","updatePreviews","textTemplateId","phonebookId","tempStr","replace","records","firstName","lastName","alias","phoneNumber","campaign_view_component_CampaignViewComponent","CampaignViewComponent","route","currCampaign","updateThisCampaign","params","parseInt","phonebook_component_PhonebookComponent","PhonebookComponent","phonebook_new_component_PhonebookNewComponent","PhonebookNewComponent","newPhonebook","newPhoneRecords","additionalRecord","insertAdditionalRecord","concat","importPhoneRecords","files","item","data","submitNewPhonebook","currPb","text_template_component_TextTemplateComponent","TextTemplateComponent","text_template_new_component_TextTemplateNewComponent","TextTemplateNewComponent","submitNewTextTemplate","updatePreview","currTT","provider_component_ProviderComponent","ProviderComponent","currTwilioProvider","submitProviders","currTwilio","profile_component_ProfileComponent","ProfileComponent","JSON","parse","stringify","routes","path","component","app_routing_module_AppRoutingModule","AppRoutingModule","imports","forRoot","app_component_AppComponent","AppComponent","title","navlinks","link","loginOnly","notification_component_NotificationComponent","NotificationComponent","app_module_AppModule","AppModule","declarations","platform_browser","fesm5_forms","providers","bootstrap","platform_browser_dynamic","bootstrapModule","catch","console","error"],"mappings":"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","file":"main.js","sourcesContent":["module.exports = \".no-space-break {\\n white-space:nowrap;\\n }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGhvbmVib29rLW5ldy9waG9uZWJvb2stbmV3LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxrQkFBa0I7RUFDcEIiLCJmaWxlIjoic3JjL2FwcC9waG9uZWJvb2stbmV3L3Bob25lYm9vay1uZXcuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5uby1zcGFjZS1icmVhayB7XG4gICAgd2hpdGUtc3BhY2U6bm93cmFwO1xuICB9XG4iXX0= */\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3JlZ2lzdGVyL3JlZ2lzdGVyLmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"#new-text-preview {\\n font-family: \\\"Courier New\\\"\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdGV4dC10ZW1wbGF0ZS1uZXcvdGV4dC10ZW1wbGF0ZS1uZXcuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC90ZXh0LXRlbXBsYXRlLW5ldy90ZXh0LXRlbXBsYXRlLW5ldy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI25ldy10ZXh0LXByZXZpZXcge1xuICAgIGZvbnQtZmFtaWx5OiBcIkNvdXJpZXIgTmV3XCJcbn1cbiJdfQ== */\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3RleHQtdGVtcGxhdGUvdGV4dC10ZW1wbGF0ZS5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"
\\n
\\n
\\n
\\n

Login

\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\"","module.exports = \"
\\n
\\n \\n \\n \\n
\\n
\\n\\n\\n
\\n
\\n
\\n
\\n Campaign Name\\n
\\n \\n
\\n
\\n
\\n Campaign Size\\n
\\n \\n
\\n
\\n
\\n Campaign Status\\n
\\n \\n
\\n
\\n
\\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
FromToCurrrent StatusTime Sent
{{ job.fromNum }}{{ job.toNum }}{{ job.currentStatus }}{{ job.timeSent | date:'dd-MMM-yyyy'}}
\\n
\\n
\\n\\n\\n
\\n
\\n
\\n
\\n
{{ currCampaign.name }}
\\n \\n
\\n
\\n

Are you sure you want to delete the campaign?

\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\"","module.exports = \"
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n\\n \\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n

Press enter to insert additional record

\\n \\n \\n
First NameLast NameAliasPhone Number
{{ phoneRecord.firstName }}{{ phoneRecord.lastName }}{{ phoneRecord.alias }}{{ phoneRecord.phoneNumber }}
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
{{ newPhonebook.name }}
\\n \\n
\\n
\\n

Are you sure you want to delete the phonebook?

\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\"","module.exports = \"
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NhbXBhaWduL2NhbXBhaWduLmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"
\\n{{ notification.text }}\\n
\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21haW4vbWFpbi5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"
\\n
\\n \\n
\\n
\\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n

No text template created yet. Create templates by clicking here

\\n \\n
NameCreate Date
{{ textTemplate.name }}{{ textTemplate.createDate | date:'dd-MMM-yyyy'}}
\\n
\\n
\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50LmNzcyJ9 */\"","module.exports = \"
\\n
\\n
\\n
\\n

Settings for {{ currUser.username }}

\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\"","module.exports = \"
\\n
\\n \\n
\\n
\\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n

No phonebooks created yet. Create phonebooks by clicking here

\\n \\n
NamePhonebook SizeCreate Date
{{ phonebook.name }}{{ phonebook.size }}{{ phonebook.createDate | date:'dd-MMM-yyyy'}}
\\n
\\n
\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NhbXBhaWduLW5ldy9jYW1wYWlnbi1uZXcuY29tcG9uZW50LmNzcyJ9 */\"","module.exports = \".campaign-details:-moz-read-only {\\n background-color: white;\\n}\\n.campaign-details:read-only {\\n background-color: white;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY2FtcGFpZ24tdmlldy9jYW1wYWlnbi12aWV3LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSx1QkFBdUI7QUFDM0I7QUFGQTtJQUNJLHVCQUF1QjtBQUMzQiIsImZpbGUiOiJzcmMvYXBwL2NhbXBhaWduLXZpZXcvY2FtcGFpZ24tdmlldy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNhbXBhaWduLWRldGFpbHM6cmVhZC1vbmx5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiJdfQ== */\"","module.exports = \"
\\n
\\n \\n
\\n
\\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n

No campaigns created yet. Create compaigns by clicking here

\\n \\n
NameStatusTarget SizeCreate Date
{{ campaign.name }}{{ campaign.currentStatus }}{{ campaign.size }}{{ campaign.createDate | date:'dd-MMM-yyyy'}}
\\n
\\n
\\n\"","module.exports = \"
\\n
\\n
\\n
\\n Twilio Settings\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\"","module.exports = \"
\\n
\\n
\\n
\\n

Login

\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\"","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"crnd\";","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Byb2ZpbGUvcHJvZmlsZS5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Byb3ZpZGVyL3Byb3ZpZGVyLmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
    \\n
  • {{ '{' }}firstName{{ '}' }}
  • \\n
  • {{ '{' }}lastName{{ '}' }}
  • \\n
  • {{ '{' }}alias{{ '}' }}
  • \\n
  • {{ '{' }}phoneNumber{{ '}' }}
  • \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
{{ newTextTemplate.name }}
\\n \\n
\\n
\\n

Are you sure you want to delete the text template?

\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n\"","module.exports = \"

\\n main works!\\n

\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2xvZ2luL2xvZ2luLmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"\\n\\n
\\n \\n
\\n\\n\\n
\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Bob25lYm9vay9waG9uZWJvb2suY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-main',\n templateUrl: './main.component.html',\n styleUrls: ['./main.component.css']\n})\nexport class MainComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Injectable } from '@angular/core';\n\nexport class Notification {\n id: number;\n resultType: string; // enum success or failure or info\n text: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n notifications: Notification[] = [];\n currentCount = 0;\n\n addNotification(resultType, text) {\n const newNotification = new Notification();\n newNotification.id = this.currentCount;\n this.currentCount++;\n newNotification.resultType = resultType;\n newNotification.text = text;\n\n this.notifications.push(newNotification);\n setTimeout(() => this.closeNotification(newNotification), 3000);\n }\n\n closeNotification(notify: Notification) {\n for (let i = 0; i < this.notifications.length; i++) {\n if (this.notifications[i].id === notify.id) {\n this.notifications.splice(i, 1);\n break;\n }\n }\n }\n\n constructor() {\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { NotificationService } from './notification.service';\nimport { Observable, of } from 'rxjs';\n\nexport class User {\n username: string;\n password: string;\n name: string;\n email: string;\n secretCode: string;\n}\n\nexport class UserNotification {\n resultType: string;\n text: string;\n payload: User;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n currUser = new User();\n loggedin = false;\n loginUrl = 'api/login';\n logoutUrl = 'api/logout';\n registerUrl = 'api/register';\n myselfUrl = 'api/myself';\n\n httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }),\n };\n\n login(username: string, password: string) {\n this.currUser.username = username;\n this.currUser.password = password;\n this.http.post(this.loginUrl, this.currUser, this.httpOptions).subscribe(usermessage => {\n if (usermessage.payload !== null) {\n this.loggedin = true;\n\n // update user\n this.currUser.username = usermessage.payload.username;\n this.currUser.email = usermessage.payload.email;\n this.currUser.name = usermessage.payload.name;\n\n this.notificationService.addNotification(usermessage.resultType, usermessage.text);\n this.router.navigate(['/campaign']);\n } else {\n this.notificationService.addNotification(usermessage.resultType, usermessage.text);\n }\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in logging in');\n });\n this.currUser.password = '';\n }\n\n register(username: string, password: string, email: string, name: string, secretCode: string) {\n this.currUser.username = username;\n this.currUser.password = password;\n this.currUser.email = email;\n this.currUser.name = name;\n this.currUser.secretCode = secretCode;\n\n this.http.post(this.registerUrl, this.currUser, this.httpOptions).subscribe(usermessage => {\n if (usermessage.payload !== null) {\n this.loggedin = true;\n this.notificationService.addNotification(usermessage.resultType, usermessage.text);\n this.router.navigate(['/campaign']);\n\n // update user\n this.currUser.username = usermessage.payload.username;\n this.currUser.email = usermessage.payload.email;\n this.currUser.name = usermessage.payload.name;\n } else {\n this.notificationService.addNotification(usermessage.resultType, usermessage.text);\n }\n });\n\n this.currUser.secretCode = '';\n }\n\n logout() {\n this.http.post(this.logoutUrl, '', this.httpOptions).subscribe(usermessage => {\n this.notificationService.addNotification(usermessage.resultType, usermessage.text);\n this.loggedin = false;\n this.currUser = new User();\n this.router.navigate(['/']);\n });\n }\n\n getUser(): User {\n this.http.get(this.myselfUrl, this.httpOptions).subscribe(thisUser => {\n this.currUser = thisUser;\n if (this.currUser.username !== '') {\n this.loggedin = true;\n } else {\n this.router.navigate(['/']);\n }\n // separate one to redirect main to campaign dashboard\n if (this.router.url === '/' || this.router.url === '') {\n this.router.navigate(['/campaign']);\n }\n },\n err => {\n this.router.navigate(['/']);\n });\n return this.currUser;\n }\n\n getUserObs(): Observable {\n return this.http.get(this.myselfUrl, this.httpOptions);\n }\n\n updateUser(user: User) {\n this.currUser = user;\n this.http.put(this.myselfUrl, this.currUser, this.httpOptions).subscribe(usermessage => {\n this.notificationService.addNotification(usermessage.resultType, usermessage.text);\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in updating profile');\n });\n this.currUser.password = '';\n }\n\n constructor(private http: HttpClient, private router: Router, private notificationService: NotificationService) { }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthService } from '../auth.service';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.css']\n})\nexport class LoginComponent implements OnInit {\n\n username: string;\n password: string;\n\n login() {\n this.authService.login(this.username, this.password);\n }\n\n routeRegister() {\n this.router.navigate(['/register']);\n }\n constructor(private authService: AuthService, private router: Router) { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthService } from '../auth.service';\n\n@Component({\n selector: 'app-register',\n templateUrl: './register.component.html',\n styleUrls: ['./register.component.css']\n})\nexport class RegisterComponent implements OnInit {\n username = '';\n password = '';\n email = '';\n name = '';\n secretCode = '';\n\n register() {\n this.authService.register(this.username, this.password, this.email, this.name, this.secretCode);\n }\n constructor(private authService: AuthService) { }\n\n ngOnInit() {\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { NotificationService } from './notification.service';\n\nexport class Campaign {\n id: number;\n name: string;\n fromNumber: string;\n size: number;\n currentStatus: string;\n createDate: Date;\n phonebookId: number;\n textTemplateId: number;\n webTemplateId: number;\n providerTag: string;\n jobs: Job[];\n}\n\nexport class Job {\n id: number;\n currentStatus: string;\n timeSent: Date;\n fromNum: string;\n toNum: string;\n}\n\nexport class CampaignNotification {\n resultType: string;\n text: string;\n payload: Campaign;\n}\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class CampaignService {\n\n campaigns: Campaign[] = [];\n\n campaignUrl = '/api/campaign';\n\n httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }),\n };\n\n getCampaigns() {\n this.http.get(this.campaignUrl).subscribe(campaigns => {\n if (campaigns === null) {\n this.campaigns = [];\n } else {\n this.campaigns = campaigns;\n }\n });\n }\n\n getCampaignObs(id: number): Observable {\n return this.http.get(this.campaignUrl + '/' + id.toString());\n }\n\n addCampaign(newCampaign: Campaign) {\n this.http.post(this.campaignUrl, newCampaign, this.httpOptions).subscribe(campaignNotification => {\n this.notificationService.addNotification(campaignNotification.resultType, campaignNotification.text);\n this.campaigns.push(campaignNotification.payload);\n if (campaignNotification.payload !== null) {\n this.router.navigate(['/campaign']);\n }\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in creating template');\n });\n }\n\n addCampaignRun(newCampaign: Campaign) {\n this.http.post(this.campaignUrl, newCampaign, this.httpOptions).subscribe(campaignNotification => {\n this.notificationService.addNotification(campaignNotification.resultType, campaignNotification.text);\n this.campaigns.push(campaignNotification.payload);\n if (campaignNotification.payload !== null) {\n this.startCampaign(campaignNotification.payload).subscribe();\n this.router.navigate(['/campaign']);\n }\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in creating template');\n });\n }\n\n deleteCampaign(campaign: Campaign) {\n this.http.delete(this.campaignUrl + '/' + campaign.id.toString(), this.httpOptions)\n .subscribe(campaignNotification => {\n this.notificationService.addNotification(campaignNotification.resultType, campaignNotification.text);\n this.router.navigate(['/campaign']);\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in deleting campaign');\n });\n }\n\n startCampaign(campaign: Campaign) {\n return this.http.get(this.campaignUrl + '/' + campaign.id.toString() + '/' + 'start');\n }\n\n pauseCampaign(campaign: Campaign) {\n return this.http.get(this.campaignUrl + '/' + campaign.id.toString() + '/' + 'pause');\n }\n\n constructor(private http: HttpClient, private router: Router, private notificationService: NotificationService) {\n this.campaigns = [];\n this.getCampaigns();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\nimport { CampaignService } from '../campaign.service';\n\n@Component({\n selector: 'app-campaign',\n templateUrl: './campaign.component.html',\n styleUrls: ['./campaign.component.css']\n})\nexport class CampaignComponent implements OnInit {\n\n constructor(private campaignService: CampaignService, private router: Router) { }\n\n ngOnInit() {\n this.campaignService.getCampaigns();\n const intervalId = setInterval(() => {\n this.campaignService.getCampaigns();\n if (!this.router.url.includes('/campaign')) {\n clearInterval(intervalId);\n }\n }, 2000);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { NotificationService } from './notification.service';\nimport { Observable, of } from 'rxjs';\n\nexport class TwilioProvider {\n accountSID: string;\n authToken: string;\n}\n\nexport class TwilioProviderNotification {\n resultType: string;\n text: string;\n payload: TwilioProvider;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProviderService {\n\n twilioProviderSettings: TwilioProvider = new TwilioProvider();\n twilioUrl = '/api/provider/twilio';\n\n httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }),\n };\n\n providerEnums = [\n {name: 'Twilio', tag: 'twilio'},\n ];\n\n getTwilioProvider() {\n this.http.get(this.twilioUrl, this.httpOptions).subscribe(thisTwilio => {\n this.twilioProviderSettings = thisTwilio;\n });\n }\n\n getTwilioProviderObs(): Observable {\n return this.http.get(this.twilioUrl, this.httpOptions);\n }\n\n updateTwilioProvider(tProvider: TwilioProvider) {\n this.http.post(this.twilioUrl, tProvider, this.httpOptions).subscribe(usermessage => {\n this.notificationService.addNotification(usermessage.resultType, usermessage.text);\n this.twilioProviderSettings = usermessage.payload;\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in updating Twilio provider');\n });\n }\n\n constructor(private http: HttpClient, private notificationService: NotificationService) {\n this.getTwilioProvider();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { NotificationService } from './notification.service';\n\nexport class Phonebook {\n id: number;\n name: string;\n size: number;\n createDate: Date;\n records: PhoneRecord[];\n}\n\nexport class PhoneRecord {\n id: number;\n firstName: string;\n lastName: string;\n alias: string;\n phoneNumber: string;\n}\n\nexport class PhonebookNotification {\n resultType: string;\n text: string;\n payload: Phonebook;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PhonebookService {\n\n phonebooks: Phonebook[] = [];\n\n phonebookUrl = '/api/phonebook';\n phonebookImportUrl = '/api/import-phonebook';\n\n httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }),\n };\n\n getPhonebooks() {\n this.http.get(this.phonebookUrl).subscribe(phonebooks => {\n if (phonebooks === null) {\n this.phonebooks = [];\n } else {\n this.phonebooks = phonebooks;\n }\n });\n }\n\n getPhonebookObs(id: number): Observable {\n return this.http.get(this.phonebookUrl + '/' + id.toString());\n }\n\n addPhonebook(phonebook: Phonebook) {\n this.http.post(this.phonebookUrl, phonebook, this.httpOptions).subscribe(pbNotification => {\n this.notificationService.addNotification(pbNotification.resultType, pbNotification.text);\n this.phonebooks.push(pbNotification.payload);\n if (pbNotification.payload !== null) {\n this.router.navigate(['/phonebook']);\n }\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in creating phonebook');\n });\n }\n\n editPhonebook(phonebook: Phonebook) {\n this.http.put(this.phonebookUrl + '/' + phonebook.id.toString(), phonebook, this.httpOptions)\n .subscribe(pbNotification => {\n this.notificationService.addNotification(pbNotification.resultType, pbNotification.text);\n if (pbNotification.payload !== null) {\n this.router.navigate(['/phonebook']);\n }\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in editing phonebook');\n });\n }\n\n deletePhonebook(phonebook: Phonebook) {\n this.http.delete(this.phonebookUrl + '/' + phonebook.id.toString(), this.httpOptions)\n .subscribe(pbNotification => {\n this.notificationService.addNotification(pbNotification.resultType, pbNotification.text);\n this.router.navigate(['/phonebook']);\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in deleting phonebook');\n });\n }\n\n uploadPhonebook(file: File): Observable {\n const formData = new FormData();\n formData.append('phonebookFile', file);\n return this.http.post(this.phonebookImportUrl, formData);\n }\n\n constructor(private http: HttpClient, private router: Router, private notificationService: NotificationService) {\n this.getPhonebooks();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { NotificationService } from './notification.service';\n\nexport class TextTemplate {\n id: number;\n name: string;\n templateStr: string;\n createDate: Date;\n}\n\nexport class TextTemplateNotification {\n resultType: string;\n text: string;\n payload: TextTemplate;\n}\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class TextTemplateService {\n\n textTemplates: TextTemplate[] = [];\n\n templateUrl = '/api/text-template';\n\n httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n }),\n };\n\n getTextTemplates() {\n this.http.get(this.templateUrl).subscribe(templates => {\n if (templates === null) {\n this.textTemplates = [];\n } else {\n this.textTemplates = templates;\n }\n });\n }\n\n getTextTemplateObs(id: number) {\n return this.http.get(this.templateUrl + '/' + id.toString());\n }\n\n addTextTemplate(newTextTemplate: TextTemplate) {\n this.http.post(this.templateUrl, newTextTemplate, this.httpOptions).subscribe(templateNotification => {\n this.notificationService.addNotification(templateNotification.resultType, templateNotification.text);\n this.textTemplates.push(templateNotification.payload);\n if (templateNotification.payload !== null) {\n this.router.navigate(['/text-template']);\n }\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in creating template');\n });\n }\n\n deleteTextTemplate(textTemplate: TextTemplate) {\n this.http.delete(this.templateUrl + '/' + textTemplate.id.toString(), this.httpOptions)\n .subscribe(templateNotification => {\n this.notificationService.addNotification(templateNotification.resultType, templateNotification.text);\n this.router.navigate(['/text-template']);\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in deleting text template');\n });\n }\n\n editTextTemplate(textTemplate: TextTemplate) {\n this.http.put(this.templateUrl + '/' + textTemplate.id.toString(), textTemplate, this.httpOptions)\n .subscribe(templateNotification => {\n this.notificationService.addNotification(templateNotification.resultType, templateNotification.text);\n if (templateNotification.payload !== null) {\n this.router.navigate(['/text-template']);\n }\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in editing text template');\n });\n }\n\n constructor(private http: HttpClient, private router: Router, private notificationService: NotificationService) {\n this.getTextTemplates();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { CampaignService, Campaign } from '../campaign.service';\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\nimport { ProviderService } from '../provider.service';\nimport { PhonebookService } from '../phonebook.service';\nimport { TextTemplateService } from '../text-template.service';\n\n@Component({\n selector: 'app-campaign-new',\n templateUrl: './campaign-new.component.html',\n styleUrls: ['./campaign-new.component.css']\n})\nexport class CampaignNewComponent implements OnInit {\n\n constructor(\n private campaignService: CampaignService,\n private router: Router,\n private providerService: ProviderService,\n private phonebookService: PhonebookService,\n private textTemplateService: TextTemplateService) { }\n\n newCampaign: Campaign = new Campaign();\n\n templateStr = '';\n previewStr = '';\n\n submitNewCampaign() {\n this.campaignService.addCampaign(this.newCampaign);\n }\n\n submitNewCampaignRun() {\n this.campaignService.addCampaignRun(this.newCampaign);\n }\n\n updatePreviews() {\n if (this.newCampaign.textTemplateId !== 0 && this.newCampaign.phonebookId !== 0) {\n this.phonebookService.getPhonebookObs(this.newCampaign.phonebookId).subscribe(phonebook => {\n this.textTemplateService.getTextTemplateObs(this.newCampaign.textTemplateId).subscribe(textTemplate => {\n this.templateStr = textTemplate.templateStr;\n\n let tempStr = this.templateStr;\n tempStr = tempStr.replace('{firstName}', phonebook.records[0].firstName);\n tempStr = tempStr.replace('{lastName}', phonebook.records[0].lastName);\n tempStr = tempStr.replace('{alias}', phonebook.records[0].alias);\n tempStr = tempStr.replace('{phoneNumber}', phonebook.records[0].phoneNumber);\n\n this.previewStr = tempStr;\n });\n });\n } else {\n this.templateStr = '';\n this.previewStr = '';\n }\n }\n\n ngOnInit() {\n this.newCampaign.textTemplateId = 0;\n this.newCampaign.phonebookId = 0;\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { CampaignService, Campaign, Job, CampaignNotification } from '../campaign.service';\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\nimport { NotificationService } from '../notification.service';\n\n@Component({\n selector: 'app-campaign-view',\n templateUrl: './campaign-view.component.html',\n styleUrls: ['./campaign-view.component.css']\n})\nexport class CampaignViewComponent implements OnInit {\n\n currCampaign: Campaign = new Campaign();\n\n id = 0;\n\n constructor(\n private campaignService: CampaignService,\n private router: Router,\n private route: ActivatedRoute,\n private notificationService: NotificationService\n ) { }\n\n startCampaign() {\n this.campaignService.startCampaign(this.currCampaign).subscribe(campaignNotification => {\n this.notificationService.addNotification(campaignNotification.resultType, campaignNotification.text);\n this.campaignService.getCampaignObs(this.id).subscribe(campaign => {\n this.currCampaign = campaign;\n });\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in starting campaign');\n });\n }\n\n pauseCampaign() {\n this.campaignService.pauseCampaign(this.currCampaign).subscribe(campaignNotification => {\n this.notificationService.addNotification(campaignNotification.resultType, campaignNotification.text);\n },\n err => {\n this.notificationService.addNotification('failure', 'Error in pausing campaign');\n });\n }\n\n deleteCampaign() {\n this.campaignService.deleteCampaign(this.currCampaign);\n }\n\n updateThisCampaign() {\n this.campaignService.getCampaignObs(this.id).subscribe(campaign => {\n this.currCampaign = campaign;\n });\n }\n\n ngOnInit() {\n const idParam = 'id';\n this.route.params.subscribe( params => {\n this.id = parseInt(params[idParam], 10);\n });\n this.updateThisCampaign();\n const intervalId = setInterval(() => {\n this.updateThisCampaign();\n if (!this.router.url.includes('/campaign')) {\n clearInterval(intervalId);\n }\n }, 2000);\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { PhonebookService } from '../phonebook.service';\n\n@Component({\n selector: 'app-phonebook',\n templateUrl: './phonebook.component.html',\n styleUrls: ['./phonebook.component.css']\n})\nexport class PhonebookComponent implements OnInit {\n\n constructor(private phonebookService: PhonebookService) { }\n\n ngOnInit() {\n this.phonebookService.getPhonebooks();\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { PhonebookService, Phonebook, PhoneRecord } from '../phonebook.service';\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\n\n@Component({\n selector: 'app-phonebook-new',\n templateUrl: './phonebook-new.component.html',\n styleUrls: ['./phonebook-new.component.css']\n})\nexport class PhonebookNewComponent implements OnInit {\n\n constructor(private phonebookService: PhonebookService, private router: Router, private route: ActivatedRoute) { }\n\n id = 0;\n\n newPhonebook: Phonebook = new Phonebook();\n newPhoneRecords: PhoneRecord[] = [];\n additionalRecord: PhoneRecord = new PhoneRecord();\n\n insertAdditionalRecord() {\n this.newPhoneRecords = this.newPhoneRecords.concat(this.additionalRecord);\n this.additionalRecord = new PhoneRecord();\n this.additionalRecord.phoneNumber = '';\n }\n\n importPhoneRecords(files: FileList) {\n this.phonebookService.uploadPhonebook(files.item(0)).subscribe(data => {\n this.newPhoneRecords = this.newPhoneRecords.concat(data);\n });\n }\n\n submitNewPhonebook() {\n if (this.router.url === '/phonebook/new') {\n if (this.additionalRecord.phoneNumber !== '') {\n this.insertAdditionalRecord();\n }\n this.newPhonebook.records = this.newPhoneRecords;\n this.phonebookService.addPhonebook(this.newPhonebook);\n } else {\n this.editPhonebook();\n }\n }\n\n deletePhonebook() {\n this.phonebookService.deletePhonebook(this.newPhonebook);\n }\n\n editPhonebook() {\n this.newPhonebook.records = this.newPhoneRecords;\n this.phonebookService.editPhonebook(this.newPhonebook);\n }\n\n ngOnInit() {\n this.additionalRecord = new PhoneRecord();\n this.additionalRecord.phoneNumber = '';\n\n // if page is edit\n if (this.router.url !== '/phonebook/new') {\n const idParam = 'id';\n this.route.params.subscribe( params => {\n this.id = parseInt(params[idParam], 10);\n this.phonebookService.getPhonebookObs(this.id).subscribe(currPb => {\n this.newPhonebook = currPb;\n this.newPhoneRecords = this.newPhonebook.records;\n });\n });\n }\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { TextTemplateService } from '../text-template.service';\n\n@Component({\n selector: 'app-text-template',\n templateUrl: './text-template.component.html',\n styleUrls: ['./text-template.component.css']\n})\nexport class TextTemplateComponent implements OnInit {\n\n constructor(private textTemplateService: TextTemplateService) { }\n\n ngOnInit() {\n this.textTemplateService.getTextTemplates();\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { TextTemplate, TextTemplateService } from '../text-template.service';\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\n\n@Component({\n selector: 'app-text-template-new',\n templateUrl: './text-template-new.component.html',\n styleUrls: ['./text-template-new.component.css']\n})\nexport class TextTemplateNewComponent implements OnInit {\n\n newTextTemplate: TextTemplate = new TextTemplate();\n previewStr: string;\n id = 0;\n\n submitNewTextTemplate() {\n if (this.router.url === '/text-template/new') {\n this.textTemplateService.addTextTemplate(this.newTextTemplate);\n } else {\n this.editTextTemplate();\n }\n }\n\n updatePreview() {\n let tempStr = '';\n tempStr = this.newTextTemplate.templateStr;\n tempStr = tempStr.replace('{firstName}', 'John');\n tempStr = tempStr.replace('{lastName}', 'Smith');\n tempStr = tempStr.replace('{alias}', 'Johnny');\n tempStr = tempStr.replace('{phoneNumber}', '+6598765432');\n\n this.previewStr = tempStr;\n }\n\n deleteTextTemplate() {\n this.textTemplateService.deleteTextTemplate(this.newTextTemplate);\n }\n\n editTextTemplate() {\n this.textTemplateService.editTextTemplate(this.newTextTemplate);\n }\n\n constructor(private textTemplateService: TextTemplateService, private router: Router, private route: ActivatedRoute) { }\n\n ngOnInit() {\n // if page is edit\n if (this.router.url !== '/text-template/new') {\n const idParam = 'id';\n this.route.params.subscribe( params => {\n this.id = parseInt(params[idParam], 10);\n this.textTemplateService.getTextTemplateObs(this.id).subscribe(currTT => {\n this.newTextTemplate = currTT;\n this.updatePreview();\n });\n });\n }\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ProviderService, TwilioProvider } from '../provider.service';\n\n\n@Component({\n selector: 'app-provider',\n templateUrl: './provider.component.html',\n styleUrls: ['./provider.component.css']\n})\nexport class ProviderComponent implements OnInit {\n\n currTwilioProvider: TwilioProvider = new TwilioProvider();\n\n submitProviders() {\n this.providerService.updateTwilioProvider(this.currTwilioProvider);\n }\n\n constructor(private providerService: ProviderService) { }\n\n ngOnInit() {\n this.providerService.getTwilioProviderObs().subscribe(currTwilio => {\n this.currTwilioProvider = currTwilio;\n });\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { AuthService, User } from '../auth.service';\n\n@Component({\n selector: 'app-profile',\n templateUrl: './profile.component.html',\n styleUrls: ['./profile.component.css']\n})\nexport class ProfileComponent implements OnInit {\n\n constructor(private authService: AuthService) { }\n currUser: User;\n\n updateUser() {\n this.authService.updateUser(this.currUser);\n }\n\n ngOnInit() {\n this.authService.getUserObs().subscribe(user => {\n this.currUser = JSON.parse(JSON.stringify(user));\n });\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { MainComponent } from './main/main.component';\nimport { LoginComponent } from './login/login.component';\nimport { RegisterComponent } from './register/register.component';\nimport { CampaignComponent } from './campaign/campaign.component';\nimport { CampaignNewComponent } from './campaign-new/campaign-new.component';\nimport { CampaignViewComponent } from './campaign-view/campaign-view.component';\nimport { PhonebookComponent } from './phonebook/phonebook.component';\nimport { PhonebookNewComponent } from './phonebook-new/phonebook-new.component';\nimport { TextTemplateComponent } from './text-template/text-template.component';\nimport { TextTemplateNewComponent } from './text-template-new/text-template-new.component';\nimport { ProviderComponent } from './provider/provider.component';\nimport { ProfileComponent } from './profile/profile.component';\n\nconst routes: Routes = [\n { path: '', component: MainComponent },\n { path: 'login', component: LoginComponent },\n { path: 'register', component: RegisterComponent },\n { path: 'profile', component: ProfileComponent },\n { path: 'campaign', component: CampaignComponent },\n { path: 'campaign/new', component: CampaignNewComponent },\n { path: 'campaign/:id/view', component: CampaignViewComponent },\n { path: 'phonebook', component: PhonebookComponent },\n { path: 'phonebook/new', component: PhonebookNewComponent },\n { path: 'phonebook/:id/edit', component: PhonebookNewComponent },\n { path: 'text-template', component: TextTemplateComponent },\n { path: 'text-template/new', component: TextTemplateNewComponent },\n { path: 'text-template/:id/edit', component: TextTemplateNewComponent },\n { path: 'provider', component: ProviderComponent },\n ];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component } from '@angular/core';\nimport { RouterModule, Routes, Router } from '@angular/router';\nimport { AuthService } from './auth.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n title = 'tapit-frontend';\n navlinks = [\n {\n link: '/campaign',\n name: 'Campaigns',\n loginOnly: true,\n },\n {\n link: '/phonebook',\n name: 'Phonebook',\n loginOnly: true,\n },\n {\n link: '/text-template',\n name: 'Text Templates',\n loginOnly: true,\n },\n {\n link: '/web-template',\n name: 'Web Templates',\n loginOnly: true,\n },\n ];\n constructor( private router: Router, private authService: AuthService) {\n authService.getUser();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { NotificationService } from '../notification.service';\n\n@Component({\n selector: 'app-notification',\n templateUrl: './notification.component.html',\n styleUrls: ['./notification.component.css']\n})\nexport class NotificationComponent implements OnInit {\n\n constructor(private notificationService: NotificationService) { }\n\n ngOnInit() {\n }\n\n}\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { HttpClientModule } from '@angular/common/http';\nimport { FormsModule } from '@angular/forms';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { MainComponent } from './main/main.component';\nimport { CampaignComponent } from './campaign/campaign.component';\nimport { CampaignNewComponent } from './campaign-new/campaign-new.component';\nimport { NotificationComponent } from './notification/notification.component';\nimport { PhonebookComponent } from './phonebook/phonebook.component';\nimport { PhonebookNewComponent } from './phonebook-new/phonebook-new.component';\nimport { TextTemplateComponent } from './text-template/text-template.component';\nimport { TextTemplateNewComponent } from './text-template-new/text-template-new.component';\nimport { LoginComponent } from './login/login.component';\nimport { RegisterComponent } from './register/register.component';\nimport { ProviderComponent } from './provider/provider.component';\nimport { ProfileComponent } from './profile/profile.component';\nimport { CampaignViewComponent } from './campaign-view/campaign-view.component';\n\n@NgModule({\n declarations: [\n AppComponent,\n MainComponent,\n CampaignComponent,\n CampaignNewComponent,\n NotificationComponent,\n PhonebookComponent,\n PhonebookNewComponent,\n TextTemplateComponent,\n TextTemplateNewComponent,\n LoginComponent,\n RegisterComponent,\n ProviderComponent,\n ProfileComponent,\n CampaignViewComponent\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n FormsModule,\n HttpClientModule,\n ],\n providers: [],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"sourceRoot":""} \ No newline at end of file diff --git a/tapit-build/tapit b/tapit-build/tapit index 5c9a1a7773ca4639ddd4d3059d5ab8b535021b53..16dbcca92303484c6de5d4e66b28ed8cf5e3b61a 100755 GIT binary patch delta 44371 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 NXrCpr<^KJa{{hz96rYwwO_ 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 Hy_Ww4QRNBa diff --git a/tapit-frontend/src/app/campaign-new/campaign-new.component.html b/tapit-frontend/src/app/campaign-new/campaign-new.component.html index 65ad6c2..87a8fea 100644 --- a/tapit-frontend/src/app/campaign-new/campaign-new.component.html +++ b/tapit-frontend/src/app/campaign-new/campaign-new.component.html @@ -13,33 +13,40 @@
-
- - -
-
- - -
-
- - -
+
+ + +
+
+ + +
+
+ + +
-
+
+ + +
+
+ + +
diff --git a/tapit-frontend/src/app/campaign-new/campaign-new.component.ts b/tapit-frontend/src/app/campaign-new/campaign-new.component.ts index dad7595..eca75df 100644 --- a/tapit-frontend/src/app/campaign-new/campaign-new.component.ts +++ b/tapit-frontend/src/app/campaign-new/campaign-new.component.ts @@ -21,6 +21,9 @@ export class CampaignNewComponent implements OnInit { newCampaign: Campaign = new Campaign(); + templateStr = ''; + previewStr = ''; + submitNewCampaign() { this.campaignService.addCampaign(this.newCampaign); } @@ -29,7 +32,30 @@ export class CampaignNewComponent implements OnInit { this.campaignService.addCampaignRun(this.newCampaign); } + updatePreviews() { + if (this.newCampaign.textTemplateId !== 0 && this.newCampaign.phonebookId !== 0) { + this.phonebookService.getPhonebookObs(this.newCampaign.phonebookId).subscribe(phonebook => { + this.textTemplateService.getTextTemplateObs(this.newCampaign.textTemplateId).subscribe(textTemplate => { + this.templateStr = textTemplate.templateStr; + + let tempStr = this.templateStr; + tempStr = tempStr.replace('{firstName}', phonebook.records[0].firstName); + tempStr = tempStr.replace('{lastName}', phonebook.records[0].lastName); + tempStr = tempStr.replace('{alias}', phonebook.records[0].alias); + tempStr = tempStr.replace('{phoneNumber}', phonebook.records[0].phoneNumber); + + this.previewStr = tempStr; + }); + }); + } else { + this.templateStr = ''; + this.previewStr = ''; + } + } + ngOnInit() { + this.newCampaign.textTemplateId = 0; + this.newCampaign.phonebookId = 0; } } diff --git a/tapit-frontend/src/app/text-template-new/text-template-new.component.ts b/tapit-frontend/src/app/text-template-new/text-template-new.component.ts index f3e8245..c6db185 100644 --- a/tapit-frontend/src/app/text-template-new/text-template-new.component.ts +++ b/tapit-frontend/src/app/text-template-new/text-template-new.component.ts @@ -50,6 +50,7 @@ export class TextTemplateNewComponent implements OnInit { this.id = parseInt(params[idParam], 10); this.textTemplateService.getTextTemplateObs(this.id).subscribe(currTT => { this.newTextTemplate = currTT; + this.updatePreview(); }); }); }