@saasquatch/mint-components 1.14.5-3 → 1.14.6-0
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/{ShadowViewAddon-787391f7.js → ShadowViewAddon-be112912.js} +81 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/mint-components.cjs.js +1 -1
- package/dist/cjs/{sqm-big-stat_41.cjs.entry.js → sqm-big-stat_42.cjs.entry.js} +220 -7
- package/dist/cjs/sqm-stencilbook.cjs.entry.js +115 -3
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/sqm-coupon-code/useCouponCode.js +2 -4
- package/dist/collection/components/sqm-lead-form/LeadForm.stories.js +102 -0
- package/dist/collection/components/sqm-lead-form/sqm-lead-form-view.js +83 -0
- package/dist/collection/components/sqm-lead-form/sqm-lead-form.js +353 -0
- package/dist/collection/components/sqm-lead-form/useLeadForm.js +122 -0
- package/dist/collection/components/sqm-lead-form/useLeadFormState.js +10 -0
- package/dist/collection/components/sqm-stencilbook/sqm-stencilbook.js +2 -0
- package/dist/esm/{ShadowViewAddon-cf230f50.js → ShadowViewAddon-9a77dd6b.js} +81 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/mint-components.js +1 -1
- package/dist/esm/{sqm-big-stat_41.entry.js → sqm-big-stat_42.entry.js} +222 -10
- package/dist/esm/sqm-stencilbook.entry.js +115 -3
- package/dist/esm-es5/{ShadowViewAddon-cf230f50.js → ShadowViewAddon-9a77dd6b.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/mint-components.js +1 -1
- package/dist/esm-es5/sqm-big-stat_42.entry.js +1 -0
- package/dist/esm-es5/sqm-stencilbook.entry.js +1 -1
- package/dist/mint-components/mint-components.esm.js +1 -1
- package/dist/mint-components/p-37996351.system.js +1 -1
- package/dist/mint-components/p-5aafb98a.system.js +1 -0
- package/dist/mint-components/p-a2adc8b8.system.entry.js +1 -0
- package/dist/mint-components/{p-4d7108af.entry.js → p-aa71fc1a.entry.js} +2 -2
- package/dist/mint-components/{p-6cc141b9.js → p-ca9caa59.js} +1 -1
- package/dist/mint-components/{p-9134cf37.entry.js → p-e62f2051.entry.js} +25 -19
- package/dist/mint-components/p-f38f77b5.system.entry.js +1 -0
- package/dist/types/components/sqm-lead-form/LeadForm.stories.d.ts +9 -0
- package/dist/types/components/sqm-lead-form/sqm-lead-form-view.d.ts +28 -0
- package/dist/types/components/sqm-lead-form/sqm-lead-form.d.ts +66 -0
- package/dist/types/components/sqm-lead-form/useLeadForm.d.ts +23 -0
- package/dist/types/components/sqm-lead-form/useLeadFormState.d.ts +19 -0
- package/dist/types/components.d.ts +114 -0
- package/docs/docs.docx +0 -0
- package/docs/raisins.json +1 -1
- package/grapesjs/grapesjs.js +1 -1
- package/package.json +1 -1
- package/dist/esm-es5/sqm-big-stat_41.entry.js +0 -1
- package/dist/mint-components/p-562428ef.system.js +0 -1
- package/dist/mint-components/p-b74d7d81.system.entry.js +0 -1
- package/dist/mint-components/p-caca540c.system.entry.js +0 -1
|
@@ -23,7 +23,7 @@ const sqmPortalLoginView = require('./sqm-portal-login-view-761a4d8e.js');
|
|
|
23
23
|
const usePortalLogin = require('./usePortalLogin-63d896d1.js');
|
|
24
24
|
const AsYouType = require('./AsYouType-6788393a.js');
|
|
25
25
|
const utilities = require('./utilities-78f5e169.js');
|
|
26
|
-
const ShadowViewAddon = require('./ShadowViewAddon-
|
|
26
|
+
const ShadowViewAddon = require('./ShadowViewAddon-be112912.js');
|
|
27
27
|
require('./sqm-portal-container-view-4f15143a.js');
|
|
28
28
|
const usePayoutStatus = require('./usePayoutStatus-feeac99b.js');
|
|
29
29
|
|
|
@@ -318,12 +318,10 @@ function useCouponCode(props) {
|
|
|
318
318
|
const countdownRef = stencilHooks_module.useRef(undefined);
|
|
319
319
|
const { data, loading, refetch, errors } = index_module.wn(FuelTankRewardsQuery, { programId }, !(user === null || user === void 0 ? void 0 : user.jwt));
|
|
320
320
|
async function checkReward() {
|
|
321
|
-
var _a, _b, _c, _d, _e;
|
|
321
|
+
var _a, _b, _c, _d, _e, _f;
|
|
322
322
|
const data = await refetch();
|
|
323
323
|
setRetried(true);
|
|
324
|
-
if (
|
|
325
|
-
// @ts-ignore
|
|
326
|
-
!((_e = (_d = (_c = (_b = (_a = data === null || data === void 0 ? void 0 : data.user) === null || _a === void 0 ? void 0 : _a.instantAccessRewards) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.pendingReasons) === null || _e === void 0 ? void 0 : _e.includes("ERROR_SYNCING_FUEL_TANK_CODE"))) {
|
|
324
|
+
if (!((_f = (_e = (_d = (_c = (_b = (_a = data) === null || _a === void 0 ? void 0 : _a.user) === null || _b === void 0 ? void 0 : _b.instantAccessRewards) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.pendingReasons) === null || _f === void 0 ? void 0 : _f.includes("ERROR_SYNCING_FUEL_TANK_CODE"))) {
|
|
327
325
|
return clearInterval(timerRef.current);
|
|
328
326
|
}
|
|
329
327
|
}
|
|
@@ -1346,6 +1344,220 @@ function useInputFieldDemo(props) {
|
|
|
1346
1344
|
}, props.demoData || {}, { arrayMerge: (_, a) => a });
|
|
1347
1345
|
}
|
|
1348
1346
|
|
|
1347
|
+
const LEAD_FORM_STATE_CONTEXT = "sq:lead-form-state";
|
|
1348
|
+
const LEAD_FORM_STATE_CONTEXT_INTERNAL = "sq:lead-form-state-internal";
|
|
1349
|
+
function useLeadFormState(formState) {
|
|
1350
|
+
const host = index_module._();
|
|
1351
|
+
const [leadFormState, setLeadFormState] = stencilHooks_module.y(host, LEAD_FORM_STATE_CONTEXT, formState);
|
|
1352
|
+
stencilHooks_module.y(host, LEAD_FORM_STATE_CONTEXT_INTERNAL, [leadFormState, setLeadFormState]);
|
|
1353
|
+
return { leadFormState, setLeadFormState };
|
|
1354
|
+
}
|
|
1355
|
+
|
|
1356
|
+
const SUBMIT_LEAD = index_module.dist.gql `
|
|
1357
|
+
mutation submitForm($formSubmissionInput: FormSubmissionInput) {
|
|
1358
|
+
submitForm(formSubmissionInput: $formSubmissionInput) {
|
|
1359
|
+
success
|
|
1360
|
+
}
|
|
1361
|
+
}
|
|
1362
|
+
`;
|
|
1363
|
+
function useLeadForm(props) {
|
|
1364
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
1365
|
+
const formRef = stencilHooks_module.useRef(null);
|
|
1366
|
+
const { leadFormState, setLeadFormState } = useLeadFormState({});
|
|
1367
|
+
const [submitLead, { loading, errors, data }] = index_module.$e(SUBMIT_LEAD);
|
|
1368
|
+
stencilHooks_module.useEffect(() => {
|
|
1369
|
+
if (!formRef.current)
|
|
1370
|
+
return;
|
|
1371
|
+
const form = formRef.current;
|
|
1372
|
+
form.addEventListener("sl-input", inputFunction);
|
|
1373
|
+
return () => {
|
|
1374
|
+
form.removeEventListener("sl-input", inputFunction);
|
|
1375
|
+
};
|
|
1376
|
+
}, [formRef.current]);
|
|
1377
|
+
const submit = async (event) => {
|
|
1378
|
+
let formControls = event.target.getFormControls();
|
|
1379
|
+
let formData = {};
|
|
1380
|
+
let validationErrors = {};
|
|
1381
|
+
formControls === null || formControls === void 0 ? void 0 : formControls.forEach((control) => {
|
|
1382
|
+
if (!control.name)
|
|
1383
|
+
return;
|
|
1384
|
+
const key = control.name;
|
|
1385
|
+
const value = control.value;
|
|
1386
|
+
jsonpointer.jsonpointer.set(formData, key, value);
|
|
1387
|
+
// required validation
|
|
1388
|
+
if (control.required && !value) {
|
|
1389
|
+
jsonpointer.jsonpointer.set(validationErrors, key, props.requiredFieldErrorMessage);
|
|
1390
|
+
}
|
|
1391
|
+
// custom validation
|
|
1392
|
+
if (typeof control.validationError === "function") {
|
|
1393
|
+
const validate = control.validationError;
|
|
1394
|
+
const validationError = validate({ control, key, value });
|
|
1395
|
+
if (validationError)
|
|
1396
|
+
jsonpointer.jsonpointer.set(validationErrors, key, validationError);
|
|
1397
|
+
}
|
|
1398
|
+
});
|
|
1399
|
+
if (Object.keys(validationErrors).length) {
|
|
1400
|
+
setLeadFormState({ loading: false, error: "", validationErrors });
|
|
1401
|
+
// early return for validation errors
|
|
1402
|
+
return;
|
|
1403
|
+
}
|
|
1404
|
+
setLeadFormState({
|
|
1405
|
+
loading: true,
|
|
1406
|
+
error: "",
|
|
1407
|
+
validationErrors: {},
|
|
1408
|
+
});
|
|
1409
|
+
formData = { ...formData };
|
|
1410
|
+
const variables = {
|
|
1411
|
+
key: props.formKey,
|
|
1412
|
+
formData,
|
|
1413
|
+
};
|
|
1414
|
+
try {
|
|
1415
|
+
const result = await submitLead({ formSubmissionInput: variables });
|
|
1416
|
+
if (result instanceof Error) {
|
|
1417
|
+
throw result;
|
|
1418
|
+
}
|
|
1419
|
+
setLeadFormState({
|
|
1420
|
+
loading: false,
|
|
1421
|
+
error: "",
|
|
1422
|
+
validationErrors: {},
|
|
1423
|
+
});
|
|
1424
|
+
if (result.success) {
|
|
1425
|
+
index_module.jn.push(props.nextPage);
|
|
1426
|
+
}
|
|
1427
|
+
}
|
|
1428
|
+
catch (error) {
|
|
1429
|
+
setLeadFormState({
|
|
1430
|
+
loading: false,
|
|
1431
|
+
error: props.networkErrorMessage,
|
|
1432
|
+
validationErrors: {},
|
|
1433
|
+
});
|
|
1434
|
+
}
|
|
1435
|
+
};
|
|
1436
|
+
const inputFunction = index_module.useCallback((e) => {
|
|
1437
|
+
var _a, _b;
|
|
1438
|
+
const name = (_b = (_a = e.target) === null || _a === void 0 ? void 0 : _a.type) === null || _b === void 0 ? void 0 : _b.toLowerCase();
|
|
1439
|
+
if (name !== "tel")
|
|
1440
|
+
return;
|
|
1441
|
+
const asYouType = new AsYouType.AsYouType("US");
|
|
1442
|
+
e.target.value = asYouType.input(e.target.value);
|
|
1443
|
+
}, []);
|
|
1444
|
+
let errorMessage = "";
|
|
1445
|
+
if ((_a = errors === null || errors === void 0 ? void 0 : errors.response) === null || _a === void 0 ? void 0 : _a["error"]) {
|
|
1446
|
+
errorMessage = props.networkErrorMessage;
|
|
1447
|
+
}
|
|
1448
|
+
else if ((errors === null || errors === void 0 ? void 0 : errors.message) && !((_b = errors === null || errors === void 0 ? void 0 : errors.response) === null || _b === void 0 ? void 0 : _b.errors.length)) {
|
|
1449
|
+
errorMessage = props.networkErrorMessage;
|
|
1450
|
+
}
|
|
1451
|
+
else {
|
|
1452
|
+
errorMessage =
|
|
1453
|
+
((_f = (_e = (_d = (_c = errors === null || errors === void 0 ? void 0 : errors.response) === null || _c === void 0 ? void 0 : _c.errors) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.extensions) === null || _f === void 0 ? void 0 : _f.message) || ((_j = (_h = (_g = errors === null || errors === void 0 ? void 0 : errors.response) === null || _g === void 0 ? void 0 : _g.errors) === null || _h === void 0 ? void 0 : _h[0]) === null || _j === void 0 ? void 0 : _j.message) || (leadFormState === null || leadFormState === void 0 ? void 0 : leadFormState.error);
|
|
1454
|
+
}
|
|
1455
|
+
return {
|
|
1456
|
+
states: {
|
|
1457
|
+
loading,
|
|
1458
|
+
error: errorMessage,
|
|
1459
|
+
leadFormState,
|
|
1460
|
+
referralCode: "ABC123",
|
|
1461
|
+
},
|
|
1462
|
+
callbacks: {
|
|
1463
|
+
submit,
|
|
1464
|
+
inputFunction,
|
|
1465
|
+
},
|
|
1466
|
+
refs: {
|
|
1467
|
+
formRef,
|
|
1468
|
+
},
|
|
1469
|
+
};
|
|
1470
|
+
}
|
|
1471
|
+
|
|
1472
|
+
const LeadForm = class {
|
|
1473
|
+
constructor(hostRef) {
|
|
1474
|
+
index.registerInstance(this, hostRef);
|
|
1475
|
+
this.ignored = true;
|
|
1476
|
+
/**
|
|
1477
|
+
* Redirect participants to this page from their verification email
|
|
1478
|
+
*
|
|
1479
|
+
* @uiName Submission redirect
|
|
1480
|
+
* @uiWidget pageSelect
|
|
1481
|
+
*/
|
|
1482
|
+
this.nextPage = "/";
|
|
1483
|
+
/**
|
|
1484
|
+
* @uiName Email field label
|
|
1485
|
+
*/
|
|
1486
|
+
this.emailLabel = "Email";
|
|
1487
|
+
/**
|
|
1488
|
+
* @uiName First Name field label
|
|
1489
|
+
*/
|
|
1490
|
+
this.firstNameLabel = "First Name";
|
|
1491
|
+
/**
|
|
1492
|
+
* @uiName Last Name field label
|
|
1493
|
+
*/
|
|
1494
|
+
this.lastNameLabel = "Last Name";
|
|
1495
|
+
/**
|
|
1496
|
+
* @uiName Submit button text
|
|
1497
|
+
*/
|
|
1498
|
+
this.submitLabel = "Submit";
|
|
1499
|
+
/**
|
|
1500
|
+
* @uiName Header text
|
|
1501
|
+
*/
|
|
1502
|
+
this.pageLabel = "Submit your information";
|
|
1503
|
+
this.formKey = "lead-form";
|
|
1504
|
+
/**
|
|
1505
|
+
* The message to be displayed when a required field is not filled.
|
|
1506
|
+
*
|
|
1507
|
+
* @uiName Required field message
|
|
1508
|
+
* @uiWidget textArea
|
|
1509
|
+
*/
|
|
1510
|
+
this.requiredFieldErrorMessage = "Cannot be empty";
|
|
1511
|
+
/**
|
|
1512
|
+
* The message to be displayed when a the form submission fails unexpectedly.
|
|
1513
|
+
*
|
|
1514
|
+
* @uiName Network error message
|
|
1515
|
+
* @uiWidget textArea
|
|
1516
|
+
*/
|
|
1517
|
+
this.networkErrorMessage = "Network request failed.";
|
|
1518
|
+
/**
|
|
1519
|
+
* The message to be displayed when the email used is invalid or blocked.
|
|
1520
|
+
*
|
|
1521
|
+
* @uiName Invalid email message
|
|
1522
|
+
* @uiWidget textArea
|
|
1523
|
+
*/
|
|
1524
|
+
this.invalidEmailErrorMessage = "Must be a valid email address";
|
|
1525
|
+
stencilHooks_module.h$1(this);
|
|
1526
|
+
}
|
|
1527
|
+
disconnectedCallback() { }
|
|
1528
|
+
render() {
|
|
1529
|
+
const { states, callbacks, refs } = index_module.isDemo()
|
|
1530
|
+
? useRegisterDemo(this)
|
|
1531
|
+
: useLeadForm(this);
|
|
1532
|
+
const content = {
|
|
1533
|
+
formData: index.h("slot", { name: "formData" }),
|
|
1534
|
+
emailLabel: this.emailLabel,
|
|
1535
|
+
submitLabel: this.submitLabel,
|
|
1536
|
+
pageLabel: this.pageLabel,
|
|
1537
|
+
invalidEmailErrorMessage: this.invalidEmailErrorMessage,
|
|
1538
|
+
requiredFieldErrorMessage: this.requiredFieldErrorMessage,
|
|
1539
|
+
};
|
|
1540
|
+
return (index.h(ShadowViewAddon.LeadFormView, { states: states, callbacks: callbacks, content: content, refs: refs }));
|
|
1541
|
+
}
|
|
1542
|
+
};
|
|
1543
|
+
function useRegisterDemo(props) {
|
|
1544
|
+
return cjs.cjs({
|
|
1545
|
+
states: {
|
|
1546
|
+
error: "",
|
|
1547
|
+
loading: false,
|
|
1548
|
+
},
|
|
1549
|
+
callbacks: {
|
|
1550
|
+
submit: async (_event) => {
|
|
1551
|
+
console.log("submit");
|
|
1552
|
+
},
|
|
1553
|
+
inputFunction: () => { },
|
|
1554
|
+
},
|
|
1555
|
+
refs: {
|
|
1556
|
+
formRef: {},
|
|
1557
|
+
},
|
|
1558
|
+
}, props.demoData || {}, { arrayMerge: (_, a) => a });
|
|
1559
|
+
}
|
|
1560
|
+
|
|
1349
1561
|
const GET_LEADERBOARD = index_module.dist.gql `
|
|
1350
1562
|
query (
|
|
1351
1563
|
$type: String!
|
|
@@ -3046,7 +3258,7 @@ const PortalRegister = class {
|
|
|
3046
3258
|
disconnectedCallback() { }
|
|
3047
3259
|
render() {
|
|
3048
3260
|
const { states, callbacks, refs } = index_module.isDemo()
|
|
3049
|
-
? useRegisterDemo(this)
|
|
3261
|
+
? useRegisterDemo$1(this)
|
|
3050
3262
|
: usePortalRegister(this);
|
|
3051
3263
|
const content = {
|
|
3052
3264
|
formData: index.h("slot", { name: "formData" }),
|
|
@@ -3069,7 +3281,7 @@ const PortalRegister = class {
|
|
|
3069
3281
|
return (index.h(ShadowViewAddon.PortalRegisterView, { states: states, callbacks: callbacks, content: content, refs: refs }));
|
|
3070
3282
|
}
|
|
3071
3283
|
};
|
|
3072
|
-
function useRegisterDemo(props) {
|
|
3284
|
+
function useRegisterDemo$1(props) {
|
|
3073
3285
|
return cjs.cjs({
|
|
3074
3286
|
states: {
|
|
3075
3287
|
error: "",
|
|
@@ -5203,6 +5415,7 @@ exports.sqm_hero_image = HeroImage;
|
|
|
5203
5415
|
exports.sqm_hook_story_container = SqmHookStoryContainer;
|
|
5204
5416
|
exports.sqm_image = Image;
|
|
5205
5417
|
exports.sqm_input_field = InputField;
|
|
5418
|
+
exports.sqm_lead_form = LeadForm;
|
|
5206
5419
|
exports.sqm_leaderboard = Leaderboard;
|
|
5207
5420
|
exports.sqm_link_button = LinkButton;
|
|
5208
5421
|
exports.sqm_marketing_emails_checkbox = MarketingEmailsCheckbox;
|
|
@@ -35,7 +35,7 @@ const sqmPortalResetPasswordView = require('./sqm-portal-reset-password-view-fe6
|
|
|
35
35
|
const sqmPortalVerifyEmailView = require('./sqm-portal-verify-email-view-7b678f34.js');
|
|
36
36
|
require('./ErrorView-b2fcf954.js');
|
|
37
37
|
const sqmQrCodeView = require('./sqm-qr-code-view-15dfc0b6.js');
|
|
38
|
-
const ShadowViewAddon = require('./ShadowViewAddon-
|
|
38
|
+
const ShadowViewAddon = require('./ShadowViewAddon-be112912.js');
|
|
39
39
|
const sqmPortalContainerView = require('./sqm-portal-container-view-4f15143a.js');
|
|
40
40
|
const sqmInvoiceTableView = require('./sqm-invoice-table-view-0f7fa309.js');
|
|
41
41
|
|
|
@@ -15831,6 +15831,117 @@ const QRCode = /*#__PURE__*/Object.freeze({
|
|
|
15831
15831
|
DownloadError: DownloadError
|
|
15832
15832
|
});
|
|
15833
15833
|
|
|
15834
|
+
const LeadForm_stories = {
|
|
15835
|
+
title: "Components/Lead Form",
|
|
15836
|
+
};
|
|
15837
|
+
const defaultProps$t = {
|
|
15838
|
+
states: {
|
|
15839
|
+
leadFormState: {},
|
|
15840
|
+
error: "",
|
|
15841
|
+
loading: false,
|
|
15842
|
+
referralCode: "ABC123",
|
|
15843
|
+
},
|
|
15844
|
+
callbacks: {
|
|
15845
|
+
submit: () => console.log("Submit!"),
|
|
15846
|
+
inputFunction: () => { },
|
|
15847
|
+
},
|
|
15848
|
+
refs: {
|
|
15849
|
+
formRef: {},
|
|
15850
|
+
},
|
|
15851
|
+
content: {
|
|
15852
|
+
pageLabel: "Submit your information",
|
|
15853
|
+
requiredFieldErrorMessage: "Cannot be empty",
|
|
15854
|
+
invalidEmailErrorMessage: "Must be a valid email address",
|
|
15855
|
+
},
|
|
15856
|
+
};
|
|
15857
|
+
const errorProps$c = {
|
|
15858
|
+
states: {
|
|
15859
|
+
error: "Something went wrong. Please try again.",
|
|
15860
|
+
leadFormState: {},
|
|
15861
|
+
loading: false,
|
|
15862
|
+
referralCode: "ABC123",
|
|
15863
|
+
},
|
|
15864
|
+
callbacks: {
|
|
15865
|
+
submit: () => console.log("Submit!"),
|
|
15866
|
+
inputFunction: () => { },
|
|
15867
|
+
},
|
|
15868
|
+
refs: {
|
|
15869
|
+
formRef: {},
|
|
15870
|
+
},
|
|
15871
|
+
content: {
|
|
15872
|
+
pageLabel: "Submit your information",
|
|
15873
|
+
requiredFieldErrorMessage: "Cannot be empty",
|
|
15874
|
+
invalidEmailErrorMessage: "Must be a valid email address",
|
|
15875
|
+
},
|
|
15876
|
+
};
|
|
15877
|
+
const loadingProps$9 = {
|
|
15878
|
+
states: {
|
|
15879
|
+
leadFormState: {},
|
|
15880
|
+
error: "",
|
|
15881
|
+
loading: true,
|
|
15882
|
+
referralCode: "ABC123",
|
|
15883
|
+
},
|
|
15884
|
+
callbacks: {
|
|
15885
|
+
submit: () => console.log("Submit!"),
|
|
15886
|
+
inputFunction: () => { },
|
|
15887
|
+
},
|
|
15888
|
+
refs: {
|
|
15889
|
+
formRef: {},
|
|
15890
|
+
},
|
|
15891
|
+
content: {
|
|
15892
|
+
pageLabel: "Submit your information",
|
|
15893
|
+
requiredFieldErrorMessage: "Cannot be empty",
|
|
15894
|
+
invalidEmailErrorMessage: "Must be a valid email address",
|
|
15895
|
+
},
|
|
15896
|
+
};
|
|
15897
|
+
const slottedProps$2 = {
|
|
15898
|
+
states: {
|
|
15899
|
+
leadFormState: {},
|
|
15900
|
+
error: "",
|
|
15901
|
+
loading: false,
|
|
15902
|
+
referralCode: "ABC123",
|
|
15903
|
+
},
|
|
15904
|
+
callbacks: {
|
|
15905
|
+
submit: () => console.log("Submit!"),
|
|
15906
|
+
inputFunction: () => { },
|
|
15907
|
+
},
|
|
15908
|
+
refs: {
|
|
15909
|
+
formRef: {},
|
|
15910
|
+
},
|
|
15911
|
+
content: {
|
|
15912
|
+
pageLabel: "Submit your information",
|
|
15913
|
+
requiredFieldErrorMessage: "Cannot be empty",
|
|
15914
|
+
invalidEmailErrorMessage: "Must be a valid email address",
|
|
15915
|
+
formData: (index.h("div", null,
|
|
15916
|
+
index.h("sl-input", { style: { marginBottom: "var(--sl-spacing-x-large)" }, exportparts: "label: input-label, base: input-base", label: "Slotted Input", required: true }),
|
|
15917
|
+
index.h("sl-input", { exportparts: "label: input-label, base: input-base", label: "Slotted Input 2", required: true }))),
|
|
15918
|
+
},
|
|
15919
|
+
};
|
|
15920
|
+
const Default$r = () => index.h(ShadowViewAddon.LeadFormView, Object.assign({}, defaultProps$t));
|
|
15921
|
+
const LeadSubmitWithError = () => index.h(ShadowViewAddon.LeadFormView, Object.assign({}, errorProps$c));
|
|
15922
|
+
const LeadSubmitLoading = () => index.h(ShadowViewAddon.LeadFormView, Object.assign({}, loadingProps$9));
|
|
15923
|
+
const FieldsHidden$2 = () => {
|
|
15924
|
+
return (index.h("sqm-lead-form", { demoData: {
|
|
15925
|
+
states: {
|
|
15926
|
+
leadFormState: {},
|
|
15927
|
+
error: "",
|
|
15928
|
+
loading: true,
|
|
15929
|
+
referralCode: "ABC123",
|
|
15930
|
+
},
|
|
15931
|
+
} }));
|
|
15932
|
+
};
|
|
15933
|
+
const SlottedInputs$2 = () => index.h(ShadowViewAddon.LeadFormView, Object.assign({}, slottedProps$2));
|
|
15934
|
+
|
|
15935
|
+
const LeadForm = /*#__PURE__*/Object.freeze({
|
|
15936
|
+
__proto__: null,
|
|
15937
|
+
'default': LeadForm_stories,
|
|
15938
|
+
Default: Default$r,
|
|
15939
|
+
LeadSubmitWithError: LeadSubmitWithError,
|
|
15940
|
+
LeadSubmitLoading: LeadSubmitLoading,
|
|
15941
|
+
FieldsHidden: FieldsHidden$2,
|
|
15942
|
+
SlottedInputs: SlottedInputs$2
|
|
15943
|
+
});
|
|
15944
|
+
|
|
15834
15945
|
/**
|
|
15835
15946
|
*
|
|
15836
15947
|
* Themes
|
|
@@ -15843,7 +15954,7 @@ const QRCode = /*#__PURE__*/Object.freeze({
|
|
|
15843
15954
|
*
|
|
15844
15955
|
*/
|
|
15845
15956
|
//
|
|
15846
|
-
const Default$
|
|
15957
|
+
const Default$s = `
|
|
15847
15958
|
// No CSS
|
|
15848
15959
|
`;
|
|
15849
15960
|
const Orangey = `
|
|
@@ -15877,7 +15988,7 @@ const Klip = `
|
|
|
15877
15988
|
|
|
15878
15989
|
const Themes = /*#__PURE__*/Object.freeze({
|
|
15879
15990
|
__proto__: null,
|
|
15880
|
-
Default: Default$
|
|
15991
|
+
Default: Default$s,
|
|
15881
15992
|
Orangey: Orangey,
|
|
15882
15993
|
Netflix: Netflix,
|
|
15883
15994
|
SaaSquatchCorporate: SaaSquatchCorporate,
|
|
@@ -18568,6 +18679,7 @@ const stories = [
|
|
|
18568
18679
|
PayoutButtonScroll,
|
|
18569
18680
|
PayoutStatusAlert,
|
|
18570
18681
|
QRCode,
|
|
18682
|
+
LeadForm,
|
|
18571
18683
|
];
|
|
18572
18684
|
const StencilStorybook = class {
|
|
18573
18685
|
constructor(hostRef) {
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
"./components/sqm-invoice-table/columns/sqm-invoice-table-data-column.js",
|
|
43
43
|
"./components/sqm-invoice-table/columns/sqm-invoice-table-date-column.js",
|
|
44
44
|
"./components/sqm-invoice-table/columns/sqm-invoice-table-download-column.js",
|
|
45
|
+
"./components/sqm-lead-form/sqm-lead-form.js",
|
|
45
46
|
"./components/sqm-leaderboard/sqm-leaderboard.js",
|
|
46
47
|
"./components/sqm-leaderboard-rank/sqm-leaderboard-rank.js",
|
|
47
48
|
"./components/sqm-link-button/sqm-link-button.js",
|
|
@@ -45,12 +45,10 @@ export function useCouponCode(props) {
|
|
|
45
45
|
const countdownRef = useRef(undefined);
|
|
46
46
|
const { data, loading, refetch, errors } = useQuery(FuelTankRewardsQuery, { programId }, !(user === null || user === void 0 ? void 0 : user.jwt));
|
|
47
47
|
async function checkReward() {
|
|
48
|
-
var _a, _b, _c, _d, _e;
|
|
48
|
+
var _a, _b, _c, _d, _e, _f;
|
|
49
49
|
const data = await refetch();
|
|
50
50
|
setRetried(true);
|
|
51
|
-
if (
|
|
52
|
-
// @ts-ignore
|
|
53
|
-
!((_e = (_d = (_c = (_b = (_a = data === null || data === void 0 ? void 0 : data.user) === null || _a === void 0 ? void 0 : _a.instantAccessRewards) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.pendingReasons) === null || _e === void 0 ? void 0 : _e.includes("ERROR_SYNCING_FUEL_TANK_CODE"))) {
|
|
51
|
+
if (!((_f = (_e = (_d = (_c = (_b = (_a = data) === null || _a === void 0 ? void 0 : _a.user) === null || _b === void 0 ? void 0 : _b.instantAccessRewards) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.pendingReasons) === null || _f === void 0 ? void 0 : _f.includes("ERROR_SYNCING_FUEL_TANK_CODE"))) {
|
|
54
52
|
return clearInterval(timerRef.current);
|
|
55
53
|
}
|
|
56
54
|
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
import { LeadFormView } from "./sqm-lead-form-view";
|
|
3
|
+
export default {
|
|
4
|
+
title: "Components/Lead Form",
|
|
5
|
+
};
|
|
6
|
+
const defaultProps = {
|
|
7
|
+
states: {
|
|
8
|
+
leadFormState: {},
|
|
9
|
+
error: "",
|
|
10
|
+
loading: false,
|
|
11
|
+
referralCode: "ABC123",
|
|
12
|
+
},
|
|
13
|
+
callbacks: {
|
|
14
|
+
submit: () => console.log("Submit!"),
|
|
15
|
+
inputFunction: () => { },
|
|
16
|
+
},
|
|
17
|
+
refs: {
|
|
18
|
+
formRef: {},
|
|
19
|
+
},
|
|
20
|
+
content: {
|
|
21
|
+
pageLabel: "Submit your information",
|
|
22
|
+
requiredFieldErrorMessage: "Cannot be empty",
|
|
23
|
+
invalidEmailErrorMessage: "Must be a valid email address",
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
const errorProps = {
|
|
27
|
+
states: {
|
|
28
|
+
error: "Something went wrong. Please try again.",
|
|
29
|
+
leadFormState: {},
|
|
30
|
+
loading: false,
|
|
31
|
+
referralCode: "ABC123",
|
|
32
|
+
},
|
|
33
|
+
callbacks: {
|
|
34
|
+
submit: () => console.log("Submit!"),
|
|
35
|
+
inputFunction: () => { },
|
|
36
|
+
},
|
|
37
|
+
refs: {
|
|
38
|
+
formRef: {},
|
|
39
|
+
},
|
|
40
|
+
content: {
|
|
41
|
+
pageLabel: "Submit your information",
|
|
42
|
+
requiredFieldErrorMessage: "Cannot be empty",
|
|
43
|
+
invalidEmailErrorMessage: "Must be a valid email address",
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
const loadingProps = {
|
|
47
|
+
states: {
|
|
48
|
+
leadFormState: {},
|
|
49
|
+
error: "",
|
|
50
|
+
loading: true,
|
|
51
|
+
referralCode: "ABC123",
|
|
52
|
+
},
|
|
53
|
+
callbacks: {
|
|
54
|
+
submit: () => console.log("Submit!"),
|
|
55
|
+
inputFunction: () => { },
|
|
56
|
+
},
|
|
57
|
+
refs: {
|
|
58
|
+
formRef: {},
|
|
59
|
+
},
|
|
60
|
+
content: {
|
|
61
|
+
pageLabel: "Submit your information",
|
|
62
|
+
requiredFieldErrorMessage: "Cannot be empty",
|
|
63
|
+
invalidEmailErrorMessage: "Must be a valid email address",
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
const slottedProps = {
|
|
67
|
+
states: {
|
|
68
|
+
leadFormState: {},
|
|
69
|
+
error: "",
|
|
70
|
+
loading: false,
|
|
71
|
+
referralCode: "ABC123",
|
|
72
|
+
},
|
|
73
|
+
callbacks: {
|
|
74
|
+
submit: () => console.log("Submit!"),
|
|
75
|
+
inputFunction: () => { },
|
|
76
|
+
},
|
|
77
|
+
refs: {
|
|
78
|
+
formRef: {},
|
|
79
|
+
},
|
|
80
|
+
content: {
|
|
81
|
+
pageLabel: "Submit your information",
|
|
82
|
+
requiredFieldErrorMessage: "Cannot be empty",
|
|
83
|
+
invalidEmailErrorMessage: "Must be a valid email address",
|
|
84
|
+
formData: (h("div", null,
|
|
85
|
+
h("sl-input", { style: { marginBottom: "var(--sl-spacing-x-large)" }, exportparts: "label: input-label, base: input-base", label: "Slotted Input", required: true }),
|
|
86
|
+
h("sl-input", { exportparts: "label: input-label, base: input-base", label: "Slotted Input 2", required: true }))),
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
export const Default = () => h(LeadFormView, Object.assign({}, defaultProps));
|
|
90
|
+
export const LeadSubmitWithError = () => h(LeadFormView, Object.assign({}, errorProps));
|
|
91
|
+
export const LeadSubmitLoading = () => h(LeadFormView, Object.assign({}, loadingProps));
|
|
92
|
+
export const FieldsHidden = () => {
|
|
93
|
+
return (h("sqm-lead-form", { demoData: {
|
|
94
|
+
states: {
|
|
95
|
+
leadFormState: {},
|
|
96
|
+
error: "",
|
|
97
|
+
loading: true,
|
|
98
|
+
referralCode: "ABC123",
|
|
99
|
+
},
|
|
100
|
+
} }));
|
|
101
|
+
};
|
|
102
|
+
export const SlottedInputs = () => h(LeadFormView, Object.assign({}, slottedProps));
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
import { AuthButtonsContainer, AuthColumn, AuthWrapper, ErrorStyles, HostBlock, } from "../../global/mixins";
|
|
3
|
+
import { createStyleSheet } from "../../styling/JSS";
|
|
4
|
+
import { TextSpanView } from "../sqm-text-span/sqm-text-span-view";
|
|
5
|
+
const style = {
|
|
6
|
+
Wrapper: { ...AuthWrapper, "max-width": "600px" },
|
|
7
|
+
Column: AuthColumn,
|
|
8
|
+
HostBlock: HostBlock,
|
|
9
|
+
":host": {
|
|
10
|
+
margin: "0 auto",
|
|
11
|
+
width: "100%",
|
|
12
|
+
},
|
|
13
|
+
ButtonsContainer: AuthButtonsContainer,
|
|
14
|
+
ErrorStyle: ErrorStyles,
|
|
15
|
+
};
|
|
16
|
+
const vanillaStyle = `
|
|
17
|
+
sqm-portal-register {
|
|
18
|
+
margin: 0 auto;
|
|
19
|
+
width: 100%;
|
|
20
|
+
display: block;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
:host{
|
|
24
|
+
display: block;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
:host([hidden]) {
|
|
28
|
+
display: none;
|
|
29
|
+
}
|
|
30
|
+
`;
|
|
31
|
+
const sheet = createStyleSheet(style);
|
|
32
|
+
const styleString = sheet.toString();
|
|
33
|
+
export function LeadFormView(props) {
|
|
34
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
35
|
+
const { states, refs, callbacks, content } = props;
|
|
36
|
+
if (states.error) {
|
|
37
|
+
window.scrollTo({ top: 0, left: 0, behavior: "smooth" });
|
|
38
|
+
}
|
|
39
|
+
return (h("div", { class: sheet.classes.Wrapper, part: "sqm-base" },
|
|
40
|
+
h("style", { type: "text/css" },
|
|
41
|
+
vanillaStyle,
|
|
42
|
+
styleString),
|
|
43
|
+
h(TextSpanView, { type: "h3" }, content.pageLabel),
|
|
44
|
+
h("sl-form", { class: sheet.classes.Column, "onSl-submit": callbacks.submit, ref: (el) => (refs.formRef.current = el), novalidate: true },
|
|
45
|
+
states.error && (h("sqm-form-message", { type: "error", exportparts: "erroralert-icon" },
|
|
46
|
+
h("div", { part: "erroralert-text" }, props.states.error))),
|
|
47
|
+
h("sl-input", Object.assign({ exportparts: "label: input-label, base: input-base", type: "text", name: "/lastName", label: content.firstNameLabel || "First Name", disabled: states.loading, required: true, validationError: ({ value }) => {
|
|
48
|
+
if (!value) {
|
|
49
|
+
return content.requiredFieldErrorMessage;
|
|
50
|
+
}
|
|
51
|
+
} }, (((_b = (_a = states.leadFormState) === null || _a === void 0 ? void 0 : _a.validationErrors) === null || _b === void 0 ? void 0 : _b.firstName) ? {
|
|
52
|
+
class: sheet.classes.ErrorStyle,
|
|
53
|
+
helpText: ((_d = (_c = states.leadFormState) === null || _c === void 0 ? void 0 : _c.validationErrors) === null || _d === void 0 ? void 0 : _d.firstName) ||
|
|
54
|
+
content.requiredFieldErrorMessage,
|
|
55
|
+
}
|
|
56
|
+
: []))),
|
|
57
|
+
h("sl-input", Object.assign({ exportparts: "label: input-label, base: input-base", type: "text", name: "/lastName", label: content.lastNameLabel || "Last Name", disabled: states.loading, required: true, validationError: ({ value }) => {
|
|
58
|
+
if (!value) {
|
|
59
|
+
return content.requiredFieldErrorMessage;
|
|
60
|
+
}
|
|
61
|
+
} }, (((_f = (_e = states.leadFormState) === null || _e === void 0 ? void 0 : _e.validationErrors) === null || _f === void 0 ? void 0 : _f.lastName) ? {
|
|
62
|
+
class: sheet.classes.ErrorStyle,
|
|
63
|
+
helpText: ((_h = (_g = states.leadFormState) === null || _g === void 0 ? void 0 : _g.validationErrors) === null || _h === void 0 ? void 0 : _h.lastName) ||
|
|
64
|
+
content.requiredFieldErrorMessage,
|
|
65
|
+
}
|
|
66
|
+
: []))),
|
|
67
|
+
h("sl-input", Object.assign({ exportparts: "label: input-label, base: input-base", type: "email", name: "/email", label: content.emailLabel || "Email", disabled: states.loading, required: true, validationError: ({ value }) => {
|
|
68
|
+
if (!value) {
|
|
69
|
+
return content.requiredFieldErrorMessage;
|
|
70
|
+
}
|
|
71
|
+
// this matches shoelace validation, but could be better
|
|
72
|
+
if (!value.includes("@")) {
|
|
73
|
+
return content.invalidEmailErrorMessage;
|
|
74
|
+
}
|
|
75
|
+
} }, (((_k = (_j = states.leadFormState) === null || _j === void 0 ? void 0 : _j.validationErrors) === null || _k === void 0 ? void 0 : _k.email) ? {
|
|
76
|
+
class: sheet.classes.ErrorStyle,
|
|
77
|
+
helpText: ((_m = (_l = states.leadFormState) === null || _l === void 0 ? void 0 : _l.validationErrors) === null || _m === void 0 ? void 0 : _m.email) ||
|
|
78
|
+
content.requiredFieldErrorMessage,
|
|
79
|
+
}
|
|
80
|
+
: []))),
|
|
81
|
+
h("input", { type: "hidden", hidden: true, name: "/rsReferralCode", value: states.referralCode }),
|
|
82
|
+
content.formData)));
|
|
83
|
+
}
|