@gataca/qr 3.0.10 → 4.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/{esm/qr-code-styling-0eeb38d5.js → cjs/gat-icon-check-c88a30ed.js} +15 -1
- package/dist/cjs/gataca-autoqr.cjs.entry.js +9 -9
- package/dist/cjs/gataca-qr_3.cjs.entry.js +620 -0
- package/dist/cjs/gataca-qrws.cjs.entry.js +39 -47
- package/dist/cjs/gataca-ssibuttonws.cjs.entry.js +61 -0
- package/dist/cjs/gatacaqr.cjs.js +1 -1
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{utils-ef28b844.js → utils-b4e62bc0.js} +1 -1
- package/dist/collection/components/gataca-autoqr/gataca-autoqr.js +13 -13
- package/dist/collection/components/gataca-qr/components/qr/QR.js +3 -3
- package/dist/collection/components/gataca-qr/components/readQR/ReadQR.js +7 -5
- package/dist/collection/components/gataca-qr/components/readQR/components/AnimatedLoader.js +1 -1
- package/dist/collection/components/gataca-qr/components/retryButton/RetryButton.js +8 -8
- package/dist/collection/components/gataca-qr/components/success/Success.js +4 -4
- package/dist/collection/components/gataca-qr/gataca-qr.js +64 -55
- package/dist/collection/components/gataca-qrdisplay/gataca-qrdisplay.js +33 -11
- package/dist/collection/components/gataca-qrws/components/qr/QR.js +2 -2
- package/dist/collection/components/gataca-qrws/components/readQR/ReadQR.js +4 -4
- package/dist/collection/components/gataca-qrws/components/readQR/components/AnimatedLoader.js +1 -1
- package/dist/collection/components/gataca-qrws/components/retryButton/RetryButton.js +8 -8
- package/dist/collection/components/gataca-qrws/components/success/Success.js +4 -4
- package/dist/collection/components/gataca-qrws/gataca-qrws.js +49 -56
- package/dist/collection/components/gataca-ssibutton/gataca-ssibutton.js +224 -54
- package/dist/collection/components/gataca-ssibuttonws/gataca-ssibuttonws.js +12 -12
- package/dist/collection/index.js +2 -2
- package/dist/collection/utils/index.js +1 -1
- package/dist/collection/utils/utils.js +1 -1
- package/dist/components/{gat-icon-alert.js → gat-icon-check.js} +4 -4
- package/dist/components/gataca-autoqr.js +9 -9
- package/dist/components/gataca-qr2.js +56 -63
- package/dist/components/gataca-qrdisplay2.js +11 -6
- package/dist/components/gataca-qrws2.js +35 -42
- package/dist/components/gataca-ssibutton2.js +114 -34
- package/dist/components/gataca-ssibuttonws2.js +6 -6
- package/dist/components/index.js +1 -1
- package/dist/{cjs/qr-code-styling-412bbc7a.js → esm/gat-icon-check-c188cd29.js} +8 -2
- package/dist/esm/gataca-autoqr.entry.js +9 -9
- package/dist/esm/gataca-qr_3.entry.js +614 -0
- package/dist/esm/gataca-qrws.entry.js +36 -44
- package/dist/esm/gataca-ssibuttonws.entry.js +57 -0
- package/dist/esm/gatacaqr.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{utils-63e7a33b.js → utils-21ffcc1e.js} +1 -1
- package/dist/gatacaqr/gatacaqr.esm.js +1 -1
- package/dist/gatacaqr/index.esm.js +1 -1
- package/dist/gatacaqr/p-5be73956.js +1 -0
- package/dist/gatacaqr/p-948e7d94.entry.js +1 -0
- package/dist/gatacaqr/p-e94e9be8.entry.js +1 -0
- package/dist/gatacaqr/p-fb41fad9.entry.js +1 -0
- package/dist/types/components/gataca-autoqr/gataca-autoqr.d.ts +7 -7
- package/dist/types/components/gataca-qr/components/qr/QR.d.ts +4 -2
- package/dist/types/components/gataca-qr/components/readQR/ReadQR.d.ts +3 -1
- package/dist/types/components/gataca-qr/components/readQR/components/AnimatedLoader.d.ts +1 -1
- package/dist/types/components/gataca-qr/components/retryButton/RetryButton.d.ts +1 -1
- package/dist/types/components/gataca-qr/components/success/Success.d.ts +1 -1
- package/dist/types/components/gataca-qr/gataca-qr.d.ts +13 -4
- package/dist/types/components/gataca-qrdisplay/gataca-qrdisplay.d.ts +6 -1
- package/dist/types/components/gataca-qrws/components/qr/QR.d.ts +2 -2
- package/dist/types/components/gataca-qrws/components/readQR/ReadQR.d.ts +1 -1
- package/dist/types/components/gataca-qrws/components/readQR/components/AnimatedLoader.d.ts +1 -1
- package/dist/types/components/gataca-qrws/components/retryButton/RetryButton.d.ts +1 -1
- package/dist/types/components/gataca-qrws/components/success/Success.d.ts +1 -1
- package/dist/types/components/gataca-qrws/gataca-qrws.d.ts +4 -4
- package/dist/types/components/gataca-ssibutton/gataca-ssibutton.d.ts +38 -5
- package/dist/types/components/gataca-ssibuttonws/gataca-ssibuttonws.d.ts +3 -3
- package/dist/types/components.d.ts +78 -36
- package/dist/types/index.d.ts +2 -2
- package/dist/types/utils/index.d.ts +1 -1
- package/package.json +30 -7
- package/dist/cjs/gat-icon-alert-0ad19b26.js +0 -14
- package/dist/cjs/gataca-qr_2.cjs.entry.js +0 -295
- package/dist/cjs/gataca-ssibutton_2.cjs.entry.js +0 -317
- package/dist/esm/gat-icon-alert-7b06ef3a.js +0 -9
- package/dist/esm/gataca-qr_2.entry.js +0 -290
- package/dist/esm/gataca-ssibutton_2.entry.js +0 -312
- package/dist/gatacaqr/p-0be4566d.js +0 -1
- package/dist/gatacaqr/p-3500ae66.entry.js +0 -1
- package/dist/gatacaqr/p-68272823.entry.js +0 -1
- package/dist/gatacaqr/p-92a2e6f0.entry.js +0 -1
- package/dist/gatacaqr/p-ea783014.js +0 -1
- /package/dist/gatacaqr/{p-2cd7b062.js → p-bce7e590.js} +0 -0
|
@@ -1,17 +1,38 @@
|
|
|
1
|
-
import { h
|
|
2
|
-
import
|
|
3
|
-
import { RESULT_STATUS } from
|
|
4
|
-
const PHONE_ICON =
|
|
1
|
+
import { h } from '@stencil/core';
|
|
2
|
+
import '../gataca-qrdisplay/gataca-qrdisplay';
|
|
3
|
+
import { RESULT_STATUS } from '../../utils/utils';
|
|
4
|
+
const PHONE_ICON = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAYAAACN1PRVAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHvSURBVHgB3ZZPTttAFMbfe3YjL7qYLopcpZXSG7Q3CDfIsqrSJpyg5QQtJ2h7glgUdVs4AeEE5AYEQSDAgtnw357Hm0hAQDaeIRFCfFKyeKPxzzPzvc+DUKCZN80GEv1ABgWOQgSdGbOwv7u0nDueV4zjTzUIKhuAZna4vdQFR828azbI0K/TI/qodaLvjlP+tLDGDCs+IKv9Lbsi7kcv0w9541Q0EREPYcoieEQ9KiyECRXHzbpBUOcnYTfPFOOaaGVx9WsLiDrSIp0iU0wFNgIx/AQyc9I/OmOjy+Y8aBvHQcDUYebewc6/Xtk8J5htcg5efEPGhk0JtqkyBjo7DuZcnuO2sqCyKv8rUDmfTS9IBURqBAL+I6CkzBjOMOs22TLY21n8fl17KzXR3uDvb/CQk0GEdfvN07QvpnAOaGfYaRT25JzU6+rnG2tTpcWAy+Cp0m3U/URLms8HWfg/rn6RFaGSs9KQkZMpvGBWNs2Vandt46ac6YNBuc0fDLMaOU5DFybQ8039p/KJ4bq4rwPewtqoM/1gsCm/NfBXvWjgHhhuDAeLyd3qVSifHQULeZkou9EqemLhmUmav8qrZ4GEMGA7ivzjKvfeqGptFV2YdWPMPHHq0cCh3DdpVdLl/XCY9J1gVvbCiWa6N+JLocPFjCsx9cAAAAAASUVORK5CYII=';
|
|
5
5
|
//Default values
|
|
6
6
|
const DEFAULT_SESSION_TIMEOUT = 300; //5mins as in connect
|
|
7
7
|
const DEFAULT_POLLING_FREQ = 3;
|
|
8
8
|
export class GatacaSSIButton {
|
|
9
9
|
constructor() {
|
|
10
|
-
this.
|
|
11
|
-
|
|
10
|
+
this.getRequestFromUri = async (authRequest) => {
|
|
11
|
+
const requrl = new URL(authRequest);
|
|
12
|
+
const requri = requrl.searchParams.get('request_uri');
|
|
13
|
+
if (requri) {
|
|
14
|
+
const response = await fetch(requri, {
|
|
15
|
+
method: 'GET',
|
|
16
|
+
headers: {
|
|
17
|
+
'Content-Type': 'application/json'
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
const jwt = await response.json();
|
|
21
|
+
const parts = jwt.split('.');
|
|
22
|
+
const base64 = parts[1].replace(/-/g, '+').replace(/_/g, '/');
|
|
23
|
+
const decoded = window.atob(base64);
|
|
24
|
+
let parsed = JSON.parse(decoded);
|
|
25
|
+
parsed.response_mode = 'dc_api';
|
|
26
|
+
return parsed;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
this.buttonText = 'Easy login';
|
|
30
|
+
this.buttonDCAPIText = 'Login with Device Credentials';
|
|
31
|
+
this.qrType = 'svg';
|
|
12
32
|
this.autostart = true;
|
|
13
33
|
this.checkStatus = undefined;
|
|
14
34
|
this.createSession = undefined;
|
|
35
|
+
this.fillSession = undefined;
|
|
15
36
|
this.successCallback = undefined;
|
|
16
37
|
this.errorCallback = undefined;
|
|
17
38
|
this.handleCheckAppLoading = undefined;
|
|
@@ -21,32 +42,49 @@ export class GatacaSSIButton {
|
|
|
21
42
|
this.sessionTimeout = undefined;
|
|
22
43
|
this.pollingFrequency = undefined;
|
|
23
44
|
this.autorefresh = false;
|
|
24
|
-
this.v =
|
|
25
|
-
this.qrModalTitle =
|
|
26
|
-
this.modalTitleColor =
|
|
27
|
-
this.qrModalDescription =
|
|
45
|
+
this.v = '3';
|
|
46
|
+
this.qrModalTitle = 'Quick Access';
|
|
47
|
+
this.modalTitleColor = '#4745B7';
|
|
48
|
+
this.qrModalDescription = 'Sign up or sign in by scanning the QR Code with the Gataca Wallet';
|
|
28
49
|
this.hideBrandTitle = false;
|
|
29
50
|
this.dynamicLink = true;
|
|
30
51
|
this.logoSize = 0;
|
|
31
52
|
this.logoSrc = undefined;
|
|
32
|
-
this.qrCodeExpiredLabel =
|
|
33
|
-
this.credentialsNotValidatedLabel =
|
|
34
|
-
this.clickInsideBoxLabel =
|
|
35
|
-
this.refreshQrLabel =
|
|
36
|
-
this.scanQrLabel =
|
|
37
|
-
this.userNotScanInTimeErrorLabel =
|
|
53
|
+
this.qrCodeExpiredLabel = 'QR Code expired';
|
|
54
|
+
this.credentialsNotValidatedLabel = 'User credentials not validated';
|
|
55
|
+
this.clickInsideBoxLabel = 'Click inside the box to';
|
|
56
|
+
this.refreshQrLabel = 'Refresh QR Code';
|
|
57
|
+
this.scanQrLabel = 'Scan QR Code';
|
|
58
|
+
this.userNotScanInTimeErrorLabel = 'User did not scan the QR in the allowed time';
|
|
38
59
|
this.credsNotValidatedErrorLabel = "Provided user credentials couldn't be validated";
|
|
39
|
-
this.failedLoginErrorLabel =
|
|
40
|
-
this.successLoginLabel =
|
|
41
|
-
this.byBrandLabel =
|
|
42
|
-
this.waitingStartSessionLabel =
|
|
60
|
+
this.failedLoginErrorLabel = 'No successful login';
|
|
61
|
+
this.successLoginLabel = 'Successful Connection!';
|
|
62
|
+
this.byBrandLabel = 'by Gataca';
|
|
63
|
+
this.waitingStartSessionLabel = 'waiting to start a session';
|
|
64
|
+
this.enableDcApi = false;
|
|
43
65
|
this.hideQrModalDescription = false;
|
|
66
|
+
this.qrStyle = undefined;
|
|
44
67
|
this.open = false;
|
|
45
68
|
this.sessionId = undefined;
|
|
46
69
|
this.authenticationRequest = undefined;
|
|
47
70
|
this.sessionData = undefined;
|
|
48
71
|
this.result = RESULT_STATUS.NOT_STARTED;
|
|
49
|
-
this.qr = (h("gataca-qr", { ref: (el) => (this.qrElement = el), checkStatus: this.checkStatus, createSession: this.createSession, successCallback: this.successCallback, errorCallback: this.errorCallback, qrRole: this.qrRole, qrType: this.qrType, callbackServer: this.callbackServer, sessionTimeout: this.sessionTimeout, pollingFrequency: this.pollingFrequency, autostart: this.autostart, autorefresh: this.autorefresh, v: this.v, qrModalTitle: this.qrModalTitle, qrModalDescription: this.qrModalDescription, hideBrandTitle: this.hideBrandTitle, dynamicLink: this.dynamicLink, logoSize: this.logoSize, logoSrc: this.logoSrc, modalTitleColor: this.modalTitleColor, qrCodeExpiredLabel: this.qrCodeExpiredLabel, credentialsNotValidatedLabel: this.credentialsNotValidatedLabel, clickInsideBoxLabel: this.clickInsideBoxLabel, refreshQrLabel: this.refreshQrLabel, scanQrLabel: this.scanQrLabel, userNotScanInTimeErrorLabel: this.userNotScanInTimeErrorLabel, credsNotValidatedErrorLabel: this.credsNotValidatedErrorLabel, failedLoginErrorLabel: this.failedLoginErrorLabel, successLoginLabel: this.successLoginLabel, byBrandLabel: this.byBrandLabel, waitingStartSessionLabel: this.waitingStartSessionLabel, hideQrModalDescription: this.hideQrModalDescription }));
|
|
72
|
+
this.qr = (h("gataca-qr", { ref: (el) => (this.qrElement = el), checkStatus: this.checkStatus, createSession: this.createSession, successCallback: this.successCallback, errorCallback: this.errorCallback, qrRole: this.qrRole, qrType: this.qrType, callbackServer: this.callbackServer, sessionTimeout: this.sessionTimeout, pollingFrequency: this.pollingFrequency, autostart: this.autostart, autorefresh: this.autorefresh, v: this.v, qrModalTitle: this.qrModalTitle, qrModalDescription: this.qrModalDescription, hideBrandTitle: this.hideBrandTitle, dynamicLink: this.dynamicLink, logoSize: this.logoSize, logoSrc: this.logoSrc, modalTitleColor: this.modalTitleColor, qrCodeExpiredLabel: this.qrCodeExpiredLabel, credentialsNotValidatedLabel: this.credentialsNotValidatedLabel, clickInsideBoxLabel: this.clickInsideBoxLabel, refreshQrLabel: this.refreshQrLabel, scanQrLabel: this.scanQrLabel, userNotScanInTimeErrorLabel: this.userNotScanInTimeErrorLabel, credsNotValidatedErrorLabel: this.credsNotValidatedErrorLabel, failedLoginErrorLabel: this.failedLoginErrorLabel, successLoginLabel: this.successLoginLabel, byBrandLabel: this.byBrandLabel, waitingStartSessionLabel: this.waitingStartSessionLabel, hideQrModalDescription: this.hideQrModalDescription, qrStyle: this.qrStyle }));
|
|
73
|
+
}
|
|
74
|
+
supportsDCAPI() {
|
|
75
|
+
// let mobile = checkMobile();
|
|
76
|
+
// if (!mobile) return false;
|
|
77
|
+
if (!this.enableDcApi) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
//@ts-ignore
|
|
81
|
+
if (typeof window.DigitalCredential === 'undefined')
|
|
82
|
+
return false;
|
|
83
|
+
const protocols = ['org-iso-mdoc', 'openid4vp', 'openid4vci'];
|
|
84
|
+
//@ts-ignore
|
|
85
|
+
const supportedProtocols = protocols.filter(window.DigitalCredential.userAgentAllowsProtocol);
|
|
86
|
+
console.log(supportedProtocols, protocols);
|
|
87
|
+
return true;
|
|
50
88
|
}
|
|
51
89
|
/**
|
|
52
90
|
* Retrieve manually the session data on a successful login
|
|
@@ -84,9 +122,7 @@ export class GatacaSSIButton {
|
|
|
84
122
|
}
|
|
85
123
|
else {
|
|
86
124
|
if (err !== RESULT_STATUS.NOT_STARTED) {
|
|
87
|
-
let error = expired
|
|
88
|
-
? new Error(this.userNotScanInTimeErrorLabel)
|
|
89
|
-
: new Error(this.credsNotValidatedErrorLabel);
|
|
125
|
+
let error = expired ? new Error(this.userNotScanInTimeErrorLabel) : new Error(this.credsNotValidatedErrorLabel);
|
|
90
126
|
this.result = err;
|
|
91
127
|
this.gatacaLoginFailed.emit(error);
|
|
92
128
|
this.errorCallback(error);
|
|
@@ -111,8 +147,7 @@ export class GatacaSSIButton {
|
|
|
111
147
|
return this.qr;
|
|
112
148
|
}
|
|
113
149
|
async poll() {
|
|
114
|
-
let endTime = new Date().getTime() +
|
|
115
|
-
(this.sessionTimeout || DEFAULT_SESSION_TIMEOUT) * 1000;
|
|
150
|
+
let endTime = new Date().getTime() + (this.sessionTimeout || DEFAULT_SESSION_TIMEOUT) * 1000;
|
|
116
151
|
let interval = (this.pollingFrequency || DEFAULT_POLLING_FREQ) * 1000;
|
|
117
152
|
let checkFunc = async (component) => {
|
|
118
153
|
if (component.result === RESULT_STATUS.NOT_STARTED) {
|
|
@@ -169,10 +204,10 @@ export class GatacaSSIButton {
|
|
|
169
204
|
cleanup();
|
|
170
205
|
}
|
|
171
206
|
};
|
|
172
|
-
document.addEventListener(
|
|
207
|
+
document.addEventListener('visibilitychange', handleVisibilityChange);
|
|
173
208
|
function cleanup() {
|
|
174
209
|
clearTimeout(timeout);
|
|
175
|
-
document.removeEventListener(
|
|
210
|
+
document.removeEventListener('visibilitychange', handleVisibilityChange);
|
|
176
211
|
}
|
|
177
212
|
}
|
|
178
213
|
renderDesktopButton() {
|
|
@@ -194,7 +229,7 @@ export class GatacaSSIButton {
|
|
|
194
229
|
return authenticationRequest;
|
|
195
230
|
}
|
|
196
231
|
renderMobileButton(isAndroid, isIos) {
|
|
197
|
-
if (this.autostart) {
|
|
232
|
+
if (this.autostart && !this.supportsDCAPI()) {
|
|
198
233
|
this.startMobilePolling();
|
|
199
234
|
}
|
|
200
235
|
let loading = false;
|
|
@@ -206,8 +241,8 @@ export class GatacaSSIButton {
|
|
|
206
241
|
};
|
|
207
242
|
const executeRedirection = async () => {
|
|
208
243
|
handleLoading(true);
|
|
209
|
-
const androidStoreLink =
|
|
210
|
-
const iosStoreLink =
|
|
244
|
+
const androidStoreLink = 'https://play.google.com/store/apps/details?id=com.gataca.identity';
|
|
245
|
+
const iosStoreLink = 'https://apps.apple.com/us/app/gataca/id1498607616';
|
|
211
246
|
try {
|
|
212
247
|
const appScheme = await this.getAuthRequest();
|
|
213
248
|
this.isAppInstalled(appScheme, (installed) => {
|
|
@@ -229,9 +264,51 @@ export class GatacaSSIButton {
|
|
|
229
264
|
}
|
|
230
265
|
};
|
|
231
266
|
return (h("div", { class: "gatacaButtonWrapper" }, h("button", { class: "gatacaButton", onClick: () => {
|
|
267
|
+
this.gatacaButtonPushed.emit();
|
|
232
268
|
executeRedirection();
|
|
233
269
|
}, disabled: loading }, h("img", { src: PHONE_ICON, class: "buttonImg", alt: this.buttonText }), h("span", null, this.buttonText))));
|
|
234
270
|
}
|
|
271
|
+
renderDCAPIButton(isAndroid, isIos) {
|
|
272
|
+
let loading = false;
|
|
273
|
+
console.log('Maybe act different', isAndroid, isIos);
|
|
274
|
+
const handleLoading = (isLoading) => {
|
|
275
|
+
loading = isLoading;
|
|
276
|
+
if (this.handleCheckAppLoading) {
|
|
277
|
+
this.handleCheckAppLoading(isLoading);
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
const executeDCAPICall = async () => {
|
|
281
|
+
handleLoading(true);
|
|
282
|
+
try {
|
|
283
|
+
const authRequest = await this.getAuthRequest();
|
|
284
|
+
let request = await this.getRequestFromUri(authRequest);
|
|
285
|
+
let credentialResponse = await navigator.credentials.get({
|
|
286
|
+
//@ts-ignore
|
|
287
|
+
digital: {
|
|
288
|
+
requests: [
|
|
289
|
+
{
|
|
290
|
+
protocol: 'openid4vp-v1-unsigned',
|
|
291
|
+
data: request
|
|
292
|
+
}
|
|
293
|
+
]
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
if (credentialResponse.constructor.name == 'DigitalCredential') {
|
|
297
|
+
console.log('Digital Credential - Response Data: ' + credentialResponse);
|
|
298
|
+
}
|
|
299
|
+
//@ts-ignore
|
|
300
|
+
await this.fillSession(request, credentialResponse === null || credentialResponse === void 0 ? void 0 : credentialResponse.data);
|
|
301
|
+
}
|
|
302
|
+
catch (error) {
|
|
303
|
+
this.stop();
|
|
304
|
+
handleLoading(false);
|
|
305
|
+
}
|
|
306
|
+
};
|
|
307
|
+
return (h("div", { class: "gatacaButtonWrapper" }, h("button", { class: "gatacaButton", onClick: () => {
|
|
308
|
+
this.gatacaButtonPushed.emit();
|
|
309
|
+
executeDCAPICall();
|
|
310
|
+
}, disabled: loading }, h("img", { src: PHONE_ICON, class: "buttonImg", alt: this.buttonDCAPIText }), h("span", null, this.buttonDCAPIText))));
|
|
311
|
+
}
|
|
235
312
|
render() {
|
|
236
313
|
const userAgent =
|
|
237
314
|
// @ts-ignore
|
|
@@ -239,12 +316,10 @@ export class GatacaSSIButton {
|
|
|
239
316
|
const isAndroid = /android/i.test(userAgent);
|
|
240
317
|
const isIos =
|
|
241
318
|
// @ts-ignore
|
|
242
|
-
(/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) ||
|
|
243
|
-
(navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1);
|
|
319
|
+
(/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);
|
|
244
320
|
const isMobile = isAndroid || isIos;
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
: this.renderDesktopButton(), this.open && (!isMobile || this.v === "3") && this.renderModal()));
|
|
321
|
+
const displayDCApi = this.supportsDCAPI();
|
|
322
|
+
return (h("div", null, h("div", { class: "buttonContainer" }, isMobile && this.v === '3' ? this.renderMobileButton(isAndroid, isIos) : this.renderDesktopButton(), this.open && (!isMobile || this.v === '3') && this.renderModal()), displayDCApi /** && isMobile */ && h("div", { class: "buttonContainer" }, this.renderDCAPIButton(isAndroid, isIos))));
|
|
248
323
|
}
|
|
249
324
|
static get is() { return "gataca-ssibutton"; }
|
|
250
325
|
static get encapsulation() { return "shadow"; }
|
|
@@ -276,7 +351,25 @@ export class GatacaSSIButton {
|
|
|
276
351
|
},
|
|
277
352
|
"attribute": "button-text",
|
|
278
353
|
"reflect": false,
|
|
279
|
-
"defaultValue": "
|
|
354
|
+
"defaultValue": "'Easy login'"
|
|
355
|
+
},
|
|
356
|
+
"buttonDCAPIText": {
|
|
357
|
+
"type": "string",
|
|
358
|
+
"mutable": false,
|
|
359
|
+
"complexType": {
|
|
360
|
+
"original": "string",
|
|
361
|
+
"resolved": "string",
|
|
362
|
+
"references": {}
|
|
363
|
+
},
|
|
364
|
+
"required": false,
|
|
365
|
+
"optional": true,
|
|
366
|
+
"docs": {
|
|
367
|
+
"tags": [],
|
|
368
|
+
"text": "_[Optional]_\nIn the case of enabling DCAPI button, allows to configure the text displayed"
|
|
369
|
+
},
|
|
370
|
+
"attribute": "button-d-c-a-p-i-text",
|
|
371
|
+
"reflect": false,
|
|
372
|
+
"defaultValue": "'Login with Device Credentials'"
|
|
280
373
|
},
|
|
281
374
|
"qrType": {
|
|
282
375
|
"type": "string",
|
|
@@ -299,7 +392,7 @@ export class GatacaSSIButton {
|
|
|
299
392
|
},
|
|
300
393
|
"attribute": "qr-type",
|
|
301
394
|
"reflect": false,
|
|
302
|
-
"defaultValue": "
|
|
395
|
+
"defaultValue": "'svg'"
|
|
303
396
|
},
|
|
304
397
|
"autostart": {
|
|
305
398
|
"type": "boolean",
|
|
@@ -323,7 +416,7 @@ export class GatacaSSIButton {
|
|
|
323
416
|
"type": "unknown",
|
|
324
417
|
"mutable": false,
|
|
325
418
|
"complexType": {
|
|
326
|
-
"original": "(
|
|
419
|
+
"original": "(id?: string) => Promise<{result: RESULT_STATUS; data?: any}>",
|
|
327
420
|
"resolved": "(id?: string) => Promise<{ result: RESULT_STATUS; data?: any; }>",
|
|
328
421
|
"references": {
|
|
329
422
|
"Promise": {
|
|
@@ -347,7 +440,7 @@ export class GatacaSSIButton {
|
|
|
347
440
|
"type": "unknown",
|
|
348
441
|
"mutable": false,
|
|
349
442
|
"complexType": {
|
|
350
|
-
"original": "() => Promise<{\n
|
|
443
|
+
"original": "() => Promise<{\n sessionId: string;\n authenticationRequest?: string;\n }>",
|
|
351
444
|
"resolved": "() => Promise<{ sessionId: string; authenticationRequest?: string; }>",
|
|
352
445
|
"references": {
|
|
353
446
|
"Promise": {
|
|
@@ -363,6 +456,30 @@ export class GatacaSSIButton {
|
|
|
363
456
|
},
|
|
364
457
|
"defaultValue": "undefined"
|
|
365
458
|
},
|
|
459
|
+
"fillSession": {
|
|
460
|
+
"type": "unknown",
|
|
461
|
+
"mutable": false,
|
|
462
|
+
"complexType": {
|
|
463
|
+
"original": "(request: any, sessionData?: any) => Promise<{result: RESULT_STATUS; data?: any}>",
|
|
464
|
+
"resolved": "(request: any, sessionData?: any) => Promise<{ result: RESULT_STATUS; data?: any; }>",
|
|
465
|
+
"references": {
|
|
466
|
+
"Promise": {
|
|
467
|
+
"location": "global"
|
|
468
|
+
},
|
|
469
|
+
"RESULT_STATUS": {
|
|
470
|
+
"location": "import",
|
|
471
|
+
"path": "../../utils/utils"
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
},
|
|
475
|
+
"required": false,
|
|
476
|
+
"optional": true,
|
|
477
|
+
"docs": {
|
|
478
|
+
"tags": [],
|
|
479
|
+
"text": "***Mandatory if DC API***\nSends the API response"
|
|
480
|
+
},
|
|
481
|
+
"defaultValue": "undefined"
|
|
482
|
+
},
|
|
366
483
|
"successCallback": {
|
|
367
484
|
"type": "unknown",
|
|
368
485
|
"mutable": false,
|
|
@@ -535,7 +652,7 @@ export class GatacaSSIButton {
|
|
|
535
652
|
},
|
|
536
653
|
"attribute": "v",
|
|
537
654
|
"reflect": false,
|
|
538
|
-
"defaultValue": "
|
|
655
|
+
"defaultValue": "'3'"
|
|
539
656
|
},
|
|
540
657
|
"qrModalTitle": {
|
|
541
658
|
"type": "string",
|
|
@@ -553,7 +670,7 @@ export class GatacaSSIButton {
|
|
|
553
670
|
},
|
|
554
671
|
"attribute": "qr-modal-title",
|
|
555
672
|
"reflect": false,
|
|
556
|
-
"defaultValue": "
|
|
673
|
+
"defaultValue": "'Quick Access'"
|
|
557
674
|
},
|
|
558
675
|
"modalTitleColor": {
|
|
559
676
|
"type": "string",
|
|
@@ -571,7 +688,7 @@ export class GatacaSSIButton {
|
|
|
571
688
|
},
|
|
572
689
|
"attribute": "modal-title-color",
|
|
573
690
|
"reflect": false,
|
|
574
|
-
"defaultValue": "
|
|
691
|
+
"defaultValue": "'#4745B7'"
|
|
575
692
|
},
|
|
576
693
|
"qrModalDescription": {
|
|
577
694
|
"type": "string",
|
|
@@ -589,7 +706,7 @@ export class GatacaSSIButton {
|
|
|
589
706
|
},
|
|
590
707
|
"attribute": "qr-modal-description",
|
|
591
708
|
"reflect": false,
|
|
592
|
-
"defaultValue": "
|
|
709
|
+
"defaultValue": "'Sign up or sign in by scanning the QR Code with the Gataca Wallet'"
|
|
593
710
|
},
|
|
594
711
|
"hideBrandTitle": {
|
|
595
712
|
"type": "boolean",
|
|
@@ -678,7 +795,7 @@ export class GatacaSSIButton {
|
|
|
678
795
|
},
|
|
679
796
|
"attribute": "qr-code-expired-label",
|
|
680
797
|
"reflect": false,
|
|
681
|
-
"defaultValue": "
|
|
798
|
+
"defaultValue": "'QR Code expired'"
|
|
682
799
|
},
|
|
683
800
|
"credentialsNotValidatedLabel": {
|
|
684
801
|
"type": "string",
|
|
@@ -696,7 +813,7 @@ export class GatacaSSIButton {
|
|
|
696
813
|
},
|
|
697
814
|
"attribute": "credentials-not-validated-label",
|
|
698
815
|
"reflect": false,
|
|
699
|
-
"defaultValue": "
|
|
816
|
+
"defaultValue": "'User credentials not validated'"
|
|
700
817
|
},
|
|
701
818
|
"clickInsideBoxLabel": {
|
|
702
819
|
"type": "string",
|
|
@@ -714,7 +831,7 @@ export class GatacaSSIButton {
|
|
|
714
831
|
},
|
|
715
832
|
"attribute": "click-inside-box-label",
|
|
716
833
|
"reflect": false,
|
|
717
|
-
"defaultValue": "
|
|
834
|
+
"defaultValue": "'Click inside the box to'"
|
|
718
835
|
},
|
|
719
836
|
"refreshQrLabel": {
|
|
720
837
|
"type": "string",
|
|
@@ -732,7 +849,7 @@ export class GatacaSSIButton {
|
|
|
732
849
|
},
|
|
733
850
|
"attribute": "refresh-qr-label",
|
|
734
851
|
"reflect": false,
|
|
735
|
-
"defaultValue": "
|
|
852
|
+
"defaultValue": "'Refresh QR Code'"
|
|
736
853
|
},
|
|
737
854
|
"scanQrLabel": {
|
|
738
855
|
"type": "string",
|
|
@@ -750,7 +867,7 @@ export class GatacaSSIButton {
|
|
|
750
867
|
},
|
|
751
868
|
"attribute": "scan-qr-label",
|
|
752
869
|
"reflect": false,
|
|
753
|
-
"defaultValue": "
|
|
870
|
+
"defaultValue": "'Scan QR Code'"
|
|
754
871
|
},
|
|
755
872
|
"userNotScanInTimeErrorLabel": {
|
|
756
873
|
"type": "string",
|
|
@@ -768,7 +885,7 @@ export class GatacaSSIButton {
|
|
|
768
885
|
},
|
|
769
886
|
"attribute": "user-not-scan-in-time-error-label",
|
|
770
887
|
"reflect": false,
|
|
771
|
-
"defaultValue": "
|
|
888
|
+
"defaultValue": "'User did not scan the QR in the allowed time'"
|
|
772
889
|
},
|
|
773
890
|
"credsNotValidatedErrorLabel": {
|
|
774
891
|
"type": "string",
|
|
@@ -804,7 +921,7 @@ export class GatacaSSIButton {
|
|
|
804
921
|
},
|
|
805
922
|
"attribute": "failed-login-error-label",
|
|
806
923
|
"reflect": false,
|
|
807
|
-
"defaultValue": "
|
|
924
|
+
"defaultValue": "'No successful login'"
|
|
808
925
|
},
|
|
809
926
|
"successLoginLabel": {
|
|
810
927
|
"type": "string",
|
|
@@ -822,7 +939,7 @@ export class GatacaSSIButton {
|
|
|
822
939
|
},
|
|
823
940
|
"attribute": "success-login-label",
|
|
824
941
|
"reflect": false,
|
|
825
|
-
"defaultValue": "
|
|
942
|
+
"defaultValue": "'Successful Connection!'"
|
|
826
943
|
},
|
|
827
944
|
"byBrandLabel": {
|
|
828
945
|
"type": "string",
|
|
@@ -840,7 +957,7 @@ export class GatacaSSIButton {
|
|
|
840
957
|
},
|
|
841
958
|
"attribute": "by-brand-label",
|
|
842
959
|
"reflect": false,
|
|
843
|
-
"defaultValue": "
|
|
960
|
+
"defaultValue": "'by Gataca'"
|
|
844
961
|
},
|
|
845
962
|
"waitingStartSessionLabel": {
|
|
846
963
|
"type": "string",
|
|
@@ -858,7 +975,25 @@ export class GatacaSSIButton {
|
|
|
858
975
|
},
|
|
859
976
|
"attribute": "waiting-start-session-label",
|
|
860
977
|
"reflect": false,
|
|
861
|
-
"defaultValue": "
|
|
978
|
+
"defaultValue": "'waiting to start a session'"
|
|
979
|
+
},
|
|
980
|
+
"enableDcApi": {
|
|
981
|
+
"type": "boolean",
|
|
982
|
+
"mutable": false,
|
|
983
|
+
"complexType": {
|
|
984
|
+
"original": "boolean",
|
|
985
|
+
"resolved": "boolean",
|
|
986
|
+
"references": {}
|
|
987
|
+
},
|
|
988
|
+
"required": false,
|
|
989
|
+
"optional": true,
|
|
990
|
+
"docs": {
|
|
991
|
+
"tags": [],
|
|
992
|
+
"text": "_[Optional]_\nString to show \"waiting start session\" label"
|
|
993
|
+
},
|
|
994
|
+
"attribute": "enable-dc-api",
|
|
995
|
+
"reflect": false,
|
|
996
|
+
"defaultValue": "false"
|
|
862
997
|
},
|
|
863
998
|
"hideQrModalDescription": {
|
|
864
999
|
"type": "boolean",
|
|
@@ -877,6 +1012,26 @@ export class GatacaSSIButton {
|
|
|
877
1012
|
"attribute": "hide-qr-modal-description",
|
|
878
1013
|
"reflect": false,
|
|
879
1014
|
"defaultValue": "false"
|
|
1015
|
+
},
|
|
1016
|
+
"qrStyle": {
|
|
1017
|
+
"type": "unknown",
|
|
1018
|
+
"mutable": false,
|
|
1019
|
+
"complexType": {
|
|
1020
|
+
"original": "qrStyle",
|
|
1021
|
+
"resolved": "{ color: string; bgColor: string; }",
|
|
1022
|
+
"references": {
|
|
1023
|
+
"qrStyle": {
|
|
1024
|
+
"location": "import",
|
|
1025
|
+
"path": "../gataca-qr/gataca-qr"
|
|
1026
|
+
}
|
|
1027
|
+
}
|
|
1028
|
+
},
|
|
1029
|
+
"required": false,
|
|
1030
|
+
"optional": true,
|
|
1031
|
+
"docs": {
|
|
1032
|
+
"tags": [],
|
|
1033
|
+
"text": "_[Optional]_\nAdjust the color styles of the QR"
|
|
1034
|
+
}
|
|
880
1035
|
}
|
|
881
1036
|
};
|
|
882
1037
|
}
|
|
@@ -920,6 +1075,21 @@ export class GatacaSSIButton {
|
|
|
920
1075
|
"resolved": "any",
|
|
921
1076
|
"references": {}
|
|
922
1077
|
}
|
|
1078
|
+
}, {
|
|
1079
|
+
"method": "gatacaButtonPushed",
|
|
1080
|
+
"name": "gatacaButtonPushed",
|
|
1081
|
+
"bubbles": true,
|
|
1082
|
+
"cancelable": true,
|
|
1083
|
+
"composed": true,
|
|
1084
|
+
"docs": {
|
|
1085
|
+
"tags": [],
|
|
1086
|
+
"text": "GatacaLoginCompleted event, triggered with session data upon login success"
|
|
1087
|
+
},
|
|
1088
|
+
"complexType": {
|
|
1089
|
+
"original": "any",
|
|
1090
|
+
"resolved": "any",
|
|
1091
|
+
"references": {}
|
|
1092
|
+
}
|
|
923
1093
|
}];
|
|
924
1094
|
}
|
|
925
1095
|
static get methods() {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { h
|
|
2
|
-
const PHONE_ICON =
|
|
1
|
+
import { h } from '@stencil/core';
|
|
2
|
+
const PHONE_ICON = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAYAAACN1PRVAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHvSURBVHgB3ZZPTttAFMbfe3YjL7qYLopcpZXSG7Q3CDfIsqrSJpyg5QQtJ2h7glgUdVs4AeEE5AYEQSDAgtnw357Hm0hAQDaeIRFCfFKyeKPxzzPzvc+DUKCZN80GEv1ABgWOQgSdGbOwv7u0nDueV4zjTzUIKhuAZna4vdQFR828azbI0K/TI/qodaLvjlP+tLDGDCs+IKv9Lbsi7kcv0w9541Q0EREPYcoieEQ9KiyECRXHzbpBUOcnYTfPFOOaaGVx9WsLiDrSIp0iU0wFNgIx/AQyc9I/OmOjy+Y8aBvHQcDUYebewc6/Xtk8J5htcg5efEPGhk0JtqkyBjo7DuZcnuO2sqCyKv8rUDmfTS9IBURqBAL+I6CkzBjOMOs22TLY21n8fl17KzXR3uDvb/CQk0GEdfvN07QvpnAOaGfYaRT25JzU6+rnG2tTpcWAy+Cp0m3U/URLms8HWfg/rn6RFaGSs9KQkZMpvGBWNs2Vandt46ac6YNBuc0fDLMaOU5DFybQ8039p/KJ4bq4rwPewtqoM/1gsCm/NfBXvWjgHhhuDAeLyd3qVSifHQULeZkou9EqemLhmUmav8qrZ4GEMGA7ivzjKvfeqGptFV2YdWPMPHHq0cCh3DdpVdLl/XCY9J1gVvbCiWa6N+JLocPFjCsx9cAAAAAASUVORK5CYII=';
|
|
3
3
|
export class GatacaSSIButtonWS {
|
|
4
4
|
constructor() {
|
|
5
|
-
this.buttonText =
|
|
5
|
+
this.buttonText = 'Easy login';
|
|
6
6
|
this.successCallback = undefined;
|
|
7
7
|
this.errorCallback = undefined;
|
|
8
|
-
this.qrType =
|
|
8
|
+
this.qrType = 'svg';
|
|
9
9
|
this.qrRole = undefined;
|
|
10
10
|
this.callbackServer = undefined;
|
|
11
11
|
this.socketEndpoint = undefined;
|
|
@@ -14,9 +14,9 @@ export class GatacaSSIButtonWS {
|
|
|
14
14
|
this.wsOnMessage = undefined;
|
|
15
15
|
this.autostart = true;
|
|
16
16
|
this.autorefresh = false;
|
|
17
|
-
this.v =
|
|
18
|
-
this.qrModalTitle =
|
|
19
|
-
this.qrModalDescription =
|
|
17
|
+
this.v = '3';
|
|
18
|
+
this.qrModalTitle = 'Quick Access';
|
|
19
|
+
this.qrModalDescription = 'Sign up or sign in by scanning the QR Code with the Gataca Wallet';
|
|
20
20
|
this.hideBrandTitle = false;
|
|
21
21
|
this.dynamicLink = true;
|
|
22
22
|
this.open = false;
|
|
@@ -75,7 +75,7 @@ export class GatacaSSIButtonWS {
|
|
|
75
75
|
},
|
|
76
76
|
"attribute": "button-text",
|
|
77
77
|
"reflect": false,
|
|
78
|
-
"defaultValue": "
|
|
78
|
+
"defaultValue": "'Easy login'"
|
|
79
79
|
},
|
|
80
80
|
"successCallback": {
|
|
81
81
|
"type": "unknown",
|
|
@@ -134,7 +134,7 @@ export class GatacaSSIButtonWS {
|
|
|
134
134
|
},
|
|
135
135
|
"attribute": "qr-type",
|
|
136
136
|
"reflect": false,
|
|
137
|
-
"defaultValue": "
|
|
137
|
+
"defaultValue": "'svg'"
|
|
138
138
|
},
|
|
139
139
|
"qrRole": {
|
|
140
140
|
"type": "string",
|
|
@@ -297,7 +297,7 @@ export class GatacaSSIButtonWS {
|
|
|
297
297
|
},
|
|
298
298
|
"attribute": "v",
|
|
299
299
|
"reflect": false,
|
|
300
|
-
"defaultValue": "
|
|
300
|
+
"defaultValue": "'3'"
|
|
301
301
|
},
|
|
302
302
|
"qrModalTitle": {
|
|
303
303
|
"type": "string",
|
|
@@ -315,7 +315,7 @@ export class GatacaSSIButtonWS {
|
|
|
315
315
|
},
|
|
316
316
|
"attribute": "qr-modal-title",
|
|
317
317
|
"reflect": false,
|
|
318
|
-
"defaultValue": "
|
|
318
|
+
"defaultValue": "'Quick Access'"
|
|
319
319
|
},
|
|
320
320
|
"qrModalDescription": {
|
|
321
321
|
"type": "string",
|
|
@@ -333,7 +333,7 @@ export class GatacaSSIButtonWS {
|
|
|
333
333
|
},
|
|
334
334
|
"attribute": "qr-modal-description",
|
|
335
335
|
"reflect": false,
|
|
336
|
-
"defaultValue": "
|
|
336
|
+
"defaultValue": "'Sign up or sign in by scanning the QR Code with the Gataca Wallet'"
|
|
337
337
|
},
|
|
338
338
|
"hideBrandTitle": {
|
|
339
339
|
"type": "boolean",
|
package/dist/collection/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
1
|
+
export * from './components';
|
|
2
|
+
export * from './utils';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from
|
|
1
|
+
export * from './utils';
|
|
@@ -9,7 +9,7 @@ export function checkMobile() {
|
|
|
9
9
|
}
|
|
10
10
|
export function base64UrlEncode(str) {
|
|
11
11
|
let b64 = btoa(str);
|
|
12
|
-
return b64.replace(/\+/g,
|
|
12
|
+
return b64.replace(/\+/g, '-').replace(/\//g, '_').replace(/\=+$/, '');
|
|
13
13
|
}
|
|
14
14
|
export var RESULT_STATUS;
|
|
15
15
|
(function (RESULT_STATUS) {
|
|
@@ -9,7 +9,7 @@ function checkMobile() {
|
|
|
9
9
|
}
|
|
10
10
|
function base64UrlEncode(str) {
|
|
11
11
|
let b64 = btoa(str);
|
|
12
|
-
return b64.replace(/\+/g,
|
|
12
|
+
return b64.replace(/\+/g, '-').replace(/\//g, '_').replace(/\=+$/, '');
|
|
13
13
|
}
|
|
14
14
|
var RESULT_STATUS;
|
|
15
15
|
(function (RESULT_STATUS) {
|
|
@@ -21,10 +21,10 @@ var RESULT_STATUS;
|
|
|
21
21
|
RESULT_STATUS[RESULT_STATUS["READ"] = 5] = "READ";
|
|
22
22
|
})(RESULT_STATUS || (RESULT_STATUS = {}));
|
|
23
23
|
|
|
24
|
-
const gatIconCheckSvg = 'data:image/svg+xml;base64,Cjxzdmcgd2lkdGg9IjUyIiBoZWlnaHQ9IjUzIiB2aWV3Qm94PSIwIDAgNTIgNTMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjI2IiBjeT0iMjYuNjcxOSIgcj0iMjYiIGZpbGw9IiMzRDlBNTAiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zOC41MiAxNy43NDk1QzM5LjU4MDUgMTguODA5OSAzOS41ODA1IDIwLjUyOTMgMzguNTIgMjEuNTg5OEwyMy41ODQ2IDM2LjUyNTFDMjIuNTI0MiAzNy41ODU2IDIwLjgwNDggMzcuNTg1NiAxOS43NDQzIDM2LjUyNTFMMTIuOTU1NSAyOS43MzYzQzExLjg5NSAyOC42NzU5IDExLjg5NSAyNi45NTY1IDEyLjk1NTUgMjUuODk2QzE0LjAxNiAyNC44MzU1IDE1LjczNTQgMjQuODM1NSAxNi43OTU4IDI1Ljg5NkwyMS42NjQ1IDMwLjc2NDdMMzQuNjc5NyAxNy43NDk1QzM1Ljc0MDIgMTYuNjg5IDM3LjQ1OTUgMTYuNjg5IDM4LjUyIDE3Ljc0OTVaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K';
|
|
25
|
-
|
|
26
24
|
const gatIconRefreshSvg = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIzIDRWMTBIMTciIHN0cm9rZT0iIzhCOEI4QiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTIwLjQ4OTkgMTVDMTkuODM5OSAxNi44Mzk5IDE4LjYwOTQgMTguNDE4NyAxNi45ODQgMTkuNDk4NUMxNS4zNTg2IDIwLjU3ODMgMTMuNDI2MyAyMS4xMDA2IDExLjQ3ODMgMjAuOTg2NkM5LjUzMDI2IDIwLjg3MjYgNy42NzIwMyAyMC4xMjg2IDYuMTgzNjMgMTguODY2N0M0LjY5NTI0IDE3LjYwNDcgMy42NTczIDE1Ljg5MzIgMy4yMjYyNSAxMy45OTAxQzIuNzk1MTkgMTIuMDg2OSAyLjk5NDM2IDEwLjA5NTIgMy43OTM3NCA4LjMxNTA4QzQuNTkzMTMgNi41MzQ5NiA1Ljk0OTQyIDUuMDYyODggNy42NTgyMyA0LjEyMDY1QzkuMzY3MDUgMy4xNzg0MyAxMS4zMzU4IDIuODE3MTEgMTMuMjY3OCAzLjA5MTE2QzE1LjE5OTkgMy4zNjUyIDE2Ljk5MDUgNC4yNTk3NSAxOC4zNjk5IDUuNjQwMDFMMjIuOTk5OSAxMCIgc3Ryb2tlPSIjOEI4QjhCIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K';
|
|
27
25
|
|
|
28
26
|
const gatIconAlertSvg = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEwLjI5MDggMy44NjAyTDEuODIwNzUgMTguMDAwMkMxLjY0NjEyIDE4LjMwMjYgMS41NTM3MiAxOC42NDU1IDEuNTUyNzQgMTguOTk0N0MxLjU1MTc2IDE5LjM0MzkgMS42NDIyNCAxOS42ODczIDEuODE1MTggMTkuOTkwN0MxLjk4ODEyIDIwLjI5NDEgMi4yMzc0OCAyMC41NDcgMi41Mzg0NiAyMC43MjQxQzIuODM5NDQgMjAuOTAxMiAzLjE4MTU1IDIwLjk5NjQgMy41MzA3NSAyMS4wMDAySDIwLjQ3MDhDMjAuODIgMjAuOTk2NCAyMS4xNjIxIDIwLjkwMTIgMjEuNDYzIDIwLjcyNDFDMjEuNzY0IDIwLjU0NyAyMi4wMTM0IDIwLjI5NDEgMjIuMTg2MyAxOS45OTA3QzIyLjM1OTMgMTkuNjg3MyAyMi40NDk3IDE5LjM0MzkgMjIuNDQ4OCAxOC45OTQ3QzIyLjQ0NzggMTguNjQ1NSAyMi4zNTU0IDE4LjMwMjYgMjIuMTgwOCAxOC4wMDAyTDEzLjcxMDggMy44NjAyQzEzLjUzMjUgMy41NjYzMSAxMy4yODE1IDMuMzIzMzIgMTIuOTgxOSAzLjE1NDY5QzEyLjY4MjQgMi45ODYwNSAxMi4zNDQ1IDIuODk3NDYgMTIuMDAwOCAyLjg5NzQ2QzExLjY1NyAyLjg5NzQ2IDExLjMxOTEgMi45ODYwNSAxMS4wMTk2IDMuMTU0NjlDMTAuNzIgMy4zMjMzMiAxMC40NjkgMy41NjYzMSAxMC4yOTA4IDMuODYwMlYzLjg2MDJaIiBzdHJva2U9IiNDRDJCMzEiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMiA5VjEzIiBzdHJva2U9IiNDRDJCMzEiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMiAxN0gxMi4wMSIgc3Ryb2tlPSIjQ0QyQjMxIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K';
|
|
29
27
|
|
|
30
|
-
|
|
28
|
+
const gatIconCheckSvg = 'data:image/svg+xml;base64,Cjxzdmcgd2lkdGg9IjUyIiBoZWlnaHQ9IjUzIiB2aWV3Qm94PSIwIDAgNTIgNTMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjI2IiBjeT0iMjYuNjcxOSIgcj0iMjYiIGZpbGw9IiMzRDlBNTAiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zOC41MiAxNy43NDk1QzM5LjU4MDUgMTguODA5OSAzOS41ODA1IDIwLjUyOTMgMzguNTIgMjEuNTg5OEwyMy41ODQ2IDM2LjUyNTFDMjIuNTI0MiAzNy41ODU2IDIwLjgwNDggMzcuNTg1NiAxOS43NDQzIDM2LjUyNTFMMTIuOTU1NSAyOS43MzYzQzExLjg5NSAyOC42NzU5IDExLjg5NSAyNi45NTY1IDEyLjk1NTUgMjUuODk2QzE0LjAxNiAyNC44MzU1IDE1LjczNTQgMjQuODM1NSAxNi43OTU4IDI1Ljg5NkwyMS42NjQ1IDMwLjc2NDdMMzQuNjc5NyAxNy43NDk1QzM1Ljc0MDIgMTYuNjg5IDM3LjQ1OTUgMTYuNjg5IDM4LjUyIDE3Ljc0OTVaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K';
|
|
29
|
+
|
|
30
|
+
export { RESULT_STATUS as R, gatIconAlertSvg as a, base64UrlEncode as b, checkMobile as c, gatIconCheckSvg as d, gatIconRefreshSvg as g };
|