· 5 years ago · Nov 14, 2020, 01:06 AM
1(window.webpackJsonp = window.webpackJsonp || []).push([[0], {
2 110: function(e) {
3 e.exports = [{
4 id: "bronze",
5 monthly: {
6 price: {
7 USD: 0,
8 INR: 0,
9 EUR: 0,
10 GBP: 0,
11 MXN: 0
12 },
13 planId: null,
14 days: 30
15 },
16 quarterly: {
17 price: {
18 USD: 0,
19 INR: 0,
20 EUR: 0,
21 GBP: 0,
22 MXN: 0
23 },
24 planId: null,
25 days: 90
26 },
27 "half-yearly": {
28 price: {
29 USD: 0,
30 INR: 0,
31 EUR: 0,
32 GBP: 0,
33 MXN: 0
34 },
35 planId: null,
36 days: 180
37 },
38 annual: {
39 price: {
40 USD: 0,
41 INR: 0,
42 EUR: 0,
43 GBP: 0,
44 MXN: 0
45 },
46 planId: null,
47 days: 365
48 },
49 name: "Free"
50 }, {
51 id: "gold",
52 popular: !0,
53 monthly: {
54 price: {
55 USD: 10,
56 EUR: 10,
57 INR: 200,
58 GBP: 10,
59 MXN: 200
60 },
61 planId: "gold_1m",
62 days: 30
63 },
64 quarterly: {
65 price: {
66 USD: 30,
67 EUR: 30,
68 INR: 600,
69 GBP: 30,
70 MXN: 600
71 },
72 planId: "gold_3m",
73 days: 90
74 },
75 "half-yearly": {
76 price: {
77 USD: 50,
78 EUR: 50,
79 INR: 1e3,
80 GBP: 50,
81 MXN: 1e3
82 },
83 planId: "gold_6m",
84 days: 180
85 },
86 annual: {
87 price: {
88 USD: 90,
89 EUR: 90,
90 INR: 1800,
91 GBP: 90,
92 MXN: 1800
93 },
94 planId: "gold_12m",
95 days: 365
96 },
97 name: "Gold"
98 }, {
99 id: "enterprise",
100 popular: !1,
101 monthly: {
102 price: {
103 USD: 100,
104 EUR: 100,
105 INR: 2e3,
106 GBP: 100,
107 MXN: 2e3
108 },
109 planId: "enterprise_1m",
110 days: 30
111 },
112 quarterly: {
113 price: {
114 USD: 300,
115 EUR: 300,
116 INR: 6e3,
117 GBP: 300,
118 MXN: 6e3
119 },
120 planId: "enterprise_3m",
121 days: 90
122 },
123 "half-yearly": {
124 price: {
125 USD: 500,
126 EUR: 500,
127 INR: 1e4,
128 GBP: 500,
129 MXN: 1e4
130 },
131 planId: "enterprise_6m",
132 days: 180
133 },
134 annual: {
135 price: {
136 USD: 900,
137 EUR: 900,
138 INR: 18e3,
139 GBP: 900,
140 MXN: 18e3
141 },
142 planId: "enterprise_12m",
143 days: 365
144 },
145 name: "Enterprise"
146 }]
147 },
148 111: function(e) {
149 e.exports = [{
150 id: "rules",
151 title: "Rules",
152 bronze: {
153 title: "10 Rules",
154 limit: 10
155 },
156 silver: {
157 title: "25 Rules (Max 10 Active)",
158 limit: 25
159 },
160 gold: {
161 title: "Unlimited Rules",
162 limit: 1e4
163 },
164 enterprise: {
165 title: "Unlimited Rules",
166 limit: 1e4
167 }
168 }, {
169 id: "active_rules",
170 title: "Active Rules",
171 bronze: {
172 title: "3 Active Rules",
173 limit: 3
174 },
175 silver: {
176 title: "10 Active Rules",
177 limit: 10
178 },
179 gold: {
180 title: "Unlimited Active Rules",
181 limit: 1e4
182 },
183 enterprise: {
184 title: "Unlimited Active Rules",
185 limit: 1e4
186 }
187 }, {
188 id: "favourite_rules",
189 title: "Favourite Rules",
190 bronze: {
191 title: "3 Favourite Rules",
192 limit: 3
193 },
194 silver: {
195 title: "10 Favourite Rules",
196 limit: 10
197 },
198 gold: {
199 title: "Unlimited Favourite Rules",
200 enabled: 1e4
201 },
202 enterprise: {
203 title: "Unlimited Favourite Rules",
204 enabled: 1e4
205 }
206 }, {
207 id: "groups",
208 title: "Groups",
209 bronze: {
210 title: "Unlimited Groups"
211 },
212 silver: {
213 title: "Unlimited Groups"
214 },
215 gold: {
216 title: "Unlimited Groups"
217 },
218 enterprise: {
219 title: "Unlimited Groups"
220 }
221 }, {
222 id: "shared_lists",
223 title: "Shared Lists",
224 bronze: {
225 title: "3 Shared Lists",
226 limit: 3
227 },
228 silver: {
229 title: "10 Shared Lists",
230 limit: 10
231 },
232 gold: {
233 title: "Unlimited Shared Lists",
234 limit: 1e3
235 },
236 enterprise: {
237 title: "Unlimited Shared Lists",
238 limit: 1e3
239 }
240 }, {
241 id: "files",
242 title: "Files",
243 bronze: {
244 title: "3 Files",
245 limit: 5
246 },
247 silver: {
248 title: "10 Files",
249 limit: 10
250 },
251 gold: {
252 title: "Unlimited Files",
253 limit: 1e3
254 },
255 enterprise: {
256 title: "Unlimited Files",
257 limit: 1e3
258 }
259 }, {
260 id: "export_import",
261 title: "Export & Import Data",
262 bronze: {
263 title: "",
264 enabled: !1
265 },
266 silver: {
267 title: "Export & Import Data",
268 enabled: !0
269 },
270 gold: {
271 title: "Export & Import Data",
272 enabled: !0
273 },
274 enterprise: {
275 title: "Export & Import Data",
276 enabled: !0
277 }
278 }, {
279 id: "Customer Support",
280 title: "Priority Support",
281 bronze: {
282 title: "",
283 enabled: !1
284 },
285 silver: {
286 title: "",
287 enabled: !1
288 },
289 gold: {
290 title: "Priority Support (Chat)",
291 enabled: !0
292 },
293 enterprise: {
294 title: "Priority Support (Chat & Call)",
295 enabled: !0
296 }
297 }, {
298 id: "Users",
299 title: "Number of Users",
300 bronze: {
301 title: "",
302 enabled: !1
303 },
304 silver: {
305 title: "",
306 enabled: !1
307 },
308 gold: {
309 title: "",
310 enabled: !1
311 },
312 enterprise: {
313 title: "Unlimited Users",
314 enabled: !0
315 }
316 }]
317 },
318 116: function(e, t) {
319 e.exports = "data:image/png;base64,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"
320 },
321 117: function(e, t, a) {
322 e.exports = a.p + "static/media/enterpriseBanner.b0e99d6a.jpeg"
323 },
324 118: function(e, t, a) {
325 e.exports = a.p + "static/media/anonymous.6732bd42.png"
326 },
327 119: function(e, t, a) {
328 e.exports = a.p + "static/media/verify.793fc3f9.svg"
329 },
330 121: function(e, t) {
331 e.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAP0AAABgCAYAAADWzXRhAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA+JSURBVHgB7Z1dchNJEsczuyXZ3h1ARCyGfZqedyZGPsHYJ8C8TUwMRsQewPgEwAmwD7CBDMTGvmFOgDiBPbsz+4rmacFshGVDBLKk7tzMbsmW5P7Uh9Xd5C9CtqT+VFX9qyqzsqoBFEVRFEVRFEXJCQjKEF/2F61CETflfbdDO0srrQYoSo5Q0Y/Q/n3xHRBY7geEht2GNRW+kicMUIbpC7733izBG2n9QVFygoo+ChW+kjNU9HFQ4Ss5QkUfFxW+khNU9ElQ4Ss5QEWfFBW+knFU9APEFrIKX8kwKvoBCiW4H3tnFb6SUUKDc2i/XO4UW+sI+AMBVSDXyO/DMiRFA3iUjOErehF7t9TaJKKHYwnha0OFr2SIC6KX7qp0W4ci05RoVPhKRhiy6VXwEyA2fhGegaKknLOW3rXfS619FfxklG63dBKTkmrOWnp22D1VwU8GIe2BoqQct1Vyu/VFeAfKBOBBsbOwhivNJihKinFbeizSOigToIJXskNB/hiAd2IfwV5qNgPqkD8sfq1CYlTwSrYoeP/cwJSofRs2wYOl26065JTTfy8+RoRH8Y9QwSvZw1V6+7dFitqx3bFXvlnpHECOoX0od4qLR/H2VsEr2SRW7L0D9DrvghdwBWIKWAWvZJdYokfC3As+Pip4JdvoLLtEqOCV7KOij40KXskHKvpYqOCV/KCij0QFr+QLFf1F6udvVfBK/iiAMkSx07rbKi6uI1B5obNYU8EreUNFP4I3Vt+qeZ9OQVHyhnbvFeUrQ0WvKF8Zl9q9L//0xSoVOhVCKCOSNbqdCBvy+t/LK3VIMeX1o3Lhm0LFRKfC9ea3xPa/fI+AbBo4f9hkHIz7GySNioZdJoPK3c/dg+be9dg+BTm2UOha8j7psbPkxs+fK2A6ldE8R4KmpNW871Xys/inoiVpLp/TlHazINaEGyJ4svB96zGMwa2fjiwqFjYJqcoXi7WyLt9Mk//skW3vfPzH9cgQYMm00tXCJoIj6wIkX72X8ODDi6t3o3b7yy+fVk2EOzF/C1dgUDc69pP3/7zegBjnNgx6dfG8dIBt527YOW7eO34IiE8vbCDc/vDiylbgcRufN4E4zXwq4Bg0Tw1nrVnzF0c/T/gmHsbKd04rx7a3RvP7xs9HFcM0n3JJXYUpQA7cPXx59WyFo5v3Tt74nZsAHx8+v/IEYiDpSGBzmcCKlF2uzA6wYz+Iynf5bWiam1wZrrIUrX65j1tmxmXm3XsqmZyoMTO+h+yLCFWjYO4v3zt5Vq4ehR67cLXwhr3tj/lImSJsJX4hrP/1b1++DTq/FOCb9z89NQ1K8lss+Q38+98tb3yKNV3X/7xckErGw7DjpOfkf0J6uPzLie8CKd49OdtegUdrjFelaJu+576x8fl+6ar5TvIkdr7zfUh+uxXYAPzdq2kJ3r2MQdVY+/G9h5WJPv10RLfs9fKQ75fzfV9EHXas/DYpI156npd7KpozXWB1pqK/VT2yACZbd08SYcEx3gQJ3yvUkz+Ig05b3/l9Lz0VqVTAfQbAeEgBurlxvB9VeYXwI4wJF/LV0e/kPrxKcjL8TDRp9Qxwakkq+ZGTPuqnU++/BVMFf4i7Z7fdWYs8G11M3x5lt8IKoFchWP4nhdU4Fc64ZMSRh5UFu+DfWhqze/KOtPBuT2UqT/fh38CVF4zF+A8cIcRro98VuoWZpJlryoHzGCajXJy60AehqdrqSHaYCWDduHdS9T2Ou/UwJ7Ljveeu6q1fjlZhJlCjVYALvoPSFVPsZAumBlZu3vv0FHICdZ29oc9shozdwg/QYX+I/O/5CxowXd7CFHn/8no9bPk4w2clJrcHwyYlBEKN//596Q+YEfMMzmli216RN7bBtozB4jKMR33byA8yDEmoOsSFM4NiFBoynZ1Rh5Q41rj7Wg09DqFm2PYudHvXKIDlGIY4dIIfhMmVF3ftduM4KOcDyQhKPWovg+yLv4G46xyy6pqbXo79lvOlIZ8dqSAMo4KEP57b7TScF0Q74LOGIztTy2FlxU+InJ9v3z+/9himjLT2hOZqwGa3tf/44mqt/4X4QhCDK0dOj1gOxHGZq+hHPJRSgPaCvKkuFN8eE7hQ7Q4mdhJMpFDnG3toH3x4fuHcDX7V2Rl14OtN7x/rde0eQAphc6B++PzqePeGIb0ixO3DXd+RBLe3IP4fso31U9OpDW788OLaNv/bHj3IHUkRx6o/DR6NibTHp4W09lxu60Hlttfa1/qfEXHTHaPyhRrvX1yrwQxxu/dE4Q9pcLrnNzxreJhrJ3AjXs7DOMQ2DfMYsxPsyfuQysQrqBT4O7iWX5/AqZdJiJzjsO3va9cbkm5BQ4BpJ65t7/YgQ3xEs27lBVf0C9+f3rW55ZHx+MGXA7QlC2Je5kMZHTfAZb7YxcCumocx3Br5wWPYj0M2l0vdiGvkDO6KP5LhVyn0kENc2z6kou/b9gZSsOnntvLj9UyTcNa9X7rdn2QyX7wotwDDkJI5dQy2rbmghQ53cSfr7agJwBkTdg91aZUgAmmxeAz3IKhW7w2l7UHKYLNlVcQZuhNh4/ClX+AKveYzBHqlZfiVzabq8saJG4TCr9eDgTJZRyr6kmPeD3BmWjKmz+WhGnQ8Gs6lmCSpmmXntgJIwUMZSL9CEpBWo1bz5+3iHKwNfRnmkEp0D86vEOBs8htKSwmWFzASAtcMPI5cG/Uwc6HddoIL/fl+XgBLVV43N04aDvcqP15CCzdrpKJnf86TIH9OWGyEODk/1GYXhTfIPIfsytKi9F8SvNJzzFhBB0ihgulTThII4YZKxqcRtAGdy/FPzAq/wBXpASFRUpvU4q4v5//Ju+VfjtYh47j+nMRPgKKGgfbMbfk+cxW9tCj9F4QNv0DPeXZJNeFlOQzziBR6cuy7UpAhGRYa5qu4IctpBk072egHO68vrWxDRoJzWPC7sxhf9fAJhKDpBIRMI1AlrZhkN4K2Hb68vif2KXG+JRW/dIGz3uKLgPm3x2y5qdEblrw0MrByDu2w4B/CGHDCNzGiO04Obl08DpqBvgDE+KYA4bcY7BsIHcKaF3HSzG2ZXG91ML2Wqyrvb/FwFafpnfAotHO4xRebONMOvkNupJY3ju9gRA/W6TqRszunTcpFTwcfxhS8ezTh1uEYDiJE+iPIe882a+y4dRZ8cHQhQDoj8hD3PuyOGZwTQG8YquZOwLLNVf7t9yNmzlkSch1VsaQd6joPsGDuB25n5900IzO/7C9aZpFeBZjK9WJn8a6s+Tjf7r04PLxQ2YCWZT6x6tz614O3YiVqyqQQOosKZKjfqQ+d1emGta7R3vCgbZSeHoW0/lIBSLScRDSG7UtoxK5c04or6BCnHqG9A1PELMKzEN/YarvQchvQeYreDZX0wiUpJApP5oRfro3XLtj1MC+9u6hDBBH7NEdbsU4p1I9QDp9sdDE2/Qya+oSVUCSa0V2cI4Je698I2k6YX39In4IZ9wnJMYlwQHPP0zVNU+HIO3SddMEOH7bxnrmhsZeEjLei64QKuiFYDfIyy3Tc5fsnz8K6r1yg9/yuCWEiCEiD3n1YQcc55nCPYpbI/Tkl6c462zIEFzStVIjqCclSWqDMhNTY9Og4D7hgB02gcOe1l6tHK0lis7lme3pz4zjOEFCTfQcrQ8dGBJp4C2NwoSbcc8AL2DEAf3CX0qLwVipoTFa83RKuGnCYJWmwfO+kztf+1V1nUGanQeAiDnLGxsdaQpuRYJ3TbDXOrpJngz0WWfFlIL364++P+JwHNBDUhF7wU2jvDcmZu8+jd/8Rq9gg+52urECGSI3o3ZlKG8c7IWGcVm8hjS2IiVcA4y1AMeo4EvszLLqqf09ifpx3lwiiIwCD4w3aXNGUHHMzxEbvRcuhd52Ii40zeSNJmjmGsQqDU539u5cyecniO14fvEg41MiOE48qN6pHlcSV6xxJ1Ti9xC6HRrzNcCENP8eRF2gS0s1PfpWdsHgD16xIHtHmD5sQQZM3IpyGCS4BM3G2XcZMsz4JIyz9sc1MOR1nKvpWwgSNVejRtAY/jnrBp83hy2tVhGkIkXbiDD9KRTP59ejgFIOjwsRpOJXCfuGyNLE3Omracp9CoduAaZB0PofvKYLTcibpPCEzFb1rfyeMQw5vXanRMu0hJ5h0A4kmD+RA0wk8h7TO3hBT4tBSD04DbMefNzDu9bzAGnoi/okw38e0ehTcIg+l2SQVltw7VxpbcSMvPRNpzPwYoO3O55jsPEbBDuzas8BeQ8qItK4mxV0RxTEeejPXyPLWBceGOHYOQzJYorgcpE0vookafKO7Lc6goMLci/q6D8lpcqWxG3eK59l1xlmWmSsnhwtBkhll/etxelUwwNZmwRxI4QpLn5Bzy3Bf0uGxJnL+BQm0vwqOO5QYNoohlRThgUzJlRVzki6gMW7ZCr3fZPD17MjoxIE8LLs+E7lHHqlpm/bWNBcNaf+++I4T1QrZpVa63Xowc9HnGRl2Mg13mqjl+QQw1gqnvQci1KUC6HDPJW7Gn12vh+1AU7rqaV9txh1qLJwXRrlv07mwXJoyISr6OXBr45gdkZholhg69lrWw02VdBBX9PoAyyni2uIwJe+7oswIFf2UEeEnmE/e1FZ++nCL90yez9j+bWlfJqGAMoSKfgYMzycPBoGmOuFC8QTPXdyq94kqZhEjh0m/NlT0M0KGlNiDXEXD/k7ELx72s40yhMdDcrNbGOTrZFjwfSitaxHOjQwsopFtBheTUGaHv+AVP7SlVzKPCj4ZKnol06jgk6OiVzKLCn4EoliRlWrTK5lEBT/Ml98WqxAznFpbeiVzJBN8/IVMs4q7IGbvWXlx0JZeyRTJW3isdP6z9JSc7q7dMVM9RyEpZtEuI5p3iEgmHUW28kTgPt9BY++VzKBd+smwCdaWvm/VVfRKJlDBT0yjdLv1nbxRm15JPSr4yZE1I/rvtaVXUs3pv0rraBivQJmEs1Ze0JZeSTWOYSRd1UcZgpp2B9YGv1HRK6lmsdPag8HJSkoCqNnuOGtLK63G4LcqeiXV4Ao0i53TNRV+Yup2B1e+WelcSDe16ZVMQPtQ7hQX3kDEo5+/bqgpT9zhobknMjQXtJeKXskMEwi/To6z46CRq+CcQeyu3fwz/Lkhj6KO2ldFr2SKMYQ/5LlW1KZXMkZSG7//cFHlHBW9kjmSCN8AnO4z4HOAil7JJOrVHx8VvZJZVPjjoaJXMo0KPzkqeiXzqPCToaJXckGw8PEYlCFU9Epu8BF+w+7QNiiKkn/0GXaKoiiKoiiKonwF/B/7Yz+Qmwwb6AAAAABJRU5ErkJggg=="
332 },
333 122: function(e, t, a) {
334 e.exports = a.p + "static/media/goodbye.bc5d28a7.gif"
335 },
336 123: function(e, t, a) {
337 e.exports = a(282)
338 },
339 135: function(e, t, a) {},
340 229: function(e, t, a) {},
341 230: function(e, t, a) {},
342 231: function(e, t, a) {},
343 232: function(e, t, a) {},
344 233: function(e, t, a) {},
345 234: function(e, t, a) {},
346 266: function(e, t, a) {},
347 269: function(e, t, a) {},
348 281: function(e, t, a) {},
349 282: function(e, t, a) {
350 "use strict";
351 a.r(t);
352 var n = {};
353 a.r(n),
354 a.d(n, "signUp", function() {
355 return W
356 }),
357 a.d(n, "emailSignIn", function() {
358 return X
359 }),
360 a.d(n, "forgotPassword", function() {
361 return J
362 }),
363 a.d(n, "verifyOobCode", function() {
364 return H
365 }),
366 a.d(n, "resetPassword", function() {
367 return Y
368 }),
369 a.d(n, "signIn", function() {
370 return Z
371 }),
372 a.d(n, "checkUserAuthState", function() {
373 return $
374 }),
375 a.d(n, "fetchUserDetails", function() {
376 return ee
377 }),
378 a.d(n, "getUserProfilePath", function() {
379 return te
380 }),
381 a.d(n, "getAuthData", function() {
382 return ae
383 }),
384 a.d(n, "getNodeRef", function() {
385 return ne
386 }),
387 a.d(n, "getValue", function() {
388 return se
389 }),
390 a.d(n, "getValueAsPromise", function() {
391 return ie
392 }),
393 a.d(n, "setValue", function() {
394 return re
395 }),
396 a.d(n, "updateValue", function() {
397 return le
398 }),
399 a.d(n, "updateValueAsPromise", function() {
400 return ce
401 }),
402 a.d(n, "signOut", function() {
403 return oe
404 });
405 var s = {};
406 a.r(s),
407 a.d(s, "getExtensionVersion", function() {
408 return Ae
409 }),
410 a.d(s, "isExtensionInstalled", function() {
411 return Re
412 }),
413 a.d(s, "sendMessage", function() {
414 return Pe
415 }),
416 a.d(s, "getStorageType", function() {
417 return De
418 }),
419 a.d(s, "getStorageInfo", function() {
420 return ke
421 }),
422 a.d(s, "getStorageSuperObject", function() {
423 return Le
424 }),
425 a.d(s, "getStorageObject", function() {
426 return Te
427 }),
428 a.d(s, "saveStorageObject", function() {
429 return xe
430 }),
431 a.d(s, "removeStorageObject", function() {
432 return je
433 }),
434 a.d(s, "clearStorage", function() {
435 return Ue
436 }),
437 a.d(s, "setStorageType", function() {
438 return Fe
439 }),
440 a.d(s, "getRemoteRulesSettings", function() {
441 return qe
442 }),
443 a.d(s, "setRemoteRulesSettings", function() {
444 return Me
445 });
446 var i = a(0)
447 , r = a.n(i)
448 , l = a(42)
449 , c = a.n(l)
450 , o = a(2)
451 , u = a(1)
452 , d = a(5)
453 , m = a(3)
454 , p = a(4)
455 , h = a(8)
456 , f = a(31)
457 , g = a(107)
458 , E = (a(135),
459 a(9))
460 , v = a(74)
461 , b = a.n(v);
462 function y(e) {
463 var t = e.currency
464 , a = e.price
465 , n = e.duration;
466 return 0 === Number(a) ? r.a.createElement("div", {
467 className: "plan-price"
468 }, r.a.createElement("span", {
469 className: "plan-price-amount"
470 }, r.a.createElement("span", {
471 className: "plan-price-currency"
472 }, "Free"))) : "monthly" === n ? r.a.createElement("div", {
473 className: "plan-price"
474 }, r.a.createElement("span", {
475 className: "plan-price-amount"
476 }, r.a.createElement("span", {
477 className: "plan-price-currency"
478 }, t), +a), "/month") : "quarterly" === n ? r.a.createElement("div", {
479 className: "plan-price"
480 }, r.a.createElement("div", null, r.a.createElement("span", {
481 className: "plan-price-amount"
482 }, r.a.createElement("span", {
483 className: "plan-price-currency"
484 }, t), +Math.floor(+a / 3)), "/month"), r.a.createElement("div", null, r.a.createElement("span", null, t, " ", r.a.createElement("b", null, +a), " /quarter"))) : "half-yearly" === n ? r.a.createElement("div", {
485 className: "plan-price"
486 }, r.a.createElement("div", null, r.a.createElement("span", {
487 className: "plan-price-amount"
488 }, r.a.createElement("span", {
489 className: "plan-price-currency"
490 }, t), +Math.floor(+a / 6)), "/month"), r.a.createElement("div", null, r.a.createElement("span", null, t, " ", r.a.createElement("b", null, +a), " /six months"))) : "annual" === n ? r.a.createElement("div", {
491 className: "plan-price"
492 }, r.a.createElement("div", null, r.a.createElement("span", {
493 className: "plan-price-amount"
494 }, r.a.createElement("span", {
495 className: "plan-price-currency"
496 }, t), +Math.floor(+a / 12)), "/month"), r.a.createElement("div", null, r.a.createElement("span", null, t, " ", r.a.createElement("b", null, +a), " /year"))) : void 0
497 }
498 var N = a(28)
499 , w = a(29);
500 function S(e) {
501 var t = e.feature;
502 return t.title ? t.title : !0 === t.enabled ? r.a.createElement("span", {
503 className: "icon"
504 }, r.a.createElement(N.a, {
505 icon: w.a
506 })) : !1 === t.enabled ? " " : t.title
507 }
508 var O = function() {
509 function e(t, a, n) {
510 Object(o.a)(this, e),
511 this.featuresList = a || [],
512 this.userPlanDetails = n || {},
513 this.userPlanName = e.getPlanName(t, this.userPlanDetails)
514 }
515 return Object(u.a)(e, null, [{
516 key: "allPlanNames",
517 value: function() {
518 return {
519 BRONZE: "bronze",
520 SILVER: "silver",
521 GOLD: "gold",
522 ENTERPRISE: "enterprise"
523 }
524 }
525 }, {
526 key: "isPremiumPlan",
527 value: function(t) {
528 if (!t)
529 return !1;
530 var a = e.allPlanNames()
531 , n = t.split("_")[0];
532 return n === a.SILVER || n === a.GOLD || n === a.ENTERPRISE
533 }
534 }, {
535 key: "isEnterprise",
536 value: function(t) {
537 if (!t)
538 return !1;
539 var a = e.allPlanNames();
540 return t.split("_")[0] === a.ENTERPRISE
541 }
542 }, {
543 key: "getPlanHeader",
544 value: function(t) {
545 if (!t)
546 return " ";
547 var a = e.allPlanNames()
548 , n = t.split("_")[0];
549 return n === a.BRONZE ? "Free" : n === a.SILVER || n === a.GOLD ? "Premium" : n === a.ENTERPRISE ? "Enterprise" : " "
550 }
551 }, {
552 key: "allFeatureIds",
553 value: function() {
554 return {
555 RULES: "rules",
556 ACTIVE_RULES: "active_rules",
557 GROUPS: "groups",
558 SHARED_LISTS: "sharedLists",
559 FILES: "files",
560 EXPORT_IMPORT: "export_import",
561 ADS: "ads",
562 LOGS: "logs",
563 FAV_RULES: "favourite_rules"
564 }
565 }
566 }]),
567 Object(u.a)(e, [{
568 key: "getFeatureLimits",
569 value: function(t) {
570 var a = this.__getFeatureObject(t);
571 if (a)
572 return a[this.userPlanName].limit;
573 switch (t) {
574 case e.allFeatureIds().RULES:
575 return 10;
576 case e.allFeatureIds().ACTIVE_RULES:
577 case e.allFeatureIds().FAV_RULES:
578 case e.allFeatureIds().SHARED_LISTS:
579 return 3
580 }
581 }
582 }, {
583 key: "__getFeatureObject",
584 value: function(e) {
585 return this.featuresList.filter(function(t) {
586 return t.id === e
587 })[0]
588 }
589 }], [{
590 key: "getEndDate",
591 value: function(e) {
592 if (!e || !e.subscription)
593 return null;
594 var t = e.subscription.endDate;
595 return e.subscription.current_period_end && (t = new Date(1e3 * e.subscription.current_period_end).toISOString().split("T")[0]),
596 t
597 }
598 }, {
599 key: "isExpired",
600 value: function(t) {
601 return !(!t || !t.subscription) && e.getEndDate(t) < (new Date).toISOString().split("T")[0]
602 }
603 }, {
604 key: "getPlanName",
605 value: function(t, a) {
606 if (!a || !a.planId || !a.subscription || !t)
607 return e.allPlanNames().BRONZE;
608 if (e.isExpired(a))
609 return document.body.classList.remove("is-premium"),
610 e.allPlanNames().BRONZE;
611 var n = a.planId;
612 if (["silver_1m", "silver_6m", "silver_12m"].indexOf(n) >= 0)
613 return document.body.classList.add("is-premium"),
614 e.allPlanNames().SILVER;
615 if ("gold_6m" === n)
616 return document.body.classList.add("is-premium"),
617 e.allPlanNames().GOLD;
618 for (var s in t) {
619 var i = t[s];
620 for (var r in i)
621 if ("object" === typeof i[r] && i[r].planId === n)
622 return document.body.classList.add("is-premium"),
623 i.name.toLowerCase()
624 }
625 return e.allPlanNames().BRONZE
626 }
627 }, {
628 key: "isFeatureEnabled",
629 value: function(t, a) {
630 switch (t) {
631 case e.allFeatureIds().LOGS:
632 return a === e.allPlanNames().GOLD;
633 case e.allFeatureIds().ADS:
634 return a === e.allPlanNames().BRONZE
635 }
636 return !1
637 }
638 }]),
639 e
640 }();
641 O.premiumReleaseTime = new Date("March 30, 2019 00:00:00 GMT+00:00").getTime(),
642 O.maxLogImpressions = 5;
643 var C = O
644 , I = function(e) {
645 function t() {
646 return Object(o.a)(this, t),
647 Object(d.a)(this, Object(m.a)(t).apply(this, arguments))
648 }
649 return Object(p.a)(t, e),
650 Object(u.a)(t, [{
651 key: "render",
652 value: function() {
653 var e = this.props
654 , t = e.features
655 , a = e.currency
656 , n = e.duration
657 , s = e.plans
658 , i = e.currentPlan
659 , l = e.onChoosePlan
660 , c = e.isPlanExpired
661 , o = e.couponDiscountValue;
662 return t && t.length ? r.a.createElement(r.a.Fragment, null, r.a.createElement("div", {
663 className: "pricing-table is-comparative columns"
664 }, s.map(function(e) {
665 var s = (e[n].price[a] - o / 100 * e[n].price[a]).toFixed(2)
666 , u = 0 === Number(s)
667 , d = e.id === i
668 , m = C.isPremiumPlan(i);
669 return r.a.createElement("div", {
670 key: e.id,
671 className: ["pricing-plan", d ? "" : "is-dark", e.popular ? "is-link" : "", e.popular ? "is-active" : "", "column is-one-third"].join(" ")
672 }, r.a.createElement("div", {
673 className: "plan-header"
674 }, C.getPlanHeader(e.id)), r.a.createElement(y, {
675 currency: a,
676 duration: n,
677 price: s
678 }), r.a.createElement("div", {
679 className: "plan-items"
680 }, t.map(function(t) {
681 return r.a.createElement("div", {
682 key: t.id,
683 className: "plan-item",
684 "data-feature": t.title
685 }, r.a.createElement(S, {
686 feature: t[e.id]
687 }))
688 })), r.a.createElement("div", {
689 className: "plan-footer"
690 }, u ? null : r.a.createElement("button", {
691 className: "button is-fullwidth",
692 disabled: m && !c,
693 onClick: l(e.id)
694 }, C.isEnterprise(e.id) ? "Contact Us" : m && !c ? "Current plan" : "Upgrade")))
695 }))) : r.a.createElement("div", {
696 className: "section is-large has-text-centered"
697 }, r.a.createElement("button", {
698 className: "button is-loading"
699 }, "Loading"))
700 }
701 }]),
702 t
703 }(r.a.Component)
704 , A = a(76);
705 a(211),
706 a(213),
707 a(216),
708 a(283);
709 A.initializeApp(window.RQ.configs.firebaseConfig);
710 var R = A
711 , P = {
712 CATEGORIES: {
713 PRICING: "pricing",
714 LICENSE: "license",
715 LIBRARY: "library",
716 EXTENSION: "extension",
717 UNLOCK: "unlock",
718 REMOTE_RULES: "remoteRules",
719 SPONSOR_SIDERAIL: "sponsor_siderail",
720 LOGIN: "login",
721 SIGNUP: "signup"
722 },
723 ACTIONS: {
724 CURRENCY_CHANGE: "currency_changed",
725 DURATION_CHANGE: "duration_changed",
726 APPLIED_SUCCESSFULLY: "applied_successfully",
727 APPLIED_UNSUCCESSFULLY: "applied_unsuccessfully",
728 VIEWED: "viewed",
729 REVOKED: "revoked",
730 BOUGHT: "bought",
731 CREATED: "created",
732 UPDATED: "updated",
733 DELETED: "deleted",
734 CLICKED: "clicked",
735 UNINSTALLED: "uninstalled",
736 UNINSTALL_RESPONSE: "uninstall_response",
737 ROUTE_VIEWED: "route_viewed",
738 EMAIL_LOGIN_PERFORMED: "email_login_performed",
739 EMAIL_SIGNUP_PERFORMED: "email_signup_performed",
740 GMAIL_LOGIN_PERFORMED: "gmail_login_performed",
741 GMAIL_SIGNUP_PERFORMED: "gmail_signup_performed"
742 },
743 ATTR: {
744 PAYMENT_MODE: "payment_mode",
745 PLANNAME: "planname",
746 PLAN_DURATION: "plan_duration",
747 PLAN_ID: "plan_id",
748 PLAN_START_DATE: "plan_startDate",
749 PLAN_END_DATE: "plan_endDate",
750 COUPON: "coupon",
751 COUPON_VALUE: "coupon_value",
752 LICENSE: "licensekey",
753 COMPANY: "company",
754 PROFILE: "profile",
755 REMOTE_RULES_ENDPOINT: "remoteRulesEndpoint",
756 REMOTE_RULES_FREQUENCY: "remoteRulesFrequency"
757 },
758 VALUES: {
759 PAYPAL: "paypal"
760 },
761 GA_CUSTOM_DIMENSIONS: {
762 USER_ID: "dimension1"
763 },
764 GA_CUSTOM_METRICS: {
765 num_rules: "metric1"
766 }
767 }
768 , D = a(14)
769 , k = {
770 enabled: !1,
771 ns: "Requestly: ",
772 log: function(e) {
773 this.enabled && console.log.apply(console, [this.ns].concat(Array.prototype.slice.call(arguments)))
774 },
775 error: function(e) {
776 this.enabled && console.error.apply(console, [this.ns].concat(Array.prototype.slice.call(arguments)))
777 }
778 }
779 , L = {
780 eventCallbackMap: {},
781 requestId: 1,
782 constants: {
783 CONTENT_SCRIPT: "content_script",
784 PAGE_SCRIPT: "page_script",
785 DOMAIN: window.RQ.configs.WEB_URL,
786 SOURCE_FIELD: "source"
787 },
788 addMessageListener: function() {
789 window.addEventListener("message", this.handleMessageReceived.bind(this))
790 },
791 getSource: function() {
792 return this.constants.PAGE_SCRIPT
793 },
794 registerCallback: function(e, t) {
795 if (t) {
796 var a = this.requestId++;
797 this.eventCallbackMap[e.action + "_" + a] = t,
798 e.requestId = a
799 }
800 },
801 invokeCallback: function(e) {
802 var t = this.eventCallbackMap[e.action + "_" + e.requestId];
803 "function" === typeof t && (delete this.eventCallbackMap[e.action],
804 t.call(this, e.response))
805 },
806 sendMessage: function(e, t) {
807 e.action ? (this.registerCallback(e, t),
808 e[this.constants.SOURCE_FIELD] = this.getSource(),
809 window.postMessage(e, this.constants.DOMAIN)) : k.error("Invalid message. Must contain some action")
810 },
811 sendResponse: function(e, t) {
812 var a = {
813 action: e.action,
814 requestId: e.requestId,
815 response: t
816 };
817 a[this.constants.SOURCE_FIELD] = this.constants.PAGE_SCRIPT,
818 window.postMessage(a, this.constants.DOMAIN)
819 },
820 handleMessageReceived: function(e) {
821 var t = window.RQ;
822 e && e.origin !== this.constants.DOMAIN ? "debug" === t.configs.logLevel && console.log("Ignoring message from the following domain", e.origin, e.data) : e && e.data && e.data.source === this.constants.CONTENT_SCRIPT && ("debug" === t.configs.logLevel && console.log("Received message:", e.data),
823 this.invokeCallback(e.data))
824 },
825 init: function() {
826 -1 !== window.location.hostname.indexOf("requestly.in") && -1 !== this.constants.DOMAIN.indexOf("requestly.io") && (this.constants.DOMAIN = this.constants.DOMAIN.replace(".io", ".in")),
827 this.addMessageListener()
828 }
829 }
830 , T = a(108);
831 a.n(T).a.initialize({
832 gtmId: "GTM-N9FZM7V"
833 });
834 var x = [P.ATTR.PAYMENT_MODE, P.ATTR.PLAN_ID, P.ATTR.PLANNAME, P.ATTR.PLAN_START_DATE, P.ATTR.PLAN_END_DATE, "num_rules", "num_active_rules", "last_activity", "ext_version", "num_shared_lists"];
835 function j(e) {
836 e.eventValue && "number" == typeof e.eventValue ? window.ga("send", {
837 hitType: "event",
838 eventCategory: e.eventCategory,
839 eventAction: e.eventAction,
840 eventLabel: e.eventLabel,
841 eventValue: Math.ceil(e.eventValue)
842 }) : window.ga("send", {
843 hitType: "event",
844 eventCategory: e.eventCategory,
845 eventAction: e.eventAction,
846 eventLabel: e.eventLabel
847 }),
848 window.customerly && window.customerlySettings && window.customerlySettings.email && window.customerlySettings.user_id && window.customerly("event", e.eventLabel),
849 window.HelpCrunch && window.helpCrunchSettings && window.helpCrunchSettings.email && window.helpCrunchSettings.user_id && window.HelpCrunch("trackEvent", e.eventLabel),
850 window.fcWidget && window.fcWidget.track(e.eventAction, {
851 category: e.eventCategory,
852 label: e.eventLabel
853 })
854 }
855 function U(e) {
856 if (e.attr && e.value) {
857 var t = e.attr.toLowerCase()
858 , a = e.value;
859 if (window.RQ && window.RQ.user && window.RQ.user.uid && function(e, t, a) {
860 var n = e.uid
861 , s = {};
862 s[t] = a,
863 R.database().ref("/customProfile/".concat(n, "/attributes")).update(s)
864 }(window.RQ.user, t, a),
865 window.customerly && window.customerlySettings && window.customerlySettings.email && window.customerlySettings.user_id && window.customerly("attribute", t, a),
866 window.HelpCrunch && window.helpCrunchSettings && window.helpCrunchSettings.email && window.helpCrunchSettings.user_id) {
867 var n = {};
868 n[t] = a,
869 window.HelpCrunch("updateUserData", n)
870 }
871 window.sendXSettings && -1 !== x.indexOf(t) && (window.sendXSettings.customFields = window.sendXSettings.customFields || {},
872 window.sendXSettings.customFields[t] = String(a),
873 Object.keys(window.sendXSettings.customFields).length >= 3 && (window._scq.push(["identify", window.sendXSettings]),
874 window.sendXSettings.customFields = {})),
875 P.GA_CUSTOM_METRICS[t] && window.ga("set", P.GA_CUSTOM_METRICS[t], a),
876 window.fcWidget && window.fcWidget.user.setProperties(Object(D.a)({}, t, a))
877 }
878 }
879 function F(e) {
880 if (e && e.uid && e.providerData && e.providerData.length > 0) {
881 var t = e.providerData[0];
882 return {
883 name: t.displayName,
884 email: t.email,
885 uid: e.uid
886 }
887 }
888 }
889 function q(e) {
890 window.customerlySettings = function(e, t) {
891 var a = {
892 app_id: t
893 }
894 , n = F(e);
895 return n && (n.user_id = n.uid,
896 Object.assign(a, n)),
897 a
898 }(e, "8d3099ba"),
899 function() {
900 var e = window
901 , t = document
902 , a = function e() {
903 e.c(arguments)
904 };
905 e.customerly_queue = [],
906 a.c = function(t) {
907 e.customerly_queue.push(t)
908 }
909 ,
910 e.customerly = a,
911 function() {
912 var e = t.createElement("script");
913 e.type = "text/javascript",
914 e.async = !0,
915 e.src = "https://widget.customerly.io/widget/8d3099ba";
916 var a = t.getElementsByTagName("script")[0];
917 a.parentNode.insertBefore(e, a)
918 }()
919 }()
920 }
921 var M = function(e, t, a, n) {
922 j({
923 eventCategory: e,
924 eventAction: t,
925 eventLabel: a.replace(".", "_").replace("@", "_at_"),
926 eventValue: n
927 })
928 }
929 , B = function(e, t) {
930 U({
931 attr: e,
932 value: String(t).replace(".", "_")
933 })
934 }
935 , G = function() {
936 document.body.classList.remove("has-bulma-styling"),
937 document.body.classList.add("has-mdb-styling")
938 }
939 , _ = function(e, t) {
940 M(P.CATEGORIES.LOGIN, e, P.CATEGORIES.LOGIN + "_" + e + "_from_" + t)
941 }
942 , z = function(e, t) {
943 M(P.CATEGORIES.SIGNUP, e, P.CATEGORIES.SIGNUP + "_" + e + "_from_" + t)
944 }
945 , V = function(e) {
946 function t(e) {
947 var a;
948 return Object(o.a)(this, t),
949 (a = Object(d.a)(this, Object(m.a)(t).call(this, e))).onChange = function(e) {
950 a.setState({
951 couponCodeText: e.target.value
952 })
953 }
954 ,
955 a.handleApplyCoupon = function() {
956 var e = a.state.couponCodeText;
957 e ? (a.setState({
958 isBeingApplied: !0
959 }),
960 R.functions().httpsCallable("getCouponDiscount")({
961 coupon: e
962 }).then(function(t) {
963 var n = t.data;
964 "number" === typeof n && 0 !== n ? (a.setState({
965 couponValue: n,
966 isApplied: !0,
967 descriptionMessage: "".concat(n, "% OFF"),
968 isBeingApplied: !1
969 }),
970 M(P.CATEGORIES.PRICING, P.ACTIONS.APPLIED_SUCCESSFULLY, "Coupon Applied ".concat(e, " ").concat(n))) : (a.setState({
971 couponValue: 0,
972 isApplied: !1,
973 coupon: "",
974 descriptionMessage: "Invalid coupon code.",
975 isBeingApplied: !1
976 }),
977 M(P.CATEGORIES.PRICING, P.ACTIONS.APPLIED_UNSUCCESSFULLY, "Coupon Failed ".concat(e))),
978 a.props.setCouponDiscountValue(n, e)
979 }).catch(console.error)) : a.setState({
980 couponValue: 0,
981 isApplied: !1,
982 coupon: "",
983 descriptionMessage: "",
984 isBeingApplied: !1
985 })
986 }
987 ,
988 a.handleRemoveCoupon = function() {
989 a.setState({
990 couponCodeText: "",
991 couponValue: 0,
992 isApplied: !1,
993 descriptionMessage: ""
994 }),
995 a.props.setCouponDiscountValue(0, "")
996 }
997 ,
998 a.handleFormSubmit = function(e) {
999 e.preventDefault(),
1000 a.state.isApplied ? a.handleRemoveCoupon() : a.handleApplyCoupon()
1001 }
1002 ,
1003 a.state = {
1004 couponCodeText: "",
1005 couponValue: 0,
1006 isApplied: !1,
1007 descriptionMessage: "",
1008 isBeingApplied: !1
1009 },
1010 a
1011 }
1012 return Object(p.a)(t, e),
1013 Object(u.a)(t, [{
1014 key: "render",
1015 value: function() {
1016 var e = this.state
1017 , t = e.couponCodeText
1018 , a = e.isApplied
1019 , n = e.descriptionMessage
1020 , s = e.isBeingApplied
1021 , i = n && !a
1022 , l = n && a;
1023 return r.a.createElement("form", {
1024 onSubmit: this.handleFormSubmit
1025 }, r.a.createElement("div", {
1026 className: "field has-addons"
1027 }, r.a.createElement("div", {
1028 className: "control"
1029 }, r.a.createElement("input", {
1030 className: ["input", i ? "is-danger" : "", l ? "is-success" : ""].join(" "),
1031 type: "text",
1032 placeholder: "Enter coupon code...",
1033 value: t,
1034 disabled: a || s,
1035 onChange: this.onChange
1036 }), i ? r.a.createElement("p", {
1037 className: "help is-danger"
1038 }, n) : null, l ? r.a.createElement("p", {
1039 className: "help is-success"
1040 }, n) : null), s ? r.a.createElement("p", {
1041 className: "control"
1042 }, r.a.createElement("button", {
1043 className: "button is-loading"
1044 }, "Loading")) : a ? r.a.createElement("p", {
1045 className: "control"
1046 }, r.a.createElement("button", {
1047 type: "submit",
1048 className: "button is-dark"
1049 }, r.a.createElement("span", null, "Remove Coupon"))) : r.a.createElement("p", {
1050 className: "control"
1051 }, r.a.createElement("button", {
1052 type: "submit",
1053 className: "button"
1054 }, r.a.createElement("span", null, "Apply Coupon")))))
1055 }
1056 }]),
1057 t
1058 }(i.Component)
1059 , K = a(109)
1060 , Q = a.n(K);
1061 function W(e, t, a) {
1062 return e ? t ? a ? R.auth().createUserWithEmailAndPassword(t, a).then(function(a) {
1063 return a.user.updateProfile({
1064 displayName: e,
1065 photoURL: "https://www.gravatar.com/avatar/".concat(Q()(t))
1066 }).then(function() {
1067 var e = ae(a.user);
1068 return R.database().ref(te(e.uid)).update(e).then(function() {
1069 return k.log("Profile Created Successfully"),
1070 Promise.resolve({
1071 status: !0,
1072 msg: "SignUp Successfull"
1073 })
1074 }).catch(function() {
1075 return Promise.reject({
1076 status: !1,
1077 msg: "Error while creating user Node"
1078 })
1079 })
1080 }).catch(function() {
1081 return Promise.reject({
1082 status: !1,
1083 msg: "Error while updating UserName"
1084 })
1085 })
1086 }).catch(function(e) {
1087 e.code;
1088 var t = e.message;
1089 return Promise.reject({
1090 status: !1,
1091 msg: t
1092 })
1093 }) : Promise.reject({
1094 status: !1,
1095 msg: "Password is Required"
1096 }) : Promise.reject({
1097 status: !1,
1098 msg: "Email is Required"
1099 }) : Promise.reject({
1100 status: !1,
1101 msg: "Name is Required"
1102 })
1103 }
1104 function X(e, t) {
1105 return R.auth().signInWithEmailAndPassword(e, t).then(function(e) {
1106 return k.log("Profile Logged In Successfully"),
1107 Promise.resolve({
1108 status: !0,
1109 msg: "Profile Logged In Successfully"
1110 })
1111 }).catch(function(e) {
1112 e.code;
1113 var t = e.message;
1114 return Promise.reject({
1115 status: !1,
1116 msg: t
1117 })
1118 })
1119 }
1120 function J(e) {
1121 return R.auth().sendPasswordResetEmail(e).then(function(e) {
1122 return k.log("Password reset email sent"),
1123 Promise.resolve({
1124 status: !0,
1125 msg: "Password reset email sent"
1126 })
1127 }).catch(function(e) {
1128 e.code;
1129 var t = e.message;
1130 return Promise.reject({
1131 status: !1,
1132 msg: t
1133 })
1134 })
1135 }
1136 function H(e) {
1137 return e ? R.auth().verifyPasswordResetCode(e).then(function(e) {
1138 return Promise.resolve({
1139 status: !0,
1140 email: e
1141 })
1142 }).catch(function() {
1143 return k.log("Invalid OOB Code"),
1144 Promise.reject({
1145 status: !1,
1146 msg: ""
1147 })
1148 }) : Promise.reject({
1149 status: !1,
1150 msg: ""
1151 })
1152 }
1153 function Y(e, t) {
1154 return t ? R.auth().confirmPasswordReset(e, t).then(function(e) {
1155 return k.log("Password reset successfull"),
1156 Promise.resolve({
1157 status: !0,
1158 msg: "Password Reset Successful"
1159 })
1160 }).catch(function(e) {
1161 e.code;
1162 var t = e.message;
1163 return k.log("Error Reseting Password"),
1164 Promise.reject({
1165 status: !1,
1166 msg: t
1167 })
1168 }) : Promise.reject({
1169 status: !1,
1170 msg: "Password is Required"
1171 })
1172 }
1173 function Z(e) {
1174 var t = new R.auth.GoogleAuthProvider;
1175 return t.addScope("profile"),
1176 t.addScope("email"),
1177 R.auth().signInWithPopup(t).then(function(t) {
1178 var a = ae(t.user);
1179 return R.database().ref(te(a.uid)).update(a),
1180 e.call(null, !0),
1181 a
1182 }).catch(function(e) {})
1183 }
1184 function $(e) {
1185 return R.auth().onAuthStateChanged(function(t) {
1186 t ? e.call(null, ae(t)) : e.call(null, null)
1187 })
1188 }
1189 function ee(e) {
1190 return $(function(t) {
1191 null === t ? e.call(null, {
1192 isLoggedIn: !1
1193 }) : se(["userSubscriptions", t.uid, "planDetails"], function(a) {
1194 e.call(null, {
1195 profile: t,
1196 isLoggedIn: !0,
1197 planDetails: a
1198 }),
1199 a && (B(P.ATTR.PAYMENT_MODE, a.type || P.VALUES.PAYPAL),
1200 B(P.ATTR.PLAN_ID, a.planId),
1201 a.subscription && (B(P.ATTR.PLAN_START_DATE, a.subscription.startDate),
1202 B(P.ATTR.PLAN_END_DATE, a.subscription.endDate)))
1203 })
1204 })
1205 }
1206 function te(e) {
1207 return "users/" + e + "/profile"
1208 }
1209 function ae(e) {
1210 var t = Object.assign({}, e.providerData[0]);
1211 return t.uid = e.uid,
1212 t
1213 }
1214 function ne(e) {
1215 return R.database().ref(e.join("/"))
1216 }
1217 function se(e, t) {
1218 ne(e).once("value", function(e) {
1219 return t.call(null, e.val())
1220 }, function() {
1221 return t.call(null, null)
1222 })
1223 }
1224 function ie(e) {
1225 return new Promise(function(t, a) {
1226 return se(e, t)
1227 }
1228 )
1229 }
1230 function re(e, t, a) {
1231 ne(e).set(t, a)
1232 }
1233 function le(e, t, a) {
1234 ne(e).update(t, a)
1235 }
1236 function ce(e, t) {
1237 return new Promise(function(a) {
1238 return le(e, t, a)
1239 }
1240 )
1241 }
1242 function oe() {
1243 return R.auth().signOut()
1244 }
1245 var ue = {
1246 getCancelSubmittedDetails: function() {
1247 R.auth().onAuthStateChanged(function(e) {
1248 e && R.database().ref("userSubscriptions/".concat(e.uid, "/cancelSubmitted")).on("value", function(e) {})
1249 })
1250 },
1251 getPlanDetails: function() {
1252 R.auth().onAuthStateChanged(function(e) {
1253 e && R.database().ref("userSubscriptions/".concat(e.uid, "/planDetails")).on("value", function(e) {
1254 return console.log(e.val()),
1255 e.val()
1256 })
1257 })
1258 },
1259 getPlans: function() {
1260 R.database().ref("plans").on("value", function(e) {
1261 console.log(e.val())
1262 })
1263 },
1264 getFeatures: function() {
1265 R.database().ref("features").on("value", function(e) {})
1266 },
1267 processPayment: function(e, t) {
1268 var a = R.auth().currentUser.uid;
1269 return R.database().ref("/userSubscriptions/".concat(a, "/planDetails")).update({
1270 token: e.id,
1271 planId: t,
1272 pending: !0
1273 })
1274 },
1275 cancelSubscription: function() {
1276 var e = R.auth().currentUser.uid;
1277 return R.database().ref("/userSubscriptions/".concat(e, "/cancelSubmitted")).update({
1278 pending: !0
1279 })
1280 },
1281 processPaypalPayment: function(e, t, a, n, s, i) {
1282 var r = R.auth().currentUser.uid;
1283 return R.database().ref("/userSubscriptions/".concat(r, "/planDetails")).update({
1284 orderId: e,
1285 planId: t,
1286 pending: !0,
1287 planDays: a,
1288 currency: n,
1289 finalPrice: s,
1290 coupon: i
1291 })
1292 }
1293 }
1294 , de = a(110)
1295 , me = a(111)
1296 , pe = a(112)
1297 , he = a.n(pe)
1298 , fe = "USD"
1299 , ge = {
1300 IN: "INR",
1301 MX: "MXN",
1302 GB: "GBP",
1303 EU: "EUR",
1304 US: "USD"
1305 }
1306 , Ee = "AaORQLcfr4mtfVD4txtvqn723JIUJ1vCzlQ358CTCiGaqBttyZquK7UmuUu5l4Gma12ikrP8FztIECQt"
1307 , ve = function(e) {
1308 function t(e) {
1309 var a;
1310 Object(o.a)(this, t),
1311 (a = Object(d.a)(this, Object(m.a)(t).call(this, e))).getSigninStatus = function(e) {
1312 ee(function(t) {
1313 t.isLoggedIn ? t.planDetails ? a.setState({
1314 userData: t,
1315 isPlanExpired: C.isExpired(t.planDetails),
1316 currentPlan: t.planDetails.planId.split("_")[0],
1317 isLoggedIn: t.isLoggedIn
1318 }) : a.setState({
1319 currentPlan: "bronze",
1320 userData: t,
1321 isLoggedIn: t.isLoggedIn
1322 }) : a.setState({
1323 isLoggedIn: !1
1324 }),
1325 e && e(t)
1326 })
1327 }
1328 ,
1329 a.onChoosePlan = function(e) {
1330 return function() {
1331 var t = a.state
1332 , n = t.pricingPlans
1333 , s = t.currentPlan;
1334 a.getSigninStatus(function(t) {
1335 if (t.isLoggedIn) {
1336 var i = n.find(function(t) {
1337 return t.id === e
1338 });
1339 if (C.isEnterprise(e))
1340 return;
1341 (s !== i.id || a.state.isPlanExpired) && a.setState({
1342 showSummaryModal: !0,
1343 selectedPlan: i
1344 })
1345 } else
1346 a.props.history.push("/signin?redirectUrl=".concat(window.location.pathname, "&src=pricingTable"))
1347 })
1348 }
1349 }
1350 ,
1351 a.onCurrencyChange = function(e) {
1352 var t = e.target.value;
1353 if (t !== a.state.selectedCurrency) {
1354 var n = document.createElement("script");
1355 n.type = "text/javascript",
1356 n.src = "https://www.paypal.com/sdk/js?client-id=".concat(Ee, "¤cy=").concat(t),
1357 document.head.appendChild(n),
1358 a.setState({
1359 isCurrencyLoading: !0
1360 }),
1361 n.onload = function() {
1362 a.setState({
1363 selectedCurrency: t,
1364 isCurrencyLoading: !1,
1365 PayPalButton: window.paypal.Buttons.driver("react", {
1366 React: r.a,
1367 ReactDOM: c.a
1368 })
1369 })
1370 }
1371 ,
1372 M(P.CATEGORIES.PRICING, P.ACTIONS.CURRENCY_CHANGE, "Currency changed to ".concat(t)),
1373 a.setState({
1374 selectedCurrency: t
1375 })
1376 }
1377 }
1378 ,
1379 a.onDurationChange = function(e) {
1380 var t = e.target.value;
1381 a.setState({
1382 selectedDuration: t
1383 }),
1384 M(P.CATEGORIES.PRICING, P.ACTIONS.DURATION_CHANGE, "Duration changed to ".concat(t))
1385 }
1386 ,
1387 a.createOrderPaypal = function(e, t) {
1388 var n = a.state
1389 , s = n.selectedCurrency
1390 , i = n.selectedDuration
1391 , r = n.couponDiscountValue
1392 , l = n.selectedPlan
1393 , c = (l[i].price[s] - r / 100 * l[i].price[s]).toFixed(2);
1394 return a.setState({
1395 finalPrice: c
1396 }),
1397 t.order.create({
1398 purchase_units: [{
1399 amount: {
1400 currency_code: s,
1401 value: c
1402 }
1403 }]
1404 })
1405 }
1406 ,
1407 a.onApprovePaypal = function(e, t) {
1408 var n = a.state
1409 , s = n.selectedDuration
1410 , i = n.selectedPlan
1411 , r = n.selectedCurrency
1412 , l = n.coupon
1413 , c = n.finalPrice;
1414 t.order.capture().then(function(e) {
1415 ue.processPaypalPayment(e.id, i[s].planId, Number(i[s].days), r, c, l).then(function() {
1416 Object(E.toast)({
1417 message: "Subscribed to ".concat(i[s].planId.split("_")[0], " plan - ").concat(Number(i[s].days), " days"),
1418 type: "is-success",
1419 duration: 2e3,
1420 position: "top-right",
1421 opacity: 1
1422 }),
1423 a.setState({
1424 showSummaryModal: !1
1425 }),
1426 a.getSigninStatus(),
1427 M(P.CATEGORIES.PRICING, P.ACTIONS.BOUGHT, "Bought ".concat(i.name, " ").concat(s), a.state.finalPrice);
1428 var e = new Date;
1429 e.setDate((new Date).getDate() + Number(i[s].days)),
1430 B(P.ATTR.PLANNAME, i.name),
1431 B(P.ATTR.PLAN_DURATION, s),
1432 B(P.ATTR.PLAN_START_DATE, (new Date).toISOString().split("T")[0]),
1433 B(P.ATTR.PLAN_END_DATE, e.toISOString().split("T")[0]),
1434 a.state.coupon && (B(P.ATTR.COUPON, a.state.coupon),
1435 B(P.ATTR.COUPON_VALUE, a.state.couponDiscountValue))
1436 })
1437 })
1438 }
1439 ,
1440 a.setCouponDiscountValue = function(e, t) {
1441 a.setState({
1442 couponDiscountValue: e,
1443 coupon: t
1444 })
1445 }
1446 ;
1447 var n = Object.values(ge).includes(e.currency) ? e.currency : null;
1448 return a.state = {
1449 shouldOverrideCurrency: !!n,
1450 selectedCurrency: n ? n.toUpperCase() : fe,
1451 selectedDuration: "monthly",
1452 couponDiscountValue: 0,
1453 coupon: "",
1454 pricingPlans: de,
1455 features: me,
1456 isCurrencyLoading: !0,
1457 currentPlan: null,
1458 isLoggedIn: null,
1459 showSummaryModal: !1
1460 },
1461 a
1462 }
1463 return Object(p.a)(t, e),
1464 Object(u.a)(t, [{
1465 key: "componentDidMount",
1466 value: function() {
1467 this.getSigninStatus(),
1468 this.loadPaypalScriptAsPerUserCountry()
1469 }
1470 }, {
1471 key: "loadPaypalScriptAsPerUserCountry",
1472 value: function() {
1473 var e = this;
1474 e.state.shouldOverrideCurrency ? e.loadPaypalSDK(this.state.selectedCurrency) : he.a.ajax({
1475 url: "https://geoip-db.com/jsonp",
1476 jsonpCallback: "callback",
1477 dataType: "jsonp",
1478 success: function(t) {
1479 if (t && t.country_code) {
1480 var a = e.getDefaultCurrencyBasedOnLocation(t.country_code);
1481 e.loadPaypalSDK(a)
1482 } else
1483 e.loadPaypalSDK(fe)
1484 },
1485 error: function(t) {
1486 e.loadPaypalSDK(fe)
1487 }
1488 })
1489 }
1490 }, {
1491 key: "loadPaypalSDK",
1492 value: function(e) {
1493 var t = this
1494 , a = document.createElement("script");
1495 a.type = "text/javascript",
1496 a.src = "https://www.paypal.com/sdk/js?client-id=".concat(Ee, "¤cy=").concat(e),
1497 document.head.appendChild(a),
1498 a.onload = function() {
1499 t.setState({
1500 selectedCurrency: e,
1501 isCurrencyLoading: !1,
1502 PayPalButton: window.paypal.Buttons.driver("react", {
1503 React: r.a,
1504 ReactDOM: c.a
1505 })
1506 })
1507 }
1508 }
1509 }, {
1510 key: "getDefaultCurrencyBasedOnLocation",
1511 value: function(e) {
1512 return ge[e] || fe
1513 }
1514 }, {
1515 key: "onDurationToggle",
1516 value: function(e) {
1517 0 === e ? this.setState({
1518 selectedDuration: "monthly"
1519 }) : 1 === e ? this.setState({
1520 selectedDuration: "quarterly"
1521 }) : 2 === e ? this.setState({
1522 selectedDuration: "half-yearly"
1523 }) : 3 === e && this.setState({
1524 selectedDuration: "annual"
1525 })
1526 }
1527 }, {
1528 key: "render",
1529 value: function() {
1530 var e = this
1531 , t = this.state
1532 , a = t.selectedCurrency
1533 , n = t.selectedDuration
1534 , s = t.couponDiscountValue
1535 , i = t.pricingPlans
1536 , l = t.features
1537 , c = t.currentPlan
1538 , o = t.selectedPlan
1539 , u = t.showSummaryModal
1540 , d = t.userData
1541 , m = t.PayPalButton
1542 , p = t.isPlanExpired
1543 , h = (t.isCurrencyLoading,
1544 function() {
1545 return "monthly" === n ? 0 : "annual" === n ? 1 : 0
1546 }
1547 )
1548 , f = o ? (o[n].price[a] - s / 100 * o[n].price[a]).toFixed(2) : "...";
1549 return r.a.createElement("div", null, r.a.createElement("section", {
1550 className: "hero"
1551 }, r.a.createElement("div", {
1552 className: "hero-body has-text-centered"
1553 }, r.a.createElement("div", {
1554 className: "container"
1555 }, r.a.createElement("h1", {
1556 className: "title"
1557 }, "Requestly Premium"), r.a.createElement("h2", {
1558 className: "subtitle"
1559 }, "Join more than 100,000 developers using Requestly in their development and testing workflows.")))), r.a.createElement("div", {
1560 className: "container",
1561 style: {
1562 padding: "5px"
1563 }
1564 }, r.a.createElement("div", {
1565 className: "columns is-desktop"
1566 }, r.a.createElement("div", {
1567 className: "column is-7 has-text-centered box-sizing-initial"
1568 }, r.a.createElement("div", null, r.a.createElement(b.a, {
1569 texts: ["Monthly", "Quarterly", "Half-Yearly", "Yearly"],
1570 selectedSwitch: h(),
1571 bgColor: "#FAFAFA",
1572 fontColor: "black",
1573 selectedFontColor: "white",
1574 selectedSwitchColor: "#3274DD",
1575 eachSwitchWidth: window.innerWidth > 632 ? 200 : 100,
1576 height: "40px",
1577 fontSize: "1rem",
1578 borderWidth: "1px",
1579 borderColor: "#F5F5F5",
1580 fontWeight: "normal",
1581 onToggleCallback: this.onDurationToggle.bind(this)
1582 })), r.a.createElement("div", {
1583 className: "responsiveMultiswitch"
1584 }, r.a.createElement(b.a, {
1585 texts: ["", "", "1 month FREE!", "3 months FREE!"],
1586 selectedSwitch: h(),
1587 bgColor: "white",
1588 fontColor: "#3273DC",
1589 selectedFontColor: "#3273DC",
1590 selectedSwitchColor: "white",
1591 eachSwitchWidth: window.innerWidth > 632 ? 200 : 100,
1592 height: "8px",
1593 fontSize: "0.8rem",
1594 borderWidth: "0px",
1595 fontWeight: "bold"
1596 }))), r.a.createElement("div", {
1597 className: "column is-5 has-text-centered box-sizing-initial margin-top-little"
1598 }, r.a.createElement("div", {
1599 className: "buttons is-centered"
1600 }, r.a.createElement("div", {
1601 className: "field is-grouped"
1602 }, r.a.createElement(V, {
1603 setCouponDiscountValue: this.setCouponDiscountValue
1604 })))))), r.a.createElement("div", {
1605 className: "container"
1606 }, r.a.createElement(I, {
1607 currency: a,
1608 duration: n,
1609 couponDiscountValue: s,
1610 plans: i,
1611 features: l,
1612 currentPlan: c,
1613 isPlanExpired: p,
1614 onChoosePlan: this.onChoosePlan
1615 })), o ? r.a.createElement("div", {
1616 className: ["modal", u ? "is-active" : ""].join(" ")
1617 }, r.a.createElement("div", {
1618 className: "modal-background"
1619 }), r.a.createElement("div", {
1620 className: "modal-content"
1621 }, r.a.createElement("div", {
1622 className: "box has-text-centered"
1623 }, r.a.createElement("h3", {
1624 className: "title is-3"
1625 }, "Payment"), r.a.createElement("h4", {
1626 className: "title is-4"
1627 }, o.name, " Plan"), r.a.createElement("h6", {
1628 className: "subtitle is-6"
1629 }, d.profile.email), r.a.createElement("div", {
1630 className: "pricing-table"
1631 }, r.a.createElement("div", {
1632 className: "pricing-plan"
1633 }, r.a.createElement(y, {
1634 currency: a,
1635 duration: n,
1636 price: f
1637 }))), m ? r.a.createElement(m, {
1638 createOrder: this.createOrderPaypal,
1639 onApprove: this.onApprovePaypal
1640 }) : "Error loading Paypal SDK.")), r.a.createElement("button", {
1641 className: "modal-close is-large",
1642 "aria-label": "close",
1643 onClick: function() {
1644 e.setState({
1645 showSummaryModal: !1
1646 })
1647 }
1648 })) : null, r.a.createElement("div", {
1649 className: "container section content"
1650 }, this.state.currentPlan === C.allPlanNames().SILVER ? r.a.createElement(r.a.Fragment, null, r.a.createElement("span", null, "You are on Silver Plan which expires on ", C.getEndDate(this.state.userData.planDetails), ". Silver Plan is deprecated and can no longer be renewed. Please contact us at ", r.a.createElement("a", {
1651 href: "mailto:contact@requestly.io"
1652 }, "contact@requestly.io"), " for further questions."), r.a.createElement("br", null), r.a.createElement("br", null)) : null, r.a.createElement("strong", null, "Note"), ": Please read our Terms & Conditions", " ", r.a.createElement("a", {
1653 target: "_blank",
1654 href: "https://www.requestly.in/terms/",
1655 rel: "noreferrer noopener"
1656 }, "here"), ". T&C apply when you purchase any of the above plans."))
1657 }
1658 }]),
1659 t
1660 }(i.Component)
1661 , be = Object(f.e)(ve)
1662 , ye = a(115)
1663 , Ne = a.n(ye)
1664 , we = (a(229),
1665 function(e) {
1666 function t() {
1667 return Object(o.a)(this, t),
1668 Object(d.a)(this, Object(m.a)(t).apply(this, arguments))
1669 }
1670 return Object(p.a)(t, e),
1671 Object(u.a)(t, [{
1672 key: "componentDidMount",
1673 value: function() {
1674 this.collapsibles = Ne.a.attach(".is-collapsible", {
1675 container: this.refs.collapsibles
1676 })
1677 }
1678 }, {
1679 key: "render",
1680 value: function() {
1681 return r.a.createElement("div", {
1682 ref: "collapsibles",
1683 id: "accordion_first",
1684 className: "container section content"
1685 }, r.a.createElement("h3", null, "Frequently Asked Questions"), r.a.createElement("article", {
1686 className: "message"
1687 }, r.a.createElement("div", {
1688 className: "message-header "
1689 }, r.a.createElement("p", null, r.a.createElement("a", {
1690 className: "has-no-text-decoration",
1691 href: "#collapsible-message-accordion-1",
1692 "data-action": "collapse"
1693 }, "Do you offer any trial period?"))), r.a.createElement("div", {
1694 id: "collapsible-message-accordion-1",
1695 className: "message-body is-collapsible is-active",
1696 "data-parent": "accordion_first"
1697 }, r.a.createElement("div", {
1698 className: "message-body-content"
1699 }, "No, There is no free trial. But we offer", " ", r.a.createElement("strong", null, "30-Day Guarantee Period"), ". If you do not like the product, you can request for refund by reaching our support."))), r.a.createElement("article", {
1700 className: "message"
1701 }, r.a.createElement("div", {
1702 className: "message-header "
1703 }, r.a.createElement("p", null, r.a.createElement("a", {
1704 className: "has-no-text-decoration",
1705 href: "#collapsible-message-accordion-2",
1706 "data-action": "collapse"
1707 }, "Is there any discount for an annual subscription?"))), r.a.createElement("div", {
1708 id: "collapsible-message-accordion-2",
1709 className: "message-body is-collapsible",
1710 "data-parent": "accordion_first"
1711 }, r.a.createElement("div", {
1712 className: "message-body-content"
1713 }, "Yes, we offer discounts if you choose annual subscription for any plan. Please check annual pricing for details."))), r.a.createElement("article", {
1714 className: "message"
1715 }, r.a.createElement("div", {
1716 className: "message-header "
1717 }, r.a.createElement("p", null, r.a.createElement("a", {
1718 className: "has-no-text-decoration",
1719 href: "#collapsible-message-accordion-3",
1720 "data-action": "collapse"
1721 }, "Which payment methods do you take?"))), r.a.createElement("div", {
1722 id: "collapsible-message-accordion-3",
1723 className: "message-body is-collapsible",
1724 "data-parent": "accordion_first"
1725 }, r.a.createElement("div", {
1726 className: "message-body-content"
1727 }, "We are using ", r.a.createElement("strong", null, "Paypal"), " as our payment mode. PayPal accepts all major credit cards from", " ", r.a.createElement("strong", null, "Visa, Mastercard, American Express and Discover"), "."))), r.a.createElement("article", {
1728 className: "message"
1729 }, r.a.createElement("div", {
1730 className: "message-header "
1731 }, r.a.createElement("p", null, r.a.createElement("a", {
1732 className: "has-no-text-decoration",
1733 href: "#collapsible-message-accordion-4",
1734 "data-action": "collapse"
1735 }, "I have another query..."))), r.a.createElement("div", {
1736 id: "collapsible-message-accordion-4",
1737 className: "message-body is-collapsible",
1738 "data-parent": "accordion_first"
1739 }, r.a.createElement("div", {
1740 className: "message-body-content"
1741 }, "We are happy to help you. You can live chat with us during our office hours or write to us at", " ", r.a.createElement("a", {
1742 className: "has-no-text-decoration",
1743 href: "mailto:contact@requestly.io",
1744 target: "_blank"
1745 }, r.a.createElement("strong", null, "contact@requestly.io")), "."))), r.a.createElement("article", {
1746 className: "message"
1747 }, r.a.createElement("div", {
1748 className: "message-header "
1749 }, r.a.createElement("p", null, r.a.createElement("a", {
1750 className: "has-no-text-decoration",
1751 href: "#collapsible-message-accordion-5",
1752 "data-action": "collapse"
1753 }, "Do you offer any student plans?"))), r.a.createElement("div", {
1754 id: "collapsible-message-accordion-5",
1755 className: "message-body is-collapsible",
1756 "data-parent": "accordion_first"
1757 }, r.a.createElement("div", {
1758 className: "message-body-content"
1759 }, "Yes, we offer free 1 year premium plan to students. Just drop an email to ", r.a.createElement("a", {
1760 href: "mailto:contact@requestly.io"
1761 }, "contact@requestly.io"), " with your student ID card photo and we will get in touch with you soon."))))
1762 }
1763 }]),
1764 t
1765 }(i.Component))
1766 , Se = (a(230),
1767 function(e) {
1768 function t() {
1769 return Object(o.a)(this, t),
1770 Object(d.a)(this, Object(m.a)(t).apply(this, arguments))
1771 }
1772 return Object(p.a)(t, e),
1773 Object(u.a)(t, [{
1774 key: "render",
1775 value: function() {
1776 var e = this.props.location.search.substr(1);
1777 return r.a.createElement("div", {
1778 className: "has-bulma-styling has-bottom-margin-30 has-height-100"
1779 }, r.a.createElement(g.Helmet, null, r.a.createElement("title", null, "Requestly Premium - Pricing Plans")), r.a.createElement(be, {
1780 currency: e
1781 }), r.a.createElement(we, null), r.a.createElement("br", null))
1782 }
1783 }]),
1784 t
1785 }(i.Component))
1786 , Oe = function(e) {
1787 function t(e) {
1788 var a;
1789 return Object(o.a)(this, t),
1790 (a = Object(d.a)(this, Object(m.a)(t).call(this, e))).fetchLoginDetails = function() {
1791 ee(function(e) {
1792 if (a.setState({
1793 isLoggedIn: !!e.isLoggedIn,
1794 isLoading: !1
1795 }),
1796 e.isLoggedIn && (a.setState({
1797 email: e.profile.email
1798 }),
1799 e.planDetails && "license" === e.planDetails.type)) {
1800 var t = e.planDetails.subscription || {}
1801 , n = t.endDate || 1e3 * t.current_period_end
1802 , s = new Date(n).toISOString().split("T")[0]
1803 , i = (new Date).toISOString().split("T")[0];
1804 a.setState({
1805 hasLicense: "license" === e.planDetails.type,
1806 planId: e.planDetails.planId,
1807 licenseCode: e.planDetails.subscription.id,
1808 validUpto: new Date(s).toDateString()
1809 }),
1810 a.setState({
1811 isExpired: i > s
1812 })
1813 }
1814 })
1815 }
1816 ,
1817 a.getSigninStatus = function() {
1818 a.setState({
1819 isLoading: !0
1820 }),
1821 a.fetchLoginDetails()
1822 }
1823 ,
1824 a.onChange = function(e) {
1825 a.setState(Object(D.a)({}, e.target.name, e.target.value))
1826 }
1827 ,
1828 a.handleApplyLicense = function() {
1829 a.setState({
1830 isApplying: !0
1831 });
1832 var e = a.state
1833 , t = e.licenseCode
1834 , n = e.company
1835 , s = e.email;
1836 R.functions().httpsCallable("applyLicense")({
1837 license: t,
1838 company: n,
1839 email: s
1840 }).then(function(e) {
1841 console.log(e),
1842 a.setState({
1843 isApplying: !1,
1844 isApplied: e.data.success,
1845 descriptionMessage: e.data.message
1846 }),
1847 e.data.success ? (M(P.CATEGORIES.LICENSE, P.ACTIONS.APPLIED_SUCCESSFULLY, "License Applied ".concat(n, " ").concat(t)),
1848 B(P.ATTR.LICENSE, t),
1849 B(P.ATTR.COMPANY, n)) : M(P.CATEGORIES.LICENSE, P.ACTIONS.APPLIED_UNSUCCESSFULLY, "License Failed ".concat(n, " ").concat(t)),
1850 a.fetchLoginDetails()
1851 }).catch(console.error)
1852 }
1853 ,
1854 a.handleFormSubmit = function(e) {
1855 e.preventDefault(),
1856 a.handleApplyLicense()
1857 }
1858 ,
1859 a.state = {
1860 licenseCode: "",
1861 planId: "",
1862 company: "",
1863 isApplying: !1,
1864 isApplied: !1,
1865 descriptionMessage: "",
1866 isLoggedIn: !1,
1867 hasLicense: !1,
1868 isExpired: !1,
1869 isLoading: !1,
1870 email: ""
1871 },
1872 a
1873 }
1874 return Object(p.a)(t, e),
1875 Object(u.a)(t, [{
1876 key: "componentDidMount",
1877 value: function() {
1878 this.getSigninStatus()
1879 }
1880 }, {
1881 key: "render",
1882 value: function() {
1883 var e = this.state
1884 , t = e.licenseCode
1885 , a = e.company
1886 , n = e.isApplying
1887 , s = e.isApplied
1888 , i = e.descriptionMessage
1889 , l = i && !s
1890 , c = i && s;
1891 return this.state.isLoading ? r.a.createElement("div", {
1892 className: "columns is-centered"
1893 }, r.a.createElement("div", {
1894 className: "button is-text is-loading is-large"
1895 })) : this.state.isLoggedIn ? this.state.hasLicense ? r.a.createElement("div", null, r.a.createElement("div", {
1896 className: "columns is-centered "
1897 }, r.a.createElement("p", null, "You have a", " ", r.a.createElement("strong", null, this.state.planId.split("_")[0].toUpperCase()), " ", "License Key."), r.a.createElement("br", null), r.a.createElement("p", null, "Your License is valid upto :", " ", r.a.createElement("strong", null, this.state.validUpto)))) : r.a.createElement("form", {
1898 onSubmit: this.handleFormSubmit
1899 }, r.a.createElement("center", null, r.a.createElement("p", null, "Please enter the following details ")), r.a.createElement("br", null), r.a.createElement("div", {
1900 className: "field is-horizontal"
1901 }, r.a.createElement("div", {
1902 className: "field-body"
1903 }, r.a.createElement("div", {
1904 className: "field has-addons"
1905 }, r.a.createElement("p", {
1906 className: "control"
1907 }, r.a.createElement("a", {
1908 className: "button is-static"
1909 }, "Company")), r.a.createElement("p", {
1910 className: "control is-expanded"
1911 }, r.a.createElement("input", {
1912 name: "company",
1913 className: ["input", l ? "is-danger" : "", c ? "is-success" : ""].join(" "),
1914 type: "text",
1915 placeholder: "Enter Company Name",
1916 value: a,
1917 disabled: s,
1918 onChange: this.onChange
1919 }))))), r.a.createElement("div", {
1920 className: "field is-horizontal"
1921 }, r.a.createElement("div", {
1922 className: "field-body"
1923 }, r.a.createElement("div", {
1924 className: "field has-addons"
1925 }, r.a.createElement("p", {
1926 className: "control"
1927 }, r.a.createElement("a", {
1928 className: "button is-static"
1929 }, "License")), r.a.createElement("p", {
1930 className: "control is-expanded"
1931 }, r.a.createElement("input", {
1932 name: "licenseCode",
1933 className: ["input", l ? "is-danger" : "", c ? "is-success" : ""].join(" "),
1934 type: "text",
1935 placeholder: "Enter License code",
1936 value: t,
1937 disabled: s,
1938 onChange: this.onChange
1939 }))))), s ? null : r.a.createElement("p", {
1940 className: "control"
1941 }, n ? r.a.createElement("button", {
1942 type: "submit",
1943 disabled: "disabled",
1944 className: "button is-fullwidth"
1945 }, r.a.createElement("span", null, "Applying")) : r.a.createElement("button", {
1946 type: "submit",
1947 className: "button is-fullwidth"
1948 }, r.a.createElement("span", null, "Apply License"))), l ? r.a.createElement("center", null, r.a.createElement("p", {
1949 className: "help is-danger"
1950 }, i)) : null, c ? r.a.createElement("center", null, r.a.createElement("p", {
1951 className: "help is-success"
1952 }, i)) : null) : r.a.createElement("div", null, r.a.createElement("div", {
1953 className: "columns is-centered "
1954 }, r.a.createElement("p", null, "Please login to access your license details")), r.a.createElement("div", {
1955 className: "columns is-centered "
1956 }, r.a.createElement(h.b, {
1957 className: "button is-primary",
1958 to: "/signin?redirectUrl=" + window.location.pathname + "&src=applyLicense"
1959 }, "Sign In")))
1960 }
1961 }]),
1962 t
1963 }(i.Component)
1964 , Ce = function(e) {
1965 function t() {
1966 return Object(o.a)(this, t),
1967 Object(d.a)(this, Object(m.a)(t).apply(this, arguments))
1968 }
1969 return Object(p.a)(t, e),
1970 Object(u.a)(t, [{
1971 key: "render",
1972 value: function() {
1973 return r.a.createElement("div", {
1974 className: "card"
1975 }, r.a.createElement("header", {
1976 className: "card-header"
1977 }, r.a.createElement("p", {
1978 className: "card-header-title"
1979 }, "License Details"), r.a.createElement("span", {
1980 className: "card-header-icon"
1981 }, r.a.createElement(h.b, {
1982 to: "/license/manage",
1983 className: "card-header-icon button is-primary"
1984 }, "Manage Licenses"))), r.a.createElement("div", {
1985 className: "card-content"
1986 }, r.a.createElement("div", {
1987 className: "content-body"
1988 }, r.a.createElement(Oe, null))))
1989 }
1990 }]),
1991 t
1992 }(i.Component)
1993 , Ie = function(e) {
1994 function t(e) {
1995 var a;
1996 return Object(o.a)(this, t),
1997 (a = Object(d.a)(this, Object(m.a)(t).call(this, e))).getSigninStatus = function() {
1998 a.setState({
1999 isLoading: !0
2000 }),
2001 ee(function(e) {
2002 (a.setState({
2003 isLoading: !0
2004 }),
2005 console.log(e),
2006 e.isLoggedIn) ? (a.setState({
2007 isLoggedIn: !0
2008 }),
2009 R.functions().httpsCallable("getCompanyLicenseUsers")({}).then(function(e) {
2010 console.log(e),
2011 a.setState({
2012 isAdmin: e.data.success,
2013 users: e.data.users ? e.data.users : {},
2014 isLoading: !1
2015 })
2016 }).catch(function(e) {
2017 console.log(e)
2018 })) : a.setState({
2019 isLoggedIn: !1,
2020 isLoading: !1
2021 })
2022 })
2023 }
2024 ,
2025 a.handleRevoke = function(e) {
2026 var t = a.state.users[e].email
2027 , n = R.functions().httpsCallable("revokeLicense");
2028 a.setState({
2029 isRevoking: !0
2030 }),
2031 n({
2032 userId: e
2033 }).then(function(e) {
2034 console.log(e),
2035 a.setState({
2036 isRevoking: !1,
2037 isAdmin: e.data.success,
2038 users: e.data.users ? e.data.users : {}
2039 }),
2040 Object(E.toast)({
2041 message: "Revoked ".concat(t, " License"),
2042 type: "is-success",
2043 duration: 3e3,
2044 position: "top-right",
2045 opacity: 1
2046 }),
2047 M(P.CATEGORIES.LICENSE, P.ACTIONS.REVOKED, "License Revoked ".concat(t))
2048 })
2049 }
2050 ,
2051 a.state = {
2052 isloading: !1,
2053 isAdmin: !1,
2054 isLoggedIn: !1,
2055 isRevoking: !1,
2056 users: {}
2057 },
2058 a
2059 }
2060 return Object(p.a)(t, e),
2061 Object(u.a)(t, [{
2062 key: "componentDidMount",
2063 value: function() {
2064 this.getSigninStatus()
2065 }
2066 }, {
2067 key: "render",
2068 value: function() {
2069 var e = this;
2070 return r.a.createElement("div", null, r.a.createElement("div", null, r.a.createElement("h4", {
2071 className: "title is-4"
2072 }, "Manage Licenses"), r.a.createElement("h6", {
2073 className: "subtitle is-6"
2074 }, "Add/remove team members from your Requestly license.")), r.a.createElement("div", {
2075 className: "",
2076 style: {
2077 padding: "2rem"
2078 }
2079 }, this.state.isLoading ? r.a.createElement("div", {
2080 className: "columns section is-centered"
2081 }, r.a.createElement("div", {
2082 className: "button is-text is-loading is-large"
2083 })) : this.state.isLoggedIn ? this.state.isAdmin ? Object.keys(this.state.users).length > 0 ? r.a.createElement("table", {
2084 className: "table"
2085 }, r.a.createElement("thead", null, r.a.createElement("tr", null, r.a.createElement("th", null, "User ID"), r.a.createElement("th", null, "Email"), r.a.createElement("th", null, "License Key"), r.a.createElement("th", null, "Applied On"), r.a.createElement("th", null, "#"))), r.a.createElement("tbody", null, Object.keys(this.state.users).map(function(t) {
2086 return r.a.createElement("tr", {
2087 key: t
2088 }, r.a.createElement("td", null, t), r.a.createElement("td", null, e.state.users[t].email), r.a.createElement("td", null, e.state.users[t].licenseKey), r.a.createElement("td", null, new Date(e.state.users[t].appliedOn).toDateString()), r.a.createElement("td", null, r.a.createElement("button", {
2089 className: ["button", "is-danger", e.state.isRevoking ? "is-loading" : ""].join(" "),
2090 onClick: function(a) {
2091 return e.handleRevoke(t)
2092 },
2093 disabled: e.state.isRevoking
2094 }, "Revoke")))
2095 }))) : r.a.createElement("div", null, r.a.createElement("p", null, "No users using license keys")) : r.a.createElement("div", null, r.a.createElement("div", {
2096 className: "columns section is-centered"
2097 }, r.a.createElement("p", null, "Only the company admin can manage licenses. Please talk to your company admin if you want to be added as an admin to your company."))) : r.a.createElement("div", {
2098 className: "columns section is-centered"
2099 }, r.a.createElement(h.b, {
2100 className: "button is-primary",
2101 to: "/signin?redirectUrl=" + window.location.pathname + "&src=dashboard"
2102 }, "Sign In"))))
2103 }
2104 }]),
2105 t
2106 }(i.Component);
2107 function Ae() {
2108 return document.documentElement.getAttribute("rq-ext-version")
2109 }
2110 function Re() {
2111 return !!Ae()
2112 }
2113 function Pe(e) {
2114 return new Promise(function(t) {
2115 return L.sendMessage(e, t)
2116 }
2117 )
2118 }
2119 function De() {
2120 return Pe({
2121 action: "GET_STORAGE_TYPE"
2122 })
2123 }
2124 function ke() {
2125 return Pe({
2126 action: "GET_STORAGE_INFO"
2127 })
2128 }
2129 function Le() {
2130 return new Promise(function(e) {
2131 L.sendMessage({
2132 action: "GET_STORAGE_SUPER_OBJECT"
2133 }, e)
2134 }
2135 )
2136 }
2137 function Te(e) {
2138 return new Promise(function(t) {
2139 L.sendMessage({
2140 action: "GET_STORAGE_OBJECT",
2141 key: e
2142 }, t)
2143 }
2144 )
2145 }
2146 function xe(e) {
2147 return new Promise(function(t) {
2148 L.sendMessage({
2149 action: "SAVE_STORAGE_OBJECT",
2150 object: e
2151 }, t)
2152 }
2153 )
2154 }
2155 function je(e) {
2156 return new Promise(function(t) {
2157 L.sendMessage({
2158 action: "REMOVE_STORAGE_OBJECT",
2159 key: e
2160 }, t)
2161 }
2162 )
2163 }
2164 function Ue() {
2165 return new Promise(function(e) {
2166 L.sendMessage({
2167 action: "CLEAR_STORAGE"
2168 }, e)
2169 }
2170 )
2171 }
2172 function Fe(e) {
2173 return new Promise(function(t) {
2174 L.sendMessage({
2175 action: "SET_STORAGE_TYPE",
2176 storageType: e
2177 }, t)
2178 }
2179 )
2180 }
2181 function qe() {
2182 return Pe({
2183 action: "GET_REMOTE_RULES_SETTINGS"
2184 })
2185 }
2186 function Me(e) {
2187 return new Promise(function(t) {
2188 L.sendMessage({
2189 action: "SET_REMOTE_RULES_SETTINGS",
2190 remoteRulesSettings: e
2191 }, t)
2192 }
2193 )
2194 }
2195 var Be = function(e) {
2196 function t(e) {
2197 var a;
2198 return Object(o.a)(this, t),
2199 (a = Object(d.a)(this, Object(m.a)(t).call(this, e))).state = {
2200 storageType: ""
2201 },
2202 a.fetchData(),
2203 a
2204 }
2205 return Object(p.a)(t, e),
2206 Object(u.a)(t, [{
2207 key: "fetchData",
2208 value: function() {
2209 var e = this;
2210 ke().then(function(t) {
2211 console.log(t),
2212 e.setState({
2213 storageType: t.storageType,
2214 numItems: t.numItems,
2215 bytesUsed: t.bytesUsed
2216 })
2217 })
2218 }
2219 }, {
2220 key: "renderStorageTypeSetting",
2221 value: function() {
2222 var e = this;
2223 return r.a.createElement("div", {
2224 className: "columns is-vcentered is-marginless"
2225 }, r.a.createElement("div", {
2226 className: "column is-one-third has-text-centered"
2227 }, r.a.createElement("p", {
2228 className: "title is-6 label-left"
2229 }, "Select Storage Type")), r.a.createElement("div", {
2230 className: "column notification " + ("sync" === this.state.storageType ? "is-info" : ""),
2231 style: {
2232 margin: "1rem"
2233 }
2234 }, r.a.createElement("div", {
2235 className: "level",
2236 style: {
2237 marginBottom: "0.5rem"
2238 }
2239 }, r.a.createElement("div", {
2240 className: "level-left"
2241 }, r.a.createElement("p", {
2242 className: "title is-6 level-item"
2243 }, "Sync Storage")), "sync" !== this.state.storageType ? r.a.createElement("div", {
2244 className: "level-right"
2245 }, r.a.createElement("button", {
2246 className: "button level-item",
2247 onClick: function(t) {
2248 return e.changeStorageType("sync")
2249 }
2250 }, "Select")) : "Selected"), r.a.createElement("p", null, "Sync Storage syncs data between multiple devices when user is logged in chrome/firefox profile. Prefer when you have less than 75 rules.")), r.a.createElement("div", {
2251 className: "column notification " + ("local" === this.state.storageType ? "is-info" : "")
2252 }, r.a.createElement("div", {
2253 className: "level",
2254 style: {
2255 marginBottom: "0.5rem"
2256 }
2257 }, r.a.createElement("div", {
2258 className: "level-left"
2259 }, r.a.createElement("p", {
2260 className: "title is-6 level-item"
2261 }, "Local Storage")), "local" !== this.state.storageType ? r.a.createElement("div", {
2262 className: "level-right"
2263 }, r.a.createElement("button", {
2264 className: "button level-item",
2265 onClick: function(t) {
2266 return e.changeStorageType("local")
2267 }
2268 }, "Select")) : "Selected"), r.a.createElement("p", null, "Local Storage stores data local to the current device/browser. It has more capacity than Sync Storage. Use it when you have more than 75 rules.")))
2269 }
2270 }, {
2271 key: "changeStorageType",
2272 value: function(e) {
2273 var t = this;
2274 "sync" === e && (this.state.numItems > 80 || this.state.bytesUsed > 8e4) ? alert("Unable to change storage type. Too much data to be stored in Sync Storage.") : Fe(e).then(function(e) {
2275 t.fetchData(),
2276 alert("StorageType changed successfully!")
2277 })
2278 }
2279 }, {
2280 key: "render",
2281 value: function() {
2282 return this.state.storageType ? r.a.createElement("div", null, r.a.createElement("div", null, r.a.createElement("h4", {
2283 className: "title is-4"
2284 }, "Settings"), r.a.createElement("h6", {
2285 className: "subtitle is-6"
2286 }, "These are the default extension settings")), r.a.createElement("div", {
2287 className: "section",
2288 style: {
2289 padding: "1rem"
2290 }
2291 }, this.renderStorageTypeSetting())) : ""
2292 }
2293 }]),
2294 t
2295 }(i.Component)
2296 , Ge = a(36)
2297 , _e = (a(231),
2298 function() {
2299 var e = "unknown";
2300 -1 !== window.navigator.appVersion.indexOf("Win") && (e = "Windows");
2301 -1 !== window.navigator.appVersion.indexOf("Mac") && (e = "Mac");
2302 -1 !== window.navigator.appVersion.indexOf("Linux") && (e = "Linux");
2303 return e
2304 }());
2305 var ze = "unknown" !== _e && {
2306 Linux: !1,
2307 Windows: !1,
2308 Mac: !0
2309 }[_e] ? '\n <div id="footer" class="footer">\n <span class="message" id="footer-message">\n <div class="alert- darkgrey text-white" role="alert">\n <a href="https://requestly.io/desktop" class="text-white" target="_blank">\n Requestly Desktop beta is now LIVE. Now you can use Requestly on top of other apps like Postman, Spotify etc\n <span class="badge badge-primary" style="margin-left: 10px; font-size: 14px; padding: 10px;">Download for '.concat(_e, "</span>\n </a>\n </div>\n </span>\n </div>\n ") : '\n <div id="footer" class="footer">\n <span class="message" id="footer-message">\n <div class="alert- darkgrey text-white" role="alert">\n <a href="https://requestly.io/desktop" class="text-white" target="_blank">\n Requestly is coming on desktop. Now you can use Requestly on top of other apps like Postman, Spotify etc\n <span class="badge badge-primary" style="margin-left: 10px; font-size: 14px; padding: 10px;">Notify Me</span>\n </a>\n </div>\n </span>\n </div>\n '
2310 , Ve = function(e) {
2311 function t() {
2312 var e;
2313 return Object(o.a)(this, t),
2314 (e = Object(d.a)(this, Object(m.a)(t).call(this))).initVars(),
2315 e
2316 }
2317 return Object(p.a)(t, e),
2318 Object(u.a)(t, [{
2319 key: "connectedCallback",
2320 value: function() {
2321 this.render()
2322 }
2323 }, {
2324 key: "attributeChangedCallback",
2325 value: function(e, t, a) {}
2326 }, {
2327 key: "initVars",
2328 value: function() {}
2329 }, {
2330 key: "render",
2331 value: function() {
2332 this.innerHTML = ze
2333 }
2334 }, {
2335 key: "renderAd",
2336 value: function() {
2337 var e = document.createElement("script");
2338 e.type = "text/javascript",
2339 e.async = !0,
2340 e.onload = function(e) {
2341 document.getElementById("paypal-donate-template").hidden = !0
2342 }
2343 ,
2344 e.src = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js";
2345 var t = document.getElementById("footer-ad");
2346 t.parentNode.insertBefore(e, t),
2347 (window.adsbygoogle = window.adsbygoogle || []).push({})
2348 }
2349 }]),
2350 t
2351 }(Object(Ge.a)(HTMLElement));
2352 customElements.define("rq-footer", Ve);
2353 a(232),
2354 a(233);
2355 var Ke = a(116)
2356 , Qe = a.n(Ke)
2357 , We = a(117)
2358 , Xe = a.n(We)
2359 , Je = function(e, t, a, n) {
2360 return '\n<div class="fixed-sn light-blue-skin siderail">\n <ul id="slide-out" class="left-rail side-nav fixed custom-scrollbar">\n <li class="product-logo">\n <a href="https://requestly.io">\n <img src="'.concat(Qe.a, '" />\n </a>\n </li>\n\n \x3c!-- Side navigation links --\x3e\n <li>\n <ul class="collapsible collapsible-accordion navigation-links">\n <li>\n <rq-siderail-userprofile></rq-siderail-userprofile>\n <p class="plan-row">\n <span>\n ').concat(n ? "\n Plan expired on <span>".concat(a, '</span>\n <a role="button" class="btn blue" href="/pricing/" target="_blank">Renew</a>\n ') : "bronze" === t ? 'Free plan <a role="button" class="btn blue" href="/pricing/" target="_blank">Upgrade</a>' : "Premium plan <span>".concat("Expires " + a, "</span>"), ' \n </span>\n </p>\n </li>\n <li>\n <a href="/rules" class="waves-effect"><i class="fa fa-th"></i> Rules</a>\n </li>\n <li>\n <a href="/library" class="waves-effect"><i class="fa fa-file"></i> Files</a>\n </li>\n <li>\n <a href="/rules/#sharedLists" class="waves-effect"><i class="fa fa-share-alt"></i> Shared Lists</a>\n </li>\n <li>\n <a href="https://docs.requestly.io" class="waves-effect" target="_blank"><i class="fa fa-book"></i> Documentation</a>\n </li>\n <li class="for-non-premium">\n <a href="/unlock" class="waves-effect" target="_blank">\n <i class="fa fa-unlock"></i> \n Unlock 30 days Premium\n <span class="badge badge-danger" style="margin-left: 10px; font-size: 12px;">New</span>\n </a> \n </li>\n </ul>\n </li>\n <li class="twitter-row">\n <p>Get our latest updates on Twitter</p>\n <a href="https://twitter.com/RequestlyIO?ref_src=twsrc%5Etfw" \n class="twitter-follow-button waves-effect" \n data-show-count="true"> \n </a>\n </li>\n <li class="banner">\n <a href="/pricing">\n <img src="').concat(Xe.a, '" />\n </a>\n </li> \n <div id="siderail-free-space" class="siderail-free-space">\n <ins class="adsbygoogle" id="siderail-free-space"\n style="display:inline-block;width:300px;height:250px"\n data-ad-client="ca-pub-4094829842104560"\n data-ad-slot="8204653936"></ins>\n </div>\n\n \x3c!--/. Side navigation links --\x3e\n <div class="sidenav-bg mask-strong"></div>\n </ul>\n \x3c!--/. Sidebar navigation --\x3e\n \x3c!-- End of Left Navigation --\x3e\n</div>\n')
2361 }
2362 , He = (a(234),
2363 a(118))
2364 , Ye = a.n(He)
2365 , Ze = a(119)
2366 , $e = a.n(Ze)
2367 , et = function(e) {
2368 function t() {
2369 return Object(o.a)(this, t),
2370 Object(d.a)(this, Object(m.a)(t).call(this))
2371 }
2372 return Object(p.a)(t, e),
2373 Object(u.a)(t, [{
2374 key: "connectedCallback",
2375 value: function() {
2376 var e = this;
2377 this.attachListeners(),
2378 this.render(),
2379 ee(function(t) {
2380 e.setUserDetails(t),
2381 e.render()
2382 })
2383 }
2384 }, {
2385 key: "attachListeners",
2386 value: function() {
2387 var e = this;
2388 this.addEventListener("click", function(t) {
2389 var a = e.querySelector(".login-button");
2390 if (a && a.contains(t.target))
2391 return e.trackGAEvent("login requested", "login requested from siderail nav"),
2392 void (window.location.href = "/signin?redirectUrl=" + window.location.pathname + "&src=siderail");
2393 t.target !== e.querySelector(".profile-options-handle") ? t.target === e.querySelector(".logout-button") && (e.trackGAEvent("logout requested", "logout requested from siderail nav"),
2394 window.localStorage.setItem("last_auto_redirect", parseInt(Date.now() / 1e3)),
2395 oe().then(function() {
2396 e.trackGAEvent("logout done", "logout done from siderail nav")
2397 }).catch(function() {
2398 e.trackGAEvent("logout rejected", "logout rejected from siderail nav")
2399 })) : e.toggleProfileOptionsMenu()
2400 }),
2401 document.addEventListener("click", function(t) {
2402 var a = e.querySelector(".profile-options");
2403 a && !a.contains(t.target) && e.toggleProfileOptionsMenu(!1)
2404 })
2405 }
2406 }, {}, {
2407 key: "setUserDetails",
2408 value: function(e) {
2409 "object" === typeof e ? window.localStorage.setItem("rq_user", JSON.stringify(e)) : window.localStorage.removeItem("rq_user")
2410 }
2411 }, {
2412 key: "getUserDetails",
2413 value: function() {
2414 var e = window.localStorage.getItem("rq_user");
2415 return e ? JSON.parse(e) : {}
2416 }
2417 }, {
2418 key: "toggleProfileOptionsMenu",
2419 value: function(e) {
2420 var t = this.querySelector(".profile-options-menu");
2421 t && t.classList.toggle("show", e)
2422 }
2423 }, {}, {}, {}, {
2424 key: "trackGAEvent",
2425 value: function(e, t) {
2426 j({
2427 eventCategory: "siderail",
2428 eventAction: e,
2429 eventLabel: t
2430 })
2431 }
2432 }]),
2433 t
2434 }(Object(Ge.a)(HTMLElement));
2435 customElements.define("rq-siderail-userprofile", et);
2436 var tt = function(e) {
2437 function t() {
2438 var e;
2439 return Object(o.a)(this, t),
2440 (e = Object(d.a)(this, Object(m.a)(t).call(this))).initVars(),
2441 e
2442 }
2443 return Object(p.a)(t, e),
2444 Object(u.a)(t, [{
2445 key: "connectedCallback",
2446 value: function() {
2447 this.attachListeners(),
2448 this.render()
2449 }
2450 }, {
2451 key: "attributeChangedCallback",
2452 value: function(e, t, a) {}
2453 }, {
2454 key: "initVars",
2455 value: function() {}
2456 }, {
2457 key: "attachListeners",
2458 value: function() {
2459 window.onhashchange = this.updateActiveLink.bind(this)
2460 }
2461 }, {
2462 key: "render",
2463 value: function() {
2464 var e = this;
2465 this.innerHTML = Je(0, "bronze", "", !1),
2466 this.renderTwitterWidget(),
2467 ee(function(t) {
2468 t.isLoggedIn ? se(["plans"], function(a) {
2469 var n = C.getPlanName(a, t.planDetails)
2470 , s = C.isExpired(t.planDetails)
2471 , i = C.getEndDate(t.planDetails);
2472 e.innerHTML = Je(t.planDetails, n, i, s),
2473 e.renderTwitterWidget(),
2474 C.isFeatureEnabled(C.allFeatureIds().ADS, n) && e.renderAd()
2475 }) : e.renderAd()
2476 }),
2477 this.updateActiveLink()
2478 }
2479 }, {
2480 key: "renderTwitterWidget",
2481 value: function() {
2482 var e = document.createElement("script");
2483 e.type = "text/javascript",
2484 e.async = !0,
2485 e.src = "//platform.twitter.com/widgets.js",
2486 e.charset = "utf-8",
2487 document.body.appendChild(e)
2488 }
2489 }, {
2490 key: "renderGoogleAd",
2491 value: function() {
2492 var e = document.createElement("script");
2493 e.type = "text/javascript",
2494 e.async = !0,
2495 e.src = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js";
2496 var t = document.getElementById("siderail-free-space");
2497 t && t.parentNode.insertBefore(e, t),
2498 (window.adsbygoogle = window.adsbygoogle || []).push({})
2499 }
2500 }, {
2501 key: "renderCarbonAd",
2502 value: function() {
2503 var e = document.createElement("script");
2504 e.type = "text/javascript",
2505 e.async = !0,
2506 e.id = "_carbonads_js",
2507 e.src = "//cdn.carbonads.com/carbon.js?serve=CK7I653W&placement=wwwrequestlyRequestlyIOin";
2508 var t = document.getElementById("siderail-free-space");
2509 t && t.parentNode.insertBefore(e, t)
2510 }
2511 }, {
2512 key: "getAdMarkup",
2513 value: function(e) {
2514 return '\n <div id="carbonads">\n <span>\n <span class="carbon-wrap">\n <a href="'.concat(e.url, '" target="_blank" class="carbon-img">\n <img src="').concat(e.img, '" border="0" style="max-width: 130px;" />\n </a>\n <a href="').concat(e.url, '" target="_blank" class="carbon-text">\n ').concat(e.text, '\n </a>\n </span>\n <strong class="carbon-poweredby"> Sponsored </strong> \n </span>\n </div>\n ')
2515 }
2516 }, {
2517 key: "getPushOwlData",
2518 value: function() {
2519 var e = {
2520 name: "Variation_pushowl_green",
2521 img: "/static/assets/pushowl/pushOwlAd.png",
2522 text: "<strong>PushOwl</strong> is hiring rockstar frontend developer. Click here to apply",
2523 url: "https://forms.gle/2tAupaBFYUwhCEXJ6"
2524 };
2525 return {
2526 adMarkup: this.getAdMarkup(e),
2527 adVariation: e
2528 }
2529 }
2530 }, {
2531 key: "getRetoolAdData",
2532 value: function() {
2533 var e = [{
2534 name: "Variation_custom_content",
2535 img: "/static/assets/retool/retool-blue.png",
2536 text: "Build custom internal UIs on top of your data, in minutes. Try for free.",
2537 url: "https://retool.com/?utm_source=requestly&utm_medium=cpc&utm_campaign=dec_test&utm_content=custom"
2538 }, {
2539 name: "Variation_customer_content",
2540 img: "/static/assets/retool/retool-blue.png",
2541 text: "Build internal UIs in hours, not days. Spend time on customer features instead.",
2542 url: "https://analyticsbar.com/?ref=requestly"
2543 }]
2544 , t = Date.now() % 2 === 0 ? e[0] : e[1];
2545 return {
2546 adMarkup: this.getAdMarkup(t),
2547 adVariation: t
2548 }
2549 }
2550 }, {
2551 key: "renderSponsoredAd",
2552 value: function() {
2553 var e = document.getElementById("siderail-free-space")
2554 , t = this.getPushOwlData();
2555 e.innerHTML = t.adMarkup,
2556 e.onclick = function() {
2557 M(P.CATEGORIES.SPONSOR_SIDERAIL, P.ACTIONS.CLICKED, t.adVariation.name + " " + P.ACTIONS.CLICKED)
2558 }
2559 ,
2560 M(P.CATEGORIES.SPONSOR_SIDERAIL, P.ACTIONS.VIEWED, t.adVariation.name + " " + P.ACTIONS.VIEWED)
2561 }
2562 }, {
2563 key: "renderAd",
2564 value: function() {
2565 this.renderGoogleAd()
2566 }
2567 }, {
2568 key: "updateActiveLink",
2569 value: function() {
2570 var e = this
2571 , t = Array.from(document.querySelectorAll(".navigation-links a"));
2572 t.sort(function(e, t) {
2573 return t.href.length - e.href.length
2574 });
2575 var a = t.find(function(t) {
2576 return e.trimEndingSlash(window.location.pathname) === e.trimEndingSlash(t.pathname) && (!t.hash || window.location.hash === t.hash)
2577 });
2578 if (a) {
2579 var n = document.querySelector(".navigation-links a.active");
2580 n && n.classList.remove("active"),
2581 a.classList.add("active")
2582 }
2583 }
2584 }, {
2585 key: "trimEndingSlash",
2586 value: function(e) {
2587 return e && "/" === e.charAt(e.length - 1) ? e.substr(0, e.length - 1) : e
2588 }
2589 }]),
2590 t
2591 }(Object(Ge.a)(HTMLElement));
2592 customElements.define("rq-siderail", tt);
2593 var at = function(e) {
2594 function t(e) {
2595 var a;
2596 return Object(o.a)(this, t),
2597 a = Object(d.a)(this, Object(m.a)(t).call(this, e)),
2598 G(),
2599 a
2600 }
2601 return Object(p.a)(t, e),
2602 Object(u.a)(t, [{
2603 key: "render",
2604 value: function() {
2605 return r.a.createElement(r.a.Fragment, null, r.a.createElement("rq-siderail", null), r.a.createElement("div", {
2606 id: "page",
2607 className: "page"
2608 }, r.a.createElement("div", {
2609 id: "content",
2610 className: "content"
2611 }, this.renderContentBody()), r.a.createElement("rq-footer", null)))
2612 }
2613 }, {
2614 key: "renderContentBody",
2615 value: function() {
2616 throw new Error("Child Component to implement content body")
2617 }
2618 }]),
2619 t
2620 }(i.Component)
2621 , nt = function(e) {
2622 function t() {
2623 return Object(o.a)(this, t),
2624 Object(d.a)(this, Object(m.a)(t).apply(this, arguments))
2625 }
2626 return Object(p.a)(t, e),
2627 Object(u.a)(t, [{
2628 key: "componentDidMount",
2629 value: function() {
2630 this.renderBackboneComponent()
2631 }
2632 }, {
2633 key: "componentDidUpdate",
2634 value: function() {
2635 this.renderBackboneComponent()
2636 }
2637 }, {
2638 key: "renderBackboneComponent",
2639 value: function() {
2640 window.RQ && window.RQ.router && window.RQ.router.navigate(this.props.route, {
2641 trigger: !0
2642 })
2643 }
2644 }, {
2645 key: "render",
2646 value: function() {
2647 return r.a.createElement(r.a.Fragment, null, r.a.createElement("rq-siderail", null), r.a.createElement("div", {
2648 id: "page",
2649 className: "page"
2650 }, r.a.createElement("div", {
2651 id: "content",
2652 className: "content"
2653 }), r.a.createElement("rq-footer", null)))
2654 }
2655 }]),
2656 t
2657 }(at)
2658 , st = function(e) {
2659 function t() {
2660 return Object(o.a)(this, t),
2661 Object(d.a)(this, Object(m.a)(t).apply(this, arguments))
2662 }
2663 return Object(p.a)(t, e),
2664 Object(u.a)(t, [{
2665 key: "render",
2666 value: function() {
2667 return r.a.createElement("div", {
2668 className: "",
2669 style: {
2670 padding: "1.5rem",
2671 backgroundColor: "#fafafa"
2672 }
2673 }, r.a.createElement("aside", {
2674 className: "menu"
2675 }, r.a.createElement("p", {
2676 className: "menu-label"
2677 }, "Features"), r.a.createElement("ul", {
2678 className: "menu-list"
2679 }, r.a.createElement("li", null, r.a.createElement("a", {
2680 href: "/rules"
2681 }, "Rules")), r.a.createElement("li", null, r.a.createElement("a", {
2682 href: "/library"
2683 }, "Library")), r.a.createElement("li", null, r.a.createElement("a", {
2684 href: "/rules/#sharedLists"
2685 }, "SharedLists"))), r.a.createElement("p", {
2686 className: "menu-label"
2687 }, "Social Media"), r.a.createElement("ul", {
2688 className: "menu-list"
2689 }, r.a.createElement("li", null, r.a.createElement("a", {
2690 href: "https://twitter.com/RequestlyIO"
2691 }, "Twitter")), r.a.createElement("li", null, r.a.createElement("a", {
2692 href: "https://medium.com/@requestly_ext"
2693 }, "Medium")), r.a.createElement("li", null, r.a.createElement("a", {
2694 href: "https://stackoverflow.com/search?q=%22requestly%22"
2695 }, "StackOverflow")))))
2696 }
2697 }]),
2698 t
2699 }(i.Component)
2700 , it = a(35)
2701 , rt = a(73)
2702 , lt = a.n(rt);
2703 function ct(e, t, a) {
2704 var n = new Blob([t],{
2705 type: a.contentType
2706 })
2707 , s = {
2708 contentType: a.contentType
2709 };
2710 return R.storage().ref(e).put(n, s).then(function(e) {
2711 return e.ref.getDownloadURL().then(function(t) {
2712 var n, s = dt(e, a, t);
2713 return s.id = a.id,
2714 console.log(s),
2715 (n = s,
2716 R.database().ref("users").child(R.auth().currentUser.uid).child("files").child(n.id).update(n)).then(function() {
2717 return {
2718 success: !0,
2719 data: s
2720 }
2721 })
2722 })
2723 })
2724 }
2725 function ot(e) {
2726 return R.database().ref("/users/" + R.auth().currentUser.uid + "/files/" + e).remove()
2727 }
2728 function ut(e, t) {
2729 return ["application/json", "application/javascript", "text/javascript", "text/css"].reduce(function(e, a) {
2730 return e || a === t.contentType
2731 }, !1) ? R.storage().ref("/users/" + R.auth().currentUser.uid + "/files/").child(Date.now().toString()).child(t.name).put(e).then(function(e) {
2732 return e.ref.getDownloadURL().then(function(a) {
2733 return (n = a,
2734 new Promise(function(e, t) {
2735 e(n)
2736 }
2737 )).then(function(n) {
2738 console.log(n),
2739 t.shortUrl = n;
2740 var s = dt(e, t, a)
2741 , i = R.database().ref("/users/" + R.auth().currentUser.uid + "/files/").push()
2742 , r = i.key;
2743 return s.id = r,
2744 i.update(s).then(function() {
2745 return {
2746 success: !0,
2747 data: s
2748 }
2749 })
2750 });
2751 var n
2752 })
2753 }) : new Promise(function(e, t) {
2754 e({
2755 success: !1,
2756 msg: "Unsupported File Type"
2757 })
2758 }
2759 )
2760 }
2761 function dt(e, t, a) {
2762 return t.name = e.metadata.name,
2763 t.size = e.metadata.size,
2764 t.contentType = e.metadata.contentType,
2765 t.webContentLink = a,
2766 t.createdTime = e.metadata.timeCreated,
2767 t.filePath = e.metadata.fullPath,
2768 t.modifiedTime = e.metadata.updated,
2769 t
2770 }
2771 var mt = function(e) {
2772 function t(e) {
2773 var a;
2774 return Object(o.a)(this, t),
2775 (a = Object(d.a)(this, Object(m.a)(t).call(this, e))).fetchFiles = function(e) {
2776 a.setState({
2777 isLoading: !0
2778 }),
2779 se(["users", e, "files"], function(e) {
2780 a.setState({
2781 files: e,
2782 isLoading: !1
2783 })
2784 })
2785 }
2786 ,
2787 a.deleteFile = function(e) {
2788 a.setState({
2789 isDeleting: !0
2790 });
2791 var t = Object(it.a)({}, a.state.files);
2792 delete t[e.id],
2793 M(P.CATEGORIES.LIBRARY, P.ACTIONS.DELETED, "".concat(e.name, " File Deleted")),
2794 function(e) {
2795 return R.storage().ref().child(e.filePath).delete().then(function() {
2796 return ot(e.id)
2797 }, function(t) {
2798 if ("storage/object-not-found" === t.code)
2799 return ot(e.id)
2800 })
2801 }(e).then(function() {
2802 a.setState({
2803 files: t,
2804 isDeleting: !1
2805 }),
2806 Object(E.toast)({
2807 message: "File Deleted Successfully",
2808 type: "is-success",
2809 duration: 3e3,
2810 position: "top-right",
2811 opacity: 1
2812 })
2813 })
2814 }
2815 ,
2816 a.fileSelected = function(e) {
2817 var t = {}
2818 , n = e.target.files[0];
2819 if (n.size > 5e6)
2820 return Object(E.toast)({
2821 message: "File Uploaded Limit Exceeded",
2822 type: "is-danger",
2823 duration: 3e3,
2824 position: "top-right",
2825 opacity: 1
2826 });
2827 t.name = n.name,
2828 t.description = "",
2829 t.contentType = n.type,
2830 function(e, t) {
2831 return ut(e, t)
2832 }(n, t).then(function(e) {
2833 console.log(e),
2834 e.success ? (Object(E.toast)({
2835 message: "File Uploaded Successfully",
2836 type: "is-success",
2837 duration: 3e3,
2838 position: "top-right",
2839 opacity: 1
2840 }),
2841 a.fetchFiles(a.state.uid)) : Object(E.toast)({
2842 message: "File Type not supported",
2843 type: "is-danger",
2844 duration: 3e3,
2845 dismissible: !0,
2846 position: "top-right",
2847 opacity: 1
2848 })
2849 })
2850 }
2851 ,
2852 a.state = {
2853 isDeleting: !1,
2854 files: {},
2855 isLoading: !0
2856 },
2857 a
2858 }
2859 return Object(p.a)(t, e),
2860 Object(u.a)(t, [{
2861 key: "componentDidMount",
2862 value: function() {
2863 var e = this;
2864 ee(function(t) {
2865 if (console.log(t),
2866 e.setState({
2867 isLoggedIn: t.isLoggedIn,
2868 uid: t.profile ? t.profile.uid : null
2869 }),
2870 !t.profile)
2871 return e.setState({
2872 isLoading: !1
2873 });
2874 e.fetchFiles(t.profile.uid)
2875 })
2876 }
2877 }, {
2878 key: "render",
2879 value: function() {
2880 var e = this;
2881 return r.a.createElement("div", {
2882 className: "card"
2883 }, r.a.createElement("header", {
2884 className: "card-header"
2885 }, r.a.createElement("p", {
2886 className: "card-header-title"
2887 }, "Library"), r.a.createElement("span", {
2888 className: "card-header-icon field is-grouped"
2889 }, r.a.createElement("p", {
2890 className: "control"
2891 }, r.a.createElement(h.b, {
2892 to: "/library/new",
2893 className: "button is-primary"
2894 }, r.a.createElement(N.a, {
2895 icon: w.c
2896 }), "\xa0New")), r.a.createElement("p", {
2897 className: "control"
2898 }, r.a.createElement("div", {
2899 className: "field"
2900 }, r.a.createElement("div", {
2901 className: "file is-primary"
2902 }, r.a.createElement("label", {
2903 className: "file-label"
2904 }, r.a.createElement("input", {
2905 className: "file-input",
2906 type: "file",
2907 onChange: this.fileSelected
2908 }), r.a.createElement("span", {
2909 className: "file-cta"
2910 }, r.a.createElement("span", {
2911 className: "file-icon"
2912 }, r.a.createElement(N.a, {
2913 icon: w.e
2914 })), "Upload"))))))), this.state.isLoading ? r.a.createElement("div", {
2915 className: "columns card-content is-centered"
2916 }, r.a.createElement("div", {
2917 className: "button is-loading"
2918 })) : this.state.isLoggedIn ? r.a.createElement("div", {
2919 className: "card-content"
2920 }, r.a.createElement("div", {
2921 className: "content-body"
2922 }, r.a.createElement("table", {
2923 className: "table is-fullwidth",
2924 style: {
2925 padding: "0 0.75rem"
2926 }
2927 }, r.a.createElement("thead", null, r.a.createElement("tr", null, r.a.createElement("th", null, "Name"), r.a.createElement("th", null, "Size"), r.a.createElement("th", null, "Last Updated"), r.a.createElement("th", null, "Actions"))), r.a.createElement("tbody", null, this.state.files ? Object.keys(this.state.files).map(function(t) {
2928 return r.a.createElement("tr", {
2929 key: t
2930 }, r.a.createElement("td", null, r.a.createElement("p", {
2931 className: "title is-6",
2932 style: {
2933 textOverflow: "ellipsis",
2934 overflowX: "hidden",
2935 maxWidth: "400px",
2936 whiteSpace: "nowrap",
2937 overflow: "hidden"
2938 }
2939 }, r.a.createElement(h.b, {
2940 to: "/library/".concat(t)
2941 }, e.state.files[t].name)), r.a.createElement("p", {
2942 className: "subtitle is-6",
2943 style: {
2944 textOverflow: "ellipsis",
2945 maxWidth: "400px",
2946 whiteSpace: "nowrap",
2947 overflow: "hidden",
2948 color: "#888888"
2949 }
2950 }, e.state.files[t].description)), r.a.createElement("td", null, e.state.files[t].size / 1e3, " Kb"), r.a.createElement("td", null, new Date(e.state.files[t].modifiedTime).toDateString()), r.a.createElement("td", {
2951 className: "is-grouped field"
2952 }, r.a.createElement("p", {
2953 className: "control"
2954 }, r.a.createElement("button", {
2955 className: "button is-primary is-round",
2956 onClick: function(a) {
2957 navigator.clipboard.writeText(e.state.files[t].shortUrl).then(function() {
2958 Object(E.toast)({
2959 message: "Url Copied to Clipboard",
2960 type: "is-success",
2961 duration: 3e3,
2962 position: "top-right",
2963 opacity: 1
2964 })
2965 })
2966 }
2967 }, "Copy URL")), r.a.createElement("p", {
2968 className: "control"
2969 }, r.a.createElement("button", {
2970 ref: function(t) {
2971 return e.deleteButtonRef = t
2972 },
2973 className: ["button", "is-danger", e.state.isDeleting ? "is-loading" : ""].join(" "),
2974 onClick: function() {
2975 return e.deleteFile(e.state.files[t])
2976 },
2977 disabled: e.state.isDeleting
2978 }, r.a.createElement(N.a, {
2979 icon: w.d
2980 })))))
2981 }) : r.a.createElement("div", null, "Create New File"))))) : r.a.createElement("div", {
2982 className: "columns is-centered"
2983 }, r.a.createElement(h.b, {
2984 className: "button is-primary",
2985 style: {
2986 margin: "25px"
2987 },
2988 to: "/signin?redirectUrl=" + window.location.pathname + "&src=libraryList"
2989 }, "Sign In")))
2990 }
2991 }]),
2992 t
2993 }(i.Component)
2994 , pt = a(120)
2995 , ht = a.n(pt)
2996 , ft = (a(72),
2997 a(258),
2998 a(259),
2999 a(261),
3000 a(263),
3001 a(265),
3002 function(e) {
3003 function t(e) {
3004 var a;
3005 return Object(o.a)(this, t),
3006 (a = Object(d.a)(this, Object(m.a)(t).call(this, e))).onDataChange = function(e) {
3007 a.setState({
3008 data: e
3009 })
3010 }
3011 ,
3012 a.onChange = function(e) {
3013 a.setState(Object(D.a)({}, e.target.name, e.target.value))
3014 }
3015 ,
3016 a.state = {
3017 newFile: a.props.newFile,
3018 name: a.props.fileDetails ? a.props.fileDetails.name : "",
3019 type: a.props.fileDetails ? a.props.fileDetails.contentType : "application/javascript",
3020 desc: a.props.fileDetails ? a.props.fileDetails.description : "",
3021 data: a.props.data ? a.props.data : ""
3022 },
3023 a
3024 }
3025 return Object(p.a)(t, e),
3026 Object(u.a)(t, [{
3027 key: "render",
3028 value: function() {
3029 var e = this;
3030 return r.a.createElement("div", {
3031 className: "card"
3032 }, r.a.createElement("header", {
3033 className: "card-header"
3034 }, r.a.createElement("div", {
3035 className: "card-header-title "
3036 }, r.a.createElement("input", {
3037 className: "input column is-2",
3038 type: "text",
3039 placeholder: "FileName",
3040 value: this.state.name,
3041 name: "name",
3042 onChange: this.onChange,
3043 disabled: !this.state.newFile
3044 }), " ", this.state.newFile ? r.a.createElement("div", {
3045 className: "control"
3046 }, r.a.createElement("div", {
3047 className: "select"
3048 }, r.a.createElement("select", {
3049 name: "type",
3050 value: this.state.type,
3051 onChange: this.onChange
3052 }, r.a.createElement("option", {
3053 value: "application/javascript"
3054 }, ".js"), r.a.createElement("option", {
3055 value: "text/css"
3056 }, ".css"), r.a.createElement("option", {
3057 value: "application/json"
3058 }, ".json")))) : null, r.a.createElement("input", {
3059 className: "input column is-7",
3060 type: "text",
3061 placeholder: "Description",
3062 value: this.state.desc,
3063 name: "desc",
3064 onChange: this.onChange
3065 }), r.a.createElement("span", {
3066 className: "field is-grouped card-header-icon"
3067 }, r.a.createElement("p", {
3068 className: "control"
3069 }, r.a.createElement("button", {
3070 className: ["button", "is-primary", this.props.saving ? "is-loading" : ""].join(" "),
3071 disabled: this.props.saving,
3072 onClick: function() {
3073 e.props.saveFile(e.state.name, e.state.type, e.state.desc, e.state.data)
3074 }
3075 }, "Save")), r.a.createElement("p", {
3076 className: "control"
3077 }, r.a.createElement("button", {
3078 className: "button is-danger",
3079 onClick: function() {
3080 return e.props.history.push("/library/")
3081 }
3082 }, "Exit"))))), r.a.createElement("div", {
3083 className: "card-content"
3084 }, r.a.createElement("div", {
3085 className: "content-body"
3086 }, r.a.createElement(ht.a, {
3087 width: "100%",
3088 placeholder: "Placeholder Text",
3089 mode: this.state.type.split("/")[1],
3090 theme: "monokai",
3091 name: "blah2",
3092 fontSize: 14,
3093 showPrintMargin: !0,
3094 showGutter: !0,
3095 highlightActiveLine: !0,
3096 onChange: this.onDataChange,
3097 value: this.state.data,
3098 setOptions: {
3099 enableBasicAutocompletion: !0,
3100 enableLiveAutocompletion: !0,
3101 enableSnippets: !0,
3102 showLineNumbers: !0,
3103 tabSize: 2
3104 }
3105 }))))
3106 }
3107 }]),
3108 t
3109 }(i.Component))
3110 , gt = Object(f.e)(ft)
3111 , Et = function(e) {
3112 function t(e) {
3113 var a;
3114 return Object(o.a)(this, t),
3115 (a = Object(d.a)(this, Object(m.a)(t).call(this, e))).checkSignIn = function() {
3116 ee(function(e) {
3117 a.setState({
3118 isLoggedIn: e.isLoggedIn,
3119 uid: e.profile ? e.profile.uid : null
3120 })
3121 })
3122 }
3123 ,
3124 a.saveFile = function(e, t, n, s) {
3125 var i;
3126 "application/javascript" === t ? i = ".js" : "application/json" === t ? i = ".json" : "text/css" === t && (i = ".css");
3127 var r = {
3128 name: e += i,
3129 contentType: t,
3130 description: n
3131 };
3132 a.setState({
3133 isSaving: !0
3134 }),
3135 function(e, t) {
3136 return ut(new File([t],e.name,{
3137 type: e.contentType,
3138 lastModified: Date.now()
3139 }), e)
3140 }(r, s).then(function(e) {
3141 console.log(e),
3142 a.setState({
3143 isSaving: !1
3144 }),
3145 e.success ? (Object(E.toast)({
3146 message: "File Created Successfully",
3147 type: "is-success",
3148 duration: 3e3,
3149 position: "top-right",
3150 opacity: 1
3151 }),
3152 a.props.history.push("/library/".concat(String(e.data.id)))) : Object(E.toast)({
3153 message: "File Creation failed",
3154 type: "is-danger",
3155 duration: 3e3,
3156 dismissible: !0,
3157 position: "top-right",
3158 opacity: 1
3159 })
3160 }),
3161 M(P.CATEGORIES.LIBRARY, P.ACTIONS.CREATED, "".concat(e, " File Created"))
3162 }
3163 ,
3164 a.state = {
3165 isSaving: !1
3166 },
3167 a
3168 }
3169 return Object(p.a)(t, e),
3170 Object(u.a)(t, [{
3171 key: "componentDidMount",
3172 value: function() {
3173 this.checkSignIn()
3174 }
3175 }, {
3176 key: "render",
3177 value: function() {
3178 return this.state.isLoggedIn ? r.a.createElement(gt, {
3179 saveFile: this.saveFile,
3180 saving: this.state.isSaving,
3181 newFile: !0
3182 }) : r.a.createElement("div", {
3183 className: "columns is-centered"
3184 }, r.a.createElement(h.b, {
3185 className: "button is-primary",
3186 style: {
3187 margin: "25px"
3188 },
3189 to: "/signin?redirectUrl=" + window.location.pathname + "&src=libraryNew"
3190 }, "Sign In"))
3191 }
3192 }]),
3193 t
3194 }(i.Component)
3195 , vt = function(e) {
3196 function t(e) {
3197 var a;
3198 return Object(o.a)(this, t),
3199 (a = Object(d.a)(this, Object(m.a)(t).call(this, e))).checkSignIn = function() {
3200 ee(function(e) {
3201 a.setState({
3202 isLoggedIn: e.isLoggedIn,
3203 uid: e.profile ? e.profile.uid : null
3204 })
3205 })
3206 }
3207 ,
3208 a.getFileDetailsFromDatabase = function() {
3209 var e = a.props.match.params.fileId;
3210 ee(function(t) {
3211 a.setState({
3212 isLoggedIn: t.isLoggedIn,
3213 uid: t.profile.uid
3214 }),
3215 t.isLoggedIn && se(["users", t.profile.uid, "files", e], function(e) {
3216 console.log(e),
3217 a.setState({
3218 fileDetails: e
3219 }),
3220 lt.a.get(e.webContentLink).then(function(e) {
3221 console.log(e),
3222 a.setState({
3223 data: e.request.response,
3224 isFetching: !1
3225 })
3226 })
3227 })
3228 })
3229 }
3230 ,
3231 a.saveFile = function(e, t, n, s) {
3232 a.setState({
3233 isSaving: !0
3234 });
3235 var i = Object(it.a)({}, a.state.fileDetails);
3236 i.description = n,
3237 ct(a.state.fileDetails.filePath, s, i).then(function(e) {
3238 console.log(e),
3239 a.setState({
3240 isSaving: !1
3241 }),
3242 e.success ? Object(E.toast)({
3243 message: "File Saved Successfully",
3244 type: "is-success",
3245 duration: 3e3,
3246 position: "top-right",
3247 opacity: 1
3248 }) : Object(E.toast)({
3249 message: "File Saved failed",
3250 type: "is-danger",
3251 duration: 3e3,
3252 dismissible: !0,
3253 position: "top-right",
3254 opacity: 1
3255 })
3256 }),
3257 M(P.CATEGORIES.LIBRARY, P.ACTIONS.UPDATED, "".concat(e, " File updated"))
3258 }
3259 ,
3260 a.state = {
3261 isFetching: !0,
3262 isSaving: !1
3263 },
3264 a
3265 }
3266 return Object(p.a)(t, e),
3267 Object(u.a)(t, [{
3268 key: "componentDidMount",
3269 value: function() {
3270 this.getFileDetailsFromDatabase()
3271 }
3272 }, {
3273 key: "render",
3274 value: function() {
3275 return this.state.isLoggedIn ? this.state.isFetching ? r.a.createElement("div", null, "Loading") : r.a.createElement(gt, {
3276 fileDetails: this.state.fileDetails,
3277 data: this.state.data,
3278 saveFile: this.saveFile,
3279 saving: this.state.isSaving
3280 }) : r.a.createElement("div", {
3281 className: "columns is-centered"
3282 }, r.a.createElement(h.b, {
3283 className: "button is-primary",
3284 style: {
3285 margin: "25px"
3286 },
3287 to: "/signin?redirectUrl=" + window.location.pathname + "&src=libraryFile"
3288 }, "Sign In"))
3289 }
3290 }]),
3291 t
3292 }(i.Component)
3293 , bt = function(e) {
3294 function t(e) {
3295 var a;
3296 return Object(o.a)(this, t),
3297 (a = Object(d.a)(this, Object(m.a)(t).call(this, e))).fetchFiles = function(e) {
3298 a.setState({
3299 isLoading: !0
3300 }),
3301 se(["users", e, "files"], function(e) {
3302 a.setState({
3303 files: e,
3304 isLoading: !1
3305 })
3306 })
3307 }
3308 ,
3309 a.fileSelected = function(e) {
3310 window.parent.postMessage(e, "*")
3311 }
3312 ,
3313 a.state = {
3314 isDeleting: !1,
3315 files: {},
3316 isLoading: !0
3317 },
3318 a
3319 }
3320 return Object(p.a)(t, e),
3321 Object(u.a)(t, [{
3322 key: "componentDidMount",
3323 value: function() {
3324 var e = this;
3325 ee(function(t) {
3326 if (console.log(t),
3327 e.setState({
3328 isLoggedIn: t.isLoggedIn,
3329 uid: t.profile ? t.profile.uid : null
3330 }),
3331 !t.profile)
3332 return e.setState({
3333 isLoading: !1
3334 });
3335 e.fetchFiles(t.profile.uid)
3336 })
3337 }
3338 }, {
3339 key: "render",
3340 value: function() {
3341 var e = this;
3342 return r.a.createElement("div", {
3343 className: "card"
3344 }, this.state.isLoading ? r.a.createElement("div", {
3345 className: "columns card-content "
3346 }, r.a.createElement("div", {
3347 style: {
3348 marginLeft: "50%"
3349 },
3350 className: "button is-loading"
3351 })) : this.state.isLoggedIn ? r.a.createElement("div", {
3352 className: "card-content"
3353 }, r.a.createElement("div", {
3354 className: "content-body"
3355 }, r.a.createElement("table", {
3356 className: "table is-fullwidth",
3357 style: {
3358 padding: "0 0.75rem"
3359 }
3360 }, r.a.createElement("thead", null, r.a.createElement("tr", null, r.a.createElement("th", null, "Name"), r.a.createElement("th", null, "Description"))), r.a.createElement("tbody", null, this.state.files ? Object.keys(this.state.files).map(function(t) {
3361 return r.a.createElement("tr", {
3362 key: t
3363 }, r.a.createElement("td", null, r.a.createElement("a", {
3364 onClick: function() {
3365 return e.fileSelected(e.state.files[t])
3366 }
3367 }, e.state.files[t].name)), r.a.createElement("td", null, e.state.files[t].description))
3368 }) : r.a.createElement("div", null, "No Files Exist"))))) : r.a.createElement("div", {
3369 className: "columns"
3370 }, r.a.createElement(h.b, {
3371 className: "button is-primary",
3372 style: {
3373 margin: "25px",
3374 marginLeft: "45%"
3375 },
3376 to: "/signin?redirectUrl=" + window.location.pathname + "&src=filePicker"
3377 }, "Sign In")))
3378 }
3379 }]),
3380 t
3381 }(i.Component)
3382 , yt = a(121)
3383 , Nt = a.n(yt)
3384 , wt = function(e) {
3385 function t(e) {
3386 var a;
3387 return Object(o.a)(this, t),
3388 (a = Object(d.a)(this, Object(m.a)(t).call(this, e))).state = {},
3389 a
3390 }
3391 return Object(p.a)(t, e),
3392 Object(u.a)(t, [{
3393 key: "componentDidMount",
3394 value: function() {
3395 var e = this;
3396 ee(function(t) {
3397 e.setState({
3398 userData: t
3399 })
3400 })
3401 }
3402 }, {
3403 key: "handleLogin",
3404 value: function() {
3405 Z()
3406 }
3407 }, {
3408 key: "handleLogout",
3409 value: function() {
3410 oe()
3411 }
3412 }, {
3413 key: "render",
3414 value: function() {
3415 var e = this.state.userData;
3416 return r.a.createElement("header", {
3417 className: "has-bulma-styling"
3418 }, r.a.createElement("nav", {
3419 className: "navbar",
3420 role: "navigation",
3421 "aria-label": "main navigation",
3422 style: {
3423 backgroundColor: "#fafafa"
3424 }
3425 }, r.a.createElement("div", {
3426 className: "container"
3427 }, r.a.createElement("div", {
3428 className: "navbar-brand"
3429 }, r.a.createElement("a", {
3430 className: "navbar-item",
3431 href: "/"
3432 }, r.a.createElement("img", {
3433 src: Nt.a,
3434 alt: "Requestly",
3435 style: {
3436 maxHeight: "3rem"
3437 }
3438 })), r.a.createElement("div", {
3439 role: "button",
3440 className: "navbar-burger burger",
3441 "aria-label": "menu",
3442 "aria-expanded": "false",
3443 "data-target": "navbarBasicExample"
3444 }, r.a.createElement("span", {
3445 "aria-hidden": "true"
3446 }), r.a.createElement("span", {
3447 "aria-hidden": "true"
3448 }), r.a.createElement("span", {
3449 "aria-hidden": "true"
3450 }))), r.a.createElement("div", {
3451 id: "navbarBasicExample",
3452 className: "navbar-menu"
3453 }, r.a.createElement("div", {
3454 className: "navbar-start"
3455 }), e ? r.a.createElement("div", {
3456 className: "navbar-end"
3457 }, e.isLoggedIn ? r.a.createElement("a", {
3458 className: "navbar-item",
3459 href: "/rules"
3460 }, "My Rules") : null, e.isLoggedIn ? r.a.createElement("a", {
3461 className: "navbar-item",
3462 href: "/library"
3463 }, "My Files") : null, e.isLoggedIn ? r.a.createElement("a", {
3464 className: "navbar-item",
3465 href: "/rules/#sharedLists"
3466 }, "Shared Lists") : null, e.isLoggedIn ? null : r.a.createElement("a", {
3467 className: "navbar-item",
3468 href: "https://requestly.io/#features"
3469 }, "Features"), e.isLoggedIn ? null : r.a.createElement("a", {
3470 className: "navbar-item",
3471 href: "https://docs.requestly.io/"
3472 }, "Documentation"), e.isLoggedIn ? null : r.a.createElement("a", {
3473 className: "navbar-item",
3474 href: "/pricing"
3475 }, "Pricing"), r.a.createElement("div", {
3476 className: "navbar-item has-dropdown is-hoverable"
3477 }, r.a.createElement("div", {
3478 className: "navbar-link"
3479 }, "More"), r.a.createElement("div", {
3480 className: "navbar-dropdown"
3481 }, r.a.createElement("a", {
3482 className: "navbar-item",
3483 href: "https://www.requestly.in/#about"
3484 }, "About Us"), r.a.createElement("a", {
3485 className: "navbar-item",
3486 href: "https://www.requestly.io/blog/"
3487 }, "Blog"), r.a.createElement("a", {
3488 className: "navbar-item",
3489 href: "https://www.requestly.io/#subscribe"
3490 }, "Newsletter"), r.a.createElement("a", {
3491 className: "navbar-item",
3492 href: "https://www.requestly.io/#testimonials"
3493 }, "Testimonials"), r.a.createElement("hr", {
3494 className: "navbar-divider"
3495 }), r.a.createElement("a", {
3496 className: "navbar-item",
3497 href: "https://twitter.com/RequestlyIO"
3498 }, "Follow on Twitter"), r.a.createElement("a", {
3499 className: "navbar-item",
3500 href: "https://medium.com/@RequestlyIO"
3501 }, "Follow on Medium"), r.a.createElement("a", {
3502 className: "navbar-item",
3503 href: "https://stackoverflow.com/search?q=%22requestly%22"
3504 }, "Ask on Stack Overflow"), r.a.createElement("hr", {
3505 className: "navbar-divider"
3506 }), r.a.createElement("a", {
3507 className: "navbar-item",
3508 href: "https://www.requestly.in/#contact"
3509 }, "Contact Us"))), e.isLoggedIn ? r.a.createElement("div", {
3510 className: "navbar-item has-dropdown is-hoverable"
3511 }, r.a.createElement("div", {
3512 className: "navbar-link"
3513 }, r.a.createElement("img", {
3514 alt: "".concat(e.profile.displayName),
3515 src: e.profile.photoURL,
3516 style: {
3517 borderRadius: "50%"
3518 }
3519 })), r.a.createElement("div", {
3520 className: "navbar-dropdown is-right"
3521 }, r.a.createElement("div", {
3522 className: "navbar-item"
3523 }, e.profile.displayName, r.a.createElement("br", null), e.profile.email), e.planDetails ? r.a.createElement("a", {
3524 className: "navbar-item",
3525 href: "/license"
3526 }, r.a.createElement("div", null, C.isPremiumPlan(e.planDetails.planId) ? "Premium" : "Free", " Plan", r.a.createElement("br", null), "Till", " ", new Date(e.planDetails.subscription.endDate).toDateString())) : r.a.createElement("a", {
3527 className: "navbar-item",
3528 href: "/pricing"
3529 }, r.a.createElement("div", null, r.a.createElement("div", null, r.a.createElement("span", {
3530 className: "button is-primary is-small"
3531 }, "Go Premium")))), r.a.createElement("a", {
3532 className: "navbar-item",
3533 href: "/settings"
3534 }, "Settings"), r.a.createElement("hr", {
3535 className: "navbar-divider"
3536 }), r.a.createElement("a", {
3537 className: "navbar-item",
3538 onClick: this.handleLogout
3539 }, "Logout"))) : r.a.createElement("div", {
3540 className: "navbar-item"
3541 }, r.a.createElement("div", {
3542 className: "buttons"
3543 }, r.a.createElement(h.b, {
3544 className: "button is-light",
3545 to: "/signin?redirectUrl=".concat(window.location.pathname, "&src=header")
3546 }, "Sign In")))) : null))))
3547 }
3548 }]),
3549 t
3550 }(i.Component);
3551 function St() {
3552 var e = (new Date).getFullYear();
3553 return r.a.createElement("div", {
3554 className: "has-bulma-styling"
3555 }, r.a.createElement("footer", {
3556 className: "footer",
3557 style: {
3558 paddingBottom: "5px",
3559 paddingTop: "5px",
3560 position: "fixed",
3561 bottom: "0",
3562 width: "100%",
3563 zIndex: "9999",
3564 color: "#333333"
3565 }
3566 }, r.a.createElement("div", {
3567 className: "content has-text-centered"
3568 }, r.a.createElement("p", null, "\xa9 ", e, " Requestly. Designed and built with ", " ", r.a.createElement("span", {
3569 className: "icon"
3570 }, r.a.createElement(N.a, {
3571 icon: w.b,
3572 size: "xs"
3573 })), ". Contact us at", " ", r.a.createElement("a", {
3574 href: "mailto:contact@requestly.io"
3575 }, "contact@requestly.io")))))
3576 }
3577 var Ot = a(122)
3578 , Ct = a.n(Ot)
3579 , It = function(e) {
3580 function t(e) {
3581 var a;
3582 return Object(o.a)(this, t),
3583 (a = Object(d.a)(this, Object(m.a)(t).call(this, e))).sendResponse = function() {
3584 a.setState({
3585 responseSubmitted: !0
3586 }),
3587 M(P.CATEGORIES.EXTENSION, P.ACTIONS.UNINSTALL_RESPONSE, "".concat(a.state.response, " __ ").concat(a.state.textArea))
3588 }
3589 ,
3590 a.state = {
3591 responseSubmitted: !1,
3592 response: "Others",
3593 textArea: ""
3594 },
3595 a
3596 }
3597 return Object(p.a)(t, e),
3598 Object(u.a)(t, [{
3599 key: "componentDidMount",
3600 value: function() {
3601 M(P.CATEGORIES.EXTENSION, P.ACTIONS.UNINSTALLED, "Extension Uninstalled")
3602 }
3603 }, {
3604 key: "render",
3605 value: function() {
3606 var e = this;
3607 return r.a.createElement("div", {
3608 className: "has-text-centered column is-6"
3609 }, r.a.createElement("h5", {
3610 className: "title is-6"
3611 }, "We are sad to see you go."), r.a.createElement("img", {
3612 src: Ct.a,
3613 width: "200px"
3614 }), r.a.createElement("br", null), r.a.createElement("br", null), this.state.responseSubmitted ? r.a.createElement("div", {
3615 className: ""
3616 }, r.a.createElement("h5", {
3617 className: "title is-6"
3618 }, "Response Submitted. We are looking forward to improving and to winning you back as a customer")) : r.a.createElement("div", null, r.a.createElement("h3", {
3619 className: "title is-5"
3620 }, "Why did you uninstall Requestly?"), r.a.createElement("div", {
3621 className: "control"
3622 }, ["Don't want it anymore", "Unable to use. Too technical for me", "Premium Plans are expensive", "Others"].map(function(t) {
3623 return r.a.createElement("div", {
3624 key: t
3625 }, r.a.createElement("label", {
3626 className: "radio"
3627 }, r.a.createElement("input", {
3628 onClick: function() {
3629 e.setState({
3630 response: t
3631 })
3632 },
3633 value: t,
3634 type: "radio",
3635 checked: e.state.response === t
3636 }), "\xa0", t), r.a.createElement("br", null))
3637 })), r.a.createElement("br", null), r.a.createElement("textarea", {
3638 value: this.state.textArea,
3639 onChange: function(t) {
3640 e.setState({
3641 textArea: t.target.value
3642 })
3643 },
3644 className: "textarea",
3645 placeholder: "How can we improve Requestly?",
3646 rows: "3"
3647 }), r.a.createElement("button", {
3648 className: "button is-primary is-fullwidth",
3649 onClick: this.sendResponse
3650 }, "Send")))
3651 }
3652 }]),
3653 t
3654 }(i.Component)
3655 , At = a(27)
3656 , Rt = (a(266),
3657 function(e) {
3658 function t() {
3659 return Object(o.a)(this, t),
3660 Object(d.a)(this, Object(m.a)(t).apply(this, arguments))
3661 }
3662 return Object(p.a)(t, e),
3663 Object(u.a)(t, [{
3664 key: "render",
3665 value: function() {
3666 return r.a.createElement("div", {
3667 className: "card"
3668 }, r.a.createElement("header", {
3669 className: "card-header"
3670 }, r.a.createElement("div", {
3671 className: "card-header-title "
3672 }, this.props.heading)), r.a.createElement("div", {
3673 className: "card-content"
3674 }, r.a.createElement("div", {
3675 className: "content-body"
3676 }, r.a.createElement("article", {
3677 className: "message"
3678 }, r.a.createElement("div", {
3679 className: "message-body has-text-centered"
3680 }, r.a.createElement("p", {
3681 style: {
3682 marginBottom: "1rem"
3683 }
3684 }, this.props.context), r.a.createElement("div", null, r.a.createElement(h.b, {
3685 className: "button is-primary",
3686 to: "/signin?redirectUrl=" + window.location.pathname + "&src=" + this.props.urlSource
3687 }, "Login")))))))
3688 }
3689 }]),
3690 t
3691 }(i.Component))
3692 , Pt = (a(267),
3693 function(e) {
3694 function t(e) {
3695 var a;
3696 return Object(o.a)(this, t),
3697 (a = Object(d.a)(this, Object(m.a)(t).call(this, e))).state = {
3698 isProfileDropdownActive: !1,
3699 isLoggedIn: !1,
3700 isLoading: !0,
3701 userProfile: {},
3702 selectedUserProfile: "",
3703 twitterFollowDone: !1,
3704 twitterTweetDone: !0,
3705 chromeStoreRatingDone: !1,
3706 githubWatchAndStarDone: !0,
3707 linkedInPageLike: !1,
3708 subredditJoin: !1,
3709 isApplicationPending: !1,
3710 isAlreadyUnlocked: !1,
3711 unlockDate: null
3712 },
3713 a.handleUserProfileSelected = a.handleUserProfileSelected.bind(Object(At.a)(a)),
3714 a.handleStepActionClicked = a.handleStepActionClicked.bind(Object(At.a)(a)),
3715 a.handleRequestSubmit = a.handleRequestSubmit.bind(Object(At.a)(a)),
3716 a
3717 }
3718 return Object(p.a)(t, e),
3719 Object(u.a)(t, [{
3720 key: "componentDidMount",
3721 value: function() {
3722 this.fetchUserData()
3723 }
3724 }, {
3725 key: "fetchUserData",
3726 value: function() {
3727 var e = this;
3728 ee(function(t) {
3729 e.setState({
3730 isLoading: !1
3731 }),
3732 console.log(t),
3733 t.isLoggedIn && (e.setState({
3734 isLoggedIn: t.isLoggedIn,
3735 userProfile: t.profile
3736 }),
3737 ie(["unlock", t.profile.uid]).then(function(t) {
3738 (t = t || {}).status && "unlocked" === t.status ? e.setState({
3739 isAlreadyUnlocked: !0,
3740 unlockDate: t.lastUpdated
3741 }) : "pending" === t.status && e.setState({
3742 isApplicationPending: !0
3743 })
3744 }))
3745 })
3746 }
3747 }, {
3748 key: "render",
3749 value: function() {
3750 return this.state.isLoading ? r.a.createElement("div", null, "Loading...") : this.state.isLoggedIn ? r.a.createElement("div", {
3751 className: "card"
3752 }, r.a.createElement("header", {
3753 className: "card-header"
3754 }, r.a.createElement("div", {
3755 className: "card-header-title "
3756 }, "Unlock 30 days of Requestly GOLD Plan")), r.a.createElement("div", {
3757 className: "card-content"
3758 }, r.a.createElement("div", {
3759 className: "content-body"
3760 }, this.state.isApplicationPending ? this.getApplicationPendingMessage() : this.state.isAlreadyUnlocked ? this.getAlreadyUnlockedMessage() : this.getStepsToUnlock()))) : r.a.createElement(Rt, {
3761 heading: "Unlock 30 days of Requestly Gold",
3762 context: "Please login to complete steps",
3763 urlSource: "unlockPremiumForm"
3764 })
3765 }
3766 }, {
3767 key: "getApplicationPendingMessage",
3768 value: function() {
3769 return r.a.createElement("article", {
3770 className: "message is-link"
3771 }, r.a.createElement("div", {
3772 className: "message-body has-text-centered"
3773 }, "Thank you for expressing your interest to unlock Requestly Premium.", " ", r.a.createElement("br", null), "We have received your request and will activate your premium in 2-3 business days."))
3774 }
3775 }, {
3776 key: "getAlreadyUnlockedMessage",
3777 value: function() {
3778 return r.a.createElement("article", {
3779 className: "message is-link"
3780 }, r.a.createElement("div", {
3781 className: "message-body text-center"
3782 }, "You have successfully unlocked Requestly Gold Plan.", r.a.createElement("br", null), " If you love Requestly Premium, you can get our premium plan", " ", r.a.createElement("a", {
3783 href: "/pricing"
3784 }, "here"), r.a.createElement("br", null), " We offer discounts on bulk purchase (Enterprise Plan).", r.a.createElement("br", null), " Please get in touch at contact@requestly.io for the same.", r.a.createElement("div", {
3785 className: "has-text-centered",
3786 style: {
3787 paddingTop: "1rem",
3788 paddingBottom: "0.25rem"
3789 }
3790 }, r.a.createElement("a", {
3791 href: "/pricing",
3792 className: "button is-primary"
3793 }, "Upgrade"))))
3794 }
3795 }, {
3796 key: "getStepsToUnlock",
3797 value: function() {
3798 var e = this;
3799 return r.a.createElement(r.a.Fragment, null, r.a.createElement("div", {
3800 className: "columns unlock-form-step"
3801 }, r.a.createElement("div", {
3802 className: "column is-half step-title"
3803 }, "How do you best identify yourself"), r.a.createElement("div", {
3804 className: "column is-one-quarter step-subtitle"
3805 }, this.state.selectedUserProfile ? "Complete" : "Pending", this.renderStepCompleteSign(this.state.selectedUserProfile)), r.a.createElement("div", {
3806 className: "column step-action"
3807 }, this.getUserProfileDropdown())), r.a.createElement("div", {
3808 className: "columns unlock-form-step"
3809 }, r.a.createElement("div", {
3810 className: "column is-half step-title"
3811 }, "Follow us on Twitter"), r.a.createElement("div", {
3812 className: "column is-one-quarter step-subtitle"
3813 }, this.state.twitterFollowDone ? "Complete" : "Pending", this.renderStepCompleteSign(this.state.twitterFollowDone)), r.a.createElement("div", {
3814 className: "column step-action"
3815 }, r.a.createElement("span", {
3816 onClick: function(t) {
3817 return e.handleStepActionClicked(t, "twitter_follow_step")
3818 },
3819 className: "button is-info"
3820 }, r.a.createElement("svg", {
3821 className: "svg-inline--fa fa-twitter fa-w-16",
3822 "aria-hidden": "true",
3823 "data-prefix": "fab",
3824 "data-icon": "twitter",
3825 role: "img",
3826 xmlns: "http://www.w3.org/2000/svg",
3827 viewBox: "0 0 512 512",
3828 "data-fa-i2svg": ""
3829 }, r.a.createElement("path", {
3830 fill: "currentColor",
3831 d: "M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"
3832 })), "\xa0\xa0 Follow"))), r.a.createElement("div", {
3833 className: "columns unlock-form-step"
3834 }, r.a.createElement("div", {
3835 className: "column is-half step-title"
3836 }, "Rate us on Chrome Store"), r.a.createElement("div", {
3837 className: "column is-one-quarter step-subtitle"
3838 }, this.state.chromeStoreRatingDone ? "Complete" : "Pending", this.renderStepCompleteSign(this.state.chromeStoreRatingDone)), r.a.createElement("div", {
3839 onClick: function(t) {
3840 return e.handleStepActionClicked(t, "rate_us_chrome_store_step")
3841 },
3842 className: "column step-action"
3843 }, r.a.createElement("span", {
3844 className: "button is-success"
3845 }, "Rate Us"))), r.a.createElement("div", {
3846 className: "columns unlock-form-step"
3847 }, r.a.createElement("div", {
3848 className: "column is-half step-title"
3849 }, "Follow us on LinkedIn"), r.a.createElement("div", {
3850 className: "column is-one-quarter step-subtitle"
3851 }, this.state.linkedInPageLike ? "Complete" : "Pending", this.renderStepCompleteSign(this.state.linkedInPageLike)), r.a.createElement("div", {
3852 className: "column step-action"
3853 }, r.a.createElement("span", {
3854 onClick: function(t) {
3855 return e.handleStepActionClicked(t, "linkedin_step")
3856 },
3857 className: "button"
3858 }, r.a.createElement("svg", {
3859 className: "svg-inline--fa ",
3860 "aria-hidden": "true",
3861 xmlns: "http://www.w3.org/2000/svg",
3862 viewBox: "1.786 1.783 287.865 76.248"
3863 }, r.a.createElement("path", {
3864 d: "M213.882 7.245c0-3.015 2.508-5.462 5.6-5.462h64.568c3.093 0 5.6 2.447 5.6 5.462V72.57c0 3.016-2.507 5.461-5.6 5.461h-64.568c-3.092 0-5.6-2.445-5.6-5.46V7.244z",
3865 fill: "#069"
3866 }), r.a.createElement("path", {
3867 d: "M1.785 65.652h31.62V55.27H13.23V15.665H1.785v49.987zM49.414 65.652v-34.43H37.97v34.43h11.444zm-5.721-39.13c3.99 0 6.474-2.644 6.474-5.95-.074-3.378-2.484-5.947-6.398-5.947-3.915 0-6.475 2.57-6.475 5.947 0 3.306 2.484 5.95 6.324 5.95h.075zM54.727 65.652h11.444V46.424c0-1.029.074-2.058.377-2.791.826-2.056 2.709-4.186 5.871-4.186 4.142 0 5.799 3.158 5.799 7.784v18.42H89.66V45.91c0-10.576-5.646-15.497-13.176-15.497-6.173 0-8.884 3.451-10.39 5.802h.077v-4.993H54.727c.151 3.231 0 34.43 0 34.43zM105.805 15.665H94.361v49.987h11.444V54.489l2.86-3.601 8.96 14.764h14.078l-15.056-21.373 13.174-14.54h-13.776s-9.411 13.008-10.24 14.552V15.665z"
3868 }), r.a.createElement("path", {
3869 d: "M162.306 51.29c.151-.884.377-2.58.377-4.498 0-8.9-4.518-17.936-16.413-17.936-12.724 0-18.597 10.063-18.597 19.19 0 11.288 7.153 18.337 19.65 18.337 4.97 0 9.561-.732 13.327-2.275l-1.506-7.558c-3.088 1.024-6.25 1.537-10.164 1.537-5.345 0-10.012-2.195-10.389-6.871l23.715.072v.002zm-23.79-7.742c.301-2.938 2.26-7.273 7.153-7.273 5.194 0 6.4 4.628 6.4 7.273h-13.552zM190.93 15.665v17.304h-.151c-1.657-2.422-5.12-4.038-9.71-4.038-8.81 0-16.564 7.05-16.49 19.094 0 11.164 7.003 18.435 15.735 18.435 4.744 0 9.26-2.058 11.52-6.024h.225l.453 5.216h10.163c-.15-2.424-.302-6.61-.302-10.723V15.664h-11.444zm0 34.05c0 .88-.075 1.763-.227 2.495-.675 3.16-3.386 5.361-6.699 5.361-4.742 0-7.83-3.818-7.83-9.84 0-5.654 2.637-10.208 7.906-10.208 3.538 0 6.022 2.423 6.7 5.433.15.663.15 1.398.15 2.058v4.7z"
3870 }), r.a.createElement("path", {
3871 d: "M236.85 65.61V31.18h-11.444v34.43h11.445zm-5.72-39.13c3.99 0 6.474-2.644 6.474-5.948-.075-3.379-2.484-5.949-6.398-5.949-3.917 0-6.475 2.57-6.475 5.949 0 3.304 2.483 5.948 6.324 5.948h.074zM243.184 65.61h11.443V46.385c0-1.028.075-2.058.377-2.792.827-2.057 2.71-4.186 5.872-4.186 4.14 0 5.797 3.157 5.797 7.786V65.61h11.443V45.869c0-10.575-5.645-15.496-13.174-15.496-6.173 0-8.884 3.45-10.39 5.8h.076v-4.992h-11.443c.149 3.23-.001 34.43-.001 34.43z",
3872 fill: "#fff"
3873 }))))), r.a.createElement("div", {
3874 className: "columns unlock-form-step"
3875 }, r.a.createElement("div", {
3876 className: "column is-half step-title"
3877 }, "Join our subreddit"), r.a.createElement("div", {
3878 className: "column is-one-quarter step-subtitle"
3879 }, this.state.subredditJoin ? "Complete" : "Pending", this.renderStepCompleteSign(this.state.subredditJoin)), r.a.createElement("div", {
3880 className: "column step-action"
3881 }, r.a.createElement("span", {
3882 onClick: function(t) {
3883 return e.handleStepActionClicked(t, "reddit_step")
3884 },
3885 className: "button"
3886 }, r.a.createElement("svg", {
3887 "clip-rule": "evenodd",
3888 "fill-rule": "evenodd",
3889 height: "26px",
3890 "stroke-linejoin": "round",
3891 "stroke-miterlimit": "1.414",
3892 viewBox: "14.043 10.043 261.159 89.914",
3893 xmlns: "http://www.w3.org/2000/svg"
3894 }, r.a.createElement("circle", {
3895 cx: "249.773",
3896 cy: "40.998",
3897 fill: "#ff4500",
3898 r: "5.687"
3899 }), r.a.createElement("path", {
3900 d: "m168.549 65.247c2.79 0 4.399-2.092 4.292-4.131a15.125 15.125 0 0 0 -.268-2.307c-1.717-7.403-7.725-12.876-14.861-12.876-8.476 0-15.343 7.672-15.343 17.114s6.867 17.114 15.343 17.114c5.312 0 9.121-1.931 11.857-4.989 1.341-1.502 1.073-3.809-.537-4.936-1.341-.912-3.004-.59-4.238.429-1.18 1.02-3.433 3.058-7.082 3.058-4.291 0-7.939-3.702-8.744-8.584h19.581zm-10.89-12.822c3.862 0 7.189 3.004 8.423 7.135h-16.846c1.234-4.184 4.56-7.135 8.423-7.135zm-14.968-3.112c0-1.609-1.18-2.897-2.682-3.165-4.668-.697-9.067 1.019-11.588 4.185v-.43c0-1.985-1.61-3.218-3.219-3.218a3.228 3.228 0 0 0 -3.219 3.218v26.288c0 1.717 1.287 3.219 3.004 3.326 1.878.107 3.434-1.341 3.434-3.219v-13.573c0-6.008 4.506-10.944 10.729-10.246h.644c1.609-.108 2.897-1.503 2.897-3.166zm110.3 3.434a3.228 3.228 0 0 0 -3.218-3.219 3.228 3.228 0 0 0 -3.219 3.219v23.551a3.228 3.228 0 0 0 3.219 3.219 3.228 3.228 0 0 0 3.218-3.219zm-47.854-17.811a3.228 3.228 0 0 0 -3.219-3.219 3.228 3.228 0 0 0 -3.218 3.219v14.324c-2.2-2.2-4.936-3.273-8.209-3.273-8.476 0-15.343 7.672-15.343 17.114s6.867 17.114 15.343 17.114c3.273 0 6.063-1.127 8.262-3.327.268 1.503 1.61 2.629 3.165 2.629a3.228 3.228 0 0 0 3.219-3.219zm-14.592 38.894c-4.936 0-8.906-4.774-8.906-10.729 0-5.901 3.97-10.73 8.906-10.73s8.906 4.775 8.906 10.73-4.024 10.729-8.906 10.729zm48.176-38.894a3.228 3.228 0 0 0 -3.219-3.219 3.228 3.228 0 0 0 -3.219 3.219v14.324c-2.199-2.2-4.935-3.273-8.208-3.273-8.476 0-15.343 7.672-15.343 17.114s6.867 17.114 15.343 17.114c3.273 0 6.062-1.127 8.262-3.327.268 1.503 1.609 2.629 3.165 2.629a3.228 3.228 0 0 0 3.219-3.219zm-14.646 38.894c-4.936 0-8.905-4.774-8.905-10.729 0-5.901 3.969-10.73 8.905-10.73s8.906 4.775 8.906 10.73-3.97 10.729-8.906 10.729zm45.225 2.522v-23.927h2.844c1.502 0 2.843-1.127 2.95-2.683.108-1.663-1.233-3.057-2.843-3.057h-2.951v-4.507c0-1.717-1.287-3.219-3.004-3.326-1.878-.107-3.433 1.341-3.433 3.219v4.667h-2.683c-1.502 0-2.843 1.127-2.95 2.683-.108 1.663 1.234 3.058 2.843 3.058h2.736v23.927a3.228 3.228 0 0 0 3.219 3.218c1.878-.107 3.272-1.502 3.272-3.272z",
3901 fill: "#222",
3902 "fill-rule": "nonzero"
3903 }), r.a.createElement("circle", {
3904 cx: "59",
3905 cy: "55",
3906 fill: "#ff4500",
3907 r: "44.957"
3908 }), r.a.createElement("path", {
3909 d: "m88.989 55a6.536 6.536 0 0 0 -6.545-6.545c-1.77 0-3.38.697-4.56 1.824-4.506-3.219-10.676-5.311-17.543-5.579l3.004-14.056 9.764 2.092a4.67 4.67 0 0 0 9.335-.215 4.67 4.67 0 0 0 -4.667-4.667 4.665 4.665 0 0 0 -4.185 2.629l-10.89-2.307c-.322-.054-.644 0-.859.161-.268.161-.429.429-.482.751l-3.327 15.665c-6.974.215-13.251 2.307-17.811 5.58a6.588 6.588 0 0 0 -4.56-1.824 6.536 6.536 0 0 0 -6.545 6.545c0 2.682 1.609 4.935 3.863 5.955a11.812 11.812 0 0 0 -.161 1.985c0 10.085 11.749 18.294 26.234 18.294s26.234-8.155 26.234-18.294c0-.644-.054-1.342-.161-1.985a6.61 6.61 0 0 0 3.862-6.009zm-44.957 4.667a4.67 4.67 0 0 1 4.668-4.667c2.575 0 4.667 2.092 4.667 4.667s-2.092 4.668-4.667 4.668c-2.576.053-4.668-2.093-4.668-4.668zm26.127 12.393c-3.219 3.219-9.335 3.434-11.105 3.434-1.824 0-7.94-.269-11.106-3.434a1.2 1.2 0 0 1 0-1.717 1.2 1.2 0 0 1 1.717 0c2.039 2.039 6.331 2.736 9.389 2.736s7.403-.697 9.388-2.736a1.2 1.2 0 0 1 1.717 0 1.306 1.306 0 0 1 0 1.717zm-.859-7.672c-2.575 0-4.667-2.092-4.667-4.667s2.092-4.667 4.667-4.667a4.67 4.67 0 0 1 4.668 4.667c0 2.521-2.092 4.667-4.668 4.667z",
3910 fill: "#fff",
3911 "fill-rule": "nonzero"
3912 }))))), r.a.createElement("div", {
3913 className: "columns"
3914 }, r.a.createElement("div", {
3915 className: "column has-text-centered"
3916 }, this.state.isFormSubmitInProgress ? r.a.createElement("a", {
3917 className: "button is-primary"
3918 }, "Submitting...") : r.a.createElement("a", {
3919 disabled: !(this.state.twitterFollowDone && this.state.twitterTweetDone && this.state.chromeStoreRatingDone && this.state.userProfile && this.state.githubWatchAndStarDone),
3920 className: "button is-primary",
3921 onClick: this.handleRequestSubmit
3922 }, "Unlock Premium"))))
3923 }
3924 }, {
3925 key: "renderStepCompleteSign",
3926 value: function(e) {
3927 return e ? r.a.createElement("svg", {
3928 height: "100",
3929 width: "100",
3930 className: "svg-inline--fa fa-check fa-w-12",
3931 "aria-hidden": "true",
3932 "data-prefix": "fab",
3933 "data-icon": "check",
3934 role: "img",
3935 xmlns: "http://www.w3.org/2000/svg",
3936 viewBox: "0 0 512 512",
3937 style: {
3938 position: "relative",
3939 left: "8px",
3940 top: "-3px"
3941 },
3942 "data-fa-i2svg": ""
3943 }, r.a.createElement("path", {
3944 fill: "#68CA0F",
3945 d: "M 835.5 283 C 835.5 296.332031 830.832031 307.667969 821.5 317 L 391.5 747 C 382.167969 756.332031 370.832031 761 357.5 761 C 344.167969 761 332.832031 756.332031 323.5 747 L 74.5 498 C 65.167969 488.667969 60.5 477.332031 60.5 464 C 60.5 450.667969 65.167969 439.332031 74.5 430 L 142.5 362 C 151.832031 352.667969 163.167969 348 176.5 348 C 189.832031 348 201.167969 352.667969 210.5 362 L 357.5 509.5 L 685.5 181 C 694.832031 171.667969 706.167969 167 719.5 167 C 732.832031 167 744.167969 171.667969 753.5 181 L 821.5 249 C 830.832031 258.332031 835.5 269.667969 835.5 283 Z M 835.5 283 "
3946 })) : ""
3947 }
3948 }, {
3949 key: "getUserProfileDropdown",
3950 value: function() {
3951 var e = this;
3952 return r.a.createElement("div", {
3953 className: "dropdown is-right " + (this.state.isProfileDropdownActive ? "is-active" : "")
3954 }, r.a.createElement("div", {
3955 className: "dropdown-trigger",
3956 onClick: function(t) {
3957 return e.setState({
3958 isProfileDropdownActive: !0
3959 })
3960 }
3961 }, r.a.createElement("button", {
3962 className: "button",
3963 "aria-haspopup": "true",
3964 "aria-controls": "dropdown-menu"
3965 }, r.a.createElement("span", null, "" === this.state.selectedUserProfile ? "Choose" : this.state.selectedUserProfile), r.a.createElement("span", {
3966 className: "icon is-small"
3967 }, r.a.createElement("svg", {
3968 className: "svg-inline--fa fa-angle-down fa-w-10",
3969 "aria-hidden": "true",
3970 "data-prefix": "fas",
3971 "data-icon": "angle-down",
3972 role: "img",
3973 xmlns: "http://www.w3.org/2000/svg",
3974 viewBox: "0 0 320 512",
3975 "data-fa-i2svg": ""
3976 }, r.a.createElement("path", {
3977 fill: "currentColor",
3978 d: "M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z"
3979 }))))), r.a.createElement("div", {
3980 className: "dropdown-menu",
3981 id: "dropdown-menu",
3982 role: "menu"
3983 }, r.a.createElement("div", {
3984 className: "dropdown-content",
3985 onClick: this.handleUserProfileSelected
3986 }, r.a.createElement("a", {
3987 className: "dropdown-item",
3988 "data-value": "marketer"
3989 }, "Marketer"), r.a.createElement("a", {
3990 className: "dropdown-item",
3991 "data-value": "developer"
3992 }, "Developer"), r.a.createElement("a", {
3993 className: "dropdown-item",
3994 "data-value": "designer"
3995 }, "Designer"), r.a.createElement("a", {
3996 className: "dropdown-item",
3997 "data-value": "consultant"
3998 }, "Consultant"), r.a.createElement("a", {
3999 className: "dropdown-item",
4000 "data-value": "support"
4001 }, "Customer Support"), r.a.createElement("a", {
4002 className: "dropdown-item",
4003 "data-value": "eng_manager"
4004 }, "Engineering Manager"), r.a.createElement("a", {
4005 className: "dropdown-item",
4006 "data-value": "prod_manager"
4007 }, "Product Manager"), r.a.createElement("a", {
4008 className: "dropdown-item",
4009 "data-value": "tester"
4010 }, "Tester"), r.a.createElement("a", {
4011 className: "dropdown-item",
4012 "data-value": "gamer"
4013 }, "Video Gamer"), r.a.createElement("a", {
4014 className: "dropdown-item",
4015 "data-value": "goanimator"
4016 }, "Goanimator"), r.a.createElement("a", {
4017 className: "dropdown-item",
4018 "data-value": "student"
4019 }, "Student"), r.a.createElement("a", {
4020 className: "dropdown-item",
4021 "data-value": "other"
4022 }, "Other"))))
4023 }
4024 }, {
4025 key: "handleUserProfileSelected",
4026 value: function(e) {
4027 var t = e.target.getAttribute("data-value")
4028 , a = e.target.innerHTML;
4029 this.setState({
4030 selectedUserProfile: a,
4031 isProfileDropdownActive: !1
4032 }),
4033 console.log(this.state.userProfile.uid),
4034 le(["customProfile", this.state.userProfile.uid], {
4035 position: t
4036 }),
4037 M(P.CATEGORIES.UNLOCK, P.ACTIONS.CLICKED, t),
4038 B(P.ATTR.PROFILE, t)
4039 }
4040 }, {
4041 key: "handleStepActionClicked",
4042 value: function(e, t) {
4043 var a = this;
4044 switch (e.preventDefault(),
4045 M(P.CATEGORIES.UNLOCK, P.ACTIONS.CLICKED, t),
4046 t) {
4047 case "twitter_follow_step":
4048 window.open("https://twitter.com/requestlyIO", "_blank"),
4049 setTimeout(function() {
4050 a.setState({
4051 twitterFollowDone: !0
4052 })
4053 }, 3e3);
4054 break;
4055 case "tweet_step":
4056 window.open(" https://twitter.com/intent/tweet?url=https%3A%2F%2Frequestly.io%2F&via=requestlyIO&text=Check%20out%20Requestly%20chrome%20extension%20which%20lets%20you%20Setup%20redirects%2C%20modify%20headers%2C%20switch%20hosts%2C%20insert%20user%20scripts%20and%20much%20more%21", "_blank"),
4057 setTimeout(function() {
4058 a.setState({
4059 twitterTweetDone: !0
4060 })
4061 }, 3e3);
4062 break;
4063 case "linkedin_step":
4064 window.open("https://www.linkedin.com/company/14623447/", "_blank"),
4065 setTimeout(function() {
4066 a.setState({
4067 linkedInPageLike: !0
4068 })
4069 }, 3e3);
4070 break;
4071 case "reddit_step":
4072 window.open("https://www.reddit.com/r/requestly/", "_blank"),
4073 setTimeout(function() {
4074 a.setState({
4075 subredditJoin: !0
4076 })
4077 }, 3e3);
4078 break;
4079 case "rate_us_chrome_store_step":
4080 window.open("https://chrome.google.com/webstore/detail/requestly-redirect-url-mo/mdnleldcmiljblolnjhpnblkcekpdkpa", "_blank"),
4081 setTimeout(function() {
4082 a.setState({
4083 chromeStoreRatingDone: !0
4084 })
4085 }, 6e3);
4086 break;
4087 case "watch_and_star_us_on_github_step":
4088 window.open("https://github.com/requestly/customer-support/subscription", "_blank"),
4089 setTimeout(function() {
4090 a.setState({
4091 githubWatchAndStarDone: !0
4092 })
4093 }, 6e3)
4094 }
4095 }
4096 }, {
4097 key: "handleRequestSubmit",
4098 value: function() {
4099 var e = this;
4100 this.state.selectedUserProfile && this.state.twitterFollowDone && this.state.twitterTweetDone && this.state.chromeStoreRatingDone && this.state.githubWatchAndStarDone && this.state.linkedInPageLike && this.state.subredditJoin ? (le(["unlock", this.state.userProfile.uid], {
4101 status: "pending",
4102 lastUpdated: (new Date).toISOString().split("T")[0]
4103 }, function() {
4104 R.functions().httpsCallable("unlockPremium")({
4105 userId: e.state.userProfile.uid,
4106 email: e.state.userProfile.email,
4107 userName: e.state.userProfile.displayName,
4108 position: e.state.selectedUserProfile
4109 }).then(function() {
4110 e.fetchUserData(),
4111 e.setState({
4112 isFormSubmitInProgress: !1
4113 })
4114 })
4115 }),
4116 this.setState({
4117 isFormSubmitInProgress: !0
4118 })) : Object(E.toast)({
4119 message: "Please complete all the steps before continuing.",
4120 type: "is-danger",
4121 position: "top-center",
4122 duration: 2e3
4123 })
4124 }
4125 }]),
4126 t
4127 }(i.Component))
4128 , Dt = (a(269),
4129 function(e) {
4130 function t() {
4131 return Object(o.a)(this, t),
4132 Object(d.a)(this, Object(m.a)(t).apply(this, arguments))
4133 }
4134 return Object(p.a)(t, e),
4135 Object(u.a)(t, [{
4136 key: "render",
4137 value: function() {
4138 return r.a.createElement(r.a.Fragment, null, r.a.createElement("rq-siderail", null), r.a.createElement("div", {
4139 id: "page",
4140 className: "page"
4141 }, r.a.createElement("div", {
4142 id: "content",
4143 className: "content"
4144 }, r.a.createElement("div", {
4145 className: "default-content-wrapper"
4146 }, r.a.createElement("div", {
4147 className: "header"
4148 }, r.a.createElement("span", {
4149 className: "rq-line"
4150 }, "Requestly - Chrome & Firefox extension to modify network requests")), r.a.createElement("div", {
4151 className: "placeholder-message"
4152 }, r.a.createElement("h3", {
4153 className: "heading row"
4154 }, "Get Started"), r.a.createElement("div", {
4155 className: "body row"
4156 }, r.a.createElement("span", null, "Please install requestly extension to setup rules to modify network requests."), r.a.createElement("a", {
4157 className: "help-link",
4158 href: "http://www.requestly.in"
4159 }, "Learn More..")), r.a.createElement("div", {
4160 className: "actions row"
4161 }, r.a.createElement("a", {
4162 className: "btn btn-info waves-effect waves-light",
4163 id: "chrome-install-btn",
4164 target: "_blank",
4165 href: "https://chrome.google.com/webstore/detail/requestly/mdnleldcmiljblolnjhpnblkcekpdkpa"
4166 }, "Chrome"), r.a.createElement("a", {
4167 className: "btn btn-warning waves-effect waves-light",
4168 id: "firefox-install-btn",
4169 href: "https://app.requestly.in/firefox/builds/requestly-latest.xpi"
4170 }, "Firefox"))))), r.a.createElement("rq-footer", null)), r.a.createElement("div", {
4171 id: "extension-disable-backdrop",
4172 className: "backdrop modal-backdrop"
4173 }), r.a.createElement("div", {
4174 id: "extension-disable-backdrop-message",
4175 className: "backdrop-message alert alert-info"
4176 }, r.a.createElement("p", null, "Requestly is deactivated."), r.a.createElement("p", null, "You can activate it by using Right+Click on requestly icon in toolbar and hit Activate Requestly")))
4177 }
4178 }]),
4179 t
4180 }(at))
4181 , kt = function(e) {
4182 function t() {
4183 return Object(o.a)(this, t),
4184 Object(d.a)(this, Object(m.a)(t).apply(this, arguments))
4185 }
4186 return Object(p.a)(t, e),
4187 Object(u.a)(t, [{
4188 key: "render",
4189 value: function() {
4190 return r.a.createElement("div", {
4191 className: "card"
4192 }, r.a.createElement("div", {
4193 className: "card-header"
4194 }, this.props.heading), r.a.createElement("div", {
4195 className: "card-body"
4196 }, r.a.createElement("p", {
4197 className: "card-text"
4198 }, this.props.context), r.a.createElement("div", null, this.props.CTAButtonText ? r.a.createElement("button", {
4199 className: "btn btn-primary",
4200 onClick: this.props.CTAButtonClickHandler
4201 }, this.props.CTAButtonText) : "")))
4202 }
4203 }]),
4204 t
4205 }(i.Component)
4206 , Lt = function(e) {
4207 function t() {
4208 return Object(o.a)(this, t),
4209 Object(d.a)(this, Object(m.a)(t).apply(this, arguments))
4210 }
4211 return Object(p.a)(t, e),
4212 Object(u.a)(t, [{
4213 key: "render",
4214 value: function() {
4215 return r.a.createElement("nav", {
4216 className: "content-header stylish-color"
4217 }, r.a.createElement("div", {
4218 className: "row text-center"
4219 }, r.a.createElement("div", {
4220 className: "col-md-6 text-left"
4221 }, r.a.createElement("span", null, this.props.heading)), this.props.addCTAButtons ? r.a.createElement("div", {
4222 className: "col-md-6 text-right"
4223 }, r.a.createElement("a", {
4224 className: "btn save-button dropdown-trigger",
4225 role: "button",
4226 "aria-label": "Save"
4227 }, "Save"), r.a.createElement("a", {
4228 className: "btn btn-default discard-button"
4229 }, "Exit")) : ""))
4230 }
4231 }]),
4232 t
4233 }(i.Component)
4234 , Tt = function(e) {
4235 function t() {
4236 var e;
4237 return Object(o.a)(this, t),
4238 (e = Object(d.a)(this, Object(m.a)(t).call(this))).state = {
4239 isLoading: !0,
4240 isLoggedIn: !1,
4241 userProfile: {},
4242 planDetails: {},
4243 planName: "",
4244 endPoint: "",
4245 frequency: 60
4246 },
4247 e.saveRemoteRuleConfig = e.saveRemoteRuleConfig.bind(Object(At.a)(e)),
4248 e
4249 }
4250 return Object(p.a)(t, e),
4251 Object(u.a)(t, [{
4252 key: "componentDidMount",
4253 value: function() {
4254 this.fetchUserData(),
4255 this.fetchSettingsFromStorage()
4256 }
4257 }, {
4258 key: "fetchUserData",
4259 value: function() {
4260 var e = this;
4261 ee(function(t) {
4262 t.isLoggedIn ? (e.setState({
4263 isLoggedIn: t.isLoggedIn,
4264 userProfile: t.profile,
4265 planDetails: t.planDetails
4266 }),
4267 se(["plans"], function(a) {
4268 e.setState({
4269 isLoading: !1
4270 });
4271 var n = C.getPlanName(a, t.planDetails);
4272 C.isExpired(t.planDetails) ? e.setState({
4273 planName: C.allPlanNames().BRONZE
4274 }) : e.setState({
4275 planName: n
4276 })
4277 })) : e.setState({
4278 isLoading: !1
4279 })
4280 })
4281 }
4282 }, {
4283 key: "fetchSettingsFromStorage",
4284 value: function() {
4285 var e = this;
4286 qe().then(function(t) {
4287 t.endPoint && e.setState({
4288 endPoint: t.endPoint
4289 }),
4290 t.frequency && e.setState({
4291 frequency: t.frequency
4292 })
4293 })
4294 }
4295 }, {
4296 key: "renderContentBody",
4297 value: function() {
4298 return r.a.createElement(r.a.Fragment, null, r.a.createElement(Lt, {
4299 heading: "Remote Rules (BETA)"
4300 }), r.a.createElement("div", {
4301 className: "card-container",
4302 style: {
4303 padding: "50px"
4304 }
4305 }, this.renderCardContent()))
4306 }
4307 }, {
4308 key: "renderCardContent",
4309 value: function() {
4310 return this.state.isLoading ? r.a.createElement("div", null, "Loading...") : this.state.isLoggedIn ? this.state.planName !== C.allPlanNames().GOLD ? r.a.createElement(kt, {
4311 heading: "Please Upgrade",
4312 context: r.a.createElement("span", null, "Remote Rules Feature is only available in GOLD Plan. ", r.a.createElement("a", {
4313 href: "https://app.requestly.io/pricing"
4314 }, "Upgrade Now"))
4315 }) : this.renderRemoteRuleConfigurations() : r.a.createElement(kt, {
4316 heading: "Login with your Google Account",
4317 context: "Please login to setup Remote Rules Configuration",
4318 CTAButtonText: "Login",
4319 CTAButtonClickHandler: Z
4320 })
4321 }
4322 }, {
4323 key: "renderRemoteRuleConfigurations",
4324 value: function() {
4325 var e = this;
4326 return r.a.createElement("div", {
4327 className: "card"
4328 }, r.a.createElement("div", {
4329 className: "card-header"
4330 }, "Remote Rules Configuration"), r.a.createElement("div", {
4331 className: "card-body"
4332 }, r.a.createElement("div", {
4333 className: "card-text",
4334 style: {
4335 padding: "1rem 10%"
4336 }
4337 }, r.a.createElement("p", {
4338 className: "m-0"
4339 }, "Define Server EndPoint from where app will periodically import the rules"), r.a.createElement("div", {
4340 className: "input-group mb-3"
4341 }, r.a.createElement("div", {
4342 className: "input-group-prepend"
4343 }, r.a.createElement("span", {
4344 className: "input-group-text",
4345 id: "server-endpoint-input"
4346 }, "Server EndPoint")), r.a.createElement("input", {
4347 type: "text",
4348 className: "form-control",
4349 placeholder: "https://myserver.com/rules/v1",
4350 value: this.state.endPoint,
4351 onChange: function(t) {
4352 return e.setState({
4353 endPoint: t.target.value
4354 })
4355 }
4356 })), r.a.createElement("p", {
4357 className: "m-0"
4358 }, "Frequency (in minutes) for importing rules from Server. Min is 2min, Max is 100min"), r.a.createElement("div", {
4359 className: "input-group mb-3"
4360 }, r.a.createElement("div", {
4361 className: "input-group-prepend"
4362 }, r.a.createElement("span", {
4363 className: "input-group-text",
4364 id: "frequency-input"
4365 }, "Frequency")), r.a.createElement("input", {
4366 type: "number",
4367 min: "2",
4368 max: "60",
4369 className: "form-control",
4370 placeholder: "20",
4371 value: this.state.frequency,
4372 onChange: function(t) {
4373 return e.setState({
4374 frequency: t.target.value
4375 })
4376 }
4377 }))), r.a.createElement("div", {
4378 className: "text-center"
4379 }, r.a.createElement("button", {
4380 type: "button",
4381 className: "btn btn-primary",
4382 style: {
4383 marginRight: "1rem",
4384 padding: "0.75rem"
4385 },
4386 onClick: this.saveRemoteRuleConfig
4387 }, "Save & Import Periodically"))))
4388 }
4389 }, {
4390 key: "validate",
4391 value: function() {
4392 return this.state.endPoint ? !(!this.state.frequency || this.state.frequency < 2 || this.state.frequency > 100) || (alert("Frequency must lie between 2 and 100. Please provide a valid value"),
4393 !1) : (alert("Please enter a valid end point"),
4394 !1)
4395 }
4396 }, {
4397 key: "saveRemoteRuleConfig",
4398 value: function() {
4399 var e = this;
4400 if (this.validate()) {
4401 var t = {
4402 enabled: !0,
4403 endPoint: this.state.endPoint,
4404 frequency: this.state.frequency
4405 };
4406 Me(t).then(function(a) {
4407 a.success ? ce(["settings", e.state.userProfile.uid, "remoteRules"], t).then(function() {
4408 alert("Settings saved successfully!"),
4409 M(P.CATEGORIES.REMOTE_RULES, P.ACTIONS.CREATED, "Remote Rules Settings Created"),
4410 B(P.ATTR.REMOTE_RULES_ENDPOINT, t.endPoint),
4411 B(P.ATTR.REMOTE_RULES_FREQUENCY, t.frequency)
4412 }) : alert("Unable to save settings in storage. Please reach out to support at contact@requestly.io")
4413 })
4414 }
4415 }
4416 }]),
4417 t
4418 }(at)
4419 , xt = a(26)
4420 , jt = a.n(xt)
4421 , Ut = function(e) {
4422 function t(e) {
4423 var a;
4424 return Object(o.a)(this, t),
4425 (a = Object(d.a)(this, Object(m.a)(t).call(this, e))).redirectUrl = function(e, t) {
4426 e ? window.location.href = decodeURIComponent(a.state.redirectUrl) : a.setState({
4427 error: t
4428 })
4429 }
4430 ,
4431 a.handleSignUp = function(e) {
4432 e.preventDefault(),
4433 z(P.ACTIONS.EMAIL_SIGNUP_PERFORMED, a.state.urlSource),
4434 a.unsubscribe(),
4435 ee(function(e) {
4436 a.setState(e, function() {})
4437 }),
4438 W(a.state.name, a.state.email, a.state.password).then(function(e) {
4439 var t = e.status
4440 , n = e.msg;
4441 a.redirectUrl(t, n)
4442 }, function(e) {
4443 var t = e.status
4444 , n = e.msg;
4445 a.redirectUrl(t, n)
4446 })
4447 }
4448 ,
4449 a.handleGoogleLogin = function(e) {
4450 e.preventDefault(),
4451 z(P.ACTIONS.GMAIL_SIGNUP_PERFORMED, a.state.urlSource),
4452 Z(function(e) {
4453 a.redirectUrl(e, "Email already exists. Try using other methods.")
4454 })
4455 }
4456 ,
4457 a.state = {
4458 name: "",
4459 email: "",
4460 password: "",
4461 error: "",
4462 redirectUrl: "/rules",
4463 urlSource: "direct"
4464 },
4465 a
4466 }
4467 return Object(p.a)(t, e),
4468 Object(u.a)(t, [{
4469 key: "componentDidMount",
4470 value: function() {
4471 var e = this
4472 , t = jt.a.parse(this.props.location ? this.props.location.search : {})
4473 , a = encodeURIComponent(t.redirectUrl ? t.redirectUrl : "/rules");
4474 -1 == [encodeURIComponent("/signup"), encodeURIComponent("/signup/")].indexOf(a) && this.setState({
4475 redirectUrl: a
4476 }),
4477 t.src ? this.setState({
4478 urlSource: encodeURIComponent(t.src)
4479 }, function() {
4480 return z(P.ACTIONS.ROUTE_VIEWED, e.state.urlSource)
4481 }) : z(P.ACTIONS.ROUTE_VIEWED, this.state.urlSource),
4482 this.unsubscribe = ee(function(t) {
4483 e.setState(t, function() {
4484 e.state.isLoggedIn && e.redirectUrl(!0, "Already Logged In")
4485 })
4486 })
4487 }
4488 }, {
4489 key: "render",
4490 value: function() {
4491 var e = this;
4492 return r.a.createElement("div", {
4493 className: "container"
4494 }, r.a.createElement("div", {
4495 className: "row"
4496 }, r.a.createElement("div", {
4497 className: "col-xs-12"
4498 }, r.a.createElement("div", {
4499 className: "title"
4500 }, r.a.createElement("span", {
4501 className: "fat-text"
4502 }, "Register"), " below", r.a.createElement("span", {
4503 className: "fat-text"
4504 }, ".")), r.a.createElement("div", {
4505 className: "sub-title"
4506 }, "Already have an account?", " ", r.a.createElement(h.b, {
4507 className: "link",
4508 to: "/signin?redirectUrl=" + this.state.redirectUrl
4509 }, "Sign In")))), r.a.createElement("div", {
4510 className: "row"
4511 }, r.a.createElement("div", {
4512 className: "col-md-offset-2 col-md-4 col-sm-6"
4513 }, r.a.createElement("form", {
4514 className: "login-inputs"
4515 }, r.a.createElement("div", {
4516 className: "form-group"
4517 }, r.a.createElement("label", {
4518 htmlFor: "email",
4519 className: "upcase in-field-label"
4520 }, "Name"), r.a.createElement("input", {
4521 type: "text",
4522 id: "name",
4523 name: "name",
4524 placeholder: "Your full name",
4525 className: "form-control in-field pristine untouched",
4526 "data-vv-id": "1",
4527 "aria-required": "true",
4528 value: this.state.name,
4529 onChange: function(t) {
4530 e.setState({
4531 name: t.target.value
4532 })
4533 }
4534 })), r.a.createElement("div", {
4535 className: "form-group"
4536 }, r.a.createElement("label", {
4537 htmlFor: "email",
4538 className: "upcase in-field-label"
4539 }, "Email Address"), r.a.createElement("input", {
4540 type: "text",
4541 id: "email",
4542 name: "email",
4543 placeholder: "Your company email",
4544 className: "form-control in-field pristine untouched",
4545 "data-vv-id": "1",
4546 "aria-required": "true",
4547 value: this.state.email,
4548 onChange: function(t) {
4549 e.setState({
4550 email: t.target.value
4551 })
4552 }
4553 })), r.a.createElement("div", {
4554 className: "form-group"
4555 }, r.a.createElement("label", {
4556 htmlFor: "password",
4557 className: "upcase in-field-label"
4558 }, "Password"), r.a.createElement("input", {
4559 type: "password",
4560 id: "password",
4561 name: "password",
4562 placeholder: "Choose a password",
4563 className: "form-control in-field pristine untouched",
4564 "data-vv-id": "2",
4565 "aria-required": "true",
4566 value: this.state.password,
4567 onChange: function(t) {
4568 e.setState({
4569 password: t.target.value
4570 })
4571 }
4572 }), r.a.createElement("span", {
4573 className: "help"
4574 }, this.state.error)), r.a.createElement("div", {
4575 className: "form-group margin-bottom"
4576 }, r.a.createElement("button", {
4577 className: "button-primary ",
4578 type: "submit",
4579 value: "SIGNUP",
4580 onClick: this.handleSignUp
4581 }, "SIGN UP")))), r.a.createElement("div", {
4582 className: "hidden-sm hidden-xs col-md-1 seperator"
4583 }, r.a.createElement("div", {
4584 className: "or"
4585 }, r.a.createElement("p", {
4586 className: "or-separator"
4587 }, "OR"))), r.a.createElement("div", {
4588 className: "visible-xs col-xs-12 col-sm-12"
4589 }, r.a.createElement("div", {
4590 className: "or col-xs-2 col-sm-2",
4591 style: {
4592 textAlign: "center",
4593 marginTop: "10px"
4594 }
4595 }, r.a.createElement("p", {
4596 style: {
4597 width: "100%"
4598 }
4599 }, "OR")), r.a.createElement("div", {
4600 className: "col-xs-4 sm-seperator"
4601 })), r.a.createElement("div", {
4602 className: "hidden-xs col-md-1"
4603 }), r.a.createElement("div", {
4604 className: "col-md-3 col-sm-6 col-xs-12 text-xs-center"
4605 }, r.a.createElement("button", {
4606 className: "btn in-btn-google",
4607 onClick: this.handleGoogleLogin
4608 }, r.a.createElement("i", {
4609 className: "fa fa-google button-icon"
4610 }), "SIGN UP WITH GOOGLE"))), r.a.createElement("br", null))
4611 }
4612 }]),
4613 t
4614 }(i.Component)
4615 , Ft = Object(f.e)(Ut)
4616 , qt = function(e) {
4617 function t(e) {
4618 var a;
4619 return Object(o.a)(this, t),
4620 (a = Object(d.a)(this, Object(m.a)(t).call(this, e))).redirectUrl = function(e, t) {
4621 e ? window.location.href = decodeURIComponent(a.state.redirectUrl) : a.setState({
4622 error: t
4623 })
4624 }
4625 ,
4626 a.handleSignIn = function(e) {
4627 e.preventDefault(),
4628 _(P.ACTIONS.EMAIL_LOGIN_PERFORMED, a.state.urlSource),
4629 X(a.state.email, a.state.password).then(function(e) {
4630 var t = e.status
4631 , n = e.msg;
4632 a.redirectUrl(t, n)
4633 }, function(e) {
4634 var t = e.status
4635 , n = e.msg;
4636 a.redirectUrl(t, n)
4637 })
4638 }
4639 ,
4640 a.handleGoogleLogin = function(e) {
4641 e.preventDefault(),
4642 _(P.ACTIONS.GMAIL_LOGIN_PERFORMED, a.state.urlSource),
4643 Z(function(e) {
4644 a.redirectUrl(e, "Email already exists. Try using other methods.")
4645 })
4646 }
4647 ,
4648 a.state = {
4649 email: "",
4650 password: "",
4651 redirectUrl: "/rules",
4652 urlSource: "direct"
4653 },
4654 a
4655 }
4656 return Object(p.a)(t, e),
4657 Object(u.a)(t, [{
4658 key: "componentDidMount",
4659 value: function() {
4660 var e = this
4661 , t = jt.a.parse(this.props.location ? this.props.location.search : {})
4662 , a = encodeURIComponent(t.redirectUrl ? t.redirectUrl : "/rules");
4663 -1 == [encodeURIComponent("/signin"), encodeURIComponent("/signin/")].indexOf(a) && this.setState({
4664 redirectUrl: a
4665 }),
4666 ee(function(t) {
4667 e.setState(t, function() {
4668 e.state.isLoggedIn && e.redirectUrl(!0, "Successfull Login")
4669 })
4670 }),
4671 t.src ? this.setState({
4672 urlSource: encodeURIComponent(t.src)
4673 }, function() {
4674 return _(P.ACTIONS.ROUTE_VIEWED, e.state.urlSource)
4675 }) : _(P.ACTIONS.ROUTE_VIEWED, this.state.urlSource)
4676 }
4677 }, {
4678 key: "render",
4679 value: function() {
4680 var e = this;
4681 return r.a.createElement("div", {
4682 className: "container"
4683 }, r.a.createElement("div", {
4684 className: "row"
4685 }, r.a.createElement("div", {
4686 className: "col-xs-12"
4687 }, r.a.createElement("div", {
4688 className: "title"
4689 }, r.a.createElement("span", {
4690 className: "fat-text"
4691 }, "Login"), " below", r.a.createElement("span", {
4692 className: "fat-text"
4693 }, ".")), r.a.createElement("div", {
4694 className: "sub-title"
4695 }, "Don't have an account?", " ", r.a.createElement(h.b, {
4696 className: "link",
4697 to: "/signup?redirectUrl=" + this.state.redirectUrl + "&src=" + this.state.urlSource
4698 }, "Sign Up")))), r.a.createElement("div", {
4699 className: "row"
4700 }, r.a.createElement("div", {
4701 className: "col-md-offset-2 col-md-4 col-sm-6"
4702 }, r.a.createElement("form", {
4703 className: "login-inputs"
4704 }, r.a.createElement("div", {
4705 className: "form-group"
4706 }, r.a.createElement("label", {
4707 htmlFor: "email",
4708 className: "upcase in-field-label"
4709 }, "Email Address"), r.a.createElement("input", {
4710 type: "text",
4711 id: "email",
4712 name: "email",
4713 placeholder: "Your business email",
4714 className: "form-control in-field pristine untouched",
4715 "data-vv-id": "1",
4716 "aria-required": "true",
4717 value: this.state.email,
4718 onChange: function(t) {
4719 e.setState({
4720 email: t.target.value
4721 })
4722 }
4723 })), r.a.createElement("div", {
4724 className: "form-group"
4725 }, r.a.createElement("label", {
4726 htmlFor: "password",
4727 className: "upcase in-field-label"
4728 }, "Password"), r.a.createElement(h.b, {
4729 className: "link forgot-password",
4730 to: "/forgot?redirectUrl=" + this.state.redirectUrl
4731 }, "Forgot password?"), r.a.createElement("input", {
4732 type: "password",
4733 id: "password",
4734 name: "password",
4735 placeholder: "Your password",
4736 className: "form-control in-field pristine untouched",
4737 "data-vv-id": "2",
4738 "aria-required": "true",
4739 value: this.state.password,
4740 onChange: function(t) {
4741 e.setState({
4742 password: t.target.value
4743 })
4744 }
4745 }), r.a.createElement("span", {
4746 className: "help"
4747 }, this.state.error)), r.a.createElement("div", {
4748 className: "form-group margin-bottom"
4749 }, r.a.createElement("button", {
4750 className: "button-primary ",
4751 type: "submit",
4752 value: "LOGIN",
4753 onClick: this.handleSignIn
4754 }, "LOGIN")))), r.a.createElement("div", {
4755 className: "hidden-sm hidden-xs col-md-1 seperator"
4756 }, r.a.createElement("div", {
4757 className: "or"
4758 }, r.a.createElement("p", {
4759 className: "or-separator"
4760 }, "OR"))), r.a.createElement("div", {
4761 className: "visible-xs col-xs-12 col-sm-12"
4762 }, r.a.createElement("div", {
4763 className: "or col-xs-2 col-sm-2",
4764 style: {
4765 textAlign: "center",
4766 marginTop: "10px"
4767 }
4768 }, r.a.createElement("p", {
4769 style: {
4770 width: "100%"
4771 }
4772 }, "OR")), r.a.createElement("div", {
4773 className: "col-xs-4 sm-seperator"
4774 })), r.a.createElement("div", {
4775 className: "hidden-xs col-md-1"
4776 }), r.a.createElement("div", {
4777 className: "col-md-3 col-sm-6 col-xs-12 text-xs-center"
4778 }, r.a.createElement("button", {
4779 className: "btn in-btn-google",
4780 onClick: this.handleGoogleLogin
4781 }, r.a.createElement("i", {
4782 className: "fa fa-google button-icon"
4783 }), "SIGN IN WITH GOOGLE"))), r.a.createElement("br", null))
4784 }
4785 }]),
4786 t
4787 }(i.Component)
4788 , Mt = Object(f.e)(qt)
4789 , Bt = function(e) {
4790 function t(e) {
4791 var a;
4792 return Object(o.a)(this, t),
4793 (a = Object(d.a)(this, Object(m.a)(t).call(this, e))).redirectUrl = function(e, t) {
4794 e ? a.props.history.push(decodeURIComponent(a.state.redirectUrl)) : a.setState({
4795 error: t
4796 })
4797 }
4798 ,
4799 a.sendForgotPasswordLink = function(e) {
4800 if (e.preventDefault(),
4801 !a.state.email)
4802 return a.setState({
4803 error: "Type in your email first"
4804 });
4805 J(a.state.email).then(function(e) {
4806 var t = e.status;
4807 e.msg;
4808 a.setState({
4809 status: t
4810 })
4811 }, function(e) {
4812 var t = e.status;
4813 e.msg;
4814 t || a.setState({
4815 error: "There wasn't an account for that email"
4816 })
4817 })
4818 }
4819 ,
4820 a.state = {
4821 email: "",
4822 redirectUrl: "/rules",
4823 error: "",
4824 status: !1
4825 },
4826 a
4827 }
4828 return Object(p.a)(t, e),
4829 Object(u.a)(t, [{
4830 key: "componentDidMount",
4831 value: function() {
4832 var e = this
4833 , t = jt.a.parse(this.props.location ? this.props.location.search : {})
4834 , a = encodeURIComponent(t.redirectUrl ? t.redirectUrl : "/rules");
4835 this.setState({
4836 redirectUrl: a
4837 }),
4838 ee(function(t) {
4839 e.setState(t, function() {
4840 e.state.isLoggedIn && e.redirectUrl(!0, "Successfull Login")
4841 })
4842 })
4843 }
4844 }, {
4845 key: "render",
4846 value: function() {
4847 var e, t = this;
4848 return r.a.createElement("div", {
4849 className: "container"
4850 }, r.a.createElement("div", {
4851 className: "row"
4852 }, r.a.createElement("div", {
4853 className: "col-xs-12"
4854 }, r.a.createElement("div", {
4855 className: "title upcase text-center"
4856 }, r.a.createElement("span", {
4857 className: "fat-text"
4858 }, "Forgot"), " Password"), r.a.createElement("div", {
4859 className: "sub-title text-center"
4860 }, this.state.status ? r.a.createElement(r.a.Fragment, null, "We have sent a recovery link to your email address:", " ", this.state.email) : r.a.createElement(r.a.Fragment, null, " ", "Enter the email address associated with your account. ", r.a.createElement("br", null), "We will email you a link to reset your password.")))), this.state.status ? null : r.a.createElement("div", {
4861 className: "row"
4862 }, r.a.createElement("div", {
4863 className: "col-xs-12 margin-left-25 width-50"
4864 }, r.a.createElement("div", {
4865 className: "form-group"
4866 }, r.a.createElement("label", {
4867 htmlFor: "email",
4868 className: "upcase in-field-label"
4869 }, "EMAIL ADDRESS"), r.a.createElement("input", {
4870 type: "text",
4871 id: "email",
4872 name: "email",
4873 placeholder: "Your email address",
4874 className: "form-control in-field pristine untouched",
4875 "data-vv-id": "1",
4876 "aria-required": "true",
4877 value: this.state.email,
4878 onChange: function(e) {
4879 t.setState({
4880 email: e.target.value
4881 })
4882 }
4883 }), r.a.createElement("span", {
4884 className: "help is-danger"
4885 }, this.state.error)))), r.a.createElement("div", {
4886 className: "row"
4887 }, r.a.createElement("div", {
4888 className: "col-xs-12"
4889 }, r.a.createElement("div", {
4890 className: "row"
4891 }, this.state.status ? null : r.a.createElement("div", {
4892 className: "col-xs-6 margin-left-25 width-50"
4893 }, r.a.createElement("div", {
4894 className: "form-group"
4895 }, r.a.createElement("button", (e = {
4896 type: "button",
4897 className: "button-primary"
4898 },
4899 Object(D.a)(e, "type", "submit"),
4900 Object(D.a)(e, "onClick", this.sendForgotPasswordLink),
4901 e), "SEND RESET LINK"))), r.a.createElement("div", {
4902 className: "col-xs-6 margin-left-25 width-50"
4903 }, r.a.createElement("div", {
4904 className: "form-group"
4905 }, r.a.createElement(h.b, {
4906 className: "link",
4907 to: "/signin?redirectUrl=" + this.state.redirectUrl
4908 }, "Return to Sign In")))))))
4909 }
4910 }]),
4911 t
4912 }(i.Component)
4913 , Gt = Object(f.e)(Bt)
4914 , _t = function(e) {
4915 function t(e) {
4916 var a;
4917 return Object(o.a)(this, t),
4918 (a = Object(d.a)(this, Object(m.a)(t).call(this, e))).redirectUrl = function(e, t) {
4919 e ? a.props.history.push(decodeURIComponent(a.state.redirectUrl)) : a.setState({
4920 error: t
4921 })
4922 }
4923 ,
4924 a.handleOobCodeVerification = function(e) {
4925 H(e).then(function(t) {
4926 var n = t.status
4927 , s = (t.msg,
4928 t.email);
4929 n ? a.setState({
4930 email: s,
4931 oobCode: e
4932 }) : a.redirectUrl(!0, "Invalid OOB Code")
4933 }, function(e) {
4934 var t = e.status;
4935 e.msg;
4936 t || a.redirectUrl(!0, "Invalid OOB Code")
4937 })
4938 }
4939 ,
4940 a.handleResetPassword = function(e) {
4941 e.preventDefault(),
4942 Y(a.state.oobCode, a.state.password).then(function(e) {
4943 var t = e.status
4944 , n = e.msg;
4945 a.setState({
4946 error: n,
4947 status: t
4948 })
4949 }, function(e) {
4950 var t = e.status
4951 , n = e.msg;
4952 a.setState({
4953 error: n,
4954 status: t
4955 })
4956 })
4957 }
4958 ,
4959 a.state = {
4960 email: "",
4961 password: "",
4962 oobCode: "",
4963 error: "",
4964 redirectUrl: "/signin",
4965 status: !1
4966 },
4967 a
4968 }
4969 return Object(p.a)(t, e),
4970 Object(u.a)(t, [{
4971 key: "componentDidMount",
4972 value: function() {
4973 var e = this
4974 , t = jt.a.parse(this.props.location ? this.props.location.search : {}).oobCode;
4975 ee(function(t) {
4976 e.setState(t, function() {
4977 e.state.isLoggedIn && e.redirectUrl(!0, "Successfull Login")
4978 })
4979 }),
4980 this.handleOobCodeVerification(t)
4981 }
4982 }, {
4983 key: "render",
4984 value: function() {
4985 var e, t = this;
4986 return r.a.createElement("div", {
4987 className: "container"
4988 }, r.a.createElement("div", {
4989 className: "row"
4990 }, r.a.createElement("div", {
4991 className: "col-xs-12"
4992 }, r.a.createElement("div", {
4993 className: "title upcase text-center"
4994 }, r.a.createElement("span", {
4995 className: "fat-text"
4996 }, "Reset"), " Password"), r.a.createElement("div", {
4997 className: "sub-title text-center"
4998 }, this.state.status ? r.a.createElement("span", null, r.a.createElement("br", null), r.a.createElement("br", null), r.a.createElement("br", null), "Password Reset Successful") : r.a.createElement(r.a.Fragment, null, "Enter the new password you want to create. ", r.a.createElement("br", null), "This password will be used when you next time log in with", " ", this.state.email)))), this.state.status ? null : r.a.createElement("div", {
4999 className: "row"
5000 }, r.a.createElement("div", {
5001 className: "col-xs-12 margin-left-25 width-50"
5002 }, r.a.createElement("div", {
5003 className: "form-group"
5004 }, r.a.createElement("label", {
5005 htmlFor: "email",
5006 className: "upcase in-field-label"
5007 }, "PASSWORD"), r.a.createElement("input", {
5008 type: "password",
5009 id: "password",
5010 name: "password",
5011 placeholder: "Choose a password",
5012 className: "form-control in-field pristine untouched",
5013 "data-vv-id": "2",
5014 "aria-required": "true",
5015 value: this.state.password,
5016 onChange: function(e) {
5017 t.setState({
5018 password: e.target.value
5019 })
5020 }
5021 }), r.a.createElement("span", {
5022 className: "help is-danger"
5023 }, this.state.error)))), r.a.createElement("div", {
5024 className: "row"
5025 }, r.a.createElement("div", {
5026 className: "col-xs-12"
5027 }, r.a.createElement("div", {
5028 className: "row"
5029 }, this.state.status ? null : r.a.createElement("div", {
5030 className: "col-xs-6 margin-left-25 width-50"
5031 }, r.a.createElement("div", {
5032 className: "form-group"
5033 }, r.a.createElement("button", (e = {
5034 type: "button",
5035 className: "button-primary"
5036 },
5037 Object(D.a)(e, "type", "submit"),
5038 Object(D.a)(e, "onClick", this.handleResetPassword),
5039 e), "SEND RESET LINK"))), r.a.createElement("div", {
5040 className: "col-xs-6 margin-left-25 width-50"
5041 }, r.a.createElement("div", {
5042 className: "form-group"
5043 }, r.a.createElement(h.b, {
5044 className: "link",
5045 to: "/signin?redirectUrl=" + this.state.redirectUrl
5046 }, "BACK TO LOGIN")))))))
5047 }
5048 }]),
5049 t
5050 }(i.Component)
5051 , zt = Object(f.e)(_t)
5052 , Vt = ["USD", "EUR", "GBP", "INR", "MXN"]
5053 , Kt = function(e) {
5054 function t() {
5055 return Object(o.a)(this, t),
5056 Object(d.a)(this, Object(m.a)(t).apply(this, arguments))
5057 }
5058 return Object(p.a)(t, e),
5059 Object(u.a)(t, [{
5060 key: "render",
5061 value: function() {
5062 return r.a.createElement("div", null, r.a.createElement(f.c, null, r.a.createElement(f.a, {
5063 exact: !0,
5064 path: "/library/filepicker",
5065 component: null
5066 }), r.a.createElement(f.a, {
5067 exact: !0,
5068 path: "/rules",
5069 component: null
5070 }), r.a.createElement(f.a, {
5071 exact: !0,
5072 path: "/settings/remote-rules",
5073 component: null
5074 }), r.a.createElement(f.a, {
5075 path: "/",
5076 component: wt
5077 })), r.a.createElement(f.c, null, r.a.createElement(f.a, {
5078 exact: !0,
5079 path: "/pricing",
5080 component: Se
5081 }), r.a.createElement(f.a, {
5082 exact: !0,
5083 path: "/pricing/plans",
5084 component: Se
5085 }), r.a.createElement(f.a, {
5086 exact: !0,
5087 path: "/pricing/plans/:currency(" + Vt.join("|") + ")",
5088 component: Se
5089 }), r.a.createElement(f.a, {
5090 exact: !0,
5091 path: "/license"
5092 }, r.a.createElement("div", {
5093 className: "has-bulma-styling"
5094 }, r.a.createElement("div", {
5095 className: "container section"
5096 }, r.a.createElement("div", {
5097 className: "columns"
5098 }, r.a.createElement("div", {
5099 className: "column is-2"
5100 }, r.a.createElement(st, null)), r.a.createElement("div", {
5101 className: "column"
5102 }, r.a.createElement(Ce, null)))))), r.a.createElement(f.a, {
5103 exact: !0,
5104 path: "/license/manage"
5105 }, r.a.createElement("div", {
5106 className: "has-bulma-styling"
5107 }, r.a.createElement("div", {
5108 className: "container section"
5109 }, r.a.createElement("div", {
5110 className: "columns"
5111 }, r.a.createElement("div", {
5112 className: "column is-2"
5113 }, r.a.createElement(st, null)), r.a.createElement("div", {
5114 className: "column"
5115 }, r.a.createElement(Ie, null)))))), r.a.createElement(f.a, {
5116 exact: !0,
5117 path: "/settings"
5118 }, r.a.createElement("div", {
5119 className: "has-bulma-styling"
5120 }, r.a.createElement("div", {
5121 className: "container section"
5122 }, r.a.createElement("div", {
5123 className: "columns"
5124 }, r.a.createElement("div", {
5125 className: "column is-2"
5126 }, r.a.createElement(st, null)), r.a.createElement("div", {
5127 className: "column"
5128 }, r.a.createElement(Be, null)))))), r.a.createElement(f.a, {
5129 exact: !0,
5130 path: "/settings/remote-rules",
5131 component: Tt
5132 }), r.a.createElement(f.a, {
5133 exact: !0,
5134 path: "/library/filepicker",
5135 component: bt
5136 }), r.a.createElement(f.a, {
5137 path: "/library"
5138 }, r.a.createElement("div", {
5139 className: "has-bulma-styling"
5140 }, r.a.createElement("div", {
5141 className: "container section"
5142 }, r.a.createElement("div", {
5143 className: "columns"
5144 }, r.a.createElement("div", {
5145 className: "column is-2"
5146 }, r.a.createElement(st, null)), r.a.createElement("div", {
5147 className: "column"
5148 }, r.a.createElement(f.c, null, r.a.createElement(f.a, {
5149 exact: !0,
5150 path: "/library/",
5151 component: mt
5152 }), r.a.createElement(f.a, {
5153 exact: !0,
5154 path: "/library/new",
5155 component: Et
5156 }), r.a.createElement(f.a, {
5157 path: "/library/:fileId",
5158 component: vt
5159 }))))))), r.a.createElement(f.a, {
5160 path: "/goodbye"
5161 }, r.a.createElement("div", {
5162 className: "has-bulma-styling"
5163 }, r.a.createElement("div", {
5164 className: "container section"
5165 }, r.a.createElement("div", {
5166 className: "columns is-centered"
5167 }, r.a.createElement(It, null))))), r.a.createElement(f.a, {
5168 path: "/unlock"
5169 }, r.a.createElement("div", {
5170 className: "has-bulma-styling"
5171 }, r.a.createElement("div", {
5172 className: "container section"
5173 }, r.a.createElement("div", {
5174 className: "columns"
5175 }, r.a.createElement("div", {
5176 className: "column is-2"
5177 }, r.a.createElement(st, null)), r.a.createElement("div", {
5178 className: "column"
5179 }, r.a.createElement(Pt, null)))))), r.a.createElement(f.a, {
5180 exact: !0,
5181 path: "/rules"
5182 }, Re() ? r.a.createElement(nt, {
5183 route: ""
5184 }) : r.a.createElement(Dt, null)), r.a.createElement(f.a, {
5185 exact: !0,
5186 path: "/signup"
5187 }, r.a.createElement("br", null), r.a.createElement("div", {
5188 className: "has-mdb-styling has-auth-styling"
5189 }, r.a.createElement(Ft, null))), r.a.createElement(f.a, {
5190 exact: !0,
5191 path: "/signin"
5192 }, r.a.createElement("br", null), r.a.createElement("div", {
5193 className: "has-mdb-styling has-auth-styling"
5194 }, r.a.createElement(Mt, null))), r.a.createElement(f.a, {
5195 exact: !0,
5196 path: "/forgot"
5197 }, r.a.createElement("br", null), r.a.createElement("div", {
5198 className: "has-mdb-styling has-auth-styling"
5199 }, r.a.createElement(Gt, null))), r.a.createElement(f.a, {
5200 exact: !0,
5201 path: "/resetPassword"
5202 }, r.a.createElement("br", null), r.a.createElement("div", {
5203 className: "has-mdb-styling has-auth-styling"
5204 }, r.a.createElement(zt, null)))), r.a.createElement(f.c, null, "/* Do not render common footer on these routes */", r.a.createElement(f.a, {
5205 exact: !0,
5206 path: "/library/filepicker",
5207 component: null
5208 }), r.a.createElement(f.a, {
5209 exact: !0,
5210 path: "/rules",
5211 component: null
5212 }), r.a.createElement(f.a, {
5213 exact: !0,
5214 path: "/settings/remote-rules",
5215 component: null
5216 }), r.a.createElement(f.a, {
5217 path: "/",
5218 component: St
5219 })))
5220 }
5221 }]),
5222 t
5223 }(i.Component);
5224 !function() {
5225 var e = window.top === window.self;
5226 !function() {
5227 var e, t, a, n, s, i;
5228 e = window,
5229 t = document,
5230 a = "script",
5231 n = "ga",
5232 e.GoogleAnalyticsObject = n,
5233 e.ga = e.ga || function() {
5234 (e.ga.q = e.ga.q || []).push(arguments)
5235 }
5236 ,
5237 e.ga.l = 1 * new Date,
5238 s = t.createElement(a),
5239 i = t.getElementsByTagName(a)[0],
5240 s.async = 1,
5241 s.src = "https://www.google-analytics.com/analytics.js",
5242 i.parentNode.insertBefore(s, i),
5243 window.ga("create", "UA-46800996-7", "auto"),
5244 window.ga("require", "GTM-KN4N9B7")
5245 }(),
5246 window._scq = window._scq || [],
5247 window._scs = window._scs || {},
5248 window._scs.teamId = "nal7JRMIVrDsANSbkCLVP3",
5249 function() {
5250 var e = document.createElement("script");
5251 e.type = "text/javascript",
5252 e.async = !0,
5253 e.src = "//cdn.sendx.io/prod/nal7JRMIVrDsANSbkCLVP3.js";
5254 var t = document.getElementsByTagName("script")[0];
5255 t.parentNode.insertBefore(e, t)
5256 }(),
5257 function() {
5258 var e = window.analytics = window.analytics || [];
5259 if (!e.initialize)
5260 if (e.invoked)
5261 window.console && console.error && console.error("Segment snippet included twice.");
5262 else {
5263 e.invoked = !0,
5264 e.methods = ["trackSubmit", "trackClick", "trackLink", "trackForm", "pageview", "identify", "reset", "group", "track", "ready", "alias", "debug", "page", "once", "off", "on", "addSourceMiddleware", "addIntegrationMiddleware"],
5265 e.factory = function(t) {
5266 return function() {
5267 var a = Array.prototype.slice.call(arguments);
5268 return a.unshift(t),
5269 e.push(a),
5270 e
5271 }
5272 }
5273 ;
5274 for (var t = 0; t < e.methods.length; t++) {
5275 var a = e.methods[t];
5276 e[a] = e.factory(a)
5277 }
5278 e.load = function(t, a) {
5279 var n = document.createElement("script");
5280 n.type = "text/javascript",
5281 n.async = !0,
5282 n.src = "https://cdn.segment.com/analytics.js/v1/" + t + "/analytics.min.js";
5283 var s = document.getElementsByTagName("script")[0];
5284 s.parentNode.insertBefore(n, s),
5285 e._loadOptions = a
5286 }
5287 ,
5288 e.SNIPPET_VERSION = "4.1.0",
5289 e.load("ffoCEI2K8knMfqli7DCIWxSgbURaHf5h"),
5290 e.page()
5291 }
5292 }(),
5293 R.auth().onAuthStateChanged(function(t) {
5294 e && q(t),
5295 e && function(e) {
5296 var t, a, n = F(e), s = e ? {
5297 email: n.email,
5298 name: n.name,
5299 user_id: n.uid
5300 } : {};
5301 window.helpCrunchSettings = s,
5302 t = window,
5303 a = document,
5304 t.HelpCrunch = function() {
5305 t.HelpCrunch.q.push(arguments)
5306 }
5307 ,
5308 t.HelpCrunch.q = [],
5309 function() {
5310 var e = document.createElement("script");
5311 e.async = 1,
5312 e.type = "text/javascript",
5313 e.src = "https://widget.helpcrunch.com/",
5314 (a.body || a.head).appendChild(e)
5315 }(),
5316 window.HelpCrunch("init", "requestly", {
5317 applicationId: 1,
5318 applicationSecret: "FnCnefAPxnTaq5pb/AuFxa3TXxqAbGWNqiA8v/OOuhhJMGbIH7hOHBNCjDjE5reXaSXye4vu4gMfax9IusQzjQ==",
5319 user: s
5320 }),
5321 window.HelpCrunch("showChatWidget")
5322 }(t),
5323 t && t.uid && function(e) {
5324 var t = F(e);
5325 window.RQ = window.RQ || {},
5326 window.RQ.user = t,
5327 window.ga("set", "userId", e.uid),
5328 window.ga("set", P.GA_CUSTOM_DIMENSIONS.USER_ID, e.uid);
5329 var a = F(e);
5330 a.customFields = {
5331 user_id: e.uid
5332 },
5333 window.sendXSettings = a,
5334 window.analytics.identify(e.uid, t)
5335 }(t),
5336 window.ga("send", "pageview")
5337 }),
5338 L.init()
5339 }();
5340 var Qt = function(e) {
5341 function t() {
5342 return Object(o.a)(this, t),
5343 Object(d.a)(this, Object(m.a)(t).apply(this, arguments))
5344 }
5345 return Object(p.a)(t, e),
5346 Object(u.a)(t, [{
5347 key: "render",
5348 value: function() {
5349 return r.a.createElement(r.a.Fragment, null, r.a.createElement(h.a, null, r.a.createElement(Kt, null)))
5350 }
5351 }]),
5352 t
5353 }(i.Component);
5354 window.RQ = window.RQ || {},
5355 window.RQ.FirebaseActions = n,
5356 window.RQ = window.RQ || {},
5357 window.RQ.ExtensionHelper = s,
5358 window.RQ = window.RQ || {},
5359 window.RQ.AnalyticsHelper = {
5360 submitEvent: M,
5361 submitAttr: B
5362 };
5363 a(281);
5364 c.a.render(r.a.createElement(Qt, null), document.getElementById("root"))
5365 }
5366}, [[123, 1, 2]]]);
5367//# sourceMappingURL=main.12518bd5.chunk.js.map
5368