@saasquatch/mint-components 1.13.2 → 1.13.3-2
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-cf0ee0a0.js → ShadowViewAddon-3ddee92b.js} +6 -5
- package/dist/cjs/copy-text-view-c85acaaa.js +96 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/mint-components.cjs.js +1 -1
- package/dist/cjs/sqm-big-stat_39.cjs.entry.js +3 -2
- package/dist/cjs/sqm-pagination_3.cjs.entry.js +6 -5
- package/dist/cjs/sqm-qr-code-view-7b26582e.js +87 -0
- package/dist/cjs/sqm-qr-code.cjs.entry.js +121 -0
- package/dist/cjs/sqm-stencilbook.cjs.entry.js +41 -5
- package/dist/cjs/{copy-text-view-a5524c20.js → useReferralCodes-82e8797b.js} +0 -93
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/sqm-qr-code/QRCode.stories.js +27 -0
- package/dist/collection/components/sqm-qr-code/sqm-qr-code-view.js +82 -0
- package/dist/collection/components/sqm-qr-code/sqm-qr-code.js +179 -0
- package/dist/collection/components/sqm-qr-code/useQRCode.js +59 -0
- package/dist/collection/components/sqm-stencilbook/sqm-stencilbook.js +2 -0
- package/dist/esm/{ShadowViewAddon-fd07e6e1.js → ShadowViewAddon-499b1f86.js} +2 -1
- package/dist/esm/copy-text-view-782137ba.js +94 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/mint-components.js +1 -1
- package/dist/esm/sqm-big-stat_39.entry.js +3 -2
- package/dist/esm/sqm-pagination_3.entry.js +2 -1
- package/dist/esm/sqm-qr-code-view-814b2929.js +85 -0
- package/dist/esm/sqm-qr-code.entry.js +117 -0
- package/dist/esm/sqm-stencilbook.entry.js +41 -5
- package/dist/esm/{copy-text-view-459a2e35.js → useReferralCodes-8f75921a.js} +1 -93
- package/dist/esm-es5/ShadowViewAddon-499b1f86.js +1 -0
- package/dist/esm-es5/copy-text-view-782137ba.js +1 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/mint-components.js +1 -1
- package/dist/esm-es5/sqm-big-stat_39.entry.js +1 -1
- package/dist/esm-es5/sqm-pagination_3.entry.js +1 -1
- package/dist/esm-es5/sqm-qr-code-view-814b2929.js +1 -0
- package/dist/esm-es5/sqm-qr-code.entry.js +1 -0
- package/dist/esm-es5/sqm-stencilbook.entry.js +1 -1
- package/dist/esm-es5/useReferralCodes-8f75921a.js +1 -0
- package/dist/mint-components/mint-components.esm.js +1 -1
- package/dist/mint-components/p-10cc43c9.entry.js +9 -0
- package/dist/mint-components/p-30362262.system.entry.js +1 -0
- package/dist/mint-components/p-31015791.js +1 -0
- package/dist/mint-components/p-313feb4a.system.entry.js +1 -0
- package/dist/mint-components/p-37996351.system.js +1 -1
- package/dist/mint-components/p-3b90e01b.system.js +1 -0
- package/dist/mint-components/p-3f7b81b8.js +52 -0
- package/dist/mint-components/p-49670357.entry.js +13 -0
- package/dist/mint-components/p-5aae2d61.system.js +1 -0
- package/dist/mint-components/p-5cb7f9fc.system.entry.js +1 -0
- package/dist/mint-components/{p-b51e79b3.entry.js → p-7846937e.entry.js} +2 -2
- package/dist/mint-components/p-97038074.system.entry.js +1 -0
- package/dist/mint-components/p-bcac3ecf.js +1 -0
- package/dist/mint-components/p-da4ff3b4.system.js +1 -0
- package/dist/mint-components/p-dbc0e4f8.system.js +1 -0
- package/dist/mint-components/{p-d12fc50f.js → p-e2d5cd22.js} +20 -20
- package/dist/mint-components/{p-87d385d8.entry.js → p-f15c1a53.entry.js} +1 -1
- package/dist/types/components/sqm-qr-code/QRCode.stories.d.ts +6 -0
- package/dist/types/components/sqm-qr-code/sqm-qr-code-view.d.ts +13 -0
- package/dist/types/components/sqm-qr-code/sqm-qr-code.d.ts +33 -0
- package/dist/types/components/sqm-qr-code/useQRCode.d.ts +14 -0
- package/dist/types/components.d.ts +56 -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/ShadowViewAddon-fd07e6e1.js +0 -1
- package/dist/esm-es5/copy-text-view-459a2e35.js +0 -1
- package/dist/mint-components/p-57e2c2fa.system.js +0 -1
- package/dist/mint-components/p-717cc8ac.system.js +0 -1
- package/dist/mint-components/p-71bc04d2.system.entry.js +0 -1
- package/dist/mint-components/p-7f2d4212.js +0 -52
- package/dist/mint-components/p-abedbbf3.system.entry.js +0 -1
- package/dist/mint-components/p-bc83460e.system.entry.js +0 -1
- package/dist/mint-components/p-da932ca2.entry.js +0 -9
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
const index = require('./index-a29c60ef.js');
|
|
6
|
+
const stencilHooks_module = require('./stencil-hooks.module-3a336b0f.js');
|
|
7
|
+
const index_module = require('./index.module-ee84433d.js');
|
|
8
|
+
const cjs = require('./cjs-1066ec21.js');
|
|
9
|
+
const utils = require('./utils-6847bc06.js');
|
|
10
|
+
require('./JSS-8503a151.js');
|
|
11
|
+
const useReferralCodes = require('./useReferralCodes-82e8797b.js');
|
|
12
|
+
const sqmQrCodeView = require('./sqm-qr-code-view-7b26582e.js');
|
|
13
|
+
|
|
14
|
+
const ShareLinkQuery = index_module.dist.gql `
|
|
15
|
+
query shareLink($programId: ID, $engagementMedium: UserEngagementMedium!) {
|
|
16
|
+
user: viewer {
|
|
17
|
+
... on User {
|
|
18
|
+
shareLink(
|
|
19
|
+
programId: $programId
|
|
20
|
+
engagementMedium: $engagementMedium
|
|
21
|
+
shareMedium: DIRECT
|
|
22
|
+
)
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
`;
|
|
27
|
+
function useQRCode(props) {
|
|
28
|
+
const programId = index_module.H();
|
|
29
|
+
const user = index_module.J();
|
|
30
|
+
const engagementMedium = index_module.B();
|
|
31
|
+
const contextData = index_module.Fn(useReferralCodes.REFERRAL_CODES_NAMESPACE);
|
|
32
|
+
const [dialogIsOpen, setDialog] = stencilHooks_module.useState(false);
|
|
33
|
+
const { data } = index_module.wn(ShareLinkQuery, { programId, engagementMedium }, !(user === null || user === void 0 ? void 0 : user.jwt) || (contextData === null || contextData === void 0 ? void 0 : contextData.shareLink) !== undefined);
|
|
34
|
+
const qrLink = `${data.user.shareLink}?qrCode`;
|
|
35
|
+
const createDownloadable = async () => {
|
|
36
|
+
const res = await fetch(`${qrLink}&qrCodeSize=800&qrCodeImageFormat=png`);
|
|
37
|
+
const blob = await res.blob();
|
|
38
|
+
const url = URL.createObjectURL(blob);
|
|
39
|
+
const link = document.createElement("a");
|
|
40
|
+
link.href = url;
|
|
41
|
+
link.download = "qrCode.png";
|
|
42
|
+
document.body.appendChild(link);
|
|
43
|
+
link.click();
|
|
44
|
+
document.body.removeChild(link);
|
|
45
|
+
};
|
|
46
|
+
const createPrintable = async () => {
|
|
47
|
+
const res = await fetch(`${qrLink}&qrCodeSize=1000&qrCodeImageFormat=png&qrCodeErrorCorrectionLevel=H`);
|
|
48
|
+
const blob = await res.blob();
|
|
49
|
+
const url = URL.createObjectURL(blob);
|
|
50
|
+
const page = window.open("about:blank", "_new");
|
|
51
|
+
const img = page.document.createElement("img");
|
|
52
|
+
img.src = url;
|
|
53
|
+
img.onload = () => {
|
|
54
|
+
page.print();
|
|
55
|
+
page.close();
|
|
56
|
+
};
|
|
57
|
+
page.document.body.appendChild(img);
|
|
58
|
+
};
|
|
59
|
+
return {
|
|
60
|
+
...props,
|
|
61
|
+
qrLink,
|
|
62
|
+
dialogIsOpen,
|
|
63
|
+
showDialog: () => setDialog(true),
|
|
64
|
+
hideDialog: () => setDialog(false),
|
|
65
|
+
createDownloadable,
|
|
66
|
+
createPrintable,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const QrCode = class {
|
|
71
|
+
constructor(hostRef) {
|
|
72
|
+
index.registerInstance(this, hostRef);
|
|
73
|
+
/**
|
|
74
|
+
* @uiName Title
|
|
75
|
+
*/
|
|
76
|
+
this.titleText = "Share your QR code";
|
|
77
|
+
/**
|
|
78
|
+
* @uiName View QR code text
|
|
79
|
+
*/
|
|
80
|
+
this.viewCodeText = "View QR code";
|
|
81
|
+
/**
|
|
82
|
+
* @uiName Download QR code text
|
|
83
|
+
*/
|
|
84
|
+
this.downloadCodeText = "Download";
|
|
85
|
+
/**
|
|
86
|
+
* @uiName Print QR code text
|
|
87
|
+
*/
|
|
88
|
+
this.printCodeText = "Print";
|
|
89
|
+
stencilHooks_module.h$1(this);
|
|
90
|
+
}
|
|
91
|
+
disconnectedCallback() { }
|
|
92
|
+
render() {
|
|
93
|
+
const thisProps = utils.getProps(this);
|
|
94
|
+
const props = index_module.isDemo() ? useDemoQRCode(thisProps) : useQRCode(thisProps);
|
|
95
|
+
return index.h(sqmQrCodeView.QrCodeView, Object.assign({}, props));
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
function useDemoQRCode(props) {
|
|
99
|
+
const [dialogIsOpen, setDialog] = stencilHooks_module.useState(false);
|
|
100
|
+
return cjs.cjs({
|
|
101
|
+
dialogIsOpen,
|
|
102
|
+
showDialog: () => setDialog(true),
|
|
103
|
+
hideDialog: () => setDialog(false),
|
|
104
|
+
titleText: this.titleText,
|
|
105
|
+
viewCodeText: this.viewCodeText,
|
|
106
|
+
downloadCodeText: this.downloadCodeText,
|
|
107
|
+
printCodeText: this.printCodeText,
|
|
108
|
+
qrLink: "https://media.istockphoto.com/id/1251071788/vector/qr-code-bar-code-black-icon-digital-technology.jpg?s=612x612&w=0&k=20&c=maw4OqMSEegAdSo8Drm9HO7i1ddddvP2YaL1UuWbRig=",
|
|
109
|
+
fireViewQrEvent: () => {
|
|
110
|
+
console.log("View QR Code clicked");
|
|
111
|
+
},
|
|
112
|
+
createDownloadable: async () => {
|
|
113
|
+
console.log("Download QR Code clicked");
|
|
114
|
+
},
|
|
115
|
+
createPrintable: async () => {
|
|
116
|
+
console.log("Print QR Code clicked");
|
|
117
|
+
},
|
|
118
|
+
}, props.demoData || {}, { arrayMerge: (_, a) => a });
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
exports.sqm_qr_code = QrCode;
|
|
@@ -9,8 +9,9 @@ const index_module = require('./index.module-ee84433d.js');
|
|
|
9
9
|
require('./cjs-1066ec21.js');
|
|
10
10
|
require('./utils-6847bc06.js');
|
|
11
11
|
const JSS = require('./JSS-8503a151.js');
|
|
12
|
-
|
|
12
|
+
require('./useReferralCodes-82e8797b.js');
|
|
13
13
|
require('./mixins-f7e0377a.js');
|
|
14
|
+
const copyTextView = require('./copy-text-view-c85acaaa.js');
|
|
14
15
|
const GenericTableView = require('./GenericTableView-a9f4ba75.js');
|
|
15
16
|
require('./useChildElements-1b35d945.js');
|
|
16
17
|
const luxon = require('./luxon-2926d85f.js');
|
|
@@ -32,7 +33,8 @@ const sqmPortalProfileView = require('./sqm-portal-profile-view-33164798.js');
|
|
|
32
33
|
require('./utilities-78f5e169.js');
|
|
33
34
|
const sqmPortalResetPasswordView = require('./sqm-portal-reset-password-view-fe602822.js');
|
|
34
35
|
const sqmPortalVerifyEmailView = require('./sqm-portal-verify-email-view-7b678f34.js');
|
|
35
|
-
const
|
|
36
|
+
const sqmQrCodeView = require('./sqm-qr-code-view-7b26582e.js');
|
|
37
|
+
const ShadowViewAddon = require('./ShadowViewAddon-3ddee92b.js');
|
|
36
38
|
const sqmPortalContainerView = require('./sqm-portal-container-view-4f15143a.js');
|
|
37
39
|
const sqmInvoiceTableView = require('./sqm-invoice-table-view-baded4af.js');
|
|
38
40
|
|
|
@@ -4104,7 +4106,7 @@ const promoCodeReferralWidget = "<sqm-brand brand-color=\"#4225c4\" brand-font=\
|
|
|
4104
4106
|
|
|
4105
4107
|
const loyaltyWidget = "<sqm-brand brand-color=\"#4225c4\" brand-font=\"Nunito Sans\">\n <sqm-portal-container\n direction=\"column\"\n padding=\"small\"\n gap=\"xxxx-large\"\n display=\"grid\"\n max-width=\"100%\"\n background-color=\"#ffffff\"\n >\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xxx-large\"\n display=\"grid\"\n max-width=\"100%\"\n >\n <sqm-hero-image\n image-url=\"https://res.cloudinary.com/saasquatch/image/upload/v1644000275/squatch-assets/yr6ER3R.png\"\n header=\"MyCompany Rewards\"\n description=\"Complete tasks to earn rewards\"\n layout=\"overlay\"\n padding-image=\"xxxx-large\"\n padding-text=\"xxx-large\"\n image-pos=\"center\"\n overlay-color=\"#5e5669\"\n overlay-opacity=\"0.9\"\n >\n </sqm-hero-image>\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xxx-large\"\n max-width=\"770px\"\n center\n display=\"grid\"\n >\n <sqm-program-explainer header=\"How it works\">\n <sqm-program-explainer-step\n description=\"Complete tasks like uploading your first video or sharing videos with friends\"\n header=\"Earn points for using our product\"\n icon=\"cash-stack\"\n text-color=\"#000000\"\n >\n </sqm-program-explainer-step>\n <sqm-program-explainer-step\n description=\"Redeem rewards like one free month of Enterprise or two plane tickets to anywhere in North America\"\n header=\"Redeem rewards with your points\"\n icon=\"people\"\n text-color=\"#000000\"\n >\n </sqm-program-explainer-step>\n </sqm-program-explainer>\n <sqm-portal-container\n center\n direction=\"row\"\n display=\"flex\"\n justify-content=\"space-between\"\n gap=\"xxx-large\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-stat-container space=\"xxx-large\" display=\"flex\">\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardsRedeemed/CREDIT/POINTS\"\n >\n <p>Points Redeemed</p>\n </sqm-big-stat>\n <sqm-big-stat\n flex-reverse=\"true\"\n alignment=\"left\"\n stat-type=\"/rewardBalance/CREDIT/POINT/value/global\"\n >\n <p>Points Balance</p>\n </sqm-big-stat>\n </sqm-stat-container>\n </sqm-portal-container>\n <sqm-portal-container\n direction=\"column\"\n padding=\"none\"\n gap=\"xx-large\"\n display=\"grid\"\n max-width=\"100%\"\n >\n <sqm-titled-section\n label-margin=\"small\"\n padding=\"none\"\n text-align=\"center\"\n >\n <h3 slot=\"label\">Earn points</h3>\n </sqm-titled-section>\n <sqm-card-feed gap=\"24\" width=\"347\">\n <sqm-task-card\n reward-amount=\"20\"\n goal=\"1\"\n card-title=\"Complete a Survey\"\n description=\"Fill out our NPS survey and get 20 points for giving us honest feedback.\"\n button-text=\"Take survey\"\n reward-unit=\"Points\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n finite=\"0\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount=\"250\"\n goal=\"500\"\n show-progress-bar\n card-title=\"Spend $500\"\n description=\"Earn 250 points when you spend $500 or more.\"\n button-text=\"See plans\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n progress-bar-unit=\"$\"\n finite=\"0\"\n reward-unit=\"Points\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n <sqm-task-card\n goal=\"1\"\n reward-amount=\"50\"\n card-title=\"Follow Us on X\"\n description=\"Earn 50 points when you Follow Us on X!\"\n button-text=\"Follow\"\n button-link=\"https://twitter.com/\"\n open-new-tab=\"true\"\n event-key=\"socialFollow\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n finite=\"0\"\n reward-unit=\"Points\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n <sqm-task-card\n reward-amount=\"1\"\n reward-unit=\"Free Month\"\n goal=\"1\"\n card-title=\"Upgrade Your Plan\"\n description=\"Receive one free month for being a committed customer when you upgrade your plan.\"\n button-text=\"Upgrade\"\n completed-text=\"Completed {finite, select, 0 {{count, plural, =1 {{count} time} other {{count} times}}} other {{count}/{finite} times}}\"\n ended-message=\"Ended {endDate}\"\n expiry-message=\"Ends {endDate}\"\n open-new-tab=\"false\"\n finite=\"0\"\n starts-on-message=\"Starts {startDate}\"\n >\n </sqm-task-card>\n </sqm-card-feed>\n <sqm-portal-container\n gap=\"large\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n >\n <sqm-titled-section\n padding=\"none\"\n text-align=\"center\"\n label-margin=\"xx-small\"\n >\n <h3 slot=\"label\">Reward History</h3>\n </sqm-titled-section>\n <sqm-rewards-table\n per-page=\"4\"\n hidden-columns=\"0\"\n more-label=\"Next\"\n prev-label=\"Prev\"\n sm-breakpoint=\"599\"\n md-breakpoint=\"799\"\n >\n <sqm-rewards-table-reward-column\n available-text=\"{availableAmount} remaining\"\n column-title=\"Reward\"\n copy-text=\"Copied!\"\n redeemed-text=\"{redeemedAmount} redeemed\"\n >\n </sqm-rewards-table-reward-column>\n <sqm-rewards-table-source-column\n anonymous-user=\"Anonymous User\"\n column-title=\"Source\"\n deleted-user=\"Deleted User\"\n referral-text=\"{rewardSource, select, FRIEND_SIGNUP {Referral to} REFERRED {Referred by} other {}}\"\n reward-exchange-text=\"Reward Exchange\"\n reward-source-text=\"{rewardSource, select, MANUAL {Manual} AUTOMATED {{programName}} other {}}\"\n >\n </sqm-rewards-table-source-column>\n <sqm-rewards-table-status-column\n column-title=\"Status\"\n expiry-text=\"Expires on \"\n status-text=\"{status, select, AVAILABLE {Available} CANCELLED {Cancelled} PENDING {Pending} EXPIRED {Expired} REDEEMED {Redeemed} other {Not available} }\"\n >\n </sqm-rewards-table-status-column>\n <sqm-rewards-table-date-column\n column-title=\"Date received\"\n date-shown=\"dateGiven\"\n >\n </sqm-rewards-table-date-column>\n <sqm-empty\n slot=\"empty\"\n empty-state-image=\"https://res.cloudinary.com/saasquatch/image/upload/v1644360953/squatch-assets/empty_reward2.png\"\n empty-state-header=\"View your rewards\"\n empty-state-text=\"Refer friends and complete tasks to view the details of your rewards\"\n >\n </sqm-empty>\n </sqm-rewards-table>\n </sqm-portal-container>\n </sqm-portal-container>\n <sqm-portal-footer\n support-email=\"support@example.com\"\n terms-link=\"https:\\/\\/example.com\"\n faq-link=\"https:\\/\\/example.com\"\n terms-text=\"Terms And Conditions\"\n faq-text=\"FAQ\"\n show-powered-by=\"true\"\n padding-bottom=\"none\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n ></sqm-portal-footer>\n </sqm-portal-container>\n </sqm-portal-container>\n </sqm-portal-container>\n</sqm-brand>\n";
|
|
4106
4108
|
|
|
4107
|
-
const instantAccessReferrerShareWidget = "<sqm-hero\n background=\"https://res.cloudinary.com/saasquatch/image/upload/v1683589933/Portal%20Assets/Screen-Shot-2022-01-06-at-3.23.58-AM.png\"\n columns=\"2\"\n padding-size=\"medium\"\n wrap-direction=\"wrap\"\n secondary-background=\"#FFFFFF\"\n min-height=\"200\"\n ><sqm-referral-card\n vertical-alignment=\"start\"\n slot=\"secondary-column\"\n padding-bottom=\"small\"\n padding-left=\"x-large\"\n padding-right=\"x-large\"\n padding-top=\"small\"\n >\n <sqm-titled-section\n text-align=\"center\"\n label-margin=\"none\"\n padding=\"none\"\n slot=\"header\"\n ><h1 slot=\"label\">Invite your friends to unlock rewards!</h1>\n <p slot=\"content\">\n They’ll get a $50 credit towards a new account and\n you’ll get a $50 in credit for each friend you refer.\n </p></sqm-titled-section\n >\n <sqm-portal-container\n gap=\"small\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n slot=\"left\"\n >\n <p style=\"margin: 0\">Choose how you want to share:</p>\n <sqm-share-link\n tooltip-text=\"Copied to Clipboard\"\n tooltip-lifespan=\"1000\"\n >\n </sqm-share-link>\n <sqm-share-button\n medium=\"email\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium=\"linkedin\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium=\"twitter\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Post about us on X\n </sqm-share-button> </sqm-portal-container\n ><sqm-portal-container\n display=\"flex\"\n slot=\"footer\"\n gap=\"small\"\n justify-content=\"center\"\n >\n <sqm-logout-current-user\n user-identification-text=\"{email}\"\n switch-user-link=\"#\"\n switch-user-text=\"not you?\"\n ></sqm-logout-current-user>\n <sqm-portal-footer\n support-email=\"support@example.com\"\n show-powered-by=\"true\"\n padding-bottom=\"x-small\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n hide-support-text\n terms-text=\"Terms And Conditions\"\n terms-link=\"https://example.com\"\n ></sqm-portal-footer></sqm-portal-container\n ></sqm-referral-card>\n</sqm-hero>\n";
|
|
4109
|
+
const instantAccessReferrerShareWidget = "<sqm-hero\n background=\"https://res.cloudinary.com/saasquatch/image/upload/v1683589933/Portal%20Assets/Screen-Shot-2022-01-06-at-3.23.58-AM.png\"\n columns=\"2\"\n padding-size=\"medium\"\n wrap-direction=\"wrap\"\n secondary-background=\"#FFFFFF\"\n min-height=\"200\"\n ><sqm-referral-card\n vertical-alignment=\"start\"\n slot=\"secondary-column\"\n padding-bottom=\"small\"\n padding-left=\"x-large\"\n padding-right=\"x-large\"\n padding-top=\"small\"\n >\n <sqm-titled-section\n text-align=\"center\"\n label-margin=\"none\"\n padding=\"none\"\n slot=\"header\"\n ><h1 slot=\"label\">Invite your friends to unlock rewards!</h1>\n <p slot=\"content\">\n They’ll get a $50 credit towards a new account and\n you’ll get a $50 in credit for each friend you refer.\n </p></sqm-titled-section\n >\n <sqm-portal-container\n gap=\"small\"\n direction=\"column\"\n display=\"grid\"\n max-width=\"100%\"\n padding=\"none\"\n slot=\"left\"\n >\n <p style=\"margin: 0\">Choose how you want to share:</p>\n <sqm-share-link\n tooltip-text=\"Copied to Clipboard\"\n tooltip-lifespan=\"1000\"\n >\n </sqm-share-link>\n <sqm-share-button\n medium=\"email\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share via email\n </sqm-share-button>\n <sqm-share-button\n medium=\"linkedin\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Share on LinkedIn\n </sqm-share-button>\n <sqm-share-button\n medium=\"twitter\"\n icon-slot=\"prefix\"\n size=\"medium\"\n type=\"default\"\n >\n Post about us on X\n </sqm-share-button> </sqm-portal-container\n ><sqm-portal-container\n display=\"flex\"\n slot=\"footer\"\n gap=\"small\"\n justify-content=\"center\"\n >\n <sqm-logout-current-user\n user-identification-text=\"{email}\"\n switch-user-link=\"#\"\n switch-user-text=\"not you?\"\n email-error-text=\"Error fetching email\"\n ></sqm-logout-current-user>\n <sqm-portal-footer\n support-email=\"support@example.com\"\n show-powered-by=\"true\"\n padding-bottom=\"x-small\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n hide-support-text\n terms-text=\"Terms And Conditions\"\n terms-link=\"https://example.com\"\n ></sqm-portal-footer></sqm-portal-container\n ></sqm-referral-card>\n</sqm-hero>\n";
|
|
4108
4110
|
|
|
4109
4111
|
const instantAccessFriendCouponWidget = "<sqm-hero\n background=\"https://res.cloudinary.com/saasquatch/image/upload/v1683589933/Portal%20Assets/Screen-Shot-2022-01-06-at-3.23.58-AM.png\"\n columns=\"2\"\n padding-size=\"medium\"\n wrap-direction=\"wrap\"\n secondary-background=\"#FFFFFF\"\n>\n <sqm-referral-card\n vertical-alignment=\"start\"\n padding-bottom=\"small\"\n padding-left=\"x-large\"\n padding-right=\"x-large\"\n padding-top=\"small\"\n slot=\"secondary-column\"\n >\n <sqm-portal-container\n gap=\"large\"\n direction=\"column\"\n display=\"flex\"\n justify-content=\"center\"\n max-width=\"100%\"\n padding=\"none\"\n slot=\"header\"\n >\n <sqm-titled-section\n text-align=\"center\"\n label-margin=\"xxx-small\"\n padding=\"none\"\n >\n <h1 slot=\"label\">You got $50 off thanks to a friend!</h1>\n <p slot=\"content\">\n <span> Use this reward to get $50 off your next purchase. </span>\n </p>\n </sqm-titled-section>\n\n <sqm-coupon-code copy-button-style=\"button-outside\"></sqm-coupon-code>\n </sqm-portal-container>\n\n <sqm-portal-footer\n slot=\"footer\"\n show-powered-by=\"true\"\n padding-bottom=\"none\"\n padding-left=\"none\"\n padding-right=\"none\"\n padding-top=\"none\"\n hide-support-text\n terms-text=\"Terms And Conditions\"\n terms-link=\"https://example.com\"\n ></sqm-portal-footer>\n </sqm-referral-card>\n</sqm-hero>\n";
|
|
4110
4112
|
|
|
@@ -15671,6 +15673,39 @@ const PortalGoogleRegistrationFormStories = /*#__PURE__*/Object.freeze({
|
|
|
15671
15673
|
TermsAndConditions: TermsAndConditions$4
|
|
15672
15674
|
});
|
|
15673
15675
|
|
|
15676
|
+
const QRCode_stories = {
|
|
15677
|
+
title: "Components/QR Code",
|
|
15678
|
+
};
|
|
15679
|
+
const defaultProps$r = {
|
|
15680
|
+
dialogIsOpen: false,
|
|
15681
|
+
showDialog: () => void 0,
|
|
15682
|
+
hideDialog: () => void 0,
|
|
15683
|
+
qrLink: "https://media.istockphoto.com/id/1251071788/vector/qr-code-bar-code-black-icon-digital-technology.jpg?s=612x612&w=0&k=20&c=maw4OqMSEegAdSo8Drm9HO7i1ddddvP2YaL1UuWbRig=",
|
|
15684
|
+
createDownloadable: async () => {
|
|
15685
|
+
console.log("Download QR Code clicked");
|
|
15686
|
+
},
|
|
15687
|
+
createPrintable: async () => {
|
|
15688
|
+
console.log("Print QR Code clicked");
|
|
15689
|
+
},
|
|
15690
|
+
titleText: "Share your QR code",
|
|
15691
|
+
viewCodeText: "View QR code",
|
|
15692
|
+
downloadCodeText: "Download",
|
|
15693
|
+
printCodeText: "Print",
|
|
15694
|
+
};
|
|
15695
|
+
const Default$o = () => {
|
|
15696
|
+
return index.h(sqmQrCodeView.QrCodeView, Object.assign({}, defaultProps$r));
|
|
15697
|
+
};
|
|
15698
|
+
const Expanded = () => {
|
|
15699
|
+
return index.h(sqmQrCodeView.QrCodeView, Object.assign({}, defaultProps$r, { dialogIsOpen: true }));
|
|
15700
|
+
};
|
|
15701
|
+
|
|
15702
|
+
const QRCode = /*#__PURE__*/Object.freeze({
|
|
15703
|
+
__proto__: null,
|
|
15704
|
+
'default': QRCode_stories,
|
|
15705
|
+
Default: Default$o,
|
|
15706
|
+
Expanded: Expanded
|
|
15707
|
+
});
|
|
15708
|
+
|
|
15674
15709
|
/**
|
|
15675
15710
|
*
|
|
15676
15711
|
* Themes
|
|
@@ -15683,7 +15718,7 @@ const PortalGoogleRegistrationFormStories = /*#__PURE__*/Object.freeze({
|
|
|
15683
15718
|
*
|
|
15684
15719
|
*/
|
|
15685
15720
|
//
|
|
15686
|
-
const Default$
|
|
15721
|
+
const Default$p = `
|
|
15687
15722
|
// No CSS
|
|
15688
15723
|
`;
|
|
15689
15724
|
const Orangey = `
|
|
@@ -15717,7 +15752,7 @@ const Klip = `
|
|
|
15717
15752
|
|
|
15718
15753
|
const Themes = /*#__PURE__*/Object.freeze({
|
|
15719
15754
|
__proto__: null,
|
|
15720
|
-
Default: Default$
|
|
15755
|
+
Default: Default$p,
|
|
15721
15756
|
Orangey: Orangey,
|
|
15722
15757
|
Netflix: Netflix,
|
|
15723
15758
|
SaaSquatchCorporate: SaaSquatchCorporate,
|
|
@@ -18404,6 +18439,7 @@ const stories = [
|
|
|
18404
18439
|
WidgetCodeVerification,
|
|
18405
18440
|
PayoutButtonScroll,
|
|
18406
18441
|
PayoutStatusAlert,
|
|
18442
|
+
QRCode,
|
|
18407
18443
|
];
|
|
18408
18444
|
const StencilStorybook = class {
|
|
18409
18445
|
constructor(hostRef) {
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const index = require('./index-a29c60ef.js');
|
|
4
3
|
const stencilHooks_module = require('./stencil-hooks.module-3a336b0f.js');
|
|
5
4
|
const index_module = require('./index.module-ee84433d.js');
|
|
6
|
-
const JSS = require('./JSS-8503a151.js');
|
|
7
|
-
const mixins = require('./mixins-f7e0377a.js');
|
|
8
5
|
|
|
9
6
|
const GET_REFERRAL_CODES = index_module.dist.gql `
|
|
10
7
|
query getCodes(
|
|
@@ -135,96 +132,6 @@ function useReferralCodes(props) {
|
|
|
135
132
|
};
|
|
136
133
|
}
|
|
137
134
|
|
|
138
|
-
const style = {
|
|
139
|
-
HostBlock: mixins.HostBlock,
|
|
140
|
-
inputStyle: {
|
|
141
|
-
"&::part(input)": { textOverflow: "ellipsis", width: "100%" },
|
|
142
|
-
"&::part(base)": { cursor: "pointer", overflow: "visible" },
|
|
143
|
-
width: "100%",
|
|
144
|
-
},
|
|
145
|
-
inputErrorStyle: {
|
|
146
|
-
"&::part(base)": {
|
|
147
|
-
border: "2px solid red",
|
|
148
|
-
},
|
|
149
|
-
},
|
|
150
|
-
ContainerDiv: {
|
|
151
|
-
display: "flex",
|
|
152
|
-
alignItems: "flex-start",
|
|
153
|
-
flexDirection: "column",
|
|
154
|
-
justifyContent: "center",
|
|
155
|
-
gap: "var(--sl-spacing-x-small)",
|
|
156
|
-
width: "100%",
|
|
157
|
-
},
|
|
158
|
-
containerStyle: {
|
|
159
|
-
display: "flex",
|
|
160
|
-
alignItems: "center",
|
|
161
|
-
gap: "var(--sl-spacing-x-small)",
|
|
162
|
-
width: "100%",
|
|
163
|
-
},
|
|
164
|
-
errorTextStyle: {
|
|
165
|
-
margin: "0",
|
|
166
|
-
color: "var(--sl-color-danger-500)",
|
|
167
|
-
},
|
|
168
|
-
notificationTextStyle: {
|
|
169
|
-
margin: "0",
|
|
170
|
-
color: "var(--sl-color-neutral-500)",
|
|
171
|
-
},
|
|
172
|
-
};
|
|
173
|
-
const vanillaStyle = `
|
|
174
|
-
:host{
|
|
175
|
-
display: block;
|
|
176
|
-
width: 100%;
|
|
177
|
-
}
|
|
178
|
-
`;
|
|
179
|
-
const textAlignStyle = {
|
|
180
|
-
right: `
|
|
181
|
-
sl-input::part(input){
|
|
182
|
-
text-align: right;
|
|
183
|
-
}`,
|
|
184
|
-
center: `
|
|
185
|
-
sl-input::part(input){
|
|
186
|
-
text-align: center;
|
|
187
|
-
}`,
|
|
188
|
-
left: ``,
|
|
189
|
-
};
|
|
190
|
-
const disabledStyles = `
|
|
191
|
-
sl-input::part(input){
|
|
192
|
-
cursor: default;
|
|
193
|
-
}
|
|
194
|
-
`;
|
|
195
|
-
const sheet = JSS.createStyleSheet(style);
|
|
196
|
-
const styleString = sheet.toString();
|
|
197
|
-
function CopyTextView(props) {
|
|
198
|
-
const { buttonStyle = "icon" } = props;
|
|
199
|
-
const error = !props.loading && props.error;
|
|
200
|
-
const inputText = error ? props.inputPlaceholderText : props.copyString;
|
|
201
|
-
const disabled = error || props.loading || props.disabled;
|
|
202
|
-
const tooltipPlacement = props.buttonStyle === "button-below"
|
|
203
|
-
? "bottom"
|
|
204
|
-
: props.buttonStyle === "button-outside"
|
|
205
|
-
? "top"
|
|
206
|
-
: "top-end";
|
|
207
|
-
const copyButton = (index.h("sl-tooltip", { trigger: "manual", content: props.tooltiptext, placement: tooltipPlacement, disabled: props.disabled, open: props.open, skidding: props.buttonStyle === "icon" ? -5 : 0, slot: "suffix" }, buttonStyle === "icon" ? (index.h("sl-icon-button", { exportparts: "base: icon-button-base", onClick: () => { var _a; return (_a = props.onClick) === null || _a === void 0 ? void 0 : _a.call(props); }, name: "files", disabled: disabled })) : (index.h("sl-button", { exportparts: "base: copy-button-base", onClick: () => { var _a; return (_a = props.onClick) === null || _a === void 0 ? void 0 : _a.call(props); }, size: "medium", style: { width: `${buttonStyle === "button-below" && "100%"}` }, disabled: disabled, type: "primary" }, props.copyButtonLabel || "Copy"))));
|
|
208
|
-
return (index.h("div", { class: sheet.classes.ContainerDiv },
|
|
209
|
-
index.h("style", { type: "text/css" },
|
|
210
|
-
styleString,
|
|
211
|
-
vanillaStyle,
|
|
212
|
-
textAlignStyle[props.textAlign],
|
|
213
|
-
disabled && disabledStyles),
|
|
214
|
-
index.h("div", { class: sheet.classes.containerStyle, style: {
|
|
215
|
-
flexDirection: `${buttonStyle === "button-below" ? "column" : "row"}`,
|
|
216
|
-
} },
|
|
217
|
-
index.h("sl-input", { class: `${sheet.classes.inputStyle} ${error ? sheet.classes.inputErrorStyle : ""}`, exportparts: "base: input-base, input: input-label", value: props.loading ? "Loading..." : inputText, readonly: true, disabled: disabled },
|
|
218
|
-
buttonStyle === "icon" && copyButton,
|
|
219
|
-
error && (index.h("p", { slot: "help-text", class: sheet.classes.errorTextStyle }, props.errorText))),
|
|
220
|
-
(buttonStyle === "button-outside" || buttonStyle === "button-below") &&
|
|
221
|
-
copyButton),
|
|
222
|
-
props.isCopied &&
|
|
223
|
-
props.showNotificationText &&
|
|
224
|
-
props.notificationText && (index.h("p", { part: "sqm-notification-text", class: sheet.classes.notificationTextStyle }, props.notificationText))));
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
exports.CopyTextView = CopyTextView;
|
|
228
135
|
exports.REFERRAL_CODES_NAMESPACE = REFERRAL_CODES_NAMESPACE;
|
|
229
136
|
exports.REFERRAL_CODES_PAGINATION_CONTEXT = REFERRAL_CODES_PAGINATION_CONTEXT;
|
|
230
137
|
exports.SET_CODE_COPIED = SET_CODE_COPIED;
|
|
@@ -70,6 +70,7 @@
|
|
|
70
70
|
"./components/sqm-program-explainer/sqm-program-explainer.js",
|
|
71
71
|
"./components/sqm-program-explainer-step/sqm-program-explainer-step.js",
|
|
72
72
|
"./components/sqm-program-menu/sqm-program-menu.js",
|
|
73
|
+
"./components/sqm-qr-code/sqm-qr-code.js",
|
|
73
74
|
"./components/sqm-referral-card/sqm-referral-card.js",
|
|
74
75
|
"./components/sqm-referral-code/sqm-referral-code.js",
|
|
75
76
|
"./components/sqm-referral-iframe/sqm-referral-iframe.js",
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
import { QrCodeView } from "./sqm-qr-code-view";
|
|
3
|
+
export default {
|
|
4
|
+
title: "Components/QR Code",
|
|
5
|
+
};
|
|
6
|
+
const defaultProps = {
|
|
7
|
+
dialogIsOpen: false,
|
|
8
|
+
showDialog: () => void 0,
|
|
9
|
+
hideDialog: () => void 0,
|
|
10
|
+
qrLink: "https://media.istockphoto.com/id/1251071788/vector/qr-code-bar-code-black-icon-digital-technology.jpg?s=612x612&w=0&k=20&c=maw4OqMSEegAdSo8Drm9HO7i1ddddvP2YaL1UuWbRig=",
|
|
11
|
+
createDownloadable: async () => {
|
|
12
|
+
console.log("Download QR Code clicked");
|
|
13
|
+
},
|
|
14
|
+
createPrintable: async () => {
|
|
15
|
+
console.log("Print QR Code clicked");
|
|
16
|
+
},
|
|
17
|
+
titleText: "Share your QR code",
|
|
18
|
+
viewCodeText: "View QR code",
|
|
19
|
+
downloadCodeText: "Download",
|
|
20
|
+
printCodeText: "Print",
|
|
21
|
+
};
|
|
22
|
+
export const Default = () => {
|
|
23
|
+
return h(QrCodeView, Object.assign({}, defaultProps));
|
|
24
|
+
};
|
|
25
|
+
export const Expanded = () => {
|
|
26
|
+
return h(QrCodeView, Object.assign({}, defaultProps, { dialogIsOpen: true }));
|
|
27
|
+
};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
import { createStyleSheet } from "../../styling/JSS";
|
|
3
|
+
const style = {
|
|
4
|
+
DialogContainer: {
|
|
5
|
+
maxWidth: "390px !important",
|
|
6
|
+
},
|
|
7
|
+
Container: {
|
|
8
|
+
padding: "var(--sl-spacing-small)",
|
|
9
|
+
display: "flex",
|
|
10
|
+
flexDirection: "row",
|
|
11
|
+
gap: "var(--sl-spacing-small)",
|
|
12
|
+
justifyContent: "space-between",
|
|
13
|
+
},
|
|
14
|
+
FacadeContainer: {
|
|
15
|
+
display: "flex",
|
|
16
|
+
gap: "var(--sl-spacing-medium)",
|
|
17
|
+
flexDirection: "column",
|
|
18
|
+
},
|
|
19
|
+
ButtonContainer: {
|
|
20
|
+
display: "flex",
|
|
21
|
+
gap: "var(--sl-spacing-medium)",
|
|
22
|
+
},
|
|
23
|
+
FooterContainer: {
|
|
24
|
+
textAlign: "left",
|
|
25
|
+
display: "flex",
|
|
26
|
+
flexDirection: "column",
|
|
27
|
+
gap: "var(--sl-spacing-medium)",
|
|
28
|
+
},
|
|
29
|
+
CodeContainer: {
|
|
30
|
+
display: "flex",
|
|
31
|
+
width: "100%",
|
|
32
|
+
alignItems: "center",
|
|
33
|
+
justifyContent: "center",
|
|
34
|
+
},
|
|
35
|
+
Code: {
|
|
36
|
+
width: "100%",
|
|
37
|
+
height: "100%",
|
|
38
|
+
maxWidth: "335px",
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
const sheet = createStyleSheet(style);
|
|
42
|
+
const styleString = sheet.toString();
|
|
43
|
+
const vanillaStyle = `
|
|
44
|
+
sl-dialog::part(panel) {
|
|
45
|
+
max-width: 390px;
|
|
46
|
+
width: 100%;
|
|
47
|
+
}
|
|
48
|
+
sl-dialog::part(footer) {
|
|
49
|
+
display: flex;
|
|
50
|
+
flex-direction: column;
|
|
51
|
+
gap: var(--sl-spacing-small);
|
|
52
|
+
width: 100%;
|
|
53
|
+
}
|
|
54
|
+
sl-dialog::part(body) {
|
|
55
|
+
padding: 0 var(--sl-spacing-large);
|
|
56
|
+
}
|
|
57
|
+
:host{
|
|
58
|
+
display: flex;
|
|
59
|
+
width: 100%;
|
|
60
|
+
}
|
|
61
|
+
@media (max-width: 499px) {
|
|
62
|
+
:host{
|
|
63
|
+
display: block;
|
|
64
|
+
}
|
|
65
|
+
}`;
|
|
66
|
+
export function QrCodeView({ dialogIsOpen, showDialog, hideDialog, qrLink, titleText, viewCodeText, downloadCodeText, printCodeText, createDownloadable, createPrintable, }) {
|
|
67
|
+
return (h("div", { class: sheet.classes.Container, part: "sqm-base" },
|
|
68
|
+
h("style", null, vanillaStyle),
|
|
69
|
+
h("style", null, styleString),
|
|
70
|
+
h("div", { class: sheet.classes.FacadeContainer },
|
|
71
|
+
h("span", { part: "sqm-title" }, titleText),
|
|
72
|
+
h("div", { class: sheet.classes.ButtonContainer },
|
|
73
|
+
h("sl-button", { type: "primary", onClick: showDialog }, viewCodeText),
|
|
74
|
+
h("sl-button", { type: "text", onClick: createDownloadable }, downloadCodeText),
|
|
75
|
+
h("sl-button", { type: "text", onClick: createPrintable }, printCodeText))),
|
|
76
|
+
h("sl-dialog", { class: sheet.classes.DialogContainer, width: "250px", open: dialogIsOpen, label: titleText, "onSl-hide": hideDialog },
|
|
77
|
+
h("div", { class: sheet.classes.CodeContainer },
|
|
78
|
+
h("img", { class: sheet.classes.Code, src: `${qrLink}&qrCodeImageFormat=svg` })),
|
|
79
|
+
h("div", { slot: "footer", class: sheet.classes.FooterContainer },
|
|
80
|
+
h("sl-button", { variant: "default", onClick: createDownloadable }, downloadCodeText),
|
|
81
|
+
h("sl-button", { variant: "default", onClick: createPrintable }, printCodeText)))));
|
|
82
|
+
}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { isDemo } from "@saasquatch/component-boilerplate";
|
|
2
|
+
import { useState, withHooks } from "@saasquatch/stencil-hooks";
|
|
3
|
+
import { Component, h, Prop } from "@stencil/core";
|
|
4
|
+
import deepmerge from "deepmerge";
|
|
5
|
+
import { getProps } from "../../utils/utils";
|
|
6
|
+
import { QrCodeView } from "./sqm-qr-code-view";
|
|
7
|
+
import { useQRCode } from "./useQRCode";
|
|
8
|
+
/**
|
|
9
|
+
* @uiName QR Code
|
|
10
|
+
* @exampleGroup Sharing
|
|
11
|
+
* @example QR Code - <sqm-qr-code></sqm-qr-code>
|
|
12
|
+
*/
|
|
13
|
+
export class QrCode {
|
|
14
|
+
constructor() {
|
|
15
|
+
/**
|
|
16
|
+
* @uiName Title
|
|
17
|
+
*/
|
|
18
|
+
this.titleText = "Share your QR code";
|
|
19
|
+
/**
|
|
20
|
+
* @uiName View QR code text
|
|
21
|
+
*/
|
|
22
|
+
this.viewCodeText = "View QR code";
|
|
23
|
+
/**
|
|
24
|
+
* @uiName Download QR code text
|
|
25
|
+
*/
|
|
26
|
+
this.downloadCodeText = "Download";
|
|
27
|
+
/**
|
|
28
|
+
* @uiName Print QR code text
|
|
29
|
+
*/
|
|
30
|
+
this.printCodeText = "Print";
|
|
31
|
+
withHooks(this);
|
|
32
|
+
}
|
|
33
|
+
disconnectedCallback() { }
|
|
34
|
+
render() {
|
|
35
|
+
const thisProps = getProps(this);
|
|
36
|
+
const props = isDemo() ? useDemoQRCode(thisProps) : useQRCode(thisProps);
|
|
37
|
+
return h(QrCodeView, Object.assign({}, props));
|
|
38
|
+
}
|
|
39
|
+
static get is() { return "sqm-qr-code"; }
|
|
40
|
+
static get encapsulation() { return "shadow"; }
|
|
41
|
+
static get properties() { return {
|
|
42
|
+
"titleText": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"mutable": false,
|
|
45
|
+
"complexType": {
|
|
46
|
+
"original": "string",
|
|
47
|
+
"resolved": "string",
|
|
48
|
+
"references": {}
|
|
49
|
+
},
|
|
50
|
+
"required": false,
|
|
51
|
+
"optional": true,
|
|
52
|
+
"docs": {
|
|
53
|
+
"tags": [{
|
|
54
|
+
"text": "Title",
|
|
55
|
+
"name": "uiName"
|
|
56
|
+
}],
|
|
57
|
+
"text": ""
|
|
58
|
+
},
|
|
59
|
+
"attribute": "title-text",
|
|
60
|
+
"reflect": false,
|
|
61
|
+
"defaultValue": "\"Share your QR code\""
|
|
62
|
+
},
|
|
63
|
+
"viewCodeText": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"mutable": false,
|
|
66
|
+
"complexType": {
|
|
67
|
+
"original": "string",
|
|
68
|
+
"resolved": "string",
|
|
69
|
+
"references": {}
|
|
70
|
+
},
|
|
71
|
+
"required": false,
|
|
72
|
+
"optional": true,
|
|
73
|
+
"docs": {
|
|
74
|
+
"tags": [{
|
|
75
|
+
"text": "View QR code text",
|
|
76
|
+
"name": "uiName"
|
|
77
|
+
}],
|
|
78
|
+
"text": ""
|
|
79
|
+
},
|
|
80
|
+
"attribute": "view-code-text",
|
|
81
|
+
"reflect": false,
|
|
82
|
+
"defaultValue": "\"View QR code\""
|
|
83
|
+
},
|
|
84
|
+
"downloadCodeText": {
|
|
85
|
+
"type": "string",
|
|
86
|
+
"mutable": false,
|
|
87
|
+
"complexType": {
|
|
88
|
+
"original": "string",
|
|
89
|
+
"resolved": "string",
|
|
90
|
+
"references": {}
|
|
91
|
+
},
|
|
92
|
+
"required": false,
|
|
93
|
+
"optional": true,
|
|
94
|
+
"docs": {
|
|
95
|
+
"tags": [{
|
|
96
|
+
"text": "Download QR code text",
|
|
97
|
+
"name": "uiName"
|
|
98
|
+
}],
|
|
99
|
+
"text": ""
|
|
100
|
+
},
|
|
101
|
+
"attribute": "download-code-text",
|
|
102
|
+
"reflect": false,
|
|
103
|
+
"defaultValue": "\"Download\""
|
|
104
|
+
},
|
|
105
|
+
"printCodeText": {
|
|
106
|
+
"type": "string",
|
|
107
|
+
"mutable": false,
|
|
108
|
+
"complexType": {
|
|
109
|
+
"original": "string",
|
|
110
|
+
"resolved": "string",
|
|
111
|
+
"references": {}
|
|
112
|
+
},
|
|
113
|
+
"required": false,
|
|
114
|
+
"optional": true,
|
|
115
|
+
"docs": {
|
|
116
|
+
"tags": [{
|
|
117
|
+
"text": "Print QR code text",
|
|
118
|
+
"name": "uiName"
|
|
119
|
+
}],
|
|
120
|
+
"text": ""
|
|
121
|
+
},
|
|
122
|
+
"attribute": "print-code-text",
|
|
123
|
+
"reflect": false,
|
|
124
|
+
"defaultValue": "\"Print\""
|
|
125
|
+
},
|
|
126
|
+
"demoData": {
|
|
127
|
+
"type": "unknown",
|
|
128
|
+
"mutable": false,
|
|
129
|
+
"complexType": {
|
|
130
|
+
"original": "DemoData<QRCodeViewProps>",
|
|
131
|
+
"resolved": "{ titleText?: string; dialogIsOpen?: boolean; showDialog?: () => void; hideDialog?: () => void; qrLink?: string; createDownloadable?: () => void; viewCodeText?: string; downloadCodeText?: string; printCodeText?: string; createPrintable?: () => void; }",
|
|
132
|
+
"references": {
|
|
133
|
+
"DemoData": {
|
|
134
|
+
"location": "import",
|
|
135
|
+
"path": "../../global/demo"
|
|
136
|
+
},
|
|
137
|
+
"QRCodeViewProps": {
|
|
138
|
+
"location": "import",
|
|
139
|
+
"path": "./sqm-qr-code-view"
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
"required": false,
|
|
144
|
+
"optional": true,
|
|
145
|
+
"docs": {
|
|
146
|
+
"tags": [{
|
|
147
|
+
"text": undefined,
|
|
148
|
+
"name": "undocumented"
|
|
149
|
+
}, {
|
|
150
|
+
"text": "object",
|
|
151
|
+
"name": "uiType"
|
|
152
|
+
}],
|
|
153
|
+
"text": ""
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}; }
|
|
157
|
+
}
|
|
158
|
+
function useDemoQRCode(props) {
|
|
159
|
+
const [dialogIsOpen, setDialog] = useState(false);
|
|
160
|
+
return deepmerge({
|
|
161
|
+
dialogIsOpen,
|
|
162
|
+
showDialog: () => setDialog(true),
|
|
163
|
+
hideDialog: () => setDialog(false),
|
|
164
|
+
titleText: this.titleText,
|
|
165
|
+
viewCodeText: this.viewCodeText,
|
|
166
|
+
downloadCodeText: this.downloadCodeText,
|
|
167
|
+
printCodeText: this.printCodeText,
|
|
168
|
+
qrLink: "https://media.istockphoto.com/id/1251071788/vector/qr-code-bar-code-black-icon-digital-technology.jpg?s=612x612&w=0&k=20&c=maw4OqMSEegAdSo8Drm9HO7i1ddddvP2YaL1UuWbRig=",
|
|
169
|
+
fireViewQrEvent: () => {
|
|
170
|
+
console.log("View QR Code clicked");
|
|
171
|
+
},
|
|
172
|
+
createDownloadable: async () => {
|
|
173
|
+
console.log("Download QR Code clicked");
|
|
174
|
+
},
|
|
175
|
+
createPrintable: async () => {
|
|
176
|
+
console.log("Print QR Code clicked");
|
|
177
|
+
},
|
|
178
|
+
}, props.demoData || {}, { arrayMerge: (_, a) => a });
|
|
179
|
+
}
|