@easypayment/medusa-payment-paypal 0.9.20 → 0.9.21

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.
@@ -134,20 +134,22 @@ async function adminFetch(path, opts = {}) {
134
134
  }
135
135
  }
136
136
  const DEFAULT_FORM$1 = {
137
- paymentAction: "capture",
138
- brandName: "PayPal",
139
- landingPage: "no_preference",
140
- requireInstantPayment: false,
141
- sendItemDetails: true,
142
- invoicePrefix: "PP-",
143
- creditCardStatementName: "PayPal"
137
+ enabled: true,
138
+ title: "Credit or Debit Card",
139
+ threeDS: "when_required"
144
140
  };
145
141
  function mergeWithDefaults$1(saved) {
146
142
  if (!saved) return { ...DEFAULT_FORM$1 };
147
143
  const entries = Object.entries(saved).filter(([, value]) => value !== void 0);
148
144
  return { ...DEFAULT_FORM$1, ...Object.fromEntries(entries) };
149
145
  }
150
- function AdditionalSettingsTab() {
146
+ const THREE_DS_OPTIONS = [
147
+ { value: "when_required", label: "3D Secure when required", hint: "Triggers 3DS only when the card / issuer requires it." },
148
+ { value: "sli", label: "3D Secure (SCA) / liability shift (recommended)", hint: "Attempts to optimize for liability shift while remaining compliant." },
149
+ { value: "always", label: "Always request 3D Secure", hint: "Forces 3DS challenge whenever possible (may reduce conversion)." }
150
+ ];
151
+ function AdvancedCardPaymentsTab() {
152
+ var _a, _b;
151
153
  const [form, setForm] = react.useState(() => ({ ...DEFAULT_FORM$1 }));
152
154
  const [loading, setLoading] = react.useState(false);
153
155
  const [saving, setSaving] = react.useState(false);
@@ -162,7 +164,7 @@ function AdditionalSettingsTab() {
162
164
  setLoading(true);
163
165
  const json = await adminFetch("/admin/paypal/settings");
164
166
  const payload = (json == null ? void 0 : json.data) ?? json;
165
- const saved = payload == null ? void 0 : payload.additional_settings;
167
+ const saved = payload == null ? void 0 : payload.advanced_card_payments;
166
168
  if (saved && typeof saved === "object") setForm(mergeWithDefaults$1(saved));
167
169
  } catch {
168
170
  } finally {
@@ -173,14 +175,16 @@ function AdditionalSettingsTab() {
173
175
  async function onSave() {
174
176
  try {
175
177
  setSaving(true);
176
- setToast(null);
177
- const json = await adminFetch("/admin/paypal/settings", { method: "POST", body: { additional_settings: form } });
178
+ const json = await adminFetch("/admin/paypal/settings", {
179
+ method: "POST",
180
+ body: { advanced_card_payments: form }
181
+ });
178
182
  const payload = (json == null ? void 0 : json.data) ?? json;
179
- const saved = payload == null ? void 0 : payload.additional_settings;
183
+ const saved = payload == null ? void 0 : payload.advanced_card_payments;
180
184
  if (saved && typeof saved === "object") setForm(mergeWithDefaults$1(saved));
181
185
  setToast({ kind: "success", message: "Settings saved" });
182
186
  } catch (e) {
183
- setToast({ kind: "error", message: e instanceof Error ? e.message : "Failed to save settings" });
187
+ setToast({ kind: "error", message: (e instanceof Error ? e.message : "") || "Failed to save settings." });
184
188
  } finally {
185
189
  setSaving(false);
186
190
  }
@@ -192,58 +196,42 @@ function AdditionalSettingsTab() {
192
196
  /* @__PURE__ */ jsxRuntime.jsx(
193
197
  SectionCard,
194
198
  {
195
- title: "Additional Settings",
196
- description: "These settings control checkout behavior and PayPal experience.",
199
+ title: "Advanced Card Payments",
200
+ description: "Control card checkout settings and 3D Secure behavior.",
197
201
  right: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
198
202
  /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: onSave, disabled: saving || loading, className: "transition-fg relative inline-flex w-fit items-center justify-center overflow-hidden rounded-md outline-none shadow-buttons-neutral text-ui-fg-base bg-ui-button-neutral after:transition-fg after:absolute after:inset-0 after:content-[''] after:button-neutral-gradient hover:bg-ui-button-neutral-hover hover:after:button-neutral-hover-gradient active:bg-ui-button-neutral-pressed active:after:button-neutral-pressed-gradient focus-visible:shadow-buttons-neutral-focus disabled:bg-ui-bg-disabled disabled:border-ui-border-base disabled:text-ui-fg-disabled disabled:shadow-buttons-neutral disabled:after:hidden txt-compact-small-plus px-3 py-1.5", children: saving ? "Saving..." : "Save settings" }),
199
203
  loading ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-ui-fg-subtle", children: "Loading…" }) : null
200
204
  ] }),
201
205
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "divide-y divide-ui-border-base", children: [
202
- /* @__PURE__ */ jsxRuntime.jsx(FieldRow, { label: "Payment action", htmlFor: "as-payment-action", children: /* @__PURE__ */ jsxRuntime.jsxs("select", { id: "as-payment-action", value: form.paymentAction, onChange: (e) => setForm((p) => ({ ...p, paymentAction: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", children: [
203
- /* @__PURE__ */ jsxRuntime.jsx("option", { value: "capture", children: "Capture" }),
204
- /* @__PURE__ */ jsxRuntime.jsx("option", { value: "authorize", children: "Authorize" })
205
- ] }) }),
206
- /* @__PURE__ */ jsxRuntime.jsx(FieldRow, { label: "Brand Name", htmlFor: "as-brand-name", children: /* @__PURE__ */ jsxRuntime.jsx("input", { id: "as-brand-name", value: form.brandName, onChange: (e) => setForm((p) => ({ ...p, brandName: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", placeholder: "PayPal" }) }),
207
- /* @__PURE__ */ jsxRuntime.jsx(FieldRow, { label: "Landing Page", htmlFor: "as-landing-page", children: /* @__PURE__ */ jsxRuntime.jsxs("select", { id: "as-landing-page", value: form.landingPage, onChange: (e) => setForm((p) => ({ ...p, landingPage: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", children: [
208
- /* @__PURE__ */ jsxRuntime.jsx("option", { value: "no_preference", children: "No Preference" }),
209
- /* @__PURE__ */ jsxRuntime.jsx("option", { value: "login", children: "Login" }),
210
- /* @__PURE__ */ jsxRuntime.jsx("option", { value: "billing", children: "Billing" })
211
- ] }) }),
212
- /* @__PURE__ */ jsxRuntime.jsx(FieldRow, { label: "Instant Payments", children: /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "inline-flex items-center gap-2", children: [
213
- /* @__PURE__ */ jsxRuntime.jsx("input", { type: "checkbox", checked: form.requireInstantPayment, onChange: (e) => setForm((p) => ({ ...p, requireInstantPayment: e.target.checked })), className: "h-4 w-4 rounded border-ui-border-base" }),
214
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-ui-fg-base", children: "Require Instant Payment" })
215
- ] }) }),
216
- /* @__PURE__ */ jsxRuntime.jsx(FieldRow, { label: "Send Item Details", hint: "Include all line item details in the payment request to PayPal so that they can be seen from the PayPal transaction details page.", children: /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "inline-flex items-center gap-2", children: [
217
- /* @__PURE__ */ jsxRuntime.jsx("input", { type: "checkbox", checked: form.sendItemDetails, onChange: (e) => setForm((p) => ({ ...p, sendItemDetails: e.target.checked })), className: "h-4 w-4 rounded border-ui-border-base" }),
218
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-ui-fg-base", children: "Send line item details to PayPal" })
206
+ /* @__PURE__ */ jsxRuntime.jsx(FieldRow, { label: "Enable/Disable", children: /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "inline-flex items-center gap-2", children: [
207
+ /* @__PURE__ */ jsxRuntime.jsx("input", { type: "checkbox", checked: form.enabled, onChange: (e) => setForm((p) => ({ ...p, enabled: e.target.checked })), className: "h-4 w-4 rounded border-ui-border-base" }),
208
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-ui-fg-base", children: "Enable Advanced Credit/Debit Card" })
219
209
  ] }) }),
220
- /* @__PURE__ */ jsxRuntime.jsx(FieldRow, { label: "Invoice prefix", htmlFor: "as-invoice-prefix", children: /* @__PURE__ */ jsxRuntime.jsx("input", { id: "as-invoice-prefix", value: form.invoicePrefix, onChange: (e) => setForm((p) => ({ ...p, invoicePrefix: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", placeholder: "PP-" }) }),
221
- /* @__PURE__ */ jsxRuntime.jsx(FieldRow, { label: "Credit Card Statement Name", htmlFor: "as-cc-statement", children: /* @__PURE__ */ jsxRuntime.jsx("input", { id: "as-cc-statement", value: form.creditCardStatementName, onChange: (e) => setForm((p) => ({ ...p, creditCardStatementName: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", placeholder: "PayPal" }) })
210
+ /* @__PURE__ */ jsxRuntime.jsx(FieldRow, { label: "Title", htmlFor: "acp-title", children: /* @__PURE__ */ jsxRuntime.jsx("input", { id: "acp-title", value: form.title, onChange: (e) => setForm((p) => ({ ...p, title: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", placeholder: "Credit or Debit Card" }) }),
211
+ /* @__PURE__ */ jsxRuntime.jsx(FieldRow, { label: "Contingency for 3D Secure", hint: "Choose when 3D Secure should be triggered during card payments.", htmlFor: "acp-threeds", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", children: [
212
+ /* @__PURE__ */ jsxRuntime.jsx("select", { id: "acp-threeds", value: form.threeDS, onChange: (e) => setForm((p) => ({ ...p, threeDS: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", children: THREE_DS_OPTIONS.map((o) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: o.value, children: o.label }, o.value)) }),
213
+ ((_a = THREE_DS_OPTIONS.find((o) => o.value === form.threeDS)) == null ? void 0 : _a.hint) ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-ui-fg-subtle", children: (_b = THREE_DS_OPTIONS.find((o) => o.value === form.threeDS)) == null ? void 0 : _b.hint }) : null
214
+ ] }) })
222
215
  ] })
223
216
  }
224
217
  )
225
218
  ] }) });
226
219
  }
227
- function PayPalApplePayPage() {
228
- return /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Navigate, { to: "/settings/paypal/connection", replace: true });
229
- }
230
220
  const DEFAULT_FORM = {
231
- enabled: true,
232
- title: "Credit or Debit Card",
233
- threeDS: "when_required"
221
+ paymentAction: "capture",
222
+ brandName: "PayPal",
223
+ landingPage: "no_preference",
224
+ requireInstantPayment: false,
225
+ sendItemDetails: true,
226
+ invoicePrefix: "PP-",
227
+ creditCardStatementName: "PayPal"
234
228
  };
235
229
  function mergeWithDefaults(saved) {
236
230
  if (!saved) return { ...DEFAULT_FORM };
237
231
  const entries = Object.entries(saved).filter(([, value]) => value !== void 0);
238
232
  return { ...DEFAULT_FORM, ...Object.fromEntries(entries) };
239
233
  }
240
- const THREE_DS_OPTIONS = [
241
- { value: "when_required", label: "3D Secure when required", hint: "Triggers 3DS only when the card / issuer requires it." },
242
- { value: "sli", label: "3D Secure (SCA) / liability shift (recommended)", hint: "Attempts to optimize for liability shift while remaining compliant." },
243
- { value: "always", label: "Always request 3D Secure", hint: "Forces 3DS challenge whenever possible (may reduce conversion)." }
244
- ];
245
- function AdvancedCardPaymentsTab() {
246
- var _a, _b;
234
+ function AdditionalSettingsTab() {
247
235
  const [form, setForm] = react.useState(() => ({ ...DEFAULT_FORM }));
248
236
  const [loading, setLoading] = react.useState(false);
249
237
  const [saving, setSaving] = react.useState(false);
@@ -258,7 +246,7 @@ function AdvancedCardPaymentsTab() {
258
246
  setLoading(true);
259
247
  const json = await adminFetch("/admin/paypal/settings");
260
248
  const payload = (json == null ? void 0 : json.data) ?? json;
261
- const saved = payload == null ? void 0 : payload.advanced_card_payments;
249
+ const saved = payload == null ? void 0 : payload.additional_settings;
262
250
  if (saved && typeof saved === "object") setForm(mergeWithDefaults(saved));
263
251
  } catch {
264
252
  } finally {
@@ -269,16 +257,14 @@ function AdvancedCardPaymentsTab() {
269
257
  async function onSave() {
270
258
  try {
271
259
  setSaving(true);
272
- const json = await adminFetch("/admin/paypal/settings", {
273
- method: "POST",
274
- body: { advanced_card_payments: form }
275
- });
260
+ setToast(null);
261
+ const json = await adminFetch("/admin/paypal/settings", { method: "POST", body: { additional_settings: form } });
276
262
  const payload = (json == null ? void 0 : json.data) ?? json;
277
- const saved = payload == null ? void 0 : payload.advanced_card_payments;
263
+ const saved = payload == null ? void 0 : payload.additional_settings;
278
264
  if (saved && typeof saved === "object") setForm(mergeWithDefaults(saved));
279
265
  setToast({ kind: "success", message: "Settings saved" });
280
266
  } catch (e) {
281
- setToast({ kind: "error", message: (e instanceof Error ? e.message : "") || "Failed to save settings." });
267
+ setToast({ kind: "error", message: e instanceof Error ? e.message : "Failed to save settings" });
282
268
  } finally {
283
269
  setSaving(false);
284
270
  }
@@ -290,27 +276,44 @@ function AdvancedCardPaymentsTab() {
290
276
  /* @__PURE__ */ jsxRuntime.jsx(
291
277
  SectionCard,
292
278
  {
293
- title: "Advanced Card Payments",
294
- description: "Control card checkout settings and 3D Secure behavior.",
279
+ title: "Additional Settings",
280
+ description: "These settings control checkout behavior and PayPal experience.",
295
281
  right: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
296
282
  /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: onSave, disabled: saving || loading, className: "transition-fg relative inline-flex w-fit items-center justify-center overflow-hidden rounded-md outline-none shadow-buttons-neutral text-ui-fg-base bg-ui-button-neutral after:transition-fg after:absolute after:inset-0 after:content-[''] after:button-neutral-gradient hover:bg-ui-button-neutral-hover hover:after:button-neutral-hover-gradient active:bg-ui-button-neutral-pressed active:after:button-neutral-pressed-gradient focus-visible:shadow-buttons-neutral-focus disabled:bg-ui-bg-disabled disabled:border-ui-border-base disabled:text-ui-fg-disabled disabled:shadow-buttons-neutral disabled:after:hidden txt-compact-small-plus px-3 py-1.5", children: saving ? "Saving..." : "Save settings" }),
297
283
  loading ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-ui-fg-subtle", children: "Loading…" }) : null
298
284
  ] }),
299
285
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "divide-y divide-ui-border-base", children: [
300
- /* @__PURE__ */ jsxRuntime.jsx(FieldRow, { label: "Enable/Disable", children: /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "inline-flex items-center gap-2", children: [
301
- /* @__PURE__ */ jsxRuntime.jsx("input", { type: "checkbox", checked: form.enabled, onChange: (e) => setForm((p) => ({ ...p, enabled: e.target.checked })), className: "h-4 w-4 rounded border-ui-border-base" }),
302
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-ui-fg-base", children: "Enable Advanced Credit/Debit Card" })
286
+ /* @__PURE__ */ jsxRuntime.jsx(FieldRow, { label: "Payment action", htmlFor: "as-payment-action", children: /* @__PURE__ */ jsxRuntime.jsxs("select", { id: "as-payment-action", value: form.paymentAction, onChange: (e) => setForm((p) => ({ ...p, paymentAction: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", children: [
287
+ /* @__PURE__ */ jsxRuntime.jsx("option", { value: "capture", children: "Capture" }),
288
+ /* @__PURE__ */ jsxRuntime.jsx("option", { value: "authorize", children: "Authorize" })
303
289
  ] }) }),
304
- /* @__PURE__ */ jsxRuntime.jsx(FieldRow, { label: "Title", htmlFor: "acp-title", children: /* @__PURE__ */ jsxRuntime.jsx("input", { id: "acp-title", value: form.title, onChange: (e) => setForm((p) => ({ ...p, title: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", placeholder: "Credit or Debit Card" }) }),
305
- /* @__PURE__ */ jsxRuntime.jsx(FieldRow, { label: "Contingency for 3D Secure", hint: "Choose when 3D Secure should be triggered during card payments.", htmlFor: "acp-threeds", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", children: [
306
- /* @__PURE__ */ jsxRuntime.jsx("select", { id: "acp-threeds", value: form.threeDS, onChange: (e) => setForm((p) => ({ ...p, threeDS: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", children: THREE_DS_OPTIONS.map((o) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: o.value, children: o.label }, o.value)) }),
307
- ((_a = THREE_DS_OPTIONS.find((o) => o.value === form.threeDS)) == null ? void 0 : _a.hint) ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-ui-fg-subtle", children: (_b = THREE_DS_OPTIONS.find((o) => o.value === form.threeDS)) == null ? void 0 : _b.hint }) : null
308
- ] }) })
290
+ /* @__PURE__ */ jsxRuntime.jsx(FieldRow, { label: "Brand Name", htmlFor: "as-brand-name", children: /* @__PURE__ */ jsxRuntime.jsx("input", { id: "as-brand-name", value: form.brandName, onChange: (e) => setForm((p) => ({ ...p, brandName: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", placeholder: "PayPal" }) }),
291
+ /* @__PURE__ */ jsxRuntime.jsx(FieldRow, { label: "Landing Page", htmlFor: "as-landing-page", children: /* @__PURE__ */ jsxRuntime.jsxs("select", { id: "as-landing-page", value: form.landingPage, onChange: (e) => setForm((p) => ({ ...p, landingPage: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", children: [
292
+ /* @__PURE__ */ jsxRuntime.jsx("option", { value: "no_preference", children: "No Preference" }),
293
+ /* @__PURE__ */ jsxRuntime.jsx("option", { value: "login", children: "Login" }),
294
+ /* @__PURE__ */ jsxRuntime.jsx("option", { value: "billing", children: "Billing" })
295
+ ] }) }),
296
+ /* @__PURE__ */ jsxRuntime.jsx(FieldRow, { label: "Instant Payments", children: /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "inline-flex items-center gap-2", children: [
297
+ /* @__PURE__ */ jsxRuntime.jsx("input", { type: "checkbox", checked: form.requireInstantPayment, onChange: (e) => setForm((p) => ({ ...p, requireInstantPayment: e.target.checked })), className: "h-4 w-4 rounded border-ui-border-base" }),
298
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-ui-fg-base", children: "Require Instant Payment" })
299
+ ] }) }),
300
+ /* @__PURE__ */ jsxRuntime.jsx(FieldRow, { label: "Send Item Details", hint: "Include all line item details in the payment request to PayPal so that they can be seen from the PayPal transaction details page.", children: /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "inline-flex items-center gap-2", children: [
301
+ /* @__PURE__ */ jsxRuntime.jsx("input", { type: "checkbox", checked: form.sendItemDetails, onChange: (e) => setForm((p) => ({ ...p, sendItemDetails: e.target.checked })), className: "h-4 w-4 rounded border-ui-border-base" }),
302
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-ui-fg-base", children: "Send line item details to PayPal" })
303
+ ] }) }),
304
+ /* @__PURE__ */ jsxRuntime.jsx(FieldRow, { label: "Invoice prefix", htmlFor: "as-invoice-prefix", children: /* @__PURE__ */ jsxRuntime.jsx("input", { id: "as-invoice-prefix", value: form.invoicePrefix, onChange: (e) => setForm((p) => ({ ...p, invoicePrefix: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", placeholder: "PP-" }) }),
305
+ /* @__PURE__ */ jsxRuntime.jsx(FieldRow, { label: "Credit Card Statement Name", htmlFor: "as-cc-statement", children: /* @__PURE__ */ jsxRuntime.jsx("input", { id: "as-cc-statement", value: form.creditCardStatementName, onChange: (e) => setForm((p) => ({ ...p, creditCardStatementName: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", placeholder: "PayPal" }) })
309
306
  ] })
310
307
  }
311
308
  )
312
309
  ] }) });
313
310
  }
311
+ function PayPalApplePayPage() {
312
+ return /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Navigate, { to: "/settings/paypal/connection", replace: true });
313
+ }
314
+ function PayPalGooglePayPage() {
315
+ return /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Navigate, { to: "/settings/paypal/connection", replace: true });
316
+ }
314
317
  const config = adminSdk.defineRouteConfig({
315
318
  label: "PayPal Connection"
316
319
  });
@@ -319,7 +322,7 @@ const PARTNER_JS_URLS = {
319
322
  live: "https://www.paypal.com/webapps/merchantboarding/js/lib/lightbox/partner.js"
320
323
  };
321
324
  const SERVICE_URL = "/admin/paypal/onboarding-link";
322
- const POPUP_NAME = "PPMiniBrowser";
325
+ const POPUP_NAME = "PPFrame";
323
326
  const CACHE_PREFIX = "pp_onboard_cache";
324
327
  const CACHE_EXPIRY = 10 * 60 * 1e3;
325
328
  const ONBOARDING_COMPLETE_ENDPOINT = "/admin/paypal/onboard-complete";
@@ -432,7 +435,6 @@ function PayPalConnectionPage() {
432
435
  const popupRef = react.useRef(null);
433
436
  const popupPollRef = react.useRef(null);
434
437
  const completedRef = react.useRef(false);
435
- const partnerBoundRef = react.useRef(false);
436
438
  const ppBtnMeasureRef = react.useRef(null);
437
439
  const [ppBtnWidth, setPpBtnWidth] = react.useState(null);
438
440
  const canSaveManual = react.useMemo(() => {
@@ -611,7 +613,6 @@ function PayPalConnectionPage() {
611
613
  if (target == null ? void 0 : target.init) {
612
614
  try {
613
615
  target.init();
614
- partnerBoundRef.current = true;
615
616
  } catch (e) {
616
617
  console.error("[paypal] partner.js init failed:", e);
617
618
  }
@@ -620,7 +621,6 @@ function PayPalConnectionPage() {
620
621
  if (typeof (signup == null ? void 0 : signup.render) === "function") {
621
622
  try {
622
623
  signup.render();
623
- partnerBoundRef.current = true;
624
624
  } catch (e) {
625
625
  console.error("[paypal] partner.js render failed:", e);
626
626
  }
@@ -635,7 +635,6 @@ function PayPalConnectionPage() {
635
635
  } catch {
636
636
  }
637
637
  };
638
- partnerBoundRef.current = false;
639
638
  const existingScript = document.getElementById("paypal-partner-js");
640
639
  if (existingScript) {
641
640
  (_a = existingScript.parentNode) == null ? void 0 : _a.removeChild(existingScript);
@@ -748,17 +747,25 @@ function PayPalConnectionPage() {
748
747
  else window.removeEventListener("resize", update);
749
748
  };
750
749
  }, [connState, env, finalUrl]);
750
+ react.useEffect(() => {
751
+ const onCaptureClick = (e) => {
752
+ const btn = paypalButtonRef.current;
753
+ if (!btn) return;
754
+ const target = e.target;
755
+ if (!target || !btn.contains(target)) return;
756
+ e.preventDefault();
757
+ if (connStateRef.current !== "ready" || !finalUrlRef.current || inProgressRef.current) {
758
+ return;
759
+ }
760
+ completedRef.current = false;
761
+ const popup = openOnboardingPopup(finalUrlRef.current);
762
+ setPopupBlocked(!popup);
763
+ };
764
+ document.addEventListener("click", onCaptureClick, true);
765
+ return () => document.removeEventListener("click", onCaptureClick, true);
766
+ }, [openOnboardingPopup]);
751
767
  const handleConnectClick = (e) => {
752
768
  e.preventDefault();
753
- if (connStateRef.current !== "ready" || !finalUrlRef.current || inProgressRef.current) {
754
- return;
755
- }
756
- if (partnerBoundRef.current) {
757
- return;
758
- }
759
- completedRef.current = false;
760
- const popup = openOnboardingPopup(finalUrlRef.current);
761
- setPopupBlocked(!popup);
762
769
  };
763
770
  const handleSaveManual = async () => {
764
771
  if (!canSaveManual || onboardingInProgress) return;
@@ -1078,9 +1085,6 @@ function PayPalConnectionPage() {
1078
1085
  ` })
1079
1086
  ] });
1080
1087
  }
1081
- function PayPalGooglePayPage() {
1082
- return /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Navigate, { to: "/settings/paypal/connection", replace: true });
1083
- }
1084
1088
  function PayPalPayLaterMessagingPage() {
1085
1089
  return /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Navigate, { to: "/settings/paypal/connection", replace: true });
1086
1090
  }
@@ -1298,6 +1302,10 @@ const routeModule = {
1298
1302
  Component: PayPalSettingsIndexRoute,
1299
1303
  path: "/settings/paypal"
1300
1304
  },
1305
+ {
1306
+ Component: AdvancedCardPaymentsTab,
1307
+ path: "/settings/paypal/advanced-card-payments"
1308
+ },
1301
1309
  {
1302
1310
  Component: AdditionalSettingsTab,
1303
1311
  path: "/settings/paypal/additional-settings"
@@ -1307,17 +1315,13 @@ const routeModule = {
1307
1315
  path: "/settings/paypal/apple-pay"
1308
1316
  },
1309
1317
  {
1310
- Component: AdvancedCardPaymentsTab,
1311
- path: "/settings/paypal/advanced-card-payments"
1318
+ Component: PayPalGooglePayPage,
1319
+ path: "/settings/paypal/google-pay"
1312
1320
  },
1313
1321
  {
1314
1322
  Component: PayPalConnectionPage,
1315
1323
  path: "/settings/paypal/connection"
1316
1324
  },
1317
- {
1318
- Component: PayPalGooglePayPage,
1319
- path: "/settings/paypal/google-pay"
1320
- },
1321
1325
  {
1322
1326
  Component: PayPalPayLaterMessagingPage,
1323
1327
  path: "/settings/paypal/pay-later-messaging"
@@ -133,20 +133,22 @@ async function adminFetch(path, opts = {}) {
133
133
  }
134
134
  }
135
135
  const DEFAULT_FORM$1 = {
136
- paymentAction: "capture",
137
- brandName: "PayPal",
138
- landingPage: "no_preference",
139
- requireInstantPayment: false,
140
- sendItemDetails: true,
141
- invoicePrefix: "PP-",
142
- creditCardStatementName: "PayPal"
136
+ enabled: true,
137
+ title: "Credit or Debit Card",
138
+ threeDS: "when_required"
143
139
  };
144
140
  function mergeWithDefaults$1(saved) {
145
141
  if (!saved) return { ...DEFAULT_FORM$1 };
146
142
  const entries = Object.entries(saved).filter(([, value]) => value !== void 0);
147
143
  return { ...DEFAULT_FORM$1, ...Object.fromEntries(entries) };
148
144
  }
149
- function AdditionalSettingsTab() {
145
+ const THREE_DS_OPTIONS = [
146
+ { value: "when_required", label: "3D Secure when required", hint: "Triggers 3DS only when the card / issuer requires it." },
147
+ { value: "sli", label: "3D Secure (SCA) / liability shift (recommended)", hint: "Attempts to optimize for liability shift while remaining compliant." },
148
+ { value: "always", label: "Always request 3D Secure", hint: "Forces 3DS challenge whenever possible (may reduce conversion)." }
149
+ ];
150
+ function AdvancedCardPaymentsTab() {
151
+ var _a, _b;
150
152
  const [form, setForm] = useState(() => ({ ...DEFAULT_FORM$1 }));
151
153
  const [loading, setLoading] = useState(false);
152
154
  const [saving, setSaving] = useState(false);
@@ -161,7 +163,7 @@ function AdditionalSettingsTab() {
161
163
  setLoading(true);
162
164
  const json = await adminFetch("/admin/paypal/settings");
163
165
  const payload = (json == null ? void 0 : json.data) ?? json;
164
- const saved = payload == null ? void 0 : payload.additional_settings;
166
+ const saved = payload == null ? void 0 : payload.advanced_card_payments;
165
167
  if (saved && typeof saved === "object") setForm(mergeWithDefaults$1(saved));
166
168
  } catch {
167
169
  } finally {
@@ -172,14 +174,16 @@ function AdditionalSettingsTab() {
172
174
  async function onSave() {
173
175
  try {
174
176
  setSaving(true);
175
- setToast(null);
176
- const json = await adminFetch("/admin/paypal/settings", { method: "POST", body: { additional_settings: form } });
177
+ const json = await adminFetch("/admin/paypal/settings", {
178
+ method: "POST",
179
+ body: { advanced_card_payments: form }
180
+ });
177
181
  const payload = (json == null ? void 0 : json.data) ?? json;
178
- const saved = payload == null ? void 0 : payload.additional_settings;
182
+ const saved = payload == null ? void 0 : payload.advanced_card_payments;
179
183
  if (saved && typeof saved === "object") setForm(mergeWithDefaults$1(saved));
180
184
  setToast({ kind: "success", message: "Settings saved" });
181
185
  } catch (e) {
182
- setToast({ kind: "error", message: e instanceof Error ? e.message : "Failed to save settings" });
186
+ setToast({ kind: "error", message: (e instanceof Error ? e.message : "") || "Failed to save settings." });
183
187
  } finally {
184
188
  setSaving(false);
185
189
  }
@@ -191,58 +195,42 @@ function AdditionalSettingsTab() {
191
195
  /* @__PURE__ */ jsx(
192
196
  SectionCard,
193
197
  {
194
- title: "Additional Settings",
195
- description: "These settings control checkout behavior and PayPal experience.",
198
+ title: "Advanced Card Payments",
199
+ description: "Control card checkout settings and 3D Secure behavior.",
196
200
  right: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
197
201
  /* @__PURE__ */ jsx("button", { type: "button", onClick: onSave, disabled: saving || loading, className: "transition-fg relative inline-flex w-fit items-center justify-center overflow-hidden rounded-md outline-none shadow-buttons-neutral text-ui-fg-base bg-ui-button-neutral after:transition-fg after:absolute after:inset-0 after:content-[''] after:button-neutral-gradient hover:bg-ui-button-neutral-hover hover:after:button-neutral-hover-gradient active:bg-ui-button-neutral-pressed active:after:button-neutral-pressed-gradient focus-visible:shadow-buttons-neutral-focus disabled:bg-ui-bg-disabled disabled:border-ui-border-base disabled:text-ui-fg-disabled disabled:shadow-buttons-neutral disabled:after:hidden txt-compact-small-plus px-3 py-1.5", children: saving ? "Saving..." : "Save settings" }),
198
202
  loading ? /* @__PURE__ */ jsx("span", { className: "text-sm text-ui-fg-subtle", children: "Loading…" }) : null
199
203
  ] }),
200
204
  children: /* @__PURE__ */ jsxs("div", { className: "divide-y divide-ui-border-base", children: [
201
- /* @__PURE__ */ jsx(FieldRow, { label: "Payment action", htmlFor: "as-payment-action", children: /* @__PURE__ */ jsxs("select", { id: "as-payment-action", value: form.paymentAction, onChange: (e) => setForm((p) => ({ ...p, paymentAction: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", children: [
202
- /* @__PURE__ */ jsx("option", { value: "capture", children: "Capture" }),
203
- /* @__PURE__ */ jsx("option", { value: "authorize", children: "Authorize" })
204
- ] }) }),
205
- /* @__PURE__ */ jsx(FieldRow, { label: "Brand Name", htmlFor: "as-brand-name", children: /* @__PURE__ */ jsx("input", { id: "as-brand-name", value: form.brandName, onChange: (e) => setForm((p) => ({ ...p, brandName: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", placeholder: "PayPal" }) }),
206
- /* @__PURE__ */ jsx(FieldRow, { label: "Landing Page", htmlFor: "as-landing-page", children: /* @__PURE__ */ jsxs("select", { id: "as-landing-page", value: form.landingPage, onChange: (e) => setForm((p) => ({ ...p, landingPage: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", children: [
207
- /* @__PURE__ */ jsx("option", { value: "no_preference", children: "No Preference" }),
208
- /* @__PURE__ */ jsx("option", { value: "login", children: "Login" }),
209
- /* @__PURE__ */ jsx("option", { value: "billing", children: "Billing" })
210
- ] }) }),
211
- /* @__PURE__ */ jsx(FieldRow, { label: "Instant Payments", children: /* @__PURE__ */ jsxs("label", { className: "inline-flex items-center gap-2", children: [
212
- /* @__PURE__ */ jsx("input", { type: "checkbox", checked: form.requireInstantPayment, onChange: (e) => setForm((p) => ({ ...p, requireInstantPayment: e.target.checked })), className: "h-4 w-4 rounded border-ui-border-base" }),
213
- /* @__PURE__ */ jsx("span", { className: "text-sm text-ui-fg-base", children: "Require Instant Payment" })
214
- ] }) }),
215
- /* @__PURE__ */ jsx(FieldRow, { label: "Send Item Details", hint: "Include all line item details in the payment request to PayPal so that they can be seen from the PayPal transaction details page.", children: /* @__PURE__ */ jsxs("label", { className: "inline-flex items-center gap-2", children: [
216
- /* @__PURE__ */ jsx("input", { type: "checkbox", checked: form.sendItemDetails, onChange: (e) => setForm((p) => ({ ...p, sendItemDetails: e.target.checked })), className: "h-4 w-4 rounded border-ui-border-base" }),
217
- /* @__PURE__ */ jsx("span", { className: "text-sm text-ui-fg-base", children: "Send line item details to PayPal" })
205
+ /* @__PURE__ */ jsx(FieldRow, { label: "Enable/Disable", children: /* @__PURE__ */ jsxs("label", { className: "inline-flex items-center gap-2", children: [
206
+ /* @__PURE__ */ jsx("input", { type: "checkbox", checked: form.enabled, onChange: (e) => setForm((p) => ({ ...p, enabled: e.target.checked })), className: "h-4 w-4 rounded border-ui-border-base" }),
207
+ /* @__PURE__ */ jsx("span", { className: "text-sm text-ui-fg-base", children: "Enable Advanced Credit/Debit Card" })
218
208
  ] }) }),
219
- /* @__PURE__ */ jsx(FieldRow, { label: "Invoice prefix", htmlFor: "as-invoice-prefix", children: /* @__PURE__ */ jsx("input", { id: "as-invoice-prefix", value: form.invoicePrefix, onChange: (e) => setForm((p) => ({ ...p, invoicePrefix: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", placeholder: "PP-" }) }),
220
- /* @__PURE__ */ jsx(FieldRow, { label: "Credit Card Statement Name", htmlFor: "as-cc-statement", children: /* @__PURE__ */ jsx("input", { id: "as-cc-statement", value: form.creditCardStatementName, onChange: (e) => setForm((p) => ({ ...p, creditCardStatementName: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", placeholder: "PayPal" }) })
209
+ /* @__PURE__ */ jsx(FieldRow, { label: "Title", htmlFor: "acp-title", children: /* @__PURE__ */ jsx("input", { id: "acp-title", value: form.title, onChange: (e) => setForm((p) => ({ ...p, title: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", placeholder: "Credit or Debit Card" }) }),
210
+ /* @__PURE__ */ jsx(FieldRow, { label: "Contingency for 3D Secure", hint: "Choose when 3D Secure should be triggered during card payments.", htmlFor: "acp-threeds", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
211
+ /* @__PURE__ */ jsx("select", { id: "acp-threeds", value: form.threeDS, onChange: (e) => setForm((p) => ({ ...p, threeDS: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", children: THREE_DS_OPTIONS.map((o) => /* @__PURE__ */ jsx("option", { value: o.value, children: o.label }, o.value)) }),
212
+ ((_a = THREE_DS_OPTIONS.find((o) => o.value === form.threeDS)) == null ? void 0 : _a.hint) ? /* @__PURE__ */ jsx("div", { className: "text-xs text-ui-fg-subtle", children: (_b = THREE_DS_OPTIONS.find((o) => o.value === form.threeDS)) == null ? void 0 : _b.hint }) : null
213
+ ] }) })
221
214
  ] })
222
215
  }
223
216
  )
224
217
  ] }) });
225
218
  }
226
- function PayPalApplePayPage() {
227
- return /* @__PURE__ */ jsx(Navigate, { to: "/settings/paypal/connection", replace: true });
228
- }
229
219
  const DEFAULT_FORM = {
230
- enabled: true,
231
- title: "Credit or Debit Card",
232
- threeDS: "when_required"
220
+ paymentAction: "capture",
221
+ brandName: "PayPal",
222
+ landingPage: "no_preference",
223
+ requireInstantPayment: false,
224
+ sendItemDetails: true,
225
+ invoicePrefix: "PP-",
226
+ creditCardStatementName: "PayPal"
233
227
  };
234
228
  function mergeWithDefaults(saved) {
235
229
  if (!saved) return { ...DEFAULT_FORM };
236
230
  const entries = Object.entries(saved).filter(([, value]) => value !== void 0);
237
231
  return { ...DEFAULT_FORM, ...Object.fromEntries(entries) };
238
232
  }
239
- const THREE_DS_OPTIONS = [
240
- { value: "when_required", label: "3D Secure when required", hint: "Triggers 3DS only when the card / issuer requires it." },
241
- { value: "sli", label: "3D Secure (SCA) / liability shift (recommended)", hint: "Attempts to optimize for liability shift while remaining compliant." },
242
- { value: "always", label: "Always request 3D Secure", hint: "Forces 3DS challenge whenever possible (may reduce conversion)." }
243
- ];
244
- function AdvancedCardPaymentsTab() {
245
- var _a, _b;
233
+ function AdditionalSettingsTab() {
246
234
  const [form, setForm] = useState(() => ({ ...DEFAULT_FORM }));
247
235
  const [loading, setLoading] = useState(false);
248
236
  const [saving, setSaving] = useState(false);
@@ -257,7 +245,7 @@ function AdvancedCardPaymentsTab() {
257
245
  setLoading(true);
258
246
  const json = await adminFetch("/admin/paypal/settings");
259
247
  const payload = (json == null ? void 0 : json.data) ?? json;
260
- const saved = payload == null ? void 0 : payload.advanced_card_payments;
248
+ const saved = payload == null ? void 0 : payload.additional_settings;
261
249
  if (saved && typeof saved === "object") setForm(mergeWithDefaults(saved));
262
250
  } catch {
263
251
  } finally {
@@ -268,16 +256,14 @@ function AdvancedCardPaymentsTab() {
268
256
  async function onSave() {
269
257
  try {
270
258
  setSaving(true);
271
- const json = await adminFetch("/admin/paypal/settings", {
272
- method: "POST",
273
- body: { advanced_card_payments: form }
274
- });
259
+ setToast(null);
260
+ const json = await adminFetch("/admin/paypal/settings", { method: "POST", body: { additional_settings: form } });
275
261
  const payload = (json == null ? void 0 : json.data) ?? json;
276
- const saved = payload == null ? void 0 : payload.advanced_card_payments;
262
+ const saved = payload == null ? void 0 : payload.additional_settings;
277
263
  if (saved && typeof saved === "object") setForm(mergeWithDefaults(saved));
278
264
  setToast({ kind: "success", message: "Settings saved" });
279
265
  } catch (e) {
280
- setToast({ kind: "error", message: (e instanceof Error ? e.message : "") || "Failed to save settings." });
266
+ setToast({ kind: "error", message: e instanceof Error ? e.message : "Failed to save settings" });
281
267
  } finally {
282
268
  setSaving(false);
283
269
  }
@@ -289,27 +275,44 @@ function AdvancedCardPaymentsTab() {
289
275
  /* @__PURE__ */ jsx(
290
276
  SectionCard,
291
277
  {
292
- title: "Advanced Card Payments",
293
- description: "Control card checkout settings and 3D Secure behavior.",
278
+ title: "Additional Settings",
279
+ description: "These settings control checkout behavior and PayPal experience.",
294
280
  right: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
295
281
  /* @__PURE__ */ jsx("button", { type: "button", onClick: onSave, disabled: saving || loading, className: "transition-fg relative inline-flex w-fit items-center justify-center overflow-hidden rounded-md outline-none shadow-buttons-neutral text-ui-fg-base bg-ui-button-neutral after:transition-fg after:absolute after:inset-0 after:content-[''] after:button-neutral-gradient hover:bg-ui-button-neutral-hover hover:after:button-neutral-hover-gradient active:bg-ui-button-neutral-pressed active:after:button-neutral-pressed-gradient focus-visible:shadow-buttons-neutral-focus disabled:bg-ui-bg-disabled disabled:border-ui-border-base disabled:text-ui-fg-disabled disabled:shadow-buttons-neutral disabled:after:hidden txt-compact-small-plus px-3 py-1.5", children: saving ? "Saving..." : "Save settings" }),
296
282
  loading ? /* @__PURE__ */ jsx("span", { className: "text-sm text-ui-fg-subtle", children: "Loading…" }) : null
297
283
  ] }),
298
284
  children: /* @__PURE__ */ jsxs("div", { className: "divide-y divide-ui-border-base", children: [
299
- /* @__PURE__ */ jsx(FieldRow, { label: "Enable/Disable", children: /* @__PURE__ */ jsxs("label", { className: "inline-flex items-center gap-2", children: [
300
- /* @__PURE__ */ jsx("input", { type: "checkbox", checked: form.enabled, onChange: (e) => setForm((p) => ({ ...p, enabled: e.target.checked })), className: "h-4 w-4 rounded border-ui-border-base" }),
301
- /* @__PURE__ */ jsx("span", { className: "text-sm text-ui-fg-base", children: "Enable Advanced Credit/Debit Card" })
285
+ /* @__PURE__ */ jsx(FieldRow, { label: "Payment action", htmlFor: "as-payment-action", children: /* @__PURE__ */ jsxs("select", { id: "as-payment-action", value: form.paymentAction, onChange: (e) => setForm((p) => ({ ...p, paymentAction: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", children: [
286
+ /* @__PURE__ */ jsx("option", { value: "capture", children: "Capture" }),
287
+ /* @__PURE__ */ jsx("option", { value: "authorize", children: "Authorize" })
302
288
  ] }) }),
303
- /* @__PURE__ */ jsx(FieldRow, { label: "Title", htmlFor: "acp-title", children: /* @__PURE__ */ jsx("input", { id: "acp-title", value: form.title, onChange: (e) => setForm((p) => ({ ...p, title: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", placeholder: "Credit or Debit Card" }) }),
304
- /* @__PURE__ */ jsx(FieldRow, { label: "Contingency for 3D Secure", hint: "Choose when 3D Secure should be triggered during card payments.", htmlFor: "acp-threeds", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
305
- /* @__PURE__ */ jsx("select", { id: "acp-threeds", value: form.threeDS, onChange: (e) => setForm((p) => ({ ...p, threeDS: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", children: THREE_DS_OPTIONS.map((o) => /* @__PURE__ */ jsx("option", { value: o.value, children: o.label }, o.value)) }),
306
- ((_a = THREE_DS_OPTIONS.find((o) => o.value === form.threeDS)) == null ? void 0 : _a.hint) ? /* @__PURE__ */ jsx("div", { className: "text-xs text-ui-fg-subtle", children: (_b = THREE_DS_OPTIONS.find((o) => o.value === form.threeDS)) == null ? void 0 : _b.hint }) : null
307
- ] }) })
289
+ /* @__PURE__ */ jsx(FieldRow, { label: "Brand Name", htmlFor: "as-brand-name", children: /* @__PURE__ */ jsx("input", { id: "as-brand-name", value: form.brandName, onChange: (e) => setForm((p) => ({ ...p, brandName: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", placeholder: "PayPal" }) }),
290
+ /* @__PURE__ */ jsx(FieldRow, { label: "Landing Page", htmlFor: "as-landing-page", children: /* @__PURE__ */ jsxs("select", { id: "as-landing-page", value: form.landingPage, onChange: (e) => setForm((p) => ({ ...p, landingPage: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", children: [
291
+ /* @__PURE__ */ jsx("option", { value: "no_preference", children: "No Preference" }),
292
+ /* @__PURE__ */ jsx("option", { value: "login", children: "Login" }),
293
+ /* @__PURE__ */ jsx("option", { value: "billing", children: "Billing" })
294
+ ] }) }),
295
+ /* @__PURE__ */ jsx(FieldRow, { label: "Instant Payments", children: /* @__PURE__ */ jsxs("label", { className: "inline-flex items-center gap-2", children: [
296
+ /* @__PURE__ */ jsx("input", { type: "checkbox", checked: form.requireInstantPayment, onChange: (e) => setForm((p) => ({ ...p, requireInstantPayment: e.target.checked })), className: "h-4 w-4 rounded border-ui-border-base" }),
297
+ /* @__PURE__ */ jsx("span", { className: "text-sm text-ui-fg-base", children: "Require Instant Payment" })
298
+ ] }) }),
299
+ /* @__PURE__ */ jsx(FieldRow, { label: "Send Item Details", hint: "Include all line item details in the payment request to PayPal so that they can be seen from the PayPal transaction details page.", children: /* @__PURE__ */ jsxs("label", { className: "inline-flex items-center gap-2", children: [
300
+ /* @__PURE__ */ jsx("input", { type: "checkbox", checked: form.sendItemDetails, onChange: (e) => setForm((p) => ({ ...p, sendItemDetails: e.target.checked })), className: "h-4 w-4 rounded border-ui-border-base" }),
301
+ /* @__PURE__ */ jsx("span", { className: "text-sm text-ui-fg-base", children: "Send line item details to PayPal" })
302
+ ] }) }),
303
+ /* @__PURE__ */ jsx(FieldRow, { label: "Invoice prefix", htmlFor: "as-invoice-prefix", children: /* @__PURE__ */ jsx("input", { id: "as-invoice-prefix", value: form.invoicePrefix, onChange: (e) => setForm((p) => ({ ...p, invoicePrefix: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", placeholder: "PP-" }) }),
304
+ /* @__PURE__ */ jsx(FieldRow, { label: "Credit Card Statement Name", htmlFor: "as-cc-statement", children: /* @__PURE__ */ jsx("input", { id: "as-cc-statement", value: form.creditCardStatementName, onChange: (e) => setForm((p) => ({ ...p, creditCardStatementName: e.target.value })), className: "w-full rounded-md border border-ui-border-base bg-ui-bg-base px-3 py-2 text-sm text-ui-fg-base outline-none focus:ring-2 focus:ring-ui-border-interactive", placeholder: "PayPal" }) })
308
305
  ] })
309
306
  }
310
307
  )
311
308
  ] }) });
312
309
  }
310
+ function PayPalApplePayPage() {
311
+ return /* @__PURE__ */ jsx(Navigate, { to: "/settings/paypal/connection", replace: true });
312
+ }
313
+ function PayPalGooglePayPage() {
314
+ return /* @__PURE__ */ jsx(Navigate, { to: "/settings/paypal/connection", replace: true });
315
+ }
313
316
  const config = defineRouteConfig({
314
317
  label: "PayPal Connection"
315
318
  });
@@ -318,7 +321,7 @@ const PARTNER_JS_URLS = {
318
321
  live: "https://www.paypal.com/webapps/merchantboarding/js/lib/lightbox/partner.js"
319
322
  };
320
323
  const SERVICE_URL = "/admin/paypal/onboarding-link";
321
- const POPUP_NAME = "PPMiniBrowser";
324
+ const POPUP_NAME = "PPFrame";
322
325
  const CACHE_PREFIX = "pp_onboard_cache";
323
326
  const CACHE_EXPIRY = 10 * 60 * 1e3;
324
327
  const ONBOARDING_COMPLETE_ENDPOINT = "/admin/paypal/onboard-complete";
@@ -431,7 +434,6 @@ function PayPalConnectionPage() {
431
434
  const popupRef = useRef(null);
432
435
  const popupPollRef = useRef(null);
433
436
  const completedRef = useRef(false);
434
- const partnerBoundRef = useRef(false);
435
437
  const ppBtnMeasureRef = useRef(null);
436
438
  const [ppBtnWidth, setPpBtnWidth] = useState(null);
437
439
  const canSaveManual = useMemo(() => {
@@ -610,7 +612,6 @@ function PayPalConnectionPage() {
610
612
  if (target == null ? void 0 : target.init) {
611
613
  try {
612
614
  target.init();
613
- partnerBoundRef.current = true;
614
615
  } catch (e) {
615
616
  console.error("[paypal] partner.js init failed:", e);
616
617
  }
@@ -619,7 +620,6 @@ function PayPalConnectionPage() {
619
620
  if (typeof (signup == null ? void 0 : signup.render) === "function") {
620
621
  try {
621
622
  signup.render();
622
- partnerBoundRef.current = true;
623
623
  } catch (e) {
624
624
  console.error("[paypal] partner.js render failed:", e);
625
625
  }
@@ -634,7 +634,6 @@ function PayPalConnectionPage() {
634
634
  } catch {
635
635
  }
636
636
  };
637
- partnerBoundRef.current = false;
638
637
  const existingScript = document.getElementById("paypal-partner-js");
639
638
  if (existingScript) {
640
639
  (_a = existingScript.parentNode) == null ? void 0 : _a.removeChild(existingScript);
@@ -747,17 +746,25 @@ function PayPalConnectionPage() {
747
746
  else window.removeEventListener("resize", update);
748
747
  };
749
748
  }, [connState, env, finalUrl]);
749
+ useEffect(() => {
750
+ const onCaptureClick = (e) => {
751
+ const btn = paypalButtonRef.current;
752
+ if (!btn) return;
753
+ const target = e.target;
754
+ if (!target || !btn.contains(target)) return;
755
+ e.preventDefault();
756
+ if (connStateRef.current !== "ready" || !finalUrlRef.current || inProgressRef.current) {
757
+ return;
758
+ }
759
+ completedRef.current = false;
760
+ const popup = openOnboardingPopup(finalUrlRef.current);
761
+ setPopupBlocked(!popup);
762
+ };
763
+ document.addEventListener("click", onCaptureClick, true);
764
+ return () => document.removeEventListener("click", onCaptureClick, true);
765
+ }, [openOnboardingPopup]);
750
766
  const handleConnectClick = (e) => {
751
767
  e.preventDefault();
752
- if (connStateRef.current !== "ready" || !finalUrlRef.current || inProgressRef.current) {
753
- return;
754
- }
755
- if (partnerBoundRef.current) {
756
- return;
757
- }
758
- completedRef.current = false;
759
- const popup = openOnboardingPopup(finalUrlRef.current);
760
- setPopupBlocked(!popup);
761
768
  };
762
769
  const handleSaveManual = async () => {
763
770
  if (!canSaveManual || onboardingInProgress) return;
@@ -1077,9 +1084,6 @@ function PayPalConnectionPage() {
1077
1084
  ` })
1078
1085
  ] });
1079
1086
  }
1080
- function PayPalGooglePayPage() {
1081
- return /* @__PURE__ */ jsx(Navigate, { to: "/settings/paypal/connection", replace: true });
1082
- }
1083
1087
  function PayPalPayLaterMessagingPage() {
1084
1088
  return /* @__PURE__ */ jsx(Navigate, { to: "/settings/paypal/connection", replace: true });
1085
1089
  }
@@ -1297,6 +1301,10 @@ const routeModule = {
1297
1301
  Component: PayPalSettingsIndexRoute,
1298
1302
  path: "/settings/paypal"
1299
1303
  },
1304
+ {
1305
+ Component: AdvancedCardPaymentsTab,
1306
+ path: "/settings/paypal/advanced-card-payments"
1307
+ },
1300
1308
  {
1301
1309
  Component: AdditionalSettingsTab,
1302
1310
  path: "/settings/paypal/additional-settings"
@@ -1306,17 +1314,13 @@ const routeModule = {
1306
1314
  path: "/settings/paypal/apple-pay"
1307
1315
  },
1308
1316
  {
1309
- Component: AdvancedCardPaymentsTab,
1310
- path: "/settings/paypal/advanced-card-payments"
1317
+ Component: PayPalGooglePayPage,
1318
+ path: "/settings/paypal/google-pay"
1311
1319
  },
1312
1320
  {
1313
1321
  Component: PayPalConnectionPage,
1314
1322
  path: "/settings/paypal/connection"
1315
1323
  },
1316
- {
1317
- Component: PayPalGooglePayPage,
1318
- path: "/settings/paypal/google-pay"
1319
- },
1320
1324
  {
1321
1325
  Component: PayPalPayLaterMessagingPage,
1322
1326
  path: "/settings/paypal/pay-later-messaging"
@@ -1 +1 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../../../../src/admin/routes/settings/paypal/connection/page.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,MAAM,2CAEjB,CAAA;AAQF,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,MAAM,CAAC,EAAE;YACP,IAAI,CAAC,EAAE;gBACL,MAAM,CAAC,EAAE;oBACP,WAAW,CAAC,EAAE;wBAAE,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;wBAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;qBAAE,CAAA;oBAC3D,WAAW,CAAC,EAAE;wBAAE,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;wBAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;qBAAE,CAAA;oBAC3D,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;iBACpB,CAAA;aACF,CAAA;SACF,CAAA;QACD,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;KAClE;CACF;AAmID,MAAM,CAAC,OAAO,UAAU,oBAAoB,4CA02B3C"}
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../../../../src/admin/routes/settings/paypal/connection/page.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,MAAM,2CAEjB,CAAA;AAQF,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,MAAM,CAAC,EAAE;YACP,IAAI,CAAC,EAAE;gBACL,MAAM,CAAC,EAAE;oBACP,WAAW,CAAC,EAAE;wBAAE,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;wBAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;qBAAE,CAAA;oBAC3D,WAAW,CAAC,EAAE;wBAAE,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;wBAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;qBAAE,CAAA;oBAC3D,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;iBACpB,CAAA;aACF,CAAA;SACF,CAAA;QACD,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;KAClE;CACF;AAwID,MAAM,CAAC,OAAO,UAAU,oBAAoB,4CA+2B3C"}
@@ -17,11 +17,16 @@ const PARTNER_JS_URLS = {
17
17
  live: "https://www.paypal.com/webapps/merchantboarding/js/lib/lightbox/partner.js",
18
18
  };
19
19
  const SERVICE_URL = "/admin/paypal/onboarding-link";
20
- // The mini-browser popup is opened by us (see openOnboardingPopup). We give it a
21
- // stable window name so that, even if PayPal's partner.js *also* intercepts the
22
- // click, window.open() with the same name re-targets the one window instead of
23
- // spawning a second one.
24
- const POPUP_NAME = "PPMiniBrowser";
20
+ // We open the mini-browser popup ourselves, synchronously inside the click
21
+ // gesture (see openOnboardingPopup) the only reliable way to get a popup
22
+ // rather than a blocked window or a new tab. The window name matches the
23
+ // anchor's `target` and PayPal's conventional "PPFrame": partner.js opens the
24
+ // flow with `window.open(url, target, ...)`, so when it runs right after us it
25
+ // *reuses this already-open window* (a named-window navigation needs no user
26
+ // activation) instead of trying — and failing, asynchronously — to spawn its
27
+ // own. That lets partner.js still wire its completion bridge without ever
28
+ // opening a second/late window.
29
+ const POPUP_NAME = "PPFrame";
25
30
  const CACHE_PREFIX = "pp_onboard_cache";
26
31
  const CACHE_EXPIRY = 10 * 60 * 1000;
27
32
  const ONBOARDING_COMPLETE_ENDPOINT = "/admin/paypal/onboard-complete";
@@ -174,12 +179,6 @@ function PayPalConnectionPage() {
174
179
  // Guards against the two redundant completion paths (our own message listener
175
180
  // and partner.js's onboardingCallback bridge) both POSTing the same result.
176
181
  const completedRef = (0, react_1.useRef)(false);
177
- // True once partner.js has initialized and bound its click interceptor to the
178
- // button. When bound, partner.js opens the mini-browser AND wires its
179
- // postMessage->onboardingCallback bridge (which auto-closes the popup and
180
- // saves credentials), so we must NOT open a second window. Until it is bound
181
- // (cold first click), we open the popup ourselves so the click still works.
182
- const partnerBoundRef = (0, react_1.useRef)(false);
183
182
  const ppBtnMeasureRef = (0, react_1.useRef)(null);
184
183
  const [ppBtnWidth, setPpBtnWidth] = (0, react_1.useState)(null);
185
184
  const canSaveManual = (0, react_1.useMemo)(() => {
@@ -399,11 +398,10 @@ function PayPalConnectionPage() {
399
398
  : null;
400
399
  if (target?.init) {
401
400
  try {
401
+ // Wires partner.js's click interceptor + its postMessage->callback
402
+ // bridge. It will adopt the window we pre-open (same name) rather than
403
+ // open its own.
402
404
  target.init();
403
- // partner.js scans the DOM and binds the button synchronously inside
404
- // init(), so from here a click is intercepted by partner.js (popup +
405
- // callback bridge) and we should not also open our own window.
406
- partnerBoundRef.current = true;
407
405
  }
408
406
  catch (e) {
409
407
  console.error("[paypal] partner.js init failed:", e);
@@ -413,7 +411,6 @@ function PayPalConnectionPage() {
413
411
  if (typeof signup?.render === "function") {
414
412
  try {
415
413
  signup.render();
416
- partnerBoundRef.current = true;
417
414
  }
418
415
  catch (e) {
419
416
  console.error("[paypal] partner.js render failed:", e);
@@ -429,9 +426,6 @@ function PayPalConnectionPage() {
429
426
  }
430
427
  catch { }
431
428
  };
432
- // This load hasn't bound the button yet; until init() runs, a click should
433
- // be handled by us (cold path) rather than assumed to reach partner.js.
434
- partnerBoundRef.current = false;
435
429
  // Remove any stale copy + namespace so the fresh load re-registers against
436
430
  // the current environment (sandbox vs live partner.js differ).
437
431
  const existingScript = document.getElementById("paypal-partner-js");
@@ -565,33 +559,50 @@ function PayPalConnectionPage() {
565
559
  window.removeEventListener("resize", update);
566
560
  };
567
561
  }, [connState, env, finalUrl]);
568
- // Click handling for "Connect to PayPal".
562
+ // Capture-phase click handler the single, reliable opener.
569
563
  //
570
- // We always preventDefault so the native target can never open a new tab.
564
+ // It runs on `document` in the CAPTURE phase, i.e. BEFORE the event reaches
565
+ // the anchor where partner.js binds its own (target-phase) handler. That
566
+ // ordering is the whole point:
567
+ // 1. We synchronously open the mini-browser popup here, inside the user
568
+ // gesture, so the browser always renders a real popup (never a blocked
569
+ // window, never a new tab).
570
+ // 2. We do NOT stop propagation, so partner.js's handler still runs a beat
571
+ // later. Since it opens with the same window name (POPUP_NAME), it adopts
572
+ // the window we just opened instead of asynchronously spawning its own
573
+ // (which the browser was blocking — "multiple popups ... lack of user
574
+ // activation") — and it still wires its postMessage->onboardingCallback
575
+ // bridge that auto-closes the popup and saves credentials.
576
+ // 3. We always preventDefault so the anchor's href can never open a tab.
571
577
  //
572
- // - If partner.js has bound the button, its own click handler already ran (in
573
- // the capture/target phase, before this React bubble handler) and opened the
574
- // mini-browser AND wired its postMessage->onboardingCallback bridge — which
575
- // auto-closes the popup and saves credentials. We must NOT open a second
576
- // window, so we just return.
577
- // - Otherwise (cold first click before partner.js finished initializing) we
578
- // open the popup ourselves so the click still works. Completion is then
579
- // handled by our own postMessage listener, and also by partner.js's bridge
580
- // once it finishes initializing a moment later.
578
+ // Completion is handled by partner.js's bridge AND by our own postMessage
579
+ // listener (see below), funnelling through one idempotent completeOnboarding.
580
+ (0, react_1.useEffect)(() => {
581
+ const onCaptureClick = (e) => {
582
+ const btn = paypalButtonRef.current;
583
+ if (!btn)
584
+ return;
585
+ const target = e.target;
586
+ if (!target || !btn.contains(target))
587
+ return;
588
+ e.preventDefault();
589
+ if (connStateRef.current !== "ready" ||
590
+ !finalUrlRef.current ||
591
+ inProgressRef.current) {
592
+ return;
593
+ }
594
+ completedRef.current = false;
595
+ const popup = openOnboardingPopup(finalUrlRef.current);
596
+ setPopupBlocked(!popup);
597
+ };
598
+ document.addEventListener("click", onCaptureClick, true);
599
+ return () => document.removeEventListener("click", onCaptureClick, true);
600
+ }, [openOnboardingPopup]);
601
+ // Defensive only: the capture-phase listener above already opened the popup
602
+ // and prevented the default. If for some reason it didn't run, make sure the
603
+ // native target still can't open a tab.
581
604
  const handleConnectClick = (e) => {
582
605
  e.preventDefault();
583
- if (connStateRef.current !== "ready" ||
584
- !finalUrlRef.current ||
585
- inProgressRef.current) {
586
- return;
587
- }
588
- if (partnerBoundRef.current) {
589
- // partner.js owns this click (popup + auto-close + callback bridge).
590
- return;
591
- }
592
- completedRef.current = false;
593
- const popup = openOnboardingPopup(finalUrlRef.current);
594
- setPopupBlocked(!popup);
595
606
  };
596
607
  const handleSaveManual = async () => {
597
608
  if (!canSaveManual || onboardingInProgress)
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","sourceRoot":"","sources":["../../../../../../../../src/admin/routes/settings/paypal/connection/page.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../../../../../../../src/admin/routes/settings/paypal/connection/page.tsx"],"names":[],"mappings":";;;;;;AA0KA,uCA+2BC;;AAzhCD,iCAOc;AACd,mDAAuD;AACvD,+DAA4C;AAE/B,QAAA,MAAM,GAAG,IAAA,6BAAiB,EAAC;IACtC,KAAK,EAAE,mBAAmB;CAC3B,CAAC,CAAA;AAGF,MAAM,eAAe,GAAG;IACtB,OAAO,EAAE,oFAAoF;IAC7F,IAAI,EAAE,4EAA4E;CAC1E,CAAA;AAkBV,MAAM,WAAW,GAAG,+BAA+B,CAAA;AACnD,2EAA2E;AAC3E,2EAA2E;AAC3E,yEAAyE;AACzE,8EAA8E;AAC9E,+EAA+E;AAC/E,6EAA6E;AAC7E,6EAA6E;AAC7E,0EAA0E;AAC1E,gCAAgC;AAChC,MAAM,UAAU,GAAG,SAAS,CAAA;AAC5B,MAAM,YAAY,GAAG,kBAAkB,CAAA;AACvC,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAEnC,MAAM,4BAA4B,GAAG,gCAAgC,CAAA;AACrE,MAAM,eAAe,GAAG,sBAAsB,CAAA;AAC9C,MAAM,yBAAyB,GAAG,gCAAgC,CAAA;AAClE,MAAM,mBAAmB,GAAG,0BAA0B,CAAA;AACtD,MAAM,oBAAoB,GAAG,2BAA2B,CAAA;AAIxD,iFAAiF;AACjF,gFAAgF;AAChF,iDAAiD;AACjD,MAAM,WAAW,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,YAAY,IAAI,GAAG,EAAE,CAAA;AAE1D,SAAS,aAAa,CAAC,GAAQ;IAC7B,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,IAAI,CAAA;IAC9C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;QAClD,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC5B,IACE,IAAI;YACJ,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ;YAC5B,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,YAAY,EAClD,CAAC;YACD,OAAO,IAAI,CAAC,GAAG,CAAA;QACjB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,4BAA4B;IAC9B,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,cAAc,CAAC,GAAQ,EAAE,GAAW;IAC3C,IAAI,CAAC;QACH,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;IACjF,CAAC;IAAC,MAAM,CAAC;QACP,qCAAqC;IACvC,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,GAAS;IAC/B,IAAI,CAAC;QACH,IAAI,GAAG,EAAE,CAAC;YACR,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;QAC3C,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAA;YAC/C,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,2EAA2E;AAC3E,8BAA8B;AAC9B,SAAS,cAAc,CAAC,MAAc;IACpC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;QACnD,OAAO,CACL,IAAI,KAAK,gBAAgB;YACzB,IAAI,KAAK,wBAAwB;YACjC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CACpC,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,8EAA8E;AAC9E,gFAAgF;AAChF,6EAA6E;AAC7E,SAAS,WAAW,CAAC,IAAa;IAChC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IAEpB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAA2B,CAAA;QACvC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,CAAA;QAC9D,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,CAAA;QAC9D,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;YACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;QACnE,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YACnE,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;gBACnC,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ;oBAAE,OAAO,KAAK,CAAA;YACpD,CAAC;QACH,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACrB,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,CAAA;QACjB,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACnC,CAAC;YAAC,MAAM,CAAC;gBACP,cAAc;YAChB,CAAC;QACH,CAAC;QACD,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;gBACtD,MAAM,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,SAAS,CAAA;gBACvE,MAAM,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,SAAS,CAAA;gBACvE,IAAI,QAAQ,IAAI,QAAQ;oBAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA;YACzD,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAA;AACX,CAAC;AAGD,SAAwB,oBAAoB;IAC1C,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAA,gBAAQ,EAAM,MAAM,CAAC,CAAA;IAC3C,oEAAoE;IACpE,6EAA6E;IAC7E,kEAAkE;IAClE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAE/C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAExC,SAAS,CAAC,CAAA;IACZ,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAA;IACvD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IACvD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAS,EAAE,CAAC,CAAA;IACpD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IACnD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAA;IAC5C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAA;IACxC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAIlC,IAAI,CAAC,CAAA;IAEf,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAEvE,MAAM,aAAa,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAA;IAClD,MAAM,eAAe,GAAG,IAAA,cAAM,EAA2B,IAAI,CAAC,CAAA;IAC9D,MAAM,WAAW,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAA;IAChD,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAC,CAAC,CAAC,CAAA;IAC1B,MAAM,YAAY,GAAG,IAAA,cAAM,EAAC,CAAC,CAAC,CAAA;IAE9B,6EAA6E;IAC7E,sEAAsE;IACtE,MAAM,WAAW,GAAG,IAAA,cAAM,EAAC,QAAQ,CAAC,CAAA;IACpC,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAA;IAC9B,MAAM,YAAY,GAAG,IAAA,cAAM,EAAC,SAAS,CAAC,CAAA;IACtC,YAAY,CAAC,OAAO,GAAG,SAAS,CAAA;IAChC,MAAM,aAAa,GAAG,IAAA,cAAM,EAAC,oBAAoB,CAAC,CAAA;IAClD,aAAa,CAAC,OAAO,GAAG,oBAAoB,CAAA;IAC5C,MAAM,MAAM,GAAG,IAAA,cAAM,EAAM,GAAG,CAAC,CAAA;IAC/B,MAAM,CAAC,OAAO,GAAG,GAAG,CAAA;IAEpB,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAgB,IAAI,CAAC,CAAA;IAC5C,MAAM,YAAY,GAAG,IAAA,cAAM,EAAwC,IAAI,CAAC,CAAA;IACxE,8EAA8E;IAC9E,4EAA4E;IAC5E,MAAM,YAAY,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAA;IAElC,MAAM,eAAe,GAAG,IAAA,cAAM,EAA2B,IAAI,CAAC,CAAA;IAC9D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAA;IAEjE,MAAM,aAAa,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACjC,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;IAC/D,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;IAEtB,MAAM,SAAS,GAAG,IAAA,mBAAW,EAAC,CAAC,GAAW,EAAE,EAAE;QAC5C,YAAY,CAAC,OAAO,CAAC,CAAA;QACrB,QAAQ,CAAC,GAAG,CAAC,CAAA;IACf,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,aAAa,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACrC,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACzB,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;YACnC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAA;QAC7B,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,0EAA0E;IAC1E,8EAA8E;IAC9E,8EAA8E;IAC9E,4EAA4E;IAC5E,4EAA4E;IAC5E,gDAAgD;IAChD,MAAM,mBAAmB,GAAG,IAAA,mBAAW,EACrC,CAAC,GAAW,EAAiB,EAAE;QAC7B,MAAM,CAAC,GAAG,GAAG,CAAA;QACb,MAAM,CAAC,GAAG,GAAG,CAAA;QACb,MAAM,QAAQ,GACZ,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,MAAc,CAAC,UAAU,IAAI,CAAC,CAAA;QACvF,MAAM,OAAO,GACX,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,MAAc,CAAC,SAAS,IAAI,CAAC,CAAA;QACtF,MAAM,MAAM,GACV,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC,eAAe,CAAC,WAAW,IAAI,IAAI,CAAA;QACnE,MAAM,MAAM,GACV,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,YAAY,IAAI,GAAG,CAAA;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACjE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC/D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,WAAW,CAAC,SAAS,IAAI,QAAQ,GAAG,+BAA+B,CAAA;QAExG,IAAI,KAAK,GAAkB,IAAI,CAAA;QAC/B,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,GAAG,IAAI,CAAA;QACd,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAA;YACxB,IAAI,CAAC;gBACH,KAAK,CAAC,KAAK,EAAE,CAAA;YACf,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;YACD,aAAa,EAAE,CAAA;YACf,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE;gBACtC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oBACjD,aAAa,EAAE,CAAA;gBACjB,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAA;QACV,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC,EACD,CAAC,aAAa,CAAC,CAChB,CAAA;IAED,2EAA2E;IAC3E,iFAAiF;IACjF,mEAAmE;IACnE,MAAM,kBAAkB,GAAG,IAAA,mBAAW,EACpC,KAAK,EAAE,QAAgB,EAAE,QAAgB,EAAE,EAAE;QAC3C,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ;YAAE,OAAM;QAClC,IAAI,YAAY,CAAC,OAAO;YAAE,OAAM;QAChC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAA;QAE3B,IAAI,CAAC;YACH,MAAM,CAAC,cAAc,GAAG,IAAI,CAAA;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;QAED,MAAM,SAAS,GAAQ,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;QAExE,uBAAuB,CAAC,IAAI,CAAC,CAAA;QAC7B,YAAY,CAAC,SAAS,CAAC,CAAA;QACvB,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,eAAe,CAAC,KAAK,CAAC,CAAA;QAEtB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,4BAA4B,EAAE;gBACpD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;aAC7D,CAAC,CAAA;YAEF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC5C,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,+BAA+B,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;YACtE,CAAC;YAED,+DAA+D;YAC/D,IAAI,CAAC;gBACH,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;YACD,aAAa,EAAE,CAAA;YACf,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,CAAA;gBAClE,IAAI,OAAO,MAAM,KAAK,UAAU;oBAAE,MAAM,EAAE,CAAA;YAC5C,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,MAAM,GACV,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW;oBACvC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAmB,CAAC,SAAS,CAAA;gBAC1D,IAAI,OAAO,MAAM,KAAK,UAAU;oBAAE,MAAM,EAAE,CAAA;YAC5C,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;YAED,cAAc,CAAC,SAAS,CAAC,CAAA;YAEzB,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,KAAK,CAC3B,GAAG,eAAe,gBAAgB,SAAS,EAAE,EAC7C,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,CAC1C,CAAA;gBACD,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBAChE,aAAa,CAAC,eAAe,IAAI,IAAI,CAAC,CAAA;YACxC,CAAC;YAAC,MAAM,CAAC;gBACP,gDAAgD;YAClD,CAAC;YAED,YAAY,CAAC,WAAW,CAAC,CAAA;YACzB,aAAa,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,yCAAyC;YACzC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAA;YAC5B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAChB,YAAY,CAAC,OAAO,CAAC,CAAA;YACrB,QAAQ,CAAC,CAAC,EAAE,OAAO,IAAI,2CAA2C,CAAC,CAAA;QACrE,CAAC;gBAAS,CAAC;YACT,uBAAuB,CAAC,KAAK,CAAC,CAAA;QAChC,CAAC;IACH,CAAC,EACD,CAAC,aAAa,CAAC,CAChB,CAAA;IAED,MAAM,cAAc,GAAG,IAAA,mBAAW,EAChC,CAAC,KAAa,EAAE,SAAc,EAAE,EAAE;QAChC,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;YACtE,IAAI,UAAU;gBACZ,UAAU,CAAC,WAAW,GAAG,kCAAkC,CAAA;QAC/D,CAAC;QAED,KAAK,CAAC,WAAW,EAAE;YACjB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,WAAW,EAAE,SAAS;YACtB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,QAAQ,EAAE,CAAC,MAAM,CAAC;gBAClB,sEAAsE;gBACtE,gEAAgE;gBAChE,WAAW,EAAE,SAAS;aACvB,CAAC;SACH,CAAC;aACC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,IAAI,CAAC,CAAC,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;YAC1D,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;QACjB,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,IAAI,KAAK,KAAK,YAAY,CAAC,OAAO;gBAAE,OAAM;YAE1C,MAAM,IAAI,GAAG,IAAI,EAAE,cAAc,CAAA;YACjC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,SAAS,CAAC,8BAA8B,CAAC,CAAA;gBACzC,OAAM;YACR,CAAC;YAED,MAAM,GAAG,GACP,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,yBAAyB,CAAA;YAErE,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;YAE9B,WAAW,CAAC,GAAG,CAAC,CAAA;YAChB,YAAY,CAAC,OAAO,CAAC,CAAA;QACvB,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,IAAI,KAAK,KAAK,YAAY,CAAC,OAAO;gBAAE,OAAM;YAC1C,SAAS,CAAC,+BAA+B,CAAC,CAAA;QAC5C,CAAC,CAAC,CAAA;IACN,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAA;IAED,uEAAuE;IACvE,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,KAAK,GAAG,IAAI,CAAA;QAChB,KAAK,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;aACnE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACrB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,IAAI,CAAC,KAAK;gBAAE,OAAM;YAClB,MAAM,CAAC,CAAC,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QAC3D,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;aACf,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,KAAK;gBAAE,WAAW,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;QACJ,OAAO,GAAG,EAAE;YACV,KAAK,GAAG,KAAK,CAAA;QACf,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,iEAAiE;IACjE,2EAA2E;IAC3E,6EAA6E;IAC7E,2EAA2E;IAC3E,8EAA8E;IAC9E,4EAA4E;IAC5E,yEAAyE;IACzE,2BAA2B;IAC3B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,QAAQ;YAAE,OAAM;QAE9C,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;QACtC,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,IAAI,SAAoD,CAAA;QAExD,MAAM,WAAW,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,EAAE;YAClC,IAAI,SAAS;gBAAE,OAAM;YAErB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAA;YAC1C,MAAM,MAAM,GACV,MAAM,EAAE,WAAW,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,UAAU;gBAClE,CAAC,CAAC,MAAM,CAAC,WAAW;gBACpB,CAAC,CAAC,MAAM,EAAE,WAAW,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,UAAU;oBACpE,CAAC,CAAC,MAAM,CAAC,WAAW;oBACpB,CAAC,CAAC,IAAI,CAAA;YAEZ,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC;oBACH,mEAAmE;oBACnE,uEAAuE;oBACvE,gBAAgB;oBAChB,MAAM,CAAC,IAAI,EAAE,CAAA;gBACf,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,CAAC,CAAC,CAAA;gBACtD,CAAC;gBACD,OAAM;YACR,CAAC;YAED,IAAI,OAAO,MAAM,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;gBACzC,IAAI,CAAC;oBACH,MAAM,CAAC,MAAM,EAAE,CAAA;gBACjB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,CAAC,CAAC,CAAA;gBACxD,CAAC;gBACD,OAAM;YACR,CAAC;YAED,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;gBACjB,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;gBAC1D,OAAM;YACR,CAAC;YAED,IAAI,CAAC;gBACH,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAA;YACvD,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC,CAAA;QAED,2EAA2E;QAC3E,+DAA+D;QAC/D,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAA;QACnE,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,CAAC,UAAU,EAAE,WAAW,CAAC,cAAc,CAAC,CAAA;QACxD,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,OAAQ,MAAM,CAAC,MAAM,CAAC,IAAY,CAAC,MAAM,CAAA;YAC3C,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QACjD,QAAQ,CAAC,EAAE,GAAG,mBAAmB,CAAA;QACjC,QAAQ,CAAC,GAAG,GAAG,SAAS,CAAA;QACxB,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAA;QACrB,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,EAAE,CAAA;QACrC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QAEnC,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAA;YAChB,IAAI,SAAS,EAAE,CAAC;gBACd,YAAY,CAAC,SAAS,CAAC,CAAA;YACzB,CAAC;YACD,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACxB,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;YAC3C,CAAC;QACH,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;IAE9B,4EAA4E;IAC5E,4EAA4E;IAC5E,kBAAkB;IAClB,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,CAAC,EAAgB,EAAE,EAAE;YACrC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC;gBAAE,OAAM;YACtC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YACnD,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBACzB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;YACxC,CAAC;QACH,CAAC,CAAA;QACD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAC7C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAC/D,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAExB,yEAAyE;IACzE,6EAA6E;IAC7E,2CAA2C;IAC3C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ;YAAE,OAAM;QAErB,YAAY,CAAC,OAAO,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAA;QACzC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAA;QAElC,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,YAAY,CAAC,OAAO,GAAG,KAAK,CAAA;QAE5B,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE;YACrB,YAAY,CAAC,SAAS,CAAC,CAAA;YACvB,QAAQ,CAAC,IAAI,CAAC,CAAA;YACd,eAAe,CAAC,KAAK,CAAC,CAAA;YACtB,WAAW,CAAC,EAAE,CAAC,CAAA;YAEf,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,GAAG,eAAe,gBAAgB,GAAG,EAAE,EAAE;oBAC7D,MAAM,EAAE,KAAK;oBACb,WAAW,EAAE,SAAS;iBACvB,CAAC,CAAA;gBACF,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBAE3C,IAAI,SAAS,IAAI,KAAK,KAAK,YAAY,CAAC,OAAO;oBAAE,OAAM;gBAEvD,aAAa,CAAC,EAAE,CAAC,CAAA;gBAEjB,MAAM,WAAW,GACf,EAAE,EAAE,MAAM,KAAK,WAAW,IAAI,EAAE,EAAE,wBAAwB,KAAK,IAAI,CAAA;gBAErE,IAAI,WAAW,EAAE,CAAC;oBAChB,YAAY,CAAC,WAAW,CAAC,CAAA;oBACzB,aAAa,CAAC,KAAK,CAAC,CAAA;oBACpB,OAAM;gBACR,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAClB,CAAC;YAED,IAAI,SAAS,IAAI,KAAK,KAAK,YAAY,CAAC,OAAO;gBAAE,OAAM;YAEvD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;YACjC,IAAI,MAAM,EAAE,CAAC;gBACX,WAAW,CAAC,MAAM,CAAC,CAAA;gBACnB,YAAY,CAAC,OAAO,CAAC,CAAA;YACvB,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAC5B,CAAC;QACH,CAAC,CAAA;QAED,GAAG,EAAE,CAAA;QAEL,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAA;IAEnC,8EAA8E;IAC9E,IAAA,uBAAe,EAAC,GAAG,EAAE;QACnB,MAAM,CAAC,kBAAkB,GAAG,CAAC,QAAgB,EAAE,QAAgB,EAAE,EAAE;YACjE,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QACxC,CAAC,CAAA;QACD,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,kBAAkB,GAAG,SAAS,CAAA;QACvC,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAExB,sCAAsC;IACtC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,aAAa,EAAE,CAAA;QACjB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;IAEnB,IAAA,uBAAe,EAAC,GAAG,EAAE;QACnB,MAAM,EAAE,GAAG,eAAe,CAAC,OAAO,CAAA;QAClC,IAAI,CAAC,EAAE;YAAE,OAAM;QAEf,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAA;YAC3D,IAAI,CAAC,GAAG,CAAC;gBAAE,aAAa,CAAC,CAAC,CAAC,CAAA;QAC7B,CAAC,CAAA;QAED,MAAM,EAAE,CAAA;QAER,IAAI,EAAE,GAA0B,IAAI,CAAA;QACpC,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;YAC1C,EAAE,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA;YACvC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAC3C,CAAC;QAED,OAAO,GAAG,EAAE;YACV,IAAI,EAAE;gBAAE,EAAE,CAAC,UAAU,EAAE,CAAA;;gBAClB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QACnD,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA;IAE9B,6DAA6D;IAC7D,EAAE;IACF,4EAA4E;IAC5E,yEAAyE;IACzE,+BAA+B;IAC/B,0EAA0E;IAC1E,4EAA4E;IAC5E,iCAAiC;IACjC,6EAA6E;IAC7E,+EAA+E;IAC/E,4EAA4E;IAC5E,2EAA2E;IAC3E,6EAA6E;IAC7E,gEAAgE;IAChE,2EAA2E;IAC3E,EAAE;IACF,0EAA0E;IAC1E,8EAA8E;IAC9E,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,cAAc,GAAG,CAAC,CAAa,EAAE,EAAE;YACvC,MAAM,GAAG,GAAG,eAAe,CAAC,OAAO,CAAA;YACnC,IAAI,CAAC,GAAG;gBAAE,OAAM;YAChB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAA;YACtC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAM;YAE5C,CAAC,CAAC,cAAc,EAAE,CAAA;YAElB,IACE,YAAY,CAAC,OAAO,KAAK,OAAO;gBAChC,CAAC,WAAW,CAAC,OAAO;gBACpB,aAAa,CAAC,OAAO,EACrB,CAAC;gBACD,OAAM;YACR,CAAC;YAED,YAAY,CAAC,OAAO,GAAG,KAAK,CAAA;YAC5B,MAAM,KAAK,GAAG,mBAAmB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YACtD,eAAe,CAAC,CAAC,KAAK,CAAC,CAAA;QACzB,CAAC,CAAA;QAED,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,CAAA;QACxD,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,CAAA;IAC1E,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAA;IAEzB,4EAA4E;IAC5E,6EAA6E;IAC7E,wCAAwC;IACxC,MAAM,kBAAkB,GAAG,CAAC,CAAsC,EAAE,EAAE;QACpE,CAAC,CAAC,cAAc,EAAE,CAAA;IACpB,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAClC,IAAI,CAAC,aAAa,IAAI,oBAAoB;YAAE,OAAM;QAClD,uBAAuB,CAAC,IAAI,CAAC,CAAA;QAC7B,YAAY,CAAC,SAAS,CAAC,CAAA;QACvB,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEd,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,yBAAyB,EAAE;gBACjD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE;oBACzB,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE;oBAC3B,WAAW,EAAE,GAAG;iBACjB,CAAC;aACH,CAAC,CAAA;YAEF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC5C,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,4BAA4B,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;YACnE,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,GAAG,eAAe,gBAAgB,GAAG,EAAE,EAAE;gBACrE,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,SAAS;aACvB,CAAC,CAAA;YACF,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAEhE,YAAY,CAAC,WAAW,CAAC,CAAA;YACzB,aAAa,CAAC,eAAe,IAAI,IAAI,CAAC,CAAA;YACtC,aAAa,CAAC,KAAK,CAAC,CAAA;YAEpB,cAAc,CAAC,GAAG,CAAC,CAAA;QACrB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAChB,YAAY,CAAC,OAAO,CAAC,CAAA;YACrB,QAAQ,CAAC,CAAC,EAAE,OAAO,IAAI,6BAA6B,CAAC,CAAA;QACvD,CAAC;gBAAS,CAAC;YACT,uBAAuB,CAAC,KAAK,CAAC,CAAA;QAChC,CAAC;IACH,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAClC,IAAI,oBAAoB;YAAE,OAAM;QAChC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,yCAAyC,CAAC;YAAE,OAAM;QAEtE,uBAAuB,CAAC,IAAI,CAAC,CAAA;QAC7B,YAAY,CAAC,SAAS,CAAC,CAAA;QACvB,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,WAAW,CAAC,EAAE,CAAC,CAAA;QACf,aAAa,CAAC,KAAK,CAAC,CAAA;QACpB,aAAa,CAAC,IAAI,CAAC,CAAA;QAEnB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE;gBAC3C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;aAC3C,CAAC,CAAA;YAEF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC1C,MAAM,IAAI,KAAK,CAAC,CAAC,IAAI,sBAAsB,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;YAC3D,CAAC;YAED,cAAc,CAAC,GAAG,CAAC,CAAA;YAEnB,YAAY,CAAC,OAAO,GAAG,KAAK,CAAA;YAC5B,YAAY,CAAC,OAAO,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAA;YACzC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAA;YAClC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAC5B,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAChB,YAAY,CAAC,OAAO,CAAC,CAAA;YACrB,QAAQ,CAAC,CAAC,EAAE,OAAO,IAAI,uBAAuB,CAAC,CAAA;QACjD,CAAC;gBAAS,CAAC;YACT,uBAAuB,CAAC,KAAK,CAAC,CAAA;QAChC,CAAC;IACH,CAAC,CAAA;IAED,MAAM,eAAe,GAAG,KAAK,EAAE,CAAuC,EAAE,EAAE;QACxE,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAY,CAAA;QAElC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAA;QAC5B,eAAe,CAAC,KAAK,CAAC,CAAA;QACtB,uEAAuE;QACvE,cAAc,EAAE,CAAA;QAEhB,0EAA0E;QAC1E,wEAAwE;QACxE,0EAA0E;QAC1E,uBAAuB;QACvB,MAAM,CAAC,IAAI,CAAC,CAAA;QAEZ,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,oBAAoB,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;aAC5C,CAAC,CAAA;QACJ,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC,CAAA;IAED,OAAO,CACL,iCAAK,SAAS,EAAC,KAAK,aAClB,iCAAK,SAAS,EAAC,qBAAqB,aAClC,gCAAK,SAAS,EAAC,wCAAwC,YACrD,0CACE,+BAAI,SAAS,EAAC,uCAAuC,+CAAoC,GACrF,GACF,EAEN,uBAAC,cAAU,KAAG,EAEd,gCAAK,SAAS,EAAC,iEAAiE,YAC9E,iCAAK,SAAS,EAAC,sEAAsE,aACnF,gCAAK,SAAS,EAAC,0BAA0B,4BAAkB,EAC3D,gCAAK,SAAS,EAAC,UAAU,YACvB,oCACE,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAC,iFAAiF,aAE3F,mCAAQ,KAAK,EAAC,SAAS,oCAA6B,EACpD,mCAAQ,KAAK,EAAC,MAAM,kCAA2B,IACxC,GACL,EAEN,gCAAK,SAAS,EAAC,0BAA0B,YACtC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,mBAAmB,GACpE,EAEN,gCAAK,SAAS,EAAC,UAAU,YACtB,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,CAC3B,4CACE,gCAAK,SAAS,EAAC,wEAAwE,yDAEjF,EACN,iCAAK,SAAS,EAAC,4FAA4F,aACzG,gCAAK,SAAS,EAAC,6BAA6B,yCAEtC,EACN,iCAAK,SAAS,EAAC,MAAM,uBACZ,GAAG,EACV,iCAAM,SAAS,EAAC,2BAA2B,YACxC,UAAU,EAAE,YAAY,IAAI,aAAa,GACrC,IACH,IACF,EACN,gCAAK,SAAS,EAAC,8BAA8B,YAC3C,mCACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAC,moBAAmoB,2BAGtoB,GACL,IACF,CACP,CAAC,CAAC,CAAC,CACF,6DACE,iCACE,GAAG,EAAE,aAAa,EAClB,EAAE,EAAC,aAAa,EAChB,SAAS,EAAE,mBACT,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OACvC,EAAE,aAEF,gCAAK,SAAS,EAAC,uCAAuC,GAAO,EAC7D,iCAAM,EAAE,EAAC,aAAa,EAAC,SAAS,EAAC,SAAS,YACvC,oBAAoB;4DACnB,CAAC,CAAC,mCAAmC;4DACrC,CAAC,CAAC,wBAAwB,GACvB,IACH,EAEN,iCAAK,SAAS,EAAE,GAAG,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,aAC7D,8BACE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;4DACZ,eAAe,CAAC,OAAO,GAAG,IAAI,CAAA;4DAC9B,eAAe,CAAC,OAAO,GAAG,IAAI,CAAA;wDAChC,CAAC,EACD,EAAE,EAAC,eAAe,EAClB,MAAM,EAAE,UAAU,wBACC,MAAM,EACzB,IAAI,EAAE,QAAQ,IAAI,GAAG,kCACQ,oBAAoB,EACjD,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAC,gpBAAgpB,EAC1pB,KAAK,EAAE;4DACL,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;4DACxD,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;4DACvC,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;yDACtD,kCAGC,EAEH,YAAY,IAAI,CACf,gCAAK,SAAS,EAAC,uFAAuF,0IAGhG,CACP,EAED,gCACE,SAAS,EAAC,MAAM,EAChB,KAAK,EAAE;4DACL,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC,CAAC,MAAM;4DAC9C,SAAS,EAAE,MAAM;4DACjB,YAAY,EAAE,MAAM;yDACrB,YAED,gCAAK,SAAS,EAAC,qBAAqB,YAClC,iCAAM,SAAS,EAAC,2CAA2C,mBAEpD,GACH,GACF,EAEN,gCAAK,SAAS,EAAC,MAAM,YACnB,mCACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,EACzC,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAC,4GAA4G,0DAG/G,GACL,IACF,EAEN,gCAAK,SAAS,EAAE,GAAG,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,OAAO,YAClE,mCACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,EACzC,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAC,4GAA4G,0DAG/G,GACL,EAEN,gCACE,GAAG,EAAE,WAAW,EAChB,EAAE,EAAC,WAAW,EACd,SAAS,EAAE,mFACT,SAAS,KAAK,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAC7C,EAAE,YAED,KAAK,GACF,IACL,CACJ,GACG,EAEL,UAAU,IAAI,CACb,gCAAK,SAAS,EAAC,eAAe,YAC5B,iCAAK,SAAS,EAAC,gEAAgE,aAC7E,iCAAK,SAAS,EAAC,qBAAqB,aAClC,kCAAO,OAAO,EAAC,qBAAqB,EAAC,SAAS,EAAC,qBAAqB,0BAAkB,EACtF,kCACE,EAAE,EAAC,qBAAqB,EACxB,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC5C,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAC,8FAA8F,EACxG,WAAW,EACT,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,gBAAgB,GAE5D,IACE,EAEN,iCAAK,SAAS,EAAC,qBAAqB,aAClC,kCAAO,OAAO,EAAC,kBAAkB,EAAC,SAAS,EAAC,qBAAqB,uBAAe,EAChF,kCACE,EAAE,EAAC,kBAAkB,EACrB,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC1C,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAC,8FAA8F,EACxG,WAAW,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,GACjE,IACE,EAEN,iCAAK,SAAS,EAAC,qGAAqG,aAClH,8BAAG,SAAS,EAAC,6BAA6B,0DAEtC,EACJ,gCAAI,SAAS,EAAC,kCAAkC,aAC9C,mDACO,GAAG,EACR,8BACE,IAAI,EAAC,yCAAyC,EAC9C,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,YAAY,EAChB,SAAS,EAAC,kCAAkC,oCAG1C,EAAC,GAAG,yCAEL,EACL,sDAAW,iCAAM,SAAS,EAAC,6BAA6B,mCAA0B,oBAAc,iCAAM,SAAS,EAAC,6BAA6B,2BAAkB,mCAAgC,EAC/L,+DAAoB,iCAAM,SAAS,EAAC,6BAA6B,0BAAiB,WAAK,iCAAM,SAAS,EAAC,6BAA6B,uBAAc,qCAA+B,iCAAM,SAAS,EAAC,6BAA6B,iCAAwB,SAAM,IACzP,IACD,EAEN,iCAAK,SAAS,EAAC,4CAA4C,aACzD,mCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,moBAAmoB,EAC7oB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EACnC,QAAQ,EAAE,oBAAoB,uBAGvB,EAET,mCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,moBAAmoB,EAC7oB,QAAQ,EAAE,CAAC,aAAa,IAAI,oBAAoB,EAChD,OAAO,EAAE,gBAAgB,iCAGlB,IACL,IACF,GACF,CACP,IACG,GACF,IACF,EAEN,4CAAQ;;;;;;;;;;;;;;;;OAgBP,GAAS,IACN,CACP,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@easypayment/medusa-payment-paypal",
3
- "version": "0.9.20",
3
+ "version": "0.9.21",
4
4
  "description": "PayPal integration for Medusa v2",
5
5
  "author": "EasyPayment Plugins",
6
6
  "license": "MIT",
@@ -36,11 +36,16 @@ declare global {
36
36
 
37
37
 
38
38
  const SERVICE_URL = "/admin/paypal/onboarding-link"
39
- // The mini-browser popup is opened by us (see openOnboardingPopup). We give it a
40
- // stable window name so that, even if PayPal's partner.js *also* intercepts the
41
- // click, window.open() with the same name re-targets the one window instead of
42
- // spawning a second one.
43
- const POPUP_NAME = "PPMiniBrowser"
39
+ // We open the mini-browser popup ourselves, synchronously inside the click
40
+ // gesture (see openOnboardingPopup) the only reliable way to get a popup
41
+ // rather than a blocked window or a new tab. The window name matches the
42
+ // anchor's `target` and PayPal's conventional "PPFrame": partner.js opens the
43
+ // flow with `window.open(url, target, ...)`, so when it runs right after us it
44
+ // *reuses this already-open window* (a named-window navigation needs no user
45
+ // activation) instead of trying — and failing, asynchronously — to spawn its
46
+ // own. That lets partner.js still wire its completion bridge without ever
47
+ // opening a second/late window.
48
+ const POPUP_NAME = "PPFrame"
44
49
  const CACHE_PREFIX = "pp_onboard_cache"
45
50
  const CACHE_EXPIRY = 10 * 60 * 1000
46
51
 
@@ -209,12 +214,6 @@ export default function PayPalConnectionPage() {
209
214
  // Guards against the two redundant completion paths (our own message listener
210
215
  // and partner.js's onboardingCallback bridge) both POSTing the same result.
211
216
  const completedRef = useRef(false)
212
- // True once partner.js has initialized and bound its click interceptor to the
213
- // button. When bound, partner.js opens the mini-browser AND wires its
214
- // postMessage->onboardingCallback bridge (which auto-closes the popup and
215
- // saves credentials), so we must NOT open a second window. Until it is bound
216
- // (cold first click), we open the popup ourselves so the click still works.
217
- const partnerBoundRef = useRef(false)
218
217
 
219
218
  const ppBtnMeasureRef = useRef<HTMLAnchorElement | null>(null)
220
219
  const [ppBtnWidth, setPpBtnWidth] = useState<number | null>(null)
@@ -463,11 +462,10 @@ export default function PayPalConnectionPage() {
463
462
 
464
463
  if (target?.init) {
465
464
  try {
465
+ // Wires partner.js's click interceptor + its postMessage->callback
466
+ // bridge. It will adopt the window we pre-open (same name) rather than
467
+ // open its own.
466
468
  target.init()
467
- // partner.js scans the DOM and binds the button synchronously inside
468
- // init(), so from here a click is intercepted by partner.js (popup +
469
- // callback bridge) and we should not also open our own window.
470
- partnerBoundRef.current = true
471
469
  } catch (e) {
472
470
  console.error("[paypal] partner.js init failed:", e)
473
471
  }
@@ -477,7 +475,6 @@ export default function PayPalConnectionPage() {
477
475
  if (typeof signup?.render === "function") {
478
476
  try {
479
477
  signup.render()
480
- partnerBoundRef.current = true
481
478
  } catch (e) {
482
479
  console.error("[paypal] partner.js render failed:", e)
483
480
  }
@@ -494,10 +491,6 @@ export default function PayPalConnectionPage() {
494
491
  } catch {}
495
492
  }
496
493
 
497
- // This load hasn't bound the button yet; until init() runs, a click should
498
- // be handled by us (cold path) rather than assumed to reach partner.js.
499
- partnerBoundRef.current = false
500
-
501
494
  // Remove any stale copy + namespace so the fresh load re-registers against
502
495
  // the current environment (sandbox vs live partner.js differ).
503
496
  const existingScript = document.getElementById("paypal-partner-js")
@@ -644,38 +637,55 @@ export default function PayPalConnectionPage() {
644
637
  }
645
638
  }, [connState, env, finalUrl])
646
639
 
647
- // Click handling for "Connect to PayPal".
640
+ // Capture-phase click handler the single, reliable opener.
648
641
  //
649
- // We always preventDefault so the native target can never open a new tab.
642
+ // It runs on `document` in the CAPTURE phase, i.e. BEFORE the event reaches
643
+ // the anchor where partner.js binds its own (target-phase) handler. That
644
+ // ordering is the whole point:
645
+ // 1. We synchronously open the mini-browser popup here, inside the user
646
+ // gesture, so the browser always renders a real popup (never a blocked
647
+ // window, never a new tab).
648
+ // 2. We do NOT stop propagation, so partner.js's handler still runs a beat
649
+ // later. Since it opens with the same window name (POPUP_NAME), it adopts
650
+ // the window we just opened instead of asynchronously spawning its own
651
+ // (which the browser was blocking — "multiple popups ... lack of user
652
+ // activation") — and it still wires its postMessage->onboardingCallback
653
+ // bridge that auto-closes the popup and saves credentials.
654
+ // 3. We always preventDefault so the anchor's href can never open a tab.
650
655
  //
651
- // - If partner.js has bound the button, its own click handler already ran (in
652
- // the capture/target phase, before this React bubble handler) and opened the
653
- // mini-browser AND wired its postMessage->onboardingCallback bridge — which
654
- // auto-closes the popup and saves credentials. We must NOT open a second
655
- // window, so we just return.
656
- // - Otherwise (cold first click before partner.js finished initializing) we
657
- // open the popup ourselves so the click still works. Completion is then
658
- // handled by our own postMessage listener, and also by partner.js's bridge
659
- // once it finishes initializing a moment later.
660
- const handleConnectClick = (e: React.MouseEvent<HTMLAnchorElement>) => {
661
- e.preventDefault()
656
+ // Completion is handled by partner.js's bridge AND by our own postMessage
657
+ // listener (see below), funnelling through one idempotent completeOnboarding.
658
+ useEffect(() => {
659
+ const onCaptureClick = (e: MouseEvent) => {
660
+ const btn = paypalButtonRef.current
661
+ if (!btn) return
662
+ const target = e.target as Node | null
663
+ if (!target || !btn.contains(target)) return
664
+
665
+ e.preventDefault()
666
+
667
+ if (
668
+ connStateRef.current !== "ready" ||
669
+ !finalUrlRef.current ||
670
+ inProgressRef.current
671
+ ) {
672
+ return
673
+ }
662
674
 
663
- if (
664
- connStateRef.current !== "ready" ||
665
- !finalUrlRef.current ||
666
- inProgressRef.current
667
- ) {
668
- return
675
+ completedRef.current = false
676
+ const popup = openOnboardingPopup(finalUrlRef.current)
677
+ setPopupBlocked(!popup)
669
678
  }
670
679
 
671
- if (partnerBoundRef.current) {
672
- // partner.js owns this click (popup + auto-close + callback bridge).
673
- return
674
- }
680
+ document.addEventListener("click", onCaptureClick, true)
681
+ return () => document.removeEventListener("click", onCaptureClick, true)
682
+ }, [openOnboardingPopup])
675
683
 
676
- completedRef.current = false
677
- const popup = openOnboardingPopup(finalUrlRef.current)
678
- setPopupBlocked(!popup)
684
+ // Defensive only: the capture-phase listener above already opened the popup
685
+ // and prevented the default. If for some reason it didn't run, make sure the
686
+ // native target still can't open a tab.
687
+ const handleConnectClick = (e: React.MouseEvent<HTMLAnchorElement>) => {
688
+ e.preventDefault()
679
689
  }
680
690
 
681
691
  const handleSaveManual = async () => {