@saasquatch/mint-components 2.1.9-20 → 2.1.9-21

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.
Files changed (53) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/mint-components.cjs.js +1 -1
  3. package/dist/cjs/sqm-banking-info-form_10.cjs.entry.js +1 -1
  4. package/dist/cjs/sqm-email-verification_2.cjs.entry.js +42 -2
  5. package/dist/cjs/{sqm-partner-info-modal-view-d5c997e6.js → sqm-partner-info-modal-view-464c52c9.js} +20 -2
  6. package/dist/cjs/sqm-partner-info-modal.cjs.entry.js +493 -0
  7. package/dist/cjs/sqm-stencilbook.cjs.entry.js +10 -2
  8. package/dist/cjs/{sqm-user-info-form-view-db47a968.js → sqm-user-info-form-view-01bf2f41.js} +2 -7
  9. package/dist/collection/components/sqm-partner-info-modal/PartnerInfoModal.stories.js +8 -0
  10. package/dist/collection/components/sqm-partner-info-modal/sqm-partner-info-modal-view.js +20 -2
  11. package/dist/collection/components/sqm-partner-info-modal/sqm-partner-info-modal.js +91 -2
  12. package/dist/collection/components/sqm-partner-info-modal/usePartnerInfoModal.js +17 -0
  13. package/dist/collection/components/tax-and-cash/sqm-user-info-form/sqm-user-info-form-view.js +2 -7
  14. package/dist/esm/loader.js +1 -1
  15. package/dist/esm/mint-components.js +1 -1
  16. package/dist/esm/sqm-banking-info-form_10.entry.js +1 -1
  17. package/dist/esm/sqm-email-verification_2.entry.js +42 -2
  18. package/dist/esm/{sqm-partner-info-modal-view-08b7c5f6.js → sqm-partner-info-modal-view-a6324934.js} +20 -2
  19. package/dist/esm/sqm-partner-info-modal.entry.js +489 -0
  20. package/dist/esm/sqm-stencilbook.entry.js +10 -2
  21. package/dist/esm/{sqm-user-info-form-view-712cd51b.js → sqm-user-info-form-view-365cef98.js} +2 -7
  22. package/dist/esm-es5/loader.js +1 -1
  23. package/dist/esm-es5/mint-components.js +1 -1
  24. package/dist/esm-es5/sqm-banking-info-form_10.entry.js +1 -1
  25. package/dist/esm-es5/sqm-email-verification_2.entry.js +1 -1
  26. package/dist/esm-es5/sqm-partner-info-modal-view-a6324934.js +1 -0
  27. package/dist/esm-es5/sqm-partner-info-modal.entry.js +1 -0
  28. package/dist/esm-es5/sqm-stencilbook.entry.js +1 -1
  29. package/dist/esm-es5/{sqm-user-info-form-view-712cd51b.js → sqm-user-info-form-view-365cef98.js} +1 -1
  30. package/dist/mint-components/mint-components.esm.js +1 -1
  31. package/dist/mint-components/{p-fc783749.entry.js → p-038d0b8f.entry.js} +1 -1
  32. package/dist/mint-components/p-1c413a06.system.js +1 -1
  33. package/dist/mint-components/p-1e35f151.system.js +1 -0
  34. package/dist/mint-components/{p-842f45b9.js → p-52eca331.js} +1 -1
  35. package/dist/mint-components/{p-0dc17c6a.entry.js → p-6530c3f1.entry.js} +2 -2
  36. package/dist/mint-components/{p-1b7dfd6f.system.entry.js → p-9b790948.system.entry.js} +1 -1
  37. package/dist/mint-components/{p-0a126d1b.system.entry.js → p-a0986077.system.entry.js} +1 -1
  38. package/dist/mint-components/p-a1e1c42a.js +1 -0
  39. package/dist/mint-components/{p-8e1acd9a.system.js → p-a2db4345.system.js} +1 -1
  40. package/dist/mint-components/{p-45e72bed.system.entry.js → p-b6ac3080.system.entry.js} +1 -1
  41. package/dist/mint-components/{p-91a00693.entry.js → p-bc4b2728.entry.js} +5 -5
  42. package/dist/mint-components/sqm-partner-info-modal.entry.js +489 -0
  43. package/dist/mint-components/sqm-partner-info-modal.system.entry.js +1 -0
  44. package/dist/types/components/sqm-partner-info-modal/sqm-partner-info-modal-view.d.ts +7 -0
  45. package/dist/types/components/sqm-partner-info-modal/sqm-partner-info-modal.d.ts +16 -0
  46. package/dist/types/components.d.ts +32 -0
  47. package/docs/docs.docx +0 -0
  48. package/docs/raisins.json +1 -1
  49. package/grapesjs/grapesjs.js +1 -1
  50. package/package.json +1 -1
  51. package/dist/esm-es5/sqm-partner-info-modal-view-08b7c5f6.js +0 -1
  52. package/dist/mint-components/p-b077d478.js +0 -1
  53. package/dist/mint-components/p-da6c5d98.system.js +0 -1
@@ -0,0 +1,489 @@
1
+ import { r as registerInstance, h as h$1 } from './index-d9876cd5.js';
2
+ import './global-a70b85ca.js';
3
+ import { i as useState, m as useMemo, j as useEffect, o as h } from './dom-context-hooks.module-8411297a.js';
4
+ import { d as dist, L, r as En, w as wn, $ as $e, i as isDemo } from './index.module-76b0705d.js';
5
+ import './GoogleFonts-e3a7f82a.js';
6
+ import './jss-preset-default.esm-c36417f8.js';
7
+ import './JSS-8c381d8b.js';
8
+ import { g as getProps } from './utils-61821fb1.js';
9
+ import { c as cjs } from './cjs-e829b75b.js';
10
+ import { g as GET_FINANCE_NETWORK_SETTINGS } from './data-1f906245.js';
11
+ import { a as PartnerInfoModalContentView, P as PartnerInfoModalView } from './sqm-partner-info-modal-view-d61e1c5e.js';
12
+ import { V as VERIFICATION_PARENT_NAMESPACE } from './keys-db1897ae.js';
13
+ import { T as TAX_FORM_UPDATED_EVENT_KEY } from './eventKeys-f76b6a03.js';
14
+ import { p as parseStates } from './parseStates-ed75e224.js';
15
+
16
+ // new field under impactConnection:{ resolvedByEmail: boolean } - determines if connection came from managed identity
17
+ const GET_USER_PARTNER_INFO = dist.gql `
18
+ query getUserPartnerInfo {
19
+ user: viewer {
20
+ ... on User {
21
+ id
22
+ accountId
23
+ firstName
24
+ lastName
25
+ email
26
+ countryCode
27
+ customFields
28
+ impactConnection {
29
+ connected
30
+ connectionStatus
31
+ publisher {
32
+ id
33
+ countryCode
34
+ currency
35
+ }
36
+ }
37
+ }
38
+ }
39
+ }
40
+ `;
41
+ const GET_COUNTRIES = dist.gql `
42
+ query getCountries {
43
+ impactPayoutCountries(limit: 1000) {
44
+ data {
45
+ countryCode
46
+ displayName
47
+ }
48
+ }
49
+ }
50
+ `;
51
+ const GET_CURRENCIES = dist.gql `
52
+ query currencies($locale: RSLocale) {
53
+ currencies(limit: 300) {
54
+ data {
55
+ displayName(locale: $locale)
56
+ currencyCode
57
+ }
58
+ }
59
+ }
60
+ `;
61
+ const CONNECT_PARTNER = dist.gql `
62
+ mutation createImpactConnection($vars: ImpactConnectionInput!) {
63
+ createImpactConnection(impactConnectionInput: $vars) {
64
+ success
65
+ validationErrors {
66
+ field
67
+ message
68
+ }
69
+ user {
70
+ id
71
+ accountId
72
+ impactConnection {
73
+ connected
74
+ publisher {
75
+ brandedSignup
76
+ requiredTaxDocumentType
77
+ currentTaxDocument {
78
+ type
79
+ status
80
+ }
81
+ }
82
+ }
83
+ }
84
+ }
85
+ }
86
+ `;
87
+ const START_IMPACT_CONNECTION = dist.gql `
88
+ mutation startImpactConnection($vars: ImpactConnectionInput!) {
89
+ startImpactConnection(impactConnectionInput: $vars) {
90
+ success
91
+ validationErrors {
92
+ field
93
+ message
94
+ }
95
+ user {
96
+ id
97
+ accountId
98
+ impactConnection {
99
+ connected
100
+ publisher {
101
+ brandedSignup
102
+ requiredTaxDocumentType
103
+ currentTaxDocument {
104
+ type
105
+ status
106
+ }
107
+ }
108
+ }
109
+ }
110
+ }
111
+ }
112
+ `;
113
+ const GET_BRAND_NAME = dist.gql `
114
+ query getTenantSettings {
115
+ tenantSettings {
116
+ companyName
117
+ }
118
+ }
119
+ `;
120
+ function usePartnerInfoModal(props) {
121
+ var _a, _b, _c, _d, _e, _f, _g;
122
+ const locale = L();
123
+ const setVerificationContext = En(VERIFICATION_PARENT_NAMESPACE);
124
+ const { data: userData, loading: userLoading, refetch, } = wn(GET_USER_PARTNER_INFO, {});
125
+ const user = userData === null || userData === void 0 ? void 0 : userData.user;
126
+ const { data: currenciesData, loading: currenciesLoading } = wn(GET_CURRENCIES, { variables: { locale } });
127
+ const { data: countriesData, loading: countriesLoading } = wn(GET_COUNTRIES, {});
128
+ const { data: tenantSettingsData } = wn(GET_BRAND_NAME, {});
129
+ const { data: financeNetworkData } = wn(GET_FINANCE_NETWORK_SETTINGS, {
130
+ variables: { filter: {} },
131
+ });
132
+ const [startImpactConnection, { loading: connectLoading, errors: connectErrors },] = $e(START_IMPACT_CONNECTION);
133
+ const [allowBankingCollection, setAllowBankingCollection] = useState(false);
134
+ const [checkboxError, setCheckboxError] = useState("");
135
+ // No pre-filled country, use locale to determine countryCode instead
136
+ const [countryCode, setCountryCode] = useState(((_b = (_a = user === null || user === void 0 ? void 0 : user.impactConnection) === null || _a === void 0 ? void 0 : _a.publisher) === null || _b === void 0 ? void 0 : _b.countryCode) ||
137
+ locale.replace(/^.*_/, ""));
138
+ const [currency, setCurrency] = useState(((_d = (_c = user === null || user === void 0 ? void 0 : user.impactConnection) === null || _c === void 0 ? void 0 : _c.publisher) === null || _d === void 0 ? void 0 : _d.currency) || "");
139
+ const countries = ((_e = countriesData === null || countriesData === void 0 ? void 0 : countriesData.impactPayoutCountries) === null || _e === void 0 ? void 0 : _e.data) || [];
140
+ // copied from useTaxAndCash for displaying currencies based on country - could be in helper?
141
+ const currencies = useMemo(() => {
142
+ var _a, _b;
143
+ const allValidCurrencies = (_b = (_a = financeNetworkData === null || financeNetworkData === void 0 ? void 0 : financeNetworkData.impactFinanceNetworkSettings) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.reduce((agg, settings) => {
144
+ var _a, _b;
145
+ const currency = (_b = (_a = currenciesData === null || currenciesData === void 0 ? void 0 : currenciesData.currencies) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.find((c) => c.currencyCode === settings.currency);
146
+ if (!currency)
147
+ return agg;
148
+ if (agg.find((c) => c.currencyCode === settings.currency))
149
+ return agg;
150
+ if (countryCode && settings.countryCode !== countryCode)
151
+ return agg;
152
+ return [...agg, currency];
153
+ }, []);
154
+ return (allValidCurrencies || []).sort((a, b) => a.displayName.localeCompare(b.displayName));
155
+ }, [financeNetworkData, currenciesData, countryCode]);
156
+ const [countrySearch, setCountrySearch] = useState("");
157
+ const [currencySearch, setCurrencySearch] = useState("");
158
+ const [filteredCountries, setFilteredCountries] = useState(((_f = countriesData === null || countriesData === void 0 ? void 0 : countriesData.impactPayoutCountries) === null || _f === void 0 ? void 0 : _f.data) || []);
159
+ const [filteredCurrencies, setFilteredCurrencies] = useState(currencies || []);
160
+ console.log(userData, "userData partner info modal");
161
+ const [error, setError] = useState("");
162
+ const [success, setSuccess] = useState(false);
163
+ useEffect(() => {
164
+ var _a;
165
+ const publisher = (_a = user === null || user === void 0 ? void 0 : user.impactConnection) === null || _a === void 0 ? void 0 : _a.publisher;
166
+ if (!userData || !publisher)
167
+ return;
168
+ setCountryCode(publisher.countryCode);
169
+ setCurrency(publisher.currency);
170
+ }, [userData, user]);
171
+ useEffect(() => {
172
+ if (!(countries === null || countries === void 0 ? void 0 : countries.length))
173
+ return;
174
+ if (countrySearch.trim() === "") {
175
+ setFilteredCountries(countries || []);
176
+ }
177
+ else {
178
+ setFilteredCountries(countries.filter((c) => c.displayName.toLowerCase().includes(countrySearch.toLowerCase())) || []);
179
+ }
180
+ }, [countrySearch, countries]);
181
+ useEffect(() => {
182
+ if (!(currencies === null || currencies === void 0 ? void 0 : currencies.length))
183
+ return;
184
+ if (currencySearch.trim() === "") {
185
+ setFilteredCurrencies(currencies || []);
186
+ }
187
+ else {
188
+ setFilteredCurrencies(currencies.filter((c) => c.currencyCode.toLowerCase().includes(currencySearch.toLowerCase())) || []);
189
+ }
190
+ }, [currencySearch, currencies]);
191
+ const impactConnection = user === null || user === void 0 ? void 0 : user.impactConnection;
192
+ function onCountryChange(e) {
193
+ var _a, _b;
194
+ const value = (_b = (_a = e.detail) === null || _a === void 0 ? void 0 : _a.item) === null || _b === void 0 ? void 0 : _b.__value;
195
+ if (!value)
196
+ return;
197
+ setCountryCode(value);
198
+ setCurrency("");
199
+ setError("");
200
+ }
201
+ function onCurrencyChange(e) {
202
+ var _a, _b;
203
+ const value = (_b = (_a = e.detail) === null || _a === void 0 ? void 0 : _a.item) === null || _b === void 0 ? void 0 : _b.__value;
204
+ if (!value)
205
+ return;
206
+ setCurrency(value);
207
+ setError("");
208
+ }
209
+ function onCheckboxChange(e) {
210
+ const checked = e.target.checked;
211
+ setAllowBankingCollection(checked);
212
+ if (checked)
213
+ setCheckboxError("");
214
+ }
215
+ async function onSubmit() {
216
+ var _a, _b;
217
+ if (!allowBankingCollection) {
218
+ setCheckboxError(props.missingFieldsErrorText);
219
+ return;
220
+ }
221
+ if (!countryCode || !currency) {
222
+ setError(props.missingFieldsErrorText);
223
+ return;
224
+ }
225
+ setError("");
226
+ setCheckboxError("");
227
+ try {
228
+ const vars = {
229
+ user: {
230
+ id: user.id,
231
+ accountId: user.accountId,
232
+ },
233
+ firstName: user.firstName,
234
+ lastName: user.lastName,
235
+ // phoneNumber: null,
236
+ // phoneNumberCountryCode: null,
237
+ countryCode,
238
+ currency,
239
+ };
240
+ const result = await startImpactConnection({ vars });
241
+ if (!result || ((_a = result) === null || _a === void 0 ? void 0 : _a.message)) {
242
+ setError(props.networkErrorText);
243
+ return;
244
+ }
245
+ const connectionResult = result
246
+ .startImpactConnection;
247
+ console.log(result, connectionResult, "result and connectionResult from creating partner from modal");
248
+ if (!(connectionResult === null || connectionResult === void 0 ? void 0 : connectionResult.success)) {
249
+ const validationMsg = (_b = connectionResult === null || connectionResult === void 0 ? void 0 : connectionResult.validationErrors) === null || _b === void 0 ? void 0 : _b.map((e) => e.message).join(". ");
250
+ setError(validationMsg || props.networkErrorText);
251
+ console.error("Failed to create Impact connection:", connectionResult === null || connectionResult === void 0 ? void 0 : connectionResult.validationErrors);
252
+ return;
253
+ }
254
+ window.dispatchEvent(new Event(TAX_FORM_UPDATED_EVENT_KEY));
255
+ await refetch();
256
+ setSuccess(true);
257
+ setVerificationContext(true);
258
+ }
259
+ catch (e) {
260
+ console.error("Partner creation error:", e);
261
+ setError(props.networkErrorText);
262
+ }
263
+ }
264
+ const showModal = !success &&
265
+ !userLoading &&
266
+ (impactConnection === null || impactConnection === void 0 ? void 0 : impactConnection.connectionStatus) === "NOT_STARTED";
267
+ return {
268
+ states: {
269
+ open: showModal,
270
+ loading: userLoading || countriesLoading || currenciesLoading,
271
+ submitting: connectLoading,
272
+ isExistingPartner: impactConnection === null || impactConnection === void 0 ? void 0 : impactConnection.publisher,
273
+ countryCode,
274
+ currency,
275
+ error,
276
+ success,
277
+ brandName: ((_g = tenantSettingsData === null || tenantSettingsData === void 0 ? void 0 : tenantSettingsData.tenantSettings) === null || _g === void 0 ? void 0 : _g.companyName) || "",
278
+ filteredCountries: filteredCountries || [],
279
+ filteredCurrencies: filteredCurrencies || [],
280
+ allowBankingCollection,
281
+ checkboxError,
282
+ disabled: userLoading || connectLoading,
283
+ },
284
+ callbacks: {
285
+ onCountryChange,
286
+ onCurrencyChange,
287
+ onCheckboxChange,
288
+ setCurrencySearch,
289
+ setCountrySearch,
290
+ onSubmit,
291
+ onClose: () => setSuccess(true),
292
+ },
293
+ text: props.getTextProps(),
294
+ };
295
+ }
296
+
297
+ const PartnerInfoModal = class {
298
+ constructor(hostRef) {
299
+ registerInstance(this, hostRef);
300
+ /**
301
+ * Brand name shown in the modal header
302
+ *
303
+ * @uiName Brand name
304
+ */
305
+ this.brandName = "";
306
+ /**
307
+ * Header text when user has no existing partner
308
+ *
309
+ * @uiName New partner header
310
+ * @uiWidget textArea
311
+ */
312
+ this.modalHeader = "Let's get you ready for rewards";
313
+ /**
314
+ * Header text when user has an existing partner
315
+ *
316
+ * @uiName Existing partner header
317
+ * @uiWidget textArea
318
+ */
319
+ this.modalHeaderExistingPartner = "We found an existing account";
320
+ /**
321
+ * Description for new partner setup
322
+ *
323
+ * @uiName New partner description
324
+ * @uiWidget textArea
325
+ */
326
+ this.descriptionNewPartner = "Confirm your country and currency now to get your future rewards faster.";
327
+ /**
328
+ * Description for existing partner confirmation
329
+ *
330
+ * @uiName Existing partner description
331
+ * @uiWidget textArea
332
+ */
333
+ this.descriptionExistingPartner = "We found an account with this email on our referral program provider, impact.com. Please confirm your country and currency now to get your future rewards faster.";
334
+ /**
335
+ * Support description for existing partner confirmation
336
+ *
337
+ * @uiName Existing partner support description
338
+ * @uiWidget textArea
339
+ */
340
+ this.supportDescriptionExistingPartner = "If this is a mistake, please contact Support or sign up for this referral program with a different email.";
341
+ /**
342
+ * Edit the property called terms and conditions text to change what's displayed for {termsAndConditionsLink}.
343
+ * @uiName Terms and conditions checkbox
344
+ */
345
+ this.allowBankingCollection = "I have read the {termsAndConditionsLink} and allow impact.com to collect my tax and banking information";
346
+ /**
347
+ * The link text that appears in the terms and conditions checkbox
348
+ * @uiName Terms and conditions text
349
+ * @uiWidget textArea
350
+ */
351
+ this.termsAndConditionsLabel = "terms and conditions";
352
+ /**
353
+ * The link that appears in the terms and conditions checkbox
354
+ * @uiName Terms and conditions link
355
+ */
356
+ this.termsAndConditionsLink = "https://terms.advocate.impact.com/PayoutTermsAndConditions.html";
357
+ /**
358
+ * @uiName Country label
359
+ */
360
+ this.countryLabel = "Country";
361
+ /**
362
+ * @uiName Currency label
363
+ */
364
+ this.currencyLabel = "Currency";
365
+ /**
366
+ * @uiName Submit button label
367
+ */
368
+ this.submitButtonLabel = "Submit";
369
+ /**
370
+ * @uiName Confirm button label
371
+ */
372
+ this.confirmButtonLabel = "Confirm";
373
+ /**
374
+ * @uiName Search country placeholder
375
+ */
376
+ this.searchCountryPlaceholder = "Search for a country";
377
+ /**
378
+ * @uiName Search currency placeholder
379
+ */
380
+ this.searchCurrencyPlaceholder = "Search for a currency";
381
+ /**
382
+ * @uiName Network error text
383
+ * @uiWidget textArea
384
+ */
385
+ this.networkErrorText = "An error occurred. Please try again.";
386
+ /**
387
+ * @uiName Missing fields error text
388
+ * @uiWidget textArea
389
+ */
390
+ this.missingFieldsErrorText = "Please select both a country and currency.";
391
+ /**
392
+ * Used to render in another modal.
393
+ * @undocumented
394
+ */
395
+ this.inModal = false;
396
+ /**
397
+ * @undocumented
398
+ * @componentState { "title": "New partner", "props": { "states": { "open": true, "isExistingPartner": false } } }
399
+ * @componentState { "title": "Existing partner", "props": { "states": { "open": true, "isExistingPartner": true, "countryCode": "US", "currency": "USD" } } }
400
+ * @componentState { "title": "Connected (hidden)", "props": { "states": { "open": false } } }
401
+ */
402
+ this.stateController = "{}";
403
+ h(this);
404
+ }
405
+ disconnectedCallback() { }
406
+ getTextProps() {
407
+ return getProps(this);
408
+ }
409
+ render() {
410
+ const props = isDemo()
411
+ ? useDemoPartnerInfoModal(this)
412
+ : usePartnerInfoModal(this);
413
+ if (this.inModal) {
414
+ return h$1(PartnerInfoModalContentView, Object.assign({}, props));
415
+ }
416
+ return h$1(PartnerInfoModalView, Object.assign({}, props));
417
+ }
418
+ };
419
+ function useDemoPartnerInfoModal(props) {
420
+ const [countryCode, setCountryCode] = useState("US");
421
+ const [currency, setCurrency] = useState("");
422
+ const [error, setError] = useState("");
423
+ const [allowBankingCollection, setAllowBankingCollection] = useState(false);
424
+ const parsed = parseStates(props.stateController);
425
+ const stateOverride = (parsed === null || parsed === void 0 ? void 0 : parsed["sqm-partner-info-modal"]) || parsed || {};
426
+ // @ts-ignore
427
+ return cjs({
428
+ states: {
429
+ brandName: "Test Brand",
430
+ open: false,
431
+ loading: false,
432
+ submitting: false,
433
+ isExistingPartner: false,
434
+ countryCode,
435
+ currency,
436
+ error,
437
+ success: false,
438
+ filteredCountries: [],
439
+ filteredCurrencies: [],
440
+ allowBankingCollection,
441
+ checkboxError: "",
442
+ disabled: false,
443
+ },
444
+ callbacks: {
445
+ onCountryChange: (e) => {
446
+ var _a, _b;
447
+ const value = (_b = (_a = e === null || e === void 0 ? void 0 : e.detail) === null || _a === void 0 ? void 0 : _a.item) === null || _b === void 0 ? void 0 : _b.__value;
448
+ if (value) {
449
+ setCountryCode(value);
450
+ setCurrency("");
451
+ }
452
+ },
453
+ onCurrencyChange: (e) => {
454
+ var _a, _b;
455
+ const value = (_b = (_a = e === null || e === void 0 ? void 0 : e.detail) === null || _a === void 0 ? void 0 : _a.item) === null || _b === void 0 ? void 0 : _b.__value;
456
+ if (value)
457
+ setCurrency(value);
458
+ },
459
+ onCheckboxChange: (e) => {
460
+ setAllowBankingCollection(e.target.checked);
461
+ },
462
+ setCountrySearch: () => { },
463
+ setCurrencySearch: () => { },
464
+ onSubmit: () => {
465
+ if (!countryCode || !currency) {
466
+ setError(props.missingFieldsErrorText);
467
+ return;
468
+ }
469
+ setError("");
470
+ },
471
+ onClose: () => { },
472
+ },
473
+ text: {
474
+ modalHeader: props.modalHeader,
475
+ descriptionNewPartner: props.descriptionNewPartner,
476
+ descriptionExistingPartner: props.descriptionExistingPartner,
477
+ countryLabel: props.countryLabel,
478
+ currencyLabel: props.currencyLabel,
479
+ submitButtonLabel: props.submitButtonLabel,
480
+ confirmButtonLabel: props.confirmButtonLabel,
481
+ searchCountryPlaceholder: props.searchCountryPlaceholder,
482
+ searchCurrencyPlaceholder: props.searchCurrencyPlaceholder,
483
+ supportDescriptionExistingPartner: props.supportDescriptionExistingPartner,
484
+ modalHeaderExistingPartner: props.modalHeaderExistingPartner,
485
+ },
486
+ }, props.demoData || stateOverride, { arrayMerge: (_, a) => a });
487
+ }
488
+
489
+ export { PartnerInfoModal as sqm_partner_info_modal };
@@ -0,0 +1 @@
1
+ var __makeTemplateObject=this&&this.__makeTemplateObject||function(n,e){if(Object.defineProperty){Object.defineProperty(n,"raw",{value:e})}else{n.raw=e}return n};var __awaiter=this&&this.__awaiter||function(n,e,t,r){function o(n){return n instanceof t?n:new t((function(e){e(n)}))}return new(t||(t=Promise))((function(t,i){function a(n){try{s(r.next(n))}catch(n){i(n)}}function c(n){try{s(r["throw"](n))}catch(n){i(n)}}function s(n){n.done?t(n.value):o(n.value).then(a,c)}s((r=r.apply(n,e||[])).next())}))};var __generator=this&&this.__generator||function(n,e){var t={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},r,o,i,a;return a={next:c(0),throw:c(1),return:c(2)},typeof Symbol==="function"&&(a[Symbol.iterator]=function(){return this}),a;function c(n){return function(e){return s([n,e])}}function s(a){if(r)throw new TypeError("Generator is already executing.");while(t)try{if(r=1,o&&(i=a[0]&2?o["return"]:a[0]?o["throw"]||((i=o["return"])&&i.call(o),0):o.next)&&!(i=i.call(o,a[1])).done)return i;if(o=0,i)a=[a[0]&2,i.value];switch(a[0]){case 0:case 1:i=a;break;case 4:t.label++;return{value:a[1],done:false};case 5:t.label++;o=a[1];a=[0];continue;case 7:a=t.ops.pop();t.trys.pop();continue;default:if(!(i=t.trys,i=i.length>0&&i[i.length-1])&&(a[0]===6||a[0]===2)){t=0;continue}if(a[0]===3&&(!i||a[1]>i[0]&&a[1]<i[3])){t.label=a[1];break}if(a[0]===6&&t.label<i[1]){t.label=i[1];i=a;break}if(i&&t.label<i[2]){t.label=i[2];t.ops.push(a);break}if(i[2])t.ops.pop();t.trys.pop();continue}a=e.call(n,t)}catch(n){a=[6,n];o=0}finally{r=i=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:true}}};var __spreadArrays=this&&this.__spreadArrays||function(){for(var n=0,e=0,t=arguments.length;e<t;e++)n+=arguments[e].length;for(var r=Array(n),o=0,e=0;e<t;e++)for(var i=arguments[e],a=0,c=i.length;a<c;a++,o++)r[o]=i[a];return r};System.register(["./index-6582b378.system.js","./global-0a7aa77b.system.js","./dom-context-hooks.module-d6e89c16.system.js","./index.module-5e7007c8.system.js","./GoogleFonts-eea308bc.system.js","./jss-preset-default.esm-62a04d6d.system.js","./JSS-840a8fea.system.js","./utils-b405e671.system.js","./cjs-f0ef8d23.system.js","./data-593543bf.system.js","./sqm-partner-info-modal-view-9ef21b8d.system.js","./keys-4fe6dfb6.system.js","./eventKeys-8c222120.system.js","./parseStates-5fae0361.system.js"],(function(n){"use strict";var e,t,r,o,i,a,c,s,u,l,d,v,m,f,p,y,h,C,g,b;return{setters:[function(n){e=n.r;t=n.h},function(){},function(n){r=n.i;o=n.m;i=n.j;a=n.o},function(n){c=n.d;s=n.L;u=n.r;l=n.w;d=n.$;v=n.i},function(){},function(){},function(){},function(n){m=n.g},function(n){f=n.c},function(n){p=n.g},function(n){y=n.a;h=n.P},function(n){C=n.V},function(n){g=n.T},function(n){b=n.p}],execute:function(){var w=c.gql(__makeTemplateObject(["\n query getUserPartnerInfo {\n user: viewer {\n ... on User {\n id\n accountId\n firstName\n lastName\n email\n countryCode\n customFields\n impactConnection {\n connected\n connectionStatus\n publisher {\n id\n countryCode\n currency\n }\n }\n }\n }\n }\n"],["\n query getUserPartnerInfo {\n user: viewer {\n ... on User {\n id\n accountId\n firstName\n lastName\n email\n countryCode\n customFields\n impactConnection {\n connected\n connectionStatus\n publisher {\n id\n countryCode\n currency\n }\n }\n }\n }\n }\n"]));var _=c.gql(__makeTemplateObject(["\n query getCountries {\n impactPayoutCountries(limit: 1000) {\n data {\n countryCode\n displayName\n }\n }\n }\n"],["\n query getCountries {\n impactPayoutCountries(limit: 1000) {\n data {\n countryCode\n displayName\n }\n }\n }\n"]));var x=c.gql(__makeTemplateObject(["\n query currencies($locale: RSLocale) {\n currencies(limit: 300) {\n data {\n displayName(locale: $locale)\n currencyCode\n }\n }\n }\n"],["\n query currencies($locale: RSLocale) {\n currencies(limit: 300) {\n data {\n displayName(locale: $locale)\n currencyCode\n }\n }\n }\n"]));var T=c.gql(__makeTemplateObject(["\n mutation createImpactConnection($vars: ImpactConnectionInput!) {\n createImpactConnection(impactConnectionInput: $vars) {\n success\n validationErrors {\n field\n message\n }\n user {\n id\n accountId\n impactConnection {\n connected\n publisher {\n brandedSignup\n requiredTaxDocumentType\n currentTaxDocument {\n type\n status\n }\n }\n }\n }\n }\n }\n"],["\n mutation createImpactConnection($vars: ImpactConnectionInput!) {\n createImpactConnection(impactConnectionInput: $vars) {\n success\n validationErrors {\n field\n message\n }\n user {\n id\n accountId\n impactConnection {\n connected\n publisher {\n brandedSignup\n requiredTaxDocumentType\n currentTaxDocument {\n type\n status\n }\n }\n }\n }\n }\n }\n"]));var P=c.gql(__makeTemplateObject(["\n mutation startImpactConnection($vars: ImpactConnectionInput!) {\n startImpactConnection(impactConnectionInput: $vars) {\n success\n validationErrors {\n field\n message\n }\n user {\n id\n accountId\n impactConnection {\n connected\n publisher {\n brandedSignup\n requiredTaxDocumentType\n currentTaxDocument {\n type\n status\n }\n }\n }\n }\n }\n }\n"],["\n mutation startImpactConnection($vars: ImpactConnectionInput!) {\n startImpactConnection(impactConnectionInput: $vars) {\n success\n validationErrors {\n field\n message\n }\n user {\n id\n accountId\n impactConnection {\n connected\n publisher {\n brandedSignup\n requiredTaxDocumentType\n currentTaxDocument {\n type\n status\n }\n }\n }\n }\n }\n }\n"]));var k=c.gql(__makeTemplateObject(["\n query getTenantSettings {\n tenantSettings {\n companyName\n }\n }\n"],["\n query getTenantSettings {\n tenantSettings {\n companyName\n }\n }\n"]));function I(n){var e,t,a,c,v,m,f;var y=s();var h=u(C);var b=l(w,{}),T=b.data,I=b.loading,S=b.refetch;var E=T===null||T===void 0?void 0:T.user;var j=l(x,{variables:{locale:y}}),N=j.data,L=j.loading;var q=l(_,{}),D=q.data,O=q.loading;var $=l(k,{}).data;var A=l(p,{variables:{filter:{}}}).data;var B=d(P),F=B[0],H=B[1],U=H.loading,R=H.errors;var M=r(false),G=M[0],W=M[1];var J=r(""),K=J[0],V=J[1];var z=r(((t=(e=E===null||E===void 0?void 0:E.impactConnection)===null||e===void 0?void 0:e.publisher)===null||t===void 0?void 0:t.countryCode)||y.replace(/^.*_/,"")),Q=z[0],X=z[1];var Y=r(((c=(a=E===null||E===void 0?void 0:E.impactConnection)===null||a===void 0?void 0:a.publisher)===null||c===void 0?void 0:c.currency)||""),Z=Y[0],nn=Y[1];var en=((v=D===null||D===void 0?void 0:D.impactPayoutCountries)===null||v===void 0?void 0:v.data)||[];var tn=o((function(){var n,e;var t=(e=(n=A===null||A===void 0?void 0:A.impactFinanceNetworkSettings)===null||n===void 0?void 0:n.data)===null||e===void 0?void 0:e.reduce((function(n,e){var t,r;var o=(r=(t=N===null||N===void 0?void 0:N.currencies)===null||t===void 0?void 0:t.data)===null||r===void 0?void 0:r.find((function(n){return n.currencyCode===e.currency}));if(!o)return n;if(n.find((function(n){return n.currencyCode===e.currency})))return n;if(Q&&e.countryCode!==Q)return n;return __spreadArrays(n,[o])}),[]);return(t||[]).sort((function(n,e){return n.displayName.localeCompare(e.displayName)}))}),[A,N,Q]);var rn=r(""),on=rn[0],an=rn[1];var cn=r(""),sn=cn[0],un=cn[1];var ln=r(((m=D===null||D===void 0?void 0:D.impactPayoutCountries)===null||m===void 0?void 0:m.data)||[]),dn=ln[0],vn=ln[1];var mn=r(tn||[]),fn=mn[0],pn=mn[1];console.log(T,"userData partner info modal");var yn=r(""),hn=yn[0],Cn=yn[1];var gn=r(false),bn=gn[0],wn=gn[1];i((function(){var n;var e=(n=E===null||E===void 0?void 0:E.impactConnection)===null||n===void 0?void 0:n.publisher;if(!T||!e)return;X(e.countryCode);nn(e.currency)}),[T,E]);i((function(){if(!(en===null||en===void 0?void 0:en.length))return;if(on.trim()===""){vn(en||[])}else{vn(en.filter((function(n){return n.displayName.toLowerCase().includes(on.toLowerCase())}))||[])}}),[on,en]);i((function(){if(!(tn===null||tn===void 0?void 0:tn.length))return;if(sn.trim()===""){pn(tn||[])}else{pn(tn.filter((function(n){return n.currencyCode.toLowerCase().includes(sn.toLowerCase())}))||[])}}),[sn,tn]);var _n=E===null||E===void 0?void 0:E.impactConnection;function xn(n){var e,t;var r=(t=(e=n.detail)===null||e===void 0?void 0:e.item)===null||t===void 0?void 0:t.__value;if(!r)return;X(r);nn("");Cn("")}function Tn(n){var e,t;var r=(t=(e=n.detail)===null||e===void 0?void 0:e.item)===null||t===void 0?void 0:t.__value;if(!r)return;nn(r);Cn("")}function Pn(n){var e=n.target.checked;W(e);if(e)V("")}function kn(){return __awaiter(this,void 0,void 0,(function(){var e,t,r,o,i,a,c;return __generator(this,(function(s){switch(s.label){case 0:if(!G){V(n.missingFieldsErrorText);return[2]}if(!Q||!Z){Cn(n.missingFieldsErrorText);return[2]}Cn("");V("");s.label=1;case 1:s.trys.push([1,4,,5]);r={user:{id:E.id,accountId:E.accountId},firstName:E.firstName,lastName:E.lastName,countryCode:Q,currency:Z};return[4,F({vars:r})];case 2:o=s.sent();if(!o||((e=o)===null||e===void 0?void 0:e.message)){Cn(n.networkErrorText);return[2]}i=o.startImpactConnection;console.log(o,i,"result and connectionResult from creating partner from modal");if(!(i===null||i===void 0?void 0:i.success)){a=(t=i===null||i===void 0?void 0:i.validationErrors)===null||t===void 0?void 0:t.map((function(n){return n.message})).join(". ");Cn(a||n.networkErrorText);console.error("Failed to create Impact connection:",i===null||i===void 0?void 0:i.validationErrors);return[2]}window.dispatchEvent(new Event(g));return[4,S()];case 3:s.sent();wn(true);h(true);return[3,5];case 4:c=s.sent();console.error("Partner creation error:",c);Cn(n.networkErrorText);return[3,5];case 5:return[2]}}))}))}var In=!bn&&!I&&(_n===null||_n===void 0?void 0:_n.connectionStatus)==="NOT_STARTED";return{states:{open:In,loading:I||O||L,submitting:U,isExistingPartner:_n===null||_n===void 0?void 0:_n.publisher,countryCode:Q,currency:Z,error:hn,success:bn,brandName:((f=$===null||$===void 0?void 0:$.tenantSettings)===null||f===void 0?void 0:f.companyName)||"",filteredCountries:dn||[],filteredCurrencies:fn||[],allowBankingCollection:G,checkboxError:K,disabled:I||U},callbacks:{onCountryChange:xn,onCurrencyChange:Tn,onCheckboxChange:Pn,setCurrencySearch:un,setCountrySearch:an,onSubmit:kn,onClose:function(){return wn(true)}},text:n.getTextProps()}}var S=n("sqm_partner_info_modal",function(){function n(n){e(this,n);this.brandName="";this.modalHeader="Let's get you ready for rewards";this.modalHeaderExistingPartner="We found an existing account";this.descriptionNewPartner="Confirm your country and currency now to get your future rewards faster.";this.descriptionExistingPartner="We found an account with this email on our referral program provider, impact.com. Please confirm your country and currency now to get your future rewards faster.";this.supportDescriptionExistingPartner="If this is a mistake, please contact Support or sign up for this referral program with a different email.";this.allowBankingCollection="I have read the {termsAndConditionsLink} and allow impact.com to collect my tax and banking information";this.termsAndConditionsLabel="terms and conditions";this.termsAndConditionsLink="https://terms.advocate.impact.com/PayoutTermsAndConditions.html";this.countryLabel="Country";this.currencyLabel="Currency";this.submitButtonLabel="Submit";this.confirmButtonLabel="Confirm";this.searchCountryPlaceholder="Search for a country";this.searchCurrencyPlaceholder="Search for a currency";this.networkErrorText="An error occurred. Please try again.";this.missingFieldsErrorText="Please select both a country and currency.";this.inModal=false;this.stateController="{}";a(this)}n.prototype.disconnectedCallback=function(){};n.prototype.getTextProps=function(){return m(this)};n.prototype.render=function(){var n=v()?E(this):I(this);if(this.inModal){return t(y,Object.assign({},n))}return t(h,Object.assign({},n))};return n}());function E(n){var e=r("US"),t=e[0],o=e[1];var i=r(""),a=i[0],c=i[1];var s=r(""),u=s[0],l=s[1];var d=r(false),v=d[0],m=d[1];var p=b(n.stateController);var y=(p===null||p===void 0?void 0:p["sqm-partner-info-modal"])||p||{};return f({states:{brandName:"Test Brand",open:false,loading:false,submitting:false,isExistingPartner:false,countryCode:t,currency:a,error:u,success:false,filteredCountries:[],filteredCurrencies:[],allowBankingCollection:v,checkboxError:"",disabled:false},callbacks:{onCountryChange:function(n){var e,t;var r=(t=(e=n===null||n===void 0?void 0:n.detail)===null||e===void 0?void 0:e.item)===null||t===void 0?void 0:t.__value;if(r){o(r);c("")}},onCurrencyChange:function(n){var e,t;var r=(t=(e=n===null||n===void 0?void 0:n.detail)===null||e===void 0?void 0:e.item)===null||t===void 0?void 0:t.__value;if(r)c(r)},onCheckboxChange:function(n){m(n.target.checked)},setCountrySearch:function(){},setCurrencySearch:function(){},onSubmit:function(){if(!t||!a){l(n.missingFieldsErrorText);return}l("")},onClose:function(){}},text:{modalHeader:n.modalHeader,descriptionNewPartner:n.descriptionNewPartner,descriptionExistingPartner:n.descriptionExistingPartner,countryLabel:n.countryLabel,currencyLabel:n.currencyLabel,submitButtonLabel:n.submitButtonLabel,confirmButtonLabel:n.confirmButtonLabel,searchCountryPlaceholder:n.searchCountryPlaceholder,searchCurrencyPlaceholder:n.searchCurrencyPlaceholder,supportDescriptionExistingPartner:n.supportDescriptionExistingPartner,modalHeaderExistingPartner:n.modalHeaderExistingPartner}},n.demoData||y,{arrayMerge:function(n,e){return e}})}}}}));
@@ -17,10 +17,14 @@ export interface PartnerInfoModalViewProps {
17
17
  currencyCode: string;
18
18
  displayName: string;
19
19
  }[];
20
+ allowBankingCollection: boolean;
21
+ checkboxError: string;
22
+ disabled: boolean;
20
23
  };
21
24
  callbacks: {
22
25
  onCountryChange: (e: any) => void;
23
26
  onCurrencyChange: (e: any) => void;
27
+ onCheckboxChange: (e: any) => void;
24
28
  setCurrencySearch: (c: any) => void;
25
29
  setCountrySearch: (c: any) => void;
26
30
  onSubmit: () => void;
@@ -38,6 +42,9 @@ export interface PartnerInfoModalViewProps {
38
42
  searchCurrencyPlaceholder: string;
39
43
  supportDescriptionExistingPartner: string;
40
44
  modalHeaderExistingPartner: string;
45
+ allowBankingCollection: string;
46
+ termsAndConditionsLabel: string;
47
+ termsAndConditionsLink: string;
41
48
  };
42
49
  }
43
50
  export declare function PartnerInfoModalContentView(props: PartnerInfoModalViewProps): any;
@@ -48,6 +48,22 @@ export declare class PartnerInfoModal {
48
48
  * @uiWidget textArea
49
49
  */
50
50
  supportDescriptionExistingPartner: string;
51
+ /**
52
+ * Edit the property called terms and conditions text to change what's displayed for {termsAndConditionsLink}.
53
+ * @uiName Terms and conditions checkbox
54
+ */
55
+ allowBankingCollection: string;
56
+ /**
57
+ * The link text that appears in the terms and conditions checkbox
58
+ * @uiName Terms and conditions text
59
+ * @uiWidget textArea
60
+ */
61
+ termsAndConditionsLabel: string;
62
+ /**
63
+ * The link that appears in the terms and conditions checkbox
64
+ * @uiName Terms and conditions link
65
+ */
66
+ termsAndConditionsLink: string;
51
67
  /**
52
68
  * @uiName Country label
53
69
  */
@@ -2312,6 +2312,11 @@ export namespace Components {
2312
2312
  "paginationText": string;
2313
2313
  }
2314
2314
  interface SqmPartnerInfoModal {
2315
+ /**
2316
+ * Edit the property called terms and conditions text to change what's displayed for {termsAndConditionsLink}.
2317
+ * @uiName Terms and conditions checkbox
2318
+ */
2319
+ "allowBankingCollection": string;
2315
2320
  /**
2316
2321
  * Brand name shown in the modal header
2317
2322
  * @uiName Brand name
@@ -2398,6 +2403,17 @@ export namespace Components {
2398
2403
  * @uiWidget textArea
2399
2404
  */
2400
2405
  "supportDescriptionExistingPartner": string;
2406
+ /**
2407
+ * The link text that appears in the terms and conditions checkbox
2408
+ * @uiName Terms and conditions text
2409
+ * @uiWidget textArea
2410
+ */
2411
+ "termsAndConditionsLabel": string;
2412
+ /**
2413
+ * The link that appears in the terms and conditions checkbox
2414
+ * @uiName Terms and conditions link
2415
+ */
2416
+ "termsAndConditionsLink": string;
2401
2417
  }
2402
2418
  interface SqmPasswordField {
2403
2419
  /**
@@ -10522,6 +10538,11 @@ declare namespace LocalJSX {
10522
10538
  "paginationText"?: string;
10523
10539
  }
10524
10540
  interface SqmPartnerInfoModal {
10541
+ /**
10542
+ * Edit the property called terms and conditions text to change what's displayed for {termsAndConditionsLink}.
10543
+ * @uiName Terms and conditions checkbox
10544
+ */
10545
+ "allowBankingCollection"?: string;
10525
10546
  /**
10526
10547
  * Brand name shown in the modal header
10527
10548
  * @uiName Brand name
@@ -10608,6 +10629,17 @@ declare namespace LocalJSX {
10608
10629
  * @uiWidget textArea
10609
10630
  */
10610
10631
  "supportDescriptionExistingPartner"?: string;
10632
+ /**
10633
+ * The link text that appears in the terms and conditions checkbox
10634
+ * @uiName Terms and conditions text
10635
+ * @uiWidget textArea
10636
+ */
10637
+ "termsAndConditionsLabel"?: string;
10638
+ /**
10639
+ * The link that appears in the terms and conditions checkbox
10640
+ * @uiName Terms and conditions link
10641
+ */
10642
+ "termsAndConditionsLink"?: string;
10611
10643
  }
10612
10644
  interface SqmPasswordField {
10613
10645
  /**
package/docs/docs.docx CHANGED
Binary file