@depay/widgets 5.0.3 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.js DELETED
@@ -1,4496 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
- var reactDialogStack = require('@depay/react-dialog-stack');
5
- var web3Wallets = require('@depay/web3-wallets');
6
- var ReactDOM = require('react-dom');
7
- var reactShadowDom = require('@depay/react-shadow-dom');
8
- var ethers = require('ethers');
9
- var web3Constants = require('@depay/web3-constants');
10
- var decimal_js = require('decimal.js');
11
- var web3Exchanges = require('@depay/web3-exchanges');
12
- var web3Tokens = require('@depay/web3-tokens');
13
- var localCurrency = require('@depay/local-currency');
14
- var web3Client = require('@depay/web3-client');
15
- var web3Payments = require('@depay/web3-payments');
16
- var Slider = require('react-rangeslider');
17
- var reactTokenImage = require('@depay/react-token-image');
18
- var web3Blockchains = require('@depay/web3-blockchains');
19
-
20
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
21
-
22
- var React__default$1 = /*#__PURE__*/_interopDefaultLegacy(React);
23
- var ReactDOM__default$1 = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
24
- var Slider__default = /*#__PURE__*/_interopDefaultLegacy(Slider);
25
-
26
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
27
- try {
28
- var info = gen[key](arg);
29
- var value = info.value;
30
- } catch (error) {
31
- reject(error);
32
- return;
33
- }
34
-
35
- if (info.done) {
36
- resolve(value);
37
- } else {
38
- Promise.resolve(value).then(_next, _throw);
39
- }
40
- }
41
-
42
- function _asyncToGenerator(fn) {
43
- return function () {
44
- var self = this,
45
- args = arguments;
46
- return new Promise(function (resolve, reject) {
47
- var gen = fn.apply(self, args);
48
-
49
- function _next(value) {
50
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
51
- }
52
-
53
- function _throw(err) {
54
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
55
- }
56
-
57
- _next(undefined);
58
- });
59
- };
60
- }
61
-
62
- function _typeof(obj) {
63
- "@babel/helpers - typeof";
64
-
65
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
66
- return typeof obj;
67
- } : function (obj) {
68
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
69
- }, _typeof(obj);
70
- }
71
-
72
- function createCommonjsModule(fn) {
73
- var module = { exports: {} };
74
- return fn(module, module.exports), module.exports;
75
- }
76
-
77
- /**
78
- * Copyright (c) 2014-present, Facebook, Inc.
79
- *
80
- * This source code is licensed under the MIT license found in the
81
- * LICENSE file in the root directory of this source tree.
82
- */
83
-
84
- var runtime_1 = createCommonjsModule(function (module) {
85
- var runtime = (function (exports) {
86
-
87
- var Op = Object.prototype;
88
- var hasOwn = Op.hasOwnProperty;
89
- var undefined$1; // More compressible than void 0.
90
- var $Symbol = typeof Symbol === "function" ? Symbol : {};
91
- var iteratorSymbol = $Symbol.iterator || "@@iterator";
92
- var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
93
- var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
94
-
95
- function define(obj, key, value) {
96
- Object.defineProperty(obj, key, {
97
- value: value,
98
- enumerable: true,
99
- configurable: true,
100
- writable: true
101
- });
102
- return obj[key];
103
- }
104
- try {
105
- // IE 8 has a broken Object.defineProperty that only works on DOM objects.
106
- define({}, "");
107
- } catch (err) {
108
- define = function(obj, key, value) {
109
- return obj[key] = value;
110
- };
111
- }
112
-
113
- function wrap(innerFn, outerFn, self, tryLocsList) {
114
- // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
115
- var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
116
- var generator = Object.create(protoGenerator.prototype);
117
- var context = new Context(tryLocsList || []);
118
-
119
- // The ._invoke method unifies the implementations of the .next,
120
- // .throw, and .return methods.
121
- generator._invoke = makeInvokeMethod(innerFn, self, context);
122
-
123
- return generator;
124
- }
125
- exports.wrap = wrap;
126
-
127
- // Try/catch helper to minimize deoptimizations. Returns a completion
128
- // record like context.tryEntries[i].completion. This interface could
129
- // have been (and was previously) designed to take a closure to be
130
- // invoked without arguments, but in all the cases we care about we
131
- // already have an existing method we want to call, so there's no need
132
- // to create a new function object. We can even get away with assuming
133
- // the method takes exactly one argument, since that happens to be true
134
- // in every case, so we don't have to touch the arguments object. The
135
- // only additional allocation required is the completion record, which
136
- // has a stable shape and so hopefully should be cheap to allocate.
137
- function tryCatch(fn, obj, arg) {
138
- try {
139
- return { type: "normal", arg: fn.call(obj, arg) };
140
- } catch (err) {
141
- return { type: "throw", arg: err };
142
- }
143
- }
144
-
145
- var GenStateSuspendedStart = "suspendedStart";
146
- var GenStateSuspendedYield = "suspendedYield";
147
- var GenStateExecuting = "executing";
148
- var GenStateCompleted = "completed";
149
-
150
- // Returning this object from the innerFn has the same effect as
151
- // breaking out of the dispatch switch statement.
152
- var ContinueSentinel = {};
153
-
154
- // Dummy constructor functions that we use as the .constructor and
155
- // .constructor.prototype properties for functions that return Generator
156
- // objects. For full spec compliance, you may wish to configure your
157
- // minifier not to mangle the names of these two functions.
158
- function Generator() {}
159
- function GeneratorFunction() {}
160
- function GeneratorFunctionPrototype() {}
161
-
162
- // This is a polyfill for %IteratorPrototype% for environments that
163
- // don't natively support it.
164
- var IteratorPrototype = {};
165
- define(IteratorPrototype, iteratorSymbol, function () {
166
- return this;
167
- });
168
-
169
- var getProto = Object.getPrototypeOf;
170
- var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
171
- if (NativeIteratorPrototype &&
172
- NativeIteratorPrototype !== Op &&
173
- hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
174
- // This environment has a native %IteratorPrototype%; use it instead
175
- // of the polyfill.
176
- IteratorPrototype = NativeIteratorPrototype;
177
- }
178
-
179
- var Gp = GeneratorFunctionPrototype.prototype =
180
- Generator.prototype = Object.create(IteratorPrototype);
181
- GeneratorFunction.prototype = GeneratorFunctionPrototype;
182
- define(Gp, "constructor", GeneratorFunctionPrototype);
183
- define(GeneratorFunctionPrototype, "constructor", GeneratorFunction);
184
- GeneratorFunction.displayName = define(
185
- GeneratorFunctionPrototype,
186
- toStringTagSymbol,
187
- "GeneratorFunction"
188
- );
189
-
190
- // Helper for defining the .next, .throw, and .return methods of the
191
- // Iterator interface in terms of a single ._invoke method.
192
- function defineIteratorMethods(prototype) {
193
- ["next", "throw", "return"].forEach(function(method) {
194
- define(prototype, method, function(arg) {
195
- return this._invoke(method, arg);
196
- });
197
- });
198
- }
199
-
200
- exports.isGeneratorFunction = function(genFun) {
201
- var ctor = typeof genFun === "function" && genFun.constructor;
202
- return ctor
203
- ? ctor === GeneratorFunction ||
204
- // For the native GeneratorFunction constructor, the best we can
205
- // do is to check its .name property.
206
- (ctor.displayName || ctor.name) === "GeneratorFunction"
207
- : false;
208
- };
209
-
210
- exports.mark = function(genFun) {
211
- if (Object.setPrototypeOf) {
212
- Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
213
- } else {
214
- genFun.__proto__ = GeneratorFunctionPrototype;
215
- define(genFun, toStringTagSymbol, "GeneratorFunction");
216
- }
217
- genFun.prototype = Object.create(Gp);
218
- return genFun;
219
- };
220
-
221
- // Within the body of any async function, `await x` is transformed to
222
- // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
223
- // `hasOwn.call(value, "__await")` to determine if the yielded value is
224
- // meant to be awaited.
225
- exports.awrap = function(arg) {
226
- return { __await: arg };
227
- };
228
-
229
- function AsyncIterator(generator, PromiseImpl) {
230
- function invoke(method, arg, resolve, reject) {
231
- var record = tryCatch(generator[method], generator, arg);
232
- if (record.type === "throw") {
233
- reject(record.arg);
234
- } else {
235
- var result = record.arg;
236
- var value = result.value;
237
- if (value &&
238
- typeof value === "object" &&
239
- hasOwn.call(value, "__await")) {
240
- return PromiseImpl.resolve(value.__await).then(function(value) {
241
- invoke("next", value, resolve, reject);
242
- }, function(err) {
243
- invoke("throw", err, resolve, reject);
244
- });
245
- }
246
-
247
- return PromiseImpl.resolve(value).then(function(unwrapped) {
248
- // When a yielded Promise is resolved, its final value becomes
249
- // the .value of the Promise<{value,done}> result for the
250
- // current iteration.
251
- result.value = unwrapped;
252
- resolve(result);
253
- }, function(error) {
254
- // If a rejected Promise was yielded, throw the rejection back
255
- // into the async generator function so it can be handled there.
256
- return invoke("throw", error, resolve, reject);
257
- });
258
- }
259
- }
260
-
261
- var previousPromise;
262
-
263
- function enqueue(method, arg) {
264
- function callInvokeWithMethodAndArg() {
265
- return new PromiseImpl(function(resolve, reject) {
266
- invoke(method, arg, resolve, reject);
267
- });
268
- }
269
-
270
- return previousPromise =
271
- // If enqueue has been called before, then we want to wait until
272
- // all previous Promises have been resolved before calling invoke,
273
- // so that results are always delivered in the correct order. If
274
- // enqueue has not been called before, then it is important to
275
- // call invoke immediately, without waiting on a callback to fire,
276
- // so that the async generator function has the opportunity to do
277
- // any necessary setup in a predictable way. This predictability
278
- // is why the Promise constructor synchronously invokes its
279
- // executor callback, and why async functions synchronously
280
- // execute code before the first await. Since we implement simple
281
- // async functions in terms of async generators, it is especially
282
- // important to get this right, even though it requires care.
283
- previousPromise ? previousPromise.then(
284
- callInvokeWithMethodAndArg,
285
- // Avoid propagating failures to Promises returned by later
286
- // invocations of the iterator.
287
- callInvokeWithMethodAndArg
288
- ) : callInvokeWithMethodAndArg();
289
- }
290
-
291
- // Define the unified helper method that is used to implement .next,
292
- // .throw, and .return (see defineIteratorMethods).
293
- this._invoke = enqueue;
294
- }
295
-
296
- defineIteratorMethods(AsyncIterator.prototype);
297
- define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
298
- return this;
299
- });
300
- exports.AsyncIterator = AsyncIterator;
301
-
302
- // Note that simple async functions are implemented on top of
303
- // AsyncIterator objects; they just return a Promise for the value of
304
- // the final result produced by the iterator.
305
- exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {
306
- if (PromiseImpl === void 0) PromiseImpl = Promise;
307
-
308
- var iter = new AsyncIterator(
309
- wrap(innerFn, outerFn, self, tryLocsList),
310
- PromiseImpl
311
- );
312
-
313
- return exports.isGeneratorFunction(outerFn)
314
- ? iter // If outerFn is a generator, return the full iterator.
315
- : iter.next().then(function(result) {
316
- return result.done ? result.value : iter.next();
317
- });
318
- };
319
-
320
- function makeInvokeMethod(innerFn, self, context) {
321
- var state = GenStateSuspendedStart;
322
-
323
- return function invoke(method, arg) {
324
- if (state === GenStateExecuting) {
325
- throw new Error("Generator is already running");
326
- }
327
-
328
- if (state === GenStateCompleted) {
329
- if (method === "throw") {
330
- throw arg;
331
- }
332
-
333
- // Be forgiving, per 25.3.3.3.3 of the spec:
334
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
335
- return doneResult();
336
- }
337
-
338
- context.method = method;
339
- context.arg = arg;
340
-
341
- while (true) {
342
- var delegate = context.delegate;
343
- if (delegate) {
344
- var delegateResult = maybeInvokeDelegate(delegate, context);
345
- if (delegateResult) {
346
- if (delegateResult === ContinueSentinel) continue;
347
- return delegateResult;
348
- }
349
- }
350
-
351
- if (context.method === "next") {
352
- // Setting context._sent for legacy support of Babel's
353
- // function.sent implementation.
354
- context.sent = context._sent = context.arg;
355
-
356
- } else if (context.method === "throw") {
357
- if (state === GenStateSuspendedStart) {
358
- state = GenStateCompleted;
359
- throw context.arg;
360
- }
361
-
362
- context.dispatchException(context.arg);
363
-
364
- } else if (context.method === "return") {
365
- context.abrupt("return", context.arg);
366
- }
367
-
368
- state = GenStateExecuting;
369
-
370
- var record = tryCatch(innerFn, self, context);
371
- if (record.type === "normal") {
372
- // If an exception is thrown from innerFn, we leave state ===
373
- // GenStateExecuting and loop back for another invocation.
374
- state = context.done
375
- ? GenStateCompleted
376
- : GenStateSuspendedYield;
377
-
378
- if (record.arg === ContinueSentinel) {
379
- continue;
380
- }
381
-
382
- return {
383
- value: record.arg,
384
- done: context.done
385
- };
386
-
387
- } else if (record.type === "throw") {
388
- state = GenStateCompleted;
389
- // Dispatch the exception by looping back around to the
390
- // context.dispatchException(context.arg) call above.
391
- context.method = "throw";
392
- context.arg = record.arg;
393
- }
394
- }
395
- };
396
- }
397
-
398
- // Call delegate.iterator[context.method](context.arg) and handle the
399
- // result, either by returning a { value, done } result from the
400
- // delegate iterator, or by modifying context.method and context.arg,
401
- // setting context.delegate to null, and returning the ContinueSentinel.
402
- function maybeInvokeDelegate(delegate, context) {
403
- var method = delegate.iterator[context.method];
404
- if (method === undefined$1) {
405
- // A .throw or .return when the delegate iterator has no .throw
406
- // method always terminates the yield* loop.
407
- context.delegate = null;
408
-
409
- if (context.method === "throw") {
410
- // Note: ["return"] must be used for ES3 parsing compatibility.
411
- if (delegate.iterator["return"]) {
412
- // If the delegate iterator has a return method, give it a
413
- // chance to clean up.
414
- context.method = "return";
415
- context.arg = undefined$1;
416
- maybeInvokeDelegate(delegate, context);
417
-
418
- if (context.method === "throw") {
419
- // If maybeInvokeDelegate(context) changed context.method from
420
- // "return" to "throw", let that override the TypeError below.
421
- return ContinueSentinel;
422
- }
423
- }
424
-
425
- context.method = "throw";
426
- context.arg = new TypeError(
427
- "The iterator does not provide a 'throw' method");
428
- }
429
-
430
- return ContinueSentinel;
431
- }
432
-
433
- var record = tryCatch(method, delegate.iterator, context.arg);
434
-
435
- if (record.type === "throw") {
436
- context.method = "throw";
437
- context.arg = record.arg;
438
- context.delegate = null;
439
- return ContinueSentinel;
440
- }
441
-
442
- var info = record.arg;
443
-
444
- if (! info) {
445
- context.method = "throw";
446
- context.arg = new TypeError("iterator result is not an object");
447
- context.delegate = null;
448
- return ContinueSentinel;
449
- }
450
-
451
- if (info.done) {
452
- // Assign the result of the finished delegate to the temporary
453
- // variable specified by delegate.resultName (see delegateYield).
454
- context[delegate.resultName] = info.value;
455
-
456
- // Resume execution at the desired location (see delegateYield).
457
- context.next = delegate.nextLoc;
458
-
459
- // If context.method was "throw" but the delegate handled the
460
- // exception, let the outer generator proceed normally. If
461
- // context.method was "next", forget context.arg since it has been
462
- // "consumed" by the delegate iterator. If context.method was
463
- // "return", allow the original .return call to continue in the
464
- // outer generator.
465
- if (context.method !== "return") {
466
- context.method = "next";
467
- context.arg = undefined$1;
468
- }
469
-
470
- } else {
471
- // Re-yield the result returned by the delegate method.
472
- return info;
473
- }
474
-
475
- // The delegate iterator is finished, so forget it and continue with
476
- // the outer generator.
477
- context.delegate = null;
478
- return ContinueSentinel;
479
- }
480
-
481
- // Define Generator.prototype.{next,throw,return} in terms of the
482
- // unified ._invoke helper method.
483
- defineIteratorMethods(Gp);
484
-
485
- define(Gp, toStringTagSymbol, "Generator");
486
-
487
- // A Generator should always return itself as the iterator object when the
488
- // @@iterator function is called on it. Some browsers' implementations of the
489
- // iterator prototype chain incorrectly implement this, causing the Generator
490
- // object to not be returned from this call. This ensures that doesn't happen.
491
- // See https://github.com/facebook/regenerator/issues/274 for more details.
492
- define(Gp, iteratorSymbol, function() {
493
- return this;
494
- });
495
-
496
- define(Gp, "toString", function() {
497
- return "[object Generator]";
498
- });
499
-
500
- function pushTryEntry(locs) {
501
- var entry = { tryLoc: locs[0] };
502
-
503
- if (1 in locs) {
504
- entry.catchLoc = locs[1];
505
- }
506
-
507
- if (2 in locs) {
508
- entry.finallyLoc = locs[2];
509
- entry.afterLoc = locs[3];
510
- }
511
-
512
- this.tryEntries.push(entry);
513
- }
514
-
515
- function resetTryEntry(entry) {
516
- var record = entry.completion || {};
517
- record.type = "normal";
518
- delete record.arg;
519
- entry.completion = record;
520
- }
521
-
522
- function Context(tryLocsList) {
523
- // The root entry object (effectively a try statement without a catch
524
- // or a finally block) gives us a place to store values thrown from
525
- // locations where there is no enclosing try statement.
526
- this.tryEntries = [{ tryLoc: "root" }];
527
- tryLocsList.forEach(pushTryEntry, this);
528
- this.reset(true);
529
- }
530
-
531
- exports.keys = function(object) {
532
- var keys = [];
533
- for (var key in object) {
534
- keys.push(key);
535
- }
536
- keys.reverse();
537
-
538
- // Rather than returning an object with a next method, we keep
539
- // things simple and return the next function itself.
540
- return function next() {
541
- while (keys.length) {
542
- var key = keys.pop();
543
- if (key in object) {
544
- next.value = key;
545
- next.done = false;
546
- return next;
547
- }
548
- }
549
-
550
- // To avoid creating an additional object, we just hang the .value
551
- // and .done properties off the next function object itself. This
552
- // also ensures that the minifier will not anonymize the function.
553
- next.done = true;
554
- return next;
555
- };
556
- };
557
-
558
- function values(iterable) {
559
- if (iterable) {
560
- var iteratorMethod = iterable[iteratorSymbol];
561
- if (iteratorMethod) {
562
- return iteratorMethod.call(iterable);
563
- }
564
-
565
- if (typeof iterable.next === "function") {
566
- return iterable;
567
- }
568
-
569
- if (!isNaN(iterable.length)) {
570
- var i = -1, next = function next() {
571
- while (++i < iterable.length) {
572
- if (hasOwn.call(iterable, i)) {
573
- next.value = iterable[i];
574
- next.done = false;
575
- return next;
576
- }
577
- }
578
-
579
- next.value = undefined$1;
580
- next.done = true;
581
-
582
- return next;
583
- };
584
-
585
- return next.next = next;
586
- }
587
- }
588
-
589
- // Return an iterator with no values.
590
- return { next: doneResult };
591
- }
592
- exports.values = values;
593
-
594
- function doneResult() {
595
- return { value: undefined$1, done: true };
596
- }
597
-
598
- Context.prototype = {
599
- constructor: Context,
600
-
601
- reset: function(skipTempReset) {
602
- this.prev = 0;
603
- this.next = 0;
604
- // Resetting context._sent for legacy support of Babel's
605
- // function.sent implementation.
606
- this.sent = this._sent = undefined$1;
607
- this.done = false;
608
- this.delegate = null;
609
-
610
- this.method = "next";
611
- this.arg = undefined$1;
612
-
613
- this.tryEntries.forEach(resetTryEntry);
614
-
615
- if (!skipTempReset) {
616
- for (var name in this) {
617
- // Not sure about the optimal order of these conditions:
618
- if (name.charAt(0) === "t" &&
619
- hasOwn.call(this, name) &&
620
- !isNaN(+name.slice(1))) {
621
- this[name] = undefined$1;
622
- }
623
- }
624
- }
625
- },
626
-
627
- stop: function() {
628
- this.done = true;
629
-
630
- var rootEntry = this.tryEntries[0];
631
- var rootRecord = rootEntry.completion;
632
- if (rootRecord.type === "throw") {
633
- throw rootRecord.arg;
634
- }
635
-
636
- return this.rval;
637
- },
638
-
639
- dispatchException: function(exception) {
640
- if (this.done) {
641
- throw exception;
642
- }
643
-
644
- var context = this;
645
- function handle(loc, caught) {
646
- record.type = "throw";
647
- record.arg = exception;
648
- context.next = loc;
649
-
650
- if (caught) {
651
- // If the dispatched exception was caught by a catch block,
652
- // then let that catch block handle the exception normally.
653
- context.method = "next";
654
- context.arg = undefined$1;
655
- }
656
-
657
- return !! caught;
658
- }
659
-
660
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
661
- var entry = this.tryEntries[i];
662
- var record = entry.completion;
663
-
664
- if (entry.tryLoc === "root") {
665
- // Exception thrown outside of any try block that could handle
666
- // it, so set the completion value of the entire function to
667
- // throw the exception.
668
- return handle("end");
669
- }
670
-
671
- if (entry.tryLoc <= this.prev) {
672
- var hasCatch = hasOwn.call(entry, "catchLoc");
673
- var hasFinally = hasOwn.call(entry, "finallyLoc");
674
-
675
- if (hasCatch && hasFinally) {
676
- if (this.prev < entry.catchLoc) {
677
- return handle(entry.catchLoc, true);
678
- } else if (this.prev < entry.finallyLoc) {
679
- return handle(entry.finallyLoc);
680
- }
681
-
682
- } else if (hasCatch) {
683
- if (this.prev < entry.catchLoc) {
684
- return handle(entry.catchLoc, true);
685
- }
686
-
687
- } else if (hasFinally) {
688
- if (this.prev < entry.finallyLoc) {
689
- return handle(entry.finallyLoc);
690
- }
691
-
692
- } else {
693
- throw new Error("try statement without catch or finally");
694
- }
695
- }
696
- }
697
- },
698
-
699
- abrupt: function(type, arg) {
700
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
701
- var entry = this.tryEntries[i];
702
- if (entry.tryLoc <= this.prev &&
703
- hasOwn.call(entry, "finallyLoc") &&
704
- this.prev < entry.finallyLoc) {
705
- var finallyEntry = entry;
706
- break;
707
- }
708
- }
709
-
710
- if (finallyEntry &&
711
- (type === "break" ||
712
- type === "continue") &&
713
- finallyEntry.tryLoc <= arg &&
714
- arg <= finallyEntry.finallyLoc) {
715
- // Ignore the finally entry if control is not jumping to a
716
- // location outside the try/catch block.
717
- finallyEntry = null;
718
- }
719
-
720
- var record = finallyEntry ? finallyEntry.completion : {};
721
- record.type = type;
722
- record.arg = arg;
723
-
724
- if (finallyEntry) {
725
- this.method = "next";
726
- this.next = finallyEntry.finallyLoc;
727
- return ContinueSentinel;
728
- }
729
-
730
- return this.complete(record);
731
- },
732
-
733
- complete: function(record, afterLoc) {
734
- if (record.type === "throw") {
735
- throw record.arg;
736
- }
737
-
738
- if (record.type === "break" ||
739
- record.type === "continue") {
740
- this.next = record.arg;
741
- } else if (record.type === "return") {
742
- this.rval = this.arg = record.arg;
743
- this.method = "return";
744
- this.next = "end";
745
- } else if (record.type === "normal" && afterLoc) {
746
- this.next = afterLoc;
747
- }
748
-
749
- return ContinueSentinel;
750
- },
751
-
752
- finish: function(finallyLoc) {
753
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
754
- var entry = this.tryEntries[i];
755
- if (entry.finallyLoc === finallyLoc) {
756
- this.complete(entry.completion, entry.afterLoc);
757
- resetTryEntry(entry);
758
- return ContinueSentinel;
759
- }
760
- }
761
- },
762
-
763
- "catch": function(tryLoc) {
764
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
765
- var entry = this.tryEntries[i];
766
- if (entry.tryLoc === tryLoc) {
767
- var record = entry.completion;
768
- if (record.type === "throw") {
769
- var thrown = record.arg;
770
- resetTryEntry(entry);
771
- }
772
- return thrown;
773
- }
774
- }
775
-
776
- // The context.catch method must only be called with a location
777
- // argument that corresponds to a known catch block.
778
- throw new Error("illegal catch attempt");
779
- },
780
-
781
- delegateYield: function(iterable, resultName, nextLoc) {
782
- this.delegate = {
783
- iterator: values(iterable),
784
- resultName: resultName,
785
- nextLoc: nextLoc
786
- };
787
-
788
- if (this.method === "next") {
789
- // Deliberately forget the last sent value so that we don't
790
- // accidentally pass it on to the delegate.
791
- this.arg = undefined$1;
792
- }
793
-
794
- return ContinueSentinel;
795
- }
796
- };
797
-
798
- // Regardless of whether this script is executing as a CommonJS module
799
- // or not, return the runtime object so that we can declare the variable
800
- // regeneratorRuntime in the outer scope, which allows this module to be
801
- // injected easily by `bin/regenerator --include-runtime script.js`.
802
- return exports;
803
-
804
- }(
805
- // If this script is executing as a CommonJS module, use module.exports
806
- // as the regeneratorRuntime namespace. Otherwise create a new empty
807
- // object. Either way, the resulting object will be used to initialize
808
- // the regeneratorRuntime variable at the top of this file.
809
- module.exports
810
- ));
811
-
812
- try {
813
- regeneratorRuntime = runtime;
814
- } catch (accidentalStrictMode) {
815
- // This module should not be running in strict mode, so the above
816
- // assignment should always work unless something is misconfigured. Just
817
- // in case runtime.js accidentally runs in strict mode, in modern engines
818
- // we can explicitly access globalThis. In older engines we can escape
819
- // strict mode using a global Function call. This could conceivably fail
820
- // if a Content Security Policy forbids using Function, but in that case
821
- // the proper solution is to fix the accidental strict mode problem. If
822
- // you've misconfigured your bundler to force strict mode and applied a
823
- // CSP to forbid Function, and you're not willing to fix either of those
824
- // problems, please detail your unique predicament in a GitHub issue.
825
- if (typeof globalThis === "object") {
826
- globalThis.regeneratorRuntime = runtime;
827
- } else {
828
- Function("r", "regeneratorRuntime = r")(runtime);
829
- }
830
- }
831
- });
832
-
833
- var regenerator = runtime_1;
834
-
835
- function _arrayWithHoles(arr) {
836
- if (Array.isArray(arr)) return arr;
837
- }
838
-
839
- function _iterableToArrayLimit(arr, i) {
840
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
841
-
842
- if (_i == null) return;
843
- var _arr = [];
844
- var _n = true;
845
- var _d = false;
846
-
847
- var _s, _e;
848
-
849
- try {
850
- for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
851
- _arr.push(_s.value);
852
-
853
- if (i && _arr.length === i) break;
854
- }
855
- } catch (err) {
856
- _d = true;
857
- _e = err;
858
- } finally {
859
- try {
860
- if (!_n && _i["return"] != null) _i["return"]();
861
- } finally {
862
- if (_d) throw _e;
863
- }
864
- }
865
-
866
- return _arr;
867
- }
868
-
869
- function _arrayLikeToArray(arr, len) {
870
- if (len == null || len > arr.length) len = arr.length;
871
-
872
- for (var i = 0, arr2 = new Array(len); i < len; i++) {
873
- arr2[i] = arr[i];
874
- }
875
-
876
- return arr2;
877
- }
878
-
879
- function _unsupportedIterableToArray(o, minLen) {
880
- if (!o) return;
881
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
882
- var n = Object.prototype.toString.call(o).slice(8, -1);
883
- if (n === "Object" && o.constructor) n = o.constructor.name;
884
- if (n === "Map" || n === "Set") return Array.from(o);
885
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
886
- }
887
-
888
- function _nonIterableRest() {
889
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
890
- }
891
-
892
- function _slicedToArray(arr, i) {
893
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
894
- }
895
-
896
- var ClosableContext = /*#__PURE__*/React__default$1["default"].createContext();
897
-
898
- var UpdatableContext = /*#__PURE__*/React__default$1["default"].createContext();
899
-
900
- var ClosableProvider = (function (props) {
901
- var _useState = React.useState(true),
902
- _useState2 = _slicedToArray(_useState, 2),
903
- closable = _useState2[0],
904
- setClosable = _useState2[1];
905
-
906
- var _useState3 = React.useState(true),
907
- _useState4 = _slicedToArray(_useState3, 2),
908
- open = _useState4[0],
909
- setOpen = _useState4[1];
910
-
911
- var _useContext = React.useContext(UpdatableContext),
912
- setUpdatable = _useContext.setUpdatable;
913
-
914
- var close = function close() {
915
- if (!closable) {
916
- return;
917
- }
918
-
919
- setUpdatable(false);
920
- setOpen(false);
921
- setTimeout(props.unmount, 300);
922
- };
923
-
924
- return /*#__PURE__*/React__default$1["default"].createElement(ClosableContext.Provider, {
925
- value: {
926
- closable: closable,
927
- setClosable: setClosable,
928
- close: close,
929
- open: open
930
- }
931
- }, props.children);
932
- });
933
-
934
- var ChevronLeft = (function () {
935
- return /*#__PURE__*/React__default$1["default"].createElement("svg", {
936
- className: "ChevronLeft Icon",
937
- xmlns: "http://www.w3.org/2000/svg",
938
- width: "16",
939
- height: "16",
940
- viewBox: "0 0 16 16"
941
- }, /*#__PURE__*/React__default$1["default"].createElement("path", {
942
- strokeWidth: "1",
943
- fillRule: "evenodd",
944
- d: "M10.4,1.6c0.2,0.2,0.2,0.5,0,0.7L4.7,8l5.6,5.6c0.2,0.2,0.2,0.5,0,0.7s-0.5,0.2-0.7,0l-6-6l0,0,c-0.2-0.2-0.2-0.5,0-0.7l6-6l0,0C9.8,1.5,10.2,1.5,10.4,1.6L10.4,1.6z"
945
- }));
946
- });
947
-
948
- var CloseIcon = (function () {
949
- return /*#__PURE__*/React__default$1["default"].createElement("svg", {
950
- className: "CloseIcon Icon",
951
- xmlns: "http://www.w3.org/2000/svg",
952
- width: "24",
953
- height: "24",
954
- viewBox: "0 0 24 24",
955
- strokeWidth: "2",
956
- strokeLinecap: "round",
957
- strokeLinejoin: "round"
958
- }, /*#__PURE__*/React__default$1["default"].createElement("line", {
959
- x1: "18",
960
- y1: "6",
961
- x2: "6",
962
- y2: "18"
963
- }), /*#__PURE__*/React__default$1["default"].createElement("line", {
964
- x1: "6",
965
- y1: "6",
966
- x2: "18",
967
- y2: "18"
968
- }));
969
- });
970
-
971
- var Dialog$1 = (function (props) {
972
- var _useContext = React.useContext(reactDialogStack.NavigateStackContext),
973
- navigate = _useContext.navigate;
974
-
975
- var _useContext2 = React.useContext(ClosableContext),
976
- close = _useContext2.close,
977
- closable = _useContext2.closable;
978
-
979
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
980
- className: "Dialog"
981
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
982
- className: ["DialogHeader", props.stacked ? 'TextCenter' : ''].join(' ')
983
- }, props.stacked && /*#__PURE__*/React__default$1["default"].createElement("div", {
984
- className: "DialogHeaderAction PaddingTopS PaddingLeftS PaddingRightS"
985
- }, /*#__PURE__*/React__default$1["default"].createElement("button", {
986
- onClick: function onClick() {
987
- return navigate('back');
988
- },
989
- className: "ButtonCircular",
990
- title: "Go back"
991
- }, /*#__PURE__*/React__default$1["default"].createElement(ChevronLeft, null))), /*#__PURE__*/React__default$1["default"].createElement("div", {
992
- className: "DialogHeaderTitle"
993
- }, props.header), /*#__PURE__*/React__default$1["default"].createElement("div", {
994
- className: "DialogHeaderAction PaddingTopS PaddingLeftS PaddingRightS"
995
- }, closable && /*#__PURE__*/React__default$1["default"].createElement("button", {
996
- onClick: close,
997
- className: "ButtonCircular",
998
- title: "Close dialog"
999
- }, /*#__PURE__*/React__default$1["default"].createElement(CloseIcon, null)))), /*#__PURE__*/React__default$1["default"].createElement("div", {
1000
- className: "DialogBody"
1001
- }, props.body), /*#__PURE__*/React__default$1["default"].createElement("div", {
1002
- className: "DialogFooter"
1003
- }, props.footer));
1004
- });
1005
-
1006
- var ConnectingWalletDialog = (function (props) {
1007
- var _useContext = React.useContext(reactDialogStack.NavigateStackContext),
1008
- navigate = _useContext.navigate;
1009
-
1010
- var wallet = props.wallet;
1011
- wallet !== null && wallet !== void 0 && wallet.name ? wallet.name : 'wallet';
1012
- var walletLogo = wallet !== null && wallet !== void 0 && wallet.logo ? wallet.logo : undefined;
1013
-
1014
- if (props.pending) {
1015
- return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
1016
- stacked: true,
1017
- body: /*#__PURE__*/React__default$1["default"].createElement("div", null, walletLogo && /*#__PURE__*/React__default$1["default"].createElement("div", {
1018
- className: "GraphicWrapper PaddingTopS PaddingBottomS"
1019
- }, /*#__PURE__*/React__default$1["default"].createElement("img", {
1020
- className: "Graphic",
1021
- src: walletLogo
1022
- })), /*#__PURE__*/React__default$1["default"].createElement("h1", {
1023
- className: "LineHeightL Text FontSizeL FontWeightBold PaddingTopS"
1024
- }, "Connect Wallet"), /*#__PURE__*/React__default$1["default"].createElement("div", {
1025
- className: "Text PaddingTopS PaddingBottomS PaddingLeftS PaddingRightS"
1026
- }, /*#__PURE__*/React__default$1["default"].createElement("strong", {
1027
- className: "FontSizeM PaddingLeftM PaddingRightM"
1028
- }, "Your wallet is already open and asking for permission to connect. Please find your wallet dialog and confirm this connection.")))
1029
- });
1030
- } else {
1031
- return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
1032
- stacked: true,
1033
- body: /*#__PURE__*/React__default$1["default"].createElement("div", null, walletLogo && /*#__PURE__*/React__default$1["default"].createElement("div", {
1034
- className: "GraphicWrapper PaddingTopS PaddingBottomS"
1035
- }, /*#__PURE__*/React__default$1["default"].createElement("img", {
1036
- className: "Graphic",
1037
- src: walletLogo
1038
- })), /*#__PURE__*/React__default$1["default"].createElement("h1", {
1039
- className: "LineHeightL Text FontSizeL FontWeightBold PaddingTopS"
1040
- }, "Connect Wallet"), /*#__PURE__*/React__default$1["default"].createElement("div", {
1041
- className: "Text PaddingTopS PaddingBottomS PaddingLeftS PaddingRightS"
1042
- }, /*#__PURE__*/React__default$1["default"].createElement("p", {
1043
- className: "FontSizeM PaddingLeftM PaddingRightM"
1044
- }, "Access to your wallet is required. Please login and authorize access to your account to continue."), /*#__PURE__*/React__default$1["default"].createElement("div", {
1045
- className: "PaddingTopS"
1046
- }, /*#__PURE__*/React__default$1["default"].createElement("button", {
1047
- onClick: function onClick() {
1048
- return navigate('back');
1049
- },
1050
- className: "TextButton"
1051
- }, "Connect with another wallet")))),
1052
- footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
1053
- className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
1054
- }, /*#__PURE__*/React__default$1["default"].createElement("button", {
1055
- className: "ButtonPrimary",
1056
- onClick: function onClick() {
1057
- return props.connect(wallet);
1058
- }
1059
- }, "Connect"))
1060
- });
1061
- }
1062
- });
1063
-
1064
- var ChevronRight = (function () {
1065
- return /*#__PURE__*/React__default$1["default"].createElement("svg", {
1066
- className: "ChevronRight Icon",
1067
- xmlns: "http://www.w3.org/2000/svg",
1068
- width: "16",
1069
- height: "16",
1070
- viewBox: "0 0 16 16"
1071
- }, /*#__PURE__*/React__default$1["default"].createElement("path", {
1072
- strokeWidth: "1",
1073
- fillRule: "evenodd",
1074
- d: "M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"
1075
- }));
1076
- });
1077
-
1078
- var SelectWalletDialog = (function (props) {
1079
- var _useState = React.useState(false),
1080
- _useState2 = _slicedToArray(_useState, 2),
1081
- showExplanation = _useState2[0],
1082
- setShowExplanation = _useState2[1];
1083
-
1084
- var _useContext = React.useContext(reactDialogStack.NavigateStackContext),
1085
- navigate = _useContext.navigate;
1086
-
1087
- var wallet = web3Wallets.getWallet();
1088
- React.useEffect( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee() {
1089
- var accounts;
1090
- return regenerator.wrap(function _callee$(_context) {
1091
- while (1) {
1092
- switch (_context.prev = _context.next) {
1093
- case 0:
1094
- if (!wallet) {
1095
- _context.next = 5;
1096
- break;
1097
- }
1098
-
1099
- _context.next = 3;
1100
- return wallet.accounts();
1101
-
1102
- case 3:
1103
- accounts = _context.sent;
1104
-
1105
- if (accounts == undefined || accounts.length == 0) {
1106
- navigate('ConnectingWallet');
1107
- }
1108
-
1109
- case 5:
1110
- case "end":
1111
- return _context.stop();
1112
- }
1113
- }
1114
- }, _callee);
1115
- })), [wallet]);
1116
-
1117
- var connect = function connect(wallet) {
1118
- props.setWallet(wallet);
1119
- navigate('ConnectingWallet');
1120
- props.connect(wallet);
1121
- };
1122
-
1123
- var availableWallets = [web3Wallets.wallets.WalletConnect];
1124
-
1125
- if (wallet) {
1126
- availableWallets.unshift(wallet);
1127
- }
1128
-
1129
- var walletCards = availableWallets.map(function (wallet, index) {
1130
- return /*#__PURE__*/React__default$1["default"].createElement("button", {
1131
- key: index,
1132
- className: "Card small",
1133
- title: "Connect ".concat(wallet.name),
1134
- onClick: function onClick() {
1135
- return connect(wallet);
1136
- }
1137
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
1138
- className: "CardImage"
1139
- }, /*#__PURE__*/React__default$1["default"].createElement("img", {
1140
- src: wallet.logo
1141
- })), /*#__PURE__*/React__default$1["default"].createElement("div", {
1142
- className: "CardBody"
1143
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
1144
- className: "CardBodyWrapper PaddingLeftXS"
1145
- }, /*#__PURE__*/React__default$1["default"].createElement("h2", {
1146
- className: "CardText FontWeightBold"
1147
- }, wallet.name))));
1148
- });
1149
- return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
1150
- header: /*#__PURE__*/React__default$1["default"].createElement("div", {
1151
- className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
1152
- }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
1153
- className: "LineHeightL FontSizeL"
1154
- }, "Select a wallet")),
1155
- body: /*#__PURE__*/React__default$1["default"].createElement("div", {
1156
- className: "PaddingTopS PaddingBottomXS PaddingLeftS PaddingRightS"
1157
- }, walletCards),
1158
- footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
1159
- className: "PaddingBottomS"
1160
- }, /*#__PURE__*/React__default$1["default"].createElement("button", {
1161
- className: "FontSizeS FontWeightBold TextButton",
1162
- onClick: function onClick() {
1163
- return setShowExplanation(!showExplanation);
1164
- }
1165
- }, /*#__PURE__*/React__default$1["default"].createElement("strong", {
1166
- className: "Opacity05"
1167
- }, "What is a wallet?")), showExplanation && /*#__PURE__*/React__default$1["default"].createElement("p", {
1168
- className: "PaddingLeftM PaddingRightM"
1169
- }, "Wallets are used to send, receive, and store digital assets. Wallets come in many forms. They are either built into your browser, an extension added to your browser, a piece of hardware plugged into your computer or even an app on your phone."))
1170
- });
1171
- });
1172
-
1173
- var ConnectStack = (function (props) {
1174
- var _useContext = React.useContext(ClosableContext),
1175
- open = _useContext.open,
1176
- close = _useContext.close;
1177
-
1178
- var _useState = React.useState(),
1179
- _useState2 = _slicedToArray(_useState, 2),
1180
- pending = _useState2[0],
1181
- setPending = _useState2[1];
1182
-
1183
- var _useState3 = React.useState(),
1184
- _useState4 = _slicedToArray(_useState3, 2),
1185
- wallet = _useState4[0],
1186
- setWallet = _useState4[1];
1187
-
1188
- var connect = function connect(wallet) {
1189
- wallet.connect().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee() {
1190
- var accounts;
1191
- return regenerator.wrap(function _callee$(_context) {
1192
- while (1) {
1193
- switch (_context.prev = _context.next) {
1194
- case 0:
1195
- _context.next = 2;
1196
- return wallet.accounts();
1197
-
1198
- case 2:
1199
- accounts = _context.sent;
1200
-
1201
- if (accounts instanceof Array && accounts.length > 0) {
1202
- if (props.autoClose) close();
1203
- if (props.resolve) props.resolve({
1204
- wallet: wallet,
1205
- account: accounts[0],
1206
- accounts: accounts
1207
- });
1208
- }
1209
-
1210
- case 4:
1211
- case "end":
1212
- return _context.stop();
1213
- }
1214
- }
1215
- }, _callee);
1216
- })))["catch"](function (error) {
1217
- setPending(false);
1218
-
1219
- if ((error === null || error === void 0 ? void 0 : error.code) == 4001) {
1220
- // User rejected the request.
1221
- return;
1222
- } else if ((error === null || error === void 0 ? void 0 : error.code) == -32002) {
1223
- // Request of type 'wallet_requestPermissions' already pending...
1224
- setPending(true);
1225
- return;
1226
- } else {
1227
- if (props.reject) props.reject(error);
1228
- }
1229
- });
1230
- };
1231
-
1232
- React.useEffect(function () {
1233
- var wallet = web3Wallets.getWallet();
1234
-
1235
- if (wallet) {
1236
- setWallet(wallet);
1237
- }
1238
- }, []);
1239
- React.useEffect( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2() {
1240
- var accounts;
1241
- return regenerator.wrap(function _callee2$(_context2) {
1242
- while (1) {
1243
- switch (_context2.prev = _context2.next) {
1244
- case 0:
1245
- if (!wallet) {
1246
- _context2.next = 5;
1247
- break;
1248
- }
1249
-
1250
- _context2.next = 3;
1251
- return wallet.accounts();
1252
-
1253
- case 3:
1254
- accounts = _context2.sent;
1255
-
1256
- if (accounts instanceof Array && accounts.length > 0) {
1257
- if (props.resolve) props.resolve({
1258
- wallet: wallet,
1259
- account: accounts[0],
1260
- accounts: accounts
1261
- });
1262
- } else {
1263
- connect(wallet);
1264
- }
1265
-
1266
- case 5:
1267
- case "end":
1268
- return _context2.stop();
1269
- }
1270
- }
1271
- }, _callee2);
1272
- })), [wallet]);
1273
- return /*#__PURE__*/React__default$1["default"].createElement(reactDialogStack.ReactDialogStack, {
1274
- open: open,
1275
- close: close,
1276
- start: "SelectWallet",
1277
- container: props.container,
1278
- document: props.document,
1279
- dialogs: {
1280
- SelectWallet: /*#__PURE__*/React__default$1["default"].createElement(SelectWalletDialog, {
1281
- setWallet: setWallet,
1282
- connect: connect
1283
- }),
1284
- ConnectingWallet: /*#__PURE__*/React__default$1["default"].createElement(ConnectingWalletDialog, {
1285
- wallet: wallet,
1286
- pending: pending,
1287
- connect: connect
1288
- })
1289
- }
1290
- });
1291
- });
1292
-
1293
- var ensureDocument = (function (document) {
1294
- if (typeof document === 'undefined') {
1295
- return window.document;
1296
- } else {
1297
- return document;
1298
- }
1299
- });
1300
-
1301
- function _classCallCheck(instance, Constructor) {
1302
- if (!(instance instanceof Constructor)) {
1303
- throw new TypeError("Cannot call a class as a function");
1304
- }
1305
- }
1306
-
1307
- function _defineProperties(target, props) {
1308
- for (var i = 0; i < props.length; i++) {
1309
- var descriptor = props[i];
1310
- descriptor.enumerable = descriptor.enumerable || false;
1311
- descriptor.configurable = true;
1312
- if ("value" in descriptor) descriptor.writable = true;
1313
- Object.defineProperty(target, descriptor.key, descriptor);
1314
- }
1315
- }
1316
-
1317
- function _createClass(Constructor, protoProps, staticProps) {
1318
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
1319
- if (staticProps) _defineProperties(Constructor, staticProps);
1320
- Object.defineProperty(Constructor, "prototype", {
1321
- writable: false
1322
- });
1323
- return Constructor;
1324
- }
1325
-
1326
- function _setPrototypeOf(o, p) {
1327
- _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
1328
- o.__proto__ = p;
1329
- return o;
1330
- };
1331
-
1332
- return _setPrototypeOf(o, p);
1333
- }
1334
-
1335
- function _inherits(subClass, superClass) {
1336
- if (typeof superClass !== "function" && superClass !== null) {
1337
- throw new TypeError("Super expression must either be null or a function");
1338
- }
1339
-
1340
- Object.defineProperty(subClass, "prototype", {
1341
- value: Object.create(superClass && superClass.prototype, {
1342
- constructor: {
1343
- value: subClass,
1344
- writable: true,
1345
- configurable: true
1346
- }
1347
- }),
1348
- writable: false
1349
- });
1350
- if (superClass) _setPrototypeOf(subClass, superClass);
1351
- }
1352
-
1353
- function _assertThisInitialized(self) {
1354
- if (self === void 0) {
1355
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
1356
- }
1357
-
1358
- return self;
1359
- }
1360
-
1361
- function _possibleConstructorReturn(self, call) {
1362
- if (call && (_typeof(call) === "object" || typeof call === "function")) {
1363
- return call;
1364
- } else if (call !== void 0) {
1365
- throw new TypeError("Derived constructors may only return object or undefined");
1366
- }
1367
-
1368
- return _assertThisInitialized(self);
1369
- }
1370
-
1371
- function _getPrototypeOf(o) {
1372
- _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
1373
- return o.__proto__ || Object.getPrototypeOf(o);
1374
- };
1375
- return _getPrototypeOf(o);
1376
- }
1377
-
1378
- var ErrorContext = /*#__PURE__*/React__default$1["default"].createContext();
1379
-
1380
- var ErrorGraphic = "data:image/png;base64,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";
1381
-
1382
- function _interopDefaultLegacy$1 (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
1383
-
1384
- var React__default = /*#__PURE__*/_interopDefaultLegacy$1(React__default$1["default"]);
1385
- var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy$1(ReactDOM__default$1["default"]);
1386
-
1387
- function ReactDialogStyle (styles) {
1388
- let background =
1389
- typeof styles === 'object' && styles.background ? styles.background : 'rgba(0,0,0,0.4)';
1390
-
1391
- return `
1392
- .ReactDialog {
1393
- bottom: 0;
1394
- display: table;
1395
- height: 100%;
1396
- left: 0;
1397
- overflow: hidden;
1398
- position: absolute;
1399
- right: 0;
1400
- top: 0;
1401
- user-select: none;
1402
- width: 100%;
1403
- }
1404
-
1405
- .ReactDialogRow {
1406
- display: table-row;
1407
- height: 100%;
1408
- width: 100%;
1409
- }
1410
-
1411
- .ReactDialogCell {
1412
- display: table-cell;
1413
- height: 100%;
1414
- vertical-align: middle;
1415
- width: 100%;
1416
- text-align: center;
1417
- }
1418
-
1419
- .ReactDialogBackground {
1420
- background: ${background};
1421
- bottom: 0;
1422
- display: block;
1423
- height: 100%;
1424
- left: 0;
1425
- opacity: 0;
1426
- position: fixed;
1427
- right: 0;
1428
- top: 0;
1429
- transition: opacity 0.4s ease;
1430
- width: 100%;
1431
- }
1432
-
1433
- .ReactDialog.ReactDialogOpen .ReactDialogBackground {
1434
- opacity: 1;
1435
- }
1436
-
1437
- .ReactDialogAnimation {
1438
- display: inline-block;
1439
- position: relative;
1440
- opacity: 0;
1441
- top: -17vh;
1442
- transition: opacity 0.4s ease, top 0.4s ease;
1443
- }
1444
-
1445
- .ReactDialog.ReactDialogOpen .ReactDialogAnimation {
1446
- opacity: 1.0;
1447
- top: -5vh;
1448
- }
1449
- `
1450
- }
1451
-
1452
- const _jsxFileName = "/home/runner/work/react-dialog/react-dialog/src/components/Dialog.jsx";
1453
- class Dialog extends React__default['default'].Component {
1454
- constructor(props) {
1455
- super(props);
1456
-
1457
- this.state = {
1458
- open: true,
1459
- };
1460
- }
1461
-
1462
- closeDialog() {
1463
- this.props.close();
1464
- }
1465
-
1466
- onKeyDown(event) {
1467
- if (event.key === 'Escape') {
1468
- this.closeDialog();
1469
- }
1470
- }
1471
-
1472
- componentDidUpdate(prevProps) {
1473
- if (this.props.open === false && prevProps.open === true) {
1474
- this.setState({ open: false });
1475
- }
1476
- }
1477
-
1478
- onClickBackground(event) {
1479
- this.closeDialog();
1480
- }
1481
-
1482
- componentDidMount() {
1483
- this.setState({ open: false }, () => {
1484
- // make sure state is false first before opening the dialog
1485
- // to ensure opening is animated
1486
- setTimeout(() => {
1487
- this.setState({ open: true });
1488
- }, 10);
1489
- });
1490
- this.props.document.addEventListener('keydown', this.onKeyDown.bind(this), false);
1491
- }
1492
-
1493
- componentWillUnmount() {
1494
- this.props.document.addEventListener('keydown', this.onKeyDown.bind(this), false);
1495
- }
1496
-
1497
- render() {
1498
- const classNames = ['ReactDialog', this.state.open ? 'ReactDialogOpen' : ''];
1499
- const style = ReactDialogStyle({ background: this.props.background });
1500
- return (
1501
- React__default['default'].createElement('div', { className: classNames.join(' '), __self: this, __source: {fileName: _jsxFileName, lineNumber: 54}}
1502
- , React__default['default'].createElement('style', {__self: this, __source: {fileName: _jsxFileName, lineNumber: 55}}, style)
1503
- , React__default['default'].createElement('div', { className: "ReactDialogRow", __self: this, __source: {fileName: _jsxFileName, lineNumber: 56}}
1504
- , React__default['default'].createElement('div', { className: "ReactDialogCell", __self: this, __source: {fileName: _jsxFileName, lineNumber: 57}}
1505
- , React__default['default'].createElement('div', { className: "ReactDialogBackground", onClick: this.onClickBackground.bind(this), __self: this, __source: {fileName: _jsxFileName, lineNumber: 58}} )
1506
- , this.props.children
1507
- )
1508
- )
1509
- )
1510
- )
1511
- }
1512
- }
1513
-
1514
- const _jsxFileName$1 = "/home/runner/work/react-dialog/react-dialog/src/index.jsx";
1515
- class ReactDialog extends React__default['default'].Component {
1516
- constructor(props) {
1517
- super(props);
1518
-
1519
- this.state = {
1520
- open: props.open,
1521
- };
1522
- }
1523
-
1524
- componentDidUpdate(prevProps) {
1525
- if (this.props.open === false && prevProps.open === true) {
1526
- setTimeout(() => {
1527
- this.setState({ open: false });
1528
- }, 400);
1529
- } else if (this.props.open === true && prevProps.open === false) {
1530
- this.setState({ open: true });
1531
- }
1532
- }
1533
-
1534
- render() {
1535
- let _document = this.props.document || document;
1536
- let container = this.props.container || _document.body;
1537
- if (this.state.open) {
1538
- return ReactDOM__default['default'].createPortal(
1539
- React__default['default'].createElement(Dialog, {
1540
- background: this.props.background,
1541
- close: this.props.close,
1542
- document: _document,
1543
- open: this.props.open, __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 29}}
1544
-
1545
- , this.props.children
1546
- ),
1547
- container,
1548
- )
1549
- } else {
1550
- // enforces unmount
1551
- return null
1552
- }
1553
- }
1554
- }
1555
-
1556
- var ReactDialog_1 = ReactDialog;
1557
-
1558
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
1559
-
1560
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
1561
-
1562
- var ErrorBoundary = /*#__PURE__*/function (_React$Component) {
1563
- _inherits(ErrorBoundary, _React$Component);
1564
-
1565
- var _super = _createSuper(ErrorBoundary);
1566
-
1567
- function ErrorBoundary(props) {
1568
- _classCallCheck(this, ErrorBoundary);
1569
-
1570
- return _super.call(this, props);
1571
- }
1572
-
1573
- _createClass(ErrorBoundary, [{
1574
- key: "componentDidCatch",
1575
- value: function componentDidCatch(error, errorInfo) {
1576
- this.props.setError(error);
1577
- }
1578
- }, {
1579
- key: "render",
1580
- value: function render() {
1581
- return this.props.children;
1582
- }
1583
- }]);
1584
-
1585
- return ErrorBoundary;
1586
- }(React__default$1["default"].Component);
1587
-
1588
- var ErrorProvider = (function (props) {
1589
- var _useState = React.useState(),
1590
- _useState2 = _slicedToArray(_useState, 2),
1591
- error = _useState2[0],
1592
- setError = _useState2[1];
1593
-
1594
- var _useState3 = React.useState(true),
1595
- _useState4 = _slicedToArray(_useState3, 2),
1596
- open = _useState4[0],
1597
- setOpen = _useState4[1];
1598
-
1599
- var setErrorFromChildren = function setErrorFromChildren(error) {
1600
- setError(error);
1601
-
1602
- if (props.error) {
1603
- props.error(error);
1604
- }
1605
- };
1606
-
1607
- var close = function close() {
1608
- setOpen(false);
1609
- setTimeout(props.unmount, 300);
1610
- };
1611
-
1612
- if (error) {
1613
- console.log(error);
1614
- return /*#__PURE__*/React__default$1["default"].createElement(ReactDialog_1, {
1615
- container: props.container,
1616
- close: close,
1617
- open: open
1618
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
1619
- className: "Dialog ReactDialogAnimation"
1620
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
1621
- className: "DialogHeader"
1622
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
1623
- className: "PaddingTopS PaddingLeftS PaddingRightS"
1624
- })), /*#__PURE__*/React__default$1["default"].createElement("div", {
1625
- className: "DialogBody"
1626
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
1627
- className: "GraphicWrapper PaddingTopS"
1628
- }, /*#__PURE__*/React__default$1["default"].createElement("img", {
1629
- className: "Graphic",
1630
- src: ErrorGraphic
1631
- })), /*#__PURE__*/React__default$1["default"].createElement("h1", {
1632
- className: "LineHeightL Text FontSizeL PaddingTopS FontWeightBold"
1633
- }, "Oops, Something Went Wrong"), /*#__PURE__*/React__default$1["default"].createElement("div", {
1634
- className: "Text PaddingTopS PaddingBottomS PaddingLeftS PaddingRightS"
1635
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
1636
- className: "PaddingLeftS PaddingRightS"
1637
- }, /*#__PURE__*/React__default$1["default"].createElement("pre", {
1638
- className: "ErrorSnippetText"
1639
- }, error.toString())), /*#__PURE__*/React__default$1["default"].createElement("div", {
1640
- className: "PaddingTopS PaddingBottomS"
1641
- }, /*#__PURE__*/React__default$1["default"].createElement("strong", {
1642
- className: "FontSizeM PaddingTopS"
1643
- }, "If this keeps happening, please report it.")))), /*#__PURE__*/React__default$1["default"].createElement("div", {
1644
- className: "DialogFooter"
1645
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
1646
- className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
1647
- }, /*#__PURE__*/React__default$1["default"].createElement("button", {
1648
- className: "ButtonPrimary",
1649
- onClick: close
1650
- }, "Try again")))));
1651
- } else {
1652
- return /*#__PURE__*/React__default$1["default"].createElement(ErrorContext.Provider, {
1653
- value: {
1654
- setError: setErrorFromChildren
1655
- }
1656
- }, /*#__PURE__*/React__default$1["default"].createElement(ErrorBoundary, {
1657
- setError: setErrorFromChildren
1658
- }, props.children));
1659
- }
1660
- });
1661
-
1662
- var BlockchainLogoStyle = (function (style) {
1663
- return "\n\n .BlockchainLogo {\n border-radius: 999px;\n }\n\n .BlockchainLogo.small {\n height: 18px;\n width: 18px;\n }\n ";
1664
- });
1665
-
1666
- var ButtonCircularStyle = (function () {
1667
- return "\n\n .ButtonCircular {\n border-radius: 99rem;\n cursor: pointer;\n height: 34px;\n opacity: 0.5;\n padding: 5px 4px 4px 4px;\n width: 34px;\n }\n\n .ButtonCircular:hover {\n background: rgba(0,0,0,0.1);\n opacity: 1;\n }\n\n .ButtonCircular:active {\n background: rgba(0,0,0,0.25);\n opacity: 1;\n }\n ";
1668
- });
1669
-
1670
- var ButtonPrimaryStyle = (function (style) {
1671
- return "\n\n .ButtonPrimary {\n align-items: center;\n align-self: center;\n background: ".concat(style.colors.primary, ";\n border-radius: 0.8rem;\n border: 1px solid transparent;\n box-shadow: 0 0 16px rgba(0,0,0,0.1);\n font-size: 1.3rem;\n font-weight: 400;\n line-height: 2.8rem;\n height: 3.6rem;\n justify-content: center;\n width: 100%;\n overflow: hidden;\n padding: 0.4rem 0;\n position: relative;\n text-align: center;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: background 0.1s;\n vertical-align: middle;\n display: inline-block;\n }\n\n .ButtonPrimary, .ButtonPrimary * {\n color: ").concat(style.colors.buttonText, ";\n }\n\n .ButtonPrimary.disabled {\n background: rgb(210,210,210);\n color: rgb(140,140,140);\n }\n\n .ButtonPrimary:not(.disabled){\n cursor: pointer;\n }\n .ButtonPrimary:not(.disabled):hover {\n box-shadow: inset 0 0 300px rgba(0,0,0,0.1);\n }\n .ButtonPrimary:not(.disabled):active {\n box-shadow: inset 0 0 300px rgba(0,0,0,0.2);\n }\n ");
1672
- });
1673
-
1674
- var CardStyle = (function (style) {
1675
- return "\n\n .Card {\n align-items: center;\n background: rgb(255,255,255);\n border-radius: 0.8rem;\n box-shadow: 0 0 8px rgba(0,0,0,0.03);\n cursor: pointer;\n display: flex;\n flex-direction: row;\n margin-bottom: 0.5rem;\n min-height: 4.78rem;\n padding: 1rem 0.6rem;\n width: 100%;\n }\n\n a.Card, a.Card * {\n color: inherit;\n text-decoration: none;\n }\n\n .Card.transparent {\n background: none;\n box-shadow: none;\n }\n\n .Card.small {\n min-height: auto;\n padding: 0.5rem 0.5rem;\n margin: 0;\n }\n\n .Card.disabled {\n cursor: default;\n }\n\n .Card:hover:not(.disabled) {\n background: rgb(240,240,240);\n box-shadow: 0 0 0 rgba(0,0,0,0); \n }\n\n .Card:active:not(.disabled) {\n background: rgb(235,235,235);\n box-shadow: inset 0 0 6px rgba(0,0,0,0.02);\n color: inherit;\n }\n\n .Card:hover:not(.disabled) .CardAction {\n opacity: 0.4;\n }\n\n .CardImage, .CardBody, .CardAction, .CardInfo {\n align-items: center;\n display: flex;\n min-width: 0;\n padding: 0 0.4rem;\n }\n\n .CardImage {\n flex-basis: auto;\n flex-grow: 0;\n flex-shrink: 0;\n justify-content: center;\n position: relative;\n width: 3.6rem;\n }\n\n .CardBody {\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n line-height: 1.4rem;\n padding-left: 0.6rem;\n text-align: left;\n }\n\n .CardBodyWrapper {\n min-width: 0;\n }\n\n .CardAction {\n flex-basis: auto;\n flex-shrink: 0;\n flex-grow: 0;\n padding-right: 0;\n margin-left: auto;\n }\n\n .Card.disabled .CardAction {\n opacity: 0; \n }\n\n .CardInfo {\n display: flex;\n flex-basis: auto;\n flex-direction: column;\n flex-grow: 0;\n flex-shrink: 1;\n justify-content: center;\n margin-left: auto; \n padding-right: 0;\n }\n\n .CardImage img {\n background: white;\n border-radius: 99rem;\n border: 1px solid white;\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .CardImage .BlockchainLogo {\n position: absolute;\n bottom: 0;\n right: 0;\n }\n\n .CardTitle {\n font-size: 0.9rem;\n color: rgb(150,150,150);\n }\n \n .CardText, a .CardText {\n color: ".concat(style.colors.text, ";\n flex: 1;\n font-size: 1.3rem;\n }\n\n .CardText strong {\n font-weight: 500;\n }\n\n .CardText small {\n font-size: 1.1rem;\n color: rgb(150,150,150);\n }\n\n .CardAction {\n opacity: 0.2;\n }\n\n .Card.More {\n display: inline-block;\n text-align: center;\n }\n ");
1676
- });
1677
-
1678
- var DialogStyle = (function (style) {
1679
- return "\n\n .ReactDialogBackground {\n backdrop-filter: blur(5px);\n background: rgba(0,0,0,0.7);\n }\n\n .Dialog {\n margin: 0 auto;\n position: relative;\n width: 420px;\n box-shadow: 0 0 20px rgba(0,0,0,0.1);\n border-radius: 0.8rem;\n }\n\n @media screen and (max-width: 450px) {\n \n .Dialog, .ReactDialogAnimation {\n width: 100%;\n }\n\n }\n\n @media (orientation: portrait) and (max-width: 900px) {\n\n .Dialog {\n align-content: stretch;\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .DialogBody {\n flex: 1;\n align-items: flex-end;\n max-height: 40vh !important;\n }\n\n .DialogFooter {\n padding-bottom: 50px;\n }\n\n .ReactDialogStackCell {\n vertical-align: bottom;\n }\n\n .ReactDialogAnimation {\n bottom: -100px !important;\n max-height: 66vh !important;\n top: inherit !important;\n transition: opacity 0.4s ease, bottom 0.4s ease;\n }\n\n .ReactDialog.ReactDialogOpen .ReactDialogAnimation {\n bottom: 0px !important;\n }\n\n .DialogFooter {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n }\n }\n\n .DialogBody {\n background: rgb(248,248,248);\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n .DialogBody.HeightAuto {\n height: auto;\n }\n\n .DialogHeader {\n background: rgb(248,248,248);\n border-top-left-radius: 0.8rem;\n border-top-right-radius: 0.8rem;\n display: flex;\n flex-direction: row;\n position: relative;\n }\n\n .DialogHeaderTitle {\n flex-basis: auto;\n flex-grow: 1;\n }\n \n .DialogHeaderAction {\n height: 3rem;\n }\n\n .DialogFooter {\n background: rgb(248,248,248);\n border-bottom-left-radius: 0.8rem;\n border-bottom-right-radius: 0.8rem;\n line-height: 1.5rem;\n min-height: 2rem;\n position: relative;\n text-align: center;\n }\n\n .ReactShadowDOMInsideContainer > .ReactDialog {\n display: table;\n }\n\n ";
1680
- });
1681
-
1682
- var FontStyle = (function (style) {
1683
- return "\n\n *, div, div * {\n font-family: ".concat(style.fontFamily, ";\n }\n\n .FontSizeS {\n font-size: 1rem;\n }\n\n .FontSizeM {\n font-size: 1.2rem;\n }\n\n .FontSizeL {\n font-size: 1.4rem;\n }\n\n .FontSizeXL {\n font-size: 2.0rem;\n }\n\n .FontWeightBold {\n font-weight: bold;\n }\n\n .FontItalic {\n font-style: italic;\n }\n ");
1684
- });
1685
-
1686
- var GraphicStyle = (function () {
1687
- return "\n\n .GraphicWrapper {\n display: block;\n }\n\n .Graphic {\n width: 50%;\n position: relative;\n }\n ";
1688
- });
1689
-
1690
- var HeightStyle = (function () {
1691
- return "\n\n .MaxHeight {\n max-height: 320px;\n overflow-y: auto;\n }\n ";
1692
- });
1693
-
1694
- var IconStyle = (function (style) {
1695
- return "\n\n .Icon {\n fill : ".concat(style.colors.icons, ";\n stroke : ").concat(style.colors.icons, ";\n }\n\n .ChevronLeft, .ChevronRight {\n position: relative;\n top: 1px;\n }\n\n .Checkmark {\n height: 24px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 24px;\n }\n\n .CheckMark.small {\n height: 16px;\n width: 16px;\n }\n\n .DigitalWalletIcon {\n height: 24px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 24px;\n }\n\n .ButtonPrimary .Icon {\n fill : ").concat(style.colors.buttonText, ";\n stroke : ").concat(style.colors.buttonText, ";\n }\n\n .Loading {\n border: 3px solid ").concat(style.colors.primary, ";\n border-top: 3px solid rgba(0,0,0,0.1);\n border-radius: 100%;\n position: relative;\n left: -1px;\n width: 18px;\n height: 18px;\n animation: spin 1.5s linear infinite;\n }\n\n @keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n ");
1696
- });
1697
-
1698
- var ImageStyle = (function (style) {
1699
- return "\n\n .MaxAmountImage {\n display: inline-block;\n padding-right: 6px;\n }\n \n .MaxAmountImage img {\n height: 16px;\n width: 16px;\n position: relative;\n top: 3px;\n }\n ";
1700
- });
1701
-
1702
- var InputStyle = (function (style) {
1703
- return "\n\n .Input {\n background: none;\n border: 1px solid transparent;\n margin: 0;\n outline: none !important;\n padding: 0 0 0 14px;\n width: 100%;\n }\n\n .Input::placeholder {\n color: rgb(210,210,210);\n }\n \n ";
1704
- });
1705
-
1706
- var LabelStyle = (function (style) {
1707
- return "\n\n .Label {\n background: rgb(248,248,248);\n border-radius: 999px;\n color: ".concat(style.colors.primary, ";\n font-size: 0.8rem;\n padding: 0.1rem 0.5rem;\n margin: 0.1rem;\n }\n\n ");
1708
- });
1709
-
1710
- var LoadingTextStyle = (function (style) {
1711
- return "\n\n .LoadingText {\n color: ".concat(style.colors.buttonText, ";\n display: inline-block;\n text-decoration: none;\n }\n\n @keyframes blink {\n 0% { opacity: .2; }\n 20% { opacity: 1; }\n 100% { opacity: .2; }\n }\n \n .LoadingText .dot {\n animation-name: blink;\n animation-duration: 1.4s;\n animation-iteration-count: infinite;\n animation-fill-mode: both;\n }\n \n .LoadingText .dot:nth-child(2) {\n animation-delay: .2s;\n }\n \n .LoadingText .dot:nth-child(3) {\n animation-delay: .4s;\n }\n ");
1712
- });
1713
-
1714
- var OpacityStyle = (function (style) {
1715
- return "\n\n .Opacity05 {\n opacity: 0.5;\n }\n ";
1716
- });
1717
-
1718
- var PaddingStyle = (function () {
1719
- return "\n\n .PaddingTopXS {\n padding-top: 0.2rem;\n }\n\n .PaddingRightXS {\n padding-right: 0.2rem;\n }\n\n .PaddingBottomXS {\n padding-bottom: 0.2rem;\n }\n\n .PaddingLeftXS {\n padding-left: 0.2rem; \n }\n\n .PaddingTopS {\n padding-top: 0.8rem;\n }\n\n .PaddingRightS {\n padding-right: 0.8rem;\n }\n\n .PaddingBottomS {\n padding-bottom: 0.8rem;\n }\n\n .PaddingLeftS {\n padding-left: 0.8rem; \n }\n\n .PaddingTopM {\n padding-top: 1.2rem;\n }\n\n .PaddingRightM {\n padding-right: 1.2rem;\n }\n\n .PaddingBottomM {\n padding-bottom: 1.2rem;\n }\n\n .PaddingLeftM {\n padding-left: 1.2rem; \n }\n\n .PaddingTopL {\n padding-top: 1.8rem;\n }\n\n .PaddingRightL {\n padding-right: 1.8rem;\n }\n\n .PaddingBottomL {\n padding-bottom: 1.8rem;\n }\n\n .PaddingLeftL {\n padding-left: 1.28em; \n }\n ";
1720
- });
1721
-
1722
- var PoweredByStyle = (function (style) {
1723
- return "\n\n .PoweredByWrapper {\n display: block;\n left: 0;\n padding-top: 0.2rem;\n position: fixed;\n right: 0;\n text-align: center;\n top: 0;\n }\n\n .PoweredByLink {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !important;\n color: white;\n opacity: 0.4;\n display: inline-block;\n font-size: 0.78rem;\n font-style: italic;\n font-weight: bold;\n letter-spacing: -0.2px;\n margin-left: 0.5rem;\n text-decoration: none;\n }\n\n .PoweredByLink:hover, .PoweredByLink:active {\n opacity: 1.0;\n color: ".concat(style.colors.primary, ";\n }\n ");
1724
- });
1725
-
1726
- var RangeSliderStyle = (function (style) {
1727
- return "\n\n .rangeslider {\n margin: 20px 0;\n position: relative;\n background: #e6e6e6;\n -ms-touch-action: none;\n touch-action: none;\n }\n\n .rangeslider,\n .rangeslider__fill {\n display: block;\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.4);\n }\n\n .rangeslider__handle {\n outline: none;\n cursor: pointer;\n display: inline-block;\n position: absolute;\n border-radius: 50%;\n background-color: " + style.colors.primary + ";\n border: 1px solid white;\n box-shadow: 0 0 8px rgba(0,0,0,0.1);\n }\n\n .rangeslider__handle:hover {\n box-shadow: inset 0 0 300px rgba(0,0,0,0.2);\n }\n\n .rangeslider__handle:active {\n box-shadow: inset 0 0 300px rgba(0,0,0,0.3);\n }\n\n .rangeslider__active {\n opacity: 1;\n }\n\n .rangeslider__handle-tooltip {\n display: none;\n }\n\n .rangeslider-horizontal {\n height: 12px;\n border-radius: 10px;\n }\n\n .rangeslider-horizontal .rangeslider__fill {\n height: 100%;\n background-color: " + style.colors.primary + ";\n border-radius: 10px;\n top: 0;\n }\n .rangeslider-horizontal .rangeslider__handle {\n width: 18px;\n height: 18px;\n border-radius: 30px;\n top: 50%;\n transform: translate3d(-50%, -50%, 0);\n }\n\n\n .rangeslider-horizontal .rangeslider__handle-tooltip {\n top: -55px;\n }\n\n ";
1728
- });
1729
-
1730
- var ResetStyle = (function () {
1731
- return "\n\n html, body, div, span, applet, object, iframe,\n h1, h2, h3, h4, h5, h6, p, blockquote, pre,\n a, abbr, acronym, address, big, cite, code,\n del, dfn, em, img, ins, kbd, q, s, samp,\n small, strike, strong, sub, sup, tt, var,\n b, u, i, center,\n dl, dt, dd, ol, ul, li,\n fieldset, form, label, legend,\n table, caption, tbody, tfoot, thead, tr, th, td,\n article, aside, canvas, details, embed, \n figure, figcaption, footer, header, hgroup, \n menu, nav, output, ruby, section, summary,\n time, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n text-align: inherit;\n vertical-align: baseline;\n }\n\n article, aside, details, figcaption, figure, \n footer, header, hgroup, menu, nav, section {\n display: block;\n }\n\n body {\n line-height: 1;\n }\n\n ol, ul {\n list-style: none;\n }\n\n blockquote, q {\n quotes: none;\n }\n\n blockquote:before, blockquote:after,\n q:before, q:after {\n content: '';\n content: none;\n }\n \n table {\n border-collapse: collapse;\n border-spacing: 0;\n }\n\n * {\n box-sizing: border-box;\n }\n\n button {\n border: 0;\n background: none;\n outline: none;\n }\n\n ";
1732
- });
1733
-
1734
- var SkeletonStyle = (function () {
1735
- return "\n \n .Skeleton {\n background: rgb(230,230,230) !important;\n border: 0px solid transparent !important;\n box-shadow: none !important;\n cursor: inherit !important;\n line-height: 0;\n overflow: hidden;\n position: relative;\n }\n\n @keyframes SkeletonBackgroundAnimation {\n from {\n left: -500px;\n }\n to {\n left: +120%;\n }\n }\n\n .SkeletonBackground {\n animation: 2s SkeletonBackgroundAnimation 0.2s ease infinite;\n background: linear-gradient(to right, transparent 0%, rgba(0,0,0,0.1) 50%, transparent 100%);\n height: 100%;\n left: -140%;\n position: absolute;\n top: 0;\n width: 400px;\n }\n\n .SkeletonWrapper {\n line-height: 0;\n }\n ";
1736
- });
1737
-
1738
- var TextButtonStyle = (function (style) {
1739
- return "\n\n .TextButton {\n cursor: pointer;\n font-size: 16px;\n color: ".concat(style.colors.primary, "\n }\n\n .TextButton:hover * {\n opacity: 1.0;\n }\n ");
1740
- });
1741
-
1742
- var TextStyle = (function (style) {
1743
- return "\n\n * {\n color: ".concat(style.colors.text, ";\n }\n\n h1, h2, h3, h4, h5, h6 {\n display: block;\n }\n\n .TextLeft, .TextLeft * {\n text-align: left;\n }\n\n .TextCenter, .TextCenter * {\n text-align: center;\n }\n\n .LineHeightL {\n line-height: 2.0rem;\n }\n\n .ErrorSnippetText {\n background: rgb(30, 30, 20);\n border-radius: 1.2rem;\n border: 0.5rem solid rgb(30, 30, 20);\n color: #00FF41;\n font-size: 0.9rem;\n font-style: italic;\n max-height: 100px;\n padding: 6px;\n overflow-wrap: break-word;\n overflow-y: auto;\n white-space: pre-wrap;\n word-wrap: break-word;\n }\n ");
1744
- });
1745
-
1746
- var TokenAmountStyle = (function () {
1747
- return "\n \n .TokenAmountRow {\n min-width: 0;\n width: 100%;\n display: flex;\n flex-direction: row;\n }\n\n .TokenAmountCell {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .TokenSymbolCell {\n \n }\n ";
1748
- });
1749
-
1750
- var styleRenderer = (function (style) {
1751
- style = Object.assign({
1752
- colors: {
1753
- primary: '#ea357a',
1754
- buttonText: '#ffffff',
1755
- icons: '#000000',
1756
- text: '#212529'
1757
- },
1758
- fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'
1759
- }, style);
1760
- return [ResetStyle(), FontStyle(style), DialogStyle(), ButtonCircularStyle(), ButtonPrimaryStyle(style), CardStyle(style), PoweredByStyle(style), GraphicStyle(), SkeletonStyle(), TokenAmountStyle(), TextStyle(style), IconStyle(style), OpacityStyle(), PaddingStyle(), HeightStyle(), LabelStyle(style), LoadingTextStyle(style), RangeSliderStyle(style), InputStyle(), TextButtonStyle(style), ImageStyle(), BlockchainLogoStyle()].join('');
1761
- });
1762
-
1763
- var mount = (function (_ref, content) {
1764
- var style = _ref.style,
1765
- document = _ref.document,
1766
- closed = _ref.closed;
1767
- var insideStyle = styleRenderer(style);
1768
-
1769
- if (style && style.css) {
1770
- insideStyle = [insideStyle, style.css].join(' ');
1771
- }
1772
-
1773
- var unmountShadowDOM = function unmountShadowDOM() {
1774
- // setTimeout to allow dialog to animate out first
1775
- setTimeout(function () {
1776
- unmount();
1777
-
1778
- if (typeof closed == 'function') {
1779
- closed();
1780
- }
1781
- }, 300);
1782
- };
1783
-
1784
- var _ReactShadowDOM = reactShadowDom.ReactShadowDOM({
1785
- document: document,
1786
- element: document.body,
1787
- content: content(unmountShadowDOM),
1788
- insideStyle: insideStyle,
1789
- outsideStyle: "\n position: fixed;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n z-index: 99999;\n "
1790
- }),
1791
- unmount = _ReactShadowDOM.unmount;
1792
-
1793
- return unmount;
1794
- });
1795
-
1796
- var PoweredBy = (function () {
1797
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
1798
- className: "PoweredByWrapper"
1799
- }, /*#__PURE__*/React__default$1["default"].createElement("a", {
1800
- href: 'https://depay.fi?utm_source=' + window.location.hostname + '&utm_medium=widget&utm_campaign=WidgetV2',
1801
- rel: "noopener noreferrer",
1802
- target: "_blank",
1803
- className: "PoweredByLink"
1804
- }, "by DePay"));
1805
- });
1806
-
1807
- var UpdatableProvider = (function (props) {
1808
- var _useState = React.useState(true),
1809
- _useState2 = _slicedToArray(_useState, 2),
1810
- updatable = _useState2[0],
1811
- setUpdatable = _useState2[1];
1812
-
1813
- return /*#__PURE__*/React__default$1["default"].createElement(UpdatableContext.Provider, {
1814
- value: {
1815
- updatable: updatable,
1816
- setUpdatable: setUpdatable
1817
- }
1818
- }, props.children);
1819
- });
1820
-
1821
- var Connect = function Connect(options) {
1822
- var style, error, document;
1823
-
1824
- if (_typeof(options) == 'object') {
1825
- style = options.style;
1826
- error = options.error;
1827
- document = options.document;
1828
- }
1829
-
1830
- return new Promise( /*#__PURE__*/function () {
1831
- var _ref = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(resolve, reject) {
1832
- var wallet, accounts;
1833
- return regenerator.wrap(function _callee$(_context) {
1834
- while (1) {
1835
- switch (_context.prev = _context.next) {
1836
- case 0:
1837
- wallet = web3Wallets.getWallet();
1838
-
1839
- if (!wallet) {
1840
- _context.next = 7;
1841
- break;
1842
- }
1843
-
1844
- _context.next = 4;
1845
- return wallet.accounts();
1846
-
1847
- case 4:
1848
- accounts = _context.sent;
1849
-
1850
- if (!(accounts instanceof Array && accounts.length > 0)) {
1851
- _context.next = 7;
1852
- break;
1853
- }
1854
-
1855
- return _context.abrupt("return", resolve({
1856
- wallet: wallet,
1857
- accounts: accounts,
1858
- account: accounts[0]
1859
- }));
1860
-
1861
- case 7:
1862
- mount({
1863
- style: style,
1864
- document: ensureDocument(document)
1865
- }, function (unmount) {
1866
- var rejectBeforeUnmount = function rejectBeforeUnmount() {
1867
- reject('USER_CLOSED_DIALOG');
1868
- unmount();
1869
- };
1870
-
1871
- return function (container) {
1872
- return /*#__PURE__*/React__default$1["default"].createElement(ErrorProvider, {
1873
- error: error,
1874
- container: container,
1875
- unmount: unmount
1876
- }, /*#__PURE__*/React__default$1["default"].createElement(UpdatableProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
1877
- unmount: rejectBeforeUnmount
1878
- }, /*#__PURE__*/React__default$1["default"].createElement(ConnectStack, {
1879
- document: document,
1880
- container: container,
1881
- resolve: resolve,
1882
- reject: reject,
1883
- autoClose: true
1884
- }), /*#__PURE__*/React__default$1["default"].createElement(PoweredBy, null))));
1885
- };
1886
- });
1887
-
1888
- case 8:
1889
- case "end":
1890
- return _context.stop();
1891
- }
1892
- }
1893
- }, _callee);
1894
- }));
1895
-
1896
- return function (_x, _x2) {
1897
- return _ref.apply(this, arguments);
1898
- };
1899
- }());
1900
- };
1901
-
1902
- var ChangableAmountContext = /*#__PURE__*/React__default$1["default"].createContext();
1903
-
1904
- var ConfigurationContext = /*#__PURE__*/React__default$1["default"].createContext();
1905
-
1906
- var ConversionRateContext = /*#__PURE__*/React__default$1["default"].createContext();
1907
-
1908
- function _arrayWithoutHoles(arr) {
1909
- if (Array.isArray(arr)) return _arrayLikeToArray(arr);
1910
- }
1911
-
1912
- function _iterableToArray(iter) {
1913
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
1914
- }
1915
-
1916
- function _nonIterableSpread() {
1917
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1918
- }
1919
-
1920
- function _toConsumableArray(arr) {
1921
- return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
1922
- }
1923
-
1924
- var findMaxRoute = (function (routes) {
1925
- var sortedLowToHigh = _toConsumableArray(routes).sort(function (a, b) {
1926
- var aAmountsAvailable = ethers.ethers.BigNumber.from(a.fromBalance).div(ethers.ethers.BigNumber.from(a.fromAmount));
1927
- var bAmountsAvailable = ethers.ethers.BigNumber.from(b.fromBalance).div(ethers.ethers.BigNumber.from(b.fromAmount));
1928
-
1929
- if (aAmountsAvailable.lt(bAmountsAvailable)) {
1930
- return -1;
1931
- }
1932
-
1933
- if (bAmountsAvailable.lt(aAmountsAvailable)) {
1934
- return 1;
1935
- }
1936
-
1937
- return 0; // equal
1938
- });
1939
-
1940
- return sortedLowToHigh[sortedLowToHigh.length - 1];
1941
- });
1942
-
1943
- var round = (function (input) {
1944
- var _digitsAfterDecimal;
1945
-
1946
- var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'up';
1947
- var inputAsFloat = parseFloat(input);
1948
- var digitsAfterDecimal = inputAsFloat.toString().match(/\d+\.0*(\d{3})/);
1949
-
1950
- if ((_digitsAfterDecimal = digitsAfterDecimal) !== null && _digitsAfterDecimal !== void 0 && _digitsAfterDecimal.length) {
1951
- digitsAfterDecimal = digitsAfterDecimal[0];
1952
- var focus = digitsAfterDecimal.match(/\d{3}$/)[0];
1953
-
1954
- if (focus.match(/^00/)) {
1955
- return inputAsFloat;
1956
- }
1957
-
1958
- var _float;
1959
-
1960
- var focusToFixed;
1961
-
1962
- if (focus.match(/^0/)) {
1963
- if (direction == 'up') {
1964
- _float = parseFloat("".concat(focus[1], ".").concat(focus[2]));
1965
- } else {
1966
- _float = parseFloat("".concat(focus[1], ".").concat(focus[2]));
1967
- }
1968
-
1969
- focusToFixed = parseFloat(_float).toFixed(1);
1970
- focusToFixed = "0".concat(focusToFixed).replace('.', '');
1971
- } else {
1972
- if (direction == 'up') {
1973
- _float = parseFloat("".concat(focus[0], ".").concat(focus[1], "9"));
1974
- } else {
1975
- _float = parseFloat("".concat(focus[0], ".").concat(focus[1], "1"));
1976
- }
1977
-
1978
- focusToFixed = parseFloat(_float).toFixed(1).replace('.', '');
1979
- }
1980
-
1981
- if (focusToFixed.toString()[0] != 0 && focusToFixed.toString().length > 2) {
1982
- return parseInt(inputAsFloat.toFixed(0));
1983
- } else {
1984
- return parseFloat(digitsAfterDecimal.replace(/\d{3}$/, focusToFixed));
1985
- }
1986
- } else {
1987
- return parseFloat(inputAsFloat.toFixed(2));
1988
- }
1989
- });
1990
-
1991
- var WalletContext = /*#__PURE__*/React__default$1["default"].createContext();
1992
-
1993
- var ChangableAmountProvider = (function (props) {
1994
- var configurationsMissAmounts = function configurationsMissAmounts(configurations) {
1995
- return !configurations.every(function (configuration) {
1996
- return typeof configuration.amount != 'undefined';
1997
- });
1998
- };
1999
-
2000
- var _useState = React.useState(configurationsMissAmounts(props.accept)),
2001
- _useState2 = _slicedToArray(_useState, 2),
2002
- amountsMissing = _useState2[0],
2003
- setAmountsMissing = _useState2[1];
2004
-
2005
- var _useContext = React.useContext(WalletContext),
2006
- account = _useContext.account;
2007
-
2008
- var _useContext2 = React.useContext(ConfigurationContext),
2009
- configuredAmount = _useContext2.amount;
2010
-
2011
- var _useContext3 = React.useContext(ConversionRateContext),
2012
- conversionRate = _useContext3.conversionRate;
2013
-
2014
- var _useContext4 = React.useContext(ErrorContext),
2015
- setError = _useContext4.setError;
2016
-
2017
- var _useState3 = React.useState(),
2018
- _useState4 = _slicedToArray(_useState3, 2),
2019
- acceptWithAmount = _useState4[0],
2020
- setAcceptWithAmount = _useState4[1];
2021
-
2022
- var _useState5 = React.useState(amountsMissing ? _typeof(configuredAmount) == "object" && configuredAmount.start ? configuredAmount.start : 1 : null),
2023
- _useState6 = _slicedToArray(_useState5, 2),
2024
- amount = _useState6[0],
2025
- setAmount = _useState6[1];
2026
-
2027
- var _useState7 = React.useState(),
2028
- _useState8 = _slicedToArray(_useState7, 2),
2029
- maxRoute = _useState8[0],
2030
- setMaxRoute = _useState8[1];
2031
-
2032
- var _useState9 = React.useState(100),
2033
- _useState10 = _slicedToArray(_useState9, 2),
2034
- maxAmount = _useState10[0],
2035
- setMaxAmount = _useState10[1];
2036
-
2037
- React.useEffect(function () {
2038
- setAmountsMissing(configurationsMissAmounts(props.accept));
2039
- }, [props.accept]);
2040
- React.useEffect(function () {
2041
- if (amountsMissing && account && conversionRate) {
2042
- Promise.all(props.accept.map(function (configuration) {
2043
- return web3Exchanges.route({
2044
- blockchain: configuration.blockchain,
2045
- tokenIn: web3Constants.CONSTANTS[configuration.blockchain].USD,
2046
- amountIn: 1.00 / conversionRate * amount,
2047
- tokenOut: configuration.token,
2048
- fromAddress: account,
2049
- toAddress: account
2050
- });
2051
- })).then(function (routes) {
2052
- Promise.all(routes.map(function (routes, index) {
2053
- if (routes[0] == undefined) {
2054
- return;
2055
- }
2056
-
2057
- return web3Tokens.Token.readable({
2058
- blockchain: props.accept[index].blockchain,
2059
- amount: routes[0].amountOut,
2060
- address: routes[0].tokenOut
2061
- });
2062
- })).then(function (amounts) {
2063
- setAcceptWithAmount(props.accept.map(function (configuration, index) {
2064
- if (amounts[index] == undefined) {
2065
- return;
2066
- }
2067
-
2068
- return {
2069
- blockchain: configuration.blockchain,
2070
- amount: round(amounts[index]),
2071
- token: configuration.token,
2072
- receiver: configuration.receiver || account
2073
- };
2074
- }).filter(function (configuration) {
2075
- return !!configuration;
2076
- }));
2077
- })["catch"](setError);
2078
- })["catch"](setError);
2079
- }
2080
- }, [account, conversionRate, amount]);
2081
- React.useEffect(function () {
2082
- if (amountsMissing && maxRoute) {
2083
- maxRoute.fromToken.readable(maxRoute.fromBalance).then(function (readableMaxAmount) {
2084
- if (maxRoute.fromToken.address == web3Constants.CONSTANTS[maxRoute.blockchain].USD) {
2085
- var _maxAmount = parseFloat(new decimal_js.Decimal(readableMaxAmount).mul(conversionRate).toString());
2086
-
2087
- setMaxAmount(_maxAmount > 10 ? Math.round(_maxAmount) : _maxAmount);
2088
- } else {
2089
- web3Exchanges.route({
2090
- blockchain: maxRoute.blockchain,
2091
- tokenIn: maxRoute.fromToken.address,
2092
- tokenOut: web3Constants.CONSTANTS[maxRoute.blockchain].USD,
2093
- amountIn: parseFloat(readableMaxAmount),
2094
- fromAddress: account,
2095
- toAddress: account
2096
- }).then(function (routes) {
2097
- web3Tokens.Token.readable({
2098
- amount: routes[0].amountOut,
2099
- blockchain: maxRoute.blockchain,
2100
- address: web3Constants.CONSTANTS[maxRoute.blockchain].USD
2101
- }).then(function (readableMaxAmount) {
2102
- var slippage = 1.01;
2103
- var maxAmount = parseFloat(new decimal_js.Decimal(readableMaxAmount).div(slippage).mul(conversionRate).toString());
2104
- setMaxAmount(maxAmount > 10 ? Math.round(maxAmount) : round(maxAmount));
2105
- })["catch"](setError);
2106
- })["catch"](setError);
2107
- }
2108
- })["catch"](setError);
2109
- } else {
2110
- setMaxAmount(100);
2111
- }
2112
- }, [account, maxRoute]);
2113
- return /*#__PURE__*/React__default$1["default"].createElement(ChangableAmountContext.Provider, {
2114
- value: {
2115
- amountsMissing: amountsMissing,
2116
- acceptWithAmount: acceptWithAmount,
2117
- amount: amount,
2118
- setAmount: setAmount,
2119
- setMaxRoute: setMaxRoute,
2120
- maxAmount: maxAmount
2121
- }
2122
- }, props.children);
2123
- });
2124
-
2125
- var ConfigurationProvider = (function (props) {
2126
- var currencyCode = new localCurrency.Currency({
2127
- code: props.configuration.currency
2128
- }).code;
2129
- React.useEffect(function () {
2130
- if (props.configuration.providers != undefined) {
2131
- Object.entries(props.configuration.providers).forEach(function (entry) {
2132
- web3Client.setProviderEndpoints(entry[0], entry[1]);
2133
- });
2134
- }
2135
- }, [props.configuration]);
2136
- return /*#__PURE__*/React__default$1["default"].createElement(ConfigurationContext.Provider, {
2137
- value: Object.assign({}, props.configuration, {
2138
- currencyCode: currencyCode
2139
- })
2140
- }, props.children);
2141
- });
2142
-
2143
- var apiKey = 'M5dZeHFfIp3J7h9H9fs4i4wmkUo1HjAF3EmMy32c';
2144
-
2145
- var ConversionRateProvider = (function (props) {
2146
- var _useContext = React.useContext(ErrorContext),
2147
- setError = _useContext.setError;
2148
-
2149
- var _useContext2 = React.useContext(ConfigurationContext),
2150
- currency = _useContext2.currency;
2151
-
2152
- var _useState = React.useState(),
2153
- _useState2 = _slicedToArray(_useState, 2),
2154
- conversionRate = _useState2[0],
2155
- setConversionRate = _useState2[1];
2156
-
2157
- React.useEffect(function () {
2158
- localCurrency.Currency.fromUSD({
2159
- amount: 1,
2160
- code: currency,
2161
- apiKey: apiKey
2162
- }).then(function (conversion) {
2163
- return setConversionRate(conversion.amount);
2164
- })["catch"](setError);
2165
- }, []);
2166
- return /*#__PURE__*/React__default$1["default"].createElement(ConversionRateContext.Provider, {
2167
- value: {
2168
- conversionRate: conversionRate
2169
- }
2170
- }, props.children);
2171
- });
2172
-
2173
- var DonationRoutingContext = /*#__PURE__*/React__default$1["default"].createContext();
2174
-
2175
- var QuestionsGraphic = "data:image/png;base64,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";
2176
-
2177
- var NoPaymentMethodFoundDialog = (function () {
2178
- var _useContext = React.useContext(ClosableContext),
2179
- close = _useContext.close;
2180
-
2181
- return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
2182
- header: /*#__PURE__*/React__default$1["default"].createElement("div", {
2183
- className: "PaddingTopS PaddingLeftM PaddingRightM"
2184
- }),
2185
- body: /*#__PURE__*/React__default$1["default"].createElement("div", null, /*#__PURE__*/React__default$1["default"].createElement("div", {
2186
- className: "GraphicWrapper"
2187
- }, /*#__PURE__*/React__default$1["default"].createElement("img", {
2188
- className: "Graphic",
2189
- src: QuestionsGraphic
2190
- })), /*#__PURE__*/React__default$1["default"].createElement("h1", {
2191
- className: "LineHeightL Text FontSizeL PaddingTopS FontWeightBold"
2192
- }, "Insufficient Balance"), /*#__PURE__*/React__default$1["default"].createElement("div", {
2193
- className: "Text PaddingTopS PaddingBottomM PaddingLeftM PaddingRightM"
2194
- }, /*#__PURE__*/React__default$1["default"].createElement("strong", {
2195
- className: "FontSizeM"
2196
- }, "We were not able to find any asset of value in your wallet. Please top up your account in order to proceed with this payment."))),
2197
- footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
2198
- className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
2199
- }, /*#__PURE__*/React__default$1["default"].createElement("button", {
2200
- className: "ButtonPrimary",
2201
- onClick: close
2202
- }, "Ok"))
2203
- });
2204
- });
2205
-
2206
- var PaymentContext = /*#__PURE__*/React__default$1["default"].createContext();
2207
-
2208
- var PaymentRoutingContext = /*#__PURE__*/React__default$1["default"].createContext();
2209
-
2210
- var TrackingContext = /*#__PURE__*/React__default$1["default"].createContext();
2211
-
2212
- var PaymentProvider = (function (props) {
2213
- var _useContext = React.useContext(ErrorContext),
2214
- setError = _useContext.setError;
2215
-
2216
- var _useContext2 = React.useContext(ConfigurationContext),
2217
- _sent = _useContext2.sent,
2218
- _confirmed = _useContext2.confirmed,
2219
- _failed = _useContext2.failed;
2220
-
2221
- var _useContext3 = React.useContext(PaymentRoutingContext),
2222
- selectedRoute = _useContext3.selectedRoute;
2223
-
2224
- var _useContext4 = React.useContext(ClosableContext),
2225
- open = _useContext4.open,
2226
- close = _useContext4.close,
2227
- setClosable = _useContext4.setClosable;
2228
-
2229
- var _useContext5 = React.useContext(PaymentRoutingContext),
2230
- allRoutes = _useContext5.allRoutes;
2231
-
2232
- var _useContext6 = React.useContext(UpdatableContext),
2233
- setUpdatable = _useContext6.setUpdatable;
2234
-
2235
- var _useContext7 = React.useContext(WalletContext),
2236
- wallet = _useContext7.wallet;
2237
-
2238
- var _useContext8 = React.useContext(TrackingContext),
2239
- forward = _useContext8.forward,
2240
- tracking = _useContext8.tracking,
2241
- initializeTracking = _useContext8.initializeTracking;
2242
-
2243
- var _useState = React.useState(),
2244
- _useState2 = _slicedToArray(_useState, 2),
2245
- payment = _useState2[0],
2246
- setPayment = _useState2[1];
2247
-
2248
- var _useState3 = React.useState(),
2249
- _useState4 = _slicedToArray(_useState3, 2),
2250
- transaction = _useState4[0],
2251
- setTransaction = _useState4[1];
2252
-
2253
- var _useState5 = React.useState(),
2254
- _useState6 = _slicedToArray(_useState5, 2),
2255
- approvalTransaction = _useState6[0],
2256
- setApprovalTransaction = _useState6[1];
2257
-
2258
- var _useState7 = React.useState('initialized'),
2259
- _useState8 = _slicedToArray(_useState7, 2),
2260
- paymentState = _useState8[0],
2261
- setPaymentState = _useState8[1];
2262
-
2263
- var pay = /*#__PURE__*/function () {
2264
- var _ref2 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(_ref) {
2265
- var navigate, currentBlock;
2266
- return regenerator.wrap(function _callee$(_context) {
2267
- while (1) {
2268
- switch (_context.prev = _context.next) {
2269
- case 0:
2270
- navigate = _ref.navigate;
2271
- setClosable(false);
2272
- setPaymentState('paying');
2273
- setUpdatable(false);
2274
- _context.next = 6;
2275
- return web3Client.request({
2276
- blockchain: payment.route.transaction.blockchain,
2277
- method: 'latestBlockNumber'
2278
- });
2279
-
2280
- case 6:
2281
- currentBlock = _context.sent;
2282
- wallet.sendTransaction(Object.assign({}, payment.route.transaction, {
2283
- sent: function sent(transaction) {
2284
- if (_sent) {
2285
- _sent(transaction);
2286
- }
2287
- },
2288
- confirmed: function confirmed(transaction) {
2289
- if (tracking != true) {
2290
- setClosable(true);
2291
- }
2292
-
2293
- setPaymentState('confirmed');
2294
-
2295
- if (_confirmed) {
2296
- _confirmed(transaction);
2297
- }
2298
- },
2299
- failed: function failed(transaction, error) {
2300
- if (_failed) {
2301
- _failed(transaction, error);
2302
- }
2303
-
2304
- setPaymentState('initialized');
2305
- setClosable(true);
2306
- setUpdatable(true);
2307
- navigate('PaymentError');
2308
- }
2309
- })).then(function (sentTransaction) {
2310
- if (tracking) {
2311
- initializeTracking(sentTransaction, currentBlock);
2312
- }
2313
-
2314
- setTransaction(sentTransaction);
2315
- })["catch"](function (error) {
2316
- console.log('error', error);
2317
- setPaymentState('initialized');
2318
- setClosable(true);
2319
- setUpdatable(true);
2320
-
2321
- if ((error === null || error === void 0 ? void 0 : error.code) == 'WRONG_NETWORK') {
2322
- navigate('WrongNetwork');
2323
- }
2324
- });
2325
-
2326
- case 8:
2327
- case "end":
2328
- return _context.stop();
2329
- }
2330
- }
2331
- }, _callee);
2332
- }));
2333
-
2334
- return function pay(_x) {
2335
- return _ref2.apply(this, arguments);
2336
- };
2337
- }();
2338
-
2339
- var approve = function approve() {
2340
- setClosable(false);
2341
- setPaymentState('approving');
2342
- wallet.sendTransaction(Object.assign({}, payment.route.approvalTransaction, {
2343
- confirmed: function confirmed() {
2344
- payment.route.approvalRequired = false;
2345
- setPayment(payment);
2346
- setClosable(true);
2347
- setPaymentState('initialized');
2348
- }
2349
- })).then(function (sentTransaction) {
2350
- setApprovalTransaction(sentTransaction);
2351
- })["catch"](function (error) {
2352
- console.log('error', error);
2353
- setPaymentState('initialized');
2354
- setClosable(true);
2355
- });
2356
- };
2357
-
2358
- React.useEffect(function () {
2359
- if (forward) {
2360
- setPaymentState('confirmed');
2361
- }
2362
- }, [forward]);
2363
- React.useEffect(function () {
2364
- if (selectedRoute) {
2365
- var fromToken = selectedRoute.fromToken;
2366
- selectedRoute.transaction.params;
2367
- Promise.all([fromToken.name(), fromToken.symbol(), fromToken.readable(selectedRoute.fromAmount)]).then(function (_ref3) {
2368
- var _ref4 = _slicedToArray(_ref3, 3),
2369
- name = _ref4[0],
2370
- symbol = _ref4[1],
2371
- amount = _ref4[2];
2372
-
2373
- setPayment({
2374
- route: selectedRoute,
2375
- token: selectedRoute.fromToken.address,
2376
- name: name,
2377
- symbol: symbol.toUpperCase(),
2378
- amount: amount
2379
- });
2380
- })["catch"](setError);
2381
- } else {
2382
- setPayment(undefined);
2383
- }
2384
- }, [selectedRoute]);
2385
- React.useEffect(function () {
2386
- if (allRoutes && allRoutes.length == 0) {
2387
- setUpdatable(false);
2388
- } else if (allRoutes && allRoutes.length > 0) {
2389
- setUpdatable(true);
2390
- }
2391
- }, [allRoutes]);
2392
-
2393
- if (allRoutes instanceof Array && allRoutes.length == 0) {
2394
- return /*#__PURE__*/React__default$1["default"].createElement(reactDialogStack.ReactDialogStack, {
2395
- open: open,
2396
- close: close,
2397
- start: "NoPaymentMethodFound",
2398
- container: props.container,
2399
- document: props.document,
2400
- dialogs: {
2401
- NoPaymentMethodFound: /*#__PURE__*/React__default$1["default"].createElement(NoPaymentMethodFoundDialog, null)
2402
- }
2403
- });
2404
- } else {
2405
- return /*#__PURE__*/React__default$1["default"].createElement(PaymentContext.Provider, {
2406
- value: {
2407
- payment: payment,
2408
- paymentState: paymentState,
2409
- pay: pay,
2410
- transaction: transaction,
2411
- approve: approve,
2412
- approvalTransaction: approvalTransaction
2413
- }
2414
- }, props.children);
2415
- }
2416
- });
2417
-
2418
- function _defineProperty(obj, key, value) {
2419
- if (key in obj) {
2420
- Object.defineProperty(obj, key, {
2421
- value: value,
2422
- enumerable: true,
2423
- configurable: true,
2424
- writable: true
2425
- });
2426
- } else {
2427
- obj[key] = value;
2428
- }
2429
-
2430
- return obj;
2431
- }
2432
-
2433
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2434
-
2435
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2436
- var PaymentRoutingProvider = (function (props) {
2437
- var _useState = React.useState(),
2438
- _useState2 = _slicedToArray(_useState, 2),
2439
- allRoutes = _useState2[0],
2440
- setAllRoutes = _useState2[1];
2441
-
2442
- var _useState3 = React.useState(),
2443
- _useState4 = _slicedToArray(_useState3, 2),
2444
- selectedRoute = _useState4[0],
2445
- setSelectedRoute = _useState4[1];
2446
-
2447
- var _useState5 = React.useState(0),
2448
- _useState6 = _slicedToArray(_useState5, 2),
2449
- reloadCount = _useState6[0],
2450
- setReloadCount = _useState6[1];
2451
-
2452
- var _useContext = React.useContext(WalletContext),
2453
- account = _useContext.account;
2454
-
2455
- var _useContext2 = React.useContext(UpdatableContext),
2456
- updatable = _useContext2.updatable;
2457
-
2458
- var prepareAcceptedPayments = function prepareAcceptedPayments(accept) {
2459
- var toAddress = _typeof(accept.receiver) == 'object' ? accept.receiver.address : accept.receiver;
2460
- var toContract = _typeof(accept.receiver) == 'object' ? accept.receiver : undefined;
2461
- return _objectSpread(_objectSpread({}, accept), {}, {
2462
- toAddress: toAddress,
2463
- toContract: toContract,
2464
- fromAddress: account
2465
- });
2466
- };
2467
-
2468
- var getPaymentRoutes = function getPaymentRoutes(_ref) {
2469
- var allRoutes = _ref.allRoutes,
2470
- selectedRoute = _ref.selectedRoute,
2471
- updatable = _ref.updatable;
2472
-
2473
- if (updatable == false || !props.accept || !account) {
2474
- return;
2475
- }
2476
-
2477
- web3Payments.route({
2478
- accept: props.accept.map(prepareAcceptedPayments),
2479
- whitelist: props.whitelist,
2480
- blacklist: props.blacklist,
2481
- event: props.event,
2482
- apiKey: apiKey
2483
- }).then(function (routes) {
2484
- if (routes.length == 0) {
2485
- setAllRoutes([]);
2486
-
2487
- if (props.setMaxRoute) {
2488
- props.setMaxRoute(null);
2489
- }
2490
- } else {
2491
- roundAmounts(routes).then(function (roundedRoutes) {
2492
- var selected = selectedRoute ? roundedRoutes[allRoutes.indexOf(selectedRoute)] || roundedRoutes[0] : roundedRoutes[0];
2493
- setSelectedRoute(selected);
2494
- setAllRoutes(roundedRoutes);
2495
-
2496
- if (props.setMaxRoute) {
2497
- props.setMaxRoute(findMaxRoute(roundedRoutes));
2498
- }
2499
- });
2500
- }
2501
- });
2502
- };
2503
-
2504
- var roundAmounts = /*#__PURE__*/function () {
2505
- var _ref2 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2(routes) {
2506
- return regenerator.wrap(function _callee2$(_context2) {
2507
- while (1) {
2508
- switch (_context2.prev = _context2.next) {
2509
- case 0:
2510
- return _context2.abrupt("return", Promise.all(routes.map( /*#__PURE__*/function () {
2511
- var _ref3 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(route) {
2512
- var readableAmount, roundedAmountBN;
2513
- return regenerator.wrap(function _callee$(_context) {
2514
- while (1) {
2515
- switch (_context.prev = _context.next) {
2516
- case 0:
2517
- if (!route.directTransfer) {
2518
- _context.next = 2;
2519
- break;
2520
- }
2521
-
2522
- return _context.abrupt("return", route);
2523
-
2524
- case 2:
2525
- _context.next = 4;
2526
- return route.fromToken.readable(route.transaction.params.amounts[0]);
2527
-
2528
- case 4:
2529
- readableAmount = _context.sent;
2530
- _context.next = 7;
2531
- return route.fromToken.BigNumber(round(readableAmount));
2532
-
2533
- case 7:
2534
- roundedAmountBN = _context.sent;
2535
- route.fromAmount = roundedAmountBN.toString();
2536
- route.transaction.params.amounts[0] = roundedAmountBN.toString();
2537
-
2538
- if (route.transaction.value && route.transaction.value.toString() != '0') {
2539
- route.transaction.value = roundedAmountBN.toString();
2540
- }
2541
-
2542
- return _context.abrupt("return", route);
2543
-
2544
- case 12:
2545
- case "end":
2546
- return _context.stop();
2547
- }
2548
- }
2549
- }, _callee);
2550
- }));
2551
-
2552
- return function (_x2) {
2553
- return _ref3.apply(this, arguments);
2554
- };
2555
- }())));
2556
-
2557
- case 1:
2558
- case "end":
2559
- return _context2.stop();
2560
- }
2561
- }
2562
- }, _callee2);
2563
- }));
2564
-
2565
- return function roundAmounts(_x) {
2566
- return _ref2.apply(this, arguments);
2567
- };
2568
- }();
2569
-
2570
- React.useEffect(function () {
2571
- var timeout = setTimeout(function () {
2572
- setReloadCount(reloadCount + 1);
2573
- getPaymentRoutes({
2574
- allRoutes: allRoutes,
2575
- selectedRoute: selectedRoute,
2576
- updatable: updatable
2577
- });
2578
- }, 15000);
2579
- return function () {
2580
- return clearTimeout(timeout);
2581
- };
2582
- }, [reloadCount, allRoutes, selectedRoute, updatable]);
2583
- React.useEffect(function () {
2584
- if (account && props.accept) {
2585
- setAllRoutes(undefined);
2586
- setSelectedRoute(undefined);
2587
- getPaymentRoutes({});
2588
- } else {
2589
- setAllRoutes(undefined);
2590
- setSelectedRoute(undefined);
2591
- }
2592
- }, [account, props.accept]);
2593
- return /*#__PURE__*/React__default$1["default"].createElement(PaymentRoutingContext.Provider, {
2594
- value: {
2595
- selectedRoute: selectedRoute,
2596
- setSelectedRoute: setSelectedRoute,
2597
- allRoutes: allRoutes,
2598
- setAllRoutes: setAllRoutes
2599
- }
2600
- }, props.children);
2601
- });
2602
-
2603
- var PaymentValueContext = /*#__PURE__*/React__default$1["default"].createContext();
2604
-
2605
- var PaymentValueProvider = (function (props) {
2606
- var _useContext = React.useContext(ErrorContext),
2607
- setError = _useContext.setError;
2608
-
2609
- var _useContext2 = React.useContext(WalletContext),
2610
- account = _useContext2.account;
2611
-
2612
- var _useContext3 = React.useContext(UpdatableContext),
2613
- updatable = _useContext3.updatable;
2614
-
2615
- var _useContext4 = React.useContext(PaymentContext),
2616
- payment = _useContext4.payment;
2617
-
2618
- var _useState = React.useState(),
2619
- _useState2 = _slicedToArray(_useState, 2),
2620
- paymentValue = _useState2[0],
2621
- setPaymentValue = _useState2[1];
2622
-
2623
- var _useContext5 = React.useContext(ConfigurationContext),
2624
- currency = _useContext5.currency;
2625
-
2626
- var _useState3 = React.useState(0),
2627
- _useState4 = _slicedToArray(_useState3, 2),
2628
- reloadCount = _useState4[0],
2629
- setReloadCount = _useState4[1];
2630
-
2631
- var getToTokenLocalValue = function getToTokenLocalValue(_ref) {
2632
- var updatable = _ref.updatable,
2633
- payment = _ref.payment;
2634
-
2635
- if (updatable == false || (payment === null || payment === void 0 ? void 0 : payment.route) == undefined) {
2636
- return;
2637
- }
2638
-
2639
- Promise.all([web3Exchanges.route({
2640
- blockchain: payment.route.blockchain,
2641
- tokenIn: payment.route.toToken.address,
2642
- tokenOut: web3Constants.CONSTANTS[payment.route.blockchain].USD,
2643
- amountIn: payment.route.toAmount,
2644
- fromAddress: account,
2645
- toAddress: account
2646
- }), new web3Tokens.Token({
2647
- blockchain: payment.route.blockchain,
2648
- address: web3Constants.CONSTANTS[payment.route.blockchain].USD
2649
- }).decimals()]).then(function (_ref2) {
2650
- var _ref3 = _slicedToArray(_ref2, 2),
2651
- USDExchangeRoutes = _ref3[0],
2652
- USDDecimals = _ref3[1];
2653
-
2654
- var USDRoute = USDExchangeRoutes[0];
2655
- var USDAmount;
2656
-
2657
- if (payment.route.toToken.address.toLowerCase() == web3Constants.CONSTANTS[payment.route.blockchain].USD.toLowerCase()) {
2658
- USDAmount = payment.route.toAmount.toString();
2659
- } else if (USDRoute == undefined) {
2660
- setPaymentValue('');
2661
- return;
2662
- } else {
2663
- USDAmount = USDRoute.amountOut.toString();
2664
- }
2665
-
2666
- var USDValue = ethers.ethers.utils.formatUnits(USDAmount, USDDecimals);
2667
- localCurrency.Currency.fromUSD({
2668
- amount: USDValue,
2669
- code: currency,
2670
- apiKey: apiKey
2671
- }).then(setPaymentValue)["catch"](setError);
2672
- })["catch"](setError);
2673
- };
2674
-
2675
- React.useEffect(function () {
2676
- if (account && payment) {
2677
- getToTokenLocalValue({
2678
- updatable: updatable,
2679
- payment: payment
2680
- });
2681
- }
2682
- }, [payment, account]);
2683
- React.useEffect(function () {
2684
- var timeout = setTimeout(function () {
2685
- setReloadCount(reloadCount + 1);
2686
- getToTokenLocalValue({
2687
- updatable: updatable
2688
- });
2689
- }, 15000);
2690
- return function () {
2691
- return clearTimeout(timeout);
2692
- };
2693
- }, [reloadCount, updatable]);
2694
- return /*#__PURE__*/React__default$1["default"].createElement(PaymentValueContext.Provider, {
2695
- value: {
2696
- paymentValue: paymentValue
2697
- }
2698
- }, props.children);
2699
- });
2700
-
2701
- var DonationRoutingProvider = (function (props) {
2702
- var _useContext = React.useContext(ChangableAmountContext),
2703
- acceptWithAmount = _useContext.acceptWithAmount,
2704
- setMaxRoute = _useContext.setMaxRoute;
2705
-
2706
- var _useContext2 = React.useContext(ConfigurationContext),
2707
- blacklist = _useContext2.blacklist;
2708
-
2709
- return /*#__PURE__*/React__default$1["default"].createElement(DonationRoutingContext.Provider, {
2710
- value: {}
2711
- }, /*#__PURE__*/React__default$1["default"].createElement(PaymentRoutingProvider, {
2712
- accept: acceptWithAmount,
2713
- blacklist: blacklist,
2714
- setMaxRoute: setMaxRoute
2715
- }, /*#__PURE__*/React__default$1["default"].createElement(PaymentProvider, {
2716
- container: props.container,
2717
- document: props.document
2718
- }, /*#__PURE__*/React__default$1["default"].createElement(PaymentValueProvider, null, props.children))));
2719
- });
2720
-
2721
- var format = (function (input) {
2722
- var _float = parseFloat(input);
2723
-
2724
- var floatToString = _float.toString();
2725
-
2726
- if (new RegExp(/\./).test(floatToString)) {
2727
- var exploded = floatToString.split('.');
2728
- return new Intl.NumberFormat().format(parseInt(exploded[0])) + '.' + exploded[1];
2729
- } else {
2730
- return new Intl.NumberFormat().format(_float);
2731
- }
2732
- });
2733
-
2734
- var ChangeAmountDialog = (function (props) {
2735
- var _useContext = React.useContext(reactDialogStack.NavigateStackContext),
2736
- navigate = _useContext.navigate;
2737
-
2738
- var _useContext2 = React.useContext(ErrorContext);
2739
- _useContext2.setError;
2740
-
2741
- var _useContext3 = React.useContext(WalletContext);
2742
- _useContext3.account;
2743
-
2744
- var _useContext4 = React.useContext(ChangableAmountContext),
2745
- amount = _useContext4.amount,
2746
- setAmount = _useContext4.setAmount,
2747
- maxAmount = _useContext4.maxAmount;
2748
-
2749
- var _useState = React.useState(amount),
2750
- _useState2 = _slicedToArray(_useState, 2),
2751
- inputAmount = _useState2[0],
2752
- setInputAmount = _useState2[1];
2753
-
2754
- var _useContext5 = React.useContext(ConfigurationContext),
2755
- currencyCode = _useContext5.currencyCode,
2756
- configuredAmount = _useContext5.amount;
2757
-
2758
- var _useContext6 = React.useContext(PaymentRoutingContext);
2759
- _useContext6.allRoutes;
2760
-
2761
- var min = _typeof(configuredAmount) == "object" && configuredAmount.min ? configuredAmount.min : 1;
2762
- var step = _typeof(configuredAmount) == "object" && configuredAmount.step ? configuredAmount.step : 1;
2763
-
2764
- var changeAmountAndGoBack = function changeAmountAndGoBack() {
2765
- setAmount(toValidValue(parseFloat(inputAmount)));
2766
- navigate('back');
2767
- };
2768
-
2769
- var changeAmount = function changeAmount(value) {
2770
- if (Number.isNaN(value)) {
2771
- return;
2772
- }
2773
-
2774
- setInputAmount(value);
2775
- };
2776
-
2777
- var toValidStep = function toValidStep(value) {
2778
- if (step) {
2779
- value = parseFloat(new decimal_js.Decimal(Math.floor(new decimal_js.Decimal(value).div(step))).mul(step).toString());
2780
- }
2781
-
2782
- return value;
2783
- };
2784
-
2785
- var toValidValue = function toValidValue(value) {
2786
- value = toValidStep(value);
2787
- value = Math.max(min, Math.min(value, maxAmount));
2788
- value = toValidStep(value);
2789
- return value;
2790
- };
2791
-
2792
- var setValidValue = function setValidValue(value) {
2793
- setInputAmount(toValidValue(value));
2794
- };
2795
-
2796
- return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
2797
- stacked: true,
2798
- header: /*#__PURE__*/React__default$1["default"].createElement("div", {
2799
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomS"
2800
- }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
2801
- className: "LineHeightL FontSizeL TextCenter"
2802
- }, "Change Amount"), /*#__PURE__*/React__default$1["default"].createElement("div", {
2803
- className: "FontSizeL TextCenter FontWeightBold"
2804
- }, /*#__PURE__*/React__default$1["default"].createElement("strong", null, currencyCode))),
2805
- body: /*#__PURE__*/React__default$1["default"].createElement("div", {
2806
- className: "MaxHeight PaddingTopXS"
2807
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
2808
- className: "PaddingLeftM PaddingRightM"
2809
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
2810
- className: "PaddingTopS TextCenter PaddingBottomL"
2811
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
2812
- className: "FontSizeL"
2813
- }, /*#__PURE__*/React__default$1["default"].createElement("input", {
2814
- max: parseFloat(maxAmount),
2815
- min: min,
2816
- step: step,
2817
- className: "Input FontSizeXL TextAlignCenter",
2818
- type: "number",
2819
- name: "amount",
2820
- value: parseFloat(inputAmount),
2821
- onChange: function onChange(event) {
2822
- changeAmount(event.target.value);
2823
- },
2824
- onBlur: function onBlur(event) {
2825
- setValidValue(event.target.value);
2826
- }
2827
- })), /*#__PURE__*/React__default$1["default"].createElement(Slider__default["default"], {
2828
- max: parseFloat(maxAmount),
2829
- min: min,
2830
- step: step,
2831
- value: parseFloat(inputAmount),
2832
- onChange: function onChange(value) {
2833
- changeAmount(toValidStep(value));
2834
- },
2835
- onChangeComplete: function onChangeComplete() {
2836
- setValidValue(inputAmount);
2837
- }
2838
- }), /*#__PURE__*/React__default$1["default"].createElement("div", {
2839
- style: {
2840
- height: '40px'
2841
- }
2842
- }, /*#__PURE__*/React__default$1["default"].createElement("div", null, format(toValidStep(maxAmount)), /*#__PURE__*/React__default$1["default"].createElement("button", {
2843
- className: "TextButton",
2844
- onClick: function onClick() {
2845
- changeAmount(toValidValue(maxAmount));
2846
- }
2847
- }, "(Max)")))))),
2848
- footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
2849
- className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
2850
- }, /*#__PURE__*/React__default$1["default"].createElement("button", {
2851
- className: "ButtonPrimary",
2852
- onClick: changeAmountAndGoBack
2853
- }, "Done"))
2854
- });
2855
- });
2856
-
2857
- var ChangePaymentSkeleton = (function (props) {
2858
- var _useContext = React.useContext(PaymentValueContext),
2859
- paymentValue = _useContext.paymentValue;
2860
-
2861
- return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
2862
- stacked: true,
2863
- header: /*#__PURE__*/React__default$1["default"].createElement("div", {
2864
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomS"
2865
- }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
2866
- className: "LineHeightL FontSizeL TextCenter"
2867
- }, "Change Payment"), paymentValue != undefined && /*#__PURE__*/React__default$1["default"].createElement("div", {
2868
- className: "FontSizeL TextCenter FontWeightBold"
2869
- }, /*#__PURE__*/React__default$1["default"].createElement("strong", null, paymentValue.toString()))),
2870
- body: /*#__PURE__*/React__default$1["default"].createElement("div", {
2871
- className: "MaxHeight PaddingTopXS"
2872
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
2873
- className: "PaddingLeftM PaddingRightM"
2874
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
2875
- className: "Card Skeleton"
2876
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
2877
- className: "SkeletonBackground"
2878
- })), /*#__PURE__*/React__default$1["default"].createElement("div", {
2879
- className: "Card Skeleton"
2880
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
2881
- className: "SkeletonBackground"
2882
- })), /*#__PURE__*/React__default$1["default"].createElement("div", {
2883
- className: "Card Skeleton"
2884
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
2885
- className: "SkeletonBackground"
2886
- }))))
2887
- });
2888
- });
2889
-
2890
- var ChangePaymentDialog = (function (props) {
2891
- var _useContext = React.useContext(ErrorContext),
2892
- setError = _useContext.setError;
2893
-
2894
- var _useContext2 = React.useContext(PaymentRoutingContext),
2895
- allRoutes = _useContext2.allRoutes,
2896
- setSelectedRoute = _useContext2.setSelectedRoute;
2897
-
2898
- var _useContext3 = React.useContext(PaymentValueContext),
2899
- paymentValue = _useContext3.paymentValue;
2900
-
2901
- var _useContext4 = React.useContext(reactDialogStack.NavigateStackContext),
2902
- navigate = _useContext4.navigate;
2903
-
2904
- var _useState = React.useState([]),
2905
- _useState2 = _slicedToArray(_useState, 2),
2906
- allPaymentRoutesWithData = _useState2[0],
2907
- setAllPaymentRoutesWithData = _useState2[1];
2908
-
2909
- var _useState3 = React.useState([]),
2910
- _useState4 = _slicedToArray(_useState3, 2),
2911
- cards = _useState4[0],
2912
- setCards = _useState4[1];
2913
-
2914
- React.useEffect(function () {
2915
- if (allRoutes == undefined) {
2916
- return;
2917
- }
2918
-
2919
- Promise.all(allRoutes.map(function (route) {
2920
- route.exchangeRoutes[0];
2921
- route.fromToken;
2922
- return Promise.all([route.fromToken.name(), route.fromToken.symbol(), route.fromToken.decimals(), route.fromToken.readable(route.fromAmount)]);
2923
- })).then(function (allPaymentRoutesWithData) {
2924
- setAllPaymentRoutesWithData(allRoutes.map(function (route, index) {
2925
- return {
2926
- name: allPaymentRoutesWithData[index][0],
2927
- symbol: allPaymentRoutesWithData[index][1].toUpperCase(),
2928
- decimals: allPaymentRoutesWithData[index][2],
2929
- amount: allPaymentRoutesWithData[index][3],
2930
- route: route
2931
- };
2932
- }));
2933
- })["catch"](setError);
2934
- }, [allRoutes]);
2935
- React.useEffect(function () {
2936
- setCards(allPaymentRoutesWithData.map(function (payment, index) {
2937
- var blockchain = web3Blockchains.Blockchain.findByName(payment.route.blockchain);
2938
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
2939
- key: index,
2940
- className: "Card",
2941
- title: "Select ".concat(payment.symbol, " as payment"),
2942
- onClick: function onClick() {
2943
- setSelectedRoute(payment.route);
2944
- navigate('back');
2945
- }
2946
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
2947
- className: "CardImage"
2948
- }, /*#__PURE__*/React__default$1["default"].createElement(reactTokenImage.TokenImage, {
2949
- blockchain: payment.route.blockchain,
2950
- address: payment.route.fromToken.address
2951
- }), /*#__PURE__*/React__default$1["default"].createElement("img", {
2952
- className: "BlockchainLogo small",
2953
- src: blockchain.logo,
2954
- alt: blockchain.label,
2955
- title: blockchain.label
2956
- })), /*#__PURE__*/React__default$1["default"].createElement("div", {
2957
- className: "CardBody"
2958
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
2959
- className: "CardBodyWrapper"
2960
- }, /*#__PURE__*/React__default$1["default"].createElement("h2", {
2961
- className: "CardText"
2962
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
2963
- className: "TokenAmountRow"
2964
- }, /*#__PURE__*/React__default$1["default"].createElement("span", {
2965
- className: "TokenSymbolCell"
2966
- }, payment.symbol), /*#__PURE__*/React__default$1["default"].createElement("span", null, "\xA0"), /*#__PURE__*/React__default$1["default"].createElement("span", {
2967
- className: "TokenAmountCell"
2968
- }, format(payment.amount)))), /*#__PURE__*/React__default$1["default"].createElement("h3", {
2969
- className: "CardText"
2970
- }, /*#__PURE__*/React__default$1["default"].createElement("small", null, format(round(parseFloat(payment.route.fromBalance.toString()) / Math.pow(10, payment.decimals), 'down')))))));
2971
- }));
2972
- }, [allPaymentRoutesWithData]);
2973
-
2974
- if (allPaymentRoutesWithData.length == 0 || cards.length == 0) {
2975
- return /*#__PURE__*/React__default$1["default"].createElement(ChangePaymentSkeleton, null);
2976
- }
2977
-
2978
- return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
2979
- stacked: true,
2980
- header: /*#__PURE__*/React__default$1["default"].createElement("div", {
2981
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomS"
2982
- }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
2983
- className: "LineHeightL FontSizeL TextCenter"
2984
- }, "Change Payment"), paymentValue != undefined && /*#__PURE__*/React__default$1["default"].createElement("div", {
2985
- className: "FontSizeL TextCenter FontWeightBold"
2986
- }, /*#__PURE__*/React__default$1["default"].createElement("strong", null, paymentValue.toString()))),
2987
- body: /*#__PURE__*/React__default$1["default"].createElement("div", {
2988
- className: "MaxHeight PaddingTopXS"
2989
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
2990
- className: "PaddingLeftM PaddingRightM"
2991
- }, cards)),
2992
- footer: /*#__PURE__*/React__default$1["default"].createElement("div", null)
2993
- });
2994
- });
2995
-
2996
- var DonationOverviewSkeleton = (function (props) {
2997
- return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
2998
- header: /*#__PURE__*/React__default$1["default"].createElement("div", {
2999
- className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
3000
- }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
3001
- className: "LineHeightL FontSizeL"
3002
- }, "Donation")),
3003
- body: /*#__PURE__*/React__default$1["default"].createElement("div", {
3004
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
3005
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3006
- className: "Card Skeleton"
3007
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3008
- className: "SkeletonBackground"
3009
- })), /*#__PURE__*/React__default$1["default"].createElement("div", {
3010
- className: "Card Skeleton"
3011
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3012
- className: "SkeletonBackground"
3013
- }))),
3014
- footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3015
- className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3016
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3017
- className: "SkeletonWrapper"
3018
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3019
- className: "ButtonPrimary Skeleton"
3020
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3021
- className: "SkeletonBackground"
3022
- }))))
3023
- });
3024
- });
3025
-
3026
- var Checkmark = (function (props) {
3027
- return /*#__PURE__*/React__default$1["default"].createElement("svg", {
3028
- className: "Checkmark Icon " + props.className,
3029
- version: "1.1",
3030
- xmlns: "http://www.w3.org/2000/svg",
3031
- x: "0px",
3032
- y: "0px",
3033
- viewBox: "0 0 24 24"
3034
- }, /*#__PURE__*/React__default$1["default"].createElement("path", {
3035
- d: "M20,4.9L9.2,16l-5.4-3.9c-0.7-0.5-1.6-0.3-2.1,0.3c-0.5,0.7-0.3,1.6,0.3,2.1l6.4,4.7c0.3,0.2,0.6,0.3,0.9,0.3 c0.4,0,0.8-0.2,1.1-0.5l11.7-12c0.6-0.6,0.6-1.6,0-2.2C21.6,4.3,20.6,4.3,20,4.9z"
3036
- }));
3037
- });
3038
-
3039
- var DigitalWalletIcon = (function (props) {
3040
- return /*#__PURE__*/React__default$1["default"].createElement("svg", {
3041
- className: "DigitalWalletIcon Icon " + props.className,
3042
- version: "1.1",
3043
- xmlns: "http://www.w3.org/2000/svg",
3044
- height: "24",
3045
- width: "24",
3046
- viewBox: "0 0 24 24"
3047
- }, /*#__PURE__*/React__default$1["default"].createElement("path", {
3048
- d: "M8.51,4.84l-.39-.53,4-2.89a2.2,2.2,0,0,1,3.06.48l.4.56-.53.39-.4-.56A1.54,1.54,0,0,0,12.5,2Z",
3049
- transform: "translate(-0.81 -1)"
3050
- }), /*#__PURE__*/React__default$1["default"].createElement("path", {
3051
- d: "M9.77,4.89l-.21-.62,6.31-2.13h0a2.18,2.18,0,0,1,.67-.1h0a2.21,2.21,0,0,1,2.08,1.49l.32.95-.63.21L18,3.73a1.53,1.53,0,0,0-1.45-1h0a1.61,1.61,0,0,0-.48.08h0Z",
3052
- transform: "translate(-0.81 -1)"
3053
- }), /*#__PURE__*/React__default$1["default"].createElement("path", {
3054
- d: "M19.72,16.2H18.27a3.28,3.28,0,1,1,0-6.56h1.45a3.21,3.21,0,0,1,1.33.28h0a3.28,3.28,0,0,1,0,6A3.21,3.21,0,0,1,19.72,16.2Zm-1.45-5.9a2.63,2.63,0,0,0,0,5.25h1.45a2.56,2.56,0,0,0,1.06-.23,2.62,2.62,0,0,0,0-4.8,2.55,2.55,0,0,0-1.06-.22ZM19,14.53a1.61,1.61,0,1,1,1.61-1.61A1.62,1.62,0,0,1,19,14.53ZM19,12a1,1,0,1,0,.95.95A1,1,0,0,0,19,12Z",
3055
- transform: "translate(-0.81 -1)"
3056
- }), /*#__PURE__*/React__default$1["default"].createElement("path", {
3057
- d: "M10.49,19.69a1.58,1.58,0,1,1,1.58-1.57A1.57,1.57,0,0,1,10.49,19.69Zm0-2.49a.92.92,0,1,0,.92.92A.92.92,0,0,0,10.49,17.2Z",
3058
- transform: "translate(-0.81 -1)"
3059
- }), /*#__PURE__*/React__default$1["default"].createElement("path", {
3060
- d: "M19.09,22.14H2.79a2,2,0,0,1-2-2V6.25a2.1,2.1,0,0,1,0-.43,2,2,0,0,1,.48-.92,2,2,0,0,1,1.48-.65H19.09a2,2,0,0,1,.64.1,2,2,0,0,1,1.36,1.79v0a.28.28,0,0,1,0,.09v3.91h-.66v-4a1.49,1.49,0,0,0-.23-.69A1.35,1.35,0,0,0,19.52,5a1.26,1.26,0,0,0-.43-.08H2.82a1.34,1.34,0,0,0-1,.44A1.49,1.49,0,0,0,1.5,6a1.5,1.5,0,0,0,0,.29V20.13a1.36,1.36,0,0,0,1.34,1.35H19.09a1.35,1.35,0,0,0,1.35-1.35V15.68h.66v4.45A2,2,0,0,1,19.09,22.14Z",
3061
- transform: "translate(-0.81 -1)"
3062
- }), /*#__PURE__*/React__default$1["default"].createElement("path", {
3063
- d: "M9.27,9.31a1.58,1.58,0,1,1,0-3.15,1.58,1.58,0,0,1,0,3.15Zm0-2.5a.92.92,0,1,0,.92.92A.92.92,0,0,0,9.27,6.81Z",
3064
- transform: "translate(-0.81 -1)"
3065
- }), /*#__PURE__*/React__default$1["default"].createElement("path", {
3066
- d: "M7.11,14.67A1.58,1.58,0,1,1,8.69,13.1,1.57,1.57,0,0,1,7.11,14.67Zm0-2.49A.92.92,0,1,0,8,13.1.92.92,0,0,0,7.11,12.18Z",
3067
- transform: "translate(-0.81 -1)"
3068
- }), /*#__PURE__*/React__default$1["default"].createElement("rect", {
3069
- x: "0.33",
3070
- y: "11.77",
3071
- width: "4.72",
3072
- height: "0.66"
3073
- }), /*#__PURE__*/React__default$1["default"].createElement("polygon", {
3074
- points: "2.08 9.53 0.33 9.53 0.33 8.87 1.8 8.87 4.28 6.39 7.21 6.39 7.21 7.05 4.55 7.05 2.08 9.53"
3075
- }), /*#__PURE__*/React__default$1["default"].createElement("polygon", {
3076
- points: "8.43 17.45 4.53 17.45 2.63 15.55 0.33 15.55 0.33 14.89 2.9 14.89 4.8 16.79 8.43 16.79 8.43 17.45"
3077
- }));
3078
- });
3079
-
3080
- var LoadingText = (function (props) {
3081
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3082
- className: "LoadingText"
3083
- }, props.children, /*#__PURE__*/React__default$1["default"].createElement("span", {
3084
- className: "dot"
3085
- }, "."), /*#__PURE__*/React__default$1["default"].createElement("span", {
3086
- className: "dot"
3087
- }, "."), /*#__PURE__*/React__default$1["default"].createElement("span", {
3088
- className: "dot"
3089
- }, "."));
3090
- });
3091
-
3092
- var Footer = (function () {
3093
- var _useContext = React.useContext(ConfigurationContext),
3094
- currencyCode = _useContext.currencyCode;
3095
-
3096
- var _useContext2 = React.useContext(ChangableAmountContext),
3097
- amount = _useContext2.amount;
3098
- _useContext2.amountsMissing;
3099
-
3100
- var _useContext3 = React.useContext(TrackingContext),
3101
- tracking = _useContext3.tracking,
3102
- forward = _useContext3.forward,
3103
- forwardTo = _useContext3.forwardTo;
3104
-
3105
- var _useContext4 = React.useContext(PaymentContext),
3106
- payment = _useContext4.payment,
3107
- paymentState = _useContext4.paymentState,
3108
- pay = _useContext4.pay,
3109
- transaction = _useContext4.transaction,
3110
- approve = _useContext4.approve,
3111
- approvalTransaction = _useContext4.approvalTransaction;
3112
-
3113
- var _useContext5 = React.useContext(PaymentValueContext),
3114
- paymentValue = _useContext5.paymentValue;
3115
-
3116
- var _useContext6 = React.useContext(reactDialogStack.NavigateStackContext),
3117
- navigate = _useContext6.navigate;
3118
-
3119
- var _useContext7 = React.useContext(ClosableContext),
3120
- close = _useContext7.close;
3121
-
3122
- var trackingInfo = function trackingInfo() {
3123
- if (tracking != true) {
3124
- return null;
3125
- }
3126
-
3127
- if (forward) {
3128
- return /*#__PURE__*/React__default$1["default"].createElement("div", null, /*#__PURE__*/React__default$1["default"].createElement("a", {
3129
- className: "Card transparent small disabled"
3130
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3131
- className: "CardImage"
3132
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3133
- className: "TextCenter Opacity05"
3134
- }, /*#__PURE__*/React__default$1["default"].createElement(Checkmark, {
3135
- className: "small"
3136
- }))), /*#__PURE__*/React__default$1["default"].createElement("div", {
3137
- className: "CardBody"
3138
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3139
- className: "CardBodyWrapper"
3140
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3141
- className: "Opacity05"
3142
- }, "Payment confirmation has been stored")))));
3143
- } else {
3144
- return /*#__PURE__*/React__default$1["default"].createElement("div", null, /*#__PURE__*/React__default$1["default"].createElement("a", {
3145
- className: "Card transparent small disabled"
3146
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3147
- className: "CardImage"
3148
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3149
- className: "TextCenter"
3150
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3151
- className: "Loading Icon"
3152
- }))), /*#__PURE__*/React__default$1["default"].createElement("div", {
3153
- className: "CardBody"
3154
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3155
- className: "CardBodyWrapper"
3156
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3157
- className: "Opacity05"
3158
- }, "Storing payment confirmation")))));
3159
- }
3160
- };
3161
-
3162
- var additionalPaymentInformation = function additionalPaymentInformation() {
3163
- if (paymentState == 'paying' && transaction == undefined) {
3164
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3165
- className: "PaddingBottomS"
3166
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3167
- className: "Card transparent disabled small"
3168
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3169
- className: "CardImage"
3170
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3171
- className: "TextCenter Opacity05"
3172
- }, /*#__PURE__*/React__default$1["default"].createElement(DigitalWalletIcon, {
3173
- className: "small"
3174
- }))), /*#__PURE__*/React__default$1["default"].createElement("div", {
3175
- className: "CardBody"
3176
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3177
- className: "CardBodyWrapper"
3178
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3179
- className: "Opacity05"
3180
- }, "Confirm transaction in your wallet")))));
3181
- } else if (paymentState == 'confirmed') {
3182
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3183
- className: "PaddingBottomS"
3184
- }, /*#__PURE__*/React__default$1["default"].createElement("div", null, /*#__PURE__*/React__default$1["default"].createElement("a", {
3185
- className: "Card transparent small",
3186
- title: "Payment has been confirmed by the network",
3187
- href: transaction === null || transaction === void 0 ? void 0 : transaction.url,
3188
- target: "_blank",
3189
- rel: "noopener noreferrer"
3190
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3191
- className: "CardImage"
3192
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3193
- className: "TextCenter Opacity05"
3194
- }, /*#__PURE__*/React__default$1["default"].createElement(Checkmark, {
3195
- className: "small"
3196
- }))), /*#__PURE__*/React__default$1["default"].createElement("div", {
3197
- className: "CardBody"
3198
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3199
- className: "CardBodyWrapper"
3200
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3201
- className: "Opacity05"
3202
- }, "Payment has been confirmed"))))), trackingInfo());
3203
- }
3204
- };
3205
-
3206
- var approvalButton = function approvalButton() {
3207
- if (!payment.route.approvalRequired || payment.route.directTransfer) {
3208
- return null;
3209
- } else if (paymentState == 'initialized') {
3210
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3211
- className: "PaddingBottomS"
3212
- }, /*#__PURE__*/React__default$1["default"].createElement("button", {
3213
- className: "ButtonPrimary",
3214
- onClick: approve,
3215
- title: "Allow ".concat(payment.symbol, " to be used as payment")
3216
- }, "Allow ", payment.symbol, " to be used as payment"));
3217
- } else if (paymentState == 'approving') {
3218
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3219
- className: "PaddingBottomS"
3220
- }, /*#__PURE__*/React__default$1["default"].createElement("a", {
3221
- className: "ButtonPrimary",
3222
- title: "Approving payment token - please wait",
3223
- href: approvalTransaction === null || approvalTransaction === void 0 ? void 0 : approvalTransaction.url,
3224
- target: "_blank",
3225
- rel: "noopener noreferrer"
3226
- }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Approving")));
3227
- }
3228
- };
3229
-
3230
- var mainAction = function mainAction() {
3231
- if (paymentState == 'initialized' || paymentState == 'approving') {
3232
- return /*#__PURE__*/React__default$1["default"].createElement("button", {
3233
- className: ["ButtonPrimary", payment.route.approvalRequired && !payment.route.directTransfer ? 'disabled' : ''].join(' '),
3234
- onClick: function onClick() {
3235
- if (payment.route.approvalRequired && !payment.route.directTransfer) {
3236
- return;
3237
- }
3238
-
3239
- pay({
3240
- navigate: navigate
3241
- });
3242
- }
3243
- }, "Pay ", amount ? new localCurrency.Currency({
3244
- amount: amount.toFixed(2),
3245
- code: currencyCode
3246
- }).toString() : paymentValue.toString().length ? paymentValue.toString() : "".concat(payment.amount));
3247
- } else if (paymentState == 'paying') {
3248
- return /*#__PURE__*/React__default$1["default"].createElement("a", {
3249
- className: "ButtonPrimary",
3250
- title: "Performing the payment - please wait",
3251
- href: transaction === null || transaction === void 0 ? void 0 : transaction.url,
3252
- target: "_blank",
3253
- rel: "noopener noreferrer"
3254
- }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Paying"));
3255
- } else if (paymentState == 'confirmed') {
3256
- if (tracking == true) {
3257
- if (forward) {
3258
- if (forwardTo) {
3259
- return /*#__PURE__*/React__default$1["default"].createElement("a", {
3260
- className: "ButtonPrimary",
3261
- href: forwardTo,
3262
- rel: "noopener noreferrer"
3263
- }, "Continue");
3264
- } else {
3265
- return /*#__PURE__*/React__default$1["default"].createElement("button", {
3266
- className: "ButtonPrimary",
3267
- onClick: close
3268
- }, "Continue");
3269
- }
3270
- } else {
3271
- return /*#__PURE__*/React__default$1["default"].createElement("button", {
3272
- className: "ButtonPrimary disabled",
3273
- onClick: function onClick() {}
3274
- }, "Continue");
3275
- }
3276
- } else {
3277
- return /*#__PURE__*/React__default$1["default"].createElement("button", {
3278
- className: "ButtonPrimary",
3279
- onClick: close
3280
- }, "Close");
3281
- }
3282
- }
3283
- };
3284
-
3285
- return /*#__PURE__*/React__default$1["default"].createElement("div", null, approvalButton(), additionalPaymentInformation(), mainAction());
3286
- });
3287
-
3288
- var DonationOverviewDialog = (function (props) {
3289
- var _useContext = React.useContext(ConfigurationContext),
3290
- currencyCode = _useContext.currencyCode;
3291
-
3292
- var _useContext2 = React.useContext(ChangableAmountContext),
3293
- amount = _useContext2.amount;
3294
-
3295
- var _useContext3 = React.useContext(PaymentContext),
3296
- payment = _useContext3.payment,
3297
- paymentState = _useContext3.paymentState;
3298
-
3299
- var _useContext4 = React.useContext(reactDialogStack.NavigateStackContext),
3300
- navigate = _useContext4.navigate;
3301
-
3302
- if (payment == undefined) {
3303
- return /*#__PURE__*/React__default$1["default"].createElement(DonationOverviewSkeleton, null);
3304
- }
3305
-
3306
- return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
3307
- header: /*#__PURE__*/React__default$1["default"].createElement("div", {
3308
- className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
3309
- }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
3310
- className: "LineHeightL FontSizeL"
3311
- }, "Donation")),
3312
- body: /*#__PURE__*/React__default$1["default"].createElement("div", {
3313
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
3314
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3315
- className: ["Card", paymentState == 'initialized' ? '' : 'disabled'].join(' '),
3316
- title: paymentState == 'initialized' ? "Change amount" : undefined,
3317
- onClick: function onClick() {
3318
- if (paymentState != 'initialized') {
3319
- return;
3320
- }
3321
-
3322
- navigate('ChangeAmount');
3323
- }
3324
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3325
- className: "CardBody"
3326
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3327
- className: "CardBodyWrapper"
3328
- }, /*#__PURE__*/React__default$1["default"].createElement("h4", {
3329
- className: "CardTitle"
3330
- }, "Amount"), /*#__PURE__*/React__default$1["default"].createElement("h2", {
3331
- className: "CardText"
3332
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3333
- className: "TokenAmountRow"
3334
- }, new localCurrency.Currency({
3335
- amount: amount.toFixed(2),
3336
- code: currencyCode
3337
- }).toString())))), /*#__PURE__*/React__default$1["default"].createElement("div", {
3338
- className: "CardAction"
3339
- }, /*#__PURE__*/React__default$1["default"].createElement(ChevronRight, null))), /*#__PURE__*/React__default$1["default"].createElement("div", {
3340
- className: ["Card", paymentState == 'initialized' ? '' : 'disabled'].join(' '),
3341
- title: paymentState == 'initialized' ? "Change payment" : undefined,
3342
- onClick: function onClick() {
3343
- if (paymentState != 'initialized') {
3344
- return;
3345
- }
3346
-
3347
- navigate('ChangePayment');
3348
- }
3349
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3350
- className: "CardImage",
3351
- title: payment.name
3352
- }, /*#__PURE__*/React__default$1["default"].createElement(reactTokenImage.TokenImage, {
3353
- blockchain: payment.route.blockchain,
3354
- address: payment.token
3355
- })), /*#__PURE__*/React__default$1["default"].createElement("div", {
3356
- className: "CardBody"
3357
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3358
- className: "CardBodyWrapper"
3359
- }, /*#__PURE__*/React__default$1["default"].createElement("h4", {
3360
- className: "CardTitle"
3361
- }, "Payment"), /*#__PURE__*/React__default$1["default"].createElement("h2", {
3362
- className: "CardText"
3363
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3364
- className: "TokenAmountRow"
3365
- }, /*#__PURE__*/React__default$1["default"].createElement("span", {
3366
- className: "TokenSymbolCell"
3367
- }, payment.symbol), /*#__PURE__*/React__default$1["default"].createElement("span", null, "\xA0"), /*#__PURE__*/React__default$1["default"].createElement("span", {
3368
- className: "TokenAmountCell"
3369
- }, format(payment.amount)))))), /*#__PURE__*/React__default$1["default"].createElement("div", {
3370
- className: "CardAction"
3371
- }, /*#__PURE__*/React__default$1["default"].createElement(ChevronRight, null)))),
3372
- footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3373
- className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3374
- }, /*#__PURE__*/React__default$1["default"].createElement(Footer, null))
3375
- });
3376
- });
3377
-
3378
- var PaymentErrorDialog = (function () {
3379
- var _useContext = React.useContext(reactDialogStack.NavigateStackContext),
3380
- navigate = _useContext.navigate;
3381
-
3382
- var _useContext2 = React.useContext(PaymentContext),
3383
- transaction = _useContext2.transaction;
3384
-
3385
- return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
3386
- stacked: true,
3387
- header: /*#__PURE__*/React__default$1["default"].createElement("div", {
3388
- className: "PaddingTopS PaddingLeftM PaddingRightM"
3389
- }),
3390
- body: /*#__PURE__*/React__default$1["default"].createElement("div", null, /*#__PURE__*/React__default$1["default"].createElement("div", {
3391
- className: "GraphicWrapper"
3392
- }, /*#__PURE__*/React__default$1["default"].createElement("img", {
3393
- className: "Graphic",
3394
- src: ErrorGraphic
3395
- })), /*#__PURE__*/React__default$1["default"].createElement("h1", {
3396
- className: "LineHeightL Text FontSizeL PaddingTopS FontWeightBold"
3397
- }, "Payment Failed"), /*#__PURE__*/React__default$1["default"].createElement("div", {
3398
- className: "Text PaddingTopS PaddingBottomS PaddingLeftS PaddingRightS"
3399
- }, /*#__PURE__*/React__default$1["default"].createElement("strong", {
3400
- className: "FontSizeM"
3401
- }, "Unfortunately executing your payment failed. You can go back and try again."), transaction && /*#__PURE__*/React__default$1["default"].createElement("div", {
3402
- className: "PaddingTopS"
3403
- }, /*#__PURE__*/React__default$1["default"].createElement("a", {
3404
- className: "Link",
3405
- title: "Check your transaction on a block explorer",
3406
- href: transaction === null || transaction === void 0 ? void 0 : transaction.url,
3407
- target: "_blank",
3408
- rel: "noopener noreferrer"
3409
- }, "View on explorer")))),
3410
- footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3411
- className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3412
- }, /*#__PURE__*/React__default$1["default"].createElement("button", {
3413
- className: "ButtonPrimary",
3414
- onClick: function onClick() {
3415
- return navigate('back');
3416
- }
3417
- }, "Try again"))
3418
- });
3419
- });
3420
-
3421
- var ConnectGraphic = "data:image/png;base64,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";
3422
-
3423
- var WrongNetworkDialog = (function (props) {
3424
- var _useContext = React.useContext(PaymentContext),
3425
- payment = _useContext.payment;
3426
-
3427
- var _useContext2 = React.useContext(reactDialogStack.NavigateStackContext),
3428
- navigate = _useContext2.navigate;
3429
-
3430
- var blockchain = web3Blockchains.Blockchain.findByName(payment.route.blockchain);
3431
- return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
3432
- stacked: true,
3433
- header: /*#__PURE__*/React__default$1["default"].createElement("div", {
3434
- className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
3435
- }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
3436
- className: "LineHeightL FontSizeL"
3437
- }, "Wrong Network")),
3438
- body: /*#__PURE__*/React__default$1["default"].createElement("div", {
3439
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
3440
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3441
- className: "GraphicWrapper"
3442
- }, /*#__PURE__*/React__default$1["default"].createElement("img", {
3443
- className: "Graphic",
3444
- src: ConnectGraphic
3445
- })), /*#__PURE__*/React__default$1["default"].createElement("h1", {
3446
- className: "LineHeightL Text FontSizeL PaddingTopS FontWeightBold"
3447
- }, "Connect to ", blockchain.label), /*#__PURE__*/React__default$1["default"].createElement("div", {
3448
- className: "Text PaddingTopS PaddingBottomS PaddingLeftS PaddingRightS"
3449
- }, /*#__PURE__*/React__default$1["default"].createElement("strong", {
3450
- className: "FontSizeM"
3451
- }, "Please make sure you connect your wallet to the correct network before you try again!"))),
3452
- footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3453
- className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3454
- }, /*#__PURE__*/React__default$1["default"].createElement("button", {
3455
- className: "ButtonPrimary",
3456
- onClick: function onClick() {
3457
- return navigate('back');
3458
- }
3459
- }, "Try again"))
3460
- });
3461
- });
3462
-
3463
- var DonationStack = (function (props) {
3464
- var _useContext = React.useContext(ClosableContext),
3465
- open = _useContext.open,
3466
- close = _useContext.close;
3467
-
3468
- return /*#__PURE__*/React__default$1["default"].createElement(reactDialogStack.ReactDialogStack, {
3469
- open: open,
3470
- close: close,
3471
- start: "DonationOverview",
3472
- container: props.container,
3473
- document: props.document,
3474
- dialogs: {
3475
- DonationOverview: /*#__PURE__*/React__default$1["default"].createElement(DonationOverviewDialog, null),
3476
- ChangeAmount: /*#__PURE__*/React__default$1["default"].createElement(ChangeAmountDialog, null),
3477
- ChangePayment: /*#__PURE__*/React__default$1["default"].createElement(ChangePaymentDialog, null),
3478
- PaymentError: /*#__PURE__*/React__default$1["default"].createElement(PaymentErrorDialog, null),
3479
- WrongNetwork: /*#__PURE__*/React__default$1["default"].createElement(WrongNetworkDialog, null)
3480
- }
3481
- });
3482
- });
3483
-
3484
- var TrackingProvider = (function (props) {
3485
- var _useContext = React.useContext(ConfigurationContext),
3486
- track = _useContext.track;
3487
-
3488
- var _useState = React.useState(track && !!track.endpoint),
3489
- _useState2 = _slicedToArray(_useState, 2),
3490
- tracking = _useState2[0],
3491
- setTracking = _useState2[1];
3492
-
3493
- var _useState3 = React.useState(false),
3494
- _useState4 = _slicedToArray(_useState3, 2),
3495
- forward = _useState4[0],
3496
- setForward = _useState4[1];
3497
-
3498
- var _useState5 = React.useState(),
3499
- _useState6 = _slicedToArray(_useState5, 2),
3500
- forwardTo = _useState6[0],
3501
- setForwardTo = _useState6[1];
3502
-
3503
- var _useContext2 = React.useContext(ClosableContext),
3504
- setClosable = _useContext2.setClosable;
3505
-
3506
- React.useEffect(function () {
3507
- setTracking(track && !!track.endpoint);
3508
- }, [track]);
3509
-
3510
- var openSocket = function openSocket(transaction) {
3511
- var socket = new WebSocket('wss://integrate.depay.fi/cable');
3512
-
3513
- socket.onopen = function (event) {
3514
- var msg = {
3515
- command: 'subscribe',
3516
- identifier: JSON.stringify({
3517
- blockchain: transaction.blockchain,
3518
- sender: transaction.from.toLowerCase(),
3519
- nonce: transaction.nonce,
3520
- channel: 'PaymentChannel'
3521
- })
3522
- };
3523
- socket.send(JSON.stringify(msg));
3524
- };
3525
-
3526
- socket.onclose = function (event) {};
3527
-
3528
- socket.onmessage = function (event) {
3529
- var item = JSON.parse(event.data);
3530
-
3531
- if (item.type === "ping") {
3532
- return;
3533
- }
3534
-
3535
- if (item.message && item.message.forward) {
3536
- setClosable(!item.message.forward_to);
3537
- setForwardTo(item.message.forward_to);
3538
- setForward(item.message.forward);
3539
- socket.close();
3540
-
3541
- if (!!item.message.forward_to) {
3542
- setTimeout(function () {
3543
- props.document.location.href = item.message.forward_to;
3544
- }, 500);
3545
- }
3546
- }
3547
- };
3548
-
3549
- socket.onerror = function (error) {
3550
- console.log('WebSocket Error: ' + error);
3551
- };
3552
- };
3553
-
3554
- var retryStartTracking = function retryStartTracking(transaction, afterBlock, attempt) {
3555
- attempt = parseInt(attempt || 1, 10);
3556
- console.log('RETRY TRACKING ATTEMPT ', attempt);
3557
-
3558
- if (attempt < 3) {
3559
- setTimeout(function () {
3560
- startTracking(transaction, afterBlock, attempt + 1);
3561
- }, 3000);
3562
- } else {
3563
- console.log('TRACKING FAILED AFTER 3 ATTEMPTS!');
3564
- }
3565
- };
3566
-
3567
- var startTracking = function startTracking(transaction, afterBlock, attempt) {
3568
- fetch(track.endpoint, {
3569
- method: 'POST',
3570
- body: JSON.stringify({
3571
- blockchain: transaction.blockchain,
3572
- transaction: transaction.id.toLowerCase(),
3573
- sender: transaction.from.toLowerCase(),
3574
- nonce: transaction.nonce,
3575
- after_block: afterBlock
3576
- })
3577
- }).then(function (response) {
3578
- if (response.status == 200) {
3579
- console.log('TRACKING INITIALIZED');
3580
- } else {
3581
- retryStartTracking(transaction, afterBlock, attempt);
3582
- }
3583
- })["catch"](function (error) {
3584
- console.log('TRACKING FAILED', error);
3585
- retryStartTracking(transaction, afterBlock, attempt);
3586
- });
3587
- };
3588
-
3589
- var initializeTracking = function initializeTracking(transaction, afterBlock) {
3590
- openSocket(transaction);
3591
- startTracking(transaction, afterBlock);
3592
- };
3593
-
3594
- return /*#__PURE__*/React__default$1["default"].createElement(TrackingContext.Provider, {
3595
- value: {
3596
- tracking: tracking,
3597
- initializeTracking: initializeTracking,
3598
- forward: forward,
3599
- forwardTo: forwardTo
3600
- }
3601
- }, props.children);
3602
- });
3603
-
3604
- var WalletProvider = (function (props) {
3605
- var _useContext = React.useContext(ErrorContext);
3606
- _useContext.setError;
3607
-
3608
- var _useState = React.useState(),
3609
- _useState2 = _slicedToArray(_useState, 2),
3610
- wallet = _useState2[0],
3611
- setWallet = _useState2[1];
3612
-
3613
- var _useState3 = React.useState(),
3614
- _useState4 = _slicedToArray(_useState3, 2),
3615
- account = _useState4[0],
3616
- setAccount = _useState4[1];
3617
-
3618
- var _useState5 = React.useState(),
3619
- _useState6 = _slicedToArray(_useState5, 2),
3620
- walletState = _useState6[0],
3621
- setWalletState = _useState6[1];
3622
-
3623
- var connected = function connected(_ref) {
3624
- var account = _ref.account,
3625
- wallet = _ref.wallet;
3626
- setAccount(account);
3627
- setWallet(wallet);
3628
- setWalletState('connected');
3629
-
3630
- if (props.connected) {
3631
- props.connected(accounts[0]);
3632
- }
3633
- };
3634
-
3635
- if (walletState == 'connected') {
3636
- return /*#__PURE__*/React__default$1["default"].createElement(WalletContext.Provider, {
3637
- value: {
3638
- account: account,
3639
- wallet: wallet,
3640
- walletState: walletState
3641
- }
3642
- }, props.children);
3643
- } else {
3644
- return /*#__PURE__*/React__default$1["default"].createElement(ConnectStack, {
3645
- document: props.document,
3646
- container: props.container,
3647
- resolve: connected
3648
- });
3649
- }
3650
- });
3651
-
3652
- var preflight$2 = /*#__PURE__*/function () {
3653
- var _ref2 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(_ref) {
3654
- var accept;
3655
- return regenerator.wrap(function _callee$(_context) {
3656
- while (1) {
3657
- switch (_context.prev = _context.next) {
3658
- case 0:
3659
- accept = _ref.accept;
3660
-
3661
- if (!(!(accept instanceof Array) || accept.length == 0)) {
3662
- _context.next = 3;
3663
- break;
3664
- }
3665
-
3666
- throw 'You need to set the tokens you accept as donation!';
3667
-
3668
- case 3:
3669
- accept.forEach(function (configuration) {
3670
- if (typeof configuration.blockchain === 'undefined') {
3671
- throw 'You need to set the blockchain you want to receive the donation on!';
3672
- }
3673
-
3674
- if (!['ethereum', 'bsc'].includes(configuration.blockchain)) {
3675
- throw 'You need to set a supported blockchain!';
3676
- }
3677
-
3678
- if (typeof configuration.token === 'undefined') {
3679
- throw 'You need to set the token you want to receive as donation!';
3680
- }
3681
-
3682
- if (typeof configuration.receiver === 'undefined') {
3683
- throw 'You need to set the receiver address that you want to receive the donation!';
3684
- }
3685
- });
3686
-
3687
- case 4:
3688
- case "end":
3689
- return _context.stop();
3690
- }
3691
- }
3692
- }, _callee);
3693
- }));
3694
-
3695
- return function preflight(_x) {
3696
- return _ref2.apply(this, arguments);
3697
- };
3698
- }();
3699
-
3700
- var Donation = /*#__PURE__*/function () {
3701
- var _ref4 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2(_ref3) {
3702
- var amount, accept, event, sent, confirmed, failed, error, critical, style, blacklist, providers, currency, connected, closed, document, unmount;
3703
- return regenerator.wrap(function _callee2$(_context2) {
3704
- while (1) {
3705
- switch (_context2.prev = _context2.next) {
3706
- case 0:
3707
- amount = _ref3.amount, accept = _ref3.accept, event = _ref3.event, sent = _ref3.sent, confirmed = _ref3.confirmed, failed = _ref3.failed, error = _ref3.error, critical = _ref3.critical, style = _ref3.style, blacklist = _ref3.blacklist, providers = _ref3.providers, currency = _ref3.currency, connected = _ref3.connected, closed = _ref3.closed, document = _ref3.document;
3708
- _context2.prev = 1;
3709
- _context2.next = 4;
3710
- return preflight$2({
3711
- accept: accept
3712
- });
3713
-
3714
- case 4:
3715
- unmount = mount({
3716
- style: style,
3717
- document: ensureDocument(document),
3718
- closed: closed
3719
- }, function (unmount) {
3720
- return function (container) {
3721
- return /*#__PURE__*/React__default$1["default"].createElement(ErrorProvider, {
3722
- error: error,
3723
- container: container,
3724
- unmount: unmount
3725
- }, /*#__PURE__*/React__default$1["default"].createElement(ConfigurationProvider, {
3726
- configuration: {
3727
- amount: amount,
3728
- accept: accept,
3729
- currency: currency,
3730
- event: event,
3731
- sent: sent,
3732
- confirmed: confirmed,
3733
- failed: failed,
3734
- blacklist: blacklist,
3735
- providers: providers
3736
- }
3737
- }, /*#__PURE__*/React__default$1["default"].createElement(UpdatableProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
3738
- unmount: unmount
3739
- }, /*#__PURE__*/React__default$1["default"].createElement(WalletProvider, {
3740
- container: container,
3741
- connected: connected,
3742
- unmount: unmount
3743
- }, /*#__PURE__*/React__default$1["default"].createElement(ConversionRateProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ChangableAmountProvider, {
3744
- accept: accept
3745
- }, /*#__PURE__*/React__default$1["default"].createElement(TrackingProvider, {
3746
- document: ensureDocument(document)
3747
- }, /*#__PURE__*/React__default$1["default"].createElement(DonationRoutingProvider, {
3748
- container: container,
3749
- document: document
3750
- }, /*#__PURE__*/React__default$1["default"].createElement(DonationStack, {
3751
- document: document,
3752
- container: container
3753
- }), /*#__PURE__*/React__default$1["default"].createElement(PoweredBy, null))))))))));
3754
- };
3755
- });
3756
- return _context2.abrupt("return", {
3757
- unmount: unmount
3758
- });
3759
-
3760
- case 8:
3761
- _context2.prev = 8;
3762
- _context2.t0 = _context2["catch"](1);
3763
- console.log('critical error', _context2.t0);
3764
-
3765
- if (critical != undefined) {
3766
- critical(_context2.t0);
3767
- }
3768
-
3769
- case 12:
3770
- case "end":
3771
- return _context2.stop();
3772
- }
3773
- }
3774
- }, _callee2, null, [[1, 8]]);
3775
- }));
3776
-
3777
- return function Donation(_x2) {
3778
- return _ref4.apply(this, arguments);
3779
- };
3780
- }();
3781
-
3782
- var PaymentAmountRoutingContext = /*#__PURE__*/React__default$1["default"].createContext();
3783
-
3784
- var PaymentAmountRoutingProvider = (function (props) {
3785
- var _useContext = React.useContext(ChangableAmountContext),
3786
- amountsMissing = _useContext.amountsMissing,
3787
- acceptWithAmount = _useContext.acceptWithAmount,
3788
- setMaxRoute = _useContext.setMaxRoute;
3789
-
3790
- var _useState = React.useState(),
3791
- _useState2 = _slicedToArray(_useState, 2),
3792
- accept = _useState2[0],
3793
- setAccept = _useState2[1];
3794
-
3795
- React.useEffect(function () {
3796
- if (amountsMissing) {
3797
- if (acceptWithAmount) {
3798
- setAccept(acceptWithAmount);
3799
- }
3800
- } else {
3801
- setAccept(props.accept);
3802
- }
3803
- }, [amountsMissing, acceptWithAmount]);
3804
- return /*#__PURE__*/React__default$1["default"].createElement(PaymentAmountRoutingContext.Provider, {
3805
- value: {}
3806
- }, /*#__PURE__*/React__default$1["default"].createElement(PaymentRoutingProvider, {
3807
- accept: accept,
3808
- whitelist: props.whitelist,
3809
- blacklist: props.blacklist,
3810
- event: props.event,
3811
- setMaxRoute: setMaxRoute
3812
- }, props.children));
3813
- });
3814
-
3815
- var PaymentOverviewSkeleton = (function (props) {
3816
- var _useContext = React.useContext(ChangableAmountContext),
3817
- amountsMissing = _useContext.amountsMissing;
3818
-
3819
- return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
3820
- header: /*#__PURE__*/React__default$1["default"].createElement("div", {
3821
- className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
3822
- }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
3823
- className: "LineHeightL FontSizeL"
3824
- }, "Payment")),
3825
- body: /*#__PURE__*/React__default$1["default"].createElement("div", {
3826
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
3827
- }, amountsMissing && /*#__PURE__*/React__default$1["default"].createElement("div", {
3828
- className: "Card Skeleton"
3829
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3830
- className: "SkeletonBackground"
3831
- })), /*#__PURE__*/React__default$1["default"].createElement("div", {
3832
- className: "Card Skeleton"
3833
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3834
- className: "SkeletonBackground"
3835
- }))),
3836
- footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3837
- className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3838
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3839
- className: "SkeletonWrapper"
3840
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3841
- className: "ButtonPrimary Skeleton"
3842
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3843
- className: "SkeletonBackground"
3844
- }))))
3845
- });
3846
- });
3847
-
3848
- var PaymentOverviewDialog = (function (props) {
3849
- var _useContext = React.useContext(ConfigurationContext),
3850
- currencyCode = _useContext.currencyCode;
3851
-
3852
- var _useContext2 = React.useContext(PaymentContext),
3853
- payment = _useContext2.payment,
3854
- paymentState = _useContext2.paymentState;
3855
-
3856
- var _useContext3 = React.useContext(ChangableAmountContext),
3857
- amount = _useContext3.amount,
3858
- amountsMissing = _useContext3.amountsMissing;
3859
-
3860
- var _useContext4 = React.useContext(PaymentValueContext),
3861
- paymentValue = _useContext4.paymentValue;
3862
-
3863
- var _useContext5 = React.useContext(reactDialogStack.NavigateStackContext),
3864
- navigate = _useContext5.navigate;
3865
-
3866
- if (payment == undefined || paymentValue == undefined) {
3867
- return /*#__PURE__*/React__default$1["default"].createElement(PaymentOverviewSkeleton, null);
3868
- }
3869
-
3870
- return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
3871
- header: /*#__PURE__*/React__default$1["default"].createElement("div", {
3872
- className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
3873
- }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
3874
- className: "LineHeightL FontSizeL"
3875
- }, "Payment")),
3876
- body: /*#__PURE__*/React__default$1["default"].createElement("div", {
3877
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
3878
- }, amountsMissing && /*#__PURE__*/React__default$1["default"].createElement("div", {
3879
- className: ["Card", paymentState == 'initialized' ? '' : 'disabled'].join(' '),
3880
- title: paymentState == 'initialized' ? "Change amount" : undefined,
3881
- onClick: function onClick() {
3882
- if (paymentState != 'initialized') {
3883
- return;
3884
- }
3885
-
3886
- navigate('ChangeAmount');
3887
- }
3888
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3889
- className: "CardBody"
3890
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3891
- className: "CardBodyWrapper"
3892
- }, /*#__PURE__*/React__default$1["default"].createElement("h4", {
3893
- className: "CardTitle"
3894
- }, "Amount"), /*#__PURE__*/React__default$1["default"].createElement("h2", {
3895
- className: "CardText"
3896
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3897
- className: "TokenAmountRow"
3898
- }, new localCurrency.Currency({
3899
- amount: amount.toFixed(2),
3900
- code: currencyCode
3901
- }).toString())))), /*#__PURE__*/React__default$1["default"].createElement("div", {
3902
- className: "CardAction"
3903
- }, /*#__PURE__*/React__default$1["default"].createElement(ChevronRight, null))), /*#__PURE__*/React__default$1["default"].createElement("div", {
3904
- className: ["Card", paymentState == 'initialized' ? '' : 'disabled'].join(' '),
3905
- title: paymentState == 'initialized' ? "Change payment" : undefined,
3906
- onClick: function onClick() {
3907
- if (paymentState != 'initialized') {
3908
- return;
3909
- }
3910
-
3911
- navigate('ChangePayment');
3912
- }
3913
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3914
- className: "CardImage",
3915
- title: payment.name
3916
- }, /*#__PURE__*/React__default$1["default"].createElement(reactTokenImage.TokenImage, {
3917
- blockchain: payment.route.blockchain,
3918
- address: payment.token
3919
- })), /*#__PURE__*/React__default$1["default"].createElement("div", {
3920
- className: "CardBody"
3921
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3922
- className: "CardBodyWrapper"
3923
- }, amountsMissing && /*#__PURE__*/React__default$1["default"].createElement("h4", {
3924
- className: "CardTitle"
3925
- }, "Payment"), /*#__PURE__*/React__default$1["default"].createElement("h2", {
3926
- className: "CardText"
3927
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3928
- className: "TokenAmountRow"
3929
- }, /*#__PURE__*/React__default$1["default"].createElement("span", {
3930
- className: "TokenSymbolCell"
3931
- }, payment.symbol), /*#__PURE__*/React__default$1["default"].createElement("span", null, "\xA0"), /*#__PURE__*/React__default$1["default"].createElement("span", {
3932
- className: "TokenAmountCell"
3933
- }, format(payment.amount)))))), /*#__PURE__*/React__default$1["default"].createElement("div", {
3934
- className: "CardAction"
3935
- }, /*#__PURE__*/React__default$1["default"].createElement(ChevronRight, null)))),
3936
- footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3937
- className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3938
- }, /*#__PURE__*/React__default$1["default"].createElement(Footer, null))
3939
- });
3940
- });
3941
-
3942
- var PaymentStack = (function (props) {
3943
- var _useContext = React.useContext(ClosableContext),
3944
- open = _useContext.open,
3945
- close = _useContext.close;
3946
-
3947
- return /*#__PURE__*/React__default$1["default"].createElement(reactDialogStack.ReactDialogStack, {
3948
- open: open,
3949
- close: close,
3950
- start: "PaymentOverview",
3951
- container: props.container,
3952
- document: props.document,
3953
- dialogs: {
3954
- PaymentOverview: /*#__PURE__*/React__default$1["default"].createElement(PaymentOverviewDialog, null),
3955
- ChangeAmount: /*#__PURE__*/React__default$1["default"].createElement(ChangeAmountDialog, null),
3956
- ChangePayment: /*#__PURE__*/React__default$1["default"].createElement(ChangePaymentDialog, null),
3957
- PaymentError: /*#__PURE__*/React__default$1["default"].createElement(PaymentErrorDialog, null),
3958
- WrongNetwork: /*#__PURE__*/React__default$1["default"].createElement(WrongNetworkDialog, null)
3959
- }
3960
- });
3961
- });
3962
-
3963
- var preflight$1 = /*#__PURE__*/function () {
3964
- var _ref2 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(_ref) {
3965
- var accept;
3966
- return regenerator.wrap(function _callee$(_context) {
3967
- while (1) {
3968
- switch (_context.prev = _context.next) {
3969
- case 0:
3970
- accept = _ref.accept;
3971
- accept.forEach(function (configuration) {
3972
- if (typeof configuration.blockchain === 'undefined') {
3973
- throw 'You need to set the blockchain your want to receive the payment on!';
3974
- }
3975
-
3976
- if (!['ethereum', 'bsc'].includes(configuration.blockchain)) {
3977
- throw 'You need to set a supported blockchain!';
3978
- }
3979
-
3980
- if (typeof configuration.token === 'undefined') {
3981
- throw 'You need to set the token you want to receive as payment!';
3982
- }
3983
-
3984
- if (typeof configuration.receiver === 'undefined') {
3985
- throw 'You need to set the receiver address that you want to receive the payment!';
3986
- }
3987
- });
3988
-
3989
- case 2:
3990
- case "end":
3991
- return _context.stop();
3992
- }
3993
- }
3994
- }, _callee);
3995
- }));
3996
-
3997
- return function preflight(_x) {
3998
- return _ref2.apply(this, arguments);
3999
- };
4000
- }();
4001
-
4002
- var Payment = /*#__PURE__*/function () {
4003
- var _ref4 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2(_ref3) {
4004
- var accept, amount, event, sent, confirmed, failed, error, critical, style, whitelist, blacklist, providers, currency, connected, closed, track, document, unmount;
4005
- return regenerator.wrap(function _callee2$(_context2) {
4006
- while (1) {
4007
- switch (_context2.prev = _context2.next) {
4008
- case 0:
4009
- accept = _ref3.accept, amount = _ref3.amount, event = _ref3.event, sent = _ref3.sent, confirmed = _ref3.confirmed, failed = _ref3.failed, error = _ref3.error, critical = _ref3.critical, style = _ref3.style, whitelist = _ref3.whitelist, blacklist = _ref3.blacklist, providers = _ref3.providers, currency = _ref3.currency, connected = _ref3.connected, closed = _ref3.closed, track = _ref3.track, document = _ref3.document;
4010
- _context2.prev = 1;
4011
- _context2.next = 4;
4012
- return preflight$1({
4013
- accept: accept
4014
- });
4015
-
4016
- case 4:
4017
- unmount = mount({
4018
- style: style,
4019
- document: ensureDocument(document),
4020
- closed: closed
4021
- }, function (unmount) {
4022
- return function (container) {
4023
- return /*#__PURE__*/React__default$1["default"].createElement(ErrorProvider, {
4024
- error: error,
4025
- container: container,
4026
- unmount: unmount
4027
- }, /*#__PURE__*/React__default$1["default"].createElement(ConfigurationProvider, {
4028
- configuration: {
4029
- amount: amount,
4030
- accept: accept,
4031
- currency: currency,
4032
- event: event,
4033
- sent: sent,
4034
- confirmed: confirmed,
4035
- failed: failed,
4036
- whitelist: whitelist,
4037
- blacklist: blacklist,
4038
- providers: providers,
4039
- track: track
4040
- }
4041
- }, /*#__PURE__*/React__default$1["default"].createElement(UpdatableProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
4042
- unmount: unmount
4043
- }, /*#__PURE__*/React__default$1["default"].createElement(WalletProvider, {
4044
- document: document,
4045
- container: container,
4046
- connected: connected,
4047
- unmount: unmount
4048
- }, /*#__PURE__*/React__default$1["default"].createElement(ConversionRateProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ChangableAmountProvider, {
4049
- accept: accept
4050
- }, /*#__PURE__*/React__default$1["default"].createElement(PaymentAmountRoutingProvider, {
4051
- accept: accept,
4052
- whitelist: whitelist,
4053
- blacklist: blacklist,
4054
- event: event
4055
- }, /*#__PURE__*/React__default$1["default"].createElement(TrackingProvider, {
4056
- document: ensureDocument(document)
4057
- }, /*#__PURE__*/React__default$1["default"].createElement(PaymentProvider, {
4058
- container: container,
4059
- document: document
4060
- }, /*#__PURE__*/React__default$1["default"].createElement(PaymentValueProvider, null, /*#__PURE__*/React__default$1["default"].createElement(PaymentStack, {
4061
- document: document,
4062
- container: container
4063
- }), /*#__PURE__*/React__default$1["default"].createElement(PoweredBy, null))))))))))));
4064
- };
4065
- });
4066
- return _context2.abrupt("return", {
4067
- unmount: unmount
4068
- });
4069
-
4070
- case 8:
4071
- _context2.prev = 8;
4072
- _context2.t0 = _context2["catch"](1);
4073
- console.log('critical error', _context2.t0);
4074
-
4075
- if (critical != undefined) {
4076
- critical(_context2.t0);
4077
- }
4078
-
4079
- case 12:
4080
- case "end":
4081
- return _context2.stop();
4082
- }
4083
- }
4084
- }, _callee2, null, [[1, 8]]);
4085
- }));
4086
-
4087
- return function Payment(_x2) {
4088
- return _ref4.apply(this, arguments);
4089
- };
4090
- }();
4091
-
4092
- var SaleRoutingContext = /*#__PURE__*/React__default$1["default"].createContext();
4093
-
4094
- var ToTokenContext = /*#__PURE__*/React__default$1["default"].createContext();
4095
-
4096
- var ToTokenProvider = (function (props) {
4097
- var _useContext = React.useContext(PaymentContext),
4098
- payment = _useContext.payment;
4099
-
4100
- var _useState = React.useState(),
4101
- _useState2 = _slicedToArray(_useState, 2),
4102
- toToken = _useState2[0],
4103
- setToToken = _useState2[1];
4104
-
4105
- var _useState3 = React.useState(),
4106
- _useState4 = _slicedToArray(_useState3, 2),
4107
- toTokenReadableAmount = _useState4[0],
4108
- setToTokenReadableAmount = _useState4[1];
4109
-
4110
- React.useEffect(function () {
4111
- if (payment) {
4112
- Promise.all([payment.route.toToken.symbol(), payment.route.toToken.readable(payment.route.toAmount)]).then(function (_ref) {
4113
- var _ref2 = _slicedToArray(_ref, 2),
4114
- symbol = _ref2[0],
4115
- readableAmount = _ref2[1];
4116
-
4117
- setToToken({
4118
- address: payment.route.toToken.address,
4119
- symbol: symbol
4120
- });
4121
- setToTokenReadableAmount(readableAmount);
4122
- });
4123
- }
4124
- }, [payment]);
4125
- return /*#__PURE__*/React__default$1["default"].createElement(ToTokenContext.Provider, {
4126
- value: {
4127
- toToken: toToken,
4128
- toTokenReadableAmount: toTokenReadableAmount
4129
- }
4130
- }, props.children);
4131
- });
4132
-
4133
- var SaleRoutingProvider = (function (props) {
4134
- var _useContext = React.useContext(ChangableAmountContext),
4135
- acceptWithAmount = _useContext.acceptWithAmount,
4136
- setMaxRoute = _useContext.setMaxRoute;
4137
-
4138
- var _useContext2 = React.useContext(ConfigurationContext),
4139
- sell = _useContext2.sell;
4140
-
4141
- var _useContext3 = React.useContext(ConfigurationContext),
4142
- blacklist = _useContext3.blacklist;
4143
-
4144
- if (blacklist == undefined) {
4145
- blacklist = {};
4146
- }
4147
-
4148
- for (var blockchain in sell) {
4149
- var token = sell[blockchain];
4150
-
4151
- if (blacklist[blockchain] instanceof Array) {
4152
- blacklist[blockchain].push(token);
4153
- } else {
4154
- blacklist[blockchain] = [token];
4155
- }
4156
- }
4157
-
4158
- return /*#__PURE__*/React__default$1["default"].createElement(SaleRoutingContext.Provider, {
4159
- value: {}
4160
- }, /*#__PURE__*/React__default$1["default"].createElement(PaymentRoutingProvider, {
4161
- accept: acceptWithAmount,
4162
- blacklist: blacklist,
4163
- setMaxRoute: setMaxRoute
4164
- }, /*#__PURE__*/React__default$1["default"].createElement(PaymentProvider, {
4165
- container: props.container,
4166
- document: props.document
4167
- }, /*#__PURE__*/React__default$1["default"].createElement(PaymentValueProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ToTokenProvider, null, props.children)))));
4168
- });
4169
-
4170
- var SaleOverviewSkeleton = (function (props) {
4171
- return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
4172
- header: /*#__PURE__*/React__default$1["default"].createElement("div", {
4173
- className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
4174
- }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
4175
- className: "LineHeightL FontSizeL"
4176
- }, "Purchase")),
4177
- body: /*#__PURE__*/React__default$1["default"].createElement("div", {
4178
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
4179
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
4180
- className: "Card Skeleton",
4181
- style: {
4182
- height: '100px'
4183
- }
4184
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
4185
- className: "SkeletonBackground"
4186
- })), /*#__PURE__*/React__default$1["default"].createElement("div", {
4187
- className: "Card Skeleton"
4188
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
4189
- className: "SkeletonBackground"
4190
- }))),
4191
- footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
4192
- className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
4193
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
4194
- className: "SkeletonWrapper"
4195
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
4196
- className: "ButtonPrimary Skeleton"
4197
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
4198
- className: "SkeletonBackground"
4199
- }))))
4200
- });
4201
- });
4202
-
4203
- var SaleOverviewDialog = (function (props) {
4204
- var _useContext = React.useContext(ChangableAmountContext);
4205
- _useContext.amount;
4206
-
4207
- var _useContext2 = React.useContext(ConfigurationContext),
4208
- tokenImage = _useContext2.tokenImage;
4209
-
4210
- var _useContext3 = React.useContext(PaymentValueContext),
4211
- paymentValue = _useContext3.paymentValue;
4212
-
4213
- var _useContext4 = React.useContext(PaymentContext),
4214
- payment = _useContext4.payment,
4215
- paymentState = _useContext4.paymentState;
4216
-
4217
- var _useContext5 = React.useContext(reactDialogStack.NavigateStackContext),
4218
- navigate = _useContext5.navigate;
4219
-
4220
- var _useContext6 = React.useContext(ToTokenContext),
4221
- toToken = _useContext6.toToken,
4222
- toTokenReadableAmount = _useContext6.toTokenReadableAmount;
4223
-
4224
- var _useState = React.useState(),
4225
- _useState2 = _slicedToArray(_useState, 2),
4226
- salePerTokenValue = _useState2[0],
4227
- setSalePerTokenValue = _useState2[1];
4228
-
4229
- React.useEffect(function () {
4230
- if (paymentValue) {
4231
- setSalePerTokenValue(new localCurrency.Currency({
4232
- amount: (paymentValue.amount / parseFloat(toTokenReadableAmount)).toFixed(2),
4233
- code: paymentValue.code
4234
- }).toString());
4235
- }
4236
- }, [paymentValue]);
4237
-
4238
- if (toToken == undefined || toTokenReadableAmount == undefined || payment == undefined || paymentValue == undefined) {
4239
- return /*#__PURE__*/React__default$1["default"].createElement(SaleOverviewSkeleton, null);
4240
- }
4241
-
4242
- var tokenImageElement;
4243
-
4244
- if (tokenImage) {
4245
- tokenImageElement = /*#__PURE__*/React__default$1["default"].createElement("img", {
4246
- src: tokenImage
4247
- });
4248
- } else {
4249
- tokenImageElement = /*#__PURE__*/React__default$1["default"].createElement(reactTokenImage.TokenImage, {
4250
- blockchain: payment.route.blockchain,
4251
- address: toToken.address
4252
- });
4253
- }
4254
-
4255
- return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
4256
- header: /*#__PURE__*/React__default$1["default"].createElement("div", {
4257
- className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
4258
- }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
4259
- className: "LineHeightL FontSizeL"
4260
- }, "Purchase")),
4261
- body: /*#__PURE__*/React__default$1["default"].createElement("div", {
4262
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
4263
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
4264
- className: ["Card", paymentState == 'initialized' ? '' : 'disabled'].join(' '),
4265
- title: paymentState == 'initialized' ? "Change amount" : undefined,
4266
- onClick: function onClick() {
4267
- if (paymentState != 'initialized') {
4268
- return;
4269
- }
4270
-
4271
- navigate('ChangeAmount');
4272
- }
4273
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
4274
- className: "CardImage",
4275
- title: payment.name
4276
- }, tokenImageElement), /*#__PURE__*/React__default$1["default"].createElement("div", {
4277
- className: "CardBody"
4278
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
4279
- className: "CardBodyWrapper"
4280
- }, /*#__PURE__*/React__default$1["default"].createElement("h4", {
4281
- className: "CardTitle"
4282
- }, "Amount"), /*#__PURE__*/React__default$1["default"].createElement("h2", {
4283
- className: "CardText"
4284
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
4285
- className: "TokenAmountRow"
4286
- }, /*#__PURE__*/React__default$1["default"].createElement("span", {
4287
- className: "TokenSymbolCell"
4288
- }, toToken.symbol), /*#__PURE__*/React__default$1["default"].createElement("span", null, "\xA0"), /*#__PURE__*/React__default$1["default"].createElement("span", {
4289
- className: "TokenAmountCell"
4290
- }, format(toTokenReadableAmount)))), salePerTokenValue && /*#__PURE__*/React__default$1["default"].createElement("h3", {
4291
- className: "CardText"
4292
- }, /*#__PURE__*/React__default$1["default"].createElement("small", null, salePerTokenValue, " per token")))), /*#__PURE__*/React__default$1["default"].createElement("div", {
4293
- className: "CardAction"
4294
- }, /*#__PURE__*/React__default$1["default"].createElement(ChevronRight, null))), /*#__PURE__*/React__default$1["default"].createElement("div", {
4295
- className: ["Card", paymentState == 'initialized' ? '' : 'disabled'].join(' '),
4296
- title: paymentState == 'initialized' ? "Change payment" : undefined,
4297
- onClick: function onClick() {
4298
- if (paymentState != 'initialized') {
4299
- return;
4300
- }
4301
-
4302
- navigate('ChangePayment');
4303
- }
4304
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
4305
- className: "CardImage",
4306
- title: payment.name
4307
- }, /*#__PURE__*/React__default$1["default"].createElement(reactTokenImage.TokenImage, {
4308
- blockchain: payment.route.blockchain,
4309
- address: payment.token
4310
- })), /*#__PURE__*/React__default$1["default"].createElement("div", {
4311
- className: "CardBody"
4312
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
4313
- className: "CardBodyWrapper"
4314
- }, /*#__PURE__*/React__default$1["default"].createElement("h4", {
4315
- className: "CardTitle"
4316
- }, "Payment"), /*#__PURE__*/React__default$1["default"].createElement("h2", {
4317
- className: "CardText"
4318
- }, /*#__PURE__*/React__default$1["default"].createElement("div", {
4319
- className: "TokenAmountRow"
4320
- }, /*#__PURE__*/React__default$1["default"].createElement("span", {
4321
- className: "TokenSymbolCell"
4322
- }, payment.symbol), /*#__PURE__*/React__default$1["default"].createElement("span", null, "\xA0"), /*#__PURE__*/React__default$1["default"].createElement("span", {
4323
- className: "TokenAmountCell"
4324
- }, format(payment.amount)))))), /*#__PURE__*/React__default$1["default"].createElement("div", {
4325
- className: "CardAction"
4326
- }, /*#__PURE__*/React__default$1["default"].createElement(ChevronRight, null)))),
4327
- footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
4328
- className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
4329
- }, /*#__PURE__*/React__default$1["default"].createElement(Footer, null))
4330
- });
4331
- });
4332
-
4333
- var SaleStack = (function (props) {
4334
- var _useContext = React.useContext(ClosableContext),
4335
- open = _useContext.open,
4336
- close = _useContext.close;
4337
-
4338
- return /*#__PURE__*/React__default$1["default"].createElement(reactDialogStack.ReactDialogStack, {
4339
- open: open,
4340
- close: close,
4341
- start: "SaleOverview",
4342
- container: props.container,
4343
- document: props.document,
4344
- dialogs: {
4345
- SaleOverview: /*#__PURE__*/React__default$1["default"].createElement(SaleOverviewDialog, null),
4346
- ChangeAmount: /*#__PURE__*/React__default$1["default"].createElement(ChangeAmountDialog, null),
4347
- ChangePayment: /*#__PURE__*/React__default$1["default"].createElement(ChangePaymentDialog, null),
4348
- NoPaymentMethodFound: /*#__PURE__*/React__default$1["default"].createElement(NoPaymentMethodFoundDialog, null),
4349
- PaymentError: /*#__PURE__*/React__default$1["default"].createElement(PaymentErrorDialog, null),
4350
- WrongNetwork: /*#__PURE__*/React__default$1["default"].createElement(WrongNetworkDialog, null)
4351
- }
4352
- });
4353
- });
4354
-
4355
- var preflight = /*#__PURE__*/function () {
4356
- var _ref2 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(_ref) {
4357
- var sell;
4358
- return regenerator.wrap(function _callee$(_context) {
4359
- while (1) {
4360
- switch (_context.prev = _context.next) {
4361
- case 0:
4362
- sell = _ref.sell;
4363
-
4364
- if (!(_typeof(sell) != 'object')) {
4365
- _context.next = 3;
4366
- break;
4367
- }
4368
-
4369
- throw 'You need to configure at least 1 "blockchain": "token"';
4370
-
4371
- case 3:
4372
- if (!(Object.keys(sell).length == 0)) {
4373
- _context.next = 5;
4374
- break;
4375
- }
4376
-
4377
- throw 'You need to configure at least 1 "blockchain": "token"';
4378
-
4379
- case 5:
4380
- if (!(Object.values(sell).length == 0)) {
4381
- _context.next = 7;
4382
- break;
4383
- }
4384
-
4385
- throw 'You need to configure at least 1 "blockchain": "token"';
4386
-
4387
- case 7:
4388
- case "end":
4389
- return _context.stop();
4390
- }
4391
- }
4392
- }, _callee);
4393
- }));
4394
-
4395
- return function preflight(_x) {
4396
- return _ref2.apply(this, arguments);
4397
- };
4398
- }();
4399
-
4400
- var Sale = /*#__PURE__*/function () {
4401
- var _ref4 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2(_ref3) {
4402
- var amount, sell, sent, confirmed, failed, error, critical, style, blacklist, providers, currency, connected, closed, tokenImage, document, accept, unmount;
4403
- return regenerator.wrap(function _callee2$(_context2) {
4404
- while (1) {
4405
- switch (_context2.prev = _context2.next) {
4406
- case 0:
4407
- amount = _ref3.amount, sell = _ref3.sell, sent = _ref3.sent, confirmed = _ref3.confirmed, failed = _ref3.failed, error = _ref3.error, critical = _ref3.critical, style = _ref3.style, blacklist = _ref3.blacklist, providers = _ref3.providers, currency = _ref3.currency, connected = _ref3.connected, closed = _ref3.closed, tokenImage = _ref3.tokenImage, document = _ref3.document;
4408
- _context2.prev = 1;
4409
- _context2.next = 4;
4410
- return preflight({
4411
- sell: sell
4412
- });
4413
-
4414
- case 4:
4415
- accept = Object.keys(sell).map(function (key) {
4416
- return {
4417
- blockchain: key,
4418
- token: sell[key]
4419
- };
4420
- });
4421
- unmount = mount({
4422
- style: style,
4423
- document: ensureDocument(document),
4424
- closed: closed
4425
- }, function (unmount) {
4426
- return function (container) {
4427
- return /*#__PURE__*/React__default$1["default"].createElement(ErrorProvider, {
4428
- error: error,
4429
- container: container,
4430
- unmount: unmount
4431
- }, /*#__PURE__*/React__default$1["default"].createElement(ConfigurationProvider, {
4432
- configuration: {
4433
- tokenImage: tokenImage,
4434
- amount: amount,
4435
- sell: sell,
4436
- currency: currency,
4437
- sent: sent,
4438
- confirmed: confirmed,
4439
- failed: failed,
4440
- blacklist: blacklist,
4441
- providers: providers
4442
- }
4443
- }, /*#__PURE__*/React__default$1["default"].createElement(UpdatableProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
4444
- unmount: unmount
4445
- }, /*#__PURE__*/React__default$1["default"].createElement(WalletProvider, {
4446
- container: container,
4447
- connected: connected,
4448
- unmount: unmount
4449
- }, /*#__PURE__*/React__default$1["default"].createElement(ConversionRateProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ChangableAmountProvider, {
4450
- accept: accept
4451
- }, /*#__PURE__*/React__default$1["default"].createElement(TrackingProvider, {
4452
- document: ensureDocument(document)
4453
- }, /*#__PURE__*/React__default$1["default"].createElement(SaleRoutingProvider, {
4454
- container: container,
4455
- document: document
4456
- }, /*#__PURE__*/React__default$1["default"].createElement(SaleStack, {
4457
- document: document,
4458
- container: container
4459
- }), /*#__PURE__*/React__default$1["default"].createElement(PoweredBy, null))))))))));
4460
- };
4461
- });
4462
- return _context2.abrupt("return", {
4463
- unmount: unmount
4464
- });
4465
-
4466
- case 9:
4467
- _context2.prev = 9;
4468
- _context2.t0 = _context2["catch"](1);
4469
- console.log('critical error', _context2.t0);
4470
-
4471
- if (critical != undefined) {
4472
- critical(_context2.t0);
4473
- }
4474
-
4475
- case 13:
4476
- case "end":
4477
- return _context2.stop();
4478
- }
4479
- }
4480
- }, _callee2, null, [[1, 9]]);
4481
- }));
4482
-
4483
- return function Sale(_x2) {
4484
- return _ref4.apply(this, arguments);
4485
- };
4486
- }();
4487
-
4488
- var DePayWidgets = {
4489
- Connect: Connect,
4490
- Payment: Payment,
4491
- Sale: Sale,
4492
- Donation: Donation,
4493
- provider: web3Client.provider
4494
- };
4495
-
4496
- module.exports = DePayWidgets;