@saasquatch/mint-components 2.0.4-6 → 2.0.4-8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/sqm-big-stat_47.cjs.entry.js +4 -1
- package/dist/cjs/sqm-hero-image.cjs.entry.js +212 -0
- package/dist/cjs/sqm-hero-image.entry.cjs.js.map +1 -0
- package/dist/collection/components/sqm-hero-image/sqm-hero-image-view.js +4 -1
- package/dist/collection/components/sqm-hero-image/sqm-hero-image-view.js.map +1 -1
- package/dist/esm/sqm-big-stat_47.entry.js +4 -1
- package/dist/esm/sqm-hero-image.entry.js +210 -0
- package/dist/esm/sqm-hero-image.entry.js.map +1 -0
- package/dist/esm-es5/index.es6-B8obHcrJ.js.map +0 -1
- package/dist/esm-es5/sqm-big-stat_47.entry.js +1 -1
- package/dist/esm-es5/sqm-big-stat_47.entry.js.map +1 -1
- package/dist/esm-es5/sqm-hero-image.entry.js +2 -0
- package/dist/esm-es5/sqm-hero-image.entry.js.map +1 -1
- package/dist/mint-components/mint-components.esm.js +1 -1
- package/dist/mint-components/p--BIwzOKv.system.js.map +1 -0
- package/dist/mint-components/p-46b98516.system.entry.js +2 -0
- package/dist/mint-components/p-46b98516.system.entry.js.map +1 -0
- package/dist/mint-components/p-DgEk6gtv.system.js +1 -1
- package/dist/mint-components/{p-b71ccea6.entry.js → p-f43827dd.entry.js} +2 -2
- package/dist/mint-components/p-f43827dd.entry.js.map +1 -0
- package/dist/mint-components/sqm-hero-image.entry.esm.js.map +1 -0
- package/dist/mint-components/sqm-hero-image.entry.js +210 -0
- package/dist/mint-components/sqm-hero-image.entry.system.js.map +1 -0
- package/dist/mint-components/sqm-hero-image.system.entry.js +2 -0
- package/dist/mint-components/sqm-hero-image.system.entry.js.map +1 -0
- package/docs/docs.docx +0 -0
- package/docs/stats.json +17 -16
- package/package.json +1 -1
- package/dist/mint-components/p-7de6c83d.system.entry.js +0 -2
- package/dist/mint-components/p-7de6c83d.system.entry.js.map +0 -1
- package/dist/mint-components/p-CnhB5zL1.system.js.map +0 -1
- package/dist/mint-components/p-b71ccea6.entry.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"p--BIwzOKv.system.js","sources":["src/components/sqm-stencilbook/Themes.tsx","src/components/sqm-big-stat/sqm-big-stat.tsx","node_modules/color2k/dist/index.module.js","src/components/sqm-stencilbook/AutoColor.tsx","src/components/sqm-brand/sqm-brand.tsx","src/components/sqm-stencilbook/BrandSelector.tsx","src/components/sqm-card-feed/sqm-card-feed.tsx","src/components/sqm-checkbox-field/useCheckboxField.tsx","src/components/sqm-checkbox-field/sqm-checkbox-field.tsx","src/components/sqm-coupon-code/useCouponCode.tsx","src/components/sqm-coupon-code/sqm-coupon-code.tsx","src/components/sqm-divided-layout/sqm-divided-layout-view.tsx","src/components/sqm-divided-layout/sqm-divided-layout.tsx","src/components/sqm-dropdown-field/useDropdownField.tsx","src/components/sqm-dropdown-field/sqm-dropdown-field.tsx","src/components/sqm-edit-profile/useEditProfile.tsx","src/components/sqm-edit-profile/sqm-edit-profile.scss?tag=sqm-edit-profile&encapsulation=shadow","src/components/sqm-edit-profile/sqm-edit-profile.tsx","src/components/sqm-hero/sqm-hero.tsx","src/components/sqm-hero-image/sqm-hero-image-view.tsx","src/components/sqm-hero-image/sqm-hero-image.tsx","src/components/sqm-hook-story-container/sqm-hook-story-container.tsx","src/components/sqm-image/sqm-image-view.tsx","src/components/sqm-image/sqm-image.tsx","src/components/sqm-input-field/useInputField.tsx","src/components/sqm-input-field/sqm-input-field.tsx","src/components/sqm-lead-form/useLeadDropdownField.tsx","src/components/sqm-lead-form/sqm-lead-dropdown-field.tsx","src/components/sqm-lead-form/useLeadForm.tsx","src/components/sqm-lead-form/sqm-lead-form.tsx","src/components/sqm-leaderboard/useLeaderboard.tsx","src/components/sqm-leaderboard/sqm-leaderboard.tsx","src/components/sqm-link-button/sqm-link-button-view.tsx","src/components/sqm-link-button/sqm-link-button.tsx","src/components/sqm-marketing-emails-checkbox/sqm-marketing-emails-checkbox.tsx","src/components/sqm-name-fields/useNameFields.tsx","src/components/sqm-name-fields/sqm-name-fields.tsx","src/components/sqm-navigation-menu/sqm-navigation-menu-view.tsx","src/components/sqm-navigation-menu/useNavigationMenu.tsx","src/components/sqm-navigation-menu/sqm-navigation-menu.scss?tag=sqm-navigation-menu&encapsulation=shadow","src/components/sqm-navigation-menu/sqm-navigation-menu.tsx","src/components/sqm-payout-button-scroll/sqm-payout-button-scroll-view.tsx","src/components/sqm-payout-button-scroll/usePayoutButton.ts","src/components/sqm-payout-button-scroll/sqm-payout-button-scroll.tsx","src/components/tax-and-cash/sqm-payout-status-alert/sqm-payout-status-alert-view.tsx","src/components/tax-and-cash/sqm-payout-status-alert/sqm-payout-status-alert.tsx","src/components/sqm-portal-change-marketing/usePortalChangeMarketing.ts","src/components/sqm-portal-change-marketing/sqm-portal-change-marketing.tsx","src/components/sqm-portal-change-password/usePortalChangePassword.ts","src/components/sqm-portal-change-password/sqm-portal-change-password.tsx","src/components/sqm-portal-footer/sqm-portal-footer.tsx","src/components/sqm-portal-forgot-password/usePortalForgotPassword.tsx","src/components/sqm-portal-forgot-password/sqm-portal-forgot-password.tsx","src/components/sqm-portal-frame/usePortalFrame.tsx","src/components/sqm-portal-frame/sqm-portal-frame.tsx","src/components/sqm-portal-login/sqm-portal-login.tsx","src/components/sqm-portal-register/usePortalRegister.tsx","src/components/sqm-portal-register/sqm-portal-register.tsx","src/components/sqm-program-explainer/sqm-program-explainer-view.tsx","src/components/sqm-program-explainer/sqm-program-explainer.tsx","src/components/sqm-program-explainer-step/sqm-program-explainer-step-view.tsx","src/components/sqm-program-explainer-step/sqm-program-explainer-step.tsx","src/components/sqm-program-menu/useProgramMenu.tsx","src/components/sqm-program-menu/sqm-program-menu.tsx","src/components/sqm-referral-card/sqm-referral-card-view.tsx","src/components/sqm-referral-card/sqm-referral-card.tsx","src/components/sqm-referral-iframe/useReferralIframe.ts","src/components/sqm-referral-iframe/sqm-referral-iframe.tsx","src/components/sqm-referred-registration/sqm-referred-registration.tsx","node_modules/canvas-confetti/dist/confetti.module.mjs","src/components/sqm-reward-exchange-list/useRewardExchangeList.ts","src/components/sqm-reward-exchange-list/sqm-reward-exchange-list.tsx","src/components/sqm-router/useRouter.ts","src/components/sqm-router/sqm-router.css?tag=sqm-router","src/components/sqm-router/sqm-router.tsx","src/components/sqm-share-button/sqm-share-button.scss?tag=sqm-share-button&encapsulation=shadow","src/components/sqm-share-button/sqm-share-button.tsx","src/components/sqm-share-code/useShareCode.tsx","src/components/sqm-share-code/sqm-share-code.tsx","src/components/sqm-share-link/sqm-share-link.tsx","src/components/sqm-stat-container/sqm-stat-container.tsx","src/components/sqm-task-card/useTaskCard.ts","src/components/sqm-task-card/sqm-task-card.tsx","src/components/tax-and-cash/sqm-tax-and-cash/useTaxAndCash.tsx","src/components/tax-and-cash/sqm-tax-and-cash/sqm-tax-and-cash.tsx","src/components/sqm-timeline/sqm-timeline.tsx","src/components/sqm-timeline/SVGs.tsx","src/components/sqm-timeline/sqm-timeline-entry-view.tsx","src/components/sqm-timeline/sqm-timeline-entry.tsx","src/components/sqm-user-name/sqm-user-name-view.tsx","src/components/sqm-user-name/useUserName.tsx","src/components/sqm-user-name/sqm-user-name.tsx"],"sourcesContent":["/**\n *\n * Themes\n *\n * Export only valid CSS. Those will be injected into style tags.\n *\n * Useful links:\n * - https://brandcolors.net/\n * - Shoelace color generator: https://codepen.io/claviska/full/QWveRgL\n *\n */\n\nimport { BrandingConfiguration } from \"../../saasquatch\";\n\n// @ts-nocheck\nexport const Default = null;\n\nexport const Netflix: BrandingConfiguration = {\n main: {\n brandFont: \"Netflix Sans, Arial, sans-serif\",\n brandColor: \"#E50914\",\n },\n border: {\n borderColor: \"#333333\",\n borderRadius: 4,\n borderThickness: 1,\n },\n color: {\n textColorShades: {\n mainText: \"white\",\n subduedText: \"#B3B3B3\",\n },\n backgroundColor: \"#101010\",\n accentColorShades: {\n text: \"#E50914\",\n icon: \"#E50914\",\n border: \"#E50914\",\n background: \"#300609\",\n },\n success: {\n text: \"#66BB6A\",\n border: \"#4CAF50\",\n background: \"#1B5E20\",\n iconAndBadge: \"#4CAF50\",\n },\n warning: {\n text: \"#FFCA28\",\n border: \"#FFA726\",\n background: \"#F57C00\",\n iconAndBadge: \"#FFA726\",\n },\n critical: {\n text: \"#EF9A9A\",\n border: \"#E50914\",\n background: \"#B71C1C\",\n iconAndBadge: \"#E50914\",\n },\n informative: {\n text: \"#64B5F6\",\n border: \"#42A5F5\",\n background: \"#1976D2\",\n iconAndBadge: \"#42A5F5\",\n },\n neutral: {\n text: \"white\",\n iconAndBadge: \"#B3B3B3\",\n border: \"#333333\",\n background: \"#222222\",\n },\n },\n primaryButton: {\n buttonColor: {\n background: \"#E50914\",\n border: \"transparent\",\n label: \"#FFFFFF\",\n },\n buttonHoverColor: {\n background: \"#CC0000\",\n border: \"transparent\",\n label: \"#FFFFFF\",\n },\n borderRadius: 4,\n },\n secondaryButton: {\n buttonColor: {\n background: \"transparent\",\n border: \"#B3B3B3\",\n label: \"#FFFFFF\",\n },\n buttonHoverColor: {\n background: \"#333333\",\n border: \"#B3B3B3\",\n label: \"#FFFFFF\",\n },\n borderRadius: 4,\n },\n formFields: {\n formFieldColor: {\n background: \"#222222\",\n border: \"#B3B3B3\",\n inputText: \"#B3B3B3\",\n },\n hoverStateColor: \"#777777\",\n selectedStateColor: \"#E50914\",\n borderRadius: 4,\n },\n};\n\nexport const Amazon: BrandingConfiguration = {\n main: {\n brandFont: \"Amazon Ember, Arial, sans-serif\",\n brandColor: \"#FF9900\",\n },\n border: {\n borderColor: \"#D5D9D9\",\n borderRadius: 4,\n borderThickness: 1,\n },\n color: {\n backgroundColor: \"#ffffff\",\n textColorShades: {\n mainText: \"#2f2f2f\",\n subduedText: \"#565959\",\n },\n accentColorShades: {\n text: \"#FF9900\",\n icon: \"#FF9900\",\n border: \"#FFBF66\",\n background: \"#FFF4DD\",\n },\n success: {\n text: \"#198754\",\n border: \"#BCE8B2\",\n background: \"#D4EDDA\",\n iconAndBadge: \"#28A745\",\n },\n warning: {\n text: \"#856404\",\n border: \"#FFEBA2\",\n background: \"#FFF3CD\",\n iconAndBadge: \"#FFC107\",\n },\n critical: {\n text: \"#721C24\",\n border: \"#F5C6CB\",\n background: \"#F8D7DA\",\n iconAndBadge: \"#DC3545\",\n },\n informative: {\n text: \"#004085\",\n border: \"#B8DAFF\",\n background: \"#CCE5FF\",\n iconAndBadge: \"#007BFF\",\n },\n neutral: {\n text: \"#232F3E\",\n iconAndBadge: \"#565959\",\n border: \"#D5D9D9\",\n background: \"#F0F2F2\",\n },\n },\n primaryButton: {\n buttonColor: {\n background: \"#FF9900\",\n border: \"transparent\",\n label: \"#FFFFFF\",\n },\n buttonHoverColor: {\n background: \"#EB9100\",\n border: \"transparent\",\n label: \"#FFFFFF\",\n },\n borderRadius: 4,\n },\n secondaryButton: {\n buttonColor: {\n background: \"#FFFFFF\",\n border: \"#888C8C\",\n label: \"#232F3E\",\n },\n buttonHoverColor: {\n background: \"#F0F2F2\",\n border: \"#888C8C\",\n label: \"#232F3E\",\n },\n borderRadius: 4,\n },\n formFields: {\n formFieldColor: {\n background: \"#FFFFFF\",\n border: \"#D5D9D9\",\n inputText: \"#2f2f2f\",\n },\n borderRadius: 4,\n hoverStateColor: \"#A2A2A2\",\n selectedStateColor: \"#007185\",\n },\n};\n\nexport const Spotify: BrandingConfiguration = {\n main: {\n brandColor: \"#1ed760\",\n },\n border: {\n borderColor: \"#f4f4f4\",\n borderRadius: 18,\n borderThickness: 1,\n },\n color: {\n textColorShades: {\n mainText: \"white\",\n subduedText: \"white\",\n },\n backgroundColor: \"#121212\",\n accentColorShades: {\n icon: \"#1ed760\",\n },\n },\n primaryButton: {\n buttonColor: {\n background: \"#1ed760\",\n border: \"transparent\",\n label: \"#121212\",\n },\n buttonHoverColor: {\n background: \"#1DB954\",\n border: \"transparent\",\n label: \"#121212\",\n },\n borderRadius: 30,\n },\n secondaryButton: {\n buttonColor: {\n background: \"#191414\",\n border: \"#FFFFFF\",\n label: \"#FFFFFF\",\n },\n buttonHoverColor: {\n background: \"#282828\",\n border: \"#FFFFFF\",\n label: \"#121212\",\n },\n borderRadius: 30,\n },\n formFields: {\n formFieldColor: {\n background: \"#121212\",\n border: \"#7c7c7c\",\n inputText: \"#fff\",\n },\n borderRadius: 30,\n hoverStateColor: \"white\",\n selectedStateColor: \"white\",\n },\n};\n\nexport const Google: BrandingConfiguration = {\n main: { brandColor: \"#4285F4\", brandFont: \"Roboto, Arial, sans-serif\" },\n border: {\n borderColor: \"#DADCE0\",\n borderRadius: 4,\n borderThickness: 1,\n },\n color: {\n textColorShades: {\n mainText: \"#212124\",\n subduedText: \"#5F6368\",\n },\n backgroundColor: \"#FFFFFF\",\n accentColorShades: {\n text: \"#1A73E8\",\n border: \"#8AB4F8\",\n background: \"#E8F0FE\",\n icon: \"#4285F4\",\n },\n success: {\n text: \"#044e1d\",\n border: \"#A8DCD7\",\n background: \"#E6F4EA\",\n iconAndBadge: \"#34A853\",\n },\n warning: {\n text: \"#996a3d\",\n border: \"#FCD667\",\n background: \"#FFF7EE\",\n iconAndBadge: \"#FBBC04\",\n },\n critical: {\n text: \"#760b09\",\n border: \"#F28B82\",\n background: \"#FCE8E6\",\n iconAndBadge: \"#EA4335\",\n },\n informative: {\n text: \"#01368c\",\n border: \"#BFDBFE\",\n background: \"#E8F0FE\",\n iconAndBadge: \"#4285F4\",\n },\n neutral: {\n text: \"#202124\",\n border: \"#DADCE0\",\n background: \"#F8F9FA\",\n iconAndBadge: \"#5F6368\",\n },\n },\n primaryButton: {\n buttonColor: {\n background: \"#4285F4\",\n border: \"transparent\",\n label: \"#FFFFFF\",\n },\n buttonHoverColor: {\n background: \"#3C7CD1\",\n border: \"transparent\",\n label: \"#FFFFFF\",\n },\n borderRadius: 4,\n },\n secondaryButton: {\n buttonColor: {\n background: \"#FFFFFF\",\n border: \"#DADCE0\",\n label: \"#4285F4\",\n },\n buttonHoverColor: {\n background: \"#E8F0FE\",\n border: \"#DADCE0\",\n label: \"#4285F4\",\n },\n borderRadius: 4,\n },\n formFields: {\n formFieldColor: {\n background: \"#FFFFFF\",\n border: \"#DADCE0\",\n inputText: \"#202124\",\n },\n borderRadius: 4,\n hoverStateColor: \"#9AA0A6\",\n selectedStateColor: \"#4285F4\",\n },\n};\n","import { isDemo, useHost } from \"@saasquatch/component-boilerplate\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Host, Prop, State } from \"@stencil/core\";\nimport { DemoData } from \"../../global/demo\";\nimport { BigStatView, BigStatViewProps } from \"./sqm-big-stat-view\";\nimport { useBigStat } from \"./useBigStat\";\nimport { useDemoBigStat } from \"./useDemoBigStat\";\n\n/**\n *\n * @uiName User Stat\n * @validParents [\"sqm-stat-container\"]\n * @validChildren [\"p\",\"div\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"span\"]\n * @slots [{\"name\":\"\",\"title\":\"Stat Text\"}]\n * @uiOrder [\"statType\", \"programId\", \"*\"]\n * @slotEditor richText\n * @exampleGroup Statistics\n * @example Points Balance - <sqm-big-stat flex-reverse=\"true\" alignment=\"left\" stat-type=\"/rewardBalance/CREDIT/POINT/value/global\"><p>Points Balance</p></sqm-big-stat>\n * @example GiftCards Earned - <sqm-big-stat flex-reverse=\"true\" alignment=\"left\" stat-type=\"/integrationRewardsCountFiltered/AVAILABLE/global\"><p>Giftcards Earned</p></sqm-big-stat>\n * @example Referrals - <sqm-big-stat flex-reverse=\"true\" alignment=\"left\" stat-type=\"/referralsCount\"><p>Referrals</p></sqm-big-stat>\n * @example Other Stat - <sqm-big-stat flex-reverse=\"true\" alignment=\"left\" stat-type=\"\"><p>Label</p></sqm-big-stat>\n */\n@Component({\n tag: \"sqm-big-stat\",\n shadow: true,\n})\nexport class BigStat {\n /**\n * Select what type of stat to display. Manual paths are also supported.\n *\n * @uiWidget statTypeSelectWidget\n * @uiName Stat type\n * @required\n * @uiWidgetOptions {\"version\": 1.1}\n */\n @Prop() statType: string;\n\n /**\n * Controls the order of the stat value & description column\n *\n * @uiName Flex reverse\n * @default\n * @uiGroup Additional Settings\n */\n @Prop() flexReverse?: boolean = false;\n /**\n * Controls the alignment of the flexbox\n *\n * @uiName Alignment\n * @uiType string\n * @uiEnum [\"left\", \"right\", \"center\"]\n * @uiEnumNames [\"Left\", \"Right\", \"Center\"]\n * @uiGroup Additional Settings\n */\n @Prop() alignment?: \"left\" | \"right\" | \"center\" = \"center\";\n\n /**\n * The ID of the program that is used to scope stats. Defaults to the program context when no ID is specified.\n *\n * @uiName Program ID\n * @uiWidget programSelector\n * @uiGroup Additional Settings\n */\n @Prop() programId?: string;\n\n /**\n * Color of the stat text\n * @uiName Stat text color\n * @uiWidget color\n * @uiType string\n * @format color\n * @uiGroup Additional Settings\n */\n @Prop() statTextColor?: string;\n\n /**\n * Font size of the stat text in pixels\n * @uiName Stat font size\n * @uiType string\n * @uiGroup Additional Settings\n */\n @Prop() statFontSize?: number;\n\n /**\n * Font weight of the stat text\n * @uiName Stat font weight\n * @uiGroup Additional Settings\n * @uiEnum [100, 200, 300, 400, 500, 600, 700, 800, 900]\n * @uiEnumNames [\"Thin\", \"Extra Light\", \"Light\", \"Normal\", \"Medium\", \"Semi Bold\", \"Bold\", \"Extra Bold\", \"Heavy\"]\n */\n @Prop() statFontWeight?: number;\n\n /**\n * Color of the description text\n * @uiName Description text color\n * @uiWidget color\n * @uiType string\n * @format color\n * @uiGroup Additional Settings\n */\n @Prop() descriptionTextColor?: string;\n\n /**\n * Font size of the description text in pixels\n * @uiName Description font size\n * @uiGroup Additional Settings\n */\n @Prop() descriptionFontSize?: number;\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<BigStatViewProps>;\n\n @State()\n ignored = true;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n const { props, label } = isDemo() ? useDemoBigStat(this) : useBigStat(this);\n const host = useHost();\n const hasLabel = !!host.innerHTML?.trim();\n const labelSlot = <slot name=\"label\">{hasLabel ? <slot /> : label}</slot>;\n\n return (\n <Host className=\"hidden\">\n <BigStatView {...props} labelSlot={labelSlot}></BigStatView>\n </Host>\n );\n }\n}\n","function t(t,n,r){return Math.min(Math.max(t,r),n)}class n extends Error{constructor(t){super(`Failed to parse color: \"${t}\"`)}}function r(r){if(\"string\"!=typeof r)throw new n(r);if(\"transparent\"===r.trim().toLowerCase())return[0,0,0,0];let e=r.trim();e=u.test(r)?function(t){const r=t.toLowerCase().trim(),e=o[function(t){let n=5381,r=t.length;for(;r;)n=33*n^t.charCodeAt(--r);return(n>>>0)%2341}(r)];if(!e)throw new n(t);return`#${e}`}(r):r;const f=s.exec(e);if(f){const t=Array.from(f).slice(1);return[...t.slice(0,3).map(t=>parseInt(_(t,2),16)),parseInt(_(t[3]||\"f\",2),16)/255]}const p=i.exec(e);if(p){const t=Array.from(p).slice(1);return[...t.slice(0,3).map(t=>parseInt(t,16)),parseInt(t[3]||\"ff\",16)/255]}const z=a.exec(e);if(z){const t=Array.from(z).slice(1);return[...t.slice(0,3).map(t=>parseInt(t,10)),parseFloat(t[3]||\"1\")]}const h=c.exec(e);if(h){const[e,o,_,s]=Array.from(h).slice(1).map(parseFloat);if(t(0,100,o)!==o)throw new n(r);if(t(0,100,_)!==_)throw new n(r);return[...l(e,o,_),s||1]}throw new n(r)}const e=t=>parseInt(t.replace(/_/g,\"\"),36),o=\"1q29ehhb 1n09sgk7 1kl1ekf_ _yl4zsno 16z9eiv3 1p29lhp8 _bd9zg04 17u0____ _iw9zhe5 _to73___ _r45e31e _7l6g016 _jh8ouiv _zn3qba8 1jy4zshs 11u87k0u 1ro9yvyo 1aj3xael 1gz9zjz0 _3w8l4xo 1bf1ekf_ _ke3v___ _4rrkb__ 13j776yz _646mbhl _nrjr4__ _le6mbhl 1n37ehkb _m75f91n _qj3bzfz 1939yygw 11i5z6x8 _1k5f8xs 1509441m 15t5lwgf _ae2th1n _tg1ugcv 1lp1ugcv 16e14up_ _h55rw7n _ny9yavn _7a11xb_ 1ih442g9 _pv442g9 1mv16xof 14e6y7tu 1oo9zkds 17d1cisi _4v9y70f _y98m8kc 1019pq0v 12o9zda8 _348j4f4 1et50i2o _8epa8__ _ts6senj 1o350i2o 1mi9eiuo 1259yrp0 1ln80gnw _632xcoy 1cn9zldc _f29edu4 1n490c8q _9f9ziet 1b94vk74 _m49zkct 1kz6s73a 1eu9dtog _q58s1rz 1dy9sjiq __u89jo3 _aj5nkwg _ld89jo3 13h9z6wx _qa9z2ii _l119xgq _bs5arju 1hj4nwk9 1qt4nwk9 1ge6wau6 14j9zlcw 11p1edc_ _ms1zcxe _439shk6 _jt9y70f _754zsow 1la40eju _oq5p___ _x279qkz 1fa5r3rv _yd2d9ip _424tcku _8y1di2_ _zi2uabw _yy7rn9h 12yz980_ __39ljp6 1b59zg0x _n39zfzp 1fy9zest _b33k___ _hp9wq92 1il50hz4 _io472ub _lj9z3eo 19z9ykg0 _8t8iu3a 12b9bl4a 1ak5yw0o _896v4ku _tb8k8lv _s59zi6t _c09ze0p 1lg80oqn 1id9z8wb _238nba5 1kq6wgdi _154zssg _tn3zk49 _da9y6tc 1sg7cv4f _r12jvtt 1gq5fmkz 1cs9rvci _lp9jn1c _xw1tdnb 13f9zje6 16f6973h _vo7ir40 _bt5arjf _rc45e4t _hr4e100 10v4e100 _hc9zke2 _w91egv_ _sj2r1kk 13c87yx8 _vqpds__ _ni8ggk8 _tj9yqfb 1ia2j4r4 _7x9b10u 1fc9ld4j 1eq9zldr _5j9lhpx _ez9zl6o _md61fzm\".split(\" \").reduce((t,n)=>{const r=e(n.substring(0,3)),o=e(n.substring(3)).toString(16);let _=\"\";for(let t=0;t<6-o.length;t++)_+=\"0\";return t[r]=`${_}${o}`,t},{}),_=(t,n)=>Array.from(Array(n)).map(()=>t).join(\"\"),s=new RegExp(`^#${_(\"([a-f0-9])\",3)}([a-f0-9])?$`,\"i\"),i=new RegExp(`^#${_(\"([a-f0-9]{2})\",3)}([a-f0-9]{2})?$`,\"i\"),a=new RegExp(`^rgba?\\\\(\\\\s*(\\\\d+)\\\\s*${_(\",\\\\s*(\\\\d+)\\\\s*\",2)}(?:,\\\\s*([\\\\d.]+))?\\\\s*\\\\)$`,\"i\"),c=/^hsla?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)%\\s*,\\s*([\\d.]+)%(?:\\s*,\\s*([\\d.]+))?\\s*\\)$/i,u=/^[a-z]+$/i,f=t=>Math.round(255*t),l=(t,n,r)=>{let e=r/100;if(0===n)return[e,e,e].map(f);const o=(t%360+360)%360/60,_=(1-Math.abs(2*e-1))*(n/100),s=_*(1-Math.abs(o%2-1));let i=0,a=0,c=0;o>=0&&o<1?(i=_,a=s):o>=1&&o<2?(i=s,a=_):o>=2&&o<3?(a=_,c=s):o>=3&&o<4?(a=s,c=_):o>=4&&o<5?(i=s,c=_):o>=5&&o<6&&(i=_,c=s);const u=e-_/2;return[i+u,a+u,c+u].map(f)};function p(t){const[n,e,o,_]=r(t).map((t,n)=>3===n?t:t/255),s=Math.max(n,e,o),i=Math.min(n,e,o),a=(s+i)/2;if(s===i)return[0,0,a,_];const c=s-i;return[60*(n===s?(e-o)/c+(e<o?6:0):e===s?(o-n)/c+2:(n-e)/c+4),a>.5?c/(2-s-i):c/(s+i),a,_]}function z(n,r,e,o){return`hsla(${(n%360).toFixed()}, ${t(0,100,100*r).toFixed()}%, ${t(0,100,100*e).toFixed()}%, ${parseFloat(t(0,1,o).toFixed(3))})`}function h(t,n){const[r,e,o,_]=p(t);return z(r+n,e,o,_)}function d(t,n){const[r,e,o,_]=p(t);return z(r,e,o-n,_)}function g(t,n){const[r,e,o,_]=p(t);return z(r,e-n,o,_)}function w(t){if(\"transparent\"===t)return 0;function n(t){const n=t/255;return n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4)}const[e,o,_]=r(t);return.2126*n(e)+.7152*n(o)+.0722*n(_)}function x(t,n){const r=w(t),e=w(n);return r>e?(r+.05)/(e+.05):(e+.05)/(r+.05)}function m(n,r,e,o){return`rgba(${t(0,255,n).toFixed()}, ${t(0,255,r).toFixed()}, ${t(0,255,e).toFixed()}, ${parseFloat(t(0,1,o).toFixed(3))})`}function y(t,n,e){const o=(t,n)=>3===n?t:t/255,[_,s,i,a]=r(t).map(o),[c,u,f,l]=r(n).map(o),p=l-a,z=2*e-1,h=((z*p==-1?z:z+p)/(1+z*p)+1)/2,d=1-h;return m(255*(_*d+c*h),255*(s*d+u*h),255*(i*d+f*h),l*e+a*(1-e))}function b(){var n=[].slice.call(arguments);return r=>{const e=n.length-1,o=t(0,e,Math.floor(r*e)),_=t(0,e,Math.ceil(r*e)),s=1/e;return y(n[o],n[_],(r-s*o)/s)}}const k={decorative:1.5,readable:3,aa:4.5,aaa:7};function j(t,n=\"aa\"){return x(t,\"#fff\")<k[n]}function $(t,n){return d(t,-n)}function v(t,n){const[e,o,_,s]=r(t);return m(e,o,_,s-n)}function q(t,n){return v(t,-n)}function F(t){return w(t)>.179}function M(t){return F(t)?\"#000\":\"#fff\"}function A(t,n){return g(t,-n)}function I(n){const[e,o,_,s]=r(n);let i=n=>{const r=t(0,255,n).toString(16);return 1===r.length?`0${r}`:r};return`#${i(e)}${i(o)}${i(_)}${s<1?i(Math.round(255*s)):\"\"}`}function E(t){return m(...r(t))}function C(t){return z(...p(t))}export{n as ColorError,h as adjustHue,d as darken,g as desaturate,x as getContrast,w as getLuminance,b as getScale,t as guard,j as hasBadContrast,z as hsla,$ as lighten,y as mix,q as opacify,p as parseToHsla,r as parseToRgba,M as readableColor,F as readableColorIsBlack,m as rgba,A as saturate,I as toHex,C as toHsla,E as toRgba,v as transparentize};\n//# sourceMappingURL=index.module.js.map\n","import { ColorError, guard, hsla, parseToHsla } from \"color2k\";\n\nconst colorScale = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];\nconst lScale = [\n 0.95, //weight 50\n 0.86, //weight 100\n 0.76, //weight 200\n 0.66, //weight 300\n 0.56, //weight 400\n 0.46, //weight 500\n 0.39, //weight 600\n 0.32, //weight 700\n 0.25, //weight 800\n 0.18, //weight 900\n 0.15, //weight 950\n];\n\n// https://github.com/ricokahler/color2k/blob/main/src/parseToRgba.ts\nconst hslaRegex = /^hsla?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)%\\s*,\\s*([\\d.]+)%(?:\\s*,\\s*([\\d.]+))?\\s*\\)$/i;\nfunction niceParseToHsla(color: string): [number, number, number, number] {\n const normalizedColor = color.trim();\n const hslaMatch = hslaRegex.exec(normalizedColor);\n if (hslaMatch) {\n const [h, s, l, a] = Array.from(hslaMatch).slice(1).map(parseFloat);\n if (guard(0, 100, s) !== s) throw new ColorError(color);\n if (guard(0, 100, l) !== l) throw new ColorError(color);\n return [h, s/100, l, a || 1] as [number, number, number, number];\n }\n\n // Warning -- converts to RGB first, so is lossy\n return parseToHsla(color);\n}\n\nfunction generateScale(color: string, name = \"primary\"): string[] {\n const [h, s, l, a] = niceParseToHsla(color);\n\n return lScale\n .map((l) => hsla(h, s, l, a))\n .map((color, index) => {\n return `--sl-color-${name}-${colorScale[index]}: ${color};\\n`;\n });\n}\n\n/**\n * Generated a Shoelace color scale css string from a base color\n *\n * @param color\n * @param name\n * @returns\n */\nexport function autoColorScaleCss(color: string, name = \"primary\"): string {\n return generateScale(color, name).join(\"\\n\");\n}\n","import { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { useEffect } from \"@saasquatch/universal-hooks\";\nimport { Component, h, Host, Prop } from \"@stencil/core\";\nimport { buildFontsCssUrl } from \"../../fonts/GoogleFonts\";\nimport { autoColorScaleCss } from \"../sqm-stencilbook/AutoColor\";\n\n/**\n * @uiName Brand Container\n * @slots [{\"name\":\"\",\"title\":\"Branded Content\"}]\n * @exampleGroup Common Components\n * @example Brand Container - <sqm-brand brand=\"Nunito Sans\"><p>Add your branded content here!</p></sqm-brand>\n */\n@Component({\n tag: \"sqm-brand\",\n shadow: true,\n})\nexport class BrandComponent {\n /**\n * Controls the primary brand color used in the Mint Components library.\n *\n * @uiName Brand color\n * @uiWidget color\n * @format color\n */\n @Prop() brandColor: string;\n\n /**\n * Enter a font from the Google Fonts library to use throughout your widget. This value is case sensitive. Some fonts may not require quotations. Example: Roboto\n *\n * @uiName Brand font\n * @default \"Nunito Sans\"\n */\n @Prop() brandFont: string;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n function getCss(brandColor?: string) {\n if (brandColor) {\n try {\n return autoColorScaleCss(brandColor);\n } catch {}\n }\n return undefined;\n }\n\n const brandingConfigFont = window.SquatchBrandingConfig?.main?.brandFont;\n const css = window.SquatchBrandingConfig?.main?.brandColor\n ? \"\"\n : getCss(this.brandColor) ?? \"\";\n const sanitizedFont = (this.brandFont ?? \"Nunito Sans\").trim() || undefined;\n\n useEffect(() => {\n if (!sanitizedFont || brandingConfigFont) {\n // Nothing required in default case.\n // Don't add font if it's set in the global config\n return;\n }\n const sheet = document.createElement(\"link\");\n sheet.setAttribute(\"href\", buildFontsCssUrl(sanitizedFont));\n sheet.setAttribute(\"rel\", \"stylesheet\");\n document.head.appendChild(sheet);\n return () => document.head.removeChild(sheet);\n }, [sanitizedFont]);\n\n const font = sanitizedFont ?? \"\";\n\n return (\n <Host>\n <style>{`\n\n :host{\n display: contents;\n }\n /* \n Selects any element placed inside a slot\n - resets css variable inheritence for fonts\n \n */\n\n ${\n brandingConfigFont\n ? ``\n : `\n ::slotted(*) {\n --sl-font-sans: \"${font}\", arial;\n --sl-input-font-family: \"${font}\", arial;\n --sl-tooltip-font-family: \"${font}\", arial;\n font-family: \"${font}\", arial;\n\t\t\t\n ${css}\n `\n }\n\n --sl-focus-ring-color-primary: var(--sl-color-primary-100);\n --sl-input-border-color-focus: var(--sl-color-primary-500);\n --sl-color-primary-hue: var(--sl-color-primary-500);\n }`}</style>\n <slot />\n </Host>\n );\n }\n}\n","import { Component, h, Host, State } from \"@stencil/core\";\nimport { BrandingConfiguration } from \"../../saasquatch\";\nimport * as Themes from \"./Themes\";\n\nconst LOCAL_STORAGE_BRAND_KEY = \"localStorageBrandKey\";\nconst LOCAL_STORAGE_BRAND_CONFIG_KEY = \"localStorageBrandConfigKey\";\n\n@Component({\n tag: \"sqm-brand-selector\",\n shadow: false,\n})\nexport class SqmBrandSelector {\n @State() selectedBrand: string = \"Netflix\";\n\n constructor() {\n const storedBrand = localStorage.getItem(LOCAL_STORAGE_BRAND_KEY);\n const initialBrandName = storedBrand;\n\n this.selectedBrand = initialBrandName;\n\n // Initialize window.SquatchBrandingConfig based on the loaded brand\n const initialConfig =\n Themes[initialBrandName as keyof typeof Themes] || Themes.Netflix;\n\n window.SquatchBrandingConfig = initialConfig;\n const event = new CustomEvent(\"brandingConfigUpdated\", {\n detail: window.SquatchBrandingConfig,\n });\n window.dispatchEvent(event);\n }\n\n componentDidLoad() {\n const storedBrand = localStorage.getItem(LOCAL_STORAGE_BRAND_KEY);\n const initialBrandName = storedBrand;\n\n this.selectedBrand = initialBrandName;\n }\n\n disconnectedCallback() {}\n\n private brands = [\n {\n name: \"Netflix\",\n logoUrl:\n \"https://res.cloudinary.com/saasquatch-staging/image/upload/v1750803365/netflix_ftjbrr.png\",\n },\n {\n name: \"Amazon\",\n logoUrl:\n \"https://res.cloudinary.com/saasquatch-staging/image/upload/v1750803366/amazon_mc22fr.png\",\n },\n {\n name: \"Spotify\",\n logoUrl:\n \"https://res.cloudinary.com/saasquatch-staging/image/upload/v1750803510/spotify_j5qi1r.png\",\n },\n {\n name: \"Google\",\n logoUrl:\n \"https://res.cloudinary.com/saasquatch-staging/image/upload/v1750803168/pngimg.com_-_google_PNG19644_jvypwl.png\",\n },\n ];\n\n private updateBrand(brandName: string) {\n this.selectedBrand = brandName;\n const configToSet: BrandingConfiguration =\n Themes[brandName as keyof typeof Themes] || Themes.Netflix;\n const brandConfigString = JSON.stringify(configToSet);\n\n localStorage.setItem(LOCAL_STORAGE_BRAND_KEY, brandName);\n localStorage.setItem(LOCAL_STORAGE_BRAND_CONFIG_KEY, brandConfigString);\n\n window.SquatchBrandingConfig = configToSet;\n window.location.reload();\n\n const event = new CustomEvent(\"brandingConfigUpdated\", {\n detail: window.SquatchBrandingConfig,\n });\n window.dispatchEvent(event);\n }\n\n render() {\n return (\n <Host>\n <style>\n {`\n @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap');\n\n :host {\n display: block; /* Ensure the custom element itself is a block-level element */\n font-family: 'Inter', sans-serif;\n }\n\n .card-container {\n background-color: #fff !important; \n border-radius: 18px; \n box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1); \n width: 100%;\n max-width: 350px;\n overflow: hidden;\n padding: 10px;\n position: fixed;\n bottom: 0;\n right: 0;\n z-index: 999999;\n border: 1px solid #ccc;\n margin: 10px;\n }\n\n .card-heading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-bottom: 10px;\n color: black;\n margin: 0;\n font-size: 16px;\n }\n\n .segmented-control-container {\n display: flex;\n background-color: #e5e7eb !important; \n border-radius: 9999px; \n padding: 0.25rem; \n margin-left: auto;\n margin-right: auto;\n max-width: 28rem;\n box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.05); \n }\n\n .brand-segment {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n padding: 0px 8px; \n cursor: pointer;\n transition: all 300ms ease-in-out;\n border-radius: 9999px;\n color: #4b5563; \n cursor: pointer;\n }\n\n .brand-segment:hover {\n background-color: #f3f4f6 !important;\n }\n\n .brand-segment.active {\n background-color: #fff !important;\n color: #1f2937; \n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);\n }\n\n .brand-logo {\n height: 40px;\n width: 40px; \n object-fit: contain;\n }\n\n .brand-name {\n font-size: 0.75rem; \n line-height: 1rem; \n font-weight: 600; \n color: #4b5563;\n }\n\n .brand-segment.active .brand-name {\n color: #1f2937; \n }\n\n .content-area {\n padding: 2rem; \n }\n\n .selected-text {\n color: #4b5563; \n text-align: center;\n font-size: 1.125rem; \n line-height: 1.75rem; \n }\n\n .selected-brand-name {\n font-weight: 700; /* font-bold */\n color: #6d28d9; /* text-purple-700 */\n }\n\n .dynamic-content-box {\n margin-top: 1.5rem; /* mt-6 */\n padding: 1rem; /* p-4 */\n background-color: #f9fafb; /* bg-gray-50 */\n border-radius: 0.5rem; /* rounded-lg */\n color: #374151; /* text-gray-700 */\n font-size: 0.875rem; /* text-sm */\n line-height: 1.25rem; /* text-sm */\n font-style: italic;\n }\n\n /* Responsive adjustments for smaller screens if needed */\n @media (max-width: 640px) {\n .segmented-control-container {\n max-width: 100%; /* Allows it to take full width on small screens */\n padding: 0.15rem; /* Slightly less padding */\n }\n .brand-segment {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n }\n .brand-logo {\n height: 1.8rem; /* Slightly smaller on mobile */\n }\n }\n `}\n </style>\n <div class=\"card-container\">\n <h2 class=\"card-heading\">Select Branding</h2>\n\n <div class=\"segmented-control-container\">\n {this.brands.map((brand) => (\n <div\n key={brand.name}\n class={`brand-segment ${\n this.selectedBrand === brand.name ? \"active\" : \"\"\n }`}\n onClick={() => this.updateBrand(brand.name)}\n >\n <img\n src={brand.logoUrl}\n alt={`${brand.name} Logo`}\n class=\"brand-logo\"\n onError={(e: any) => {\n e.target.src =\n \"https://placehold.co/80x40/cccccc/000000?text=Logo\";\n }}\n />\n </div>\n ))}\n </div>\n </div>\n </Host>\n );\n }\n}\n","import { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Prop, State } from \"@stencil/core\";\nimport { getProps } from \"../../utils/utils\";\nimport { CardFeedView } from \"./sqm-card-feed-view\";\n\n/**\n * @uiName Card Feed\n * @slots [{\"name\":\"\",\"title\":\"Cards\"}]\n * @validParents [\"sqm-brand\",\"sqm-portal-container\", \"sqm-popup-container\", \"sqm-titled-section\", \"div\", \"sqm-divided-layout\", \"template\", \"sqb-program-section\", \"sqb-conditional-section\"]\n * @validChildren [\"sqm-task-card\"]\n * @exampleGroup Rewards\n * @example Task Card Feed - <sqm-card-feed gap=\"24\" width=\"347\"> <sqm-task-card reward-amount=\"20\" goal=\"1\" card-title=\"Complete a Survey\" description=\"Fill out our NPS survey and get 20 points for giving us honest feedback.\" button-text=\"Take survey\" reward-unit=\"Points\" completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\" ended-message=\"Ended {endDate}\" expiry-message=\"Ends {endDate}\" finite=\"0\" starts-on-message=\"Starts {startDate}\" > </sqm-task-card> <sqm-task-card reward-amount=\"250\" goal=\"500\" show-progress-bar card-title=\"Spend $500\" description=\"Earn 250 points when you spend $500 or more.\" button-text=\"See plans\" completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\" ended-message=\"Ended {endDate}\" expiry-message=\"Ends {endDate}\" progress-bar-unit=\"$\" finite=\"0\" reward-unit=\"Points\" starts-on-message=\"Starts {startDate}\" > </sqm-task-card> <sqm-task-card goal=\"1\" reward-amount=\"50\" card-title=\"Follow Us on X\" description=\"Earn 50 points when you Follow Us on X!\" button-text=\"Follow\" button-link=\"https://twitter.com/\" open-new-tab=\"true\" event-key=\"socialFollow\" completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\" ended-message=\"Ended {endDate}\" expiry-message=\"Ends {endDate}\" finite=\"0\" reward-unit=\"Points\" starts-on-message=\"Starts {startDate}\" > </sqm-task-card> <sqm-task-card reward-amount=\"1\" reward-unit=\"Free Month\" goal=\"1\" card-title=\"Upgrade Your Plan\" description=\"Receive one free month for being a committed customer when you upgrade your plan.\" button-text=\"Upgrade\" completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\" ended-message=\"Ended {endDate}\" expiry-message=\"Ends {endDate}\" open-new-tab=\"false\" finite=\"0\" starts-on-message=\"Starts {startDate}\" > </sqm-task-card> </sqm-card-feed>\n */\n@Component({\n tag: \"sqm-card-feed\",\n shadow: true,\n})\nexport class CardFeed {\n @State()\n ignored = true;\n\n /**\n * @uiName Card width\n */\n @Prop()\n width: number = 347;\n\n /**\n * @uiName Column gap\n * @uiType number\n */\n @Prop() gap: number = 24;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n return (\n <CardFeedView {...getProps(this)}>\n <slot />\n </CardFeedView>\n );\n }\n}\n","import { useDomContext } from \"@saasquatch/stencil-hooks\";\nimport { useEffect, useState } from \"@saasquatch/universal-hooks\";\nimport {\n RegistrationFormState,\n REGISTRATION_FORM_STATE_CONTEXT,\n} from \"../sqm-portal-registration-form/useRegistrationFormState\";\nimport { CheckboxField } from \"./sqm-checkbox-field\";\n\nexport function useCheckboxField(props: CheckboxField) {\n const registrationFormState = useDomContext<RegistrationFormState>(\n REGISTRATION_FORM_STATE_CONTEXT\n );\n const [checked, setChecked] = useState(false);\n useEffect(() => {\n if (registrationFormState?.initialData?.[props.checkboxName]) {\n setChecked(!!registrationFormState?.initialData?.[props.checkboxName]);\n }\n }, [registrationFormState?.initialData?.[props.checkboxName]]);\n return {\n states: {\n registrationFormState,\n checked,\n },\n callbacks: {\n setChecked,\n },\n };\n}\n","import { isDemo } from \"@saasquatch/component-boilerplate\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Prop, State } from \"@stencil/core\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../global/demo\";\nimport { RequiredPropsError } from \"../../utils/RequiredPropsError\";\nimport { getMissingProps, getProps } from \"../../utils/utils\";\nimport {\n CheckboxFieldView,\n CheckboxFieldViewProps,\n} from \"./sqm-checkbox-field-view\";\nimport { useCheckboxField } from \"./useCheckboxField\";\n\n/**\n * @uiName Form Checkbox Field\n * @validParents [\"sqm-portal-register\",\"sqm-portal-registration-form\", \"sqm-portal-google-registration-form\"]\n * @exampleGroup Microsite Components\n * @example Form Checkbox Field - <sqm-checkbox-field checkbox-name=\"terms\" checkbox-label=\"By signing up you agree to the {labelLink}\" checkbox-label-link=\"https://example.com\" checkbox-label-link-text=\"Terms and Conditions\" error-message=\"Must be checked\" ></sqm-checkbox-field>\n */\n@Component({\n tag: \"sqm-checkbox-field\",\n shadow: true,\n})\nexport class CheckboxField {\n @State()\n ignored = true;\n\n /**\n * This name is used as the key for this form field on submission. The name must be unique within this specific form.\n * @uiName Checkbox name attribute\n * @required\n */\n @Prop() checkboxName: string;\n\n /**\n * @uiName Checkbox label\n * @uiWidget textArea\n */\n @Prop() checkboxLabel: string = \"By signing up you agree to the {labelLink}\";\n\n /**\n * Used with link text if the checkbox label contains {labelLink}\n *\n * @uiName Checkbox label link\n */\n @Prop() checkboxLabelLink?: string = \"https://example.com\";\n\n /**\n * @uiName Checkbox label link lext\n */\n @Prop() checkboxLabelLinkText?: string = \"Terms and Conditions\";\n\n /**\n * @uiName Unchecked error message\n */\n @Prop() errorMessage?: string = \"Must be checked\";\n\n /**\n * @uiName Optional\n */\n @Prop() checkboxOptional?: boolean = false;\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<CheckboxFieldViewProps>;\n\n constructor() {\n withHooks(this);\n }\n\n disconnectedCallback() {}\n\n render() {\n const missingProps = getMissingProps([\n {\n attribute: \"checkbox-name\",\n value: this.checkboxName,\n },\n ]);\n\n if (!isDemo() && missingProps) {\n return (\n <RequiredPropsError\n missingProps={missingProps}\n heading={\"An error occured while loading this form\"}\n subheading={\n \"A technical problem prevented this checkbox field from loading. Please contact us with the link to this page.\"\n }\n description={\"Values for the following attributes are missing:\"}\n />\n );\n }\n\n const content = {\n ...getProps(this),\n };\n\n const { states, callbacks } = isDemo()\n ? useCheckboxFieldDemo(this)\n : useCheckboxField(this);\n return (\n <CheckboxFieldView\n states={states}\n content={content}\n callbacks={callbacks}\n ></CheckboxFieldView>\n );\n }\n}\nfunction useCheckboxFieldDemo(\n props: CheckboxField\n): Partial<CheckboxFieldViewProps> {\n return deepmerge(\n {\n states: {\n registrationFormState: {},\n checked: false,\n },\n callbacks: {\n setChecked: () => {},\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import {\n useEngagementMedium,\n useMutation,\n useProgramId,\n useQuery,\n useUserIdentity,\n} from \"@saasquatch/component-boilerplate\";\nimport { useEffect, useRef, useState } from \"@saasquatch/universal-hooks\";\nimport { gql } from \"graphql-request\";\nimport { intl } from \"../../global/global\";\nimport { CouponCodeViewProps } from \"./sqm-coupon-code-view\";\n\ninterface CouponCodeProps {\n programId?: string;\n tooltiptext: string;\n tooltiplifespan: number;\n cancelledErrorText: string;\n expiredErrorText: string;\n fullfillmentErrorText: string;\n pendingErrorText: string;\n redeemedErrorText: string;\n genericErrorText: string;\n buttonType?: \"primary\" | \"secondary\";\n codeSyncErrorText: string;\n codeSyncErrorRetryText: string;\n}\n\ntype PendingReasons =\n | \"SCHEDULED\"\n | \"UNHANDLED_ERROR\"\n | \"US_TAX\"\n | \"SUSPECTED_FRAUD\"\n | \"MISSING_PAYOUT_CONFIGURATION\"\n | \"ERROR_SYNCING_FUEL_TANK_CODE\";\n\ntype FuelTankReward = {\n fuelTankCode: string;\n fuelTankType: string;\n statuses: string;\n dateGiven: number;\n dateExpires: number;\n dateRedeemed: number;\n dateCancelled: number;\n dateScheduledFor: number;\n datePendingForUnhandledError: number;\n pendingReasons: PendingReasons[];\n};\n\nexport type RewardStatusType =\n | \"AVAILABLE\"\n | \"EXPIRED\"\n | \"REDEEMED\"\n | \"CANCELLED\"\n | \"PENDING\"\n | \"EMPTY_TANK\"\n | \"ERROR\"\n | \"ERROR_SYNCING_FUEL_TANK_CODE\";\n\ninterface FuelTankRewardsQueryResult {\n user: {\n instantAccessRewards: {\n data: FuelTankReward[];\n totalCount: number;\n count: number;\n };\n };\n}\n\nconst FuelTankRewardsQuery = gql`\n query fuelTankRewardsQuery($programId: ID!) {\n user: viewer {\n ... on User {\n instantAccessRewards(\n filter: { type_eq: FUELTANK, programId_eq: $programId }\n ) {\n data {\n fuelTankCode\n fuelTankType\n statuses\n dateGiven\n dateExpires\n dateRedeemed\n dateCancelled\n dateScheduledFor\n datePendingForUnhandledError\n pendingReasons\n }\n count\n totalCount\n }\n }\n }\n }\n`;\n\nconst WIDGET_ENGAGEMENT_EVENT = gql`\n mutation loadEvent($eventMeta: UserAnalyticsEvent!) {\n createUserAnalyticsEvent(eventMeta: $eventMeta)\n }\n`;\n\nexport function useCouponCode(props: CouponCodeProps): CouponCodeViewProps {\n const user = useUserIdentity();\n const programId = useProgramId();\n const engagementMedium = useEngagementMedium();\n\n const [sendLoadEvent] = useMutation(WIDGET_ENGAGEMENT_EVENT);\n\n const [retried, setRetried] = useState(false);\n const [countdown, setCountdown] = useState(60);\n const timerRef = useRef<NodeJS.Timer>(undefined);\n const countdownRef = useRef<NodeJS.Timer>(undefined);\n\n const { data, loading, refetch, errors } =\n useQuery<FuelTankRewardsQueryResult>(\n FuelTankRewardsQuery,\n { programId },\n !user?.jwt\n );\n\n async function checkReward() {\n const data = await refetch();\n setRetried(true);\n if (\n !(\n data as FuelTankRewardsQueryResult\n )?.user?.instantAccessRewards?.data?.[0]?.pendingReasons?.includes(\n \"ERROR_SYNCING_FUEL_TANK_CODE\"\n )\n ) {\n return clearInterval(timerRef.current);\n }\n }\n\n const reward = data?.user?.instantAccessRewards?.data?.[0];\n\n const startTimer = (countdown: number = 61000) =>\n setInterval(checkReward, countdown);\n const startCountdown = (countdown: number) =>\n setInterval(() => setCountdown(countdown), 1000);\n\n // Refetch reward status timer\n useEffect(() => {\n if (\n !timerRef.current &&\n reward?.statuses?.includes(\"PENDING\") &&\n reward?.pendingReasons?.includes(\"ERROR_SYNCING_FUEL_TANK_CODE\")\n ) {\n timerRef.current = startTimer();\n }\n return () => {\n clearInterval(timerRef.current);\n };\n }, []);\n\n // Countdown timer\n useEffect(() => {\n if (\n countdown > 0 &&\n reward?.statuses?.includes(\"PENDING\") &&\n reward?.pendingReasons?.includes(\"ERROR_SYNCING_FUEL_TANK_CODE\")\n ) {\n clearInterval(countdownRef.current);\n countdownRef.current = startCountdown(countdown - 1);\n }\n\n return () => {\n clearInterval(countdownRef.current);\n };\n }, [countdown, reward]);\n\n useEffect(() => {\n // Retry after a minute if the reward is pending and has an error syncing the fuel tank code\n if (\n reward?.statuses?.includes(\"PENDING\") &&\n reward?.pendingReasons?.includes(\"ERROR_SYNCING_FUEL_TANK_CODE\")\n ) {\n startTimer();\n }\n }, [reward]);\n\n const getStatus = (reward: FuelTankReward | undefined) => {\n if (!reward || !reward.statuses) return \"ERROR\";\n\n const state = reward.statuses[reward.statuses.length - 1];\n\n if (\n state === \"PENDING\" &&\n reward.pendingReasons.includes(\"ERROR_SYNCING_FUEL_TANK_CODE\")\n )\n return \"ERROR_SYNCING_FUEL_TANK_CODE\";\n\n if (state === \"PENDING\" && reward.dateScheduledFor === null)\n return \"EMPTY_TANK\";\n\n return state;\n };\n\n const rewardStatus = getStatus(reward) as RewardStatusType;\n const dateAvailable =\n rewardStatus === \"PENDING\" && reward.dateScheduledFor\n ? new Date(reward.dateScheduledFor).toLocaleDateString(\"default\", {\n day: \"numeric\",\n month: \"long\",\n year: \"numeric\",\n })\n : undefined;\n\n const copyString = reward?.fuelTankCode || \"...\";\n\n const [open, setOpen] = useState(false);\n\n function onClick() {\n // Should well supported: https://developer.mozilla.org/en-US/docs/Web/API/Clipboard#browser_compatibility\n // Only if called from a user-initiated event\n navigator.clipboard.writeText(copyString);\n setOpen(true);\n setTimeout(() => setOpen(false), props.tooltiplifespan);\n sendLoadEvent({\n eventMeta: {\n programId,\n id: user?.id,\n accountId: user?.accountId,\n type: \"USER_REFERRAL_PROGRAM_ENGAGEMENT_EVENT\",\n meta: {\n engagementMedium,\n shareMedium: \"DIRECT\",\n },\n },\n });\n }\n\n const getRewardStatusText = (status: RewardStatusType) => {\n switch (status) {\n case \"CANCELLED\":\n return props.cancelledErrorText;\n case \"EXPIRED\":\n return props.expiredErrorText;\n case \"EMPTY_TANK\":\n return props.fullfillmentErrorText;\n case \"ERROR_SYNCING_FUEL_TANK_CODE\":\n return retried\n ? intl.formatMessage(\n {\n id: \"codeSyncErrorText\",\n defaultMessage: props.codeSyncErrorText,\n },\n {\n supportEmail: \"advocate-support@impact.com\",\n }\n )\n : intl.formatMessage(\n {\n id: \"codeSyncErrorText\",\n defaultMessage: props.codeSyncErrorRetryText,\n },\n {\n supportEmail: \"advocate-support@impact.com\",\n timeRemaining: countdown,\n }\n );\n case \"PENDING\":\n return props.pendingErrorText.replace(\"{unpendDate}\", dateAvailable);\n case \"REDEEMED\":\n return props.redeemedErrorText;\n case \"AVAILABLE\":\n return \"\";\n default:\n return props.genericErrorText;\n }\n };\n const getRewardStatusErrorType = (status: RewardStatusType) => {\n switch (status) {\n case \"EXPIRED\":\n case \"EMPTY_TANK\":\n case \"CANCELLED\":\n case \"ERROR\":\n case \"ERROR_SYNCING_FUEL_TANK_CODE\":\n return \"warning\";\n case \"PENDING\":\n return \"info\";\n case \"REDEEMED\":\n return \"success\";\n default:\n return;\n }\n };\n\n const errorText = getRewardStatusText(rewardStatus);\n const errorType = getRewardStatusErrorType(rewardStatus);\n const error = rewardStatus !== \"AVAILABLE\";\n\n return {\n ...props,\n onClick,\n open,\n copyString,\n error,\n errorText,\n dateAvailable,\n loading,\n errorType,\n buttonType: props.buttonType || \"primary\",\n };\n}\n","import { isDemo } from \"@saasquatch/component-boilerplate\";\nimport { useState, withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, Prop, h } from \"@stencil/core\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../global/demo\";\nimport { getProps } from \"../../utils/utils\";\nimport { CouponCodeView, CouponCodeViewProps } from \"./sqm-coupon-code-view\";\nimport { useCouponCode } from \"./useCouponCode\";\n\n/**\n * @uiName Coupon Code\n * @validParents [\"sqm-brand\",\"sqm-portal-container\",\"div\",\"sqm-popup-container\",\"sqm-hero\",\"sqm-referral-card\",\"sqm-titled-section\", \"sqb-program-section\", \"sqb-conditional-section\"]\n * @compatibility Built for instant access\n * @exampleGroup Instant Access\n * @example Coupon Code - <sqm-coupon-code tooltip-text=\"Copied to Clipboard\" tooltip-lifespan=\"1000\"></sqm-coupon-code>\n */\n@Component({\n tag: \"sqm-coupon-code\",\n shadow: true,\n})\nexport class CouponCode {\n /**\n * The ID of the program that should generate the code. Defaults to the program ID in context where this widget is loaded.\n *\n * @uiName Program ID\n * @uiWidget programSelector\n */\n @Prop() programId?: string;\n\n /**\n * Shown inside a tooltip after someone has successfully copied the link to their clipboard.\n *\n * @uiName Tooltip text\n */\n @Prop({\n attribute: \"tooltip-text\",\n })\n tooltiptext: string = \"Copied to Clipboard\";\n\n /**\n * The number of milliseconds that the tooltip appears for\n *\n * @uiName Tooltip lifespan\n */\n @Prop({\n attribute: \"tooltip-lifespan\",\n })\n tooltiplifespan: number = 1000;\n\n /**\n * @uiName Coupon code alignment\n * @uiType string\n * @uiEnum [\"left\", \"center\", \"right\"]\n * @uiEnumNames [\"Left\", \"Center\", \"Right\"]\n * @uiGroup Style\n */\n @Prop({\n attribute: \"text-align\",\n })\n textAlign?: \"left\" | \"center\" | \"right\" = \"left\";\n\n /**\n * @uiName Copy button label\n */\n @Prop({\n attribute: \"copy-button-label\",\n })\n copyButtonLabel: string = \"Copy Coupon\";\n\n /**\n * Set the copy button style and placement.\n *\n * @uiName Style\n * @uiType string\n * @uiEnum [\"icon\", \"button-outside\", \"button-below\"]\n * @uiEnumNames [\"Icon\", \"Button outside\", \"Button below\"]\n * @uiGroup Style\n */\n @Prop({\n attribute: \"copy-button-style\",\n })\n buttonStyle?: \"icon\" | \"button-outside\" | \"button-below\" = \"icon\";\n\n /**\n * @uiName Coupon code label\n */\n @Prop({\n attribute: \"coupon-code-label\",\n })\n couponCodeLabel: string = \"Your coupon code:\";\n\n /**\n * Display this message when the coupon code has been cancelled.\n *\n * @uiWidget textArea\n * @uiName Cancelled code error message\n * @uiGroup Coupon code error\n */\n @Prop({\n attribute: \"cancelled-error-text\",\n })\n cancelledErrorText: string =\n \"This code has been cancelled. Please reach out to the Support team for help resolving this issue.\";\n\n /**\n * Display this message when the coupon code has already been redeemed.\n *\n * @uiWidget textArea\n * @uiName Redeemed code error message\n * @uiGroup Coupon code error\n */\n @Prop({\n attribute: \"redeemed-error-text\",\n })\n redeemedErrorText: string = \"Looks like you’ve already redeemed this code.\";\n\n /**\n * Display this message when the coupon code has expired.\n *\n * @uiWidget textArea\n * @uiName Expired code error message\n * @uiGroup Coupon code error\n */\n @Prop({\n attribute: \"expired-error-text\",\n })\n expiredErrorText: string =\n \"Looks like this code has expired. Please reach out to the Support team for help resolving this issue.\";\n\n /**\n * Display this message when the code fails to load due to a fulfillment error.\n *\n * @uiWidget textArea\n * @uiName Code fulfillment error message\n * @uiGroup Coupon code error\n */\n @Prop({\n attribute: \"fullfilled-error-text\",\n })\n fullfillmentErrorText: string =\n \"We couldn't fetch your code. Please try again later or reach out to the Support team for help resolving this issue.\";\n\n /**\n * Display this message when the coupon code not available yet. Use the ICU message, {unpendDate}, to show the date the code will be available.\n *\n * @uiWidget textArea\n * @uiName Code pending error message\n * @uiGroup Coupon code error\n */\n @Prop({\n attribute: \"pending-error-text\",\n })\n pendingErrorText: string =\n \"Your code will be available on {unpendDate}. Mark your calendar and come back then to redeem your reward!\";\n\n /**\n * Display this message when the code fails to load before retrying.\n *\n * @uiWidget textArea\n * @uiName Code sync error retry message\n * @uiGroup Coupon code error\n */\n @Prop({\n attribute: \"code-sync-error-retry-text\",\n })\n codeSyncErrorRetryText: string =\n \"We're experiencing an issue generating your coupon code. If it doesn't appear shortly, please contact {supportEmail}. Retrying in {timeRemaining} seconds.\";\n\n /**\n * Display this message when the code fails to load after retrying.\n *\n * @uiWidget textArea\n * @uiName Code sync error message\n * @uiGroup Coupon code error\n */\n @Prop({\n attribute: \"code-sync-error-text\",\n })\n codeSyncErrorText: string =\n \"We're still experiencing an issue generating your coupon code. Please contact {supportEmail} for assistance.\";\n\n /**\n * Display this message when the code fails to load due to an unspecified error.\n *\n * @uiWidget textArea\n * @uiName Code retrieval error message\n * @uiGroup Coupon code error\n */\n @Prop({\n attribute: \"error-text\",\n })\n genericErrorText: string =\n \"We couldn't fetch your code. Please try again later or reach out to the Support team for help resolving this issue.\";\n\n /**\n * Display this text when the coupon code can’t be retrieved.\n *\n * @uiName Coupon code placeholder\n * @uiGroup Coupon code error\n */\n @Prop({\n attribute: \"coupon-code-placeholder\",\n })\n couponCodePlaceholder: string = \"...\";\n\n /**\n * Border color of share link container\n * @uiName Border color\n * @uiWidget color\n * @format color\n * @uiGroup Style\n */\n @Prop() borderColor?: string;\n\n /**\n * Color of the text and copy icon\n * @uiName Text color\n * @uiWidget color\n * @format color\n * @uiGroup Style\n */\n @Prop() textColor?: string;\n\n /**\n * The border radius on the share link container (in pixels)\n * @uiName Border Radius\n * @uiType number\n * @uiGroup Style\n */\n @Prop() borderRadius?: string;\n\n /**\n * The type of the button (primary or secondary) that will be used to copy the link.\n * @uiName Button Type\n * @uiType string\n * @uiEnum [\"primary\", \"secondary\"]\n * @uiEnumNames [\"Primary\", \"Secondary\"]\n * @uiGroup Style\n */\n @Prop()\n buttonType?: \"primary\" | \"secondary\" = \"primary\";\n\n /**\n * Background color of share link container\n * @uiName Background color\n * @uiWidget color\n * @format color\n * @uiGroup Style\n */\n @Prop() backgroundColor?: string;\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<CouponCodeViewProps>;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n const thisProps = getProps(this);\n const props = isDemo()\n ? useDemoCouponCode(thisProps)\n : useCouponCode(thisProps);\n\n return <CouponCodeView {...props} />;\n }\n}\n\nfunction useDemoCouponCode(props: CouponCode): CouponCodeViewProps {\n const [open, setOpen] = useState(false);\n const copyString = \"THANKSJANE125uv125\";\n return deepmerge(\n {\n copyString,\n tooltiptext: props.tooltiptext,\n textAlign: props.textAlign,\n buttonStyle: props.buttonStyle,\n copyButtonLabel: props.copyButtonLabel,\n error: false,\n couponCodePlaceholder: props.couponCodePlaceholder,\n couponCodeLabel: props.couponCodeLabel,\n borderColor: props.borderColor,\n backgroundColor: props.backgroundColor,\n textColor: props.textColor,\n borderRadius: props.borderRadius,\n buttonType: props.buttonType,\n codeSyncErrorText: props.codeSyncErrorText,\n codeSyncErrorRetryText: props.codeSyncErrorRetryText,\n open,\n onClick: () => {\n // Should well supported: https://developer.mozilla.org/en-US/docs/Web/API/Clipboard#browser_compatibility\n // Only if called from a user-initiated event\n navigator.clipboard.writeText(copyString);\n setOpen(true);\n setTimeout(() => setOpen(false), props.tooltiplifespan);\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import { h, VNode } from \"@stencil/core\";\nimport { createStyleSheet } from \"../../styling/JSS\";\n\ninterface DividedLayoutViewProps {\n direction: \"row\" | \"column\";\n contentAreaWidth?: string | null;\n dividerStyle?: string;\n backgroundColor?: string;\n borderless?: boolean;\n borderColor?: string;\n}\n\nexport function DividedLayoutView(\n props: DividedLayoutViewProps,\n children: VNode\n) {\n const getBorder = () => {\n if (props.direction === \"row\") {\n return {\n \"border-right\": props.borderless\n ? \"none\"\n : `var(--sqm-border-thickness) solid ${\n props.borderColor || \"var(--sqm-border-color)\"\n }`,\n };\n } else {\n return {\n \"border-bottom\": props.borderless\n ? \"none\"\n : `var(--sqm-border-thickness) solid ${\n props.borderColor || \"var(--sqm-border-color)\"\n }`,\n };\n }\n };\n\n const style = {\n LayoutContainer: {\n background: props.backgroundColor,\n display: \"contents\",\n // First style applies when shadow DOM is disabled, second applies when shadow DOM is enabled\n \"& > :not(:last-child)\": {\n ...getBorder(),\n },\n \"& > ::slotted(*:not(:last-child))\": {\n ...getBorder(),\n },\n },\n };\n\n const hostStyle = `\n display: flex;\n flex: 1;\n box-sizing: border-box;\n flex-direction: ${props.direction};\n background-color: var(--sqm-portal-background);\n color: var(--sqm-text);\n overflow-x: clip;\n ${props.direction === \"column\" ? \"width: 100%; max-width: 100%\" : \"\"}\n ${\n props.contentAreaWidth !== null\n ? `max-width: ${props.contentAreaWidth} !important;`\n : \"\"\n }\n `;\n\n const vanillaStyle = `\n :host{\n ${hostStyle}\n }\n @media screen and (max-width: 570px) {\n :host {\n display: flex;\n flex-direction: column;\n }\n }\n sqm-divided-layout {\n ${hostStyle}\n }\n `;\n\n const sheet = createStyleSheet(style);\n const styleString = sheet.toString();\n\n return (\n <div class={sheet.classes.LayoutContainer} part=\"sqm-base\">\n <style type=\"text/css\">\n {vanillaStyle}\n {styleString}\n </style>\n {children}\n </div>\n );\n}\n","import { Component, h, Prop } from \"@stencil/core\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { DividedLayoutView } from \"./sqm-divided-layout-view\";\nimport { getProps } from \"../../utils/utils\";\n\n/**\n * Shows it's children as either a row or a column, with a division in between them.\n * Spacing is left up to the child\n *\n * @uiName Divided Layout\n * @validParents [\"sqm-brand\",\"sqm-portal-container\",\"div\",\"sqm-popup-container\",\"sqm-hero\",\"sqm-referral-card\",\"sqm-titled-section\",\"sqb-program-section\",\"sqb-conditional-section\", \"sqm-divided-layout\"]\n * @exampleGroup Layout\n * @slots [{\"name\":\"\", \"title\":\"Layout Content\"}]\n */\n@Component({\n tag: \"sqm-divided-layout\",\n shadow: true,\n})\nexport class DividedLayout {\n /**\n * @uiName Direction\n * @uiType string\n * @uiEnum [\"row\", \"column\"]\n * @uiEnumNames [\"Row\", \"Column\"]\n */\n @Prop() direction: \"row\" | \"column\";\n\n /**\n * Overrides max-width of content area\n * @uiName Content Area Width\n * @uiType string\n */\n @Prop() contentAreaWidth: string | null;\n\n /**\n * @undocumented\n * Uses Shorthand CSS border syntax allowing specification of thickness, fill style and color.\n * @uiName Border style\n */\n @Prop() dividerStyle: string =\n \"var(--sqm-border-thickness) solid var(--sqm-border-color)\";\n\n /**\n * Background color of the divider\n * @uiName Background Color\n * @uiWidget color\n */\n @Prop() backgroundColor?: string = \"#FFFFFF\";\n\n /**\n * Color of the divider (defaults to default text color if none is set)\n * @uiName Border Color\n * @uiWidget color\n */\n @Prop() borderColor?: string;\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n return (\n <DividedLayoutView {...getProps(this)}>\n <slot />\n </DividedLayoutView>\n );\n }\n}\n","import { useDomContext } from \"@saasquatch/stencil-hooks\";\nimport {\n RegistrationFormState,\n REGISTRATION_FORM_STATE_CONTEXT,\n} from \"../sqm-portal-registration-form/useRegistrationFormState\";\n\nexport function useDropdownField() {\n const registrationFormState = useDomContext<RegistrationFormState>(\n REGISTRATION_FORM_STATE_CONTEXT\n );\n return {\n states: {\n registrationFormState,\n },\n };\n}\n","import { isDemo } from \"@saasquatch/component-boilerplate\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Prop, State } from \"@stencil/core\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../global/demo\";\nimport { RequiredPropsError } from \"../../utils/RequiredPropsError\";\nimport { getMissingProps, getProps } from \"../../utils/utils\";\nimport {\n DropdownFieldView,\n DropdownFieldViewProps,\n} from \"./sqm-dropdown-field-view\";\nimport { useDropdownField } from \"./useDropdownField\";\n\n/**\n * @uiName Form Dropdown Field\n * @validParents [\"sqm-portal-register\",\"sqm-portal-registration-form\", \"sqm-portal-google-registration-form\"]\n * @slots [{\"name\":\"\", \"title\":\"Drop Down Option\"}]\n * @exampleGroup Microsite Components\n * @example Form Dropdown Field - <sqm-dropdown-field dropdown-label=\"Select an option\" error-message=\"Select an option\"><sl-menu-item value=\"option-1\">Option 1</sl-menu-item><sl-menu-item value=\"option-2\">Option 2</sl-menu-item><sl-menu-item value=\"option-3\">Option 3</sl-menu-item></sqm-dropdown-field>\n */\n@Component({\n tag: \"sqm-dropdown-field\",\n})\nexport class DropdownField {\n @State()\n ignored = true;\n\n /**\n * This name is used as the key for this form field on submission. The name must be unique within this specific form.\n * @uiName Dropdown name attribute\n * @required\n */\n @Prop() dropdownName: string;\n\n /**\n * @uiName Dropdown label\n */\n @Prop() dropdownLabel: string = \"Select an option\";\n /**\n * @uiName Unselected error message\n */\n @Prop() errorMessage: string = \"Select an option\";\n\n /**\n * @uiName Optional\n * @default\n */\n @Prop() dropdownOptional?: boolean = false;\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<DropdownFieldViewProps>;\n\n constructor() {\n withHooks(this);\n }\n\n disconnectedCallback() {}\n\n render() {\n const missingProps = getMissingProps([\n {\n attribute: \"dropdown-name\",\n value: this.dropdownName,\n },\n ]);\n\n if (!isDemo() && missingProps) {\n return (\n <RequiredPropsError\n missingProps={missingProps}\n heading={\"An error occured while loading this form\"}\n subheading={\n \"A technical problem prevented this drop down field from loading. Please contact us with the link to this page.\"\n }\n description={\"Values for the following attributes are missing:\"}\n >\n <slot />\n </RequiredPropsError>\n );\n }\n\n const content = {\n ...getProps(this),\n selectOptions: <slot></slot>,\n };\n\n const { states } = isDemo()\n ? useDropdownFieldDemo(this)\n : useDropdownField();\n return (\n <DropdownFieldView states={states} content={content}></DropdownFieldView>\n );\n }\n}\nfunction useDropdownFieldDemo(\n props: DropdownField\n): Partial<DropdownFieldViewProps> {\n return deepmerge(\n {\n states: {\n registrationFormState: {},\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import {\n useQuery,\n useMutation,\n useUserIdentity,\n} from \"@saasquatch/component-boilerplate\";\nimport { gql } from \"graphql-request\";\nimport { useEffect, useState } from \"@saasquatch/universal-hooks\";\nimport { EditProfileViewProps } from \"./sqm-edit-profile-view\";\nimport { intl } from \"../../global/global\";\nimport { EditProfile } from \"./sqm-edit-profile\";\nimport { isEmpty } from \"../../utilities\";\n\nconst GET_USER = gql`\n query {\n viewer {\n ... on User {\n id\n accountId\n firstName\n lastName\n email\n countryCode\n }\n }\n }\n`;\n\nconst UPSERT_USER = gql`\n mutation (\n $id: String!\n $accountId: String!\n $firstName: String!\n $lastName: String!\n ) {\n upsertUser(\n userInput: {\n id: $id\n accountId: $accountId\n firstName: $firstName\n lastName: $lastName\n }\n ) {\n firstName\n lastName\n }\n }\n`;\n\n// view doesn't tolerate undefined, even when we're loading\nconst defaultFormState = {\n currentRegion: \"\",\n firstName: \"\",\n lastName: \"\",\n errors: {},\n error: \"\",\n};\n\nexport function useEditProfile(props: EditProfile): EditProfileViewProps {\n const userIdent = useUserIdentity();\n const [showEdit, setShowEdit] = useState(false);\n const [error, setError] = useState(\"\");\n const [userData, setUserData] = useState<null | {\n id: string;\n accountId: string;\n firstName: string;\n lastName: string;\n email: string;\n countryCode: string;\n }>(undefined);\n\n const [formState, setFormState] = useState<{\n currentRegion: string;\n firstName: string;\n lastName: string;\n errors: any;\n error: string;\n }>(defaultFormState);\n\n const userDataResponse = useQuery(GET_USER, {}, !userIdent?.jwt);\n\n const [upsertUser, upsertUserResponse] = useMutation(UPSERT_USER);\n\n useEffect(() => {\n if (upsertUserResponse?.loading || !showEdit) return;\n\n if (upsertUserResponse?.errors) {\n setFormState((state) => ({\n ...state,\n error: upsertUserResponse?.errors?.response?.errors?.[0].message,\n }));\n } else {\n setUserData((state) => ({\n ...state,\n ...upsertUserResponse?.data?.upsertUser,\n }));\n setShowEdit(false);\n }\n }, [upsertUserResponse?.loading]);\n\n useEffect(() => {\n setUserData((data) => ({ ...data, ...userDataResponse?.data?.viewer }));\n }, [userDataResponse?.data]);\n\n useEffect(() => {\n if (upsertUserResponse?.errors?.message) {\n setFormState((state) => ({ ...state, error: props.networkErrorMessage }));\n }\n }, [upsertUserResponse?.errors]);\n\n return {\n states: {\n loading: userDataResponse?.loading || upsertUserResponse.loading,\n submitDisabled: false,\n formState,\n user: userData,\n showEdit,\n text: {\n editprofileheader: props.editprofileheader,\n editprofiletext: props.editprofiletext,\n firstnametext: props.firstnametext,\n lastnametext: props.lastnametext,\n canceltext: props.canceltext,\n updatetext: props.updatetext,\n currentregiontext: props.currentregiontext,\n showregion: props.showregion,\n fieldEmptyText: props.fieldEmptyText,\n },\n },\n callbacks: {\n onSubmit: () => {\n if (formState.firstName && formState.lastName) {\n upsertUser({\n id: userIdent?.id,\n accountId: userIdent?.accountId,\n firstName: formState.firstName,\n lastName: formState.lastName,\n });\n setFormState((s) => ({ ...s, errors: {} }));\n return;\n }\n\n const errors = {};\n if (!formState.firstName) {\n errors[\"firstName\"] = { message: props.fieldEmptyText };\n }\n if (!formState.lastName) {\n errors[\"lastName\"] = { message: props.fieldEmptyText };\n }\n if (!isEmpty(errors)) {\n setFormState((e) => ({\n ...e,\n error: props.formErrorText,\n }));\n }\n setFormState((e) => ({ ...e, errors }));\n },\n resetForm: () => {\n const currentRegion = userDataResponse?.data?.viewer?.countryCode\n ? intl.formatDisplayName(userDataResponse.data.viewer.countryCode, {\n type: \"region\",\n })\n : \"\";\n\n setUserData({\n ...userDataResponse.data?.viewer,\n ...upsertUserResponse.data?.upsertUser,\n });\n setFormState({\n ...defaultFormState,\n ...userDataResponse.data?.viewer,\n ...upsertUserResponse.data?.upsertUser,\n currentRegion,\n });\n },\n onChange: (e) => {\n const { name, value } = e.target;\n setFormState((data) => ({ ...data, [name]: value }));\n },\n setShowEdit,\n },\n };\n}\n","@include ErrorStyles;\n@include HostBlock;\n\n.FormWrapper {\n & > :not(:first-child) {\n margin-top: 54px;\n }\n}\n\n.FormSection {\n width: 100%;\n\n & > :not(:first-child) {\n margin-top: 16px;\n }\n}\n\n.ButtonWrapper {\n display: flex;\n margin-top: 24px;\n\n justify-content: flex-end;\n\n & > :not(:first-child) {\n margin-left: var(--sl-font-size-x-small);\n }\n}\n\n.CardWrapper {\n box-sizing: border-box;\n background: var(--sl-color-white);\n padding: 40px 30px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n @media screen and (max-width: 499px) {\n flex-direction: column;\n justify-content: center;\n align-items: center;\n }\n}\n\n.CardWrapper.ShowEdit {\n @media screen and (max-width: 880px) {\n flex-direction: row;\n align-items: flex-end;\n }\n}\n","import { Component, h, Prop, State } from \"@stencil/core\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport EditProfileView, { EditProfileViewProps } from \"./sqm-edit-profile-view\";\nimport { useEditProfile } from \"./useEditProfile\";\nimport { isDemo } from \"@saasquatch/component-boilerplate\";\nimport { getProps } from \"../../utils/utils\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../global/demo\";\n\n/**\n * @uiName Microsite Edit Profile\n */\n@Component({\n tag: \"sqm-edit-profile\",\n styleUrl: \"sqm-edit-profile.scss\",\n shadow: true,\n})\nexport class EditProfile {\n @State()\n ignored = true;\n\n /**\n * @uiName Heading\n */\n @Prop() editprofileheader: string;\n /**\n * Enable editing button text\n *\n * @uiName Edit profile text\n */\n @Prop() editprofiletext: string;\n /**\n * @uiName Cancel button text\n */\n @Prop() canceltext: string;\n /**\n * @uiName Info button text\n */\n @Prop() updatetext: string;\n /**\n * @uiName First name label\n */\n @Prop() firstnametext: string;\n /**\n * @uiName Last name label\n */\n @Prop() lastnametext: string;\n /**\n * @uiName Region field label\n */\n @Prop() currentregiontext: string;\n /**\n * Show or hide current region\n * @uiName Show region\n */\n @Prop() showregion: boolean;\n\n /**\n * @uiName Network error message\n */\n @Prop() networkErrorMessage: string = \"Network request failed.\";\n\n /**\n * @uiName Empty field error message\n */\n @Prop() fieldEmptyText: string = \"Cannot be empty\";\n\n /**\n * @uiName Form error message\n */\n @Prop() formErrorText: string =\n \"Please correct the errors below to update your profile.\";\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<EditProfileViewProps>;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n const props = isDemo()\n ? useEditProfileDemo(getProps(this))\n : useEditProfile(getProps(this));\n return <EditProfileView {...props} />;\n }\n}\n\nfunction useEditProfileDemo(props: EditProfile): EditProfileViewProps {\n return deepmerge(\n {\n states: {\n loading: false,\n submitDisabled: false,\n formState: {\n currentRegion: \"Canada\",\n firstName: \"Bill\",\n lastName: \"Bob\",\n errors: {},\n error: \"An error string\",\n },\n user: {\n firstName: \"Bill\",\n lastName: \"Bob\",\n email: \"billbob@example.com\",\n },\n showEdit: false,\n text: {\n editprofileheader: props.editprofileheader\n ? props.editprofileheader\n : \"Edit Profile\",\n editprofiletext: props.editprofiletext\n ? props.editprofiletext\n : \"Update your profile.\",\n firstnametext: props.firstnametext\n ? props.firstnametext\n : \"First Name\",\n lastnametext: props.lastnametext ? props.lastnametext : \"Last Name\",\n canceltext: props.canceltext ? props.canceltext : \"Cancel\",\n updatetext: props.updatetext ? props.updatetext : \"Update\",\n currentregiontext: props.currentregiontext\n ? props.currentregiontext\n : \"Region\",\n showregion: true,\n fieldEmptyText: props.fieldEmptyText,\n },\n },\n callbacks: {\n onSubmit: (props) => {\n console.log(props);\n },\n resetForm: () => {\n console.log(\"reset\");\n },\n onChange: () => {\n console.log(\"change\");\n },\n setShowEdit: (props) => {\n console.log(props);\n },\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import { Component, h, Prop } from \"@stencil/core\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { HeroView } from \"./sqm-hero-view\";\nimport { getProps } from \"../../utils/utils\";\n\n/**\n * @uiName Hero Layout\n * @validParents [\"sqm-portal-container\",\"sqm-brand\",\"div\", \"template\", \"sqb-auth-template-switch\", \"div\",\"sqm-divided-layout\",\"template\",\"sqm-tab\",\"sqb-program-section\",\"sqb-conditional-section\"]\n * @slots [{\"name\":\"\",\"title\":\"Primary Column Content\"},{\"name\":\"secondary-column\",\"title\":\"Secondary Column Content\"}]\n * @example Two Column Hero Layout - <sqm-hero background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\" min-height=\"0\" columns=\"2\" padding-size=\"large\" wrap-direction=\"wrap\" secondary-background=\"lightgrey\"><h1>Primary Column Content</h1><h1 slot=\"secondary-column\">Secondary Column Content</h1></sqm-hero>\n * @exampleGroup Layout\n */\n@Component({\n tag: \"sqm-hero\",\n shadow: true,\n})\nexport class Hero {\n /**\n *\n * @uiName Columns\n * @uiEnum [1, 2]\n * @uiEnumNames [\"One\", \"Two\"]\n */\n @Prop() columns: 1 | 2 = 1;\n\n /**\n * Minimum height of each column including when they are stacked on mobile\n *\n * @uiName Minimum height (in px)\n */\n @Prop() minHeight: number = 200;\n\n /**\n * Splash image or background color (for use in the left column)\n *\n * @uiName Splash image\n * @uiWidget Background\n */\n @Prop() background?: string;\n\n /**\n * @uiName Padding size\n * @uiEnum [\"none\", \"small\", \"medium\",\"large\"]\n * @uiEnumNames [\"None\", \"Small\", \"Medium\", \"Large\"]\n */\n @Prop() paddingSize: \"none\" | \"small\" | \"medium\" | \"large\" = \"large\";\n\n /**\n * Content background color or image (for use in the right column)\n *\n * @uiName Content background\n * @uiWidget Background\n */\n @Prop() secondaryBackground?: string;\n\n /**\n * Flexbox wrap direction, accepts wrap or wrap-reverse\n *\n * @uiName Wrap direction\n * @uiEnum [\"wrap\", \"wrap-reverse\"]\n * @uiEnumNames [\"Wrap\", \"Wrap Reverse\"]\n */\n @Prop() wrapDirection: \"wrap\" | \"wrap-reverse\" = \"wrap\";\n\n /**\n * Can only be used when two columns are present\n * @uiName Hide the column in mobile view\n * @uiEnum [\"primary\", \"secondary\", \"null\"]\n * @uiEnumNames [\"Primary\", \"Secondary\", \"None\"]\n */\n @Prop() columnToHideInMobile?: \"primary\" | \"secondary\" | null = null;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n // TODO: Improve empty slot behavior with useChildElements to check for empty slot\n\n render() {\n const props = {\n states: { ...getProps(this) },\n content: {\n primaryColumn: <slot />,\n secondaryColumn: <slot name=\"secondary-column\" />,\n },\n };\n\n return <HeroView {...props}></HeroView>;\n }\n}\n","import { h, VNode } from \"@stencil/core\";\nimport { Spacing } from \"../../global/mixins\";\nimport { createStyleSheet } from \"../../styling/JSS\";\n\nexport interface HeroImageViewProps {\n layout: \"overlay\" | \"columns\";\n imageUrl: string;\n overlayColor?: string;\n overlayOpacity: string;\n textColor?: string;\n backgroundColor?: string;\n imagePercentage?: number;\n header?: string;\n description?: string;\n buttonText?: string;\n buttonLink?: string;\n buttonNewTab?: boolean;\n paddingText?: Spacing;\n paddingImage?: Spacing;\n imagePos: \"left\" | \"center\" | \"right\";\n imageMobilePos: \"top\" | \"bottom\";\n buttonType?: \"primary\" | \"secondary\";\n}\n\nexport function HeroImageView(props: HeroImageViewProps, children: VNode) {\n const overlay = Boolean(\n (props.header || props.description || props.buttonText) &&\n props.layout === \"overlay\"\n );\n\n // Dependent on props, not feasiable to move out\n const style = {\n Container: {\n position: \"relative\",\n \"&:before\": {\n content: overlay ? '\"\"' : \"\",\n width: \"100%\",\n height: \"100%\",\n position: \"absolute\",\n background: props.overlayColor || \"var(--sl-color-black)\",\n opacity: props.overlayOpacity,\n },\n },\n Image: {\n display: \"block\",\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n },\n Background: {\n backgroundImage: `url(${props.imageUrl})`,\n backgroundSize: \"cover\",\n backgroundPosition: props.imagePos || \"center\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n Overlay: {\n zIndex: \"1\",\n padding:\n \"calc(var(--sl-spacing-\" +\n props.paddingText +\n \") + var(--sl-spacing-\" +\n props.paddingImage +\n \"))\",\n textAlign: \"center\",\n color: props.textColor || \"var(--sqm-text)\",\n lineHeight: \"var(--sl-line-height-dense)\",\n \"@media (max-width: 599px)\": {\n padding: \"var(--sl-spacing-\" + props.paddingText + \")\",\n },\n },\n Column: {\n display: \"flex\",\n background: props.backgroundColor || \"\",\n flexDirection: props.imagePos === \"right\" ? \"row-reverse\" : \"row\",\n lineHeight: \"var(--sl-line-height-dense)\",\n color: props.textColor || \"var(--sqm-text)\",\n \"& .image-area\": {\n width: props.imagePercentage ? props.imagePercentage + \"%\" : \"50%\",\n padding: \"var(--sl-spacing-\" + props.paddingImage + \")\",\n boxSizing: \"border-box\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n \"@media (max-width: 599px)\": {\n width: \"100%\",\n },\n },\n \"& .text-area\": {\n width: props.imagePercentage\n ? 100 - props.imagePercentage + \"%\"\n : \"50%\",\n padding: \"var(--sl-spacing-\" + props.paddingText + \")\",\n alignSelf: \"center\",\n boxSizing: \"border-box\",\n \"@media (max-width: 599px)\": {\n width: \"100%\",\n textAlign: \"center\",\n padding: \"calc(0.5*var(--sl-spacing-\" + props.paddingText + \"))\",\n },\n },\n \"@media (max-width: 599px)\": {\n flexDirection:\n props.imageMobilePos === \"bottom\" ? \"column-reverse\" : \"column\",\n },\n },\n Header: {\n fontSize: \"var(--sl-font-size-xxx-large)\",\n fontWeight: \"var(--sl-font-weight-bold)\",\n \"@media (max-width: 599px)\": {\n fontSize: \"var(--sl-font-size-xx-large)\",\n },\n },\n Description: {\n fontSize: \"var(--sl-font-size-x-large)\",\n margin: \"var(--sl-spacing-small) 0\",\n \"@media (max-width: 599px)\": {\n fontSize: \"var(--sl-font-size-large)\",\n },\n },\n Button: {\n marginTop: \"var(--sl-spacing-medium)\",\n \"&::part(base)\": {\n padding: \"0 var(--sl-spacing-x-large)\",\n color: \"var(--sqm-primary-button-color)\",\n backgroundColor: \"var(--sqm-primary-button-background)\",\n border: \"var(--sqm-primary-button-color-border)\",\n },\n \"@media (max-width: 599px)\": {\n width: \"100%\",\n },\n },\n };\n\n const sheet = createStyleSheet(style);\n const styleString = sheet.toString();\n\n const vanillaStyle = `\n :host{\n display: block;\n }`;\n\n return (\n <div class={sheet.classes.Container} part=\"sqm-base\">\n <style type=\"text/css\">\n {vanillaStyle}\n {styleString}\n </style>\n\n {props.layout === \"overlay\" && OverlayView()}\n {props.layout === \"columns\" && ColumnView()}\n </div>\n );\n\n function OverlayView() {\n return (\n <div class={sheet.classes.Background}>\n <div class={sheet.classes.Overlay} part=\"sqm-overlay\">\n {props.header && (\n <div class={sheet.classes.Header}>{props.header}</div>\n )}\n {props.description && (\n <div class={sheet.classes.Description}>{props.description}</div>\n )}\n {props.buttonText && (\n <sl-button\n class={sheet.classes.Button}\n type=\"primary\"\n exportparts={`base: ${props.buttonType}button-base`}\n onClick={() =>\n props.buttonNewTab\n ? window.open(props.buttonLink)\n : window.open(props.buttonLink, \"_parent\")\n }\n >\n {props.buttonText}\n </sl-button>\n )}\n {children && children}\n </div>\n </div>\n );\n }\n\n function ColumnView() {\n return (\n <div>\n <div class={sheet.classes.Column}>\n <div class=\"image-area\">\n <img\n // @ts-ignore\n fetchpriority=\"high\"\n class={sheet.classes.Image}\n src={props.imageUrl}\n part=\"sqm-columns-image\"\n style={{ height: \"200px\", width: \"200px\" }}\n ></img>\n </div>\n <div class=\"text-area\" part=\"sqm-columns-text-area\">\n {props.header && (\n <div class={sheet.classes.Header} part=\"sqm-columns-header\">\n {props.header}\n </div>\n )}\n {props.description && (\n <div\n class={sheet.classes.Description}\n part=\"sqm-columns-description\"\n >\n {props.description}\n </div>\n )}\n {props.buttonText && (\n <sl-button\n exportparts=\"base: sqm-hero-image-button\"\n class={sheet.classes.Button}\n type=\"primary\"\n onClick={() =>\n props.buttonNewTab\n ? window.open(props.buttonLink)\n : window.open(props.buttonLink, \"_parent\")\n }\n >\n {props.buttonText}\n </sl-button>\n )}\n </div>\n </div>\n </div>\n );\n }\n}\n","import { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Prop } from \"@stencil/core\";\nimport { Spacing } from \"../../global/mixins\";\nimport { getProps } from \"../../utils/utils\";\nimport { HeroImageView } from \"./sqm-hero-image-view\";\n\n/**\n * @uiName Hero Image\n * @validParents [\"sqm-portal-container\",\"sqm-brand\", \"div\"]\n * @exampleGroup Common Components\n * @example Two Column Hero Image - <sqm-hero-image image-url=\"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png\" header=\"MyCompany Rewards\" description=\"Refer a friend and earn up to $1200 in rewards\" layout=\"columns\" image-pos=\"right\"></sqm-hero-image>\n * @example Overlay Hero Image - <sqm-hero-image image-url=\"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png\" header=\"MyCompany Rewards\" description=\"Refer a friend and earn up to $1200 in rewards\" layout=\"overlay\" image-pos=\"center\" button-link=\"https://www.example.com\" button-new-tab button-text=\"Earn!\" image-percentage=\"45\" overlay-opacity=\".5\" padding-image=\"small\" padding-text=\"xxxx-large\"></sqm-hero-image>\n */\n@Component({\n tag: \"sqm-hero-image\",\n shadow: true,\n})\nexport class HeroImage {\n /**\n * @uiWidget ImageUpload\n * @format url\n * @uiName Image\n */\n @Prop() imageUrl: string;\n\n /**\n * @uiName Overlay color\n * @uiWidget color\n * @format color\n * @uiGroup Style\n */\n @Prop() overlayColor?: string;\n\n /**\n * @uiName Overlay opacity\n * @uiGroup Style\n */\n @Prop() overlayOpacity: string = \"0.75\";\n\n /**\n * @uiName Text color\n * @uiWidget color\n * @format color\n * @uiGroup Style\n */\n @Prop() textColor?: string;\n\n /**\n * @uiName Background color\n * @uiWidget color\n * @format color\n * @uiGroup Style\n */\n @Prop() backgroundColor?: string;\n\n /**\n * @uiName Image layout\n * @uiType string\n * @uiEnum [\"overlay\", \"columns\"]\n * @uiEnumNames [\"Overlay\", \"Two-column\"]\n * @uiGroup Style\n */\n @Prop() layout: \"overlay\" | \"columns\" = \"overlay\";\n\n /**\n * @uiName Image percentage\n * @uiType number\n * @uiGroup Style\n */\n @Prop() imagePercentage: number = 50;\n\n /**\n * @uiName Image position\n * @uiType string\n * @uiEnum [\"left\", \"center\", \"right\"]\n * @uiEnumNames [\"Left\", \"Center\", \"Right\"]\n * @uiGroup Style\n */\n @Prop() imagePos: \"left\" | \"center\" | \"right\" = \"center\";\n\n /**\n * @uiName Image mobile position\n * @uiType string\n * @uiEnum [\"top\", \"bottom\"]\n * @uiEnumNames [\"Top\", \"Bottom\"]\n * @uiGroup Style\n */\n @Prop() imageMobilePos: \"top\" | \"bottom\" = \"top\";\n\n /**\n * @uiName Title\n */\n @Prop() header?: string;\n\n /**\n * @uiName Description\n * @uiWidget textArea\n */\n @Prop() description?: string;\n\n /**\n * @uiName Button text\n */\n @Prop() buttonText?: string;\n\n /**\n * @uiName Button link\n */\n @Prop() buttonLink?: string;\n\n /**\n * @uiName Open link in new tab\n * @default\n */\n @Prop() buttonNewTab?: boolean = false;\n\n /**\n * @uiName Text padding\n * @uiType string\n * @uiEnum [\"none\", \"xxx-small\", \"xx-small\", \"x-small\", \"small\", \"medium\", \"large\", \"x-large\", \"xx-large\", \"xxx-large\", \"xxxx-large\"]\n * @uiEnumNames [\"None\", \"XXX-Small\", \"XX-Small\", \"X-Small\", \"Small\", \"Medium\", \"Large\", \"X-Large\", \"XX-Large\", \"XXX-Large\", \"XXXX-Large\"]\n * @uiGroup Style\n */\n @Prop() paddingText: Spacing = \"xxxx-large\";\n\n /**\n * @uiName Image padding\n * @uiType string\n * @uiEnum [\"none\", \"xxx-small\", \"xx-small\", \"x-small\", \"small\", \"medium\", \"large\", \"x-large\", \"xx-large\", \"xxx-large\", \"xxxx-large\"]\n * @uiEnumNames [\"None\", \"XXX-Small\", \"XX-Small\", \"X-Small\", \"Small\", \"Medium\", \"Large\", \"X-Large\", \"XX-Large\", \"XXX-Large\", \"XXXX-Large\"]\n * @uiGroup Style\n */\n @Prop() paddingImage: Spacing = \"none\";\n\n /**\n * The type of the button that is used (primary or secondary).\n * @uiName Button Type\n * @uiType string\n * @uiEnum [\"primary\", \"secondary\"]\n * @uiEnumNames [\"Primary\", \"Secondary\"]\n * @uiGroup Style\n */\n @Prop()\n buttonType?: \"primary\" | \"secondary\" = \"primary\";\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n return (\n <HeroImageView {...getProps(this)}>\n <slot />\n </HeroImageView>\n );\n }\n}\n","import { h, Component, State, Prop, FunctionalComponent } from \"@stencil/core\";\nimport * as hooks from \"@saasquatch/stencil-hooks\";\n\n/**\n * @undocumented\n */\n@Component({\n tag: \"sqm-hook-story-container\",\n})\nexport class SqmHookStoryContainer {\n @State()\n ignored = true;\n\n @Prop()\n hookStory: FunctionalComponent;\n\n constructor() {\n hooks.withHooks(this);\n }\n\n disconnectedCallback() {}\n\n render() {\n const Story = this.hookStory;\n return <Story />;\n }\n}\n","import { h, VNode } from \"@stencil/core\";\nimport { createStyleSheet } from \"../../styling/JSS\";\n\nexport interface ImageViewProps {\n imageUrl: string;\n left?: string;\n right?: string;\n alignment?: \"left\" | \"center\" | \"right\";\n backgroundColor?: string;\n minHeight?: string; // helps with constraining minimum size\n width?: string;\n}\n\nexport function ImageView(props: ImageViewProps) {\n // Dependent on props, not feasiable to move out\n const style = {\n Container: {\n display: \"flex\",\n width: \"100%\",\n justifyContent: props.alignment || \"center\",\n background: props.backgroundColor || \"\",\n },\n Image: {\n minHeight: props.minHeight || \"100%\",\n width: props.width || \"100%\",\n maxWidth: \"max-content\",\n objectFit: \"cover\",\n },\n };\n\n const sheet = createStyleSheet(style);\n const styleString = sheet.toString();\n\n const vanillaStyle = `\n :host{\n display: block; \n }\n `;\n\n return (\n <div>\n <style type=\"text/css\">\n {styleString}\n {vanillaStyle}\n </style>\n <div class={sheet.classes.Container} part=\"sqm-base\">\n <img\n loading=\"lazy\"\n part=\"sqm-image\"\n src={props.imageUrl}\n class={sheet.classes.Image}\n />\n </div>\n </div>\n );\n}\n","import { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Prop, State } from \"@stencil/core\";\nimport { getProps } from \"../../utils/utils\";\nimport { ImageView } from \"./sqm-image-view\";\n\n/**\n * @uiName Image\n * @validParents [\"sqm-brand\",\"div\",\"sqm-portal-container\",\"sqm-divided-layout\",\"sqm-titled-section\", \"sqb-program-section\", \"sqb-conditional-section\"]\n * @exampleGroup Common Components\n * @example Image - <sqm-image image-url=\"https://res.cloudinary.com/saasquatch/image/upload/v1644000259/squatch-assets/tn47wOj.png\" alignment=\"center\"></sqm-image>\n */\n@Component({\n tag: \"sqm-image\",\n shadow: true,\n})\nexport class Image {\n /**\n * @uiWidget ImageUpload\n * @format url\n * @required\n * @uiName Image link\n */\n @Prop() imageUrl: string;\n\n /**\n * @uiName Position alignment\n * @uiType string\n * @uiEnum [\"left\", \"center\", \"right\"]\n * @uiEnumNames [\"Left\", \"Center\", \"Right\"]\n */\n @Prop() alignment: \"left\" | \"center\" | \"right\" = \"center\";\n\n /**\n * @uiName Background color\n * @uiWidget color\n * @format color\n */\n @Prop() backgroundColor: string;\n\n /**\n * (Optional) Helps with constraining the minimum image size. Can be a pixel value or a percentage i.e. \"500px\", \"33%\", etc.\n * @uiName Minimum height\n */\n @Prop() minHeight?: string;\n\n /**\n * (Optional) Constrains the width of the image. Can be a pixel value or a percentage i.e. \"500px\", \"33%\", etc.\n * @uiName Width\n */\n @Prop() width?: string;\n\n render() {\n return <ImageView {...getProps(this)} />;\n }\n}\n","import { useDomContext } from \"@saasquatch/stencil-hooks\";\nimport {\n RegistrationFormState,\n REGISTRATION_FORM_STATE_CONTEXT,\n} from \"../sqm-portal-registration-form/useRegistrationFormState\";\n\nexport function useInputField() {\n const registrationFormState = useDomContext<RegistrationFormState>(\n REGISTRATION_FORM_STATE_CONTEXT\n );\n\n return {\n states: {\n registrationFormState: registrationFormState,\n },\n };\n}\n","import { isDemo } from \"@saasquatch/component-boilerplate\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Prop, State } from \"@stencil/core\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../global/demo\";\nimport { RequiredPropsError } from \"../../utils/RequiredPropsError\";\nimport { getMissingProps, getProps } from \"../../utils/utils\";\nimport { InputFieldView, InputFieldViewProps } from \"./sqm-input-field-view\";\nimport { useInputField } from \"./useInputField\";\n\n/**\n * @uiName Form Input Field\n * @validParents [\"sqm-portal-register\",\"sqm-portal-registration-form\", \"sqm-portal-google-registration-form\"]\n * @exampleGroup Microsite Components\n * @example Form Input Field - <sqm-input-field input-label=\"Field Label\" field-type=\"text\" error-message=\"Cannot be empty\"></sqm-input-field>\n */\n@Component({\n tag: \"sqm-input-field\",\n})\nexport class InputField {\n @State()\n ignored = true;\n\n /**\n * This name is used as the key for this form field on submission. The name must be unique within this specific form.\n *\n * @uiName Input name attribute\n * @required\n */\n @Prop() fieldName: string;\n\n /**\n * @uiName Input label\n */\n @Prop() fieldLabel: string;\n\n /**\n * @uiName Input type\n * @uiType string\n * @uiEnum [\"text\", \"date\", \"tel\"]\n * @uiEnumNames [\"Text\", \"Date\", \"Phone Number\"]\n */\n @Prop() fieldType: \"text\" | \"date\" | \"tel\" = \"text\";\n\n /**\n * @uiName Required error message\n */\n @Prop() errorMessage: string = \"Cannot be empty\";\n\n /**\n * @uiName Optional\n * @default\n */\n @Prop() fieldOptional?: boolean = false;\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<InputFieldViewProps>;\n\n constructor() {\n withHooks(this);\n }\n\n disconnectedCallback() {}\n\n render() {\n const content = {\n ...getProps(this),\n };\n\n const missingProps = getMissingProps([\n {\n attribute: \"field-name\",\n value: this.fieldName,\n },\n ]);\n\n if (!isDemo() && missingProps) {\n return (\n <RequiredPropsError\n missingProps={missingProps}\n heading={\"An error occured while loading this form\"}\n subheading={\n \"A technical problem prevented this input field from loading. Please contact us with the link to this page.\"\n }\n description={\"Values for the following attributes are missing:\"}\n />\n );\n }\n const { states } = isDemo() ? useInputFieldDemo(this) : useInputField();\n return <InputFieldView states={states} content={content}></InputFieldView>;\n }\n}\nfunction useInputFieldDemo(props: InputField): Partial<InputFieldViewProps> {\n return deepmerge(\n {\n states: {\n registrationFormState: {},\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import { useDomContext } from \"@saasquatch/stencil-hooks\";\nimport { LeadFormState, LEAD_FORM_STATE_CONTEXT } from \"./useLeadFormState\";\n\nexport function useLeadDropdownField() {\n const leadFormState = useDomContext<LeadFormState>(LEAD_FORM_STATE_CONTEXT);\n\n return {\n states: {\n leadFormState,\n },\n };\n}\n","import { isDemo } from \"@saasquatch/component-boilerplate\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Prop, State } from \"@stencil/core\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../global/demo\";\nimport { RequiredPropsError } from \"../../utils/RequiredPropsError\";\nimport { getMissingProps, getProps } from \"../../utils/utils\";\nimport {\n DropdownFieldViewProps,\n LeadDropdownFieldView,\n} from \"./sqm-lead-dropdown-field-view\";\nimport { useLeadDropdownField } from \"./useLeadDropdownField\";\n\n/**\n * @uiName Lead Form Dropdown Field\n * @validParents [\"sqm-lead-form\"]\n * @slots [{\"name\":\"\", \"title\":\"Dropdown Option\"}]\n */\n@Component({\n tag: \"sqm-lead-dropdown-field\",\n})\nexport class LeadDropdownField {\n @State()\n ignored = true;\n\n /**\n * This name is used as the key for this form field on submission. The name must be unique within this specific form.\n * @uiName Dropdown name attribute\n * @required\n */\n @Prop() dropdownName: string;\n\n /**\n * @uiName Dropdown label\n */\n @Prop() dropdownLabel: string = \"Select an option\";\n\n /**\n * The message to be displayed when a required field is not filled.\n *\n * @uiName Required field message\n * @uiWidget textArea\n */\n @Prop() requiredFieldErrorMessage: string = \"Please select a {dropdownLabel}\";\n\n /**\n * @uiName Optional label\n */\n @Prop() optionalLabel: string = \"(optional)\";\n\n /**\n * @uiName Optional\n * @default\n */\n @Prop() dropdownOptional: boolean = false;\n\n /**\n * @uiName Multiple selection\n * @default\n */\n @Prop() multiple: boolean = false;\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<DropdownFieldViewProps>;\n\n constructor() {\n withHooks(this);\n }\n\n disconnectedCallback() {}\n\n render() {\n const missingProps = getMissingProps([\n {\n attribute: \"dropdown-name\",\n value: this.dropdownName,\n },\n ]);\n\n if (!isDemo() && missingProps) {\n return (\n <RequiredPropsError\n missingProps={missingProps}\n heading={\"An error occured while loading this form\"}\n subheading={\n \"A technical problem prevented this drop down field from loading. Please contact us with the link to this page.\"\n }\n description={\"Values for the following attributes are missing:\"}\n >\n <slot />\n </RequiredPropsError>\n );\n }\n\n const content = {\n ...getProps(this),\n selectOptions: <slot></slot>,\n };\n\n const { states } = isDemo()\n ? useLeadDropdownFieldDemo(this)\n : useLeadDropdownField();\n return (\n <LeadDropdownFieldView\n states={states}\n content={content}\n ></LeadDropdownFieldView>\n );\n }\n}\n\nfunction useLeadDropdownFieldDemo(\n props: LeadDropdownField\n): Partial<DropdownFieldViewProps> {\n return deepmerge(\n {\n states: {\n leadFormState: {},\n },\n content: {\n dropdownName: props.dropdownName,\n dropdownLabel: props.dropdownLabel,\n requiredFieldErrorMessage: props.requiredFieldErrorMessage,\n dropdownOptional: props.dropdownOptional,\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import {\n useMutation,\n useProgramId,\n useQuery,\n useUserIdentity,\n} from \"@saasquatch/component-boilerplate\";\nimport {\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"@saasquatch/universal-hooks\";\nimport { gql } from \"graphql-request\";\nimport jsonpointer from \"jsonpointer\";\nimport { AsYouType } from \"libphonenumber-js\";\nimport { LeadForm } from \"./sqm-lead-form\";\nimport { useLeadFormState } from \"./useLeadFormState\";\n\nexport type LeadFormState = {\n [key: string]: any;\n};\n\n// returns either error message if invalid or undefined if valid\nexport type ValidationErrorFunction = (input: {\n control;\n key: string;\n value;\n}) => string | undefined;\n\nconst SUBMIT_LEAD = gql`\n mutation submitForm($formSubmissionInput: FormSubmissionInput!) {\n submitForm(formSubmissionInput: $formSubmissionInput) {\n success\n }\n }\n`;\n\nconst GET_USER_DETAILS = gql`\n query getUser($programId: ID) {\n viewer {\n ... on User {\n referralCode(programId: $programId)\n }\n }\n }\n`;\n\nexport function useLeadForm(props: LeadForm) {\n const formRef = useRef<HTMLFormElement>(null);\n const { leadFormState, setLeadFormState } = useLeadFormState({});\n\n const programId = useProgramId();\n const user = useUserIdentity();\n\n const { data: userDetails } = useQuery(\n GET_USER_DETAILS,\n { programId },\n !user?.jwt || !programId\n );\n\n const [submitLead, { loading, errors, data }] = useMutation(SUBMIT_LEAD);\n\n const [success, setSuccess] = useState(false);\n\n useEffect(() => {\n if (!formRef.current) return;\n const form = formRef.current;\n form.addEventListener(\"sl-input\", inputFunction);\n return () => {\n form.removeEventListener(\"sl-input\", inputFunction);\n };\n }, [formRef.current]);\n\n const submit = async (event: any) => {\n let formControls = event.target.getFormControls();\n\n let formData: Record<string, any> = {};\n let validationErrors: Record<string, string> = {};\n formControls?.forEach((control) => {\n if (!control.name) return;\n\n const key = control.name;\n const value = control.value;\n\n jsonpointer.set(formData, key, value);\n // required validation\n if (control.required && !value) {\n jsonpointer.set(validationErrors, key, props.requiredFieldErrorMessage);\n }\n // custom validation\n if (typeof control.validationError === \"function\") {\n const validate = control.validationError as ValidationErrorFunction;\n const validationError = validate({ control, key, value });\n if (validationError)\n jsonpointer.set(validationErrors, key, validationError);\n }\n });\n\n if (Object.keys(validationErrors).length) {\n setLeadFormState({ loading: false, error: \"\", validationErrors });\n // early return for validation errors\n return;\n }\n\n setLeadFormState({\n loading: true,\n error: \"\",\n validationErrors: {},\n });\n\n const variables = {\n key: props.formKey,\n formData,\n };\n\n try {\n const result = await submitLead({ formSubmissionInput: variables });\n\n if (result instanceof Error) {\n throw result;\n }\n setLeadFormState({\n loading: false,\n error: \"\",\n validationErrors: {},\n });\n\n if (result?.submitForm?.success) {\n setSuccess(true);\n }\n } catch (error) {\n setLeadFormState({\n loading: false,\n error: props.networkErrorMessage,\n validationErrors: {},\n });\n }\n };\n\n const inputFunction = useCallback((e) => {\n const name = e.target?.type?.toLowerCase();\n if (name !== \"tel\") return;\n const asYouType = new AsYouType(\"US\");\n e.target.value = asYouType.input(e.target.value);\n }, []);\n\n function resetForm() {\n setLeadFormState({\n loading: false,\n error: \"\",\n validationErrors: {},\n });\n formRef.current?.getFormControls()?.forEach((c) => {\n if (c.input?.type === \"checkbox\") {\n c.checked = false;\n c.value = false;\n } else {\n c.value = \"\";\n }\n });\n setSuccess(false);\n }\n\n let errorMessage = \"\";\n if (errors?.response?.[\"error\"]) {\n errorMessage = props.networkErrorMessage;\n } else if (errors?.message && !errors?.response?.errors.length) {\n errorMessage = props.networkErrorMessage;\n } else {\n errorMessage =\n errors?.response?.errors?.[0]?.extensions?.message ||\n errors?.response?.errors?.[0]?.message ||\n leadFormState?.error;\n }\n\n return {\n states: {\n loading,\n error: errorMessage,\n success,\n leadFormState,\n referralCode: userDetails?.viewer?.referralCode || \"\",\n },\n callbacks: {\n submit,\n inputFunction,\n resetForm,\n },\n refs: {\n formRef,\n },\n };\n}\n","import { isDemo } from \"@saasquatch/component-boilerplate\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Prop, State } from \"@stencil/core\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../global/demo\";\nimport { LeadFormView, LeadFormViewProps } from \"./sqm-lead-form-view\";\nimport { useLeadForm } from \"./useLeadForm\";\n\n/**\n * @uiName Lead Form\n * @canvasRenderer always-replace\n * @slots [{\"name\":\"formData\",\"title\":\"Additional Fields\"}]\n */\n@Component({\n tag: \"sqm-lead-form\",\n shadow: true,\n})\nexport class LeadForm {\n @State()\n ignored = true;\n\n /**\n * @uiName Email field label\n */\n @Prop()\n emailLabel: string = \"Email\";\n\n /**\n * @uiName First Name field label\n */\n @Prop()\n firstNameLabel: string = \"First name\";\n\n /**\n * @uiName Last Name field label\n */\n @Prop()\n lastNameLabel: string = \"Last name\";\n\n /**\n * @uiName Submit button text\n */\n @Prop()\n submitLabel: string = \"Submit\";\n\n /**\n * @uiName Submit another form button label\n */\n @Prop() resubmitFormLabel: string = \"Refer Another Friend\";\n\n /**\n * @uiName Header text\n */\n @Prop()\n pageLabel: string = \"Refer your friend\";\n\n /**\n * Key of the form to connect to. Create and manage forms in the /advocate dashboard under Data > Forms.\n * @uiName Form key\n */\n @Prop() formKey: string = \"lead-form\";\n\n /**\n * Optional support link text for error messages.\n * @uiName Support link text\n */\n @Prop() supportLinkText: string = \"Support\";\n /**\n * Header text shown on successful lead submission.\n * @uiName Submit success header\n */\n @Prop() submitSuccessHeader: string = \"Lead submitted\";\n /**\n * Description text shown on successful lead submission.\n * @uiName Submit success description\n */\n @Prop() submitSuccessDescription: string =\n \"Our team will contact your friend to see if they’re a good fit. In the meantime, you can track this referral on Activity page.\";\n /**\n * Header text shown if an error occurs.\n * @uiName Submit error header\n */\n @Prop() submitErrorHeader: string = \"An error occurred while submitting\";\n /**\n * Description text shown if an error occurs.\n * @uiName Submit error description\n */\n @Prop() submitErrorDescription: string =\n \"Please try again later. If the problem continues, contact {supportLink}\";\n\n /**\n * The message to be displayed if a required field is not filled.\n *\n * @uiName Required field message\n * @uiWidget textArea\n */\n @Prop() requiredFieldErrorMessage: string =\n \"Please enter a valid {fieldLabel}\";\n\n /**\n * The message to be displayed if a the form submission fails unexpectedly.\n *\n * @uiName Network error message\n * @uiWidget textArea\n */\n @Prop() networkErrorMessage: string = \"Network request failed.\";\n\n /**\n * The message to be displayed if the email used is invalid.\n *\n * @uiName Invalid email message\n * @uiWidget textArea\n */\n @Prop() invalidEmailErrorMessage: string = \"Must be a valid email address\";\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<LeadFormViewProps>;\n\n constructor() {\n withHooks(this);\n }\n\n disconnectedCallback() {}\n\n render() {\n const { states, callbacks, refs } = isDemo()\n ? useRegisterDemo(this)\n : useLeadForm(this);\n const content = {\n formData: <slot name=\"formData\"></slot>,\n emailLabel: this.emailLabel,\n submitLabel: this.submitLabel,\n resubmitFormLabel: this.resubmitFormLabel,\n pageLabel: this.pageLabel,\n supportLinkText: this.supportLinkText,\n submitSuccessHeader: this.submitSuccessHeader,\n submitSuccessDescription: this.submitSuccessDescription,\n submitErrorHeader: this.submitErrorHeader,\n submitErrorDescription: this.submitErrorDescription,\n invalidEmailErrorMessage: this.invalidEmailErrorMessage,\n requiredFieldErrorMessage: this.requiredFieldErrorMessage,\n firstNameLabel: this.firstNameLabel,\n lastNameLabel: this.lastNameLabel,\n };\n\n return (\n <LeadFormView\n states={states}\n callbacks={callbacks}\n content={content}\n refs={refs}\n ></LeadFormView>\n );\n }\n}\nfunction useRegisterDemo(\n props: LeadForm\n): Pick<LeadFormViewProps, \"states\" | \"callbacks\" | \"content\" | \"refs\"> {\n return deepmerge(\n {\n states: {\n error: \"\",\n loading: false,\n success: false,\n },\n callbacks: {\n submit: async (_event) => {\n console.log(\"submit\");\n },\n inputFunction: () => {},\n resetForm: () => {},\n },\n refs: {\n formRef: {},\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import {\n useLocale,\n useProgramId,\n useQuery,\n useUserIdentity,\n} from \"@saasquatch/component-boilerplate\";\nimport { VNode } from \"@stencil/core\";\nimport { gql } from \"graphql-request\";\nimport { LeaderboardViewProps } from \"./sqm-leaderboard-view\";\nimport { useMemo } from \"@saasquatch/universal-hooks\";\n\nexport interface LeaderboardProps {\n usersheading: string;\n statsheading: string;\n rankheading?: string;\n anonymousUser?: string;\n showRank?: boolean;\n hideViewer?: boolean;\n viewingUserText?: string;\n hideNames?: boolean;\n width?: string;\n rankSuffix?: string;\n rankType: \"rowNumber\" | \"rank\" | \"denseRank\";\n leaderboardType:\n | \"topStartedReferrers\"\n | \"topConvertedReferrers\"\n | \"topPointEarners\";\n maxRows: number;\n programId?: string;\n interval: string;\n viewingUserHighlightColor?: string;\n viewingUserHighlightTextColor?: string;\n background?: string;\n borderColor?: string;\n textColor?: string;\n borderRadius?: number;\n empty: VNode;\n demoProps?: LeaderboardViewProps;\n}\n\nconst GET_LEADERBOARD = gql`\n query (\n $type: String!\n $filter: UserLeaderboardFilterInput\n $locale: RSLocale\n $limit: Int!\n ) {\n userLeaderboard(type: $type, filter: $filter) {\n dateModified\n rows(limit: $limit) {\n textValue(locale: $locale)\n firstName\n lastInitial\n rank {\n rank\n denseRank\n rowNumber\n }\n }\n }\n }\n`;\n\nconst GET_LEADERBOARD_WITHOUT_NAMES = gql`\n query (\n $type: String!\n $filter: UserLeaderboardFilterInput\n $locale: RSLocale\n $limit: Int!\n ) {\n userLeaderboard(type: $type, filter: $filter) {\n dateModified\n rows(limit: $limit) {\n textValue(locale: $locale)\n rank {\n rank\n denseRank\n rowNumber\n }\n }\n }\n }\n`;\n\nconst GET_RANK = gql`\n query (\n $type: String!\n $filter: UserLeaderboardFilterInput\n $locale: RSLocale\n ) {\n viewer {\n ... on User {\n firstName\n lastInitial\n leaderboardRank(type: $type, filter: $filter) {\n textValue(locale: $locale)\n rank\n denseRank\n rowNumber\n }\n }\n }\n }\n`;\n\nconst GET_RANK_WITHOUT_NAMES = gql`\n query (\n $type: String!\n $filter: UserLeaderboardFilterInput\n $locale: RSLocale\n ) {\n viewer {\n ... on User {\n leaderboardRank(type: $type, filter: $filter) {\n textValue(locale: $locale)\n rank\n denseRank\n rowNumber\n }\n }\n }\n }\n`;\n\ntype LeaderboardRows = {\n textValue: string;\n firstName: string;\n lastInitial: string;\n rank: Rank;\n rowNumber: number;\n};\n\nexport type Rank = {\n rank: number;\n denseRank: number;\n rowNumber: number;\n};\n\nexport type Leaderboard = {\n textValue: string;\n rank: number;\n firstName: string;\n lastInitial: string;\n rowNumber: number;\n};\n\nexport function useLeaderboard(props: LeaderboardProps): LeaderboardViewProps {\n const programIdContext = useProgramId();\n // Default to context, overriden by props\n const programId = props.programId ?? programIdContext;\n const user = useUserIdentity();\n const locale = useLocale();\n\n const variables = programId\n ? {\n type: props.leaderboardType,\n filter: { programId_eq: programId },\n }\n : {\n type: props.leaderboardType,\n filter: {},\n };\n\n if (props.interval) {\n variables.filter[\"interval\"] = props.interval;\n }\n\n if (locale) {\n variables[\"locale\"] = locale;\n }\n\n if (props.maxRows > 0) {\n variables[\"limit\"] = props.maxRows;\n }\n\n const {\n data: leaderboardData,\n loading: loadingLeaderboard,\n errors: leaderboardErrors,\n } = useQuery(\n props.hideNames ? GET_LEADERBOARD_WITHOUT_NAMES : GET_LEADERBOARD,\n variables,\n !user?.jwt,\n { batch: false }\n );\n\n const { data: rankData } = useQuery(\n props.hideNames ? GET_RANK_WITHOUT_NAMES : GET_RANK,\n variables,\n !user?.jwt\n );\n\n const leaderboardRows = leaderboardData?.userLeaderboard?.rows;\n\n const flattenedLeaderboard = getFlattenedLeaderboard(leaderboardRows);\n\n const sortedLeaderboard = flattenedLeaderboard?.sort(function (\n a: { rank: number },\n b: { rank: number }\n ) {\n return a.rank - b.rank;\n });\n\n function getFlattenedLeaderboard(\n leaderboardRows: LeaderboardRows[]\n ): Leaderboard[] {\n return leaderboardRows?.flatMap((user) => ({\n textValue: user.textValue,\n firstName: user.firstName,\n lastInitial: user.lastInitial,\n rank: user.rank?.[props.rankType],\n rowNumber: user.rank?.rowNumber,\n }));\n }\n\n const viewingUser: Leaderboard = {\n textValue: rankData?.viewer?.leaderboardRank?.textValue,\n firstName: rankData?.viewer?.firstName,\n lastInitial: rankData?.viewer?.lastInitial,\n rank: rankData?.viewer?.leaderboardRank?.[props.rankType],\n rowNumber: rankData?.viewer?.leaderboardRank?.rowNumber,\n };\n\n // Show feature enforcement if request was forbidden\n const isEssentials = useMemo(\n () =>\n !!leaderboardErrors?.response?.errors?.find(\n (error) => error?.extensions?.apiError?.statusCode === 403\n ),\n [leaderboardErrors]\n );\n\n return {\n states: {\n loading: loadingLeaderboard,\n isEssentials,\n hasLeaders: sortedLeaderboard?.length > 0,\n styles: props,\n },\n data: {\n leaderboard: sortedLeaderboard,\n rankType: props.rankType,\n viewerRank: viewingUser,\n },\n elements: {\n empty: props.empty,\n },\n };\n}\n","import { isDemo } from \"@saasquatch/component-boilerplate\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, Prop, h, State } from \"@stencil/core\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../global/demo\";\nimport { withShadowView } from \"../../ShadowViewAddon\";\nimport { LeaderboardView, LeaderboardViewProps } from \"./sqm-leaderboard-view\";\nimport { LeaderboardProps, useLeaderboard } from \"./useLeaderboard\";\n\n/**\n * @uiName Leaderboard\n * @validParents [\"sqm-portal-container\",\"div\",\"sqm-hero\",\"sqm-instant-access-registration\",\"sqb-program-section\",\"sqb-conditional-section\"]\n * @slots [{\"name\":\"empty\", \"title\":\"Empty State\"}]\n * @requiredFeatures [\"LEADERBOARDS\"]\n * @exampleGroup Leaderboard\n * @example Referral Started - <sqm-leaderboard usersheading=\"Referrer\" rank-suffix=\"{rank, selectordinal, one {#st} two {#nd} few {#rd} other {#th}}\" statsheading=\"Referrals\" rank-type=\"rank\" leaderboard-type=\"topStartedReferrers\" rankheading=\"Rank\" show-rank=\"true\"><sqm-empty empty-state-image=\"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_leaderboard2.png\" empty-state-header=\"View your rank in the leaderboard\" empty-state-text=\"Be the first to refer a friend and reach the top of the leaderboard\" ></sqm-empty></sqm-leaderboard>\n * @example Referral Converted - <sqm-leaderboard usersheading=\"Referrer\" rank-suffix=\"{rank, selectordinal, one {#st} two {#nd} few {#rd} other {#th}}\" statsheading=\"Referrals\" rank-type=\"rank\" leaderboard-type=\"topConvertedReferrers\" rankheading=\"Rank\" show-rank=\"true\"><sqm-empty empty-state-image=\"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_leaderboard2.png\" empty-state-header=\"View your rank in the leaderboard\" empty-state-text=\"Be the first to refer a friend and reach the top of the leaderboard\" ></sqm-empty></sqm-leaderboard>\n * @example Points Earned - <sqm-leaderboard usersheading=\"Name\" rank-suffix=\"{rank, selectordinal, one {#st} two {#nd} few {#rd} other {#th}}\" statsheading=\"Points\" rank-type=\"rank\" leaderboard-type=\"topPointEarners\" rankheading=\"Rank\" show-rank=\"true\"><sqm-empty empty-state-image=\"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_leaderboard2.png\" empty-state-header=\"View your rank in the leaderboard\" empty-state-text=\"Be the first to refer a friend and reach the top of the leaderboard\" ></sqm-empty></sqm-leaderboard>\n * @example Anonymous Leaderboard - <sqm-leaderboard width=\"300px\" usersheading=\"Referrer\" rank-suffix=\"{rank, selectordinal, one {#st} two {#nd} few {#rd} other {#th}}\" statsheading=\"Referrals\" rank-type=\"rank\" leaderboard-type=\"topStartedReferrers\" rankheading=\"Rank\" show-rank=\"true\" hide-names=\"true\" hide-viewer=\"true\"><sqm-empty empty-state-image=\"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_leaderboard2.png\" empty-state-header=\"View your rank in the leaderboard\" empty-state-text=\"Be the first to refer a friend and reach the top of the leaderboard\"></sqm-empty></sqm-leaderboard>\n * @featureTooltip <div>Motivate your participants by gamifying your program. Contact <a href=\"mailto:saasquatch-support%40impact.com?subject=Next steps for Leaderboards feature&body=Hi Support Team, %0D%0A%0D%0A I am interested in learning more about how Leaderboards can support the growth of our referral program. Please connect me with a program strategy manager to discuss this feature further, and determine the next steps.%0D%0A%0D%0A%0D%0AThank you,%0D%0A[Add your name here]\">Support</a> to upgrade your plan and add a leaderboard.</div>\n */\n@Component({\n tag: \"sqm-leaderboard\",\n shadow: true,\n})\nexport class Leaderboard {\n /**\n * Filters leaderboard to show only data from this program. Defaults to the program context where this leaderboard is.\n * If no program ID is set or provided by context, then a global leaderboard is shown.\n *\n * @uiName Program\n * @uiWidget programSelector\n */\n @Prop() programId?: string;\n\n /**\n * @uiName User column heading\n */\n @Prop() usersheading: string;\n /**\n * @uiName Stats column heading\n */\n @Prop() statsheading: string;\n /**\n * @uiName Rank column heading\n */\n @Prop() rankheading?: string;\n /**\n * @uiName Show leaderboard rank\n */\n @Prop() showRank: boolean;\n /**\n * Restrict the width of the leaderboard (Can be a pixel value or a percentage i.e. \"500px\", \"33%\", etc.)\n *\n * @uiName Width\n */\n @Prop() width: string = \"100%\";\n /**\n * A JSONata string that formats the rank with the appropriate ordinal suffix (e.g., \"st\" for 1st, \"nd\" for 2nd, \"rd\" for 3rd, and \"th\" for all others).\n *\n * @uiName Rank Suffix\n */\n @Prop() rankSuffix: string;\n\n /**\n * @uiName Viewing user text\n */\n @Prop() viewingUserText: string = \"You\";\n\n /**\n * Hide the Names of users to protect personal identifiable information\n *\n * @uiName Hide users names\n * @default\n */\n @Prop() hideNames: boolean = false;\n\n /**\n * @uiName Rank type\n * @uiType string\n * @uiEnum [\"rowNumber\", \"rank\", \"denseRank\"]\n * @uiEnumNames [\"Row Number\", \"Rank\", \"Dense Rank\"]\n */\n @Prop() rankType: \"rowNumber\" | \"rank\" | \"denseRank\";\n\n /**\n * @uiName Leaderboard type\n * @uiType string\n * @required\n * @uiEnum [\"topStartedReferrers\", \"topConvertedReferrers\", \"topPointEarners\"]\n * @uiEnumNames [\"Top Started Referrers\", \"Top Converted Referrers\", \"Top Point Earners\"]\n */\n @Prop() leaderboardType:\n | \"topStartedReferrers\"\n | \"topConvertedReferrers\"\n | \"topPointEarners\";\n\n /**\n * Title displayed for users without names\n * @uiName Unknown user text\n */\n @Prop() anonymousUser: string = \"Anonymous User\";\n\n /**\n * @uiName Leaderboard time interval\n * @uiWidget dateRange\n * @uiWidgetOptions {\"allowPastDates\":true, \"months\": 1}\n */\n @Prop() interval: string;\n\n /**\n * Control the maximum amount of rows displayed on the leaderboard.\n *\n * @uiName Maximum rows number\n */\n @Prop() maxRows: number = 10;\n\n /**\n * Hide the viewer's leaderboard row if not in the top results.\n *\n * @uiName Hide viewing user\n * @default\n */\n @Prop() hideViewer: boolean = false;\n\n /**\n * Changes the background color of the viewing user row in the leaderboard.\n * @uiName Viewing User Highlight Color\n * @uiWidget color\n * @uiGroup Style\n */\n @Prop() viewingUserHighlightColor?: string;\n\n /**\n * Changes the text color of the viewing user row in the leaderboard.\n * @uiName Viewing User Text Color\n * @uiWidget color\n * @uiGroup Style\n */\n @Prop() viewingUserHighlightTextColor?: string;\n /**\n * Changes the background color of the leaderboard.\n * @uiName Background Color\n * @uiWidget color\n * @uiGroup Style\n */\n @Prop() background?: string;\n /**\n * Changes the border color of the table rows.\n * @uiName Border Color\n * @uiWidget color\n * @uiGroup Style\n */\n @Prop() borderColor?: string;\n /**\n * Text color of the leaderboard.\n * @uiName Text Color\n * @uiWidget color\n * @uiGroup Style\n */\n @Prop() textColor?: string;\n /**\n * Leaderboard border radius in pixels.\n * @uiName Border Radius\n * @uiGroup Style\n */\n @Prop() borderRadius?: number;\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<LeaderboardViewProps>;\n\n @State()\n ignored = true;\n\n constructor() {\n withHooks(this);\n withShadowView(this);\n }\n disconnectedCallback() {}\n\n render() {\n const props = {\n empty: <EmptySlot />,\n usersheading: this.usersheading,\n statsheading: this.statsheading,\n rankheading: this.rankheading,\n rankType: this.rankType,\n leaderboardType: this.leaderboardType,\n maxRows: this.maxRows,\n programId: this.programId,\n anonymousUser: this.anonymousUser,\n interval: this.interval,\n hideViewer: this.hideViewer,\n viewingUserText: this.viewingUserText,\n hideNames: this.hideNames,\n showRank: this.showRank,\n rankSuffix: this.rankSuffix,\n width: this.width,\n viewingUserHighlightColor: this.viewingUserHighlightColor,\n viewingUserHighlightTextColor: this.viewingUserHighlightTextColor,\n background: this.background,\n borderColor: this.borderColor,\n textColor: this.textColor,\n borderRadius: this.borderRadius,\n };\n const demoProps = { ...props, demoData: this.demoData };\n const viewprops = isDemo()\n ? useLeaderboardDemo(demoProps)\n : useLeaderboard(props);\n return <LeaderboardView {...viewprops} />;\n }\n}\n\nfunction EmptySlot() {\n return (\n <slot name=\"empty\">\n <sqm-empty\n empty-state-image=\"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_leaderboard2.png\"\n empty-state-header=\"View your rank in the leaderboard\"\n empty-state-text=\"Be the first to refer a friend and reach the top of the leaderboard\"\n ></sqm-empty>\n </slot>\n );\n}\n\nfunction useLeaderboardDemo(\n props: LeaderboardProps & { demoData: any }\n): LeaderboardViewProps {\n const data = props.demoData?.data?.leaderboard || [\n {\n firstName: \"Viktor\",\n lastInitial: \"V\",\n textValue: \"82\",\n rank: 1,\n rowNumber: 1,\n },\n {\n firstName: \"MF\",\n lastInitial: \"D\",\n textValue: \"73\",\n rank: 2,\n rowNumber: 2,\n },\n {\n firstName: \"Freddie\",\n lastInitial: \"G\",\n textValue: \"64\",\n rank: 3,\n rowNumber: 3,\n },\n {\n firstName: \"Benny\",\n lastInitial: \"B\",\n textValue: \"55\",\n rank: 4,\n rowNumber: 4,\n },\n {\n textValue: \"46\",\n rank: 5,\n rowNumber: 5,\n },\n ];\n\n return deepmerge(\n {\n states: {\n loading: false,\n hasLeaders: true,\n isEssentials: false,\n styles: {\n usersheading: props.usersheading\n ? props.usersheading\n : \"Top referrers\",\n statsheading: props.statsheading\n ? props.statsheading\n : \"New customers\",\n rankheading: props.rankheading ? props.rankheading : \"Rank\",\n anonymousUser: props.anonymousUser\n ? props.anonymousUser\n : \"Anonymous User\",\n showRank: props.showRank,\n hideViewer: props.hideViewer,\n viewingUserText: props.viewingUserText,\n hideNames: props.hideNames,\n rankSuffix: props.rankSuffix,\n width: props.width,\n viewingUserHighlightColor: props.viewingUserHighlightColor,\n viewingUserHighlightTextColor: props.viewingUserHighlightTextColor,\n background: props.background,\n borderColor: props.borderColor,\n textColor: props.textColor,\n borderRadius: props.borderRadius,\n },\n },\n data: {\n rankType: \"rowNumber\",\n leaderboard: data,\n },\n elements: {\n empty: <EmptySlot />,\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import { h } from \"@stencil/core\";\nimport { createStyleSheet } from \"../../styling/JSS\";\n\nexport interface LinkButtonViewProps {\n buttonText?: string;\n onClick: (e: Event) => void;\n}\n\nconst style = {\n Container: { display: \"contents\" },\n Link: {\n textDecoration: \"none\",\n color: \"inherit\",\n },\n};\n\nconst vanillaStyle = `\n:host{\n display: inline; \n}\n`;\n\nconst sheet = createStyleSheet(style);\nconst styleString = sheet.toString();\n\nexport function LinkButtonView(props: LinkButtonViewProps) {\n const { onClick, buttonText } = props;\n\n return (\n <span class={sheet.classes.Container} part=\"sqm-base\">\n <style type=\"text/css\">\n {styleString}\n {vanillaStyle}\n </style>\n <sl-button onClick={onClick} type={\"primary\"} exportparts={\"base: primarybutton-base\"}>\n <a class={sheet.classes.Link} part=\"sqm-link\">\n {buttonText}\n </a>\n </sl-button>\n </span>\n );\n}\n","import { Component, h, Prop } from \"@stencil/core\";\nimport { getProps } from \"../../utils/utils\";\nimport { LinkButtonView } from \"./sqm-link-button-view\";\n\n/**\n * @uiName Link Button\n * @validParents [\"sqm-portal-container\",\"div\",\"sqm-divided-layout\",\"template\",\"sqm-tab\",\"sqb-program-section\",\"sqb-conditional-section\"]\n * @exampleGroup Common Components\n * @example Link Button - <sqm-link-button link=\"https://www.example.com\" open-in-new-tab=\"true\">Click here</sqm-link-button>\n */\n@Component({\n tag: \"sqm-link-button\",\n shadow: true,\n})\nexport class LinkButton {\n /**\n * Enter the URL where you want your participants redirected. Example: https://www.example.com\n *\n * @required\n * @uiName Link\n */\n @Prop() link: string;\n /**\n * @uiName Open link in new tab\n */\n @Prop() openInNewTab: boolean = false;\n /**\n * @uiName Button text\n * @uiType string\n */\n @Prop() buttonText?: string = \"Click here\";\n\n render() {\n const onClick = () => {\n const url = this.link;\n const target = this.openInNewTab ? \"_blank\" : \"_parent\";\n window.open(url, target);\n };\n\n return (\n <LinkButtonView {...{ ...getProps(this), onClick }}></LinkButtonView>\n );\n }\n}\n\n//TODO: Write a hook to resolve ICU strings\n","import { isDemo } from \"@saasquatch/component-boilerplate\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Prop, State } from \"@stencil/core\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../global/demo\";\nimport { getProps } from \"../../utils/utils\";\nimport {\n CheckboxFieldView,\n CheckboxFieldViewProps,\n} from \"../sqm-checkbox-field/sqm-checkbox-field-view\";\nimport { useCheckboxField } from \"../sqm-checkbox-field/useCheckboxField\";\n\n/**\n * @uiName Marketing Emails Checkbox Field\n * @validParents [\"sqm-portal-register\",\"sqm-portal-registration-form\", \"sqm-portal-google-registration-form\"]\n * @requiredFeatures [\"MARKETING_EMAILS\"]\n */\n@Component({\n tag: \"sqm-marketing-emails-checkbox\",\n})\nexport class MarketingEmailsCheckbox {\n @State()\n ignored = true;\n\n /**\n * @uiName Checkbox label\n * @uiWidget textArea\n */\n @Prop() checkboxLabel: string =\n \"I would like to receive marketing and promotional emails for this referral program\";\n\n /**\n * @undocumented\n */\n @Prop() checkboxName: string = \"marketingEmailOptIn\";\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<CheckboxFieldViewProps>;\n\n constructor() {\n withHooks(this);\n }\n\n disconnectedCallback() {}\n\n render() {\n const content = {\n ...getProps(this),\n };\n\n const { states, callbacks } = isDemo()\n ? useCheckboxFieldDemo(this)\n : useCheckboxField(this);\n return (\n <CheckboxFieldView\n states={states}\n content={content}\n callbacks={callbacks}\n ></CheckboxFieldView>\n );\n }\n}\nfunction useCheckboxFieldDemo(\n props: MarketingEmailsCheckbox\n): Partial<CheckboxFieldViewProps> {\n return deepmerge(\n {\n states: {\n registrationFormState: {},\n checked: false,\n },\n callbacks: {\n setChecked: () => {},\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import { useDomContext } from \"@saasquatch/stencil-hooks\";\nimport {\n REGISTRATION_FORM_STATE_CONTEXT,\n RegistrationFormState,\n} from \"../sqm-portal-registration-form/useRegistrationFormState\";\nimport { NameFields } from \"./sqm-name-fields\";\n\nexport function useNameFields(props: NameFields) {\n const registrationFormState = useDomContext<RegistrationFormState>(\n REGISTRATION_FORM_STATE_CONTEXT\n );\n return {\n states: {\n optional: props.optional,\n registrationFormState,\n content: {\n lastNameLabel: props.lastNameLabel,\n firstNameLabel: props.firstNameLabel,\n },\n },\n };\n}\n","import { isDemo } from \"@saasquatch/component-boilerplate\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Prop, State } from \"@stencil/core\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../global/demo\";\nimport { NameFieldsView, NameFieldsViewProps } from \"./sqm-name-fields-view\";\nimport { useNameFields } from \"./useNameFields\";\n\n/**\n * @uiName Form Name Fields\n * @validParents [\"sqm-portal-register\",\"sqm-portal-registration-form\", \"sqm-portal-google-registration-form\"]\n * @exampleGroup Microsite Components\n * @example Form Name Fields - <sqm-name-fields first-name-label=\"First Name\" last-name-label=\"Last Name\"></sqm-name-fields>\n */\n@Component({\n tag: \"sqm-name-fields\",\n shadow: true,\n})\nexport class NameFields {\n @State()\n ignored = true;\n\n /**\n * @uiName First name label\n */\n @Prop() firstNameLabel: string = \"First Name\";\n\n /**\n * @uiName Last name label\n */\n @Prop() lastNameLabel: string = \"Last Name\";\n\n /**\n * @uiName Optional\n * @uiWidget\n */\n @Prop() optional: boolean = false;\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<NameFieldsViewProps>;\n\n constructor() {\n withHooks(this);\n }\n\n disconnectedCallback() {}\n\n render() {\n const { states } = isDemo() ? useNameFieldsDemo(this) : useNameFields(this);\n return <NameFieldsView states={states}></NameFieldsView>;\n }\n}\nfunction useNameFieldsDemo(props: NameFields): Partial<NameFieldsViewProps> {\n return deepmerge(\n {\n states: {\n optional: props.optional,\n validationErrors: [],\n content: {\n firstNameLabel: props.firstNameLabel,\n lastNameLabel: props.lastNameLabel,\n },\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import { h } from \"@stencil/core\";\n\nexport interface NavigationMenuViewProps {\n states: {\n includeDropdown: boolean;\n\n styles: {\n menuLabel: string;\n };\n };\n callbacks: {\n rerender: Function;\n };\n ref: { current: any };\n}\n\nexport function NavigationMenuView(props: NavigationMenuViewProps) {\n const { states } = props;\n const { styles } = states;\n return states.includeDropdown ? (\n <sl-dropdown style=\"margin-bottom: var(--sl-spacing-large)\">\n <sl-button\n slot=\"trigger\"\n caret\n onClick={props.callbacks.rerender}\n exportparts=\"base: dropdownbutton-base\"\n >\n {styles.menuLabel}\n </sl-button>\n <sl-menu\n ref={(r) => {\n if (props.ref.current === undefined) {\n props.ref.current = r;\n props.callbacks.rerender();\n }\n }}\n >\n <slot />\n </sl-menu>\n </sl-dropdown>\n ) : (\n \"\"\n );\n}\n","import {\n navigation,\n useTick,\n useUserIdentity,\n} from \"@saasquatch/component-boilerplate\";\nimport { useRef } from \"@saasquatch/universal-hooks\";\nimport { SlMenu, SlMenuItem } from \"@saasquatch/shoelace\";\nimport { useEffect } from \"haunted\";\nimport { NavigationMenu } from \"./sqm-navigation-menu\";\nimport { NavigationMenuViewProps } from \"./sqm-navigation-menu-view\";\n\ntype SelectEvent = Event & { detail: { item: SlMenuItem } };\n\nfunction handleMenu(e: SelectEvent) {\n navigation.push(e.detail.item.value);\n}\n\nexport function useNavigationMenu(\n props: NavigationMenu\n): NavigationMenuViewProps {\n const ref = useRef<SlMenu>();\n const [, rerender] = useTick();\n\n const user = useUserIdentity();\n\n useEffect(() => {\n ref.current?.addEventListener(\"sl-select\", (e: SelectEvent) =>\n handleMenu(e)\n );\n }, [ref.current]);\n\n return {\n states: {\n includeDropdown: (user?.id || user?.accountId || user?.jwt) !== undefined,\n styles: {\n menuLabel: props.menuLabel,\n },\n },\n callbacks: {\n rerender,\n },\n ref,\n };\n}\n","@include HostBlock;\n\n.HeaderWrapper {\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n display: flex;\n justify-content: space-between;\n padding: var(--sl-spacing-small) var(--sl-spacing-large);\n align-items: center;\n\n background-color: var(--sqm-header-background);\n\n @media screen and (max-width: 499px) {\n flex-direction: row-reverse;\n justify-content: flex-end;\n padding: 0 var(--sl-spacing-x-small);\n }\n}\n","import { Component, h, Host, Prop, State } from \"@stencil/core\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { isDemo } from \"@saasquatch/component-boilerplate\";\nimport {\n NavigationMenuView,\n NavigationMenuViewProps,\n} from \"./sqm-navigation-menu-view\";\nimport { useNavigationMenu } from \"./useNavigationMenu\";\nimport { getProps } from \"../../utils/utils\";\nimport { DemoData } from \"../../global/demo\";\nimport deepmerge from \"deepmerge\";\n\n/**\n * @uiName Navigation Menu\n * @validParents [\"sqm-portal-container\",\"div\",\"sqm-brand\",\"sqm-divided-layout\"]\n */\n@Component({\n tag: \"sqm-navigation-menu\",\n styleUrl: \"sqm-navigation-menu.scss\",\n shadow: true,\n})\nexport class NavigationMenu {\n @State()\n ignored = true;\n\n /**\n * @uiName Include dropdown menu\n */\n @Prop() includeDropdown: boolean;\n /**\n * Label on the header menu\n *\n * @uiName Menu label\n */\n @Prop() menuLabel: string;\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<NavigationMenuViewProps>;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n const props = isDemo()\n ? useNavigationMenuDemo(getProps(this))\n : useNavigationMenu(getProps(this));\n return (\n <Host slot=\"sqm-navigation-menu\">\n <NavigationMenuView {...props} />\n </Host>\n );\n }\n}\n\nfunction useNavigationMenuDemo(props: NavigationMenu): NavigationMenuViewProps {\n return deepmerge(\n {\n states: {\n includeDropdown: true,\n styles: {\n ...props,\n menuLabel: \"Menu\",\n },\n },\n callbacks: {\n rerender: () => {},\n },\n ref: { current: undefined },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import { h } from \"@stencil/core\";\nimport { createStyleSheet } from \"../../styling/JSS\";\n\nexport interface PayoutButtonScrollViewProps {\n states: {\n payoutSettingsComplete: boolean;\n };\n text: {\n payoutButtonText: string;\n payoutButtonDescription: string;\n };\n}\n\nconst style = {\n Wrapper: {\n maxWidth: \"200px\",\n marginLeft: \"auto\",\n },\n PayoutButtonDescription: {\n color: \"var(--sqm-text-subdued)\",\n fontSize: \"var(--sl-font-size-small)\",\n margin: \"0\",\n },\n};\n\nconst sheet = createStyleSheet(style);\nconst styleString = sheet.toString();\n\nexport function PayoutButtonScrollView(props: PayoutButtonScrollViewProps) {\n const { text, states } = props;\n\n if (!states.payoutSettingsComplete) return <div></div>;\n return (\n <div class={sheet.classes.Wrapper}>\n <style type=\"text/css\">{styleString}</style>\n <sqm-scroll\n scroll-tag-name=\"sqm-tabs\"\n button-text={text.payoutButtonText}\n scroll-animation=\"smooth\"\n ></sqm-scroll>\n <p class={sheet.classes.PayoutButtonDescription}>\n {text.payoutButtonDescription}\n </p>\n </div>\n );\n}\n","import { gql } from \"graphql-request\";\nimport { PayoutButtonScroll } from \"./sqm-payout-button-scroll\";\nimport { useQuery } from \"@saasquatch/component-boilerplate\";\nimport { useEffect, useState } from \"@saasquatch/universal-hooks\";\n\nconst GET_PAYOUT_DETAILS = gql`\n query getPayoutDetails {\n user: viewer {\n ... on User {\n id\n impactConnection {\n connected\n publisher {\n id\n payoutsAccount {\n hold\n balance\n }\n }\n }\n }\n }\n }\n`;\nexport function usePayoutButton(props: PayoutButtonScroll) {\n const { data, refetch } = useQuery(GET_PAYOUT_DETAILS, {});\n\n useEffect(() => {\n const cb = () => refetch();\n window.addEventListener(\"sqm:tax-form-updated\", cb);\n return () => window.removeEventListener(\"sqm:tax-form-updated\", cb);\n }, []);\n\n return {\n states: {\n payoutSettingsComplete:\n !!data?.user?.impactConnection?.publisher?.payoutsAccount,\n },\n text: props.getTextProps(),\n };\n}\n","import { Component, h, Prop, State } from \"@stencil/core\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { isDemo } from \"@saasquatch/component-boilerplate\";\nimport { DemoData } from \"../../global/demo\";\nimport { getProps } from \"../../utils/utils\";\nimport {\n PayoutButtonScrollView,\n PayoutButtonScrollViewProps,\n} from \"./sqm-payout-button-scroll-view\";\nimport deepmerge from \"deepmerge\";\nimport { usePayoutButton } from \"./usePayoutButton\";\n\n/**\n * @uiName Payout Button Scroll\n */\n@Component({\n tag: \"sqm-payout-button-scroll\",\n shadow: true,\n})\nexport class PayoutButtonScroll {\n /**\n * @uiName Payout button text\n */\n @Prop() payoutButtonText: string = \"Payouts & Tax Settings\";\n /**\n * Description text under payout button\n * @uiName Payout button description text\n */\n @Prop() payoutButtonDescription: string =\n \"Check your payout settings to see when you’ll get paid out next\";\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<PayoutButtonScrollViewProps>;\n\n @State()\n ignored = true;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n getTextProps() {\n return getProps(this);\n }\n\n render() {\n const props = isDemo()\n ? useDemoPayoutButtonScroll(this)\n : usePayoutButton(this);\n\n return <PayoutButtonScrollView {...props} />;\n }\n}\n\nfunction useDemoPayoutButtonScroll(\n props: PayoutButtonScroll\n): PayoutButtonScrollViewProps {\n return deepmerge(\n {\n states: {\n payoutSettingsComplete: false,\n },\n text: props.getTextProps(),\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import { h } from \"@stencil/core\";\nimport { intl } from \"../../../global/global\";\nimport { createStyleSheet } from \"../../../styling/JSS\";\nimport { EnforceUsTaxComplianceOption, PayoutStatus } from \"./usePayoutStatus\";\nexport interface PayoutStatusAlertViewProps {\n states: {\n error: boolean;\n loading: boolean;\n status: PayoutStatus;\n veriffLoading: boolean;\n enforceUsTaxComplianceOption?: EnforceUsTaxComplianceOption;\n };\n data: {\n type:\n | \"SquatchJS2\"\n | \"SquatchAndroid\"\n | \"SquatchIOS\"\n | \"SquatchPortal\"\n | \"SquatchAdmin\"\n | \"None\";\n };\n callbacks: {\n onClick: () => void;\n onTermsClick: () => void;\n };\n text: {\n informationRequiredHeader: string;\n informationRequiredDescription: string;\n informationRequiredButtonText: string;\n verificationRequiredHeader: string;\n verificationRequiredDescription: string;\n verificationRequiredButtonText: string;\n verificationRequiredInternalHeader: string;\n verificationRequiredInternalDescription: string;\n verificationReviewInternalHeader: string;\n verificationReviewInternalDescription: string;\n verificationFailedInternalHeader: string;\n verificationFailedInternalDescription: string;\n accountReviewHeader: string;\n accountReviewDescription: string;\n w9RequiredHeader: string;\n w9RequiredDescription: string;\n w9RequiredButtonText: string;\n holdHeader: string;\n holdDescription: string;\n supportLink: string;\n termsAndConditions: string;\n errorHeader: string;\n errorDescription: string;\n };\n}\n\nconst style = {\n SkeletonOne: {\n width: \"50%\",\n height: \"16px\",\n },\n AlertDescriptionText: {\n margin: \"0\",\n marginBottom: \"var(--sl-spacing-small)\",\n },\n Dialog: {\n \"&::part(panel)\": {\n height: \"600px\",\n },\n \"&::part(close-button)\": {\n marginBottom: \"var(--sl-spacing-xx-large)\",\n },\n \"&::part(title)\": {\n display: \"none\",\n },\n \"&::part(header)\": {},\n \"&::part(body)\": { padding: \"0\" },\n \"&::part(footer)\": {},\n },\n};\n\nconst vanillaStyle = `\n a {\n color: inherit;\n text-decoration: underline;\n cursor: pointer;\n }\n`;\n\nconst sheet = createStyleSheet(style);\nconst styleString = sheet.toString();\n\nexport function PayoutStatusAlertView(props: PayoutStatusAlertViewProps) {\n const { text, states, data, callbacks } = props;\n\n function getAlert(status: PayoutStatus) {\n if (states.error)\n return {\n header: text.errorHeader,\n description: text.errorDescription,\n buttonText: null,\n alertType: \"error\",\n };\n\n switch (status) {\n case \"INFORMATION_REQUIRED\":\n return {\n header: text.informationRequiredHeader,\n description: text.informationRequiredDescription,\n buttonText: text.informationRequiredButtonText,\n alertType: \"info\",\n };\n case \"VERIFICATION:REQUIRED\":\n return {\n header: text.verificationRequiredHeader,\n description: intl.formatMessage(\n {\n id: \"verificationRequiredDescription\",\n defaultMessage: text.verificationRequiredDescription,\n },\n {\n supportLink: (\n <a target=\"_blank\" href={`mailto:advocate-support@impact.com`}>\n {text.supportLink}\n </a>\n ),\n }\n ),\n buttonText: text.verificationRequiredButtonText,\n alertType: \"warning\",\n };\n case \"VERIFICATION:INTERNAL\":\n return {\n header: text.verificationRequiredInternalHeader,\n description: intl.formatMessage(\n {\n id: \"verificationRequiredInternalDescription\",\n defaultMessage: text.verificationRequiredInternalDescription,\n },\n {\n supportLink: (\n <a target=\"_blank\" href={`mailto:advocate-support@impact.com`}>\n {text.supportLink}\n </a>\n ),\n }\n ),\n alertType: \"warning\",\n };\n case \"VERIFICATION:REVIEW\":\n return {\n header: text.verificationReviewInternalHeader,\n description: intl.formatMessage(\n {\n id: \"verificationReviewInternalDescription\",\n defaultMessage: text.verificationReviewInternalDescription,\n },\n {\n supportLink: (\n <a target=\"_blank\" href={`mailto:advocate-support@impact.com`}>\n {text.supportLink}\n </a>\n ),\n }\n ),\n alertType: \"warning\",\n };\n case \"VERIFICATION:FAILED\":\n return {\n header: text.verificationFailedInternalHeader,\n description: intl.formatMessage(\n {\n id: \"verificationFailedInternalDescription\",\n defaultMessage: text.verificationFailedInternalDescription,\n },\n {\n supportLink: (\n <a target=\"_blank\" href={`mailto:advocate-support@impact.com`}>\n {text.supportLink}\n </a>\n ),\n }\n ),\n alertType: \"error\",\n };\n case \"OVER_W9_THRESHOLD\":\n if (states.enforceUsTaxComplianceOption === \"CASH_ONLY_DEFER_W9\") {\n return {\n header: text.w9RequiredHeader,\n description: intl.formatMessage(\n {\n id: \"w9RequiredDescription\",\n defaultMessage: text.w9RequiredDescription,\n },\n {\n termsAndConditions: (\n <a\n target=\"_blank\"\n href={`https://terms.advocate.impact.com/PayoutTermsAndConditions.html`}\n >\n {text.termsAndConditions}\n </a>\n ),\n }\n ),\n buttonText: text.w9RequiredButtonText,\n alertType: \"warning\",\n icon: \"exclamation-triangle\",\n };\n } else {\n return {\n header: text.holdHeader,\n description: intl.formatMessage(\n {\n id: \"holdDescription\",\n defaultMessage: text.holdDescription,\n },\n {\n supportLink: (\n <a\n target=\"_blank\"\n href={`mailto:advocate-support@impact.com`}\n >\n {text.supportLink}\n </a>\n ),\n }\n ),\n buttonText: null,\n alertType: \"warning\",\n icon: \"exclamation-triangle\",\n };\n }\n case \"ACCOUNT_REVIEW\":\n return {\n header: text.accountReviewHeader,\n description: intl.formatMessage(\n {\n id: \"accountReviewDescription\",\n defaultMessage: text.accountReviewDescription,\n },\n {\n supportLink: (\n <a target=\"_blank\" href={`mailto:advocate-support@impact.com`}>\n {text.supportLink}\n </a>\n ),\n }\n ),\n buttonText: null,\n alertType: \"warning\",\n icon: \"exclamation-triangle\",\n };\n case \"HOLD\":\n return {\n header: text.holdHeader,\n description: intl.formatMessage(\n {\n id: \"holdDescription\",\n defaultMessage: text.holdDescription,\n },\n {\n supportLink: (\n <a target=\"_blank\" href={`mailto:advocate-support@impact.com`}>\n {text.supportLink}\n </a>\n ),\n }\n ),\n buttonText: null,\n alertType: \"warning\",\n };\n default:\n return;\n }\n }\n\n function getButton(status: PayoutStatus) {\n switch (status) {\n case \"OVER_W9_THRESHOLD\":\n if (states.enforceUsTaxComplianceOption === \"CASH_ONLY\") return;\n return data.type === \"SquatchJS2\" ? (\n <sqm-scroll\n scroll-tag-name=\"sqm-tabs\"\n button-text={text.w9RequiredButtonText}\n scroll-animation=\"smooth\"\n ></sqm-scroll>\n ) : data.type === \"SquatchPortal\" ? (\n <sl-button type=\"default\" onClick={callbacks.onTermsClick}>\n {text.w9RequiredButtonText}\n </sl-button>\n ) : (\n // Demo case\n <sl-button type=\"default\">{text.w9RequiredButtonText}</sl-button>\n );\n case \"INFORMATION_REQUIRED\":\n return data.type === \"SquatchJS2\" ? (\n <div style={{ paddingTop: \"10px\" }}>\n <sqm-scroll\n scroll-tag-name=\"sqm-tabs\"\n button-text={text.informationRequiredButtonText}\n scroll-animation=\"smooth\"\n ></sqm-scroll>\n </div>\n ) : data.type === \"SquatchPortal\" ? (\n <div style={{ paddingTop: \"10px\" }}>\n <sl-button\n type=\"secondary\"\n exportparts=\"base: secondarybutton-base\"\n onClick={callbacks.onTermsClick}\n >\n {text.informationRequiredButtonText}\n </sl-button>\n </div>\n ) : (\n // Demo case\n <div style={{ paddingTop: \"10px\" }}>\n <sl-button\n type=\"secondary\"\n exportparts=\"base: secondarybutton-base\"\n >\n {text.informationRequiredButtonText}\n </sl-button>\n </div>\n );\n case \"VERIFICATION:REQUIRED\":\n return (\n <div style={{ paddingTop: \"10px\" }}>\n <sl-button\n type=\"secondary\"\n exportparts=\"base: secondarybutton-base\"\n loading={states.veriffLoading}\n onClick={callbacks.onClick}\n >\n {text.verificationRequiredButtonText}\n </sl-button>\n </div>\n );\n default:\n return;\n }\n }\n\n if (states.loading) {\n return <sl-skeleton class={sheet.classes.SkeletonOne}></sl-skeleton>;\n }\n\n const alertDetails = getAlert(states.status);\n if (states.status === \"DONE\" || !alertDetails) {\n return <div></div>;\n }\n\n return (\n <div part=\"sqm-base\">\n <style type=\"text/css\">{styleString}</style>\n <style type=\"text/css\">{vanillaStyle}</style>\n <sqm-form-message type={alertDetails.alertType}>\n <p part=\"alert-title\">{alertDetails.header}</p>\n <p part=\"alert-description\">{alertDetails.description}</p>\n {getButton(states.status)}\n </sqm-form-message>\n </div>\n );\n}\n","import { isDemo } from \"@saasquatch/component-boilerplate\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Prop } from \"@stencil/core\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../../global/demo\";\nimport { getProps } from \"../../../utils/utils\";\nimport {\n PayoutStatusAlertView,\n PayoutStatusAlertViewProps,\n} from \"./sqm-payout-status-alert-view\";\nimport { usePayoutStatus } from \"./usePayoutStatus\";\nimport { parseStates } from \"../../../utils/parseStates\";\n\n/**\n * @uiName Payout Status Alert\n * @validParents [\"sqm-portal-container\",\"div\",\"sqm-hero\",\"sqm-instant-access-registration\",\"sqm-brand\",\"sqb-program-section\",\"sqb-conditional-section\"]\n * @exampleGroup Tax and Cash\n * @example Payout Status Alert - <sqm-payout-status-alert></sqm-payout-status-alert>\n */\n@Component({\n tag: \"sqm-payout-status-alert\",\n shadow: true,\n})\nexport class PayoutStatusAlert {\n /**\n * @uiName Info required alert header\n */\n @Prop() informationRequiredHeader: string =\n \"Payout and tax information required\";\n /**\n * @uiName Info required alert description\n */\n @Prop() informationRequiredDescription: string =\n \"Submit your banking details and tax documents to receive your rewards.\";\n /**\n * @uiName Info required alert button text\n */\n @Prop() informationRequiredButtonText: string = \"Payouts & Tax Settings\";\n /**\n * @uiName Verification required alert header\n */\n @Prop() verificationRequiredHeader: string = \"Verify your identity\";\n /**\n * @uiName Verification required alert description\n */\n @Prop() verificationRequiredDescription: string =\n \"It should only take a few minutes verify. If you run in to an issue verifying your identity contact our {supportLink}.\";\n /**\n * @uiName Verification required alert button text\n */\n @Prop() verificationRequiredButtonText: string = \"Start Verification\";\n /**\n * @uiName Verification required internal alert header\n */\n @Prop() verificationRequiredInternalHeader: string =\n \"Identity Verification in Progress\";\n /**\n * @uiName Verification required internal alert description\n */\n @Prop() verificationRequiredInternalDescription: string =\n \"Identity verification submission has been received. Our system is currently performing additional checks and analyzing the results. You will be updated shortly. If you don't hear from us contact our {supportLink}.\";\n /**\n * @uiName Verification review internal alert header\n */\n @Prop() verificationReviewInternalHeader: string =\n \"Identity Verification Under Review\";\n /**\n * @uiName Verification review internal alert description\n */\n @Prop() verificationReviewInternalDescription: string =\n \"Identity verification requires further review due to a potential error. Our team is reviewing the information and will update you shortly. If you don't hear from us contact our {supportLink}.\";\n /**\n * @uiName Verification failed internal alert header\n */\n @Prop() verificationFailedInternalHeader: string =\n \"Identity Verification Unsuccessful\";\n /**\n * @uiName Verification failed internal alert description\n */\n @Prop() verificationFailedInternalDescription: string =\n \"Identity verification has failed. Our team is reviewing the report and will contact you with further information. If you don't hear from us contact our {supportLink}.\";\n /**\n * @uiName Account review alert header\n */\n @Prop() accountReviewHeader: string = \"Your account is under review\";\n /**\n * @uiName Account review alert description\n */\n @Prop() accountReviewDescription: string =\n \"This process takes 48 hours, payouts are on hold until it's completed. You will receive an email from our referral provider, Impact.com, if any issues arise. It contains details on how to resolve this issue. If you need further assistance, please reach out to our {supportLink}.\";\n /**\n * @uiName W-9 payment threshold alert header\n */\n @Prop() w9RequiredHeader: string = \"Your next payout is on hold\";\n /**\n * @uiName W-9 payment threshold alert description\n */\n @Prop() w9RequiredDescription: string =\n \"You have surpassed the $600 threshold requiring a W-9 form or have multiple accounts with impact.com. To remove the hold, please submit your W-9 form.\";\n /**\n * @uiName W-9 payment threshold alert button text\n */\n @Prop() w9RequiredButtonText: string = \"Submit W-9\";\n /**\n * @uiName Payout on hold alert header\n */\n @Prop() holdHeader: string = \"Your payouts and account are on hold\";\n /**\n * @uiName Payout on hold alert description\n */\n @Prop() holdDescription: string =\n \"Please check your inbox for an email from our referral provider, impact.com. It contains details on how to resolve this issue. If you need further assistance, feel free to reach out to our {supportLink}.\";\n /**\n * @uiName Cash & Payouts Microsite Page (only set if alert is used in a microsite)\n */\n @Prop() cashPayoutsPageUrl: string = \"/taxAndCash\";\n /**\n * @uiName Support link text\n */\n @Prop() supportLink: string = \"support team\";\n /**\n * @uiName Terms and Conditions text\n */\n @Prop() termsAndConditions: string = \"Terms and Conditions\";\n /**\n * @uiName Error header\n */\n @Prop() errorHeader: string = \"Could not determine payout status.\";\n /**\n * @uiName Error description\n */\n @Prop() errorDescription: string =\n \"There was an error with determining your payout status.\";\n\n /**\n * @undocumented\n * @componentState { \"title\": \"Payout Info Required\", \"props\": { \"states\": { \"status\": \"INFORMATION_REQUIRED\" } }, \"dependencies\": [\"sqm-payout-status-alert\"] }\n * @componentState { \"title\": \"Verification Required\", \"props\": { \"states\": { \"status\": \"VERIFICATION:REQUIRED\" } }, \"dependencies\": [\"sqm-payout-status-alert\"] }\n * @componentState { \"title\": \"Identity Verification\", \"props\": { \"states\": { \"status\": \"VERIFICATION:REVIEW\" } }, \"dependencies\": [\"sqm-payout-status-alert\"] }\n * @componentState { \"title\": \"Account Hold\", \"props\": { \"states\": { \"status\": \"HOLD\" } }, \"dependencies\": [\"sqm-payout-status-alert\"] }\n */\n @Prop() stateController?: string = \"{}\";\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<PayoutStatusAlertViewProps>;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n getTextProps() {\n return getProps(this);\n }\n\n render() {\n const props = isDemo()\n ? useDemoPayoutStatusAlert(this)\n : usePayoutStatus(this);\n\n return <PayoutStatusAlertView {...props} />;\n }\n}\n\nfunction useDemoPayoutStatusAlert(\n props: PayoutStatusAlert\n): PayoutStatusAlertViewProps {\n const states = parseStates(props.stateController);\n const formatted = Object.keys(states).reduce(\n (prev, key) =>\n key === \"sqm-payout-status-alert\"\n ? { ...prev, ...states[key] }\n : { ...prev, [`${key}_stateController`]: states[key] },\n {}\n );\n return deepmerge(\n {\n states: {\n error: false,\n status: \"INFORMATION_REQUIRED\",\n loading: false,\n veriffLoading: false,\n },\n data: { type: \"SquatchAdmin\" },\n text: props.getTextProps(),\n callbacks: {\n onTermsClick: () => {},\n onClick: () => console.log(\"show\"),\n },\n },\n formatted || props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import {\n useMutation,\n useQuery,\n useUserIdentity,\n} from \"@saasquatch/component-boilerplate\";\nimport { useEffect, useState } from \"@saasquatch/universal-hooks\";\nimport { gql } from \"graphql-request\";\nimport jsonpointer from \"jsonpointer\";\nimport { PortalChangeMarketing } from \"./sqm-portal-change-marketing\";\nimport { ChangeMarketingViewProps } from \"./sqm-portal-change-marketing-view\";\n\nconst GET_USER = gql`\n query {\n viewer {\n ... on User {\n id\n accountId\n marketingEmailOptIn\n }\n }\n }\n`;\n\nconst UPSERT_USER = gql`\n mutation ($userInput: UserInput!) {\n upsertUser(userInput: $userInput) {\n id\n marketingEmailOptIn\n }\n }\n`;\n\n// view doesn't tolerate undefined, even when we're loading\nconst defaultFormState = {\n marketingEmailOptIn: false,\n errors: {},\n error: \"\",\n};\n\nexport function usePortalProfile(\n props: PortalChangeMarketing\n): ChangeMarketingViewProps {\n const userIdent = useUserIdentity();\n\n const [success, setSuccess] = useState(false);\n\n const [userData, setUserData] = useState<null | {\n id: string;\n accountId: string;\n marketingEmailOptIn: boolean;\n }>(undefined);\n\n const [formState, setFormState] = useState<{\n marketingEmailOptIn: boolean;\n errors: any;\n error: string;\n }>(defaultFormState);\n\n const userDataResponse = useQuery(GET_USER, {}, !userIdent?.jwt);\n\n const [upsertUser, upsertUserResponse] = useMutation(UPSERT_USER);\n\n useEffect(() => {\n if (upsertUserResponse?.loading) return;\n\n if (upsertUserResponse?.errors) {\n setFormState((state) => ({\n ...state,\n error: upsertUserResponse?.errors?.response?.errors?.[0].message,\n }));\n } else {\n setUserData((state) => ({\n ...state,\n ...upsertUserResponse?.data?.upsertUser,\n }));\n if (upsertUserResponse?.data) setSuccess(true);\n }\n }, [upsertUserResponse?.loading]);\n\n useEffect(() => {\n setUserData((data) => ({ ...data, ...userDataResponse?.data?.viewer }));\n\n setFormState({\n ...defaultFormState,\n ...userDataResponse.data?.viewer,\n ...upsertUserResponse.data?.upsertUser,\n });\n }, [userDataResponse?.data]);\n\n useEffect(() => {\n if (upsertUserResponse?.errors?.message) {\n setFormState({\n ...userDataResponse.data?.viewer,\n error: props.networkRequestMessage,\n });\n }\n }, [upsertUserResponse?.errors]);\n\n const onSubmit = (event) => {\n setSuccess(false);\n\n const formData = event.detail?.formData;\n formData?.forEach((value, key) => {\n jsonpointer.set(formData, key, value);\n });\n\n upsertUser({\n userInput: {\n id: userIdent?.id,\n accountId: userIdent?.accountId,\n marketingEmailOptIn: Boolean(formData.marketingEmailOptIn),\n },\n });\n setFormState((s) => ({ ...s, errors: {}, error: \"\" }));\n return;\n };\n\n return {\n states: {\n success,\n loading: userDataResponse?.loading || upsertUserResponse.loading,\n submitDisabled: false,\n formState,\n user: userData,\n text: {\n emailPreferencesHeader: props.emailPreferencesHeader,\n marketingCheckboxLabel: props.marketingCheckboxLabel,\n submitChangeButtonText: props.submitChangeButtonText,\n successMessage: props.successMessage,\n },\n },\n callbacks: {\n onSubmit,\n setChecked: (value: boolean) =>\n setFormState({ ...formState, marketingEmailOptIn: value }),\n },\n };\n}\n","import { Component, h, Prop, State } from \"@stencil/core\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport {\n ChangeMarktingView,\n ChangeMarketingViewProps,\n} from \"./sqm-portal-change-marketing-view\";\nimport { usePortalProfile } from \"./usePortalChangeMarketing\";\nimport { getProps } from \"../../utils/utils\";\nimport { isDemo } from \"@saasquatch/component-boilerplate\";\nimport { DemoData } from \"../../global/demo\";\nimport deepmerge from \"deepmerge\";\n\n/**\n * @uiName Change Marketing Opt in Status\n * @requiredFeatures [\"MARKETING_EMAILS\"]\n */\n@Component({\n tag: \"sqm-portal-change-marketing\",\n shadow: true,\n})\nexport class PortalChangeMarketing {\n @State()\n ignored = true;\n\n /**\n * @uiName Email preferences header\n */\n @Prop() emailPreferencesHeader: string = \"Email preferences\";\n\n /**\n * @uiName Marketing checkbox label\n */\n @Prop() marketingCheckboxLabel: string =\n \"I want to receive marketing emails and promotions for this referral program from impact.com\";\n\n /**\n * @uiName Submit changes button text\n */\n @Prop() submitChangeButtonText: string = \"Save\";\n\n /**\n * Displayed when the page fails to load due to a network error. The participant can try refreshing the page.\n *\n * @uiName Network request error message\n */\n @Prop() networkRequestMessage: string =\n \"An error occurred while loading this page. Please refresh the page.\";\n\n /**\n * @uiName Successful update message\n */\n @Prop() successMessage: string = \"Opt-in preference has been changed.\";\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<ChangeMarketingViewProps>;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n const props = isDemo()\n ? usePortalProfileDemo(getProps(this))\n : usePortalProfile(getProps(this));\n return <ChangeMarktingView {...props} />;\n }\n}\n\nfunction usePortalProfileDemo(\n props: PortalChangeMarketing\n): ChangeMarketingViewProps {\n return deepmerge(\n {\n states: {\n success: false,\n loading: false,\n submitDisabled: false,\n user: {\n id: \"01\",\n accountId: \"111100000\",\n marketingEmailOptIn: false,\n },\n text: {\n emailPreferencesHeader: props.emailPreferencesHeader,\n marketingCheckboxLabel: props.marketingCheckboxLabel,\n submitChangeButtonText: props.submitChangeButtonText,\n successMessage: props.successMessage,\n },\n formState: {\n marketingEmailOptIn: false,\n errors: null,\n error: \"\",\n },\n },\n callbacks: {\n onSubmit: (e) => console.log(e),\n setChecked: () => {},\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import { useEffect, useState } from \"@saasquatch/universal-hooks\";\nimport { PortalChangePassword } from \"./sqm-portal-change-password\";\nimport jsonpointer from \"jsonpointer\";\nimport {\n useChangePasswordMutation,\n useUserIdentity,\n} from \"@saasquatch/component-boilerplate\";\n\nexport function usePortalChangePassword(props: PortalChangePassword) {\n const [request, { loading, errors, data }] = useChangePasswordMutation();\n const [open, setOpen] = useState(false);\n const [error, setError] = useState(\"\");\n const [success, setSuccess] = useState(false);\n const user = useUserIdentity();\n\n const submit = async (event: any) => {\n setSuccess(false);\n\n const formData = event.detail?.formData;\n formData?.forEach((value, key) => {\n jsonpointer.set(formData, key, value);\n });\n\n if (!user?.jwt) {\n setError(props.invalidSessionErrorText);\n return;\n }\n if (formData.password !== formData.confirmPassword) {\n setError(props.nonMatchingPasswordErrorText);\n return;\n }\n setError(\"\");\n\n const variables = {\n password: formData.password,\n };\n\n const result = await request(variables);\n if (\n !(result instanceof Error) &&\n result.changeManagedIdentityPassword?.success\n ) {\n setSuccess(true);\n }\n };\n\n return {\n states: {\n open,\n loading,\n success,\n error:\n error ||\n errors?.response?.errors?.[0]?.extensions?.message ||\n errors?.response?.errors?.[0]?.message,\n content: {\n modalChangePasswordHeader: props.modalChangePasswordHeader,\n cancelText: props.cancelText,\n changePasswordButtonText: props.changePasswordButtonText,\n passwordFieldLabel: props.passwordFieldLabel,\n confirmPasswordFieldLabel: props.confirmPasswordFieldLabel,\n successMessage: props.successMessage,\n portalChangePasswordHeader: props.portalChangePasswordHeader,\n portalChangePasswordButtonText: props.portalChangePasswordButtonText,\n meetsRequirementsText: props.meetsRequirementsText,\n doesNotMeetRequirementsText: props.doesNotMeetRequirementsText,\n minErrorText: props.minErrorText,\n uppercaseErrorText: props.uppercaseErrorText,\n lowercaseErrorText: props.lowercaseErrorText,\n hasErrorText: props.hasErrorText,\n },\n },\n data: {},\n callbacks: {\n setOpen,\n submit,\n },\n };\n}\n","import { Component, h, Prop, State } from \"@stencil/core\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport {\n PortalChangePasswordViewProps,\n PortalChangePasswordView,\n} from \"./sqm-portal-change-password-view\";\nimport { usePortalChangePassword } from \"./usePortalChangePassword\";\nimport { isDemo } from \"@saasquatch/component-boilerplate\";\nimport { DemoData } from \"../../global/demo\";\nimport deepmerge from \"deepmerge\";\nimport { useState } from \"@saasquatch/universal-hooks\";\n\n/**\n * @uiName Microsite Password Change\n * @validParents [\"sqm-portal-container\",\"div\",\"sqm-divided-layout\",\"sqm-brand\"]\n */\n@Component({\n tag: \"sqm-portal-change-password\",\n shadow: true,\n})\nexport class PortalChangePassword {\n @State()\n ignored = true;\n\n /**\n * @uiName Change password modal header\n */\n @Prop() modalChangePasswordHeader: string = \"Change Password\";\n\n /**\n * Found in modal\n *\n * @uiName Cancel button text\n */\n @Prop() cancelText: string = \"Cancel\";\n\n /**\n * Found in modal\n *\n * @uiName Change password button text\n */\n @Prop() changePasswordButtonText: string = \"Change Password\";\n\n /**\n * Found in modal\n *\n * @uiName New password field label\n */\n @Prop() passwordFieldLabel: string = \"New Password\";\n\n /**\n * Found in modal\n *\n * @uiName Confirm password Label\n */\n @Prop()\n confirmPasswordFieldLabel: string = \"Confirm New Password\";\n\n /**\n * Successful password change message\n *\n * @uiName Successful password change message\n * @uiWidget textArea\n */\n @Prop() successMessage: string = \"Your password has been updated.\";\n\n /**\n * Portal change password section header\n *\n * @uiName Change password header\n */\n @Prop() portalChangePasswordHeader: string = \"Password\";\n\n /**\n * @uiName Change password button text\n */\n @Prop() portalChangePasswordButtonText: string = \"Change your password...\";\n\n /**\n * @uiName Password requirement met\n */\n @Prop() meetsRequirementsText: string = \"Password has met all requirements\";\n\n /**\n * @uiName Password requirement failed\n */\n @Prop() doesNotMeetRequirementsText: string =\n \"Password must meet the following requirements:\";\n\n /**\n * @uiName Minimum length text\n */\n @Prop() minErrorText: string = \"be a minimum of 8 characters\";\n\n /**\n * @uiName Missing uppercase text\n */\n @Prop() uppercaseErrorText: string = \"contain at least 1 uppercase character\";\n\n /**\n * @uiName Missing lowercase text\n */\n @Prop() lowercaseErrorText: string = \"contain at least 1 lowercase character\";\n\n /**\n * @uiName Passwords don’t match error message\n */\n @Prop() nonMatchingPasswordErrorText: string =\n \"contain at least 1 lowercase character\";\n\n /**\n * @uiName Invalid user session error message\n */\n @Prop() invalidSessionErrorText: string =\n \"Please log in again to change your password.\";\n\n /**\n * @uiName Missing number or symbol text\n */\n @Prop() hasErrorText: string = \"contain at least 1 number or symbol\";\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<PortalChangePasswordViewProps>;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n const { states, callbacks } = isDemo()\n ? usePortalChangePasswordDemo(this)\n : usePortalChangePassword(this);\n return <PortalChangePasswordView states={states} callbacks={callbacks} />;\n }\n}\n\nfunction usePortalChangePasswordDemo(props: PortalChangePassword) {\n const [open, setOpen] = useState(false);\n\n return deepmerge(\n {\n states: {\n open,\n error: \"\",\n content: {\n modalChangePasswordHeader: props.modalChangePasswordHeader,\n cancelText: props.cancelText,\n changePasswordButtonText: props.changePasswordButtonText,\n passwordFieldLabel: props.passwordFieldLabel,\n confirmPasswordFieldLabel: props.confirmPasswordFieldLabel,\n successMessage: props.successMessage,\n portalChangePasswordHeader: props.portalChangePasswordHeader,\n portalChangePasswordButtonText: props.portalChangePasswordButtonText,\n meetsRequirementsText: props.meetsRequirementsText,\n doesNotMeetRequirementsText: props.doesNotMeetRequirementsText,\n minErrorText: props.minErrorText,\n uppercaseErrorText: props.uppercaseErrorText,\n lowercaseErrorText: props.lowercaseErrorText,\n hasErrorText: props.hasErrorText,\n },\n },\n callbacks: {\n setOpen: (update) => setOpen(update),\n submit: (e) => console.log(\"Submit\", e),\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Prop, State } from \"@stencil/core\";\nimport { getProps } from \"../../utils/utils\";\nimport { PortalFooterView } from \"./sqm-portal-footer-view\";\n\n/**\n * @uiName Footer\n * @validParents [\"div\",\"sqm-brand\",\"sqm-portal-container\", \"sqm-divided-layout\", \"sqm-referral-card\", \"sqm-instant-access-registration\", \"sqm-portal-frame\", \"sqm-referred-registration\"]\n */\n@Component({\n tag: \"sqm-portal-footer\",\n assetsDirs: [\"../../assets\"],\n shadow: true,\n})\nexport class PortalFooter {\n @State()\n ignored = true;\n\n /**\n * @uiName Hide support message\n */\n @Prop() hideSupportText: boolean = false;\n /**\n * @uiName Support email\n */\n @Prop() supportEmail: string = \"support@example.com\";\n /**\n * @uiName Support message\n * @uiWidget textArea\n */\n @Prop() supportText: string = \"For program support, contact {email}\";\n /**\n * @uiName Terms and conditions link\n */\n @Prop() termsLink?: string;\n /**\n * @uiName Terms and conditions text\n */\n @Prop() termsText?: string;\n /**\n * @uiName FAQ link\n */\n @Prop() faqLink?: string;\n /**\n * @uiName FAQ text\n */\n @Prop() faqText?: string;\n /**\n * @uiName Hide powered by Impact.com\n * @requiredFeatures [\"CUSTOM_BRANDING\"]\n * @featureTooltip <div>Integrate your brand identity further by removing impact.com’s branding from your widget. Contact <a href=\"mailto:saasquatch-support%40impact.com?subject=Next steps for Custom Branding feature&body=Hi Support Team, %0D%0A%0D%0A I am interested in learning more about how Custom Branding can support the growth of our referral program. Please connect me with a program strategy manager to discuss this feature further, and determine the next steps.%0D%0A%0D%0A%0D%0AThank you,%0D%0A[Add your name here]\">Support</a> to upgrade your plan</div>\n */\n @Prop() hidePoweredBy: boolean = false;\n /**\n * @uiName Powered By link\n */\n @Prop() poweredByLink: string = \"https://impact.com/advocate/\";\n /**\n * @uiName Top padding\n * @uiGroup Padding\n * @uiEnum [\"none\", \"xxx-small\", \"xx-small\", \"x-small\", \"small\", \"medium\", \"large\", \"x-large\", \"xx-large\", \"xxx-large\", \"xxxx-large\"]\n * @uiEnumNames [\"None\", \"XXX-Small\", \"XX-Small\", \"X-Small\", \"Small\", \"Medium\", \"Large\", \"X-Large\", \"XX-Large\", \"XXX-Large\", \"XXXX-Large\"]\n */\n @Prop() paddingTop: string = \"large\";\n /**\n * @uiName Right padding\n * @uiGroup Padding\n * @uiEnum [\"none\", \"xxx-small\", \"xx-small\", \"x-small\", \"small\", \"medium\", \"large\", \"x-large\", \"xx-large\", \"xxx-large\", \"xxxx-large\"]\n * @uiEnumNames [\"None\", \"XXX-Small\", \"XX-Small\", \"X-Small\", \"Small\", \"Medium\", \"Large\", \"X-Large\", \"XX-Large\", \"XXX-Large\", \"XXXX-Large\"]\n */\n @Prop() paddingRight: string = \"large\";\n /**\n * @uiName Bottom padding\n * @uiGroup Padding\n * @uiEnum [\"none\", \"xxx-small\", \"xx-small\", \"x-small\", \"small\", \"medium\", \"large\", \"x-large\", \"xx-large\", \"xxx-large\", \"xxxx-large\"]\n * @uiEnumNames [\"None\", \"XXX-Small\", \"XX-Small\", \"X-Small\", \"Small\", \"Medium\", \"Large\", \"X-Large\", \"XX-Large\", \"XXX-Large\", \"XXXX-Large\"]\n */\n @Prop() paddingBottom: string = \"large\";\n /**\n * @uiName Left padding\n * @uiGroup Padding\n * @uiEnum [\"none\", \"xxx-small\", \"xx-small\", \"x-small\", \"small\", \"medium\", \"large\", \"x-large\", \"xx-large\", \"xxx-large\", \"xxxx-large\"]\n * @uiEnumNames [\"None\", \"XXX-Small\", \"XX-Small\", \"X-Small\", \"Small\", \"Medium\", \"Large\", \"X-Large\", \"XX-Large\", \"XXX-Large\", \"XXXX-Large\"]\n */\n @Prop() paddingLeft: string = \"large\";\n\n constructor() {\n withHooks(this);\n }\n\n disconnectedCallback() {}\n\n render() {\n return <PortalFooterView {...getProps(this)} />;\n }\n}\n","import jsonpointer from \"jsonpointer\";\nimport { useEffect, useState } from \"@saasquatch/universal-hooks\";\nimport {\n navigation,\n useRequestPasswordResetEmailMutation,\n} from \"@saasquatch/component-boilerplate\";\nimport { PortalForgotPassword } from \"./sqm-portal-forgot-password\";\n\nexport function usePortalForgotPassword(props: PortalForgotPassword) {\n const [success, setSuccess] = useState(false);\n const [error, setError] = useState(\"\");\n const [request, { loading, data, errors }] =\n useRequestPasswordResetEmailMutation();\n\n const urlParams = new URLSearchParams(navigation.location.search);\n const nextPage = urlParams.get(\"nextPage\");\n\n const submit = async (event: any) => {\n setError(\"\");\n setSuccess(false);\n let formData = event.detail.formData;\n\n formData?.forEach((value: any, key: string) => {\n jsonpointer.set(formData, key, value);\n });\n const urlParams = nextPage ? { nextPage } : null;\n const redirectPath = props.redirectPath;\n const variables = { email: formData.email, urlParams, redirectPath };\n\n const result = await request(variables);\n if (result instanceof Error) {\n if (result.message) setError(props.networkErrorMessage);\n return;\n }\n if (result.requestManagedIdentityPasswordResetEmail?.success) {\n setSuccess(true);\n }\n };\n\n return {\n states: {\n loading,\n error:\n errors?.response?.errors?.[0]?.extensions?.message ||\n errors?.response?.errors?.[0]?.message ||\n error,\n success,\n loginPath: props.loginPath,\n headerText: props.headerText,\n loginText: props.loginText,\n },\n callbacks: {\n submit,\n },\n };\n}\n","import { isDemo, navigation } from \"@saasquatch/component-boilerplate\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Prop, State } from \"@stencil/core\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../global/demo\";\nimport {\n PortalForgotPasswordView,\n PortalForgotPasswordViewProps,\n} from \"./sqm-portal-forgot-password-view\";\nimport { usePortalForgotPassword } from \"./usePortalForgotPassword\";\n\n/**\n * @uiName Microsite Forgot Password\n */\n@Component({\n tag: \"sqm-portal-forgot-password\",\n shadow: true,\n})\nexport class PortalForgotPassword {\n @State()\n ignored = true;\n\n /**\n * Redirect participants to this page after they verify their email.\n *\n * @uiName Email redirect\n * @uiWidget pageSelect\n */\n @Prop()\n redirectPath: string = \"/resetPassword\";\n\n /**\n * @uiName Email field label\n */\n @Prop()\n emailLabel: string = \"Email\";\n\n /**\n * @uiName Password reset button text\n */\n @Prop()\n submitLabel: string = \"Request Password Reset\";\n\n /**\n * @uiName Login redirect path\n * @uiWidget pageSelect\n */\n @Prop() loginPath: string = \"/login\";\n\n /**\n * @uiName Header text\n * @uiWidget textArea\n */\n @Prop() headerText: string =\n \"Enter your email below to receive a password reset link.\";\n\n /**\n * @uiName Sign in link text\n */\n @Prop() loginText: string = \"Sign In\";\n\n /**\n * Displayed when the forgot password action fails due to a network error. The participant can try refreshing the page.\n * @uiName Network error message\n */\n @Prop() networkErrorMessage: string =\n \"An error occurred while loading this page. Please refresh the page.\";\n\n /**\n * @uiName Email verification sent text\n */\n @Prop() successAlertText: string =\n \"If an account with that email exists, a password reset email will be sent.\";\n\n /**\n * @uiName Background color\n * @uiWidget color\n */\n @Prop() backgroundColor: string = \"var(--sqm-portal-background, #ffffff)\";\n\n /**\n * @uiName Border radius\n * @uiWidget number\n */\n @Prop() borderRadius: string = \"var(--sqm-border-radius-normal, 8px)\";\n\n /**\n * @uiName Border style\n * @uiWidget textArea\n */\n @Prop() border: string =\n \"var(--sqm-border-thickness, 1px) solid var(--sqm-border-color, #eaeaea)\";\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<PortalForgotPasswordViewProps>;\n\n constructor() {\n withHooks(this);\n }\n\n disconnectedCallback() {}\n\n render() {\n const { states, callbacks } = isDemo()\n ? usePortalForgotPasswordDemo(this)\n : usePortalForgotPassword(this);\n\n const content = {\n messageSlot: <slot name=\"messageSlot\">{this.headerText}</slot>,\n emailLabel: this.emailLabel,\n submitLabel: this.submitLabel,\n successAlertText: this.successAlertText,\n loginText: this.loginText,\n backgroundColor: this.backgroundColor,\n borderRadius: this.borderRadius,\n border: this.border,\n };\n\n return (\n <PortalForgotPasswordView\n states={states}\n callbacks={callbacks}\n content={content}\n />\n );\n }\n}\nfunction usePortalForgotPasswordDemo(\n props: PortalForgotPassword\n): Partial<PortalForgotPasswordViewProps> {\n return deepmerge(\n {\n states: { error: \"\", loading: false, success: false },\n callbacks: {\n submit: async (_event) => {},\n },\n content: {\n secondaryButton: (\n <sl-button\n type=\"secondary\"\n exportparts=\"base: secondarybutton-base\"\n disabled={false}\n onClick={() => navigation.push(props.loginPath)}\n >\n {props.loginText}\n </sl-button>\n ),\n messageSlot: <span>{props.headerText}</span>,\n emailLabel: props.emailLabel,\n submitLabel: props.submitLabel,\n successAlertText: props.successAlertText,\n loginText: props.loginText,\n backgroundColor: props.backgroundColor,\n borderRadius: props.borderRadius,\n border: props.border,\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import { useTick } from \"@saasquatch/component-boilerplate\";\nimport { VNode } from \"@stencil/core\";\nimport { PortalFrameViewProps } from \"./sqm-portal-frame-view\";\nimport { PortalFrame } from \"./sqm-portal-frame\";\n\nexport function usePortalFrame(\n footerContent: VNode,\n headerContent: VNode,\n props: PortalFrame\n): PortalFrameViewProps {\n const [, rerender] = useTick();\n\n return {\n data: {\n footer: footerContent,\n header: headerContent,\n },\n callbacks: {\n rerender,\n },\n backgroundColor: props.backgroundColor,\n border: props.border,\n headerAndFooterBackgroundColor: props.headerAndFooterBackgroundColor,\n };\n}\n","import { Component, h, Prop, State, VNode } from \"@stencil/core\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { isDemo } from \"@saasquatch/component-boilerplate\";\nimport { PortalFrameView, PortalFrameViewProps } from \"./sqm-portal-frame-view\";\nimport { usePortalFrame } from \"./usePortalFrame\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../global/demo\";\n\n/**\n * @uiName Microsite Frame\n * @slots [{\"name\":\"header\",\"title\":\"Header Content\"},{\"name\":\"footer\",\"title\":\"Footer Content\"},{\"name\":\"\",\"title\":\"Body Content\"}]\n */\n@Component({\n tag: \"sqm-portal-frame\",\n shadow: true,\n})\nexport class PortalFrame {\n @State()\n ignored = true;\n\n /**\n * @undocumented\n */\n @Prop() notFullScreen?: boolean = false;\n\n /**\n * @uiName Background color\n * @uiWidget color\n * @uiType string\n */\n @Prop() backgroundColor: string = \"var(--sqm-portal-background, #fff)\";\n\n /**\n * Borders placed to seperate the header and footer from the body content.\n * @uiName Border\n * @uiType string\n */\n @Prop() border: string =\n \"var(--sqm-border-thickness, 1px) solid var(--sqm-border-color, #eaeaea)\";\n\n /**\n * Background color for the header and footer.\n * @uiName Header and Footer Background Color\n * @uiWidget color\n * @uiType string\n */\n @Prop() headerAndFooterBackgroundColor: string =\n \"var(--sqm-portal-background, #fff)\";\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<PortalFrameViewProps>;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n const footerContent = <slot name=\"footer\" />;\n const headerContent = <slot name=\"header\" />;\n const props = isDemo()\n ? usePortalFrameDemo(footerContent, headerContent, this)\n : usePortalFrame(footerContent, headerContent, this);\n return (\n <PortalFrameView {...props}>\n <slot />\n </PortalFrameView>\n );\n }\n}\n\nfunction usePortalFrameDemo(\n footerContent: VNode,\n headerContent: VNode,\n props: PortalFrame\n): PortalFrameViewProps {\n return deepmerge(\n {\n notFullScreen: true,\n backgroundColor: props.backgroundColor,\n headerAndFooterBackgroundColor: props.headerAndFooterBackgroundColor,\n border: props.border,\n data: {\n footer: footerContent ? (\n footerContent\n ) : (\n <span>example@example.com</span>\n ),\n header: headerContent ? (\n headerContent\n ) : (\n <div style={{ display: \"flex\", flexDirection: \"column\" }}>\n <span\n style={{\n fontSize: \"var(--sl-font-size-large)\",\n fontWeight: \"bold\",\n }}\n >\n Portal Header\n </span>\n <span style={{ fontSize: \"var(--sl-font-size-small)\" }}>\n A description for the portal\n </span>\n </div>\n ),\n },\n callbacks: {\n rerender: () => {},\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import { isDemo, navigation } from \"@saasquatch/component-boilerplate\";\nimport { useState, withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Prop, State } from \"@stencil/core\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../global/demo\";\nimport { PortalLoginView, PortalLoginViewProps } from \"./sqm-portal-login-view\";\nimport { usePortalLogin } from \"./usePortalLogin\";\nimport { createStyleSheet } from \"../../styling/JSS\";\n\n/**\n * @uiName Microsite Login\n * @validParents [\"sqm-portal-container\",\"div\",\"sqm-divided-layout\",\"sqm-brand\", \"template\"]\n */\n@Component({\n tag: \"sqm-portal-login\",\n shadow: true,\n})\nexport class PortalLogin {\n @State()\n ignored = true;\n\n /**\n * Redirect participants to this page after they successfully login.\n *\n * @uiName Login redirect\n * @uiWidget pageSelect\n */\n @Prop()\n nextPage: string = \"/\";\n\n /**\n * @uiName Email field label\n */\n @Prop()\n emailLabel: string = \"Email\";\n\n /**\n * @uiName Password field label\n */\n @Prop()\n passwordLabel: string = \"Password\";\n\n /**\n * @uiName Submit button text\n */\n @Prop()\n submitLabel: string = \"Sign In\";\n\n /**\n * Redirect participants to this page to reset their password\n * @uiName Forgot password redirect\n * @uiWidget pageSelect\n */\n @Prop() forgotPasswordPath: string = \"/forgotPassword\";\n\n /**\n * @uiName Forgot password text\n */\n @Prop()\n forgotPasswordLabel: string = \"Forgot Password?\";\n\n /**\n * @uiName Register button text\n */\n @Prop()\n registerLabel: string = \"Register\";\n\n /**\n * Redirect participants to this page to start registration.\n * @uiName Register button redirect\n * @uiWidget pageSelect\n */\n @Prop() registerPath: string = \"/register\";\n\n /**\n * @uiName Heading label\n * @uiWidget textArea\n */\n @Prop() pageLabel: string = \"Sign in to your account\";\n\n /**\n * Displayed when the login fails due to a network error. The participant can try refreshing the page.\n * @uiName Network error message\n */\n @Prop() networkErrorMessage: string =\n \"An error occurred while logging you in. Please refresh the page and try again.\";\n\n /**\n * @uiName Register CTA\n */\n @Prop() registerCTA: string = \"Don't have an account?\";\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<PortalLoginViewProps>;\n\n constructor() {\n withHooks(this);\n }\n\n disconnectedCallback() {}\n\n render() {\n const { states, callbacks } = isDemo()\n ? useLoginDemo(this)\n : usePortalLogin(this);\n\n const styles = {\n RegisterButton: {\n \"&::part(label)\": {\n padding: \"0\",\n },\n },\n };\n\n const sheet = createStyleSheet(styles);\n const styleString = sheet.toString();\n\n const content = {\n forgotPasswordButton: (\n <slot name=\"forgotPassword\">\n <a onClick={() => navigation.push(states.forgotPasswordPath)}>\n {this.forgotPasswordLabel}\n </a>\n </slot>\n ),\n googleButton: null,\n secondaryButton: (\n <slot name=\"secondaryButton\">\n <style>{styleString}</style>\n <sl-button\n exportparts=\"base: secondarybutton-base\"\n type=\"text\"\n disabled={states.loading}\n onClick={() => navigation.push(states.registerPath)}\n >\n {this.registerLabel}\n </sl-button>\n </slot>\n ),\n emailLabel: this.emailLabel,\n passwordLabel: this.passwordLabel,\n submitLabel: this.submitLabel,\n pageLabel: this.pageLabel,\n };\n return (\n <PortalLoginView\n states={states}\n callbacks={callbacks}\n content={content}\n ></PortalLoginView>\n );\n }\n}\nfunction useLoginDemo(props: PortalLogin): Partial<PortalLoginViewProps> {\n return deepmerge(\n {\n states: {\n error: \"\",\n loading: false,\n forgotPasswordPath: \"/forgotPassword\",\n registerPath: \"/register\",\n showLoginForm: \"manual\",\n },\n callbacks: {\n googleSubmit: async () => {\n console.log(\"google submit\");\n },\n submit: async (_event) => {\n console.log(\"submit\");\n },\n },\n content: {\n googleButton: null,\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import jsonpointer from \"jsonpointer\";\nimport { useCallback, useEffect, useRef } from \"@saasquatch/universal-hooks\";\nimport {\n navigation,\n useRegisterWithEmailAndPasswordMutation,\n} from \"@saasquatch/component-boilerplate\";\nimport { PortalRegister } from \"./sqm-portal-register\";\nimport { AsYouType } from \"libphonenumber-js\";\nimport { useRegistrationFormState } from \"../sqm-portal-registration-form/useRegistrationFormState\";\n\n// returns either error message if invalid or undefined if valid\nexport type ValidationErrorFunction = (input: {\n control;\n key: string;\n value;\n}) => string | undefined;\n\nexport function usePortalRegister(props: PortalRegister) {\n const formRef = useRef<HTMLFormElement>(null);\n const { registrationFormState, setRegistrationFormState } =\n useRegistrationFormState({});\n const [request, { loading, errors, data }] =\n useRegisterWithEmailAndPasswordMutation();\n\n useEffect(() => {\n if (!formRef.current) return;\n const form = formRef.current;\n form.addEventListener(\"sl-input\", inputFunction);\n return () => {\n form.removeEventListener(\"sl-input\", inputFunction);\n };\n }, [formRef.current]);\n\n const submit = async (event: any) => {\n let formControls = event.target.getFormControls();\n\n let formData: Record<string, any> = {};\n let validationErrors: Record<string, string> = {};\n formControls?.forEach((control) => {\n if (!control.name) return;\n\n const key = control.name;\n const value = control.value;\n\n jsonpointer.set(formData, key, value);\n // required validation\n if (control.required && !value) {\n jsonpointer.set(validationErrors, key, props.requiredFieldErrorMessage);\n }\n // custom validation\n if (typeof control.validationError === \"function\") {\n const validate = control.validationError as ValidationErrorFunction;\n const validationError = validate({ control, key, value });\n if (validationError)\n jsonpointer.set(validationErrors, key, validationError);\n }\n });\n\n if (\n (props.confirmPassword || formData.confirmPassword) &&\n formData.password !== formData.confirmPassword\n ) {\n validationErrors = {\n ...validationErrors,\n confirmPassword: props.passwordMismatchErrorMessage,\n };\n }\n\n if (Object.keys(validationErrors).length) {\n setRegistrationFormState({ loading: false, error: \"\", validationErrors });\n // early return for validation errors\n return;\n }\n\n setRegistrationFormState({\n loading: true,\n error: \"\",\n validationErrors: {},\n });\n const { email, password } = formData;\n delete formData.email;\n delete formData.password;\n delete formData.confirmPassword;\n formData = { ...formData };\n const redirectPath = props.redirectPath;\n const variables = {\n email,\n password,\n formData,\n redirectPath,\n };\n try {\n const result = await request(variables);\n if (result instanceof Error) {\n throw result;\n }\n setRegistrationFormState({\n loading: false,\n error: \"\",\n validationErrors: {},\n });\n if (result.registerManagedIdentityWithEmailAndPassword?.token) {\n navigation.push(props.nextPage);\n }\n } catch (error) {\n setRegistrationFormState({\n loading: false,\n error: props.networkErrorMessage,\n validationErrors: {},\n });\n }\n };\n\n const inputFunction = useCallback((e) => {\n const name = e.target?.type?.toLowerCase();\n if (name !== \"tel\") return;\n const asYouType = new AsYouType(\"US\");\n e.target.value = asYouType.input(e.target.value);\n }, []);\n\n let errorMessage = \"\";\n if (errors?.response?.[\"error\"]) {\n errorMessage = props.networkErrorMessage;\n } else if (errors?.message && !errors?.response?.errors.length) {\n errorMessage = props.networkErrorMessage;\n } else {\n errorMessage =\n errors?.response?.errors?.[0]?.extensions?.message ||\n errors?.response?.errors?.[0]?.message ||\n registrationFormState?.error;\n }\n return {\n states: {\n loading,\n error: errorMessage,\n registrationFormState,\n confirmPassword: props.confirmPassword,\n hideInputs: props.hideInputs,\n loginPath: props.loginPath,\n disablePasswordValidation: props.disablePasswordValidation,\n },\n callbacks: {\n submit,\n inputFunction,\n },\n refs: {\n formRef,\n },\n };\n}\n","import { isDemo, navigation } from \"@saasquatch/component-boilerplate\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Prop, State } from \"@stencil/core\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../global/demo\";\nimport {\n PortalRegisterView,\n PortalRegisterViewProps,\n} from \"./sqm-portal-register-view\";\nimport { usePortalRegister } from \"./usePortalRegister\";\n\n/**\n * @uiName Microsite Registration\n * @canvasRenderer always-replace\n * @slots [{\"name\":\"formData\",\"title\":\"Additional Fields\"},{\"name\":\"terms\",\"title\":\"Terms And Conditions Fields\"}]\n */\n@Component({\n tag: \"sqm-portal-register\",\n shadow: false,\n})\nexport class PortalRegister {\n @State()\n ignored = false;\n\n /**\n * Redirect participants to this page from their verification email\n *\n * @uiName Registration redirect\n * @uiWidget pageSelect\n */\n @Prop()\n nextPage: string = \"/\";\n\n /**\n * The page that participants are redirected to from the verification email.\n *\n * @uiName Email verification redirect\n * @uiWidget pageSelect\n */\n @Prop()\n redirectPath: string = \"/verifyEmail\";\n\n /**\n * @uiName Email field label\n */\n @Prop()\n emailLabel: string = \"Email\";\n\n /**\n * @uiName Password field label\n */\n @Prop()\n passwordLabel: string = \"Password\";\n\n /**\n * @uiName Submit button text\n */\n @Prop()\n submitLabel: string = \"Register\";\n\n /**\n * @uiName Login button text\n */\n @Prop()\n loginLabel: string = \"Sign in\";\n\n /**\n * @uiName Confirm password field label\n */\n @Prop() confirmPasswordLabel: string = \"Confirm Password\";\n\n /**\n * @uiName Show confirm password field\n */\n @Prop()\n confirmPassword: boolean = false;\n\n /**\n * @uiName Disable password validation\n */\n @Prop()\n disablePasswordValidation: boolean = false;\n\n /**\n * Hides the email and password fields. Note: If you hide default inputs, you must add additional input fields. They must have the input name attributes \"email\" and \"password\" for this form to succeed.\n *\n * @uiName Hide default fields\n */\n @Prop()\n hideInputs: boolean = false;\n\n /**\n * @uiName Header text\n */\n @Prop()\n pageLabel: string = \"Register\";\n\n /**\n * Redirect participants to this page after clicking the login button.\n *\n * @uiName Login redirect\n * @uiWidget pageSelect\n */\n @Prop() loginPath: string = \"/login\";\n\n /**\n * The message to be displayed when a required field is not filled.\n *\n * @uiName Required field message\n * @uiWidget textArea\n */\n @Prop() requiredFieldErrorMessage: string = \"Cannot be empty\";\n\n /**\n * The message to be displayed when a the form submission fails unexpectedly.\n *\n * @uiName Network error message\n * @uiWidget textArea\n */\n @Prop() networkErrorMessage: string = \"Network request failed.\";\n\n /**\n * The message to be displayed when password inputs do not match.\n *\n * @uiName Password mismatch message\n * @uiWidget textArea\n */\n @Prop() passwordMismatchErrorMessage: string = \"Passwords do not match.\";\n\n /**\n * The message to be displayed when the email used is invalid or blocked.\n *\n * @uiName Invalid email message\n * @uiWidget textArea\n */\n @Prop() invalidEmailErrorMessage: string = \"Must be a valid email address\";\n\n /**\n * @uiName Password requirement met\n */\n @Prop() meetsRequirementsText: string = \"Password has met all requirements\";\n\n /**\n * @uiName Password requirement failed\n */\n @Prop() doesNotMeetRequirementsText: string =\n \"Password must meet the following requirements:\";\n\n /**\n * @uiName Minimum length text\n */\n @Prop() minErrorText: string = \"be a minimum of 8 characters\";\n\n /**\n * @uiName Missing uppercase text\n */\n @Prop() uppercaseErrorText: string = \"contain at least 1 uppercase character\";\n\n /**\n * @uiName Missing lowercase text\n */\n @Prop() lowercaseErrorText: string = \"contain at least 1 lowercase character\";\n\n /**\n * @uiName Missing number or symbol text\n */\n @Prop() hasErrorText: string = \"contain at least 1 number or symbol\";\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<PortalRegisterViewProps>;\n\n constructor() {\n withHooks(this);\n }\n\n disconnectedCallback() {}\n\n render() {\n const { states, callbacks, refs } = isDemo()\n ? useRegisterDemo(this)\n : usePortalRegister(this);\n const content = {\n formData: <slot name=\"formData\"></slot>,\n secondaryButton: (\n <slot name=\"secondaryButton\">\n <sl-button\n type=\"text\"\n disabled={states.loading}\n onClick={() => navigation.push(states.loginPath)}\n >\n {this.loginLabel}\n </sl-button>\n </slot>\n ),\n terms: <slot name=\"terms\"></slot>,\n emailLabel: this.emailLabel,\n passwordLabel: this.passwordLabel,\n submitLabel: this.submitLabel,\n pageLabel: this.pageLabel,\n confirmPasswordLabel: this.confirmPasswordLabel,\n invalidEmailErrorMessage: this.invalidEmailErrorMessage,\n requiredFieldErrorMessage: this.requiredFieldErrorMessage,\n meetsRequirementsText: this.meetsRequirementsText,\n doesNotMeetRequirementsText: this.doesNotMeetRequirementsText,\n minErrorText: this.minErrorText,\n uppercaseErrorText: this.uppercaseErrorText,\n lowercaseErrorText: this.lowercaseErrorText,\n hasErrorText: this.hasErrorText,\n };\n\n return (\n <PortalRegisterView\n states={states}\n callbacks={callbacks}\n content={content}\n refs={refs}\n ></PortalRegisterView>\n );\n }\n}\nfunction useRegisterDemo(\n props: PortalRegister\n): Pick<PortalRegisterViewProps, \"states\" | \"callbacks\" | \"refs\"> {\n return deepmerge(\n {\n states: {\n error: \"\",\n loading: false,\n confirmPassword: props.confirmPassword,\n hideInputs: props.hideInputs || false,\n customPasswordField: false,\n loginPath: props.loginPath,\n disablePasswordValidation: props.disablePasswordValidation,\n },\n callbacks: {\n submit: async (_event) => {\n console.log(\"submit\");\n },\n inputFunction: () => {},\n },\n refs: {\n formRef: {},\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import { h, VNode } from \"@stencil/core\";\n\nimport { createStyleSheet } from \"../../styling/JSS\";\n\nexport interface ProgramExplainerViewProps {\n header: string;\n textColor: string;\n backgroundColor: string;\n}\nexport function ProgramExplainerView(\n props: ProgramExplainerViewProps,\n children: VNode\n) {\n const style = {\n Container: {\n color: props.textColor || \"var(--sqm-text)\",\n background: props.backgroundColor || \"\",\n },\n Header: {\n fontSize: \"var(--sl-font-size-x-large)\",\n fontWeight: \"var(--sl-font-weight-bold)\",\n lineHeight: \"var(--sl-line-height-dense)\",\n marginBottom: \"var(--sl-spacing-large)\",\n textAlign: \"center\",\n },\n Grid: {\n display: \"flex\",\n flexDirection: \"row\",\n gap: \"var(--sl-spacing-large)\",\n \"@media (max-width: 499px)\": {\n flexDirection: \"column\",\n },\n },\n };\n\n const sheet = createStyleSheet(style);\n const styleString = sheet.toString();\n\n const vanillaStyle = `\n ::slotted(*){\n display: flex;\n width: 100%;\n }\n @media (max-width: 499px) {\n ::slotted(*){\n display: block;\n }\n }`;\n\n return (\n <div class={sheet.classes.Container} part=\"sqm-base\">\n <style type=\"text/css\">\n {styleString}\n {vanillaStyle}\n </style>\n <div class={sheet.classes.Header}>\n <div class={sheet.classes.Header} part=\"sqm-header\">\n {props.header}\n </div>\n </div>\n <div class={sheet.classes.Grid} part=\"sqm-grid-container\">\n {children}\n </div>\n </div>\n );\n}\n","import { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Prop, State } from \"@stencil/core\";\nimport { getProps } from \"../../utils/utils\";\nimport { ProgramExplainerView } from \"./sqm-program-explainer-view\";\n\n/**\n * @uiName Program Explainer\n * @validParents [\"sqm-portal-container\",\"div\",\"sqm-divided-layout\",\"sqm-brand\",\"template\",\"sqb-program-section\",\"sqb-conditional-section\"]\n * @validChildren [\"sqm-program-explainer-step\"]\n * @exampleGroup Common Components\n * @slots [{\"name\":\"\", \"title\":\"Explainer\", \"validChildren\":[\"sqm-program-explainer-step\"]}]\n * @example Program Explainer - <sqm-program-explainer header=\"How it works\"><sqm-program-explainer-step description=\"Explore and use our product while earning points in the process!\" header=\"Earn points\" icon=\"cash-stack\"></sqm-program-explainer-step><sqm-program-explainer-step description=\"Use your points and redeem rewards like one free month of Enterprise or a visa giftcard\" header=\"Redeem rewards\" icon=\"people\"></sqm-program-explainer-step></sqm-program-explainer>\n */\n@Component({\n tag: \"sqm-program-explainer\",\n shadow: true,\n})\nexport class ProgramExplainer {\n @State()\n ignored = true;\n\n /**\n * @uiName Header text\n */\n @Prop() header: string;\n\n /**\n * @uiName Header text color\n * @uiWidget color\n * @format color\n */\n @Prop() textColor: string;\n\n /**\n * @uiName Header background color\n * @uiWidget color\n * @format color\n */\n @Prop() backgroundColor: string;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n return (\n <ProgramExplainerView {...getProps(this)}>\n <slot />\n </ProgramExplainerView>\n );\n }\n}\n","import { h } from \"@stencil/core\";\nimport { createStyleSheet } from \"../../styling/JSS\";\n\nexport interface ProgramExplainerStepViewProps {\n header: string;\n description: string;\n textColor?: string;\n backgroundColor?: string;\n borderRadius?: number;\n iconBackgroundColor?: string;\n iconColor?: string;\n imageUrl?: string;\n icon?: string;\n}\n\nexport function ProgramExplainerStepView(props: ProgramExplainerStepViewProps) {\n const style = {\n Container: {\n display: \"flex\",\n flexDirection: \"column\",\n width: \"100%\",\n padding: \"var(--sl-spacing-x-large)\",\n lineHeight: \"var(--sl-line-height-dense)\",\n borderRadius: props.borderRadius\n ? `${props.borderRadius}px`\n : \"var(--sqm-border-radius-normal)\",\n color: props.textColor || \"var(--sqm-text)\",\n background: props.backgroundColor || \"var(--sqm-accent-color-background)\",\n \"@media (max-width: 499px)\": {\n flexDirection: \"row\",\n width: \"auto\",\n paddingBottom: \"var(--sl-spacing-large)\",\n },\n },\n Text: {\n \"@media (max-width: 499px)\": {\n marginLeft: \"var(--sl-spacing-large)\",\n },\n },\n Header: {\n color: props.textColor || \"var(--sqm-text)\",\n fontSize: \"var(--sl-font-size-large)\",\n fontWeight: \"var(--sl-font-weight-bold)\",\n marginTop: \"var(--sl-spacing-x-large)\",\n \"@media (max-width: 499px)\": {\n margin: \"0\",\n },\n },\n Description: {\n color: props.textColor || \"var(--sqm-text)\",\n fontSize: \"var(--sl-font-size-medium)\",\n marginTop: \"var(--sl-spacing-small)\",\n \"@media (max-width: 499px)\": {\n marginTop: \"var(--sl-spacing-x-small)\",\n },\n },\n Media: {\n width: \"64px\",\n height: \"64px\",\n borderRadius: \"100%\",\n objectFit: \"cover\",\n userSelect: \"none\",\n background: props.iconBackgroundColor || \"var(--sl-color-white)\",\n color: props.iconColor || \"var(--sqm-accent-color-icon)\",\n fontSize: \"26px\",\n textAlign: \"center\",\n lineHeight: \"72px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n };\n\n const sheet = createStyleSheet(style);\n const styleString = sheet.toString();\n\n const vanillaStyle = `\n :host{\n display: flex;\n width: 100%;\n }\n @media (max-width: 499px) {\n :host{\n display: block;\n }\n }`;\n\n return (\n <div class={sheet.classes.Container} part=\"sqm-base\">\n <style type=\"text/css\">{styleString}</style>\n <div>\n {props.imageUrl ? (\n <img\n loading=\"lazy\"\n class={sheet.classes.Media}\n data-src={props.imageUrl}\n part=\"sqm-media\"\n />\n ) : (\n <div class={sheet.classes.Media} part=\"sqm-media\">\n <sl-icon name={props.icon} />\n </div>\n )}\n </div>\n <div class={sheet.classes.Text}>\n <div class={sheet.classes.Header} part=\"sqm-header\">\n {props.header}\n </div>\n <div class={sheet.classes.Description} part=\"sqm-description\">\n {props.description}\n </div>\n </div>\n </div>\n );\n}\n","import { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Prop } from \"@stencil/core\";\nimport { getProps } from \"../../utils/utils\";\nimport { ProgramExplainerStepView } from \"./sqm-program-explainer-step-view\";\n\n/**\n * @uiName Program Explainer Step\n * @exampleGroup Common Components\n * @example Program Explainer Step - <sqm-program-explainer-step description=\"Explore and use our product while earning points in the process!\" header=\"Earn points\" icon=\"cash-stack\"></sqm-program-explainer-step>\n * @validParents [\"sqm-program-explainer\"]\n */\n@Component({\n tag: \"sqm-program-explainer-step\",\n shadow: true,\n})\nexport class ProgramExplainerStep {\n /**\n * @uiName Title\n */\n @Prop() header: string;\n\n /**\n * @uiName Description\n * @uiWidget textArea\n */\n @Prop() description: string;\n\n /**\n * @uiName Text color\n * @uiWidget color\n * @format color\n */\n @Prop() textColor?: string;\n\n /**\n * @uiName Background color\n * @uiWidget color\n * @format color\n */\n @Prop() backgroundColor?: string;\n\n /**\n * Amount in pixels\n * @uiName Border radius\n * @type number\n */\n @Prop() borderRadius?: number;\n\n /**\n * @uiName Icon Background color\n * @uiWidget color\n * @format color\n */\n @Prop() iconBackgroundColor?: string;\n\n /**\n * @uiName Icon color\n * @uiWidget color\n * @format color\n */\n @Prop() iconColor?: string;\n\n /**\n * Displayed in place of an icon\n *\n * @uiName Image URL\n * @uiWidget imageUpload\n * @format url\n */\n @Prop() imageUrl?: string;\n\n /**\n * Full list of valid icon names available in the [Shoelace Icon Library](https://shoelace.style/components/icon). This value is case sensitive.\n *\n * @uiName Icon\n */\n @Prop() icon?: string;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n return <ProgramExplainerStepView {...getProps(this)} />;\n }\n}\n","import {\n useProgramId,\n useTick,\n useHost,\n} from \"@saasquatch/component-boilerplate\";\nimport { useRef, useEffect } from \"@saasquatch/universal-hooks\";\nimport { SlMenu, SlMenuItem } from \"@saasquatch/shoelace\";\nimport { ProgramMenu } from \"./sqm-program-menu\";\nimport debugFn from \"debug\";\n\nconst debug = debugFn(\"sq:useProgramMenu\");\n\ntype SelectEvent = Event & { detail?: { item: SlMenuItem } };\n\nconst UPDATE_PROGRAM_EVENT = \"sq:update-program-id\";\n\nexport function useProgramMenu(props: ProgramMenu) {\n const programId = useProgramId();\n const host = useHost();\n debug({ programId, props });\n\n const ref = useRef<SlMenu>();\n const [, rerender] = useTick();\n\n useEffect(() => {\n ref.current?.addEventListener(\"sl-select\", (e: SelectEvent) => {\n const programId = e.detail.item.value;\n // setProgramId(programId);\n host.dispatchEvent(\n new CustomEvent(UPDATE_PROGRAM_EVENT, {\n detail: programId,\n bubbles: true,\n composed: true,\n })\n );\n });\n }, [ref.current]);\n\n return {\n data: {\n programId,\n },\n callbacks: {\n rerender,\n },\n ref,\n };\n}\n","import { Component, h, Host, State } from \"@stencil/core\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { useProgramMenu } from \"./useProgramMenu\";\nimport { getProps } from \"../../utils/utils\";\n\n/**\n * @uiName Microsite Program Menu\n * @validParents [\"sqm-portal-container\",\"div\",\"sqm-divided-layout\",\"sqm-brand\",\"template\"]\n * @slots [{\"name\":\"\",\"title\":\"Menu Content\"}]\n * @canvasRenderer always-replace\n */\n@Component({\n tag: \"sqm-program-menu\",\n shadow: false,\n})\nexport class ProgramMenu {\n @State()\n ignored = true;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n const { data, ref } = useProgramMenu(getProps(this));\n return (\n <Host style={{ display: \"contents\" }}>\n <sl-select\n style={{ paddingBottom: \"var(--sl-spacing-large)\" }}\n value={data.programId}\n ref={(r) => (ref.current = r)}\n >\n <slot />\n </sl-select>\n </Host>\n );\n }\n}\n","import { h, VNode } from \"@stencil/core\";\nimport { createStyleSheet } from \"../../styling/JSS\";\n\nexport interface ReferralCardViewProps {\n verticalAlignment: \"start\" | \"center\" | \"end\";\n hideBorder?: boolean;\n borderColor?: string;\n borderRadius?: number;\n textColor?: string;\n backgroundColor?: string;\n slots: {\n left: VNode;\n right: VNode;\n header: VNode;\n footer: VNode;\n };\n paddingTop?: string;\n paddingRight?: string;\n paddingBottom?: string;\n paddingLeft?: string;\n limitWidth?: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n}\n\nconst vanillaStyle = `\n :host{\n display: block; \n }\n `;\n\nexport function ReferralCardView(props: ReferralCardViewProps) {\n const style = {\n Container: {\n borderRadius: props.borderRadius || \"var(--sqm-border-radius-normal)\",\n color: props.textColor || \"var(--sqm-text)\",\n background: props.backgroundColor || \"var(--sqm-portal-background)\",\n display: \"flex\",\n flexDirection: \"column\",\n rowGap: \"var(--sl-spacing-large)\",\n },\n EndContainer: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n },\n ColumnContainer: {\n \"& p\": { margin: \"0\" },\n display: \"grid\",\n gridAutoColumns: \"minmax(0, 1fr)\",\n gridAutoFlow: \"column\",\n gap: \"calc(2 * var(--sl-spacing-medium))\",\n\n \"@media (max-width: 499px)\": {\n gridAutoFlow: \"unset\",\n gridAutoColumns: \"unset\",\n gridTemplateColumns: \"1fr\",\n border: \"none\",\n },\n },\n };\n\n const sheet = createStyleSheet(style);\n const styleString = sheet.toString();\n\n const borderColor = props.borderColor || \"var(--sqm-border-color)\";\n return (\n <div\n part=\"sqm-base\"\n class={sheet.classes.Container}\n style={{\n border: `${\n props.hideBorder\n ? \"none\"\n : `var(--sqm-border-thickness) solid ${borderColor}`\n }`,\n\n \"padding-top\": `var(--sl-spacing-${props.paddingTop})`,\n \"padding-right\": `var(--sl-spacing-${props.paddingRight})`,\n \"padding-bottom\": `var(--sl-spacing-${props.paddingBottom})`,\n \"padding-left\": `var(--sl-spacing-${props.paddingLeft})`,\n backgroundColor: props.backgroundColor,\n maxWidth: `${props.limitWidth ? \"600px\" : \"none\"}`,\n margin: `${props.limitWidth ? \"auto\" : \"none\"}`,\n }}\n >\n <style type=\"text/css\">\n {styleString}\n {vanillaStyle}\n </style>\n {props.hasHeader && (\n <div class={sheet.classes.EndContainer}>{props.slots.header}</div>\n )}\n <div\n part=\"sqm-column-container\"\n class={sheet.classes.ColumnContainer}\n style={{\n alignItems: props.verticalAlignment,\n }}\n >\n {props.slots.left}\n\n {props.slots.right}\n </div>\n {props.hasFooter && (\n <div class={sheet.classes.EndContainer}>{props.slots.footer}</div>\n )}\n </div>\n );\n}\n","import { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Prop, State } from \"@stencil/core\";\nimport { getProps } from \"../../utils/utils\";\nimport { Spacing } from \"../../global/mixins\";\nimport { ReferralCardView } from \"./sqm-referral-card-view\";\nimport { useChildElements } from \"../../tables/useChildElements\";\n\n/**\n *\n * @uiName Referral Card\n * @validParents [\"sqm-portal-container\",\"div\",\"sqm-divided-layout\",\"sqm-brand\",\"template\",\"sqb-program-section\",\"sqb-conditional-section\", \"sqm-hero\"]\n * @validChildren [\"div\",\"sqm-portal-container\",\"p\",\"sqm-timeline\",\"h1\",\"h2\",\"h3\",\"h5\",\"h4\",\"sqm-pagination\",\"sqm-qr-code\",\"sqm-referral-code\",\"sqm-referral-codes\",\"sqm-share-code\",\"sqm-share-link\",\"sqm-text\",\"span\", \"sqm-portal-footer\", \"sqm-titled-section\"]\n * @exampleGroup Referrals\n * @slots [{\"name\":\"left\", \"title\":\"Left Content\"},{\"name\":\"right\", \"title\":\"Right Content\"},{\"name\":\"header\", \"title\":\"Header Content\"},{\"name\":\"footer\", \"title\":\"Footer Content\"}]\n * @example Referral Card - <sqm-referral-card vertical-alignment=\"start\"> <sqm-portal-container gap=\"large\" slot=\"left\" direction=\"column\" display=\"grid\" max-width=\"100%\" padding=\"none\" > <sqm-text >They’ll get a $50 credit towards a new account and you’ll get: </sqm-text> <sqm-timeline icon=\"circle\"> <sqm-timeline-entry reward=\"$50\" unit=\"visa giftcard\" desc=\"Your friend purchases a Business plan\" icon=\"circle\" > </sqm-timeline-entry> <sqm-timeline-entry reward=\"$200\" unit=\"visa giftcard\" desc=\"Our sales team qualifies your friend as a good fit for our Enterprise plan\" icon=\"circle\" > </sqm-timeline-entry> <sqm-timeline-entry reward=\"$1000\" unit=\"visa giftcard\" desc=\"Your friend purchases an Enterprise plan\" icon=\"circle\" > </sqm-timeline-entry> </sqm-timeline> </sqm-portal-container> <sqm-portal-container gap=\"large\" slot=\"right\" direction=\"column\" display=\"grid\" max-width=\"100%\" padding=\"none\" > <sqm-text>Choose how you want to share: </sqm-text> <sqm-text> <sub>Your unique referral link:</sub> <sqm-share-link tooltip-text=\"Copied to Clipboard\" tooltip-lifespan=\"1000\" > </sqm-share-link> </sqm-text> <sqm-portal-container gap=\"x-small\" direction=\"column\" display=\"grid\" max-width=\"100%\" padding=\"none\" > <sqm-share-button medium=\"email\" icon-slot=\"prefix\" size=\"medium\" type=\"default\" > Share via email </sqm-share-button> <sqm-share-button medium=\"linkedin\" icon-slot=\"prefix\" size=\"medium\" type=\"default\" > Share on LinkedIn </sqm-share-button> <sqm-share-button medium=\"twitter\" icon-slot=\"prefix\" size=\"medium\" type=\"default\" > Share on Twitter </sqm-share-button> </sqm-portal-container> </sqm-portal-container> </sqm-referral-card>\n * */\n\n@Component({\n tag: \"sqm-referral-card\",\n shadow: true,\n})\nexport class ReferralCard {\n @State()\n ignored = true;\n\n /**\n * @uiName Vertical alignment\n * @uiType string\n * @uiEnum [\"start\", \"center\", \"end\"]\n * @uiEnumNames [\"Top\", \"Center\", \"Bottom\"]\n */\n @Prop() verticalAlignment: \"start\" | \"center\" | \"end\" = \"start\";\n\n /**\n * @uiName Hide border\n * @uiType boolean\n */\n @Prop() hideBorder: boolean = false;\n\n /**\n * @uiName Top padding\n * @uiGroup Padding\n * @uiEnum [\"none\", \"xxx-small\", \"xx-small\", \"x-small\", \"small\", \"medium\", \"large\", \"x-large\", \"xx-large\", \"xxx-large\", \"xxxx-large\"]\n * @uiEnumNames [\"None\", \"XXX-Small\", \"XX-Small\", \"X-Small\", \"Small\", \"Medium\", \"Large\", \"X-Large\", \"XX-Large\", \"XXX-Large\", \"XXXX-Large\"]\n */\n @Prop() paddingTop: string = \"large\";\n /**\n * @uiName Right padding\n * @uiGroup Padding\n * @uiEnum [\"none\", \"xxx-small\", \"xx-small\", \"x-small\", \"small\", \"medium\", \"large\", \"x-large\", \"xx-large\", \"xxx-large\", \"xxxx-large\"]\n * @uiEnumNames [\"None\", \"XXX-Small\", \"XX-Small\", \"X-Small\", \"Small\", \"Medium\", \"Large\", \"X-Large\", \"XX-Large\", \"XXX-Large\", \"XXXX-Large\"]\n */\n @Prop() paddingRight: string = \"large\";\n /**\n * @uiName Bottom padding\n * @uiGroup Padding\n * @uiEnum [\"none\", \"xxx-small\", \"xx-small\", \"x-small\", \"small\", \"medium\", \"large\", \"x-large\", \"xx-large\", \"xxx-large\", \"xxxx-large\"]\n * @uiEnumNames [\"None\", \"XXX-Small\", \"XX-Small\", \"X-Small\", \"Small\", \"Medium\", \"Large\", \"X-Large\", \"XX-Large\", \"XXX-Large\", \"XXXX-Large\"]\n */\n @Prop() paddingBottom: string = \"large\";\n /**\n * @uiName Left padding\n * @uiGroup Padding\n * @uiEnum [\"none\", \"xxx-small\", \"xx-small\", \"x-small\", \"small\", \"medium\", \"large\", \"x-large\", \"xx-large\", \"xxx-large\", \"xxxx-large\"]\n * @uiEnumNames [\"None\", \"XXX-Small\", \"XX-Small\", \"X-Small\", \"Small\", \"Medium\", \"Large\", \"X-Large\", \"XX-Large\", \"XXX-Large\", \"XXXX-Large\"]\n */\n @Prop() paddingLeft: string = \"large\";\n\n /**\n * @uiName Background color\n * @uiWidget color\n * @uiType string\n */\n @Prop() backgroundColor?: string;\n\n /**\n * Border color of container\n * @uiName Border color\n * @uiWidget color\n * @format color\n */\n @Prop() borderColor?: string;\n\n /**\n * Color of the text and copy icon\n * @uiName Text color\n * @uiWidget color\n * @format color\n */\n @Prop() textColor?: string;\n\n /**\n * The border radius (in pixels)\n * @uiName Border Radius\n * @uiType number\n */\n @Prop() borderRadius?: number;\n\n /**\n * @uiName Limit width\n * @uiType boolean\n */\n @Prop() limitWidth: boolean = false;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n const slots = {\n left: <slot name=\"left\" />,\n right: <slot name=\"right\" />,\n header: <slot name=\"header\" />,\n footer: <slot name=\"footer\" />,\n };\n\n const children = useChildElements<Element>();\n\n const hasHeader =\n children.findIndex((child) => child.slot === \"header\") > -1;\n\n const hasFooter =\n children.findIndex((child) => child.slot === \"footer\") > -1;\n\n return (\n <ReferralCardView\n {...getProps(this)}\n slots={slots}\n hasHeader={hasHeader}\n hasFooter={hasFooter}\n >\n <slot />\n </ReferralCardView>\n );\n }\n}\n","import {\n useProgramId,\n useUserIdentity,\n useQuery,\n} from \"@saasquatch/component-boilerplate\";\nimport { gql } from \"graphql-request\";\nimport { SqmReferralIframe } from \"./sqm-referral-iframe\";\nimport { ReferralIframeViewProps } from \"./sqm-referral-iframe-view\";\n\nconst GET_USER_DETAILS = gql`\n query getUser($programId: ID) {\n viewer {\n ... on User {\n referralCode(programId: $programId)\n }\n }\n }\n`;\n\nexport function useReferralIframe(\n props: SqmReferralIframe\n): ReferralIframeViewProps {\n const programId = useProgramId();\n const user = useUserIdentity();\n\n const { data } = useQuery(\n GET_USER_DETAILS,\n { programId },\n !user?.jwt || !programId\n );\n\n return {\n states: {\n content: props,\n },\n data: {\n shareCode: data?.viewer?.referralCode,\n },\n };\n}\n","import { Component, h, Host, Prop, State } from \"@stencil/core\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { useReferralIframe } from \"./useReferralIframe\";\nimport {\n ReferralIframeView,\n ReferralIframeViewProps,\n} from \"./sqm-referral-iframe-view\";\nimport { isDemo } from \"@saasquatch/component-boilerplate\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../global/demo\";\nimport { getMissingProps, getProps } from \"../../utils/utils\";\nimport { RequiredPropsError } from \"../../utils/RequiredPropsError\";\n\n/**\n * @uiName Referral IFrame\n */\n@Component({\n tag: \"sqm-referral-iframe\",\n})\nexport class SqmReferralIframe {\n @State()\n ignored = true;\n\n /**\n * URL of iframe to display\n * @uiName IFrame source\n * @required\n */\n @Prop() iframeSrc: string;\n /**\n * Define the height of the iframe with any valid CSS height value. Example: 100px, 5rem, or auto.\n * @uiName IFrame height\n */\n @Prop() iframeHeight: string = \"100%\";\n /**\n * Define the width of the iframe with any valid CSS width value. Example: 100px, 5rem, or auto.\n * @uiName IFrame width\n */\n @Prop() iframeWidth: string = \"100%\";\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<ReferralIframeViewProps>;\n\n constructor() {\n withHooks(this);\n }\n\n disconnectedCallback() {}\n\n render() {\n const missingProps = getMissingProps([\n {\n attribute: \"iframe-src\",\n value: this.iframeSrc,\n },\n ]);\n\n if (missingProps) {\n return (\n <RequiredPropsError\n missingProps={missingProps}\n heading={\"An error occured while loading this page\"}\n subheading={\n \"A technical problem prevented this iframe from loading. Please contact us with the link to this page.\"\n }\n description={\"Values for the following attributes are missing:\"}\n />\n );\n }\n\n const { states, data } = isDemo()\n ? useReferralIframeDemo(getProps(this))\n : useReferralIframe(getProps(this));\n\n return (\n <Host style={{ display: \"contents\" }}>\n <ReferralIframeView data={data} states={states}></ReferralIframeView>\n </Host>\n );\n }\n}\n\nfunction useReferralIframeDemo(props: SqmReferralIframe) {\n return deepmerge(\n {\n states: {\n content: {\n iframeSrc: \"https://example.com\",\n ...props,\n },\n },\n data: {\n shareCode: \"SHARECODE123\",\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import { isDemo, setUserIdentity } from \"@saasquatch/component-boilerplate\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, Prop, State, h } from \"@stencil/core\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../global/demo\";\nimport { useInstantAccessRegistration } from \"../sqm-instant-access-registration/useInstantAccessRegistration\";\nimport {\n EmailRegistrationView,\n EmailRegistrationViewProps,\n} from \"../views/email-registration-view\";\n\n/**\n * @uiName Instant Access Friend Registration\n * @validParents [\"sqm-portal-container\",\"div\",\"sqm-divided-layout\",\"sqm-brand\",\"template\",\"sqm-hero\",\"sqb-program-section\",\"sqb-conditional-section\"]\n * @compatibility Built for instant access\n * @exampleGroup Instant Access\n * @example Friend Registration - <sqm-referred-registration></sqm-referred-registration>\n * @slots [{\"name\":\"top\",\"title\":\"Top Content\"},{\"name\":\"bottom\",\"title\":\"Bottom Content\"}]\n */\n@Component({\n tag: \"sqm-referred-registration\",\n shadow: true,\n})\nexport class ReferredRegistration {\n @State()\n ignored = true;\n\n /**\n * @uiName Email field label\n */\n @Prop()\n emailLabel: string = \"Email\";\n\n /**\n * @uiName First name field label\n */\n @Prop()\n firstNameLabel: string = \"First Name\";\n\n /**\n * @uiName Last name field label\n */\n @Prop()\n lastNameLabel: string = \"Last Name\";\n\n /**\n * @uiName Register button text\n */\n @Prop()\n registerLabel: string = \"Claim Your Reward\";\n\n /**\n * Require your participants to enter their first and last name.\n *\n * @uiName Include name fields\n */\n @Prop() includeName: boolean = false;\n\n /**\n * @uiName Hide border\n * @uiGroup Card style\n */\n @Prop() hideBorder: boolean = false;\n\n /**\n * Display this message when a required field has not been filled out.\n *\n * @uiName Required field message\n * @uiWidget textArea\n * @uiGroup Error messages\n */\n @Prop() requiredFieldErrorMessage: string = \"Cannot be empty\";\n\n /**\n * Display this message when the given email is invalid.\n *\n * @uiName Invalid email message\n * @uiWidget textArea\n * @uiGroup Error messages\n */\n @Prop() invalidEmailErrorMessage: string =\n \"Please enter a valid email address\";\n\n /**\n * Display this message when the form submission unexpectedly fails.\n *\n * @uiName Network error message\n * @uiWidget textArea\n * @uiGroup Error messages\n */\n @Prop() networkErrorMessage: string =\n \"There was a problem signing you in. Please wait a moment and try again. If this problem continues, contact Support for help resolving this issue.\";\n\n /**\n * Display this message when there is suspected fraud.\n *\n * @uiName Fraud error message\n * @uiWidget textArea\n * @uiGroup Error messages\n */\n @Prop() fraudErrorMessage: string =\n \"Our team will review this referral. If approved, you and your friend will receive your rewards. Need help? Reach out to our Support team.\";\n /**\n * Display this message when there is suspected fraud.\n *\n * @uiName Fraud error message title\n * @uiWidget textArea\n * @uiGroup Error messages\n */\n @Prop() fraudErrorMessageTitle: string =\n \"Looks like you tried referring yourself\";\n /**\n * @uiName Top padding\n * @uiGroup Card style\n * @uiEnum [\"none\", \"xxx-small\", \"xx-small\", \"x-small\", \"small\", \"medium\", \"large\", \"x-large\", \"xx-large\", \"xxx-large\", \"xxxx-large\"]\n * @uiEnumNames [\"None\", \"XXX-Small\", \"XX-Small\", \"X-Small\", \"Small\", \"Medium\", \"Large\", \"X-Large\", \"XX-Large\", \"XXX-Large\", \"XXXX-Large\"]\n */\n @Prop() paddingTop: string = \"large\";\n /**\n * @uiName Right padding\n * @uiGroup Card style\n * @uiEnum [\"none\", \"xxx-small\", \"xx-small\", \"x-small\", \"small\", \"medium\", \"large\", \"x-large\", \"xx-large\", \"xxx-large\", \"xxxx-large\"]\n * @uiEnumNames [\"None\", \"XXX-Small\", \"XX-Small\", \"X-Small\", \"Small\", \"Medium\", \"Large\", \"X-Large\", \"XX-Large\", \"XXX-Large\", \"XXXX-Large\"]\n */\n @Prop() paddingRight: string = \"large\";\n /**\n * @uiName Bottom padding\n * @uiGroup Card style\n * @uiEnum [\"none\", \"xxx-small\", \"xx-small\", \"x-small\", \"small\", \"medium\", \"large\", \"x-large\", \"xx-large\", \"xxx-large\", \"xxxx-large\"]\n * @uiEnumNames [\"None\", \"XXX-Small\", \"XX-Small\", \"X-Small\", \"Small\", \"Medium\", \"Large\", \"X-Large\", \"XX-Large\", \"XXX-Large\", \"XXXX-Large\"]\n */\n @Prop() paddingBottom: string = \"large\";\n /**\n * @uiName Left padding\n * @uiGroup Card style\n * @uiEnum [\"none\", \"xxx-small\", \"xx-small\", \"x-small\", \"small\", \"medium\", \"large\", \"x-large\", \"xx-large\", \"xxx-large\", \"xxxx-large\"]\n * @uiEnumNames [\"None\", \"XXX-Small\", \"XX-Small\", \"X-Small\", \"Small\", \"Medium\", \"Large\", \"X-Large\", \"XX-Large\", \"XXX-Large\", \"XXXX-Large\"]\n */\n @Prop() paddingLeft: string = \"large\";\n\n /**\n * @uiName Background color\n * @uiWidget color\n * @uiGroup Card style\n * @uiType string\n */\n @Prop() backgroundColor: string;\n\n /**\n * @undocumented\n * @uiType boolean\n */\n @Prop() includeCookies?: boolean = true;\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<EmailRegistrationViewProps>;\n\n constructor() {\n withHooks(this);\n }\n\n disconnectedCallback() {}\n\n render() {\n const { states, callbacks } = isDemo()\n ? useRegistrationDemo(this)\n : useInstantAccessRegistration(this);\n\n const content = {\n fraudErrorMessage: this.fraudErrorMessage,\n fraudErrorMessageTitle: this.fraudErrorMessageTitle,\n emailLabel: this.emailLabel,\n registerLabel: this.registerLabel,\n firstNameLabel: this.firstNameLabel,\n lastNameLabel: this.lastNameLabel,\n includeName: this.includeName,\n hideBorder: this.hideBorder,\n invalidEmailErrorMessage: this.invalidEmailErrorMessage,\n requiredFieldErrorMessage: this.requiredFieldErrorMessage,\n paddingTop: this.paddingTop,\n paddingBottom: this.paddingBottom,\n paddingLeft: this.paddingLeft,\n paddingRight: this.paddingRight,\n backgroundColor: this.backgroundColor,\n // slots\n topSlot: <slot name=\"top\" />,\n bottomSlot: <slot name=\"bottom\" />,\n };\n return (\n <EmailRegistrationView\n states={states}\n callbacks={callbacks}\n content={content}\n ></EmailRegistrationView>\n );\n }\n}\nfunction useRegistrationDemo(\n props: ReferredRegistration\n): Partial<EmailRegistrationViewProps> {\n const onSubmit = () => {\n setUserIdentity({\n id: \"referrer@example.com\",\n accountId: \"referrer@example.com\",\n jwt: \"eyJraWQiOiJlNjI2NzQxNy1jMzZlLTRlM2EtYjM5NS1lYTFmY2YyNmU3YzIiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjbVZtWlhKeVpYSkFaWGhoYlhCc1pTNWpiMjA9OmNtVm1aWEp5WlhKQVpYaGhiWEJzWlM1amIyMD1AdGVzdF9heGJndGF0dzF0Y2NwOnVzZXJzIiwicGFzc3dvcmRsZXNzIjp0cnVlLCJpc3MiOiJodHRwczovL3N0YWdpbmcucmVmZXJyYWxzYWFzcXVhdGNoLmNvbS8iLCJleHAiOjE2ODA4ODU5MTksImlhdCI6MTY4MDc5OTUxOX0.kjmTVVf_BTb-uMNKnadLyNLxMFwpkefsY02O3iAfBVIJJZZfeZMwunPlKsS3Vbp28aYRClBjH5Wj4pYxDn23D0CdZx8KNCqiJ8yF6149O9SPMkRseoJkliqS6LyvMOEDjGDkuLfcC8_hq1AHBXFt5BdCtWOk1gwf_5R9A0w5gXEIvprBzbNDLbuo88bVAlrmFNvfttXXryrpUeruMal7cBKuy02YblBrB4kKoyJiprU5GLEjciBA4A56u8TwQc0kbsPf2YcQaJsY_IvkC7S1u4sPyObpq6iF6Ed8UYHAo6nU5KjZXyVtoUyeIS11mf_6OtDO6LyMNHV2FtEUUDdPCg\",\n });\n };\n\n return deepmerge(\n {\n states: {\n error: \"\",\n loading: false,\n },\n callbacks: {\n submit: async (_event) => {\n onSubmit();\n },\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","// canvas-confetti v1.4.0 built on 2021-03-10T12:32:33.488Z\nvar module = {};\n\n// source content\n(function main(global, module, isWorker, workerSize) {\n var canUseWorker = !!(\n global.Worker &&\n global.Blob &&\n global.Promise &&\n global.OffscreenCanvas &&\n global.OffscreenCanvasRenderingContext2D &&\n global.HTMLCanvasElement &&\n global.HTMLCanvasElement.prototype.transferControlToOffscreen &&\n global.URL &&\n global.URL.createObjectURL);\n\n function noop() {}\n\n // create a promise if it exists, otherwise, just\n // call the function directly\n function promise(func) {\n var ModulePromise = module.exports.Promise;\n var Prom = ModulePromise !== void 0 ? ModulePromise : global.Promise;\n\n if (typeof Prom === 'function') {\n return new Prom(func);\n }\n\n func(noop, noop);\n\n return null;\n }\n\n var raf = (function () {\n var TIME = Math.floor(1000 / 60);\n var frame, cancel;\n var frames = {};\n var lastFrameTime = 0;\n\n if (typeof requestAnimationFrame === 'function' && typeof cancelAnimationFrame === 'function') {\n frame = function (cb) {\n var id = Math.random();\n\n frames[id] = requestAnimationFrame(function onFrame(time) {\n if (lastFrameTime === time || lastFrameTime + TIME - 1 < time) {\n lastFrameTime = time;\n delete frames[id];\n\n cb();\n } else {\n frames[id] = requestAnimationFrame(onFrame);\n }\n });\n\n return id;\n };\n cancel = function (id) {\n if (frames[id]) {\n cancelAnimationFrame(frames[id]);\n }\n };\n } else {\n frame = function (cb) {\n return setTimeout(cb, TIME);\n };\n cancel = function (timer) {\n return clearTimeout(timer);\n };\n }\n\n return { frame: frame, cancel: cancel };\n }());\n\n var getWorker = (function () {\n var worker;\n var prom;\n var resolves = {};\n\n function decorate(worker) {\n function execute(options, callback) {\n worker.postMessage({ options: options || {}, callback: callback });\n }\n worker.init = function initWorker(canvas) {\n var offscreen = canvas.transferControlToOffscreen();\n worker.postMessage({ canvas: offscreen }, [offscreen]);\n };\n\n worker.fire = function fireWorker(options, size, done) {\n if (prom) {\n execute(options, null);\n return prom;\n }\n\n var id = Math.random().toString(36).slice(2);\n\n prom = promise(function (resolve) {\n function workerDone(msg) {\n if (msg.data.callback !== id) {\n return;\n }\n\n delete resolves[id];\n worker.removeEventListener('message', workerDone);\n\n prom = null;\n done();\n resolve();\n }\n\n worker.addEventListener('message', workerDone);\n execute(options, id);\n\n resolves[id] = workerDone.bind(null, { data: { callback: id }});\n });\n\n return prom;\n };\n\n worker.reset = function resetWorker() {\n worker.postMessage({ reset: true });\n\n for (var id in resolves) {\n resolves[id]();\n delete resolves[id];\n }\n };\n }\n\n return function () {\n if (worker) {\n return worker;\n }\n\n if (!isWorker && canUseWorker) {\n var code = [\n 'var CONFETTI, SIZE = {}, module = {};',\n '(' + main.toString() + ')(this, module, true, SIZE);',\n 'onmessage = function(msg) {',\n ' if (msg.data.options) {',\n ' CONFETTI(msg.data.options).then(function () {',\n ' if (msg.data.callback) {',\n ' postMessage({ callback: msg.data.callback });',\n ' }',\n ' });',\n ' } else if (msg.data.reset) {',\n ' CONFETTI.reset();',\n ' } else if (msg.data.resize) {',\n ' SIZE.width = msg.data.resize.width;',\n ' SIZE.height = msg.data.resize.height;',\n ' } else if (msg.data.canvas) {',\n ' SIZE.width = msg.data.canvas.width;',\n ' SIZE.height = msg.data.canvas.height;',\n ' CONFETTI = module.exports.create(msg.data.canvas);',\n ' }',\n '}',\n ].join('\\n');\n try {\n worker = new Worker(URL.createObjectURL(new Blob([code])));\n } catch (e) {\n // eslint-disable-next-line no-console\n typeof console !== undefined && typeof console.warn === 'function' ? console.warn('🎊 Could not load worker', e) : null;\n\n return null;\n }\n\n decorate(worker);\n }\n\n return worker;\n };\n })();\n\n var defaults = {\n particleCount: 50,\n angle: 90,\n spread: 45,\n startVelocity: 45,\n decay: 0.9,\n gravity: 1,\n drift: 0,\n ticks: 200,\n x: 0.5,\n y: 0.5,\n shapes: ['square', 'circle'],\n zIndex: 100,\n colors: [\n '#26ccff',\n '#a25afd',\n '#ff5e7e',\n '#88ff5a',\n '#fcff42',\n '#ffa62d',\n '#ff36ff'\n ],\n // probably should be true, but back-compat\n disableForReducedMotion: false,\n scalar: 1\n };\n\n function convert(val, transform) {\n return transform ? transform(val) : val;\n }\n\n function isOk(val) {\n return !(val === null || val === undefined);\n }\n\n function prop(options, name, transform) {\n return convert(\n options && isOk(options[name]) ? options[name] : defaults[name],\n transform\n );\n }\n\n function onlyPositiveInt(number){\n return number < 0 ? 0 : Math.floor(number);\n }\n\n function randomInt(min, max) {\n // [min, max)\n return Math.floor(Math.random() * (max - min)) + min;\n }\n\n function toDecimal(str) {\n return parseInt(str, 16);\n }\n\n function colorsToRgb(colors) {\n return colors.map(hexToRgb);\n }\n\n function hexToRgb(str) {\n var val = String(str).replace(/[^0-9a-f]/gi, '');\n\n if (val.length < 6) {\n val = val[0]+val[0]+val[1]+val[1]+val[2]+val[2];\n }\n\n return {\n r: toDecimal(val.substring(0,2)),\n g: toDecimal(val.substring(2,4)),\n b: toDecimal(val.substring(4,6))\n };\n }\n\n function getOrigin(options) {\n var origin = prop(options, 'origin', Object);\n origin.x = prop(origin, 'x', Number);\n origin.y = prop(origin, 'y', Number);\n\n return origin;\n }\n\n function setCanvasWindowSize(canvas) {\n canvas.width = document.documentElement.clientWidth;\n canvas.height = document.documentElement.clientHeight;\n }\n\n function setCanvasRectSize(canvas) {\n var rect = canvas.getBoundingClientRect();\n canvas.width = rect.width;\n canvas.height = rect.height;\n }\n\n function getCanvas(zIndex) {\n var canvas = document.createElement('canvas');\n\n canvas.style.position = 'fixed';\n canvas.style.top = '0px';\n canvas.style.left = '0px';\n canvas.style.pointerEvents = 'none';\n canvas.style.zIndex = zIndex;\n\n return canvas;\n }\n\n function ellipse(context, x, y, radiusX, radiusY, rotation, startAngle, endAngle, antiClockwise) {\n context.save();\n context.translate(x, y);\n context.rotate(rotation);\n context.scale(radiusX, radiusY);\n context.arc(0, 0, 1, startAngle, endAngle, antiClockwise);\n context.restore();\n }\n\n function randomPhysics(opts) {\n var radAngle = opts.angle * (Math.PI / 180);\n var radSpread = opts.spread * (Math.PI / 180);\n\n return {\n x: opts.x,\n y: opts.y,\n wobble: Math.random() * 10,\n velocity: (opts.startVelocity * 0.5) + (Math.random() * opts.startVelocity),\n angle2D: -radAngle + ((0.5 * radSpread) - (Math.random() * radSpread)),\n tiltAngle: Math.random() * Math.PI,\n color: opts.color,\n shape: opts.shape,\n tick: 0,\n totalTicks: opts.ticks,\n decay: opts.decay,\n drift: opts.drift,\n random: Math.random() + 5,\n tiltSin: 0,\n tiltCos: 0,\n wobbleX: 0,\n wobbleY: 0,\n gravity: opts.gravity * 3,\n ovalScalar: 0.6,\n scalar: opts.scalar\n };\n }\n\n function updateFetti(context, fetti) {\n fetti.x += Math.cos(fetti.angle2D) * fetti.velocity + fetti.drift;\n fetti.y += Math.sin(fetti.angle2D) * fetti.velocity + fetti.gravity;\n fetti.wobble += 0.1;\n fetti.velocity *= fetti.decay;\n fetti.tiltAngle += 0.1;\n fetti.tiltSin = Math.sin(fetti.tiltAngle);\n fetti.tiltCos = Math.cos(fetti.tiltAngle);\n fetti.random = Math.random() + 5;\n fetti.wobbleX = fetti.x + ((10 * fetti.scalar) * Math.cos(fetti.wobble));\n fetti.wobbleY = fetti.y + ((10 * fetti.scalar) * Math.sin(fetti.wobble));\n\n var progress = (fetti.tick++) / fetti.totalTicks;\n\n var x1 = fetti.x + (fetti.random * fetti.tiltCos);\n var y1 = fetti.y + (fetti.random * fetti.tiltSin);\n var x2 = fetti.wobbleX + (fetti.random * fetti.tiltCos);\n var y2 = fetti.wobbleY + (fetti.random * fetti.tiltSin);\n\n context.fillStyle = 'rgba(' + fetti.color.r + ', ' + fetti.color.g + ', ' + fetti.color.b + ', ' + (1 - progress) + ')';\n context.beginPath();\n\n if (fetti.shape === 'circle') {\n context.ellipse ?\n context.ellipse(fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI) :\n ellipse(context, fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI);\n } else {\n context.moveTo(Math.floor(fetti.x), Math.floor(fetti.y));\n context.lineTo(Math.floor(fetti.wobbleX), Math.floor(y1));\n context.lineTo(Math.floor(x2), Math.floor(y2));\n context.lineTo(Math.floor(x1), Math.floor(fetti.wobbleY));\n }\n\n context.closePath();\n context.fill();\n\n return fetti.tick < fetti.totalTicks;\n }\n\n function animate(canvas, fettis, resizer, size, done) {\n var animatingFettis = fettis.slice();\n var context = canvas.getContext('2d');\n var animationFrame;\n var destroy;\n\n var prom = promise(function (resolve) {\n function onDone() {\n animationFrame = destroy = null;\n\n context.clearRect(0, 0, size.width, size.height);\n\n done();\n resolve();\n }\n\n function update() {\n if (isWorker && !(size.width === workerSize.width && size.height === workerSize.height)) {\n size.width = canvas.width = workerSize.width;\n size.height = canvas.height = workerSize.height;\n }\n\n if (!size.width && !size.height) {\n resizer(canvas);\n size.width = canvas.width;\n size.height = canvas.height;\n }\n\n context.clearRect(0, 0, size.width, size.height);\n\n animatingFettis = animatingFettis.filter(function (fetti) {\n return updateFetti(context, fetti);\n });\n\n if (animatingFettis.length) {\n animationFrame = raf.frame(update);\n } else {\n onDone();\n }\n }\n\n animationFrame = raf.frame(update);\n destroy = onDone;\n });\n\n return {\n addFettis: function (fettis) {\n animatingFettis = animatingFettis.concat(fettis);\n\n return prom;\n },\n canvas: canvas,\n promise: prom,\n reset: function () {\n if (animationFrame) {\n raf.cancel(animationFrame);\n }\n\n if (destroy) {\n destroy();\n }\n }\n };\n }\n\n function confettiCannon(canvas, globalOpts) {\n var isLibCanvas = !canvas;\n var allowResize = !!prop(globalOpts || {}, 'resize');\n var globalDisableForReducedMotion = prop(globalOpts, 'disableForReducedMotion', Boolean);\n var shouldUseWorker = canUseWorker && !!prop(globalOpts || {}, 'useWorker');\n var worker = shouldUseWorker ? getWorker() : null;\n var resizer = isLibCanvas ? setCanvasWindowSize : setCanvasRectSize;\n var initialized = (canvas && worker) ? !!canvas.__confetti_initialized : false;\n var preferLessMotion = typeof matchMedia === 'function' && matchMedia('(prefers-reduced-motion)').matches;\n var animationObj;\n\n function fireLocal(options, size, done) {\n var particleCount = prop(options, 'particleCount', onlyPositiveInt);\n var angle = prop(options, 'angle', Number);\n var spread = prop(options, 'spread', Number);\n var startVelocity = prop(options, 'startVelocity', Number);\n var decay = prop(options, 'decay', Number);\n var gravity = prop(options, 'gravity', Number);\n var drift = prop(options, 'drift', Number);\n var colors = prop(options, 'colors', colorsToRgb);\n var ticks = prop(options, 'ticks', Number);\n var shapes = prop(options, 'shapes');\n var scalar = prop(options, 'scalar');\n var origin = getOrigin(options);\n\n var temp = particleCount;\n var fettis = [];\n\n var startX = canvas.width * origin.x;\n var startY = canvas.height * origin.y;\n\n while (temp--) {\n fettis.push(\n randomPhysics({\n x: startX,\n y: startY,\n angle: angle,\n spread: spread,\n startVelocity: startVelocity,\n color: colors[temp % colors.length],\n shape: shapes[randomInt(0, shapes.length)],\n ticks: ticks,\n decay: decay,\n gravity: gravity,\n drift: drift,\n scalar: scalar\n })\n );\n }\n\n // if we have a previous canvas already animating,\n // add to it\n if (animationObj) {\n return animationObj.addFettis(fettis);\n }\n\n animationObj = animate(canvas, fettis, resizer, size , done);\n\n return animationObj.promise;\n }\n\n function fire(options) {\n var disableForReducedMotion = globalDisableForReducedMotion || prop(options, 'disableForReducedMotion', Boolean);\n var zIndex = prop(options, 'zIndex', Number);\n\n if (disableForReducedMotion && preferLessMotion) {\n return promise(function (resolve) {\n resolve();\n });\n }\n\n if (isLibCanvas && animationObj) {\n // use existing canvas from in-progress animation\n canvas = animationObj.canvas;\n } else if (isLibCanvas && !canvas) {\n // create and initialize a new canvas\n canvas = getCanvas(zIndex);\n document.body.appendChild(canvas);\n }\n\n if (allowResize && !initialized) {\n // initialize the size of a user-supplied canvas\n resizer(canvas);\n }\n\n var size = {\n width: canvas.width,\n height: canvas.height\n };\n\n if (worker && !initialized) {\n worker.init(canvas);\n }\n\n initialized = true;\n\n if (worker) {\n canvas.__confetti_initialized = true;\n }\n\n function onResize() {\n if (worker) {\n // TODO this really shouldn't be immediate, because it is expensive\n var obj = {\n getBoundingClientRect: function () {\n if (!isLibCanvas) {\n return canvas.getBoundingClientRect();\n }\n }\n };\n\n resizer(obj);\n\n worker.postMessage({\n resize: {\n width: obj.width,\n height: obj.height\n }\n });\n return;\n }\n\n // don't actually query the size here, since this\n // can execute frequently and rapidly\n size.width = size.height = null;\n }\n\n function done() {\n animationObj = null;\n\n if (allowResize) {\n global.removeEventListener('resize', onResize);\n }\n\n if (isLibCanvas && canvas) {\n document.body.removeChild(canvas);\n canvas = null;\n initialized = false;\n }\n }\n\n if (allowResize) {\n global.addEventListener('resize', onResize, false);\n }\n\n if (worker) {\n return worker.fire(options, size, done);\n }\n\n return fireLocal(options, size, done);\n }\n\n fire.reset = function () {\n if (worker) {\n worker.reset();\n }\n\n if (animationObj) {\n animationObj.reset();\n }\n };\n\n return fire;\n }\n\n module.exports = confettiCannon(null, { useWorker: true, resize: true });\n module.exports.create = confettiCannon;\n}((function () {\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof self !== 'undefined') {\n return self;\n }\n\n return this || {};\n})(), module, false));\n\n// end source content\n\nexport default module.exports;\nexport var create = module.exports.create;\n","import {\n useUserIdentity,\n useQuery,\n useMutation,\n useRefreshDispatcher,\n} from \"@saasquatch/component-boilerplate\";\nimport { gql } from \"graphql-request\";\nimport { SqmRewardExchangeList } from \"./sqm-reward-exchange-list\";\nimport { RewardExchangeViewProps } from \"./sqm-reward-exchange-list-view\";\nimport {\n useCallback,\n useEffect,\n useReducer,\n useRef,\n useState,\n} from \"@saasquatch/universal-hooks\";\nimport confetti from \"canvas-confetti\";\nimport { VNode } from \"@stencil/core\";\n\nexport type ExchangeItem = {\n key: string;\n name: string;\n description: string;\n imageUrl: string;\n available: boolean;\n unavailableReasonCode: string;\n ruleType: string;\n sourceUnit: string;\n sourceValue: number;\n prettySourceValue: string;\n sourceMinValue: number;\n prettySourceMinValue: string;\n sourceMaxValue: number;\n prettySourceMaxValue: string;\n destinationMinValue: number;\n prettyDestinationMinValue: string;\n destinationMaxValue: number;\n prettyDestinationMaxValue: string;\n globalRewardKey: string;\n destinationUnit: string;\n steps?: ExchangeStep[];\n};\n\nexport type ExchangeStep = {\n destinationValue: number;\n sourceValue: number;\n prettyDestinationValue: string;\n prettySourceValue: string;\n available: boolean;\n unavailableReasonCode: string;\n globalRewardKey: string;\n rewardInput: ExchangeInput;\n};\n\nexport type ExchangeInput = {\n accountId: string;\n userId: string;\n redeemCreditInput?: {\n amount: number;\n unit: string;\n };\n rewardInput?: {\n type: string;\n unit: string;\n assignedCredit?: number;\n valueInCents?: number;\n };\n globalRewardKey?: string;\n};\n\nexport interface RewardExchangeProps {\n notAvailableError: string;\n chooseRewardTitle: string;\n chooseAmountTitle: string;\n confirmationTitle: string;\n rewardTitle: string;\n cancelText: string;\n backText: string;\n continueText: string;\n continueToConfirmationText: string;\n redeemText: string;\n redeemTitle: string;\n redemptionSuccessText: string;\n sourceAmountMessage: string;\n tooltipText: string;\n doneText: string;\n selectText: string;\n queryError: string;\n redemptionError: string;\n notEnoughError: string;\n promoCode: string;\n skeletonCardNum: number;\n rewardNameTitle: string;\n rewardAmountTitle: string;\n rewardRedeemedText: string;\n costTitle: string;\n empty: VNode;\n stateController: string;\n demoData?: object;\n}\n\nexport type Stages = \"\" | \"chooseReward\" | \"chooseAmount\" | \"confirmation\";\n\nconst GET_EXCHANGE_LIST = gql`\n query getExchangeList {\n viewer {\n ... on User {\n visibleRewardExchangeItems(limit: 20, offset: 0) {\n data {\n key\n name\n description\n imageUrl\n available\n unavailableReasonCode\n ruleType\n sourceUnit\n sourceValue\n prettySourceValue\n sourceMinValue\n prettySourceMinValue\n sourceMaxValue\n prettySourceMaxValue\n destinationMinValue\n prettyDestinationMinValue\n destinationMaxValue\n prettyDestinationMaxValue\n globalRewardKey\n destinationUnit\n steps {\n sourceValue\n prettySourceValue\n destinationValue\n prettyDestinationValue\n available\n globalRewardKey\n unavailableReasonCode\n rewardInput\n }\n }\n totalCount\n }\n }\n }\n }\n`;\n\nconst EXCHANGE = gql`\n mutation exchange($exchangeRewardInput: ExchangeRewardInput!) {\n exchangeReward(exchangeRewardInput: $exchangeRewardInput) {\n reward {\n id\n fuelTankCode\n }\n }\n }\n`;\nexport type ExchangeState = {\n selectedItem: ExchangeItem;\n selectedStep: ExchangeStep;\n redeemStage: string;\n amount: number;\n exchangeError: boolean;\n};\n\nexport function useRewardExchangeList(\n props: RewardExchangeProps\n): RewardExchangeViewProps {\n const [exchangeState, setExchangeState] = useReducer<\n ExchangeState,\n Partial<ExchangeState>\n >(\n (state, next) => ({\n ...state,\n ...next,\n }),\n {\n selectedItem: undefined,\n selectedStep: undefined,\n redeemStage: \"chooseReward\",\n amount: 0,\n exchangeError: false,\n }\n );\n const [open, setOpen] = useState(false);\n\n const { selectedItem, selectedStep, redeemStage, amount, exchangeError } =\n exchangeState;\n\n const user = useUserIdentity();\n\n const [\n exchange,\n { data: exchangeResponse, loading: exchangeLoading, errors },\n ] = useMutation(EXCHANGE);\n\n const {\n data,\n loading,\n refetch,\n errors: queryError,\n } = useQuery(GET_EXCHANGE_LIST, {}, !user?.jwt);\n\n useEffect(() => {\n if (exchangeResponse?.exchangeReward?.reward?.id) {\n setExchangeState({ redeemStage: \"success\", exchangeError: false });\n }\n if (!!errors) {\n setExchangeState({ exchangeError: true });\n }\n }, [exchangeResponse, errors]);\n\n const canvasRef = useRef<HTMLCanvasElement>();\n useEffect(() => {\n if (!canvasRef.current) return;\n const canvas: HTMLCanvasElement & { confetti? } = canvasRef.current;\n canvas.confetti =\n canvas.confetti || confetti.create(canvas, { resize: true });\n canvas.confetti();\n }, [canvasRef.current]);\n\n const { refresh } = useRefreshDispatcher();\n\n async function exchangeReward() {\n if (!selectedItem) return;\n\n let exchangeVariables: { [key: string]: any } = {\n accountId: user?.accountId,\n userId: user.id,\n };\n\n switch (selectedItem.ruleType) {\n case \"FIXED_GLOBAL_REWARD\":\n exchangeVariables = {\n ...exchangeVariables,\n redeemCreditInput: {\n amount: selectedItem.sourceValue,\n unit: selectedItem.sourceUnit,\n },\n globalRewardKey: selectedItem.globalRewardKey,\n };\n break;\n case \"STEPPED_FIXED_GLOBAL_REWARD\":\n exchangeVariables = {\n ...exchangeVariables,\n redeemCreditInput: {\n amount: selectedStep.sourceValue,\n unit: selectedItem.sourceUnit,\n },\n globalRewardKey: selectedStep.globalRewardKey,\n };\n break;\n case \"VARIABLE_GLOBAL_REWARD\":\n exchangeVariables = {\n ...exchangeVariables,\n redeemCreditInput: {\n amount: amount,\n unit: selectedItem.sourceUnit,\n },\n globalRewardKey: selectedItem.globalRewardKey,\n rewardInput: selectedStep.rewardInput,\n };\n break;\n case \"VARIABLE_CREDIT_REWARD\":\n exchangeVariables = {\n ...exchangeVariables,\n redeemCreditInput: {\n amount: amount,\n unit: selectedItem.sourceUnit,\n },\n rewardInput: {\n type: \"CREDIT\",\n unit: selectedItem.destinationUnit,\n assignedCredit: selectedStep.destinationValue,\n },\n };\n break;\n default:\n exchangeVariables = {\n ...exchangeVariables,\n ...selectedStep.rewardInput,\n };\n }\n await exchange({ exchangeRewardInput: exchangeVariables });\n refresh();\n }\n\n const resetState = (refresh: boolean) => {\n refresh && refetch();\n setExchangeState({\n amount: 0,\n selectedStep: undefined,\n selectedItem: undefined,\n exchangeError: false,\n redeemStage: \"chooseReward\",\n });\n };\n function setStage(stage?: Stages) {\n setExchangeState({ redeemStage: stage });\n }\n\n function copyFuelTankCode() {\n navigator.clipboard.writeText(\n exchangeResponse?.exchangeReward?.reward?.fuelTankCode\n );\n setOpen(true);\n setTimeout(() => setOpen(false), 1000);\n }\n\n return {\n states: {\n content: {\n text: props,\n },\n selectedItem,\n redeemStage,\n amount,\n selectedStep,\n exchangeError,\n queryError: !!queryError,\n loading: loading || exchangeLoading,\n open,\n noExchangeOptions: data?.viewer?.visibleRewardExchangeItems.totalCount === 0,\n },\n data: {\n exchangeList: data?.viewer?.visibleRewardExchangeItems?.data,\n fuelTankCode: exchangeResponse?.exchangeReward?.reward?.fuelTankCode,\n },\n callbacks: {\n exchangeReward,\n setExchangeState,\n setStage,\n resetState,\n copyFuelTankCode,\n },\n refs: {\n canvasRef,\n },\n };\n}\n","import { isDemo } from \"@saasquatch/component-boilerplate\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Host, Prop, State } from \"@stencil/core\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../global/demo\";\nimport { parseStates } from \"../../utils/parseStates\";\nimport { getProps } from \"../../utils/utils\";\nimport { demoRewardExchange } from \"./RewardExchangeListData\";\nimport {\n RewardExchangeView,\n RewardExchangeViewProps,\n} from \"./sqm-reward-exchange-list-view\";\nimport {\n RewardExchangeProps,\n useRewardExchangeList,\n} from \"./useRewardExchangeList\";\n\n/**\n * @uiName Reward Exchange\n * @validParents [\"sqm-portal-container\",\"div\",\"sqm-divided-layout\",\"sqm-brand\",\"template\",\"sqm-hero\",\"sqm-tab\",\"sqb-program-section\",\"sqb-conditional-section\"]\n * @validChildren [\"sqm-empty\"]\n * @slots [{\"name\":\"empty\", \"title\":\"Empty State\"}]\n * @exampleGroup Rewards\n * @example Reward Exchange - <sqm-reward-exchange-list not-available-error=\"{unavailableReasonCode, select, US_TAX {US Tax limit} INSUFFICIENT_REDEEMABLE_CREDIT {{sourceValue} required} AVAILABILITY_PREDICATE {Not available} other {{unavailableReasonCode}} }\" choose-reward-title=\"Rewards\" choose-amount-title=\"Select\" confirmation-title=\"Confirm\" reward-title=\"Choose a reward\" cancel-text=\"Cancel\" back-text=\"Back\" continue-text=\"Continue\" continue-to-confirmation-text=\"Continue to confirmation\" redeem-text=\"Redeem\" redeem-title=\"Confirm and redeem\" redemption-success-text=\"Redeemed {sourceValue} for {destinationValue}\" source-amount-message=\"{ruleType, select, FIXED_GLOBAL_REWARD {{sourceValue}} other {{sourceMinValue} to {sourceMaxValue}}}\" tooltip-text=\"Copied\" done-text=\"Done\" select-text=\"Select amount to receive\" query-error=\"Unable to load reward exchange list. Please try again\" redemption-error=\"An error occured trying to redeem this reward. Please try again\" not-enough-error=\"Not enough {sourceUnit} to redeem for this reward\" reward-redeemed-text=\"Reward redeemed\" promo-code=\"Promo Code\" skeleton-card-num=8 reward-name-title=\"Reward\" reward-amount-title=\"Reward Amount\" cost-title=\"Cost to Redeem\"><sqm-empty empty-state-image=\"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_exchange2.png\" empty-state-header=\"Redeem rewards\" empty-state-text=\"Use your points to redeem rewards once they become available\" slot=\"empty\"></sqm-empty></sqm-reward-exchange-list>\n */\n@Component({\n tag: \"sqm-reward-exchange-list\",\n assetsDirs: [\"assets\"],\n shadow: true,\n})\nexport class SqmRewardExchangeList {\n @State()\n ignored = true;\n\n /**\n * Error message shown when reward is not available\n *\n * @uiName Not available error\n * @uiWidget textArea\n */\n @Prop() notAvailableError: string =\n \"{unavailableReasonCode, select, US_TAX {US Tax limit} INSUFFICIENT_REDEEMABLE_CREDIT {{sourceValue} required} AVAILABILITY_PREDICATE {Not available} other {{unavailableReasonCode}} }\";\n\n /**\n * @uiName Choose reward progress title\n */\n @Prop() chooseRewardTitle: string = \"Rewards\";\n\n /**\n * @uiName Choose amount progress title\n */\n @Prop() chooseAmountTitle: string = \"Select\";\n\n /**\n * @uiName Confirmation progress title\n */\n @Prop() confirmationTitle: string = \"Confirm\";\n\n /**\n * @uiName Reward title text\n */\n @Prop() rewardTitle: string = \"Choose a reward\";\n\n /**\n * @uiName Cancel button text\n */\n @Prop() cancelText: string = \"Cancel\";\n\n /**\n * @uiName Back button text\n */\n @Prop() backText: string = \"Back\";\n\n /**\n * @uiName Continue button text\n */\n @Prop() continueText: string = \"Continue\";\n\n /**\n * Displayed on the reward selection page.\n * @uiName Continue to confirmation button text\n */\n @Prop() continueToConfirmationText: string = \"Continue to confirmation\";\n\n /**\n * @uiName Redeem button text\n */\n @Prop() redeemText: string = \"Redeem\";\n\n /**\n * Displayed as the header for the confirmation page.\n *\n * @uiName Confirmation title text\n */\n @Prop() redeemTitle: string = \"Confirm and redeem\";\n\n /**\n * Displayed on the success screen when a user successfully exchanges for a reward.\n *\n * @uiName Redemption success message\n * @uiWidget textArea\n */\n @Prop() redemptionSuccessText: string =\n \"Redeemed {sourceValue} for {destinationValue}\";\n\n /**\n * Displayed on the reward exchange cards.\n *\n * @uiName Reward exchange amount text\n * @uiWidget textArea\n */\n @Prop() sourceAmountMessage: string =\n \"{ruleType, select, FIXED_GLOBAL_REWARD {{sourceValue}} other {{sourceMinValue} to {sourceMaxValue}}}\";\n\n /**\n * Shown when a user copies a fuel tank code\n *\n * @uiName Tooltip text\n */\n @Prop() tooltipText: string = \"Copied\";\n\n /**\n * @uiName Done text\n */\n @Prop() doneText: string = \"Done\";\n\n /**\n * @uiName Select amount text\n * @uiWidget textArea\n */\n @Prop() selectText: string = \"Select amount to receive\";\n\n /**\n * Shown if an error occurs when loading the reward exchange.\n *\n * @uiName Reward list error message\n * @uiWidget textArea\n */\n @Prop() queryError: string =\n \"Unable to load reward exchange list. Please try again\";\n\n /**\n * Shown if an error occurs during the reward exchange.\n *\n * @uiName Redemption error message\n * @uiWidget textArea\n */\n @Prop() redemptionError: string =\n \"An error occured trying to redeem this reward. Please try again\";\n\n /**\n * @uiName Not enough error message\n * @uiWidget textArea\n */\n @Prop() notEnoughError: string =\n \"Not enough {sourceUnit} to redeem for this reward\";\n\n /**\n * @uiName Reward redeemed text\n */\n @Prop() rewardRedeemedText: string = \"Reward redeemed\";\n\n /**\n * @uiName Promo code text\n */\n @Prop() promoCode: string = \"Promo Code\";\n\n /**\n * Set the number of placeholder cards to be shown in loading state.\n *\n * @uiName Loading cards\n */\n @Prop() skeletonCardNum: number = 8;\n\n /**\n * Shown in the confirmation state.\n *\n * @uiName Reward row title\n */\n @Prop() rewardNameTitle: string = \"Reward\";\n\n /**\n * Shown in the confirmation state.\n *\n * @uiName Reward amount row title\n */\n @Prop() rewardAmountTitle: string = \"Reward Amount\";\n\n /**\n * Shown in the confirmation state.\n *\n * @uiName Cost row title\n */\n @Prop() costTitle: string = \"Cost to Redeem\";\n\n /**\n * @componentState { \"title\": \"Choose reward\", \"props\": { \"states\": { \"redeemStage\": \"chooseReward\" } }, \"dependencies\": [\"sqm-reward-exchange-list\"] }\n * @componentState { \"title\": \"Reward details\", \"props\": { \"states\": { \"redeemStage\": \"chooseAmount\" } }, \"dependencies\": [\"sqm-reward-exchange-list\"] }\n * @componentState { \"title\": \"Confirm exchange\", \"props\": { \"states\": { \"redeemStage\": \"confirmation\" } }, \"dependencies\": [\"sqm-reward-exchange-list\"] }\n * @componentState { \"title\": \"Exchange successful\", \"props\": { \"states\": { \"redeemStage\": \"success\" } }, \"dependencies\": [\"sqm-reward-exchange-list\"] }\n */\n @Prop() stateController: string = \"{}\";\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<RewardExchangeViewProps>;\n\n constructor() {\n withHooks(this);\n }\n\n disconnectedCallback() {}\n\n render() {\n const props: RewardExchangeProps = {\n ...getProps(this),\n empty: <EmptySlot />,\n };\n\n const { states, data, callbacks, refs } = isDemo()\n ? useRewardExchangeListDemo(props)\n : useRewardExchangeList(props);\n\n return (\n <Host style={{ display: \"contents\" }}>\n <RewardExchangeView\n states={states}\n data={data}\n callbacks={callbacks}\n refs={refs}\n ></RewardExchangeView>\n </Host>\n );\n }\n}\n\nfunction EmptySlot() {\n return (\n <slot name=\"empty\">\n <sqm-empty\n emptyStateImage={\n \"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_exchange2.png\"\n }\n emptyStateHeader=\"Redeem rewards\"\n emptyStateText={\n \"Use your points to redeem rewards once they become available\"\n }\n />\n </slot>\n );\n}\n\nfunction useRewardExchangeListDemo(props: RewardExchangeProps) {\n const states = parseStates(props.stateController);\n const formatted = Object.keys(states).reduce(\n (prev, key) =>\n key === \"sqm-reward-exchange-list\"\n ? { ...prev, ...states[key] }\n : { ...prev, [`${key}_stateController`]: states[key] },\n {}\n );\n\n const finalProps = deepmerge(\n { ...demoRewardExchange, content: { text: props } },\n props.demoData || formatted || {},\n { arrayMerge: (_, a) => a }\n );\n return finalProps;\n}\n","import { useCurrentPage, useHost } from \"@saasquatch/component-boilerplate\";\nimport { useEffect, useState } from \"@saasquatch/universal-hooks\";\nimport { pathToRegexp } from \"path-to-regexp\";\nimport debugFn from \"debug\";\nconst debug = debugFn(\"sq:useRouter\");\n\nexport type Route = {\n path: string;\n};\n\nfunction matchPath(pattern: string, page: string) {\n if (!pattern) return;\n const regexp = pathToRegexp(pattern);\n return regexp.exec(page);\n}\n\nexport function useRouter() {\n const location = useCurrentPage();\n\n const host = useHost();\n const [slot, setSlot] = useState<HTMLElement>(undefined);\n const [container, setContainer] = useState<HTMLDivElement>(undefined);\n\n const page = location.pathname;\n\n // convert sqm-routes into templates\n useEffect(() => {\n const routes = host.querySelectorAll<HTMLElement & Route>(`sqm-route`);\n const routesArray = Array.from(routes);\n routesArray.forEach((route) => {\n const newTemplate = document.createElement(\"template\");\n newTemplate.setAttribute(\"path\", route.path);\n newTemplate.innerHTML = route.innerHTML;\n route.parentNode.appendChild(newTemplate);\n route.parentNode.removeChild(route);\n });\n }, []);\n\n useEffect(() => {\n if (!container || !slot) {\n debug(\"DOM not ready for navigation rendering on:\", page);\n return;\n }\n\n // <template>\n const templates = slot.querySelectorAll<HTMLTemplateElement & Route>(\n `template`\n );\n const templatesArray = Array.from(templates);\n\n const template = templatesArray.find((template) => {\n //@ts-ignore\n const path = template.attributes?.path?.nodeValue;\n if (matchPath(path, page)?.length) return template;\n });\n\n //@ts-ignore - can't access template attributes directly\n const templatePath = template?.attributes?.path?.nodeValue;\n\n debug({\n containerDatasetPage: container.dataset.page,\n templatePath,\n page,\n });\n // if no routes found, and the old route doesn't match the new route\n if (!template) {\n // No matching page, display nothing\n debug(\"No matching page found for \", page, \", so render nothing\");\n container.innerHTML = \"\";\n container.dataset.page = page;\n return;\n }\n\n debug(\"Page updated to \", page, template);\n\n // if pathToRegexp results truthy or page is an exact match\n if (!!matchPath(templatePath, container.dataset.page)) {\n debug(\"don't rerender\");\n // Same page, do not re-render\n // Reduces dom mutations, speeds up page speed\n } else if (template) {\n container.innerHTML = template.innerHTML;\n container.dataset.page = page;\n }\n }, [slot, container, page]);\n\n return {\n callbacks: {\n setSlot,\n setContainer,\n },\n };\n}\n","sqm-router {\n /** \n Acts like a slot, doesn't provide it's own box \n see: https://developer.mozilla.org/en-US/docs/Web/CSS/display#box\n **/\n display: contents;\n}\n","import { h, Component, Host, State } from \"@stencil/core\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { useRouter } from \"./useRouter\";\n\n/**\n * @uiName Router\n * @validParents [\"sqm-portal-container\",\"div\",\"sqm-divided-layout\",\"sqm-brand\",\"template\",\"sqm-hero\",\"sqm-tab\", \"sqb-program-section\", \"sqb-conditional-section\"]\n * @validChildren [\"sqm-route\"]\n * @slots [{\"name\":\"\",\"title\":\"Routes\"}]\n */\n@Component({\n tag: \"sqm-router\",\n styleUrl: \"sqm-router.css\",\n})\nexport class SqmRouter {\n @State()\n ignored = true;\n\n constructor() {\n withHooks(this);\n }\n\n disconnectedCallback() {}\n\n render() {\n const { callbacks } = useRouter();\n return (\n <Host>\n <div ref={callbacks.setSlot} style={{ display: \"none\" }}>\n <slot />\n </div>\n <div style={{ display: \"contents\" }} ref={callbacks.setContainer}></div>\n </Host>\n );\n }\n}\n","@include HostBlock;\n\nsl-button {\n display: block;\n}","import { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, Prop, h } from \"@stencil/core\";\nimport { isDemo } from \"@saasquatch/component-boilerplate\";\nimport { ShareButtonView, ShareButtonViewProps } from \"./sqm-share-button-view\";\nimport { useShareButton } from \"./useShareButton\";\nimport { getProps } from \"../../utils/utils\";\nimport { DemoData } from \"../../global/demo\";\nimport deepmerge from \"deepmerge\";\n\n/**\n * @uiName Share Button\n * @validParents [\"sqm-portal-container\",\"div\",\"sqm-divided-layout\",\"sqm-brand\",\"template\",\"sqm-hero\",\"sqb-program-section\",\"sqb-conditional-section\"]\n * @slots [{\"name\":\"\", \"title\":\"Button Content\"}]\n * @slotEditor richText\n * @uiOrder [\"medium\", \"program-id\", \"*\", \"pill\", \"disabled\", \"hideicon\"]\n * @exampleGroup Sharing\n * @example Facebook Share Button - <sqm-share-button medium=\"facebook\">Share on Facebook</sqm-share-button>\n * @example X Share Button - <sqm-share-button medium=\"twitter\">Share via X</sqm-share-button>\n * @example Email Share Button - <sqm-share-button medium=\"email\">Share via Email</sqm-share-button>\n * @example Mobile Share Sheet Button - <sqm-share-button medium=\"direct\">Share</sqm-share-button>\n * @example LinkedIn Share Button - <sqm-share-button medium=\"linkedin\">Share on LinkedIn</sqm-share-button>\n * @example SMS Share Button - <sqm-share-button medium=\"sms\">Text a friend</sqm-share-button>\n * @example Messenger Share Button - <sqm-share-button medium=\"fbmessenger\">Share via Messenger</sqm-share-button>\n * @example WhatsApp Share Button - <sqm-share-button medium=\"whatsapp\">Share via WhatsApp</sqm-share-button>\n * @example LINE Share Button - <sqm-share-button medium=\"linemessenger\">Share via Line Messenger</sqm-share-button>\n * @example Pinterest Share Button - <sqm-share-button medium=\"pinterest\">Share on Pinterest</sqm-share-button>\n */\n@Component({\n tag: \"sqm-share-button\",\n styleUrl: \"sqm-share-button.scss\",\n shadow: true,\n})\nexport class ShareButton {\n /**\n * The social medium to share on. Share messages and links\n * will be pulled from your program config and tagged for analytics.\n *\n * @uiName Share medium\n * @uiType string\n * @required\n * @uiEnum [\"facebook\", \"twitter\", \"email\", \"direct\", \"linkedin\", \"sms\", \"fbmessenger\", \"whatsapp\", \"linemessenger\", \"pinterest\" ]\n * @uiEnumNames [\"Facebook\", \"X\", \"Email\", \"Web Share Sheet\", \"Linkedin\", \"SMS\", \"Facebook Messenger\", \"Whatsapp\", \"Line Messenger\", \"Pinterest\"]\n */\n @Prop() medium:\n | \"facebook\"\n | \"twitter\"\n | \"email\"\n | \"direct\"\n | \"linkedin\"\n | \"sms\"\n | \"fbmessenger\"\n | \"whatsapp\"\n | \"linemessenger\"\n | \"pinterest\"\n | \"reminder\"\n | \"unknown\";\n /**\n * Optional programId, or uses the programId context where this button is rendered.\n *\n * @uiName Program ID\n * @uiWidget programSelector\n */\n @Prop() programId?: string;\n\n //\n // Optional styling attrs\n //\n\n /**\n * Configure border radius with pixel amount\n * @uiName Border radius\n * @uiGroup Style\n */\n @Prop() borderradius?: number;\n /**\n * @uiName Button background color\n * @uiWidget color\n * @format color\n * @uiGroup Style\n */\n @Prop() backgroundcolor?: string;\n\n /**\n * @uiName Border\n * @uiGroup Style\n */\n @Prop() border?: string;\n /**\n * @uiName Button text color\n * @uiWidget color\n * @format color\n * @uiGroup Style\n */\n @Prop() textcolor?: string;\n /**\n * @uiName Display pill\n * @uiGroup Style\n */\n @Prop() pill?: boolean;\n\n /**\n * @uiName Disabled\n */\n @Prop() disabled?: boolean;\n /**\n * @uiType string\n * @uiName Button style\n * @uiEnum [\"primary\", \"secondary\", \"success\", \"info\", \"warning\", \"danger\", \"default\", \"text\" ]\n * @uiEnumNames [\"Primary\", \"Secondary\", \"Success\", \"Info\", \"Warning\", \"Danger\", \"Default\", \"Text\"]\n */\n @Prop() type?:\n | \"primary\"\n | \"secondary\"\n | \"success\"\n | \"info\"\n | \"warning\"\n | \"danger\"\n | \"default\"\n | \"text\" = \"default\";\n /**\n * @uiName Button size\n * @uiType string\n * @uiEnum [\"small\", \"medium\", \"large\" ]\n * @uiEnumNames [\"Small\", \"Medium\", \"Large\"]\n * @uiGroup Style\n */\n @Prop() size?: \"small\" | \"medium\" | \"large\";\n /**\n * @uiName Icon location\n * @uiType string\n * @uiEnum [\"prefix\", \"suffix\" ]\n * @uiEnumNames [\"Prefix\", \"Suffix\"]\n */\n @Prop() iconslot?: \"prefix\" | \"suffix\" = \"prefix\";\n /**\n * Options available at https://shoelace.style/components/icon\n *\n * Icon used in button. Will try to select an icon based on the share medium if left empty.\n *\n * @uiName Icon\n */\n @Prop() icon?: string;\n /**\n * @uiName Hide icon\n * @uiGroup Style\n * @default\n */\n @Prop() hideicon?: boolean = false;\n /**\n * @uiName Hide text\n * @uiGroup Style\n * @default\n */\n @Prop() hidetext?: boolean = false;\n /**\n * Title used for native sharing (mobile only)\n * @uiName Share title\n */\n @Prop() sharetitle?: string;\n /**\n * Text used for native sharing (mobile only)\n * @uiName Share text\n */\n @Prop() sharetext?: string;\n /**\n * Alert text shown if the share link is undefined\n * @uiName Undefined link text\n */\n @Prop() undefinedLinkText?: string = \"Error: message link undefined!\";\n /**\n * Alert text shown if the user's device does not support native sharing\n * @uiName Unsupported platform text\n */\n @Prop() unsupportedPlatformText?: string = \"Error: not on a supported device\";\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<ShareButtonViewProps>;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n const thisProps = getProps(this);\n const props = isDemo()\n ? useDemoShareButton(thisProps)\n : useShareButton(thisProps);\n return (\n <ShareButtonView {...props}>\n <slot />\n </ShareButtonView>\n );\n }\n}\n\nfunction useDemoShareButton(props: ShareButton): ShareButtonViewProps {\n return deepmerge(\n {\n ...props,\n loading: false,\n hide: false,\n onClick: () => {\n // TODO: Provide visual feedback\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import {\n useEngagementMedium,\n useMutation,\n useProgramId,\n useQuery,\n useUserIdentity,\n} from \"@saasquatch/component-boilerplate\";\nimport { useState } from \"@saasquatch/universal-hooks\";\nimport { gql } from \"graphql-request\";\nimport { CopyTextViewProps } from \"../views/copy-text-view\";\n\ninterface ShareCodeProps {\n programId?: string;\n tooltiptext: string;\n tooltiplifespan: number;\n}\n\nconst MessageLinkQuery = gql`\n query ($programId: ID) {\n user: viewer {\n ... on User {\n referralCode(programId: $programId)\n }\n }\n }\n`;\n\nconst WIDGET_ENGAGEMENT_EVENT = gql`\n mutation loadEvent($eventMeta: UserAnalyticsEvent!) {\n createUserAnalyticsEvent(eventMeta: $eventMeta)\n }\n`;\n\nexport function useShareCode(props: ShareCodeProps): CopyTextViewProps {\n const { programId = useProgramId() } = props;\n const user = useUserIdentity();\n const engagementMedium = useEngagementMedium();\n\n const { data } = useQuery(MessageLinkQuery, { programId }, !user?.jwt);\n const [sendLoadEvent] = useMutation(WIDGET_ENGAGEMENT_EVENT);\n\n const copyString =\n data?.user?.referralCode ??\n // Shown during loading\n \"...\";\n\n const [open, setOpen] = useState(false);\n\n function onClick() {\n // Should well supported: https://developer.mozilla.org/en-US/docs/Web/API/Clipboard#browser_compatibility\n // Only if called from a user-initiated event\n navigator.clipboard.writeText(copyString);\n setOpen(true);\n setTimeout(() => setOpen(false), props.tooltiplifespan);\n sendLoadEvent({\n eventMeta: {\n programId,\n id: user?.id,\n accountId: user?.accountId,\n type: \"USER_REFERRAL_PROGRAM_ENGAGEMENT_EVENT\",\n meta: {\n engagementMedium,\n shareMedium: \"DIRECT\",\n },\n },\n });\n }\n\n return { ...props, onClick, open, copyString: copyString };\n}\n","import { isDemo } from \"@saasquatch/component-boilerplate\";\nimport { useState, withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, Prop, h } from \"@stencil/core\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../global/demo\";\nimport { getProps } from \"../../utils/utils\";\nimport { CopyTextView, CopyTextViewProps } from \"../views/copy-text-view\";\nimport { useShareCode } from \"./useShareCode\";\n\n/**\n * @uiName Share Code\n * @validParents [\"sqm-portal-container\",\"div\",\"sqm-divided-layout\",\"sqm-brand\",\"template\",\"sqb-program-section\",\"sqb-conditional-section\", \"sqm-titled-section\"]\n * @exampleGroup Sharing\n * @example Share Code - <sqm-share-code tooltip-text=\"Copied to Clipboard\" tooltip-lifespan=\"1000\"></sqm-share-code>\n */\n@Component({\n tag: \"sqm-share-code\",\n shadow: true,\n})\nexport class ShareCode {\n /**\n * The ID of the program that should generate the code. Defaults to the program ID in context where this widget is loaded.\n *\n * @uiName Program ID\n * @uiWidget programSelector\n */\n @Prop() programId?: string;\n /**\n * Shown inside a tooltip after someone has successfully copied the link to their clipboard\n *\n * @uiName Tooltip text\n */\n @Prop({\n attribute: \"tooltip-text\",\n })\n tooltiptext: string = \"Copied to Clipboard\";\n /**\n * The number of milliseconds that the tooltip appears for\n *\n * @uiName Tooltip lifespan\n */\n @Prop({\n attribute: \"tooltip-lifespan\",\n })\n tooltiplifespan: number = 1000;\n /**\n * Change the text alignment\n *\n * @uiName Share code alignment\n * @uiType string\n * @uiEnum [\"left\", \"center\", \"right\"]\n * @uiEnumNames [\"Left\", \"Center\", \"Right\"]\n * @uiGroup Style\n */\n @Prop({\n attribute: \"text-align\",\n })\n textAlign: \"left\" | \"center\" | \"right\" = \"left\";\n\n /**\n * Background color of share link container\n * @uiName Background color\n * @uiWidget color\n * @format color\n * @uiGroup Style\n */\n @Prop() backgroundColor?: string;\n\n /**\n * Color of the text and copy icon\n * @uiName Text color\n * @uiWidget color\n * @format color\n * @uiGroup Style\n */\n @Prop() textColor?: string;\n\n /**\n * The border radius on the share link container (in pixels)\n * @uiName Border Radius\n * @uiType number\n * @uiGroup Style\n */\n @Prop() borderRadius?: string;\n\n /**\n * @uiName Copy button label\n */\n @Prop({\n attribute: \"copy-button-label\",\n })\n copyButtonLabel?: string = \"Copy Code\";\n\n /**\n * Set the copy button style and placement\n *\n * @uiName Style\n * @uiType string\n * @uiEnum [\"icon\", \"button-outside\", \"button-below\"]\n * @uiEnumNames [\"Icon\", \"Button outside\", \"Button below\"]\n * @uiGroup Style\n */\n @Prop({\n attribute: \"copy-button-style\",\n })\n buttonStyle?: \"icon\" | \"button-outside\" | \"button-below\" = \"icon\";\n\n /**\n * The type of the button that is used (primary or secondary).\n * @uiName Button Type\n * @uiType string\n * @uiEnum [\"primary\", \"secondary\"]\n * @uiEnumNames [\"Primary\", \"Secondary\"]\n * @uiGroup Style\n */\n @Prop()\n buttonType?: \"primary\" | \"secondary\" = \"primary\";\n\n /**\n * Border color of share link container\n * @uiName Border color\n * @uiWidget color\n * @format color\n * @uiGroup Style\n */\n @Prop() borderColor?: string;\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<CopyTextViewProps>;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n const thisProps = getProps(this);\n const props = isDemo()\n ? useDemoShareCode(thisProps)\n : useShareCode(thisProps);\n return <CopyTextView {...props} />;\n }\n}\n\nfunction useDemoShareCode(props: ShareCode): CopyTextViewProps {\n const [open, setOpen] = useState(false);\n const copyString = \"SHARECODE001\";\n return deepmerge(\n {\n copyString: copyString,\n tooltiptext: props.tooltiptext,\n textAlign: props.textAlign,\n copyButtonLabel: props.copyButtonLabel,\n buttonStyle: props.buttonStyle,\n backgroundColor: props.backgroundColor,\n textColor: props.textColor,\n borderRadius: props.borderRadius,\n borderColor: props.borderColor,\n buttonType: props.buttonType,\n rewardStatus: \"AVAILABLE\",\n open,\n onClick: () => {\n // Should well supported: https://developer.mozilla.org/en-US/docs/Web/API/Clipboard#browser_compatibility\n // Only if called from a user-initiated event\n navigator.clipboard.writeText(copyString);\n setOpen(true);\n setTimeout(() => setOpen(false), props.tooltiplifespan);\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import { isDemo } from \"@saasquatch/component-boilerplate\";\nimport { useState, withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, Prop, h } from \"@stencil/core\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../global/demo\";\nimport { getProps } from \"../../utils/utils\";\nimport { CopyTextView, CopyTextViewProps } from \"../views/copy-text-view\";\nimport { useShareLink } from \"./useShareLink\";\n\n/**\n * @uiName Share Link\n * @exampleGroup Sharing\n * @validParents [\"sqm-portal-container\", \"sqm-titled-section\", \"div\",\"sqm-hero\",\"sqm-referral-card\",\"sqm-instant-access-registration\",\"sqb-program-section\",\"sqb-conditional-section\"]\n * @example Share Link - <sqm-share-link tooltip-text=\"Copied to Clipboard\" tooltip-lifespan=\"1000\"></sqm-share-link>\n */\n@Component({\n tag: \"sqm-share-link\",\n shadow: true,\n})\nexport class ShareLink {\n /**\n * The ID of the program that should generate the link. Defaults to the program ID in context where this widget is loaded.\n *\n * @uiName Program ID\n * @uiWidget programSelector\n */\n @Prop() programId?: string;\n\n /**\n * Shown inside a tooltip after someone has successfully copied the link to their clipboard\n *\n * @uiName Tooltip text\n */\n @Prop({\n attribute: \"tooltip-text\",\n })\n tooltiptext: string = \"Copied to Clipboard\";\n\n /**\n * The number of milliseconds that the tooltip appears for\n *\n * @uiName Tooltip lifespan\n */\n @Prop({\n attribute: \"tooltip-lifespan\",\n })\n tooltiplifespan: number = 1000;\n\n /**\n * Change the text alignment\n *\n * @uiName Share link alignment\n * @uiType string\n * @uiEnum [\"left\", \"center\", \"right\"]\n * @uiEnumNames [\"Left\", \"Center\", \"Right\"]\n * @uiGroup Style\n */\n @Prop({\n attribute: \"text-align\",\n })\n textAlign?: \"left\" | \"center\" | \"right\" = \"left\";\n\n /**\n * @uiName Copy button label\n */\n @Prop({\n attribute: \"copy-button-label\",\n })\n copyButtonLabel: string = \"Copy Link\";\n\n /**\n * Background color of share link container\n * @uiName Background color\n * @uiWidget color\n * @format color\n * @uiGroup Style\n */\n @Prop() backgroundColor?: string;\n\n /**\n * Border color of share link container\n * @uiName Border color\n * @uiWidget color\n * @format color\n * @uiGroup Style\n */\n @Prop() borderColor?: string;\n\n /**\n * Color of the text and copy icon\n * @uiName Text color\n * @uiWidget color\n * @format color\n * @uiGroup Style\n */\n @Prop() textColor?: string;\n\n /**\n * The border radius on the share link container (in pixels)\n * @uiName Border Radius\n * @uiType number\n * @uiGroup Style\n */\n @Prop() borderRadius?: string;\n\n /**\n * The type of the button that is used (primary or secondary).\n * @uiName Button Type\n * @uiType string\n * @uiEnum [\"primary\", \"secondary\"]\n * @uiEnumNames [\"Primary\", \"Secondary\"]\n * @uiGroup Style\n */\n @Prop()\n buttonType?: \"primary\" | \"secondary\" = \"primary\";\n\n /**\n * Set the copy button style and placement\n *\n * @uiName Button style\n * @uiType string\n * @uiEnum [\"icon\", \"button-outside\", \"button-below\"]\n * @uiEnumNames [\"Icon\", \"Button outside\", \"Button below\"]\n * @uiGroup Style\n */\n @Prop({\n attribute: \"copy-button-style\",\n })\n buttonStyle?: \"icon\" | \"button-outside\" | \"button-below\" = \"icon\";\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<CopyTextViewProps>;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n const thisProps = getProps(this);\n const props = isDemo()\n ? useDemoShareLink(thisProps)\n : useShareLink(thisProps);\n return <CopyTextView {...props} />;\n }\n}\n\nfunction useDemoShareLink(props: ShareLink): CopyTextViewProps {\n const [open, setOpen] = useState(false);\n const copyString = \"https://www.example.com/sharelink/abc\";\n\n return deepmerge(\n {\n copyString: copyString,\n tooltiptext: props.tooltiptext,\n textAlign: props.textAlign,\n buttonStyle: props.buttonStyle,\n backgroundColor: props.backgroundColor,\n textColor: props.textColor,\n borderRadius: props.borderRadius,\n buttonType: props.buttonType,\n copyButtonLabel: props.copyButtonLabel,\n borderColor: props.borderColor,\n rewardStatus: \"AVAILABLE\",\n open,\n onClick: () => {\n // Should well supported: https://developer.mozilla.org/en-US/docs/Web/API/Clipboard#browser_compatibility\n // Only if called from a user-initiated event\n navigator.clipboard.writeText(copyString);\n setOpen(true);\n setTimeout(() => setOpen(false), props.tooltiplifespan);\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import { Component, h, Prop, State } from \"@stencil/core\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { StatContainerView } from \"./sqm-stat-container-view\";\nimport { getProps } from \"../../utils/utils\";\nimport { Spacing } from \"../../global/mixins\";\n\n/**\n * @uiName Stat Container\n * @validParents [\"sqm-portal-container\",\"div\",\"sqm-divided-layout\",\"sqm-brand\",\"template\",\"sqm-hero\", \"sqb-program-section\", \"sqb-conditional-section\"]\n * @validChildren [\"sqm-big-stat\"]\n * @slots [{\"name\":\"\", \"title\":\"Stats\"}]\n * @exampleGroup Statistics\n * @example Container with Three Stats - <sqm-stat-container space=\"xxx-large\" display=\"flex\"><sqm-big-stat flex-reverse=\"true\" alignment=\"left\" stat-type=\"/rewardBalance/CREDIT/POINT/value/global\"><p>Points Balance</p></sqm-big-stat><sqm-big-stat flex-reverse=\"true\" alignment=\"left\" stat-type=\"/integrationRewardsCountFiltered/AVAILABLE/global\"><p>Giftcards Earned</p></sqm-big-stat><sqm-big-stat flex-reverse=\"true\" alignment=\"left\" stat-type=\"/referralsCount\"><p>Referrals</p></sqm-big-stat></sqm-stat-container>\n */\n@Component({\n tag: \"sqm-stat-container\",\n shadow: true,\n})\nexport class StatContainer {\n @State()\n ignored = true;\n\n /**\n * @uiName Space between stats\n * @uiType string\n * @uiEnum [\"none\", \"xxx-small\", \"xx-small\", \"x-small\", \"small\", \"medium\", \"large\", \"x-large\", \"xx-large\", \"xxx-large\", \"xxxx-large\"]\n * @uiEnumNames [\"None\", \"XXX-Small\", \"XX-Small\", \"X-Small\", \"Small\", \"Medium\", \"Large\", \"X-Large\", \"XX-Large\", \"XXX-Large\", \"XXXX-Large\"]\n */\n @Prop() space: Spacing = \"xxx-large\";\n\n /**\n * @undocumented\n * @uiName Display\n * @uiType string\n * @uiEnum [\"grid\", \"flex\"]\n * @uiEnumNames [\"Grid\", \"Flex\"]\n */\n @Prop() display: \"grid\" | \"flex\" = \"flex\";\n\n /**\n * Hide the seperating border between stats\n * @uiName Hide border\n * @uiType boolean\n */\n @Prop() hideBorder?: boolean;\n\n /**\n * Controls the alignment of the flexbox\n *\n * @uiName Alignment\n * @uiType string\n * @uiEnum [\"left\", \"right\", \"center\"]\n * @uiEnumNames [\"Left\", \"Right\", \"Center\"]\n */\n @Prop() alignment?: \"left\" | \"right\" | \"center\" = \"center\";\n\n /**\n * @uiName Gap\n * @uiType string\n * @uiEnum [\"none\", \"xxx-small\", \"xx-small\", \"x-small\", \"small\", \"medium\", \"large\", \"x-large\", \"xx-large\", \"xxx-large\", \"xxxx-large\"]\n * @uiEnumNames [\"None\", \"XXX-Small\", \"XX-Small\", \"X-Small\", \"Small\", \"Medium\", \"Large\", \"X-Large\", \"XX-Large\", \"XXX-Large\", \"XXXX-Large\"]\n */\n @Prop() gap: Spacing = \"x-large\";\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n return (\n <StatContainerView {...getProps(this)}>\n <slot />\n </StatContainerView>\n );\n }\n}\n","import {\n useMutation,\n useUserIdentity,\n useRefreshDispatcher,\n useLocale,\n} from \"@saasquatch/component-boilerplate\";\nimport { useEffect } from \"@saasquatch/stencil-hooks\";\nimport { gql } from \"graphql-request\";\nimport { TaskCard } from \"./sqm-task-card\";\n\nconst SEND_EVENT = gql`\n mutation taskCardEvent($userEventInput: UserEventInput!) {\n logUserEvent(userEventInput: $userEventInput) {\n userId\n }\n }\n`;\n\nexport function useTaskCard(props: TaskCard) {\n const user = useUserIdentity();\n const locale = useLocale();\n const [sendUserEvent, { data, loading: loadingEvent }] =\n useMutation(SEND_EVENT);\n\n const { refresh } = useRefreshDispatcher();\n useEffect(() => {\n if (data) {\n refresh();\n openLink();\n }\n }, [data]);\n\n function openLink() {\n props.openNewTab\n ? window.open(props.buttonLink)\n : window.open(props.buttonLink, \"_parent\");\n }\n\n function sendEvent(eventKey: string) {\n sendUserEvent({\n userEventInput: {\n userId: user?.id,\n accountId: user?.accountId,\n events: [{ key: eventKey, fields: {} }],\n },\n });\n }\n\n function onClick() {\n props.eventKey ? sendEvent(props.eventKey) : openLink();\n }\n\n const styles = {\n card: {\n backgroundColor: props.backgroundColor,\n textColor: props.textColor,\n borderColor: props.borderColor,\n borderRadius: props.borderRadius,\n buttonType: props.buttonType,\n },\n };\n\n return {\n states: { loadingEvent, locale },\n styles,\n callbacks: { sendEvent, onClick },\n };\n}\n","import { isDemo } from \"@saasquatch/component-boilerplate\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Prop, State } from \"@stencil/core\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../global/demo\";\nimport { getProps } from \"../../utils/utils\";\nimport { BigStatViewProps } from \"../sqm-big-stat/sqm-big-stat-view\";\nimport { useBigStat } from \"../sqm-big-stat/useBigStat\";\nimport { useDemoBigStat } from \"../sqm-big-stat/useDemoBigStat\";\nimport { TaskCardView, TaskCardViewProps } from \"./sqm-task-card-view\";\nimport { useTaskCard } from \"./useTaskCard\";\n\n/**\n * @uiName Task Card\n * @uiOrder [\"reward-amount\", \"reward-unit\", \"card-title\", \"description\", \"repeatable\", \"finite\", \"show-progress-bar\", \"stat-type\", \"progress-source\", \"goal\", \"steps\", \"progress-bar-unit\", \"show-expiry\", \"reward-duration\", \"button-text\", \"button-link\", \"open-new-tab\", \"ended-message\", \"expiry-message\", \"starts-on-message\", \"event-key\", \"*\"]\n * @validParents [\"sqm-card-feed\"]\n */\n@Component({\n tag: \"sqm-task-card\",\n shadow: true,\n})\nexport class TaskCard {\n @State()\n ignored = true;\n\n /**\n * @uiName Reward amount\n * @uiGroup Reward\n */\n @Prop()\n rewardAmount: string = \"0\";\n\n /**\n * @uiName Reward unit\n * @uiGroup Reward\n */\n @Prop()\n rewardUnit: string = \"Points\";\n\n /**\n * @uiName Title\n * @uiGroup Task\n */\n @Prop()\n cardTitle: string = \"Title Text\";\n\n /**\n * @uiName Description\n * @uiGroup Task\n */\n @Prop()\n description: string = \"\";\n\n /**\n * @uiName Goal repeatable\n * @uiGroup Goal\n * @default\n */\n @Prop()\n repeatable: boolean = false;\n\n /**\n * The number of times a task can be completed when repeatable. Use zero for no limit (the default).\n *\n * @uiName Repeat amount\n * @uiGroup Reward\n */\n @Prop()\n finite: number = 0;\n\n /**\n * @uiName Show progress bar\n * @uiGroup Goal\n * @default\n */\n @Prop()\n showProgressBar: boolean = false;\n\n /**\n * Sets the goal for users progress to know when a task has been completed. If repeatable is checked, repeatable goals is an increment of this.\n *\n * @uiName Goal completion number\n * @uiGroup Goal\n */\n @Prop()\n goal: number = 1;\n\n /**\n * @uiName Progress bar steps\n * @uiGroup Goal\n * @default\n */\n @Prop()\n steps: boolean = false;\n\n /**\n * The unit displayed to the right of steps and progress numbers on the progress bar. Ex: $ for dollars\n *\n * @uiName Progress bar unit\n * @uiGroup Goal\n */\n @Prop()\n progressBarUnit: string = \"\";\n\n /**\n * Displayed when a user views a task card after the reward duration interval.\n *\n * @uiName Expiry date message\n * @uiGroup Task\n */\n @Prop() expiryMessage: string = \"Ends {endDate}\";\n\n /**\n * Task cards are disabled to users outside of the duration. They are not disabled if no duration is configured.\n *\n * @uiName Reward duration\n * @uiWidget dateRange\n * @uiWidgetOptions {\"allowPastDates\":true, \"months\": 1}\n * @uiGroup Reward\n */\n @Prop() rewardDuration: string;\n\n /**\n * Shown to users before the start of the task duration.\n *\n * @uiName Start date message\n * @uiGroup Task\n */\n @Prop() startsOnMessage: string = \"Starts {startDate}\";\n\n /**\n * Task cards are hidden from users outside of the duration. They are always displayed if no duration is configured.\n *\n * @uiName Display duration\n * @uiWidget dateRange\n * @uiWidgetOptions {\"allowPastDates\":true, \"months\": 1}\n * @uiGroup Task\n */\n @Prop() displayDuration: string;\n\n /**\n * Shown to users after the end of the task duration.\n *\n * @uiName Ended date message\n * @uiGroup Task\n */\n @Prop() endedMessage: string = \"Ended {endDate}\";\n\n /**\n * Displays the amount of times that a user has completed a repeatable task.\n *\n * @uiName Completed count text\n * @uiGroup Task\n * @uiWidget textArea\n */\n @Prop() completedText: string =\n \"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\";\n\n /**\n * @uiName Button text\n * @uiGroup Button\n */\n @Prop()\n buttonText: string = \"Complete Action\";\n\n /**\n * @uiName Button link\n * @uiGroup Button\n */\n @Prop()\n buttonLink: string;\n\n /**\n * Button link opens in new tab\n * @uiName Open in new tab\n * @uiGroup Button\n * @default\n */\n @Prop()\n openNewTab: boolean = false;\n\n /**\n * Select what type of stat to display for the goal. Manual paths are also supported.\n *\n * @uiName Goal progress source\n * @required\n * @minLength 1\n * @uiWidget statTypeSelectWidget\n * @uiWidgetOptions {\"version\": 1.1}\n * @uiGroup Goal\n */\n @Prop()\n statType: string;\n\n /**\n * Optionally send an event to SaaSquatch when a user clicks the button. Enter your event key into this field.\n *\n * @uiName Task card button event key\n * @uiGroup Button\n */\n @Prop() eventKey?: string;\n\n /**\n * The ID of the program that is used to scope the task card. When no ID is specified, it defaults to the program context in which the component is rendered.\n *\n * @uiName Program ID override\n * @uiWidget programSelector\n * @uiGroup Goal\n */\n @Prop() programId?: string;\n\n /**\n * @uiName Hide CTA button\n * @uiGroup Button\n */\n @Prop() hideButton?: boolean = false;\n\n /**\n * @uiName Card Background color\n * @uiWidget color\n * @uiGroup Style\n */\n @Prop()\n backgroundColor?: string;\n\n /**\n * @uiName Text color\n * @uiWidget color\n * @uiGroup Style\n */\n @Prop()\n textColor?: string;\n\n /**\n * @uiName Border color\n * @uiWidget color\n * @uiGroup Style\n */\n @Prop()\n borderColor?: string;\n\n /**\n * @uiName Border radius\n * @uiType number\n * @uiGroup Style\n */\n @Prop()\n borderRadius?: number;\n\n /**\n * @uiName Button Style\n * @uiType string\n * @uiEnum [\"primary\", \"secondary\"]\n * @uiEnumNames [\"Primary\", \"Secondary\"]\n * @uiGroup Style\n */\n @Prop()\n buttonType?: \"primary\" | \"secondary\" = \"primary\";\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<TaskCardViewProps | BigStatViewProps>;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n const { props } = isDemo()\n ? useDemoBigStat(getProps(this))\n : useBigStat({ ...getProps(this), programId: this.programId });\n const { value, loading } = props;\n\n const { states, callbacks } = isDemo()\n ? useTaskCardDemo(getProps(this))\n : useTaskCard(this);\n return (\n <TaskCardView\n callbacks={callbacks}\n states={{\n loading,\n loadingEvent: states.loadingEvent,\n progress: value,\n locale: states.locale,\n }}\n content={{ ...getProps(this) }}\n ></TaskCardView>\n );\n }\n}\n\nfunction useTaskCardDemo(props: TaskCard) {\n return deepmerge(\n {\n content: { ...props },\n states: { loadingEvent: false, locale: \"en\" },\n callbacks: {\n sendEvent: (event: string) => console.log(event),\n onClick: () => console.log(\"clicked\"),\n },\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import {\n getContextValueName,\n useHost,\n useLocale,\n useParentQuery,\n useParentState,\n useUserIdentity,\n} from \"@saasquatch/component-boilerplate\";\nimport { useEffect, useMemo } from \"@saasquatch/universal-hooks\";\nimport { getCountryObj } from \"../utils\";\nimport {\n COUNTRIES_NAMESPACE,\n COUNTRIES_QUERY_NAMESPACE,\n CountriesQuery,\n Currencies,\n CURRENCIES_NAMESPACE,\n CURRENCIES_QUERY_NAMESPACE,\n CurrenciesQuery,\n FINANCE_NETWORK_SETTINGS_NAMESPACE,\n FinanceNetworkSettingsQuery,\n GET_COUNTRIES,\n GET_CURRENCIES,\n GET_FINANCE_NETWORK_SETTINGS,\n GET_USER,\n SORTED_COUNTRIES_NAMESPACE,\n TAX_CONTEXT_NAMESPACE,\n TAX_FORM_CONTEXT_NAMESPACE,\n TaxContext,\n TaxCountry,\n USER_FORM_CONTEXT_NAMESPACE,\n USER_QUERY_NAMESPACE,\n UserFormContext,\n UserQuery,\n} from \"../data\";\n\nfunction getCurrentStep(user: UserQuery[\"user\"]) {\n if (!user.impactConnection?.connected || !user.impactConnection?.publisher) {\n return \"/1\";\n }\n\n const {\n requiredTaxDocumentType,\n currentTaxDocument,\n withdrawalSettings,\n brandedSignup,\n payoutsAccount,\n } = user.impactConnection.publisher;\n\n // If they do have a required document, look at current document\n if (requiredTaxDocumentType && !currentTaxDocument) {\n // Specific to custom CASH setting,\n if (\n payoutsAccount.hold &&\n payoutsAccount.holdReasons.includes(\"NO_W9_DOCUMENT\")\n )\n return \"/dashboard\";\n\n return \"/3\";\n }\n\n if (!withdrawalSettings && brandedSignup) return \"/4\";\n\n return \"/dashboard\";\n}\n\nexport function useTaxAndCash() {\n const host = useHost();\n const user = useUserIdentity();\n const locale = useLocale();\n\n // State for current step of form\n const [step, setStep] = useParentState<string>({\n namespace: TAX_CONTEXT_NAMESPACE,\n initialValue: \"/loading\",\n });\n\n // State for when to hide steps, or override certain actions\n const [context, _setContext] = useParentState<TaxContext>({\n namespace: TAX_FORM_CONTEXT_NAMESPACE,\n initialValue: {} as TaxContext,\n });\n\n // State to carry user form information into step 2\n const [userFormContext, _setUserFormContext] =\n useParentState<UserFormContext>({\n namespace: USER_FORM_CONTEXT_NAMESPACE,\n initialValue: {\n firstName: undefined,\n lastName: undefined,\n email: undefined,\n countryCode: undefined,\n currency: undefined,\n } as UserFormContext,\n });\n\n const [_currenciesContext, setCurrenciesContext] = useParentState<Currencies>(\n {\n namespace: CURRENCIES_NAMESPACE,\n initialValue: [],\n }\n );\n\n const [_countriesContext, _setCountriesContext] = useParentState<\n TaxCountry[]\n >({\n namespace: COUNTRIES_NAMESPACE,\n initialValue: [],\n });\n\n const [_sortedCountriesContext, setSortedCountriesContext] = useParentState<\n TaxCountry[]\n >({\n namespace: SORTED_COUNTRIES_NAMESPACE,\n initialValue: [],\n });\n\n const { data, errors } = useParentQuery<UserQuery>({\n namespace: USER_QUERY_NAMESPACE,\n query: GET_USER,\n skip: !user,\n options: {\n batch: false,\n },\n });\n\n const countryCode =\n data?.user?.impactConnection?.publisher?.countryCode ||\n userFormContext.countryCode;\n\n useParentQuery<CountriesQuery>({\n namespace: COUNTRIES_QUERY_NAMESPACE,\n query: GET_COUNTRIES,\n skip: !user,\n });\n\n const { data: financeNetworkData, refetch } =\n useParentQuery<FinanceNetworkSettingsQuery>({\n namespace: FINANCE_NETWORK_SETTINGS_NAMESPACE,\n query: GET_FINANCE_NETWORK_SETTINGS,\n skip: !user,\n variables: {\n filter: getFinanceNetworkFilter(),\n },\n });\n\n const { data: currenciesData } = useParentQuery<CurrenciesQuery>({\n namespace: CURRENCIES_QUERY_NAMESPACE,\n query: GET_CURRENCIES,\n skip: !user,\n variables: {\n locale,\n },\n });\n\n const supportedCurrencies = useMemo(() => {\n // Filter out any currencies not supported by finance network settings\n const allValidCurrencies =\n financeNetworkData?.impactFinanceNetworkSettings?.data?.reduce(\n (agg, settings) => {\n const currency = currenciesData?.currencies?.data?.find(\n (currency) => currency.currencyCode === settings.currency\n );\n // Currency not in supported list\n if (!currency) return agg;\n // Currency already added to list\n if (\n agg.find((currency) => currency.currencyCode === settings.currency)\n )\n return agg;\n // Currency not supported by selected country\n if (\n userFormContext.countryCode &&\n settings.countryCode !== countryCode\n )\n return agg;\n\n return [...agg, currency];\n },\n []\n );\n return allValidCurrencies;\n }, [financeNetworkData, countryCode]);\n\n const intlLocale = locale?.replace(\"_\", \"-\") || \"en\";\n\n const sortByName = (a: TaxCountry, b: TaxCountry) =>\n a.displayName < b.displayName ? -1 : 1;\n\n const paymentOptions = financeNetworkData?.impactFinanceNetworkSettings?.data;\n\n // filter out any duplicate countries and null countryCode\n const availableCountries = useMemo(\n () =>\n new Set(\n paymentOptions\n ?.map((option) => option.countryCode)\n .filter((value) => value)\n ),\n [paymentOptions]\n );\n\n const _topCountries = [\"CA\", \"GB\", \"US\"];\n\n const sortedCountries = useMemo(\n () =>\n Array.from(availableCountries)\n .map((countryCode) =>\n getCountryObj({ countryCode, locale: intlLocale })\n )\n .sort(sortByName)\n .reduce((prev, countryObj) => {\n if (_topCountries.includes(countryObj.countryCode))\n return [countryObj, ...prev];\n return [...prev, countryObj];\n }, []),\n [availableCountries]\n );\n\n useEffect(() => {\n if (sortedCountries) setSortedCountriesContext(sortedCountries);\n }, [sortedCountries]);\n\n useEffect(() => {\n if (supportedCurrencies) setCurrenciesContext(supportedCurrencies);\n }, [supportedCurrencies]);\n\n useEffect(() => {\n if (errors) {\n setStep(\"/error\");\n return;\n }\n if (!host || !user) return;\n\n if (data) {\n const user = data?.user;\n\n if (!user || step !== \"/loading\") return;\n\n const currentStep = getCurrentStep(user);\n setStep(currentStep);\n }\n }, [host, user, data?.user?.email, errors]);\n\n function getFinanceNetworkFilter() {\n if (step === \"/1\") return {};\n if (step === \"/4\")\n return { currency_eq: data?.user?.impactConnection?.publisher?.currency };\n\n if (countryCode)\n return {\n countryCode_eq: countryCode,\n };\n return {};\n }\n\n return {\n step,\n setStep,\n context,\n namespace: getContextValueName(TAX_CONTEXT_NAMESPACE),\n loading: step === \"/loading\",\n };\n}\n\nexport type UseTaxAndCashResultType = ReturnType<typeof useTaxAndCash>;\n","import { isDemo, useParentState } from \"@saasquatch/component-boilerplate\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, Prop, h } from \"@stencil/core\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../../global/demo\";\nimport { parseStates } from \"../../../utils/parseStates\";\nimport { getProps } from \"../../../utils/utils\";\nimport { ErrorView } from \"./ErrorView\";\nimport LoadingView from \"./LoadingView\";\nimport { TAX_CONTEXT_NAMESPACE } from \"../data\";\nimport { extractProps } from \"./extractProps\";\nimport { UseTaxAndCashResultType, useTaxAndCash } from \"./useTaxAndCash\";\nimport { intl } from \"../../../global/global\";\n\n/**\n * @uiName Tax and Cash\n * @exampleGroup Tax and Cash\n * @validParents [\"sqm-portal-container\",\"div\",\"sqm-hero\",\"sqm-instant-access-registration\",\"sqb-program-section\",\"sqb-conditional-section\", \"template\"]\n * @example Microsite Cash Payout Form - <sqm-tax-and-cash></sqm-tax-and-cash>\n */\n@Component({\n tag: \"sqm-tax-and-cash\",\n shadow: true,\n})\nexport class TaxAndCashMonolith {\n /*---------------------------------------------------------------------------------\n !IMPORTANT!: Make sure to also change the prop names in the respective component\n -----------------------------------------------------------------------------------*/\n\n /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n STEP 1 PROPS:\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/\n\n /**\n * @uiName First name field label\n * @uiGroup Step 1 Properties\n */\n @Prop() step1_firstName: string = \"First name\";\n /**\n * @uiName Last name field label\n * @uiGroup Step 1 Properties\n */\n @Prop() step1_lastName: string = \"Last name\";\n /**\n * @uiName Email field label\n * @uiGroup Step 1 Properties\n */\n @Prop() step1_email: string = \"Email\";\n /**\n * @uiName Country field label\n * @uiGroup Step 1 Properties\n */\n @Prop() step1_country: string = \"Country\";\n /**\n * @uiName Phone number field label\n * @uiGroup Step 1 Properties\n */\n @Prop() step1_phoneNumber: string = \"Phone number\";\n /**\n * @uiName Address field label\n * @uiGroup Step 1 Properties\n */\n @Prop() step1_address: string = \"Address\";\n /**\n * @uiName City field label\n * @uiGroup Step 1 Properties\n */\n @Prop() step1_city: string = \"City\";\n /**\n * @uiName State field label for states\n * @uiGroup Step 1 Properties\n */\n @Prop() step1_state: string = \"State\";\n /**\n * @uiName State field label for provinces\n * @uiGroup Step 1 Properties\n */\n @Prop() step1_province: string = \"Province\";\n /**\n * @uiName State field label for regions\n * @uiGroup Step 1 Properties\n */\n @Prop() step1_region: string = \"Region\";\n /**\n * @uiName Postal code field label\n * @uiGroup Step 1 Properties\n */\n @Prop() step1_postalCode: string = \"Postal code\";\n /**\n * @uiName Currency field label\n * @uiGroup Step 1 Properties\n */\n @Prop() step1_currency: string = \"Currency\";\n /**\n * @uiName Currency field help text\n * @uiGroup Step 1 Properties\n */\n @Prop() step1_currencyHelpText: string =\n \"Choose your preferred payout currency\";\n /**\n * Edit the property called terms and conditions text to change what's displayed for {termsAndConditionsLink}.\n * @uiName Terms and conditions checkbox\n * @uiGroup Step 1 Properties\n */\n @Prop() step1_allowBankingCollection: string =\n \"I have read the {termsAndConditionsLink} and allow impact.com to collect my tax and banking information\";\n /**\n * @uiName Step 1 title\n * @uiGroup Step 1 Properties\n */\n @Prop() step1_personalInformation: string = \"Personal Information\";\n /**\n * The link text that appears in the terms and conditions checkbox\n * @uiName Terms and conditions text\n * @uiGroup Step 1 Properties\n * @uiWidget textArea\n */\n @Prop() step1_termsAndConditionsLabel: string = \"terms and conditions\";\n /**\n * The link that appears in the terms and conditions checkbox\n * @uiName Terms and conditions link\n * @uiGroup Step 1 Properties\n */\n @Prop() step1_termsAndConditionsLink: string =\n \"https://terms.advocate.impact.com/PayoutTermsAndConditions.html\";\n /**\n * Placeholder text displayed in the currency search dropdown\n * @uiName Currency field placeholder text\n * @uiGroup Step 1 Properties\n */\n @Prop() step1_searchForCurrencyText: string = \"Search for currency..\";\n /**\n\n /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n STEP 2 PROPS:\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/\n\n /**\n * @uiName Step 2 title\n * @uiGroup Step 2 Properties\n */\n @Prop() step2_indirectTax: string = \"Indirect Tax\";\n /**\n * Displayed under the title of this step.\n * @uiName Step 2 description\n * @uiGroup Step 2 Properties\n * @uiWidget textArea\n */\n @Prop() step2_indirectTaxDescription: string =\n \"Indirect taxes (e.g. VAT, HST, GST) are transaction based taxes often applied to goods and services. Service providers are typically required to register with their tax authority and collect these taxes on behalf governments.\";\n /**\n * Displayed with indirect tax registration options.\n * @uiName Indirect tax details section title\n * @uiGroup Step 2 Properties\n */\n @Prop() step2_indirectTaxDetails: string = \"Indirect tax details\";\n /**\n * @uiName Registered for indirect tax option\n * @uiGroup Step 2 Properties\n * @uiWidget textArea\n *\n */\n @Prop() step2_otherRegion: string = \"Registered for indirect tax\";\n /**\n * Selecting this option will display fields to enter indirect tax details.\n * @uiName Registered for indirect tax option description\n * @uiGroup Step 2 Properties\n */\n @Prop() step2_otherRegionSubtext: string =\n \"If you’ve registered with your tax authority, add your information to stay tax compliant.\";\n /**\n * @uiName Not registered for indirect tax option\n * @uiGroup Step 2 Properties\n * @uiWidget textArea\n */\n @Prop() step2_notRegistered: string = \"Not registered for indirect tax\";\n /**\n * Participants based in the US are considered not registered.\n * @uiName Not registered for indirect tax option description\n * @uiGroup Step 2 Properties\n */\n @Prop() step2_notRegisteredSubtext: string =\n \"If you’ve never set up indirect tax with your tax authority, then you’re likely not considered registered.\";\n /**\n * @uiName Region of indirect tax field label\n * @uiGroup Step 2 Properties\n */\n @Prop() step2_selectedRegion: string = \"Country / region of indirect tax\";\n /**\n * @uiName Indirect tax number field label\n * @uiGroup Step 2 Properties\n */\n @Prop() step2_indirectTaxNumber: string =\n \"{taxType, select, GST {GST number} HST {HST number} VAT {VAT number} CT {CT number} SST {SST number} GENERAL {Indirect tax number}}\";\n /**\n * @uiName Province field label\n * @uiGroup Step 2 Properties\n */\n @Prop() step2_province: string = \"Province\";\n /**\n * @uiName Missing indirect tax number error message\n * @uiGroup Step 2 Properties\n */\n @Prop() step2_indirectTaxNumberError: string =\n \"{taxType, select, GST {GST number} HST {HST number} VAT {VAT number} CT {CT number} SST {SST number} GENERAL {Indirect tax number}} is required\";\n\n /**\n * Displayed to participants registered for QST.\n * @uiName QST number field label\n * @uiGroup Step 2 Properties\n */\n @Prop() step2_qstNumber: string = \"QST number\";\n /**\n * Displayed to participants registered for indirect tax in Quebec, Canada.\n * @uiName QST tax checkbox\n * @uiGroup Step 2 Properties\n */\n @Prop() step2_isRegisteredQST: string = \"I am registered for QST Tax\";\n /**\n * Displayed to participants registered for indirect tax in Spain.\n * @uiName Spain income tax checkbox\n * @uiGroup Step 2 Properties\n * @uiWidget textArea\n */\n @Prop() step2_isRegisteredSubRegionIncomeTax: string =\n \"I am an individual registered for Income Tax purposes in Spain, and withholding tax will apply to any payments made to me.\";\n /**\n * Displayed to participants registered in Spain.\n * @uiName Sub-region of indirect tax field label\n * @uiGroup Step 2 Properties\n */\n @Prop() step2_subRegion: string = \"Sub-region\";\n /**\n * @uiName Income tax field label\n * @uiGroup Step 2 Properties\n */\n @Prop() step2_subRegionTaxNumberLabel: string = \"Income Tax Number\";\n /**\n * Communicate that after this step, only Support can change personal and indirect tax information.\n * @uiName Submission confirmation alert\n * @uiGroup Step 2 Properties\n * @uiWidget textArea\n */\n @Prop() step2_cannotChangeInfoAlert: string =\n \"Changes to your personal and indirect tax information can only be made through our {supportLink} after you complete this step. Make sure these are correct before continuing.\";\n\n /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n STEP 3 PROPS:\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/\n /**\n * @uiName Step 3 title\n * @uiGroup Step 3 Properties\n */\n @Prop() step3_taxForm: string = \"Tax form\";\n /**\n * Display the type of tax form that the participant must submit.\n * @uiName Tax form name\n * @uiGroup Step 3 Properties\n */\n @Prop() step3_taxFormLabel: string = \"{documentType} Tax Form\";\n /**\n * @uiName Participant type field label\n * @uiGroup Step 3 Properties\n */\n @Prop() step3_participantType: string = \"Participant type\";\n /**\n * An option for the participant type field. Used to determine which W-8 form is required.\n * @uiName Business representative participant type label\n * @uiGroup Step 3 Properties\n */\n @Prop() step3_businessEntity: string = \"I represent a business\";\n /**\n * An option for the participant type field. Used to determine which W-8 form is required.\n * @uiName Individual participant type label\n * @uiGroup Step 3 Properties\n */\n @Prop() step3_individualParticipant: string =\n \"I am an individual participant\";\n /**\n * Displayed at the top of the page to participants based in the US.\n * @uiName W-9 tax form description\n * @uiGroup Step 3 Properties\n * @uiWidget textArea\n */\n @Prop() step3_taxFormDescription: string =\n \"Participants based in the US need to submit a {documentType} form.\";\n /**\n * Displayed at the top of the page to individuals joining a US program who reside outside the country.\n * @uiName W-8 BEN tax form description\n * @uiGroup Step 3 Properties\n * @uiWidget textArea\n */\n @Prop() step3_taxFormDescriptionIndividualParticipant: string =\n \"Participants residing outside of the US, joining the referral program of a US-based company, need to submit a {documentType} form.\";\n /**\n * Displayed at the top of the page to participants representing a business.\n * @uiName W-8 BEN-E tax form description\n * @uiGroup Step 3 Properties\n * @uiWidget textArea\n */\n @Prop() step3_taxFormDescriptionBusinessEntity: string =\n \"Participants residing outside of the US working with a US Brand need to submit a {documentType} form.\";\n /**\n * This appears inside the Docusign frame.\n * @uiName Docusign session expired message\n * @uiGroup Step 3 Properties\n * @uiWidget textArea\n */\n @Prop() step3_docusignExpired: string =\n \"For your security and privacy, we automatically end your session after 20 minutes of inactivity. Please refresh and re-enter your tax information to continue.\";\n /**\n * Remind participants their session will time out after 20 minutes of inactivity.\n * @uiName Docusign timed session message\n * @uiGroup Step 3 Properties\n * @uiWidget textArea\n */\n @Prop() step3_docusignSessionWarning: string =\n \"For your security, we automatically end your session when you have not interacted with the form after 20 minutes.\";\n /**\n * This appears inside the Docusign frame.\n * @uiName Docusign form error message\n * @uiGroup Step 3 Properties\n * @uiWidget textArea\n */\n @Prop() step3_docusignError: string =\n \"There was a problem displaying this form. Please refresh the page. If this problem continues, contact our {supportLink}.\";\n /**\n * @uiName Refresh page button label\n * @uiGroup Step 3 Properties\n */\n @Prop() step3_refreshButton: string = \"Refresh Page\";\n\n /**\n * @uiName Exit button text\n * @uiGroup Step 3 Properties\n */\n @Prop() step3_exitButton: string = \"Exit\";\n\n /**\n * @uiName Information modal title\n * @uiGroup Step 3 Properties\n */\n @Prop() step3_modalTitle: string = \"Important Note\";\n\n /**\n * @uiName Information modal description text\n * @uiGroup Step 3 Properties\n */\n @Prop() step3_modalDescription: string =\n \"Remember the name you enter in your tax form. It must exactly match the bank account holder name configured in the next step. {br}{br}Otherwise you will have to resubmit your form again and there will be delays receiving your payout.\";\n\n /**\n * @uiName Information modal button text\n * @uiGroup Step 3 Properties\n */\n @Prop() step3_modalButtonText: string = \"I understand\";\n\n /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n STEP 4 PROPS:\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/\n /**\n * @uiName Step 4 title\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_taxAndPayouts: string = \"Payouts\";\n /**\n * @uiName Direct to bank payout option\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_directlyToBankAccount: string = \"Directly to my bank account\";\n /**\n * @uiName PayPal payout option\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_toPayPalAccount: string =\n \"PayPal (2% processing fee capped to {feeCap})\";\n /**\n * @uiName Threshold balance payment schedule option\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_paymentScheduleBalanceThreshold: string =\n \"Pay me when my balance reaches a threshold\";\n /**\n * @uiName Fixed day payment schedule option\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_paymentScheduleFixedDay: string =\n \"Pay me on a fixed day of the month\";\n /**\n * Let the participant choose what day of the month they’ll get paid\n * @uiName Payment day field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_paymentDaySelectLabel: string = \"Payment Day\";\n\n /**\n * Participant use this field to select the balance at which they want to be paid\n * @uiName Payment threshold field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_paymentThresholdSelectLabel: string = \"Payment threshold\";\n /**\n * One of two payment day options\n * @uiName First of month payday option\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_paymentDayFirstOfMonthLabelText: string = \"1st of the month\";\n /**\n * One of two payment day options\n * @uiName Fifteenth of month payday option\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_paymentDayFifteenthOfMonthLabelText: string =\n \"15th of the month\";\n /**\n * @uiName Payment method section header\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_paymentMethod: string = \"Payment method\";\n /**\n * @uiName Payment schedule section header\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_paymentSchedule: string = \"Payment schedule\";\n /**\n * @uiName Payment method section description\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_paymentMethodSubtext: string =\n \"Payouts will be sent from our referral program provider, impact.com.\";\n /**\n * Displayed to participants who choose PayPal as their payout method\n * @uiName PayPal email field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_payPalInputLabel: string = \"PayPal email\";\n /**\n * @uiName Bank country field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_bankLocationLabel: string = \"Bank country location\";\n /**\n * @uiName Beneficiary account field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_beneficiaryAccountNameLabel: string = \"Account holder name\";\n /**\n * @uiName Beneficiary account field description\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_beneficiaryAccountNameDescription: string =\n \"The beneficiary name of your bank account. Ensure this matches the name on your tax form.\";\n /**\n * @uiName Bank account type field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_bankAccountTypeLabel: string = \"Bank account type\";\n\n /**\n * @uiName Checking account option\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_checkingSelectItemLabel: string = \"Checking\";\n\n /**\n * Label text for the savings account type select item\n * @uiName Savings account options\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_savingsSelectItemLabel: string = \"Savings\";\n\n /**\n * @uiName Bank account number field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_bankAccountNumberLabel: string = \"Bank account number\";\n\n /**\n * @uiName IBAN field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_ibanLabel: string = \"IBAN\";\n\n /**\n * @uiName SWIFT code field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_swiftCodeLabel: string = \"SWIFT code\";\n\n /**\n * @uiName Routing code field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_routingCodeLabel: string =\n \"{bankCountry, select, AU {BSB number} CA {Routing number} CZ {Bank code} HK {Clearing code} SG {Clearing code} US {ABA routing number} NZ {BSB number} ZA {Bank/Branch number} IN {IFSC} CNY {CNAPS} other {Routing code} }\";\n\n /**\n * @uiName Bank name field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_bankNameLabel: string = \"Bank name\";\n\n /**\n * @uiName Classification entity field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_classificationEntityLabel: string = \"Classification entity\";\n\n /**\n * One of three options listed for the classification field\n * @uiName Business classification option\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_businessSelectItemLabel: string = \"Business\";\n\n /**\n * One of three options listed for the classification field\n * @uiName Individual classification option\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_individualSelectItemLabel: string = \"Individual\";\n\n /**\n * One of three options listed for the classification field\n * @uiName Foreign classification option\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_foreignSelectItemLabel: string = \"Foreign\";\n\n /**\n * @uiName Classification CPF field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_classificationCPFLabel: string = \"Classification CPF\";\n\n /**\n * @uiName Patronymic name field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_patronymicNameLabel: string = \"Patronymic name\";\n\n /**\n * @uiName VO code field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_voCodeLabel: string = \"VO code\";\n\n /**\n * @uiName Agency code field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_agencyCodeLabel: string = \"Agency code\";\n\n /**\n * @uiName Branch code field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_branchCodeLabel: string = \"Branch code\";\n\n /**\n * Label text for the classification input field\n * @uiName Classification field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_classificationLabel: string = \"Classification\";\n\n /**\n * @uiName Taxpayer ID field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_taxPayerIdLabel: string = \"Beneficiary INN\";\n\n /**\n * @uiName Bank address field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_bankAddressLabel: string = \"Bank address\";\n /**\n * @uiName Bank city field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_bankCityLabel: string = \"Bank city\";\n /**\n * @uiName Bank province/state field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_bankStateLabel: string = \"Bank Province / State\";\n /**\n * @uiName Bank postal code field label\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_bankPostalCodeLabel: string = \"Bank postal code\";\n /**\n * Default payment method to the participants’ bank account.\n * @uiName EFT withdrawal payment method\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_eftWithdrawalLabel: string = \"EFT Withdrawal (free)\";\n\n /**\n * @uiName FX Wire Processing fee text\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_fxWireProcessingFeeLabel: string =\n \"FX Wire (Processing Fee {currency}{defaultFxFee}.00)\";\n\n /**\n * @uiName Text for verify email dialog\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_verifyEmailHeaderText: string = \"Verify your email\";\n\n /**\n * @uiName Verify code widget header text\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_verifyEmailDescriptionText: string =\n \"Verify your email to update your payment settings. Enter the code sent to {email} from our referral provider, impact.com.\";\n\n /**\n * @uiName Information modal title\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_modalTitle: string = \"Important Note\";\n\n /**\n * @uiName Information modal description text\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_modalDescription: string =\n \"Updating payment information places your account and payouts on hold for up to 48 hours while we verify your change. Payments scheduled during the hold period are skipped.\";\n\n /**\n * @uiName Information modal button text\n * @uiGroup Step 4 Properties\n */\n @Prop() step4_modalButtonText: string = \"I understand, update my information\";\n\n /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n DASHBOARD PROPS:\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/\n /**\n * @uiName Active tax form badge label\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_statusTextActive?: string = \"Active\";\n\n /**\n * @uiName Invalid tax form badge label\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_statusTextNotActive?: string = \"Invalid Tax Form\";\n\n /**\n * Displayed when the participant submitted their form but it is awaiting review.\n *\n * @uiName Not verified tax form badge label\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_statusTextNotVerified?: string = \"Not Verified\";\n\n /**\n * Displayed when the participant has not submitted their required tax form.\n *\n * @uiName Required tax form badge label\n */\n @Prop() dashboard_statusTextRequired?: string = \"Required\";\n\n /**\n * Additional text displayed next to the tax form's status badge\n *\n * @uiName Required tax form description\n */\n @Prop() dashboard_requiredTaxForm?: string =\n \"Your payouts are on hold until you submit a {taxFormType} tax form.\";\n\n /**\n * Additional text displayed next to the tax form's status badge\n *\n * @uiName Active W-9 description\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_badgeTextSubmittedOn?: string =\n \"Submitted on {dateSubmitted}.\";\n /**\n * Additional text displayed next to the tax form's status badge.\n *\n * @uiName Active W-8 description\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_badgeTextSubmittedOnW8?: string =\n \"Submitted on {dateSubmitted}. Valid for three years after submission.\";\n\n /**\n * Additional text displayed next to the tax form's status badge.\n *\n * @uiName Tax form in review description\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_badgeTextAwaitingReview?: string =\n \"Awaiting review. Submitted on {dateSubmitted}.\";\n\n /**\n * Part of the alert displayed at the top of the page.\n *\n * @uiName Inactive W-9 error message title\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_taxAlertHeaderNotActiveW9?: string =\n \"Your W-9 tax form has personal information that doesn’t match your profile\";\n /**\n * Part of the alert displayed at the top of the page.\n *\n * @uiName Inactive W-8 error message title\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_taxAlertHeaderNotActiveW8?: string =\n \"{documentType} tax form is invalid\";\n /**\n * Part of the alert displayed at the top of the page.\n *\n * @uiName Inactive W-9 error message description\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_taxAlertNotActiveMessageW9?: string =\n \"Please resubmit a new {documentType} form.\";\n /**\n * Part of the alert displayed at the top of the page.\n *\n * @uiName Inactive W-8 error message description\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_taxAlertNotActiveMessageW8?: string =\n \"Your tax form may have expired or has personal information that doesn’t match your profile. Please submit a new {documentType} form.\";\n /**\n * Additional text displayed next to the tax form's status badge.\n *\n * @uiName Invalid tax form description\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_invalidForm?: string =\n \"Make sure your information is correct and submit new form.\";\n /**\n * @uiName Payout information section header\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_bankingInformationSectionHeader: string =\n \"Payout Information\";\n /**\n * @uiName Tax document section header\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_taxDocumentSectionHeader: string = \"Tax documents\";\n /**\n * Displayed under the tax document section header.\n *\n * @uiName Tax documents section description\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_taxDocumentSectionSubHeader: string =\n \"{documentType} tax form\";\n /**\n * No other statuses or badges will be displayed in the tax form section in this case.\n *\n * @uiName Tax form not required text\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_noFormNeededSubtext: string =\n \"Tax documents are only required if you are based in the US or joining the referral program of a US based brand.\";\n /**\n *\n * @uiName Indirect tax section header\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_indirectTaxInfoSectionHeader: string = \"Indirect tax\";\n /**\n * If the participant is registered for indirect tax in Canada, display the province they’re registered in.\n *\n * @uiName Canadian province of indirect tax\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_indirectTaxInfoCanada: string =\n \"Registered in {province}, {country}\";\n /**\n * If the participant is registered for indirect tax, display the country they’re registered in.\n *\n * @uiName Indirect tax country\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_indirectTaxInfoOtherCountry: string =\n \"Registered in {country}\";\n /**\n * If the participant is registered for indirect tax in Spain, display the region they’re registered in.\n *\n * @uiName Spanish region of indirect tax\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_indirectTaxInfoSpain: string =\n \"Registered in {country}, {subRegion}\";\n /**\n * @uiName Indirect tax tooltip\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_indirectTaxTooltipSupport: string =\n \"To make changes to your indirect tax information, please contact our {supportLink}.\";\n /**\n * Displayed to participants who have submitted their indirect tax information.\n *\n * @uiName Indirect tax details\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_indirectTaxDetails: string =\n \"{indirectTaxType} number: {indirectTaxNumber}\";\n /**\n * @uiName Submit new tax form button label\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_newFormButton: string = \"Submit new form\";\n /**\n * @uiName Edit payment info button label\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_editPaymentInformationButton: string =\n \"Edit Payout Information\";\n /**\n * @uiName Not registered for indirect tax text\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_notRegisteredForTax: string =\n \"Not registered for indirect tax. If you’ve previously registered with your tax authority, contact our {supportLink} to add your information to stay tax compliant.\";\n /**\n * Displayed to participants registered in Quebec, Canada.\n * @uiName QST indirect tax details\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_qstNumber: string = \"QST number: {qstNumber}\";\n /**\n * @uiName Spain sub-region indirect tax number\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_subRegionTaxNumber: string =\n \"Income tax number: {subRegionTaxNumber}\";\n /**\n * @uiName Payout status badge\n * @uiGroup Dashboard Properties\n */\n @Prop()\n dashboard_statusBadgeText: string =\n \"{badgeText, select, payoutToday {Payout Today} nextPayout {Next Payout} }\";\n /**\n * Display participants' payout preference on the payout information card, indicating the balance at which they want to get paid.\n * @uiName Payout schedule by threshold text\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_thresholdPayoutText: string =\n \"Next payout occurs when balance is {thresholdBalance}\";\n /**\n * Shown before the participant’s bank account information.\n * @uiName Bank account field label\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_accountText: string = \"Account\";\n /**\n * Part of the Invoice table displayed at the bottom of the page.\n * @uiName Invoice number column title\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_invoiceColumnTitle: string = \"Invoice\";\n /**\n * Part of the Invoice table displayed at the bottom of the page.\n * @uiName Date column title\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_dateColumnTitle: string = \"Date\";\n /**\n * Part of the Invoice table displayed at the bottom of the page.\n * @uiName Earnings column title\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_earningsColumnTitle: string = \"Earnings\";\n /**\n * Part of the Invoice table displayed at the bottom of the page.\n * @uiName Indirect tax column title\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_indirectTaxColumnTitle: string = \"Indirect tax\";\n /**\n * Displayed under the payout details card.\n * @uiName Payout from impact text\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_payoutFromImpact: string =\n \"Your balance may take up to 24 hours to update. Payouts will be sent from our referral program provider, impact.com.\";\n /**\n * Part of the Invoice table displayed at the bottom of the page.\n * @uiName Earnings after tax column title\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_earningsAfterTaxColumnTitle: string = \"Earnings after tax\";\n /**\n * Part of the alert displayed at the top of the page when there’s been an issue preventing payouts.\n * @uiName Payout error message title\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_payoutHoldAlertHeader: string = \"Your payout is on hold\";\n /**\n * Part of the alert displayed at the top of the page when there’s been an issue preventing payouts.\n * @uiName Payout error message description\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_payoutHoldAlertDescription: string =\n \"Please contact our {supportLink} or check your inbox for an email from our referral program provider, impact.com.\";\n /**\n * Text displayed for existing publishers that do not have saved banking information.\n * @uiName Payout missing information subtext\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_payoutMissingInformationText: string =\n \"Missing banking information, go to Impact.com to resolve.\";\n\n /**\n * @uiName Invoice table description\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_invoiceDescription: string =\n \"View and download your invoices to report your earnings and stay tax compliant.\";\n\n /**\n * @uiName Invoice table previous page button label\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_invoicePrevLabel: string = \"Prev\";\n\n /**\n * @uiName Invoice table next page button label\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_invoiceMoreLabel: string = \"Next\";\n\n /**\n * @uiName Invoice table title\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_invoiceHeader: string = \"Invoices\";\n\n /**\n * @uiName Empty invoice table header\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_invoiceEmptyStateHeader: string =\n \"View your invoice details\";\n\n /**\n * @uiName Empty invoice table description\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_invoiceEmptyStateText: string =\n \"Refer a friend to view the status of your invoices and rewards earned\";\n /**\n * @uiName Replace tax form modal header\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_replaceTaxFormModalHeader: string =\n \"Replace existing tax form\";\n /**\n * @uiName Replace tax form modal body text\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_replaceTaxFormModalBodyText: string =\n \"Submitting a new tax form will remove your existing form. Make sure to sign and complete your new tax form to prevent any issues with your next payout.\";\n\n /**\n * Part of the alert displayed at the top of the page when the user needs to verify their identity.\n * @uiName Verification required alert message title\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_verificationRequiredHeader: string = \"Verify your identity\";\n /**\n * Part of the alert displayed at the top of the page when the user needs to verify their identity\n * @uiName Verification required alert message description\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_verificationRequiredDescription: string =\n \"Complete your verification to start receiving your cash rewards. It should only take a few minutes verify. If you run in to an issue verifying your identity contact our {supportLink}.\";\n /**\n * @uiName Verification required internal alert header\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_verificationRequiredInternalHeader: string =\n \"Identity Verification in Progress\";\n /**\n * @uiName Verification required internal alert description\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_verificationRequiredInternalDescription: string =\n \"Identity verification submission has been received. Our system is currently performing additional checks and analyzing the results. You will be updated shortly. If you don't hear from us contact our {supportLink}.\";\n /**\n * @uiName Verification review internal alert header\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_verificationReviewInternalHeader: string =\n \"Identity Verification Under Review\";\n /**\n * @uiName Verification review internal alert description\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_verificationReviewInternalDescription: string =\n \"Identity verification requires further review due to a potential error. Our team is reviewing the information and will update you shortly. If you don't hear from us contact our {supportLink}.\";\n /**\n * @uiName Verification failed internal alert header\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_verificationFailedInternalHeader: string =\n \"Identity Verification Unsuccessful\";\n /**\n * @uiName Verification failed internal alert description\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_verificationFailedInternalDescription: string =\n \"Identity verification has failed. Our team is reviewing the report and will contact you with further information. If you don't hear from us contact our {supportLink}.\";\n /**\n * Part of the alert displayed at the top of the page when the user needs to verify their identity.\n * @uiName Verification required alert button text\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_verificationRequiredButtonText: string =\n \"Start Verification\";\n /**\n * @uiName W-9 payment threshold alert header\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_w9RequiredHeader: string = \"Your next payout is on hold\";\n /**\n * @uiName W-9 payment threshold alert description\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_w9RequiredDescription: string =\n \"You have surpassed the $600 threshold requiring a W-9 form or have multiple accounts with impact.com. To remove the hold, please submit your W-9 form.\";\n /**\n * @uiName Account review alert header\n */\n @Prop() dashboard_accountReviewHeader: string =\n \"Your account is under review\";\n /**\n * @uiName Account review alert description\n */\n @Prop() dashboard_accountReviewDescription: string =\n \"This process takes 48 hours, payouts are on hold until it's completed. You will receive an email from our referral provider, Impact.com, if any issues arise. It contains details on how to resolve this issue. If you need further assistance, please reach out to our {supportLink}.\";\n\n /**\n * @uiName Terms and Conditions text\n * @uiGroup Dashboard Properties\n */\n @Prop() dashboard_termsAndConditions: string = \"Terms and Conditions\";\n\n /**\n * @uiName W-9 payment threshold alert button text\n * @uiGroup Dashboard Properties\n * @uiWidget textArea\n */\n @Prop() dashboard_w9RequiredButtonText: string = \"Submit W-9\";\n\n /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n GENERAL PROPS:\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/\n\n /**\n * @uiName Setup progress\n * @uiGroup General Form Properties\n */\n @Prop() formStep: string = \"Step {step} of {count}\";\n /**\n * Part of the alert displayed at the top of the page.\n * @uiName Form submission error message title\n * @uiGroup General Form Properties\n * @uiWidget textArea\n */\n @Prop() generalErrorTitle: string =\n \"There was a problem submitting your information\";\n\n /**\n * Part of the alert displayed at the top of the page.\n * @uiName Form submission error message description\n * @uiGroup General Form Properties\n * @uiWidget textArea\n */\n @Prop() generalErrorDescription: string =\n \"Please review your information and try again. If this problem continues, contact our {supportLink}.\";\n /**\n * Displayed under a field that is missing required information.\n * @uiName Empty form field error message\n * @uiGroup General Form Properties\n */\n @Prop() fieldRequiredError: string = \"{fieldName} is required\";\n /**\n * Displayed under a field that includes invalid characters (non-ASCII).\n * @uiName Invalid character error message\n * @uiGroup General Form Properties\n */\n @Prop() invalidCharacterError: string =\n \"{fieldName} includes characters that aren't supported.\";\n /**\n * Displayed under a field when it has an invalid entry.\n * @uiName Form field error message\n * @uiGroup General Form Properties\n */\n @Prop() fieldInvalidError: string = \"{fieldName} is invalid\";\n /**\n * @uiName Continue button label\n * @uiGroup General Form Properties\n */\n @Prop() continueButton: string = \"Continue\";\n /**\n * @uiName Back button label\n * @uiGroup General Form Properties\n */\n @Prop() backButton: string = \"Back\";\n /**\n * @uiName Cancel button label\n * @uiGroup General Form Properties\n */\n @Prop() cancelButton: string = \"Cancel\";\n /**\n * Part of the alert displayed at the top of the page if the participant is already a registered partner on impact.com.\n * @uiName Participant is a partner alert title\n * @uiGroup General Form Properties\n * @uiWidget textArea\n */\n @Prop() isPartnerAlertHeader: string =\n \"An account with this email already exists with our referral program provider, impact.com\";\n /**\n * Part of the alert displayed at the top of the page if the participant is already a registered partner on impact.com.\n * @uiName Participant is a partner alert description\n * @uiGroup General Form Properties\n * @uiWidget textArea\n */\n @Prop() isPartnerAlertDescription: string =\n \"If you don’t recognize this referral program provider or believe this is a mistake, please contact our {supportLink} or sign up for this referral program with a different email.\";\n /**\n * Placeholder text displayed in the country search dropdown\n * @uiName Country field placeholder text\n * @uiGroup General Form Properties\n */\n @Prop() searchForCountryText: string = \"Search for country..\";\n /**\n * Part of the alert displayed at the top of the page.\n * @uiName Page load error message title\n * @uiGroup General Form Properties\n * @uiWidget textArea\n */\n @Prop() loadingErrorAlertHeader: string =\n \"There was a problem loading your form\";\n /**\n * Part of the alert displayed at the top of the page.\n * @uiName Page load error message description\n * @uiGroup General Form Properties\n * @uiWidget textArea\n */\n @Prop() loadingErrorAlertDescription: string =\n \"Please refresh the page and try again. If this problem continues, contact our {supportLink}.\";\n /**\n * Displayed at the top of the page on all set up steps.\n * @uiName Page description\n * @uiGroup General Form Properties\n */\n @Prop() taxAndPayoutsDescription: string =\n \"Submit your tax documents and add your banking information to receive your rewards.\";\n /**\n * Link text for contacting support team\n * @uiName Suport link text\n * @uiGroup General Form Properties\n */\n @Prop() supportLink: string = \"support team\";\n\n /**\n * Link text for Terms and Conditions\n * @uiName Terms and Conditions text\n * @uiGroup General Form Properties\n */\n @Prop() termsAndConditions: string = \"Terms and Conditions\";\n\n /**\n *\n * @undocumented\n * @componentState { \"title\": \"Step 1: Personal information\", \"props\": { \"step\": \"/1\" }, \"dependencies\": [\"sqm-user-info-form\"], \"uiGroup\": \"Step 1 Properties\" }\n * @componentState { \"title\": \"Step 2: Indirect tax\", \"props\": { \"step\": \"/2\" }, \"dependencies\": [\"sqm-indirect-tax-form\"], \"uiGroup\": \"Step 2 Properties\" }\n * @componentState { \"title\": \"Step 3: Tax form\", \"props\": { \"step\": \"/3\" }, \"dependencies\": [\"sqm-docusign-form\"], \"uiGroup\": \"Step 3 Properties\" }\n * @componentState { \"title\": \"Step 4: Payment method\", \"props\": { \"step\": \"/4\" }, \"dependencies\": [\"sqm-banking-info-form\"], \"uiGroup\": \"Step 4 Properties\" }\n * @componentState { \"title\": \"Dashboard\", \"props\": { \"step\": \"/dashboard\" }, \"dependencies\": [\"sqm-tax-and-cash-dashboard\"], \"uiGroup\": \"Dashboard Properties\" }\n */\n @Prop() stateController: string = \"{}\";\n\n /**\n * @undocumented\n */\n @Prop() demoData?: DemoData<TaxAndCashMonolith>;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n // this field is required prop\n getGeneralStepTextProps(prefix: string) {\n const props = getProps(this);\n return {\n ...extractProps(props, prefix),\n generalErrorTitle: props.generalErrorTitle,\n generalErrorDescription: props.generalErrorDescription,\n fieldRequiredError: props.fieldRequiredError,\n invalidCharacterError: props.invalidCharacterError,\n fieldInvalidError: props.fieldInvalidError,\n continueButton: props.continueButton,\n backButton: props.backButton,\n cancelButton: props.cancelButton,\n isPartnerAlertHeader: props.isPartnerAlertHeader,\n isPartnerAlertDescription: props.isPartnerAlertDescription,\n loadingErrorAlertHeader: props.loadingErrorAlertHeader,\n loadingErrorAlertDescription: props.loadingErrorAlertDescription,\n taxAndPayoutsDescription: props.taxAndPayoutsDescription,\n searchForCountryText: props.searchForCountryText,\n formStep: props.formStep,\n supportLink: props.supportLink,\n };\n }\n\n render() {\n const props = isDemo() ? useDemoTaxAndCash(this) : useTaxAndCash();\n\n // @ts-ignore\n if (this.demoData?.showTextProps) {\n const textProps = getProps(this);\n return (\n <div>\n {Object.keys(textProps)?.map((prop) => {\n if (prop === \"demoData\") return;\n return (\n <div>\n <b>{prop}:</b> {this[prop]}\n <hr />\n </div>\n );\n })}\n </div>\n );\n }\n\n switch (props.step) {\n case \"/1\":\n return (\n <sqm-user-info-form\n {...this.getGeneralStepTextProps(\"step1_\")}\n ></sqm-user-info-form>\n );\n case \"/2\":\n return (\n <sqm-indirect-tax-form\n {...this.getGeneralStepTextProps(\"step2_\")}\n ></sqm-indirect-tax-form>\n );\n case \"/3\":\n return (\n <sqm-docusign-form\n {...this.getGeneralStepTextProps(\"step3_\")}\n ></sqm-docusign-form>\n );\n case \"/4\":\n return (\n <sqm-banking-info-form\n {...this.getGeneralStepTextProps(\"step4_\")}\n ></sqm-banking-info-form>\n );\n case \"/dashboard\":\n return (\n <sqm-tax-and-cash-dashboard\n {...this.getGeneralStepTextProps(\"dashboard_\")}\n stateController={\n props[\"sqm-tax-and-cash-dashboard_stateController\"] || \"{}\"\n }\n ></sqm-tax-and-cash-dashboard>\n );\n case \"/error\":\n return (\n <ErrorView\n loadingErrorAlertHeader={this.loadingErrorAlertHeader}\n loadingErrorAlertDescription={intl.formatMessage(\n {\n id: \"loadingErrorAlertDescription\",\n defaultMessage: this.loadingErrorAlertDescription,\n },\n {\n supportLink: (\n <a\n target=\"_blank\"\n href={`mailto:advocate-support@impact.com`}\n >\n {this.supportLink}\n </a>\n ),\n }\n )}\n />\n );\n }\n\n return <LoadingView />;\n }\n}\n\nfunction useDemoTaxAndCash(props: TaxAndCashMonolith) {\n const [step, setStep] = useParentState<string>({\n namespace: TAX_CONTEXT_NAMESPACE,\n initialValue: \"/1\",\n });\n\n const states = parseStates(props.stateController);\n const formatted = Object.keys(states).reduce(\n (prev, key) =>\n key === \"sqm-tax-and-cash\"\n ? { ...prev, ...states[key] }\n : { ...prev, [`${key}_stateController`]: states[key] },\n {}\n );\n\n return deepmerge(\n {\n step,\n setStep,\n },\n props.demoData || formatted || {},\n { arrayMerge: (_, a) => a }\n );\n}\n","import { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Prop, State } from \"@stencil/core\";\nimport { useChildElements } from \"../../tables/useChildElements\";\nimport { TimelineReward } from \"./sqm-timeline-entry\";\n\n/**\n * @uiName Program Timeline\n * @validParents [\"sqm-portal-container\",\"div\",\"sqm-divided-layout\",\"sqm-brand\",\"template\",\"sqm-hero\",\"sqm-tab\",\"sqb-program-section\",\"sqb-conditional-section\"]\n * @validChildren [\"sqm-timeline-entry\"]\n * @slots [{\"name\":\"\",\"title\":\"Timeline\",\"validChildren\":[\"sqm-timeline-entry\"]}]\n * @exampleGroup Common Components\n * @example Program Timeline - <sqm-timeline icon=\"circle\"> <sqm-timeline-entry reward=\"$50\" unit=\"visa giftcard\" desc=\"You refer a friend\" icon=\"circle\" > </sqm-timeline-entry> <sqm-timeline-entry reward=\"$200\" unit=\"visa giftcard\" desc=\"Our sales team qualifies your friend as a good fit for our Enterprise plan\" icon=\"circle\" > </sqm-timeline-entry> <sqm-timeline-entry reward=\"$1000\" unit=\"visa giftcard\" desc=\"Your friend purchases an Enterprise plan\" icon=\"circle\" > </sqm-timeline-entry></sqm-timeline>\n */\n@Component({\n tag: \"sqm-timeline\",\n shadow: true,\n})\nexport class Timeline {\n @State()\n ignored = true;\n\n /**\n * @uiName Icon\n * @uiType string\n * @uiEnum [\"gift\", \"circle\"]\n * @uiEnumNames [\"Gift\", \"Circle\"]\n */\n @Prop() icon: \"gift\" | \"circle\" = \"gift\";\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n const rewards = useChildElements<TimelineReward>();\n\n rewards.forEach((reward) => {\n try {\n reward.setIcon(this.icon);\n } catch {\n // incase child is not sqm-timeline-entry\n }\n });\n\n const vanillaStyle = `\n\t\t:host{\n\t\t\tdisplay: block; \n\t\t}\n\n\t\t::slotted(*:not(:only-child):not(:last-child)) {\n\t\t\tmargin-bottom: var(--sl-spacing-xx-large);\n\t\t}\n\t`;\n\n return (\n <div>\n <style type=\"text/css\">{vanillaStyle}</style>\n <slot />\n </div>\n );\n }\n}\n","import { h } from \"@stencil/core\";\n\nexport const Gift = () => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22.5 7.5H18.6761H13.5V24H20.75C21.3023 24 21.75 23.5523 21.75 23V22.5V13.5H22.5H23C23.5523 13.5 24 13.0523 24 12.5V12V9V8.5C24 7.94772 23.5523 7.5 23 7.5H22.5Z\"\n fill=\"#F2C94C\"\n />\n <path\n d=\"M2.25 22.5V23C2.25 23.5523 2.69772 24 3.25 24H10.5V7.5H6.96363H1.5H1C0.447715 7.5 0 7.94772 0 8.5V9V12V12.5C0 13.0523 0.447715 13.5 1 13.5H1.5H2.25V22.5Z\"\n fill=\"#F2C94C\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2.25 13.5V15H21.75V13.5H2.25Z\"\n fill=\"#BE9720\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M21 4.06424C21 5.39348 19.0041 7.4062 18 7.5H13.5V24H10.5027V7.5H6.88188C4.8187 7.05273 3 5.46806 3 3.78109C3 2.1371 3.71404 0.835051 5.01276 0.273062C6.25382 -0.26398 7.68678 0.0304991 8.81964 0.817C10.2101 1.78237 10.9902 3.59446 11.6978 5.2384C11.7599 5.38268 11.8215 5.52566 11.8828 5.66667C11.9426 5.53298 12.0028 5.3969 12.0638 5.25912C12.7649 3.67422 13.5654 1.86488 14.9106 0.893444C16.0997 0.0347157 17.6114 -0.289736 18.9181 0.298417C20.2693 0.906596 21 2.3018 21 4.06424ZM15.9185 2.25C16.6392 1.72957 17.502 1.63518 18.2396 2.25C18.8819 2.78542 18.9162 3.03745 18.9987 3.64389L19.0133 3.75C19.0133 4.64776 18.2396 6 17.4659 6C16.9177 6 16.4871 5.99537 16.0836 5.99103C15.3479 5.98312 14.702 5.97618 13.5974 6C13.808 5.59179 13.9761 5.20003 14.1365 4.82641C14.5654 3.82715 14.9386 2.95763 15.9185 2.25ZM7.40792 2.25C7.05911 2.00783 6.25921 2.11591 5.92748 2.25945C5.65341 2.37805 5.24403 2.73987 5.24403 3.78109C5.24403 4.79286 6.88188 5.66667 6.88188 5.66667C6.88188 5.66667 8.18161 6 10.5027 6C9.71258 4.04177 8.59336 3.073 7.40792 2.25Z\"\n fill=\"#EB5757\"\n />\n </svg>\n);\n\nexport const Circle = () => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"9\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n />\n </svg>\n);\n\nexport const Line = () => (\n <svg\n width=\"4\"\n height=\"90\"\n viewBox=\"0 0 4 90\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <line\n x1=\"2\"\n y1=\"82\"\n x2=\"2\"\n y2=\"2\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n />\n </svg>\n);\n","import { h, VNode } from \"@stencil/core\";\nimport { createStyleSheet } from \"../../styling/JSS\";\nimport { Circle, Gift } from \"./SVGs\";\n\nexport interface TimelineEntryProps {\n reward: string;\n unit: string;\n desc: string;\n icon: string;\n iconState: string;\n textColor?: string;\n lineColor?: string;\n}\n\nconst vanillaStyle = `\n\t:host{\n\t\tdisplay: block; \n\t}\n\n\t:host(:not(:last-of-type)) .line {\n\t\tdisplay: block; \n\t}\n\t`;\n\nexport function TimelineEntryView(props: TimelineEntryProps): VNode {\n const timeline_icon = props.icon ?? props.iconState;\n\n const style = {\n TimelineReward: {\n color: props.textColor || \"var(--sqm-text)\",\n lineHeight: \"var(--sl-line-height-dense)\",\n \"& .container\": {\n display: \"flex\",\n },\n \"& .line\": {\n display: \"none\",\n color: \"transparent\",\n userSelect: \"none\",\n background: props.lineColor || \"var(--sqm-accent-color-icon)\",\n width: \"4px\",\n borderRadius: \"4px\",\n margin: \"-2px\",\n position: \"relative\",\n left: \"12px\",\n top: \"34px\",\n },\n \"& .step\": {\n display: \"flex\",\n },\n \"& .icon\": {\n position: \"relative\",\n top: \"4px\",\n zIndex: \"1\",\n color: props.lineColor || \"var(--sqm-accent-color-icon)\",\n marginRight: \"var(--sl-spacing-large)\",\n },\n \"& .reward\": {\n marginRight: \"var(--sl-spacing-x-small)\",\n fontSize: \"var(--sl-font-size-x-large)\",\n fontWeight: \"var(--sl-font-weight-semibold)\",\n },\n \"& .unit\": {\n textTransform: \"uppercase\",\n fontSize: \"var(--sl-font-size-small)\",\n },\n \"& .description\": {\n fontSize: \"var(--sl-font-size-medium)\",\n },\n },\n };\n\n const sheet = createStyleSheet(style);\n const styleString = sheet.toString();\n\n return (\n <div class={sheet.classes.TimelineReward} part=\"sqm-base\">\n <style type=\"text/css\">\n {styleString}\n {vanillaStyle}\n </style>\n <div class=\"container\" part=\"sqm-entry-container\">\n <div class=\"line\">/</div>\n <div class=\"step\">\n {timeline_icon === \"gift\" && (\n <div class=\"icon\">\n <Gift />\n </div>\n )}\n {timeline_icon === \"circle\" && (\n <div class=\"icon\">\n <Circle />\n </div>\n )}\n <div>\n <div>\n <span class=\"reward\" part=\"sqm-reward\">\n {props.reward}\n </span>\n <span class=\"unit\" part=\"sqm-unit\">\n {props.unit}\n </span>\n </div>\n <div class=\"description\" part=\"sqm-description\">\n {props.desc}\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n}\n","import { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Method, Prop, State } from \"@stencil/core\";\nimport { useRequestRerender } from \"../../tables/re-render\";\nimport { getProps } from \"../../utils/utils\";\nimport { TimelineEntryView } from \"./sqm-timeline-entry-view\";\n\n/**\n * @uiName Program Timeline Entry\n * @validParents [\"sqm-timeline\"]\n * @exampleGroup Common Components\n * @example Timeline Entry - <sqm-timeline-entry reward=\"$50\" unit=\"visa giftcard\" desc=\"You refer a friend\" icon=\"circle\" > </sqm-timeline-entry>\n */\n@Component({\n tag: \"sqm-timeline-entry\",\n shadow: true,\n})\nexport class TimelineReward {\n @State()\n ignored = true;\n\n /**\n * Color of the text and copy icon\n * @uiName Text color\n * @uiWidget color\n * @format color\n */\n @Prop() textColor?: string;\n\n /**\n * Color of timeline\n * @uiName Line color\n * @uiWidget color\n * @format color\n */\n @Prop() lineColor?: string;\n\n /**\n * @uiName Reward amount\n */\n @Prop() reward: string;\n\n /**\n * @uiName Reward unit\n */\n @Prop() unit: string;\n\n /**\n * @uiName Description\n */\n @Prop() desc: string;\n\n /**\n * @uiName Icon\n * @uiType string\n * @uiEnum [\"gift\", \"circle\"]\n * @uiEnumNames [\"Gift\", \"Circle\"]\n */\n @Prop() icon: \"gift\" | \"circle\";\n\n @State() iconState: \"gift\" | \"circle\" = \"gift\";\n\n @Method() async setIcon(value: \"gift\" | \"circle\") {\n this.iconState = value;\n }\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n useRequestRerender([this.reward]);\n\n return <TimelineEntryView {...getProps(this)} />;\n }\n}\n","import { h, Host } from \"@stencil/core\";\n\nexport interface UserNameViewProps {\n loadingText: string;\n loading: boolean;\n username: string;\n}\n\nexport function UserNameView(props: UserNameViewProps) {\n return <Host>{props.loading ? props.loadingText : props.username}</Host>;\n}\n","import { useQuery, useUserIdentity } from \"@saasquatch/component-boilerplate\";\nimport { gql } from \"graphql-request\";\nimport { UserName } from \"./sqm-user-name\";\nimport { UserNameViewProps } from \"./sqm-user-name-view\";\n\nconst GET_USER_NAME = gql`\n query getUserName {\n viewer {\n ... on User {\n firstName\n lastName\n }\n }\n }\n`;\n\nexport function useUserName(props: UserName): UserNameViewProps {\n const user = useUserIdentity();\n const res = useQuery(GET_USER_NAME, {}, !user?.jwt);\n const loading = res.loading;\n const username =\n res.data?.viewer?.firstName || res.data?.viewer?.lastName\n ? `${res.data?.viewer?.firstName} ${res.data?.viewer?.lastName}`\n : props.fallback;\n return {\n loadingText: props.loadingText,\n loading,\n username,\n };\n}\n","import { isDemo } from \"@saasquatch/component-boilerplate\";\nimport { withHooks } from \"@saasquatch/stencil-hooks\";\nimport { Component, h, Prop, State } from \"@stencil/core\";\nimport deepmerge from \"deepmerge\";\nimport { DemoData } from \"../../global/demo\";\nimport { UserNameView, UserNameViewProps } from \"./sqm-user-name-view\";\nimport { useUserName } from \"./useUserName\";\n\n/**\n * @uiName User Name\n * @exampleGroup Common Components\n * @example User Name Display - <sqm-user-name fallback=\"Anonymous User\" loading-text=\"...\"></sqm-user-name>\n */\n@Component({\n tag: \"sqm-user-name\",\n shadow: true,\n})\nexport class UserName {\n @State() ignored = true;\n\n /**\n * @uiName Unknown user name\n */\n @Prop() fallback: string = \"Anonymous User\";\n\n /**\n * Text displayed while the participant’s name is loading.\n * @uiName Loading text\n */\n @Prop() loadingText: string = \"...\";\n\n /**\n * @undocumented\n * @uiType object\n */\n @Prop() demoData?: DemoData<UserNameViewProps>;\n\n constructor() {\n withHooks(this);\n }\n disconnectedCallback() {}\n\n render() {\n const props = isDemo() ? useUserNameDemo(this) : useUserName(this);\n return <UserNameView {...props} />;\n }\n}\n\nfunction useUserNameDemo(props: UserName): UserNameViewProps {\n return deepmerge(\n {\n loading: false,\n loadingText: \"...\",\n username: \"John Smith\",\n },\n props.demoData || {},\n { arrayMerge: (_, a) => a }\n );\n}\n"],"names":["withHooks","useHost","h","guard","ColorError","parseToHsla","hsla","Themes.Netflix","useDomContext","useCheckboxFieldDemo","gql","WIDGET_ENGAGEMENT_EVENT","useUserIdentity","useProgramId","useEngagementMedium","useMutation","useQuery","GET_USER","UPSERT_USER","defaultFormState","hooks.withHooks","GET_USER_DETAILS","useRegisterDemo","useLocale","EmptySlot","style","vanillaStyle","sheet","styleString","navigation","useTick","useChangePasswordMutation","useRequestPasswordResetEmailMutation","useRegisterWithEmailAndPasswordMutation","debug","module","useRefreshDispatcher","_e","useCurrentPage","useParentState","useParentQuery","getContextValueName"],"mappings":"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AC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CA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","x_google_ignoreList":[2,69]}
|