@saasquatch/mint-components 1.12.0-10 → 1.12.0-12
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/loader.cjs.js +1 -1
- package/dist/cjs/mint-components.cjs.js +1 -1
- package/dist/cjs/sqm-banking-info-form_16.cjs.entry.js +138 -59
- package/dist/cjs/sqm-big-stat_39.cjs.entry.js +55 -15
- package/dist/cjs/sqm-code-verification.cjs.entry.js +4 -4
- package/dist/cjs/sqm-email-verification.cjs.entry.js +4 -4
- package/dist/cjs/{sqm-invoice-table-view-c58966f8.js → sqm-invoice-table-view-301eed81.js} +78 -23
- package/dist/cjs/sqm-stencilbook.cjs.entry.js +11 -21
- package/dist/cjs/sqm-widget-verification-internal.cjs.entry.js +7 -1
- package/dist/cjs/usePayoutStatus-5ac536a3.js +1045 -0
- package/dist/cjs/{useVerificationEmail-6aacdb71.js → useVerificationEmail-2eb28c2a.js} +5 -1
- package/dist/collection/components/sqm-widget-verification/sqm-code-verification/useCodeVerification.js +3 -3
- package/dist/collection/components/sqm-widget-verification/sqm-email-verification/sqm-email-verification-view.js +1 -1
- package/dist/collection/components/sqm-widget-verification/sqm-email-verification/useEmailVerification.js +2 -2
- package/dist/collection/components/sqm-widget-verification/sqm-widget-verification-internal.js +7 -1
- package/dist/collection/components/sqm-widget-verification/useVerificationEmail.js +5 -1
- package/dist/collection/components/tax-and-cash/TaxForm.stories.js +75 -23
- package/dist/collection/components/tax-and-cash/eventKeys.js +1 -0
- package/dist/collection/components/tax-and-cash/sqm-banking-info-form/sqm-banking-info-form.js +5 -5
- package/dist/collection/components/tax-and-cash/sqm-banking-info-form/useBankingInfoForm.js +3 -0
- package/dist/collection/components/tax-and-cash/sqm-docusign-form/useDocusignForm.js +3 -0
- package/dist/collection/components/tax-and-cash/sqm-indirect-tax-form/useIndirectTaxForm.js +3 -0
- package/dist/collection/components/tax-and-cash/sqm-payout-details-card/PayoutDetailsCard.stories.js +0 -7
- package/dist/collection/components/tax-and-cash/sqm-payout-details-card/sqm-payout-details-card-view.js +0 -5
- package/dist/collection/components/tax-and-cash/sqm-payout-details-card/sqm-payout-details-card.js +0 -56
- package/dist/collection/components/tax-and-cash/sqm-payout-status-alert/PayoutStatusAlert.stories.js +5 -9
- package/dist/collection/components/tax-and-cash/sqm-payout-status-alert/sqm-payout-status-alert-view.js +28 -11
- package/dist/collection/components/tax-and-cash/sqm-payout-status-alert/sqm-payout-status-alert.js +155 -6
- package/dist/collection/components/tax-and-cash/sqm-payout-status-alert/usePayoutStatus.js +20 -9
- package/dist/collection/components/tax-and-cash/sqm-tax-and-cash-dashboard/sqm-tax-and-cash-dashboard-view.js +86 -21
- package/dist/collection/components/tax-and-cash/sqm-tax-and-cash-dashboard/sqm-tax-and-cash-dashboard.js +153 -2
- package/dist/collection/components/tax-and-cash/sqm-tax-and-cash-dashboard/useTaxAndCashDashboard.js +13 -5
- package/dist/collection/components/tax-and-cash/sqm-user-info-form/sqm-user-info-form-view.js +1 -6
- package/dist/collection/components/tax-and-cash/useVeriffApp.js +64 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/mint-components.js +1 -1
- package/dist/esm/sqm-banking-info-form_16.entry.js +138 -59
- package/dist/esm/sqm-big-stat_39.entry.js +55 -15
- package/dist/esm/sqm-code-verification.entry.js +4 -4
- package/dist/esm/sqm-email-verification.entry.js +4 -4
- package/dist/esm/{sqm-invoice-table-view-d1cfdaf4.js → sqm-invoice-table-view-1f26f252.js} +78 -23
- package/dist/esm/sqm-stencilbook.entry.js +11 -21
- package/dist/esm/sqm-widget-verification-internal.entry.js +7 -1
- package/dist/esm/usePayoutStatus-d613ff10.js +1039 -0
- package/dist/esm/{useVerificationEmail-c32696ba.js → useVerificationEmail-2a21d0e3.js} +5 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/mint-components.js +1 -1
- package/dist/esm-es5/sqm-banking-info-form_16.entry.js +1 -1
- package/dist/esm-es5/sqm-big-stat_39.entry.js +1 -1
- package/dist/esm-es5/sqm-code-verification.entry.js +1 -1
- package/dist/esm-es5/sqm-email-verification.entry.js +1 -1
- package/dist/esm-es5/sqm-invoice-table-view-1f26f252.js +1 -0
- package/dist/esm-es5/sqm-stencilbook.entry.js +1 -1
- package/dist/esm-es5/sqm-widget-verification-internal.entry.js +1 -1
- package/dist/esm-es5/usePayoutStatus-d613ff10.js +6 -0
- package/dist/esm-es5/useVerificationEmail-2a21d0e3.js +1 -0
- package/dist/mint-components/mint-components.esm.js +1 -1
- package/dist/mint-components/p-03e1ac96.system.entry.js +1 -0
- package/dist/mint-components/p-209eab38.system.js +6 -0
- package/dist/mint-components/p-2584baa5.entry.js +16 -0
- package/dist/mint-components/p-2c99add0.js +31 -0
- package/dist/mint-components/p-635f1cf5.system.entry.js +1 -0
- package/dist/mint-components/p-78ec0d48.js +1 -0
- package/dist/mint-components/p-7d79f697.system.js +1 -0
- package/dist/mint-components/p-9379ee08.js +48 -0
- package/dist/mint-components/p-9ddcfcd7.entry.js +195 -0
- package/dist/mint-components/p-a567ba84.system.entry.js +1 -0
- package/dist/mint-components/p-a8c28561.system.js +1 -0
- package/dist/mint-components/p-a9b7e11f.entry.js +25 -0
- package/dist/mint-components/{p-1712a9fd.entry.js → p-b24b4d75.entry.js} +2 -2
- package/dist/mint-components/{p-331d060e.entry.js → p-b9e863d0.entry.js} +14 -14
- package/dist/mint-components/p-c5d26757.system.entry.js +1 -0
- package/dist/mint-components/{p-b62faaa5.system.entry.js → p-c5f84a95.system.entry.js} +1 -1
- package/dist/mint-components/p-ca809fdd.system.js +1 -1
- package/dist/mint-components/{p-e45a8501.system.entry.js → p-f7493ca6.system.entry.js} +1 -1
- package/dist/mint-components/{p-24092973.entry.js → p-f7902f51.entry.js} +2 -2
- package/dist/types/components/sqm-widget-verification/useVerificationEmail.d.ts +1 -0
- package/dist/types/components/tax-and-cash/TaxForm.stories.d.ts +3 -0
- package/dist/types/components/tax-and-cash/eventKeys.d.ts +1 -0
- package/dist/types/components/tax-and-cash/sqm-payout-details-card/PayoutDetailsCard.stories.d.ts +0 -1
- package/dist/types/components/tax-and-cash/sqm-payout-details-card/sqm-payout-details-card-view.d.ts +0 -4
- package/dist/types/components/tax-and-cash/sqm-payout-details-card/sqm-payout-details-card.d.ts +1 -16
- package/dist/types/components/tax-and-cash/sqm-payout-status-alert/PayoutStatusAlert.stories.d.ts +3 -1
- package/dist/types/components/tax-and-cash/sqm-payout-status-alert/sqm-payout-status-alert-view.d.ts +7 -2
- package/dist/types/components/tax-and-cash/sqm-payout-status-alert/sqm-payout-status-alert.d.ts +25 -0
- package/dist/types/components/tax-and-cash/sqm-payout-status-alert/usePayoutStatus.d.ts +3 -4
- package/dist/types/components/tax-and-cash/sqm-tax-and-cash-dashboard/sqm-tax-and-cash-dashboard-view.d.ts +8 -4
- package/dist/types/components/tax-and-cash/sqm-tax-and-cash-dashboard/sqm-tax-and-cash-dashboard.d.ts +24 -0
- package/dist/types/components/tax-and-cash/useVeriffApp.d.ts +6 -0
- package/dist/types/components.d.ts +98 -22
- package/docs/docs.docx +0 -0
- package/docs/raisins.json +1 -1
- package/grapesjs/grapesjs.js +1 -1
- package/package.json +2 -1
- package/dist/cjs/usePayoutStatus-b9fb7399.js +0 -70
- package/dist/esm/usePayoutStatus-1a635054.js +0 -67
- package/dist/esm-es5/sqm-invoice-table-view-d1cfdaf4.js +0 -1
- package/dist/esm-es5/usePayoutStatus-1a635054.js +0 -1
- package/dist/esm-es5/useVerificationEmail-c32696ba.js +0 -1
- package/dist/mint-components/p-15c7a1d2.system.entry.js +0 -1
- package/dist/mint-components/p-1e616d45.system.js +0 -1
- package/dist/mint-components/p-4364001c.entry.js +0 -12
- package/dist/mint-components/p-4bd7a472.js +0 -1
- package/dist/mint-components/p-517224ef.js +0 -19
- package/dist/mint-components/p-5a23b560.system.entry.js +0 -1
- package/dist/mint-components/p-8300d8c8.system.js +0 -1
- package/dist/mint-components/p-8bddb468.system.entry.js +0 -1
- package/dist/mint-components/p-974070c4.system.entry.js +0 -1
- package/dist/mint-components/p-c41e1df8.entry.js +0 -195
- package/dist/mint-components/p-d7806f31.js +0 -48
- package/dist/mint-components/p-e990dc21.system.js +0 -1
- package/dist/mint-components/p-f340214f.entry.js +0 -25
|
@@ -0,0 +1,1039 @@
|
|
|
1
|
+
import { k as useState, f as useEffect } from './stencil-hooks.module-ac12ca1c.js';
|
|
2
|
+
import { d as dist, K, c as xe, g as getEnvironmentSDK, E as En } from './index.module-6c840c4e.js';
|
|
3
|
+
|
|
4
|
+
const TAX_FORM_UPDATED_EVENT_KEY = "sqm:tax-form-updated";
|
|
5
|
+
|
|
6
|
+
var toArray = function toArray(a) {
|
|
7
|
+
var ret = Array(a.length);
|
|
8
|
+
for (var i = 0; i < a.length; ++i) {
|
|
9
|
+
ret[i] = a[i];
|
|
10
|
+
}
|
|
11
|
+
return ret;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
var arrayFind = function arrayFind(array, search) {
|
|
15
|
+
return array.filter(function (a) {
|
|
16
|
+
return a === search;
|
|
17
|
+
})[0];
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
var asArray = function asArray(a) {
|
|
21
|
+
return Array.isArray(a) ? a : [a];
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
var tabSort = function tabSort(a, b) {
|
|
25
|
+
var tabDiff = a.tabIndex - b.tabIndex;
|
|
26
|
+
var indexDiff = a.index - b.index;
|
|
27
|
+
|
|
28
|
+
if (tabDiff) {
|
|
29
|
+
if (!a.tabIndex) return 1;
|
|
30
|
+
if (!b.tabIndex) return -1;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return tabDiff || indexDiff;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var orderByTabIndex = function orderByTabIndex(nodes, filterNegative, keepGuards) {
|
|
37
|
+
return toArray(nodes).map(function (node, index) {
|
|
38
|
+
return {
|
|
39
|
+
node: node,
|
|
40
|
+
index: index,
|
|
41
|
+
tabIndex: keepGuards && node.tabIndex === -1 ? (node.dataset || {}).focusGuard ? 0 : -1 : node.tabIndex
|
|
42
|
+
};
|
|
43
|
+
}).filter(function (data) {
|
|
44
|
+
return !filterNegative || data.tabIndex >= 0;
|
|
45
|
+
}).sort(tabSort);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const tabbables = ['button:enabled:not([readonly])', 'select:enabled:not([readonly])', 'textarea:enabled:not([readonly])', 'input:enabled:not([readonly])', 'a[href]', 'area[href]', 'iframe', 'object', 'embed', '[tabindex]', '[contenteditable]', '[autofocus]'];
|
|
49
|
+
|
|
50
|
+
var FOCUS_GROUP = 'data-focus-lock';
|
|
51
|
+
var FOCUS_DISABLED = 'data-focus-lock-disabled';
|
|
52
|
+
var FOCUS_ALLOW = 'data-no-focus-lock';
|
|
53
|
+
var FOCUS_AUTO = 'data-autofocus-inside';
|
|
54
|
+
|
|
55
|
+
var queryTabbables = tabbables.join(',');
|
|
56
|
+
var queryGuardTabbables = queryTabbables + ', [data-focus-guard]';
|
|
57
|
+
|
|
58
|
+
var getFocusables = function getFocusables(parents, withGuards) {
|
|
59
|
+
return parents.reduce(function (acc, parent) {
|
|
60
|
+
return acc.concat(
|
|
61
|
+
// add all tabbables inside
|
|
62
|
+
toArray(parent.querySelectorAll(withGuards ? queryGuardTabbables : queryTabbables)),
|
|
63
|
+
// add if node is tabble itself
|
|
64
|
+
parent.parentNode ? toArray(parent.parentNode.querySelectorAll(tabbables.join(','))).filter(function (node) {
|
|
65
|
+
return node === parent;
|
|
66
|
+
}) : []);
|
|
67
|
+
}, []);
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
var getParentAutofocusables = function getParentAutofocusables(parent) {
|
|
71
|
+
var parentFocus = parent.querySelectorAll('[' + FOCUS_AUTO + ']');
|
|
72
|
+
return toArray(parentFocus).map(function (node) {
|
|
73
|
+
return getFocusables([node]);
|
|
74
|
+
}).reduce(function (acc, nodes) {
|
|
75
|
+
return acc.concat(nodes);
|
|
76
|
+
}, []);
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
var isElementHidden = function isElementHidden(computedStyle) {
|
|
80
|
+
if (!computedStyle || !computedStyle.getPropertyValue) {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
return computedStyle.getPropertyValue('display') === 'none' || computedStyle.getPropertyValue('visibility') === 'hidden';
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
var isVisible = function isVisible(node) {
|
|
87
|
+
return !node || node === document || node.nodeType === Node.DOCUMENT_NODE || !isElementHidden(window.getComputedStyle(node, null)) && isVisible(node.parentNode);
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
var notHiddenInput = function notHiddenInput(node) {
|
|
91
|
+
return !((node.tagName === 'INPUT' || node.tagName === 'BUTTON') && (node.type === 'hidden' || node.disabled));
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
var getParents = function getParents(node) {
|
|
95
|
+
var parents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
96
|
+
|
|
97
|
+
parents.push(node);
|
|
98
|
+
if (node.parentNode) {
|
|
99
|
+
getParents(node.parentNode, parents);
|
|
100
|
+
}
|
|
101
|
+
return parents;
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
var getCommonParent = function getCommonParent(nodea, nodeb) {
|
|
105
|
+
var parentsA = getParents(nodea);
|
|
106
|
+
var parentsB = getParents(nodeb);
|
|
107
|
+
|
|
108
|
+
for (var i = 0; i < parentsA.length; i += 1) {
|
|
109
|
+
var currentParent = parentsA[i];
|
|
110
|
+
if (parentsB.indexOf(currentParent) >= 0) {
|
|
111
|
+
return currentParent;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return false;
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
var filterFocusable = function filterFocusable(nodes) {
|
|
118
|
+
return toArray(nodes).filter(function (node) {
|
|
119
|
+
return isVisible(node);
|
|
120
|
+
}).filter(function (node) {
|
|
121
|
+
return notHiddenInput(node);
|
|
122
|
+
});
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
var getTabbableNodes = function getTabbableNodes(topNodes, withGuards) {
|
|
126
|
+
return orderByTabIndex(filterFocusable(getFocusables(topNodes, withGuards)), true, withGuards);
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
var getAllTabbableNodes = function getAllTabbableNodes(topNodes) {
|
|
130
|
+
return orderByTabIndex(filterFocusable(getFocusables(topNodes)), false);
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
var parentAutofocusables = function parentAutofocusables(topNode) {
|
|
134
|
+
return filterFocusable(getParentAutofocusables(topNode));
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
var isRadio = function isRadio(node) {
|
|
138
|
+
return node.tagName === 'INPUT' && node.type === 'radio';
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
var findSelectedRadio = function findSelectedRadio(node, nodes) {
|
|
142
|
+
return nodes.filter(isRadio).filter(function (el) {
|
|
143
|
+
return el.name === node.name;
|
|
144
|
+
}).filter(function (el) {
|
|
145
|
+
return el.checked;
|
|
146
|
+
})[0] || node;
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
var pickFirstFocus = function pickFirstFocus(nodes) {
|
|
150
|
+
if (nodes[0] && nodes.length > 1) {
|
|
151
|
+
if (isRadio(nodes[0]) && nodes[0].name) {
|
|
152
|
+
return findSelectedRadio(nodes[0], nodes);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return nodes[0];
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
var pickFocusable = function pickFocusable(nodes, index) {
|
|
159
|
+
if (nodes.length > 1) {
|
|
160
|
+
if (isRadio(nodes[index]) && nodes[index].name) {
|
|
161
|
+
return nodes.indexOf(findSelectedRadio(nodes[index], nodes));
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return index;
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
|
168
|
+
|
|
169
|
+
var filterNested = function filterNested(nodes) {
|
|
170
|
+
var l = nodes.length;
|
|
171
|
+
for (var i = 0; i < l; i += 1) {
|
|
172
|
+
var _loop = function _loop(j) {
|
|
173
|
+
if (i !== j) {
|
|
174
|
+
if (nodes[i].contains(nodes[j])) {
|
|
175
|
+
return {
|
|
176
|
+
v: filterNested(nodes.filter(function (x) {
|
|
177
|
+
return x !== nodes[j];
|
|
178
|
+
}))
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
for (var j = 0; j < l; j += 1) {
|
|
185
|
+
var _ret = _loop(j);
|
|
186
|
+
|
|
187
|
+
if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return nodes;
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
var getTopParent = function getTopParent(node) {
|
|
194
|
+
return node.parentNode ? getTopParent(node.parentNode) : node;
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
var getAllAffectedNodes = function getAllAffectedNodes(node) {
|
|
198
|
+
var nodes = asArray(node);
|
|
199
|
+
return nodes.filter(Boolean).reduce(function (acc, currentNode) {
|
|
200
|
+
var group = currentNode.getAttribute(FOCUS_GROUP);
|
|
201
|
+
acc.push.apply(acc, group ? filterNested(toArray(getTopParent(currentNode).querySelectorAll('[' + FOCUS_GROUP + '="' + group + '"]:not([' + FOCUS_DISABLED + '="disabled"])'))) : [currentNode]);
|
|
202
|
+
return acc;
|
|
203
|
+
}, []);
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
var findAutoFocused = function findAutoFocused(autoFocusables) {
|
|
207
|
+
return function (node) {
|
|
208
|
+
return !!node.autofocus || node.dataset && !!node.dataset.autofocus || autoFocusables.indexOf(node) >= 0;
|
|
209
|
+
};
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
var isGuard = function isGuard(node) {
|
|
213
|
+
return node && node.dataset && node.dataset.focusGuard;
|
|
214
|
+
};
|
|
215
|
+
var notAGuard = function notAGuard(node) {
|
|
216
|
+
return !isGuard(node);
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
var newFocus = function newFocus(innerNodes, outerNodes, activeElement, lastNode, autoFocused) {
|
|
220
|
+
var cnt = innerNodes.length;
|
|
221
|
+
var firstFocus = innerNodes[0];
|
|
222
|
+
var lastFocus = innerNodes[cnt - 1];
|
|
223
|
+
var isOnGuard = isGuard(activeElement);
|
|
224
|
+
|
|
225
|
+
// focus is inside
|
|
226
|
+
if (innerNodes.indexOf(activeElement) >= 0) {
|
|
227
|
+
return undefined;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
var activeIndex = outerNodes.indexOf(activeElement);
|
|
231
|
+
var lastIndex = outerNodes.indexOf(lastNode || activeIndex);
|
|
232
|
+
var lastNodeInside = innerNodes.indexOf(lastNode);
|
|
233
|
+
var indexDiff = activeIndex - lastIndex;
|
|
234
|
+
var firstNodeIndex = outerNodes.indexOf(firstFocus);
|
|
235
|
+
var lastNodeIndex = outerNodes.indexOf(lastFocus);
|
|
236
|
+
|
|
237
|
+
var returnFirstNode = pickFocusable(innerNodes, 0);
|
|
238
|
+
var returnLastNode = pickFocusable(innerNodes, cnt - 1);
|
|
239
|
+
|
|
240
|
+
// new focus
|
|
241
|
+
if (activeIndex === -1 || lastNodeInside === -1) {
|
|
242
|
+
return innerNodes.indexOf(autoFocused && autoFocused.length ? pickFirstFocus(autoFocused) : pickFirstFocus(innerNodes));
|
|
243
|
+
}
|
|
244
|
+
// old focus
|
|
245
|
+
if (!indexDiff && lastNodeInside >= 0) {
|
|
246
|
+
return lastNodeInside;
|
|
247
|
+
}
|
|
248
|
+
// first element
|
|
249
|
+
if (activeIndex <= firstNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {
|
|
250
|
+
return returnLastNode;
|
|
251
|
+
}
|
|
252
|
+
// last element
|
|
253
|
+
if (activeIndex >= firstNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {
|
|
254
|
+
return returnFirstNode;
|
|
255
|
+
}
|
|
256
|
+
// jump out, but not on the guard
|
|
257
|
+
if (indexDiff && Math.abs(indexDiff) > 1) {
|
|
258
|
+
return lastNodeInside;
|
|
259
|
+
}
|
|
260
|
+
// focus above lock
|
|
261
|
+
if (activeIndex <= firstNodeIndex) {
|
|
262
|
+
return returnLastNode;
|
|
263
|
+
}
|
|
264
|
+
// focus below lock
|
|
265
|
+
if (activeIndex > lastNodeIndex) {
|
|
266
|
+
return returnFirstNode;
|
|
267
|
+
}
|
|
268
|
+
// index is inside tab order, but outside Lock
|
|
269
|
+
if (indexDiff) {
|
|
270
|
+
if (Math.abs(indexDiff) > 1) {
|
|
271
|
+
return lastNodeInside;
|
|
272
|
+
}
|
|
273
|
+
return (cnt + lastNodeInside + indexDiff) % cnt;
|
|
274
|
+
}
|
|
275
|
+
// do nothing
|
|
276
|
+
return undefined;
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
var getTopCommonParent = function getTopCommonParent(baseActiveElement, leftEntry, rightEntries) {
|
|
280
|
+
var activeElements = asArray(baseActiveElement);
|
|
281
|
+
var leftEntries = asArray(leftEntry);
|
|
282
|
+
var activeElement = activeElements[0];
|
|
283
|
+
var topCommon = null;
|
|
284
|
+
leftEntries.filter(Boolean).forEach(function (entry) {
|
|
285
|
+
topCommon = getCommonParent(topCommon || entry, entry) || topCommon;
|
|
286
|
+
rightEntries.filter(Boolean).forEach(function (subEntry) {
|
|
287
|
+
var common = getCommonParent(activeElement, subEntry);
|
|
288
|
+
if (common) {
|
|
289
|
+
if (!topCommon || common.contains(topCommon)) {
|
|
290
|
+
topCommon = common;
|
|
291
|
+
} else {
|
|
292
|
+
topCommon = getCommonParent(common, topCommon);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
});
|
|
297
|
+
return topCommon;
|
|
298
|
+
};
|
|
299
|
+
|
|
300
|
+
var allParentAutofocusables = function allParentAutofocusables(entries) {
|
|
301
|
+
return entries.reduce(function (acc, node) {
|
|
302
|
+
return acc.concat(parentAutofocusables(node));
|
|
303
|
+
}, []);
|
|
304
|
+
};
|
|
305
|
+
|
|
306
|
+
var reorderNodes = function reorderNodes(srcNodes, dstNodes) {
|
|
307
|
+
var remap = new Map();
|
|
308
|
+
// no Set(dstNodes) for IE11 :(
|
|
309
|
+
dstNodes.forEach(function (entity) {
|
|
310
|
+
return remap.set(entity.node, entity);
|
|
311
|
+
});
|
|
312
|
+
// remap to dstNodes
|
|
313
|
+
return srcNodes.map(function (node) {
|
|
314
|
+
return remap.get(node);
|
|
315
|
+
}).filter(Boolean);
|
|
316
|
+
};
|
|
317
|
+
|
|
318
|
+
var getFocusMerge = function getFocusMerge(topNode, lastNode) {
|
|
319
|
+
var activeElement = document && document.activeElement;
|
|
320
|
+
var entries = getAllAffectedNodes(topNode).filter(notAGuard);
|
|
321
|
+
|
|
322
|
+
var commonParent = getTopCommonParent(activeElement || topNode, topNode, entries);
|
|
323
|
+
|
|
324
|
+
var innerElements = getTabbableNodes(entries).filter(function (_ref4) {
|
|
325
|
+
var node = _ref4.node;
|
|
326
|
+
return notAGuard(node);
|
|
327
|
+
});
|
|
328
|
+
|
|
329
|
+
if (!innerElements[0]) {
|
|
330
|
+
innerElements = getAllTabbableNodes(entries).filter(function (_ref5) {
|
|
331
|
+
var node = _ref5.node;
|
|
332
|
+
return notAGuard(node);
|
|
333
|
+
});
|
|
334
|
+
if (!innerElements[0]) {
|
|
335
|
+
return undefined;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
var outerNodes = getTabbableNodes([commonParent]).map(function (_ref6) {
|
|
340
|
+
var node = _ref6.node;
|
|
341
|
+
return node;
|
|
342
|
+
});
|
|
343
|
+
var orderedInnerElements = reorderNodes(outerNodes, innerElements);
|
|
344
|
+
var innerNodes = orderedInnerElements.map(function (_ref7) {
|
|
345
|
+
var node = _ref7.node;
|
|
346
|
+
return node;
|
|
347
|
+
});
|
|
348
|
+
|
|
349
|
+
var newId = newFocus(innerNodes, outerNodes, activeElement, lastNode, innerNodes.filter(findAutoFocused(allParentAutofocusables(entries))));
|
|
350
|
+
|
|
351
|
+
if (newId === undefined) {
|
|
352
|
+
return newId;
|
|
353
|
+
}
|
|
354
|
+
return orderedInnerElements[newId];
|
|
355
|
+
};
|
|
356
|
+
|
|
357
|
+
var focusInFrame = function focusInFrame(frame) {
|
|
358
|
+
return frame === document.activeElement;
|
|
359
|
+
};
|
|
360
|
+
|
|
361
|
+
var focusInsideIframe = function focusInsideIframe(topNode) {
|
|
362
|
+
return !!arrayFind(toArray(topNode.querySelectorAll('iframe')), focusInFrame);
|
|
363
|
+
};
|
|
364
|
+
|
|
365
|
+
var focusInside = function focusInside(topNode) {
|
|
366
|
+
var activeElement = document && document.activeElement;
|
|
367
|
+
|
|
368
|
+
if (!activeElement || activeElement.dataset && activeElement.dataset.focusGuard) {
|
|
369
|
+
return false;
|
|
370
|
+
}
|
|
371
|
+
return getAllAffectedNodes(topNode).reduce(function (result, node) {
|
|
372
|
+
return result || node.contains(activeElement) || focusInsideIframe(node);
|
|
373
|
+
}, false);
|
|
374
|
+
};
|
|
375
|
+
|
|
376
|
+
var focusIsHidden = function focusIsHidden() {
|
|
377
|
+
return document && toArray(document.querySelectorAll('[' + FOCUS_ALLOW + ']')).some(function (node) {
|
|
378
|
+
return node.contains(document.activeElement);
|
|
379
|
+
});
|
|
380
|
+
};
|
|
381
|
+
|
|
382
|
+
var focusOn = function focusOn(target) {
|
|
383
|
+
target.focus();
|
|
384
|
+
if (target.contentWindow) {
|
|
385
|
+
target.contentWindow.focus();
|
|
386
|
+
}
|
|
387
|
+
};
|
|
388
|
+
|
|
389
|
+
var guardCount = 0;
|
|
390
|
+
var lockDisabled = false;
|
|
391
|
+
|
|
392
|
+
const setFocus = (function (topNode, lastNode) {
|
|
393
|
+
var focusable = getFocusMerge(topNode, lastNode);
|
|
394
|
+
|
|
395
|
+
if (lockDisabled) {
|
|
396
|
+
return;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
if (focusable) {
|
|
400
|
+
if (guardCount > 2) {
|
|
401
|
+
// eslint-disable-next-line no-console
|
|
402
|
+
console.error('FocusLock: focus-fighting detected. Only one focus management system could be active. ' + 'See https://github.com/theKashey/focus-lock/#focus-fighting');
|
|
403
|
+
lockDisabled = true;
|
|
404
|
+
setTimeout(function () {
|
|
405
|
+
lockDisabled = false;
|
|
406
|
+
}, 1);
|
|
407
|
+
return;
|
|
408
|
+
}
|
|
409
|
+
guardCount++;
|
|
410
|
+
focusOn(focusable.node);
|
|
411
|
+
guardCount--;
|
|
412
|
+
}
|
|
413
|
+
});
|
|
414
|
+
|
|
415
|
+
var lastActiveTrap = 0;
|
|
416
|
+
var lastActiveFocus = null;
|
|
417
|
+
|
|
418
|
+
var focusOnBody = function focusOnBody() {
|
|
419
|
+
return document && document.activeElement === document.body;
|
|
420
|
+
};
|
|
421
|
+
|
|
422
|
+
var isFreeFocus = function isFreeFocus() {
|
|
423
|
+
return focusOnBody() || focusIsHidden();
|
|
424
|
+
};
|
|
425
|
+
|
|
426
|
+
var activateTrap = function activateTrap() {
|
|
427
|
+
var result = false;
|
|
428
|
+
|
|
429
|
+
if (lastActiveTrap) {
|
|
430
|
+
var observed = lastActiveTrap;
|
|
431
|
+
|
|
432
|
+
if (!isFreeFocus()) {
|
|
433
|
+
if (observed && !focusInside(observed)) {
|
|
434
|
+
result = setFocus(observed, lastActiveFocus);
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
lastActiveFocus = document.activeElement;
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
return result;
|
|
442
|
+
};
|
|
443
|
+
|
|
444
|
+
var reducePropsToState = function reducePropsToState(propsList) {
|
|
445
|
+
return propsList.filter(function (node) {
|
|
446
|
+
return node;
|
|
447
|
+
}).slice(-1)[0];
|
|
448
|
+
};
|
|
449
|
+
|
|
450
|
+
var handleStateChangeOnClient = function handleStateChangeOnClient(trap) {
|
|
451
|
+
lastActiveTrap = trap;
|
|
452
|
+
|
|
453
|
+
if (trap) {
|
|
454
|
+
activateTrap();
|
|
455
|
+
}
|
|
456
|
+
};
|
|
457
|
+
|
|
458
|
+
var instances = [];
|
|
459
|
+
|
|
460
|
+
var emitChange = function emitChange(event) {
|
|
461
|
+
if (handleStateChangeOnClient(reducePropsToState(instances))) {
|
|
462
|
+
event && event.preventDefault();
|
|
463
|
+
return true;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
return false;
|
|
467
|
+
};
|
|
468
|
+
|
|
469
|
+
var attachHandler = function attachHandler() {
|
|
470
|
+
document.addEventListener('focusin', emitChange);
|
|
471
|
+
};
|
|
472
|
+
|
|
473
|
+
var detachHandler = function detachHandler() {
|
|
474
|
+
document.removeEventListener('focusin', emitChange);
|
|
475
|
+
};
|
|
476
|
+
|
|
477
|
+
var focusLock = {
|
|
478
|
+
on: function on(domNode) {
|
|
479
|
+
if (instances.length === 0) {
|
|
480
|
+
attachHandler();
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
if (instances.indexOf(domNode) < 0) {
|
|
484
|
+
instances.push(domNode);
|
|
485
|
+
emitChange();
|
|
486
|
+
}
|
|
487
|
+
},
|
|
488
|
+
off: function off(domNode) {
|
|
489
|
+
instances = instances.filter(function (node) {
|
|
490
|
+
return node !== domNode;
|
|
491
|
+
});
|
|
492
|
+
emitChange();
|
|
493
|
+
|
|
494
|
+
if (instances.length === 0) {
|
|
495
|
+
detachHandler();
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
};
|
|
499
|
+
|
|
500
|
+
/**
|
|
501
|
+
* tua-body-scroll-lock v1.2.1
|
|
502
|
+
* (c) 2021 Evinma, BuptStEve
|
|
503
|
+
* @license MIT
|
|
504
|
+
*/
|
|
505
|
+
|
|
506
|
+
var isServer = function isServer() {
|
|
507
|
+
return typeof window === 'undefined';
|
|
508
|
+
};
|
|
509
|
+
var detectOS = function detectOS(ua) {
|
|
510
|
+
ua = ua || navigator.userAgent;
|
|
511
|
+
var ipad = /(iPad).*OS\s([\d_]+)/.test(ua);
|
|
512
|
+
var iphone = !ipad && /(iPhone\sOS)\s([\d_]+)/.test(ua);
|
|
513
|
+
var android = /(Android);?[\s/]+([\d.]+)?/.test(ua);
|
|
514
|
+
var ios = iphone || ipad;
|
|
515
|
+
return {
|
|
516
|
+
ios: ios,
|
|
517
|
+
android: android
|
|
518
|
+
};
|
|
519
|
+
};
|
|
520
|
+
function getEventListenerOptions(options) {
|
|
521
|
+
/* istanbul ignore if */
|
|
522
|
+
if (isServer()) return false;
|
|
523
|
+
|
|
524
|
+
if (!options) {
|
|
525
|
+
throw new Error('options must be provided');
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
var isSupportOptions = false;
|
|
529
|
+
var listenerOptions = {
|
|
530
|
+
get passive() {
|
|
531
|
+
isSupportOptions = true;
|
|
532
|
+
return;
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
};
|
|
536
|
+
/* istanbul ignore next */
|
|
537
|
+
|
|
538
|
+
var noop = function noop() {};
|
|
539
|
+
|
|
540
|
+
var testEvent = '__TUA_BSL_TEST_PASSIVE__';
|
|
541
|
+
window.addEventListener(testEvent, noop, listenerOptions);
|
|
542
|
+
window.removeEventListener(testEvent, noop, listenerOptions);
|
|
543
|
+
var capture = options.capture;
|
|
544
|
+
/* istanbul ignore next */
|
|
545
|
+
|
|
546
|
+
return isSupportOptions ? options : typeof capture !== 'undefined' ? capture : false;
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
var lockedNum = 0;
|
|
550
|
+
var initialClientY = 0;
|
|
551
|
+
var initialClientX = 0;
|
|
552
|
+
var unLockCallback = null;
|
|
553
|
+
var documentListenerAdded = false;
|
|
554
|
+
var lockedElements = [];
|
|
555
|
+
var eventListenerOptions = getEventListenerOptions({
|
|
556
|
+
passive: false
|
|
557
|
+
});
|
|
558
|
+
var supportsNativeSmoothScroll = !isServer() && 'scrollBehavior' in document.documentElement.style;
|
|
559
|
+
|
|
560
|
+
var setOverflowHiddenPc = function setOverflowHiddenPc() {
|
|
561
|
+
var $body = document.body;
|
|
562
|
+
var bodyStyle = Object.assign({}, $body.style);
|
|
563
|
+
var scrollBarWidth = window.innerWidth - $body.clientWidth;
|
|
564
|
+
$body.style.overflow = 'hidden';
|
|
565
|
+
$body.style.boxSizing = 'border-box';
|
|
566
|
+
$body.style.paddingRight = "".concat(scrollBarWidth, "px");
|
|
567
|
+
return function () {
|
|
568
|
+
['overflow', 'boxSizing', 'paddingRight'].forEach(function (x) {
|
|
569
|
+
$body.style[x] = bodyStyle[x] || '';
|
|
570
|
+
});
|
|
571
|
+
};
|
|
572
|
+
};
|
|
573
|
+
|
|
574
|
+
var setOverflowHiddenMobile = function setOverflowHiddenMobile() {
|
|
575
|
+
var $html = document.documentElement;
|
|
576
|
+
var $body = document.body;
|
|
577
|
+
var scrollTop = $html.scrollTop || $body.scrollTop;
|
|
578
|
+
var htmlStyle = Object.assign({}, $html.style);
|
|
579
|
+
var bodyStyle = Object.assign({}, $body.style);
|
|
580
|
+
$html.style.height = '100%';
|
|
581
|
+
$html.style.overflow = 'hidden';
|
|
582
|
+
$body.style.top = "-".concat(scrollTop, "px");
|
|
583
|
+
$body.style.width = '100%';
|
|
584
|
+
$body.style.height = 'auto';
|
|
585
|
+
$body.style.position = 'fixed';
|
|
586
|
+
$body.style.overflow = 'hidden';
|
|
587
|
+
return function () {
|
|
588
|
+
$html.style.height = htmlStyle.height || '';
|
|
589
|
+
$html.style.overflow = htmlStyle.overflow || '';
|
|
590
|
+
['top', 'width', 'height', 'overflow', 'position'].forEach(function (x) {
|
|
591
|
+
$body.style[x] = bodyStyle[x] || '';
|
|
592
|
+
});
|
|
593
|
+
supportsNativeSmoothScroll ? window.scrollTo({
|
|
594
|
+
top: scrollTop,
|
|
595
|
+
// @ts-ignore
|
|
596
|
+
behavior: 'instant'
|
|
597
|
+
}) : window.scrollTo(0, scrollTop);
|
|
598
|
+
};
|
|
599
|
+
};
|
|
600
|
+
|
|
601
|
+
var preventDefault = function preventDefault(event) {
|
|
602
|
+
if (!event.cancelable) return;
|
|
603
|
+
event.preventDefault();
|
|
604
|
+
};
|
|
605
|
+
|
|
606
|
+
var handleScroll = function handleScroll(event, targetElement) {
|
|
607
|
+
if (targetElement) {
|
|
608
|
+
var scrollTop = targetElement.scrollTop,
|
|
609
|
+
scrollLeft = targetElement.scrollLeft,
|
|
610
|
+
scrollWidth = targetElement.scrollWidth,
|
|
611
|
+
scrollHeight = targetElement.scrollHeight,
|
|
612
|
+
clientWidth = targetElement.clientWidth,
|
|
613
|
+
clientHeight = targetElement.clientHeight;
|
|
614
|
+
var clientX = event.targetTouches[0].clientX - initialClientX;
|
|
615
|
+
var clientY = event.targetTouches[0].clientY - initialClientY;
|
|
616
|
+
var isVertical = Math.abs(clientY) > Math.abs(clientX);
|
|
617
|
+
var isOnTop = clientY > 0 && scrollTop === 0;
|
|
618
|
+
var isOnLeft = clientX > 0 && scrollLeft === 0;
|
|
619
|
+
var isOnRight = clientX < 0 && scrollLeft + clientWidth + 1 >= scrollWidth;
|
|
620
|
+
var isOnBottom = clientY < 0 && scrollTop + clientHeight + 1 >= scrollHeight;
|
|
621
|
+
|
|
622
|
+
if (isVertical && (isOnTop || isOnBottom) || !isVertical && (isOnLeft || isOnRight)) {
|
|
623
|
+
return preventDefault(event);
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
event.stopPropagation();
|
|
628
|
+
return true;
|
|
629
|
+
};
|
|
630
|
+
|
|
631
|
+
var lock = function lock(targetElement) {
|
|
632
|
+
if (isServer()) return;
|
|
633
|
+
|
|
634
|
+
if (detectOS().ios) {
|
|
635
|
+
// iOS
|
|
636
|
+
if (targetElement) {
|
|
637
|
+
var elementArray = Array.isArray(targetElement) ? targetElement : [targetElement];
|
|
638
|
+
elementArray.forEach(function (element) {
|
|
639
|
+
if (element && lockedElements.indexOf(element) === -1) {
|
|
640
|
+
element.ontouchstart = function (event) {
|
|
641
|
+
initialClientY = event.targetTouches[0].clientY;
|
|
642
|
+
initialClientX = event.targetTouches[0].clientX;
|
|
643
|
+
};
|
|
644
|
+
|
|
645
|
+
element.ontouchmove = function (event) {
|
|
646
|
+
if (event.targetTouches.length !== 1) return;
|
|
647
|
+
handleScroll(event, element);
|
|
648
|
+
};
|
|
649
|
+
|
|
650
|
+
lockedElements.push(element);
|
|
651
|
+
}
|
|
652
|
+
});
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
if (!documentListenerAdded) {
|
|
656
|
+
document.addEventListener('touchmove', preventDefault, eventListenerOptions);
|
|
657
|
+
documentListenerAdded = true;
|
|
658
|
+
}
|
|
659
|
+
} else if (lockedNum <= 0) {
|
|
660
|
+
unLockCallback = detectOS().android ? setOverflowHiddenMobile() : setOverflowHiddenPc();
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
lockedNum += 1;
|
|
664
|
+
};
|
|
665
|
+
|
|
666
|
+
var unlock = function unlock(targetElement) {
|
|
667
|
+
if (isServer()) return;
|
|
668
|
+
lockedNum -= 1;
|
|
669
|
+
if (lockedNum > 0) return;
|
|
670
|
+
|
|
671
|
+
if (!detectOS().ios && typeof unLockCallback === 'function') {
|
|
672
|
+
unLockCallback();
|
|
673
|
+
return;
|
|
674
|
+
} // iOS
|
|
675
|
+
|
|
676
|
+
|
|
677
|
+
if (targetElement) {
|
|
678
|
+
var elementArray = Array.isArray(targetElement) ? targetElement : [targetElement];
|
|
679
|
+
elementArray.forEach(function (element) {
|
|
680
|
+
var index = lockedElements.indexOf(element);
|
|
681
|
+
|
|
682
|
+
if (index !== -1) {
|
|
683
|
+
element.ontouchmove = null;
|
|
684
|
+
element.ontouchstart = null;
|
|
685
|
+
lockedElements.splice(index, 1);
|
|
686
|
+
}
|
|
687
|
+
});
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
if (documentListenerAdded) {
|
|
691
|
+
document.removeEventListener('touchmove', preventDefault, eventListenerOptions);
|
|
692
|
+
documentListenerAdded = false;
|
|
693
|
+
}
|
|
694
|
+
};
|
|
695
|
+
|
|
696
|
+
const wrapperStyles = `
|
|
697
|
+
position: fixed !important;
|
|
698
|
+
top: 0 !important;
|
|
699
|
+
right: 0 !important;
|
|
700
|
+
bottom: 0 !important;
|
|
701
|
+
left: 0 !important;
|
|
702
|
+
z-index: 9999999;
|
|
703
|
+
display: block !important;
|
|
704
|
+
width: 100vw;
|
|
705
|
+
height: 100%;
|
|
706
|
+
margin: 0 !important;
|
|
707
|
+
padding: 0 !important;
|
|
708
|
+
overflow: auto;
|
|
709
|
+
-webkit-overflow-scrolling: touch;
|
|
710
|
+
background: rgba(0, 0, 0, 0.6);
|
|
711
|
+
`;
|
|
712
|
+
const iframeStyles = `
|
|
713
|
+
position: absolute !important;
|
|
714
|
+
top: 0 !important;
|
|
715
|
+
right: 0 !important;
|
|
716
|
+
bottom: 0 !important;
|
|
717
|
+
left: 0 !important;
|
|
718
|
+
width: 100vw;
|
|
719
|
+
height: 100%;
|
|
720
|
+
margin: 0 !important;
|
|
721
|
+
padding: 0 !important;
|
|
722
|
+
background: none;
|
|
723
|
+
border: none
|
|
724
|
+
`;
|
|
725
|
+
const iframeEmbeddedStyles = `
|
|
726
|
+
position: static;
|
|
727
|
+
width: 100%;
|
|
728
|
+
height: 100%;
|
|
729
|
+
`;
|
|
730
|
+
|
|
731
|
+
const createEmbeddedIFrame = function (frame) {
|
|
732
|
+
let embeddedOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
733
|
+
let isVeriffIframeMobile = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
734
|
+
const {
|
|
735
|
+
rootElementID
|
|
736
|
+
} = embeddedOptions;
|
|
737
|
+
if (isVeriffIframeMobile) {
|
|
738
|
+
frame.style.cssText = iframeStyles;
|
|
739
|
+
const wrapper = document.createElement('div');
|
|
740
|
+
wrapper.style.cssText = wrapperStyles;
|
|
741
|
+
wrapper.appendChild(frame);
|
|
742
|
+
document.body.appendChild(wrapper);
|
|
743
|
+
focusLock.on(frame);
|
|
744
|
+
lock(frame);
|
|
745
|
+
} else {
|
|
746
|
+
if (!rootElementID) {
|
|
747
|
+
throw new Error('rootElementID must be specified in embedded mode');
|
|
748
|
+
}
|
|
749
|
+
if (!document.getElementById(rootElementID)) {
|
|
750
|
+
throw new Error('rootElementID must point to an existing DOM element');
|
|
751
|
+
}
|
|
752
|
+
frame.style.cssText = iframeEmbeddedStyles;
|
|
753
|
+
document.getElementById(rootElementID).appendChild(frame);
|
|
754
|
+
}
|
|
755
|
+
};
|
|
756
|
+
|
|
757
|
+
let IFRAME_MESSAGES = function (IFRAME_MESSAGES) {
|
|
758
|
+
IFRAME_MESSAGES["VERIFF_HANDSHAKE"] = "VERIFF_HANDSHAKE";
|
|
759
|
+
IFRAME_MESSAGES["VERIFF_RENDER"] = "VERIFF_RENDER";
|
|
760
|
+
IFRAME_MESSAGES["VERIFF_STARTED"] = "VERIFF_STARTED";
|
|
761
|
+
IFRAME_MESSAGES["VERIFF_SUBMITTED"] = "VERIFF_SUBMITTED";
|
|
762
|
+
IFRAME_MESSAGES["VERIFF_FINISHED"] = "VERIFF_FINISHED";
|
|
763
|
+
IFRAME_MESSAGES["VERIFF_CANCELED"] = "VERIFF_CANCELED";
|
|
764
|
+
IFRAME_MESSAGES["VERIFF_FORCE_RELOAD"] = "VERIFF_FORCE_RELOAD";
|
|
765
|
+
IFRAME_MESSAGES["VERIFF_RELOAD_REQUEST"] = "VERIFF_RELOAD_REQUEST";
|
|
766
|
+
return IFRAME_MESSAGES;
|
|
767
|
+
}({});
|
|
768
|
+
|
|
769
|
+
let MESSAGES = function (MESSAGES) {
|
|
770
|
+
MESSAGES["STARTED"] = "STARTED";
|
|
771
|
+
MESSAGES["SUBMITTED"] = "SUBMITTED";
|
|
772
|
+
MESSAGES["FINISHED"] = "FINISHED";
|
|
773
|
+
MESSAGES["CANCELED"] = "CANCELED";
|
|
774
|
+
MESSAGES["RELOAD_REQUEST"] = "RELOAD";
|
|
775
|
+
return MESSAGES;
|
|
776
|
+
}({});
|
|
777
|
+
|
|
778
|
+
const IFRAME_ID = 'veriffFrame';
|
|
779
|
+
function handleHandshakeEvent(frame, payload) {
|
|
780
|
+
frame.contentWindow?.postMessage({
|
|
781
|
+
name: IFRAME_MESSAGES.VERIFF_RENDER,
|
|
782
|
+
payload
|
|
783
|
+
}, '*');
|
|
784
|
+
}
|
|
785
|
+
function checkIfIsVeriffIframeMobile(embedded) {
|
|
786
|
+
if (embedded) {
|
|
787
|
+
try {
|
|
788
|
+
const mediaQuery = matchMedia('(max-width: 767px), (hover: none)');
|
|
789
|
+
return mediaQuery.matches;
|
|
790
|
+
} catch (e) {
|
|
791
|
+
console.error('Error while checking if iframe is mobile', e);
|
|
792
|
+
return false;
|
|
793
|
+
}
|
|
794
|
+
}
|
|
795
|
+
return false;
|
|
796
|
+
}
|
|
797
|
+
function appendParamToUrl(url, name, value) {
|
|
798
|
+
if (value) {
|
|
799
|
+
const newUrl = new URL(url);
|
|
800
|
+
const params = newUrl.searchParams;
|
|
801
|
+
params.set(name, value);
|
|
802
|
+
newUrl.search = params.toString();
|
|
803
|
+
return newUrl.toString();
|
|
804
|
+
}
|
|
805
|
+
return url;
|
|
806
|
+
}
|
|
807
|
+
function createWrapper() {
|
|
808
|
+
const wrapper = document.createElement('div');
|
|
809
|
+
wrapper.style.cssText = wrapperStyles;
|
|
810
|
+
return wrapper;
|
|
811
|
+
}
|
|
812
|
+
function createIframe(url, embedded, embeddedOptions, isVeriffIframeMobile) {
|
|
813
|
+
const frame = document.createElement('iframe');
|
|
814
|
+
frame.src = url;
|
|
815
|
+
frame.allow = 'autoplay; camera; microphone; fullscreen; accelerometer; magnetometer; gyroscope; picture-in-picture;';
|
|
816
|
+
frame.id = IFRAME_ID;
|
|
817
|
+
if (embedded) {
|
|
818
|
+
createEmbeddedIFrame(frame, embeddedOptions, isVeriffIframeMobile);
|
|
819
|
+
} else {
|
|
820
|
+
frame.style.cssText = iframeStyles;
|
|
821
|
+
const wrapper = createWrapper();
|
|
822
|
+
wrapper.appendChild(frame);
|
|
823
|
+
document.body.appendChild(wrapper);
|
|
824
|
+
focusLock.on(frame);
|
|
825
|
+
lock(frame);
|
|
826
|
+
}
|
|
827
|
+
return frame;
|
|
828
|
+
}
|
|
829
|
+
function createVeriffFrame(_ref) {
|
|
830
|
+
let {
|
|
831
|
+
url,
|
|
832
|
+
lang,
|
|
833
|
+
onEvent = () => {
|
|
834
|
+
return;
|
|
835
|
+
},
|
|
836
|
+
embedded = false,
|
|
837
|
+
embeddedOptions,
|
|
838
|
+
onReload
|
|
839
|
+
} = _ref;
|
|
840
|
+
if (!url) {
|
|
841
|
+
throw new Error('URL is not provided. Please provide a valid Veriff session url.');
|
|
842
|
+
}
|
|
843
|
+
const isVeriffIframeMobile = checkIfIsVeriffIframeMobile(embedded);
|
|
844
|
+
function closeIframe() {
|
|
845
|
+
const frame = document.getElementById(IFRAME_ID);
|
|
846
|
+
if (frame && frame.parentNode) {
|
|
847
|
+
focusLock.off(frame);
|
|
848
|
+
unlock(frame);
|
|
849
|
+
let wrapper = frame.parentNode.parentNode;
|
|
850
|
+
let child = frame.parentNode;
|
|
851
|
+
if (embedded && !isVeriffIframeMobile) {
|
|
852
|
+
wrapper = frame.parentNode;
|
|
853
|
+
child = frame;
|
|
854
|
+
}
|
|
855
|
+
if (wrapper) wrapper.removeChild(child);
|
|
856
|
+
} else {
|
|
857
|
+
unlock();
|
|
858
|
+
}
|
|
859
|
+
window.removeEventListener('message', handleMessage);
|
|
860
|
+
}
|
|
861
|
+
function handleMessage(event) {
|
|
862
|
+
const frame = document.getElementById(IFRAME_ID);
|
|
863
|
+
const version = "2.3.1";
|
|
864
|
+
if (event.data === IFRAME_MESSAGES.VERIFF_HANDSHAKE) {
|
|
865
|
+
handleHandshakeEvent(frame, {
|
|
866
|
+
version,
|
|
867
|
+
isReloadHandled: typeof onReload === 'function',
|
|
868
|
+
isVeriffIframeMobile,
|
|
869
|
+
embeddedConfigured: embedded,
|
|
870
|
+
embedded: isVeriffIframeMobile ? false : embedded
|
|
871
|
+
});
|
|
872
|
+
}
|
|
873
|
+
if (event.data === IFRAME_MESSAGES.VERIFF_STARTED) {
|
|
874
|
+
onEvent(MESSAGES.STARTED);
|
|
875
|
+
}
|
|
876
|
+
if (event.data === IFRAME_MESSAGES.VERIFF_CANCELED) {
|
|
877
|
+
closeIframe();
|
|
878
|
+
onEvent(MESSAGES.CANCELED);
|
|
879
|
+
}
|
|
880
|
+
if (event.data === IFRAME_MESSAGES.VERIFF_SUBMITTED) {
|
|
881
|
+
onEvent(MESSAGES.SUBMITTED);
|
|
882
|
+
}
|
|
883
|
+
if (event.data === IFRAME_MESSAGES.VERIFF_FINISHED) {
|
|
884
|
+
closeIframe();
|
|
885
|
+
onEvent(MESSAGES.FINISHED);
|
|
886
|
+
}
|
|
887
|
+
if (event.data === IFRAME_MESSAGES.VERIFF_FORCE_RELOAD) {
|
|
888
|
+
window.location.reload();
|
|
889
|
+
}
|
|
890
|
+
if (event.data === IFRAME_MESSAGES.VERIFF_RELOAD_REQUEST) {
|
|
891
|
+
if (typeof onReload === 'function') {
|
|
892
|
+
onReload();
|
|
893
|
+
}
|
|
894
|
+
onEvent(MESSAGES.RELOAD_REQUEST);
|
|
895
|
+
}
|
|
896
|
+
}
|
|
897
|
+
const newUrl = lang && lang.length > 0 ? appendParamToUrl(url, 'lang', lang) : url;
|
|
898
|
+
createIframe(newUrl, embedded, embeddedOptions, isVeriffIframeMobile);
|
|
899
|
+
window.addEventListener('message', handleMessage);
|
|
900
|
+
return {
|
|
901
|
+
close: closeIframe
|
|
902
|
+
};
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
const CREATE_IMPACT_VERIFICATION_SESSION = dist.gql `
|
|
906
|
+
mutation createImpactVerificationSession($user: UserIdInput!) {
|
|
907
|
+
createImpactPublisherIdentityVerificationSession(user: $user) {
|
|
908
|
+
sessionUrl
|
|
909
|
+
}
|
|
910
|
+
}
|
|
911
|
+
`;
|
|
912
|
+
const REFRESH_USER_STATUS = dist.gql `
|
|
913
|
+
mutation refreshImpactPublisherFinanceStatus($user: UserIdInput!) {
|
|
914
|
+
refreshImpactPublisherFinanceStatus(user: $user) {
|
|
915
|
+
id
|
|
916
|
+
}
|
|
917
|
+
}
|
|
918
|
+
`;
|
|
919
|
+
const VERIFF_COMPLETE_EVENT_KEY = "sqm:veriff-updated";
|
|
920
|
+
function useVeriffApp() {
|
|
921
|
+
const { id, accountId } = K();
|
|
922
|
+
const [createImpactVerificationSessionMutation, { loading, errors }] = xe(CREATE_IMPACT_VERIFICATION_SESSION);
|
|
923
|
+
const [refreshImpactPublisherFinanceStatus, { loading: refreshLoading, errors: refreshErrors },] = xe(REFRESH_USER_STATUS);
|
|
924
|
+
const refresh = async () => {
|
|
925
|
+
try {
|
|
926
|
+
const res = await refreshImpactPublisherFinanceStatus({
|
|
927
|
+
user: { id, accountId },
|
|
928
|
+
});
|
|
929
|
+
if (!res || res.message)
|
|
930
|
+
throw new Error();
|
|
931
|
+
window.dispatchEvent(new Event(VERIFF_COMPLETE_EVENT_KEY));
|
|
932
|
+
}
|
|
933
|
+
catch (e) {
|
|
934
|
+
console.error("Failed to initialise Veriff:", e);
|
|
935
|
+
}
|
|
936
|
+
};
|
|
937
|
+
const render = async () => {
|
|
938
|
+
try {
|
|
939
|
+
const res = await createImpactVerificationSessionMutation({
|
|
940
|
+
user: { id, accountId },
|
|
941
|
+
});
|
|
942
|
+
if (!res || res.message)
|
|
943
|
+
throw new Error();
|
|
944
|
+
const sessionUrl = res.createImpactPublisherIdentityVerificationSession.sessionUrl;
|
|
945
|
+
createVeriffFrame({
|
|
946
|
+
url: sessionUrl,
|
|
947
|
+
onEvent: (msg) => {
|
|
948
|
+
switch (msg) {
|
|
949
|
+
case MESSAGES.FINISHED:
|
|
950
|
+
case MESSAGES.CANCELED:
|
|
951
|
+
refresh();
|
|
952
|
+
}
|
|
953
|
+
},
|
|
954
|
+
});
|
|
955
|
+
}
|
|
956
|
+
catch (e) {
|
|
957
|
+
console.error("Failed to initialise Veriff:", e);
|
|
958
|
+
}
|
|
959
|
+
};
|
|
960
|
+
return {
|
|
961
|
+
render,
|
|
962
|
+
loading: loading || refreshLoading,
|
|
963
|
+
errors: errors || refreshErrors,
|
|
964
|
+
};
|
|
965
|
+
}
|
|
966
|
+
|
|
967
|
+
const GET_USER_STATUS = dist.gql `
|
|
968
|
+
query getUserStatus {
|
|
969
|
+
user: viewer {
|
|
970
|
+
... on User {
|
|
971
|
+
id
|
|
972
|
+
impactConnection {
|
|
973
|
+
connected
|
|
974
|
+
publisher {
|
|
975
|
+
id
|
|
976
|
+
payoutsAccount {
|
|
977
|
+
hold
|
|
978
|
+
holdReasons
|
|
979
|
+
}
|
|
980
|
+
}
|
|
981
|
+
}
|
|
982
|
+
}
|
|
983
|
+
}
|
|
984
|
+
}
|
|
985
|
+
`;
|
|
986
|
+
function getStatus(data) {
|
|
987
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
988
|
+
const account = (_b = (_a = data.user.impactConnection) === null || _a === void 0 ? void 0 : _a.publisher) === null || _b === void 0 ? void 0 : _b.payoutsAccount;
|
|
989
|
+
if (!((_d = (_c = data.user) === null || _c === void 0 ? void 0 : _c.impactConnection) === null || _d === void 0 ? void 0 : _d.connected) || !account)
|
|
990
|
+
return "INFORMATION_REQUIRED";
|
|
991
|
+
if ((_e = account.holdReasons) === null || _e === void 0 ? void 0 : _e.includes("IDV_CHECK_REQUIRED"))
|
|
992
|
+
return "VERIFICATION:REQUIRED";
|
|
993
|
+
if ((_f = account.holdReasons) === null || _f === void 0 ? void 0 : _f.includes("IDV_CHECK_REQUIRED_INTERNAL"))
|
|
994
|
+
return "VERIFICATION:INTERNAL";
|
|
995
|
+
if ((_g = account.holdReasons) === null || _g === void 0 ? void 0 : _g.includes("IDV_CHECK_REVIEW_INTERNAL"))
|
|
996
|
+
return "VERIFICATION:REVIEW";
|
|
997
|
+
if ((_h = account.holdReasons) === null || _h === void 0 ? void 0 : _h.includes("IDV_CHECK_FAILED_INTERNAL"))
|
|
998
|
+
return "VERIFICATION:FAILED";
|
|
999
|
+
if (account.hold)
|
|
1000
|
+
return "HOLD";
|
|
1001
|
+
return "DONE";
|
|
1002
|
+
}
|
|
1003
|
+
function usePayoutStatus(props) {
|
|
1004
|
+
const { type } = getEnvironmentSDK();
|
|
1005
|
+
const { loading, data, errors, refetch } = En(GET_USER_STATUS, {});
|
|
1006
|
+
const { render, loading: veriffLoading, errors: veriffErrors, } = useVeriffApp();
|
|
1007
|
+
const [status, setStatus] = useState(undefined);
|
|
1008
|
+
useEffect(() => {
|
|
1009
|
+
if (!data)
|
|
1010
|
+
return;
|
|
1011
|
+
const s = getStatus(data);
|
|
1012
|
+
setStatus(s);
|
|
1013
|
+
}, [data]);
|
|
1014
|
+
useEffect(() => {
|
|
1015
|
+
const cb = () => refetch();
|
|
1016
|
+
window.addEventListener(TAX_FORM_UPDATED_EVENT_KEY, cb);
|
|
1017
|
+
window.addEventListener(VERIFF_COMPLETE_EVENT_KEY, cb);
|
|
1018
|
+
return () => {
|
|
1019
|
+
window.removeEventListener(TAX_FORM_UPDATED_EVENT_KEY, cb);
|
|
1020
|
+
window.removeEventListener(VERIFF_COMPLETE_EVENT_KEY, cb);
|
|
1021
|
+
};
|
|
1022
|
+
}, []);
|
|
1023
|
+
return {
|
|
1024
|
+
states: {
|
|
1025
|
+
loading,
|
|
1026
|
+
veriffLoading,
|
|
1027
|
+
status,
|
|
1028
|
+
error: !!errors,
|
|
1029
|
+
},
|
|
1030
|
+
data: { type },
|
|
1031
|
+
text: props.getTextProps(),
|
|
1032
|
+
callbacks: {
|
|
1033
|
+
onTermsClick: () => window.open(props.termsUrl, "_blank").focus(),
|
|
1034
|
+
onClick: render,
|
|
1035
|
+
},
|
|
1036
|
+
};
|
|
1037
|
+
}
|
|
1038
|
+
|
|
1039
|
+
export { TAX_FORM_UPDATED_EVENT_KEY as T, VERIFF_COMPLETE_EVENT_KEY as V, useVeriffApp as a, getStatus as g, usePayoutStatus as u };
|