@saasquatch/mint-components 1.2.1 → 1.2.2-11
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/CHANGELOG.md +32 -9
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/mint-components.cjs.js +1 -1
- package/dist/cjs/{sqm-divided-layout_22.cjs.entry.js → sqm-divided-layout_24.cjs.entry.js} +3846 -88
- package/dist/cjs/sqm-hero-view-9a179fd2.js +77 -0
- package/dist/cjs/sqm-hero.cjs.entry.js +33 -0
- package/dist/cjs/{sqm-navigation-sidebar-item-view-089d0eed.js → sqm-navigation-sidebar-item-view-647457cc.js} +2 -2
- package/dist/cjs/sqm-navigation-sidebar-item.cjs.entry.js +3 -3
- package/dist/cjs/{sqm-portal-change-password-view-8d932bce.js → sqm-portal-change-password-view-faf6ad39.js} +15 -8
- package/dist/cjs/sqm-portal-change-password.cjs.entry.js +59 -4
- package/dist/cjs/{sqm-portal-email-verification-view-d6b7b37e.js → sqm-portal-email-verification-view-626fc886.js} +3 -3
- package/dist/cjs/sqm-portal-email-verification.cjs.entry.js +14 -2
- package/dist/cjs/sqm-portal-footer-view-be3adcf2.js +80 -0
- package/dist/cjs/sqm-portal-footer.cjs.entry.js +58 -0
- package/dist/cjs/{sqm-portal-profile-view-db5658ba.js → sqm-portal-profile-view-76e3e4bb.js} +5 -5
- package/dist/cjs/sqm-portal-profile.cjs.entry.js +25 -7
- package/dist/cjs/{sqm-portal-reset-password-view-3980aa63.js → sqm-portal-reset-password-view-b7b52d16.js} +10 -6
- package/dist/cjs/sqm-portal-reset-password.cjs.entry.js +42 -4
- package/dist/cjs/sqm-portal-verify-email.cjs.entry.js +1 -1
- package/dist/collection/assets/PoweredBySaaSquatch.png +0 -0
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/sqm-hero/sqm-hero-view.js +73 -0
- package/dist/collection/components/sqm-hero/sqm-hero.js +95 -0
- package/dist/collection/components/sqm-navigation-sidebar-item/sqm-navigation-sidebar-item-view.js +2 -2
- package/dist/collection/components/sqm-navigation-sidebar-item/sqm-navigation-sidebar-item.js +2 -2
- package/dist/collection/components/sqm-portal-change-password/sqm-portal-change-password-view.js +15 -8
- package/dist/collection/components/sqm-portal-change-password/sqm-portal-change-password.js +215 -2
- package/dist/collection/components/sqm-portal-change-password/usePortalChangePassword.js +11 -1
- package/dist/collection/components/sqm-portal-email-verification/sqm-portal-email-verification-view.js +3 -3
- package/dist/collection/components/sqm-portal-email-verification/sqm-portal-email-verification.js +55 -3
- package/dist/collection/components/sqm-portal-email-verification/usePortalEmailVerification.js +2 -0
- package/dist/collection/components/sqm-portal-footer/PoweredByImg.js +11 -0
- package/dist/collection/components/sqm-portal-footer/sqm-portal-footer-view.js +65 -0
- package/dist/collection/components/sqm-portal-footer/sqm-portal-footer.js +305 -0
- package/dist/collection/components/sqm-portal-profile/sqm-portal-profile-view.js +5 -5
- package/dist/collection/components/sqm-portal-profile/sqm-portal-profile.js +90 -12
- package/dist/collection/components/sqm-portal-profile/usePortalProfile.js +3 -0
- package/dist/collection/components/sqm-portal-register/sqm-portal-register-view.js +3 -3
- package/dist/collection/components/sqm-portal-register/sqm-portal-register.js +28 -2
- package/dist/collection/components/sqm-portal-reset-password/sqm-portal-reset-password-view.js +10 -6
- package/dist/collection/components/sqm-portal-reset-password/sqm-portal-reset-password.js +137 -1
- package/dist/collection/components/sqm-portal-reset-password/usePortalResetPassword.js +10 -3
- package/dist/collection/components/sqm-portal-verify-email/sqm-portal-verify-email.js +1 -1
- package/dist/collection/components/sqm-program-menu/sqm-program-menu.js +0 -6
- package/dist/collection/components/sqm-stencilbook/sqm-stencilbook.js +10 -0
- package/dist/collection/stories/ChangePassword.stories.js +72 -2
- package/dist/collection/stories/Hero.stories.js +98 -0
- package/dist/collection/stories/NewPortal.stories.js +19 -1
- package/dist/collection/stories/PortalEmailVerification.stories.js +8 -0
- package/dist/collection/stories/PortalFooter.stories.js +21 -0
- package/dist/collection/stories/PortalProfile.stories.js +18 -0
- package/dist/collection/stories/PortalRegister.stories.js +7 -3
- package/dist/collection/stories/PortalResetPassword.stories.js +42 -0
- package/dist/collection/stories/PortalTemplates.stories.js +143 -0
- package/dist/collection/stories/PoweredByImg.stories.js +14 -0
- package/dist/collection/stories/ProgramMenu.stories.js +39 -0
- package/dist/collection/stories/Router.stories.js +42 -6
- package/dist/collection/stories/UseBigStat.stories.js +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/mint-components.js +1 -1
- package/dist/esm/{sqm-divided-layout_22.entry.js → sqm-divided-layout_24.entry.js} +3844 -88
- package/dist/esm/sqm-hero-view-5b9bbae2.js +75 -0
- package/dist/esm/sqm-hero.entry.js +29 -0
- package/dist/esm/{sqm-navigation-sidebar-item-view-a75802bb.js → sqm-navigation-sidebar-item-view-000b0afb.js} +2 -2
- package/dist/esm/sqm-navigation-sidebar-item.entry.js +3 -3
- package/dist/esm/{sqm-portal-change-password-view-8dbe1ea3.js → sqm-portal-change-password-view-24a4adf7.js} +15 -8
- package/dist/esm/sqm-portal-change-password.entry.js +59 -4
- package/dist/esm/{sqm-portal-email-verification-view-964d21fe.js → sqm-portal-email-verification-view-03495ffa.js} +3 -3
- package/dist/esm/sqm-portal-email-verification.entry.js +14 -2
- package/dist/esm/sqm-portal-footer-view-728c427c.js +77 -0
- package/dist/esm/sqm-portal-footer.entry.js +54 -0
- package/dist/esm/{sqm-portal-profile-view-2801882b.js → sqm-portal-profile-view-72e966e2.js} +5 -5
- package/dist/esm/sqm-portal-profile.entry.js +25 -7
- package/dist/esm/{sqm-portal-reset-password-view-6c1d23eb.js → sqm-portal-reset-password-view-1441849e.js} +10 -6
- package/dist/esm/sqm-portal-reset-password.entry.js +42 -4
- package/dist/esm/sqm-portal-verify-email.entry.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-divided-layout_24.entry.js +1 -0
- package/dist/esm-es5/sqm-hero-view-5b9bbae2.js +1 -0
- package/dist/esm-es5/sqm-hero.entry.js +1 -0
- package/dist/esm-es5/sqm-navigation-sidebar-item-view-000b0afb.js +1 -0
- package/dist/esm-es5/sqm-navigation-sidebar-item.entry.js +1 -1
- package/dist/esm-es5/sqm-portal-change-password-view-24a4adf7.js +1 -0
- package/dist/esm-es5/sqm-portal-change-password.entry.js +1 -1
- package/dist/esm-es5/sqm-portal-email-verification-view-03495ffa.js +1 -0
- package/dist/esm-es5/sqm-portal-email-verification.entry.js +1 -1
- package/dist/esm-es5/sqm-portal-footer-view-728c427c.js +1 -0
- package/dist/esm-es5/sqm-portal-footer.entry.js +1 -0
- package/dist/esm-es5/{sqm-portal-profile-view-2801882b.js → sqm-portal-profile-view-72e966e2.js} +1 -1
- package/dist/esm-es5/sqm-portal-profile.entry.js +1 -1
- package/dist/esm-es5/sqm-portal-reset-password-view-1441849e.js +1 -0
- package/dist/esm-es5/sqm-portal-reset-password.entry.js +1 -1
- package/dist/esm-es5/sqm-portal-verify-email.entry.js +1 -1
- package/dist/mint-components/mint-components.esm.js +1 -1
- package/dist/mint-components/p-0747c54d.system.js +1 -1
- package/dist/mint-components/{p-1fd262be.system.js → p-1adc0488.system.js} +1 -1
- package/dist/mint-components/p-20fa60f6.system.entry.js +1 -0
- package/dist/mint-components/p-2addaaff.system.entry.js +1 -0
- package/dist/mint-components/p-3a9d8fd9.js +1 -0
- package/dist/mint-components/p-3adace56.entry.js +1 -0
- package/dist/mint-components/p-51db87f4.js +1 -0
- package/dist/mint-components/p-5442b8ad.js +1 -0
- package/dist/mint-components/p-609d6b60.system.entry.js +1 -0
- package/dist/mint-components/p-634d5bcc.entry.js +222 -0
- package/dist/mint-components/p-659298ed.system.entry.js +1 -0
- package/dist/mint-components/p-69e263e0.entry.js +1 -0
- package/dist/mint-components/p-6dfcecca.entry.js +33 -0
- package/dist/mint-components/p-70dd58a4.system.js +1 -0
- package/dist/mint-components/p-759095b4.entry.js +1 -0
- package/dist/mint-components/p-79e5f02c.entry.js +1 -0
- package/dist/mint-components/p-875d1fdc.system.entry.js +1 -0
- package/dist/mint-components/p-8a9ebc3f.system.entry.js +1 -0
- package/dist/mint-components/p-8dc6f789.js +1 -0
- package/dist/mint-components/p-a741d57c.system.js +1 -0
- package/dist/mint-components/p-b7159234.system.js +1 -0
- package/dist/mint-components/p-c196dc61.js +1 -0
- package/dist/mint-components/{p-eb944c84.system.js → p-c366f729.system.js} +1 -1
- package/dist/mint-components/p-c5c2d834.system.js +1 -0
- package/dist/mint-components/p-d24845cd.js +1 -0
- package/dist/mint-components/{p-5d46f5cc.entry.js → p-d37839f3.entry.js} +1 -1
- package/dist/mint-components/p-d441144e.js +1 -0
- package/dist/mint-components/{p-0396ec57.system.entry.js → p-d65a1cfd.system.entry.js} +1 -1
- package/dist/mint-components/p-d95dc3f1.system.js +1 -0
- package/dist/mint-components/p-dfcc1950.entry.js +1 -0
- package/dist/mint-components/p-e48cd2c5.system.entry.js +1 -0
- package/dist/mint-components/p-e6ce03b2.system.entry.js +1 -0
- package/dist/mint-components/p-fa4d1c58.entry.js +1 -0
- package/dist/types/components/sqm-hero/sqm-hero-view.d.ts +13 -0
- package/dist/types/components/sqm-hero/sqm-hero.d.ts +16 -0
- package/dist/types/components/sqm-portal-change-password/sqm-portal-change-password-view.d.ts +10 -0
- package/dist/types/components/sqm-portal-change-password/sqm-portal-change-password.d.ts +32 -0
- package/dist/types/components/sqm-portal-change-password/usePortalChangePassword.d.ts +11 -1
- package/dist/types/components/sqm-portal-email-verification/sqm-portal-email-verification-view.d.ts +2 -0
- package/dist/types/components/sqm-portal-email-verification/sqm-portal-email-verification.d.ts +9 -1
- package/dist/types/components/sqm-portal-email-verification/usePortalEmailVerification.d.ts +2 -0
- package/dist/types/components/sqm-portal-footer/PoweredByImg.d.ts +7 -0
- package/dist/types/components/sqm-portal-footer/sqm-portal-footer-view.d.ts +16 -0
- package/dist/types/components/sqm-portal-footer/sqm-portal-footer.d.ts +57 -0
- package/dist/types/components/sqm-portal-profile/sqm-portal-profile-view.d.ts +3 -0
- package/dist/types/components/sqm-portal-profile/sqm-portal-profile.d.ts +17 -5
- package/dist/types/components/sqm-portal-profile/usePortalProfile.d.ts +3 -0
- package/dist/types/components/sqm-portal-register/sqm-portal-register-view.d.ts +1 -0
- package/dist/types/components/sqm-portal-register/sqm-portal-register.d.ts +4 -0
- package/dist/types/components/sqm-portal-reset-password/sqm-portal-reset-password-view.d.ts +7 -0
- package/dist/types/components/sqm-portal-reset-password/sqm-portal-reset-password.d.ts +24 -0
- package/dist/types/components/sqm-portal-reset-password/usePortalResetPassword.d.ts +2 -4
- package/dist/types/components.d.ts +314 -12
- package/dist/types/saasquatch.d.ts +1 -1
- package/dist/types/stories/Hero.stories.d.ts +11 -0
- package/dist/types/stories/PortalFooter.stories.d.ts +10 -0
- package/dist/types/stories/PortalTemplates.stories.d.ts +88 -0
- package/dist/types/stories/PoweredByImg.stories.d.ts +7 -0
- package/dist/types/stories/ProgramMenu.stories.d.ts +28 -0
- package/dist/types/stories/Router.stories.d.ts +24 -3
- package/dist/types/stories/UseBigStat.stories.d.ts +6 -0
- package/dist/types/stories/templates.d.ts +4 -0
- package/grapesjs/grapesjs.js +1 -1
- package/package.json +2 -1
- package/dist/cjs/sqm-portal-login-view-20530cd5.js +0 -53
- package/dist/cjs/sqm-portal-login.cjs.entry.js +0 -119
- package/dist/cjs/sqm-program-menu.cjs.entry.js +0 -57
- package/dist/collection/components/sqm-program-menu/sqm-program-menu.css +0 -25
- package/dist/esm/sqm-portal-login-view-7e56a959.js +0 -51
- package/dist/esm/sqm-portal-login.entry.js +0 -115
- package/dist/esm/sqm-program-menu.entry.js +0 -53
- package/dist/esm-es5/sqm-divided-layout_22.entry.js +0 -1
- package/dist/esm-es5/sqm-navigation-sidebar-item-view-a75802bb.js +0 -1
- package/dist/esm-es5/sqm-portal-change-password-view-8dbe1ea3.js +0 -1
- package/dist/esm-es5/sqm-portal-email-verification-view-964d21fe.js +0 -1
- package/dist/esm-es5/sqm-portal-login-view-7e56a959.js +0 -1
- package/dist/esm-es5/sqm-portal-login.entry.js +0 -1
- package/dist/esm-es5/sqm-portal-reset-password-view-6c1d23eb.js +0 -1
- package/dist/esm-es5/sqm-program-menu.entry.js +0 -1
- package/dist/mint-components/p-18142b08.system.entry.js +0 -1
- package/dist/mint-components/p-2019910e.system.entry.js +0 -1
- package/dist/mint-components/p-3f40e878.js +0 -1
- package/dist/mint-components/p-42ca40ee.system.entry.js +0 -1
- package/dist/mint-components/p-4a4f97e3.system.js +0 -1
- package/dist/mint-components/p-4e298f2f.entry.js +0 -1
- package/dist/mint-components/p-4f7e972b.entry.js +0 -222
- package/dist/mint-components/p-511ee8d5.js +0 -1
- package/dist/mint-components/p-5c2d4489.entry.js +0 -33
- package/dist/mint-components/p-6dcb4084.js +0 -1
- package/dist/mint-components/p-6edab0e1.js +0 -1
- package/dist/mint-components/p-7b5f70cf.system.entry.js +0 -1
- package/dist/mint-components/p-7cf1b6bc.system.js +0 -1
- package/dist/mint-components/p-8a647b42.entry.js +0 -1
- package/dist/mint-components/p-8a9e36b0.entry.js +0 -1
- package/dist/mint-components/p-9ec68457.system.js +0 -1
- package/dist/mint-components/p-a19cb5dc.entry.js +0 -1
- package/dist/mint-components/p-ac1285f3.js +0 -1
- package/dist/mint-components/p-aca6d934.system.entry.js +0 -1
- package/dist/mint-components/p-ae8f2817.entry.js +0 -1
- package/dist/mint-components/p-bcd56164.system.entry.js +0 -1
- package/dist/mint-components/p-cccfe42a.system.js +0 -1
- package/dist/mint-components/p-d2dfc374.js +0 -1
- package/dist/mint-components/p-db23f907.system.entry.js +0 -1
- package/dist/mint-components/p-e896917e.entry.js +0 -1
- package/dist/mint-components/p-f305ea91.system.entry.js +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { h, r as registerInstance, c as Host } from './index-17b4da69.js';
|
|
2
|
-
import { m as h$1, k as useState, f as useEffect, i as useRef, n as d$2, y as y$1,
|
|
2
|
+
import { m as h$1, k as useState, f as useEffect, i as useRef, n as d$2, y as y$1, b as browser, e as useReducer, c as createCommonjsModule, a as commonjsGlobal, u as useMemo } from './extends-faeb047d.js';
|
|
3
3
|
import { i as intl, a as insertCSS } from './global-736dc1ae.js';
|
|
4
|
-
import { d as dist, T as T$1, e as en, b as be, j as j$1, Z as Ze, r as rn, P as P$1, E as Ee, u as useCallback, M as M$1, a as sn, c as an, x as x$1, D as D$1 } from './index.module-7a2b1f9b.js';
|
|
4
|
+
import { d as dist, T as T$1, e as en, b as be, j as j$1, Z as Ze, r as rn, q as qe, P as P$1, E as Ee, u as useCallback, M as M$1, a as sn, c as an, x as x$1, D as D$1 } from './index.module-7a2b1f9b.js';
|
|
5
5
|
import { j as jsonpointer } from './jsonpointer-388a7082.js';
|
|
6
6
|
import { j as jss, c as create } from './jss-preset-default.esm-5aaab97b.js';
|
|
7
7
|
import { g as getProps } from './utils-5ce97f37.js';
|
|
@@ -14,18 +14,19 @@ import { p as pathToRegexp, B as BigStatView, u as useBigStat, a as useDemoBigSt
|
|
|
14
14
|
import { S as ShareLinkView } from './sqm-share-link-view-077b643a.js';
|
|
15
15
|
import { L as LeaderboardView, u as useLeaderboard, S as ShadowViewAddon } from './ShadowViewAddon-37d4d088.js';
|
|
16
16
|
import { N as NavigationSidebarView } from './sqm-navigation-sidebar-view-88b569ee.js';
|
|
17
|
-
import { N as NavigationSidebarItemView } from './sqm-navigation-sidebar-item-view-
|
|
17
|
+
import { N as NavigationSidebarItemView } from './sqm-navigation-sidebar-item-view-000b0afb.js';
|
|
18
18
|
import { P as PortalSectionView } from './sqm-portal-section-view-4ff6dcfb.js';
|
|
19
19
|
import { P as PortalContainerView } from './sqm-portal-container-view-262b17b1.js';
|
|
20
20
|
import { S as StatContainerView } from './sqm-stat-container-view-fc69587b.js';
|
|
21
|
-
import { P as PortalProfileView } from './sqm-portal-profile-view-
|
|
22
|
-
import { P as PortalChangePasswordView } from './sqm-portal-change-password-view-
|
|
23
|
-
import { P as PortalLoginView } from './sqm-portal-login-view-7e56a959.js';
|
|
21
|
+
import { P as PortalProfileView } from './sqm-portal-profile-view-72e966e2.js';
|
|
22
|
+
import { P as PortalChangePasswordView } from './sqm-portal-change-password-view-24a4adf7.js';
|
|
24
23
|
import { P as PortalForgotPasswordView } from './sqm-portal-forgot-password-view-97566434.js';
|
|
25
|
-
import { P as PortalEmailVerificationView } from './sqm-portal-email-verification-view-
|
|
26
|
-
import { P as PortalResetPasswordView$1 } from './sqm-portal-reset-password-view-
|
|
24
|
+
import { P as PortalEmailVerificationView } from './sqm-portal-email-verification-view-03495ffa.js';
|
|
25
|
+
import { P as PortalResetPasswordView$1 } from './sqm-portal-reset-password-view-1441849e.js';
|
|
27
26
|
import { P as PortalVerifyEmailView } from './sqm-portal-verify-email-view-094a5a58.js';
|
|
28
27
|
import { A as AssetCardView } from './sqm-asset-card-view-90c2a945.js';
|
|
28
|
+
import { P as PoweredByImg$1, a as PortalFooterView } from './sqm-portal-footer-view-728c427c.js';
|
|
29
|
+
import { H as HeroView } from './sqm-hero-view-5b9bbae2.js';
|
|
29
30
|
|
|
30
31
|
function DividedLayoutView(props, children) {
|
|
31
32
|
const getBorder = () => {
|
|
@@ -1160,6 +1161,155 @@ function usePortalFrameDemo(footerContent, headerContent, props) {
|
|
|
1160
1161
|
}
|
|
1161
1162
|
|
|
1162
1163
|
const style$3 = {
|
|
1164
|
+
Wrapper: AuthWrapper,
|
|
1165
|
+
Column: AuthColumn,
|
|
1166
|
+
ForgotButtonContainer: {
|
|
1167
|
+
display: "inline",
|
|
1168
|
+
cursor: "pointer",
|
|
1169
|
+
"font-size": "13px",
|
|
1170
|
+
"font-weight": "600",
|
|
1171
|
+
color: "#AAAAAA",
|
|
1172
|
+
margin: "0",
|
|
1173
|
+
},
|
|
1174
|
+
ButtonsContainer: AuthButtonsContainer,
|
|
1175
|
+
};
|
|
1176
|
+
const vanillaStyle$1 = `
|
|
1177
|
+
:host {
|
|
1178
|
+
margin: 0 auto;
|
|
1179
|
+
width: 100%;
|
|
1180
|
+
display: block;
|
|
1181
|
+
}
|
|
1182
|
+
:host([hidden]): {
|
|
1183
|
+
display: none;
|
|
1184
|
+
}
|
|
1185
|
+
`;
|
|
1186
|
+
jss.setup(create());
|
|
1187
|
+
const sheet$3 = jss.createStyleSheet(style$3);
|
|
1188
|
+
const styleString$3 = sheet$3.toString();
|
|
1189
|
+
function PortalLoginView(props) {
|
|
1190
|
+
const { states, callbacks, content } = props;
|
|
1191
|
+
return (h("div", { class: sheet$3.classes.Wrapper },
|
|
1192
|
+
h("style", { type: "text/css" },
|
|
1193
|
+
vanillaStyle$1,
|
|
1194
|
+
styleString$3),
|
|
1195
|
+
h(TextSpanView, { type: "h3" }, content.pageLabel),
|
|
1196
|
+
h("sl-form", { class: sheet$3.classes.Column, "onSl-submit": callbacks.submit },
|
|
1197
|
+
props.states.error && (h("sqm-form-message", { type: "error", exportparts: "erroralert-icon" },
|
|
1198
|
+
h("div", { part: "erroralert-text" }, props.states.error))),
|
|
1199
|
+
h("sl-input", { exportparts: "label: input-label", type: "email", name: "/email", label: content.emailLabel || "Email", disabled: states.loading, required: true }),
|
|
1200
|
+
h("div", null,
|
|
1201
|
+
h("sl-input", { exportparts: "label: input-label", type: "password", name: "/password", label: content.passwordLabel || "Password", disabled: states.loading, required: true }),
|
|
1202
|
+
h("div", { class: sheet$3.classes.ForgotButtonContainer }, content.forgotPasswordButton)),
|
|
1203
|
+
h("div", { class: sheet$3.classes.ButtonsContainer },
|
|
1204
|
+
h("sl-button", { submit: true, loading: states.loading, exportparts: "base: primarybutton-base", type: "primary" }, content.submitLabel || "Login"),
|
|
1205
|
+
content.secondaryButton))));
|
|
1206
|
+
}
|
|
1207
|
+
|
|
1208
|
+
function usePortalLogin({ nextPage }) {
|
|
1209
|
+
var _a, _b, _c, _d;
|
|
1210
|
+
const [request, { loading, errors, data }] = qe();
|
|
1211
|
+
const [error, setError] = useState("");
|
|
1212
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
1213
|
+
const nextPageOverride = urlParams.get("nextPage");
|
|
1214
|
+
const submit = async (event) => {
|
|
1215
|
+
setError("");
|
|
1216
|
+
let formData = event.detail.formData;
|
|
1217
|
+
formData === null || formData === void 0 ? void 0 : formData.forEach((value, key) => {
|
|
1218
|
+
jsonpointer.set(formData, key, value);
|
|
1219
|
+
});
|
|
1220
|
+
const variables = { email: formData.email, password: formData.password };
|
|
1221
|
+
await request(variables);
|
|
1222
|
+
};
|
|
1223
|
+
useEffect(() => {
|
|
1224
|
+
var _a;
|
|
1225
|
+
if ((_a = data === null || data === void 0 ? void 0 : data.authenticateManagedIdentityWithEmailAndPassword) === null || _a === void 0 ? void 0 : _a.token) {
|
|
1226
|
+
urlParams.delete("nextPage");
|
|
1227
|
+
rn.push({
|
|
1228
|
+
pathname: nextPageOverride || nextPage,
|
|
1229
|
+
search: urlParams.toString() && "?" + urlParams.toString(),
|
|
1230
|
+
});
|
|
1231
|
+
}
|
|
1232
|
+
}, [(_a = data === null || data === void 0 ? void 0 : data.authenticateManagedIdentityWithEmailAndPassword) === null || _a === void 0 ? void 0 : _a.token]);
|
|
1233
|
+
useEffect(() => {
|
|
1234
|
+
var _a;
|
|
1235
|
+
if ((errors === null || errors === void 0 ? void 0 : errors.message) || ((_a = errors === null || errors === void 0 ? void 0 : errors.response) === null || _a === void 0 ? void 0 : _a["error"])) {
|
|
1236
|
+
setError("Network request failed.");
|
|
1237
|
+
}
|
|
1238
|
+
}, [errors]);
|
|
1239
|
+
const errorMessage = ((_d = (_c = (_b = errors === null || errors === void 0 ? void 0 : errors.response) === null || _b === void 0 ? void 0 : _b.errors) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.message) || error;
|
|
1240
|
+
return {
|
|
1241
|
+
states: {
|
|
1242
|
+
loading,
|
|
1243
|
+
error: errorMessage,
|
|
1244
|
+
},
|
|
1245
|
+
callbacks: {
|
|
1246
|
+
submit,
|
|
1247
|
+
},
|
|
1248
|
+
};
|
|
1249
|
+
}
|
|
1250
|
+
|
|
1251
|
+
const PortalLogin = class {
|
|
1252
|
+
constructor(hostRef) {
|
|
1253
|
+
registerInstance(this, hostRef);
|
|
1254
|
+
this.ignored = true;
|
|
1255
|
+
/**
|
|
1256
|
+
* @uiName Page navigated to after sign-in
|
|
1257
|
+
*/
|
|
1258
|
+
this.nextPage = "/";
|
|
1259
|
+
/**
|
|
1260
|
+
* @uiName Label for email field
|
|
1261
|
+
*/
|
|
1262
|
+
this.emailLabel = "Email";
|
|
1263
|
+
/**
|
|
1264
|
+
* @uiName Label for password field
|
|
1265
|
+
*/
|
|
1266
|
+
this.passwordLabel = "Password";
|
|
1267
|
+
/**
|
|
1268
|
+
* @uiName Label for submit button
|
|
1269
|
+
*/
|
|
1270
|
+
this.submitLabel = "Sign In";
|
|
1271
|
+
/**
|
|
1272
|
+
* @uiName Label for forgotten password button
|
|
1273
|
+
*/
|
|
1274
|
+
this.forgotPasswordLabel = "Forgot Password?";
|
|
1275
|
+
/**
|
|
1276
|
+
* @uiName Label for register navigation button
|
|
1277
|
+
*/
|
|
1278
|
+
this.registerLabel = "Register";
|
|
1279
|
+
/**
|
|
1280
|
+
* @uiName Heading label
|
|
1281
|
+
*/
|
|
1282
|
+
this.pageLabel = "Sign in to your account";
|
|
1283
|
+
h$1(this);
|
|
1284
|
+
}
|
|
1285
|
+
disconnectedCallback() { }
|
|
1286
|
+
render() {
|
|
1287
|
+
const { states, callbacks } = j$1()
|
|
1288
|
+
? useLoginDemo(this)
|
|
1289
|
+
: usePortalLogin(this);
|
|
1290
|
+
const content = {
|
|
1291
|
+
forgotPasswordButton: (h("slot", { name: "forgotPassword" }, h("a", { onClick: () => rn.push("/forgotPassword") }, this.forgotPasswordLabel))),
|
|
1292
|
+
secondaryButton: (h("slot", { name: "secondaryButton" }, h("sl-button", { type: "text", disabled: states.loading, onClick: () => rn.push("/register") }, this.registerLabel))),
|
|
1293
|
+
emailLabel: this.emailLabel,
|
|
1294
|
+
passwordLabel: this.passwordLabel,
|
|
1295
|
+
submitLabel: this.submitLabel,
|
|
1296
|
+
pageLabel: this.pageLabel,
|
|
1297
|
+
};
|
|
1298
|
+
return (h(PortalLoginView, { states: states, callbacks: callbacks, content: content }));
|
|
1299
|
+
}
|
|
1300
|
+
};
|
|
1301
|
+
function useLoginDemo(props) {
|
|
1302
|
+
return cjs({
|
|
1303
|
+
states: { error: "", loading: false },
|
|
1304
|
+
callbacks: {
|
|
1305
|
+
submit: async (_event) => {
|
|
1306
|
+
console.log("submit");
|
|
1307
|
+
},
|
|
1308
|
+
},
|
|
1309
|
+
}, props.demoData || {}, { arrayMerge: (_, a) => a });
|
|
1310
|
+
}
|
|
1311
|
+
|
|
1312
|
+
const style$4 = {
|
|
1163
1313
|
Wrapper: { ...AuthWrapper, "max-width": "600px" },
|
|
1164
1314
|
Column: AuthColumn,
|
|
1165
1315
|
HostBlock: HostBlock,
|
|
@@ -1170,7 +1320,7 @@ const style$3 = {
|
|
|
1170
1320
|
ButtonsContainer: AuthButtonsContainer,
|
|
1171
1321
|
ErrorStyle: ErrorStyles,
|
|
1172
1322
|
};
|
|
1173
|
-
const vanillaStyle$
|
|
1323
|
+
const vanillaStyle$2 = `
|
|
1174
1324
|
sqm-portal-register {
|
|
1175
1325
|
margin: 0 auto;
|
|
1176
1326
|
width: 100%;
|
|
@@ -1188,22 +1338,23 @@ sqm-portal-register {
|
|
|
1188
1338
|
}
|
|
1189
1339
|
`;
|
|
1190
1340
|
jss.setup(create());
|
|
1191
|
-
const sheet$
|
|
1192
|
-
const styleString$
|
|
1341
|
+
const sheet$4 = jss.createStyleSheet(style$4);
|
|
1342
|
+
const styleString$4 = sheet$4.toString();
|
|
1193
1343
|
function PortalRegisterView(props) {
|
|
1194
1344
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
1195
1345
|
const { states, refs, callbacks, content } = props;
|
|
1196
1346
|
if (states.error) {
|
|
1197
1347
|
window.scrollTo({ top: 0, left: 0, behavior: "smooth" });
|
|
1198
1348
|
}
|
|
1199
|
-
return (h("div", { class: sheet$
|
|
1349
|
+
return (h("div", { class: sheet$4.classes.Wrapper },
|
|
1200
1350
|
h("style", { type: "text/css" },
|
|
1201
|
-
vanillaStyle$
|
|
1202
|
-
styleString$
|
|
1351
|
+
vanillaStyle$2,
|
|
1352
|
+
styleString$4),
|
|
1203
1353
|
h(TextSpanView, { type: "h3" }, content.pageLabel),
|
|
1204
|
-
h("sl-form", { class: sheet$
|
|
1354
|
+
h("sl-form", { class: sheet$4.classes.Column, "onSl-submit": callbacks.submit, ref: (el) => (refs.formRef.current = el), novalidate: true },
|
|
1205
1355
|
states.error && (h("sqm-form-message", { type: "error", exportparts: "erroralert-icon" },
|
|
1206
1356
|
h("div", { part: "erroralert-text" }, props.states.error))),
|
|
1357
|
+
content.formData,
|
|
1207
1358
|
!states.hideInputs && (h("sl-input", Object.assign({ exportparts: "label: input-label", type: "email", name: "/email", label: content.emailLabel || "Email", disabled: states.loading, required: true, validationError: ({ value }) => {
|
|
1208
1359
|
if (!value) {
|
|
1209
1360
|
return "Cannot be empty";
|
|
@@ -1213,21 +1364,20 @@ function PortalRegisterView(props) {
|
|
|
1213
1364
|
return "Must be a valid email address";
|
|
1214
1365
|
}
|
|
1215
1366
|
} }, (((_b = (_a = states.validationState) === null || _a === void 0 ? void 0 : _a.validationErrors) === null || _b === void 0 ? void 0 : _b.email) ? {
|
|
1216
|
-
class: sheet$
|
|
1367
|
+
class: sheet$4.classes.ErrorStyle,
|
|
1217
1368
|
helpText: ((_d = (_c = states.validationState) === null || _c === void 0 ? void 0 : _c.validationErrors) === null || _d === void 0 ? void 0 : _d.email) ||
|
|
1218
1369
|
"Cannot be empty",
|
|
1219
1370
|
}
|
|
1220
1371
|
: [])))),
|
|
1221
|
-
!states.hideInputs && (h("sqm-password-field", { "enable-validation": states.enablePasswordValidation })),
|
|
1372
|
+
!states.hideInputs && (h("sqm-password-field", { fieldLabel: content.passwordLabel, "enable-validation": states.enablePasswordValidation })),
|
|
1222
1373
|
content.passwordField,
|
|
1223
|
-
!states.hideInputs && states.confirmPassword && (h("sl-input", Object.assign({ exportparts: "label: input-label", type: "password", name: "/confirmPassword", label:
|
|
1224
|
-
class: sheet$
|
|
1374
|
+
!states.hideInputs && states.confirmPassword && (h("sl-input", Object.assign({ exportparts: "label: input-label", type: "password", name: "/confirmPassword", label: content.confirmPasswordLabel, disabled: states.loading, required: true }, (((_f = (_e = states.validationState) === null || _e === void 0 ? void 0 : _e.validationErrors) === null || _f === void 0 ? void 0 : _f.confirmPassword) ? {
|
|
1375
|
+
class: sheet$4.classes.ErrorStyle,
|
|
1225
1376
|
helpText: ((_h = (_g = states.validationState) === null || _g === void 0 ? void 0 : _g.validationErrors) === null || _h === void 0 ? void 0 : _h.confirmPassword) ||
|
|
1226
1377
|
"Cannot be empty",
|
|
1227
1378
|
}
|
|
1228
1379
|
: [])))),
|
|
1229
|
-
|
|
1230
|
-
h("div", { class: sheet$3.classes.ButtonsContainer },
|
|
1380
|
+
h("div", { class: sheet$4.classes.ButtonsContainer },
|
|
1231
1381
|
h("sl-button", { submit: true, loading: states.loading, exportparts: "base: primarybutton-base", type: "primary" }, content.submitLabel || "Register"),
|
|
1232
1382
|
content.secondaryButton))));
|
|
1233
1383
|
}
|
|
@@ -5234,6 +5384,10 @@ const PortalRegister = class {
|
|
|
5234
5384
|
* @uiName Label for login navigation button
|
|
5235
5385
|
*/
|
|
5236
5386
|
this.loginLabel = "Sign in";
|
|
5387
|
+
/**
|
|
5388
|
+
* @uiName Label for confirm password field
|
|
5389
|
+
*/
|
|
5390
|
+
this.confirmPasswordLabel = "Confirm Password";
|
|
5237
5391
|
/**
|
|
5238
5392
|
* @uiName Show confirm password field
|
|
5239
5393
|
*/
|
|
@@ -5264,6 +5418,7 @@ const PortalRegister = class {
|
|
|
5264
5418
|
passwordLabel: this.passwordLabel,
|
|
5265
5419
|
submitLabel: this.submitLabel,
|
|
5266
5420
|
pageLabel: this.pageLabel,
|
|
5421
|
+
confirmPasswordLabel: this.confirmPasswordLabel,
|
|
5267
5422
|
};
|
|
5268
5423
|
return (h(PortalRegisterView, { states: states, callbacks: callbacks, content: content, refs: refs }));
|
|
5269
5424
|
}
|
|
@@ -5274,7 +5429,7 @@ function useRegisterDemo(props) {
|
|
|
5274
5429
|
error: "",
|
|
5275
5430
|
loading: false,
|
|
5276
5431
|
confirmPassword: true,
|
|
5277
|
-
hideInputs: false,
|
|
5432
|
+
hideInputs: props.hideInputs || false,
|
|
5278
5433
|
customPasswordField: false,
|
|
5279
5434
|
},
|
|
5280
5435
|
callbacks: {
|
|
@@ -5289,7 +5444,51 @@ function useRegisterDemo(props) {
|
|
|
5289
5444
|
}, props.demoData || {}, { arrayMerge: (_, a) => a });
|
|
5290
5445
|
}
|
|
5291
5446
|
|
|
5292
|
-
const
|
|
5447
|
+
const debug = browser('sq:useProgramMenu');
|
|
5448
|
+
const UPDATE_PROGRAM_EVENT = 'sq:update-program-id';
|
|
5449
|
+
function useProgramMenu(props) {
|
|
5450
|
+
const programId = M$1();
|
|
5451
|
+
const host = P$1();
|
|
5452
|
+
debug({ programId, props });
|
|
5453
|
+
const ref = useRef();
|
|
5454
|
+
const [, rerender] = Ze();
|
|
5455
|
+
useEffect(() => {
|
|
5456
|
+
var _a;
|
|
5457
|
+
(_a = ref.current) === null || _a === void 0 ? void 0 : _a.addEventListener('sl-select', (e) => {
|
|
5458
|
+
const programId = e.detail.item.value;
|
|
5459
|
+
// setProgramId(programId);
|
|
5460
|
+
host.dispatchEvent(new CustomEvent(UPDATE_PROGRAM_EVENT, {
|
|
5461
|
+
detail: programId,
|
|
5462
|
+
bubbles: true,
|
|
5463
|
+
composed: true,
|
|
5464
|
+
}));
|
|
5465
|
+
});
|
|
5466
|
+
}, [ref.current]);
|
|
5467
|
+
return {
|
|
5468
|
+
data: {
|
|
5469
|
+
programId,
|
|
5470
|
+
},
|
|
5471
|
+
callbacks: {
|
|
5472
|
+
rerender,
|
|
5473
|
+
},
|
|
5474
|
+
ref,
|
|
5475
|
+
};
|
|
5476
|
+
}
|
|
5477
|
+
|
|
5478
|
+
const ProgramMenu = class {
|
|
5479
|
+
constructor(hostRef) {
|
|
5480
|
+
registerInstance(this, hostRef);
|
|
5481
|
+
this.ignored = true;
|
|
5482
|
+
h$1(this);
|
|
5483
|
+
}
|
|
5484
|
+
disconnectedCallback() { }
|
|
5485
|
+
render() {
|
|
5486
|
+
const { data, ref } = useProgramMenu(getProps(this));
|
|
5487
|
+
return (h(Host, { style: { display: "contents" } }, h("sl-select", { style: { paddingBottom: "var(--sl-spacing-large)" }, value: data.programId, ref: (r) => (ref.current = r) }, h("slot", null))));
|
|
5488
|
+
}
|
|
5489
|
+
};
|
|
5490
|
+
|
|
5491
|
+
const style$5 = {
|
|
5293
5492
|
THead: {
|
|
5294
5493
|
padding: "var(--sl-spacing-small) var(--sl-spacing-medium) var(--sl-spacing-small) 0",
|
|
5295
5494
|
"text-align": "left",
|
|
@@ -5312,29 +5511,29 @@ const style$4 = {
|
|
|
5312
5511
|
},
|
|
5313
5512
|
};
|
|
5314
5513
|
jss.setup(create());
|
|
5315
|
-
const sheet$
|
|
5316
|
-
const styleString$
|
|
5514
|
+
const sheet$5 = jss.createStyleSheet(style$5);
|
|
5515
|
+
const styleString$5 = sheet$5.toString();
|
|
5317
5516
|
function ReferralTableView(props) {
|
|
5318
5517
|
var _a, _b;
|
|
5319
5518
|
const { states, data, callbacks, elements } = props;
|
|
5320
5519
|
const { columns, rows } = elements;
|
|
5321
5520
|
return (h("div", null,
|
|
5322
|
-
h("style", { type: "text/css" }, styleString$
|
|
5323
|
-
h("table", { class: sheet$
|
|
5521
|
+
h("style", { type: "text/css" }, styleString$5),
|
|
5522
|
+
h("table", { class: sheet$5.classes.Table },
|
|
5324
5523
|
data.textOverrides.showLabels && (h("thead", null,
|
|
5325
|
-
h("tr", null, columns === null || columns === void 0 ? void 0 : columns.map((column) => (h("th", { class: sheet$
|
|
5524
|
+
h("tr", null, columns === null || columns === void 0 ? void 0 : columns.map((column) => (h("th", { class: sheet$5.classes.THead },
|
|
5326
5525
|
h(TextSpanView, { type: "h3" }, column))))))),
|
|
5327
5526
|
h("tbody", null, states.loading
|
|
5328
5527
|
? elements.loadingElement
|
|
5329
5528
|
: !((_a = elements === null || elements === void 0 ? void 0 : elements.rows) === null || _a === void 0 ? void 0 : _a.length) && !((_b = data.referralData) === null || _b === void 0 ? void 0 : _b.length)
|
|
5330
5529
|
? elements.emptyElement
|
|
5331
|
-
: rows === null || rows === void 0 ? void 0 : rows.map((row, i) => (h("tr", { class: sheet$
|
|
5530
|
+
: rows === null || rows === void 0 ? void 0 : rows.map((row, i) => (h("tr", { class: sheet$5.classes.TRow, style: {
|
|
5332
5531
|
borderTop: `${!data.textOverrides.showLabels && i === 0
|
|
5333
5532
|
? "none"
|
|
5334
5533
|
: ""}`,
|
|
5335
|
-
}, part: "table-row" }, row.map((cell) => (h("td", { class: sheet$
|
|
5534
|
+
}, part: "table-row" }, row.map((cell) => (h("td", { class: sheet$5.classes.TCell },
|
|
5336
5535
|
h(TextSpanView, { type: "p" }, cell))))))))),
|
|
5337
|
-
h("div", { class: sheet$
|
|
5536
|
+
h("div", { class: sheet$5.classes.ButtonContainer, part: "sqm-referral-table-button-wrapper" },
|
|
5338
5537
|
h("sl-button", { size: "small", disabled: !states.hasPrev, loading: states.loading, onClick: callbacks.prevPage, exportparts: "base: defaultbutton-base" }, data.textOverrides.prevLabel),
|
|
5339
5538
|
h("sl-button", { size: "small", loading: states.loading, disabled: !states.hasNext, onClick: callbacks.nextPage, exportparts: "base: defaultbutton-base" }, data.textOverrides.moreLabel))));
|
|
5340
5539
|
}
|
|
@@ -14202,7 +14401,7 @@ const ReferralTableUserCell = class {
|
|
|
14202
14401
|
}
|
|
14203
14402
|
};
|
|
14204
14403
|
|
|
14205
|
-
const debug = browser("sq:useRouter");
|
|
14404
|
+
const debug$1 = browser("sq:useRouter");
|
|
14206
14405
|
function matchPath(pattern, page) {
|
|
14207
14406
|
if (!pattern)
|
|
14208
14407
|
return;
|
|
@@ -14230,7 +14429,7 @@ function useRouter() {
|
|
|
14230
14429
|
useEffect(() => {
|
|
14231
14430
|
var _a, _b;
|
|
14232
14431
|
if (!container || !slot) {
|
|
14233
|
-
debug("DOM not ready for navigation rendering on:", page);
|
|
14432
|
+
debug$1("DOM not ready for navigation rendering on:", page);
|
|
14234
14433
|
return;
|
|
14235
14434
|
}
|
|
14236
14435
|
// <template>
|
|
@@ -14245,7 +14444,7 @@ function useRouter() {
|
|
|
14245
14444
|
});
|
|
14246
14445
|
//@ts-ignore - can't access template attributes directly
|
|
14247
14446
|
const templatePath = (_b = (_a = template === null || template === void 0 ? void 0 : template.attributes) === null || _a === void 0 ? void 0 : _a.path) === null || _b === void 0 ? void 0 : _b.nodeValue;
|
|
14248
|
-
debug({
|
|
14447
|
+
debug$1({
|
|
14249
14448
|
containerDatasetPage: container.dataset.page,
|
|
14250
14449
|
templatePath,
|
|
14251
14450
|
page,
|
|
@@ -14253,15 +14452,15 @@ function useRouter() {
|
|
|
14253
14452
|
// if no routes found, and the old route doesn't match the new route
|
|
14254
14453
|
if (!template) {
|
|
14255
14454
|
// No matching page, display nothing
|
|
14256
|
-
debug("No matching page found for ", page, ", so render nothing");
|
|
14455
|
+
debug$1("No matching page found for ", page, ", so render nothing");
|
|
14257
14456
|
container.innerHTML = "";
|
|
14258
14457
|
container.dataset.page = page;
|
|
14259
14458
|
return;
|
|
14260
14459
|
}
|
|
14261
|
-
debug("Page updated to ", page, template);
|
|
14460
|
+
debug$1("Page updated to ", page, template);
|
|
14262
14461
|
// if pathToRegexp results truthy or page is an exact match
|
|
14263
14462
|
if (!!matchPath(templatePath, container.dataset.page)) {
|
|
14264
|
-
debug("don't rerender");
|
|
14463
|
+
debug$1("don't rerender");
|
|
14265
14464
|
// Same page, do not re-render
|
|
14266
14465
|
// Reduces dom mutations, speeds up page speed
|
|
14267
14466
|
}
|
|
@@ -14294,19 +14493,19 @@ const SqmRouter = class {
|
|
|
14294
14493
|
};
|
|
14295
14494
|
SqmRouter.style = sqmRouterCss;
|
|
14296
14495
|
|
|
14297
|
-
const style$
|
|
14496
|
+
const style$6 = {
|
|
14298
14497
|
HostBlock: HostBlock,
|
|
14299
14498
|
buttonStyle: {
|
|
14300
14499
|
display: "block",
|
|
14301
14500
|
},
|
|
14302
14501
|
};
|
|
14303
14502
|
jss.setup(create());
|
|
14304
|
-
const sheet$
|
|
14305
|
-
const styleString$
|
|
14503
|
+
const sheet$6 = jss.createStyleSheet(style$6);
|
|
14504
|
+
const styleString$6 = sheet$6.toString();
|
|
14306
14505
|
function ShareButtonView(props, children) {
|
|
14307
14506
|
return props.hide ? (h(Host, { style: { display: "none" } })) : (h("div", null,
|
|
14308
|
-
h("style", { type: "text/css" }, styleString$
|
|
14309
|
-
h("sl-button", { class: sheet$
|
|
14507
|
+
h("style", { type: "text/css" }, styleString$6),
|
|
14508
|
+
h("sl-button", { class: sheet$6.classes.buttonStyle, loading: props.loading, disabled: props.disabled, pill: props.pill, size: props.size, type: props.type, onClick: props.onClick, exportparts: `base: ${props.type}sharebutton-base` },
|
|
14310
14509
|
!props.hideicon && (h("sl-icon", { slot: props.iconslot, name: props.icon ? props.icon : props.medium })),
|
|
14311
14510
|
!props.hidetext && children)));
|
|
14312
14511
|
}
|
|
@@ -16218,6 +16417,25 @@ const Leaderboard = /*#__PURE__*/Object.freeze({
|
|
|
16218
16417
|
Five: Five
|
|
16219
16418
|
});
|
|
16220
16419
|
|
|
16420
|
+
const HookStoryAddon = ({ story }, children) => {
|
|
16421
|
+
var _a;
|
|
16422
|
+
const hookStory = (_a = story.story.parameters) === null || _a === void 0 ? void 0 : _a.hookStory;
|
|
16423
|
+
if (!hookStory) {
|
|
16424
|
+
return children;
|
|
16425
|
+
}
|
|
16426
|
+
const randomInt = Math.round(Math.random() * 100000);
|
|
16427
|
+
const RandomTagName = "sqm-hook-story-container-" + randomInt;
|
|
16428
|
+
return (h(RandomTagName, null,
|
|
16429
|
+
h("sqm-hook-story-container", { hookStory: hookStory })));
|
|
16430
|
+
};
|
|
16431
|
+
function createHookStory(hookStory) {
|
|
16432
|
+
const story = () => h("div", null);
|
|
16433
|
+
story.parameters = {
|
|
16434
|
+
hookStory,
|
|
16435
|
+
};
|
|
16436
|
+
return story;
|
|
16437
|
+
}
|
|
16438
|
+
|
|
16221
16439
|
const Router_stories = {
|
|
16222
16440
|
title: "Tests/Router",
|
|
16223
16441
|
};
|
|
@@ -16284,7 +16502,7 @@ const routes = `
|
|
|
16284
16502
|
</pre>
|
|
16285
16503
|
</sqm-route>
|
|
16286
16504
|
`;
|
|
16287
|
-
const TemplateNavigation = () => {
|
|
16505
|
+
const TemplateNavigation = createHookStory(() => {
|
|
16288
16506
|
return (h("div", null,
|
|
16289
16507
|
h("button", { onClick: () => rn.push("/") }, "/"),
|
|
16290
16508
|
h("button", { onClick: () => rn.push("/foo") }, "/foo"),
|
|
@@ -16297,8 +16515,8 @@ const TemplateNavigation = () => {
|
|
|
16297
16515
|
h("button", { onClick: () => rn.forward() }, "Forward"),
|
|
16298
16516
|
h("hr", null),
|
|
16299
16517
|
h("sqm-router", { innerHTML: templates })));
|
|
16300
|
-
};
|
|
16301
|
-
const RouteNavigation = () => {
|
|
16518
|
+
});
|
|
16519
|
+
const RouteNavigation = createHookStory(() => {
|
|
16302
16520
|
return (h("div", null,
|
|
16303
16521
|
h("button", { onClick: () => rn.push("/") }, "/"),
|
|
16304
16522
|
h("button", { onClick: () => rn.push("/foo") }, "/foo"),
|
|
@@ -16311,8 +16529,8 @@ const RouteNavigation = () => {
|
|
|
16311
16529
|
h("button", { onClick: () => rn.forward() }, "Forward"),
|
|
16312
16530
|
h("hr", null),
|
|
16313
16531
|
h("sqm-router", { innerHTML: routes })));
|
|
16314
|
-
};
|
|
16315
|
-
const Styling = () => {
|
|
16532
|
+
});
|
|
16533
|
+
const Styling = createHookStory(() => {
|
|
16316
16534
|
return (h("div", null,
|
|
16317
16535
|
h("button", { onClick: () => rn.push("/") }, "/"),
|
|
16318
16536
|
h("button", { onClick: () => rn.push("/foo") }, "/foo"),
|
|
@@ -16323,14 +16541,49 @@ const Styling = () => {
|
|
|
16323
16541
|
<div>Column 1</div>
|
|
16324
16542
|
<div>Column 2 </div>
|
|
16325
16543
|
</template>` }))));
|
|
16326
|
-
};
|
|
16544
|
+
});
|
|
16545
|
+
function useTemplate(templateString) {
|
|
16546
|
+
const [editedTemplate, setEditedTemplate] = useState(templateString);
|
|
16547
|
+
const [previewTemplate, setPreviewTemplate] = useState(templateString);
|
|
16548
|
+
function setPath(e) {
|
|
16549
|
+
//@ts-ignore
|
|
16550
|
+
rn.push(e.target.value);
|
|
16551
|
+
}
|
|
16552
|
+
return {
|
|
16553
|
+
states: { previewTemplate, editedTemplate },
|
|
16554
|
+
callbacks: { setEditedTemplate, setPreviewTemplate, setPath },
|
|
16555
|
+
};
|
|
16556
|
+
}
|
|
16557
|
+
const defaultRouter = `
|
|
16558
|
+
<sqm-router>
|
|
16559
|
+
<template path="/">
|
|
16560
|
+
<div>hello world</div>
|
|
16561
|
+
</template>
|
|
16562
|
+
</sqm-router>
|
|
16563
|
+
`;
|
|
16564
|
+
function TemplateView(props) {
|
|
16565
|
+
const { states, callbacks } = props;
|
|
16566
|
+
return [
|
|
16567
|
+
h("textarea", { style: { width: "100%", height: "300px" }, onChange: (e) => callbacks.setEditedTemplate(e.target.value) }, states.editedTemplate),
|
|
16568
|
+
h("button", { onClick: () => callbacks.setPreviewTemplate(states.editedTemplate) }, "Update Preview"),
|
|
16569
|
+
h("label", null,
|
|
16570
|
+
"Current path:",
|
|
16571
|
+
h("input", { onInput: callbacks.setPath, value: "/" })),
|
|
16572
|
+
h("div", { innerHTML: states.previewTemplate }),
|
|
16573
|
+
];
|
|
16574
|
+
}
|
|
16575
|
+
const RouterPlayground = createHookStory(() => {
|
|
16576
|
+
const { states, callbacks } = useTemplate(defaultRouter);
|
|
16577
|
+
return h(TemplateView, { states: states, callbacks: callbacks });
|
|
16578
|
+
});
|
|
16327
16579
|
|
|
16328
16580
|
const Router = /*#__PURE__*/Object.freeze({
|
|
16329
16581
|
__proto__: null,
|
|
16330
16582
|
'default': Router_stories,
|
|
16331
16583
|
TemplateNavigation: TemplateNavigation,
|
|
16332
16584
|
RouteNavigation: RouteNavigation,
|
|
16333
|
-
Styling: Styling
|
|
16585
|
+
Styling: Styling,
|
|
16586
|
+
RouterPlayground: RouterPlayground
|
|
16334
16587
|
});
|
|
16335
16588
|
|
|
16336
16589
|
const LeaderboardRank_stories = {
|
|
@@ -16543,25 +16796,6 @@ const EditProfile$1 = /*#__PURE__*/Object.freeze({
|
|
|
16543
16796
|
FullStackFrameWithMenu: FullStackFrameWithMenu
|
|
16544
16797
|
});
|
|
16545
16798
|
|
|
16546
|
-
const HookStoryAddon = ({ story }, children) => {
|
|
16547
|
-
var _a;
|
|
16548
|
-
const hookStory = (_a = story.story.parameters) === null || _a === void 0 ? void 0 : _a.hookStory;
|
|
16549
|
-
if (!hookStory) {
|
|
16550
|
-
return children;
|
|
16551
|
-
}
|
|
16552
|
-
const randomInt = Math.round(Math.random() * 100000);
|
|
16553
|
-
const RandomTagName = "sqm-hook-story-container-" + randomInt;
|
|
16554
|
-
return (h(RandomTagName, null,
|
|
16555
|
-
h("sqm-hook-story-container", { hookStory: hookStory })));
|
|
16556
|
-
};
|
|
16557
|
-
function createHookStory(hookStory) {
|
|
16558
|
-
const story = () => h("div", null);
|
|
16559
|
-
story.parameters = {
|
|
16560
|
-
hookStory,
|
|
16561
|
-
};
|
|
16562
|
-
return story;
|
|
16563
|
-
}
|
|
16564
|
-
|
|
16565
16799
|
const UseShareLink_stories = {
|
|
16566
16800
|
title: "Hooks / useShareLink",
|
|
16567
16801
|
};
|
|
@@ -16751,6 +16985,7 @@ const GlobalRewardsCountPctDiscountPending = createHookStory(() => View("/reward
|
|
|
16751
16985
|
const RewardsCountByUnit = createHookStory(() => View("/rewardsCountFiltered/CREDIT/COFFEE", "/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?"));
|
|
16752
16986
|
const GlobalRewardsCountByUnit = createHookStory(() => View("/rewardsCountFiltered/CREDIT/COFFEE/global", "/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?"));
|
|
16753
16987
|
const GlobalPendingRewardsCount = createHookStory(() => View("/rewardsCountFiltered/CREDIT/COFFEE/PENDING/global", "/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?"));
|
|
16988
|
+
const RewardsAvailableCount = createHookStory(() => View("/rewardsCountFiltered/AVAILABLE", "/(rewardsCountFiltered)/:statType([INTEGRATION|PCT_DISCOUNT|CREDIT]*)?/:unit((?!global)(?!PENDING)(?!CANCELLED)(?!EXPIRED)(?!REDEEMED)(?!AVAILABLE)[a-zA-Z0-9%]+)?/:status([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?"));
|
|
16754
16989
|
const GlobalRewardsCountByIntegration = createHookStory(() => View("/integrationRewardsCountFiltered/AVAILABLE/global", "/(integrationRewardsCountFiltered)/:format([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?"));
|
|
16755
16990
|
const GlobalRewardsCountByPendingIntegration = createHookStory(() => View("/integrationRewardsCountFiltered/PENDING/global", "/(integrationRewardsCountFiltered)/:format([PENDING|CANCELLED|EXPIRED|REDEEMED|AVAILABLE]*)?/:global?"));
|
|
16756
16991
|
const RewardsMonth = createHookStory(() => View("/rewardsMonth", "/(rewardsMonth)/:global?"));
|
|
@@ -16787,6 +17022,7 @@ const UseBigStat = /*#__PURE__*/Object.freeze({
|
|
|
16787
17022
|
RewardsCountByUnit: RewardsCountByUnit,
|
|
16788
17023
|
GlobalRewardsCountByUnit: GlobalRewardsCountByUnit,
|
|
16789
17024
|
GlobalPendingRewardsCount: GlobalPendingRewardsCount,
|
|
17025
|
+
RewardsAvailableCount: RewardsAvailableCount,
|
|
16790
17026
|
GlobalRewardsCountByIntegration: GlobalRewardsCountByIntegration,
|
|
16791
17027
|
GlobalRewardsCountByPendingIntegration: GlobalRewardsCountByPendingIntegration,
|
|
16792
17028
|
RewardsMonth: RewardsMonth,
|
|
@@ -16961,15 +17197,15 @@ const FormMessage$1 = /*#__PURE__*/Object.freeze({
|
|
|
16961
17197
|
const NewPortal_stories = {
|
|
16962
17198
|
title: "New Portal",
|
|
16963
17199
|
};
|
|
16964
|
-
const style$
|
|
17200
|
+
const style$7 = {
|
|
16965
17201
|
HeaderSubtitleBold: {
|
|
16966
17202
|
"font-weight": 500,
|
|
16967
17203
|
"text-decoration": "underline",
|
|
16968
17204
|
},
|
|
16969
17205
|
};
|
|
16970
17206
|
jss.setup(create());
|
|
16971
|
-
const sheet$
|
|
16972
|
-
const styleString$
|
|
17207
|
+
const sheet$7 = jss.createStyleSheet(style$7);
|
|
17208
|
+
const styleString$7 = sheet$7.toString();
|
|
16973
17209
|
const barProps = {
|
|
16974
17210
|
data: {
|
|
16975
17211
|
programs: [
|
|
@@ -17064,7 +17300,7 @@ const Dashboard = () => {
|
|
|
17064
17300
|
hide: false,
|
|
17065
17301
|
};
|
|
17066
17302
|
return (h("sqm-divided-layout", { direction: "row" },
|
|
17067
|
-
h("style", { type: "text/css" }, styleString$
|
|
17303
|
+
h("style", { type: "text/css" }, styleString$7),
|
|
17068
17304
|
h(Sidebar, null),
|
|
17069
17305
|
h("sqm-divided-layout", { direction: "column" },
|
|
17070
17306
|
h(PortalContainerView, Object.assign({}, { direction: "column", padding: "xxx-large", gap: "xxx-large" }),
|
|
@@ -17122,7 +17358,7 @@ const Dashboard = () => {
|
|
|
17122
17358
|
};
|
|
17123
17359
|
const EditProfile$2 = () => {
|
|
17124
17360
|
return (h("sqm-divided-layout", { direction: "row" },
|
|
17125
|
-
h("style", { type: "text/css" }, styleString$
|
|
17361
|
+
h("style", { type: "text/css" }, styleString$7),
|
|
17126
17362
|
h(Sidebar, null),
|
|
17127
17363
|
h("sqm-divided-layout", { direction: "column" },
|
|
17128
17364
|
h(PortalProfileView, Object.assign({}, {
|
|
@@ -17144,6 +17380,9 @@ const EditProfile$2 = () => {
|
|
|
17144
17380
|
lastnametext: "Last Name",
|
|
17145
17381
|
emailtext: "Email",
|
|
17146
17382
|
countrytext: "Country",
|
|
17383
|
+
editProfileHeader: "Edit your profile",
|
|
17384
|
+
editProfileSubHeader: "Personal Information",
|
|
17385
|
+
submitChangeButtonText: "Submit Changes",
|
|
17147
17386
|
},
|
|
17148
17387
|
formState: {
|
|
17149
17388
|
country: "Canada",
|
|
@@ -17159,7 +17398,22 @@ const EditProfile$2 = () => {
|
|
|
17159
17398
|
},
|
|
17160
17399
|
})),
|
|
17161
17400
|
h(PortalChangePasswordView, Object.assign({}, {
|
|
17162
|
-
states: {
|
|
17401
|
+
states: {
|
|
17402
|
+
open: true,
|
|
17403
|
+
error: "",
|
|
17404
|
+
loading: false,
|
|
17405
|
+
success: false,
|
|
17406
|
+
content: {
|
|
17407
|
+
modalChangePasswordHeader: "Change Password",
|
|
17408
|
+
cancelText: "Cancel",
|
|
17409
|
+
changePasswordButtonText: "Change Password",
|
|
17410
|
+
passwordFieldLabel: "Password",
|
|
17411
|
+
confirmPasswordFieldLabel: "Confirm new password",
|
|
17412
|
+
successMessage: "Your password has been updated.",
|
|
17413
|
+
portalChangePasswordHeader: "Password",
|
|
17414
|
+
portalChangePasswordButtonText: "Change your password...",
|
|
17415
|
+
},
|
|
17416
|
+
},
|
|
17163
17417
|
callbacks: {
|
|
17164
17418
|
setOpen: () => console.log("open"),
|
|
17165
17419
|
submit: () => console.log("submit"),
|
|
@@ -17168,7 +17422,7 @@ const EditProfile$2 = () => {
|
|
|
17168
17422
|
};
|
|
17169
17423
|
const Commissions = () => {
|
|
17170
17424
|
return (h("sqm-divided-layout", { direction: "row" },
|
|
17171
|
-
h("style", { type: "text/css" }, styleString$
|
|
17425
|
+
h("style", { type: "text/css" }, styleString$7),
|
|
17172
17426
|
h(Sidebar, null),
|
|
17173
17427
|
h("sqm-divided-layout", { direction: "column" },
|
|
17174
17428
|
h(PortalContainerView, Object.assign({}, { direction: "column", padding: "xxx-large", gap: "xxx-large" }),
|
|
@@ -17181,7 +17435,7 @@ const Commissions = () => {
|
|
|
17181
17435
|
h("p", null,
|
|
17182
17436
|
"for the",
|
|
17183
17437
|
" ",
|
|
17184
|
-
h("span", { class: sheet$
|
|
17438
|
+
h("span", { class: sheet$7.classes.HeaderSubtitleBold }, "Partner Program #1"),
|
|
17185
17439
|
" ",
|
|
17186
17440
|
"program"))),
|
|
17187
17441
|
})),
|
|
@@ -17193,7 +17447,7 @@ const Commissions = () => {
|
|
|
17193
17447
|
};
|
|
17194
17448
|
const Activity = () => {
|
|
17195
17449
|
return (h("sqm-divided-layout", { direction: "row" },
|
|
17196
|
-
h("style", { type: "text/css" }, styleString$
|
|
17450
|
+
h("style", { type: "text/css" }, styleString$7),
|
|
17197
17451
|
h(Sidebar, null),
|
|
17198
17452
|
h("sqm-divided-layout", { direction: "column" },
|
|
17199
17453
|
h(PortalContainerView, Object.assign({}, { direction: "column", padding: "xxx-large", gap: "xxx-large" }),
|
|
@@ -17206,7 +17460,7 @@ const Activity = () => {
|
|
|
17206
17460
|
h("p", null,
|
|
17207
17461
|
"for the",
|
|
17208
17462
|
" ",
|
|
17209
|
-
h("span", { class: sheet$
|
|
17463
|
+
h("span", { class: sheet$7.classes.HeaderSubtitleBold }, "Partner Program #1"),
|
|
17210
17464
|
" ",
|
|
17211
17465
|
"program"))),
|
|
17212
17466
|
})),
|
|
@@ -17365,7 +17619,7 @@ const Default$2 = () => h(PortalLoginView, Object.assign({}, defaultProps$2));
|
|
|
17365
17619
|
const LoginWithError = () => h(PortalLoginView, Object.assign({}, errorProps));
|
|
17366
17620
|
const LoginLoading = () => h(PortalLoginView, Object.assign({}, loadingProps));
|
|
17367
17621
|
|
|
17368
|
-
const PortalLogin = /*#__PURE__*/Object.freeze({
|
|
17622
|
+
const PortalLogin$1 = /*#__PURE__*/Object.freeze({
|
|
17369
17623
|
__proto__: null,
|
|
17370
17624
|
'default': PortalLogin_stories,
|
|
17371
17625
|
Default: Default$2,
|
|
@@ -17390,7 +17644,7 @@ const defaultProps$3 = {
|
|
|
17390
17644
|
refs: {
|
|
17391
17645
|
formRef: {},
|
|
17392
17646
|
},
|
|
17393
|
-
content: { pageLabel: "Register" },
|
|
17647
|
+
content: { pageLabel: "Register", confirmPasswordLabel: "Confirm Password" },
|
|
17394
17648
|
};
|
|
17395
17649
|
const errorProps$1 = {
|
|
17396
17650
|
states: {
|
|
@@ -17406,7 +17660,10 @@ const errorProps$1 = {
|
|
|
17406
17660
|
refs: {
|
|
17407
17661
|
formRef: {},
|
|
17408
17662
|
},
|
|
17409
|
-
content: {
|
|
17663
|
+
content: {
|
|
17664
|
+
pageLabel: "Register",
|
|
17665
|
+
confirmPasswordLabel: "Confirm Password",
|
|
17666
|
+
},
|
|
17410
17667
|
};
|
|
17411
17668
|
const loadingProps$1 = {
|
|
17412
17669
|
states: {
|
|
@@ -17422,7 +17679,7 @@ const loadingProps$1 = {
|
|
|
17422
17679
|
refs: {
|
|
17423
17680
|
formRef: {},
|
|
17424
17681
|
},
|
|
17425
|
-
content: { pageLabel: "Register" },
|
|
17682
|
+
content: { pageLabel: "Register", confirmPasswordLabel: "Confirm Password" },
|
|
17426
17683
|
};
|
|
17427
17684
|
const slottedProps = {
|
|
17428
17685
|
states: {
|
|
@@ -17440,6 +17697,7 @@ const slottedProps = {
|
|
|
17440
17697
|
},
|
|
17441
17698
|
content: {
|
|
17442
17699
|
pageLabel: "Register",
|
|
17700
|
+
confirmPasswordLabel: "Confirm Password",
|
|
17443
17701
|
formData: (h("div", null,
|
|
17444
17702
|
h("sl-input", { style: { marginBottom: "var(--sl-spacing-x-large)" }, exportparts: "label: input-label", label: "Slotted Input", required: true }),
|
|
17445
17703
|
h("sl-input", { exportparts: "label: input-label", label: "Slotted Input 2", required: true }))),
|
|
@@ -17568,6 +17826,8 @@ const defaultProps$5 = {
|
|
|
17568
17826
|
content: {
|
|
17569
17827
|
email: "email@example.com",
|
|
17570
17828
|
verifyMessage: "A verification email was sent to {email}. Please verify your email to continue to the portal.",
|
|
17829
|
+
emailVerificationHeader: "Verify your email",
|
|
17830
|
+
resendEmailButtonText: "Re-send Email",
|
|
17571
17831
|
},
|
|
17572
17832
|
};
|
|
17573
17833
|
const errorProps$3 = {
|
|
@@ -17582,6 +17842,8 @@ const errorProps$3 = {
|
|
|
17582
17842
|
content: {
|
|
17583
17843
|
email: "email@example.com",
|
|
17584
17844
|
verifyMessage: "A verification email was sent to {email}. Please verify your email to continue to the portal.",
|
|
17845
|
+
emailVerificationHeader: "Verify your email",
|
|
17846
|
+
resendEmailButtonText: "Re-send Email",
|
|
17585
17847
|
},
|
|
17586
17848
|
};
|
|
17587
17849
|
const loadingProps$3 = {
|
|
@@ -17596,6 +17858,8 @@ const loadingProps$3 = {
|
|
|
17596
17858
|
content: {
|
|
17597
17859
|
email: "email@example.com",
|
|
17598
17860
|
verifyMessage: "A verification email was sent to {email}. Please verify your email to continue to the portal.",
|
|
17861
|
+
emailVerificationHeader: "Verify your email",
|
|
17862
|
+
resendEmailButtonText: "Re-send Email",
|
|
17599
17863
|
},
|
|
17600
17864
|
};
|
|
17601
17865
|
const successProps$1 = {
|
|
@@ -17610,6 +17874,8 @@ const successProps$1 = {
|
|
|
17610
17874
|
content: {
|
|
17611
17875
|
email: "email@example.com",
|
|
17612
17876
|
verifyMessage: "A verification email was sent to {email}. Please verify your email to continue to the portal.",
|
|
17877
|
+
emailVerificationHeader: "Verify your email",
|
|
17878
|
+
resendEmailButtonText: "Re-send Email",
|
|
17613
17879
|
},
|
|
17614
17880
|
};
|
|
17615
17881
|
const Default$5 = () => h(PortalEmailVerificationView, Object.assign({}, defaultProps$5));
|
|
@@ -17642,6 +17908,13 @@ const defaultProps$6 = {
|
|
|
17642
17908
|
confirmPassword: true,
|
|
17643
17909
|
oobCodeValidating: false,
|
|
17644
17910
|
oobCodeValid: true,
|
|
17911
|
+
content: {
|
|
17912
|
+
passwordResetHeader: "Password reset",
|
|
17913
|
+
resetPasswordHeader: "Reset your password",
|
|
17914
|
+
continueButtonText: "Continue",
|
|
17915
|
+
resetPasswordButtonText: "Reset Password",
|
|
17916
|
+
confirmPasswordFieldLabel: "Confirm Password",
|
|
17917
|
+
},
|
|
17645
17918
|
},
|
|
17646
17919
|
callbacks: {
|
|
17647
17920
|
submit: async (e) => await e,
|
|
@@ -17657,6 +17930,13 @@ const defaultPropsNoConfirm = {
|
|
|
17657
17930
|
confirmPassword: false,
|
|
17658
17931
|
oobCodeValidating: false,
|
|
17659
17932
|
oobCodeValid: true,
|
|
17933
|
+
content: {
|
|
17934
|
+
passwordResetHeader: "Password reset",
|
|
17935
|
+
resetPasswordHeader: "Reset your password",
|
|
17936
|
+
continueButtonText: "Continue",
|
|
17937
|
+
resetPasswordButtonText: "Reset Password",
|
|
17938
|
+
confirmPasswordFieldLabel: "Confirm Password",
|
|
17939
|
+
},
|
|
17660
17940
|
},
|
|
17661
17941
|
callbacks: {
|
|
17662
17942
|
submit: async (e) => await e,
|
|
@@ -17672,6 +17952,13 @@ const errorProps$4 = {
|
|
|
17672
17952
|
confirmPassword: true,
|
|
17673
17953
|
oobCodeValidating: false,
|
|
17674
17954
|
oobCodeValid: true,
|
|
17955
|
+
content: {
|
|
17956
|
+
passwordResetHeader: "Password reset",
|
|
17957
|
+
resetPasswordHeader: "Reset your password",
|
|
17958
|
+
continueButtonText: "Continue",
|
|
17959
|
+
resetPasswordButtonText: "Reset Password",
|
|
17960
|
+
confirmPasswordFieldLabel: "Confirm Password",
|
|
17961
|
+
},
|
|
17675
17962
|
},
|
|
17676
17963
|
callbacks: {
|
|
17677
17964
|
submit: async (e) => await e,
|
|
@@ -17687,6 +17974,13 @@ const loadingProps$4 = {
|
|
|
17687
17974
|
confirmPassword: true,
|
|
17688
17975
|
oobCodeValidating: false,
|
|
17689
17976
|
oobCodeValid: true,
|
|
17977
|
+
content: {
|
|
17978
|
+
passwordResetHeader: "Password reset",
|
|
17979
|
+
resetPasswordHeader: "Reset your password",
|
|
17980
|
+
continueButtonText: "Continue",
|
|
17981
|
+
resetPasswordButtonText: "Reset Password",
|
|
17982
|
+
confirmPasswordFieldLabel: "Confirm Password",
|
|
17983
|
+
},
|
|
17690
17984
|
},
|
|
17691
17985
|
callbacks: {
|
|
17692
17986
|
submit: async (e) => await e,
|
|
@@ -17702,6 +17996,13 @@ const successProps$2 = {
|
|
|
17702
17996
|
confirmPassword: true,
|
|
17703
17997
|
oobCodeValidating: false,
|
|
17704
17998
|
oobCodeValid: true,
|
|
17999
|
+
content: {
|
|
18000
|
+
passwordResetHeader: "Password reset",
|
|
18001
|
+
resetPasswordHeader: "Reset your password",
|
|
18002
|
+
continueButtonText: "Continue",
|
|
18003
|
+
resetPasswordButtonText: "Reset Password",
|
|
18004
|
+
confirmPasswordFieldLabel: "Confirm Password",
|
|
18005
|
+
},
|
|
17705
18006
|
},
|
|
17706
18007
|
callbacks: {
|
|
17707
18008
|
submit: async (e) => await e,
|
|
@@ -17717,6 +18018,13 @@ const validatingCodeProps = {
|
|
|
17717
18018
|
confirmPassword: true,
|
|
17718
18019
|
oobCodeValidating: false,
|
|
17719
18020
|
oobCodeValid: false,
|
|
18021
|
+
content: {
|
|
18022
|
+
passwordResetHeader: "Password reset",
|
|
18023
|
+
resetPasswordHeader: "Reset your password",
|
|
18024
|
+
continueButtonText: "Continue",
|
|
18025
|
+
resetPasswordButtonText: "Reset Password",
|
|
18026
|
+
confirmPasswordFieldLabel: "Confirm Password",
|
|
18027
|
+
},
|
|
17720
18028
|
},
|
|
17721
18029
|
callbacks: {
|
|
17722
18030
|
submit: async (e) => await e,
|
|
@@ -17923,14 +18231,44 @@ const ChangePassword_stories = {
|
|
|
17923
18231
|
},
|
|
17924
18232
|
};
|
|
17925
18233
|
const defaultProps$7 = {
|
|
17926
|
-
states: {
|
|
18234
|
+
states: {
|
|
18235
|
+
open: false,
|
|
18236
|
+
loading: false,
|
|
18237
|
+
success: false,
|
|
18238
|
+
error: "",
|
|
18239
|
+
content: {
|
|
18240
|
+
modalChangePasswordHeader: "Change Password",
|
|
18241
|
+
cancelText: "Cancel",
|
|
18242
|
+
changePasswordButtonText: "Change Password",
|
|
18243
|
+
passwordFieldLabel: "Password",
|
|
18244
|
+
confirmPasswordFieldLabel: "Confirm new password",
|
|
18245
|
+
successMessage: "Your password has been updated.",
|
|
18246
|
+
portalChangePasswordHeader: "Password",
|
|
18247
|
+
portalChangePasswordButtonText: "Change your password...",
|
|
18248
|
+
},
|
|
18249
|
+
},
|
|
17927
18250
|
callbacks: {
|
|
17928
18251
|
setOpen: (o) => console.log(o),
|
|
17929
18252
|
submit: (e) => console.log("Submit", e),
|
|
17930
18253
|
},
|
|
17931
18254
|
};
|
|
17932
18255
|
const openProps = {
|
|
17933
|
-
states: {
|
|
18256
|
+
states: {
|
|
18257
|
+
open: true,
|
|
18258
|
+
loading: false,
|
|
18259
|
+
success: false,
|
|
18260
|
+
error: "",
|
|
18261
|
+
content: {
|
|
18262
|
+
modalChangePasswordHeader: "Change Password",
|
|
18263
|
+
cancelText: "Cancel",
|
|
18264
|
+
changePasswordButtonText: "Change Password",
|
|
18265
|
+
passwordFieldLabel: "Password",
|
|
18266
|
+
confirmPasswordFieldLabel: "Confirm new password",
|
|
18267
|
+
successMessage: "Your password has been updated.",
|
|
18268
|
+
portalChangePasswordHeader: "Password",
|
|
18269
|
+
portalChangePasswordButtonText: "Change your password...",
|
|
18270
|
+
},
|
|
18271
|
+
},
|
|
17934
18272
|
callbacks: {
|
|
17935
18273
|
setOpen: (o) => console.log(o),
|
|
17936
18274
|
submit: (e) => console.log("Submit", e),
|
|
@@ -17942,6 +18280,16 @@ const errorProps$6 = {
|
|
|
17942
18280
|
loading: false,
|
|
17943
18281
|
success: false,
|
|
17944
18282
|
error: "Network error. Please try again.",
|
|
18283
|
+
content: {
|
|
18284
|
+
modalChangePasswordHeader: "Change Password",
|
|
18285
|
+
cancelText: "Cancel",
|
|
18286
|
+
changePasswordButtonText: "Change Password",
|
|
18287
|
+
passwordFieldLabel: "Password",
|
|
18288
|
+
confirmPasswordFieldLabel: "Confirm new password",
|
|
18289
|
+
successMessage: "Your password has been updated.",
|
|
18290
|
+
portalChangePasswordHeader: "Password",
|
|
18291
|
+
portalChangePasswordButtonText: "Change your password...",
|
|
18292
|
+
},
|
|
17945
18293
|
},
|
|
17946
18294
|
callbacks: {
|
|
17947
18295
|
setOpen: (o) => console.log(o),
|
|
@@ -17954,6 +18302,16 @@ const passwordErrorProps = {
|
|
|
17954
18302
|
loading: false,
|
|
17955
18303
|
success: false,
|
|
17956
18304
|
error: "Passwords do not match.",
|
|
18305
|
+
content: {
|
|
18306
|
+
modalChangePasswordHeader: "Change Password",
|
|
18307
|
+
cancelText: "Cancel",
|
|
18308
|
+
changePasswordButtonText: "Change Password",
|
|
18309
|
+
passwordFieldLabel: "Password",
|
|
18310
|
+
confirmPasswordFieldLabel: "Confirm new password",
|
|
18311
|
+
successMessage: "Your password has been updated.",
|
|
18312
|
+
portalChangePasswordHeader: "Password",
|
|
18313
|
+
portalChangePasswordButtonText: "Change your password...",
|
|
18314
|
+
},
|
|
17957
18315
|
},
|
|
17958
18316
|
callbacks: {
|
|
17959
18317
|
setOpen: (o) => console.log(o),
|
|
@@ -17966,6 +18324,16 @@ const loadingProps$5 = {
|
|
|
17966
18324
|
loading: true,
|
|
17967
18325
|
success: false,
|
|
17968
18326
|
error: "",
|
|
18327
|
+
content: {
|
|
18328
|
+
modalChangePasswordHeader: "Change Password",
|
|
18329
|
+
cancelText: "Cancel",
|
|
18330
|
+
changePasswordButtonText: "Change Password",
|
|
18331
|
+
passwordFieldLabel: "Password",
|
|
18332
|
+
confirmPasswordFieldLabel: "Confirm new password",
|
|
18333
|
+
successMessage: "Your password has been updated.",
|
|
18334
|
+
portalChangePasswordHeader: "Password",
|
|
18335
|
+
portalChangePasswordButtonText: "Change your password...",
|
|
18336
|
+
},
|
|
17969
18337
|
},
|
|
17970
18338
|
callbacks: {
|
|
17971
18339
|
setOpen: (o) => console.log(o),
|
|
@@ -17978,6 +18346,16 @@ const successProps$3 = {
|
|
|
17978
18346
|
loading: false,
|
|
17979
18347
|
success: true,
|
|
17980
18348
|
error: "",
|
|
18349
|
+
content: {
|
|
18350
|
+
modalChangePasswordHeader: "Change Password",
|
|
18351
|
+
cancelText: "Cancel",
|
|
18352
|
+
changePasswordButtonText: "Change Password",
|
|
18353
|
+
passwordFieldLabel: "Password",
|
|
18354
|
+
confirmPasswordFieldLabel: "Confirm new password",
|
|
18355
|
+
successMessage: "Your password has been updated.",
|
|
18356
|
+
portalChangePasswordHeader: "Password",
|
|
18357
|
+
portalChangePasswordButtonText: "Change your password...",
|
|
18358
|
+
},
|
|
17981
18359
|
},
|
|
17982
18360
|
callbacks: {
|
|
17983
18361
|
setOpen: (o) => console.log(o),
|
|
@@ -18028,6 +18406,9 @@ const defaultProps$8 = {
|
|
|
18028
18406
|
lastnametext: "Last Name",
|
|
18029
18407
|
emailtext: "Email",
|
|
18030
18408
|
countrytext: "Country",
|
|
18409
|
+
editProfileHeader: "Edit your profile",
|
|
18410
|
+
editProfileSubHeader: "Personal Information",
|
|
18411
|
+
submitChangeButtonText: "Submit Changes",
|
|
18031
18412
|
},
|
|
18032
18413
|
formState: {
|
|
18033
18414
|
country: "Canada",
|
|
@@ -18061,6 +18442,9 @@ const noCountry = {
|
|
|
18061
18442
|
lastnametext: "Last Name",
|
|
18062
18443
|
emailtext: "Email",
|
|
18063
18444
|
countrytext: "Country",
|
|
18445
|
+
editProfileHeader: "Edit your profile",
|
|
18446
|
+
editProfileSubHeader: "Personal Information",
|
|
18447
|
+
submitChangeButtonText: "Submit Changes",
|
|
18064
18448
|
},
|
|
18065
18449
|
formState: {
|
|
18066
18450
|
country: "Canada",
|
|
@@ -18094,6 +18478,9 @@ const loadingProps$6 = {
|
|
|
18094
18478
|
lastnametext: "Last Name",
|
|
18095
18479
|
emailtext: "Email",
|
|
18096
18480
|
countrytext: "Country",
|
|
18481
|
+
editProfileHeader: "Edit your profile",
|
|
18482
|
+
editProfileSubHeader: "Personal Information",
|
|
18483
|
+
submitChangeButtonText: "Submit Changes",
|
|
18097
18484
|
},
|
|
18098
18485
|
formState: {
|
|
18099
18486
|
country: "Canada",
|
|
@@ -18127,6 +18514,9 @@ const disabledProps = {
|
|
|
18127
18514
|
lastnametext: "Last Name",
|
|
18128
18515
|
emailtext: "Email",
|
|
18129
18516
|
countrytext: "Country",
|
|
18517
|
+
editProfileHeader: "Edit your profile",
|
|
18518
|
+
editProfileSubHeader: "Personal Information",
|
|
18519
|
+
submitChangeButtonText: "Submit Changes",
|
|
18130
18520
|
},
|
|
18131
18521
|
formState: {
|
|
18132
18522
|
country: "Canada",
|
|
@@ -18160,6 +18550,9 @@ const errorProps$7 = {
|
|
|
18160
18550
|
lastnametext: "Last Name",
|
|
18161
18551
|
emailtext: "Email",
|
|
18162
18552
|
countrytext: "Country",
|
|
18553
|
+
editProfileHeader: "Edit your profile",
|
|
18554
|
+
editProfileSubHeader: "Personal Information",
|
|
18555
|
+
submitChangeButtonText: "Submit Changes",
|
|
18163
18556
|
},
|
|
18164
18557
|
formState: {
|
|
18165
18558
|
country: "Canada",
|
|
@@ -18193,6 +18586,9 @@ const successProps$4 = {
|
|
|
18193
18586
|
lastnametext: "Last Name",
|
|
18194
18587
|
emailtext: "Email",
|
|
18195
18588
|
countrytext: "Country",
|
|
18589
|
+
editProfileHeader: "Edit your profile",
|
|
18590
|
+
editProfileSubHeader: "Personal Information",
|
|
18591
|
+
submitChangeButtonText: "Submit Changes",
|
|
18196
18592
|
},
|
|
18197
18593
|
formState: {
|
|
18198
18594
|
country: "Canada",
|
|
@@ -19086,6 +19482,3361 @@ const PasswordField = /*#__PURE__*/Object.freeze({
|
|
|
19086
19482
|
ValidationError: ValidationError
|
|
19087
19483
|
});
|
|
19088
19484
|
|
|
19485
|
+
const portalTemplate = "<sqm-portal-frame>\r\n <a slot=\"header\" href=\"/\">\r\n <sqm-text style=\"height: 60px\">\r\n <img\r\n style=\"height: 60px\"\r\n src=\"https://docs.saasquatch.com/assets/images/saasquatch-logo-centered-no-slogan-RGB-300dpi.png\"\r\n />\r\n </sqm-text>\r\n </a>\r\n <sqb-program-section program-id=\"referral-program\">\r\n <sqm-router>\r\n <template path=\"/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)\">\r\n <sqm-graphql-client-provider\r\n domain=\"https://managed-identity.saasquatch.com\"\r\n >\r\n <sqm-hero\r\n background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\"\r\n >\r\n <sqm-router>\r\n <template path=\"/register\">\r\n <sqm-portal-register>\r\n <sl-input\r\n slot=\"formData\"\r\n exportparts=\"label: input-label\"\r\n type=\"text\"\r\n style=\"margin-bottom: 5px\"\r\n name=\"/firstName\"\r\n label=\"First Name\"\r\n required\r\n ></sl-input>\r\n <sl-input\r\n slot=\"formData\"\r\n exportparts=\"label: input-label\"\r\n type=\"text\"\r\n style=\"margin-bottom: 5px\"\r\n name=\"/lastName\"\r\n label=\"Last Name\"\r\n required\r\n ></sl-input>\r\n </sqm-portal-register>\r\n </template>\r\n\r\n <template path=\"/emailVerification\">\r\n <sqm-portal-protected-route\r\n redirect-to=\"/login\"\r\n ></sqm-portal-protected-route>\r\n <sqm-portal-email-verification></sqm-portal-email-verification>\r\n </template>\r\n\r\n <template path=\"/login\">\r\n <sqm-portal-login></sqm-portal-login>\r\n </template>\r\n\r\n <template path=\"/verifyEmail\">\r\n <sqm-portal-verify-email></sqm-portal-verify-email>\r\n </template>\r\n\r\n <template path=\"/forgotPassword\">\r\n <sqm-portal-forgot-password\r\n email-label=\"Business Email\"\r\n ></sqm-portal-forgot-password>\r\n </template>\r\n\r\n <template path=\"/resetPassword\">\r\n <sqm-portal-reset-password\r\n confirm-password=\"true\"\r\n ></sqm-portal-reset-password>\r\n </template>\r\n <template path=\"/logout\">\r\n <sqm-portal-logout next-page=\"/login\"></sqm-portal-logout>\r\n </template>\r\n </sqm-router>\r\n </sqm-hero>\r\n </sqm-graphql-client-provider>\r\n </template>\r\n </sqm-router>\r\n <sqm-router>\r\n <template path=\"/:path(\\bactivity\\b|\\beditProfile\\b)?\">\r\n <sqm-divided-layout direction=\"row\">\r\n <sqm-navigation-sidebar>\r\n <sqm-navigation-sidebar-item\r\n path=\"/\"\r\n icon=\"house\"\r\n label=\"Dashboard\"\r\n ></sqm-navigation-sidebar-item>\r\n <sqm-navigation-sidebar-item\r\n path=\"/activity\"\r\n icon=\"bar-chart\"\r\n label=\"Activity\"\r\n ></sqm-navigation-sidebar-item>\r\n <sqm-navigation-sidebar-item\r\n path=\"/editProfile\"\r\n icon=\"person\"\r\n label=\"Edit Profile\"\r\n ></sqm-navigation-sidebar-item>\r\n <sqm-navigation-sidebar-item\r\n path=\"/logout\"\r\n icon=\"box-arrow-right\"\r\n label=\"Logout\"\r\n ></sqm-navigation-sidebar-item>\r\n </sqm-navigation-sidebar>\r\n <sqm-divided-layout direction=\"column\">\r\n <sqm-router>\r\n <template path=\"/\">\r\n <sqm-portal-protected-route\r\n require-email-verification=\"true\"\r\n redirect-to=\"/login\"\r\n redirect-to-unverified=\"/emailVerification\"\r\n ></sqm-portal-protected-route>\r\n <sqb-widget\r\n widget-type=\"p/referral-program/w/referrerWidget\"\r\n ></sqb-widget>\r\n </template>\r\n <template path=\"/editProfile\">\r\n <sqm-portal-protected-route\r\n require-email-verification=\"true\"\r\n redirect-to=\"/login\"\r\n redirect-to-unverified=\"/emailVerification\"\r\n ></sqm-portal-protected-route>\r\n <sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\r\n ><sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-graphql-client-provider\r\n domain=\"https://managed-identity.saasquatch.com\"\r\n >\r\n <sqm-portal-change-password></sqm-portal-change-password>\r\n </sqm-graphql-client-provider>\r\n </sqm-portal-container>\r\n </template>\r\n\r\n <template path=\"/activity\">\r\n <sqm-portal-protected-route\r\n require-email-verification=\"true\"\r\n redirect-to=\"/login\"\r\n redirect-to-unverified=\"/emailVerification\"\r\n ></sqm-portal-protected-route>\r\n <sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-text> <h2>Activity</h2></sqm-text>\r\n <sqm-stat-container space=\"xxxx-large\"\r\n ><sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/referralsCount\"\r\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\r\n >\r\n <sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\r\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\r\n >\r\n <sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\r\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\r\n >\r\n </sqm-stat-container>\r\n <sqm-referral-table>\r\n <div slot=\"loading\" style=\"display: contents\">\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n </div>\r\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\r\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\r\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\r\n <sqm-referral-table-date-column\r\n column-title=\"Referred\"\r\n date-shown=\"dateReferralStarted\"\r\n ></sqm-referral-table-date-column> </sqm-referral-table\r\n ></sqm-portal-container>\r\n </template>\r\n </sqm-router>\r\n </sqm-divided-layout>\r\n </sqm-divided-layout>\r\n </template>\r\n </sqm-router>\r\n </sqb-program-section>\r\n <sqm-portal-footer\r\n slot=\"footer\"\r\n support-email=\"support@example.com\"\r\n terms-link=\"https://example.com\"\r\n show-powered-by=\"true\"\r\n ></sqm-portal-footer>\r\n</sqm-portal-frame>\r\n";
|
|
19486
|
+
|
|
19487
|
+
const portalTemplateWithDashboard = "<sqm-portal-frame>\r\n <a slot=\"header\" href=\"/\">\r\n <sqm-text style=\"height: 60px\">\r\n <img\r\n style=\"height: 60px\"\r\n src=\"https://docs.saasquatch.com/assets/images/saasquatch-logo-centered-no-slogan-RGB-300dpi.png\"\r\n />\r\n </sqm-text>\r\n </a>\r\n <sqb-program-section program-id=\"referral-program\">\r\n <sqm-router>\r\n <template\r\n path=\"/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)\"\r\n >\r\n <sqm-graphql-client-provider\r\n domain=\"https://managed-identity.saasquatch.com\"\r\n >\r\n <sqm-hero\r\n background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\"\r\n >\r\n <sqm-router>\r\n <template path=\"/register\">\r\n <sqm-portal-register>\r\n <sl-input\r\n slot=\"formData\"\r\n exportparts=\"label: input-label\"\r\n type=\"text\"\r\n style=\"margin-bottom: 5px\"\r\n name=\"/firstName\"\r\n label=\"First Name\"\r\n required\r\n ></sl-input>\r\n <sl-input\r\n slot=\"formData\"\r\n exportparts=\"label: input-label\"\r\n type=\"text\"\r\n style=\"margin-bottom: 5px\"\r\n name=\"/lastName\"\r\n label=\"Last Name\"\r\n required\r\n ></sl-input>\r\n </sqm-portal-register>\r\n </template>\r\n\r\n <template path=\"/emailVerification\">\r\n <sqm-portal-protected-route\r\n redirect-to=\"/login\"\r\n ></sqm-portal-protected-route>\r\n <sqm-portal-email-verification></sqm-portal-email-verification>\r\n </template>\r\n\r\n <template path=\"/login\">\r\n <sqm-portal-login></sqm-portal-login>\r\n </template>\r\n\r\n <template path=\"/verifyEmail\">\r\n <sqm-portal-verify-email></sqm-portal-verify-email>\r\n </template>\r\n\r\n <template path=\"/forgotPassword\">\r\n <sqm-portal-forgot-password\r\n email-label=\"Business Email\"\r\n ></sqm-portal-forgot-password>\r\n </template>\r\n\r\n <template path=\"/resetPassword\">\r\n <sqm-portal-reset-password\r\n confirm-password=\"true\"\r\n ></sqm-portal-reset-password>\r\n </template>\r\n <template path=\"/logout\">\r\n <sqm-portal-logout next-page=\"/login\"></sqm-portal-logout>\r\n </template>\r\n </sqm-router>\r\n </sqm-hero>\r\n </sqm-graphql-client-provider>\r\n </template>\r\n </sqm-router>\r\n <sqm-router>\r\n <template path=\"/:path(\\bactivity\\b|\\beditProfile\\b)?\">\r\n <sqm-divided-layout direction=\"row\">\r\n <sqm-navigation-sidebar>\r\n <sqm-navigation-sidebar-item\r\n path=\"/\"\r\n icon=\"house\"\r\n label=\"Dashboard\"\r\n ></sqm-navigation-sidebar-item>\r\n <sqm-navigation-sidebar-item\r\n path=\"/activity\"\r\n icon=\"bar-chart\"\r\n label=\"Activity\"\r\n ></sqm-navigation-sidebar-item>\r\n <sqm-navigation-sidebar-item\r\n path=\"/editProfile\"\r\n icon=\"person\"\r\n label=\"Edit Profile\"\r\n ></sqm-navigation-sidebar-item>\r\n <sqm-navigation-sidebar-item\r\n path=\"/logout\"\r\n icon=\"box-arrow-right\"\r\n label=\"Logout\"\r\n ></sqm-navigation-sidebar-item>\r\n </sqm-navigation-sidebar>\r\n <sqm-divided-layout direction=\"column\">\r\n <sqm-router>\r\n <template path=\"/\">\r\n <sqm-portal-protected-route\r\n require-email-verification=\"true\"\r\n redirect-to=\"/login\"\r\n redirect-to-unverified=\"/emailVerification\"\r\n ></sqm-portal-protected-route>\r\n <sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n ><sqm-titled-section label-margin=\"xx-small\"\r\n ><sqm-text slot=\"label\"> <p>Welcome back,</p> </sqm-text\r\n ><sqm-text slot=\"content\">\r\n <h1>\r\n <sqm-user-name\r\n fallback=\"Anonymous User\"\r\n ></sqm-user-name>\r\n </h1> </sqm-text\r\n ></sqm-titled-section>\r\n <sqm-stat-container space=\"xxxx-large\"\r\n ><sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/referralsCount\"\r\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\r\n ><sqm-big-stat\r\n style=\"white-space: nowrap\"\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\r\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\r\n >\r\n </sqm-stat-container> </sqm-portal-container\r\n ><sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-titled-section padding=\"none\" label-margin=\"x-large\"\r\n ><sqm-text slot=\"label\">\r\n <h2>Partner and Profit</h2> </sqm-text\r\n ><sqm-text slot=\"content\">\r\n <p>\r\n Get rewarded for referring potential customers to\r\n SaaSquatch. Earn commission for each successful lead you\r\n send our way\r\n </p>\r\n </sqm-text></sqm-titled-section\r\n >\r\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\r\n ><sqm-text slot=\"label\">\r\n <h3>Share your referral link</h3> </sqm-text\r\n ><sqm-share-link slot=\"content\"></sqm-share-link\r\n ></sqm-titled-section>\r\n <sqm-titled-section label-margin=\"small\" padding=\"none\">\r\n <sqm-text slot=\"label\">\r\n <h3>Share your referral code</h3> </sqm-text\r\n ><sqm-share-code slot=\"content\"></sqm-share-code>\r\n </sqm-titled-section>\r\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\r\n ><sqm-text slot=\"label\">\r\n <h3>Share via social media</h3> </sqm-text\r\n ><sqm-portal-container\r\n slot=\"content\"\r\n direction=\"row\"\r\n padding=\"none\"\r\n gap=\"xxx-large\"\r\n min-width=\"160px\"\r\n ><sqm-share-button\r\n icon=\"envelope\"\r\n medium=\"email\"\r\n size=\"medium\"\r\n pill=\"true\"\r\n >Email a friend</sqm-share-button\r\n ><sqm-share-button\r\n medium=\"twitter\"\r\n size=\"medium\"\r\n pill=\"true\"\r\n >Tweet about us</sqm-share-button\r\n ><sqm-share-button\r\n medium=\"facebook\"\r\n size=\"medium\"\r\n pill=\"true\"\r\n >Share on Facebook</sqm-share-button\r\n ></sqm-portal-container\r\n ></sqm-titled-section\r\n ></sqm-portal-container\r\n >\r\n </template>\r\n <template path=\"/editProfile\">\r\n <sqm-portal-protected-route\r\n require-email-verification=\"true\"\r\n redirect-to=\"/login\"\r\n redirect-to-unverified=\"/emailVerification\"\r\n ></sqm-portal-protected-route>\r\n <sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\r\n ><sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-graphql-client-provider\r\n domain=\"https://managed-identity.saasquatch.com\"\r\n >\r\n <sqm-portal-change-password></sqm-portal-change-password>\r\n </sqm-graphql-client-provider>\r\n </sqm-portal-container>\r\n </template>\r\n\r\n <template path=\"/activity\">\r\n <sqm-portal-protected-route\r\n require-email-verification=\"true\"\r\n redirect-to=\"/login\"\r\n redirect-to-unverified=\"/emailVerification\"\r\n ></sqm-portal-protected-route>\r\n <sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-text> <h2>Activity</h2></sqm-text>\r\n <sqm-stat-container space=\"xxxx-large\"\r\n ><sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/referralsCount\"\r\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\r\n >\r\n <sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\r\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\r\n >\r\n <sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\r\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\r\n >\r\n </sqm-stat-container>\r\n <sqm-referral-table>\r\n <div slot=\"loading\" style=\"display: contents\">\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n </div>\r\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\r\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\r\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\r\n <sqm-referral-table-date-column\r\n column-title=\"Referred\"\r\n date-shown=\"dateReferralStarted\"\r\n ></sqm-referral-table-date-column> </sqm-referral-table\r\n ></sqm-portal-container>\r\n </template>\r\n </sqm-router>\r\n </sqm-divided-layout>\r\n </sqm-divided-layout>\r\n </template>\r\n </sqm-router>\r\n </sqb-program-section>\r\n <sqm-portal-footer\r\n slot=\"footer\"\r\n support-email=\"support@example.com\"\r\n terms-link=\"https://example.com\"\r\n show-powered-by=\"true\"\r\n ></sqm-portal-footer>\r\n</sqm-portal-frame>\r\n";
|
|
19488
|
+
|
|
19489
|
+
const multiProgramTemplate = "<sqm-portal-frame>\r\n <a slot=\"header\" href=\"/\">\r\n <sqm-text style=\"height: 60px\">\r\n <img\r\n style=\"height: 60px\"\r\n src=\"https://docs.saasquatch.com/assets/images/saasquatch-logo-centered-no-slogan-RGB-300dpi.png\"\r\n />\r\n </sqm-text>\r\n </a>\r\n <sqb-program-section program-id=\"referral-program-1\">\r\n <sqm-router>\r\n <template\r\n path=\"/:path(\\bregister\\b|\\bemailVerification\\b|\\blogin\\b|\\bverifyEmail\\b|\\bforgotPassword\\b|\\bresetPassword\\b|\\blogout\\b)\"\r\n >\r\n <sqm-graphql-client-provider\r\n domain=\"https://managed-identity.saasquatch.com\"\r\n >\r\n <sqm-hero\r\n background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\"\r\n >\r\n <sqm-router>\r\n <template path=\"/register\">\r\n <sqm-portal-register>\r\n <sl-input\r\n slot=\"formData\"\r\n exportparts=\"label: input-label\"\r\n type=\"text\"\r\n style=\"margin-bottom: 5px\"\r\n name=\"/firstName\"\r\n label=\"First Name\"\r\n required\r\n ></sl-input>\r\n <sl-input\r\n slot=\"formData\"\r\n exportparts=\"label: input-label\"\r\n type=\"text\"\r\n style=\"margin-bottom: 5px\"\r\n name=\"/lastName\"\r\n label=\"Last Name\"\r\n required\r\n ></sl-input>\r\n </sqm-portal-register>\r\n </template>\r\n\r\n <template path=\"/emailVerification\">\r\n <sqm-portal-protected-route\r\n redirect-to=\"/login\"\r\n ></sqm-portal-protected-route>\r\n <sqm-portal-email-verification></sqm-portal-email-verification>\r\n </template>\r\n\r\n <template path=\"/login\">\r\n <sqm-portal-login></sqm-portal-login>\r\n </template>\r\n\r\n <template path=\"/verifyEmail\">\r\n <sqm-portal-verify-email></sqm-portal-verify-email>\r\n </template>\r\n\r\n <template path=\"/forgotPassword\">\r\n <sqm-portal-forgot-password\r\n email-label=\"Business Email\"\r\n ></sqm-portal-forgot-password>\r\n </template>\r\n\r\n <template path=\"/resetPassword\">\r\n <sqm-portal-reset-password\r\n confirm-password=\"true\"\r\n ></sqm-portal-reset-password>\r\n </template>\r\n <template path=\"/logout\">\r\n <sqm-portal-logout next-page=\"/login\"></sqm-portal-logout>\r\n </template>\r\n </sqm-router>\r\n </sqm-hero>\r\n </sqm-graphql-client-provider>\r\n </template>\r\n </sqm-router>\r\n <sqm-router>\r\n <template path=\"/:path(\\bactivity\\b|\\beditProfile\\b)?\">\r\n <sqm-divided-layout direction=\"row\">\r\n <sqm-navigation-sidebar>\r\n <sqm-program-menu>\r\n <sl-menu-item value=\"referral-program-1\"\r\n >Referral Program 1</sl-menu-item\r\n >\r\n <sl-menu-item value=\"referral-program-2\"\r\n >Referral Program 2</sl-menu-item\r\n >\r\n </sqm-program-menu>\r\n <sqm-navigation-sidebar-item\r\n path=\"/\"\r\n icon=\"house\"\r\n label=\"Dashboard\"\r\n ></sqm-navigation-sidebar-item>\r\n <sqm-navigation-sidebar-item\r\n path=\"/activity\"\r\n icon=\"bar-chart\"\r\n label=\"Activity\"\r\n ></sqm-navigation-sidebar-item>\r\n <sqm-navigation-sidebar-item\r\n path=\"/editProfile\"\r\n icon=\"person\"\r\n label=\"Edit Profile\"\r\n ></sqm-navigation-sidebar-item>\r\n <sqm-navigation-sidebar-item\r\n path=\"/logout\"\r\n icon=\"box-arrow-right\"\r\n label=\"Logout\"\r\n ></sqm-navigation-sidebar-item>\r\n </sqm-navigation-sidebar>\r\n <sqm-divided-layout direction=\"column\">\r\n <sqm-router>\r\n <template path=\"/\">\r\n <sqm-portal-protected-route\r\n require-email-verification=\"true\"\r\n redirect-to=\"/login\"\r\n redirect-to-unverified=\"/emailVerification\"\r\n ></sqm-portal-protected-route>\r\n <sqb-program-switch>\r\n <template program-id=\"referral-program-1\">\r\n <sqb-widget\r\n widget-type=\"p/referral-program-1/w/referrerWidget\"\r\n ></sqb-widget>\r\n </template>\r\n <template program-id=\"referral-program-2\">\r\n <sqb-widget\r\n widget-type=\"p/referral-program-2/w/referrerWidget\"\r\n ></sqb-widget>\r\n </template>\r\n </sqb-program-switch>\r\n </template>\r\n <template path=\"/editProfile\">\r\n <sqm-portal-protected-route\r\n require-email-verification=\"true\"\r\n redirect-to=\"/login\"\r\n redirect-to-unverified=\"/emailVerification\"\r\n ></sqm-portal-protected-route>\r\n <sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-portal-profile></sqm-portal-profile></sqm-portal-container\r\n ><sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-graphql-client-provider\r\n domain=\"https://managed-identity.saasquatch.com\"\r\n >\r\n <sqm-portal-change-password></sqm-portal-change-password>\r\n </sqm-graphql-client-provider>\r\n </sqm-portal-container>\r\n </template>\r\n <template path=\"/activity\">\r\n <sqm-portal-protected-route\r\n require-email-verification=\"true\"\r\n redirect-to=\"/login\"\r\n redirect-to-unverified=\"/emailVerification\"\r\n ></sqm-portal-protected-route>\r\n <sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-text> <h2>Activity</h2></sqm-text>\r\n <sqm-stat-container space=\"xxxx-large\"\r\n ><sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/referralsCount\"\r\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\r\n >\r\n <sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\r\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\r\n >\r\n <sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\r\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\r\n >\r\n </sqm-stat-container>\r\n <sqm-referral-table>\r\n <div slot=\"loading\" style=\"display: contents\">\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n </div>\r\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\r\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\r\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\r\n <sqm-referral-table-date-column\r\n column-title=\"Referred\"\r\n date-shown=\"dateReferralStarted\"\r\n ></sqm-referral-table-date-column> </sqm-referral-table\r\n ></sqm-portal-container>\r\n </template>\r\n </sqm-router>\r\n </sqm-divided-layout>\r\n </sqm-divided-layout>\r\n </template>\r\n </sqm-router>\r\n </sqb-program-section>\r\n <sqm-portal-footer\r\n slot=\"footer\"\r\n support-email=\"support@example.com\"\r\n terms-link=\"https://example.com\"\r\n show-powered-by=\"true\"\r\n ></sqm-portal-footer>\r\n</sqm-portal-frame>\r\n";
|
|
19490
|
+
|
|
19491
|
+
const multiProgramTemplateWithDashboard = "<sqm-portal-frame>\r\n <a slot=\"header\" href=\"/\">\r\n <sqm-text style=\"height: 60px\">\r\n <img\r\n style=\"height: 60px\"\r\n src=\"https://docs.saasquatch.com/assets/images/saasquatch-logo-centered-no-slogan-RGB-300dpi.png\"\r\n />\r\n </sqm-text>\r\n </a>\r\n <sqb-program-section program-id=\"referral-program-1\">\r\n <sqm-graphql-client-provider\r\n domain=\"https://managed-identity.saasquatch.com\"\r\n >\r\n <sqm-hero\r\n background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\"\r\n >\r\n <sqm-router>\r\n <template path=\"/register\">\r\n <sqm-portal-register>\r\n <sl-input\r\n slot=\"formData\"\r\n exportparts=\"label: input-label\"\r\n type=\"text\"\r\n style=\"margin-bottom: 5px\"\r\n name=\"/firstName\"\r\n label=\"First Name\"\r\n required\r\n ></sl-input>\r\n <sl-input\r\n slot=\"formData\"\r\n exportparts=\"label: input-label\"\r\n type=\"text\"\r\n style=\"margin-bottom: 5px\"\r\n name=\"/lastName\"\r\n label=\"Last Name\"\r\n required\r\n ></sl-input>\r\n </sqm-portal-register>\r\n </template>\r\n\r\n <template path=\"/emailVerification\">\r\n <sqm-portal-protected-route\r\n redirect-to=\"/login\"\r\n ></sqm-portal-protected-route>\r\n <sqm-portal-email-verification></sqm-portal-email-verification>\r\n </template>\r\n\r\n <template path=\"/login\">\r\n <sqm-portal-login></sqm-portal-login>\r\n </template>\r\n\r\n <template path=\"/verifyEmail\">\r\n <sqm-portal-verify-email></sqm-portal-verify-email>\r\n </template>\r\n\r\n <template path=\"/forgotPassword\">\r\n <sqm-portal-forgot-password\r\n email-label=\"Business Email\"\r\n ></sqm-portal-forgot-password>\r\n </template>\r\n\r\n <template path=\"/resetPassword\">\r\n <sqm-portal-reset-password\r\n confirm-password=\"true\"\r\n ></sqm-portal-reset-password>\r\n </template>\r\n <template path=\"/logout\">\r\n <sqm-portal-logout next-page=\"/login\"></sqm-portal-logout>\r\n </template>\r\n </sqm-router>\r\n </sqm-hero>\r\n </sqm-graphql-client-provider>\r\n <sqm-router>\r\n <template path=\"/:path(\\bactivity\\b|\\beditProfile\\b)?\">\r\n <sqm-divided-layout direction=\"row\">\r\n <sqm-navigation-sidebar>\r\n <sqm-program-menu>\r\n <sl-menu-item value=\"referral-program-1\"\r\n >Referral Program 1</sl-menu-item\r\n >\r\n <sl-menu-item value=\"referral-program-2\"\r\n >Referral Program 2</sl-menu-item\r\n >\r\n </sqm-program-menu>\r\n <sqm-navigation-sidebar-item\r\n path=\"/\"\r\n icon=\"house\"\r\n label=\"Dashboard\"\r\n ></sqm-navigation-sidebar-item>\r\n <sqm-navigation-sidebar-item\r\n path=\"/activity\"\r\n icon=\"bar-chart\"\r\n label=\"Activity\"\r\n ></sqm-navigation-sidebar-item>\r\n <sqm-navigation-sidebar-item\r\n path=\"/editProfile\"\r\n icon=\"person\"\r\n label=\"Edit Profile\"\r\n ></sqm-navigation-sidebar-item>\r\n <sqm-navigation-sidebar-item\r\n path=\"/logout\"\r\n icon=\"box-arrow-right\"\r\n label=\"Logout\"\r\n ></sqm-navigation-sidebar-item>\r\n </sqm-navigation-sidebar>\r\n <sqm-divided-layout direction=\"column\">\r\n <sqm-router>\r\n <template path=\"/\">\r\n <sqm-portal-protected-route\r\n require-email-verification=\"true\"\r\n redirect-to=\"/login\"\r\n redirect-to-unverified=\"/emailVerification\"\r\n ></sqm-portal-protected-route\r\n ><sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n ><sqm-titled-section label-margin=\"xx-small\"\r\n ><sqm-text slot=\"label\"> <p>Welcome back,</p> </sqm-text\r\n ><sqm-text slot=\"content\">\r\n <h1>\r\n <sqm-user-name\r\n fallback=\"Anonymous User\"\r\n ></sqm-user-name>\r\n </h1> </sqm-text\r\n ></sqm-titled-section>\r\n <sqm-stat-container space=\"xxxx-large\"\r\n ><sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/referralsCount\"\r\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\r\n >\r\n <sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\r\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\r\n >\r\n <sqm-big-stat\r\n style=\"white-space: nowrap\"\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\r\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\r\n >\r\n </sqm-stat-container> </sqm-portal-container\r\n ><sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-titled-section padding=\"none\" label-margin=\"x-large\"\r\n ><sqm-text slot=\"label\">\r\n <h2>Partner and Profit</h2> </sqm-text\r\n ><sqm-text slot=\"content\">\r\n <p>\r\n Get rewarded for referring potential customers to\r\n SaaSquatch. Earn commission for each successful lead you\r\n send our way\r\n </p>\r\n </sqm-text></sqm-titled-section\r\n >\r\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\r\n ><sqm-text slot=\"label\">\r\n <h3>Share your referral link</h3> </sqm-text\r\n ><sqm-share-link slot=\"content\"></sqm-share-link\r\n ></sqm-titled-section>\r\n <sqm-titled-section label-margin=\"small\" padding=\"none\">\r\n <sqm-text slot=\"label\">\r\n <h3>Share your referral code</h3> </sqm-text\r\n ><sqm-share-code slot=\"content\"></sqm-share-code>\r\n </sqm-titled-section>\r\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\r\n ><sqm-text slot=\"label\">\r\n <h3>Share via social media</h3> </sqm-text\r\n ><sqm-portal-container\r\n slot=\"content\"\r\n direction=\"row\"\r\n padding=\"none\"\r\n gap=\"xxx-large\"\r\n min-width=\"160px\"\r\n ><sqm-share-button\r\n icon=\"envelope\"\r\n medium=\"email\"\r\n size=\"medium\"\r\n pill=\"true\"\r\n >Email a friend</sqm-share-button\r\n ><sqm-share-button\r\n medium=\"twitter\"\r\n size=\"medium\"\r\n pill=\"true\"\r\n >Tweet about us</sqm-share-button\r\n ><sqm-share-button\r\n medium=\"facebook\"\r\n size=\"medium\"\r\n pill=\"true\"\r\n >Share on Facebook</sqm-share-button\r\n ></sqm-portal-container\r\n ></sqm-titled-section\r\n ></sqm-portal-container\r\n >\r\n </template>\r\n <template path=\"/editProfile\">\r\n <sqm-portal-protected-route\r\n require-email-verification=\"true\"\r\n redirect-to=\"/login\"\r\n redirect-to-unverified=\"/emailVerification\"\r\n ></sqm-portal-protected-route>\r\n <sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\r\n ><sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-graphql-client-provider\r\n domain=\"https://managed-identity.saasquatch.com\"\r\n >\r\n <sqm-portal-change-password></sqm-portal-change-password>\r\n </sqm-graphql-client-provider>\r\n </sqm-portal-container>\r\n </template>\r\n <template path=\"/activity\">\r\n <sqm-portal-protected-route\r\n require-email-verification=\"true\"\r\n redirect-to=\"/login\"\r\n redirect-to-unverified=\"/emailVerification\"\r\n ></sqm-portal-protected-route>\r\n <sqm-portal-container\r\n direction=\"column\"\r\n padding=\"xxx-large\"\r\n gap=\"xxx-large\"\r\n >\r\n <sqm-text> <h2>Activity</h2></sqm-text>\r\n <sqm-stat-container space=\"xxxx-large\"\r\n ><sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/referralsCount\"\r\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\r\n >\r\n <sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/rewardsCountFiltered/AVAILABLE\"\r\n ><sqm-text><p>Rewards Earned</p></sqm-text></sqm-big-stat\r\n >\r\n <sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\r\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\r\n >\r\n </sqm-stat-container>\r\n <sqm-referral-table>\r\n <div slot=\"loading\" style=\"display: contents\">\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"\r\n ><sl-skeleton></sl-skeleton\r\n ></sqm-table-cell>\r\n </sqm-table-row>\r\n </div>\r\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\r\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\r\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\r\n <sqm-referral-table-date-column\r\n column-title=\"Referred\"\r\n date-shown=\"dateReferralStarted\"\r\n ></sqm-referral-table-date-column> </sqm-referral-table\r\n ></sqm-portal-container>\r\n </template>\r\n </sqm-router>\r\n </sqm-divided-layout>\r\n </sqm-divided-layout>\r\n </template>\r\n </sqm-router>\r\n </sqb-program-section>\r\n <sqm-portal-footer\r\n slot=\"footer\"\r\n support-email=\"support@example.com\"\r\n terms-link=\"https://example.com\"\r\n show-powered-by=\"true\"\r\n ></sqm-portal-footer>\r\n</sqm-portal-frame>\r\n";
|
|
19492
|
+
|
|
19493
|
+
const dashboardTemplate = "<sqm-portal-container direction=\"column\" padding=\"xxx-large\" gap=\"xxx-large\"\r\n ><sqm-titled-section label-margin=\"xx-small\"\r\n ><sqm-text slot=\"label\"> <p>Welcome back,</p> </sqm-text\r\n ><sqm-text slot=\"content\">\r\n <h1>\r\n <sqm-user-name fallback=\"Anonymous User\"></sqm-user-name>\r\n </h1> </sqm-text\r\n ></sqm-titled-section>\r\n <sqm-stat-container space=\"xxxx-large\"\r\n ><sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/referralsCount\"\r\n ><sqm-text><p>Referrals</p></sqm-text></sqm-big-stat\r\n ><sqm-big-stat\r\n style=\"white-space: nowrap\"\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\r\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\r\n >\r\n </sqm-stat-container> </sqm-portal-container\r\n ><sqm-portal-container direction=\"column\" padding=\"xxx-large\" gap=\"xxx-large\">\r\n <sqm-titled-section padding=\"none\" label-margin=\"x-large\"\r\n ><sqm-text slot=\"label\"> <h2>Partner and Profit</h2> </sqm-text\r\n ><sqm-text slot=\"content\">\r\n <p>\r\n Get rewarded for referring potential customers to SaaSquatch. Earn\r\n commission for each successful lead you send our way\r\n </p>\r\n </sqm-text></sqm-titled-section\r\n >\r\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\r\n ><sqm-text slot=\"label\"> <h3>Share your referral link</h3> </sqm-text\r\n ><sqm-share-link slot=\"content\"></sqm-share-link\r\n ></sqm-titled-section>\r\n <sqm-titled-section label-margin=\"small\" padding=\"none\">\r\n <sqm-text slot=\"label\"> <h3>Share your referral code</h3> </sqm-text\r\n ><sqm-share-code slot=\"content\"></sqm-share-code>\r\n </sqm-titled-section>\r\n <sqm-titled-section label-margin=\"small\" padding=\"none\"\r\n ><sqm-text slot=\"label\"> <h3>Share via social media</h3> </sqm-text\r\n ><sqm-portal-container\r\n slot=\"content\"\r\n direction=\"row\"\r\n padding=\"none\"\r\n gap=\"xxx-large\"\r\n min-width=\"160px\"\r\n ><sqm-share-button\r\n icon=\"envelope\"\r\n medium=\"email\"\r\n size=\"medium\"\r\n pill=\"true\"\r\n >Email a friend</sqm-share-button\r\n ><sqm-share-button medium=\"twitter\" size=\"medium\" pill=\"true\"\r\n >Tweet about us</sqm-share-button\r\n ><sqm-share-button medium=\"facebook\" size=\"medium\" pill=\"true\"\r\n >Share on Facebook</sqm-share-button\r\n ></sqm-portal-container\r\n ></sqm-titled-section\r\n ></sqm-portal-container\r\n >";
|
|
19494
|
+
|
|
19495
|
+
const editProfileTemplate = "<sqm-portal-protected-route\r\n require-email-verification=\"true\"\r\n redirect-to=\"/login\"\r\n redirect-to-unverified=\"/emailVerification\"\r\n></sqm-portal-protected-route>\r\n<sqm-portal-container direction=\"column\" padding=\"xxx-large\" gap=\"xxx-large\">\r\n <sqm-portal-profile></sqm-portal-profile> </sqm-portal-container\r\n><sqm-portal-container direction=\"column\" padding=\"xxx-large\" gap=\"xxx-large\">\r\n <sqm-graphql-client-provider domain=\"https://managed-identity.saasquatch.com\">\r\n <sqm-portal-change-password></sqm-portal-change-password>\r\n </sqm-graphql-client-provider>\r\n</sqm-portal-container>\r\n";
|
|
19496
|
+
|
|
19497
|
+
const activityTemplate = "<sqm-portal-protected-route\r\n require-email-verification=\"true\"\r\n redirect-to=\"/login\"\r\n redirect-to-unverified=\"/emailVerification\"\r\n></sqm-portal-protected-route>\r\n<sqm-portal-container direction=\"column\" padding=\"xxx-large\" gap=\"xxx-large\">\r\n <sqm-text> <h2>Activity</h2></sqm-text>\r\n <sqm-stat-container space=\"xxxx-large\"\r\n ><sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/referralsCount\"\r\n ><sqm-text><p>Subscribers</p></sqm-text></sqm-big-stat\r\n ><sqm-big-stat\r\n flex-reverse=\"true\"\r\n alignment=\"left\"\r\n stat-type=\"/rewardBalance/CREDIT/CENTS\"\r\n ><sqm-text><p>Reward Balance</p></sqm-text></sqm-big-stat\r\n >\r\n </sqm-stat-container>\r\n <sqm-referral-table>\r\n <div slot=\"loading\" style=\"display: contents\">\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"><sl-skeleton></sl-skeleton></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"><sl-skeleton></sl-skeleton></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"><sl-skeleton></sl-skeleton></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"><sl-skeleton></sl-skeleton></sqm-table-cell>\r\n </sqm-table-row>\r\n <sqm-table-row>\r\n <sqm-table-cell colspan=\"5\"><sl-skeleton></sl-skeleton></sqm-table-cell>\r\n </sqm-table-row>\r\n </div>\r\n <sqm-referral-table-user-column></sqm-referral-table-user-column>\r\n <sqm-referral-table-rewards-column></sqm-referral-table-rewards-column>\r\n <sqm-referral-table-status-column></sqm-referral-table-status-column>\r\n <sqm-referral-table-date-column\r\n column-title=\"Referred\"\r\n date-shown=\"dateReferralStarted\"\r\n ></sqm-referral-table-date-column> </sqm-referral-table\r\n></sqm-portal-container>\r\n";
|
|
19498
|
+
|
|
19499
|
+
const resetPasswordEmailTemplate = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional //EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n\r\n<html\r\n xmlns=\"http://www.w3.org/1999/xhtml\"\r\n xmlns:o=\"urn:schemas-microsoft-com:office:office\"\r\n xmlns:v=\"urn:schemas-microsoft-com:vml\"\r\n>\r\n <head>\r\n <!--[if gte mso 9\r\n ]><xml\r\n ><o:OfficeDocumentSettings\r\n ><o:AllowPNG /><o:PixelsPerInch\r\n >96</o:PixelsPerInch\r\n ></o:OfficeDocumentSettings\r\n ></xml\r\n ><!\r\n [endif]-->\r\n <meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\" />\r\n <meta content=\"width=device-width\" name=\"viewport\" />\r\n <!--[if !mso]><!-->\r\n <meta content=\"IE=edge\" http-equiv=\"X-UA-Compatible\" />\r\n <!--<![endif]-->\r\n <title></title>\r\n <!--[if !mso]><!-->\r\n <!--<![endif]-->\r\n <style type=\"text/css\">\r\n body {\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n table,\r\n td,\r\n tr {\r\n vertical-align: top;\r\n border-collapse: collapse;\r\n }\r\n\r\n * {\r\n line-height: inherit;\r\n }\r\n\r\n a[x-apple-data-detectors=\"true\"] {\r\n color: inherit !important;\r\n text-decoration: none !important;\r\n }\r\n </style>\r\n <style id=\"media-query\" type=\"text/css\">\r\n @media (max-width: 520px) {\r\n .block-grid,\r\n .col {\r\n min-width: 320px !important;\r\n max-width: 100% !important;\r\n display: block !important;\r\n }\r\n\r\n .block-grid {\r\n width: 100% !important;\r\n }\r\n\r\n .col {\r\n width: 100% !important;\r\n }\r\n\r\n .col_cont {\r\n margin: 0 auto;\r\n }\r\n\r\n img.fullwidth,\r\n img.fullwidthOnMobile {\r\n max-width: 100% !important;\r\n }\r\n\r\n .no-stack .col {\r\n min-width: 0 !important;\r\n display: table-cell !important;\r\n }\r\n\r\n .no-stack.two-up .col {\r\n width: 50% !important;\r\n }\r\n\r\n .no-stack .col.num2 {\r\n width: 16.6% !important;\r\n }\r\n\r\n .no-stack .col.num3 {\r\n width: 25% !important;\r\n }\r\n\r\n .no-stack .col.num4 {\r\n width: 33% !important;\r\n }\r\n\r\n .no-stack .col.num5 {\r\n width: 41.6% !important;\r\n }\r\n\r\n .no-stack .col.num6 {\r\n width: 50% !important;\r\n }\r\n\r\n .no-stack .col.num7 {\r\n width: 58.3% !important;\r\n }\r\n\r\n .no-stack .col.num8 {\r\n width: 66.6% !important;\r\n }\r\n\r\n .no-stack .col.num9 {\r\n width: 75% !important;\r\n }\r\n\r\n .no-stack .col.num10 {\r\n width: 83.3% !important;\r\n }\r\n\r\n .video-block {\r\n max-width: none !important;\r\n }\r\n\r\n .mobile_hide {\r\n min-height: 0px;\r\n max-height: 0px;\r\n max-width: 0px;\r\n display: none;\r\n overflow: hidden;\r\n font-size: 0px;\r\n }\r\n\r\n .desktop_hide {\r\n display: block !important;\r\n max-height: none !important;\r\n }\r\n }\r\n </style>\r\n <style id=\"icon-media-query\" type=\"text/css\">\r\n @media (max-width: 520px) {\r\n .icons-inner {\r\n text-align: center;\r\n }\r\n\r\n .icons-inner td {\r\n margin: 0 auto;\r\n }\r\n }\r\n </style>\r\n </head>\r\n <body\r\n class=\"clean-body\"\r\n style=\"\r\n margin: 0;\r\n padding: 0;\r\n -webkit-text-size-adjust: 100%;\r\n background-color: #ffffff;\r\n \"\r\n >\r\n <!--[if IE]><div class=\"ie-browser\"><![endif]-->\r\n <table\r\n bgcolor=\"#FFFFFF\"\r\n cellpadding=\"0\"\r\n cellspacing=\"0\"\r\n class=\"nl-container\"\r\n role=\"presentation\"\r\n style=\"\r\n table-layout: fixed;\r\n vertical-align: top;\r\n min-width: 320px;\r\n border-spacing: 0;\r\n border-collapse: collapse;\r\n mso-table-lspace: 0pt;\r\n mso-table-rspace: 0pt;\r\n background-color: #ffffff;\r\n width: 100%;\r\n \"\r\n valign=\"top\"\r\n width=\"100%\"\r\n >\r\n <tbody>\r\n <tr style=\"vertical-align: top\" valign=\"top\">\r\n <td style=\"word-break: break-word; vertical-align: top\" valign=\"top\">\r\n <!--[if (mso)|(IE)]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td align=\"center\" style=\"background-color:#FFFFFF\"><![endif]-->\r\n <div style=\"background-color: transparent\">\r\n <div\r\n class=\"block-grid\"\r\n style=\"\r\n min-width: 320px;\r\n max-width: 500px;\r\n overflow-wrap: break-word;\r\n word-wrap: break-word;\r\n word-break: break-word;\r\n margin: 0 auto;\r\n background-color: transparent;\r\n \"\r\n >\r\n <div\r\n style=\"\r\n border-collapse: collapse;\r\n display: table;\r\n width: 100%;\r\n background-color: transparent;\r\n \"\r\n >\r\n <!--[if (mso)|(IE)]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"background-color:transparent;\"><tr><td align=\"center\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"width:500px\"><tr class=\"layout-full-width\" style=\"background-color:transparent\"><![endif]-->\r\n <!--[if (mso)|(IE)]><td align=\"center\" width=\"500\" style=\"background-color:transparent;width:500px; border-top: 0px solid transparent; border-left: 0px solid transparent; border-bottom: 0px solid transparent; border-right: 0px solid transparent;\" valign=\"top\"><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 0px; padding-left: 0px; padding-top:5px; padding-bottom:5px;\"><![endif]-->\r\n <div\r\n class=\"col num12\"\r\n style=\"\r\n min-width: 320px;\r\n max-width: 500px;\r\n display: table-cell;\r\n vertical-align: top;\r\n width: 500px;\r\n \"\r\n >\r\n <div class=\"col_cont\" style=\"width: 100% !important\">\r\n <!--[if (!mso)&(!IE)]><!-->\r\n <div\r\n style=\"\r\n border-top: 0px solid transparent;\r\n border-left: 0px solid transparent;\r\n border-bottom: 0px solid transparent;\r\n border-right: 0px solid transparent;\r\n padding-top: 5px;\r\n padding-bottom: 5px;\r\n padding-right: 0px;\r\n padding-left: 0px;\r\n \"\r\n >\r\n <!--<![endif]-->\r\n <table\r\n cellpadding=\"0\"\r\n cellspacing=\"0\"\r\n role=\"presentation\"\r\n style=\"\r\n table-layout: fixed;\r\n vertical-align: top;\r\n border-spacing: 0;\r\n border-collapse: collapse;\r\n mso-table-lspace: 0pt;\r\n mso-table-rspace: 0pt;\r\n \"\r\n valign=\"top\"\r\n width=\"100%\"\r\n >\r\n <tr style=\"vertical-align: top\" valign=\"top\">\r\n <td\r\n align=\"center\"\r\n style=\"\r\n word-break: break-word;\r\n vertical-align: top;\r\n padding-bottom: 20px;\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n padding-top: 10px;\r\n text-align: center;\r\n width: 100%;\r\n \"\r\n valign=\"top\"\r\n width=\"100%\"\r\n >\r\n <h1\r\n style=\"\r\n color: #444445;\r\n direction: ltr;\r\n font-family: 'Helvetica Neue', Helvetica,\r\n Arial, sans-serif;\r\n font-size: 20px;\r\n font-weight: normal;\r\n letter-spacing: normal;\r\n line-height: 120%;\r\n text-align: left;\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n \"\r\n >\r\n <strong>Reset your password</strong>\r\n </h1>\r\n </td>\r\n </tr>\r\n </table>\r\n <!--[if mso]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 10px; padding-left: 10px; padding-top: 10px; padding-bottom: 10px; font-family: Arial, sans-serif\"><![endif]-->\r\n <div\r\n style=\"\r\n color: #444445;\r\n font-family: Arial, Helvetica Neue, Helvetica,\r\n sans-serif;\r\n line-height: 1.8;\r\n padding-top: 10px;\r\n padding-right: 10px;\r\n padding-bottom: 10px;\r\n padding-left: 10px;\r\n \"\r\n >\r\n <div\r\n class=\"txtTinyMce-wrapper\"\r\n style=\"\r\n font-size: 14px;\r\n line-height: 1.8;\r\n color: #444445;\r\n font-family: Arial, Helvetica Neue, Helvetica,\r\n sans-serif;\r\n mso-line-height-alt: 25px;\r\n \"\r\n >\r\n <p\r\n style=\"\r\n margin: 0;\r\n font-size: 14px;\r\n line-height: 1.8;\r\n word-break: break-word;\r\n mso-line-height-alt: 25px;\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n \"\r\n >\r\n <span style=\"font-size: 14px\"\r\n >We received a request to reset your password.\r\n Click the button below to reset your\r\n password.</span\r\n >\r\n </p>\r\n </div>\r\n </div>\r\n <div\r\n align=\"center\"\r\n class=\"button-container\"\r\n style=\"\r\n padding-top: 10px;\r\n padding-right: 10px;\r\n padding-bottom: 10px;\r\n padding-left: 10px;\r\n \"\r\n >\r\n <!--[if mso]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-spacing: 0; border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt;\"><tr><td style=\"padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px\" align=\"center\"><v:roundrect xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:w=\"urn:schemas-microsoft-com:office:word\" target=\"_blank\" href={{validationLink}} style=\"height:31.5pt;width:390pt;v-text-anchor:middle;\" arcsize=\"12%\" stroke=\"false\" fillcolor=\"#2270ee\"><w:anchorlock/><v:textbox inset=\"0,0,0,0\"><center style=\"color:#ffffff; font-family:Arial, sans-serif; font-size:14px\"><!\r\n [endif]--><a\r\n href=\"{{validationLink}}\"\r\n target=\"_blank\"\r\n style=\"\r\n -webkit-text-size-adjust: none;\r\n text-decoration: none;\r\n display: block;\r\n color: #ffffff;\r\n background-color: #2270ee;\r\n border-radius: 5px;\r\n -webkit-border-radius: 5px;\r\n -moz-border-radius: 5px;\r\n width: 100%;\r\n width: calc(100% - 2px);\r\n border-top: 1px solid #2270ee;\r\n border-right: 1px solid #2270ee;\r\n border-bottom: 1px solid #2270ee;\r\n border-left: 1px solid #2270ee;\r\n padding-top: 5px;\r\n padding-bottom: 5px;\r\n font-family: 'Helvetica Neue', Helvetica, Arial,\r\n sans-serif;\r\n text-align: center;\r\n mso-border-alt: none;\r\n word-break: keep-all;\r\n \"\r\n target=\"_blank\"\r\n ><span\r\n style=\"\r\n padding-left: 20px;\r\n padding-right: 20px;\r\n font-size: 14px;\r\n display: inline-block;\r\n letter-spacing: undefined;\r\n \"\r\n ><span\r\n style=\"\r\n font-size: 16px;\r\n line-height: 2;\r\n word-break: break-word;\r\n mso-line-height-alt: 32px;\r\n \"\r\n ><span\r\n style=\"font-size: 14px; line-height: 28px\"\r\n >Reset Password</span\r\n ></span\r\n ></span\r\n ></a\r\n >\r\n <!--[if mso]></center></v:textbox></v:roundrect></td></tr></table><![endif]-->\r\n </div>\r\n <!--[if mso]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 10px; padding-left: 10px; padding-top: 15px; padding-bottom: 15px; font-family: Arial, sans-serif\"><![endif]-->\r\n <div\r\n style=\"\r\n color: #444445;\r\n font-family: Arial, Helvetica Neue, Helvetica,\r\n sans-serif;\r\n line-height: 1.2;\r\n padding-top: 15px;\r\n padding-right: 10px;\r\n padding-bottom: 15px;\r\n padding-left: 10px;\r\n \"\r\n >\r\n <div\r\n class=\"txtTinyMce-wrapper\"\r\n style=\"\r\n font-size: 14px;\r\n line-height: 1.2;\r\n color: #444445;\r\n font-family: Arial, Helvetica Neue, Helvetica,\r\n sans-serif;\r\n mso-line-height-alt: 17px;\r\n \"\r\n >\r\n <p\r\n style=\"\r\n margin: 0;\r\n font-size: 12px;\r\n line-height: 1.2;\r\n word-break: break-word;\r\n mso-line-height-alt: 14px;\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n \"\r\n >\r\n <span style=\"font-size: 12px\"\r\n >If you didn't request a password reset please\r\n ignore this email. Your password will not\r\n change.</span\r\n >\r\n </p>\r\n </div>\r\n </div>\r\n <!--[if mso]></td></tr></table><![endif]-->\r\n <!--[if (!mso)&(!IE)]><!-->\r\n </div>\r\n <!--<![endif]-->\r\n </div>\r\n </div>\r\n <!--[if (mso)|(IE)]></td></tr></table><![endif]-->\r\n <!--[if (mso)|(IE)]></td></tr></table></td></tr></table><![endif]-->\r\n </div>\r\n </div>\r\n </div>\r\n <!--[if (mso)|(IE)]></td></tr></table><![endif]-->\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <!--[if (IE)]></div><![endif]-->\r\n </body>\r\n</html>";
|
|
19500
|
+
|
|
19501
|
+
const verifyEmailTemplate = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional //EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n\r\n<html\r\n xmlns=\"http://www.w3.org/1999/xhtml\"\r\n xmlns:o=\"urn:schemas-microsoft-com:office:office\"\r\n xmlns:v=\"urn:schemas-microsoft-com:vml\"\r\n>\r\n <head>\r\n <!--[if gte mso 9\r\n ]><xml\r\n ><o:OfficeDocumentSettings\r\n ><o:AllowPNG /><o:PixelsPerInch\r\n >96</o:PixelsPerInch\r\n ></o:OfficeDocumentSettings\r\n ></xml\r\n ><!\r\n [endif]-->\r\n <meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\" />\r\n <meta content=\"width=device-width\" name=\"viewport\" />\r\n <!--[if !mso]><!-->\r\n <meta content=\"IE=edge\" http-equiv=\"X-UA-Compatible\" />\r\n <!--<![endif]-->\r\n <title></title>\r\n <!--[if !mso]><!-->\r\n <!--<![endif]-->\r\n <style type=\"text/css\">\r\n body {\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n table,\r\n td,\r\n tr {\r\n vertical-align: top;\r\n border-collapse: collapse;\r\n }\r\n\r\n * {\r\n line-height: inherit;\r\n }\r\n\r\n a[x-apple-data-detectors=\"true\"] {\r\n color: inherit !important;\r\n text-decoration: none !important;\r\n }\r\n </style>\r\n <style id=\"media-query\" type=\"text/css\">\r\n @media (max-width: 520px) {\r\n .block-grid,\r\n .col {\r\n min-width: 320px !important;\r\n max-width: 100% !important;\r\n display: block !important;\r\n }\r\n\r\n .block-grid {\r\n width: 100% !important;\r\n }\r\n\r\n .col {\r\n width: 100% !important;\r\n }\r\n\r\n .col_cont {\r\n margin: 0 auto;\r\n }\r\n\r\n img.fullwidth,\r\n img.fullwidthOnMobile {\r\n max-width: 100% !important;\r\n }\r\n\r\n .no-stack .col {\r\n min-width: 0 !important;\r\n display: table-cell !important;\r\n }\r\n\r\n .no-stack.two-up .col {\r\n width: 50% !important;\r\n }\r\n\r\n .no-stack .col.num2 {\r\n width: 16.6% !important;\r\n }\r\n\r\n .no-stack .col.num3 {\r\n width: 25% !important;\r\n }\r\n\r\n .no-stack .col.num4 {\r\n width: 33% !important;\r\n }\r\n\r\n .no-stack .col.num5 {\r\n width: 41.6% !important;\r\n }\r\n\r\n .no-stack .col.num6 {\r\n width: 50% !important;\r\n }\r\n\r\n .no-stack .col.num7 {\r\n width: 58.3% !important;\r\n }\r\n\r\n .no-stack .col.num8 {\r\n width: 66.6% !important;\r\n }\r\n\r\n .no-stack .col.num9 {\r\n width: 75% !important;\r\n }\r\n\r\n .no-stack .col.num10 {\r\n width: 83.3% !important;\r\n }\r\n\r\n .video-block {\r\n max-width: none !important;\r\n }\r\n\r\n .mobile_hide {\r\n min-height: 0px;\r\n max-height: 0px;\r\n max-width: 0px;\r\n display: none;\r\n overflow: hidden;\r\n font-size: 0px;\r\n }\r\n\r\n .desktop_hide {\r\n display: block !important;\r\n max-height: none !important;\r\n }\r\n }\r\n </style>\r\n <style id=\"icon-media-query\" type=\"text/css\">\r\n @media (max-width: 520px) {\r\n .icons-inner {\r\n text-align: center;\r\n }\r\n\r\n .icons-inner td {\r\n margin: 0 auto;\r\n }\r\n }\r\n </style>\r\n </head>\r\n <body\r\n class=\"clean-body\"\r\n style=\"\r\n margin: 0;\r\n padding: 0;\r\n -webkit-text-size-adjust: 100%;\r\n background-color: #ffffff;\r\n \"\r\n >\r\n <!--[if IE]><div class=\"ie-browser\"><![endif]-->\r\n <table\r\n bgcolor=\"#FFFFFF\"\r\n cellpadding=\"0\"\r\n cellspacing=\"0\"\r\n class=\"nl-container\"\r\n role=\"presentation\"\r\n style=\"\r\n table-layout: fixed;\r\n vertical-align: top;\r\n min-width: 320px;\r\n border-spacing: 0;\r\n border-collapse: collapse;\r\n mso-table-lspace: 0pt;\r\n mso-table-rspace: 0pt;\r\n background-color: #ffffff;\r\n width: 100%;\r\n \"\r\n valign=\"top\"\r\n width=\"100%\"\r\n >\r\n <tbody>\r\n <tr style=\"vertical-align: top\" valign=\"top\">\r\n <td style=\"word-break: break-word; vertical-align: top\" valign=\"top\">\r\n <!--[if (mso)|(IE)]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td align=\"center\" style=\"background-color:#FFFFFF\"><![endif]-->\r\n <div style=\"background-color: transparent\">\r\n <div\r\n class=\"block-grid\"\r\n style=\"\r\n min-width: 320px;\r\n max-width: 500px;\r\n overflow-wrap: break-word;\r\n word-wrap: break-word;\r\n word-break: break-word;\r\n margin: 0 auto;\r\n background-color: transparent;\r\n \"\r\n >\r\n <div\r\n style=\"\r\n border-collapse: collapse;\r\n display: table;\r\n width: 100%;\r\n background-color: transparent;\r\n \"\r\n >\r\n <!--[if (mso)|(IE)]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"background-color:transparent;\"><tr><td align=\"center\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"width:500px\"><tr class=\"layout-full-width\" style=\"background-color:transparent\"><![endif]-->\r\n <!--[if (mso)|(IE)]><td align=\"center\" width=\"500\" style=\"background-color:transparent;width:500px; border-top: 0px solid transparent; border-left: 0px solid transparent; border-bottom: 0px solid transparent; border-right: 0px solid transparent;\" valign=\"top\"><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 0px; padding-left: 0px; padding-top:5px; padding-bottom:5px;\"><![endif]-->\r\n <div\r\n class=\"col num12\"\r\n style=\"\r\n min-width: 320px;\r\n max-width: 500px;\r\n display: table-cell;\r\n vertical-align: top;\r\n width: 500px;\r\n \"\r\n >\r\n <div class=\"col_cont\" style=\"width: 100% !important\">\r\n <!--[if (!mso)&(!IE)]><!-->\r\n <div\r\n style=\"\r\n border-top: 0px solid transparent;\r\n border-left: 0px solid transparent;\r\n border-bottom: 0px solid transparent;\r\n border-right: 0px solid transparent;\r\n padding-top: 5px;\r\n padding-bottom: 5px;\r\n padding-right: 0px;\r\n padding-left: 0px;\r\n \"\r\n >\r\n <!--<![endif]-->\r\n <table\r\n cellpadding=\"0\"\r\n cellspacing=\"0\"\r\n role=\"presentation\"\r\n style=\"\r\n table-layout: fixed;\r\n vertical-align: top;\r\n border-spacing: 0;\r\n border-collapse: collapse;\r\n mso-table-lspace: 0pt;\r\n mso-table-rspace: 0pt;\r\n \"\r\n valign=\"top\"\r\n width=\"100%\"\r\n >\r\n <tr style=\"vertical-align: top\" valign=\"top\">\r\n <td\r\n align=\"center\"\r\n style=\"\r\n word-break: break-word;\r\n vertical-align: top;\r\n padding-bottom: 20px;\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n padding-top: 10px;\r\n text-align: center;\r\n width: 100%;\r\n \"\r\n valign=\"top\"\r\n width=\"100%\"\r\n >\r\n <h1\r\n style=\"\r\n color: #444445;\r\n direction: ltr;\r\n font-family: 'Helvetica Neue', Helvetica,\r\n Arial, sans-serif;\r\n font-size: 20px;\r\n font-weight: normal;\r\n letter-spacing: normal;\r\n line-height: 120%;\r\n text-align: left;\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n \"\r\n >\r\n <strong>Verify your email address</strong>\r\n </h1>\r\n </td>\r\n </tr>\r\n </table>\r\n <!--[if mso]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 10px; padding-left: 10px; padding-top: 10px; padding-bottom: 10px; font-family: Arial, sans-serif\"><![endif]-->\r\n <div\r\n style=\"\r\n color: #444445;\r\n font-family: Arial, Helvetica Neue, Helvetica,\r\n sans-serif;\r\n line-height: 1.8;\r\n padding-top: 10px;\r\n padding-right: 10px;\r\n padding-bottom: 10px;\r\n padding-left: 10px;\r\n \"\r\n >\r\n <div\r\n class=\"txtTinyMce-wrapper\"\r\n style=\"\r\n font-size: 14px;\r\n line-height: 1.8;\r\n color: #444445;\r\n font-family: Arial, Helvetica Neue, Helvetica,\r\n sans-serif;\r\n mso-line-height-alt: 25px;\r\n \"\r\n >\r\n <p\r\n style=\"\r\n margin: 0;\r\n font-size: 14px;\r\n line-height: 1.8;\r\n word-break: break-word;\r\n mso-line-height-alt: 25px;\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n \"\r\n >\r\n <span style=\"font-size: 14px\"\r\n >Thank you for signing up! Please click the button below\r\n to verify your email address.</span\r\n >\r\n </p>\r\n </div>\r\n </div>\r\n <!--[if mso]></td></tr></table><![endif]-->\r\n <div\r\n align=\"center\"\r\n class=\"button-container\"\r\n style=\"\r\n padding-top: 10px;\r\n padding-right: 10px;\r\n padding-bottom: 10px;\r\n padding-left: 10px;\r\n \"\r\n >\r\n <!--[if mso]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"border-spacing: 0; border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt;\"><tr><td style=\"padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px\" align=\"center\"><v:roundrect xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:w=\"urn:schemas-microsoft-com:office:word\" target=\"_blank\" href={{validationLink}} style=\"height:31.5pt;width:390pt;v-text-anchor:middle;\" arcsize=\"12%\" stroke=\"false\" fillcolor=\"#2270ee\"><w:anchorlock/><v:textbox inset=\"0,0,0,0\"><center style=\"color:#ffffff; font-family:Arial, sans-serif; font-size:14px\"><!\r\n [endif]--><a\r\n href={{validationLink}}\r\n\t\t\t\t\t\t\ttarget=\"_blank\"\r\n style=\"\r\n -webkit-text-size-adjust: none;\r\n text-decoration: none;\r\n display: block;\r\n color: #ffffff;\r\n background-color: #2270ee;\r\n border-radius: 5px;\r\n -webkit-border-radius: 5px;\r\n -moz-border-radius: 5px;\r\n width: 100%;\r\n width: calc(100% - 2px);\r\n border-top: 1px solid #2270ee;\r\n border-right: 1px solid #2270ee;\r\n border-bottom: 1px solid #2270ee;\r\n border-left: 1px solid #2270ee;\r\n padding-top: 5px;\r\n padding-bottom: 5px;\r\n font-family: 'Helvetica Neue', Helvetica, Arial,\r\n sans-serif;\r\n text-align: center;\r\n mso-border-alt: none;\r\n word-break: keep-all;\r\n \"\r\n target=\"_blank\"\r\n ><span\r\n style=\"\r\n padding-left: 20px;\r\n padding-right: 20px;\r\n font-size: 14px;\r\n display: inline-block;\r\n letter-spacing: undefined;\r\n \"\r\n ><span\r\n style=\"\r\n font-size: 16px;\r\n line-height: 2;\r\n word-break: break-word;\r\n mso-line-height-alt: 32px;\r\n \"\r\n ><span\r\n style=\"font-size: 14px; line-height: 28px\"\r\n >Verify Email</span\r\n ></span\r\n ></span\r\n ></a\r\n >\r\n <!--[if mso]></center></v:textbox></v:roundrect></td></tr></table><![endif]-->\r\n </div>\r\n <!--<![endif]-->\r\n </div>\r\n </div>\r\n <!--[if (mso)|(IE)]></td></tr></table><![endif]-->\r\n <!--[if (mso)|(IE)]></td></tr></table></td></tr></table><![endif]-->\r\n </div>\r\n </div>\r\n </div>\r\n <!--[if (mso)|(IE)]></td></tr></table><![endif]-->\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <!--[if (IE)]></div><![endif]-->\r\n </body>\r\n</html>";
|
|
19502
|
+
|
|
19503
|
+
const loginTemplate = "<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\">\r\n <sqm-portal-login></sqm-portal-login>\r\n</sqm-hero>\r\n";
|
|
19504
|
+
|
|
19505
|
+
const registerTemplate = "<sqm-hero\r\n background=\"https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80\"\r\n>\r\n <sqm-portal-register>\r\n <sl-input\r\n slot=\"formData\"\r\n exportparts=\"label: input-label\"\r\n type=\"text\"\r\n style=\"margin-bottom: 5px\"\r\n name=\"/firstName\"\r\n label=\"First Name\"\r\n required\r\n ></sl-input>\r\n <sl-input\r\n slot=\"formData\"\r\n exportparts=\"label: input-label\"\r\n type=\"text\"\r\n style=\"margin-bottom: 5px\"\r\n name=\"/lastName\"\r\n label=\"Last Name\"\r\n required\r\n ></sl-input>\r\n </sqm-portal-register>\r\n</sqm-hero>\r\n";
|
|
19506
|
+
|
|
19507
|
+
const forgotPasswordTemplate = "<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\">\r\n <sqm-portal-forgot-password\r\n email-label=\"Business Email\"\r\n ></sqm-portal-forgot-password>\r\n</sqm-hero>\r\n";
|
|
19508
|
+
|
|
19509
|
+
const resetPasswordTemplate = "<sqm-portal-reset-password confirm-password=\"true\"></sqm-portal-reset-password>\r\n";
|
|
19510
|
+
|
|
19511
|
+
const emailVerifiedTemplate = "<sqm-portal-verify-email></sqm-portal-verify-email>\r\n";
|
|
19512
|
+
|
|
19513
|
+
const emailVerificationTemplate = "<sqm-portal-protected-route redirect-to=\"/login\"></sqm-portal-protected-route>\r\n<sqm-portal-email-verification></sqm-portal-email-verification>\r\n";
|
|
19514
|
+
|
|
19515
|
+
var marked = createCommonjsModule(function (module, exports) {
|
|
19516
|
+
/**
|
|
19517
|
+
* marked - a markdown parser
|
|
19518
|
+
* Copyright (c) 2011-2021, Christopher Jeffrey. (MIT Licensed)
|
|
19519
|
+
* https://github.com/markedjs/marked
|
|
19520
|
+
*/
|
|
19521
|
+
|
|
19522
|
+
/**
|
|
19523
|
+
* DO NOT EDIT THIS FILE
|
|
19524
|
+
* The code in this file is generated from files in ./src/
|
|
19525
|
+
*/
|
|
19526
|
+
|
|
19527
|
+
(function (global, factory) {
|
|
19528
|
+
module.exports = factory() ;
|
|
19529
|
+
}(commonjsGlobal, (function () {
|
|
19530
|
+
function _defineProperties(target, props) {
|
|
19531
|
+
for (var i = 0; i < props.length; i++) {
|
|
19532
|
+
var descriptor = props[i];
|
|
19533
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
19534
|
+
descriptor.configurable = true;
|
|
19535
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
19536
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
19537
|
+
}
|
|
19538
|
+
}
|
|
19539
|
+
|
|
19540
|
+
function _createClass(Constructor, protoProps, staticProps) {
|
|
19541
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
19542
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
19543
|
+
return Constructor;
|
|
19544
|
+
}
|
|
19545
|
+
|
|
19546
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
19547
|
+
if (!o) return;
|
|
19548
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
19549
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
19550
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
19551
|
+
if (n === "Map" || n === "Set") return Array.from(o);
|
|
19552
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
19553
|
+
}
|
|
19554
|
+
|
|
19555
|
+
function _arrayLikeToArray(arr, len) {
|
|
19556
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
19557
|
+
|
|
19558
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
19559
|
+
|
|
19560
|
+
return arr2;
|
|
19561
|
+
}
|
|
19562
|
+
|
|
19563
|
+
function _createForOfIteratorHelperLoose(o, allowArrayLike) {
|
|
19564
|
+
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
19565
|
+
if (it) return (it = it.call(o)).next.bind(it);
|
|
19566
|
+
|
|
19567
|
+
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
19568
|
+
if (it) o = it;
|
|
19569
|
+
var i = 0;
|
|
19570
|
+
return function () {
|
|
19571
|
+
if (i >= o.length) return {
|
|
19572
|
+
done: true
|
|
19573
|
+
};
|
|
19574
|
+
return {
|
|
19575
|
+
done: false,
|
|
19576
|
+
value: o[i++]
|
|
19577
|
+
};
|
|
19578
|
+
};
|
|
19579
|
+
}
|
|
19580
|
+
|
|
19581
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
19582
|
+
}
|
|
19583
|
+
|
|
19584
|
+
var defaults$5 = {exports: {}};
|
|
19585
|
+
|
|
19586
|
+
function getDefaults$1() {
|
|
19587
|
+
return {
|
|
19588
|
+
baseUrl: null,
|
|
19589
|
+
breaks: false,
|
|
19590
|
+
extensions: null,
|
|
19591
|
+
gfm: true,
|
|
19592
|
+
headerIds: true,
|
|
19593
|
+
headerPrefix: '',
|
|
19594
|
+
highlight: null,
|
|
19595
|
+
langPrefix: 'language-',
|
|
19596
|
+
mangle: true,
|
|
19597
|
+
pedantic: false,
|
|
19598
|
+
renderer: null,
|
|
19599
|
+
sanitize: false,
|
|
19600
|
+
sanitizer: null,
|
|
19601
|
+
silent: false,
|
|
19602
|
+
smartLists: false,
|
|
19603
|
+
smartypants: false,
|
|
19604
|
+
tokenizer: null,
|
|
19605
|
+
walkTokens: null,
|
|
19606
|
+
xhtml: false
|
|
19607
|
+
};
|
|
19608
|
+
}
|
|
19609
|
+
|
|
19610
|
+
function changeDefaults$1(newDefaults) {
|
|
19611
|
+
defaults$5.exports.defaults = newDefaults;
|
|
19612
|
+
}
|
|
19613
|
+
|
|
19614
|
+
defaults$5.exports = {
|
|
19615
|
+
defaults: getDefaults$1(),
|
|
19616
|
+
getDefaults: getDefaults$1,
|
|
19617
|
+
changeDefaults: changeDefaults$1
|
|
19618
|
+
};
|
|
19619
|
+
|
|
19620
|
+
/**
|
|
19621
|
+
* Helpers
|
|
19622
|
+
*/
|
|
19623
|
+
var escapeTest = /[&<>"']/;
|
|
19624
|
+
var escapeReplace = /[&<>"']/g;
|
|
19625
|
+
var escapeTestNoEncode = /[<>"']|&(?!#?\w+;)/;
|
|
19626
|
+
var escapeReplaceNoEncode = /[<>"']|&(?!#?\w+;)/g;
|
|
19627
|
+
var escapeReplacements = {
|
|
19628
|
+
'&': '&',
|
|
19629
|
+
'<': '<',
|
|
19630
|
+
'>': '>',
|
|
19631
|
+
'"': '"',
|
|
19632
|
+
"'": '''
|
|
19633
|
+
};
|
|
19634
|
+
|
|
19635
|
+
var getEscapeReplacement = function getEscapeReplacement(ch) {
|
|
19636
|
+
return escapeReplacements[ch];
|
|
19637
|
+
};
|
|
19638
|
+
|
|
19639
|
+
function escape$2(html, encode) {
|
|
19640
|
+
if (encode) {
|
|
19641
|
+
if (escapeTest.test(html)) {
|
|
19642
|
+
return html.replace(escapeReplace, getEscapeReplacement);
|
|
19643
|
+
}
|
|
19644
|
+
} else {
|
|
19645
|
+
if (escapeTestNoEncode.test(html)) {
|
|
19646
|
+
return html.replace(escapeReplaceNoEncode, getEscapeReplacement);
|
|
19647
|
+
}
|
|
19648
|
+
}
|
|
19649
|
+
|
|
19650
|
+
return html;
|
|
19651
|
+
}
|
|
19652
|
+
|
|
19653
|
+
var unescapeTest = /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;
|
|
19654
|
+
|
|
19655
|
+
function unescape$1(html) {
|
|
19656
|
+
// explicitly match decimal, hex, and named HTML entities
|
|
19657
|
+
return html.replace(unescapeTest, function (_, n) {
|
|
19658
|
+
n = n.toLowerCase();
|
|
19659
|
+
if (n === 'colon') return ':';
|
|
19660
|
+
|
|
19661
|
+
if (n.charAt(0) === '#') {
|
|
19662
|
+
return n.charAt(1) === 'x' ? String.fromCharCode(parseInt(n.substring(2), 16)) : String.fromCharCode(+n.substring(1));
|
|
19663
|
+
}
|
|
19664
|
+
|
|
19665
|
+
return '';
|
|
19666
|
+
});
|
|
19667
|
+
}
|
|
19668
|
+
|
|
19669
|
+
var caret = /(^|[^\[])\^/g;
|
|
19670
|
+
|
|
19671
|
+
function edit$1(regex, opt) {
|
|
19672
|
+
regex = regex.source || regex;
|
|
19673
|
+
opt = opt || '';
|
|
19674
|
+
var obj = {
|
|
19675
|
+
replace: function replace(name, val) {
|
|
19676
|
+
val = val.source || val;
|
|
19677
|
+
val = val.replace(caret, '$1');
|
|
19678
|
+
regex = regex.replace(name, val);
|
|
19679
|
+
return obj;
|
|
19680
|
+
},
|
|
19681
|
+
getRegex: function getRegex() {
|
|
19682
|
+
return new RegExp(regex, opt);
|
|
19683
|
+
}
|
|
19684
|
+
};
|
|
19685
|
+
return obj;
|
|
19686
|
+
}
|
|
19687
|
+
|
|
19688
|
+
var nonWordAndColonTest = /[^\w:]/g;
|
|
19689
|
+
var originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;
|
|
19690
|
+
|
|
19691
|
+
function cleanUrl$1(sanitize, base, href) {
|
|
19692
|
+
if (sanitize) {
|
|
19693
|
+
var prot;
|
|
19694
|
+
|
|
19695
|
+
try {
|
|
19696
|
+
prot = decodeURIComponent(unescape$1(href)).replace(nonWordAndColonTest, '').toLowerCase();
|
|
19697
|
+
} catch (e) {
|
|
19698
|
+
return null;
|
|
19699
|
+
}
|
|
19700
|
+
|
|
19701
|
+
if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {
|
|
19702
|
+
return null;
|
|
19703
|
+
}
|
|
19704
|
+
}
|
|
19705
|
+
|
|
19706
|
+
if (base && !originIndependentUrl.test(href)) {
|
|
19707
|
+
href = resolveUrl(base, href);
|
|
19708
|
+
}
|
|
19709
|
+
|
|
19710
|
+
try {
|
|
19711
|
+
href = encodeURI(href).replace(/%25/g, '%');
|
|
19712
|
+
} catch (e) {
|
|
19713
|
+
return null;
|
|
19714
|
+
}
|
|
19715
|
+
|
|
19716
|
+
return href;
|
|
19717
|
+
}
|
|
19718
|
+
|
|
19719
|
+
var baseUrls = {};
|
|
19720
|
+
var justDomain = /^[^:]+:\/*[^/]*$/;
|
|
19721
|
+
var protocol = /^([^:]+:)[\s\S]*$/;
|
|
19722
|
+
var domain = /^([^:]+:\/*[^/]*)[\s\S]*$/;
|
|
19723
|
+
|
|
19724
|
+
function resolveUrl(base, href) {
|
|
19725
|
+
if (!baseUrls[' ' + base]) {
|
|
19726
|
+
// we can ignore everything in base after the last slash of its path component,
|
|
19727
|
+
// but we might need to add _that_
|
|
19728
|
+
// https://tools.ietf.org/html/rfc3986#section-3
|
|
19729
|
+
if (justDomain.test(base)) {
|
|
19730
|
+
baseUrls[' ' + base] = base + '/';
|
|
19731
|
+
} else {
|
|
19732
|
+
baseUrls[' ' + base] = rtrim$1(base, '/', true);
|
|
19733
|
+
}
|
|
19734
|
+
}
|
|
19735
|
+
|
|
19736
|
+
base = baseUrls[' ' + base];
|
|
19737
|
+
var relativeBase = base.indexOf(':') === -1;
|
|
19738
|
+
|
|
19739
|
+
if (href.substring(0, 2) === '//') {
|
|
19740
|
+
if (relativeBase) {
|
|
19741
|
+
return href;
|
|
19742
|
+
}
|
|
19743
|
+
|
|
19744
|
+
return base.replace(protocol, '$1') + href;
|
|
19745
|
+
} else if (href.charAt(0) === '/') {
|
|
19746
|
+
if (relativeBase) {
|
|
19747
|
+
return href;
|
|
19748
|
+
}
|
|
19749
|
+
|
|
19750
|
+
return base.replace(domain, '$1') + href;
|
|
19751
|
+
} else {
|
|
19752
|
+
return base + href;
|
|
19753
|
+
}
|
|
19754
|
+
}
|
|
19755
|
+
|
|
19756
|
+
var noopTest$1 = {
|
|
19757
|
+
exec: function noopTest() {}
|
|
19758
|
+
};
|
|
19759
|
+
|
|
19760
|
+
function merge$2(obj) {
|
|
19761
|
+
var i = 1,
|
|
19762
|
+
target,
|
|
19763
|
+
key;
|
|
19764
|
+
|
|
19765
|
+
for (; i < arguments.length; i++) {
|
|
19766
|
+
target = arguments[i];
|
|
19767
|
+
|
|
19768
|
+
for (key in target) {
|
|
19769
|
+
if (Object.prototype.hasOwnProperty.call(target, key)) {
|
|
19770
|
+
obj[key] = target[key];
|
|
19771
|
+
}
|
|
19772
|
+
}
|
|
19773
|
+
}
|
|
19774
|
+
|
|
19775
|
+
return obj;
|
|
19776
|
+
}
|
|
19777
|
+
|
|
19778
|
+
function splitCells$1(tableRow, count) {
|
|
19779
|
+
// ensure that every cell-delimiting pipe has a space
|
|
19780
|
+
// before it to distinguish it from an escaped pipe
|
|
19781
|
+
var row = tableRow.replace(/\|/g, function (match, offset, str) {
|
|
19782
|
+
var escaped = false,
|
|
19783
|
+
curr = offset;
|
|
19784
|
+
|
|
19785
|
+
while (--curr >= 0 && str[curr] === '\\') {
|
|
19786
|
+
escaped = !escaped;
|
|
19787
|
+
}
|
|
19788
|
+
|
|
19789
|
+
if (escaped) {
|
|
19790
|
+
// odd number of slashes means | is escaped
|
|
19791
|
+
// so we leave it alone
|
|
19792
|
+
return '|';
|
|
19793
|
+
} else {
|
|
19794
|
+
// add space before unescaped |
|
|
19795
|
+
return ' |';
|
|
19796
|
+
}
|
|
19797
|
+
}),
|
|
19798
|
+
cells = row.split(/ \|/);
|
|
19799
|
+
var i = 0; // First/last cell in a row cannot be empty if it has no leading/trailing pipe
|
|
19800
|
+
|
|
19801
|
+
if (!cells[0].trim()) {
|
|
19802
|
+
cells.shift();
|
|
19803
|
+
}
|
|
19804
|
+
|
|
19805
|
+
if (!cells[cells.length - 1].trim()) {
|
|
19806
|
+
cells.pop();
|
|
19807
|
+
}
|
|
19808
|
+
|
|
19809
|
+
if (cells.length > count) {
|
|
19810
|
+
cells.splice(count);
|
|
19811
|
+
} else {
|
|
19812
|
+
while (cells.length < count) {
|
|
19813
|
+
cells.push('');
|
|
19814
|
+
}
|
|
19815
|
+
}
|
|
19816
|
+
|
|
19817
|
+
for (; i < cells.length; i++) {
|
|
19818
|
+
// leading or trailing whitespace is ignored per the gfm spec
|
|
19819
|
+
cells[i] = cells[i].trim().replace(/\\\|/g, '|');
|
|
19820
|
+
}
|
|
19821
|
+
|
|
19822
|
+
return cells;
|
|
19823
|
+
} // Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').
|
|
19824
|
+
// /c*$/ is vulnerable to REDOS.
|
|
19825
|
+
// invert: Remove suffix of non-c chars instead. Default falsey.
|
|
19826
|
+
|
|
19827
|
+
|
|
19828
|
+
function rtrim$1(str, c, invert) {
|
|
19829
|
+
var l = str.length;
|
|
19830
|
+
|
|
19831
|
+
if (l === 0) {
|
|
19832
|
+
return '';
|
|
19833
|
+
} // Length of suffix matching the invert condition.
|
|
19834
|
+
|
|
19835
|
+
|
|
19836
|
+
var suffLen = 0; // Step left until we fail to match the invert condition.
|
|
19837
|
+
|
|
19838
|
+
while (suffLen < l) {
|
|
19839
|
+
var currChar = str.charAt(l - suffLen - 1);
|
|
19840
|
+
|
|
19841
|
+
if (currChar === c && !invert) {
|
|
19842
|
+
suffLen++;
|
|
19843
|
+
} else if (currChar !== c && invert) {
|
|
19844
|
+
suffLen++;
|
|
19845
|
+
} else {
|
|
19846
|
+
break;
|
|
19847
|
+
}
|
|
19848
|
+
}
|
|
19849
|
+
|
|
19850
|
+
return str.substr(0, l - suffLen);
|
|
19851
|
+
}
|
|
19852
|
+
|
|
19853
|
+
function findClosingBracket$1(str, b) {
|
|
19854
|
+
if (str.indexOf(b[1]) === -1) {
|
|
19855
|
+
return -1;
|
|
19856
|
+
}
|
|
19857
|
+
|
|
19858
|
+
var l = str.length;
|
|
19859
|
+
var level = 0,
|
|
19860
|
+
i = 0;
|
|
19861
|
+
|
|
19862
|
+
for (; i < l; i++) {
|
|
19863
|
+
if (str[i] === '\\') {
|
|
19864
|
+
i++;
|
|
19865
|
+
} else if (str[i] === b[0]) {
|
|
19866
|
+
level++;
|
|
19867
|
+
} else if (str[i] === b[1]) {
|
|
19868
|
+
level--;
|
|
19869
|
+
|
|
19870
|
+
if (level < 0) {
|
|
19871
|
+
return i;
|
|
19872
|
+
}
|
|
19873
|
+
}
|
|
19874
|
+
}
|
|
19875
|
+
|
|
19876
|
+
return -1;
|
|
19877
|
+
}
|
|
19878
|
+
|
|
19879
|
+
function checkSanitizeDeprecation$1(opt) {
|
|
19880
|
+
if (opt && opt.sanitize && !opt.silent) {
|
|
19881
|
+
console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');
|
|
19882
|
+
}
|
|
19883
|
+
} // copied from https://stackoverflow.com/a/5450113/806777
|
|
19884
|
+
|
|
19885
|
+
|
|
19886
|
+
function repeatString$1(pattern, count) {
|
|
19887
|
+
if (count < 1) {
|
|
19888
|
+
return '';
|
|
19889
|
+
}
|
|
19890
|
+
|
|
19891
|
+
var result = '';
|
|
19892
|
+
|
|
19893
|
+
while (count > 1) {
|
|
19894
|
+
if (count & 1) {
|
|
19895
|
+
result += pattern;
|
|
19896
|
+
}
|
|
19897
|
+
|
|
19898
|
+
count >>= 1;
|
|
19899
|
+
pattern += pattern;
|
|
19900
|
+
}
|
|
19901
|
+
|
|
19902
|
+
return result + pattern;
|
|
19903
|
+
}
|
|
19904
|
+
|
|
19905
|
+
var helpers = {
|
|
19906
|
+
escape: escape$2,
|
|
19907
|
+
unescape: unescape$1,
|
|
19908
|
+
edit: edit$1,
|
|
19909
|
+
cleanUrl: cleanUrl$1,
|
|
19910
|
+
resolveUrl: resolveUrl,
|
|
19911
|
+
noopTest: noopTest$1,
|
|
19912
|
+
merge: merge$2,
|
|
19913
|
+
splitCells: splitCells$1,
|
|
19914
|
+
rtrim: rtrim$1,
|
|
19915
|
+
findClosingBracket: findClosingBracket$1,
|
|
19916
|
+
checkSanitizeDeprecation: checkSanitizeDeprecation$1,
|
|
19917
|
+
repeatString: repeatString$1
|
|
19918
|
+
};
|
|
19919
|
+
|
|
19920
|
+
var defaults$4 = defaults$5.exports.defaults;
|
|
19921
|
+
var rtrim = helpers.rtrim,
|
|
19922
|
+
splitCells = helpers.splitCells,
|
|
19923
|
+
_escape = helpers.escape,
|
|
19924
|
+
findClosingBracket = helpers.findClosingBracket;
|
|
19925
|
+
|
|
19926
|
+
function outputLink(cap, link, raw, lexer) {
|
|
19927
|
+
var href = link.href;
|
|
19928
|
+
var title = link.title ? _escape(link.title) : null;
|
|
19929
|
+
var text = cap[1].replace(/\\([\[\]])/g, '$1');
|
|
19930
|
+
|
|
19931
|
+
if (cap[0].charAt(0) !== '!') {
|
|
19932
|
+
lexer.state.inLink = true;
|
|
19933
|
+
var token = {
|
|
19934
|
+
type: 'link',
|
|
19935
|
+
raw: raw,
|
|
19936
|
+
href: href,
|
|
19937
|
+
title: title,
|
|
19938
|
+
text: text,
|
|
19939
|
+
tokens: lexer.inlineTokens(text, [])
|
|
19940
|
+
};
|
|
19941
|
+
lexer.state.inLink = false;
|
|
19942
|
+
return token;
|
|
19943
|
+
} else {
|
|
19944
|
+
return {
|
|
19945
|
+
type: 'image',
|
|
19946
|
+
raw: raw,
|
|
19947
|
+
href: href,
|
|
19948
|
+
title: title,
|
|
19949
|
+
text: _escape(text)
|
|
19950
|
+
};
|
|
19951
|
+
}
|
|
19952
|
+
}
|
|
19953
|
+
|
|
19954
|
+
function indentCodeCompensation(raw, text) {
|
|
19955
|
+
var matchIndentToCode = raw.match(/^(\s+)(?:```)/);
|
|
19956
|
+
|
|
19957
|
+
if (matchIndentToCode === null) {
|
|
19958
|
+
return text;
|
|
19959
|
+
}
|
|
19960
|
+
|
|
19961
|
+
var indentToCode = matchIndentToCode[1];
|
|
19962
|
+
return text.split('\n').map(function (node) {
|
|
19963
|
+
var matchIndentInNode = node.match(/^\s+/);
|
|
19964
|
+
|
|
19965
|
+
if (matchIndentInNode === null) {
|
|
19966
|
+
return node;
|
|
19967
|
+
}
|
|
19968
|
+
|
|
19969
|
+
var indentInNode = matchIndentInNode[0];
|
|
19970
|
+
|
|
19971
|
+
if (indentInNode.length >= indentToCode.length) {
|
|
19972
|
+
return node.slice(indentToCode.length);
|
|
19973
|
+
}
|
|
19974
|
+
|
|
19975
|
+
return node;
|
|
19976
|
+
}).join('\n');
|
|
19977
|
+
}
|
|
19978
|
+
/**
|
|
19979
|
+
* Tokenizer
|
|
19980
|
+
*/
|
|
19981
|
+
|
|
19982
|
+
|
|
19983
|
+
var Tokenizer_1 = /*#__PURE__*/function () {
|
|
19984
|
+
function Tokenizer(options) {
|
|
19985
|
+
this.options = options || defaults$4;
|
|
19986
|
+
}
|
|
19987
|
+
|
|
19988
|
+
var _proto = Tokenizer.prototype;
|
|
19989
|
+
|
|
19990
|
+
_proto.space = function space(src) {
|
|
19991
|
+
var cap = this.rules.block.newline.exec(src);
|
|
19992
|
+
|
|
19993
|
+
if (cap) {
|
|
19994
|
+
if (cap[0].length > 1) {
|
|
19995
|
+
return {
|
|
19996
|
+
type: 'space',
|
|
19997
|
+
raw: cap[0]
|
|
19998
|
+
};
|
|
19999
|
+
}
|
|
20000
|
+
|
|
20001
|
+
return {
|
|
20002
|
+
raw: '\n'
|
|
20003
|
+
};
|
|
20004
|
+
}
|
|
20005
|
+
};
|
|
20006
|
+
|
|
20007
|
+
_proto.code = function code(src) {
|
|
20008
|
+
var cap = this.rules.block.code.exec(src);
|
|
20009
|
+
|
|
20010
|
+
if (cap) {
|
|
20011
|
+
var text = cap[0].replace(/^ {1,4}/gm, '');
|
|
20012
|
+
return {
|
|
20013
|
+
type: 'code',
|
|
20014
|
+
raw: cap[0],
|
|
20015
|
+
codeBlockStyle: 'indented',
|
|
20016
|
+
text: !this.options.pedantic ? rtrim(text, '\n') : text
|
|
20017
|
+
};
|
|
20018
|
+
}
|
|
20019
|
+
};
|
|
20020
|
+
|
|
20021
|
+
_proto.fences = function fences(src) {
|
|
20022
|
+
var cap = this.rules.block.fences.exec(src);
|
|
20023
|
+
|
|
20024
|
+
if (cap) {
|
|
20025
|
+
var raw = cap[0];
|
|
20026
|
+
var text = indentCodeCompensation(raw, cap[3] || '');
|
|
20027
|
+
return {
|
|
20028
|
+
type: 'code',
|
|
20029
|
+
raw: raw,
|
|
20030
|
+
lang: cap[2] ? cap[2].trim() : cap[2],
|
|
20031
|
+
text: text
|
|
20032
|
+
};
|
|
20033
|
+
}
|
|
20034
|
+
};
|
|
20035
|
+
|
|
20036
|
+
_proto.heading = function heading(src) {
|
|
20037
|
+
var cap = this.rules.block.heading.exec(src);
|
|
20038
|
+
|
|
20039
|
+
if (cap) {
|
|
20040
|
+
var text = cap[2].trim(); // remove trailing #s
|
|
20041
|
+
|
|
20042
|
+
if (/#$/.test(text)) {
|
|
20043
|
+
var trimmed = rtrim(text, '#');
|
|
20044
|
+
|
|
20045
|
+
if (this.options.pedantic) {
|
|
20046
|
+
text = trimmed.trim();
|
|
20047
|
+
} else if (!trimmed || / $/.test(trimmed)) {
|
|
20048
|
+
// CommonMark requires space before trailing #s
|
|
20049
|
+
text = trimmed.trim();
|
|
20050
|
+
}
|
|
20051
|
+
}
|
|
20052
|
+
|
|
20053
|
+
var token = {
|
|
20054
|
+
type: 'heading',
|
|
20055
|
+
raw: cap[0],
|
|
20056
|
+
depth: cap[1].length,
|
|
20057
|
+
text: text,
|
|
20058
|
+
tokens: []
|
|
20059
|
+
};
|
|
20060
|
+
this.lexer.inline(token.text, token.tokens);
|
|
20061
|
+
return token;
|
|
20062
|
+
}
|
|
20063
|
+
};
|
|
20064
|
+
|
|
20065
|
+
_proto.hr = function hr(src) {
|
|
20066
|
+
var cap = this.rules.block.hr.exec(src);
|
|
20067
|
+
|
|
20068
|
+
if (cap) {
|
|
20069
|
+
return {
|
|
20070
|
+
type: 'hr',
|
|
20071
|
+
raw: cap[0]
|
|
20072
|
+
};
|
|
20073
|
+
}
|
|
20074
|
+
};
|
|
20075
|
+
|
|
20076
|
+
_proto.blockquote = function blockquote(src) {
|
|
20077
|
+
var cap = this.rules.block.blockquote.exec(src);
|
|
20078
|
+
|
|
20079
|
+
if (cap) {
|
|
20080
|
+
var text = cap[0].replace(/^ *> ?/gm, '');
|
|
20081
|
+
return {
|
|
20082
|
+
type: 'blockquote',
|
|
20083
|
+
raw: cap[0],
|
|
20084
|
+
tokens: this.lexer.blockTokens(text, []),
|
|
20085
|
+
text: text
|
|
20086
|
+
};
|
|
20087
|
+
}
|
|
20088
|
+
};
|
|
20089
|
+
|
|
20090
|
+
_proto.list = function list(src) {
|
|
20091
|
+
var cap = this.rules.block.list.exec(src);
|
|
20092
|
+
|
|
20093
|
+
if (cap) {
|
|
20094
|
+
var raw, istask, ischecked, indent, i, blankLine, endsWithBlankLine, line, lines, itemContents;
|
|
20095
|
+
var bull = cap[1].trim();
|
|
20096
|
+
var isordered = bull.length > 1;
|
|
20097
|
+
var list = {
|
|
20098
|
+
type: 'list',
|
|
20099
|
+
raw: '',
|
|
20100
|
+
ordered: isordered,
|
|
20101
|
+
start: isordered ? +bull.slice(0, -1) : '',
|
|
20102
|
+
loose: false,
|
|
20103
|
+
items: []
|
|
20104
|
+
};
|
|
20105
|
+
bull = isordered ? "\\d{1,9}\\" + bull.slice(-1) : "\\" + bull;
|
|
20106
|
+
|
|
20107
|
+
if (this.options.pedantic) {
|
|
20108
|
+
bull = isordered ? bull : '[*+-]';
|
|
20109
|
+
} // Get next list item
|
|
20110
|
+
|
|
20111
|
+
|
|
20112
|
+
var itemRegex = new RegExp("^( {0,3}" + bull + ")((?: [^\\n]*| *)(?:\\n[^\\n]*)*(?:\\n|$))"); // Get each top-level item
|
|
20113
|
+
|
|
20114
|
+
while (src) {
|
|
20115
|
+
if (this.rules.block.hr.test(src)) {
|
|
20116
|
+
// End list if we encounter an HR (possibly move into itemRegex?)
|
|
20117
|
+
break;
|
|
20118
|
+
}
|
|
20119
|
+
|
|
20120
|
+
if (!(cap = itemRegex.exec(src))) {
|
|
20121
|
+
break;
|
|
20122
|
+
}
|
|
20123
|
+
|
|
20124
|
+
lines = cap[2].split('\n');
|
|
20125
|
+
|
|
20126
|
+
if (this.options.pedantic) {
|
|
20127
|
+
indent = 2;
|
|
20128
|
+
itemContents = lines[0].trimLeft();
|
|
20129
|
+
} else {
|
|
20130
|
+
indent = cap[2].search(/[^ ]/); // Find first non-space char
|
|
20131
|
+
|
|
20132
|
+
indent = cap[1].length + (indent > 4 ? 1 : indent); // intented code blocks after 4 spaces; indent is always 1
|
|
20133
|
+
|
|
20134
|
+
itemContents = lines[0].slice(indent - cap[1].length);
|
|
20135
|
+
}
|
|
20136
|
+
|
|
20137
|
+
blankLine = false;
|
|
20138
|
+
raw = cap[0];
|
|
20139
|
+
|
|
20140
|
+
if (!lines[0] && /^ *$/.test(lines[1])) {
|
|
20141
|
+
// items begin with at most one blank line
|
|
20142
|
+
raw = cap[1] + lines.slice(0, 2).join('\n') + '\n';
|
|
20143
|
+
list.loose = true;
|
|
20144
|
+
lines = [];
|
|
20145
|
+
}
|
|
20146
|
+
|
|
20147
|
+
var nextBulletRegex = new RegExp("^ {0," + Math.min(3, indent - 1) + "}(?:[*+-]|\\d{1,9}[.)])");
|
|
20148
|
+
|
|
20149
|
+
for (i = 1; i < lines.length; i++) {
|
|
20150
|
+
line = lines[i];
|
|
20151
|
+
|
|
20152
|
+
if (this.options.pedantic) {
|
|
20153
|
+
// Re-align to follow commonmark nesting rules
|
|
20154
|
+
line = line.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');
|
|
20155
|
+
} // End list item if found start of new bullet
|
|
20156
|
+
|
|
20157
|
+
|
|
20158
|
+
if (nextBulletRegex.test(line)) {
|
|
20159
|
+
raw = cap[1] + lines.slice(0, i).join('\n') + '\n';
|
|
20160
|
+
break;
|
|
20161
|
+
} // Until we encounter a blank line, item contents do not need indentation
|
|
20162
|
+
|
|
20163
|
+
|
|
20164
|
+
if (!blankLine) {
|
|
20165
|
+
if (!line.trim()) {
|
|
20166
|
+
// Check if current line is empty
|
|
20167
|
+
blankLine = true;
|
|
20168
|
+
} // Dedent if possible
|
|
20169
|
+
|
|
20170
|
+
|
|
20171
|
+
if (line.search(/[^ ]/) >= indent) {
|
|
20172
|
+
itemContents += '\n' + line.slice(indent);
|
|
20173
|
+
} else {
|
|
20174
|
+
itemContents += '\n' + line;
|
|
20175
|
+
}
|
|
20176
|
+
|
|
20177
|
+
continue;
|
|
20178
|
+
} // Dedent this line
|
|
20179
|
+
|
|
20180
|
+
|
|
20181
|
+
if (line.search(/[^ ]/) >= indent || !line.trim()) {
|
|
20182
|
+
itemContents += '\n' + line.slice(indent);
|
|
20183
|
+
continue;
|
|
20184
|
+
} else {
|
|
20185
|
+
// Line was not properly indented; end of this item
|
|
20186
|
+
raw = cap[1] + lines.slice(0, i).join('\n') + '\n';
|
|
20187
|
+
break;
|
|
20188
|
+
}
|
|
20189
|
+
}
|
|
20190
|
+
|
|
20191
|
+
if (!list.loose) {
|
|
20192
|
+
// If the previous item ended with a blank line, the list is loose
|
|
20193
|
+
if (endsWithBlankLine) {
|
|
20194
|
+
list.loose = true;
|
|
20195
|
+
} else if (/\n *\n *$/.test(raw)) {
|
|
20196
|
+
endsWithBlankLine = true;
|
|
20197
|
+
}
|
|
20198
|
+
} // Check for task list items
|
|
20199
|
+
|
|
20200
|
+
|
|
20201
|
+
if (this.options.gfm) {
|
|
20202
|
+
istask = /^\[[ xX]\] /.exec(itemContents);
|
|
20203
|
+
|
|
20204
|
+
if (istask) {
|
|
20205
|
+
ischecked = istask[0] !== '[ ] ';
|
|
20206
|
+
itemContents = itemContents.replace(/^\[[ xX]\] +/, '');
|
|
20207
|
+
}
|
|
20208
|
+
}
|
|
20209
|
+
|
|
20210
|
+
list.items.push({
|
|
20211
|
+
type: 'list_item',
|
|
20212
|
+
raw: raw,
|
|
20213
|
+
task: !!istask,
|
|
20214
|
+
checked: ischecked,
|
|
20215
|
+
loose: false,
|
|
20216
|
+
text: itemContents
|
|
20217
|
+
});
|
|
20218
|
+
list.raw += raw;
|
|
20219
|
+
src = src.slice(raw.length);
|
|
20220
|
+
} // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic
|
|
20221
|
+
|
|
20222
|
+
|
|
20223
|
+
list.items[list.items.length - 1].raw = raw.trimRight();
|
|
20224
|
+
list.items[list.items.length - 1].text = itemContents.trimRight();
|
|
20225
|
+
list.raw = list.raw.trimRight();
|
|
20226
|
+
var l = list.items.length; // Item child tokens handled here at end because we needed to have the final item to trim it first
|
|
20227
|
+
|
|
20228
|
+
for (i = 0; i < l; i++) {
|
|
20229
|
+
this.lexer.state.top = false;
|
|
20230
|
+
list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);
|
|
20231
|
+
|
|
20232
|
+
if (list.items[i].tokens.some(function (t) {
|
|
20233
|
+
return t.type === 'space';
|
|
20234
|
+
})) {
|
|
20235
|
+
list.loose = true;
|
|
20236
|
+
list.items[i].loose = true;
|
|
20237
|
+
}
|
|
20238
|
+
}
|
|
20239
|
+
|
|
20240
|
+
return list;
|
|
20241
|
+
}
|
|
20242
|
+
};
|
|
20243
|
+
|
|
20244
|
+
_proto.html = function html(src) {
|
|
20245
|
+
var cap = this.rules.block.html.exec(src);
|
|
20246
|
+
|
|
20247
|
+
if (cap) {
|
|
20248
|
+
var token = {
|
|
20249
|
+
type: 'html',
|
|
20250
|
+
raw: cap[0],
|
|
20251
|
+
pre: !this.options.sanitizer && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),
|
|
20252
|
+
text: cap[0]
|
|
20253
|
+
};
|
|
20254
|
+
|
|
20255
|
+
if (this.options.sanitize) {
|
|
20256
|
+
token.type = 'paragraph';
|
|
20257
|
+
token.text = this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]);
|
|
20258
|
+
token.tokens = [];
|
|
20259
|
+
this.lexer.inline(token.text, token.tokens);
|
|
20260
|
+
}
|
|
20261
|
+
|
|
20262
|
+
return token;
|
|
20263
|
+
}
|
|
20264
|
+
};
|
|
20265
|
+
|
|
20266
|
+
_proto.def = function def(src) {
|
|
20267
|
+
var cap = this.rules.block.def.exec(src);
|
|
20268
|
+
|
|
20269
|
+
if (cap) {
|
|
20270
|
+
if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);
|
|
20271
|
+
var tag = cap[1].toLowerCase().replace(/\s+/g, ' ');
|
|
20272
|
+
return {
|
|
20273
|
+
type: 'def',
|
|
20274
|
+
tag: tag,
|
|
20275
|
+
raw: cap[0],
|
|
20276
|
+
href: cap[2],
|
|
20277
|
+
title: cap[3]
|
|
20278
|
+
};
|
|
20279
|
+
}
|
|
20280
|
+
};
|
|
20281
|
+
|
|
20282
|
+
_proto.table = function table(src) {
|
|
20283
|
+
var cap = this.rules.block.table.exec(src);
|
|
20284
|
+
|
|
20285
|
+
if (cap) {
|
|
20286
|
+
var item = {
|
|
20287
|
+
type: 'table',
|
|
20288
|
+
header: splitCells(cap[1]).map(function (c) {
|
|
20289
|
+
return {
|
|
20290
|
+
text: c
|
|
20291
|
+
};
|
|
20292
|
+
}),
|
|
20293
|
+
align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
|
|
20294
|
+
rows: cap[3] ? cap[3].replace(/\n$/, '').split('\n') : []
|
|
20295
|
+
};
|
|
20296
|
+
|
|
20297
|
+
if (item.header.length === item.align.length) {
|
|
20298
|
+
item.raw = cap[0];
|
|
20299
|
+
var l = item.align.length;
|
|
20300
|
+
var i, j, k, row;
|
|
20301
|
+
|
|
20302
|
+
for (i = 0; i < l; i++) {
|
|
20303
|
+
if (/^ *-+: *$/.test(item.align[i])) {
|
|
20304
|
+
item.align[i] = 'right';
|
|
20305
|
+
} else if (/^ *:-+: *$/.test(item.align[i])) {
|
|
20306
|
+
item.align[i] = 'center';
|
|
20307
|
+
} else if (/^ *:-+ *$/.test(item.align[i])) {
|
|
20308
|
+
item.align[i] = 'left';
|
|
20309
|
+
} else {
|
|
20310
|
+
item.align[i] = null;
|
|
20311
|
+
}
|
|
20312
|
+
}
|
|
20313
|
+
|
|
20314
|
+
l = item.rows.length;
|
|
20315
|
+
|
|
20316
|
+
for (i = 0; i < l; i++) {
|
|
20317
|
+
item.rows[i] = splitCells(item.rows[i], item.header.length).map(function (c) {
|
|
20318
|
+
return {
|
|
20319
|
+
text: c
|
|
20320
|
+
};
|
|
20321
|
+
});
|
|
20322
|
+
} // parse child tokens inside headers and cells
|
|
20323
|
+
// header child tokens
|
|
20324
|
+
|
|
20325
|
+
|
|
20326
|
+
l = item.header.length;
|
|
20327
|
+
|
|
20328
|
+
for (j = 0; j < l; j++) {
|
|
20329
|
+
item.header[j].tokens = [];
|
|
20330
|
+
this.lexer.inlineTokens(item.header[j].text, item.header[j].tokens);
|
|
20331
|
+
} // cell child tokens
|
|
20332
|
+
|
|
20333
|
+
|
|
20334
|
+
l = item.rows.length;
|
|
20335
|
+
|
|
20336
|
+
for (j = 0; j < l; j++) {
|
|
20337
|
+
row = item.rows[j];
|
|
20338
|
+
|
|
20339
|
+
for (k = 0; k < row.length; k++) {
|
|
20340
|
+
row[k].tokens = [];
|
|
20341
|
+
this.lexer.inlineTokens(row[k].text, row[k].tokens);
|
|
20342
|
+
}
|
|
20343
|
+
}
|
|
20344
|
+
|
|
20345
|
+
return item;
|
|
20346
|
+
}
|
|
20347
|
+
}
|
|
20348
|
+
};
|
|
20349
|
+
|
|
20350
|
+
_proto.lheading = function lheading(src) {
|
|
20351
|
+
var cap = this.rules.block.lheading.exec(src);
|
|
20352
|
+
|
|
20353
|
+
if (cap) {
|
|
20354
|
+
var token = {
|
|
20355
|
+
type: 'heading',
|
|
20356
|
+
raw: cap[0],
|
|
20357
|
+
depth: cap[2].charAt(0) === '=' ? 1 : 2,
|
|
20358
|
+
text: cap[1],
|
|
20359
|
+
tokens: []
|
|
20360
|
+
};
|
|
20361
|
+
this.lexer.inline(token.text, token.tokens);
|
|
20362
|
+
return token;
|
|
20363
|
+
}
|
|
20364
|
+
};
|
|
20365
|
+
|
|
20366
|
+
_proto.paragraph = function paragraph(src) {
|
|
20367
|
+
var cap = this.rules.block.paragraph.exec(src);
|
|
20368
|
+
|
|
20369
|
+
if (cap) {
|
|
20370
|
+
var token = {
|
|
20371
|
+
type: 'paragraph',
|
|
20372
|
+
raw: cap[0],
|
|
20373
|
+
text: cap[1].charAt(cap[1].length - 1) === '\n' ? cap[1].slice(0, -1) : cap[1],
|
|
20374
|
+
tokens: []
|
|
20375
|
+
};
|
|
20376
|
+
this.lexer.inline(token.text, token.tokens);
|
|
20377
|
+
return token;
|
|
20378
|
+
}
|
|
20379
|
+
};
|
|
20380
|
+
|
|
20381
|
+
_proto.text = function text(src) {
|
|
20382
|
+
var cap = this.rules.block.text.exec(src);
|
|
20383
|
+
|
|
20384
|
+
if (cap) {
|
|
20385
|
+
var token = {
|
|
20386
|
+
type: 'text',
|
|
20387
|
+
raw: cap[0],
|
|
20388
|
+
text: cap[0],
|
|
20389
|
+
tokens: []
|
|
20390
|
+
};
|
|
20391
|
+
this.lexer.inline(token.text, token.tokens);
|
|
20392
|
+
return token;
|
|
20393
|
+
}
|
|
20394
|
+
};
|
|
20395
|
+
|
|
20396
|
+
_proto.escape = function escape(src) {
|
|
20397
|
+
var cap = this.rules.inline.escape.exec(src);
|
|
20398
|
+
|
|
20399
|
+
if (cap) {
|
|
20400
|
+
return {
|
|
20401
|
+
type: 'escape',
|
|
20402
|
+
raw: cap[0],
|
|
20403
|
+
text: _escape(cap[1])
|
|
20404
|
+
};
|
|
20405
|
+
}
|
|
20406
|
+
};
|
|
20407
|
+
|
|
20408
|
+
_proto.tag = function tag(src) {
|
|
20409
|
+
var cap = this.rules.inline.tag.exec(src);
|
|
20410
|
+
|
|
20411
|
+
if (cap) {
|
|
20412
|
+
if (!this.lexer.state.inLink && /^<a /i.test(cap[0])) {
|
|
20413
|
+
this.lexer.state.inLink = true;
|
|
20414
|
+
} else if (this.lexer.state.inLink && /^<\/a>/i.test(cap[0])) {
|
|
20415
|
+
this.lexer.state.inLink = false;
|
|
20416
|
+
}
|
|
20417
|
+
|
|
20418
|
+
if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\s|>)/i.test(cap[0])) {
|
|
20419
|
+
this.lexer.state.inRawBlock = true;
|
|
20420
|
+
} else if (this.lexer.state.inRawBlock && /^<\/(pre|code|kbd|script)(\s|>)/i.test(cap[0])) {
|
|
20421
|
+
this.lexer.state.inRawBlock = false;
|
|
20422
|
+
}
|
|
20423
|
+
|
|
20424
|
+
return {
|
|
20425
|
+
type: this.options.sanitize ? 'text' : 'html',
|
|
20426
|
+
raw: cap[0],
|
|
20427
|
+
inLink: this.lexer.state.inLink,
|
|
20428
|
+
inRawBlock: this.lexer.state.inRawBlock,
|
|
20429
|
+
text: this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]) : cap[0]
|
|
20430
|
+
};
|
|
20431
|
+
}
|
|
20432
|
+
};
|
|
20433
|
+
|
|
20434
|
+
_proto.link = function link(src) {
|
|
20435
|
+
var cap = this.rules.inline.link.exec(src);
|
|
20436
|
+
|
|
20437
|
+
if (cap) {
|
|
20438
|
+
var trimmedUrl = cap[2].trim();
|
|
20439
|
+
|
|
20440
|
+
if (!this.options.pedantic && /^</.test(trimmedUrl)) {
|
|
20441
|
+
// commonmark requires matching angle brackets
|
|
20442
|
+
if (!/>$/.test(trimmedUrl)) {
|
|
20443
|
+
return;
|
|
20444
|
+
} // ending angle bracket cannot be escaped
|
|
20445
|
+
|
|
20446
|
+
|
|
20447
|
+
var rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\');
|
|
20448
|
+
|
|
20449
|
+
if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {
|
|
20450
|
+
return;
|
|
20451
|
+
}
|
|
20452
|
+
} else {
|
|
20453
|
+
// find closing parenthesis
|
|
20454
|
+
var lastParenIndex = findClosingBracket(cap[2], '()');
|
|
20455
|
+
|
|
20456
|
+
if (lastParenIndex > -1) {
|
|
20457
|
+
var start = cap[0].indexOf('!') === 0 ? 5 : 4;
|
|
20458
|
+
var linkLen = start + cap[1].length + lastParenIndex;
|
|
20459
|
+
cap[2] = cap[2].substring(0, lastParenIndex);
|
|
20460
|
+
cap[0] = cap[0].substring(0, linkLen).trim();
|
|
20461
|
+
cap[3] = '';
|
|
20462
|
+
}
|
|
20463
|
+
}
|
|
20464
|
+
|
|
20465
|
+
var href = cap[2];
|
|
20466
|
+
var title = '';
|
|
20467
|
+
|
|
20468
|
+
if (this.options.pedantic) {
|
|
20469
|
+
// split pedantic href and title
|
|
20470
|
+
var link = /^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(href);
|
|
20471
|
+
|
|
20472
|
+
if (link) {
|
|
20473
|
+
href = link[1];
|
|
20474
|
+
title = link[3];
|
|
20475
|
+
}
|
|
20476
|
+
} else {
|
|
20477
|
+
title = cap[3] ? cap[3].slice(1, -1) : '';
|
|
20478
|
+
}
|
|
20479
|
+
|
|
20480
|
+
href = href.trim();
|
|
20481
|
+
|
|
20482
|
+
if (/^</.test(href)) {
|
|
20483
|
+
if (this.options.pedantic && !/>$/.test(trimmedUrl)) {
|
|
20484
|
+
// pedantic allows starting angle bracket without ending angle bracket
|
|
20485
|
+
href = href.slice(1);
|
|
20486
|
+
} else {
|
|
20487
|
+
href = href.slice(1, -1);
|
|
20488
|
+
}
|
|
20489
|
+
}
|
|
20490
|
+
|
|
20491
|
+
return outputLink(cap, {
|
|
20492
|
+
href: href ? href.replace(this.rules.inline._escapes, '$1') : href,
|
|
20493
|
+
title: title ? title.replace(this.rules.inline._escapes, '$1') : title
|
|
20494
|
+
}, cap[0], this.lexer);
|
|
20495
|
+
}
|
|
20496
|
+
};
|
|
20497
|
+
|
|
20498
|
+
_proto.reflink = function reflink(src, links) {
|
|
20499
|
+
var cap;
|
|
20500
|
+
|
|
20501
|
+
if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) {
|
|
20502
|
+
var link = (cap[2] || cap[1]).replace(/\s+/g, ' ');
|
|
20503
|
+
link = links[link.toLowerCase()];
|
|
20504
|
+
|
|
20505
|
+
if (!link || !link.href) {
|
|
20506
|
+
var text = cap[0].charAt(0);
|
|
20507
|
+
return {
|
|
20508
|
+
type: 'text',
|
|
20509
|
+
raw: text,
|
|
20510
|
+
text: text
|
|
20511
|
+
};
|
|
20512
|
+
}
|
|
20513
|
+
|
|
20514
|
+
return outputLink(cap, link, cap[0], this.lexer);
|
|
20515
|
+
}
|
|
20516
|
+
};
|
|
20517
|
+
|
|
20518
|
+
_proto.emStrong = function emStrong(src, maskedSrc, prevChar) {
|
|
20519
|
+
if (prevChar === void 0) {
|
|
20520
|
+
prevChar = '';
|
|
20521
|
+
}
|
|
20522
|
+
|
|
20523
|
+
var match = this.rules.inline.emStrong.lDelim.exec(src);
|
|
20524
|
+
if (!match) return; // _ can't be between two alphanumerics. \p{L}\p{N} includes non-english alphabet/numbers as well
|
|
20525
|
+
|
|
20526
|
+
if (match[3] && prevChar.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08C7\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\u9FFC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7CA\uA7F5-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/)) return;
|
|
20527
|
+
var nextChar = match[1] || match[2] || '';
|
|
20528
|
+
|
|
20529
|
+
if (!nextChar || nextChar && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar))) {
|
|
20530
|
+
var lLength = match[0].length - 1;
|
|
20531
|
+
var rDelim,
|
|
20532
|
+
rLength,
|
|
20533
|
+
delimTotal = lLength,
|
|
20534
|
+
midDelimTotal = 0;
|
|
20535
|
+
var endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;
|
|
20536
|
+
endReg.lastIndex = 0; // Clip maskedSrc to same section of string as src (move to lexer?)
|
|
20537
|
+
|
|
20538
|
+
maskedSrc = maskedSrc.slice(-1 * src.length + lLength);
|
|
20539
|
+
|
|
20540
|
+
while ((match = endReg.exec(maskedSrc)) != null) {
|
|
20541
|
+
rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];
|
|
20542
|
+
if (!rDelim) continue; // skip single * in __abc*abc__
|
|
20543
|
+
|
|
20544
|
+
rLength = rDelim.length;
|
|
20545
|
+
|
|
20546
|
+
if (match[3] || match[4]) {
|
|
20547
|
+
// found another Left Delim
|
|
20548
|
+
delimTotal += rLength;
|
|
20549
|
+
continue;
|
|
20550
|
+
} else if (match[5] || match[6]) {
|
|
20551
|
+
// either Left or Right Delim
|
|
20552
|
+
if (lLength % 3 && !((lLength + rLength) % 3)) {
|
|
20553
|
+
midDelimTotal += rLength;
|
|
20554
|
+
continue; // CommonMark Emphasis Rules 9-10
|
|
20555
|
+
}
|
|
20556
|
+
}
|
|
20557
|
+
|
|
20558
|
+
delimTotal -= rLength;
|
|
20559
|
+
if (delimTotal > 0) continue; // Haven't found enough closing delimiters
|
|
20560
|
+
// Remove extra characters. *a*** -> *a*
|
|
20561
|
+
|
|
20562
|
+
rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal); // Create `em` if smallest delimiter has odd char count. *a***
|
|
20563
|
+
|
|
20564
|
+
if (Math.min(lLength, rLength) % 2) {
|
|
20565
|
+
var _text = src.slice(1, lLength + match.index + rLength);
|
|
20566
|
+
|
|
20567
|
+
return {
|
|
20568
|
+
type: 'em',
|
|
20569
|
+
raw: src.slice(0, lLength + match.index + rLength + 1),
|
|
20570
|
+
text: _text,
|
|
20571
|
+
tokens: this.lexer.inlineTokens(_text, [])
|
|
20572
|
+
};
|
|
20573
|
+
} // Create 'strong' if smallest delimiter has even char count. **a***
|
|
20574
|
+
|
|
20575
|
+
|
|
20576
|
+
var text = src.slice(2, lLength + match.index + rLength - 1);
|
|
20577
|
+
return {
|
|
20578
|
+
type: 'strong',
|
|
20579
|
+
raw: src.slice(0, lLength + match.index + rLength + 1),
|
|
20580
|
+
text: text,
|
|
20581
|
+
tokens: this.lexer.inlineTokens(text, [])
|
|
20582
|
+
};
|
|
20583
|
+
}
|
|
20584
|
+
}
|
|
20585
|
+
};
|
|
20586
|
+
|
|
20587
|
+
_proto.codespan = function codespan(src) {
|
|
20588
|
+
var cap = this.rules.inline.code.exec(src);
|
|
20589
|
+
|
|
20590
|
+
if (cap) {
|
|
20591
|
+
var text = cap[2].replace(/\n/g, ' ');
|
|
20592
|
+
var hasNonSpaceChars = /[^ ]/.test(text);
|
|
20593
|
+
var hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);
|
|
20594
|
+
|
|
20595
|
+
if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {
|
|
20596
|
+
text = text.substring(1, text.length - 1);
|
|
20597
|
+
}
|
|
20598
|
+
|
|
20599
|
+
text = _escape(text, true);
|
|
20600
|
+
return {
|
|
20601
|
+
type: 'codespan',
|
|
20602
|
+
raw: cap[0],
|
|
20603
|
+
text: text
|
|
20604
|
+
};
|
|
20605
|
+
}
|
|
20606
|
+
};
|
|
20607
|
+
|
|
20608
|
+
_proto.br = function br(src) {
|
|
20609
|
+
var cap = this.rules.inline.br.exec(src);
|
|
20610
|
+
|
|
20611
|
+
if (cap) {
|
|
20612
|
+
return {
|
|
20613
|
+
type: 'br',
|
|
20614
|
+
raw: cap[0]
|
|
20615
|
+
};
|
|
20616
|
+
}
|
|
20617
|
+
};
|
|
20618
|
+
|
|
20619
|
+
_proto.del = function del(src) {
|
|
20620
|
+
var cap = this.rules.inline.del.exec(src);
|
|
20621
|
+
|
|
20622
|
+
if (cap) {
|
|
20623
|
+
return {
|
|
20624
|
+
type: 'del',
|
|
20625
|
+
raw: cap[0],
|
|
20626
|
+
text: cap[2],
|
|
20627
|
+
tokens: this.lexer.inlineTokens(cap[2], [])
|
|
20628
|
+
};
|
|
20629
|
+
}
|
|
20630
|
+
};
|
|
20631
|
+
|
|
20632
|
+
_proto.autolink = function autolink(src, mangle) {
|
|
20633
|
+
var cap = this.rules.inline.autolink.exec(src);
|
|
20634
|
+
|
|
20635
|
+
if (cap) {
|
|
20636
|
+
var text, href;
|
|
20637
|
+
|
|
20638
|
+
if (cap[2] === '@') {
|
|
20639
|
+
text = _escape(this.options.mangle ? mangle(cap[1]) : cap[1]);
|
|
20640
|
+
href = 'mailto:' + text;
|
|
20641
|
+
} else {
|
|
20642
|
+
text = _escape(cap[1]);
|
|
20643
|
+
href = text;
|
|
20644
|
+
}
|
|
20645
|
+
|
|
20646
|
+
return {
|
|
20647
|
+
type: 'link',
|
|
20648
|
+
raw: cap[0],
|
|
20649
|
+
text: text,
|
|
20650
|
+
href: href,
|
|
20651
|
+
tokens: [{
|
|
20652
|
+
type: 'text',
|
|
20653
|
+
raw: text,
|
|
20654
|
+
text: text
|
|
20655
|
+
}]
|
|
20656
|
+
};
|
|
20657
|
+
}
|
|
20658
|
+
};
|
|
20659
|
+
|
|
20660
|
+
_proto.url = function url(src, mangle) {
|
|
20661
|
+
var cap;
|
|
20662
|
+
|
|
20663
|
+
if (cap = this.rules.inline.url.exec(src)) {
|
|
20664
|
+
var text, href;
|
|
20665
|
+
|
|
20666
|
+
if (cap[2] === '@') {
|
|
20667
|
+
text = _escape(this.options.mangle ? mangle(cap[0]) : cap[0]);
|
|
20668
|
+
href = 'mailto:' + text;
|
|
20669
|
+
} else {
|
|
20670
|
+
// do extended autolink path validation
|
|
20671
|
+
var prevCapZero;
|
|
20672
|
+
|
|
20673
|
+
do {
|
|
20674
|
+
prevCapZero = cap[0];
|
|
20675
|
+
cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];
|
|
20676
|
+
} while (prevCapZero !== cap[0]);
|
|
20677
|
+
|
|
20678
|
+
text = _escape(cap[0]);
|
|
20679
|
+
|
|
20680
|
+
if (cap[1] === 'www.') {
|
|
20681
|
+
href = 'http://' + text;
|
|
20682
|
+
} else {
|
|
20683
|
+
href = text;
|
|
20684
|
+
}
|
|
20685
|
+
}
|
|
20686
|
+
|
|
20687
|
+
return {
|
|
20688
|
+
type: 'link',
|
|
20689
|
+
raw: cap[0],
|
|
20690
|
+
text: text,
|
|
20691
|
+
href: href,
|
|
20692
|
+
tokens: [{
|
|
20693
|
+
type: 'text',
|
|
20694
|
+
raw: text,
|
|
20695
|
+
text: text
|
|
20696
|
+
}]
|
|
20697
|
+
};
|
|
20698
|
+
}
|
|
20699
|
+
};
|
|
20700
|
+
|
|
20701
|
+
_proto.inlineText = function inlineText(src, smartypants) {
|
|
20702
|
+
var cap = this.rules.inline.text.exec(src);
|
|
20703
|
+
|
|
20704
|
+
if (cap) {
|
|
20705
|
+
var text;
|
|
20706
|
+
|
|
20707
|
+
if (this.lexer.state.inRawBlock) {
|
|
20708
|
+
text = this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]) : cap[0];
|
|
20709
|
+
} else {
|
|
20710
|
+
text = _escape(this.options.smartypants ? smartypants(cap[0]) : cap[0]);
|
|
20711
|
+
}
|
|
20712
|
+
|
|
20713
|
+
return {
|
|
20714
|
+
type: 'text',
|
|
20715
|
+
raw: cap[0],
|
|
20716
|
+
text: text
|
|
20717
|
+
};
|
|
20718
|
+
}
|
|
20719
|
+
};
|
|
20720
|
+
|
|
20721
|
+
return Tokenizer;
|
|
20722
|
+
}();
|
|
20723
|
+
|
|
20724
|
+
var noopTest = helpers.noopTest,
|
|
20725
|
+
edit = helpers.edit,
|
|
20726
|
+
merge$1 = helpers.merge;
|
|
20727
|
+
/**
|
|
20728
|
+
* Block-Level Grammar
|
|
20729
|
+
*/
|
|
20730
|
+
|
|
20731
|
+
var block$1 = {
|
|
20732
|
+
newline: /^(?: *(?:\n|$))+/,
|
|
20733
|
+
code: /^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,
|
|
20734
|
+
fences: /^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,
|
|
20735
|
+
hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,
|
|
20736
|
+
heading: /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,
|
|
20737
|
+
blockquote: /^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,
|
|
20738
|
+
list: /^( {0,3}bull)( [^\n]+?)?(?:\n|$)/,
|
|
20739
|
+
html: '^ {0,3}(?:' // optional indentation
|
|
20740
|
+
+ '<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)' // (1)
|
|
20741
|
+
+ '|comment[^\\n]*(\\n+|$)' // (2)
|
|
20742
|
+
+ '|<\\?[\\s\\S]*?(?:\\?>\\n*|$)' // (3)
|
|
20743
|
+
+ '|<![A-Z][\\s\\S]*?(?:>\\n*|$)' // (4)
|
|
20744
|
+
+ '|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)' // (5)
|
|
20745
|
+
+ '|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)' // (6)
|
|
20746
|
+
+ '|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)' // (7) open tag
|
|
20747
|
+
+ '|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)' // (7) closing tag
|
|
20748
|
+
+ ')',
|
|
20749
|
+
def: /^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,
|
|
20750
|
+
table: noopTest,
|
|
20751
|
+
lheading: /^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,
|
|
20752
|
+
// regex template, placeholders will be replaced according to different paragraph
|
|
20753
|
+
// interruption rules of commonmark and the original markdown spec:
|
|
20754
|
+
_paragraph: /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html| +\n)[^\n]+)*)/,
|
|
20755
|
+
text: /^[^\n]+/
|
|
20756
|
+
};
|
|
20757
|
+
block$1._label = /(?!\s*\])(?:\\[\[\]]|[^\[\]])+/;
|
|
20758
|
+
block$1._title = /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/;
|
|
20759
|
+
block$1.def = edit(block$1.def).replace('label', block$1._label).replace('title', block$1._title).getRegex();
|
|
20760
|
+
block$1.bullet = /(?:[*+-]|\d{1,9}[.)])/;
|
|
20761
|
+
block$1.listItemStart = edit(/^( *)(bull) */).replace('bull', block$1.bullet).getRegex();
|
|
20762
|
+
block$1.list = edit(block$1.list).replace(/bull/g, block$1.bullet).replace('hr', '\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))').replace('def', '\\n+(?=' + block$1.def.source + ')').getRegex();
|
|
20763
|
+
block$1._tag = 'address|article|aside|base|basefont|blockquote|body|caption' + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption' + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe' + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option' + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr' + '|track|ul';
|
|
20764
|
+
block$1._comment = /<!--(?!-?>)[\s\S]*?(?:-->|$)/;
|
|
20765
|
+
block$1.html = edit(block$1.html, 'i').replace('comment', block$1._comment).replace('tag', block$1._tag).replace('attribute', / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();
|
|
20766
|
+
block$1.paragraph = edit(block$1._paragraph).replace('hr', block$1.hr).replace('heading', ' {0,3}#{1,6} ').replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs
|
|
20767
|
+
.replace('blockquote', ' {0,3}>').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt
|
|
20768
|
+
.replace('html', '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)').replace('tag', block$1._tag) // pars can be interrupted by type (6) html blocks
|
|
20769
|
+
.getRegex();
|
|
20770
|
+
block$1.blockquote = edit(block$1.blockquote).replace('paragraph', block$1.paragraph).getRegex();
|
|
20771
|
+
/**
|
|
20772
|
+
* Normal Block Grammar
|
|
20773
|
+
*/
|
|
20774
|
+
|
|
20775
|
+
block$1.normal = merge$1({}, block$1);
|
|
20776
|
+
/**
|
|
20777
|
+
* GFM Block Grammar
|
|
20778
|
+
*/
|
|
20779
|
+
|
|
20780
|
+
block$1.gfm = merge$1({}, block$1.normal, {
|
|
20781
|
+
table: '^ *([^\\n ].*\\|.*)\\n' // Header
|
|
20782
|
+
+ ' {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?' // Align
|
|
20783
|
+
+ '(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)' // Cells
|
|
20784
|
+
|
|
20785
|
+
});
|
|
20786
|
+
block$1.gfm.table = edit(block$1.gfm.table).replace('hr', block$1.hr).replace('heading', ' {0,3}#{1,6} ').replace('blockquote', ' {0,3}>').replace('code', ' {4}[^\\n]').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt
|
|
20787
|
+
.replace('html', '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)').replace('tag', block$1._tag) // tables can be interrupted by type (6) html blocks
|
|
20788
|
+
.getRegex();
|
|
20789
|
+
/**
|
|
20790
|
+
* Pedantic grammar (original John Gruber's loose markdown specification)
|
|
20791
|
+
*/
|
|
20792
|
+
|
|
20793
|
+
block$1.pedantic = merge$1({}, block$1.normal, {
|
|
20794
|
+
html: edit('^ *(?:comment *(?:\\n|\\s*$)' + '|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)' // closed tag
|
|
20795
|
+
+ '|<tag(?:"[^"]*"|\'[^\']*\'|\\s[^\'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))').replace('comment', block$1._comment).replace(/tag/g, '(?!(?:' + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub' + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)' + '\\b)\\w+(?!:|[^\\w\\s@]*@)\\b').getRegex(),
|
|
20796
|
+
def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,
|
|
20797
|
+
heading: /^(#{1,6})(.*)(?:\n+|$)/,
|
|
20798
|
+
fences: noopTest,
|
|
20799
|
+
// fences not supported
|
|
20800
|
+
paragraph: edit(block$1.normal._paragraph).replace('hr', block$1.hr).replace('heading', ' *#{1,6} *[^\n]').replace('lheading', block$1.lheading).replace('blockquote', ' {0,3}>').replace('|fences', '').replace('|list', '').replace('|html', '').getRegex()
|
|
20801
|
+
});
|
|
20802
|
+
/**
|
|
20803
|
+
* Inline-Level Grammar
|
|
20804
|
+
*/
|
|
20805
|
+
|
|
20806
|
+
var inline$1 = {
|
|
20807
|
+
escape: /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,
|
|
20808
|
+
autolink: /^<(scheme:[^\s\x00-\x1f<>]*|email)>/,
|
|
20809
|
+
url: noopTest,
|
|
20810
|
+
tag: '^comment' + '|^</[a-zA-Z][\\w:-]*\\s*>' // self-closing tag
|
|
20811
|
+
+ '|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>' // open tag
|
|
20812
|
+
+ '|^<\\?[\\s\\S]*?\\?>' // processing instruction, e.g. <?php ?>
|
|
20813
|
+
+ '|^<![a-zA-Z]+\\s[\\s\\S]*?>' // declaration, e.g. <!DOCTYPE html>
|
|
20814
|
+
+ '|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>',
|
|
20815
|
+
// CDATA section
|
|
20816
|
+
link: /^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,
|
|
20817
|
+
reflink: /^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,
|
|
20818
|
+
nolink: /^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,
|
|
20819
|
+
reflinkSearch: 'reflink|nolink(?!\\()',
|
|
20820
|
+
emStrong: {
|
|
20821
|
+
lDelim: /^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,
|
|
20822
|
+
// (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.
|
|
20823
|
+
// () Skip orphan delim inside strong (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a
|
|
20824
|
+
rDelimAst: /^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,
|
|
20825
|
+
rDelimUnd: /^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/ // ^- Not allowed for _
|
|
20826
|
+
|
|
20827
|
+
},
|
|
20828
|
+
code: /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,
|
|
20829
|
+
br: /^( {2,}|\\)\n(?!\s*$)/,
|
|
20830
|
+
del: noopTest,
|
|
20831
|
+
text: /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,
|
|
20832
|
+
punctuation: /^([\spunctuation])/
|
|
20833
|
+
}; // list of punctuation marks from CommonMark spec
|
|
20834
|
+
// without * and _ to handle the different emphasis markers * and _
|
|
20835
|
+
|
|
20836
|
+
inline$1._punctuation = '!"#$%&\'()+\\-.,/:;<=>?@\\[\\]`^{|}~';
|
|
20837
|
+
inline$1.punctuation = edit(inline$1.punctuation).replace(/punctuation/g, inline$1._punctuation).getRegex(); // sequences em should skip over [title](link), `code`, <html>
|
|
20838
|
+
|
|
20839
|
+
inline$1.blockSkip = /\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g;
|
|
20840
|
+
inline$1.escapedEmSt = /\\\*|\\_/g;
|
|
20841
|
+
inline$1._comment = edit(block$1._comment).replace('(?:-->|$)', '-->').getRegex();
|
|
20842
|
+
inline$1.emStrong.lDelim = edit(inline$1.emStrong.lDelim).replace(/punct/g, inline$1._punctuation).getRegex();
|
|
20843
|
+
inline$1.emStrong.rDelimAst = edit(inline$1.emStrong.rDelimAst, 'g').replace(/punct/g, inline$1._punctuation).getRegex();
|
|
20844
|
+
inline$1.emStrong.rDelimUnd = edit(inline$1.emStrong.rDelimUnd, 'g').replace(/punct/g, inline$1._punctuation).getRegex();
|
|
20845
|
+
inline$1._escapes = /\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g;
|
|
20846
|
+
inline$1._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;
|
|
20847
|
+
inline$1._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;
|
|
20848
|
+
inline$1.autolink = edit(inline$1.autolink).replace('scheme', inline$1._scheme).replace('email', inline$1._email).getRegex();
|
|
20849
|
+
inline$1._attribute = /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;
|
|
20850
|
+
inline$1.tag = edit(inline$1.tag).replace('comment', inline$1._comment).replace('attribute', inline$1._attribute).getRegex();
|
|
20851
|
+
inline$1._label = /(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;
|
|
20852
|
+
inline$1._href = /<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/;
|
|
20853
|
+
inline$1._title = /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;
|
|
20854
|
+
inline$1.link = edit(inline$1.link).replace('label', inline$1._label).replace('href', inline$1._href).replace('title', inline$1._title).getRegex();
|
|
20855
|
+
inline$1.reflink = edit(inline$1.reflink).replace('label', inline$1._label).getRegex();
|
|
20856
|
+
inline$1.reflinkSearch = edit(inline$1.reflinkSearch, 'g').replace('reflink', inline$1.reflink).replace('nolink', inline$1.nolink).getRegex();
|
|
20857
|
+
/**
|
|
20858
|
+
* Normal Inline Grammar
|
|
20859
|
+
*/
|
|
20860
|
+
|
|
20861
|
+
inline$1.normal = merge$1({}, inline$1);
|
|
20862
|
+
/**
|
|
20863
|
+
* Pedantic Inline Grammar
|
|
20864
|
+
*/
|
|
20865
|
+
|
|
20866
|
+
inline$1.pedantic = merge$1({}, inline$1.normal, {
|
|
20867
|
+
strong: {
|
|
20868
|
+
start: /^__|\*\*/,
|
|
20869
|
+
middle: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
|
|
20870
|
+
endAst: /\*\*(?!\*)/g,
|
|
20871
|
+
endUnd: /__(?!_)/g
|
|
20872
|
+
},
|
|
20873
|
+
em: {
|
|
20874
|
+
start: /^_|\*/,
|
|
20875
|
+
middle: /^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,
|
|
20876
|
+
endAst: /\*(?!\*)/g,
|
|
20877
|
+
endUnd: /_(?!_)/g
|
|
20878
|
+
},
|
|
20879
|
+
link: edit(/^!?\[(label)\]\((.*?)\)/).replace('label', inline$1._label).getRegex(),
|
|
20880
|
+
reflink: edit(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace('label', inline$1._label).getRegex()
|
|
20881
|
+
});
|
|
20882
|
+
/**
|
|
20883
|
+
* GFM Inline Grammar
|
|
20884
|
+
*/
|
|
20885
|
+
|
|
20886
|
+
inline$1.gfm = merge$1({}, inline$1.normal, {
|
|
20887
|
+
escape: edit(inline$1.escape).replace('])', '~|])').getRegex(),
|
|
20888
|
+
_extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,
|
|
20889
|
+
url: /^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,
|
|
20890
|
+
_backpedal: /(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,
|
|
20891
|
+
del: /^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,
|
|
20892
|
+
text: /^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/
|
|
20893
|
+
});
|
|
20894
|
+
inline$1.gfm.url = edit(inline$1.gfm.url, 'i').replace('email', inline$1.gfm._extended_email).getRegex();
|
|
20895
|
+
/**
|
|
20896
|
+
* GFM + Line Breaks Inline Grammar
|
|
20897
|
+
*/
|
|
20898
|
+
|
|
20899
|
+
inline$1.breaks = merge$1({}, inline$1.gfm, {
|
|
20900
|
+
br: edit(inline$1.br).replace('{2,}', '*').getRegex(),
|
|
20901
|
+
text: edit(inline$1.gfm.text).replace('\\b_', '\\b_| {2,}\\n').replace(/\{2,\}/g, '*').getRegex()
|
|
20902
|
+
});
|
|
20903
|
+
var rules = {
|
|
20904
|
+
block: block$1,
|
|
20905
|
+
inline: inline$1
|
|
20906
|
+
};
|
|
20907
|
+
|
|
20908
|
+
var Tokenizer$1 = Tokenizer_1;
|
|
20909
|
+
var defaults$3 = defaults$5.exports.defaults;
|
|
20910
|
+
var block = rules.block,
|
|
20911
|
+
inline = rules.inline;
|
|
20912
|
+
var repeatString = helpers.repeatString;
|
|
20913
|
+
/**
|
|
20914
|
+
* smartypants text replacement
|
|
20915
|
+
*/
|
|
20916
|
+
|
|
20917
|
+
function smartypants(text) {
|
|
20918
|
+
return text // em-dashes
|
|
20919
|
+
.replace(/---/g, "\u2014") // en-dashes
|
|
20920
|
+
.replace(/--/g, "\u2013") // opening singles
|
|
20921
|
+
.replace(/(^|[-\u2014/(\[{"\s])'/g, "$1\u2018") // closing singles & apostrophes
|
|
20922
|
+
.replace(/'/g, "\u2019") // opening doubles
|
|
20923
|
+
.replace(/(^|[-\u2014/(\[{\u2018\s])"/g, "$1\u201C") // closing doubles
|
|
20924
|
+
.replace(/"/g, "\u201D") // ellipses
|
|
20925
|
+
.replace(/\.{3}/g, "\u2026");
|
|
20926
|
+
}
|
|
20927
|
+
/**
|
|
20928
|
+
* mangle email addresses
|
|
20929
|
+
*/
|
|
20930
|
+
|
|
20931
|
+
|
|
20932
|
+
function mangle(text) {
|
|
20933
|
+
var out = '',
|
|
20934
|
+
i,
|
|
20935
|
+
ch;
|
|
20936
|
+
var l = text.length;
|
|
20937
|
+
|
|
20938
|
+
for (i = 0; i < l; i++) {
|
|
20939
|
+
ch = text.charCodeAt(i);
|
|
20940
|
+
|
|
20941
|
+
if (Math.random() > 0.5) {
|
|
20942
|
+
ch = 'x' + ch.toString(16);
|
|
20943
|
+
}
|
|
20944
|
+
|
|
20945
|
+
out += '&#' + ch + ';';
|
|
20946
|
+
}
|
|
20947
|
+
|
|
20948
|
+
return out;
|
|
20949
|
+
}
|
|
20950
|
+
/**
|
|
20951
|
+
* Block Lexer
|
|
20952
|
+
*/
|
|
20953
|
+
|
|
20954
|
+
|
|
20955
|
+
var Lexer_1 = /*#__PURE__*/function () {
|
|
20956
|
+
function Lexer(options) {
|
|
20957
|
+
this.tokens = [];
|
|
20958
|
+
this.tokens.links = Object.create(null);
|
|
20959
|
+
this.options = options || defaults$3;
|
|
20960
|
+
this.options.tokenizer = this.options.tokenizer || new Tokenizer$1();
|
|
20961
|
+
this.tokenizer = this.options.tokenizer;
|
|
20962
|
+
this.tokenizer.options = this.options;
|
|
20963
|
+
this.tokenizer.lexer = this;
|
|
20964
|
+
this.inlineQueue = [];
|
|
20965
|
+
this.state = {
|
|
20966
|
+
inLink: false,
|
|
20967
|
+
inRawBlock: false,
|
|
20968
|
+
top: true
|
|
20969
|
+
};
|
|
20970
|
+
var rules = {
|
|
20971
|
+
block: block.normal,
|
|
20972
|
+
inline: inline.normal
|
|
20973
|
+
};
|
|
20974
|
+
|
|
20975
|
+
if (this.options.pedantic) {
|
|
20976
|
+
rules.block = block.pedantic;
|
|
20977
|
+
rules.inline = inline.pedantic;
|
|
20978
|
+
} else if (this.options.gfm) {
|
|
20979
|
+
rules.block = block.gfm;
|
|
20980
|
+
|
|
20981
|
+
if (this.options.breaks) {
|
|
20982
|
+
rules.inline = inline.breaks;
|
|
20983
|
+
} else {
|
|
20984
|
+
rules.inline = inline.gfm;
|
|
20985
|
+
}
|
|
20986
|
+
}
|
|
20987
|
+
|
|
20988
|
+
this.tokenizer.rules = rules;
|
|
20989
|
+
}
|
|
20990
|
+
/**
|
|
20991
|
+
* Expose Rules
|
|
20992
|
+
*/
|
|
20993
|
+
|
|
20994
|
+
|
|
20995
|
+
/**
|
|
20996
|
+
* Static Lex Method
|
|
20997
|
+
*/
|
|
20998
|
+
Lexer.lex = function lex(src, options) {
|
|
20999
|
+
var lexer = new Lexer(options);
|
|
21000
|
+
return lexer.lex(src);
|
|
21001
|
+
}
|
|
21002
|
+
/**
|
|
21003
|
+
* Static Lex Inline Method
|
|
21004
|
+
*/
|
|
21005
|
+
;
|
|
21006
|
+
|
|
21007
|
+
Lexer.lexInline = function lexInline(src, options) {
|
|
21008
|
+
var lexer = new Lexer(options);
|
|
21009
|
+
return lexer.inlineTokens(src);
|
|
21010
|
+
}
|
|
21011
|
+
/**
|
|
21012
|
+
* Preprocessing
|
|
21013
|
+
*/
|
|
21014
|
+
;
|
|
21015
|
+
|
|
21016
|
+
var _proto = Lexer.prototype;
|
|
21017
|
+
|
|
21018
|
+
_proto.lex = function lex(src) {
|
|
21019
|
+
src = src.replace(/\r\n|\r/g, '\n').replace(/\t/g, ' ');
|
|
21020
|
+
this.blockTokens(src, this.tokens);
|
|
21021
|
+
var next;
|
|
21022
|
+
|
|
21023
|
+
while (next = this.inlineQueue.shift()) {
|
|
21024
|
+
this.inlineTokens(next.src, next.tokens);
|
|
21025
|
+
}
|
|
21026
|
+
|
|
21027
|
+
return this.tokens;
|
|
21028
|
+
}
|
|
21029
|
+
/**
|
|
21030
|
+
* Lexing
|
|
21031
|
+
*/
|
|
21032
|
+
;
|
|
21033
|
+
|
|
21034
|
+
_proto.blockTokens = function blockTokens(src, tokens) {
|
|
21035
|
+
var _this = this;
|
|
21036
|
+
|
|
21037
|
+
if (tokens === void 0) {
|
|
21038
|
+
tokens = [];
|
|
21039
|
+
}
|
|
21040
|
+
|
|
21041
|
+
if (this.options.pedantic) {
|
|
21042
|
+
src = src.replace(/^ +$/gm, '');
|
|
21043
|
+
}
|
|
21044
|
+
|
|
21045
|
+
var token, lastToken, cutSrc, lastParagraphClipped;
|
|
21046
|
+
|
|
21047
|
+
while (src) {
|
|
21048
|
+
if (this.options.extensions && this.options.extensions.block && this.options.extensions.block.some(function (extTokenizer) {
|
|
21049
|
+
if (token = extTokenizer.call({
|
|
21050
|
+
lexer: _this
|
|
21051
|
+
}, src, tokens)) {
|
|
21052
|
+
src = src.substring(token.raw.length);
|
|
21053
|
+
tokens.push(token);
|
|
21054
|
+
return true;
|
|
21055
|
+
}
|
|
21056
|
+
|
|
21057
|
+
return false;
|
|
21058
|
+
})) {
|
|
21059
|
+
continue;
|
|
21060
|
+
} // newline
|
|
21061
|
+
|
|
21062
|
+
|
|
21063
|
+
if (token = this.tokenizer.space(src)) {
|
|
21064
|
+
src = src.substring(token.raw.length);
|
|
21065
|
+
|
|
21066
|
+
if (token.type) {
|
|
21067
|
+
tokens.push(token);
|
|
21068
|
+
}
|
|
21069
|
+
|
|
21070
|
+
continue;
|
|
21071
|
+
} // code
|
|
21072
|
+
|
|
21073
|
+
|
|
21074
|
+
if (token = this.tokenizer.code(src)) {
|
|
21075
|
+
src = src.substring(token.raw.length);
|
|
21076
|
+
lastToken = tokens[tokens.length - 1]; // An indented code block cannot interrupt a paragraph.
|
|
21077
|
+
|
|
21078
|
+
if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {
|
|
21079
|
+
lastToken.raw += '\n' + token.raw;
|
|
21080
|
+
lastToken.text += '\n' + token.text;
|
|
21081
|
+
this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;
|
|
21082
|
+
} else {
|
|
21083
|
+
tokens.push(token);
|
|
21084
|
+
}
|
|
21085
|
+
|
|
21086
|
+
continue;
|
|
21087
|
+
} // fences
|
|
21088
|
+
|
|
21089
|
+
|
|
21090
|
+
if (token = this.tokenizer.fences(src)) {
|
|
21091
|
+
src = src.substring(token.raw.length);
|
|
21092
|
+
tokens.push(token);
|
|
21093
|
+
continue;
|
|
21094
|
+
} // heading
|
|
21095
|
+
|
|
21096
|
+
|
|
21097
|
+
if (token = this.tokenizer.heading(src)) {
|
|
21098
|
+
src = src.substring(token.raw.length);
|
|
21099
|
+
tokens.push(token);
|
|
21100
|
+
continue;
|
|
21101
|
+
} // hr
|
|
21102
|
+
|
|
21103
|
+
|
|
21104
|
+
if (token = this.tokenizer.hr(src)) {
|
|
21105
|
+
src = src.substring(token.raw.length);
|
|
21106
|
+
tokens.push(token);
|
|
21107
|
+
continue;
|
|
21108
|
+
} // blockquote
|
|
21109
|
+
|
|
21110
|
+
|
|
21111
|
+
if (token = this.tokenizer.blockquote(src)) {
|
|
21112
|
+
src = src.substring(token.raw.length);
|
|
21113
|
+
tokens.push(token);
|
|
21114
|
+
continue;
|
|
21115
|
+
} // list
|
|
21116
|
+
|
|
21117
|
+
|
|
21118
|
+
if (token = this.tokenizer.list(src)) {
|
|
21119
|
+
src = src.substring(token.raw.length);
|
|
21120
|
+
tokens.push(token);
|
|
21121
|
+
continue;
|
|
21122
|
+
} // html
|
|
21123
|
+
|
|
21124
|
+
|
|
21125
|
+
if (token = this.tokenizer.html(src)) {
|
|
21126
|
+
src = src.substring(token.raw.length);
|
|
21127
|
+
tokens.push(token);
|
|
21128
|
+
continue;
|
|
21129
|
+
} // def
|
|
21130
|
+
|
|
21131
|
+
|
|
21132
|
+
if (token = this.tokenizer.def(src)) {
|
|
21133
|
+
src = src.substring(token.raw.length);
|
|
21134
|
+
lastToken = tokens[tokens.length - 1];
|
|
21135
|
+
|
|
21136
|
+
if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {
|
|
21137
|
+
lastToken.raw += '\n' + token.raw;
|
|
21138
|
+
lastToken.text += '\n' + token.raw;
|
|
21139
|
+
this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;
|
|
21140
|
+
} else if (!this.tokens.links[token.tag]) {
|
|
21141
|
+
this.tokens.links[token.tag] = {
|
|
21142
|
+
href: token.href,
|
|
21143
|
+
title: token.title
|
|
21144
|
+
};
|
|
21145
|
+
}
|
|
21146
|
+
|
|
21147
|
+
continue;
|
|
21148
|
+
} // table (gfm)
|
|
21149
|
+
|
|
21150
|
+
|
|
21151
|
+
if (token = this.tokenizer.table(src)) {
|
|
21152
|
+
src = src.substring(token.raw.length);
|
|
21153
|
+
tokens.push(token);
|
|
21154
|
+
continue;
|
|
21155
|
+
} // lheading
|
|
21156
|
+
|
|
21157
|
+
|
|
21158
|
+
if (token = this.tokenizer.lheading(src)) {
|
|
21159
|
+
src = src.substring(token.raw.length);
|
|
21160
|
+
tokens.push(token);
|
|
21161
|
+
continue;
|
|
21162
|
+
} // top-level paragraph
|
|
21163
|
+
// prevent paragraph consuming extensions by clipping 'src' to extension start
|
|
21164
|
+
|
|
21165
|
+
|
|
21166
|
+
cutSrc = src;
|
|
21167
|
+
|
|
21168
|
+
if (this.options.extensions && this.options.extensions.startBlock) {
|
|
21169
|
+
(function () {
|
|
21170
|
+
var startIndex = Infinity;
|
|
21171
|
+
var tempSrc = src.slice(1);
|
|
21172
|
+
var tempStart = void 0;
|
|
21173
|
+
|
|
21174
|
+
_this.options.extensions.startBlock.forEach(function (getStartIndex) {
|
|
21175
|
+
tempStart = getStartIndex.call({
|
|
21176
|
+
lexer: this
|
|
21177
|
+
}, tempSrc);
|
|
21178
|
+
|
|
21179
|
+
if (typeof tempStart === 'number' && tempStart >= 0) {
|
|
21180
|
+
startIndex = Math.min(startIndex, tempStart);
|
|
21181
|
+
}
|
|
21182
|
+
});
|
|
21183
|
+
|
|
21184
|
+
if (startIndex < Infinity && startIndex >= 0) {
|
|
21185
|
+
cutSrc = src.substring(0, startIndex + 1);
|
|
21186
|
+
}
|
|
21187
|
+
})();
|
|
21188
|
+
}
|
|
21189
|
+
|
|
21190
|
+
if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {
|
|
21191
|
+
lastToken = tokens[tokens.length - 1];
|
|
21192
|
+
|
|
21193
|
+
if (lastParagraphClipped && lastToken.type === 'paragraph') {
|
|
21194
|
+
lastToken.raw += '\n' + token.raw;
|
|
21195
|
+
lastToken.text += '\n' + token.text;
|
|
21196
|
+
this.inlineQueue.pop();
|
|
21197
|
+
this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;
|
|
21198
|
+
} else {
|
|
21199
|
+
tokens.push(token);
|
|
21200
|
+
}
|
|
21201
|
+
|
|
21202
|
+
lastParagraphClipped = cutSrc.length !== src.length;
|
|
21203
|
+
src = src.substring(token.raw.length);
|
|
21204
|
+
continue;
|
|
21205
|
+
} // text
|
|
21206
|
+
|
|
21207
|
+
|
|
21208
|
+
if (token = this.tokenizer.text(src)) {
|
|
21209
|
+
src = src.substring(token.raw.length);
|
|
21210
|
+
lastToken = tokens[tokens.length - 1];
|
|
21211
|
+
|
|
21212
|
+
if (lastToken && lastToken.type === 'text') {
|
|
21213
|
+
lastToken.raw += '\n' + token.raw;
|
|
21214
|
+
lastToken.text += '\n' + token.text;
|
|
21215
|
+
this.inlineQueue.pop();
|
|
21216
|
+
this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;
|
|
21217
|
+
} else {
|
|
21218
|
+
tokens.push(token);
|
|
21219
|
+
}
|
|
21220
|
+
|
|
21221
|
+
continue;
|
|
21222
|
+
}
|
|
21223
|
+
|
|
21224
|
+
if (src) {
|
|
21225
|
+
var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);
|
|
21226
|
+
|
|
21227
|
+
if (this.options.silent) {
|
|
21228
|
+
console.error(errMsg);
|
|
21229
|
+
break;
|
|
21230
|
+
} else {
|
|
21231
|
+
throw new Error(errMsg);
|
|
21232
|
+
}
|
|
21233
|
+
}
|
|
21234
|
+
}
|
|
21235
|
+
|
|
21236
|
+
this.state.top = true;
|
|
21237
|
+
return tokens;
|
|
21238
|
+
};
|
|
21239
|
+
|
|
21240
|
+
_proto.inline = function inline(src, tokens) {
|
|
21241
|
+
this.inlineQueue.push({
|
|
21242
|
+
src: src,
|
|
21243
|
+
tokens: tokens
|
|
21244
|
+
});
|
|
21245
|
+
}
|
|
21246
|
+
/**
|
|
21247
|
+
* Lexing/Compiling
|
|
21248
|
+
*/
|
|
21249
|
+
;
|
|
21250
|
+
|
|
21251
|
+
_proto.inlineTokens = function inlineTokens(src, tokens) {
|
|
21252
|
+
var _this2 = this;
|
|
21253
|
+
|
|
21254
|
+
if (tokens === void 0) {
|
|
21255
|
+
tokens = [];
|
|
21256
|
+
}
|
|
21257
|
+
|
|
21258
|
+
var token, lastToken, cutSrc; // String with links masked to avoid interference with em and strong
|
|
21259
|
+
|
|
21260
|
+
var maskedSrc = src;
|
|
21261
|
+
var match;
|
|
21262
|
+
var keepPrevChar, prevChar; // Mask out reflinks
|
|
21263
|
+
|
|
21264
|
+
if (this.tokens.links) {
|
|
21265
|
+
var links = Object.keys(this.tokens.links);
|
|
21266
|
+
|
|
21267
|
+
if (links.length > 0) {
|
|
21268
|
+
while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {
|
|
21269
|
+
if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {
|
|
21270
|
+
maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);
|
|
21271
|
+
}
|
|
21272
|
+
}
|
|
21273
|
+
}
|
|
21274
|
+
} // Mask out other blocks
|
|
21275
|
+
|
|
21276
|
+
|
|
21277
|
+
while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {
|
|
21278
|
+
maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);
|
|
21279
|
+
} // Mask out escaped em & strong delimiters
|
|
21280
|
+
|
|
21281
|
+
|
|
21282
|
+
while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {
|
|
21283
|
+
maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);
|
|
21284
|
+
}
|
|
21285
|
+
|
|
21286
|
+
while (src) {
|
|
21287
|
+
if (!keepPrevChar) {
|
|
21288
|
+
prevChar = '';
|
|
21289
|
+
}
|
|
21290
|
+
|
|
21291
|
+
keepPrevChar = false; // extensions
|
|
21292
|
+
|
|
21293
|
+
if (this.options.extensions && this.options.extensions.inline && this.options.extensions.inline.some(function (extTokenizer) {
|
|
21294
|
+
if (token = extTokenizer.call({
|
|
21295
|
+
lexer: _this2
|
|
21296
|
+
}, src, tokens)) {
|
|
21297
|
+
src = src.substring(token.raw.length);
|
|
21298
|
+
tokens.push(token);
|
|
21299
|
+
return true;
|
|
21300
|
+
}
|
|
21301
|
+
|
|
21302
|
+
return false;
|
|
21303
|
+
})) {
|
|
21304
|
+
continue;
|
|
21305
|
+
} // escape
|
|
21306
|
+
|
|
21307
|
+
|
|
21308
|
+
if (token = this.tokenizer.escape(src)) {
|
|
21309
|
+
src = src.substring(token.raw.length);
|
|
21310
|
+
tokens.push(token);
|
|
21311
|
+
continue;
|
|
21312
|
+
} // tag
|
|
21313
|
+
|
|
21314
|
+
|
|
21315
|
+
if (token = this.tokenizer.tag(src)) {
|
|
21316
|
+
src = src.substring(token.raw.length);
|
|
21317
|
+
lastToken = tokens[tokens.length - 1];
|
|
21318
|
+
|
|
21319
|
+
if (lastToken && token.type === 'text' && lastToken.type === 'text') {
|
|
21320
|
+
lastToken.raw += token.raw;
|
|
21321
|
+
lastToken.text += token.text;
|
|
21322
|
+
} else {
|
|
21323
|
+
tokens.push(token);
|
|
21324
|
+
}
|
|
21325
|
+
|
|
21326
|
+
continue;
|
|
21327
|
+
} // link
|
|
21328
|
+
|
|
21329
|
+
|
|
21330
|
+
if (token = this.tokenizer.link(src)) {
|
|
21331
|
+
src = src.substring(token.raw.length);
|
|
21332
|
+
tokens.push(token);
|
|
21333
|
+
continue;
|
|
21334
|
+
} // reflink, nolink
|
|
21335
|
+
|
|
21336
|
+
|
|
21337
|
+
if (token = this.tokenizer.reflink(src, this.tokens.links)) {
|
|
21338
|
+
src = src.substring(token.raw.length);
|
|
21339
|
+
lastToken = tokens[tokens.length - 1];
|
|
21340
|
+
|
|
21341
|
+
if (lastToken && token.type === 'text' && lastToken.type === 'text') {
|
|
21342
|
+
lastToken.raw += token.raw;
|
|
21343
|
+
lastToken.text += token.text;
|
|
21344
|
+
} else {
|
|
21345
|
+
tokens.push(token);
|
|
21346
|
+
}
|
|
21347
|
+
|
|
21348
|
+
continue;
|
|
21349
|
+
} // em & strong
|
|
21350
|
+
|
|
21351
|
+
|
|
21352
|
+
if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {
|
|
21353
|
+
src = src.substring(token.raw.length);
|
|
21354
|
+
tokens.push(token);
|
|
21355
|
+
continue;
|
|
21356
|
+
} // code
|
|
21357
|
+
|
|
21358
|
+
|
|
21359
|
+
if (token = this.tokenizer.codespan(src)) {
|
|
21360
|
+
src = src.substring(token.raw.length);
|
|
21361
|
+
tokens.push(token);
|
|
21362
|
+
continue;
|
|
21363
|
+
} // br
|
|
21364
|
+
|
|
21365
|
+
|
|
21366
|
+
if (token = this.tokenizer.br(src)) {
|
|
21367
|
+
src = src.substring(token.raw.length);
|
|
21368
|
+
tokens.push(token);
|
|
21369
|
+
continue;
|
|
21370
|
+
} // del (gfm)
|
|
21371
|
+
|
|
21372
|
+
|
|
21373
|
+
if (token = this.tokenizer.del(src)) {
|
|
21374
|
+
src = src.substring(token.raw.length);
|
|
21375
|
+
tokens.push(token);
|
|
21376
|
+
continue;
|
|
21377
|
+
} // autolink
|
|
21378
|
+
|
|
21379
|
+
|
|
21380
|
+
if (token = this.tokenizer.autolink(src, mangle)) {
|
|
21381
|
+
src = src.substring(token.raw.length);
|
|
21382
|
+
tokens.push(token);
|
|
21383
|
+
continue;
|
|
21384
|
+
} // url (gfm)
|
|
21385
|
+
|
|
21386
|
+
|
|
21387
|
+
if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {
|
|
21388
|
+
src = src.substring(token.raw.length);
|
|
21389
|
+
tokens.push(token);
|
|
21390
|
+
continue;
|
|
21391
|
+
} // text
|
|
21392
|
+
// prevent inlineText consuming extensions by clipping 'src' to extension start
|
|
21393
|
+
|
|
21394
|
+
|
|
21395
|
+
cutSrc = src;
|
|
21396
|
+
|
|
21397
|
+
if (this.options.extensions && this.options.extensions.startInline) {
|
|
21398
|
+
(function () {
|
|
21399
|
+
var startIndex = Infinity;
|
|
21400
|
+
var tempSrc = src.slice(1);
|
|
21401
|
+
var tempStart = void 0;
|
|
21402
|
+
|
|
21403
|
+
_this2.options.extensions.startInline.forEach(function (getStartIndex) {
|
|
21404
|
+
tempStart = getStartIndex.call({
|
|
21405
|
+
lexer: this
|
|
21406
|
+
}, tempSrc);
|
|
21407
|
+
|
|
21408
|
+
if (typeof tempStart === 'number' && tempStart >= 0) {
|
|
21409
|
+
startIndex = Math.min(startIndex, tempStart);
|
|
21410
|
+
}
|
|
21411
|
+
});
|
|
21412
|
+
|
|
21413
|
+
if (startIndex < Infinity && startIndex >= 0) {
|
|
21414
|
+
cutSrc = src.substring(0, startIndex + 1);
|
|
21415
|
+
}
|
|
21416
|
+
})();
|
|
21417
|
+
}
|
|
21418
|
+
|
|
21419
|
+
if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {
|
|
21420
|
+
src = src.substring(token.raw.length);
|
|
21421
|
+
|
|
21422
|
+
if (token.raw.slice(-1) !== '_') {
|
|
21423
|
+
// Track prevChar before string of ____ started
|
|
21424
|
+
prevChar = token.raw.slice(-1);
|
|
21425
|
+
}
|
|
21426
|
+
|
|
21427
|
+
keepPrevChar = true;
|
|
21428
|
+
lastToken = tokens[tokens.length - 1];
|
|
21429
|
+
|
|
21430
|
+
if (lastToken && lastToken.type === 'text') {
|
|
21431
|
+
lastToken.raw += token.raw;
|
|
21432
|
+
lastToken.text += token.text;
|
|
21433
|
+
} else {
|
|
21434
|
+
tokens.push(token);
|
|
21435
|
+
}
|
|
21436
|
+
|
|
21437
|
+
continue;
|
|
21438
|
+
}
|
|
21439
|
+
|
|
21440
|
+
if (src) {
|
|
21441
|
+
var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);
|
|
21442
|
+
|
|
21443
|
+
if (this.options.silent) {
|
|
21444
|
+
console.error(errMsg);
|
|
21445
|
+
break;
|
|
21446
|
+
} else {
|
|
21447
|
+
throw new Error(errMsg);
|
|
21448
|
+
}
|
|
21449
|
+
}
|
|
21450
|
+
}
|
|
21451
|
+
|
|
21452
|
+
return tokens;
|
|
21453
|
+
};
|
|
21454
|
+
|
|
21455
|
+
_createClass(Lexer, null, [{
|
|
21456
|
+
key: "rules",
|
|
21457
|
+
get: function get() {
|
|
21458
|
+
return {
|
|
21459
|
+
block: block,
|
|
21460
|
+
inline: inline
|
|
21461
|
+
};
|
|
21462
|
+
}
|
|
21463
|
+
}]);
|
|
21464
|
+
|
|
21465
|
+
return Lexer;
|
|
21466
|
+
}();
|
|
21467
|
+
|
|
21468
|
+
var defaults$2 = defaults$5.exports.defaults;
|
|
21469
|
+
var cleanUrl = helpers.cleanUrl,
|
|
21470
|
+
escape$1 = helpers.escape;
|
|
21471
|
+
/**
|
|
21472
|
+
* Renderer
|
|
21473
|
+
*/
|
|
21474
|
+
|
|
21475
|
+
var Renderer_1 = /*#__PURE__*/function () {
|
|
21476
|
+
function Renderer(options) {
|
|
21477
|
+
this.options = options || defaults$2;
|
|
21478
|
+
}
|
|
21479
|
+
|
|
21480
|
+
var _proto = Renderer.prototype;
|
|
21481
|
+
|
|
21482
|
+
_proto.code = function code(_code, infostring, escaped) {
|
|
21483
|
+
var lang = (infostring || '').match(/\S*/)[0];
|
|
21484
|
+
|
|
21485
|
+
if (this.options.highlight) {
|
|
21486
|
+
var out = this.options.highlight(_code, lang);
|
|
21487
|
+
|
|
21488
|
+
if (out != null && out !== _code) {
|
|
21489
|
+
escaped = true;
|
|
21490
|
+
_code = out;
|
|
21491
|
+
}
|
|
21492
|
+
}
|
|
21493
|
+
|
|
21494
|
+
_code = _code.replace(/\n$/, '') + '\n';
|
|
21495
|
+
|
|
21496
|
+
if (!lang) {
|
|
21497
|
+
return '<pre><code>' + (escaped ? _code : escape$1(_code, true)) + '</code></pre>\n';
|
|
21498
|
+
}
|
|
21499
|
+
|
|
21500
|
+
return '<pre><code class="' + this.options.langPrefix + escape$1(lang, true) + '">' + (escaped ? _code : escape$1(_code, true)) + '</code></pre>\n';
|
|
21501
|
+
};
|
|
21502
|
+
|
|
21503
|
+
_proto.blockquote = function blockquote(quote) {
|
|
21504
|
+
return '<blockquote>\n' + quote + '</blockquote>\n';
|
|
21505
|
+
};
|
|
21506
|
+
|
|
21507
|
+
_proto.html = function html(_html) {
|
|
21508
|
+
return _html;
|
|
21509
|
+
};
|
|
21510
|
+
|
|
21511
|
+
_proto.heading = function heading(text, level, raw, slugger) {
|
|
21512
|
+
if (this.options.headerIds) {
|
|
21513
|
+
return '<h' + level + ' id="' + this.options.headerPrefix + slugger.slug(raw) + '">' + text + '</h' + level + '>\n';
|
|
21514
|
+
} // ignore IDs
|
|
21515
|
+
|
|
21516
|
+
|
|
21517
|
+
return '<h' + level + '>' + text + '</h' + level + '>\n';
|
|
21518
|
+
};
|
|
21519
|
+
|
|
21520
|
+
_proto.hr = function hr() {
|
|
21521
|
+
return this.options.xhtml ? '<hr/>\n' : '<hr>\n';
|
|
21522
|
+
};
|
|
21523
|
+
|
|
21524
|
+
_proto.list = function list(body, ordered, start) {
|
|
21525
|
+
var type = ordered ? 'ol' : 'ul',
|
|
21526
|
+
startatt = ordered && start !== 1 ? ' start="' + start + '"' : '';
|
|
21527
|
+
return '<' + type + startatt + '>\n' + body + '</' + type + '>\n';
|
|
21528
|
+
};
|
|
21529
|
+
|
|
21530
|
+
_proto.listitem = function listitem(text) {
|
|
21531
|
+
return '<li>' + text + '</li>\n';
|
|
21532
|
+
};
|
|
21533
|
+
|
|
21534
|
+
_proto.checkbox = function checkbox(checked) {
|
|
21535
|
+
return '<input ' + (checked ? 'checked="" ' : '') + 'disabled="" type="checkbox"' + (this.options.xhtml ? ' /' : '') + '> ';
|
|
21536
|
+
};
|
|
21537
|
+
|
|
21538
|
+
_proto.paragraph = function paragraph(text) {
|
|
21539
|
+
return '<p>' + text + '</p>\n';
|
|
21540
|
+
};
|
|
21541
|
+
|
|
21542
|
+
_proto.table = function table(header, body) {
|
|
21543
|
+
if (body) body = '<tbody>' + body + '</tbody>';
|
|
21544
|
+
return '<table>\n' + '<thead>\n' + header + '</thead>\n' + body + '</table>\n';
|
|
21545
|
+
};
|
|
21546
|
+
|
|
21547
|
+
_proto.tablerow = function tablerow(content) {
|
|
21548
|
+
return '<tr>\n' + content + '</tr>\n';
|
|
21549
|
+
};
|
|
21550
|
+
|
|
21551
|
+
_proto.tablecell = function tablecell(content, flags) {
|
|
21552
|
+
var type = flags.header ? 'th' : 'td';
|
|
21553
|
+
var tag = flags.align ? '<' + type + ' align="' + flags.align + '">' : '<' + type + '>';
|
|
21554
|
+
return tag + content + '</' + type + '>\n';
|
|
21555
|
+
} // span level renderer
|
|
21556
|
+
;
|
|
21557
|
+
|
|
21558
|
+
_proto.strong = function strong(text) {
|
|
21559
|
+
return '<strong>' + text + '</strong>';
|
|
21560
|
+
};
|
|
21561
|
+
|
|
21562
|
+
_proto.em = function em(text) {
|
|
21563
|
+
return '<em>' + text + '</em>';
|
|
21564
|
+
};
|
|
21565
|
+
|
|
21566
|
+
_proto.codespan = function codespan(text) {
|
|
21567
|
+
return '<code>' + text + '</code>';
|
|
21568
|
+
};
|
|
21569
|
+
|
|
21570
|
+
_proto.br = function br() {
|
|
21571
|
+
return this.options.xhtml ? '<br/>' : '<br>';
|
|
21572
|
+
};
|
|
21573
|
+
|
|
21574
|
+
_proto.del = function del(text) {
|
|
21575
|
+
return '<del>' + text + '</del>';
|
|
21576
|
+
};
|
|
21577
|
+
|
|
21578
|
+
_proto.link = function link(href, title, text) {
|
|
21579
|
+
href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);
|
|
21580
|
+
|
|
21581
|
+
if (href === null) {
|
|
21582
|
+
return text;
|
|
21583
|
+
}
|
|
21584
|
+
|
|
21585
|
+
var out = '<a href="' + escape$1(href) + '"';
|
|
21586
|
+
|
|
21587
|
+
if (title) {
|
|
21588
|
+
out += ' title="' + title + '"';
|
|
21589
|
+
}
|
|
21590
|
+
|
|
21591
|
+
out += '>' + text + '</a>';
|
|
21592
|
+
return out;
|
|
21593
|
+
};
|
|
21594
|
+
|
|
21595
|
+
_proto.image = function image(href, title, text) {
|
|
21596
|
+
href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);
|
|
21597
|
+
|
|
21598
|
+
if (href === null) {
|
|
21599
|
+
return text;
|
|
21600
|
+
}
|
|
21601
|
+
|
|
21602
|
+
var out = '<img src="' + href + '" alt="' + text + '"';
|
|
21603
|
+
|
|
21604
|
+
if (title) {
|
|
21605
|
+
out += ' title="' + title + '"';
|
|
21606
|
+
}
|
|
21607
|
+
|
|
21608
|
+
out += this.options.xhtml ? '/>' : '>';
|
|
21609
|
+
return out;
|
|
21610
|
+
};
|
|
21611
|
+
|
|
21612
|
+
_proto.text = function text(_text) {
|
|
21613
|
+
return _text;
|
|
21614
|
+
};
|
|
21615
|
+
|
|
21616
|
+
return Renderer;
|
|
21617
|
+
}();
|
|
21618
|
+
|
|
21619
|
+
/**
|
|
21620
|
+
* TextRenderer
|
|
21621
|
+
* returns only the textual part of the token
|
|
21622
|
+
*/
|
|
21623
|
+
|
|
21624
|
+
var TextRenderer_1 = /*#__PURE__*/function () {
|
|
21625
|
+
function TextRenderer() {}
|
|
21626
|
+
|
|
21627
|
+
var _proto = TextRenderer.prototype;
|
|
21628
|
+
|
|
21629
|
+
// no need for block level renderers
|
|
21630
|
+
_proto.strong = function strong(text) {
|
|
21631
|
+
return text;
|
|
21632
|
+
};
|
|
21633
|
+
|
|
21634
|
+
_proto.em = function em(text) {
|
|
21635
|
+
return text;
|
|
21636
|
+
};
|
|
21637
|
+
|
|
21638
|
+
_proto.codespan = function codespan(text) {
|
|
21639
|
+
return text;
|
|
21640
|
+
};
|
|
21641
|
+
|
|
21642
|
+
_proto.del = function del(text) {
|
|
21643
|
+
return text;
|
|
21644
|
+
};
|
|
21645
|
+
|
|
21646
|
+
_proto.html = function html(text) {
|
|
21647
|
+
return text;
|
|
21648
|
+
};
|
|
21649
|
+
|
|
21650
|
+
_proto.text = function text(_text) {
|
|
21651
|
+
return _text;
|
|
21652
|
+
};
|
|
21653
|
+
|
|
21654
|
+
_proto.link = function link(href, title, text) {
|
|
21655
|
+
return '' + text;
|
|
21656
|
+
};
|
|
21657
|
+
|
|
21658
|
+
_proto.image = function image(href, title, text) {
|
|
21659
|
+
return '' + text;
|
|
21660
|
+
};
|
|
21661
|
+
|
|
21662
|
+
_proto.br = function br() {
|
|
21663
|
+
return '';
|
|
21664
|
+
};
|
|
21665
|
+
|
|
21666
|
+
return TextRenderer;
|
|
21667
|
+
}();
|
|
21668
|
+
|
|
21669
|
+
/**
|
|
21670
|
+
* Slugger generates header id
|
|
21671
|
+
*/
|
|
21672
|
+
|
|
21673
|
+
var Slugger_1 = /*#__PURE__*/function () {
|
|
21674
|
+
function Slugger() {
|
|
21675
|
+
this.seen = {};
|
|
21676
|
+
}
|
|
21677
|
+
|
|
21678
|
+
var _proto = Slugger.prototype;
|
|
21679
|
+
|
|
21680
|
+
_proto.serialize = function serialize(value) {
|
|
21681
|
+
return value.toLowerCase().trim() // remove html tags
|
|
21682
|
+
.replace(/<[!\/a-z].*?>/ig, '') // remove unwanted chars
|
|
21683
|
+
.replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g, '').replace(/\s/g, '-');
|
|
21684
|
+
}
|
|
21685
|
+
/**
|
|
21686
|
+
* Finds the next safe (unique) slug to use
|
|
21687
|
+
*/
|
|
21688
|
+
;
|
|
21689
|
+
|
|
21690
|
+
_proto.getNextSafeSlug = function getNextSafeSlug(originalSlug, isDryRun) {
|
|
21691
|
+
var slug = originalSlug;
|
|
21692
|
+
var occurenceAccumulator = 0;
|
|
21693
|
+
|
|
21694
|
+
if (this.seen.hasOwnProperty(slug)) {
|
|
21695
|
+
occurenceAccumulator = this.seen[originalSlug];
|
|
21696
|
+
|
|
21697
|
+
do {
|
|
21698
|
+
occurenceAccumulator++;
|
|
21699
|
+
slug = originalSlug + '-' + occurenceAccumulator;
|
|
21700
|
+
} while (this.seen.hasOwnProperty(slug));
|
|
21701
|
+
}
|
|
21702
|
+
|
|
21703
|
+
if (!isDryRun) {
|
|
21704
|
+
this.seen[originalSlug] = occurenceAccumulator;
|
|
21705
|
+
this.seen[slug] = 0;
|
|
21706
|
+
}
|
|
21707
|
+
|
|
21708
|
+
return slug;
|
|
21709
|
+
}
|
|
21710
|
+
/**
|
|
21711
|
+
* Convert string to unique id
|
|
21712
|
+
* @param {object} options
|
|
21713
|
+
* @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.
|
|
21714
|
+
*/
|
|
21715
|
+
;
|
|
21716
|
+
|
|
21717
|
+
_proto.slug = function slug(value, options) {
|
|
21718
|
+
if (options === void 0) {
|
|
21719
|
+
options = {};
|
|
21720
|
+
}
|
|
21721
|
+
|
|
21722
|
+
var slug = this.serialize(value);
|
|
21723
|
+
return this.getNextSafeSlug(slug, options.dryrun);
|
|
21724
|
+
};
|
|
21725
|
+
|
|
21726
|
+
return Slugger;
|
|
21727
|
+
}();
|
|
21728
|
+
|
|
21729
|
+
var Renderer$1 = Renderer_1;
|
|
21730
|
+
var TextRenderer$1 = TextRenderer_1;
|
|
21731
|
+
var Slugger$1 = Slugger_1;
|
|
21732
|
+
var defaults$1 = defaults$5.exports.defaults;
|
|
21733
|
+
var unescape = helpers.unescape;
|
|
21734
|
+
/**
|
|
21735
|
+
* Parsing & Compiling
|
|
21736
|
+
*/
|
|
21737
|
+
|
|
21738
|
+
var Parser_1 = /*#__PURE__*/function () {
|
|
21739
|
+
function Parser(options) {
|
|
21740
|
+
this.options = options || defaults$1;
|
|
21741
|
+
this.options.renderer = this.options.renderer || new Renderer$1();
|
|
21742
|
+
this.renderer = this.options.renderer;
|
|
21743
|
+
this.renderer.options = this.options;
|
|
21744
|
+
this.textRenderer = new TextRenderer$1();
|
|
21745
|
+
this.slugger = new Slugger$1();
|
|
21746
|
+
}
|
|
21747
|
+
/**
|
|
21748
|
+
* Static Parse Method
|
|
21749
|
+
*/
|
|
21750
|
+
|
|
21751
|
+
|
|
21752
|
+
Parser.parse = function parse(tokens, options) {
|
|
21753
|
+
var parser = new Parser(options);
|
|
21754
|
+
return parser.parse(tokens);
|
|
21755
|
+
}
|
|
21756
|
+
/**
|
|
21757
|
+
* Static Parse Inline Method
|
|
21758
|
+
*/
|
|
21759
|
+
;
|
|
21760
|
+
|
|
21761
|
+
Parser.parseInline = function parseInline(tokens, options) {
|
|
21762
|
+
var parser = new Parser(options);
|
|
21763
|
+
return parser.parseInline(tokens);
|
|
21764
|
+
}
|
|
21765
|
+
/**
|
|
21766
|
+
* Parse Loop
|
|
21767
|
+
*/
|
|
21768
|
+
;
|
|
21769
|
+
|
|
21770
|
+
var _proto = Parser.prototype;
|
|
21771
|
+
|
|
21772
|
+
_proto.parse = function parse(tokens, top) {
|
|
21773
|
+
if (top === void 0) {
|
|
21774
|
+
top = true;
|
|
21775
|
+
}
|
|
21776
|
+
|
|
21777
|
+
var out = '',
|
|
21778
|
+
i,
|
|
21779
|
+
j,
|
|
21780
|
+
k,
|
|
21781
|
+
l2,
|
|
21782
|
+
l3,
|
|
21783
|
+
row,
|
|
21784
|
+
cell,
|
|
21785
|
+
header,
|
|
21786
|
+
body,
|
|
21787
|
+
token,
|
|
21788
|
+
ordered,
|
|
21789
|
+
start,
|
|
21790
|
+
loose,
|
|
21791
|
+
itemBody,
|
|
21792
|
+
item,
|
|
21793
|
+
checked,
|
|
21794
|
+
task,
|
|
21795
|
+
checkbox,
|
|
21796
|
+
ret;
|
|
21797
|
+
var l = tokens.length;
|
|
21798
|
+
|
|
21799
|
+
for (i = 0; i < l; i++) {
|
|
21800
|
+
token = tokens[i]; // Run any renderer extensions
|
|
21801
|
+
|
|
21802
|
+
if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {
|
|
21803
|
+
ret = this.options.extensions.renderers[token.type].call({
|
|
21804
|
+
parser: this
|
|
21805
|
+
}, token);
|
|
21806
|
+
|
|
21807
|
+
if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {
|
|
21808
|
+
out += ret || '';
|
|
21809
|
+
continue;
|
|
21810
|
+
}
|
|
21811
|
+
}
|
|
21812
|
+
|
|
21813
|
+
switch (token.type) {
|
|
21814
|
+
case 'space':
|
|
21815
|
+
{
|
|
21816
|
+
continue;
|
|
21817
|
+
}
|
|
21818
|
+
|
|
21819
|
+
case 'hr':
|
|
21820
|
+
{
|
|
21821
|
+
out += this.renderer.hr();
|
|
21822
|
+
continue;
|
|
21823
|
+
}
|
|
21824
|
+
|
|
21825
|
+
case 'heading':
|
|
21826
|
+
{
|
|
21827
|
+
out += this.renderer.heading(this.parseInline(token.tokens), token.depth, unescape(this.parseInline(token.tokens, this.textRenderer)), this.slugger);
|
|
21828
|
+
continue;
|
|
21829
|
+
}
|
|
21830
|
+
|
|
21831
|
+
case 'code':
|
|
21832
|
+
{
|
|
21833
|
+
out += this.renderer.code(token.text, token.lang, token.escaped);
|
|
21834
|
+
continue;
|
|
21835
|
+
}
|
|
21836
|
+
|
|
21837
|
+
case 'table':
|
|
21838
|
+
{
|
|
21839
|
+
header = ''; // header
|
|
21840
|
+
|
|
21841
|
+
cell = '';
|
|
21842
|
+
l2 = token.header.length;
|
|
21843
|
+
|
|
21844
|
+
for (j = 0; j < l2; j++) {
|
|
21845
|
+
cell += this.renderer.tablecell(this.parseInline(token.header[j].tokens), {
|
|
21846
|
+
header: true,
|
|
21847
|
+
align: token.align[j]
|
|
21848
|
+
});
|
|
21849
|
+
}
|
|
21850
|
+
|
|
21851
|
+
header += this.renderer.tablerow(cell);
|
|
21852
|
+
body = '';
|
|
21853
|
+
l2 = token.rows.length;
|
|
21854
|
+
|
|
21855
|
+
for (j = 0; j < l2; j++) {
|
|
21856
|
+
row = token.rows[j];
|
|
21857
|
+
cell = '';
|
|
21858
|
+
l3 = row.length;
|
|
21859
|
+
|
|
21860
|
+
for (k = 0; k < l3; k++) {
|
|
21861
|
+
cell += this.renderer.tablecell(this.parseInline(row[k].tokens), {
|
|
21862
|
+
header: false,
|
|
21863
|
+
align: token.align[k]
|
|
21864
|
+
});
|
|
21865
|
+
}
|
|
21866
|
+
|
|
21867
|
+
body += this.renderer.tablerow(cell);
|
|
21868
|
+
}
|
|
21869
|
+
|
|
21870
|
+
out += this.renderer.table(header, body);
|
|
21871
|
+
continue;
|
|
21872
|
+
}
|
|
21873
|
+
|
|
21874
|
+
case 'blockquote':
|
|
21875
|
+
{
|
|
21876
|
+
body = this.parse(token.tokens);
|
|
21877
|
+
out += this.renderer.blockquote(body);
|
|
21878
|
+
continue;
|
|
21879
|
+
}
|
|
21880
|
+
|
|
21881
|
+
case 'list':
|
|
21882
|
+
{
|
|
21883
|
+
ordered = token.ordered;
|
|
21884
|
+
start = token.start;
|
|
21885
|
+
loose = token.loose;
|
|
21886
|
+
l2 = token.items.length;
|
|
21887
|
+
body = '';
|
|
21888
|
+
|
|
21889
|
+
for (j = 0; j < l2; j++) {
|
|
21890
|
+
item = token.items[j];
|
|
21891
|
+
checked = item.checked;
|
|
21892
|
+
task = item.task;
|
|
21893
|
+
itemBody = '';
|
|
21894
|
+
|
|
21895
|
+
if (item.task) {
|
|
21896
|
+
checkbox = this.renderer.checkbox(checked);
|
|
21897
|
+
|
|
21898
|
+
if (loose) {
|
|
21899
|
+
if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {
|
|
21900
|
+
item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;
|
|
21901
|
+
|
|
21902
|
+
if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {
|
|
21903
|
+
item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;
|
|
21904
|
+
}
|
|
21905
|
+
} else {
|
|
21906
|
+
item.tokens.unshift({
|
|
21907
|
+
type: 'text',
|
|
21908
|
+
text: checkbox
|
|
21909
|
+
});
|
|
21910
|
+
}
|
|
21911
|
+
} else {
|
|
21912
|
+
itemBody += checkbox;
|
|
21913
|
+
}
|
|
21914
|
+
}
|
|
21915
|
+
|
|
21916
|
+
itemBody += this.parse(item.tokens, loose);
|
|
21917
|
+
body += this.renderer.listitem(itemBody, task, checked);
|
|
21918
|
+
}
|
|
21919
|
+
|
|
21920
|
+
out += this.renderer.list(body, ordered, start);
|
|
21921
|
+
continue;
|
|
21922
|
+
}
|
|
21923
|
+
|
|
21924
|
+
case 'html':
|
|
21925
|
+
{
|
|
21926
|
+
// TODO parse inline content if parameter markdown=1
|
|
21927
|
+
out += this.renderer.html(token.text);
|
|
21928
|
+
continue;
|
|
21929
|
+
}
|
|
21930
|
+
|
|
21931
|
+
case 'paragraph':
|
|
21932
|
+
{
|
|
21933
|
+
out += this.renderer.paragraph(this.parseInline(token.tokens));
|
|
21934
|
+
continue;
|
|
21935
|
+
}
|
|
21936
|
+
|
|
21937
|
+
case 'text':
|
|
21938
|
+
{
|
|
21939
|
+
body = token.tokens ? this.parseInline(token.tokens) : token.text;
|
|
21940
|
+
|
|
21941
|
+
while (i + 1 < l && tokens[i + 1].type === 'text') {
|
|
21942
|
+
token = tokens[++i];
|
|
21943
|
+
body += '\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);
|
|
21944
|
+
}
|
|
21945
|
+
|
|
21946
|
+
out += top ? this.renderer.paragraph(body) : body;
|
|
21947
|
+
continue;
|
|
21948
|
+
}
|
|
21949
|
+
|
|
21950
|
+
default:
|
|
21951
|
+
{
|
|
21952
|
+
var errMsg = 'Token with "' + token.type + '" type was not found.';
|
|
21953
|
+
|
|
21954
|
+
if (this.options.silent) {
|
|
21955
|
+
console.error(errMsg);
|
|
21956
|
+
return;
|
|
21957
|
+
} else {
|
|
21958
|
+
throw new Error(errMsg);
|
|
21959
|
+
}
|
|
21960
|
+
}
|
|
21961
|
+
}
|
|
21962
|
+
}
|
|
21963
|
+
|
|
21964
|
+
return out;
|
|
21965
|
+
}
|
|
21966
|
+
/**
|
|
21967
|
+
* Parse Inline Tokens
|
|
21968
|
+
*/
|
|
21969
|
+
;
|
|
21970
|
+
|
|
21971
|
+
_proto.parseInline = function parseInline(tokens, renderer) {
|
|
21972
|
+
renderer = renderer || this.renderer;
|
|
21973
|
+
var out = '',
|
|
21974
|
+
i,
|
|
21975
|
+
token,
|
|
21976
|
+
ret;
|
|
21977
|
+
var l = tokens.length;
|
|
21978
|
+
|
|
21979
|
+
for (i = 0; i < l; i++) {
|
|
21980
|
+
token = tokens[i]; // Run any renderer extensions
|
|
21981
|
+
|
|
21982
|
+
if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {
|
|
21983
|
+
ret = this.options.extensions.renderers[token.type].call({
|
|
21984
|
+
parser: this
|
|
21985
|
+
}, token);
|
|
21986
|
+
|
|
21987
|
+
if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {
|
|
21988
|
+
out += ret || '';
|
|
21989
|
+
continue;
|
|
21990
|
+
}
|
|
21991
|
+
}
|
|
21992
|
+
|
|
21993
|
+
switch (token.type) {
|
|
21994
|
+
case 'escape':
|
|
21995
|
+
{
|
|
21996
|
+
out += renderer.text(token.text);
|
|
21997
|
+
break;
|
|
21998
|
+
}
|
|
21999
|
+
|
|
22000
|
+
case 'html':
|
|
22001
|
+
{
|
|
22002
|
+
out += renderer.html(token.text);
|
|
22003
|
+
break;
|
|
22004
|
+
}
|
|
22005
|
+
|
|
22006
|
+
case 'link':
|
|
22007
|
+
{
|
|
22008
|
+
out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));
|
|
22009
|
+
break;
|
|
22010
|
+
}
|
|
22011
|
+
|
|
22012
|
+
case 'image':
|
|
22013
|
+
{
|
|
22014
|
+
out += renderer.image(token.href, token.title, token.text);
|
|
22015
|
+
break;
|
|
22016
|
+
}
|
|
22017
|
+
|
|
22018
|
+
case 'strong':
|
|
22019
|
+
{
|
|
22020
|
+
out += renderer.strong(this.parseInline(token.tokens, renderer));
|
|
22021
|
+
break;
|
|
22022
|
+
}
|
|
22023
|
+
|
|
22024
|
+
case 'em':
|
|
22025
|
+
{
|
|
22026
|
+
out += renderer.em(this.parseInline(token.tokens, renderer));
|
|
22027
|
+
break;
|
|
22028
|
+
}
|
|
22029
|
+
|
|
22030
|
+
case 'codespan':
|
|
22031
|
+
{
|
|
22032
|
+
out += renderer.codespan(token.text);
|
|
22033
|
+
break;
|
|
22034
|
+
}
|
|
22035
|
+
|
|
22036
|
+
case 'br':
|
|
22037
|
+
{
|
|
22038
|
+
out += renderer.br();
|
|
22039
|
+
break;
|
|
22040
|
+
}
|
|
22041
|
+
|
|
22042
|
+
case 'del':
|
|
22043
|
+
{
|
|
22044
|
+
out += renderer.del(this.parseInline(token.tokens, renderer));
|
|
22045
|
+
break;
|
|
22046
|
+
}
|
|
22047
|
+
|
|
22048
|
+
case 'text':
|
|
22049
|
+
{
|
|
22050
|
+
out += renderer.text(token.text);
|
|
22051
|
+
break;
|
|
22052
|
+
}
|
|
22053
|
+
|
|
22054
|
+
default:
|
|
22055
|
+
{
|
|
22056
|
+
var errMsg = 'Token with "' + token.type + '" type was not found.';
|
|
22057
|
+
|
|
22058
|
+
if (this.options.silent) {
|
|
22059
|
+
console.error(errMsg);
|
|
22060
|
+
return;
|
|
22061
|
+
} else {
|
|
22062
|
+
throw new Error(errMsg);
|
|
22063
|
+
}
|
|
22064
|
+
}
|
|
22065
|
+
}
|
|
22066
|
+
}
|
|
22067
|
+
|
|
22068
|
+
return out;
|
|
22069
|
+
};
|
|
22070
|
+
|
|
22071
|
+
return Parser;
|
|
22072
|
+
}();
|
|
22073
|
+
|
|
22074
|
+
var Lexer = Lexer_1;
|
|
22075
|
+
var Parser = Parser_1;
|
|
22076
|
+
var Tokenizer = Tokenizer_1;
|
|
22077
|
+
var Renderer = Renderer_1;
|
|
22078
|
+
var TextRenderer = TextRenderer_1;
|
|
22079
|
+
var Slugger = Slugger_1;
|
|
22080
|
+
var merge = helpers.merge,
|
|
22081
|
+
checkSanitizeDeprecation = helpers.checkSanitizeDeprecation,
|
|
22082
|
+
escape = helpers.escape;
|
|
22083
|
+
var getDefaults = defaults$5.exports.getDefaults,
|
|
22084
|
+
changeDefaults = defaults$5.exports.changeDefaults,
|
|
22085
|
+
defaults = defaults$5.exports.defaults;
|
|
22086
|
+
/**
|
|
22087
|
+
* Marked
|
|
22088
|
+
*/
|
|
22089
|
+
|
|
22090
|
+
function marked(src, opt, callback) {
|
|
22091
|
+
// throw error in case of non string input
|
|
22092
|
+
if (typeof src === 'undefined' || src === null) {
|
|
22093
|
+
throw new Error('marked(): input parameter is undefined or null');
|
|
22094
|
+
}
|
|
22095
|
+
|
|
22096
|
+
if (typeof src !== 'string') {
|
|
22097
|
+
throw new Error('marked(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');
|
|
22098
|
+
}
|
|
22099
|
+
|
|
22100
|
+
if (typeof opt === 'function') {
|
|
22101
|
+
callback = opt;
|
|
22102
|
+
opt = null;
|
|
22103
|
+
}
|
|
22104
|
+
|
|
22105
|
+
opt = merge({}, marked.defaults, opt || {});
|
|
22106
|
+
checkSanitizeDeprecation(opt);
|
|
22107
|
+
|
|
22108
|
+
if (callback) {
|
|
22109
|
+
var highlight = opt.highlight;
|
|
22110
|
+
var tokens;
|
|
22111
|
+
|
|
22112
|
+
try {
|
|
22113
|
+
tokens = Lexer.lex(src, opt);
|
|
22114
|
+
} catch (e) {
|
|
22115
|
+
return callback(e);
|
|
22116
|
+
}
|
|
22117
|
+
|
|
22118
|
+
var done = function done(err) {
|
|
22119
|
+
var out;
|
|
22120
|
+
|
|
22121
|
+
if (!err) {
|
|
22122
|
+
try {
|
|
22123
|
+
if (opt.walkTokens) {
|
|
22124
|
+
marked.walkTokens(tokens, opt.walkTokens);
|
|
22125
|
+
}
|
|
22126
|
+
|
|
22127
|
+
out = Parser.parse(tokens, opt);
|
|
22128
|
+
} catch (e) {
|
|
22129
|
+
err = e;
|
|
22130
|
+
}
|
|
22131
|
+
}
|
|
22132
|
+
|
|
22133
|
+
opt.highlight = highlight;
|
|
22134
|
+
return err ? callback(err) : callback(null, out);
|
|
22135
|
+
};
|
|
22136
|
+
|
|
22137
|
+
if (!highlight || highlight.length < 3) {
|
|
22138
|
+
return done();
|
|
22139
|
+
}
|
|
22140
|
+
|
|
22141
|
+
delete opt.highlight;
|
|
22142
|
+
if (!tokens.length) return done();
|
|
22143
|
+
var pending = 0;
|
|
22144
|
+
marked.walkTokens(tokens, function (token) {
|
|
22145
|
+
if (token.type === 'code') {
|
|
22146
|
+
pending++;
|
|
22147
|
+
setTimeout(function () {
|
|
22148
|
+
highlight(token.text, token.lang, function (err, code) {
|
|
22149
|
+
if (err) {
|
|
22150
|
+
return done(err);
|
|
22151
|
+
}
|
|
22152
|
+
|
|
22153
|
+
if (code != null && code !== token.text) {
|
|
22154
|
+
token.text = code;
|
|
22155
|
+
token.escaped = true;
|
|
22156
|
+
}
|
|
22157
|
+
|
|
22158
|
+
pending--;
|
|
22159
|
+
|
|
22160
|
+
if (pending === 0) {
|
|
22161
|
+
done();
|
|
22162
|
+
}
|
|
22163
|
+
});
|
|
22164
|
+
}, 0);
|
|
22165
|
+
}
|
|
22166
|
+
});
|
|
22167
|
+
|
|
22168
|
+
if (pending === 0) {
|
|
22169
|
+
done();
|
|
22170
|
+
}
|
|
22171
|
+
|
|
22172
|
+
return;
|
|
22173
|
+
}
|
|
22174
|
+
|
|
22175
|
+
try {
|
|
22176
|
+
var _tokens = Lexer.lex(src, opt);
|
|
22177
|
+
|
|
22178
|
+
if (opt.walkTokens) {
|
|
22179
|
+
marked.walkTokens(_tokens, opt.walkTokens);
|
|
22180
|
+
}
|
|
22181
|
+
|
|
22182
|
+
return Parser.parse(_tokens, opt);
|
|
22183
|
+
} catch (e) {
|
|
22184
|
+
e.message += '\nPlease report this to https://github.com/markedjs/marked.';
|
|
22185
|
+
|
|
22186
|
+
if (opt.silent) {
|
|
22187
|
+
return '<p>An error occurred:</p><pre>' + escape(e.message + '', true) + '</pre>';
|
|
22188
|
+
}
|
|
22189
|
+
|
|
22190
|
+
throw e;
|
|
22191
|
+
}
|
|
22192
|
+
}
|
|
22193
|
+
/**
|
|
22194
|
+
* Options
|
|
22195
|
+
*/
|
|
22196
|
+
|
|
22197
|
+
|
|
22198
|
+
marked.options = marked.setOptions = function (opt) {
|
|
22199
|
+
merge(marked.defaults, opt);
|
|
22200
|
+
changeDefaults(marked.defaults);
|
|
22201
|
+
return marked;
|
|
22202
|
+
};
|
|
22203
|
+
|
|
22204
|
+
marked.getDefaults = getDefaults;
|
|
22205
|
+
marked.defaults = defaults;
|
|
22206
|
+
/**
|
|
22207
|
+
* Use Extension
|
|
22208
|
+
*/
|
|
22209
|
+
|
|
22210
|
+
marked.use = function () {
|
|
22211
|
+
var _this = this;
|
|
22212
|
+
|
|
22213
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
22214
|
+
args[_key] = arguments[_key];
|
|
22215
|
+
}
|
|
22216
|
+
|
|
22217
|
+
var opts = merge.apply(void 0, [{}].concat(args));
|
|
22218
|
+
var extensions = marked.defaults.extensions || {
|
|
22219
|
+
renderers: {},
|
|
22220
|
+
childTokens: {}
|
|
22221
|
+
};
|
|
22222
|
+
var hasExtensions;
|
|
22223
|
+
args.forEach(function (pack) {
|
|
22224
|
+
// ==-- Parse "addon" extensions --== //
|
|
22225
|
+
if (pack.extensions) {
|
|
22226
|
+
hasExtensions = true;
|
|
22227
|
+
pack.extensions.forEach(function (ext) {
|
|
22228
|
+
if (!ext.name) {
|
|
22229
|
+
throw new Error('extension name required');
|
|
22230
|
+
}
|
|
22231
|
+
|
|
22232
|
+
if (ext.renderer) {
|
|
22233
|
+
// Renderer extensions
|
|
22234
|
+
var prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;
|
|
22235
|
+
|
|
22236
|
+
if (prevRenderer) {
|
|
22237
|
+
// Replace extension with func to run new extension but fall back if false
|
|
22238
|
+
extensions.renderers[ext.name] = function () {
|
|
22239
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
22240
|
+
args[_key2] = arguments[_key2];
|
|
22241
|
+
}
|
|
22242
|
+
|
|
22243
|
+
var ret = ext.renderer.apply(this, args);
|
|
22244
|
+
|
|
22245
|
+
if (ret === false) {
|
|
22246
|
+
ret = prevRenderer.apply(this, args);
|
|
22247
|
+
}
|
|
22248
|
+
|
|
22249
|
+
return ret;
|
|
22250
|
+
};
|
|
22251
|
+
} else {
|
|
22252
|
+
extensions.renderers[ext.name] = ext.renderer;
|
|
22253
|
+
}
|
|
22254
|
+
}
|
|
22255
|
+
|
|
22256
|
+
if (ext.tokenizer) {
|
|
22257
|
+
// Tokenizer Extensions
|
|
22258
|
+
if (!ext.level || ext.level !== 'block' && ext.level !== 'inline') {
|
|
22259
|
+
throw new Error("extension level must be 'block' or 'inline'");
|
|
22260
|
+
}
|
|
22261
|
+
|
|
22262
|
+
if (extensions[ext.level]) {
|
|
22263
|
+
extensions[ext.level].unshift(ext.tokenizer);
|
|
22264
|
+
} else {
|
|
22265
|
+
extensions[ext.level] = [ext.tokenizer];
|
|
22266
|
+
}
|
|
22267
|
+
|
|
22268
|
+
if (ext.start) {
|
|
22269
|
+
// Function to check for start of token
|
|
22270
|
+
if (ext.level === 'block') {
|
|
22271
|
+
if (extensions.startBlock) {
|
|
22272
|
+
extensions.startBlock.push(ext.start);
|
|
22273
|
+
} else {
|
|
22274
|
+
extensions.startBlock = [ext.start];
|
|
22275
|
+
}
|
|
22276
|
+
} else if (ext.level === 'inline') {
|
|
22277
|
+
if (extensions.startInline) {
|
|
22278
|
+
extensions.startInline.push(ext.start);
|
|
22279
|
+
} else {
|
|
22280
|
+
extensions.startInline = [ext.start];
|
|
22281
|
+
}
|
|
22282
|
+
}
|
|
22283
|
+
}
|
|
22284
|
+
}
|
|
22285
|
+
|
|
22286
|
+
if (ext.childTokens) {
|
|
22287
|
+
// Child tokens to be visited by walkTokens
|
|
22288
|
+
extensions.childTokens[ext.name] = ext.childTokens;
|
|
22289
|
+
}
|
|
22290
|
+
});
|
|
22291
|
+
} // ==-- Parse "overwrite" extensions --== //
|
|
22292
|
+
|
|
22293
|
+
|
|
22294
|
+
if (pack.renderer) {
|
|
22295
|
+
(function () {
|
|
22296
|
+
var renderer = marked.defaults.renderer || new Renderer();
|
|
22297
|
+
|
|
22298
|
+
var _loop = function _loop(prop) {
|
|
22299
|
+
var prevRenderer = renderer[prop]; // Replace renderer with func to run extension, but fall back if false
|
|
22300
|
+
|
|
22301
|
+
renderer[prop] = function () {
|
|
22302
|
+
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
22303
|
+
args[_key3] = arguments[_key3];
|
|
22304
|
+
}
|
|
22305
|
+
|
|
22306
|
+
var ret = pack.renderer[prop].apply(renderer, args);
|
|
22307
|
+
|
|
22308
|
+
if (ret === false) {
|
|
22309
|
+
ret = prevRenderer.apply(renderer, args);
|
|
22310
|
+
}
|
|
22311
|
+
|
|
22312
|
+
return ret;
|
|
22313
|
+
};
|
|
22314
|
+
};
|
|
22315
|
+
|
|
22316
|
+
for (var prop in pack.renderer) {
|
|
22317
|
+
_loop(prop);
|
|
22318
|
+
}
|
|
22319
|
+
|
|
22320
|
+
opts.renderer = renderer;
|
|
22321
|
+
})();
|
|
22322
|
+
}
|
|
22323
|
+
|
|
22324
|
+
if (pack.tokenizer) {
|
|
22325
|
+
(function () {
|
|
22326
|
+
var tokenizer = marked.defaults.tokenizer || new Tokenizer();
|
|
22327
|
+
|
|
22328
|
+
var _loop2 = function _loop2(prop) {
|
|
22329
|
+
var prevTokenizer = tokenizer[prop]; // Replace tokenizer with func to run extension, but fall back if false
|
|
22330
|
+
|
|
22331
|
+
tokenizer[prop] = function () {
|
|
22332
|
+
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
22333
|
+
args[_key4] = arguments[_key4];
|
|
22334
|
+
}
|
|
22335
|
+
|
|
22336
|
+
var ret = pack.tokenizer[prop].apply(tokenizer, args);
|
|
22337
|
+
|
|
22338
|
+
if (ret === false) {
|
|
22339
|
+
ret = prevTokenizer.apply(tokenizer, args);
|
|
22340
|
+
}
|
|
22341
|
+
|
|
22342
|
+
return ret;
|
|
22343
|
+
};
|
|
22344
|
+
};
|
|
22345
|
+
|
|
22346
|
+
for (var prop in pack.tokenizer) {
|
|
22347
|
+
_loop2(prop);
|
|
22348
|
+
}
|
|
22349
|
+
|
|
22350
|
+
opts.tokenizer = tokenizer;
|
|
22351
|
+
})();
|
|
22352
|
+
} // ==-- Parse WalkTokens extensions --== //
|
|
22353
|
+
|
|
22354
|
+
|
|
22355
|
+
if (pack.walkTokens) {
|
|
22356
|
+
var walkTokens = marked.defaults.walkTokens;
|
|
22357
|
+
|
|
22358
|
+
opts.walkTokens = function (token) {
|
|
22359
|
+
pack.walkTokens.call(_this, token);
|
|
22360
|
+
|
|
22361
|
+
if (walkTokens) {
|
|
22362
|
+
walkTokens(token);
|
|
22363
|
+
}
|
|
22364
|
+
};
|
|
22365
|
+
}
|
|
22366
|
+
|
|
22367
|
+
if (hasExtensions) {
|
|
22368
|
+
opts.extensions = extensions;
|
|
22369
|
+
}
|
|
22370
|
+
|
|
22371
|
+
marked.setOptions(opts);
|
|
22372
|
+
});
|
|
22373
|
+
};
|
|
22374
|
+
/**
|
|
22375
|
+
* Run callback for every token
|
|
22376
|
+
*/
|
|
22377
|
+
|
|
22378
|
+
|
|
22379
|
+
marked.walkTokens = function (tokens, callback) {
|
|
22380
|
+
var _loop3 = function _loop3() {
|
|
22381
|
+
var token = _step.value;
|
|
22382
|
+
callback(token);
|
|
22383
|
+
|
|
22384
|
+
switch (token.type) {
|
|
22385
|
+
case 'table':
|
|
22386
|
+
{
|
|
22387
|
+
for (var _iterator2 = _createForOfIteratorHelperLoose(token.header), _step2; !(_step2 = _iterator2()).done;) {
|
|
22388
|
+
var cell = _step2.value;
|
|
22389
|
+
marked.walkTokens(cell.tokens, callback);
|
|
22390
|
+
}
|
|
22391
|
+
|
|
22392
|
+
for (var _iterator3 = _createForOfIteratorHelperLoose(token.rows), _step3; !(_step3 = _iterator3()).done;) {
|
|
22393
|
+
var row = _step3.value;
|
|
22394
|
+
|
|
22395
|
+
for (var _iterator4 = _createForOfIteratorHelperLoose(row), _step4; !(_step4 = _iterator4()).done;) {
|
|
22396
|
+
var _cell = _step4.value;
|
|
22397
|
+
marked.walkTokens(_cell.tokens, callback);
|
|
22398
|
+
}
|
|
22399
|
+
}
|
|
22400
|
+
|
|
22401
|
+
break;
|
|
22402
|
+
}
|
|
22403
|
+
|
|
22404
|
+
case 'list':
|
|
22405
|
+
{
|
|
22406
|
+
marked.walkTokens(token.items, callback);
|
|
22407
|
+
break;
|
|
22408
|
+
}
|
|
22409
|
+
|
|
22410
|
+
default:
|
|
22411
|
+
{
|
|
22412
|
+
if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) {
|
|
22413
|
+
// Walk any extensions
|
|
22414
|
+
marked.defaults.extensions.childTokens[token.type].forEach(function (childTokens) {
|
|
22415
|
+
marked.walkTokens(token[childTokens], callback);
|
|
22416
|
+
});
|
|
22417
|
+
} else if (token.tokens) {
|
|
22418
|
+
marked.walkTokens(token.tokens, callback);
|
|
22419
|
+
}
|
|
22420
|
+
}
|
|
22421
|
+
}
|
|
22422
|
+
};
|
|
22423
|
+
|
|
22424
|
+
for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {
|
|
22425
|
+
_loop3();
|
|
22426
|
+
}
|
|
22427
|
+
};
|
|
22428
|
+
/**
|
|
22429
|
+
* Parse Inline
|
|
22430
|
+
*/
|
|
22431
|
+
|
|
22432
|
+
|
|
22433
|
+
marked.parseInline = function (src, opt) {
|
|
22434
|
+
// throw error in case of non string input
|
|
22435
|
+
if (typeof src === 'undefined' || src === null) {
|
|
22436
|
+
throw new Error('marked.parseInline(): input parameter is undefined or null');
|
|
22437
|
+
}
|
|
22438
|
+
|
|
22439
|
+
if (typeof src !== 'string') {
|
|
22440
|
+
throw new Error('marked.parseInline(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');
|
|
22441
|
+
}
|
|
22442
|
+
|
|
22443
|
+
opt = merge({}, marked.defaults, opt || {});
|
|
22444
|
+
checkSanitizeDeprecation(opt);
|
|
22445
|
+
|
|
22446
|
+
try {
|
|
22447
|
+
var tokens = Lexer.lexInline(src, opt);
|
|
22448
|
+
|
|
22449
|
+
if (opt.walkTokens) {
|
|
22450
|
+
marked.walkTokens(tokens, opt.walkTokens);
|
|
22451
|
+
}
|
|
22452
|
+
|
|
22453
|
+
return Parser.parseInline(tokens, opt);
|
|
22454
|
+
} catch (e) {
|
|
22455
|
+
e.message += '\nPlease report this to https://github.com/markedjs/marked.';
|
|
22456
|
+
|
|
22457
|
+
if (opt.silent) {
|
|
22458
|
+
return '<p>An error occurred:</p><pre>' + escape(e.message + '', true) + '</pre>';
|
|
22459
|
+
}
|
|
22460
|
+
|
|
22461
|
+
throw e;
|
|
22462
|
+
}
|
|
22463
|
+
};
|
|
22464
|
+
/**
|
|
22465
|
+
* Expose
|
|
22466
|
+
*/
|
|
22467
|
+
|
|
22468
|
+
|
|
22469
|
+
marked.Parser = Parser;
|
|
22470
|
+
marked.parser = Parser.parse;
|
|
22471
|
+
marked.Renderer = Renderer;
|
|
22472
|
+
marked.TextRenderer = TextRenderer;
|
|
22473
|
+
marked.Lexer = Lexer;
|
|
22474
|
+
marked.lexer = Lexer.lex;
|
|
22475
|
+
marked.Tokenizer = Tokenizer;
|
|
22476
|
+
marked.Slugger = Slugger;
|
|
22477
|
+
marked.parse = marked;
|
|
22478
|
+
var marked_1 = marked;
|
|
22479
|
+
|
|
22480
|
+
return marked_1;
|
|
22481
|
+
|
|
22482
|
+
})));
|
|
22483
|
+
});
|
|
22484
|
+
|
|
22485
|
+
const LoginReadme = "# sqm-portal-login\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| --------------------- | ----------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; }; content?: { forgotPasswordButton?: any; secondaryButton?: any; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; }; }` | `undefined` |\r\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\r\n| `forgotPasswordLabel` | `forgot-password-label` | | `string` | `\"Forgot Password?\"` |\r\n| `nextPage` | `next-page` | | `string` | `\"/\"` |\r\n| `pageLabel` | `page-label` | | `string` | `\"Sign in to your account\"` |\r\n| `passwordLabel` | `password-label` | | `string` | `\"Password\"` |\r\n| `registerLabel` | `register-label` | | `string` | `\"Register\"` |\r\n| `submitLabel` | `submit-label` | | `string` | `\"Sign In\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Used by\r\n\r\n - [sqm-stencilbook](../sqm-stencilbook)\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-login --> sqm-form-message\r\n sqm-stencilbook --> sqm-portal-login\r\n style sqm-portal-login fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
|
|
22486
|
+
|
|
22487
|
+
const ForgotPasswordReadme = "# sqm-portal-forgot-password\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| ------------- | -------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------- |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; success: boolean; }; content?: { secondaryButton: any; messageSlot: any; emailLabel?: string; submitLabel?: string; }; }` | `undefined` |\r\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\r\n| `submitLabel` | `submit-label` | | `string` | `\"Request Password Reset\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-forgot-password --> sqm-form-message\r\n style sqm-portal-forgot-password fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
|
|
22488
|
+
|
|
22489
|
+
const RegisterReadme = "# sqm-portal-register\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| -------------------------- | ---------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |\r\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\r\n| `confirmPasswordLabel` | `confirm-password-label` | | `string` | `\"Confirm Password\"` |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; confirmPassword: boolean; hideInputs: boolean; validationState?: FormState; enablePasswordValidation?: boolean; }; content?: { formData?: any; passwordField?: any; secondaryButton?: any; emailLabel?: string; passwordLabel?: string; submitLabel?: string; pageLabel?: string; confirmPasswordLabel: string; }; refs?: { formRef: any; }; }` | `undefined` |\r\n| `emailLabel` | `email-label` | | `string` | `\"Email\"` |\r\n| `enablePasswordValidation` | `enable-password-validation` | | `boolean` | `true` |\r\n| `hideInputs` | `hide-inputs` | | `boolean` | `false` |\r\n| `loginLabel` | `login-label` | | `string` | `\"Sign in\"` |\r\n| `nextPage` | `next-page` | | `string` | `\"/\"` |\r\n| `pageLabel` | `page-label` | | `string` | `\"Register\"` |\r\n| `passwordLabel` | `password-label` | | `string` | `\"Password\"` |\r\n| `submitLabel` | `submit-label` | | `string` | `\"Register\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Used by\r\n\r\n - [sqm-stencilbook](../sqm-stencilbook)\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n- [sqm-password-field](../sqm-password-field)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-register --> sqm-form-message\r\n sqm-portal-register --> sqm-password-field\r\n sqm-stencilbook --> sqm-portal-register\r\n style sqm-portal-register fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
|
|
22490
|
+
|
|
22491
|
+
const EditProfileReadme = "# sqm-portal-profile\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| ------------------------ | --------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |\r\n| `countrytext` | `countrytext` | | `string` | `\"Country\"` |\r\n| `demoData` | -- | | `{ states?: { success: boolean; loading: boolean; submitDisabled: boolean; showCountry: boolean; formState: { country: string; firstName: string; lastName: string; errors: any; error: string; }; user: { id: string; accountId: string; firstName: string; lastName: string; email: string; countryCode: string; }; text: { firstnametext: string; lastnametext: string; emailtext: string; countrytext: string; editProfileHeader: string; editProfileSubHeader: string; submitChangeButtonText: string; }; }; }` | `undefined` |\r\n| `editProfileHeader` | `edit-profile-header` | | `string` | `\"Edit your profile\"` |\r\n| `editProfileSubHeader` | `edit-profile-sub-header` | | `string` | `\"Personal Information\"` |\r\n| `emailtext` | `emailtext` | | `string` | `\"Email\"` |\r\n| `firstnametext` | `firstnametext` | | `string` | `\"First Name\"` |\r\n| `lastnametext` | `lastnametext` | | `string` | `\"Last Name\"` |\r\n| `showCountry` | `show-country` | | `boolean` | `true` |\r\n| `submitChangeButtonText` | `submit-change-button-text` | | `string` | `\"Submit Changes\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-profile --> sqm-form-message\r\n style sqm-portal-profile fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
|
|
22492
|
+
|
|
22493
|
+
const ResetPasswordReadme = "# sqm-portal-reset-password\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| --------------------------- | ------------------------------ | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------- |\r\n| `confirmPassword` | `confirm-password` | | `boolean` | `false` |\r\n| `confirmPasswordFieldLabel` | `confirm-password-field-label` | | `string` | `\"Confirm Password\"` |\r\n| `continueButtonText` | `continue-button-text` | Displayed after a successful password reset | `string` | `\"Continue\"` |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; reset: boolean; confirmPassword: boolean; oobCodeValidating: boolean; oobCodeValid: boolean; passwordDemoData?: PasswordFieldViewDemoProps; content: { passwordResetHeader: string; resetPasswordHeader: string; continueButtonText: string; resetPasswordButtonText: string; confirmPasswordFieldLabel: string; }; }; }` | `undefined` |\r\n| `nextPage` | `next-page` | | `string` | `\"/\"` |\r\n| `passwordResetHeader` | `password-reset-header` | Displayed after a successful password reset | `string` | `\"Password reset\"` |\r\n| `resetPasswordButtonText` | `reset-password-button-text` | | `string` | `\"Reset Password\"` |\r\n| `resetPasswordHeader` | `reset-password-header` | | `string` | `\"Reset your password\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n- [sqm-password-field](../sqm-password-field)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-reset-password --> sqm-form-message\r\n sqm-portal-reset-password --> sqm-password-field\r\n style sqm-portal-reset-password fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
|
|
22494
|
+
|
|
22495
|
+
const EmailVerificationReadme = "# sqm-portal-email-verification\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| ------------------------- | --------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; success: boolean; }; content?: { email: string; verifyMessage: string; emailVerificationHeader: string; resendEmailButtonText: string; }; }` | `undefined` |\r\n| `emailVerificationHeader` | `email-verification-header` | | `string` | `\"Verify your email\"` |\r\n| `resendEmailButtonText` | `resend-email-button-text` | | `string` | `\"Re-send Email\"` |\r\n| `verifyMessage` | `verify-message` | | `string` | `\"A verification email was sent to {email}. Please verify your email to continue to the portal.\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-email-verification --> sqm-form-message\r\n style sqm-portal-email-verification fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
|
|
22496
|
+
|
|
22497
|
+
const EmailVerifiedReadme = "# sqm-portal-verify-email\r\n\r\n\r\n\r\n<!-- Auto Generated Below -->\r\n\r\n\r\n## Properties\r\n\r\n| Property | Attribute | Description | Type | Default |\r\n| ---------- | ----------- | ----------- | ---------------------------------------------------------------------------------------------------- | ----------- |\r\n| `demoData` | -- | | `{ states?: { error: string; loading: boolean; verified: boolean; }; data?: { oobCode: string; }; }` | `undefined` |\r\n| `nextPage` | `next-page` | | `string` | `\"/\"` |\r\n\r\n\r\n## Dependencies\r\n\r\n### Depends on\r\n\r\n- [sqm-form-message](../sqm-form-message)\r\n\r\n### Graph\r\n```mermaid\r\ngraph TD;\r\n sqm-portal-verify-email --> sqm-form-message\r\n style sqm-portal-verify-email fill:#f9f,stroke:#333,stroke-width:4px\r\n```\r\n\r\n----------------------------------------------\r\n\r\n*Built with [StencilJS](https://stenciljs.com/)*\r\n";
|
|
22498
|
+
|
|
22499
|
+
const PortalTemplates_stories = {
|
|
22500
|
+
title: "Templates / Portal",
|
|
22501
|
+
};
|
|
22502
|
+
// slot="footer"
|
|
22503
|
+
// support-email="john@foodservicerewards.com"
|
|
22504
|
+
// terms-link="example.com"
|
|
22505
|
+
// faq-link="example.com"
|
|
22506
|
+
// padding="large"
|
|
22507
|
+
// show-powered-by="false"
|
|
22508
|
+
// powered-by-link="https://www.saasquatch.com/"
|
|
22509
|
+
function useTemplate$1(templateString) {
|
|
22510
|
+
const [editedTemplate, setEditedTemplate] = useState(templateString);
|
|
22511
|
+
const [previewTemplate, setPreviewTemplate] = useState(templateString);
|
|
22512
|
+
return {
|
|
22513
|
+
states: { previewTemplate, editedTemplate },
|
|
22514
|
+
callbacks: { setEditedTemplate, setPreviewTemplate },
|
|
22515
|
+
};
|
|
22516
|
+
}
|
|
22517
|
+
function TemplateView$1(props) {
|
|
22518
|
+
const { states, callbacks, readme } = props;
|
|
22519
|
+
return [
|
|
22520
|
+
h("textarea", { style: { width: "100%", height: "300px" }, onChange: (e) => callbacks.setEditedTemplate(e.target.value) }, states.editedTemplate),
|
|
22521
|
+
h("button", { onClick: () => callbacks.setPreviewTemplate(states.editedTemplate) }, "Update Preview"),
|
|
22522
|
+
readme ? (h("details", null,
|
|
22523
|
+
h("summary", null, "Props readme"),
|
|
22524
|
+
h("div", { innerHTML: marked(readme) }))) : (""),
|
|
22525
|
+
h("div", { innerHTML: states.previewTemplate }),
|
|
22526
|
+
];
|
|
22527
|
+
}
|
|
22528
|
+
function Buttons({ callbacks, states, template }) {
|
|
22529
|
+
return (h("div", null,
|
|
22530
|
+
h("button", { onClick: () => callbacks.setPreviewTemplate(states.editedTemplate) }, "Update Preview"),
|
|
22531
|
+
h("button", { style: { marginLeft: "10px" }, onClick: () => callbacks.setPreviewTemplate(template) }, "Preview Dashboard")));
|
|
22532
|
+
}
|
|
22533
|
+
function DefaultTemplateView(props) {
|
|
22534
|
+
const { states, callbacks } = props;
|
|
22535
|
+
return (h("div", null,
|
|
22536
|
+
h("textarea", { style: { width: "100%", height: "300px" }, onChange: (e) => callbacks.setEditedTemplate(e.target.value) }, states.editedTemplate),
|
|
22537
|
+
h(Buttons, { states: states, callbacks: callbacks, template: props.template }),
|
|
22538
|
+
h("h2", null, "Navigation"),
|
|
22539
|
+
h("div", { style: {
|
|
22540
|
+
display: "grid",
|
|
22541
|
+
gridTemplateColumns: "repeat(9, 80px)",
|
|
22542
|
+
gridGap: "10px",
|
|
22543
|
+
} },
|
|
22544
|
+
h("button", { onClick: () => rn.push("/") }, "Dashboard"),
|
|
22545
|
+
h("button", { onClick: () => rn.push("/activity") }, "Activity"),
|
|
22546
|
+
h("button", { onClick: () => rn.push("/editProfile") }, "Edit Profile"),
|
|
22547
|
+
h("button", { onClick: () => rn.push("/login") }, "Login"),
|
|
22548
|
+
h("button", { onClick: () => rn.push("/register") }, "Register"),
|
|
22549
|
+
h("button", { onClick: () => rn.push("/emailVerification") }, "Email Verification"),
|
|
22550
|
+
h("button", { onClick: () => rn.push("/verifyEmail") }, "Verify Email"),
|
|
22551
|
+
h("button", { onClick: () => rn.push("/forgotPassword") }, "Forgot Password"),
|
|
22552
|
+
h("button", { onClick: () => rn.push("/resetPassword") }, "Reset Password")),
|
|
22553
|
+
h("br", null),
|
|
22554
|
+
h("div", { innerHTML: states.previewTemplate })));
|
|
22555
|
+
}
|
|
22556
|
+
const DefaultPortal = createHookStory(() => {
|
|
22557
|
+
const { states, callbacks } = useTemplate$1(portalTemplate);
|
|
22558
|
+
return (h(DefaultTemplateView, { states: states, callbacks: callbacks, template: portalTemplateWithDashboard }));
|
|
22559
|
+
});
|
|
22560
|
+
const MultiProgramPortal = createHookStory(() => {
|
|
22561
|
+
const { states, callbacks } = useTemplate$1(multiProgramTemplate);
|
|
22562
|
+
return (h(DefaultTemplateView, { states: states, callbacks: callbacks, template: multiProgramTemplateWithDashboard }));
|
|
22563
|
+
});
|
|
22564
|
+
const Login = createHookStory(() => {
|
|
22565
|
+
const { states, callbacks } = useTemplate$1(loginTemplate);
|
|
22566
|
+
return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: LoginReadme }));
|
|
22567
|
+
});
|
|
22568
|
+
const ForgotPassword = createHookStory(() => {
|
|
22569
|
+
const { states, callbacks } = useTemplate$1(forgotPasswordTemplate);
|
|
22570
|
+
return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: ForgotPasswordReadme }));
|
|
22571
|
+
});
|
|
22572
|
+
const Register = createHookStory(() => {
|
|
22573
|
+
const { states, callbacks } = useTemplate$1(registerTemplate);
|
|
22574
|
+
return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: RegisterReadme }));
|
|
22575
|
+
});
|
|
22576
|
+
const Dashboard$1 = createHookStory(() => {
|
|
22577
|
+
const { states, callbacks } = useTemplate$1(dashboardTemplate);
|
|
22578
|
+
return h(TemplateView$1, { states: states, callbacks: callbacks });
|
|
22579
|
+
});
|
|
22580
|
+
const Activity$1 = createHookStory(() => {
|
|
22581
|
+
const { states, callbacks } = useTemplate$1(activityTemplate);
|
|
22582
|
+
return h(TemplateView$1, { states: states, callbacks: callbacks });
|
|
22583
|
+
});
|
|
22584
|
+
const EditProfile$3 = createHookStory(() => {
|
|
22585
|
+
const { states, callbacks } = useTemplate$1(editProfileTemplate);
|
|
22586
|
+
return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: EditProfileReadme }));
|
|
22587
|
+
});
|
|
22588
|
+
const ResetPassword = createHookStory(() => {
|
|
22589
|
+
const { states, callbacks } = useTemplate$1(resetPasswordTemplate);
|
|
22590
|
+
return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: ResetPasswordReadme }));
|
|
22591
|
+
});
|
|
22592
|
+
const EmailVerification = createHookStory(() => {
|
|
22593
|
+
const { states, callbacks } = useTemplate$1(emailVerificationTemplate);
|
|
22594
|
+
return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: EmailVerificationReadme }));
|
|
22595
|
+
});
|
|
22596
|
+
const EmailVerified = createHookStory(() => {
|
|
22597
|
+
const { states, callbacks } = useTemplate$1(emailVerifiedTemplate);
|
|
22598
|
+
return (h(TemplateView$1, { states: states, callbacks: callbacks, readme: EmailVerifiedReadme }));
|
|
22599
|
+
});
|
|
22600
|
+
const Widget = createHookStory(() => {
|
|
22601
|
+
return (h("sqb-widget", { "widget-type": "p/Vacay-referral/w/referrerWidget", demoData: {
|
|
22602
|
+
data: {
|
|
22603
|
+
html: dashboardTemplate,
|
|
22604
|
+
},
|
|
22605
|
+
} }));
|
|
22606
|
+
});
|
|
22607
|
+
const ResetPasswordEmail = createHookStory(() => {
|
|
22608
|
+
const { states, callbacks } = useTemplate$1(resetPasswordEmailTemplate);
|
|
22609
|
+
return h(TemplateView$1, { states: states, callbacks: callbacks });
|
|
22610
|
+
});
|
|
22611
|
+
const VerifyEmail = createHookStory(() => {
|
|
22612
|
+
const { states, callbacks } = useTemplate$1(verifyEmailTemplate);
|
|
22613
|
+
return h(TemplateView$1, { states: states, callbacks: callbacks });
|
|
22614
|
+
});
|
|
22615
|
+
|
|
22616
|
+
const PortalTemplates = /*#__PURE__*/Object.freeze({
|
|
22617
|
+
__proto__: null,
|
|
22618
|
+
'default': PortalTemplates_stories,
|
|
22619
|
+
DefaultPortal: DefaultPortal,
|
|
22620
|
+
MultiProgramPortal: MultiProgramPortal,
|
|
22621
|
+
Login: Login,
|
|
22622
|
+
ForgotPassword: ForgotPassword,
|
|
22623
|
+
Register: Register,
|
|
22624
|
+
Dashboard: Dashboard$1,
|
|
22625
|
+
Activity: Activity$1,
|
|
22626
|
+
EditProfile: EditProfile$3,
|
|
22627
|
+
ResetPassword: ResetPassword,
|
|
22628
|
+
EmailVerification: EmailVerification,
|
|
22629
|
+
EmailVerified: EmailVerified,
|
|
22630
|
+
Widget: Widget,
|
|
22631
|
+
ResetPasswordEmail: ResetPasswordEmail,
|
|
22632
|
+
VerifyEmail: VerifyEmail
|
|
22633
|
+
});
|
|
22634
|
+
|
|
22635
|
+
const ProgramMenu_stories = {
|
|
22636
|
+
title: "Program Menu",
|
|
22637
|
+
};
|
|
22638
|
+
const OneProgram = createHookStory(() => {
|
|
22639
|
+
return (h("sqm-program-menu", null,
|
|
22640
|
+
h("sl-menu-item", { value: "referral-program" }, "Referral Program")));
|
|
22641
|
+
});
|
|
22642
|
+
const TwoProgram = createHookStory(() => {
|
|
22643
|
+
return (h("sqm-program-menu", null,
|
|
22644
|
+
h("sl-menu-item", { value: "referral-program" }, "Referral Program"),
|
|
22645
|
+
h("sl-menu-item", { value: "partner-program" }, "Partner Program")));
|
|
22646
|
+
});
|
|
22647
|
+
const FiveProgram = createHookStory(() => {
|
|
22648
|
+
return (h("sqm-program-menu", null,
|
|
22649
|
+
h("sl-menu-item", { value: "program1" }, "Program 1"),
|
|
22650
|
+
h("sl-menu-item", { value: "program2" }, "Program 2"),
|
|
22651
|
+
h("sl-menu-item", { value: "program3" }, "Program 3"),
|
|
22652
|
+
h("sl-menu-item", { value: "program4" }, "Program 4"),
|
|
22653
|
+
h("sl-menu-item", { value: "program5" }, "Program 5")));
|
|
22654
|
+
});
|
|
22655
|
+
const ProgramMenuWithSwitch = createHookStory(() => {
|
|
22656
|
+
return (h("div", null,
|
|
22657
|
+
h("sqb-program-section", { "program-id": "Vacay-referral" },
|
|
22658
|
+
h("sqm-program-menu", null,
|
|
22659
|
+
h("sl-menu-item", { value: "Vacay-referral" }, "Vacay-referral"),
|
|
22660
|
+
h("sl-menu-item", { value: "vacay-affiliates" }, "vacay-affiliates")),
|
|
22661
|
+
h("sqb-program-switch", null,
|
|
22662
|
+
h("template", { "program-id": "Vacay-referral" },
|
|
22663
|
+
h("sqb-widget", { "widget-type": "p/Vacay-referral/w/referrerWidget", demoData: {
|
|
22664
|
+
data: { html: dashboardTemplate },
|
|
22665
|
+
} })),
|
|
22666
|
+
h("template", { "program-id": "vacay-affiliates" },
|
|
22667
|
+
h("sqb-widget", { "widget-type": "p/vacay-affiliates/w/referrerWidget", demoData: {
|
|
22668
|
+
data: { html: dashboardTemplate },
|
|
22669
|
+
} }))))));
|
|
22670
|
+
});
|
|
22671
|
+
|
|
22672
|
+
const ProgramMenu$1 = /*#__PURE__*/Object.freeze({
|
|
22673
|
+
__proto__: null,
|
|
22674
|
+
'default': ProgramMenu_stories,
|
|
22675
|
+
OneProgram: OneProgram,
|
|
22676
|
+
TwoProgram: TwoProgram,
|
|
22677
|
+
FiveProgram: FiveProgram,
|
|
22678
|
+
ProgramMenuWithSwitch: ProgramMenuWithSwitch
|
|
22679
|
+
});
|
|
22680
|
+
|
|
22681
|
+
const PoweredByImg_stories = {
|
|
22682
|
+
title: "Powered By",
|
|
22683
|
+
};
|
|
22684
|
+
const Default$a = () => {
|
|
22685
|
+
return h(PoweredByImg$1, null);
|
|
22686
|
+
};
|
|
22687
|
+
const CustomColor = () => {
|
|
22688
|
+
return h(PoweredByImg$1, { color: "salmon" });
|
|
22689
|
+
};
|
|
22690
|
+
const CustomWidthAndHeight = () => {
|
|
22691
|
+
return h(PoweredByImg$1, { width: 300, height: 50 });
|
|
22692
|
+
};
|
|
22693
|
+
|
|
22694
|
+
const PoweredByImg = /*#__PURE__*/Object.freeze({
|
|
22695
|
+
__proto__: null,
|
|
22696
|
+
'default': PoweredByImg_stories,
|
|
22697
|
+
Default: Default$a,
|
|
22698
|
+
CustomColor: CustomColor,
|
|
22699
|
+
CustomWidthAndHeight: CustomWidthAndHeight
|
|
22700
|
+
});
|
|
22701
|
+
|
|
22702
|
+
const PortalFooter_stories = {
|
|
22703
|
+
title: "Portal Footer",
|
|
22704
|
+
parameters: {},
|
|
22705
|
+
};
|
|
22706
|
+
const defaultProps$9 = {
|
|
22707
|
+
supportEmail: "support@example.com",
|
|
22708
|
+
supportText: "For program support, contact {email}",
|
|
22709
|
+
showPoweredBy: true,
|
|
22710
|
+
poweredByLink: "https://saasquatch.com",
|
|
22711
|
+
paddingTop: "large",
|
|
22712
|
+
paddingRight: "large",
|
|
22713
|
+
paddingBottom: "large",
|
|
22714
|
+
paddingLeft: "large",
|
|
22715
|
+
};
|
|
22716
|
+
const DefaultFooter = () => h(PortalFooterView, Object.assign({}, defaultProps$9));
|
|
22717
|
+
const FooterWithTerms = () => (h(PortalFooterView, Object.assign({}, defaultProps$9, { termsLink: "https://example.com", termsText: "Terms and Conditions" })));
|
|
22718
|
+
const FooterWithFAQ = () => (h(PortalFooterView, Object.assign({}, defaultProps$9, { faqLink: "https://example.com", faqText: "FAQ" })));
|
|
22719
|
+
const FooterWithTermsAndFAQ = () => (h(PortalFooterView, Object.assign({}, defaultProps$9, { termsLink: "https://example.com", termsText: "Terms and Conditions", faqLink: "https://example.com", faqText: "FAQ" })));
|
|
22720
|
+
const FooterNoPoweredBy = () => (h(PortalFooterView, Object.assign({}, defaultProps$9, { termsLink: "https://example.com", termsText: "Terms and Conditions", faqLink: "https://example.com", faqText: "FAQ", showPoweredBy: false })));
|
|
22721
|
+
|
|
22722
|
+
const PortalFooter = /*#__PURE__*/Object.freeze({
|
|
22723
|
+
__proto__: null,
|
|
22724
|
+
'default': PortalFooter_stories,
|
|
22725
|
+
DefaultFooter: DefaultFooter,
|
|
22726
|
+
FooterWithTerms: FooterWithTerms,
|
|
22727
|
+
FooterWithFAQ: FooterWithFAQ,
|
|
22728
|
+
FooterWithTermsAndFAQ: FooterWithTermsAndFAQ,
|
|
22729
|
+
FooterNoPoweredBy: FooterNoPoweredBy
|
|
22730
|
+
});
|
|
22731
|
+
|
|
22732
|
+
const Hero_stories = {
|
|
22733
|
+
title: "Hero Layout",
|
|
22734
|
+
parameters: {
|
|
22735
|
+
// scenario,
|
|
22736
|
+
},
|
|
22737
|
+
};
|
|
22738
|
+
const LoginOneColumn = () => {
|
|
22739
|
+
const props = {
|
|
22740
|
+
states: {
|
|
22741
|
+
columns: 1,
|
|
22742
|
+
wrapDirection: "wrap",
|
|
22743
|
+
},
|
|
22744
|
+
content: {
|
|
22745
|
+
primaryColumn: [
|
|
22746
|
+
h("h1", { style: { textAlign: "center" } }, "Get Referring!"),
|
|
22747
|
+
h("sqm-portal-login", null)
|
|
22748
|
+
]
|
|
22749
|
+
},
|
|
22750
|
+
};
|
|
22751
|
+
return (h("div", { style: { height: "800px" } },
|
|
22752
|
+
h(HeroView, Object.assign({}, props))));
|
|
22753
|
+
};
|
|
22754
|
+
const LoginOneColumnWithColor = () => {
|
|
22755
|
+
const props = {
|
|
22756
|
+
states: {
|
|
22757
|
+
columns: 1,
|
|
22758
|
+
wrapDirection: "wrap",
|
|
22759
|
+
background: "LightSlateGrey",
|
|
22760
|
+
},
|
|
22761
|
+
content: {
|
|
22762
|
+
primaryColumn: h("sqm-portal-login", null),
|
|
22763
|
+
},
|
|
22764
|
+
};
|
|
22765
|
+
return (h("div", { style: { height: "800px" } },
|
|
22766
|
+
h(HeroView, Object.assign({}, props))));
|
|
22767
|
+
};
|
|
22768
|
+
const LoginOneColumnWithImage = () => {
|
|
22769
|
+
const props = {
|
|
22770
|
+
states: {
|
|
22771
|
+
columns: 1,
|
|
22772
|
+
wrapDirection: "wrap",
|
|
22773
|
+
background: "https://images.unsplash.com/photo-1599676821464-3555954838dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1939&q=80",
|
|
22774
|
+
},
|
|
22775
|
+
content: { primaryColumn: h("sqm-portal-login", null) },
|
|
22776
|
+
};
|
|
22777
|
+
return (h("div", { style: { height: "800px" } },
|
|
22778
|
+
h(HeroView, Object.assign({}, props))));
|
|
22779
|
+
};
|
|
22780
|
+
const TwoColumnLogin = () => {
|
|
22781
|
+
const props = {
|
|
22782
|
+
states: {
|
|
22783
|
+
columns: 2,
|
|
22784
|
+
wrapDirection: "wrap",
|
|
22785
|
+
},
|
|
22786
|
+
content: {
|
|
22787
|
+
primaryColumn: (h("sqm-portal-login", { style: { width: "85%" } })),
|
|
22788
|
+
secondaryColumn: (h("div", { style: { width: "85%" } },
|
|
22789
|
+
h("h1", { style: { textAlign: "center" } }, "Get Referring!"),
|
|
22790
|
+
h("p", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."))),
|
|
22791
|
+
},
|
|
22792
|
+
};
|
|
22793
|
+
return (h("div", { style: { height: "800px" } },
|
|
22794
|
+
h(HeroView, Object.assign({}, props))));
|
|
22795
|
+
};
|
|
22796
|
+
const TwoColumnLoginReverseWrap = () => {
|
|
22797
|
+
const props = {
|
|
22798
|
+
states: {
|
|
22799
|
+
columns: 2,
|
|
22800
|
+
wrapDirection: "wrap-reverse",
|
|
22801
|
+
},
|
|
22802
|
+
content: {
|
|
22803
|
+
primaryColumn: (h("sqm-portal-login", { style: { width: "85%" } })),
|
|
22804
|
+
secondaryColumn: (h("div", { style: { width: "85%" } },
|
|
22805
|
+
h("h1", { style: { textAlign: "center" } }, "Get Referring!"),
|
|
22806
|
+
h("p", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."))),
|
|
22807
|
+
},
|
|
22808
|
+
};
|
|
22809
|
+
return (h("div", { style: { height: "800px" } },
|
|
22810
|
+
h(HeroView, Object.assign({}, props))));
|
|
22811
|
+
};
|
|
22812
|
+
const TwoColumnLoginWithImage = () => {
|
|
22813
|
+
const props = {
|
|
22814
|
+
states: {
|
|
22815
|
+
columns: 2,
|
|
22816
|
+
wrapDirection: "wrap",
|
|
22817
|
+
},
|
|
22818
|
+
content: {
|
|
22819
|
+
primaryColumn: (h("div", { style: { width: "85%" } },
|
|
22820
|
+
h("h1", { style: { textAlign: "center" } }, "Get Referring!"),
|
|
22821
|
+
h("sqm-portal-login", null))),
|
|
22822
|
+
secondaryColumn: (h("img", { src: "https://images.unsplash.com/photo-1629004021495-83fe9b730acb?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=735&q=80" })),
|
|
22823
|
+
},
|
|
22824
|
+
};
|
|
22825
|
+
return (h("div", { style: { height: "800px" } },
|
|
22826
|
+
h(HeroView, Object.assign({}, props))));
|
|
22827
|
+
};
|
|
22828
|
+
|
|
22829
|
+
const Hero = /*#__PURE__*/Object.freeze({
|
|
22830
|
+
__proto__: null,
|
|
22831
|
+
'default': Hero_stories,
|
|
22832
|
+
LoginOneColumn: LoginOneColumn,
|
|
22833
|
+
LoginOneColumnWithColor: LoginOneColumnWithColor,
|
|
22834
|
+
LoginOneColumnWithImage: LoginOneColumnWithImage,
|
|
22835
|
+
TwoColumnLogin: TwoColumnLogin,
|
|
22836
|
+
TwoColumnLoginReverseWrap: TwoColumnLoginReverseWrap,
|
|
22837
|
+
TwoColumnLoginWithImage: TwoColumnLoginWithImage
|
|
22838
|
+
});
|
|
22839
|
+
|
|
19089
22840
|
function deepFreeze(obj) {
|
|
19090
22841
|
if (obj instanceof Map) {
|
|
19091
22842
|
obj.clear = obj.delete = obj.set = function () {
|
|
@@ -21688,7 +25439,7 @@ const stories = [
|
|
|
21688
25439
|
NewPortal,
|
|
21689
25440
|
SidebarItem,
|
|
21690
25441
|
NavigationSidebar,
|
|
21691
|
-
PortalLogin,
|
|
25442
|
+
PortalLogin$1,
|
|
21692
25443
|
PortalRegister$1,
|
|
21693
25444
|
PortalForgotPassword,
|
|
21694
25445
|
PortalEmailVerification,
|
|
@@ -21703,6 +25454,11 @@ const stories = [
|
|
|
21703
25454
|
ReferralTableRewardsCell$1,
|
|
21704
25455
|
UserName,
|
|
21705
25456
|
PasswordField,
|
|
25457
|
+
PortalTemplates,
|
|
25458
|
+
ProgramMenu$1,
|
|
25459
|
+
PoweredByImg,
|
|
25460
|
+
PortalFooter,
|
|
25461
|
+
Hero
|
|
21706
25462
|
];
|
|
21707
25463
|
const StencilStorybook = class {
|
|
21708
25464
|
constructor(hostRef) {
|
|
@@ -21742,7 +25498,7 @@ const TableRow = class {
|
|
|
21742
25498
|
}
|
|
21743
25499
|
};
|
|
21744
25500
|
|
|
21745
|
-
const debug$
|
|
25501
|
+
const debug$2 = browser("sq:global");
|
|
21746
25502
|
const textStyles = `
|
|
21747
25503
|
sqm-text {
|
|
21748
25504
|
display: block;
|
|
@@ -21802,7 +25558,7 @@ const Text = class {
|
|
|
21802
25558
|
insertCSS(textStyles);
|
|
21803
25559
|
}
|
|
21804
25560
|
catch (error) {
|
|
21805
|
-
debug$
|
|
25561
|
+
debug$2(error);
|
|
21806
25562
|
}
|
|
21807
25563
|
}
|
|
21808
25564
|
render() {
|
|
@@ -21867,4 +25623,4 @@ function useUserNameDemo(props) {
|
|
|
21867
25623
|
}, props.demoData || {}, { arrayMerge: (_, a) => a });
|
|
21868
25624
|
}
|
|
21869
25625
|
|
|
21870
|
-
export { DividedLayout as sqm_divided_layout, EditProfile as sqm_edit_profile, FormMessage as sqm_form_message, SqmHookStoryContainer as sqm_hook_story_container, NavigationMenu as sqm_navigation_menu, PortalPasswordField as sqm_password_field, PortalFrame as sqm_portal_frame, PortalRegister as sqm_portal_register, ReferralTable as sqm_referral_table, ReferralTableCell as sqm_referral_table_cell, ReferralTableDateCell as sqm_referral_table_date_cell, ReferralTableRewardsCell as sqm_referral_table_rewards_cell, ReferralTableStatusCell as sqm_referral_table_status_cell, ReferralTableUserCell as sqm_referral_table_user_cell, SqmRouter as sqm_router, ShareButton as sqm_share_button, ShareLink as sqm_share_link, StencilStorybook as sqm_stencilbook, TableCell$1 as sqm_table_cell, TableRow as sqm_table_row, Text as sqm_text, UserName$1 as sqm_user_name };
|
|
25626
|
+
export { DividedLayout as sqm_divided_layout, EditProfile as sqm_edit_profile, FormMessage as sqm_form_message, SqmHookStoryContainer as sqm_hook_story_container, NavigationMenu as sqm_navigation_menu, PortalPasswordField as sqm_password_field, PortalFrame as sqm_portal_frame, PortalLogin as sqm_portal_login, PortalRegister as sqm_portal_register, ProgramMenu as sqm_program_menu, ReferralTable as sqm_referral_table, ReferralTableCell as sqm_referral_table_cell, ReferralTableDateCell as sqm_referral_table_date_cell, ReferralTableRewardsCell as sqm_referral_table_rewards_cell, ReferralTableStatusCell as sqm_referral_table_status_cell, ReferralTableUserCell as sqm_referral_table_user_cell, SqmRouter as sqm_router, ShareButton as sqm_share_button, ShareLink as sqm_share_link, StencilStorybook as sqm_stencilbook, TableCell$1 as sqm_table_cell, TableRow as sqm_table_row, Text as sqm_text, UserName$1 as sqm_user_name };
|