@beamimpact/web-sdk 1.57.4 → 1.58.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{_share-dialog-dependencies-BvaXft1r.esm.js → _share-dialog-dependencies-Caoc1gRc.esm.js} +2 -2
- package/dist/chunks/{_share-dialog-dependencies-BvaXft1r.esm.js.map → _share-dialog-dependencies-Caoc1gRc.esm.js.map} +1 -1
- package/dist/chunks/{cart-DCezceUX.esm.d.ts → cart-DKQHSz5X.esm.d.ts} +1 -1
- package/dist/chunks/{css-card-grid-CiqEjkwR.esm.js → css-card-grid-tjA36yWj.esm.js} +2 -2
- package/dist/chunks/{css-card-grid-CiqEjkwR.esm.js.map → css-card-grid-tjA36yWj.esm.js.map} +1 -1
- package/dist/chunks/{handlebars-B_i-to-h.esm.js → handlebars-3tRO54kz.esm.js} +7 -7
- package/dist/chunks/{handlebars-B_i-to-h.esm.js.map → handlebars-3tRO54kz.esm.js.map} +1 -1
- package/dist/chunks/index-ADw_ucEx.esm.js +2 -0
- package/dist/chunks/index-ADw_ucEx.esm.js.map +1 -0
- package/dist/chunks/index-BF0X_60j.esm.js +32 -0
- package/dist/chunks/index-BF0X_60j.esm.js.map +1 -0
- package/dist/chunks/index-BxivRkBL.esm.js +2 -0
- package/dist/chunks/{index-Bt4Ob1Fi.esm.js.map → index-BxivRkBL.esm.js.map} +1 -1
- package/dist/chunks/{index-C6gns2ul.esm.d.ts → index-DGOC8m2r.esm.d.ts} +1 -1
- package/dist/chunks/{index-BOHlIBDq.esm.js → index-DtAcPGd4.esm.js} +4 -4
- package/dist/chunks/index-DtAcPGd4.esm.js.map +1 -0
- package/dist/chunks/index-E6IoMPQu.esm.js +32 -0
- package/dist/chunks/index-E6IoMPQu.esm.js.map +1 -0
- package/dist/chunks/index-M8hQ6GXf.esm.js +31 -0
- package/dist/chunks/index-M8hQ6GXf.esm.js.map +1 -0
- package/dist/chunks/{index-Di1IwSgk.esm.js → index-Yt9xXa7z.esm.js} +4 -4
- package/dist/chunks/index-Yt9xXa7z.esm.js.map +1 -0
- package/dist/chunks/{promo-pill-label-D-VXaB27.esm.js → promo-pill-label-DCBXltdj.esm.js} +2 -2
- package/dist/chunks/{promo-pill-label-D-VXaB27.esm.js.map → promo-pill-label-DCBXltdj.esm.js.map} +1 -1
- package/dist/chunks/{routes-D6Gtw6kZ.esm.d.ts → routes-BW8Dd3C1.esm.d.ts} +8 -4
- package/dist/chunks/{share-button-o8IBYAxH.esm.js → share-button-C1PRjoPw.esm.js} +2 -2
- package/dist/chunks/{share-button-o8IBYAxH.esm.js.map → share-button-C1PRjoPw.esm.js.map} +1 -1
- package/dist/chunks/{share-button-DFuEWa2h.esm.js → share-button-CNq5lDre.esm.js} +2 -2
- package/dist/chunks/{share-button-DFuEWa2h.esm.js.map → share-button-CNq5lDre.esm.js.map} +1 -1
- package/dist/chunks/statsig-DlszSNOf.esm.js +2 -0
- package/dist/chunks/statsig-DlszSNOf.esm.js.map +1 -0
- package/dist/chunks/{utils-C5hmbxa4.esm.js → utils-ly9wMwUO.esm.js} +2 -2
- package/dist/chunks/{utils-C5hmbxa4.esm.js.map → utils-ly9wMwUO.esm.js.map} +1 -1
- package/dist/components/community-impact.esm.js +1 -1
- package/dist/components/community-impact.js +1 -1
- package/dist/components/cumulative-impact.esm.js +1 -1
- package/dist/components/cumulative-impact.js +1 -1
- package/dist/components/impact-overview.esm.js +1 -1
- package/dist/components/impact-overview.js +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.esm.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/post-purchase.esm.js +1 -1
- package/dist/components/post-purchase.js +1 -1
- package/dist/components/product-details-page.d.ts +1 -1
- package/dist/components/product-details-page.esm.js +3 -3
- package/dist/components/product-details-page.js +3 -3
- package/dist/components/redeem-transaction.esm.js +1 -1
- package/dist/components/redeem-transaction.js +1 -1
- package/dist/components/select-nonprofit.esm.js +22 -24
- package/dist/components/select-nonprofit.esm.js.map +1 -1
- package/dist/components/select-nonprofit.js +22 -24
- package/dist/components/select-nonprofit.js.map +1 -1
- package/dist/components/select-subscription-nonprofit.esm.js +2 -2
- package/dist/components/select-subscription-nonprofit.esm.js.map +1 -1
- package/dist/components/select-subscription-nonprofit.js +2 -2
- package/dist/components/select-subscription-nonprofit.js.map +1 -1
- package/dist/components/shopify.d.ts +2 -2
- package/dist/components/shopify.esm.js +1 -1
- package/dist/components/shopify.js +1 -1
- package/dist/components/social-share.esm.js +1 -1
- package/dist/components/social-share.js +1 -1
- package/dist/components/subscriber-select-nonprofit.esm.js +4 -4
- package/dist/components/subscriber-select-nonprofit.esm.js.map +1 -1
- package/dist/components/subscriber-select-nonprofit.js +4 -4
- package/dist/components/subscriber-select-nonprofit.js.map +1 -1
- package/dist/components/subscription-impact.esm.js +1 -1
- package/dist/components/subscription-impact.js +1 -1
- package/dist/components/subscription-management.d.ts +1 -1
- package/dist/components/subscription-management.esm.js +1 -1
- package/dist/components/subscription-management.esm.js.map +1 -1
- package/dist/components/subscription-management.js +1 -1
- package/dist/components/subscription-management.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/integrations/beam.esm.js +1 -1
- package/dist/integrations/beam.js +1 -1
- package/dist/integrations/cart.esm.js +1 -1
- package/dist/integrations/cart.js +1 -1
- package/dist/integrations/logs.esm.js +1 -1
- package/dist/integrations/logs.js +1 -1
- package/dist/integrations/promoManager.esm.js +1 -1
- package/dist/integrations/promoManager.js +1 -1
- package/dist/integrations/session.esm.js +1 -1
- package/dist/integrations/session.js +1 -1
- package/dist/integrations/shopify-order.d.ts +1 -1
- package/dist/integrations/shopify-order.esm.js +1 -1
- package/dist/integrations/shopify-order.js +1 -1
- package/dist/integrations/shopify.d.ts +1 -1
- package/dist/integrations/shopify.esm.js +1 -1
- package/dist/integrations/shopify.js +1 -1
- package/dist/integrations/statsig.d.ts +7 -4
- package/dist/integrations/statsig.esm.js +14 -14
- package/dist/integrations/statsig.esm.js.map +1 -1
- package/dist/integrations/statsig.js +14 -14
- package/dist/integrations/statsig.js.map +1 -1
- package/dist/integrations/utils.esm.js +1 -1
- package/dist/integrations/utils.js +1 -1
- package/dist/react/community-impact.esm.js +1 -1
- package/dist/react/community-impact.js +1 -1
- package/dist/react/cumulative-impact.esm.js +1 -1
- package/dist/react/cumulative-impact.js +1 -1
- package/dist/react/impact-overview.esm.js +1 -1
- package/dist/react/impact-overview.js +1 -1
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.esm.js +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/post-purchase.esm.js +1 -1
- package/dist/react/post-purchase.js +1 -1
- package/dist/react/product-details-page.d.ts +1 -1
- package/dist/react/product-details-page.esm.js +1 -1
- package/dist/react/product-details-page.js +1 -1
- package/dist/react/redeem-transaction.esm.js +1 -1
- package/dist/react/redeem-transaction.js +1 -1
- package/dist/react/select-nonprofit.esm.js +1 -1
- package/dist/react/select-nonprofit.js +1 -1
- package/dist/react/select-subscription-nonprofit.esm.js +1 -1
- package/dist/react/select-subscription-nonprofit.js +1 -1
- package/dist/react/shopify.esm.js +1 -1
- package/dist/react/shopify.js +1 -1
- package/dist/react/social-share.esm.js +1 -1
- package/dist/react/social-share.js +1 -1
- package/dist/react/subscriber-select-nonprofit.esm.js +1 -1
- package/dist/react/subscriber-select-nonprofit.js +1 -1
- package/dist/react/subscription-impact.esm.js +1 -1
- package/dist/react/subscription-impact.js +1 -1
- package/dist/react/subscription-management.d.ts +1 -1
- package/dist/react/subscription-management.esm.js +1 -1
- package/dist/react/subscription-management.js +1 -1
- package/dist/utils/beam-errors.esm.js +1 -1
- package/dist/utils/beam-errors.js +1 -1
- package/dist/utils/cart.esm.js +1 -1
- package/dist/utils/cart.js +1 -1
- package/dist/utils/clear-beam-storage.esm.js +1 -1
- package/dist/utils/clear-beam-storage.js +1 -1
- package/dist/utils/cookies.esm.js +1 -1
- package/dist/utils/cookies.js +1 -1
- package/dist/utils/events.esm.js +1 -1
- package/dist/utils/events.js +1 -1
- package/dist/utils/local-storage.esm.js +1 -1
- package/dist/utils/local-storage.js +1 -1
- package/dist/utils/logger.esm.js +1 -1
- package/dist/utils/logger.js +1 -1
- package/dist/utils/makeApiKeyHeader.esm.js +1 -1
- package/dist/utils/makeApiKeyHeader.js +1 -1
- package/dist/utils/memoize-last.esm.js +1 -1
- package/dist/utils/memoize-last.js +1 -1
- package/dist/utils/network-listeners.esm.js +1 -1
- package/dist/utils/network-listeners.js +1 -1
- package/dist/utils/promoManager.esm.js +1 -1
- package/dist/utils/promoManager.js +1 -1
- package/dist/utils/remote-session.esm.js +1 -1
- package/dist/utils/remote-session.js +1 -1
- package/dist/utils/wait-for-element.esm.js +1 -1
- package/dist/utils/wait-for-element.js +1 -1
- package/package.json +5 -4
- package/dist/chunks/index-726Vfz5u.esm.js +0 -32
- package/dist/chunks/index-726Vfz5u.esm.js.map +0 -1
- package/dist/chunks/index-B7OkmoYI.esm.js +0 -2
- package/dist/chunks/index-B7OkmoYI.esm.js.map +0 -1
- package/dist/chunks/index-BOHlIBDq.esm.js.map +0 -1
- package/dist/chunks/index-Bc_hD09J.esm.js +0 -32
- package/dist/chunks/index-Bc_hD09J.esm.js.map +0 -1
- package/dist/chunks/index-Bt4Ob1Fi.esm.js +0 -2
- package/dist/chunks/index-CVHrQ1WC.esm.js +0 -31
- package/dist/chunks/index-CVHrQ1WC.esm.js.map +0 -1
- package/dist/chunks/index-Di1IwSgk.esm.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriber-select-nonprofit.js","sources":["../../src/shared/handlebars-helpers.ts","../../src/shared/fragments/user-strings.ts","../../src/components/subscriber-select-nonprofit/strings.ts","../../src/components/subscriber-select-nonprofit/index.ts"],"sourcesContent":["import * as Handlebars from \"handlebars\";\nimport dayjs from \"dayjs\";\n\n// ── Date helpers ────────────────────────────────────────────────────────────\n\n// Named presets so callers don't need to remember dayjs tokens\nconst PRESETS: Record<string, string> = {\n long: \"dddd, MMMM D, YYYY\", // Sunday, June 15, 2026\n short: \"MMM D, YYYY\", // Jun 15, 2026\n numeric: \"MM/DD/YYYY\", // 06/15/2026\n iso: \"YYYY-MM-DD\", // 2026-06-15\n time: \"h:mm A\", // 3:45 PM\n time24: \"HH:mm\", // 15:45\n datetime: \"MMMM D, YYYY h:mm A\", // June 15, 2026 3:45 PM\n month: \"MMMM YYYY\", // June 2026\n monthShort: \"MMM YYYY\", // Jun 2026\n dayMonth: \"MMMM D\", // June 15\n};\n\nconst formatDate = (date: Date, fmt?: string): string => {\n const resolved = PRESETS[fmt ?? \"long\"] ?? fmt ?? PRESETS.long;\n return dayjs(date).format(resolved);\n};\n\n/**\n * Accepts named presets or any dayjs format string.\n *\n * Presets: long · short · numeric · iso · time · time24 · datetime · month · monthShort · dayMonth\n * Tokens: any dayjs format string, e.g. \"Do [of] MMMM\" → \"15th of June\"\n *\n * {{currentDate}} → \"Sunday, June 15, 2026\"\n * {{currentDate \"short\"}} → \"Jun 15, 2026\"\n * {{currentDate \"iso\"}} → \"2026-06-15\"\n * {{currentDate \"time\"}} → \"3:45 PM\"\n * {{currentDate \"Do [of] MMMM\"}} → \"15th of June\"\n */\nHandlebars.registerHelper(\"currentDate\", (format?: string) => {\n return formatDate(new Date(), typeof format === \"string\" ? format : undefined);\n});\n\n/**\n * {{nextMonth}} → \"Wednesday, July 15, 2026\"\n * {{nextMonth \"short\"}} → \"Jul 15, 2026\"\n * {{nextMonth \"iso\"}} → \"2026-07-15\"\n * {{nextMonth \"month\"}} → \"July 2026\"\n *\n * Advances by one calendar month, clamping to the last day of the target month\n * (e.g. Jan 31 → Feb 28).\n */\nHandlebars.registerHelper(\"nextMonth\", (format?: string) => {\n // dayjs clamps month-end naturally (e.g. Jan 31 → Feb 28)\n const target = dayjs().add(1, \"month\").toDate();\n return formatDate(target, typeof format === \"string\" ? format : undefined);\n});\n\n/**\n * {{dateOffset -1}} → \"Saturday, June 14, 2026\"\n * {{dateOffset 1}} → \"Monday, June 16, 2026\"\n * {{dateOffset -1 \"relative\"}} → \"yesterday\"\n * {{dateOffset 0 \"relative\"}} → \"today\"\n * {{dateOffset 1 \"relative\"}} → \"tomorrow\"\n * {{dateOffset -7 \"relative\"}} → \"7 days ago\"\n * {{dateOffset 7 \"relative\"}} → \"7 days from now\"\n * {{dateOffset 7 \"short\"}} → \"Jun 22, 2026\"\n * {{dateOffset 7 \"Do [of] MMMM\"}} → \"22nd of June\"\n * {{dateOffset -30 \"iso\"}} → \"2026-05-16\"\n * {{dateOffset 7 from=orderDate}} → \"Sunday, June 22, 2026\" (7 days after orderDate)\n * {{dateOffset 7 \"short\" from=orderDate}} → \"Jun 22, 2026\" (7 days after orderDate)\n *\n * `from` accepts a Date object, ISO string, or timestamp number.\n */\nHandlebars.registerHelper(\n \"dateOffset\",\n (days: number, format?: string | Handlebars.HelperOptions, options?: Handlebars.HelperOptions) => {\n const fmt = typeof format === \"string\" ? format : undefined;\n const opts = typeof format === \"string\" ? options : (format as Handlebars.HelperOptions);\n const fromVal = opts?.hash?.from;\n const baseDate = fromVal ? new Date(fromVal as string | number) : new Date();\n const d = dayjs(baseDate).add(days, \"day\").toDate();\n\n if (fmt === \"relative\") {\n if (days === -1) return \"yesterday\";\n if (days === 0) return \"today\";\n if (days === 1) return \"tomorrow\";\n return days < 0 ? `${Math.abs(days)} days ago` : `${days} days from now`;\n }\n\n return formatDate(d, fmt);\n },\n);\n\n/**\n * Format a date value from context using any preset or date-fns format string.\n * Accepts a Date object, ISO string, or timestamp number.\n *\n * {{formatDate orderDate \"short\"}} → \"Jun 15, 2026\"\n * {{formatDate orderDate \"iso\"}} → \"2026-06-15\"\n * {{formatDate orderDate \"Do [of] MMMM\"}} → \"15th of June\"\n * {{formatDate orderDate}} → \"Sunday, June 15, 2026\"\n */\nHandlebars.registerHelper(\"formatDate\", (value: unknown, format?: string) => {\n const date = value instanceof Date ? value : new Date(value as string | number);\n if (isNaN(date.getTime())) return \"\";\n return formatDate(date, typeof format === \"string\" ? format : undefined);\n});\n\n// ── Color helper ─────────────────────────────────────────────────────────────\n\n/**\n * {{color \"red\" \"Sale ends today!\"}}\n * {{color \"#ff6600\" someVar}}\n *\n * Accepts any valid CSS color value (named color, hex, rgb(), hsl(), etc.).\n */\nHandlebars.registerHelper(\"color\", (colorValue: string, text: unknown) => {\n const escaped = Handlebars.escapeExpression(text as any);\n const safeColor = Handlebars.escapeExpression(colorValue);\n return new Handlebars.SafeString(`<span style=\"color:${safeColor}\">${escaped}</span>`);\n});\n\n// ── Layout helpers ───────────────────────────────────────────────────────────\n\n/** {{br}} → inserts a line break */\nHandlebars.registerHelper(\"br\", () => new Handlebars.SafeString(\"<br>\"));\n\n// ── Font-style helpers ────────────────────────────────────────────────────────\n\n/** {{bold \"Important!\"}} */\nHandlebars.registerHelper(\"bold\", (text: unknown) => {\n const escaped = Handlebars.escapeExpression(text as any);\n return new Handlebars.SafeString(`<strong>${escaped}</strong>`);\n});\n\n/** {{italic \"Note:\"}} */\nHandlebars.registerHelper(\"italic\", (text: unknown) => {\n const escaped = Handlebars.escapeExpression(text as any);\n return new Handlebars.SafeString(`<em>${escaped}</em>`);\n});\n\n/** {{underline \"Click here\"}} */\nHandlebars.registerHelper(\"underline\", (text: unknown) => {\n const escaped = Handlebars.escapeExpression(text as any);\n return new Handlebars.SafeString(`<span style=\"text-decoration:underline\">${escaped}</span>`);\n});\n\n/** {{strikethrough \"Was $99\"}} */\nHandlebars.registerHelper(\"strikethrough\", (text: unknown) => {\n const escaped = Handlebars.escapeExpression(text as any);\n return new Handlebars.SafeString(`<s>${escaped}</s>`);\n});\n\n/** {{uppercase \"hello\"}} → renders as \"HELLO\" via CSS so the source text is preserved */\nHandlebars.registerHelper(\"uppercase\", (text: unknown) => {\n const escaped = Handlebars.escapeExpression(text as any);\n return new Handlebars.SafeString(`<span style=\"text-transform:uppercase\">${escaped}</span>`);\n});\n\n/** {{lowercase \"HELLO\"}} */\nHandlebars.registerHelper(\"lowercase\", (text: unknown) => {\n const escaped = Handlebars.escapeExpression(text as any);\n return new Handlebars.SafeString(`<span style=\"text-transform:lowercase\">${escaped}</span>`);\n});\n\n/**\n * {{capitalize \"hello world\"}} → \"Hello world\" (first letter only — use uppercase for ALL CAPS)\n * Note: CSS text-transform:capitalize uppercases every word; this helper only touches the first character.\n */\nHandlebars.registerHelper(\"capitalize\", (text: unknown) => {\n const str = String(text ?? \"\");\n const capitalized = str.charAt(0).toUpperCase() + str.slice(1);\n return new Handlebars.SafeString(Handlebars.escapeExpression(capitalized));\n});\n\n/**\n * Combine multiple styles at once.\n *\n * {{style text bold=true italic=true color=\"#333\" underline=true strikethrough=false fontSize=\"16px\" fontFamily=\"Georgia, serif\"}}\n */\nHandlebars.registerHelper(\n \"style\",\n (\n text: unknown,\n options: Handlebars.HelperOptions & {\n hash: {\n bold?: boolean;\n italic?: boolean;\n underline?: boolean;\n strikethrough?: boolean;\n uppercase?: boolean;\n lowercase?: boolean;\n color?: string;\n fontSize?: string;\n fontFamily?: string;\n };\n },\n ) => {\n const { bold, italic, underline, strikethrough, uppercase, lowercase, color, fontSize, fontFamily } = options.hash;\n\n let content = Handlebars.escapeExpression(text as any);\n\n if (bold) content = `<strong>${content}</strong>`;\n if (italic) content = `<em>${content}</em>`;\n if (strikethrough) content = `<s>${content}</s>`;\n\n const cssProps: string[] = [];\n if (underline) cssProps.push(\"text-decoration:underline\");\n if (uppercase) cssProps.push(\"text-transform:uppercase\");\n if (lowercase) cssProps.push(\"text-transform:lowercase\");\n if (color) cssProps.push(`color:${Handlebars.escapeExpression(color)}`);\n if (fontSize) cssProps.push(`font-size:${Handlebars.escapeExpression(fontSize)}`);\n if (fontFamily) cssProps.push(`font-family:${Handlebars.escapeExpression(fontFamily)}`);\n\n if (cssProps.length) {\n content = `<span style=\"${cssProps.join(\";\")}\">${content}</span>`;\n }\n\n return new Handlebars.SafeString(content);\n },\n);\n\nexport { Handlebars };\n","import { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport { Handlebars } from \"../handlebars-helpers\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { localizeUserString } from \"../localize\";\n\nconst DEFAULT_LANGUAGE_CODE = \"en\";\n\n/**\n * Compile a string through Handlebars and return the raw HTML string.\n * If `context.lang` is set, the string is first passed through localizeUserString\n * so JSON-encoded multilingual strings ({\"en\":\"...\",\"fr\":\"...\"}) are resolved\n * before Handlebars processes them — no call to localizeUserString needed at call sites.\n */\nconst compileUserString = (str: string, context: Record<string, unknown> = {}, fallback = \"\"): string => {\n const lang = (context.lang || DEFAULT_LANGUAGE_CODE) as LANGUAGES;\n const source = str || fallback;\n const localized = localizeUserString(lang, source) ?? source;\n return Handlebars.compile(localized)(context);\n};\n\n/**\n * Compile a string through Handlebars and return a Lit TemplateResult safe for rendering HTML.\n * Equivalent to unsafeHTML(compileUserString(str, context, fallback)).\n */\nconst renderUserString = (str: string, context: Record<string, unknown> = {}, fallback = \"\") =>\n unsafeHTML(compileUserString(str, context, fallback));\n\nexport { compileUserString, renderUserString };\n","export const strings = {\n en: {\n beamAttribution: () => `Powered by Beam`,\n ctaTitle: () => `Choose Your Impact`,\n ctaMessage: ({ donationPercentage = \"1%\" } = {}) =>\n `Choose a nonprofit and ${donationPercentage} will be donated there for you,at no extra cost, with every order of your subscription.`,\n },\n fr: {\n beamAttribution: () => `Optimisé par Beam`,\n ctaTitle: () => `Choose Your Impact`,\n ctaMessage: ({ donationPercentage = \"1%\" } = {}) =>\n `Choose a nonprofit and ${donationPercentage} will be donated there for you,at no extra cost, with every order of your subscription.`,\n },\n de: {\n beamAttribution: () => `Unterstützt von Beam`,\n ctaTitle: () => `Choose Your Impact`,\n ctaMessage: ({ donationPercentage = \"1%\" } = {}) =>\n `Choose a nonprofit and ${donationPercentage} will be donated there for you,at no extra cost, with every order of your subscription.`,\n },\n es: {\n beamAttribution: () => `Desarrollado por Beam`,\n ctaTitle: () => `Choose Your Impact`,\n ctaMessage: ({ donationPercentage = \"1%\" } = {}) =>\n `Choose a nonprofit and ${donationPercentage} will be donated there for you,at no extra cost, with every order of your subscription.`,\n },\n it: {\n beamAttribution: () => `Offerto da Beam`,\n ctaTitle: () => `Choose Your Impact`,\n ctaMessage: ({ donationPercentage = \"1%\" } = {}) =>\n `Choose a nonprofit and ${donationPercentage} will be donated there for you,at no extra cost, with every order of your subscription.`,\n },\n pl: {\n beamAttribution: () => `Wspierane przez Beam`,\n ctaTitle: () => `Choose Your Impact`,\n ctaMessage: ({ donationPercentage = \"1%\" } = {}) =>\n `Choose a nonprofit and ${donationPercentage} will be donated there for you,at no extra cost, with every order of your subscription.`,\n },\n ja: {\n beamAttribution: () => `Powered by Beam`,\n ctaTitle: () => `Choose Your Impact`,\n ctaMessage: ({ donationPercentage = \"1%\" } = {}) =>\n `Choose a nonprofit and ${donationPercentage} will be donated there for you,at no extra cost, with every order of your subscription.`,\n },\n};\n","import { css, html, LitElement, PropertyValues } from \"lit\";\nimport { repeat } from \"lit/directives/repeat.js\";\nimport { property } from \"lit/decorators/property.js\";\nimport { styleMap } from \"lit/directives/style-map.js\";\nimport { state } from \"lit/decorators/state.js\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { DEFAULT_BASE_URL, SELECTION_METHODS, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { defineCustomText, useCustomText } from \"../../shared/fragments/custom-text\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { _cssVariableMap } from \"../../shared/fragments/css-variable-map\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { TNumericId } from \"../../shared/types\";\nimport {\n postChainEligibleNonprofitsForCart,\n postFindOrCreateSubscription,\n updateSubscription,\n} from \"../../api-sdk/v3/routes\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { BeamNonprofitSelectEvent } from \"../../utils/events\";\nimport { progressBarConfigDefaults } from \"../../shared/components/progress-bar\";\nimport { cssResponsiveUtils } from \"../../shared/responsive\";\nimport { makeApiKeyHeader } from \"../../utils/makeApiKeyHeader\";\nimport { compileUserString, renderUserString } from \"../../shared/fragments/user-strings\";\nimport { strings } from \"./strings\";\n\ninterface RequiredDataPropsWithEmail {\n email: string;\n apiKey: string;\n subscriptionId: string;\n}\n\ninterface RequiredDataPropsWithPartnerUserId {\n partnerUserId: string;\n apiKey: string;\n subscriptionId: string;\n}\n\ninterface RequiredConfig {\n apiKey: string;\n subscriptionId: string;\n}\n\nexport class BeamSubscriberSelectNonprofit extends LitElement {\n static tagName = \"beam-subscriber-select-nonprofit\";\n\n @property({ type: String }) public baseUrl: string = DEFAULT_BASE_URL;\n @property({ type: String }) public apiKey!: string;\n @property({ type: String }) public subscriptionId!: string;\n @property({ type: Number, reflect: true }) public storeId?: number;\n @property({ type: String }) public email?: RequiredDataPropsWithEmail[\"email\"];\n @property({ type: String }) public partnerUserId?: RequiredDataPropsWithPartnerUserId[\"partnerUserId\"];\n @property({ type: String }) public postalCode?: string;\n @property({ type: String }) public countryCode?: string;\n @property({ type: Number, reflect: true }) public selectedNonprofitId?: TNumericId;\n @property({ type: Number }) public preselectNonprofitAtIndex?: number;\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n @property({ type: Boolean }) public debug = false;\n @property({ type: Boolean }) public draftConfig = false;\n @property({ type: Object }) public templateData: Record<string, any> = {};\n @state() private chain: Record<string, any> = {};\n\n // Resolves once the subscription find/create lookup (if any) has settled, so nonprofit\n // list handling can tell whether the subscriber already has a saved selection\n private subscriptionLookup: Promise<unknown> = Promise.resolve();\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n private getChainNonprofits = async () => {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"subscriptionId\"], this)) {\n throw new MissingConfig();\n }\n\n const res = await postChainEligibleNonprofitsForCart({\n baseUrl: this.baseUrl,\n headers: makeApiKeyHeader(this.apiKey),\n requestBody: {\n storeId: this.storeId,\n widgetName: WIDGET_NAMES.subscriber_select_nonprofit,\n postalCode: this.postalCode,\n countryCode: this.countryCode,\n version: \"1.0.0\",\n lang: this.configLang,\n options: {\n config: {\n draftConfig: this.draftConfig,\n },\n },\n },\n });\n\n if (res.store?.id && res.store.id !== this.storeId) {\n this.storeId = res.store.id;\n }\n\n // Wait for the subscription to be found/created (if applicable) so we know whether\n // it already has a saved nonprofit selection before we clear or preselect one\n await this.subscriptionLookup;\n\n // Clear selection if the saved nonprofit is no longer in the eligible list\n if (\n this.selectedNonprofitId != null &&\n !res.nonprofits.map((np) => np.nonprofit.id).includes(this.selectedNonprofitId)\n ) {\n this.selectedNonprofitId = undefined;\n }\n\n // Auto-select the nonprofit at the given 1-based position if there is no existing selection\n if (this.selectedNonprofitId == null && this.preselectNonprofitAtIndex != null) {\n const preselectedNonprofit = res.nonprofits[this.preselectNonprofitAtIndex - 1];\n if (preselectedNonprofit) {\n this.selectedNonprofitId = preselectedNonprofit.nonprofit.id;\n await this.selectionDataController.exec({ selectedNonprofitId: preselectedNonprofit.nonprofit.id });\n }\n }\n\n this.chain = { ...res?.chain };\n\n return res;\n };\n\n private fetchSubscription = async () => {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"subscriptionId\"], this)) {\n throw new MissingConfig();\n }\n\n const result = await postFindOrCreateSubscription({\n baseUrl: this.baseUrl,\n headers: makeApiKeyHeader(this.apiKey),\n requestBody: {\n remoteSubscriptionId: this.subscriptionId,\n email: this.email,\n partnerUserId: this.partnerUserId,\n },\n });\n\n // Pre-populate selection from the subscription record if not already set\n if (result.nonprofit?.id && this.selectedNonprofitId === undefined) {\n this.selectedNonprofitId = result.nonprofit.id;\n }\n\n return result;\n };\n\n private updateNonprofitForSubscription = async ({ selectedNonprofitId }: { selectedNonprofitId: TNumericId }) => {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"subscriptionId\"], this)) {\n throw new MissingConfig();\n }\n\n const result = await updateSubscription({\n baseUrl: this.baseUrl,\n headers: makeApiKeyHeader(this.apiKey),\n requestBody: {\n remoteSubscriptionId: this.subscriptionId,\n nonprofitId: selectedNonprofitId,\n selectionMethod: SELECTION_METHODS.subscriber_select_nonprofit_widget,\n },\n });\n\n await this.updateComplete;\n\n const selectedNonprofit = this.getNonprofitById(selectedNonprofitId);\n\n this.dispatchEvent(\n new BeamNonprofitSelectEvent({\n selectedNonprofitId,\n nonprofitName: selectedNonprofit?.nonprofit?.name ?? null,\n source: WIDGET_NAMES.subscriber_select_nonprofit,\n timestamp: new Date(),\n }),\n );\n\n return result;\n };\n\n private nonprofitListDataController = new AsyncController<typeof this.getChainNonprofits>(\n this,\n this.getChainNonprofits,\n );\n\n private subscriptionDataController = new AsyncController<typeof this.fetchSubscription>(this, this.fetchSubscription);\n\n private selectionDataController = new AsyncController<typeof this.updateNonprofitForSubscription>(\n this,\n this.updateNonprofitForSubscription,\n );\n\n private getNonprofitById(id: number | null) {\n if (!id) return null;\n return this.nonprofitListDataController?.data?.nonprofits.find((np) => np.nonprofit.id === id);\n }\n\n async connectedCallback() {\n super.connectedCallback();\n this.nonprofitListDataController.loading = true;\n }\n\n async firstUpdated() {\n if (!this.apiKey || (!this.email && !this.partnerUserId)) return;\n this.subscriptionLookup = this.subscriptionDataController.exec();\n await this.subscriptionLookup;\n }\n\n async updated(changedProperties: PropertyValues) {\n const requireNewDataProps = [\"baseUrl\", \"storeId\", \"apiKey\", \"countryCode\", \"postalCode\", \"lang\"];\n for (const prop of requireNewDataProps) {\n if (changedProperties.has(prop)) {\n await this.nonprofitListDataController.exec();\n break;\n }\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n }\n\n private makeHandleSelect =\n (id: number, index: number, nonprofits: { nonprofit: { id: number } }[]) => async (evt: Event) => {\n const currentId = this.selectedNonprofitId;\n if (evt instanceof KeyboardEvent) {\n let nextFocus = null;\n switch (evt.key) {\n case \"ArrowUp\":\n case \"ArrowLeft\":\n nextFocus = index === 0 ? nonprofits[nonprofits.length - 1] : nonprofits[index - 1];\n evt.preventDefault();\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n nextFocus = index === nonprofits.length - 1 ? nonprofits[0] : nonprofits[index + 1];\n evt.preventDefault();\n break;\n case \"Enter\":\n case \" \":\n evt.preventDefault();\n break;\n default:\n return;\n }\n if (nextFocus) {\n if (currentId != null) {\n this.selectedNonprofitId = nextFocus.nonprofit.id;\n }\n const focusTarget = this.renderRoot.querySelector(`[data-value=\"${nextFocus.nonprofit.id}\"]`) as HTMLElement;\n if (focusTarget !== null) {\n focusTarget.tabIndex = 0;\n focusTarget.focus();\n }\n return;\n }\n }\n const targetEl = evt.currentTarget;\n if (!(targetEl instanceof HTMLElement) || currentId === id) return;\n this.selectedNonprofitId = id;\n await this.selectionDataController.exec({ selectedNonprofitId: id });\n };\n\n public get cssVariables() {\n const defaults = {\n \"--beam-fontFamily\": \"inherit\",\n \"--beam-fontStyle\": \"inherit\",\n \"--beam-fontSize\": \"inherit\",\n \"--beam-textColor\": \"inherit\",\n \"--beam-backgroundColor\": \"inherit\",\n ...progressBarConfigDefaults,\n \"--beam-SubscriberSelectNonprofit-title-textAlign\": \"inherit\",\n \"--beam-SubscriberSelectNonprofit-description-textAlign\": \"inherit\",\n \"--beam-SubscriberSelectNonprofit-maxWidth\": \"800px\",\n \"--beam-SubscriberSelectNonprofit-options-marginTop\": \"0px\",\n \"--beam-SubscriberSelectNonprofit-options-iconHeight\": \"20px\",\n \"--beam-SubscriberSelectNonprofit-options-padding\": \"6px 4px\",\n \"--beam-SubscriberSelectNonprofit-options-borderRadius\": \"4px\",\n \"--beam-SubscriberSelectNonprofit-options-borderColor\": \"currentColor\",\n \"--beam-SubscriberSelectNonprofit-options-borderWidth\": \"1px\",\n \"--beam-SubscriberSelectNonprofit-options--selected-borderColor\": \"currentColor\",\n \"--beam-SubscriberSelectNonprofit-options-backgroundColor\": \"transparent\",\n \"--beam-SubscriberSelectNonprofit-options-gap\": \"8px\",\n \"--beam-SubscriberSelectNonprofit-options-margin\": \"14px 0 0 0\",\n \"--beam-SubscriberSelectNonprofit-width\": \"100%\",\n \"--beam-SubscriberSelectNonprofit-options--selected-backgroundColor\": \"currentColor\",\n \"--beam-SubscriberSelectNonprofit-details-marginTop\": \"6px\",\n \"--beam-SubscriberSelectNonprofit-details-borderRadius\": \"4px\",\n \"--beam-SubscriberSelectNonprofit-details-borderWidth\": \"1px\",\n \"--beam-SubscriberSelectNonprofit-details-borderColor\": \"currentColor\",\n \"--beam-SubscriberSelectNonprofit-details-backgroundColor\": \"inherit\",\n \"--beam-SubscriberSelectNonprofit-details-padding\": \"10px\",\n ...defineCustomText(\"--beam-SubscriberSelectNonprofit-title\", {\n fontSize: \"1em\",\n fontWeight: \"bold\",\n }),\n ...defineCustomText(\"--beam-SubscriberSelectNonprofit-description\", {\n marginTop: \"1em\",\n fontSize: \".85em\",\n }),\n \"--beam-SubscriberSelectNonprofit-title-block-margin-right\": \"8px\",\n ...defineCustomText(\"--beam-SubscriberSelectNonprofit-details-cause\", {\n fontSize: \"0.85em\",\n fontWeight: \"bold\",\n textTransform: \"uppercase\",\n }),\n ...defineCustomText(\"--beam-SubscriberSelectNonprofit-details-beamAttribution\", {\n fontSize: \"0.85em\",\n }),\n ...defineCustomText(\"--beam-SubscriberSelectNonprofit-details-impactDescription\", {\n fontSize: \".85em\",\n marginTop: \"10px\",\n lineHeight: \"normal\",\n }),\n \"--beam-SubscriberSelectNonprofit-details-nonprofitName-fontWeight\": \"bold\",\n \"--beam-SubscriberSelectNonprofit-details-nonprofitName-fontStyle\": \"inherit\",\n \"--beam-SubscriberSelectNonprofit-details-fundingProgress-marginTop\": \"10px\",\n ...defineCustomText(\"--beam-SubscriberSelectNonprofit-details-fundingProgressLabel\", {\n fontSize: \"0.85em\",\n }),\n };\n\n const remoteConfig = this.nonprofitListDataController?.data?.config?.web?.theme || {};\n\n const config = { ...defaults, ...remoteConfig };\n\n const serializable = Object.create({\n toCSS() {\n return _cssVariableMap(this as Record<string, string>);\n },\n });\n\n return Object.assign(serializable, config);\n }\n\n static styles = [\n cssReset,\n cssResponsiveUtils,\n css`\n :host {\n display: block;\n width: var(--beam-SubscriberSelectNonprofit-width, 100%);\n max-width: var(--beam-SubscriberSelectNonprofit-maxWidth, 800px);\n font-family: var(--beam-fontFamily);\n font-style: var(--beam-fontStyle);\n font-size: var(--beam-fontSize);\n background-color: var(--beam-backgroundColor);\n color: var(--beam-textColor);\n word-break: normal;\n }\n\n .details-impactDescription {\n ${useCustomText(\"--beam-SubscriberSelectNonprofit-details-impactDescription\")}\n }\n\n .details-impactDescription .nonprofitName {\n font-weight: var(--beam-SubscriberSelectNonprofit-details-nonprofitName-fontWeight);\n font-style: var(--beam-SubscriberSelectNonprofit-details-nonprofitName-fontStyle, inherit);\n }\n\n .title-block {\n margin-right: var(--beam-SubscriberSelectNonprofit-title-block-margin-right);\n ${useCustomText(\"--beam-SubscriberSelectNonprofit-title\")}\n text-align: var(--beam-SubscriberSelectNonprofit-title-textAlign);\n }\n\n .description {\n ${useCustomText(\"--beam-SubscriberSelectNonprofit-description\")}\n text-align: var(--beam-SubscriberSelectNonprofit-description-textAlign);\n }\n\n .option {\n display: flex;\n justify-content: center;\n align-items: center;\n }\n `,\n ];\n\n protected render() {\n if (!this.apiKey || (!this.email && !this.partnerUserId)) {\n return html``;\n }\n\n const { selectedNonprofitId } = this;\n const { data, loading } = this.nonprofitListDataController;\n\n if (loading && !data) {\n return _loading();\n }\n if (this.nonprofitListDataController.error) {\n if (this.debug) {\n return _errorMessage({ error: this.nonprofitListDataController.error });\n }\n return \"\";\n }\n if (this.selectionDataController.error && this.debug) {\n return _errorMessage({ error: this.selectionDataController.error });\n }\n\n const nonprofits = data?.nonprofits || [];\n const selectedNonprofit = nonprofits.find((np) => np.nonprofit.id === selectedNonprofitId) || null;\n\n const templateContext: Record<string, any> = {\n custom: { ...this.templateData },\n chain: { ...this.chain },\n selectedNonprofit: { ...selectedNonprofit?.nonprofit },\n lang: this.configLang,\n };\n\n return html`\n <style>\n :host {\n ${this.cssVariables.toCSS()}\n }\n </style>\n <div part=\"heading\">\n <h3 class=\"title-block\" part=\"title\" id=\"beam-SubscriberSelectNonprofit-title\">\n ${renderUserString(data?.config?.web?.title || \"\", templateContext, strings[this.configLang].ctaTitle())}\n </h3>\n <p class=\"description\" part=\"description\">\n ${renderUserString(\n data?.config?.web?.description || \"\",\n templateContext,\n strings[this.configLang].ctaMessage(),\n )}\n </p>\n </div>\n <div\n class=\"options\"\n part=\"options\"\n role=\"radiogroup\"\n aria-labelledby=\"beam-SubscriberSelectNonprofit-title\"\n style=\"display: flex; gap: var(--beam-SubscriberSelectNonprofit-options-gap); margin: var(--beam-SubscriberSelectNonprofit-options-margin, 12px 0 0 0);\"\n >\n ${repeat(\n nonprofits,\n (i) => i.nonprofit.id,\n ({ nonprofit }, index) => {\n const isSelected = selectedNonprofitId === nonprofit.id;\n const isFocusable = isSelected || (selectedNonprofit == null && index === 0);\n const optionTemplateContext: Record<string, any> = {\n ...templateContext,\n nonprofit,\n };\n\n return html`\n <div\n class=\"option\"\n part=\"option\"\n role=\"radio\"\n tabindex=\"${isFocusable ? 0 : -1}\"\n data-value=${nonprofit.id}\n aria-checked=${isSelected}\n @click=${this.makeHandleSelect(nonprofit.id, index, nonprofits)}\n @keydown=${this.makeHandleSelect(nonprofit.id, index, nonprofits)}\n aria-label=\"${compileUserString(nonprofit.cause || \"\", optionTemplateContext)}\"\n style=\"${styleMap({\n cursor: \"pointer\",\n flex: \"1\",\n textAlign: \"center\",\n lineHeight: \"1\",\n marginTop: \"var(--beam-SubscriberSelectNonprofit-options-marginTop, 0px)\",\n padding: \"var(--beam-SubscriberSelectNonprofit-options-padding, 6px 4px)\",\n borderStyle: \"solid\",\n position: \"relative\",\n borderRadius: \"var(--beam-SubscriberSelectNonprofit-options-borderRadius, 4px)\",\n borderColor: isSelected\n ? nonprofit.causeColor ||\n \"var(--beam-SubscriberSelectNonprofit-options--selected-borderColor, currentColor)\"\n : \"var(--beam-SubscriberSelectNonprofit-options-borderColor, currentColor)\",\n borderWidth: \"var(--beam-SubscriberSelectNonprofit-options-borderWidth, 1px)\",\n backgroundColor: isSelected\n ? nonprofit.causeColor ||\n \"var(--beam-SubscriberSelectNonprofit-options--selected-backgroundColor, currentColor)\"\n : \"var(--beam-SubscriberSelectNonprofit-options-backgroundColor, transparent)\",\n })}\"\n >\n <img\n src=\"${isSelected ? nonprofit.causeIconSelectedUrl : nonprofit.causeIconUrl}\"\n alt=\"\"\n role=\"presentation\"\n data-speedsize-ignore=\"true\"\n style=\"\n height: var(--beam-SubscriberSelectNonprofit-options-iconHeight, 24px);\n user-select: none;\n vertical-align: -webkit-baseline-middle;\n \"\n />\n </div>\n `;\n },\n )}\n </div>\n ${selectedNonprofit != null\n ? html`\n <div\n class=\"details\"\n part=\"details\"\n style=\"\n border: var(--beam-SubscriberSelectNonprofit-details-borderWidth) solid var(--beam-SubscriberSelectNonprofit-details-borderColor);\n border-radius: var(--beam-SubscriberSelectNonprofit-details-borderRadius);\n background-color: var(--beam-SubscriberSelectNonprofit-details-backgroundColor);\n padding: var(--beam-SubscriberSelectNonprofit-details-padding);\n margin-top: var(--beam-SubscriberSelectNonprofit-details-marginTop);\n \"\n aria-label=\"Funding information for selected nonprofit ${selectedNonprofit.nonprofit\n ?.name}. Powered by Beam\"\n >\n <div style=\"display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap-reverse\">\n <span\n class=\"details-cause\"\n style=\"flex: 0 1; white-space: nowrap; ${useCustomText(\n \"--beam-SubscriberSelectNonprofit-details-cause\",\n )}\"\n >\n ${renderUserString(selectedNonprofit.nonprofit.cause || \"\", templateContext)}\n </span>\n <div aria-hidden=\"true\">\n <span\n class=\"details-beamAttribution\"\n aria-hidden=\"true\"\n style=\"flex: 0 1; white-space: nowrap; ${useCustomText(\n \"--beam-SubscriberSelectNonprofit-details-beamAttribution\",\n )}\"\n >\n ${strings[this.configLang].beamAttribution()}\n </span>\n </div>\n </div>\n <p class=\"details-impactDescription\">\n ${renderUserString(selectedNonprofit.impact.description || \"\", templateContext)}\n </p>\n <div\n style=\"display: flex; margin-top: var(--beam-SubscriberSelectNonprofit-details-fundingProgress-marginTop); align-items: center;\"\n >\n <beam-progress-bar\n value=\"${selectedNonprofit.impact.goalProgressPercentage}\"\n style=\"flex: 1 0;\"\n ></beam-progress-bar>\n <span\n class=\"details-fundingProgressLabel\"\n style=\"${useCustomText(\n \"--beam-SubscriberSelectNonprofit-details-fundingProgressLabel\",\n )} white-space: nowrap; text-align: right; flex: 0 1; margin-left: 15px;\"\n >\n ${renderUserString(selectedNonprofit.impact.goalProgressText, templateContext)}\n </span>\n </div>\n </div>\n `\n : \"\"}\n `;\n }\n}\n\ndefineCustomElement(BeamSubscriberSelectNonprofit);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-subscriber-select-nonprofit\": BeamSubscriberSelectNonprofit;\n }\n}\n"],"names":["PRESETS","formatDate","date","fmt","resolved","dayjs","Handlebars","format","target","days","options","fromVal","baseDate","d","value","colorValue","text","escaped","safeColor","str","capitalized","bold","italic","underline","strikethrough","uppercase","lowercase","color","fontSize","fontFamily","content","cssProps","DEFAULT_LANGUAGE_CODE","compileUserString","context","fallback","lang","source","localized","localizeUserString","renderUserString","unsafeHTML","strings","donationPercentage","BeamSubscriberSelectNonprofit","LitElement","DEFAULT_BASE_URL","enforceConfig","res","postChainEligibleNonprofitsForCart","makeApiKeyHeader","WIDGET_NAMES","np","preselectedNonprofit","result","postFindOrCreateSubscription","selectedNonprofitId","updateSubscription","SELECTION_METHODS","selectedNonprofit","BeamNonprofitSelectEvent","AsyncController","id","index","nonprofits","evt","currentId","nextFocus","focusTarget","SUPPORTED_LANGUAGES","changedProperties","requireNewDataProps","prop","defaults","progressBarConfigDefaults","defineCustomText","remoteConfig","config","_cssVariableMap","html","data","loading","_loading","_errorMessage","templateContext","repeat","i","nonprofit","isSelected","isFocusable","optionTemplateContext","styleMap","useCustomText","cssReset","cssResponsiveUtils","css","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"subscriber-select-nonprofit.js","sources":["../../src/shared/handlebars-helpers.ts","../../src/shared/fragments/user-strings.ts","../../src/components/subscriber-select-nonprofit/strings.ts","../../src/components/subscriber-select-nonprofit/index.ts"],"sourcesContent":["import * as Handlebars from \"handlebars\";\nimport dayjs from \"dayjs\";\n\n// ── Date helpers ────────────────────────────────────────────────────────────\n\n// Named presets so callers don't need to remember dayjs tokens\nconst PRESETS: Record<string, string> = {\n long: \"dddd, MMMM D, YYYY\", // Sunday, June 15, 2026\n short: \"MMM D, YYYY\", // Jun 15, 2026\n numeric: \"MM/DD/YYYY\", // 06/15/2026\n iso: \"YYYY-MM-DD\", // 2026-06-15\n time: \"h:mm A\", // 3:45 PM\n time24: \"HH:mm\", // 15:45\n datetime: \"MMMM D, YYYY h:mm A\", // June 15, 2026 3:45 PM\n month: \"MMMM YYYY\", // June 2026\n monthShort: \"MMM YYYY\", // Jun 2026\n dayMonth: \"MMMM D\", // June 15\n};\n\nconst formatDate = (date: Date, fmt?: string): string => {\n const resolved = PRESETS[fmt ?? \"long\"] ?? fmt ?? PRESETS.long;\n return dayjs(date).format(resolved);\n};\n\n/**\n * Accepts named presets or any dayjs format string.\n *\n * Presets: long · short · numeric · iso · time · time24 · datetime · month · monthShort · dayMonth\n * Tokens: any dayjs format string, e.g. \"Do [of] MMMM\" → \"15th of June\"\n *\n * {{currentDate}} → \"Sunday, June 15, 2026\"\n * {{currentDate \"short\"}} → \"Jun 15, 2026\"\n * {{currentDate \"iso\"}} → \"2026-06-15\"\n * {{currentDate \"time\"}} → \"3:45 PM\"\n * {{currentDate \"Do [of] MMMM\"}} → \"15th of June\"\n */\nHandlebars.registerHelper(\"currentDate\", (format?: string) => {\n return formatDate(new Date(), typeof format === \"string\" ? format : undefined);\n});\n\n/**\n * {{nextMonth}} → \"Wednesday, July 15, 2026\"\n * {{nextMonth \"short\"}} → \"Jul 15, 2026\"\n * {{nextMonth \"iso\"}} → \"2026-07-15\"\n * {{nextMonth \"month\"}} → \"July 2026\"\n *\n * Advances by one calendar month, clamping to the last day of the target month\n * (e.g. Jan 31 → Feb 28).\n */\nHandlebars.registerHelper(\"nextMonth\", (format?: string) => {\n // dayjs clamps month-end naturally (e.g. Jan 31 → Feb 28)\n const target = dayjs().add(1, \"month\").toDate();\n return formatDate(target, typeof format === \"string\" ? format : undefined);\n});\n\n/**\n * {{dateOffset -1}} → \"Saturday, June 14, 2026\"\n * {{dateOffset 1}} → \"Monday, June 16, 2026\"\n * {{dateOffset -1 \"relative\"}} → \"yesterday\"\n * {{dateOffset 0 \"relative\"}} → \"today\"\n * {{dateOffset 1 \"relative\"}} → \"tomorrow\"\n * {{dateOffset -7 \"relative\"}} → \"7 days ago\"\n * {{dateOffset 7 \"relative\"}} → \"7 days from now\"\n * {{dateOffset 7 \"short\"}} → \"Jun 22, 2026\"\n * {{dateOffset 7 \"Do [of] MMMM\"}} → \"22nd of June\"\n * {{dateOffset -30 \"iso\"}} → \"2026-05-16\"\n * {{dateOffset 7 from=orderDate}} → \"Sunday, June 22, 2026\" (7 days after orderDate)\n * {{dateOffset 7 \"short\" from=orderDate}} → \"Jun 22, 2026\" (7 days after orderDate)\n *\n * `from` accepts a Date object, ISO string, or timestamp number.\n */\nHandlebars.registerHelper(\n \"dateOffset\",\n (days: number, format?: string | Handlebars.HelperOptions, options?: Handlebars.HelperOptions) => {\n const fmt = typeof format === \"string\" ? format : undefined;\n const opts = typeof format === \"string\" ? options : (format as Handlebars.HelperOptions);\n const fromVal = opts?.hash?.from;\n const baseDate = fromVal ? new Date(fromVal as string | number) : new Date();\n const d = dayjs(baseDate).add(days, \"day\").toDate();\n\n if (fmt === \"relative\") {\n if (days === -1) return \"yesterday\";\n if (days === 0) return \"today\";\n if (days === 1) return \"tomorrow\";\n return days < 0 ? `${Math.abs(days)} days ago` : `${days} days from now`;\n }\n\n return formatDate(d, fmt);\n },\n);\n\n/**\n * Format a date value from context using any preset or date-fns format string.\n * Accepts a Date object, ISO string, or timestamp number.\n *\n * {{formatDate orderDate \"short\"}} → \"Jun 15, 2026\"\n * {{formatDate orderDate \"iso\"}} → \"2026-06-15\"\n * {{formatDate orderDate \"Do [of] MMMM\"}} → \"15th of June\"\n * {{formatDate orderDate}} → \"Sunday, June 15, 2026\"\n */\nHandlebars.registerHelper(\"formatDate\", (value: unknown, format?: string) => {\n const date = value instanceof Date ? value : new Date(value as string | number);\n if (isNaN(date.getTime())) return \"\";\n return formatDate(date, typeof format === \"string\" ? format : undefined);\n});\n\n// ── Color helper ─────────────────────────────────────────────────────────────\n\n/**\n * {{color \"red\" \"Sale ends today!\"}}\n * {{color \"#ff6600\" someVar}}\n *\n * Accepts any valid CSS color value (named color, hex, rgb(), hsl(), etc.).\n */\nHandlebars.registerHelper(\"color\", (colorValue: string, text: unknown) => {\n const escaped = Handlebars.escapeExpression(text as any);\n const safeColor = Handlebars.escapeExpression(colorValue);\n return new Handlebars.SafeString(`<span style=\"color:${safeColor}\">${escaped}</span>`);\n});\n\n// ── Layout helpers ───────────────────────────────────────────────────────────\n\n/** {{br}} → inserts a line break */\nHandlebars.registerHelper(\"br\", () => new Handlebars.SafeString(\"<br>\"));\n\n// ── Font-style helpers ────────────────────────────────────────────────────────\n\n/** {{bold \"Important!\"}} */\nHandlebars.registerHelper(\"bold\", (text: unknown) => {\n const escaped = Handlebars.escapeExpression(text as any);\n return new Handlebars.SafeString(`<strong>${escaped}</strong>`);\n});\n\n/** {{italic \"Note:\"}} */\nHandlebars.registerHelper(\"italic\", (text: unknown) => {\n const escaped = Handlebars.escapeExpression(text as any);\n return new Handlebars.SafeString(`<em>${escaped}</em>`);\n});\n\n/** {{underline \"Click here\"}} */\nHandlebars.registerHelper(\"underline\", (text: unknown) => {\n const escaped = Handlebars.escapeExpression(text as any);\n return new Handlebars.SafeString(`<span style=\"text-decoration:underline\">${escaped}</span>`);\n});\n\n/** {{strikethrough \"Was $99\"}} */\nHandlebars.registerHelper(\"strikethrough\", (text: unknown) => {\n const escaped = Handlebars.escapeExpression(text as any);\n return new Handlebars.SafeString(`<s>${escaped}</s>`);\n});\n\n/** {{uppercase \"hello\"}} → renders as \"HELLO\" via CSS so the source text is preserved */\nHandlebars.registerHelper(\"uppercase\", (text: unknown) => {\n const escaped = Handlebars.escapeExpression(text as any);\n return new Handlebars.SafeString(`<span style=\"text-transform:uppercase\">${escaped}</span>`);\n});\n\n/** {{lowercase \"HELLO\"}} */\nHandlebars.registerHelper(\"lowercase\", (text: unknown) => {\n const escaped = Handlebars.escapeExpression(text as any);\n return new Handlebars.SafeString(`<span style=\"text-transform:lowercase\">${escaped}</span>`);\n});\n\n/**\n * {{capitalize \"hello world\"}} → \"Hello world\" (first letter only — use uppercase for ALL CAPS)\n * Note: CSS text-transform:capitalize uppercases every word; this helper only touches the first character.\n */\nHandlebars.registerHelper(\"capitalize\", (text: unknown) => {\n const str = String(text ?? \"\");\n const capitalized = str.charAt(0).toUpperCase() + str.slice(1);\n return new Handlebars.SafeString(Handlebars.escapeExpression(capitalized));\n});\n\n/**\n * Combine multiple styles at once.\n *\n * {{style text bold=true italic=true color=\"#333\" underline=true strikethrough=false fontSize=\"16px\" fontFamily=\"Georgia, serif\"}}\n */\nHandlebars.registerHelper(\n \"style\",\n (\n text: unknown,\n options: Handlebars.HelperOptions & {\n hash: {\n bold?: boolean;\n italic?: boolean;\n underline?: boolean;\n strikethrough?: boolean;\n uppercase?: boolean;\n lowercase?: boolean;\n color?: string;\n fontSize?: string;\n fontFamily?: string;\n };\n },\n ) => {\n const { bold, italic, underline, strikethrough, uppercase, lowercase, color, fontSize, fontFamily } = options.hash;\n\n let content = Handlebars.escapeExpression(text as any);\n\n if (bold) content = `<strong>${content}</strong>`;\n if (italic) content = `<em>${content}</em>`;\n if (strikethrough) content = `<s>${content}</s>`;\n\n const cssProps: string[] = [];\n if (underline) cssProps.push(\"text-decoration:underline\");\n if (uppercase) cssProps.push(\"text-transform:uppercase\");\n if (lowercase) cssProps.push(\"text-transform:lowercase\");\n if (color) cssProps.push(`color:${Handlebars.escapeExpression(color)}`);\n if (fontSize) cssProps.push(`font-size:${Handlebars.escapeExpression(fontSize)}`);\n if (fontFamily) cssProps.push(`font-family:${Handlebars.escapeExpression(fontFamily)}`);\n\n if (cssProps.length) {\n content = `<span style=\"${cssProps.join(\";\")}\">${content}</span>`;\n }\n\n return new Handlebars.SafeString(content);\n },\n);\n\nexport { Handlebars };\n","import { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport { Handlebars } from \"../handlebars-helpers\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { localizeUserString } from \"../localize\";\n\nconst DEFAULT_LANGUAGE_CODE = \"en\";\n\n/**\n * Compile a string through Handlebars and return the raw HTML string.\n * If `context.lang` is set, the string is first passed through localizeUserString\n * so JSON-encoded multilingual strings ({\"en\":\"...\",\"fr\":\"...\"}) are resolved\n * before Handlebars processes them — no call to localizeUserString needed at call sites.\n */\nconst compileUserString = (str: string, context: Record<string, unknown> = {}, fallback = \"\"): string => {\n const lang = (context.lang || DEFAULT_LANGUAGE_CODE) as LANGUAGES;\n const source = str || fallback;\n const localized = localizeUserString(lang, source) ?? source;\n return Handlebars.compile(localized)(context);\n};\n\n/**\n * Compile a string through Handlebars and return a Lit TemplateResult safe for rendering HTML.\n * Equivalent to unsafeHTML(compileUserString(str, context, fallback)).\n */\nconst renderUserString = (str: string, context: Record<string, unknown> = {}, fallback = \"\") =>\n unsafeHTML(compileUserString(str, context, fallback));\n\nexport { compileUserString, renderUserString };\n","export const strings = {\n en: {\n beamAttribution: () => `Powered by Beam`,\n ctaTitle: () => `Choose Your Impact`,\n ctaMessage: ({ donationPercentage = \"1%\" } = {}) =>\n `Choose a nonprofit and ${donationPercentage} will be donated there for you,at no extra cost, with every order of your subscription.`,\n },\n fr: {\n beamAttribution: () => `Optimisé par Beam`,\n ctaTitle: () => `Choose Your Impact`,\n ctaMessage: ({ donationPercentage = \"1%\" } = {}) =>\n `Choose a nonprofit and ${donationPercentage} will be donated there for you,at no extra cost, with every order of your subscription.`,\n },\n de: {\n beamAttribution: () => `Unterstützt von Beam`,\n ctaTitle: () => `Choose Your Impact`,\n ctaMessage: ({ donationPercentage = \"1%\" } = {}) =>\n `Choose a nonprofit and ${donationPercentage} will be donated there for you,at no extra cost, with every order of your subscription.`,\n },\n es: {\n beamAttribution: () => `Desarrollado por Beam`,\n ctaTitle: () => `Choose Your Impact`,\n ctaMessage: ({ donationPercentage = \"1%\" } = {}) =>\n `Choose a nonprofit and ${donationPercentage} will be donated there for you,at no extra cost, with every order of your subscription.`,\n },\n it: {\n beamAttribution: () => `Offerto da Beam`,\n ctaTitle: () => `Choose Your Impact`,\n ctaMessage: ({ donationPercentage = \"1%\" } = {}) =>\n `Choose a nonprofit and ${donationPercentage} will be donated there for you,at no extra cost, with every order of your subscription.`,\n },\n pl: {\n beamAttribution: () => `Wspierane przez Beam`,\n ctaTitle: () => `Choose Your Impact`,\n ctaMessage: ({ donationPercentage = \"1%\" } = {}) =>\n `Choose a nonprofit and ${donationPercentage} will be donated there for you,at no extra cost, with every order of your subscription.`,\n },\n ja: {\n beamAttribution: () => `Powered by Beam`,\n ctaTitle: () => `Choose Your Impact`,\n ctaMessage: ({ donationPercentage = \"1%\" } = {}) =>\n `Choose a nonprofit and ${donationPercentage} will be donated there for you,at no extra cost, with every order of your subscription.`,\n },\n};\n","import { css, html, LitElement, PropertyValues } from \"lit\";\nimport { repeat } from \"lit/directives/repeat.js\";\nimport { property } from \"lit/decorators/property.js\";\nimport { styleMap } from \"lit/directives/style-map.js\";\nimport { state } from \"lit/decorators/state.js\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { DEFAULT_BASE_URL, SELECTION_METHODS, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { defineCustomText, useCustomText } from \"../../shared/fragments/custom-text\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { _cssVariableMap } from \"../../shared/fragments/css-variable-map\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { TNumericId } from \"../../shared/types\";\nimport {\n postChainEligibleNonprofitsForCart,\n postFindOrCreateSubscription,\n updateSubscription,\n} from \"../../api-sdk/v3/routes\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { BeamNonprofitSelectEvent } from \"../../utils/events\";\nimport { progressBarConfigDefaults } from \"../../shared/components/progress-bar\";\nimport { cssResponsiveUtils } from \"../../shared/responsive\";\nimport { makeApiKeyHeader } from \"../../utils/makeApiKeyHeader\";\nimport { compileUserString, renderUserString } from \"../../shared/fragments/user-strings\";\nimport { strings } from \"./strings\";\n\ninterface RequiredDataPropsWithEmail {\n email: string;\n apiKey: string;\n subscriptionId: string;\n}\n\ninterface RequiredDataPropsWithPartnerUserId {\n partnerUserId: string;\n apiKey: string;\n subscriptionId: string;\n}\n\ninterface RequiredConfig {\n apiKey: string;\n subscriptionId: string;\n}\n\nexport class BeamSubscriberSelectNonprofit extends LitElement {\n static tagName = \"beam-subscriber-select-nonprofit\";\n\n @property({ type: String }) public baseUrl: string = DEFAULT_BASE_URL;\n @property({ type: String }) public apiKey!: string;\n @property({ type: String }) public subscriptionId!: string;\n @property({ type: Number, reflect: true }) public storeId?: number;\n @property({ type: String }) public email?: RequiredDataPropsWithEmail[\"email\"];\n @property({ type: String }) public partnerUserId?: RequiredDataPropsWithPartnerUserId[\"partnerUserId\"];\n @property({ type: String }) public postalCode?: string;\n @property({ type: String }) public countryCode?: string;\n @property({ type: Number, reflect: true }) public selectedNonprofitId?: TNumericId;\n @property({ type: Number }) public preselectNonprofitAtIndex?: number;\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n @property({ type: Boolean }) public debug = false;\n @property({ type: Boolean }) public draftConfig = false;\n @property({ type: Object }) public templateData: Record<string, any> = {};\n @state() private chain: Record<string, any> = {};\n\n // Resolves once the subscription find/create lookup (if any) has settled, so nonprofit\n // list handling can tell whether the subscriber already has a saved selection\n private subscriptionLookup: Promise<unknown> = Promise.resolve();\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n private getChainNonprofits = async () => {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"subscriptionId\"], this)) {\n throw new MissingConfig();\n }\n\n const res = await postChainEligibleNonprofitsForCart({\n baseUrl: this.baseUrl,\n headers: makeApiKeyHeader(this.apiKey),\n requestBody: {\n storeId: this.storeId,\n widgetName: WIDGET_NAMES.subscriber_select_nonprofit,\n ...(this.postalCode && { postalCode: this.postalCode }),\n ...(this.countryCode && { countryCode: this.countryCode }),\n version: \"1.0.0\",\n lang: this.configLang,\n options: {\n config: {\n draftConfig: this.draftConfig,\n },\n },\n },\n });\n\n if (res.store?.id && res.store.id !== this.storeId) {\n this.storeId = res.store.id;\n }\n\n // Wait for the subscription to be found/created (if applicable) so we know whether\n // it already has a saved nonprofit selection before we clear or preselect one\n await this.subscriptionLookup;\n\n // Clear selection if the saved nonprofit is no longer in the eligible list\n if (\n this.selectedNonprofitId != null &&\n !res.nonprofits.map((np) => np.nonprofit.id).includes(this.selectedNonprofitId)\n ) {\n this.selectedNonprofitId = undefined;\n }\n\n // Auto-select the nonprofit at the given 1-based position if there is no existing selection\n if (this.selectedNonprofitId == null && this.preselectNonprofitAtIndex != null) {\n const preselectedNonprofit = res.nonprofits[this.preselectNonprofitAtIndex - 1];\n if (preselectedNonprofit) {\n this.selectedNonprofitId = preselectedNonprofit.nonprofit.id;\n await this.selectionDataController.exec({ selectedNonprofitId: preselectedNonprofit.nonprofit.id });\n }\n }\n\n this.chain = { ...res?.chain };\n\n return res;\n };\n\n private fetchSubscription = async () => {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"subscriptionId\"], this)) {\n throw new MissingConfig();\n }\n\n const result = await postFindOrCreateSubscription({\n baseUrl: this.baseUrl,\n headers: makeApiKeyHeader(this.apiKey),\n requestBody: {\n remoteSubscriptionId: this.subscriptionId,\n email: this.email,\n partnerUserId: this.partnerUserId,\n },\n });\n\n // Pre-populate selection from the subscription record if not already set\n if (result.nonprofit?.id && this.selectedNonprofitId === undefined) {\n this.selectedNonprofitId = result.nonprofit.id;\n }\n\n return result;\n };\n\n private updateNonprofitForSubscription = async ({ selectedNonprofitId }: { selectedNonprofitId: TNumericId }) => {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"subscriptionId\"], this)) {\n throw new MissingConfig();\n }\n\n const result = await updateSubscription({\n baseUrl: this.baseUrl,\n headers: makeApiKeyHeader(this.apiKey),\n requestBody: {\n remoteSubscriptionId: this.subscriptionId,\n nonprofitId: selectedNonprofitId,\n selectionMethod: SELECTION_METHODS.subscriber_select_nonprofit_widget,\n },\n });\n\n await this.updateComplete;\n\n const selectedNonprofit = this.getNonprofitById(selectedNonprofitId);\n\n this.dispatchEvent(\n new BeamNonprofitSelectEvent({\n selectedNonprofitId,\n nonprofitName: selectedNonprofit?.nonprofit?.name ?? null,\n source: WIDGET_NAMES.subscriber_select_nonprofit,\n timestamp: new Date(),\n }),\n );\n\n return result;\n };\n\n private nonprofitListDataController = new AsyncController<typeof this.getChainNonprofits>(\n this,\n this.getChainNonprofits,\n );\n\n private subscriptionDataController = new AsyncController<typeof this.fetchSubscription>(this, this.fetchSubscription);\n\n private selectionDataController = new AsyncController<typeof this.updateNonprofitForSubscription>(\n this,\n this.updateNonprofitForSubscription,\n );\n\n private getNonprofitById(id: number | null) {\n if (!id) return null;\n return this.nonprofitListDataController?.data?.nonprofits.find((np) => np.nonprofit.id === id);\n }\n\n async connectedCallback() {\n super.connectedCallback();\n this.nonprofitListDataController.loading = true;\n }\n\n async firstUpdated() {\n if (!this.apiKey || (!this.email && !this.partnerUserId)) return;\n this.subscriptionLookup = this.subscriptionDataController.exec();\n await this.subscriptionLookup;\n }\n\n async updated(changedProperties: PropertyValues) {\n const requireNewDataProps = [\"baseUrl\", \"storeId\", \"apiKey\", \"countryCode\", \"postalCode\", \"lang\"];\n for (const prop of requireNewDataProps) {\n if (changedProperties.has(prop)) {\n await this.nonprofitListDataController.exec();\n break;\n }\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n }\n\n private makeHandleSelect =\n (id: number, index: number, nonprofits: { nonprofit: { id: number } }[]) => async (evt: Event) => {\n const currentId = this.selectedNonprofitId;\n if (evt instanceof KeyboardEvent) {\n let nextFocus = null;\n switch (evt.key) {\n case \"ArrowUp\":\n case \"ArrowLeft\":\n nextFocus = index === 0 ? nonprofits[nonprofits.length - 1] : nonprofits[index - 1];\n evt.preventDefault();\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n nextFocus = index === nonprofits.length - 1 ? nonprofits[0] : nonprofits[index + 1];\n evt.preventDefault();\n break;\n case \"Enter\":\n case \" \":\n evt.preventDefault();\n break;\n default:\n return;\n }\n if (nextFocus) {\n if (currentId != null) {\n this.selectedNonprofitId = nextFocus.nonprofit.id;\n }\n const focusTarget = this.renderRoot.querySelector(`[data-value=\"${nextFocus.nonprofit.id}\"]`) as HTMLElement;\n if (focusTarget !== null) {\n focusTarget.tabIndex = 0;\n focusTarget.focus();\n }\n return;\n }\n }\n const targetEl = evt.currentTarget;\n if (!(targetEl instanceof HTMLElement) || currentId === id) return;\n this.selectedNonprofitId = id;\n await this.selectionDataController.exec({ selectedNonprofitId: id });\n };\n\n public get cssVariables() {\n const defaults = {\n \"--beam-fontFamily\": \"inherit\",\n \"--beam-fontStyle\": \"inherit\",\n \"--beam-fontSize\": \"inherit\",\n \"--beam-textColor\": \"inherit\",\n \"--beam-backgroundColor\": \"inherit\",\n ...progressBarConfigDefaults,\n \"--beam-SubscriberSelectNonprofit-title-textAlign\": \"inherit\",\n \"--beam-SubscriberSelectNonprofit-description-textAlign\": \"inherit\",\n \"--beam-SubscriberSelectNonprofit-maxWidth\": \"800px\",\n \"--beam-SubscriberSelectNonprofit-options-marginTop\": \"0px\",\n \"--beam-SubscriberSelectNonprofit-options-iconHeight\": \"20px\",\n \"--beam-SubscriberSelectNonprofit-options-padding\": \"6px 4px\",\n \"--beam-SubscriberSelectNonprofit-options-borderRadius\": \"4px\",\n \"--beam-SubscriberSelectNonprofit-options-borderColor\": \"currentColor\",\n \"--beam-SubscriberSelectNonprofit-options-borderWidth\": \"1px\",\n \"--beam-SubscriberSelectNonprofit-options--selected-borderColor\": \"currentColor\",\n \"--beam-SubscriberSelectNonprofit-options-backgroundColor\": \"transparent\",\n \"--beam-SubscriberSelectNonprofit-options-gap\": \"8px\",\n \"--beam-SubscriberSelectNonprofit-options-margin\": \"14px 0 0 0\",\n \"--beam-SubscriberSelectNonprofit-width\": \"100%\",\n \"--beam-SubscriberSelectNonprofit-options--selected-backgroundColor\": \"currentColor\",\n \"--beam-SubscriberSelectNonprofit-details-marginTop\": \"6px\",\n \"--beam-SubscriberSelectNonprofit-details-borderRadius\": \"4px\",\n \"--beam-SubscriberSelectNonprofit-details-borderWidth\": \"1px\",\n \"--beam-SubscriberSelectNonprofit-details-borderColor\": \"currentColor\",\n \"--beam-SubscriberSelectNonprofit-details-backgroundColor\": \"inherit\",\n \"--beam-SubscriberSelectNonprofit-details-padding\": \"10px\",\n ...defineCustomText(\"--beam-SubscriberSelectNonprofit-title\", {\n fontSize: \"1em\",\n fontWeight: \"bold\",\n }),\n ...defineCustomText(\"--beam-SubscriberSelectNonprofit-description\", {\n marginTop: \"1em\",\n fontSize: \".85em\",\n }),\n \"--beam-SubscriberSelectNonprofit-title-block-margin-right\": \"8px\",\n ...defineCustomText(\"--beam-SubscriberSelectNonprofit-details-cause\", {\n fontSize: \"0.85em\",\n fontWeight: \"bold\",\n textTransform: \"uppercase\",\n }),\n ...defineCustomText(\"--beam-SubscriberSelectNonprofit-details-beamAttribution\", {\n fontSize: \"0.85em\",\n }),\n ...defineCustomText(\"--beam-SubscriberSelectNonprofit-details-impactDescription\", {\n fontSize: \".85em\",\n marginTop: \"10px\",\n lineHeight: \"normal\",\n }),\n \"--beam-SubscriberSelectNonprofit-details-nonprofitName-fontWeight\": \"bold\",\n \"--beam-SubscriberSelectNonprofit-details-nonprofitName-fontStyle\": \"inherit\",\n \"--beam-SubscriberSelectNonprofit-details-fundingProgress-marginTop\": \"10px\",\n ...defineCustomText(\"--beam-SubscriberSelectNonprofit-details-fundingProgressLabel\", {\n fontSize: \"0.85em\",\n }),\n };\n\n const remoteConfig = this.nonprofitListDataController?.data?.config?.web?.theme || {};\n\n const config = { ...defaults, ...remoteConfig };\n\n const serializable = Object.create({\n toCSS() {\n return _cssVariableMap(this as Record<string, string>);\n },\n });\n\n return Object.assign(serializable, config);\n }\n\n static styles = [\n cssReset,\n cssResponsiveUtils,\n css`\n :host {\n display: block;\n width: var(--beam-SubscriberSelectNonprofit-width, 100%);\n max-width: var(--beam-SubscriberSelectNonprofit-maxWidth, 800px);\n font-family: var(--beam-fontFamily);\n font-style: var(--beam-fontStyle);\n font-size: var(--beam-fontSize);\n background-color: var(--beam-backgroundColor);\n color: var(--beam-textColor);\n word-break: normal;\n }\n\n .details-impactDescription {\n ${useCustomText(\"--beam-SubscriberSelectNonprofit-details-impactDescription\")}\n }\n\n .details-impactDescription .nonprofitName {\n font-weight: var(--beam-SubscriberSelectNonprofit-details-nonprofitName-fontWeight);\n font-style: var(--beam-SubscriberSelectNonprofit-details-nonprofitName-fontStyle, inherit);\n }\n\n .title-block {\n margin-right: var(--beam-SubscriberSelectNonprofit-title-block-margin-right);\n ${useCustomText(\"--beam-SubscriberSelectNonprofit-title\")}\n text-align: var(--beam-SubscriberSelectNonprofit-title-textAlign);\n }\n\n .description {\n ${useCustomText(\"--beam-SubscriberSelectNonprofit-description\")}\n text-align: var(--beam-SubscriberSelectNonprofit-description-textAlign);\n }\n\n .option {\n display: flex;\n justify-content: center;\n align-items: center;\n }\n `,\n ];\n\n protected render() {\n if (!this.apiKey || (!this.email && !this.partnerUserId)) {\n return html``;\n }\n\n const { selectedNonprofitId } = this;\n const { data, loading } = this.nonprofitListDataController;\n\n if (loading && !data) {\n return _loading();\n }\n if (this.nonprofitListDataController.error) {\n if (this.debug) {\n return _errorMessage({ error: this.nonprofitListDataController.error });\n }\n return \"\";\n }\n if (this.selectionDataController.error && this.debug) {\n return _errorMessage({ error: this.selectionDataController.error });\n }\n\n const nonprofits = data?.nonprofits || [];\n const selectedNonprofit = nonprofits.find((np) => np.nonprofit.id === selectedNonprofitId) || null;\n\n const templateContext: Record<string, any> = {\n custom: { ...this.templateData },\n chain: { ...this.chain },\n selectedNonprofit: { ...selectedNonprofit?.nonprofit },\n lang: this.configLang,\n };\n\n return html`\n <style>\n :host {\n ${this.cssVariables.toCSS()}\n }\n </style>\n <div part=\"heading\">\n <h3 class=\"title-block\" part=\"title\" id=\"beam-SubscriberSelectNonprofit-title\">\n ${renderUserString(data?.config?.web?.title || \"\", templateContext, strings[this.configLang].ctaTitle())}\n </h3>\n <p class=\"description\" part=\"description\">\n ${renderUserString(\n data?.config?.web?.description || \"\",\n templateContext,\n strings[this.configLang].ctaMessage(),\n )}\n </p>\n </div>\n <div\n class=\"options\"\n part=\"options\"\n role=\"radiogroup\"\n aria-labelledby=\"beam-SubscriberSelectNonprofit-title\"\n style=\"display: flex; gap: var(--beam-SubscriberSelectNonprofit-options-gap); margin: var(--beam-SubscriberSelectNonprofit-options-margin, 12px 0 0 0);\"\n >\n ${repeat(\n nonprofits,\n (i) => i.nonprofit.id,\n ({ nonprofit }, index) => {\n const isSelected = selectedNonprofitId === nonprofit.id;\n const isFocusable = isSelected || (selectedNonprofit == null && index === 0);\n const optionTemplateContext: Record<string, any> = {\n ...templateContext,\n nonprofit,\n };\n\n return html`\n <div\n class=\"option\"\n part=\"option\"\n role=\"radio\"\n tabindex=\"${isFocusable ? 0 : -1}\"\n data-value=${nonprofit.id}\n aria-checked=${isSelected}\n @click=${this.makeHandleSelect(nonprofit.id, index, nonprofits)}\n @keydown=${this.makeHandleSelect(nonprofit.id, index, nonprofits)}\n aria-label=\"${compileUserString(nonprofit.cause || \"\", optionTemplateContext)}\"\n style=\"${styleMap({\n cursor: \"pointer\",\n flex: \"1\",\n textAlign: \"center\",\n lineHeight: \"1\",\n marginTop: \"var(--beam-SubscriberSelectNonprofit-options-marginTop, 0px)\",\n padding: \"var(--beam-SubscriberSelectNonprofit-options-padding, 6px 4px)\",\n borderStyle: \"solid\",\n position: \"relative\",\n borderRadius: \"var(--beam-SubscriberSelectNonprofit-options-borderRadius, 4px)\",\n borderColor: isSelected\n ? nonprofit.causeColor ||\n \"var(--beam-SubscriberSelectNonprofit-options--selected-borderColor, currentColor)\"\n : \"var(--beam-SubscriberSelectNonprofit-options-borderColor, currentColor)\",\n borderWidth: \"var(--beam-SubscriberSelectNonprofit-options-borderWidth, 1px)\",\n backgroundColor: isSelected\n ? nonprofit.causeColor ||\n \"var(--beam-SubscriberSelectNonprofit-options--selected-backgroundColor, currentColor)\"\n : \"var(--beam-SubscriberSelectNonprofit-options-backgroundColor, transparent)\",\n })}\"\n >\n <img\n src=\"${isSelected ? nonprofit.causeIconSelectedUrl : nonprofit.causeIconUrl}\"\n alt=\"\"\n role=\"presentation\"\n data-speedsize-ignore=\"true\"\n style=\"\n height: var(--beam-SubscriberSelectNonprofit-options-iconHeight, 24px);\n user-select: none;\n vertical-align: -webkit-baseline-middle;\n \"\n />\n </div>\n `;\n },\n )}\n </div>\n ${selectedNonprofit != null\n ? html`\n <div\n class=\"details\"\n part=\"details\"\n style=\"\n border: var(--beam-SubscriberSelectNonprofit-details-borderWidth) solid var(--beam-SubscriberSelectNonprofit-details-borderColor);\n border-radius: var(--beam-SubscriberSelectNonprofit-details-borderRadius);\n background-color: var(--beam-SubscriberSelectNonprofit-details-backgroundColor);\n padding: var(--beam-SubscriberSelectNonprofit-details-padding);\n margin-top: var(--beam-SubscriberSelectNonprofit-details-marginTop);\n \"\n aria-label=\"Funding information for selected nonprofit ${selectedNonprofit.nonprofit\n ?.name}. Powered by Beam\"\n >\n <div style=\"display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap-reverse\">\n <span\n class=\"details-cause\"\n style=\"flex: 0 1; white-space: nowrap; ${useCustomText(\n \"--beam-SubscriberSelectNonprofit-details-cause\",\n )}\"\n >\n ${renderUserString(selectedNonprofit.nonprofit.cause || \"\", templateContext)}\n </span>\n <div aria-hidden=\"true\">\n <span\n class=\"details-beamAttribution\"\n aria-hidden=\"true\"\n style=\"flex: 0 1; white-space: nowrap; ${useCustomText(\n \"--beam-SubscriberSelectNonprofit-details-beamAttribution\",\n )}\"\n >\n ${strings[this.configLang].beamAttribution()}\n </span>\n </div>\n </div>\n <p class=\"details-impactDescription\">\n ${renderUserString(selectedNonprofit.impact.description || \"\", templateContext)}\n </p>\n <div\n style=\"display: flex; margin-top: var(--beam-SubscriberSelectNonprofit-details-fundingProgress-marginTop); align-items: center;\"\n >\n <beam-progress-bar\n value=\"${selectedNonprofit.impact.goalProgressPercentage}\"\n style=\"flex: 1 0;\"\n ></beam-progress-bar>\n <span\n class=\"details-fundingProgressLabel\"\n style=\"${useCustomText(\n \"--beam-SubscriberSelectNonprofit-details-fundingProgressLabel\",\n )} white-space: nowrap; text-align: right; flex: 0 1; margin-left: 15px;\"\n >\n ${renderUserString(selectedNonprofit.impact.goalProgressText, templateContext)}\n </span>\n </div>\n </div>\n `\n : \"\"}\n `;\n }\n}\n\ndefineCustomElement(BeamSubscriberSelectNonprofit);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-subscriber-select-nonprofit\": BeamSubscriberSelectNonprofit;\n }\n}\n"],"names":["PRESETS","formatDate","date","fmt","resolved","dayjs","Handlebars","format","target","days","options","fromVal","baseDate","d","value","colorValue","text","escaped","safeColor","str","capitalized","bold","italic","underline","strikethrough","uppercase","lowercase","color","fontSize","fontFamily","content","cssProps","DEFAULT_LANGUAGE_CODE","compileUserString","context","fallback","lang","source","localized","localizeUserString","renderUserString","unsafeHTML","strings","donationPercentage","BeamSubscriberSelectNonprofit","LitElement","DEFAULT_BASE_URL","enforceConfig","res","postChainEligibleNonprofitsForCart","makeApiKeyHeader","WIDGET_NAMES","np","preselectedNonprofit","result","postFindOrCreateSubscription","selectedNonprofitId","updateSubscription","SELECTION_METHODS","selectedNonprofit","BeamNonprofitSelectEvent","AsyncController","id","index","nonprofits","evt","currentId","nextFocus","focusTarget","SUPPORTED_LANGUAGES","changedProperties","requireNewDataProps","prop","defaults","progressBarConfigDefaults","defineCustomText","remoteConfig","config","_cssVariableMap","html","data","loading","_loading","_errorMessage","templateContext","repeat","i","nonprofit","isSelected","isFocusable","optionTemplateContext","styleMap","useCustomText","cssReset","cssResponsiveUtils","css","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as w,i as $,b as p,n as l,r as _,g as C}from"../chunks/lit-BEag9MFp.esm.js";import{d as z,a as G}from"../chunks/lodash-CrMU6wKg.esm.js";import{a as Y}from"../chunks/share-button-
|
|
1
|
+
import{a as w,i as $,b as p,n as l,r as _,g as C}from"../chunks/lit-BEag9MFp.esm.js";import{d as z,a as G}from"../chunks/lodash-CrMU6wKg.esm.js";import{a as Y}from"../chunks/share-button-C1PRjoPw.esm.js";import{s as S,a as K}from"../chunks/share-button-CNq5lDre.esm.js";import"../chunks/_share-dialog-dependencies-Caoc1gRc.esm.js";import"../chunks/vendor-DUOg5fL-.esm.js";import{D as q,y as J,x as Q,l as X}from"../chunks/utils-ly9wMwUO.esm.js";import{u as b,g as Z,A as ee,e as u,f as ie,_ as ae,c as te,d as n}from"../chunks/index-M8hQ6GXf.esm.js";import{c as ne,a as re,d as oe,e as se}from"../chunks/css-card-grid-tjA36yWj.esm.js";import{c as ce}from"../chunks/responsive-aN8P5PqD.esm.js";var pe=Object.defineProperty,le=(i,e,r,m)=>{for(var t=void 0,a=i.length-1,d;a>=0;a--)(d=i[a])&&(t=d(e,r,t)||t);return t&&pe(e,r,t),t};class A extends w{constructor(){super(...arguments),this.infoText=""}static get styles(){return $`
|
|
2
2
|
sl-badge::part(base) {
|
|
3
3
|
background-color: var(--beam-pillLabel-color-background, #000);
|
|
4
4
|
color: var(--beam-pillLabel-color, #fff);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as w,i as $,b as p,n as l,r as _,g as C}from"../chunks/lit-BEag9MFp.esm.js";import{d as z,a as G}from"../chunks/lodash-CrMU6wKg.esm.js";import{a as Y}from"../chunks/share-button-
|
|
1
|
+
import{a as w,i as $,b as p,n as l,r as _,g as C}from"../chunks/lit-BEag9MFp.esm.js";import{d as z,a as G}from"../chunks/lodash-CrMU6wKg.esm.js";import{a as Y}from"../chunks/share-button-C1PRjoPw.esm.js";import{s as S,a as K}from"../chunks/share-button-CNq5lDre.esm.js";import"../chunks/_share-dialog-dependencies-Caoc1gRc.esm.js";import"../chunks/vendor-DUOg5fL-.esm.js";import{D as q,y as J,x as Q,l as X}from"../chunks/utils-ly9wMwUO.esm.js";import{u as b,g as Z,A as ee,e as u,f as ie,_ as ae,c as te,d as n}from"../chunks/index-M8hQ6GXf.esm.js";import{c as ne,a as re,d as oe,e as se}from"../chunks/css-card-grid-tjA36yWj.esm.js";import{c as ce}from"../chunks/responsive-aN8P5PqD.esm.js";var pe=Object.defineProperty,le=(i,e,r,m)=>{for(var t=void 0,a=i.length-1,d;a>=0;a--)(d=i[a])&&(t=d(e,r,t)||t);return t&&pe(e,r,t),t};class A extends w{constructor(){super(...arguments),this.infoText=""}static get styles(){return $`
|
|
2
2
|
sl-badge::part(base) {
|
|
3
3
|
background-color: var(--beam-pillLabel-color-background, #000);
|
|
4
4
|
color: var(--beam-pillLabel-color, #fff);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as lit_html from 'lit-html';
|
|
2
2
|
import * as lit from 'lit';
|
|
3
3
|
import { LitElement } from 'lit';
|
|
4
|
-
import { g as getChainNonprofits, a as getImpact } from '../chunks/routes-
|
|
4
|
+
import { g as getChainNonprofits, a as getImpact } from '../chunks/routes-BW8Dd3C1.esm.js';
|
|
5
5
|
import { b as TNumericId, L as LANGUAGES, d as TCart } from '../chunks/utils-BPcZ5h8J.esm.js';
|
|
6
6
|
import './select-subscription-nonprofit.js';
|
|
7
7
|
import './subscription-impact.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as z,n as r,r as d,a as H,b as o,h as E}from"../chunks/lit-BEag9MFp.esm.js";import{D as R,v as j,P as K,W as B,x as y,B as N}from"../chunks/utils-C5hmbxa4.esm.js";import{a as _}from"../chunks/share-button-o8IBYAxH.esm.js";import{c as F,a as O,d as V,e as S}from"../chunks/css-card-grid-CiqEjkwR.esm.js";import{u as l,A as x,h as Y,j as G,g as q,e as c,f as J,d as p,_ as D,c as v}from"../chunks/index-CVHrQ1WC.esm.js";import"./select-subscription-nonprofit.esm.js";import"./subscription-impact.esm.js";import{partnerLogosConfigDefaults as Q}from"./beam-partner-logos.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";import"../chunks/share-button-DFuEWa2h.esm.js";import"../chunks/vendor-DUOg5fL-.esm.js";import"../chunks/_share-dialog-dependencies-BvaXft1r.esm.js";import"../chunks/responsive-aN8P5PqD.esm.js";const g={en:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},fr:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},de:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},es:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},it:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},pl:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},ja:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"}};var X=Object.defineProperty,i=(M,t,n,s)=>{for(var a=void 0,b=M.length-1,u;b>=0;b--)(u=M[b])&&(a=u(t,n,a)||a);return a&&X(t,n,a),a};const $=3,Z=0,tt=1,et=98;class e extends H{constructor(){super(...arguments),this.baseUrl=R,this.lang="en",this.debug=!1,this.draftConfig=!1,this.activeWidget=null,this.nonprofitId=null,this.beamUserId=null,this.eligibleNonprofits=[],this.showAllTiles=!1,this.isMobile=window.innerWidth<720,this.dropdownVisible=!1,this.emojis=["\u{1F44F}","\u{1F4AA}","\u{1F64C}","\u2728","\u{1F947}"],this.subscriptionDataController=new x(this,this.fetchSubscription),this.eligibleNonprofitsDataController=new x(this,this.fetchEligibleNonprofits),this.personalImpactDataController=new x(this,this.fetchImpact)}get configLang(){return j[this.lang]||"en"}async firstUpdated(){if(!this.email&&!this.partnerUserId)throw new K(["email","partnerUserId"],"One of the following properties needs to be specified: email, partnerUserId ");S(["apiKey","subscriptionId"],this),await this.loadWidget()}async loadWidget(){await Promise.all([this.fetchEligibleNonprofits(),this.fetchSubscription()]),await this.fetchImpact(),this.activeWidget=this.nonprofitId?"subscription-impact":"select-subscription-nonprofit"}async fetchEligibleNonprofits(){S(["apiKey","subscriptionId"],this);const t=await Y({baseUrl:this.baseUrl,headers:y(this.apiKey),requestBody:{storeId:this.storeId||void 0,postalCode:this.postalCode||void 0,countryCode:this.countryCode||void 0,widgetName:B.subscription_management,version:"1.0.0"}});return this.storeId=t.store.id,this.eligibleNonprofits=t.nonprofits,this.eligibleNonprofitsDataController.data=t,t}async fetchSubscription(){S(["apiKey","subscriptionId"],this);const t=await G({baseUrl:this.baseUrl,headers:y(this.apiKey),requestBody:{remoteSubscriptionId:this.subscriptionId,email:this.email,partnerUserId:this.partnerUserId}});return this.beamUserId=t.beamUserId,this.nonprofitId=t.nonprofit?.id||null,t}async fetchImpact(){S(["apiKey"],this);const t=await q({baseUrl:this.baseUrl,headers:y(this.apiKey),queryParams:{beamUserId:this.beamUserId?this.beamUserId:void 0,widgetName:"subscription-management",version:"1.0.0",lang:this.configLang}});return this.personalImpactDataController.data=t,t}getDisplayablePreviousImpacts(){const t=this.personalImpactDataController.data?.personal;return!t||t?.length<1?[]:t.filter(n=>!(!n.nonprofit.includeInPersonalImpact||n.nonprofit.id===this.nonprofitId&&(!n.impact.goalCompletionText||n.impact.goalCompletionText?.length<1)))}handleSwapNonprofitButtonClick(){this.activeWidget="select-subscription-nonprofit"}handleBackToSubscriptionImpactButtonClick(){this.activeWidget="subscription-impact"}handleSupportAgainButtonClick(t,n){this.activeWidget="select-subscription-nonprofit",this.selectedNonprofitId=t;const s=new N({selectedNonprofitId:t,nonprofitName:n,source:B.subscription_management,timestamp:new Date});this.dispatchEvent(s)}handleNonprofitSelect(t){if(!(t instanceof N))return;const{selectedNonprofitId:n}=t.detail;this.nonprofitId=n??null,this.activeWidget="subscription-impact"}isNonprofitEligible(t){return this.eligibleNonprofits.some(n=>n.nonprofit.id===t)}shouldDisplayProgressBar(t){return t>tt&&t<et}get cssVariables(){const t={...Q,..._,"--beam-fontFamily":"inherit","--beam-fontStyle":"inherit","--beam-fontSize":"inherit","--beam-textColor":"inherit","--beam-backgroundColor":"inherit","--beam-SubscriptionManagement-widgetContainer-borderColor":"#d5d5d5","--beam-SubscriptionManagement-widgetContainer-borderRadius":"4px","--beam-SubscriptionManagement-widgetContainer-padding":"8px 20px","--beam-SubscriptionManagement-widgetContainer-backgroundColor":"inherit","--beam-SubscriptionManagement-widgetContainer-maxWidth":"820px","--beam-SubscriptionManagement-logo-align-desktop":"left","--beam-SubscriptionManagement-logo-align-mobile":"center","--beam-SubscriptionManagement-previousImpact-cardStyle":"'selected_icon'","--beam-SubscriptionManagement-header-padding":"10px 20px 10px 0px","--beam-SubscriptionManagement-header-borderRadius":"0px","--beam-SubscriptionManagement-header-backgroundColor":"#fff","--beam-SubscriptionManagement-header-meatballsMenu-fontSize":"24px","--beam-SubscriptionManagement-header-meatballsMenu-color":"24px","--beam-SubscriptionManagement-lineBreak-color":"#ddd","--beam-SubscriptionManagement-lineBreak-width":"1px","--beam-SubscriptionManagement-lineBreak-margin":"10px 0 20px 0","--beam-SubscriptionManagement-tile-marginBottom":"20px","--beam-SubscriptionManagement-tile-border-width":"0px","--beam-SubscriptionManagement-tile-border-color":"#ddd","--beam-SubscriptionManagement-tile-padding":"12.5px","--beam-SubscriptionManagement-tile-borderRadius":"8px","--beam-SubscriptionManagement-tile-background":"#f8fbfb","--beam-SubscriptionManagement-tileContent-gap":" 15px","--beam-SubscriptionManagement-tileContent-padding":"5px 0px","--beam-SubscriptionManagement-tile-icon-borderRadius":"4px","--beam-SubscriptionManagement-tile-icon-height":"28px","--beam-SubscriptionManagement-tile-icon-background-borderRadius":"50%","--beam-SubscriptionManagement-tile-icon-background-width":"50px","--beam-SubscriptionManagement-tile-icon-background-height":"50px","--beam-SubscriptionManagement-tile-icon-background-backgroundColor":"#0a323c","--beam-SubscriptionManagement-tile-icon-background-padding":"10px","--beam-SubscriptionManagement-blockTileDescription-gap":"5px","--beam-SubscriptionManagement-blockTileDescription-padding":"0px","--beam-SubscriptionManagement-blockTileDescription-lineHeight":"130%","--beam-SubscriptionManagement-blockTileDescription-progressBar-width-desktop":"60%","--beam-SubscriptionManagement-blockTileDescription-progressBar-width-mobile":"100%","--beam-SubscriptionManagement-subWidgetContainer-padding":"0px 0px 10px","--beam-SubscriptionManagement-previousImpactContainer-padding-desktop":"10px 24px 10px 0px","--beam-SubscriptionManagement-previousImpactContainer-padding-mobile":"0px","--beam-SubscriptionManagement-dropDown-padding":"15px 8px","--beam-SubscriptionManagement-dropDown-borderRadius":"8px","--beam-SubscriptionManagement-dropDown-backgroundColor":"#f8fbfb","--beam-SubscriptionManagement-dropDown-boxShadow":"0px 4px 28px 0px rgba(0, 0, 0, 0.04)","--beam-SubscriptionManagement-dropDown-width":"128px","--beam-SubscriptionManagement-dropDown-hover-backgroundColor":"#E1F1EE","--beam-SubscriptionManagement-dropDownOptions-textDecoration":"underline",...c("--beam-SubscriptionManagement-dropDownOptions",{fontSize:"12px",fontWeight:"400",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-yourPreviousImpactTitle-marginBottom":"15px",...c("--beam-SubscriptionManagement-yourPreviousImpactTitle",{fontSize:"18px",fontWeight:"bold",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-yourPreviousImpact-showAllButton-textDecoration":"underline",...c("--beam-SubscriptionManagement-yourPreviousImpact-showAllButton",{fontSize:"12px",fontWeight:"bold",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-tile-title-letterSpacing":"0.36px",...c("--beam-SubscriptionManagement-tile-title",{fontSize:"12px",fontWeight:"bold",lineHeight:"120%",textTransform:"uppercase",fontStyle:"normal",color:"#0a323c"}),...c("--beam-SubscriptionManagement-tile-description",{fontSize:"14px",lineHeight:"120%",fontStyle:"normal",color:"#454a47"}),...c("--beam-SubscriptionManagement-tile-via",{fontSize:"14px",lineHeight:"120%",fontStyle:"normal",color:"#454a47"}),"--beam-SubscriptionManagement-tile-nonprofitLink-textDecoration":"underline",...c("--beam-SubscriptionManagement-tile-nonprofitLink",{fontSize:"14px",fontWeight:"400",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-tile-supportAgainButton-textDecoration":"underline",...c("--beam-SubscriptionManagement-tile-supportAgainButton",{fontSize:"14px",fontWeight:"400",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-tile-progressBarLabel-marginLeft":"8px",...c("--beam-SubscriptionManagement-tile-progressBarLabel",{fontSize:"10px",fontWeight:"bold",fontStyle:"normal",color:"#878a92"}),"--beam-SubscriptionManagement-tile-fundedAmount-lineHeight":"16px",...c("--beam-SubscriptionManagement-tile-fundedAmount",{fontSize:"14px",fontWeight:"400",lineHeight:"120%",fontStyle:"italic",color:"#0a323c"})},n=this.eligibleNonprofitsDataController?.data?.config?.web?.theme||{},s={...t,...n};return Object.assign(Object.create({toCSS(){return J(this)}}),s)}renderPreviousImpactTiles({personalImpact:t,cardStyle:n,eligibleNonprofitConfig:s}){if(!t)return o``;if(!s)return o``;const a=this.showAllTiles?t:t.slice(0,$);let b=0;return o`
|
|
1
|
+
import{i as z,n as r,r as d,a as H,b as o,h as E}from"../chunks/lit-BEag9MFp.esm.js";import{D as R,x as j,Q as K,W as B,y,B as N}from"../chunks/utils-ly9wMwUO.esm.js";import{a as _}from"../chunks/share-button-C1PRjoPw.esm.js";import{c as F,a as O,d as V,e as S}from"../chunks/css-card-grid-tjA36yWj.esm.js";import{u as l,A as x,h as Y,j as G,g as q,e as c,f as Q,d as p,_ as D,c as v}from"../chunks/index-M8hQ6GXf.esm.js";import"./select-subscription-nonprofit.esm.js";import"./subscription-impact.esm.js";import{partnerLogosConfigDefaults as J}from"./beam-partner-logos.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";import"../chunks/share-button-CNq5lDre.esm.js";import"../chunks/vendor-DUOg5fL-.esm.js";import"../chunks/_share-dialog-dependencies-Caoc1gRc.esm.js";import"../chunks/responsive-aN8P5PqD.esm.js";const g={en:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},fr:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},de:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},es:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},it:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},pl:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},ja:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"}};var X=Object.defineProperty,i=(M,t,n,s)=>{for(var a=void 0,b=M.length-1,u;b>=0;b--)(u=M[b])&&(a=u(t,n,a)||a);return a&&X(t,n,a),a};const $=3,Z=0,tt=1,et=98;class e extends H{constructor(){super(...arguments),this.baseUrl=R,this.lang="en",this.debug=!1,this.draftConfig=!1,this.activeWidget=null,this.nonprofitId=null,this.beamUserId=null,this.eligibleNonprofits=[],this.showAllTiles=!1,this.isMobile=window.innerWidth<720,this.dropdownVisible=!1,this.emojis=["\u{1F44F}","\u{1F4AA}","\u{1F64C}","\u2728","\u{1F947}"],this.subscriptionDataController=new x(this,this.fetchSubscription),this.eligibleNonprofitsDataController=new x(this,this.fetchEligibleNonprofits),this.personalImpactDataController=new x(this,this.fetchImpact)}get configLang(){return j[this.lang]||"en"}async firstUpdated(){if(!this.email&&!this.partnerUserId)throw new K(["email","partnerUserId"],"One of the following properties needs to be specified: email, partnerUserId ");S(["apiKey","subscriptionId"],this),await this.loadWidget()}async loadWidget(){await Promise.all([this.fetchEligibleNonprofits(),this.fetchSubscription()]),await this.fetchImpact(),this.activeWidget=this.nonprofitId?"subscription-impact":"select-subscription-nonprofit"}async fetchEligibleNonprofits(){S(["apiKey","subscriptionId"],this);const t=await Y({baseUrl:this.baseUrl,headers:y(this.apiKey),requestBody:{storeId:this.storeId||void 0,...this.postalCode&&{postalCode:this.postalCode},...this.countryCode&&{countryCode:this.countryCode},widgetName:B.subscription_management,version:"1.0.0"}});return this.storeId=t.store.id,this.eligibleNonprofits=t.nonprofits,this.eligibleNonprofitsDataController.data=t,t}async fetchSubscription(){S(["apiKey","subscriptionId"],this);const t=await G({baseUrl:this.baseUrl,headers:y(this.apiKey),requestBody:{remoteSubscriptionId:this.subscriptionId,email:this.email,partnerUserId:this.partnerUserId}});return this.beamUserId=t.beamUserId,this.nonprofitId=t.nonprofit?.id||null,t}async fetchImpact(){S(["apiKey"],this);const t=await q({baseUrl:this.baseUrl,headers:y(this.apiKey),queryParams:{beamUserId:this.beamUserId?this.beamUserId:void 0,widgetName:"subscription-management",version:"1.0.0",lang:this.configLang}});return this.personalImpactDataController.data=t,t}getDisplayablePreviousImpacts(){const t=this.personalImpactDataController.data?.personal;return!t||t?.length<1?[]:t.filter(n=>!(!n.nonprofit.includeInPersonalImpact||n.nonprofit.id===this.nonprofitId&&(!n.impact.goalCompletionText||n.impact.goalCompletionText?.length<1)))}handleSwapNonprofitButtonClick(){this.activeWidget="select-subscription-nonprofit"}handleBackToSubscriptionImpactButtonClick(){this.activeWidget="subscription-impact"}handleSupportAgainButtonClick(t,n){this.activeWidget="select-subscription-nonprofit",this.selectedNonprofitId=t;const s=new N({selectedNonprofitId:t,nonprofitName:n,source:B.subscription_management,timestamp:new Date});this.dispatchEvent(s)}handleNonprofitSelect(t){if(!(t instanceof N))return;const{selectedNonprofitId:n}=t.detail;this.nonprofitId=n??null,this.activeWidget="subscription-impact"}isNonprofitEligible(t){return this.eligibleNonprofits.some(n=>n.nonprofit.id===t)}shouldDisplayProgressBar(t){return t>tt&&t<et}get cssVariables(){const t={...J,..._,"--beam-fontFamily":"inherit","--beam-fontStyle":"inherit","--beam-fontSize":"inherit","--beam-textColor":"inherit","--beam-backgroundColor":"inherit","--beam-SubscriptionManagement-widgetContainer-borderColor":"#d5d5d5","--beam-SubscriptionManagement-widgetContainer-borderRadius":"4px","--beam-SubscriptionManagement-widgetContainer-padding":"8px 20px","--beam-SubscriptionManagement-widgetContainer-backgroundColor":"inherit","--beam-SubscriptionManagement-widgetContainer-maxWidth":"820px","--beam-SubscriptionManagement-logo-align-desktop":"left","--beam-SubscriptionManagement-logo-align-mobile":"center","--beam-SubscriptionManagement-previousImpact-cardStyle":"'selected_icon'","--beam-SubscriptionManagement-header-padding":"10px 20px 10px 0px","--beam-SubscriptionManagement-header-borderRadius":"0px","--beam-SubscriptionManagement-header-backgroundColor":"#fff","--beam-SubscriptionManagement-header-meatballsMenu-fontSize":"24px","--beam-SubscriptionManagement-header-meatballsMenu-color":"24px","--beam-SubscriptionManagement-lineBreak-color":"#ddd","--beam-SubscriptionManagement-lineBreak-width":"1px","--beam-SubscriptionManagement-lineBreak-margin":"10px 0 20px 0","--beam-SubscriptionManagement-tile-marginBottom":"20px","--beam-SubscriptionManagement-tile-border-width":"0px","--beam-SubscriptionManagement-tile-border-color":"#ddd","--beam-SubscriptionManagement-tile-padding":"12.5px","--beam-SubscriptionManagement-tile-borderRadius":"8px","--beam-SubscriptionManagement-tile-background":"#f8fbfb","--beam-SubscriptionManagement-tileContent-gap":" 15px","--beam-SubscriptionManagement-tileContent-padding":"5px 0px","--beam-SubscriptionManagement-tile-icon-borderRadius":"4px","--beam-SubscriptionManagement-tile-icon-height":"28px","--beam-SubscriptionManagement-tile-icon-background-borderRadius":"50%","--beam-SubscriptionManagement-tile-icon-background-width":"50px","--beam-SubscriptionManagement-tile-icon-background-height":"50px","--beam-SubscriptionManagement-tile-icon-background-backgroundColor":"#0a323c","--beam-SubscriptionManagement-tile-icon-background-padding":"10px","--beam-SubscriptionManagement-blockTileDescription-gap":"5px","--beam-SubscriptionManagement-blockTileDescription-padding":"0px","--beam-SubscriptionManagement-blockTileDescription-lineHeight":"130%","--beam-SubscriptionManagement-blockTileDescription-progressBar-width-desktop":"60%","--beam-SubscriptionManagement-blockTileDescription-progressBar-width-mobile":"100%","--beam-SubscriptionManagement-subWidgetContainer-padding":"0px 0px 10px","--beam-SubscriptionManagement-previousImpactContainer-padding-desktop":"10px 24px 10px 0px","--beam-SubscriptionManagement-previousImpactContainer-padding-mobile":"0px","--beam-SubscriptionManagement-dropDown-padding":"15px 8px","--beam-SubscriptionManagement-dropDown-borderRadius":"8px","--beam-SubscriptionManagement-dropDown-backgroundColor":"#f8fbfb","--beam-SubscriptionManagement-dropDown-boxShadow":"0px 4px 28px 0px rgba(0, 0, 0, 0.04)","--beam-SubscriptionManagement-dropDown-width":"128px","--beam-SubscriptionManagement-dropDown-hover-backgroundColor":"#E1F1EE","--beam-SubscriptionManagement-dropDownOptions-textDecoration":"underline",...c("--beam-SubscriptionManagement-dropDownOptions",{fontSize:"12px",fontWeight:"400",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-yourPreviousImpactTitle-marginBottom":"15px",...c("--beam-SubscriptionManagement-yourPreviousImpactTitle",{fontSize:"18px",fontWeight:"bold",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-yourPreviousImpact-showAllButton-textDecoration":"underline",...c("--beam-SubscriptionManagement-yourPreviousImpact-showAllButton",{fontSize:"12px",fontWeight:"bold",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-tile-title-letterSpacing":"0.36px",...c("--beam-SubscriptionManagement-tile-title",{fontSize:"12px",fontWeight:"bold",lineHeight:"120%",textTransform:"uppercase",fontStyle:"normal",color:"#0a323c"}),...c("--beam-SubscriptionManagement-tile-description",{fontSize:"14px",lineHeight:"120%",fontStyle:"normal",color:"#454a47"}),...c("--beam-SubscriptionManagement-tile-via",{fontSize:"14px",lineHeight:"120%",fontStyle:"normal",color:"#454a47"}),"--beam-SubscriptionManagement-tile-nonprofitLink-textDecoration":"underline",...c("--beam-SubscriptionManagement-tile-nonprofitLink",{fontSize:"14px",fontWeight:"400",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-tile-supportAgainButton-textDecoration":"underline",...c("--beam-SubscriptionManagement-tile-supportAgainButton",{fontSize:"14px",fontWeight:"400",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-tile-progressBarLabel-marginLeft":"8px",...c("--beam-SubscriptionManagement-tile-progressBarLabel",{fontSize:"10px",fontWeight:"bold",fontStyle:"normal",color:"#878a92"}),"--beam-SubscriptionManagement-tile-fundedAmount-lineHeight":"16px",...c("--beam-SubscriptionManagement-tile-fundedAmount",{fontSize:"14px",fontWeight:"400",lineHeight:"120%",fontStyle:"italic",color:"#0a323c"})},n=this.eligibleNonprofitsDataController?.data?.config?.web?.theme||{},s={...t,...n};return Object.assign(Object.create({toCSS(){return Q(this)}}),s)}renderPreviousImpactTiles({personalImpact:t,cardStyle:n,eligibleNonprofitConfig:s}){if(!t)return o``;if(!s)return o``;const a=this.showAllTiles?t:t.slice(0,$);let b=0;return o`
|
|
2
2
|
${a.map(u=>{const{impact:{goalCompletionText:m,description:h,goalProgressPercentage:f,goalProgressText:A},nonprofit:{cause:C,causeIconSelectedUrl:L,causeIconUrl:T,website:P,name:I,id:w}}=u,k=this.nonprofitId!==w&&this.isNonprofitEligible(w),U=k&&this.shouldDisplayProgressBar(f),W=m?`${this.emojis[b]} `:"";return b=(b+1)%this.emojis.length,o`
|
|
3
3
|
<div class="tile">
|
|
4
4
|
<div class="tile-header">
|