@saasquatch/mint-components 1.8.0-89 → 1.8.0-90

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.
@@ -14,12 +14,12 @@ const sqmPortalVerifyEmailView = require('./sqm-portal-verify-email-view-1e6255e
14
14
 
15
15
  const SUBMITTED_CONTEXT = "sq:verify-submitted";
16
16
  function setSubmitted(submitted) {
17
+ // using window due to dom-context getting reset on re-render
17
18
  window[SUBMITTED_CONTEXT] = submitted;
18
19
  }
19
20
  function usePortalVerifyEmail({ nextPage, failedPage, verifySuccessText, verifyEmailText, verifyInvalidText, networkErrorMessage, continueText, }) {
20
21
  var _a, _b, _c, _d, _e, _f, _g, _h;
21
22
  const submitted = window[SUBMITTED_CONTEXT];
22
- const locale = index_module.N();
23
23
  const userIdent = index_module.H();
24
24
  const [request, { loading, data, errors }] = index_module.nn();
25
25
  const urlParams = new URLSearchParams(index_module.yn.location.search);
@@ -43,7 +43,6 @@ function usePortalVerifyEmail({ nextPage, failedPage, verifySuccessText, verifyE
43
43
  const submit = async () => {
44
44
  var _a;
45
45
  setSubmitted(true);
46
- console.log("submit", { submitted });
47
46
  if (oobCode) {
48
47
  const result = await request({ oobCode });
49
48
  if ((result instanceof Error ||
@@ -59,7 +58,6 @@ function usePortalVerifyEmail({ nextPage, failedPage, verifySuccessText, verifyE
59
58
  }
60
59
  };
61
60
  stencilHooks_module.useEffect(() => {
62
- console.log({ submitted, locale });
63
61
  // Already verified, begin redirect
64
62
  if (verified) {
65
63
  setTimeout(() => {
@@ -68,9 +66,9 @@ function usePortalVerifyEmail({ nextPage, failedPage, verifySuccessText, verifyE
68
66
  }, 3000);
69
67
  return;
70
68
  }
71
- if (userIdent && !data && !submitted && locale !== undefined)
69
+ if (userIdent && !data && !submitted)
72
70
  submit();
73
- }, [verified, submitted, data, userIdent, submitted, locale]);
71
+ }, [verified, submitted, data, userIdent, submitted]);
74
72
  return {
75
73
  states: {
76
74
  loading: loading || disableContinue,
@@ -8168,7 +8168,7 @@ const column = "@author:noah\n@owner:noah\nFeature: Referral Table User Column\n
8168
8168
 
8169
8169
  const date = "@author:noah\n@owner:noah\nFeature: Referral Table Date Column\n\n Shows the date of each referral\n\n Background:\n Given the date column is included in the referral table\n\n @motivating\n @ui\n Scenario Outline: The title of the date column is configurable\n Given the \"column-title\" prop is set to <value>\n Then the date column is shown with <columTitle>\n Examples:\n | value | columnTitle |\n | | Date Converted |\n | My column title | My column title |\n\n @motivating\n Scenario Outline: A configurable date associated with the referral is shown for each referral\n Given the \"date-shown\" prop is set to <dateType>\n And referrals exist\n Then for each referral the <referralDate> is shown in the table\n And the date is localized to the users locale\n Examples:\n | dateType | referralDate |\n | dateReferralStarted | date referral started |\n | dateReferralPaid | date referral paid |\n | dateReferralEnded | date referral ended |\n | dateModerated | date moderated |\n | dateUserModified | date user modified |\n | dateConverted | date converted |\n | dateModified | date modified |\n | | date converted |";
8170
8170
 
8171
- const reward = "@author:noah @owner:noah\nFeature: Referral Table Reward Column\n Shows the reward associated with each referral\n\n Background: \n Given the status column is included in the referral table\n And at least one referral exists\n\n @motivating @ui\n Scenario Outline: The referral reward and it's status are shown for each referral\n Then for each referral reward there exists a reward cell\n And the reward type and value is displayed in the cell\n And the status of each reward is displayed as a pill in the cell\n And rewards of <status> have a <pillColour> pill with the text <statusText>\n\n Examples: \n | status | pillColour | statusText |\n | Available | green | Available |\n | Pending | orange | Pending |\n | Pending Tax Review | orange | Pending |\n | Pending New Tax Form | orange | Pending |\n | Pending Tax Submission | orange | Pending |\n | Pending Partner Creation | orange | Pending |\n | Cancelled | red | Cancelled |\n | Payout Failed | red | Payout Failed |\n | Payout Cancelled | red | Payout Cancelled |\n | Expired | red | Expired |\n | Redeemed | blue | Redeemed |\n | Payout Sent | blue | Payout Sent |\n | Pending Review | orange | Pending Review |\n | Denied | red | Denied |\n\n @motivating\n Scenario: The pending period of a referral reward is shown if it exists\n Given a reward that is pending\n And the reward has a set pending period\n Then the status pill of the reward will instead have the text \"Pending for <relativeTime>\"\n And all dates are localized to the users locale\n\n Examples: \n | relativeTime |\n | 2 days |\n | 1 week |\n | 3 months |\n | 2 years |\n\n @motivating\n Scenario: The expiry date of a reward is shown if it exists\n Given a reward that is available\n And the reward has a set expiry date\n Then an additional grey pill will appear next to the status pill with the text \"Expiring in <relativeTime>\"\n And all dates are localized to the users locale\n\n Examples: \n | relativeTime |\n | 2 days |\n | 1 week |\n | 3 months |\n | 2 years |\n\n @motivating\n Scenario: Each reward can be expanded to show additional details about the reward\n When a reward cell is clicked\n Then it expands to show the following additional information (if it's available):\n | Date the reward was received |\n | Date the reward was cancelled |\n | Date the reward expires |\n | Date the reward is pending until |\n | Payout process start date |\n | Payout retry date on failure |\n | Description for tax pending reason |\n | Coupon code |\n And all dates are localized to a users locale\n";
8171
+ const reward = "@author:noah @owner:noah\nFeature: Referral Table Reward Column\n Shows the reward associated with each referral\n\n Background: \n Given the status column is included in the referral table\n And at least one referral exists\n\n @motivating @ui\n Scenario Outline: The referral reward and it's status are shown for each referral\n Then for each referral reward there exists a reward cell\n And the reward type and value is displayed in the cell\n And the status of each reward is displayed as a pill in the cell\n And rewards of <status> have a <pillColour> pill with the text <statusText>\n\n Examples: \n | status | pillColour | statusText |\n | Available | green | Available |\n | Pending | orange | Pending |\n | Pending Tax Review | orange | Pending |\n | Pending New Tax Form | orange | Pending |\n | Pending Tax Submission | orange | Pending |\n | Pending Partner Creation | orange | Pending |\n | Cancelled | red | Cancelled |\n | Payout Failed | red | Payout Failed |\n | Payout Cancelled | red | Payout Cancelled |\n | Expired | red | Expired |\n | Redeemed | blue | Redeemed |\n | Transferred | blue | Payout Approved |\n | Pending Review | orange | Pending Review |\n | Denied | red | Denied |\n\n @motivating\n Scenario: The pending period of a referral reward is shown if it exists\n Given a reward that is pending\n And the reward has a set pending period\n Then the status pill of the reward will instead have the text \"Pending for <relativeTime>\"\n And all dates are localized to the users locale\n\n Examples: \n | relativeTime |\n | 2 days |\n | 1 week |\n | 3 months |\n | 2 years |\n\n @motivating\n Scenario: The expiry date of a reward is shown if it exists\n Given a reward that is available\n And the reward has a set expiry date\n Then an additional grey pill will appear next to the status pill with the text \"Expiring in <relativeTime>\"\n And all dates are localized to the users locale\n\n Examples: \n | relativeTime |\n | 2 days |\n | 1 week |\n | 3 months |\n | 2 years |\n\n @motivating\n Scenario: Each reward can be expanded to show additional details about the reward\n When a reward cell is clicked\n Then it expands to show the following additional information (if it's available):\n | Date the reward was received |\n | Date the reward was cancelled |\n | Date the reward expires |\n | Date the reward is pending until |\n | Payout process start date |\n | Payout retry date on failure |\n | Description for tax pending reason |\n | Coupon code |\n And all dates are localized to a users locale\n";
8172
8172
 
8173
8173
  const status = "@author:noah\n@owner:noah\nFeature: Referral Table Status Column\n\n Shows the status of each referral\n\n Background:\n Given the status column is included in the referral table\n\n @motivating\n @ui\n Scenario: The title of the date column is configurable\n Given the \"column-title\" prop is set to \"My column title\"\n Then the date column is shown with \"My column title\"\n\n @motivating\n Scenario: The status column's fraudStatus maps to the fraud status of the referral\n Given at least one referral\n Then the referral cell fraud status is set to `moderationStatus` of the referral\n\n @motivating\n Scenario Outline: The status column displays the status of each referral\n Given referrals exist\n Then the status of each referral is displayed\n And the status <status> is displayed as text from <statusTextProp> in a <pillColour> pill\n\n Examples:\n | status | statusTextProp | pillColour |\n | In Progress | inProgressStatusText | Orange |\n | Converted | convertedStatusText | Green |\n | Pending | pendingReviewStatusText | Orange |\n | Denied | deniedStatusText | Red |\n";
8174
8174
 
@@ -11589,7 +11589,7 @@ const scenario1 = "@author:derek\n@owner:derek\nFeature: Reward Table Date Colum
11589
11589
 
11590
11590
  const scenario2 = "@author:derek\n@owner:derek\nFeature: Reward Table reward Column\n\n Shows the exact reward\n\n Background:\n Given the reward column is included in the reward table\n And rewards with translations exist\n\n @motivating\n @ui\n Scenario Outline: The title of the reward column is configurable\n Given the \"column-title\" prop is set to <value>\n Then the reward column is shown with <columnTitle>\n Examples:\n | value | columnTitle |\n | Reward | |\n | My column title | My column title |\n\n @motivating\n Scenario: The reward column displays the prettyValue of the reward given\n Given a user with a reward\n When they view the rewards table\n Then they see the name of their reward in the reward column\n And the name is the prettyValue translated for the users locale\n\n @motivating\n @ui\n Scenario: The reward column displays an availability bar if the reward is redeemable\n Given a user with a <status> credit reward of <value>\n But the user has <redeemedAmount>\n When they view the rewards table\n Then the reward column displays <value>\n And under it displays an availability bar with <percentage> filled\n And under it displays <availabilityText>\n Examples:\n | status | value | percentage | availableAmount | availabilityText |\n | AVAILABLE | 10 Points | 100% | 10 Points | 10 Points remaining |\n | AVAILABLE | 10 Points | 90% | 9 Points | 9 Points remaining |\n | AVAILABLE | 10 Points | 10% | 1 Point | 1 Point remaining |\n | PENDING | 10 Points | 100% | 10 Points | 10 Points remaining |\n | PENDING | 10 Points | 90% | 9 Points | 9 Points remaining |\n | PENDING | 10 Points | 10% | 1 Point | 1 Point remaining |\n\n @motivating\n @ui\n Scenario Outline: The reward column displays an availability bar if the reward was redeemable but had been cancelled or expired\n Given a user with a credit reward of <value>\n And the reward has <status>\n But the user has <redeemedAmount>\n When they view the rewards table\n When they view the rewards table\n Then the reward column displays <value>\n And under it displays an availability bar with <percentage> filled\n And under it displays <redeemedText>\n Examples:\n | status | value | percentage | redeemedAmount | redeemedText |\n | EXPIRED | 10 Points | 100% | 0 Point | 0 Point redeemed |\n | EXPIRED | 10 Points | 80% | 2 Point | 2 Point redeemed |\n | CANCELLED | 10 Points | 100% | 0 Point | 0 Point redeemed |\n | CANCELLED | 10 Points | 20% | 8 Point | 8 Point redeemed |\n\n @motivating\n @ui\n Scenario: The reward column doesn't display the availability bar if the reward is not redeemable\n Given a user with a non credit reward\n When they view the rewards table\n Then they see the name of the reward\n But they do not see the availablity bar\n\n @motivating\n @ui\n Scenario Outline: The reward column doesn't display the availability bar if the reward is only 1 reward unit\n Given a user with a credit reward for 1 of a reward unit\n And it has <status>\n When they view the rewards table\n Then they see the name of the reward\n But they do not see the availablity bar\n Examples:\n | status |\n | AVAILABLE |\n | PENDING |\n | EXPIRED |\n | CANCELLED |\n\n @motivating\n @ui\n Scenario: The reward column doesn't display the availability bar for redeemed credit rewards\n Given a user with a \"REDEEMED\" credit reward\n When they view the rewards table\n Then they see the name of the reward\n But they do not see the availablity bar\n\n @motivating\n @ui\n Scenario: Users can copy their fuel tank codes\n Given a user with a fuel tank reward\n When they view the rewards table\n Then they see their fuel tank reward\n And they see their fuel tank code bolded in blue\n When they click on their code\n Then a tool tip appears saying it has been copied to their clipboard\n And their code is copied to their clipboard";
11591
11591
 
11592
- const scenario3 = "@author:derek @owner:derek\nFeature: Reward Table Status Column\n Shows the status of each reward\n\n Background: \n Given the status column is included in the reward table\n\n @motivating @ui\n Scenario Outline: The title of the status column is configurable\n Given the \"column-title\" prop is set to <value>\n Then the status column is shown with <columnTitle>\n\n Examples: \n | value | columnTitle |\n | Status | |\n | My column title | My column title |\n\n @motivating @ui\n Scenario Outline: The status column displays the status of each reward\n Given a user\n And they have a <status> reward\n When they view the reward table\n Then the status of their reward is displayed in <pillColour> pill with <text>\n\n Examples: \n | status | text | pillColour |\n | AVAILABLE | Available | Green |\n | CANCELLED | Cancelled | Red |\n | PENDING | Pending | Orange |\n | EXPIRED | Expired | Red |\n | REDEEMED | Redeemed | Blue |\n | PENDING_REVIEW | Pending Review | Orange |\n | PAYOUT_SENT | Payout Sent | Orange |\n | PAYOUT_FAILED | Payout Failed | Red |\n | PAYOUT_CANCELLED | Payout Cancelled | Red |\n | PENDING_TAX_REVIEW | Pending | Orange |\n | PENDING_NEW_TAX_FORM | Pending | Orange |\n | PENDING_TAX_SUBMISSION | Pending | Orange |\n | PENDING_PARTNER_CREATION | Pending | Orange |\n | DENIED | Denied | Red |\n\n @motivating\n Scenario Outline: Reward status related information is displayed under status pills\n Given a user\n And they have a <reward>\n And their program is\n When they view the reward table\n Then they see their reward\n And under the pill is <text>\n And the date is localized to the users locale\n\n Examples: \n | reward | text |\n | available reward with an expiry date | localized expiry date in format \"Month-Day-Year\" |\n | redeemed reward | localized redemption date in format \"Month-Day-Year\" |\n | expired reward | localized expired date in format \"Month-Day-Year\" |\n | cancelled reward | localized cancelled date in format \"Month-Day-Year\" |\n | pending reward with a end date | localized pending for date in format \"Month-Day-Year\" |\n | pending reward due to W9 | W-9 required |\n | pending reward due to fufillment error | Fulfillment error |\n | reward pending review of referral | Pending review |\n | pending reward due to no connected Impact partner | Complete your tax and cash payout setup to receive your rewards. |\n | pending reward due to an invalid tax document | Invalid tax form. Submit a new form to receive your rewards. |\n | pending reward due to user required to submit a tax document | Submit your tax documents to receive your rewards. |\n | pending reward due to tax document being in review | Awaiting tax form review. |\n | reward whose payout failed | Payout failed due to a fulfillment issue and is currently being retried. |\n | reward whose payout was sent | Reward approved for payout and was scheduled for payment based on your settings. |\n | reward whose payout was cancelled | If you think this is a mistake, contact our Support team. |\n | cancelled reward from denied referral | Flagged as fraud |\n\n @minutia\n Scenario Outline: Tax-related reward statuses are based on the user's Impact tax connection\n Given a user\n And they are in a program that has Impact tax handling enabled\n And they have at least one pending reward\n And the reward's pending reasons include \"PAYOUT_CONFIGURATION_MISSING\"\n Then the status description will be\n \"\"\"\n Complete your tax and cash payout setup to receive your rewards.\n \"\"\"\n\n @motivating\n Scenario Outline: Statuses can be customized\n Given the \"status-text\" prop is \"{status, select, AVAILABLE {Redeem me!} CANCELLED {Unavailable} PENDING {Coming soon!} EXPIRED {Past due} REDEEMED {Spent} PENDING_REVIEW {Pending Review!} PAYOUT_SENT {Payout Sent!} PAYOUT_FAILED {Payout Failed!} PENDING_TAX_REVIEW {Pending Tax Review!} PENDING_NEW_TAX_FORM {Pending new tax form!} PENDING_TAX_SUBMISSION {Pending tax submission!} PENDING_PARTNER_CREATION {Pending partner creation!} DENIED {Unlucky!}}\"\n And a user\n And they have a <status> reward\n When they view the reward table\n Then the status of their reward is displayed in <pillColour> pill with <text>\n\n Examples: \n | status | text | pillColour |\n | AVAILABLE | Redeem me! | Green |\n | CANCELLED | Unavailable | Red |\n | PENDING | Coming soon! | Orange |\n | EXPIRED | Past due | Red |\n | REDEEMED | Spent | Blue |\n | PENDING_REVIEW | Pending Review! | Orange |\n | PAYOUT_SENT | Payout Sent! | Orange |\n | PAYOUT_FAILED | Payout Failed! | Orange |\n | PENDING_TAX_REVIEW | Pending Tax Review! | Orange |\n | PENDING_NEW_TAX_FORM | Pending new tax form! | Orange |\n | PENDING_TAX_SUBMISSION | Pending tax submission! | Orange |\n | PENDING_PARTNER_CREATION | Pending partner creation! | Orange |\n | DENIED | Unlucky! | Red |\n\n @minutia @ui\n Scenario: Expiry status date text can be configured\n Given the \"expiry-text\" prop has <value>\n And a user with an available reward with an expiry date\n When they view the reward table\n Then they see <text> under the Available Status pill\n\n Examples: \n | value | text |\n | | Expires on <EXPIRY DATE> |\n | Redeem before | Redeem before <EXPIRY DATE> |\n";
11592
+ const scenario3 = "@author:derek @owner:derek\nFeature: Reward Table Status Column\n Shows the status of each reward\n\n Background: \n Given the status column is included in the reward table\n\n @motivating @ui\n Scenario Outline: The title of the status column is configurable\n Given the \"column-title\" prop is set to <value>\n Then the status column is shown with <columnTitle>\n\n Examples: \n | value | columnTitle |\n | Status | |\n | My column title | My column title |\n\n @motivating @ui\n Scenario Outline: The status column displays the status of each reward\n Given a user\n And they have a <status> reward\n When they view the reward table\n Then the status of their reward is displayed in <pillColour> pill with <text>\n\n Examples: \n | status | text | pillColour |\n | AVAILABLE | Available | Green |\n | CANCELLED | Cancelled | Red |\n | PENDING | Pending | Orange |\n | EXPIRED | Expired | Red |\n | REDEEMED | Redeemed | Blue |\n | PENDING_REVIEW | Pending Review | Orange |\n | TRANSFERRED | Payout Sent | blue |\n | PAYOUT_FAILED | Payout Failed | Red |\n | PAYOUT_CANCELLED | Payout Cancelled | Red |\n | PENDING_TAX_REVIEW | Pending | Orange |\n | PENDING_NEW_TAX_FORM | Pending | Orange |\n | PENDING_TAX_SUBMISSION | Pending | Orange |\n | PENDING_PARTNER_CREATION | Pending | Orange |\n | DENIED | Denied | Red |\n\n @motivating\n Scenario Outline: Reward status related information is displayed under status pills\n Given a user\n And they have a <reward>\n And their program is\n When they view the reward table\n Then they see their reward\n And under the pill is <text>\n And the date is localized to the users locale\n\n Examples: \n | reward | text |\n | available reward with an expiry date | localized expiry date in format \"Month-Day-Year\" |\n | redeemed reward | localized redemption date in format \"Month-Day-Year\" |\n | expired reward | localized expired date in format \"Month-Day-Year\" |\n | cancelled reward | localized cancelled date in format \"Month-Day-Year\" |\n | pending reward with a end date | localized pending for date in format \"Month-Day-Year\" |\n | pending reward due to W9 | W-9 required |\n | pending reward due to fufillment error | Fulfillment error |\n | reward pending review of referral | Pending review |\n | pending reward due to no connected Impact partner | Complete your tax and cash payout setup to receive your rewards. |\n | pending reward due to an invalid tax document | Invalid tax form. Submit a new form to receive your rewards. |\n | pending reward due to user required to submit a tax document | Submit your tax documents to receive your rewards. |\n | pending reward due to tax document being in review | Awaiting tax form review. |\n | reward whose payout failed | Payout failed due to a fulfillment issue and is currently being retried. |\n | reward whose payout was sent | Reward approved for payout and was scheduled for payment based on your settings. |\n | reward whose payout was cancelled | If you think this is a mistake, contact our Support team. |\n | cancelled reward from denied referral | Flagged as fraud |\n\n @minutia\n Scenario Outline: Tax-related reward statuses are based on the user's Impact tax connection\n Given a user\n And they are in a program that has Impact tax handling enabled\n And they have at least one pending reward\n And the reward's pending reasons include \"PAYOUT_CONFIGURATION_MISSING\"\n Then the status description will be\n \"\"\"\n Complete your tax and cash payout setup to receive your rewards.\n \"\"\"\n\n @motivating\n Scenario Outline: Statuses can be customized\n Given the \"status-text\" prop is \"{status, select, AVAILABLE {Redeem me!} CANCELLED {Unavailable} PENDING {Coming soon!} EXPIRED {Past due} REDEEMED {Spent} PENDING_REVIEW {Pending Review!} PAYOUT_SENT {Payout Sent!} PAYOUT_FAILED {Payout Failed!} PENDING_TAX_REVIEW {Pending Tax Review!} PENDING_NEW_TAX_FORM {Pending new tax form!} PENDING_TAX_SUBMISSION {Pending tax submission!} PENDING_PARTNER_CREATION {Pending partner creation!} DENIED {Unlucky!}}\"\n And a user\n And they have a <status> reward\n When they view the reward table\n Then the status of their reward is displayed in <pillColour> pill with <text>\n\n Examples: \n | status | text | pillColour |\n | AVAILABLE | Redeem me! | Green |\n | CANCELLED | Unavailable | Red |\n | PENDING | Coming soon! | Orange |\n | EXPIRED | Past due | Red |\n | REDEEMED | Spent | Blue |\n | PENDING_REVIEW | Pending Review! | Orange |\n | PAYOUT_SENT | Payout Sent! | Orange |\n | PAYOUT_FAILED | Payout Failed! | Orange |\n | PENDING_TAX_REVIEW | Pending Tax Review! | Orange |\n | PENDING_NEW_TAX_FORM | Pending new tax form! | Orange |\n | PENDING_TAX_SUBMISSION | Pending tax submission! | Orange |\n | PENDING_PARTNER_CREATION | Pending partner creation! | Orange |\n | DENIED | Unlucky! | Red |\n\n @minutia @ui\n Scenario: Expiry status date text can be configured\n Given the \"expiry-text\" prop has <value>\n And a user with an available reward with an expiry date\n When they view the reward table\n Then they see <text> under the Available Status pill\n\n Examples: \n | value | text |\n | | Expires on <EXPIRY DATE> |\n | Redeem before | Redeem before <EXPIRY DATE> |\n";
11593
11593
 
11594
11594
  const scenario4 = "@author:derek\n@owner:derek\nFeature: Reward Table Source Column\n\n Shows the source of each reward\n\n @motivating\n @ui\n Scenario Outline: The title of the source column is configurable\n Given the \"column-title\" prop is set to <value>\n Then the source column is shown with <columnTitle>\n Examples:\n | value | columnTitle |\n | Source | |\n | My column title | My column title |\n\n @motivating\n @ui\n Scenario: The source column displays manual if the reward is caused by a manual action\n Given a user with a \"MANUAL\" reward\n When they view the rewards table\n Then the source of their reward is displayed as \"Manual\"\n\n @motivating\n @ui\n Scenario: The source column displays the program name if the reward is caused automatically by a program\n Given a user with a \"AUTOMATED\" program reward\n And the program has name \"Loyalty Program\"\n When they view the rewards table\n Then the source of their reward is displayed as \"Loyalty Program\"\n\n @motivating\n @ui\n Scenario Outline: The source column displays customizable reward exchange text with amount if the reward is caused by reward exchange\n Given the \"reward-exchange-text\" prop is <propValue>\n And a user with a \"MANUAL\" reward\n But it was created by a reward exchange\n Then they view the rewards table\n Then the source displays <exchangeText>\n And under it displays the following\n | prettyRedeemedCredit → prettyValue |\n Examples:\n | propValue | exchangeText |\n | | Reward Exchange |\n | Exchanged | Exchanged |\n\n @motivating\n @ui\n Scenario Outline: The source column displays customizable referral information if the reward is from a referral\n Given the \"reward-source-text\" prop is <propValue>\n And a user with a referral reward\n And that reward has <rewardSource>\n When they view the rewards table\n Then then source displays <referralText>\n And under it displays the full name of the <referralUser>\n Examples:\n | propValue | rewardSource | referralText | referralUser |\n | | REFERRED | Referred by | referrer user |\n | | FRIEND_SIGNUP | Referral to | referred user |\n | {rewardSource, select, FRIEND_SIGNUP {You Referred} REFERRED {Referred you} other {}} | REFERRED | Referred you | referrer user |\n | {rewardSource, select, FRIEND_SIGNUP {You Referred} REFERRED {Referred you} other {}} | FRIEND_SIGNUP | You Referred | referred user |\n\n @motivating\n @ui\n Scenario Outline: The source column displays the existing name for a referral if either the first name or last name does not exist\n Given a user with a referral reward\n And referral user exists\n And referral user has <name>\n But referral user has no <otherName>\n When they view the rewards table\n Then referral user's name is displayed as <name>\n Examples:\n | name | otherName |\n | first.name | last.name |\n | last.name | first.name |\n\n @motivating\n @ui\n Scenario Outline: The source column displays referral as \"Anonymous User\" if the referral user has no names\n Given a user with a referral reward\n And that reward has <rewardSource>\n And the <referralUser> has no first name\n And the <referralUser> has no last name\n When they view the rewards table\n Then then source displays <sourceText>\n And under it displays \"Anonymous User\"\n Examples:\n | rewardSource | referralUser | sourceText |\n | FRIEND_SIGNUP | referrer | Referral to |\n | REFERRED | referred user | Referred by |\n\n @motivating\n @ui\n Scenario Outline: The source column displays referral as \"Deleted User\" if the referral user is deleted in the system\n Given a user with a referral reward\n And that reward has <rewardSource>\n But <referral> user was deleted\n When they view the rewards table\n Then the source displays <sourceText>\n And under it displays \"Deleted User\"\n Examples:\n | rewardSource | referral | sourceText |\n | \"FRIEND_SIGNUP\" | referrer | Referral to |\n | \"REFERRED\" | referred | Referred by |\n\n @minutia\n @ui\n Scenario Outline: Name fallbacks for referral users without names are customizable\n Given <prop> with <value>\n And a user with a referral reward\n But the referral user <hadAction>\n When they view the rewards table\n Then the source displays <value> as the referral user\n Examples:\n | prop | value | hadAction |\n | deleted-user | Former Customer | was deleted |\n | anonymous-user | Nameless User | had first and last name deleted |\n\n @motivating\n Scenario Outline: Source text can be customized\n Given the \"reward-source-text\" prop is \"{rewardSource, select, MANUAL {Support} AUTOMATED {Loyalty Program} other {}}\"\n And a user with a <rewardSource> reward\n When they view the rewards table\n Then the source is <sourceText>\n Examples:\n | rewardSource | sourceText |\n | MANUAL | Support |\n | AUTOMATED | Loyalty Program |";
11595
11595
 
@@ -1,14 +1,14 @@
1
- import { navigation, useLocale, useUserIdentity, useVerifyEmailMutation, } from "@saasquatch/component-boilerplate";
1
+ import { navigation, useUserIdentity, useVerifyEmailMutation, } from "@saasquatch/component-boilerplate";
2
2
  import { useEffect } from "@saasquatch/universal-hooks";
3
3
  import { sanitizeUrlPath } from "../../utils/utils";
4
4
  const SUBMITTED_CONTEXT = "sq:verify-submitted";
5
5
  function setSubmitted(submitted) {
6
+ // using window due to dom-context getting reset on re-render
6
7
  window[SUBMITTED_CONTEXT] = submitted;
7
8
  }
8
9
  export function usePortalVerifyEmail({ nextPage, failedPage, verifySuccessText, verifyEmailText, verifyInvalidText, networkErrorMessage, continueText, }) {
9
10
  var _a, _b, _c, _d, _e, _f, _g, _h;
10
11
  const submitted = window[SUBMITTED_CONTEXT];
11
- const locale = useLocale();
12
12
  const userIdent = useUserIdentity();
13
13
  const [request, { loading, data, errors }] = useVerifyEmailMutation();
14
14
  const urlParams = new URLSearchParams(navigation.location.search);
@@ -32,7 +32,6 @@ export function usePortalVerifyEmail({ nextPage, failedPage, verifySuccessText,
32
32
  const submit = async () => {
33
33
  var _a;
34
34
  setSubmitted(true);
35
- console.log("submit", { submitted });
36
35
  if (oobCode) {
37
36
  const result = await request({ oobCode });
38
37
  if ((result instanceof Error ||
@@ -48,7 +47,6 @@ export function usePortalVerifyEmail({ nextPage, failedPage, verifySuccessText,
48
47
  }
49
48
  };
50
49
  useEffect(() => {
51
- console.log({ submitted, locale });
52
50
  // Already verified, begin redirect
53
51
  if (verified) {
54
52
  setTimeout(() => {
@@ -57,9 +55,9 @@ export function usePortalVerifyEmail({ nextPage, failedPage, verifySuccessText,
57
55
  }, 3000);
58
56
  return;
59
57
  }
60
- if (userIdent && !data && !submitted && locale !== undefined)
58
+ if (userIdent && !data && !submitted)
61
59
  submit();
62
- }, [verified, submitted, data, userIdent, submitted, locale]);
60
+ }, [verified, submitted, data, userIdent, submitted]);
63
61
  return {
64
62
  states: {
65
63
  loading: loading || disableContinue,
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, h as h$1 } from './index-f16aa635.js';
2
2
  import { f as useEffect, m as h } from './stencil-hooks.module-aa42e74f.js';
3
- import { N, H, n as nn, y as yn, i as isDemo } from './index.module-a46df001.js';
3
+ import { H, n as nn, y as yn, i as isDemo } from './index.module-a46df001.js';
4
4
  import { c as cjs } from './cjs-bdfb4486.js';
5
5
  import './mixins-f60a614c.js';
6
6
  import './JSS-67b5cff8.js';
@@ -10,12 +10,12 @@ import { P as PortalVerifyEmailView } from './sqm-portal-verify-email-view-fb687
10
10
 
11
11
  const SUBMITTED_CONTEXT = "sq:verify-submitted";
12
12
  function setSubmitted(submitted) {
13
+ // using window due to dom-context getting reset on re-render
13
14
  window[SUBMITTED_CONTEXT] = submitted;
14
15
  }
15
16
  function usePortalVerifyEmail({ nextPage, failedPage, verifySuccessText, verifyEmailText, verifyInvalidText, networkErrorMessage, continueText, }) {
16
17
  var _a, _b, _c, _d, _e, _f, _g, _h;
17
18
  const submitted = window[SUBMITTED_CONTEXT];
18
- const locale = N();
19
19
  const userIdent = H();
20
20
  const [request, { loading, data, errors }] = nn();
21
21
  const urlParams = new URLSearchParams(yn.location.search);
@@ -39,7 +39,6 @@ function usePortalVerifyEmail({ nextPage, failedPage, verifySuccessText, verifyE
39
39
  const submit = async () => {
40
40
  var _a;
41
41
  setSubmitted(true);
42
- console.log("submit", { submitted });
43
42
  if (oobCode) {
44
43
  const result = await request({ oobCode });
45
44
  if ((result instanceof Error ||
@@ -55,7 +54,6 @@ function usePortalVerifyEmail({ nextPage, failedPage, verifySuccessText, verifyE
55
54
  }
56
55
  };
57
56
  useEffect(() => {
58
- console.log({ submitted, locale });
59
57
  // Already verified, begin redirect
60
58
  if (verified) {
61
59
  setTimeout(() => {
@@ -64,9 +62,9 @@ function usePortalVerifyEmail({ nextPage, failedPage, verifySuccessText, verifyE
64
62
  }, 3000);
65
63
  return;
66
64
  }
67
- if (userIdent && !data && !submitted && locale !== undefined)
65
+ if (userIdent && !data && !submitted)
68
66
  submit();
69
- }, [verified, submitted, data, userIdent, submitted, locale]);
67
+ }, [verified, submitted, data, userIdent, submitted]);
70
68
  return {
71
69
  states: {
72
70
  loading: loading || disableContinue,
@@ -8164,7 +8164,7 @@ const column = "@author:noah\n@owner:noah\nFeature: Referral Table User Column\n
8164
8164
 
8165
8165
  const date = "@author:noah\n@owner:noah\nFeature: Referral Table Date Column\n\n Shows the date of each referral\n\n Background:\n Given the date column is included in the referral table\n\n @motivating\n @ui\n Scenario Outline: The title of the date column is configurable\n Given the \"column-title\" prop is set to <value>\n Then the date column is shown with <columTitle>\n Examples:\n | value | columnTitle |\n | | Date Converted |\n | My column title | My column title |\n\n @motivating\n Scenario Outline: A configurable date associated with the referral is shown for each referral\n Given the \"date-shown\" prop is set to <dateType>\n And referrals exist\n Then for each referral the <referralDate> is shown in the table\n And the date is localized to the users locale\n Examples:\n | dateType | referralDate |\n | dateReferralStarted | date referral started |\n | dateReferralPaid | date referral paid |\n | dateReferralEnded | date referral ended |\n | dateModerated | date moderated |\n | dateUserModified | date user modified |\n | dateConverted | date converted |\n | dateModified | date modified |\n | | date converted |";
8166
8166
 
8167
- const reward = "@author:noah @owner:noah\nFeature: Referral Table Reward Column\n Shows the reward associated with each referral\n\n Background: \n Given the status column is included in the referral table\n And at least one referral exists\n\n @motivating @ui\n Scenario Outline: The referral reward and it's status are shown for each referral\n Then for each referral reward there exists a reward cell\n And the reward type and value is displayed in the cell\n And the status of each reward is displayed as a pill in the cell\n And rewards of <status> have a <pillColour> pill with the text <statusText>\n\n Examples: \n | status | pillColour | statusText |\n | Available | green | Available |\n | Pending | orange | Pending |\n | Pending Tax Review | orange | Pending |\n | Pending New Tax Form | orange | Pending |\n | Pending Tax Submission | orange | Pending |\n | Pending Partner Creation | orange | Pending |\n | Cancelled | red | Cancelled |\n | Payout Failed | red | Payout Failed |\n | Payout Cancelled | red | Payout Cancelled |\n | Expired | red | Expired |\n | Redeemed | blue | Redeemed |\n | Payout Sent | blue | Payout Sent |\n | Pending Review | orange | Pending Review |\n | Denied | red | Denied |\n\n @motivating\n Scenario: The pending period of a referral reward is shown if it exists\n Given a reward that is pending\n And the reward has a set pending period\n Then the status pill of the reward will instead have the text \"Pending for <relativeTime>\"\n And all dates are localized to the users locale\n\n Examples: \n | relativeTime |\n | 2 days |\n | 1 week |\n | 3 months |\n | 2 years |\n\n @motivating\n Scenario: The expiry date of a reward is shown if it exists\n Given a reward that is available\n And the reward has a set expiry date\n Then an additional grey pill will appear next to the status pill with the text \"Expiring in <relativeTime>\"\n And all dates are localized to the users locale\n\n Examples: \n | relativeTime |\n | 2 days |\n | 1 week |\n | 3 months |\n | 2 years |\n\n @motivating\n Scenario: Each reward can be expanded to show additional details about the reward\n When a reward cell is clicked\n Then it expands to show the following additional information (if it's available):\n | Date the reward was received |\n | Date the reward was cancelled |\n | Date the reward expires |\n | Date the reward is pending until |\n | Payout process start date |\n | Payout retry date on failure |\n | Description for tax pending reason |\n | Coupon code |\n And all dates are localized to a users locale\n";
8167
+ const reward = "@author:noah @owner:noah\nFeature: Referral Table Reward Column\n Shows the reward associated with each referral\n\n Background: \n Given the status column is included in the referral table\n And at least one referral exists\n\n @motivating @ui\n Scenario Outline: The referral reward and it's status are shown for each referral\n Then for each referral reward there exists a reward cell\n And the reward type and value is displayed in the cell\n And the status of each reward is displayed as a pill in the cell\n And rewards of <status> have a <pillColour> pill with the text <statusText>\n\n Examples: \n | status | pillColour | statusText |\n | Available | green | Available |\n | Pending | orange | Pending |\n | Pending Tax Review | orange | Pending |\n | Pending New Tax Form | orange | Pending |\n | Pending Tax Submission | orange | Pending |\n | Pending Partner Creation | orange | Pending |\n | Cancelled | red | Cancelled |\n | Payout Failed | red | Payout Failed |\n | Payout Cancelled | red | Payout Cancelled |\n | Expired | red | Expired |\n | Redeemed | blue | Redeemed |\n | Transferred | blue | Payout Approved |\n | Pending Review | orange | Pending Review |\n | Denied | red | Denied |\n\n @motivating\n Scenario: The pending period of a referral reward is shown if it exists\n Given a reward that is pending\n And the reward has a set pending period\n Then the status pill of the reward will instead have the text \"Pending for <relativeTime>\"\n And all dates are localized to the users locale\n\n Examples: \n | relativeTime |\n | 2 days |\n | 1 week |\n | 3 months |\n | 2 years |\n\n @motivating\n Scenario: The expiry date of a reward is shown if it exists\n Given a reward that is available\n And the reward has a set expiry date\n Then an additional grey pill will appear next to the status pill with the text \"Expiring in <relativeTime>\"\n And all dates are localized to the users locale\n\n Examples: \n | relativeTime |\n | 2 days |\n | 1 week |\n | 3 months |\n | 2 years |\n\n @motivating\n Scenario: Each reward can be expanded to show additional details about the reward\n When a reward cell is clicked\n Then it expands to show the following additional information (if it's available):\n | Date the reward was received |\n | Date the reward was cancelled |\n | Date the reward expires |\n | Date the reward is pending until |\n | Payout process start date |\n | Payout retry date on failure |\n | Description for tax pending reason |\n | Coupon code |\n And all dates are localized to a users locale\n";
8168
8168
 
8169
8169
  const status = "@author:noah\n@owner:noah\nFeature: Referral Table Status Column\n\n Shows the status of each referral\n\n Background:\n Given the status column is included in the referral table\n\n @motivating\n @ui\n Scenario: The title of the date column is configurable\n Given the \"column-title\" prop is set to \"My column title\"\n Then the date column is shown with \"My column title\"\n\n @motivating\n Scenario: The status column's fraudStatus maps to the fraud status of the referral\n Given at least one referral\n Then the referral cell fraud status is set to `moderationStatus` of the referral\n\n @motivating\n Scenario Outline: The status column displays the status of each referral\n Given referrals exist\n Then the status of each referral is displayed\n And the status <status> is displayed as text from <statusTextProp> in a <pillColour> pill\n\n Examples:\n | status | statusTextProp | pillColour |\n | In Progress | inProgressStatusText | Orange |\n | Converted | convertedStatusText | Green |\n | Pending | pendingReviewStatusText | Orange |\n | Denied | deniedStatusText | Red |\n";
8170
8170
 
@@ -11585,7 +11585,7 @@ const scenario1 = "@author:derek\n@owner:derek\nFeature: Reward Table Date Colum
11585
11585
 
11586
11586
  const scenario2 = "@author:derek\n@owner:derek\nFeature: Reward Table reward Column\n\n Shows the exact reward\n\n Background:\n Given the reward column is included in the reward table\n And rewards with translations exist\n\n @motivating\n @ui\n Scenario Outline: The title of the reward column is configurable\n Given the \"column-title\" prop is set to <value>\n Then the reward column is shown with <columnTitle>\n Examples:\n | value | columnTitle |\n | Reward | |\n | My column title | My column title |\n\n @motivating\n Scenario: The reward column displays the prettyValue of the reward given\n Given a user with a reward\n When they view the rewards table\n Then they see the name of their reward in the reward column\n And the name is the prettyValue translated for the users locale\n\n @motivating\n @ui\n Scenario: The reward column displays an availability bar if the reward is redeemable\n Given a user with a <status> credit reward of <value>\n But the user has <redeemedAmount>\n When they view the rewards table\n Then the reward column displays <value>\n And under it displays an availability bar with <percentage> filled\n And under it displays <availabilityText>\n Examples:\n | status | value | percentage | availableAmount | availabilityText |\n | AVAILABLE | 10 Points | 100% | 10 Points | 10 Points remaining |\n | AVAILABLE | 10 Points | 90% | 9 Points | 9 Points remaining |\n | AVAILABLE | 10 Points | 10% | 1 Point | 1 Point remaining |\n | PENDING | 10 Points | 100% | 10 Points | 10 Points remaining |\n | PENDING | 10 Points | 90% | 9 Points | 9 Points remaining |\n | PENDING | 10 Points | 10% | 1 Point | 1 Point remaining |\n\n @motivating\n @ui\n Scenario Outline: The reward column displays an availability bar if the reward was redeemable but had been cancelled or expired\n Given a user with a credit reward of <value>\n And the reward has <status>\n But the user has <redeemedAmount>\n When they view the rewards table\n When they view the rewards table\n Then the reward column displays <value>\n And under it displays an availability bar with <percentage> filled\n And under it displays <redeemedText>\n Examples:\n | status | value | percentage | redeemedAmount | redeemedText |\n | EXPIRED | 10 Points | 100% | 0 Point | 0 Point redeemed |\n | EXPIRED | 10 Points | 80% | 2 Point | 2 Point redeemed |\n | CANCELLED | 10 Points | 100% | 0 Point | 0 Point redeemed |\n | CANCELLED | 10 Points | 20% | 8 Point | 8 Point redeemed |\n\n @motivating\n @ui\n Scenario: The reward column doesn't display the availability bar if the reward is not redeemable\n Given a user with a non credit reward\n When they view the rewards table\n Then they see the name of the reward\n But they do not see the availablity bar\n\n @motivating\n @ui\n Scenario Outline: The reward column doesn't display the availability bar if the reward is only 1 reward unit\n Given a user with a credit reward for 1 of a reward unit\n And it has <status>\n When they view the rewards table\n Then they see the name of the reward\n But they do not see the availablity bar\n Examples:\n | status |\n | AVAILABLE |\n | PENDING |\n | EXPIRED |\n | CANCELLED |\n\n @motivating\n @ui\n Scenario: The reward column doesn't display the availability bar for redeemed credit rewards\n Given a user with a \"REDEEMED\" credit reward\n When they view the rewards table\n Then they see the name of the reward\n But they do not see the availablity bar\n\n @motivating\n @ui\n Scenario: Users can copy their fuel tank codes\n Given a user with a fuel tank reward\n When they view the rewards table\n Then they see their fuel tank reward\n And they see their fuel tank code bolded in blue\n When they click on their code\n Then a tool tip appears saying it has been copied to their clipboard\n And their code is copied to their clipboard";
11587
11587
 
11588
- const scenario3 = "@author:derek @owner:derek\nFeature: Reward Table Status Column\n Shows the status of each reward\n\n Background: \n Given the status column is included in the reward table\n\n @motivating @ui\n Scenario Outline: The title of the status column is configurable\n Given the \"column-title\" prop is set to <value>\n Then the status column is shown with <columnTitle>\n\n Examples: \n | value | columnTitle |\n | Status | |\n | My column title | My column title |\n\n @motivating @ui\n Scenario Outline: The status column displays the status of each reward\n Given a user\n And they have a <status> reward\n When they view the reward table\n Then the status of their reward is displayed in <pillColour> pill with <text>\n\n Examples: \n | status | text | pillColour |\n | AVAILABLE | Available | Green |\n | CANCELLED | Cancelled | Red |\n | PENDING | Pending | Orange |\n | EXPIRED | Expired | Red |\n | REDEEMED | Redeemed | Blue |\n | PENDING_REVIEW | Pending Review | Orange |\n | PAYOUT_SENT | Payout Sent | Orange |\n | PAYOUT_FAILED | Payout Failed | Red |\n | PAYOUT_CANCELLED | Payout Cancelled | Red |\n | PENDING_TAX_REVIEW | Pending | Orange |\n | PENDING_NEW_TAX_FORM | Pending | Orange |\n | PENDING_TAX_SUBMISSION | Pending | Orange |\n | PENDING_PARTNER_CREATION | Pending | Orange |\n | DENIED | Denied | Red |\n\n @motivating\n Scenario Outline: Reward status related information is displayed under status pills\n Given a user\n And they have a <reward>\n And their program is\n When they view the reward table\n Then they see their reward\n And under the pill is <text>\n And the date is localized to the users locale\n\n Examples: \n | reward | text |\n | available reward with an expiry date | localized expiry date in format \"Month-Day-Year\" |\n | redeemed reward | localized redemption date in format \"Month-Day-Year\" |\n | expired reward | localized expired date in format \"Month-Day-Year\" |\n | cancelled reward | localized cancelled date in format \"Month-Day-Year\" |\n | pending reward with a end date | localized pending for date in format \"Month-Day-Year\" |\n | pending reward due to W9 | W-9 required |\n | pending reward due to fufillment error | Fulfillment error |\n | reward pending review of referral | Pending review |\n | pending reward due to no connected Impact partner | Complete your tax and cash payout setup to receive your rewards. |\n | pending reward due to an invalid tax document | Invalid tax form. Submit a new form to receive your rewards. |\n | pending reward due to user required to submit a tax document | Submit your tax documents to receive your rewards. |\n | pending reward due to tax document being in review | Awaiting tax form review. |\n | reward whose payout failed | Payout failed due to a fulfillment issue and is currently being retried. |\n | reward whose payout was sent | Reward approved for payout and was scheduled for payment based on your settings. |\n | reward whose payout was cancelled | If you think this is a mistake, contact our Support team. |\n | cancelled reward from denied referral | Flagged as fraud |\n\n @minutia\n Scenario Outline: Tax-related reward statuses are based on the user's Impact tax connection\n Given a user\n And they are in a program that has Impact tax handling enabled\n And they have at least one pending reward\n And the reward's pending reasons include \"PAYOUT_CONFIGURATION_MISSING\"\n Then the status description will be\n \"\"\"\n Complete your tax and cash payout setup to receive your rewards.\n \"\"\"\n\n @motivating\n Scenario Outline: Statuses can be customized\n Given the \"status-text\" prop is \"{status, select, AVAILABLE {Redeem me!} CANCELLED {Unavailable} PENDING {Coming soon!} EXPIRED {Past due} REDEEMED {Spent} PENDING_REVIEW {Pending Review!} PAYOUT_SENT {Payout Sent!} PAYOUT_FAILED {Payout Failed!} PENDING_TAX_REVIEW {Pending Tax Review!} PENDING_NEW_TAX_FORM {Pending new tax form!} PENDING_TAX_SUBMISSION {Pending tax submission!} PENDING_PARTNER_CREATION {Pending partner creation!} DENIED {Unlucky!}}\"\n And a user\n And they have a <status> reward\n When they view the reward table\n Then the status of their reward is displayed in <pillColour> pill with <text>\n\n Examples: \n | status | text | pillColour |\n | AVAILABLE | Redeem me! | Green |\n | CANCELLED | Unavailable | Red |\n | PENDING | Coming soon! | Orange |\n | EXPIRED | Past due | Red |\n | REDEEMED | Spent | Blue |\n | PENDING_REVIEW | Pending Review! | Orange |\n | PAYOUT_SENT | Payout Sent! | Orange |\n | PAYOUT_FAILED | Payout Failed! | Orange |\n | PENDING_TAX_REVIEW | Pending Tax Review! | Orange |\n | PENDING_NEW_TAX_FORM | Pending new tax form! | Orange |\n | PENDING_TAX_SUBMISSION | Pending tax submission! | Orange |\n | PENDING_PARTNER_CREATION | Pending partner creation! | Orange |\n | DENIED | Unlucky! | Red |\n\n @minutia @ui\n Scenario: Expiry status date text can be configured\n Given the \"expiry-text\" prop has <value>\n And a user with an available reward with an expiry date\n When they view the reward table\n Then they see <text> under the Available Status pill\n\n Examples: \n | value | text |\n | | Expires on <EXPIRY DATE> |\n | Redeem before | Redeem before <EXPIRY DATE> |\n";
11588
+ const scenario3 = "@author:derek @owner:derek\nFeature: Reward Table Status Column\n Shows the status of each reward\n\n Background: \n Given the status column is included in the reward table\n\n @motivating @ui\n Scenario Outline: The title of the status column is configurable\n Given the \"column-title\" prop is set to <value>\n Then the status column is shown with <columnTitle>\n\n Examples: \n | value | columnTitle |\n | Status | |\n | My column title | My column title |\n\n @motivating @ui\n Scenario Outline: The status column displays the status of each reward\n Given a user\n And they have a <status> reward\n When they view the reward table\n Then the status of their reward is displayed in <pillColour> pill with <text>\n\n Examples: \n | status | text | pillColour |\n | AVAILABLE | Available | Green |\n | CANCELLED | Cancelled | Red |\n | PENDING | Pending | Orange |\n | EXPIRED | Expired | Red |\n | REDEEMED | Redeemed | Blue |\n | PENDING_REVIEW | Pending Review | Orange |\n | TRANSFERRED | Payout Sent | blue |\n | PAYOUT_FAILED | Payout Failed | Red |\n | PAYOUT_CANCELLED | Payout Cancelled | Red |\n | PENDING_TAX_REVIEW | Pending | Orange |\n | PENDING_NEW_TAX_FORM | Pending | Orange |\n | PENDING_TAX_SUBMISSION | Pending | Orange |\n | PENDING_PARTNER_CREATION | Pending | Orange |\n | DENIED | Denied | Red |\n\n @motivating\n Scenario Outline: Reward status related information is displayed under status pills\n Given a user\n And they have a <reward>\n And their program is\n When they view the reward table\n Then they see their reward\n And under the pill is <text>\n And the date is localized to the users locale\n\n Examples: \n | reward | text |\n | available reward with an expiry date | localized expiry date in format \"Month-Day-Year\" |\n | redeemed reward | localized redemption date in format \"Month-Day-Year\" |\n | expired reward | localized expired date in format \"Month-Day-Year\" |\n | cancelled reward | localized cancelled date in format \"Month-Day-Year\" |\n | pending reward with a end date | localized pending for date in format \"Month-Day-Year\" |\n | pending reward due to W9 | W-9 required |\n | pending reward due to fufillment error | Fulfillment error |\n | reward pending review of referral | Pending review |\n | pending reward due to no connected Impact partner | Complete your tax and cash payout setup to receive your rewards. |\n | pending reward due to an invalid tax document | Invalid tax form. Submit a new form to receive your rewards. |\n | pending reward due to user required to submit a tax document | Submit your tax documents to receive your rewards. |\n | pending reward due to tax document being in review | Awaiting tax form review. |\n | reward whose payout failed | Payout failed due to a fulfillment issue and is currently being retried. |\n | reward whose payout was sent | Reward approved for payout and was scheduled for payment based on your settings. |\n | reward whose payout was cancelled | If you think this is a mistake, contact our Support team. |\n | cancelled reward from denied referral | Flagged as fraud |\n\n @minutia\n Scenario Outline: Tax-related reward statuses are based on the user's Impact tax connection\n Given a user\n And they are in a program that has Impact tax handling enabled\n And they have at least one pending reward\n And the reward's pending reasons include \"PAYOUT_CONFIGURATION_MISSING\"\n Then the status description will be\n \"\"\"\n Complete your tax and cash payout setup to receive your rewards.\n \"\"\"\n\n @motivating\n Scenario Outline: Statuses can be customized\n Given the \"status-text\" prop is \"{status, select, AVAILABLE {Redeem me!} CANCELLED {Unavailable} PENDING {Coming soon!} EXPIRED {Past due} REDEEMED {Spent} PENDING_REVIEW {Pending Review!} PAYOUT_SENT {Payout Sent!} PAYOUT_FAILED {Payout Failed!} PENDING_TAX_REVIEW {Pending Tax Review!} PENDING_NEW_TAX_FORM {Pending new tax form!} PENDING_TAX_SUBMISSION {Pending tax submission!} PENDING_PARTNER_CREATION {Pending partner creation!} DENIED {Unlucky!}}\"\n And a user\n And they have a <status> reward\n When they view the reward table\n Then the status of their reward is displayed in <pillColour> pill with <text>\n\n Examples: \n | status | text | pillColour |\n | AVAILABLE | Redeem me! | Green |\n | CANCELLED | Unavailable | Red |\n | PENDING | Coming soon! | Orange |\n | EXPIRED | Past due | Red |\n | REDEEMED | Spent | Blue |\n | PENDING_REVIEW | Pending Review! | Orange |\n | PAYOUT_SENT | Payout Sent! | Orange |\n | PAYOUT_FAILED | Payout Failed! | Orange |\n | PENDING_TAX_REVIEW | Pending Tax Review! | Orange |\n | PENDING_NEW_TAX_FORM | Pending new tax form! | Orange |\n | PENDING_TAX_SUBMISSION | Pending tax submission! | Orange |\n | PENDING_PARTNER_CREATION | Pending partner creation! | Orange |\n | DENIED | Unlucky! | Red |\n\n @minutia @ui\n Scenario: Expiry status date text can be configured\n Given the \"expiry-text\" prop has <value>\n And a user with an available reward with an expiry date\n When they view the reward table\n Then they see <text> under the Available Status pill\n\n Examples: \n | value | text |\n | | Expires on <EXPIRY DATE> |\n | Redeem before | Redeem before <EXPIRY DATE> |\n";
11589
11589
 
11590
11590
  const scenario4 = "@author:derek\n@owner:derek\nFeature: Reward Table Source Column\n\n Shows the source of each reward\n\n @motivating\n @ui\n Scenario Outline: The title of the source column is configurable\n Given the \"column-title\" prop is set to <value>\n Then the source column is shown with <columnTitle>\n Examples:\n | value | columnTitle |\n | Source | |\n | My column title | My column title |\n\n @motivating\n @ui\n Scenario: The source column displays manual if the reward is caused by a manual action\n Given a user with a \"MANUAL\" reward\n When they view the rewards table\n Then the source of their reward is displayed as \"Manual\"\n\n @motivating\n @ui\n Scenario: The source column displays the program name if the reward is caused automatically by a program\n Given a user with a \"AUTOMATED\" program reward\n And the program has name \"Loyalty Program\"\n When they view the rewards table\n Then the source of their reward is displayed as \"Loyalty Program\"\n\n @motivating\n @ui\n Scenario Outline: The source column displays customizable reward exchange text with amount if the reward is caused by reward exchange\n Given the \"reward-exchange-text\" prop is <propValue>\n And a user with a \"MANUAL\" reward\n But it was created by a reward exchange\n Then they view the rewards table\n Then the source displays <exchangeText>\n And under it displays the following\n | prettyRedeemedCredit → prettyValue |\n Examples:\n | propValue | exchangeText |\n | | Reward Exchange |\n | Exchanged | Exchanged |\n\n @motivating\n @ui\n Scenario Outline: The source column displays customizable referral information if the reward is from a referral\n Given the \"reward-source-text\" prop is <propValue>\n And a user with a referral reward\n And that reward has <rewardSource>\n When they view the rewards table\n Then then source displays <referralText>\n And under it displays the full name of the <referralUser>\n Examples:\n | propValue | rewardSource | referralText | referralUser |\n | | REFERRED | Referred by | referrer user |\n | | FRIEND_SIGNUP | Referral to | referred user |\n | {rewardSource, select, FRIEND_SIGNUP {You Referred} REFERRED {Referred you} other {}} | REFERRED | Referred you | referrer user |\n | {rewardSource, select, FRIEND_SIGNUP {You Referred} REFERRED {Referred you} other {}} | FRIEND_SIGNUP | You Referred | referred user |\n\n @motivating\n @ui\n Scenario Outline: The source column displays the existing name for a referral if either the first name or last name does not exist\n Given a user with a referral reward\n And referral user exists\n And referral user has <name>\n But referral user has no <otherName>\n When they view the rewards table\n Then referral user's name is displayed as <name>\n Examples:\n | name | otherName |\n | first.name | last.name |\n | last.name | first.name |\n\n @motivating\n @ui\n Scenario Outline: The source column displays referral as \"Anonymous User\" if the referral user has no names\n Given a user with a referral reward\n And that reward has <rewardSource>\n And the <referralUser> has no first name\n And the <referralUser> has no last name\n When they view the rewards table\n Then then source displays <sourceText>\n And under it displays \"Anonymous User\"\n Examples:\n | rewardSource | referralUser | sourceText |\n | FRIEND_SIGNUP | referrer | Referral to |\n | REFERRED | referred user | Referred by |\n\n @motivating\n @ui\n Scenario Outline: The source column displays referral as \"Deleted User\" if the referral user is deleted in the system\n Given a user with a referral reward\n And that reward has <rewardSource>\n But <referral> user was deleted\n When they view the rewards table\n Then the source displays <sourceText>\n And under it displays \"Deleted User\"\n Examples:\n | rewardSource | referral | sourceText |\n | \"FRIEND_SIGNUP\" | referrer | Referral to |\n | \"REFERRED\" | referred | Referred by |\n\n @minutia\n @ui\n Scenario Outline: Name fallbacks for referral users without names are customizable\n Given <prop> with <value>\n And a user with a referral reward\n But the referral user <hadAction>\n When they view the rewards table\n Then the source displays <value> as the referral user\n Examples:\n | prop | value | hadAction |\n | deleted-user | Former Customer | was deleted |\n | anonymous-user | Nameless User | had first and last name deleted |\n\n @motivating\n Scenario Outline: Source text can be customized\n Given the \"reward-source-text\" prop is \"{rewardSource, select, MANUAL {Support} AUTOMATED {Loyalty Program} other {}}\"\n And a user with a <rewardSource> reward\n When they view the rewards table\n Then the source is <sourceText>\n Examples:\n | rewardSource | sourceText |\n | MANUAL | Support |\n | AUTOMATED | Loyalty Program |";
11591
11591
 
@@ -1 +1 @@
1
- var __awaiter=this&&this.__awaiter||function(e,t,i,r){function n(e){return e instanceof i?e:new i((function(t){t(e)}))}return new(i||(i=Promise))((function(i,a){function o(e){try{l(r.next(e))}catch(e){a(e)}}function s(e){try{l(r["throw"](e))}catch(e){a(e)}}function l(e){e.done?i(e.value):n(e.value).then(o,s)}l((r=r.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var i={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},r,n,a,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(e){return function(t){return l([e,t])}}function l(o){if(r)throw new TypeError("Generator is already executing.");while(i)try{if(r=1,n&&(a=o[0]&2?n["return"]:o[0]?n["throw"]||((a=n["return"])&&a.call(n),0):n.next)&&!(a=a.call(n,o[1])).done)return a;if(n=0,a)o=[o[0]&2,a.value];switch(o[0]){case 0:case 1:a=o;break;case 4:i.label++;return{value:o[1],done:false};case 5:i.label++;n=o[1];o=[0];continue;case 7:o=i.ops.pop();i.trys.pop();continue;default:if(!(a=i.trys,a=a.length>0&&a[a.length-1])&&(o[0]===6||o[0]===2)){i=0;continue}if(o[0]===3&&(!a||o[1]>a[0]&&o[1]<a[3])){i.label=o[1];break}if(o[0]===6&&i.label<a[1]){i.label=a[1];a=o;break}if(a&&i.label<a[2]){i.label=a[2];i.ops.push(o);break}if(a[2])i.ops.pop();i.trys.pop();continue}o=t.call(e,i)}catch(e){o=[6,e];n=0}finally{r=a=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}};import{r as registerInstance,h as h$1}from"./index-f16aa635.js";import{f as useEffect,m as h}from"./stencil-hooks.module-aa42e74f.js";import{N,H,n as nn,y as yn,i as isDemo}from"./index.module-a46df001.js";import{c as cjs}from"./cjs-bdfb4486.js";import"./mixins-f60a614c.js";import"./JSS-67b5cff8.js";import{s as sanitizeUrlPath,g as getProps}from"./utils-334c1e34.js";import"./sqm-text-span-view-d776bd9c.js";import{P as PortalVerifyEmailView}from"./sqm-portal-verify-email-view-fb6875bb.js";var SUBMITTED_CONTEXT="sq:verify-submitted";function setSubmitted(e){window[SUBMITTED_CONTEXT]=e}function usePortalVerifyEmail(e){var t=this;var i=e.nextPage,r=e.failedPage,n=e.verifySuccessText,a=e.verifyEmailText,o=e.verifyInvalidText,s=e.networkErrorMessage,l=e.continueText;var u,c,f,d,v,m,y,h;var g=window[SUBMITTED_CONTEXT];var p=N();var b=H();var x=nn(),T=x[0],w=x[1],E=w.loading,P=w.data,S=w.errors;var _=new URLSearchParams(yn.location.search);var I=_.get("oobCode");var k=_.get("nextPage");var V=P===undefined&&S===undefined&&!!I;var j=!!(((u=b===null||b===void 0?void 0:b.managedIdentity)===null||u===void 0?void 0:u.emailVerified)||(P===null||P===void 0?void 0:P.verifyManagedIdentityEmail.success));var C=function(){return yn.push({pathname:r,search:_.toString()&&"?"+_.toString()})};var D=function(){_.delete("nextPage");var e=sanitizeUrlPath(k||i);yn.push(e.href)};var M=function(){return __awaiter(t,void 0,void 0,(function(){var e,t;return __generator(this,(function(i){switch(i.label){case 0:setSubmitted(true);console.log("submit",{submitted:g});if(!I)return[3,2];return[4,T({oobCode:I})];case 1:t=i.sent();if((t instanceof Error||!t.verifyManagedIdentityEmail.success)&&!((e=b===null||b===void 0?void 0:b.managedIdentity)===null||e===void 0?void 0:e.emailVerified)){return[2]}setTimeout((function(){D();setSubmitted(false)}),3e3);i.label=2;case 2:return[2]}}))}))};useEffect((function(){console.log({submitted:g,locale:p});if(j){setTimeout((function(){D();setSubmitted(false)}),3e3);return}if(b&&!P&&!g&&p!==undefined)M()}),[j,g,P,b,g,p]);return{states:{loading:E||V,error:((v=(d=(f=(c=S===null||S===void 0?void 0:S.response)===null||c===void 0?void 0:c.errors)===null||f===void 0?void 0:f[0])===null||d===void 0?void 0:d.extensions)===null||v===void 0?void 0:v.message)||((h=(y=(m=S===null||S===void 0?void 0:S.response)===null||m===void 0?void 0:m.errors)===null||y===void 0?void 0:y[0])===null||h===void 0?void 0:h.message)||(S===null||S===void 0?void 0:S.message)&&s,verified:j},data:{oobCode:I},callbacks:{failed:C,gotoNextPage:D},content:{verifySuccessText:n,verifyEmailText:a,verifyInvalidText:o,continueText:l}}}var PortalVerifyEmail=function(){function e(e){registerInstance(this,e);this.ignored=true;this.nextPage="/";this.failedPage="/";this.verifyEmailText="Verify your email";this.verifySuccessText="Your email has been verified and you are being redirected. If you are not redirected, please click Continue.";this.verifyInvalidText="The email verification code is invalid or has expired, please try again.";this.continueText="Continue";this.networkErrorMessage="An error occurred while verifying your email. Please refresh the page and try again.";h(this)}e.prototype.disconnectedCallback=function(){};e.prototype.render=function(){var e=isDemo()?usePortalVerifyEmailDemo(getProps(this)):usePortalVerifyEmail(getProps(this)),t=e.states,i=e.data,r=e.callbacks,n=e.content;return h$1(PortalVerifyEmailView,{states:t,data:i,callbacks:r,content:n})};return e}();function usePortalVerifyEmailDemo(e){return cjs({states:{error:"",loading:false,verified:true},data:{oobCode:"code"},callbacks:{failed:function(){console.log("failed")},gotoNextPage:function(){}},content:{verifySuccessText:e.verifySuccessText,verifyEmailText:e.verifyEmailText,verifyInvalidText:e.verifyInvalidText,continueText:e.continueText}},e.demoData||{},{arrayMerge:function(e,t){return t}})}export{PortalVerifyEmail as sqm_portal_verify_email};
1
+ var __awaiter=this&&this.__awaiter||function(e,t,i,r){function n(e){return e instanceof i?e:new i((function(t){t(e)}))}return new(i||(i=Promise))((function(i,a){function o(e){try{l(r.next(e))}catch(e){a(e)}}function s(e){try{l(r["throw"](e))}catch(e){a(e)}}function l(e){e.done?i(e.value):n(e.value).then(o,s)}l((r=r.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var i={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},r,n,a,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(e){return function(t){return l([e,t])}}function l(o){if(r)throw new TypeError("Generator is already executing.");while(i)try{if(r=1,n&&(a=o[0]&2?n["return"]:o[0]?n["throw"]||((a=n["return"])&&a.call(n),0):n.next)&&!(a=a.call(n,o[1])).done)return a;if(n=0,a)o=[o[0]&2,a.value];switch(o[0]){case 0:case 1:a=o;break;case 4:i.label++;return{value:o[1],done:false};case 5:i.label++;n=o[1];o=[0];continue;case 7:o=i.ops.pop();i.trys.pop();continue;default:if(!(a=i.trys,a=a.length>0&&a[a.length-1])&&(o[0]===6||o[0]===2)){i=0;continue}if(o[0]===3&&(!a||o[1]>a[0]&&o[1]<a[3])){i.label=o[1];break}if(o[0]===6&&i.label<a[1]){i.label=a[1];a=o;break}if(a&&i.label<a[2]){i.label=a[2];i.ops.push(o);break}if(a[2])i.ops.pop();i.trys.pop();continue}o=t.call(e,i)}catch(e){o=[6,e];n=0}finally{r=a=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}};import{r as registerInstance,h as h$1}from"./index-f16aa635.js";import{f as useEffect,m as h}from"./stencil-hooks.module-aa42e74f.js";import{H,n as nn,y as yn,i as isDemo}from"./index.module-a46df001.js";import{c as cjs}from"./cjs-bdfb4486.js";import"./mixins-f60a614c.js";import"./JSS-67b5cff8.js";import{s as sanitizeUrlPath,g as getProps}from"./utils-334c1e34.js";import"./sqm-text-span-view-d776bd9c.js";import{P as PortalVerifyEmailView}from"./sqm-portal-verify-email-view-fb6875bb.js";var SUBMITTED_CONTEXT="sq:verify-submitted";function setSubmitted(e){window[SUBMITTED_CONTEXT]=e}function usePortalVerifyEmail(e){var t=this;var i=e.nextPage,r=e.failedPage,n=e.verifySuccessText,a=e.verifyEmailText,o=e.verifyInvalidText,s=e.networkErrorMessage,l=e.continueText;var u,f,c,d,v,m,y,h;var g=window[SUBMITTED_CONTEXT];var p=H();var b=nn(),x=b[0],T=b[1],w=T.loading,E=T.data,P=T.errors;var S=new URLSearchParams(yn.location.search);var _=S.get("oobCode");var I=S.get("nextPage");var k=E===undefined&&P===undefined&&!!_;var V=!!(((u=p===null||p===void 0?void 0:p.managedIdentity)===null||u===void 0?void 0:u.emailVerified)||(E===null||E===void 0?void 0:E.verifyManagedIdentityEmail.success));var j=function(){return yn.push({pathname:r,search:S.toString()&&"?"+S.toString()})};var C=function(){S.delete("nextPage");var e=sanitizeUrlPath(I||i);yn.push(e.href)};var D=function(){return __awaiter(t,void 0,void 0,(function(){var e,t;return __generator(this,(function(i){switch(i.label){case 0:setSubmitted(true);if(!_)return[3,2];return[4,x({oobCode:_})];case 1:t=i.sent();if((t instanceof Error||!t.verifyManagedIdentityEmail.success)&&!((e=p===null||p===void 0?void 0:p.managedIdentity)===null||e===void 0?void 0:e.emailVerified)){return[2]}setTimeout((function(){C();setSubmitted(false)}),3e3);i.label=2;case 2:return[2]}}))}))};useEffect((function(){if(V){setTimeout((function(){C();setSubmitted(false)}),3e3);return}if(p&&!E&&!g)D()}),[V,g,E,p,g]);return{states:{loading:w||k,error:((v=(d=(c=(f=P===null||P===void 0?void 0:P.response)===null||f===void 0?void 0:f.errors)===null||c===void 0?void 0:c[0])===null||d===void 0?void 0:d.extensions)===null||v===void 0?void 0:v.message)||((h=(y=(m=P===null||P===void 0?void 0:P.response)===null||m===void 0?void 0:m.errors)===null||y===void 0?void 0:y[0])===null||h===void 0?void 0:h.message)||(P===null||P===void 0?void 0:P.message)&&s,verified:V},data:{oobCode:_},callbacks:{failed:j,gotoNextPage:C},content:{verifySuccessText:n,verifyEmailText:a,verifyInvalidText:o,continueText:l}}}var PortalVerifyEmail=function(){function e(e){registerInstance(this,e);this.ignored=true;this.nextPage="/";this.failedPage="/";this.verifyEmailText="Verify your email";this.verifySuccessText="Your email has been verified and you are being redirected. If you are not redirected, please click Continue.";this.verifyInvalidText="The email verification code is invalid or has expired, please try again.";this.continueText="Continue";this.networkErrorMessage="An error occurred while verifying your email. Please refresh the page and try again.";h(this)}e.prototype.disconnectedCallback=function(){};e.prototype.render=function(){var e=isDemo()?usePortalVerifyEmailDemo(getProps(this)):usePortalVerifyEmail(getProps(this)),t=e.states,i=e.data,r=e.callbacks,n=e.content;return h$1(PortalVerifyEmailView,{states:t,data:i,callbacks:r,content:n})};return e}();function usePortalVerifyEmailDemo(e){return cjs({states:{error:"",loading:false,verified:true},data:{oobCode:"code"},callbacks:{failed:function(){console.log("failed")},gotoNextPage:function(){}},content:{verifySuccessText:e.verifySuccessText,verifyEmailText:e.verifyEmailText,verifyInvalidText:e.verifyInvalidText,continueText:e.continueText}},e.demoData||{},{arrayMerge:function(e,t){return t}})}export{PortalVerifyEmail as sqm_portal_verify_email};