@coinflowlabs/angular 0.1.2 → 0.1.4
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/README.md +5 -16
- package/esm2022/lib/coinflow-iframe.component.mjs +4 -4
- package/esm2022/lib/coinflow-purchase-history.component.mjs +4 -4
- package/esm2022/lib/coinflow-purchase-protection.component.mjs +4 -4
- package/esm2022/lib/coinflow-purchase.component.mjs +4 -4
- package/esm2022/lib/coinflow-withdraw-history.component.mjs +4 -4
- package/esm2022/lib/coinflow-withdraw.component.mjs +4 -4
- package/esm2022/lib/common/CoinflowTypes.mjs +8 -1
- package/esm2022/lib/common/CoinflowUtils.mjs +56 -13
- package/esm2022/lib/common/card-form/TokenEx.mjs +11 -0
- package/esm2022/lib/common/card-form/tokenexHelpers.mjs +153 -0
- package/esm2022/lib/common/index.mjs +3 -1
- package/fesm2022/coinflowlabs-angular.mjs +241 -30
- package/fesm2022/coinflowlabs-angular.mjs.map +1 -1
- package/lib/common/CoinflowTypes.d.ts +34 -9
- package/lib/common/CoinflowUtils.d.ts +7 -2
- package/lib/common/card-form/TokenEx.d.ts +154 -0
- package/lib/common/card-form/tokenexHelpers.d.ts +28 -0
- package/lib/common/index.d.ts +2 -0
- package/package.json +4 -3
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { TokenExCvvContainerID, CARD_TYPE_MAPPING, TokenExCardNumberIframeId, } from './TokenEx';
|
|
2
|
+
import { CoinflowUtils } from '../CoinflowUtils';
|
|
3
|
+
export async function getIframeConfig({ token, origins, env, }) {
|
|
4
|
+
return new Promise((resolve, reject) => {
|
|
5
|
+
fetch(new CoinflowUtils(env).url + '/api/checkout/authentication-key', {
|
|
6
|
+
method: 'POST',
|
|
7
|
+
headers: {
|
|
8
|
+
'Content-Type': 'application/json',
|
|
9
|
+
},
|
|
10
|
+
body: JSON.stringify({
|
|
11
|
+
origins: [...(origins ?? []), window.location.origin],
|
|
12
|
+
token,
|
|
13
|
+
}),
|
|
14
|
+
})
|
|
15
|
+
.then(async (res) => {
|
|
16
|
+
resolve((await res.json()));
|
|
17
|
+
})
|
|
18
|
+
.catch(e => reject(e));
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
export function setTokenExScriptTag({ env, setTokenExScriptLoaded, }) {
|
|
22
|
+
const scriptTagId = 'tokenex-script';
|
|
23
|
+
if (document.head.querySelector(`#${scriptTagId}`))
|
|
24
|
+
return;
|
|
25
|
+
const sdkScriptTag = document.createElement('script');
|
|
26
|
+
sdkScriptTag.src =
|
|
27
|
+
env === 'prod'
|
|
28
|
+
? 'https://htp.tokenex.com/iframe/iframe-v3.min.js'
|
|
29
|
+
: 'https://test-htp.tokenex.com/iframe/iframe-v3.min.js';
|
|
30
|
+
sdkScriptTag.id = scriptTagId;
|
|
31
|
+
document.head.appendChild(sdkScriptTag);
|
|
32
|
+
document.getElementById(scriptTagId).addEventListener('load', () => {
|
|
33
|
+
console.log('Setting tokenExScriptLoaded to true!');
|
|
34
|
+
setTokenExScriptLoaded(true);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
function loadIframe({ iframe, setCachedToken, setLoaded, }) {
|
|
38
|
+
const tokenize = async () => {
|
|
39
|
+
iframe.tokenize();
|
|
40
|
+
return await new Promise((resolve, reject) => {
|
|
41
|
+
iframe.on('tokenize', (data) => {
|
|
42
|
+
setCachedToken(data.token);
|
|
43
|
+
resolve(data);
|
|
44
|
+
});
|
|
45
|
+
iframe.on('validate', (data) => {
|
|
46
|
+
// noinspection PointlessBooleanExpressionJS
|
|
47
|
+
const isInvalid = !data.isValid || data.isCvvValid === false;
|
|
48
|
+
if (isInvalid)
|
|
49
|
+
reject(data);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
iframe.on('change', () => setCachedToken(undefined));
|
|
54
|
+
iframe.on('cvvChange', () => setCachedToken(undefined));
|
|
55
|
+
iframe.on('load', () => {
|
|
56
|
+
setTimeout(() => setLoaded(true), 350);
|
|
57
|
+
const el = document.querySelector('#tx_iframe_tokenExCardNumber');
|
|
58
|
+
if (el) {
|
|
59
|
+
// noinspection JSDeprecatedSymbols
|
|
60
|
+
el.scrolling = 'no';
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
iframe.on('focus', () => {
|
|
64
|
+
iframe.focus();
|
|
65
|
+
});
|
|
66
|
+
iframe.on('cvvFocus', () => {
|
|
67
|
+
iframe.cvvFocus();
|
|
68
|
+
});
|
|
69
|
+
setLoaded(false);
|
|
70
|
+
iframe.load();
|
|
71
|
+
return { ...iframe, tokenize };
|
|
72
|
+
}
|
|
73
|
+
export async function doInitializeCvvOnlyTokenExIframe(args) {
|
|
74
|
+
const { token, cardType } = args;
|
|
75
|
+
return await doInitialize(TokenExCvvContainerID, args, {
|
|
76
|
+
cvvOnly: true,
|
|
77
|
+
cvv: true,
|
|
78
|
+
cvvContainerID: TokenExCvvContainerID,
|
|
79
|
+
placeholder: 'CVV',
|
|
80
|
+
token,
|
|
81
|
+
cardType: CARD_TYPE_MAPPING[cardType],
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
export async function doInitializeTokenExIframe(args) {
|
|
85
|
+
return await doInitialize(TokenExCardNumberIframeId, args, {
|
|
86
|
+
cvv: true,
|
|
87
|
+
cvvContainerID: TokenExCvvContainerID,
|
|
88
|
+
cvvPlaceholder: 'CVV',
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
export async function doInitializeTokenExCardOnlyIframe(args) {
|
|
92
|
+
return await doInitialize(TokenExCardNumberIframeId, args, { cvv: false });
|
|
93
|
+
}
|
|
94
|
+
async function doInitialize(id, { tokenExScriptLoaded, origins, env, css, debug, font, setCachedToken, setLoaded, }, configOverrides) {
|
|
95
|
+
if (!tokenExScriptLoaded && typeof TokenEx === 'undefined') {
|
|
96
|
+
console.warn('Warning Unable to load TokenEx on first attempt waiting for load event from document.head.script#tokenex-script');
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const iframeConfig = await getIframeConfig({
|
|
100
|
+
token: configOverrides.token,
|
|
101
|
+
origins,
|
|
102
|
+
env,
|
|
103
|
+
});
|
|
104
|
+
const { styles } = getStyles(css);
|
|
105
|
+
const config = {
|
|
106
|
+
...iframeConfig,
|
|
107
|
+
placeholder: '0000 0000 0000 0000',
|
|
108
|
+
enablePrettyFormat: true,
|
|
109
|
+
styles,
|
|
110
|
+
font,
|
|
111
|
+
debug: debug ?? false,
|
|
112
|
+
...configOverrides,
|
|
113
|
+
};
|
|
114
|
+
const iframe = TokenEx.Iframe(id, config);
|
|
115
|
+
return loadIframe({ iframe, setCachedToken, setLoaded });
|
|
116
|
+
}
|
|
117
|
+
function getStyles(s) {
|
|
118
|
+
const css = JSON.parse(s);
|
|
119
|
+
const styles = {
|
|
120
|
+
base: CSSPropertiesToComponent(css.base),
|
|
121
|
+
focus: CSSPropertiesToComponent(css.focus),
|
|
122
|
+
error: CSSPropertiesToComponent(css.error),
|
|
123
|
+
placeholder: CSSPropertiesToComponent(css.placeholder),
|
|
124
|
+
cvv: {
|
|
125
|
+
base: CSSPropertiesToComponent(css.cvv?.base),
|
|
126
|
+
focus: CSSPropertiesToComponent(css.cvv?.focus),
|
|
127
|
+
error: CSSPropertiesToComponent(css.cvv?.error),
|
|
128
|
+
placeholder: CSSPropertiesToComponent(css?.placeholder),
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
return { styles };
|
|
132
|
+
}
|
|
133
|
+
function CSSPropertiesToComponent(dict) {
|
|
134
|
+
if (!dict)
|
|
135
|
+
return '';
|
|
136
|
+
if (typeof dict === 'string')
|
|
137
|
+
return dict;
|
|
138
|
+
let str = '';
|
|
139
|
+
for (const [key, value] of Object.entries(dict)) {
|
|
140
|
+
let clo = '';
|
|
141
|
+
key.split('').forEach(lt => {
|
|
142
|
+
if (lt.toUpperCase() === lt) {
|
|
143
|
+
clo += '-' + lt.toLowerCase();
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
clo += lt;
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
str += clo + ':' + value + ';';
|
|
150
|
+
}
|
|
151
|
+
return str;
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5leEhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2luZmxvd2xhYnMvc3JjL2xpYi9jb21tb24vY2FyZC1mb3JtL3Rva2VuZXhIZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFFTCxxQkFBcUIsRUFHckIsaUJBQWlCLEVBQ2pCLHlCQUF5QixHQUMxQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFvQi9DLE1BQU0sQ0FBQyxLQUFLLFVBQVUsZUFBZSxDQUFDLEVBQ3BDLEtBQUssRUFDTCxPQUFPLEVBQ1AsR0FBRyxHQUtKO0lBQ0MsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNyQyxLQUFLLENBQUMsSUFBSSxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLGtDQUFrQyxFQUFFO1lBQ3JFLE1BQU0sRUFBRSxNQUFNO1lBQ2QsT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSxrQkFBa0I7YUFDbkM7WUFDRCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDbkIsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDckQsS0FBSzthQUNOLENBQUM7U0FDSCxDQUFDO2FBQ0MsSUFBSSxDQUFDLEtBQUssRUFBQyxHQUFHLEVBQUMsRUFBRTtZQUNoQixPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBK0IsQ0FBQyxDQUFDO1FBQzVELENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FB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cm9wZXJ0aWVzfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1xuICBUb2tlbml6YXRpb25SZXNwb25zZSxcbiAgVG9rZW5FeEN2dkNvbnRhaW5lcklELFxuICBUb2tlbkV4SWZyYW1lLFxuICBUb2tlbkV4SUZyYW1lQ29uZmlndXJhdGlvbixcbiAgQ0FSRF9UWVBFX01BUFBJTkcsXG4gIFRva2VuRXhDYXJkTnVtYmVySWZyYW1lSWQsXG59IGZyb20gJy4vVG9rZW5FeCc7XG5pbXBvcnQge0NvaW5mbG93VXRpbHN9IGZyb20gJy4uL0NvaW5mbG93VXRpbHMnO1xuaW1wb3J0IHtDYXJkVHlwZSwgQ29pbmZsb3dFbnZzfSBmcm9tICcuLi9Db2luZmxvd1R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBEb0luaXRpYWxpemVUb2tlbkV4SWZyYW1lQXJncyB7XG4gIGNzczogc3RyaW5nO1xuICBkZWJ1Zz86IGJvb2xlYW47XG4gIGZvbnQ/OiBzdHJpbmc7XG4gIG9yaWdpbnM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICB0b2tlbkV4U2NyaXB0TG9hZGVkOiBib29sZWFuO1xuICBlbnY6IENvaW5mbG93RW52cztcbiAgc2V0Q2FjaGVkVG9rZW46IChzOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHZvaWQ7XG4gIHNldExvYWRlZDogKGI6IGJvb2xlYW4pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9Jbml0aWFsaXplQ3Z2T25seVRva2VuRXhJZnJhbWVBcmdzXG4gIGV4dGVuZHMgRG9Jbml0aWFsaXplVG9rZW5FeElmcmFtZUFyZ3Mge1xuICB0b2tlbjogc3RyaW5nO1xuICBjYXJkVHlwZTogQ2FyZFR5cGU7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRJZnJhbWVDb25maWcoe1xuICB0b2tlbixcbiAgb3JpZ2lucyxcbiAgZW52LFxufToge1xuICB0b2tlbj86IHN0cmluZztcbiAgb3JpZ2luczogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gIGVudjogQ29pbmZsb3dFbnZzO1xufSk6IFByb21pc2U8VG9rZW5FeElGcmFtZUNvbmZpZ3VyYXRpb24+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBmZXRjaChuZXcgQ29pbmZsb3dVdGlscyhlbnYpLnVybCArICcvYXBpL2NoZWNrb3V0L2F1dGhlbnRpY2F0aW9uLWtleScsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgb3JpZ2luczogWy4uLihvcmlnaW5zID8/IFtdKSwgd2luZG93LmxvY2F0aW9uLm9yaWdpbl0sXG4gICAgICAgIHRva2VuLFxuICAgICAgfSksXG4gICAgfSlcbiAgICAgIC50aGVuKGFzeW5jIHJlcyA9PiB7XG4gICAgICAgIHJlc29sdmUoKGF3YWl0IHJlcy5qc29uKCkpIGFzIFRva2VuRXhJRnJhbWVDb25maWd1cmF0aW9uKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZSA9PiByZWplY3QoZSkpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFRva2VuRXhTY3JpcHRUYWcoe1xuICBlbnYsXG4gIHNldFRva2VuRXhTY3JpcHRMb2FkZWQsXG59OiB7XG4gIGVudjogQ29pbmZsb3dFbnZzO1xuICBzZXRUb2tlbkV4U2NyaXB0TG9hZGVkOiAoYjogYm9vbGVhbikgPT4gdm9pZDtcbn0pIHtcbiAgY29uc3Qgc2NyaXB0VGFnSWQgPSAndG9rZW5leC1zY3JpcHQnO1xuICBpZiAoZG9jdW1lbnQuaGVhZC5xdWVyeVNlbGVjdG9yKGAjJHtzY3JpcHRUYWdJZH1gKSkgcmV0dXJuO1xuXG4gIGNvbnN0IHNka1NjcmlwdFRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICBzZGtTY3JpcHRUYWcuc3JjID1cbiAgICBlbnYgPT09ICdwcm9kJ1xuICAgICAgPyAnaHR0cHM6Ly9odHAudG9rZW5leC5jb20vaWZyYW1lL2lmcmFtZS12My5taW4uanMnXG4gICAgICA6ICdodHRwczovL3Rlc3QtaHRwLnRva2VuZXguY29tL2lmcmFtZS9pZnJhbWUtdjMubWluLmpzJztcbiAgc2RrU2NyaXB0VGFnLmlkID0gc2NyaXB0VGFnSWQ7XG5cbiAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzZGtTY3JpcHRUYWcpO1xuXG4gIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNjcmlwdFRhZ0lkKSEuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHtcbiAgICBjb25zb2xlLmxvZygnU2V0dGluZyB0b2tlbkV4U2NyaXB0TG9hZGVkIHRvIHRydWUhJyk7XG4gICAgc2V0VG9rZW5FeFNjcmlwdExvYWRlZCh0cnVlKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGxvYWRJZnJhbWUoe1xuICBpZnJhbWUsXG4gIHNldENhY2hlZFRva2VuLFxuICBzZXRMb2FkZWQsXG59OiB7XG4gIHNldENhY2hlZFRva2VuOiAoczogc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiB2b2lkO1xuICBzZXRMb2FkZWQ6IChiOiBib29sZWFuKSA9PiB2b2lkO1xuICBpZnJhbWU6IFJldHVyblR5cGU8dHlwZW9mIFRva2VuRXguSWZyYW1lPjtcbn0pOiBUb2tlbkV4SWZyYW1lIHtcbiAgY29uc3QgdG9rZW5pemUgPSBhc3luYyAoKTogUHJvbWlzZTxUb2tlbml6YXRpb25SZXNwb25zZT4gPT4ge1xuICAgIGlmcmFtZS50b2tlbml6ZSgpO1xuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZTxUb2tlbml6YXRpb25SZXNwb25zZT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWZyYW1lLm9uKCd0b2tlbml6ZScsIChkYXRhOiBUb2tlbml6YXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICBzZXRDYWNoZWRUb2tlbihkYXRhLnRva2VuKTtcbiAgICAgICAgcmVzb2x2ZShkYXRhKTtcbiAgICAgIH0pO1xuICAgICAgaWZyYW1lLm9uKCd2YWxpZGF0ZScsIChkYXRhOiB7aXNWYWxpZDogYm9vbGVhbjsgaXNDdnZWYWxpZDogYm9vbGVhbn0pID0+IHtcbiAgICAgICAgLy8gbm9pbnNwZWN0aW9uIFBvaW50bGVzc0Jvb2xlYW5FeHByZXNzaW9uSlNcbiAgICAgICAgY29uc3QgaXNJbnZhbGlkID0gIWRhdGEuaXNWYWxpZCB8fCBkYXRhLmlzQ3Z2VmFsaWQgPT09IGZhbHNlO1xuICAgICAgICBpZiAoaXNJbnZhbGlkKSByZWplY3QoZGF0YSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfTtcblxuICBpZnJhbWUub24oJ2NoYW5nZScsICgpID0+IHNldENhY2hlZFRva2VuKHVuZGVmaW5lZCkpO1xuICBpZnJhbWUub24oJ2N2dkNoYW5nZScsICgpID0+IHNldENhY2hlZFRva2VuKHVuZGVmaW5lZCkpO1xuXG4gIGlmcmFtZS5vbignbG9hZCcsICgpID0+IHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHNldExvYWRlZCh0cnVlKSwgMzUwKTtcbiAgICBjb25zdCBlbDogSFRNTElGcmFtZUVsZW1lbnQgfCBudWxsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICcjdHhfaWZyYW1lX3Rva2VuRXhDYXJkTnVtYmVyJ1xuICAgICk7XG4gICAgaWYgKGVsKSB7XG4gICAgICAvLyBub2luc3BlY3Rpb24gSlNEZXByZWNhdGVkU3ltYm9sc1xuICAgICAgZWwuc2Nyb2xsaW5nID0gJ25vJztcbiAgICB9XG4gIH0pO1xuXG4gIGlmcmFtZS5vbignZm9jdXMnLCAoKSA9PiB7XG4gICAgaWZyYW1lLmZvY3VzKCk7XG4gIH0pO1xuICBpZnJhbWUub24oJ2N2dkZvY3VzJywgKCkgPT4ge1xuICAgIGlmcmFtZS5jdnZGb2N1cygpO1xuICB9KTtcblxuICBzZXRMb2FkZWQoZmFsc2UpO1xuICBpZnJhbWUubG9hZCgpO1xuXG4gIHJldHVybiB7Li4uaWZyYW1lLCB0b2tlbml6ZX07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkb0luaXRpYWxpemVDdnZPbmx5VG9rZW5FeElmcmFtZShcbiAgYXJnczogRG9Jbml0aWFsaXplQ3Z2T25seVRva2VuRXhJZnJhbWVBcmdzXG4pIHtcbiAgY29uc3Qge3Rva2VuLCBjYXJkVHlwZX0gPSBhcmdzO1xuICByZXR1cm4gYXdhaXQgZG9Jbml0aWFsaXplKFRva2VuRXhDdnZDb250YWluZXJJRCwgYXJncywge1xuICAgIGN2dk9ubHk6IHRydWUsXG4gICAgY3Z2OiB0cnVlLFxuICAgIGN2dkNvbnRhaW5lcklEOiBUb2tlbkV4Q3Z2Q29udGFpbmVySUQsXG4gICAgcGxhY2Vob2xkZXI6ICdDVlYnLFxuICAgIHRva2VuLFxuICAgIGNhcmRUeXBlOiBDQVJEX1RZUEVfTUFQUElOR1tjYXJkVHlwZV0sXG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG9Jbml0aWFsaXplVG9rZW5FeElmcmFtZShcbiAgYXJnczogRG9Jbml0aWFsaXplVG9rZW5FeElmcmFtZUFyZ3Ncbikge1xuICByZXR1cm4gYXdhaXQgZG9Jbml0aWFsaXplKFRva2VuRXhDYXJkTnVtYmVySWZyYW1lSWQsIGFyZ3MsIHtcbiAgICBjdnY6IHRydWUsXG4gICAgY3Z2Q29udGFpbmVySUQ6IFRva2VuRXhDdnZDb250YWluZXJJRCxcbiAgICBjdnZQbGFjZWhvbGRlcjogJ0NWVicsXG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG9Jbml0aWFsaXplVG9rZW5FeENhcmRPbmx5SWZyYW1lKFxuICBhcmdzOiBEb0luaXRpYWxpemVUb2tlbkV4SWZyYW1lQXJnc1xuKSB7XG4gIHJldHVybiBhd2FpdCBkb0luaXRpYWxpemUoVG9rZW5FeENhcmROdW1iZXJJZnJhbWVJZCwgYXJncywge2N2djogZmFsc2V9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZG9Jbml0aWFsaXplKFxuICBpZDogc3RyaW5nLFxuICB7XG4gICAgdG9rZW5FeFNjcmlwdExvYWRlZCxcbiAgICBvcmlnaW5zLFxuICAgIGVudixcbiAgICBjc3MsXG4gICAgZGVidWcsXG4gICAgZm9udCxcbiAgICBzZXRDYWNoZWRUb2tlbixcbiAgICBzZXRMb2FkZWQsXG4gIH06IERvSW5pdGlhbGl6ZVRva2VuRXhJZnJhbWVBcmdzLFxuICBjb25maWdPdmVycmlkZXM6IFBhcnRpYWw8VG9rZW5FeC5Db25maWc+XG4pIHtcbiAgaWYgKCF0b2tlbkV4U2NyaXB0TG9hZGVkICYmIHR5cGVvZiBUb2tlbkV4ID09PSAndW5kZWZpbmVkJykge1xuICAgIGNvbnNvbGUud2FybihcbiAgICAgICdXYXJuaW5nIFVuYWJsZSB0byBsb2FkIFRva2VuRXggb24gZmlyc3QgYXR0ZW1wdCB3YWl0aW5nIGZvciBsb2FkIGV2ZW50IGZyb20gZG9jdW1lbnQuaGVhZC5zY3JpcHQjdG9rZW5leC1zY3JpcHQnXG4gICAgKTtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgaWZyYW1lQ29uZmlnID0gYXdhaXQgZ2V0SWZyYW1lQ29uZmlnKHtcbiAgICB0b2tlbjogY29uZmlnT3ZlcnJpZGVzLnRva2VuLFxuICAgIG9yaWdpbnMsXG4gICAgZW52LFxuICB9KTtcbiAgY29uc3Qge3N0eWxlc30gPSBnZXRTdHlsZXMoY3NzKTtcbiAgY29uc3QgY29uZmlnID0ge1xuICAgIC4uLmlmcmFtZUNvbmZpZyxcbiAgICBwbGFjZWhvbGRlcjogJzAwMDAgMDAwMCAwMDAwIDAwMDAnLFxuICAgIGVuYWJsZVByZXR0eUZvcm1hdDogdHJ1ZSxcbiAgICBzdHlsZXMsXG4gICAgZm9udCxcbiAgICBkZWJ1ZzogZGVidWcgPz8gZmFsc2UsXG4gICAgLi4uY29uZmlnT3ZlcnJpZGVzLFxuICB9O1xuICBjb25zdCBpZnJhbWU6IFJldHVyblR5cGU8dHlwZW9mIFRva2VuRXguSWZyYW1lPiA9IFRva2VuRXguSWZyYW1lKGlkLCBjb25maWcpO1xuXG4gIHJldHVybiBsb2FkSWZyYW1lKHtpZnJhbWUsIHNldENhY2hlZFRva2VuLCBzZXRMb2FkZWR9KTtcbn1cblxuZnVuY3Rpb24gZ2V0U3R5bGVzKHM6IHN0cmluZykge1xuICBjb25zdCBjc3MgPSBKU09OLnBhcnNlKHMpO1xuICBjb25zdCBzdHlsZXMgPSB7XG4gICAgYmFzZTogQ1NTUHJvcGVydGllc1RvQ29tcG9uZW50KGNzcy5iYXNlKSxcbiAgICBmb2N1czogQ1NTUHJvcGVydGllc1RvQ29tcG9uZW50KGNzcy5mb2N1cyksXG4gICAgZXJyb3I6IENTU1Byb3BlcnRpZXNUb0NvbXBvbmVudChjc3MuZXJyb3IpLFxuICAgIHBsYWNlaG9sZGVyOiBDU1NQcm9wZXJ0aWVzVG9Db21wb25lbnQoY3NzLnBsYWNlaG9sZGVyKSxcbiAgICBjdnY6IHtcbiAgICAgIGJhc2U6IENTU1Byb3BlcnRpZXNUb0NvbXBvbmVudChjc3MuY3Z2Py5iYXNlKSxcbiAgICAgIGZvY3VzOiBDU1NQcm9wZXJ0aWVzVG9Db21wb25lbnQoY3NzLmN2dj8uZm9jdXMpLFxuICAgICAgZXJyb3I6IENTU1Byb3BlcnRpZXNUb0NvbXBvbmVudChjc3MuY3Z2Py5lcnJvciksXG4gICAgICBwbGFjZWhvbGRlcjogQ1NTUHJvcGVydGllc1RvQ29tcG9uZW50KGNzcz8ucGxhY2Vob2xkZXIpLFxuICAgIH0sXG4gIH07XG5cbiAgcmV0dXJuIHtzdHlsZXN9O1xufVxuXG5mdW5jdGlvbiBDU1NQcm9wZXJ0aWVzVG9Db21wb25lbnQoXG4gIGRpY3Q6IENTU1Byb3BlcnRpZXMgfCBzdHJpbmcgfCB1bmRlZmluZWRcbik6IHN0cmluZyB7XG4gIGlmICghZGljdCkgcmV0dXJuICcnO1xuICBpZiAodHlwZW9mIGRpY3QgPT09ICdzdHJpbmcnKSByZXR1cm4gZGljdDtcblxuICBsZXQgc3RyID0gJyc7XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGRpY3QpKSB7XG4gICAgbGV0IGNsbyA9ICcnO1xuICAgIGtleS5zcGxpdCgnJykuZm9yRWFjaChsdCA9PiB7XG4gICAgICBpZiAobHQudG9VcHBlckNhc2UoKSA9PT0gbHQpIHtcbiAgICAgICAgY2xvICs9ICctJyArIGx0LnRvTG93ZXJDYXNlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG8gKz0gbHQ7XG4gICAgICB9XG4gICAgfSk7XG4gICAgc3RyICs9IGNsbyArICc6JyArIHZhbHVlICsgJzsnO1xuICB9XG4gIHJldHVybiBzdHI7XG59XG4iXX0=
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export * from './CoinflowTypes';
|
|
2
2
|
export * from './CoinflowUtils';
|
|
3
3
|
export * from './CoinflowLibMessageHandlers';
|
|
4
|
-
|
|
4
|
+
export * from './card-form/TokenEx';
|
|
5
|
+
export * from './card-form/tokenexHelpers';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2luZmxvd2xhYnMvc3JjL2xpYi9jb21tb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9Db2luZmxvd1R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29pbmZsb3dVdGlscyc7XG5leHBvcnQgKiBmcm9tICcuL0NvaW5mbG93TGliTWVzc2FnZUhhbmRsZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vY2FyZC1mb3JtL1Rva2VuRXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXJkLWZvcm0vdG9rZW5leEhlbHBlcnMnO1xuIl19
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Component, Input, ViewChild, HostListener } from '@angular/core';
|
|
3
3
|
import * as SolanaWeb3Js from '@solana/web3.js';
|
|
4
|
+
import { Keypair, Transaction } from '@solana/web3.js';
|
|
4
5
|
import base58Imported from 'bs58';
|
|
5
6
|
import LZString from 'lz-string';
|
|
7
|
+
import { sign } from 'tweetnacl';
|
|
6
8
|
import * as i1 from '@angular/platform-browser';
|
|
7
9
|
|
|
8
10
|
var SettlementType;
|
|
@@ -17,6 +19,13 @@ var MerchantStyle;
|
|
|
17
19
|
MerchantStyle["Sharp"] = "sharp";
|
|
18
20
|
MerchantStyle["Pill"] = "pill";
|
|
19
21
|
})(MerchantStyle || (MerchantStyle = {}));
|
|
22
|
+
var CardType;
|
|
23
|
+
(function (CardType) {
|
|
24
|
+
CardType["VISA"] = "VISA";
|
|
25
|
+
CardType["MASTERCARD"] = "MSTR";
|
|
26
|
+
CardType["AMEX"] = "AMEX";
|
|
27
|
+
CardType["DISCOVER"] = "DISC";
|
|
28
|
+
})(CardType || (CardType = {}));
|
|
20
29
|
|
|
21
30
|
// This works in angular, but not react
|
|
22
31
|
// let web3: typeof import('@solana/web3.js') | undefined;
|
|
@@ -76,7 +85,7 @@ class CoinflowUtils {
|
|
|
76
85
|
return 'http://localhost:5000';
|
|
77
86
|
return `https://api-${env}.coinflow.cash`;
|
|
78
87
|
}
|
|
79
|
-
static getCoinflowUrl({ walletPubkey, route, routePrefix, env, amount, transaction, blockchain,
|
|
88
|
+
static getCoinflowUrl({ walletPubkey, route, routePrefix, env, amount, transaction, blockchain, webhookInfo, email, loaderBackground, handleHeightChange, bankAccountLinkRedirect, additionalWallets, nearDeposit, chargebackProtectionData, merchantCss, color, rent, lockDefaultToken, token, tokens, planCode, disableApplePay, disableGooglePay, customerInfo, settlementType, lockAmount, nativeSolToConvert, theme, usePermit, transactionSigner, authOnly, deviceId, jwtToken, origins, }) {
|
|
80
89
|
const prefix = routePrefix
|
|
81
90
|
? `/${routePrefix}/${blockchain}`
|
|
82
91
|
: `/${blockchain}`;
|
|
@@ -88,9 +97,6 @@ class CoinflowUtils {
|
|
|
88
97
|
if (amount) {
|
|
89
98
|
url.searchParams.append('amount', amount.toString());
|
|
90
99
|
}
|
|
91
|
-
if (supportsVersionedTransactions) {
|
|
92
|
-
url.searchParams.append('supportsVersionedTransactions', 'true');
|
|
93
|
-
}
|
|
94
100
|
if (webhookInfo) {
|
|
95
101
|
url.searchParams.append('webhookInfo', LZString.compressToEncodedURIComponent(JSON.stringify(webhookInfo)));
|
|
96
102
|
}
|
|
@@ -164,6 +170,8 @@ class CoinflowUtils {
|
|
|
164
170
|
url.searchParams.append('authOnly', 'true');
|
|
165
171
|
if (jwtToken)
|
|
166
172
|
url.searchParams.append('jwtToken', jwtToken);
|
|
173
|
+
if (origins)
|
|
174
|
+
url.searchParams.append('origins', LZString.compressToEncodedURIComponent(JSON.stringify(origins)));
|
|
167
175
|
return url.toString();
|
|
168
176
|
}
|
|
169
177
|
static getTransaction(props) {
|
|
@@ -176,14 +184,12 @@ class CoinflowUtils {
|
|
|
176
184
|
throw new Error('@solana/web3.js dependency is required for Solana');
|
|
177
185
|
if (!base58)
|
|
178
186
|
throw new Error('bs58 dependency is required for Solana');
|
|
179
|
-
if (transaction
|
|
180
|
-
return
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
return base58.encode(transaction.serialize());
|
|
186
|
-
return undefined;
|
|
187
|
+
if (!transaction)
|
|
188
|
+
return undefined;
|
|
189
|
+
return base58.encode(transaction.serialize({
|
|
190
|
+
requireAllSignatures: false,
|
|
191
|
+
verifySignatures: false,
|
|
192
|
+
}));
|
|
187
193
|
},
|
|
188
194
|
polygon: () => {
|
|
189
195
|
if (!('transaction' in props))
|
|
@@ -227,6 +233,50 @@ class CoinflowUtils {
|
|
|
227
233
|
throw new Error('blockchain not supported!');
|
|
228
234
|
}
|
|
229
235
|
}
|
|
236
|
+
static async getWalletFromEmail({ email, merchantId, env, }) {
|
|
237
|
+
const buffer = new TextEncoder().encode(email);
|
|
238
|
+
const crypto = window.crypto.subtle;
|
|
239
|
+
const hash = await crypto.digest('SHA-256', buffer);
|
|
240
|
+
const seed = new Uint8Array(hash);
|
|
241
|
+
const keypair = Keypair.fromSeed(seed);
|
|
242
|
+
return {
|
|
243
|
+
publicKey: keypair.publicKey,
|
|
244
|
+
signMessage: (message) => Promise.resolve(sign.detached(message, keypair.secretKey)),
|
|
245
|
+
signTransaction: async (transaction) => {
|
|
246
|
+
if (transaction instanceof Transaction) {
|
|
247
|
+
transaction.sign(keypair);
|
|
248
|
+
return transaction;
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
transaction.sign([keypair]);
|
|
252
|
+
return transaction;
|
|
253
|
+
}
|
|
254
|
+
},
|
|
255
|
+
sendTransaction: async (transaction) => {
|
|
256
|
+
if (transaction instanceof Transaction) {
|
|
257
|
+
transaction.sign(keypair);
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
transaction.sign([keypair]);
|
|
261
|
+
}
|
|
262
|
+
const coinflowBaseUrl = this.getCoinflowApiUrl(env);
|
|
263
|
+
const options = {
|
|
264
|
+
method: 'POST',
|
|
265
|
+
headers: {
|
|
266
|
+
'content-type': 'application/json',
|
|
267
|
+
'x-coinflow-auth-wallet': keypair.publicKey.toString(),
|
|
268
|
+
'x-coinflow-auth-blockchain': 'solana',
|
|
269
|
+
},
|
|
270
|
+
body: JSON.stringify({
|
|
271
|
+
merchantId,
|
|
272
|
+
signedTransaction: base58?.encode(transaction.serialize()),
|
|
273
|
+
}),
|
|
274
|
+
};
|
|
275
|
+
const { signature } = await fetch(coinflowBaseUrl + '/api/utils/send-coinflow-tx', options).then(res => res.json());
|
|
276
|
+
return signature;
|
|
277
|
+
},
|
|
278
|
+
};
|
|
279
|
+
}
|
|
230
280
|
}
|
|
231
281
|
|
|
232
282
|
var IFrameMessageMethods;
|
|
@@ -366,6 +416,167 @@ function getEvmWalletHandlers({ wallet, onSuccess, }) {
|
|
|
366
416
|
};
|
|
367
417
|
}
|
|
368
418
|
|
|
419
|
+
// Type definitions for TokenEx iframe integration
|
|
420
|
+
const TokenExCardNumberIframeId = 'tokenExCardNumber';
|
|
421
|
+
const TokenExCvvContainerID = 'tokenExCardCvv';
|
|
422
|
+
const CARD_TYPE_MAPPING = {
|
|
423
|
+
[CardType.VISA]: 'visa',
|
|
424
|
+
[CardType.MASTERCARD]: 'masterCard',
|
|
425
|
+
[CardType.AMEX]: 'americanExpress',
|
|
426
|
+
[CardType.DISCOVER]: 'discover',
|
|
427
|
+
};
|
|
428
|
+
|
|
429
|
+
async function getIframeConfig({ token, origins, env, }) {
|
|
430
|
+
return new Promise((resolve, reject) => {
|
|
431
|
+
fetch(new CoinflowUtils(env).url + '/api/checkout/authentication-key', {
|
|
432
|
+
method: 'POST',
|
|
433
|
+
headers: {
|
|
434
|
+
'Content-Type': 'application/json',
|
|
435
|
+
},
|
|
436
|
+
body: JSON.stringify({
|
|
437
|
+
origins: [...(origins ?? []), window.location.origin],
|
|
438
|
+
token,
|
|
439
|
+
}),
|
|
440
|
+
})
|
|
441
|
+
.then(async (res) => {
|
|
442
|
+
resolve((await res.json()));
|
|
443
|
+
})
|
|
444
|
+
.catch(e => reject(e));
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
function setTokenExScriptTag({ env, setTokenExScriptLoaded, }) {
|
|
448
|
+
const scriptTagId = 'tokenex-script';
|
|
449
|
+
if (document.head.querySelector(`#${scriptTagId}`))
|
|
450
|
+
return;
|
|
451
|
+
const sdkScriptTag = document.createElement('script');
|
|
452
|
+
sdkScriptTag.src =
|
|
453
|
+
env === 'prod'
|
|
454
|
+
? 'https://htp.tokenex.com/iframe/iframe-v3.min.js'
|
|
455
|
+
: 'https://test-htp.tokenex.com/iframe/iframe-v3.min.js';
|
|
456
|
+
sdkScriptTag.id = scriptTagId;
|
|
457
|
+
document.head.appendChild(sdkScriptTag);
|
|
458
|
+
document.getElementById(scriptTagId).addEventListener('load', () => {
|
|
459
|
+
console.log('Setting tokenExScriptLoaded to true!');
|
|
460
|
+
setTokenExScriptLoaded(true);
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
function loadIframe({ iframe, setCachedToken, setLoaded, }) {
|
|
464
|
+
const tokenize = async () => {
|
|
465
|
+
iframe.tokenize();
|
|
466
|
+
return await new Promise((resolve, reject) => {
|
|
467
|
+
iframe.on('tokenize', (data) => {
|
|
468
|
+
setCachedToken(data.token);
|
|
469
|
+
resolve(data);
|
|
470
|
+
});
|
|
471
|
+
iframe.on('validate', (data) => {
|
|
472
|
+
// noinspection PointlessBooleanExpressionJS
|
|
473
|
+
const isInvalid = !data.isValid || data.isCvvValid === false;
|
|
474
|
+
if (isInvalid)
|
|
475
|
+
reject(data);
|
|
476
|
+
});
|
|
477
|
+
});
|
|
478
|
+
};
|
|
479
|
+
iframe.on('change', () => setCachedToken(undefined));
|
|
480
|
+
iframe.on('cvvChange', () => setCachedToken(undefined));
|
|
481
|
+
iframe.on('load', () => {
|
|
482
|
+
setTimeout(() => setLoaded(true), 350);
|
|
483
|
+
const el = document.querySelector('#tx_iframe_tokenExCardNumber');
|
|
484
|
+
if (el) {
|
|
485
|
+
// noinspection JSDeprecatedSymbols
|
|
486
|
+
el.scrolling = 'no';
|
|
487
|
+
}
|
|
488
|
+
});
|
|
489
|
+
iframe.on('focus', () => {
|
|
490
|
+
iframe.focus();
|
|
491
|
+
});
|
|
492
|
+
iframe.on('cvvFocus', () => {
|
|
493
|
+
iframe.cvvFocus();
|
|
494
|
+
});
|
|
495
|
+
setLoaded(false);
|
|
496
|
+
iframe.load();
|
|
497
|
+
return { ...iframe, tokenize };
|
|
498
|
+
}
|
|
499
|
+
async function doInitializeCvvOnlyTokenExIframe(args) {
|
|
500
|
+
const { token, cardType } = args;
|
|
501
|
+
return await doInitialize(TokenExCvvContainerID, args, {
|
|
502
|
+
cvvOnly: true,
|
|
503
|
+
cvv: true,
|
|
504
|
+
cvvContainerID: TokenExCvvContainerID,
|
|
505
|
+
placeholder: 'CVV',
|
|
506
|
+
token,
|
|
507
|
+
cardType: CARD_TYPE_MAPPING[cardType],
|
|
508
|
+
});
|
|
509
|
+
}
|
|
510
|
+
async function doInitializeTokenExIframe(args) {
|
|
511
|
+
return await doInitialize(TokenExCardNumberIframeId, args, {
|
|
512
|
+
cvv: true,
|
|
513
|
+
cvvContainerID: TokenExCvvContainerID,
|
|
514
|
+
cvvPlaceholder: 'CVV',
|
|
515
|
+
});
|
|
516
|
+
}
|
|
517
|
+
async function doInitializeTokenExCardOnlyIframe(args) {
|
|
518
|
+
return await doInitialize(TokenExCardNumberIframeId, args, { cvv: false });
|
|
519
|
+
}
|
|
520
|
+
async function doInitialize(id, { tokenExScriptLoaded, origins, env, css, debug, font, setCachedToken, setLoaded, }, configOverrides) {
|
|
521
|
+
if (!tokenExScriptLoaded && typeof TokenEx === 'undefined') {
|
|
522
|
+
console.warn('Warning Unable to load TokenEx on first attempt waiting for load event from document.head.script#tokenex-script');
|
|
523
|
+
return;
|
|
524
|
+
}
|
|
525
|
+
const iframeConfig = await getIframeConfig({
|
|
526
|
+
token: configOverrides.token,
|
|
527
|
+
origins,
|
|
528
|
+
env,
|
|
529
|
+
});
|
|
530
|
+
const { styles } = getStyles(css);
|
|
531
|
+
const config = {
|
|
532
|
+
...iframeConfig,
|
|
533
|
+
placeholder: '0000 0000 0000 0000',
|
|
534
|
+
enablePrettyFormat: true,
|
|
535
|
+
styles,
|
|
536
|
+
font,
|
|
537
|
+
debug: debug ?? false,
|
|
538
|
+
...configOverrides,
|
|
539
|
+
};
|
|
540
|
+
const iframe = TokenEx.Iframe(id, config);
|
|
541
|
+
return loadIframe({ iframe, setCachedToken, setLoaded });
|
|
542
|
+
}
|
|
543
|
+
function getStyles(s) {
|
|
544
|
+
const css = JSON.parse(s);
|
|
545
|
+
const styles = {
|
|
546
|
+
base: CSSPropertiesToComponent(css.base),
|
|
547
|
+
focus: CSSPropertiesToComponent(css.focus),
|
|
548
|
+
error: CSSPropertiesToComponent(css.error),
|
|
549
|
+
placeholder: CSSPropertiesToComponent(css.placeholder),
|
|
550
|
+
cvv: {
|
|
551
|
+
base: CSSPropertiesToComponent(css.cvv?.base),
|
|
552
|
+
focus: CSSPropertiesToComponent(css.cvv?.focus),
|
|
553
|
+
error: CSSPropertiesToComponent(css.cvv?.error),
|
|
554
|
+
placeholder: CSSPropertiesToComponent(css?.placeholder),
|
|
555
|
+
},
|
|
556
|
+
};
|
|
557
|
+
return { styles };
|
|
558
|
+
}
|
|
559
|
+
function CSSPropertiesToComponent(dict) {
|
|
560
|
+
if (!dict)
|
|
561
|
+
return '';
|
|
562
|
+
if (typeof dict === 'string')
|
|
563
|
+
return dict;
|
|
564
|
+
let str = '';
|
|
565
|
+
for (const [key, value] of Object.entries(dict)) {
|
|
566
|
+
let clo = '';
|
|
567
|
+
key.split('').forEach(lt => {
|
|
568
|
+
if (lt.toUpperCase() === lt) {
|
|
569
|
+
clo += '-' + lt.toLowerCase();
|
|
570
|
+
}
|
|
571
|
+
else {
|
|
572
|
+
clo += lt;
|
|
573
|
+
}
|
|
574
|
+
});
|
|
575
|
+
str += clo + ':' + value + ';';
|
|
576
|
+
}
|
|
577
|
+
return str;
|
|
578
|
+
}
|
|
579
|
+
|
|
369
580
|
class CoinflowIFrameComponent {
|
|
370
581
|
constructor(sanitizer) {
|
|
371
582
|
this.sanitizer = sanitizer;
|
|
@@ -390,8 +601,8 @@ class CoinflowIFrameComponent {
|
|
|
390
601
|
return;
|
|
391
602
|
this.iframe.nativeElement.contentWindow.postMessage(message, '*');
|
|
392
603
|
}
|
|
393
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
394
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
604
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowIFrameComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
605
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowIFrameComponent, isStandalone: true, selector: "lib-coinflow-iframe", inputs: { iframeProps: "iframeProps", messageHandlers: "messageHandlers" }, host: { listeners: { "window:message": "onPostMessage($event)" } }, viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true }], ngImport: i0, template: ` <iframe
|
|
395
606
|
width="100%"
|
|
396
607
|
height="100%"
|
|
397
608
|
#iframe
|
|
@@ -402,7 +613,7 @@ class CoinflowIFrameComponent {
|
|
|
402
613
|
[src]="dynamicUrl"
|
|
403
614
|
></iframe>`, isInline: true }); }
|
|
404
615
|
}
|
|
405
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
616
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowIFrameComponent, decorators: [{
|
|
406
617
|
type: Component,
|
|
407
618
|
args: [{
|
|
408
619
|
selector: 'lib-coinflow-iframe',
|
|
@@ -444,10 +655,10 @@ class CoinflowPurchaseComponent {
|
|
|
444
655
|
transaction: CoinflowUtils.getTransaction(this.purchaseProps),
|
|
445
656
|
};
|
|
446
657
|
}
|
|
447
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
448
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
658
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowPurchaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
659
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowPurchaseComponent, isStandalone: true, selector: "lib-coinflow-purchase", inputs: { purchaseProps: "purchaseProps" }, ngImport: i0, template: ' <lib-coinflow-iframe ng-if="iframeProps && messageHandlers" [iframeProps]="iframeProps!" [messageHandlers]="messageHandlers!"></lib-coinflow-iframe> ', isInline: true, dependencies: [{ kind: "component", type: CoinflowIFrameComponent, selector: "lib-coinflow-iframe", inputs: ["iframeProps", "messageHandlers"] }] }); }
|
|
449
660
|
}
|
|
450
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
661
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowPurchaseComponent, decorators: [{
|
|
451
662
|
type: Component,
|
|
452
663
|
args: [{
|
|
453
664
|
selector: 'lib-coinflow-purchase',
|
|
@@ -460,10 +671,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
460
671
|
}] } });
|
|
461
672
|
|
|
462
673
|
class CoinflowPurchaseHistoryComponent {
|
|
463
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
464
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
674
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowPurchaseHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
675
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowPurchaseHistoryComponent, isStandalone: true, selector: "lib-coinflow-purchase-history", ngImport: i0, template: ' <p>coinflow-purchase-history works!</p> ', isInline: true }); }
|
|
465
676
|
}
|
|
466
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
677
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowPurchaseHistoryComponent, decorators: [{
|
|
467
678
|
type: Component,
|
|
468
679
|
args: [{
|
|
469
680
|
selector: 'lib-coinflow-purchase-history',
|
|
@@ -474,10 +685,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
474
685
|
}] });
|
|
475
686
|
|
|
476
687
|
class CoinflowPurchaseProtectionComponent {
|
|
477
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
478
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
688
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowPurchaseProtectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
689
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowPurchaseProtectionComponent, isStandalone: true, selector: "lib-coinflow-purchase-protection", ngImport: i0, template: ' <p>coinflow-purchase-protection works!</p> ', isInline: true }); }
|
|
479
690
|
}
|
|
480
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
691
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowPurchaseProtectionComponent, decorators: [{
|
|
481
692
|
type: Component,
|
|
482
693
|
args: [{
|
|
483
694
|
selector: 'lib-coinflow-purchase-protection',
|
|
@@ -500,10 +711,10 @@ class CoinflowWithdrawComponent {
|
|
|
500
711
|
transaction: undefined,
|
|
501
712
|
};
|
|
502
713
|
}
|
|
503
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
504
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
714
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowWithdrawComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
715
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowWithdrawComponent, isStandalone: true, selector: "lib-coinflow-withdraw", inputs: { withdrawProps: "withdrawProps" }, ngImport: i0, template: ' <lib-coinflow-iframe ng-if="iframeProps && messageHandlers" [iframeProps]="iframeProps!" [messageHandlers]="messageHandlers!"></lib-coinflow-iframe> ', isInline: true, dependencies: [{ kind: "component", type: CoinflowIFrameComponent, selector: "lib-coinflow-iframe", inputs: ["iframeProps", "messageHandlers"] }] }); }
|
|
505
716
|
}
|
|
506
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
717
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowWithdrawComponent, decorators: [{
|
|
507
718
|
type: Component,
|
|
508
719
|
args: [{
|
|
509
720
|
selector: 'lib-coinflow-withdraw',
|
|
@@ -516,10 +727,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
516
727
|
}] } });
|
|
517
728
|
|
|
518
729
|
class CoinflowWithdrawHistoryComponent {
|
|
519
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
520
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
730
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowWithdrawHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
731
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CoinflowWithdrawHistoryComponent, isStandalone: true, selector: "lib-coinflow-withdraw-history", ngImport: i0, template: ' <p>coinflow-withdraw-history works!</p> ', isInline: true }); }
|
|
521
732
|
}
|
|
522
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
733
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CoinflowWithdrawHistoryComponent, decorators: [{
|
|
523
734
|
type: Component,
|
|
524
735
|
args: [{
|
|
525
736
|
selector: 'lib-coinflow-withdraw-history',
|