@everymatrix/cashier-verifications 1.39.1 → 1.39.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@everymatrix/cashier-verifications",
3
- "version": "1.39.1",
3
+ "version": "1.39.3",
4
4
  "main": "index.js",
5
5
  "svelte": "src/index.ts",
6
6
  "scripts": {
@@ -35,5 +35,5 @@
35
35
  "publishConfig": {
36
36
  "access": "public"
37
37
  },
38
- "gitHead": "cc6e3a021c852cb2734662bef9ef45190de4bfa9"
38
+ "gitHead": "34113a6474c9833b52690631f489148f6b5c67e0"
39
39
  }
@@ -1,7 +1,7 @@
1
1
  <svelte:options tag={null} />
2
2
  <script lang="ts">
3
3
 
4
- import { _, addNewMessages, setLocale } from './i18n';
4
+ import { _, addNewMessages, setLocale, setupI18n } from './i18n';
5
5
  import { TRANSLATIONS } from './translations';
6
6
 
7
7
  export let endpoint: string;
@@ -17,7 +17,7 @@
17
17
  let clickedVerificationsLink = new Set<string>();
18
18
  let verificationStatus: Verifications;
19
19
  let displayMessages;
20
- let allVerificationsVisible = false;
20
+ let allVerificationsVisible = true;
21
21
 
22
22
  enum CustomerVerificationVendors {
23
23
  'Manual' = 'Manual',
@@ -29,15 +29,15 @@
29
29
  }
30
30
 
31
31
  enum CustomerVerificationStatus {
32
- 'Unknown',
33
- 'Unverified',
34
- 'InProgress',
35
- 'Failed',
36
- 'Verified',
37
- 'Referred',
38
- 'True',
39
- 'False',
40
- 'AwaitingForResponse'
32
+ 'Unknown' = 'Unknown',
33
+ 'Unverified' = 'Unverified',
34
+ 'InProgress' = 'InProgress',
35
+ 'Failed' = 'Failed',
36
+ 'Verified' = 'Verified',
37
+ 'Referred' = 'Referred',
38
+ 'True' = 'True',
39
+ 'False' = 'False',
40
+ 'AwaitingForResponse' = 'AwaitingForResponse'
41
41
  }
42
42
 
43
43
  enum CustomerVerificationType {
@@ -130,19 +130,12 @@
130
130
  })
131
131
  }
132
132
  fetch(url, requestParams).then(res => res.json()).then(data => {
133
- data.Verifications.forEach(status => {
134
- if (status.Flags.DeferredUrlTypeKey !== 'Widget') {
135
- verificationVendorList.add(status.VendorName);
133
+ verificationStatus = getCalculatedStatus(data.Verifications);
134
+ verificationStatus.VerificationStatuses.forEach(status => {
135
+ if (status.VerificationUrlType !== 'Widget') {
136
+ verificationVendorList.add(status.Vendor);
136
137
  }
137
138
  })
138
- verificationStatus = getCalculatedStatus(data.Verifications);
139
- verificationStatus.VerificationStatuses = data.Verifications.map((verification) => ({
140
- Type: verification.Type,
141
- Vendor: verification.VendorName,
142
- VerificationDocuments: verification.Documents ? [...Object.values(verification.Documents)] : [],
143
- VerificationUrlType: verification.Flags?.DeferredUrlTypeKey,
144
- VerificationUrl: verification.Flags?.DeferredUrlKey
145
- }))
146
139
  displayMessages = getMessages()
147
140
  })
148
141
  }
@@ -163,34 +156,53 @@
163
156
  }
164
157
 
165
158
  const getCalculatedStatus = (verifications) => {
166
- if (!verifications || !verifications.length) {
167
- return { VerificationSummaryStatus: CustomerVerificationStatus.Unverified }
168
- }
159
+ if (!verifications || !verifications.length) {
160
+ return { VerificationSummaryStatus: CustomerVerificationStatus.Unverified }
161
+ }
169
162
  const verificationInProgress = getVerificationInProgress(verifications);
170
163
  if (verificationInProgress) {
171
164
  return {
172
165
  VerificationSummaryStatus: CustomerVerificationStatus.InProgress,
173
- VerificationUrl : verificationInProgress.Flags?.DeferredUrlKey
166
+ VerificationUrl: verificationInProgress.Flags?.DeferredUrlKey,
167
+ VerificationStatuses: getVerificationsFilteredByStatus(verifications, verificationStatusInProgress)
174
168
  }
175
169
  } else {
176
170
  const isVerificationFailed = verifications.some((verification) => verification.Status === CustomerVerificationStatus.Failed )
177
171
  return {
178
- VerificationSummaryStatus: isVerificationFailed ? CustomerVerificationStatus.Failed : CustomerVerificationStatus.Verified
172
+ VerificationSummaryStatus: isVerificationFailed ? CustomerVerificationStatus.Failed : CustomerVerificationStatus.Verified,
173
+ VerificationStatuses: getVerificationsFilteredByStatus(verifications, [CustomerVerificationStatus.Failed])
179
174
  }
180
175
  }
181
176
  }
182
177
 
178
+ const getVerificationsFilteredByStatus = (verifications, statuses) => {
179
+ return verifications
180
+ .filter((verification) => statuses.includes(verification.Status))
181
+ .map((verification) => ({
182
+ Type: verification.Type,
183
+ Vendor: verification.VendorName,
184
+ VerificationDocuments: verification.Documents ? [...Object.values(verification.Documents)] : [],
185
+ VerificationUrlType: verification.Flags?.DeferredUrlTypeKey,
186
+ VerificationUrl: verification.Flags?.DeferredUrlKey
187
+ }))
188
+ }
189
+
183
190
  const getVerificationInProgress = (verifications) => {
184
191
  return verifications.find((verification) => {
185
192
  let isInProgress = verificationStatusInProgress.includes(verification.Status);
186
- let hasRequestedDocs = false;
187
- if (!isInProgress && verification.Documents && verification.VendorName === CustomerVerificationVendors.Manual) {
188
- hasRequestedDocs = Object.values(verification.Documents).some((doc) => doc.Status === VerificationDocumentsStatuses.Requested)
193
+ if (!isInProgress) {
194
+ return false;
189
195
  }
190
- return isInProgress || hasRequestedDocs
196
+ return verification.Flags && verification.Flags.DeferredUrlKey || isManualDocRequested(verification)
191
197
  })
192
198
  }
193
199
 
200
+ const isManualDocRequested = (verification) => {
201
+ const isManual = verification.Documents && verification.VendorName === CustomerVerificationVendors.Manual;
202
+ const hasRequestedDocs = Object.values(verification.Documents).some((doc) => doc.Status === VerificationDocumentsStatuses.Requested)
203
+ return isManual && hasRequestedDocs
204
+ }
205
+
194
206
  const getMessages = () => {
195
207
  switch (verificationStatus.VerificationSummaryStatus) {
196
208
  case CustomerVerificationStatus.InProgress:
@@ -199,23 +211,20 @@
199
211
  result.push(getSuccessfulMessageByVendor(vendor));
200
212
  });
201
213
  return result;
202
- case CustomerVerificationStatus.Referred:
203
- return ['verification.idenfy.referred-awaiting'];
204
214
  case CustomerVerificationStatus.Failed:
205
- return ['verification.message.failed'];
215
+ return [$_('verification.message.failed')];
206
216
  }
207
217
  }
208
218
 
209
219
  const getSuccessfulMessageByVendor = (vendor) => {
220
+ const verifications = verificationStatus.VerificationStatuses.filter(item => item.Vendor === vendor);
210
221
  if (vendor === CustomerVerificationVendors.ShuftiPro) {
211
- const verifications = verificationStatus.VerificationStatuses.filter(item => item.Vendor === vendor);
212
222
  return getShuftiVerificationMessage(verifications);
213
223
  } else {
214
- const verifications = verificationStatus.VerificationStatuses.filter(item => item.Vendor === vendor),
215
- linkName = $_('verification.idenfy.link-name'),
216
- params = {
217
- link: `<a href="${verifications[0].VerificationUrl}" target="_blank">${linkName}</a>`
218
- };
224
+ const linkName = $_('verification.idenfy.link-name'),
225
+ params = {
226
+ link: `<a href="${verifications[0].VerificationUrl}" target="_blank">${linkName}</a>`
227
+ };
219
228
  return $_('verification.idenfy.in-progress', {values: params});
220
229
  }
221
230
  }
@@ -267,6 +276,7 @@
267
276
 
268
277
  <div class="CashierVerifications" bind:this={customStylingContainer}>
269
278
  {#if displayMessages}
279
+ <div>
270
280
  {#each displayMessages as message, index}
271
281
  <div class="CashierVerificationMessage" class:ShowAll={allVerificationsVisible} on:click={(e) => showAllVerifications(e, index)}>
272
282
  <div class="IconVerification"><svg width="64px" height="64px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" stroke="#ffffff"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <path d="M4.39254 16.2614C2.64803 13.1941 1.66074 9.71783 1.51646 6.15051C1.50127 5.77507 1.70918 5.42812 2.04153 5.25282L11.5335 0.246091C11.8254 0.0920859 12.1746 0.0920859 12.4665 0.246091L21.9585 5.25282C22.2908 5.42812 22.4987 5.77507 22.4835 6.15051C22.3393 9.71783 21.352 13.1941 19.6075 16.2614C17.8618 19.3307 15.4169 21.8869 12.4986 23.7001C12.1931 23.8899 11.8069 23.8899 11.5014 23.7001C8.58313 21.8869 6.13817 19.3307 4.39254 16.2614Z" fill="#fa9200"></path> <path d="M8.25 12.75L11.25 15L17.25 9" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> </g></svg></div>
@@ -280,6 +290,7 @@
280
290
  {/if}
281
291
  </div>
282
292
  {/each}
293
+ </div>
283
294
  {/if}
284
295
  </div>
285
296
 
@@ -306,9 +317,11 @@
306
317
  box-shadow: 0 0 4px $color-black-transparency-10;
307
318
  width: 100%;
308
319
  border-radius: $border-radius-medium-plus;
309
- margin-bottom: 20px;
310
320
  container-name: method-list;
311
321
  container-type: inline-size;
322
+ &:has(.CashierVerificationMessage) {
323
+ margin-bottom: 20px;
324
+ }
312
325
  }
313
326
  .IconVerification {
314
327
  width: 30px;