fix: flat absolute routes + declare api.cal.com egress (2.0.7)

Register the chi routes as flat absolute paths (httpBase+"/slots" …)
instead of a nested r.Route mount: the wasm host forwards the full
original path with no prefix strip, so the nested mount's RoutePath
rebasing never matched and 404'd the entire HTTP surface.

Declare allowed_hosts = ["api.cal.com"] so the ADR-0023 install consent
dialog asks the admin to grant egress; without it every Cal.com call was
denied at runtime (ABI_ERROR_CODE_EGRESS_DENIED, no egress grant).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Alex Dunmow 2026-07-09 09:38:31 +08:00
parent 5a138b9ac8
commit bd7f9fad15
24 changed files with 142842 additions and 131665 deletions

View File

@ -300,34 +300,34 @@ func NewCalcomRouter(deps plugin.CoreServices) http.Handler {
h.blockConfig = publishedBlockResolver{source: deps.Content} h.blockConfig = publishedBlockResolver{source: deps.Content}
} }
// Routes are registered ABSOLUTE: the wasm host forwards the full request // Routes are registered ABSOLUTE on a flat chi router: the wasm host forwards
// path (no prefix strip), so relative registrations never match — the // the FULL original path (r.URL.Path, no prefix strip), so the guest matches
// 2.0.02.0.2 regression that 404'd the plugin's entire HTTP surface. // on the complete path. A nested r.Route(httpBase, …) instead relies on chi
// Mirrors testplugin's httpBase convention. // Mount's RoutePath rebasing, which the raw-path forwarder never populates —
r.Route(httpBase, func(r chi.Router) { // mirror testplugin's httpBase convention (flat + absolute) so the surface
// resolves regardless of how the host mounts the forwarder.
// Public booking endpoints — reachable by anonymous visitors. // Public booking endpoints — reachable by anonymous visitors.
r.Get("/slots", h.HandleGetSlots) r.Get(httpBase+"/slots", h.HandleGetSlots)
r.Get("/form", h.HandleGetForm) r.Get(httpBase+"/form", h.HandleGetForm)
r.Post("/book", h.HandleCreateBooking) r.Post(httpBase+"/book", h.HandleCreateBooking)
r.Post("/cancel", h.HandleCancelBooking) r.Post(httpBase+"/cancel", h.HandleCancelBooking)
r.Get("/reset", h.HandleReset) r.Get(httpBase+"/reset", h.HandleReset)
r.Get("/date-grid", h.HandleGetDateGrid) r.Get(httpBase+"/date-grid", h.HandleGetDateGrid)
// Webhook receiver — HMAC-verified inside the handler, so no admin gate. // Webhook receiver — HMAC-verified inside the handler, so no admin gate.
wh := NewWebhookHandler(settings, slog.Default()) wh := NewWebhookHandler(settings, slog.Default())
r.Post("/webhook", wh.Handle) r.Post(httpBase+"/webhook", wh.Handle)
// Admin endpoints — gated by requireAdmin. The plugin HTTP mount has no // Admin endpoints — gated by requireAdmin. The plugin HTTP mount has no
// outer admin middleware, so this is the only line keeping the API key // outer admin middleware, so this is the only line keeping the API key
// + webhook secret + Cal.com proxy out of attackers' hands. // + webhook secret + Cal.com proxy out of attackers' hands.
r.Group(func(admin chi.Router) { r.Group(func(admin chi.Router) {
admin.Use(requireAdmin) admin.Use(requireAdmin)
admin.Get("/settings", h.HandleGetSettings) admin.Get(httpBase+"/settings", h.HandleGetSettings)
admin.Post("/settings", h.HandleSaveSettings) admin.Post(httpBase+"/settings", h.HandleSaveSettings)
admin.Post("/settings/rotate-webhook-secret", h.HandleRotateWebhookSecret) admin.Post(httpBase+"/settings/rotate-webhook-secret", h.HandleRotateWebhookSecret)
admin.Post("/test", h.HandleTestConnection) admin.Post(httpBase+"/test", h.HandleTestConnection)
admin.Get("/event-types", h.HandleListEventTypes) admin.Get(httpBase+"/event-types", h.HandleListEventTypes)
})
}) })
return r return r

View File

@ -8,3 +8,4 @@ kind = "plugin"
categories = ["forms"] categories = ["forms"]
tags = ["calcom", "booking", "calendar", "scheduling", "appointments"] tags = ["calcom", "booking", "calendar", "scheduling", "appointments"]
private = true private = true
allowed_hosts = ["api.cal.com"]

View File

@ -1,13 +1,48 @@
import { importShared } from './__federation_fn_import-hlt2XzeI.js'; import { importShared } from "./__federation_fn_import-hlt2XzeI.js";
import { j as jsxRuntimeExports } from './jsx-runtime-CvJTHeKY.js'; import { j as jsxRuntimeExports } from "./jsx-runtime-CvJTHeKY.js";
const {useCallback,useEffect,useState} = await importShared('react'); const { useCallback, useEffect, useState } = await importShared("react");
const {Alert,AlertDescription,Button,Card,CardContent,CardDescription,CardHeader,CardTitle,Tabs,TabsContent,TabsList,TabsTrigger,Input,Label,Textarea,Switch,Select,SelectContent,SelectItem,SelectTrigger,SelectValue,Settings,Edit3,CheckCircle2,XCircle,Loader2,Key,AlertCircle,ExternalLink,RefreshCw,t} = await importShared('@block-ninja/ui'); const {
Alert,
AlertDescription,
Button,
Card,
CardContent,
CardDescription,
CardHeader,
CardTitle,
Tabs,
TabsContent,
TabsList,
TabsTrigger,
Input,
Label,
Textarea,
Switch,
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue,
Settings,
Edit3,
CheckCircle2,
XCircle,
Loader2,
Key,
AlertCircle,
ExternalLink,
RefreshCw,
t,
} = await importShared("@block-ninja/ui");
function renderConnectedAccount(apiKeyConfigured, calcomUsername) { function renderConnectedAccount(apiKeyConfigured, calcomUsername) {
if (apiKeyConfigured === false) { if (apiKeyConfigured === false) {
return /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-muted-foreground", children: t("calcom.editor.connectedAs.noKey", "Configure the API key in plugin settings to connect an account.") }); return /* @__PURE__ */ jsxRuntimeExports.jsx("p", {
className: "text-xs text-muted-foreground",
children: t("calcom.editor.connectedAs.noKey", "Configure the API key in plugin settings to connect an account."),
});
} }
if (calcomUsername) { if (calcomUsername) {
return /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm font-mono", children: calcomUsername }); return /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm font-mono", children: calcomUsername });
@ -26,7 +61,7 @@ function CalcomBlockEditor({ content, onChange }) {
(field, value) => { (field, value) => {
onChange({ ...content, [field]: value }); onChange({ ...content, [field]: value });
}, },
[content, onChange] [content, onChange],
); );
const getString = (field, defaultValue = "") => { const getString = (field, defaultValue = "") => {
return content[field] || defaultValue; return content[field] || defaultValue;
@ -44,10 +79,13 @@ function CalcomBlockEditor({ content, onChange }) {
}; };
const eventTypeSlug = getString("eventTypeSlug"); const eventTypeSlug = getString("eventTypeSlug");
useEffect(() => { useEffect(() => {
fetch(`/api/plugins/calcomblock/settings`).then((r) => r.json()).then((d) => { fetch(`/api/plugins/calcomblock/settings`)
.then((r) => r.json())
.then((d) => {
setApiKeyConfigured(!!d.api_key_configured); setApiKeyConfigured(!!d.api_key_configured);
setCalcomUsername(d.username ?? ""); setCalcomUsername(d.username ?? "");
}).catch(() => setApiKeyConfigured(false)); })
.catch(() => setApiKeyConfigured(false));
}, []); }, []);
useEffect(() => { useEffect(() => {
if (calcomUsername && content.username !== calcomUsername) { if (calcomUsername && content.username !== calcomUsername) {
@ -63,17 +101,21 @@ function CalcomBlockEditor({ content, onChange }) {
const timer = setTimeout(() => { const timer = setTimeout(() => {
setLoadingEventTypes(true); setLoadingEventTypes(true);
setFetchFailed(false); setFetchFailed(false);
fetch(`/api/plugins/calcomblock/event-types?username=${encodeURIComponent(calcomUsername)}`).then((r) => r.json()).then((d) => { fetch(`/api/plugins/calcomblock/event-types?username=${encodeURIComponent(calcomUsername)}`)
.then((r) => r.json())
.then((d) => {
if (d.success) { if (d.success) {
setEventTypes(d.event_types ?? []); setEventTypes(d.event_types ?? []);
} else { } else {
setEventTypes([]); setEventTypes([]);
setFetchFailed(true); setFetchFailed(true);
} }
}).catch(() => { })
.catch(() => {
setEventTypes([]); setEventTypes([]);
setFetchFailed(true); setFetchFailed(true);
}).finally(() => setLoadingEventTypes(false)); })
.finally(() => setLoadingEventTypes(false));
}, 300); }, 300);
return () => clearTimeout(timer); return () => clearTimeout(timer);
}, [apiKeyConfigured, calcomUsername, retryCounter]); }, [apiKeyConfigured, calcomUsername, retryCounter]);
@ -82,28 +124,28 @@ function CalcomBlockEditor({ content, onChange }) {
}, []); }, []);
const selectPlaceholder = (() => { const selectPlaceholder = (() => {
if (apiKeyConfigured === false) { if (apiKeyConfigured === false) {
return /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "inline-flex items-center gap-1.5 text-muted-foreground", children: [ return /* @__PURE__ */ jsxRuntimeExports.jsxs("span", {
/* @__PURE__ */ jsxRuntimeExports.jsx(Key, { className: "h-3 w-3" }), className: "inline-flex items-center gap-1.5 text-muted-foreground",
t("calcom.editor.eventType.placeholder.noApiKey", "Configure API key first") children: [/* @__PURE__ */ jsxRuntimeExports.jsx(Key, { className: "h-3 w-3" }), t("calcom.editor.eventType.placeholder.noApiKey", "Configure API key first")],
] }); });
} }
if (loadingEventTypes) { if (loadingEventTypes) {
return /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "inline-flex items-center gap-1.5 text-muted-foreground", children: [ return /* @__PURE__ */ jsxRuntimeExports.jsxs("span", {
/* @__PURE__ */ jsxRuntimeExports.jsx(Loader2, { className: "h-3 w-3 animate-spin" }), className: "inline-flex items-center gap-1.5 text-muted-foreground",
t("calcom.editor.eventType.placeholder.loading", "Loading…") children: [/* @__PURE__ */ jsxRuntimeExports.jsx(Loader2, { className: "h-3 w-3 animate-spin" }), t("calcom.editor.eventType.placeholder.loading", "Loading…")],
] }); });
} }
if (!calcomUsername) { if (!calcomUsername) {
return /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "inline-flex items-center gap-1.5 text-muted-foreground", children: [ return /* @__PURE__ */ jsxRuntimeExports.jsxs("span", {
/* @__PURE__ */ jsxRuntimeExports.jsx(Loader2, { className: "h-3 w-3 animate-spin" }), className: "inline-flex items-center gap-1.5 text-muted-foreground",
t("calcom.editor.eventType.placeholder.resolvingUser", "Resolving account…") children: [/* @__PURE__ */ jsxRuntimeExports.jsx(Loader2, { className: "h-3 w-3 animate-spin" }), t("calcom.editor.eventType.placeholder.resolvingUser", "Resolving account…")],
] }); });
} }
if (eventTypes.length === 0) { if (eventTypes.length === 0) {
return /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "inline-flex items-center gap-1.5 text-muted-foreground", children: [ return /* @__PURE__ */ jsxRuntimeExports.jsxs("span", {
/* @__PURE__ */ jsxRuntimeExports.jsx(XCircle, { className: "h-3 w-3" }), className: "inline-flex items-center gap-1.5 text-muted-foreground",
t("calcom.editor.eventType.placeholder.noEventTypes", "No event types found") children: [/* @__PURE__ */ jsxRuntimeExports.jsx(XCircle, { className: "h-3 w-3" }), t("calcom.editor.eventType.placeholder.noEventTypes", "No event types found")],
] }); });
} }
return t("calcom.editor.eventType.placeholder.select", "Select event type"); return t("calcom.editor.eventType.placeholder.select", "Select event type");
})(); })();
@ -111,241 +153,421 @@ function CalcomBlockEditor({ content, onChange }) {
const usernameReady = calcomUsername.length > 0; const usernameReady = calcomUsername.length > 0;
const eventTypeReady = eventTypeSlug.length > 0; const eventTypeReady = eventTypeSlug.length > 0;
const canOpenInCalcom = usernameReady && eventTypeReady; const canOpenInCalcom = usernameReady && eventTypeReady;
const renderStatusRow = (ok, label, action) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 text-sm", children: [ const renderStatusRow = (ok, label, action) =>
ok ? /* @__PURE__ */ jsxRuntimeExports.jsx(CheckCircle2, { className: "h-4 w-4 text-primary", "aria-hidden": "true" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(XCircle, { className: "h-4 w-4 text-destructive", "aria-hidden": "true" }), /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "flex items-center gap-2 text-sm",
children: [
ok ?
/* @__PURE__ */ jsxRuntimeExports.jsx(CheckCircle2, { "className": "h-4 w-4 text-primary", "aria-hidden": "true" })
: /* @__PURE__ */ jsxRuntimeExports.jsx(XCircle, { "className": "h-4 w-4 text-destructive", "aria-hidden": "true" }),
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: ok ? "text-foreground" : "text-muted-foreground", children: label }), /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: ok ? "text-foreground" : "text-muted-foreground", children: label }),
action ? /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ml-auto", children: action }) : null action ? /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ml-auto", children: action }) : null,
] }); ],
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "space-y-4", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Tabs, { value: activeTab, onValueChange: setActiveTab, children: [ });
/* @__PURE__ */ jsxRuntimeExports.jsxs(TabsList, { className: "grid w-full grid-cols-2", children: [ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
/* @__PURE__ */ jsxRuntimeExports.jsxs(TabsTrigger, { value: "config", className: "gap-2", children: [ className: "space-y-4",
children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Tabs, {
value: activeTab,
onValueChange: setActiveTab,
children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs(TabsList, {
className: "grid w-full grid-cols-2",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs(TabsTrigger, {
value: "config",
className: "gap-2",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(Settings, { className: "h-4 w-4" }), /* @__PURE__ */ jsxRuntimeExports.jsx(Settings, { className: "h-4 w-4" }),
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: t("calcom.editor.tab.configuration", "Configuration") }) /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: t("calcom.editor.tab.configuration", "Configuration") }),
] }), ],
/* @__PURE__ */ jsxRuntimeExports.jsxs(TabsTrigger, { value: "content", className: "gap-2", children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsxs(TabsTrigger, {
value: "content",
className: "gap-2",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(Edit3, { className: "h-4 w-4" }), /* @__PURE__ */ jsxRuntimeExports.jsx(Edit3, { className: "h-4 w-4" }),
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: t("calcom.editor.tab.content", "Content") }) /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: t("calcom.editor.tab.content", "Content") }),
] }) ],
] }), }),
/* @__PURE__ */ jsxRuntimeExports.jsxs(TabsContent, { value: "config", className: "space-y-4 mt-4", children: [ ],
apiKeyConfigured === false && /* @__PURE__ */ jsxRuntimeExports.jsx(Alert, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(AlertDescription, { children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsxs(TabsContent, {
value: "config",
className: "space-y-4 mt-4",
children: [
apiKeyConfigured === false &&
/* @__PURE__ */ jsxRuntimeExports.jsx(Alert, {
children: /* @__PURE__ */ jsxRuntimeExports.jsxs(AlertDescription, {
children: [
t("calcom.editor.alert.apiKeyMissing.prefix", "Configure your Cal.com API key in"), t("calcom.editor.alert.apiKeyMissing.prefix", "Configure your Cal.com API key in"),
" ", " ",
/* @__PURE__ */ jsxRuntimeExports.jsx("a", { href: "/admin/plugins?plugin=calcomblock", className: "text-primary hover:underline", children: t("calcom.editor.alert.apiKeyMissing.linkLabel", "plugin settings") }), /* @__PURE__ */ jsxRuntimeExports.jsx("a", {
href: "/admin/plugins?plugin=calcomblock",
className: "text-primary hover:underline",
children: t("calcom.editor.alert.apiKeyMissing.linkLabel", "plugin settings"),
}),
" ", " ",
t("calcom.editor.alert.apiKeyMissing.suffix", "to enable the event-type dropdown.") t("calcom.editor.alert.apiKeyMissing.suffix", "to enable the event-type dropdown."),
] }) }), ],
/* @__PURE__ */ jsxRuntimeExports.jsxs(Card, { children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardHeader, { children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsxs(Card, {
children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardHeader, {
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(CardTitle, { className: "text-base", children: t("calcom.editor.section.config.title", "Cal.com Settings") }), /* @__PURE__ */ jsxRuntimeExports.jsx(CardTitle, { className: "text-base", children: t("calcom.editor.section.config.title", "Cal.com Settings") }),
/* @__PURE__ */ jsxRuntimeExports.jsx(CardDescription, { children: t("calcom.editor.section.config.description", "Connect to your Cal.com account and select an event type") }) /* @__PURE__ */ jsxRuntimeExports.jsx(CardDescription, {
] }), children: t("calcom.editor.section.config.description", "Connect to your Cal.com account and select an event type"),
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardContent, { className: "space-y-4", children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-2", children: [ ],
}),
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardContent, {
className: "space-y-4",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "space-y-2",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(Label, { children: t("calcom.editor.connectedAs.label", "Connected Account") }), /* @__PURE__ */ jsxRuntimeExports.jsx(Label, { children: t("calcom.editor.connectedAs.label", "Connected Account") }),
renderConnectedAccount(apiKeyConfigured, calcomUsername) renderConnectedAccount(apiKeyConfigured, calcomUsername),
] }), ],
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-2", children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsxs(Label, { htmlFor: "eventTypeSlug", children: [ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "space-y-2",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs(Label, {
htmlFor: "eventTypeSlug",
children: [
t("calcom.editor.eventType.label", "Event Type"), t("calcom.editor.eventType.label", "Event Type"),
" ", " ",
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-destructive", children: "*" }) /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-destructive", children: "*" }),
] }), ],
fetchFailed ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [ fetchFailed ?
/* @__PURE__ */ jsxRuntimeExports.jsx( /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, {
Input, children: [
{ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "flex items-center gap-2",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(Input, {
id: "eventTypeSlug", id: "eventTypeSlug",
value: eventTypeSlug, value: eventTypeSlug,
onChange: (e) => handleFieldChange("eventTypeSlug", e.target.value), onChange: (e) => handleFieldChange("eventTypeSlug", e.target.value),
placeholder: t("calcom.editor.eventType.fallbackPlaceholder", "30min"), placeholder: t("calcom.editor.eventType.fallbackPlaceholder", "30min"),
className: "flex-1" className: "flex-1",
} }),
), /* @__PURE__ */ jsxRuntimeExports.jsxs(Button, {
/* @__PURE__ */ jsxRuntimeExports.jsxs( "type": "button",
Button, "size": "sm",
{ "variant": "outline",
type: "button", "action": "retry",
size: "sm", "entity": "event-types",
variant: "outline", "onClick": handleRetry,
action: "retry", "disabled": loadingEventTypes,
entity: "event-types",
onClick: handleRetry,
disabled: loadingEventTypes,
"aria-label": t("calcom.editor.eventType.retryAria", "Retry loading event types"), "aria-label": t("calcom.editor.eventType.retryAria", "Retry loading event types"),
"children": [
/* @__PURE__ */ jsxRuntimeExports.jsx(RefreshCw, {
"className": `h-4 w-4 ${loadingEventTypes ? "animate-spin" : ""}`,
"aria-hidden": "true",
}),
/* @__PURE__ */ jsxRuntimeExports.jsx("span", {
className: "ml-1",
children: t("calcom.editor.eventType.retryLabel", "Retry"),
}),
],
}),
],
}),
/* @__PURE__ */ jsxRuntimeExports.jsxs(Alert, {
variant: "destructive",
children: [ children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(RefreshCw, { className: `h-4 w-4 ${loadingEventTypes ? "animate-spin" : ""}`, "aria-hidden": "true" }), /* @__PURE__ */ jsxRuntimeExports.jsx(AlertCircle, { "className": "h-4 w-4", "aria-hidden": "true" }),
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ml-1", children: t("calcom.editor.eventType.retryLabel", "Retry") }) /* @__PURE__ */ jsxRuntimeExports.jsx(AlertDescription, {
] children: t("calcom.editor.eventType.fetchFailed", "Couldn't load event types from Cal.com. Enter the slug manually or retry."),
} }),
) ],
] }), }),
/* @__PURE__ */ jsxRuntimeExports.jsxs(Alert, { variant: "destructive", children: [ ],
/* @__PURE__ */ jsxRuntimeExports.jsx(AlertCircle, { className: "h-4 w-4", "aria-hidden": "true" }), })
/* @__PURE__ */ jsxRuntimeExports.jsx(AlertDescription, { children: t("calcom.editor.eventType.fetchFailed", "Couldn't load event types from Cal.com. Enter the slug manually or retry.") }) : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, {
] }) children: [
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [ /* @__PURE__ */ jsxRuntimeExports.jsxs(Select, {
/* @__PURE__ */ jsxRuntimeExports.jsxs(
Select,
{
value: eventTypeSlug, value: eventTypeSlug,
onValueChange: (v) => handleFieldChange("eventTypeSlug", v), onValueChange: (v) => handleFieldChange("eventTypeSlug", v),
disabled: loadingEventTypes || !apiKeyConfigured || eventTypes.length === 0, disabled: loadingEventTypes || !apiKeyConfigured || eventTypes.length === 0,
children: [ children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { "aria-label": t("calcom.editor.eventType.label", "Event Type"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, { placeholder: selectPlaceholder }) }), /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, {
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: eventTypes.map((et) => /* @__PURE__ */ jsxRuntimeExports.jsxs(SelectItem, { value: et.slug, children: [ "aria-label": t("calcom.editor.eventType.label", "Event Type"),
"children": /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, { placeholder: selectPlaceholder }),
}),
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, {
children: eventTypes.map((et) =>
/* @__PURE__ */ jsxRuntimeExports.jsxs(
SelectItem,
{
value: et.slug,
children: [
et.title, et.title,
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-muted-foreground", children: [ /* @__PURE__ */ jsxRuntimeExports.jsxs("span", {
" ", className: "text-muted-foreground",
"(", children: [" ", "(", et.slug, " · ", et.lengthInMinutes, "m)"],
et.slug, }),
" · ", ],
et.lengthInMinutes, },
"m)" et.id,
] })
] }, et.id)) })
]
}
), ),
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-muted-foreground", children: t("calcom.editor.eventType.help", "Fetched from your Cal.com account") }) ),
] }) }),
] }), ],
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-2", children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsx("p", {
className: "text-xs text-muted-foreground",
children: t("calcom.editor.eventType.help", "Fetched from your Cal.com account"),
}),
],
}),
],
}),
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "space-y-2",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(Label, { htmlFor: "weeksToShow", children: t("calcom.editor.weeksToShow.label", "Weeks to Display") }), /* @__PURE__ */ jsxRuntimeExports.jsx(Label, { htmlFor: "weeksToShow", children: t("calcom.editor.weeksToShow.label", "Weeks to Display") }),
/* @__PURE__ */ jsxRuntimeExports.jsxs(Select, { value: String(getNumber("weeksToShow", 2)), onValueChange: (v) => handleFieldChange("weeksToShow", parseInt(v, 10)), children: [ /* @__PURE__ */ jsxRuntimeExports.jsxs(Select, {
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { "aria-label": t("calcom.editor.weeksToShow.label", "Weeks to Display"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, { placeholder: t("calcom.editor.weeksToShow.placeholder", "Select weeks") }) }), value: String(getNumber("weeksToShow", 2)),
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, { children: [1, 2, 3, 4, 5, 6, 7, 8].map((n) => /* @__PURE__ */ jsxRuntimeExports.jsxs(SelectItem, { value: String(n), children: [ onValueChange: (v) => handleFieldChange("weeksToShow", parseInt(v, 10)),
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, {
"aria-label": t("calcom.editor.weeksToShow.label", "Weeks to Display"),
"children": /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, { placeholder: t("calcom.editor.weeksToShow.placeholder", "Select weeks") }),
}),
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectContent, {
children: [1, 2, 3, 4, 5, 6, 7, 8].map((n) =>
/* @__PURE__ */ jsxRuntimeExports.jsxs(
SelectItem,
{
value: String(n),
children: [
n, n,
" ", " ",
n > 1 ? t("calcom.editor.weeksToShow.unitPlural", "weeks") : t("calcom.editor.weeksToShow.unitSingular", "week") n > 1 ? t("calcom.editor.weeksToShow.unitPlural", "weeks") : t("calcom.editor.weeksToShow.unitSingular", "week"),
] }, n)) }) ],
] }), },
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-muted-foreground", children: t("calcom.editor.weeksToShow.help", "How many weeks of dates to show in the calendar") }) n,
] }), ),
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between rounded-lg border p-3", children: [ ),
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-0.5", children: [ }),
],
}),
/* @__PURE__ */ jsxRuntimeExports.jsx("p", {
className: "text-xs text-muted-foreground",
children: t("calcom.editor.weeksToShow.help", "How many weeks of dates to show in the calendar"),
}),
],
}),
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "flex items-center justify-between rounded-lg border p-3",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "space-y-0.5",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(Label, { children: t("calcom.editor.showTimezone.label", "Show Timezone Selector") }), /* @__PURE__ */ jsxRuntimeExports.jsx(Label, { children: t("calcom.editor.showTimezone.label", "Show Timezone Selector") }),
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-muted-foreground", children: t("calcom.editor.showTimezone.help", "Show a label above the date grid indicating which timezone times are displayed in.") }) /* @__PURE__ */ jsxRuntimeExports.jsx("p", {
] }), className: "text-xs text-muted-foreground",
/* @__PURE__ */ jsxRuntimeExports.jsx( children: t("calcom.editor.showTimezone.help", "Show a label above the date grid indicating which timezone times are displayed in."),
Switch, }),
{ ],
checked: getBool("showTimezone", true), }),
onCheckedChange: (v) => handleFieldChange("showTimezone", v), /* @__PURE__ */ jsxRuntimeExports.jsx(Switch, {
"aria-label": t("calcom.editor.showTimezone.label", "Show Timezone Selector") "checked": getBool("showTimezone", true),
} "onCheckedChange": (v) => handleFieldChange("showTimezone", v),
) "aria-label": t("calcom.editor.showTimezone.label", "Show Timezone Selector"),
] }), }),
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between rounded-lg border p-3", children: [ ],
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-0.5", children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "flex items-center justify-between rounded-lg border p-3",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "space-y-0.5",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(Label, { children: t("calcom.editor.captchaEnabled.label", "Enable captcha") }), /* @__PURE__ */ jsxRuntimeExports.jsx(Label, { children: t("calcom.editor.captchaEnabled.label", "Enable captcha") }),
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-muted-foreground", children: t("calcom.editor.captchaEnabled.help", "Require visitors to solve a privacy-friendly proof-of-work captcha before booking (spam protection).") }) /* @__PURE__ */ jsxRuntimeExports.jsx("p", {
] }), className: "text-xs text-muted-foreground",
/* @__PURE__ */ jsxRuntimeExports.jsx( children: t(
Switch, "calcom.editor.captchaEnabled.help",
{ "Require visitors to solve a privacy-friendly proof-of-work captcha before booking (spam protection).",
checked: getBool("captchaEnabled", false), ),
onCheckedChange: (v) => handleFieldChange("captchaEnabled", v), }),
"aria-label": t("calcom.editor.captchaEnabled.label", "Enable captcha") ],
} }),
) /* @__PURE__ */ jsxRuntimeExports.jsx(Switch, {
] }) "checked": getBool("captchaEnabled", false),
] }) "onCheckedChange": (v) => handleFieldChange("captchaEnabled", v),
] }), "aria-label": t("calcom.editor.captchaEnabled.label", "Enable captcha"),
/* @__PURE__ */ jsxRuntimeExports.jsxs(Card, { children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardHeader, { children: [ ],
}),
],
}),
],
}),
/* @__PURE__ */ jsxRuntimeExports.jsxs(Card, {
children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardHeader, {
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(CardTitle, { className: "text-base", children: t("calcom.editor.status.title", "Configuration status") }), /* @__PURE__ */ jsxRuntimeExports.jsx(CardTitle, { className: "text-base", children: t("calcom.editor.status.title", "Configuration status") }),
/* @__PURE__ */ jsxRuntimeExports.jsx(CardDescription, { children: t("calcom.editor.status.description", "Quick check of the values needed before this block renders bookings.") }) /* @__PURE__ */ jsxRuntimeExports.jsx(CardDescription, {
] }), children: t("calcom.editor.status.description", "Quick check of the values needed before this block renders bookings."),
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardContent, { className: "space-y-2", children: [ }),
],
}),
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardContent, {
className: "space-y-2",
children: [
renderStatusRow( renderStatusRow(
apiKeyReady, apiKeyReady,
t("calcom.editor.status.apiKey", "API key configured"), t("calcom.editor.status.apiKey", "API key configured"),
!apiKeyReady ? /* @__PURE__ */ jsxRuntimeExports.jsx("a", { href: "/admin/plugins?plugin=calcomblock", className: "text-xs text-primary hover:underline", children: t("calcom.editor.status.apiKey.configureLink", "Configure") }) : null !apiKeyReady ?
/* @__PURE__ */ jsxRuntimeExports.jsx("a", {
href: "/admin/plugins?plugin=calcomblock",
className: "text-xs text-primary hover:underline",
children: t("calcom.editor.status.apiKey.configureLink", "Configure"),
})
: null,
), ),
renderStatusRow(usernameReady, t("calcom.editor.status.username", "Account resolved")), renderStatusRow(usernameReady, t("calcom.editor.status.username", "Account resolved")),
renderStatusRow(eventTypeReady, t("calcom.editor.status.eventType", "Event type selected")), renderStatusRow(eventTypeReady, t("calcom.editor.status.eventType", "Event type selected")),
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 text-sm", children: [ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "flex items-center gap-2 text-sm",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "inline-flex h-4 w-4 items-center justify-center text-muted-foreground", children: "·" }), /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "inline-flex h-4 w-4 items-center justify-center text-muted-foreground", children: "·" }),
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-muted-foreground", children: t("calcom.editor.status.eventTypesAvailable", "{count} event types available").replace("{count}", String(eventTypes.length)) }) /* @__PURE__ */ jsxRuntimeExports.jsx("span", {
] }), className: "text-muted-foreground",
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "pt-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx( children: t("calcom.editor.status.eventTypesAvailable", "{count} event types available").replace("{count}", String(eventTypes.length)),
Button, }),
{ ],
type: "button", }),
size: "sm", /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
variant: "outline", className: "pt-2",
action: "open", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Button, {
entity: "calcom-page", "type": "button",
asChild: canOpenInCalcom, "size": "sm",
disabled: !canOpenInCalcom, "variant": "outline",
"action": "open",
"entity": "calcom-page",
"asChild": canOpenInCalcom,
"disabled": !canOpenInCalcom,
"aria-label": t("calcom.editor.status.openExternalAria", "Open Cal.com booking page in a new tab"), "aria-label": t("calcom.editor.status.openExternalAria", "Open Cal.com booking page in a new tab"),
children: canOpenInCalcom ? /* @__PURE__ */ jsxRuntimeExports.jsxs("a", { href: `https://cal.com/${calcomUsername}/${eventTypeSlug}`, target: "_blank", rel: "noopener noreferrer", children: [ "children":
/* @__PURE__ */ jsxRuntimeExports.jsx(ExternalLink, { className: "h-4 w-4", "aria-hidden": "true" }), canOpenInCalcom ?
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ml-1", children: t("calcom.editor.status.openExternal", "Open in Cal.com") }) /* @__PURE__ */ jsxRuntimeExports.jsxs("a", {
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [ href: `https://cal.com/${calcomUsername}/${eventTypeSlug}`,
/* @__PURE__ */ jsxRuntimeExports.jsx(ExternalLink, { className: "h-4 w-4", "aria-hidden": "true" }), target: "_blank",
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ml-1", children: t("calcom.editor.status.openExternal", "Open in Cal.com") }) rel: "noopener noreferrer",
] }) children: [
} /* @__PURE__ */ jsxRuntimeExports.jsx(ExternalLink, { "className": "h-4 w-4", "aria-hidden": "true" }),
) }) /* @__PURE__ */ jsxRuntimeExports.jsx("span", {
] }) className: "ml-1",
] }) children: t("calcom.editor.status.openExternal", "Open in Cal.com"),
] }), }),
/* @__PURE__ */ jsxRuntimeExports.jsx(TabsContent, { value: "content", className: "space-y-4 mt-4", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Card, { children: [ ],
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardHeader, { children: [ })
: /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, {
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(ExternalLink, { "className": "h-4 w-4", "aria-hidden": "true" }),
/* @__PURE__ */ jsxRuntimeExports.jsx("span", {
className: "ml-1",
children: t("calcom.editor.status.openExternal", "Open in Cal.com"),
}),
],
}),
}),
}),
],
}),
],
}),
],
}),
/* @__PURE__ */ jsxRuntimeExports.jsx(TabsContent, {
value: "content",
className: "space-y-4 mt-4",
children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Card, {
children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardHeader, {
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(CardTitle, { className: "text-base", children: t("calcom.editor.section.content.title", "Widget Content") }), /* @__PURE__ */ jsxRuntimeExports.jsx(CardTitle, { className: "text-base", children: t("calcom.editor.section.content.title", "Widget Content") }),
/* @__PURE__ */ jsxRuntimeExports.jsx(CardDescription, { children: t("calcom.editor.section.content.description", "Customize the text shown in the booking widget") }) /* @__PURE__ */ jsxRuntimeExports.jsx(CardDescription, {
] }), children: t("calcom.editor.section.content.description", "Customize the text shown in the booking widget"),
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardContent, { className: "space-y-4", children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-2", children: [ ],
}),
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardContent, {
className: "space-y-4",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "space-y-2",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(Label, { htmlFor: "title", children: t("calcom.editor.title.label", "Title") }), /* @__PURE__ */ jsxRuntimeExports.jsx(Label, { htmlFor: "title", children: t("calcom.editor.title.label", "Title") }),
/* @__PURE__ */ jsxRuntimeExports.jsx( /* @__PURE__ */ jsxRuntimeExports.jsx(Input, {
Input,
{
id: "title", id: "title",
value: getString("title"), value: getString("title"),
onChange: (e) => handleFieldChange("title", e.target.value), onChange: (e) => handleFieldChange("title", e.target.value),
placeholder: t("calcom.editor.title.placeholder", "Book a Meeting") placeholder: t("calcom.editor.title.placeholder", "Book a Meeting"),
} }),
), /* @__PURE__ */ jsxRuntimeExports.jsx("p", {
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-muted-foreground", children: t("calcom.editor.title.help", "Main heading shown above the calendar") }) className: "text-xs text-muted-foreground",
] }), children: t("calcom.editor.title.help", "Main heading shown above the calendar"),
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-2", children: [ }),
],
}),
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "space-y-2",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(Label, { htmlFor: "description", children: t("calcom.editor.description.label", "Description") }), /* @__PURE__ */ jsxRuntimeExports.jsx(Label, { htmlFor: "description", children: t("calcom.editor.description.label", "Description") }),
/* @__PURE__ */ jsxRuntimeExports.jsx( /* @__PURE__ */ jsxRuntimeExports.jsx(Textarea, {
Textarea,
{
id: "description", id: "description",
value: getString("description"), value: getString("description"),
onChange: (e) => handleFieldChange("description", e.target.value), onChange: (e) => handleFieldChange("description", e.target.value),
placeholder: t("calcom.editor.description.placeholder", "Choose a convenient time for your consultation..."), placeholder: t("calcom.editor.description.placeholder", "Choose a convenient time for your consultation..."),
rows: 3 rows: 3,
} }),
), /* @__PURE__ */ jsxRuntimeExports.jsx("p", {
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-muted-foreground", children: t("calcom.editor.description.help", "Optional text shown below the title") }) className: "text-xs text-muted-foreground",
] }), children: t("calcom.editor.description.help", "Optional text shown below the title"),
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-2", children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsx(Label, { htmlFor: "unavailableMessage", children: t("calcom.editor.unavailableMessage.label", "Booking unavailable message") }), ],
/* @__PURE__ */ jsxRuntimeExports.jsx( }),
Textarea, /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
{ className: "space-y-2",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(Label, {
htmlFor: "unavailableMessage",
children: t("calcom.editor.unavailableMessage.label", "Booking unavailable message"),
}),
/* @__PURE__ */ jsxRuntimeExports.jsx(Textarea, {
id: "unavailableMessage", id: "unavailableMessage",
value: getString("unavailableMessage"), value: getString("unavailableMessage"),
onChange: (e) => handleFieldChange("unavailableMessage", e.target.value), onChange: (e) => handleFieldChange("unavailableMessage", e.target.value),
placeholder: t( placeholder: t(
"calcom.editor.unavailableMessage.placeholder", "calcom.editor.unavailableMessage.placeholder",
"Sorry — we couldn't complete your booking online. Please use our contact form and we'll get you booked in." "Sorry — we couldn't complete your booking online. Please use our contact form and we'll get you booked in.",
), ),
rows: 3 rows: 3,
} }),
), /* @__PURE__ */ jsxRuntimeExports.jsx("p", {
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-muted-foreground", children: t("calcom.editor.unavailableMessage.help", "Shown if an online booking can't be completed. Leave blank to use the default.") }) className: "text-xs text-muted-foreground",
] }) children: t("calcom.editor.unavailableMessage.help", "Shown if an online booking can't be completed. Leave blank to use the default."),
] }) }),
] }) }) ],
] }) }); }),
],
}),
],
}),
}),
],
}),
});
} }
export { CalcomBlockEditor as default }; export { CalcomBlockEditor as default };

View File

@ -1,9 +1,37 @@
import { importShared } from './__federation_fn_import-hlt2XzeI.js'; import { importShared } from "./__federation_fn_import-hlt2XzeI.js";
import { j as jsxRuntimeExports } from './jsx-runtime-CvJTHeKY.js'; import { j as jsxRuntimeExports } from "./jsx-runtime-CvJTHeKY.js";
const {useState,useCallback,useEffect} = await importShared('react'); const { useState, useCallback, useEffect } = await importShared("react");
const {Card,CardContent,CardDescription,CardHeader,CardTitle,Input,Label,Button,Alert,AlertDescription,Badge,ScrollArea,Loader2,CheckCircle2,XCircle,AlertCircle,Eye,EyeOff,Key,Zap,Settings,Send,Copy,RefreshCw,toast,t,useAlertDialog} = await importShared('@block-ninja/ui'); const {
Card,
CardContent,
CardDescription,
CardHeader,
CardTitle,
Input,
Label,
Button,
Alert,
AlertDescription,
Badge,
ScrollArea,
Loader2,
CheckCircle2,
XCircle,
AlertCircle,
Eye,
EyeOff,
Key,
Zap,
Settings,
Send,
Copy,
RefreshCw,
toast,
t,
useAlertDialog,
} = await importShared("@block-ninja/ui");
const copyToClipboard = async (text) => { const copyToClipboard = async (text) => {
if (!text) return; if (!text) return;
@ -71,7 +99,7 @@ function CalcomSettings({ pluginName }) {
const res = await fetch(`${baseUrl}/settings`, { const res = await fetch(`${baseUrl}/settings`, {
method: "POST", method: "POST",
headers: { "Content-Type": "application/json" }, headers: { "Content-Type": "application/json" },
body: JSON.stringify({ api_key: apiKey }) body: JSON.stringify({ api_key: apiKey }),
}); });
if (res.ok) { if (res.ok) {
await loadSettings(); await loadSettings();
@ -107,7 +135,7 @@ function CalcomSettings({ pluginName }) {
const res = await fetch(`${baseUrl}/settings`, { const res = await fetch(`${baseUrl}/settings`, {
method: "POST", method: "POST",
headers: { "Content-Type": "application/json" }, headers: { "Content-Type": "application/json" },
body: JSON.stringify({ api_key: "" }) body: JSON.stringify({ api_key: "" }),
}); });
if (res.ok) { if (res.ok) {
await loadSettings(); await loadSettings();
@ -125,7 +153,7 @@ function CalcomSettings({ pluginName }) {
title: t("calcom.settings.webhook.rotateConfirmTitle", "Rotate webhook secret?"), title: t("calcom.settings.webhook.rotateConfirmTitle", "Rotate webhook secret?"),
message: t("calcom.settings.webhook.rotateConfirmMessage", "This invalidates the existing secret immediately. You'll need to update Cal.com to keep webhooks flowing."), message: t("calcom.settings.webhook.rotateConfirmMessage", "This invalidates the existing secret immediately. You'll need to update Cal.com to keep webhooks flowing."),
confirmLabel: t("calcom.settings.webhook.rotateConfirmLabel", "Rotate"), confirmLabel: t("calcom.settings.webhook.rotateConfirmLabel", "Rotate"),
variant: "destructive" variant: "destructive",
}); });
if (!confirmed) return; if (!confirmed) return;
setRotating(true); setRotating(true);
@ -134,7 +162,7 @@ function CalcomSettings({ pluginName }) {
const res = await fetch(`${baseUrl}/settings/rotate-webhook-secret`, { method: "POST" }); const res = await fetch(`${baseUrl}/settings/rotate-webhook-secret`, { method: "POST" });
if (res.ok) { if (res.ok) {
const data = await res.json(); const data = await res.json();
setSettings((prev) => prev ? { ...prev, webhook_secret_masked: data.webhook_secret_masked, webhook_secret_configured: true } : prev); setSettings((prev) => (prev ? { ...prev, webhook_secret_masked: data.webhook_secret_masked, webhook_secret_configured: true } : prev));
const successMsg = t("calcom.settings.webhook.rotated", "Webhook secret rotated. Update it in Cal.com."); const successMsg = t("calcom.settings.webhook.rotated", "Webhook secret rotated. Update it in Cal.com.");
setSaveMessage({ type: "success", text: successMsg }); setSaveMessage({ type: "success", text: successMsg });
toast.success(successMsg); toast.success(successMsg);
@ -148,237 +176,444 @@ function CalcomSettings({ pluginName }) {
} }
}; };
if (loading) { if (loading) {
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center justify-center py-8", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Loader2, { className: "h-6 w-6 animate-spin text-muted-foreground" }) }); return /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
className: "flex items-center justify-center py-8",
children: /* @__PURE__ */ jsxRuntimeExports.jsx(Loader2, { className: "h-6 w-6 animate-spin text-muted-foreground" }),
});
} }
const apiKeyVisibilityLabel = showApiKey ? t("calcom.settings.toggleVisibility.hide", "Hide") : t("calcom.settings.toggleVisibility.show", "Show"); const apiKeyVisibilityLabel = showApiKey ? t("calcom.settings.toggleVisibility.hide", "Hide") : t("calcom.settings.toggleVisibility.show", "Show");
const secretVisibilityLabel = showSecret ? t("calcom.settings.toggleVisibility.hide", "Hide") : t("calcom.settings.toggleVisibility.show", "Show"); const secretVisibilityLabel = showSecret ? t("calcom.settings.toggleVisibility.hide", "Hide") : t("calcom.settings.toggleVisibility.show", "Show");
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-6", children: [ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [ className: "space-y-6",
/* @__PURE__ */ jsxRuntimeExports.jsxs("h2", { className: "text-xl font-semibold flex items-center gap-2", children: [ children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(Settings, { className: "h-5 w-5" }), /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
t("calcom.settings.heading", "Cal.com Integration") children: [
] }), /* @__PURE__ */ jsxRuntimeExports.jsxs("h2", {
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm text-muted-foreground", children: t("calcom.settings.headingDescription", "Configure your Cal.com API key to enable booking functionality") }) className: "text-xl font-semibold flex items-center gap-2",
] }), children: [/* @__PURE__ */ jsxRuntimeExports.jsx(Settings, { className: "h-5 w-5" }), t("calcom.settings.heading", "Cal.com Integration")],
/* @__PURE__ */ jsxRuntimeExports.jsxs(Card, { children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardHeader, { children: [ /* @__PURE__ */ jsxRuntimeExports.jsx("p", {
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardTitle, { className: "text-base flex items-center gap-2", children: [ className: "text-sm text-muted-foreground",
/* @__PURE__ */ jsxRuntimeExports.jsx(Key, { className: "h-4 w-4" }), children: t("calcom.settings.headingDescription", "Configure your Cal.com API key to enable booking functionality"),
t("calcom.settings.apiKey.title", "API Key Status") }),
] }), ],
/* @__PURE__ */ jsxRuntimeExports.jsx(CardDescription, { children: t("calcom.settings.apiKey.description", "Your Cal.com API key is required for the booking widget to function") }) }),
] }), /* @__PURE__ */ jsxRuntimeExports.jsxs(Card, {
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardContent, { className: "space-y-4", children: [ children: [
settings?.api_key_configured ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between rounded-lg border bg-muted/30 p-3", children: [ /* @__PURE__ */ jsxRuntimeExports.jsxs(CardHeader, {
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-3", children: [ children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs(Badge, { variant: "default", className: "gap-1.5", children: [ /* @__PURE__ */ jsxRuntimeExports.jsxs(CardTitle, {
className: "text-base flex items-center gap-2",
children: [/* @__PURE__ */ jsxRuntimeExports.jsx(Key, { className: "h-4 w-4" }), t("calcom.settings.apiKey.title", "API Key Status")],
}),
/* @__PURE__ */ jsxRuntimeExports.jsx(CardDescription, {
children: t("calcom.settings.apiKey.description", "Your Cal.com API key is required for the booking widget to function"),
}),
],
}),
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardContent, {
className: "space-y-4",
children: [
settings?.api_key_configured ?
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "flex items-center justify-between rounded-lg border bg-muted/30 p-3",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "flex items-center gap-3",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs(Badge, {
variant: "default",
className: "gap-1.5",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(CheckCircle2, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ jsxRuntimeExports.jsx(CheckCircle2, { className: "h-3.5 w-3.5" }),
t("calcom.settings.apiKey.configuredLabel", "Configured") t("calcom.settings.apiKey.configuredLabel", "Configured"),
] }), ],
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-muted-foreground font-mono", children: settings.api_key_masked || t("calcom.settings.apiKey.maskedFallback", "***configured***") }) }),
] }), /* @__PURE__ */ jsxRuntimeExports.jsx("p", {
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, { action: "delete", entity: "plugin-setting", variant: "ghost", size: "sm", onClick: handleClear, disabled: saving, children: t("calcom.settings.apiKey.remove", "Remove") }) className: "text-xs text-muted-foreground font-mono",
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-3 rounded-lg border bg-muted/30 p-3", children: [ children: settings.api_key_masked || t("calcom.settings.apiKey.maskedFallback", "***configured***"),
/* @__PURE__ */ jsxRuntimeExports.jsxs(Badge, { variant: "outline", className: "gap-1.5", children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsx(XCircle, { className: "h-3.5 w-3.5" }), ],
t("calcom.settings.apiKey.notConfiguredLabel", "Not configured") }),
] }), /* @__PURE__ */ jsxRuntimeExports.jsx(Button, {
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-muted-foreground", children: t("calcom.settings.apiKey.notConfiguredHelp", "Enter your Cal.com API key below to enable booking") }) action: "delete",
] }), entity: "plugin-setting",
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-2", children: [ variant: "ghost",
/* @__PURE__ */ jsxRuntimeExports.jsx(Label, { htmlFor: "apiKey", children: settings?.api_key_configured ? t("calcom.settings.apiKey.updateLabel", "Update API Key") : t("calcom.settings.apiKey.label", "API Key") }), size: "sm",
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex gap-2", children: [ onClick: handleClear,
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative flex-1", children: [ disabled: saving,
/* @__PURE__ */ jsxRuntimeExports.jsx( children: t("calcom.settings.apiKey.remove", "Remove"),
Input, }),
{ ],
})
: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "flex items-center gap-3 rounded-lg border bg-muted/30 p-3",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs(Badge, {
variant: "outline",
className: "gap-1.5",
children: [/* @__PURE__ */ jsxRuntimeExports.jsx(XCircle, { className: "h-3.5 w-3.5" }), t("calcom.settings.apiKey.notConfiguredLabel", "Not configured")],
}),
/* @__PURE__ */ jsxRuntimeExports.jsx("p", {
className: "text-xs text-muted-foreground",
children: t("calcom.settings.apiKey.notConfiguredHelp", "Enter your Cal.com API key below to enable booking"),
}),
],
}),
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "space-y-2",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(Label, {
htmlFor: "apiKey",
children: settings?.api_key_configured ? t("calcom.settings.apiKey.updateLabel", "Update API Key") : t("calcom.settings.apiKey.label", "API Key"),
}),
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "flex gap-2",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "relative flex-1",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(Input, {
id: "apiKey", id: "apiKey",
type: showApiKey ? "text" : "password", type: showApiKey ? "text" : "password",
value: apiKey, value: apiKey,
onChange: (e) => setApiKey(e.target.value), onChange: (e) => setApiKey(e.target.value),
placeholder: t("calcom.settings.apiKey.placeholder", "cal_live_..."), placeholder: t("calcom.settings.apiKey.placeholder", "cal_live_..."),
className: "pr-10" className: "pr-10",
} }),
), /* @__PURE__ */ jsxRuntimeExports.jsx(Button, {
/* @__PURE__ */ jsxRuntimeExports.jsx( "type": "button",
Button, "variant": "ghost",
{ "action": "toggle",
type: "button", "entity": "api-key-visibility",
variant: "ghost", "onClick": () => setShowApiKey(!showApiKey),
action: "toggle",
entity: "api-key-visibility",
onClick: () => setShowApiKey(!showApiKey),
"aria-label": apiKeyVisibilityLabel, "aria-label": apiKeyVisibilityLabel,
className: "absolute right-3 top-1/2 -translate-y-1/2 h-auto p-0 text-muted-foreground hover:bg-transparent hover:text-foreground", "className": "absolute right-3 top-1/2 -translate-y-1/2 h-auto p-0 text-muted-foreground hover:bg-transparent hover:text-foreground",
children: showApiKey ? /* @__PURE__ */ jsxRuntimeExports.jsx(EyeOff, { className: "h-4 w-4" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Eye, { className: "h-4 w-4" }) "children":
} showApiKey ?
) /* @__PURE__ */ jsxRuntimeExports.jsx(EyeOff, { className: "h-4 w-4" })
] }), : /* @__PURE__ */ jsxRuntimeExports.jsx(Eye, { className: "h-4 w-4" }),
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, { action: "save", entity: "plugin-setting", onClick: handleSave, disabled: saving || !apiKey.trim(), children: saving ? /* @__PURE__ */ jsxRuntimeExports.jsx(Loader2, { className: "h-4 w-4 animate-spin" }) : t("calcom.settings.apiKey.save", "Save") }) }),
] }), ],
/* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-xs text-muted-foreground", children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, {
action: "save",
entity: "plugin-setting",
onClick: handleSave,
disabled: saving || !apiKey.trim(),
children: saving ? /* @__PURE__ */ jsxRuntimeExports.jsx(Loader2, { className: "h-4 w-4 animate-spin" }) : t("calcom.settings.apiKey.save", "Save"),
}),
],
}),
/* @__PURE__ */ jsxRuntimeExports.jsxs("p", {
className: "text-xs text-muted-foreground",
children: [
t("calcom.settings.apiKey.helpPrefix", "Get your API key from"), t("calcom.settings.apiKey.helpPrefix", "Get your API key from"),
" ", " ",
/* @__PURE__ */ jsxRuntimeExports.jsx("a", { href: "https://app.cal.com/settings/developer/api-keys", target: "_blank", rel: "noopener noreferrer", className: "text-primary hover:underline", children: t("calcom.settings.apiKey.helpLink", "Cal.com API Settings") }) /* @__PURE__ */ jsxRuntimeExports.jsx("a", {
] }) href: "https://app.cal.com/settings/developer/api-keys",
] }), target: "_blank",
saveMessage && /* @__PURE__ */ jsxRuntimeExports.jsx(Alert, { variant: saveMessage.type === "error" ? "destructive" : "default", children: /* @__PURE__ */ jsxRuntimeExports.jsx(AlertDescription, { children: saveMessage.text }) }) rel: "noopener noreferrer",
] }) className: "text-primary hover:underline",
] }), children: t("calcom.settings.apiKey.helpLink", "Cal.com API Settings"),
settings?.api_key_configured && /* @__PURE__ */ jsxRuntimeExports.jsxs(Card, { children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardHeader, { children: [ ],
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardTitle, { className: "text-base flex items-center gap-2", children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsx(Zap, { className: "h-4 w-4" }), ],
t("calcom.settings.test.title", "Test Connection") }),
] }), saveMessage &&
/* @__PURE__ */ jsxRuntimeExports.jsx(CardDescription, { children: t("calcom.settings.test.description", "Verify your API key works and see available event types") }) /* @__PURE__ */ jsxRuntimeExports.jsx(Alert, {
] }), variant: saveMessage.type === "error" ? "destructive" : "default",
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardContent, { className: "space-y-4", children: [ children: /* @__PURE__ */ jsxRuntimeExports.jsx(AlertDescription, { children: saveMessage.text }),
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, { action: "settings", entity: "plugin-connection", onClick: handleTest, disabled: testing, children: testing ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }), ],
t("calcom.settings.test.testing", "Testing...") }),
] }) : t("calcom.settings.test.button", "Test Connection") }), ],
testResult && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "space-y-3", children: testResult.success ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsxs(Alert, { children: [ settings?.api_key_configured &&
/* @__PURE__ */ jsxRuntimeExports.jsxs(Card, {
children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardHeader, {
children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardTitle, {
className: "text-base flex items-center gap-2",
children: [/* @__PURE__ */ jsxRuntimeExports.jsx(Zap, { className: "h-4 w-4" }), t("calcom.settings.test.title", "Test Connection")],
}),
/* @__PURE__ */ jsxRuntimeExports.jsx(CardDescription, { children: t("calcom.settings.test.description", "Verify your API key works and see available event types") }),
],
}),
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardContent, {
className: "space-y-4",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, {
action: "settings",
entity: "plugin-connection",
onClick: handleTest,
disabled: testing,
children:
testing ?
/* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, {
children: [/* @__PURE__ */ jsxRuntimeExports.jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }), t("calcom.settings.test.testing", "Testing...")],
})
: t("calcom.settings.test.button", "Test Connection"),
}),
testResult &&
/* @__PURE__ */ jsxRuntimeExports.jsx("div", {
className: "space-y-3",
children:
testResult.success ?
/* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, {
children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs(Alert, {
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(CheckCircle2, { className: "h-4 w-4 text-success" }), /* @__PURE__ */ jsxRuntimeExports.jsx(CheckCircle2, { className: "h-4 w-4 text-success" }),
/* @__PURE__ */ jsxRuntimeExports.jsxs(AlertDescription, { className: "ml-2", children: [ /* @__PURE__ */ jsxRuntimeExports.jsxs(AlertDescription, {
className: "ml-2",
children: [
t("calcom.settings.test.successPrefix", "Connection successful! Found"), t("calcom.settings.test.successPrefix", "Connection successful! Found"),
" ", " ",
testResult.event_types?.length || 0, testResult.event_types?.length || 0,
" ", " ",
t("calcom.settings.test.successSuffix", "event types.") t("calcom.settings.test.successSuffix", "event types."),
] }) ],
] }), }),
testResult.event_types && testResult.event_types.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(ScrollArea, { className: "max-h-96 rounded-lg border", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("table", { className: "w-full text-sm", children: [ ],
/* @__PURE__ */ jsxRuntimeExports.jsx("thead", { className: "bg-muted", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("tr", { children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsx("th", { className: "text-left px-3 py-2 font-medium", children: t("calcom.settings.test.tableEventType", "Event Type") }), testResult.event_types &&
/* @__PURE__ */ jsxRuntimeExports.jsx("th", { className: "text-left px-3 py-2 font-medium", children: t("calcom.settings.test.tableSlug", "Slug") }) testResult.event_types.length > 0 &&
] }) }), /* @__PURE__ */ jsxRuntimeExports.jsx(ScrollArea, {
/* @__PURE__ */ jsxRuntimeExports.jsx("tbody", { children: testResult.event_types.map((et) => /* @__PURE__ */ jsxRuntimeExports.jsxs("tr", { className: "border-t", children: [ className: "max-h-96 rounded-lg border",
children: /* @__PURE__ */ jsxRuntimeExports.jsxs("table", {
className: "w-full text-sm",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx("thead", {
className: "bg-muted",
children: /* @__PURE__ */ jsxRuntimeExports.jsxs("tr", {
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx("th", {
className: "text-left px-3 py-2 font-medium",
children: t("calcom.settings.test.tableEventType", "Event Type"),
}),
/* @__PURE__ */ jsxRuntimeExports.jsx("th", {
className: "text-left px-3 py-2 font-medium",
children: t("calcom.settings.test.tableSlug", "Slug"),
}),
],
}),
}),
/* @__PURE__ */ jsxRuntimeExports.jsx("tbody", {
children: testResult.event_types.map((et) =>
/* @__PURE__ */ jsxRuntimeExports.jsxs(
"tr",
{
className: "border-t",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { className: "px-3 py-2", children: et.title }), /* @__PURE__ */ jsxRuntimeExports.jsx("td", { className: "px-3 py-2", children: et.title }),
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { className: "px-3 py-2 font-mono text-xs", children: et.slug }) /* @__PURE__ */ jsxRuntimeExports.jsx("td", {
] }, et.id)) }) className: "px-3 py-2 font-mono text-xs",
] }) }) children: et.slug,
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs(Alert, { variant: "destructive", children: [ }),
],
},
et.id,
),
),
}),
],
}),
}),
],
})
: /* @__PURE__ */ jsxRuntimeExports.jsxs(Alert, {
variant: "destructive",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(XCircle, { className: "h-4 w-4" }), /* @__PURE__ */ jsxRuntimeExports.jsx(XCircle, { className: "h-4 w-4" }),
/* @__PURE__ */ jsxRuntimeExports.jsx(AlertDescription, { className: "ml-2", children: testResult.error || t("calcom.settings.test.failure", "Connection failed") }) /* @__PURE__ */ jsxRuntimeExports.jsx(AlertDescription, {
] }) }) className: "ml-2",
] }) children: testResult.error || t("calcom.settings.test.failure", "Connection failed"),
] }), }),
settings?.api_key_configured && /* @__PURE__ */ jsxRuntimeExports.jsxs(Card, { children: [ ],
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardHeader, { children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardTitle, { className: "text-base flex items-center gap-2", children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsx(Send, { className: "h-4 w-4" }), ],
t("calcom.settings.webhook.title", "Webhook") }),
] }), ],
/* @__PURE__ */ jsxRuntimeExports.jsx(CardDescription, { children: t("calcom.settings.webhook.description", "Configure this URL in Cal.com → Settings → Developer → Webhooks to receive booking events.") }) }),
] }), settings?.api_key_configured &&
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardContent, { className: "space-y-4", children: [ /* @__PURE__ */ jsxRuntimeExports.jsxs(Card, {
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-2", children: [ children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardHeader, {
children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardTitle, {
className: "text-base flex items-center gap-2",
children: [/* @__PURE__ */ jsxRuntimeExports.jsx(Send, { className: "h-4 w-4" }), t("calcom.settings.webhook.title", "Webhook")],
}),
/* @__PURE__ */ jsxRuntimeExports.jsx(CardDescription, {
children: t("calcom.settings.webhook.description", "Configure this URL in Cal.com → Settings → Developer → Webhooks to receive booking events."),
}),
],
}),
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardContent, {
className: "space-y-4",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "space-y-2",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(Label, { htmlFor: "webhookUrl", children: t("calcom.settings.webhook.urlLabel", "Webhook URL") }), /* @__PURE__ */ jsxRuntimeExports.jsx(Label, { htmlFor: "webhookUrl", children: t("calcom.settings.webhook.urlLabel", "Webhook URL") }),
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex gap-2", children: [ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
/* @__PURE__ */ jsxRuntimeExports.jsx(Input, { id: "webhookUrl", readOnly: true, value: settings?.webhook_url || "", className: "flex-1 font-mono text-xs" }), className: "flex gap-2",
/* @__PURE__ */ jsxRuntimeExports.jsx( children: [
Button, /* @__PURE__ */ jsxRuntimeExports.jsx(Input, {
{ id: "webhookUrl",
action: "copy", readOnly: true,
entity: "webhook-url", value: settings?.webhook_url || "",
variant: "outline", className: "flex-1 font-mono text-xs",
size: "sm", }),
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, {
"action": "copy",
"entity": "webhook-url",
"variant": "outline",
"size": "sm",
"aria-label": t("calcom.settings.webhook.copyUrl", "Copy webhook URL"), "aria-label": t("calcom.settings.webhook.copyUrl", "Copy webhook URL"),
onClick: () => copyToClipboard(settings?.webhook_url || ""), "onClick": () => copyToClipboard(settings?.webhook_url || ""),
children: /* @__PURE__ */ jsxRuntimeExports.jsx(Copy, { className: "h-4 w-4" }) "children": /* @__PURE__ */ jsxRuntimeExports.jsx(Copy, { className: "h-4 w-4" }),
} }),
) ],
] }) }),
] }), ],
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-2", children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "space-y-2",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(Label, { htmlFor: "webhookSecret", children: t("calcom.settings.webhook.secretLabel", "Webhook Secret") }), /* @__PURE__ */ jsxRuntimeExports.jsx(Label, { htmlFor: "webhookSecret", children: t("calcom.settings.webhook.secretLabel", "Webhook Secret") }),
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex gap-2", children: [ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative flex-1", children: [ className: "flex gap-2",
/* @__PURE__ */ jsxRuntimeExports.jsx( children: [
Input, /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
{ className: "relative flex-1",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(Input, {
id: "webhookSecret", id: "webhookSecret",
type: showSecret ? "text" : "password", type: showSecret ? "text" : "password",
readOnly: true, readOnly: true,
value: settings?.webhook_secret_masked || t("calcom.settings.webhook.secretNotConfigured", "Not configured"), value: settings?.webhook_secret_masked || t("calcom.settings.webhook.secretNotConfigured", "Not configured"),
className: "pr-10 font-mono text-xs" className: "pr-10 font-mono text-xs",
} }),
), /* @__PURE__ */ jsxRuntimeExports.jsx(Button, {
/* @__PURE__ */ jsxRuntimeExports.jsx( "type": "button",
Button, "variant": "ghost",
{ "action": "toggle",
type: "button", "entity": "webhook-secret-visibility",
variant: "ghost", "onClick": () => setShowSecret(!showSecret),
action: "toggle",
entity: "webhook-secret-visibility",
onClick: () => setShowSecret(!showSecret),
"aria-label": secretVisibilityLabel, "aria-label": secretVisibilityLabel,
className: "absolute right-3 top-1/2 -translate-y-1/2 h-auto p-0 text-muted-foreground hover:bg-transparent hover:text-foreground", "className": "absolute right-3 top-1/2 -translate-y-1/2 h-auto p-0 text-muted-foreground hover:bg-transparent hover:text-foreground",
children: showSecret ? /* @__PURE__ */ jsxRuntimeExports.jsx(EyeOff, { className: "h-4 w-4" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Eye, { className: "h-4 w-4" }) "children":
} showSecret ?
) /* @__PURE__ */ jsxRuntimeExports.jsx(EyeOff, { className: "h-4 w-4" })
] }), : /* @__PURE__ */ jsxRuntimeExports.jsx(Eye, { className: "h-4 w-4" }),
/* @__PURE__ */ jsxRuntimeExports.jsx( }),
Button, ],
{ }),
action: "copy", /* @__PURE__ */ jsxRuntimeExports.jsx(Button, {
entity: "webhook-secret", "action": "copy",
variant: "outline", "entity": "webhook-secret",
size: "sm", "variant": "outline",
"size": "sm",
"aria-label": t("calcom.settings.webhook.copySecret", "Copy webhook secret"), "aria-label": t("calcom.settings.webhook.copySecret", "Copy webhook secret"),
onClick: () => copyToClipboard(settings?.webhook_secret_masked || ""), "onClick": () => copyToClipboard(settings?.webhook_secret_masked || ""),
children: /* @__PURE__ */ jsxRuntimeExports.jsx(Copy, { className: "h-4 w-4" }) "children": /* @__PURE__ */ jsxRuntimeExports.jsx(Copy, { className: "h-4 w-4" }),
} }),
), /* @__PURE__ */ jsxRuntimeExports.jsx(Button, {
/* @__PURE__ */ jsxRuntimeExports.jsx( "action": "rotate",
Button, "entity": "webhook-secret",
{ "variant": "outline",
action: "rotate", "size": "sm",
entity: "webhook-secret",
variant: "outline",
size: "sm",
"aria-label": t("calcom.settings.webhook.rotate", "Rotate webhook secret"), "aria-label": t("calcom.settings.webhook.rotate", "Rotate webhook secret"),
onClick: handleRotate, "onClick": handleRotate,
disabled: rotating, "disabled": rotating,
children: rotating ? /* @__PURE__ */ jsxRuntimeExports.jsx(Loader2, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(RefreshCw, { className: "h-4 w-4" }) "children":
} rotating ?
) /* @__PURE__ */ jsxRuntimeExports.jsx(Loader2, { className: "h-4 w-4 animate-spin" })
] }), : /* @__PURE__ */ jsxRuntimeExports.jsx(RefreshCw, { className: "h-4 w-4" }),
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-muted-foreground", children: t( }),
],
}),
/* @__PURE__ */ jsxRuntimeExports.jsx("p", {
className: "text-xs text-muted-foreground",
children: t(
"calcom.settings.webhook.secretHelp", "calcom.settings.webhook.secretHelp",
"Cal.com displays the secret only once. Regenerating invalidates the previous value immediately — update it in Cal.com after rotating." "Cal.com displays the secret only once. Regenerating invalidates the previous value immediately — update it in Cal.com after rotating.",
) }) ),
] }), }),
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-sm", children: settings?.last_event_at ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 text-foreground", children: [ ],
}),
/* @__PURE__ */ jsxRuntimeExports.jsx("div", {
className: "text-sm",
children:
settings?.last_event_at ?
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "flex items-center gap-2 text-foreground",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(CheckCircle2, { className: "h-4 w-4 text-success" }), /* @__PURE__ */ jsxRuntimeExports.jsx(CheckCircle2, { className: "h-4 w-4 text-success" }),
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { children: [ /* @__PURE__ */ jsxRuntimeExports.jsxs("span", {
children: [
t("calcom.settings.webhook.lastEventPrefix", "Last event"), t("calcom.settings.webhook.lastEventPrefix", "Last event"),
" ", " ",
formatRelativeTime(settings.last_event_at), formatRelativeTime(settings.last_event_at),
settings.last_event_type && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [ settings.last_event_type &&
/* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, {
children: [
" — ", " — ",
/* @__PURE__ */ jsxRuntimeExports.jsx("code", { className: "font-mono text-xs", children: settings.last_event_type }) /* @__PURE__ */ jsxRuntimeExports.jsx("code", { className: "font-mono text-xs", children: settings.last_event_type }),
] }) ],
] }) }),
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 text-muted-foreground", children: [ ],
}),
],
})
: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
className: "flex items-center gap-2 text-muted-foreground",
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(AlertCircle, { className: "h-4 w-4" }), /* @__PURE__ */ jsxRuntimeExports.jsx(AlertCircle, { className: "h-4 w-4" }),
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: t("calcom.settings.webhook.waitingForEvent", "Status: Waiting for first event") }) /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: t("calcom.settings.webhook.waitingForEvent", "Status: Waiting for first event") }),
] }) }) ],
] }) }),
] }), }),
/* @__PURE__ */ jsxRuntimeExports.jsxs(Card, { children: [ ],
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardHeader, { children: [ }),
],
}),
/* @__PURE__ */ jsxRuntimeExports.jsxs(Card, {
children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardHeader, {
children: [
/* @__PURE__ */ jsxRuntimeExports.jsx(CardTitle, { className: "text-base", children: t("calcom.settings.docs.title", "Documentation") }), /* @__PURE__ */ jsxRuntimeExports.jsx(CardTitle, { className: "text-base", children: t("calcom.settings.docs.title", "Documentation") }),
/* @__PURE__ */ jsxRuntimeExports.jsx(CardDescription, { children: t("calcom.settings.docs.description", "Reference material for working with the Cal.com plugin.") }) /* @__PURE__ */ jsxRuntimeExports.jsx(CardDescription, { children: t("calcom.settings.docs.description", "Reference material for working with the Cal.com plugin.") }),
] }), ],
/* @__PURE__ */ jsxRuntimeExports.jsxs(CardContent, { className: "space-y-2 text-sm", children: [ }),
/* @__PURE__ */ jsxRuntimeExports.jsx("a", { href: "https://cal.com/docs/api-reference/v2", target: "_blank", rel: "noopener noreferrer", className: "text-primary hover:underline block", children: t("calcom.settings.docs.calcomApi", "Cal.com API documentation") }), /* @__PURE__ */ jsxRuntimeExports.jsxs(CardContent, {
/* @__PURE__ */ jsxRuntimeExports.jsx("a", { href: "/admin/docs/calcom-plugin", target: "_blank", rel: "noopener noreferrer", className: "text-primary hover:underline block", children: t("calcom.settings.docs.pluginGuide", "BlockNinja plugin guide") }) className: "space-y-2 text-sm",
] }) children: [
] }) /* @__PURE__ */ jsxRuntimeExports.jsx("a", {
] }); href: "https://cal.com/docs/api-reference/v2",
target: "_blank",
rel: "noopener noreferrer",
className: "text-primary hover:underline block",
children: t("calcom.settings.docs.calcomApi", "Cal.com API documentation"),
}),
/* @__PURE__ */ jsxRuntimeExports.jsx("a", {
href: "/admin/docs/calcom-plugin",
target: "_blank",
rel: "noopener noreferrer",
className: "text-primary hover:underline block",
children: t("calcom.settings.docs.pluginGuide", "BlockNinja plugin guide"),
}),
],
}),
],
}),
],
});
} }
export { CalcomSettings as default }; export { CalcomSettings as default };

View File

@ -48,9 +48,7 @@ function combineVersion(major, minor, patch, preRelease2) {
return mainVersion2; return mainVersion2;
} }
function parseHyphen(range) { function parseHyphen(range) {
return range.replace( return range.replace(parseRegex(hyphenRange), (_range, from, fromMajor, fromMinor, fromPatch, _fromPreRelease, _fromBuild, to, toMajor, toMinor, toPatch, toPreRelease) => {
parseRegex(hyphenRange),
(_range, from, fromMajor, fromMinor, fromPatch, _fromPreRelease, _fromBuild, to, toMajor, toMinor, toPatch, toPreRelease) => {
if (isXVersion(fromMajor)) { if (isXVersion(fromMajor)) {
from = ""; from = "";
} else if (isXVersion(fromMinor)) { } else if (isXVersion(fromMinor)) {
@ -72,8 +70,7 @@ function parseHyphen(range) {
to = `<=${to}`; to = `<=${to}`;
} }
return `${from} ${to}`.trim(); return `${from} ${to}`.trim();
} });
);
} }
function parseComparatorTrim(range) { function parseComparatorTrim(range) {
return range.replace(parseRegex(comparatorTrim), "$1$2$3"); return range.replace(parseRegex(comparatorTrim), "$1$2$3");
@ -85,10 +82,11 @@ function parseCaretTrim(range) {
return range.replace(parseRegex(caretTrim), "$1^"); return range.replace(parseRegex(caretTrim), "$1^");
} }
function parseCarets(range) { function parseCarets(range) {
return range.trim().split(/\s+/).map((rangeVersion) => { return range
return rangeVersion.replace( .trim()
parseRegex(caret), .split(/\s+/)
(_, major, minor, patch, preRelease2) => { .map((rangeVersion) => {
return rangeVersion.replace(parseRegex(caret), (_, major, minor, patch, preRelease2) => {
if (isXVersion(major)) { if (isXVersion(major)) {
return ""; return "";
} else if (isXVersion(minor)) { } else if (isXVersion(minor)) {
@ -119,15 +117,16 @@ function parseCarets(range) {
} }
return `>=${major}.${minor}.${patch} <${+major + 1}.0.0-0`; return `>=${major}.${minor}.${patch} <${+major + 1}.0.0-0`;
} }
} });
); })
}).join(" "); .join(" ");
} }
function parseTildes(range) { function parseTildes(range) {
return range.trim().split(/\s+/).map((rangeVersion) => { return range
return rangeVersion.replace( .trim()
parseRegex(tilde), .split(/\s+/)
(_, major, minor, patch, preRelease2) => { .map((rangeVersion) => {
return rangeVersion.replace(parseRegex(tilde), (_, major, minor, patch, preRelease2) => {
if (isXVersion(major)) { if (isXVersion(major)) {
return ""; return "";
} else if (isXVersion(minor)) { } else if (isXVersion(minor)) {
@ -138,15 +137,15 @@ function parseTildes(range) {
return `>=${major}.${minor}.${patch}-${preRelease2} <${major}.${+minor + 1}.0-0`; return `>=${major}.${minor}.${patch}-${preRelease2} <${major}.${+minor + 1}.0-0`;
} }
return `>=${major}.${minor}.${patch} <${major}.${+minor + 1}.0-0`; return `>=${major}.${minor}.${patch} <${major}.${+minor + 1}.0-0`;
} });
); })
}).join(" "); .join(" ");
} }
function parseXRanges(range) { function parseXRanges(range) {
return range.split(/\s+/).map((rangeVersion) => { return range
return rangeVersion.trim().replace( .split(/\s+/)
parseRegex(xRange), .map((rangeVersion) => {
(ret, gtlt2, major, minor, patch, preRelease2) => { return rangeVersion.trim().replace(parseRegex(xRange), (ret, gtlt2, major, minor, patch, preRelease2) => {
const isXMajor = isXVersion(major); const isXMajor = isXVersion(major);
const isXMinor = isXMajor || isXVersion(minor); const isXMinor = isXMajor || isXVersion(minor);
const isXPatch = isXMinor || isXVersion(patch); const isXPatch = isXMinor || isXVersion(patch);
@ -193,9 +192,9 @@ function parseXRanges(range) {
return `>=${major}.${minor}.0${preRelease2} <${major}.${+minor + 1}.0-0`; return `>=${major}.${minor}.0${preRelease2} <${major}.${+minor + 1}.0-0`;
} }
return ret; return ret;
} });
); })
}).join(" "); .join(" ");
} }
function parseStar(range) { function parseStar(range) {
return range.trim().replace(parseRegex(star), ""); return range.trim().replace(parseRegex(star), "");
@ -246,7 +245,12 @@ function comparePreRelease(rangeAtom, versionAtom) {
return 0; return 0;
} }
function compareVersion(rangeAtom, versionAtom) { function compareVersion(rangeAtom, versionAtom) {
return compareAtom(rangeAtom.major, versionAtom.major) || compareAtom(rangeAtom.minor, versionAtom.minor) || compareAtom(rangeAtom.patch, versionAtom.patch) || comparePreRelease(rangeAtom, versionAtom); return (
compareAtom(rangeAtom.major, versionAtom.major) ||
compareAtom(rangeAtom.minor, versionAtom.minor) ||
compareAtom(rangeAtom.patch, versionAtom.patch) ||
comparePreRelease(rangeAtom, versionAtom)
);
} }
function eq(rangeAtom, versionAtom) { function eq(rangeAtom, versionAtom) {
return rangeAtom.version === versionAtom.version; return rangeAtom.version === versionAtom.version;
@ -272,79 +276,46 @@ function compare(rangeAtom, versionAtom) {
} }
} }
function parseComparatorString(range) { function parseComparatorString(range) {
return pipe( return pipe(parseCarets, parseTildes, parseXRanges, parseStar)(range);
parseCarets,
parseTildes,
parseXRanges,
parseStar
)(range);
} }
function parseRange(range) { function parseRange(range) {
return pipe( return pipe(parseHyphen, parseComparatorTrim, parseTildeTrim, parseCaretTrim)(range.trim()).split(/\s+/).join(" ");
parseHyphen,
parseComparatorTrim,
parseTildeTrim,
parseCaretTrim
)(range.trim()).split(/\s+/).join(" ");
} }
function satisfy(version, range) { function satisfy(version, range) {
if (!version) { if (!version) {
return false; return false;
} }
const parsedRange = parseRange(range); const parsedRange = parseRange(range);
const parsedComparator = parsedRange.split(" ").map((rangeVersion) => parseComparatorString(rangeVersion)).join(" "); const parsedComparator = parsedRange
.split(" ")
.map((rangeVersion) => parseComparatorString(rangeVersion))
.join(" ");
const comparators = parsedComparator.split(/\s+/).map((comparator2) => parseGTE0(comparator2)); const comparators = parsedComparator.split(/\s+/).map((comparator2) => parseGTE0(comparator2));
const extractedVersion = extractComparator(version); const extractedVersion = extractComparator(version);
if (!extractedVersion) { if (!extractedVersion) {
return false; return false;
} }
const [ const [, versionOperator, , versionMajor, versionMinor, versionPatch, versionPreRelease] = extractedVersion;
,
versionOperator,
,
versionMajor,
versionMinor,
versionPatch,
versionPreRelease
] = extractedVersion;
const versionAtom = { const versionAtom = {
version: combineVersion( version: combineVersion(versionMajor, versionMinor, versionPatch, versionPreRelease),
versionMajor,
versionMinor,
versionPatch,
versionPreRelease
),
major: versionMajor, major: versionMajor,
minor: versionMinor, minor: versionMinor,
patch: versionPatch, patch: versionPatch,
preRelease: versionPreRelease == null ? void 0 : versionPreRelease.split(".") preRelease: versionPreRelease == null ? void 0 : versionPreRelease.split("."),
}; };
for (const comparator2 of comparators) { for (const comparator2 of comparators) {
const extractedComparator = extractComparator(comparator2); const extractedComparator = extractComparator(comparator2);
if (!extractedComparator) { if (!extractedComparator) {
return false; return false;
} }
const [ const [, rangeOperator, , rangeMajor, rangeMinor, rangePatch, rangePreRelease] = extractedComparator;
,
rangeOperator,
,
rangeMajor,
rangeMinor,
rangePatch,
rangePreRelease
] = extractedComparator;
const rangeAtom = { const rangeAtom = {
operator: rangeOperator, operator: rangeOperator,
version: combineVersion( version: combineVersion(rangeMajor, rangeMinor, rangePatch, rangePreRelease),
rangeMajor,
rangeMinor,
rangePatch,
rangePreRelease
),
major: rangeMajor, major: rangeMajor,
minor: rangeMinor, minor: rangeMinor,
patch: rangePatch, patch: rangePatch,
preRelease: rangePreRelease == null ? void 0 : rangePreRelease.split(".") preRelease: rangePreRelease == null ? void 0 : rangePreRelease.split("."),
}; };
if (!compare(rangeAtom, versionAtom)) { if (!compare(rangeAtom, versionAtom)) {
return false; return false;
@ -356,17 +327,19 @@ function satisfy(version, range) {
const currentImports = {}; const currentImports = {};
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
const moduleMap = {'react':{get:()=>()=>__federation_import(new URL('__federation_shared_react-DoKb58Ht.js', import.meta.url).href),import:true},'react-dom':{get:()=>()=>__federation_import(new URL('__federation_shared_react-dom-DU2-P0kt.js', import.meta.url).href),import:true},'@block-ninja/ui':{get:()=>()=>__federation_import(new URL('__federation_shared_@block-ninja/ui-C3CAr7wz.js', import.meta.url).href),import:true}}; const moduleMap = {
"react": { get: () => () => __federation_import(new URL("__federation_shared_react-DoKb58Ht.js", import.meta.url).href), import: true },
"react-dom": { get: () => () => __federation_import(new URL("__federation_shared_react-dom-DU2-P0kt.js", import.meta.url).href), import: true },
"@block-ninja/ui": { get: () => () => __federation_import(new URL("__federation_shared_@block-ninja/ui-C3CAr7wz.js", import.meta.url).href), import: true },
};
const moduleCache = Object.create(null); const moduleCache = Object.create(null);
async function importShared(name, shareScope = 'default') { async function importShared(name, shareScope = "default") {
return moduleCache[name] return moduleCache[name] ? new Promise((r) => r(moduleCache[name])) : (await getSharedFromRuntime(name, shareScope)) || getSharedFromLocal(name);
? new Promise((r) => r(moduleCache[name]))
: (await getSharedFromRuntime(name, shareScope)) || getSharedFromLocal(name)
} }
// eslint-disable-next-line // eslint-disable-next-line
async function __federation_import(name) { async function __federation_import(name) {
currentImports[name] ??= import(name); currentImports[name] ??= import(name);
return currentImports[name] return currentImports[name];
} }
async function getSharedFromRuntime(name, shareScope) { async function getSharedFromRuntime(name, shareScope) {
let module = null; let module = null;
@ -375,16 +348,12 @@ async function getSharedFromRuntime(name, shareScope) {
const requiredVersion = moduleMap[name]?.requiredVersion; const requiredVersion = moduleMap[name]?.requiredVersion;
const hasRequiredVersion = !!requiredVersion; const hasRequiredVersion = !!requiredVersion;
if (hasRequiredVersion) { if (hasRequiredVersion) {
const versionKey = Object.keys(versionObj).find((version) => const versionKey = Object.keys(versionObj).find((version) => satisfy(version, requiredVersion));
satisfy(version, requiredVersion)
);
if (versionKey) { if (versionKey) {
const versionValue = versionObj[versionKey]; const versionValue = versionObj[versionKey];
module = await (await versionValue.get())(); module = await (await versionValue.get())();
} else { } else {
console.log( console.log(`provider support ${name}(${versionKey}) is not satisfied requiredVersion(\${moduleMap[name].requiredVersion})`);
`provider support ${name}(${versionKey}) is not satisfied requiredVersion(\${moduleMap[name].requiredVersion})`
);
} }
} else { } else {
const versionKey = Object.keys(versionObj)[0]; const versionKey = Object.keys(versionObj)[0];
@ -393,33 +362,31 @@ async function getSharedFromRuntime(name, shareScope) {
} }
} }
if (module) { if (module) {
return flattenModule(module, name) return flattenModule(module, name);
} }
} }
async function getSharedFromLocal(name) { async function getSharedFromLocal(name) {
if (moduleMap[name]?.import) { if (moduleMap[name]?.import) {
let module = await (await moduleMap[name].get())(); let module = await (await moduleMap[name].get())();
return flattenModule(module, name) return flattenModule(module, name);
} else { } else {
console.error( console.error(`consumer config import=false,so cant use callback shared module`);
`consumer config import=false,so cant use callback shared module`
);
} }
} }
function flattenModule(module, name) { function flattenModule(module, name) {
// use a shared module which export default a function will getting error 'TypeError: xxx is not a function' // use a shared module which export default a function will getting error 'TypeError: xxx is not a function'
if (typeof module.default === 'function') { if (typeof module.default === "function") {
Object.keys(module).forEach((key) => { Object.keys(module).forEach((key) => {
if (key !== 'default') { if (key !== "default") {
module.default[key] = module[key]; module.default[key] = module[key];
} }
}); });
moduleCache[name] = module.default; moduleCache[name] = module.default;
return module.default return module.default;
} }
if (module.default) module = Object.assign({}, module.default, module); if (module.default) module = Object.assign({}, module.default, module);
moduleCache[name] = module; moduleCache[name] = module;
return module return module;
} }
export { importShared, getSharedFromLocal as importSharedLocal, getSharedFromRuntime as importSharedRuntime }; export { importShared, getSharedFromLocal as importSharedLocal, getSharedFromRuntime as importSharedRuntime };

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,7 @@
import { g as getDefaultExportFromCjs } from './_commonjsHelpers-B85MJLTf.js'; import { g as getDefaultExportFromCjs } from "./_commonjsHelpers-B85MJLTf.js";
import { r as requireReact } from './index-DQGM2Mpm.js'; import { r as requireReact } from "./index-DQGM2Mpm.js";
var reactExports = requireReact(); var reactExports = requireReact();
const index = /*@__PURE__*/getDefaultExportFromCjs(reactExports); const index = /*@__PURE__*/ getDefaultExportFromCjs(reactExports);
export { index as default }; export { index as default };

View File

@ -1,7 +1,7 @@
import { g as getDefaultExportFromCjs } from './_commonjsHelpers-B85MJLTf.js'; import { g as getDefaultExportFromCjs } from "./_commonjsHelpers-B85MJLTf.js";
import { r as requireReactDom } from './index-eoEhLOdg.js'; import { r as requireReactDom } from "./index-eoEhLOdg.js";
var reactDomExports = requireReactDom(); var reactDomExports = requireReactDom();
const index = /*@__PURE__*/getDefaultExportFromCjs(reactDomExports); const index = /*@__PURE__*/ getDefaultExportFromCjs(reactDomExports);
export { index as default }; export { index as default };

View File

@ -1,5 +1,5 @@
function getDefaultExportFromCjs (x) { function getDefaultExportFromCjs(x) {
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
} }
export { getDefaultExportFromCjs as g }; export { getDefaultExportFromCjs as g };

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
import { importShared } from './__federation_fn_import-hlt2XzeI.js'; import { importShared } from "./__federation_fn_import-hlt2XzeI.js";
import { X as requireShim } from './index-Bs--Ol2m.js'; import { X as requireShim } from "./index-Bs--Ol2m.js";
/** /**
* @license lucide-react v0.468.0 - ISC * @license lucide-react v0.468.0 - ISC
@ -9,9 +9,13 @@ import { X as requireShim } from './index-Bs--Ol2m.js';
*/ */
const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(); const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
const mergeClasses = (...classes) => classes.filter((className, index, array) => { const mergeClasses = (...classes) =>
classes
.filter((className, index, array) => {
return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index; return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
}).join(" ").trim(); })
.join(" ")
.trim();
/** /**
* @license lucide-react v0.468.0 - ISC * @license lucide-react v0.468.0 - ISC
@ -29,7 +33,7 @@ var defaultAttributes = {
stroke: "currentColor", stroke: "currentColor",
strokeWidth: 2, strokeWidth: 2,
strokeLinecap: "round", strokeLinecap: "round",
strokeLinejoin: "round" strokeLinejoin: "round",
}; };
/** /**
@ -39,19 +43,9 @@ var defaultAttributes = {
* See the LICENSE file in the root directory of this source tree. * See the LICENSE file in the root directory of this source tree.
*/ */
const {forwardRef: forwardRef$1,createElement: createElement$1} = await importShared('react'); const { forwardRef: forwardRef$1, createElement: createElement$1 } = await importShared("react");
const Icon = forwardRef$1( const Icon = forwardRef$1(({ color = "currentColor", size = 24, strokeWidth = 2, absoluteStrokeWidth, className = "", children, iconNode, ...rest }, ref) => {
({
color = "currentColor",
size = 24,
strokeWidth = 2,
absoluteStrokeWidth,
className = "",
children,
iconNode,
...rest
}, ref) => {
return createElement$1( return createElement$1(
"svg", "svg",
{ {
@ -60,17 +54,13 @@ const Icon = forwardRef$1(
width: size, width: size,
height: size, height: size,
stroke: color, stroke: color,
strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth, strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,
className: mergeClasses("lucide", className), className: mergeClasses("lucide", className),
...rest ...rest,
}, },
[ [...iconNode.map(([tag, attrs]) => createElement$1(tag, attrs)), ...(Array.isArray(children) ? children : [children])],
...iconNode.map(([tag, attrs]) => createElement$1(tag, attrs)),
...Array.isArray(children) ? children : [children]
]
); );
} });
);
/** /**
* @license lucide-react v0.468.0 - ISC * @license lucide-react v0.468.0 - ISC
@ -79,16 +69,16 @@ const Icon = forwardRef$1(
* See the LICENSE file in the root directory of this source tree. * See the LICENSE file in the root directory of this source tree.
*/ */
const {forwardRef,createElement} = await importShared('react'); const { forwardRef, createElement } = await importShared("react");
const createLucideIcon = (iconName, iconNode) => { const createLucideIcon = (iconName, iconNode) => {
const Component = forwardRef( const Component = forwardRef(({ className, ...props }, ref) =>
({ className, ...props }, ref) => createElement(Icon, { createElement(Icon, {
ref, ref,
iconNode, iconNode,
className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className), className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),
...props ...props,
}) }),
); );
Component.displayName = `${iconName}`; Component.displayName = `${iconName}`;
return Component; return Component;
@ -101,14 +91,13 @@ const createLucideIcon = (iconName, iconNode) => {
* See the LICENSE file in the root directory of this source tree. * See the LICENSE file in the root directory of this source tree.
*/ */
const List = createLucideIcon("List", [ const List = createLucideIcon("List", [
["path", { d: "M3 12h.01", key: "nlz23k" }], ["path", { d: "M3 12h.01", key: "nlz23k" }],
["path", { d: "M3 18h.01", key: "1tta3j" }], ["path", { d: "M3 18h.01", key: "1tta3j" }],
["path", { d: "M3 6h.01", key: "1rqtza" }], ["path", { d: "M3 6h.01", key: "1rqtza" }],
["path", { d: "M8 12h13", key: "1za7za" }], ["path", { d: "M8 12h13", key: "1za7za" }],
["path", { d: "M8 18h13", key: "1lx6n3" }], ["path", { d: "M8 18h13", key: "1lx6n3" }],
["path", { d: "M8 6h13", key: "ik3vkj" }] ["path", { d: "M8 6h13", key: "ik3vkj" }],
]); ]);
var shimExports = requireShim(); var shimExports = requireShim();

View File

@ -1,4 +1,4 @@
import { importShared } from './__federation_fn_import-hlt2XzeI.js'; import { importShared } from "./__federation_fn_import-hlt2XzeI.js";
function _arrayLikeToArray(r, a) { function _arrayLikeToArray(r, a) {
(null == a || a > r.length) && (a = r.length); (null == a || a > r.length) && (a = r.length);
@ -9,15 +9,20 @@ function _arrayWithHoles(r) {
if (Array.isArray(r)) return r; if (Array.isArray(r)) return r;
} }
function _defineProperty$1(e, r, t) { function _defineProperty$1(e, r, t) {
return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { return (
(r = _toPropertyKey(r)) in e ?
Object.defineProperty(e, r, {
value: t, value: t,
enumerable: true, enumerable: true,
configurable: true, configurable: true,
writable: true writable: true,
}) : e[r] = t, e; })
: (e[r] = t),
e
);
} }
function _iterableToArrayLimit(r, l) { function _iterableToArrayLimit(r, l) {
var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; var t = null == r ? null : ("undefined" != typeof Symbol && r[Symbol.iterator]) || r["@@iterator"];
if (null != t) { if (null != t) {
var e, var e,
n, n,
@ -27,12 +32,13 @@ function _iterableToArrayLimit(r, l) {
f = true, f = true,
o = false; o = false;
try { try {
if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); if (((i = (t = t.call(r)).next), 0 === l));
else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
} catch (r) { } catch (r) {
o = true, n = r; ((o = true), (n = r));
} finally { } finally {
try { try {
if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; if (!f && null != t.return && ((u = t.return()), Object(u) !== u)) return;
} finally { } finally {
if (o) throw n; if (o) throw n;
} }
@ -47,18 +53,23 @@ function ownKeys$1(e, r) {
var t = Object.keys(e); var t = Object.keys(e);
if (Object.getOwnPropertySymbols) { if (Object.getOwnPropertySymbols) {
var o = Object.getOwnPropertySymbols(e); var o = Object.getOwnPropertySymbols(e);
r && (o = o.filter(function (r) { (r &&
(o = o.filter(function (r) {
return Object.getOwnPropertyDescriptor(e, r).enumerable; return Object.getOwnPropertyDescriptor(e, r).enumerable;
})), t.push.apply(t, o); })),
t.push.apply(t, o));
} }
return t; return t;
} }
function _objectSpread2$1(e) { function _objectSpread2$1(e) {
for (var r = 1; r < arguments.length; r++) { for (var r = 1; r < arguments.length; r++) {
var t = null != arguments[r] ? arguments[r] : {}; var t = null != arguments[r] ? arguments[r] : {};
r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { r % 2 ?
ownKeys$1(Object(t), true).forEach(function (r) {
_defineProperty$1(e, r, t[r]); _defineProperty$1(e, r, t[r]);
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { })
: Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t))
: ownKeys$1(Object(t)).forEach(function (r) {
Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
}); });
} }
@ -71,14 +82,15 @@ function _objectWithoutProperties(e, t) {
i = _objectWithoutPropertiesLoose(e, t); i = _objectWithoutPropertiesLoose(e, t);
if (Object.getOwnPropertySymbols) { if (Object.getOwnPropertySymbols) {
var n = Object.getOwnPropertySymbols(e); var n = Object.getOwnPropertySymbols(e);
for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); for (r = 0; r < n.length; r++) ((o = n[r]), -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]));
} }
return i; return i;
} }
function _objectWithoutPropertiesLoose(r, e) { function _objectWithoutPropertiesLoose(r, e) {
if (null == r) return {}; if (null == r) return {};
var t = {}; var t = {};
for (var n in r) if ({}.hasOwnProperty.call(r, n)) { for (var n in r)
if ({}.hasOwnProperty.call(r, n)) {
if (-1 !== e.indexOf(n)) continue; if (-1 !== e.indexOf(n)) continue;
t[n] = r[n]; t[n] = r[n];
} }
@ -105,7 +117,12 @@ function _unsupportedIterableToArray(r, a) {
if (r) { if (r) {
if ("string" == typeof r) return _arrayLikeToArray(r, a); if ("string" == typeof r) return _arrayLikeToArray(r, a);
var t = {}.toString.call(r).slice(8, -1); var t = {}.toString.call(r).slice(8, -1);
return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; return (
"Object" === t && r.constructor && (t = r.constructor.name),
"Map" === t || "Set" === t ? Array.from(r)
: "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a)
: void 0
);
} }
} }
@ -115,7 +132,7 @@ function _defineProperty(obj, key, value) {
value: value, value: value,
enumerable: true, enumerable: true,
configurable: true, configurable: true,
writable: true writable: true,
}); });
} else { } else {
obj[key] = value; obj[key] = value;
@ -129,7 +146,8 @@ function ownKeys(object, enumerableOnly) {
if (Object.getOwnPropertySymbols) { if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object); var symbols = Object.getOwnPropertySymbols(object);
if (enumerableOnly) symbols = symbols.filter(function (sym) { if (enumerableOnly)
symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable; return Object.getOwnPropertyDescriptor(object, sym).enumerable;
}); });
keys.push.apply(keys, symbols); keys.push.apply(keys, symbols);
@ -178,7 +196,9 @@ function curry$1(fn) {
args[_key2] = arguments[_key2]; args[_key2] = arguments[_key2];
} }
return args.length >= fn.length ? fn.apply(this, args) : function () { return args.length >= fn.length ?
fn.apply(this, args)
: function () {
for (var _len3 = arguments.length, nextArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { for (var _len3 = arguments.length, nextArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
nextArgs[_key3] = arguments[_key3]; nextArgs[_key3] = arguments[_key3];
} }
@ -189,7 +209,7 @@ function curry$1(fn) {
} }
function isObject$1(value) { function isObject$1(value) {
return {}.toString.call(value).includes('Object'); return {}.toString.call(value).includes("Object");
} }
function isEmpty(obj) { function isEmpty(obj) {
@ -197,7 +217,7 @@ function isEmpty(obj) {
} }
function isFunction(value) { function isFunction(value) {
return typeof value === 'function'; return typeof value === "function";
} }
function hasOwnProperty(object, property) { function hasOwnProperty(object, property) {
@ -205,28 +225,35 @@ function hasOwnProperty(object, property) {
} }
function validateChanges(initial, changes) { function validateChanges(initial, changes) {
if (!isObject$1(changes)) errorHandler$1('changeType'); if (!isObject$1(changes)) errorHandler$1("changeType");
if (Object.keys(changes).some(function (field) { if (
Object.keys(changes).some(function (field) {
return !hasOwnProperty(initial, field); return !hasOwnProperty(initial, field);
})) errorHandler$1('changeField'); })
)
errorHandler$1("changeField");
return changes; return changes;
} }
function validateSelector(selector) { function validateSelector(selector) {
if (!isFunction(selector)) errorHandler$1('selectorType'); if (!isFunction(selector)) errorHandler$1("selectorType");
} }
function validateHandler(handler) { function validateHandler(handler) {
if (!(isFunction(handler) || isObject$1(handler))) errorHandler$1('handlerType'); if (!(isFunction(handler) || isObject$1(handler))) errorHandler$1("handlerType");
if (isObject$1(handler) && Object.values(handler).some(function (_handler) { if (
isObject$1(handler) &&
Object.values(handler).some(function (_handler) {
return !isFunction(_handler); return !isFunction(_handler);
})) errorHandler$1('handlersType'); })
)
errorHandler$1("handlersType");
} }
function validateInitial(initial) { function validateInitial(initial) {
if (!initial) errorHandler$1('initialIsRequired'); if (!initial) errorHandler$1("initialIsRequired");
if (!isObject$1(initial)) errorHandler$1('initialType'); if (!isObject$1(initial)) errorHandler$1("initialType");
if (isEmpty(initial)) errorHandler$1('initialContent'); if (isEmpty(initial)) errorHandler$1("initialContent");
} }
function throwError$1(errorMessages, type) { function throwError$1(errorMessages, type) {
@ -234,22 +261,22 @@ function throwError$1(errorMessages, type) {
} }
var errorMessages$1 = { var errorMessages$1 = {
initialIsRequired: 'initial state is required', initialIsRequired: "initial state is required",
initialType: 'initial state should be an object', initialType: "initial state should be an object",
initialContent: 'initial state shouldn\'t be an empty object', initialContent: "initial state shouldn't be an empty object",
handlerType: 'handler should be an object or a function', handlerType: "handler should be an object or a function",
handlersType: 'all handlers should be a functions', handlersType: "all handlers should be a functions",
selectorType: 'selector should be a function', selectorType: "selector should be a function",
changeType: 'provided value of changes should be an object', changeType: "provided value of changes should be an object",
changeField: 'it seams you want to change a field in the state which is not specified in the "initial" state', changeField: 'it seams you want to change a field in the state which is not specified in the "initial" state',
"default": 'an unknown error accured in `state-local` package' default: "an unknown error accured in `state-local` package",
}; };
var errorHandler$1 = curry$1(throwError$1)(errorMessages$1); var errorHandler$1 = curry$1(throwError$1)(errorMessages$1);
var validators$1 = { var validators$1 = {
changes: validateChanges, changes: validateChanges,
selector: validateSelector, selector: validateSelector,
handler: validateHandler, handler: validateHandler,
initial: validateInitial initial: validateInitial,
}; };
function create(initial) { function create(initial) {
@ -257,7 +284,7 @@ function create(initial) {
validators$1.initial(initial); validators$1.initial(initial);
validators$1.handler(handler); validators$1.handler(handler);
var state = { var state = {
current: initial current: initial,
}; };
var didUpdate = curry$1(didStateUpdate)(state, handler); var didUpdate = curry$1(didStateUpdate)(state, handler);
var update = curry$1(updateState)(state); var update = curry$1(updateState)(state);
@ -265,7 +292,10 @@ function create(initial) {
var getChanges = curry$1(extractChanges)(state); var getChanges = curry$1(extractChanges)(state);
function getState() { function getState() {
var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (state) { var selector =
arguments.length > 0 && arguments[0] !== undefined ?
arguments[0]
: function (state) {
return state; return state;
}; };
validators$1.selector(selector); validators$1.selector(selector);
@ -289,7 +319,9 @@ function updateState(state, changes) {
} }
function didStateUpdate(state, handler, changes) { function didStateUpdate(state, handler, changes) {
isFunction(handler) ? handler(state.current) : Object.keys(changes).forEach(function (field) { isFunction(handler) ?
handler(state.current)
: Object.keys(changes).forEach(function (field) {
var _handler$field; var _handler$field;
return (_handler$field = handler[field]) === null || _handler$field === void 0 ? void 0 : _handler$field.call(handler, state.current[field]); return (_handler$field = handler[field]) === null || _handler$field === void 0 ? void 0 : _handler$field.call(handler, state.current[field]);
@ -298,13 +330,13 @@ function didStateUpdate(state, handler, changes) {
} }
var index = { var index = {
create: create create: create,
}; };
var config$1 = { var config$1 = {
paths: { paths: {
vs: 'https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs' vs: "https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs",
} },
}; };
function curry(fn) { function curry(fn) {
@ -313,7 +345,9 @@ function curry(fn) {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key]; args[_key] = arguments[_key];
} }
return args.length >= fn.length ? fn.apply(this, args) : function () { return args.length >= fn.length ?
fn.apply(this, args)
: function () {
for (var _len2 = arguments.length, nextArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { for (var _len2 = arguments.length, nextArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
nextArgs[_key2] = arguments[_key2]; nextArgs[_key2] = arguments[_key2];
} }
@ -323,7 +357,7 @@ function curry(fn) {
} }
function isObject(value) { function isObject(value) {
return {}.toString.call(value).includes('Object'); return {}.toString.call(value).includes("Object");
} }
/** /**
@ -332,14 +366,14 @@ function isObject(value) {
* @return {Object} config - the validated configuration object * @return {Object} config - the validated configuration object
*/ */
function validateConfig(config) { function validateConfig(config) {
if (!config) errorHandler('configIsRequired'); if (!config) errorHandler("configIsRequired");
if (!isObject(config)) errorHandler('configType'); if (!isObject(config)) errorHandler("configType");
if (config.urls) { if (config.urls) {
informAboutDeprecation(); informAboutDeprecation();
return { return {
paths: { paths: {
vs: config.urls.monacoBase vs: config.urls.monacoBase,
} },
}; };
} }
return config; return config;
@ -355,14 +389,15 @@ function throwError(errorMessages, type) {
throw new Error(errorMessages[type] || errorMessages["default"]); throw new Error(errorMessages[type] || errorMessages["default"]);
} }
var errorMessages = { var errorMessages = {
configIsRequired: 'the configuration object is required', configIsRequired: "the configuration object is required",
configType: 'the configuration object should be an object', configType: "the configuration object should be an object",
"default": 'an unknown error accured in `@monaco-editor/loader` package', default: "an unknown error accured in `@monaco-editor/loader` package",
deprecation: "Deprecation warning!\n You are using deprecated way of configuration.\n\n Instead of using\n monaco.config({ urls: { monacoBase: '...' } })\n use\n monaco.config({ paths: { vs: '...' } })\n\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\n " deprecation:
"Deprecation warning!\n You are using deprecated way of configuration.\n\n Instead of using\n monaco.config({ urls: { monacoBase: '...' } })\n use\n monaco.config({ paths: { vs: '...' } })\n\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\n ",
}; };
var errorHandler = curry(throwError)(errorMessages); var errorHandler = curry(throwError)(errorMessages);
var validators = { var validators = {
config: validateConfig config: validateConfig,
}; };
var compose = function compose() { var compose = function compose() {
@ -390,8 +425,8 @@ function merge(target, source) {
// The source (has been changed) is https://github.com/facebook/react/issues/5465#issuecomment-157888325 // The source (has been changed) is https://github.com/facebook/react/issues/5465#issuecomment-157888325
var CANCELATION_MESSAGE = { var CANCELATION_MESSAGE = {
type: 'cancelation', type: "cancelation",
msg: 'operation is manually canceled' msg: "operation is manually canceled",
}; };
function makeCancelable(promise) { function makeCancelable(promise) {
var hasCanceled_ = false; var hasCanceled_ = false;
@ -401,9 +436,12 @@ function makeCancelable(promise) {
}); });
promise["catch"](reject); promise["catch"](reject);
}); });
return wrappedPromise.cancel = function () { return (
return hasCanceled_ = true; (wrappedPromise.cancel = function () {
}, wrappedPromise; return (hasCanceled_ = true);
}),
wrappedPromise
);
} }
var _excluded = ["monaco"]; var _excluded = ["monaco"];
@ -414,7 +452,7 @@ var _state$create = index.create({
isInitialized: false, isInitialized: false,
resolve: null, resolve: null,
reject: null, reject: null,
monaco: null monaco: null,
}), }),
_state$create2 = _slicedToArray(_state$create, 2), _state$create2 = _slicedToArray(_state$create, 2),
getState = _state$create2[0], getState = _state$create2[0],
@ -431,7 +469,7 @@ function config(globalConfig) {
setState(function (state) { setState(function (state) {
return { return {
config: merge(state.config, config), config: merge(state.config, config),
monaco: monaco monaco: monaco,
}; };
}); });
} }
@ -448,12 +486,12 @@ function init() {
return { return {
monaco: monaco, monaco: monaco,
isInitialized: isInitialized, isInitialized: isInitialized,
resolve: resolve resolve: resolve,
}; };
}); });
if (!state.isInitialized) { if (!state.isInitialized) {
setState({ setState({
isInitialized: true isInitialized: true,
}); });
if (state.monaco) { if (state.monaco) {
state.resolve(state.monaco); state.resolve(state.monaco);
@ -484,8 +522,8 @@ function injectScripts(script) {
* @return {Object} - the created HTML script element * @return {Object} - the created HTML script element
*/ */
function createScript(src) { function createScript(src) {
var script = document.createElement('script'); var script = document.createElement("script");
return src && (script.src = src), script; return (src && (script.src = src), script);
} }
/** /**
@ -498,7 +536,7 @@ function getMonacoLoaderScript(configureLoader) {
reject = _ref2.reject; reject = _ref2.reject;
return { return {
config: config, config: config,
reject: reject reject: reject,
}; };
}); });
var loaderScript = createScript("".concat(state.config.paths.vs, "/loader.js")); var loaderScript = createScript("".concat(state.config.paths.vs, "/loader.js"));
@ -520,13 +558,13 @@ function configureLoader() {
return { return {
config: config, config: config,
resolve: resolve, resolve: resolve,
reject: reject reject: reject,
}; };
}); });
var require = window.require; var require = window.require;
require.config(state.config); require.config(state.config);
require(['vs/editor/editor.main'], function (loaded) { require(["vs/editor/editor.main"], function (loaded) {
var monaco = loaded.m /* for 0.53 & 0.54 */ || loaded /* for other versions */; var monaco = loaded.m /* for 0.53 & 0.54 */ || loaded; /* for other versions */
storeMonacoInstance(monaco); storeMonacoInstance(monaco);
state.resolve(monaco); state.resolve(monaco);
}, function (error) { }, function (error) {
@ -540,7 +578,7 @@ function configureLoader() {
function storeMonacoInstance(monaco) { function storeMonacoInstance(monaco) {
if (!getState().monaco) { if (!getState().monaco) {
setState({ setState({
monaco: monaco monaco: monaco,
}); });
} }
} }
@ -559,28 +597,363 @@ function __getMonacoInstance() {
var wrapperPromise = new Promise(function (resolve, reject) { var wrapperPromise = new Promise(function (resolve, reject) {
return setState({ return setState({
resolve: resolve, resolve: resolve,
reject: reject reject: reject,
}); });
}); });
var loader = { var loader = {
config: config, config: config,
init: init, init: init,
__getMonacoInstance: __getMonacoInstance __getMonacoInstance: __getMonacoInstance,
}; };
const {memo:Te} = await importShared('react'); const { memo: Te } = await importShared("react");
const ke = await importShared('react'); const ke = await importShared("react");
const {useState:re,useRef:S,useCallback:oe,useEffect:ne} = ke; const { useState: re, useRef: S, useCallback: oe, useEffect: ne } = ke;
const {memo:ye} = await importShared('react'); const { memo: ye } = await importShared("react");
const K = await importShared('react'); const K = await importShared("react");
var le={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},v=le;const me = await importShared('react'); var le = { wrapper: { display: "flex", position: "relative", textAlign: "initial" }, fullWidth: { width: "100%" }, hide: { display: "none" } },
var ae={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},Y=ae;function Me({children:e}){return me.createElement("div",{style:Y.container},e)}var Z=Me;var $=Z;function Ee({width:e,height:r,isEditorReady:n,loading:t,_ref:a,className:m,wrapperProps:E}){return K.createElement("section",{style:{...v.wrapper,width:e,height:r},...E},!n&&K.createElement($,null,t),K.createElement("div",{ref:a,style:{...v.fullWidth,...!n&&v.hide},className:m}))}var ee=Ee;var H=ye(ee);const {useEffect:xe} = await importShared('react'); v = le;
function Ce(e){xe(e,[]);}var k=Ce;const {useEffect:ge,useRef:Re} = await importShared('react'); const me = await importShared("react");
function he(e,r,n=true){let t=Re(true);ge(t.current||!n?()=>{t.current=false;}:e,r);}var l=he;function D(){}function h(e,r,n,t){return De(e,t)||be(e,r,n,t)}function De(e,r){return e.editor.getModel(te(e,r))}function be(e,r,n,t){return e.editor.createModel(r,n,t?te(e,t):void 0)}function te(e,r){return e.Uri.parse(r)}function Oe({original:e,modified:r,language:n,originalLanguage:t,modifiedLanguage:a,originalModelPath:m,modifiedModelPath:E,keepCurrentOriginalModel:g=false,keepCurrentModifiedModel:N=false,theme:x="light",loading:P="Loading...",options:y={},height:V="100%",width:z="100%",className:F,wrapperProps:j={},beforeMount:A=D,onMount:q=D}){let[M,O]=re(false),[T,s]=re(true),u=S(null),c=S(null),w=S(null),d=S(q),o=S(A),b=S(false);k(()=>{let i=loader.init();return i.then(f=>(c.current=f)&&s(false)).catch(f=>f?.type!=="cancelation"&&console.error("Monaco initialization: error:",f)),()=>u.current?I():i.cancel()}),l(()=>{if(u.current&&c.current){let i=u.current.getOriginalEditor(),f=h(c.current,e||"",t||n||"text",m||"");f!==i.getModel()&&i.setModel(f);}},[m],M),l(()=>{if(u.current&&c.current){let i=u.current.getModifiedEditor(),f=h(c.current,r||"",a||n||"text",E||"");f!==i.getModel()&&i.setModel(f);}},[E],M),l(()=>{let i=u.current.getModifiedEditor();i.getOption(c.current.editor.EditorOption.readOnly)?i.setValue(r||""):r!==i.getValue()&&(i.executeEdits("",[{range:i.getModel().getFullModelRange(),text:r||"",forceMoveMarkers:true}]),i.pushUndoStop());},[r],M),l(()=>{u.current?.getModel()?.original.setValue(e||"");},[e],M),l(()=>{let{original:i,modified:f}=u.current.getModel();c.current.editor.setModelLanguage(i,t||n||"text"),c.current.editor.setModelLanguage(f,a||n||"text");},[n,t,a],M),l(()=>{c.current?.editor.setTheme(x);},[x],M),l(()=>{u.current?.updateOptions(y);},[y],M);let L=oe(()=>{if(!c.current)return;o.current(c.current);let i=h(c.current,e||"",t||n||"text",m||""),f=h(c.current,r||"",a||n||"text",E||"");u.current?.setModel({original:i,modified:f});},[n,r,a,e,t,m,E]),U=oe(()=>{!b.current&&w.current&&(u.current=c.current.editor.createDiffEditor(w.current,{automaticLayout:true,...y}),L(),c.current?.editor.setTheme(x),O(true),b.current=true);},[y,x,L]);ne(()=>{M&&d.current(u.current,c.current);},[M]),ne(()=>{!T&&!M&&U();},[T,M,U]);function I(){let i=u.current?.getModel();g||i?.original?.dispose(),N||i?.modified?.dispose(),u.current?.dispose();}return ke.createElement(H,{width:z,height:V,isEditorReady:M,loading:P,_ref:w,className:F,wrapperProps:j})}var ie=Oe;var we=Te(ie);const {useState:Ie} = await importShared('react'); var ae = { container: { display: "flex", height: "100%", width: "100%", justifyContent: "center", alignItems: "center" } },
function Pe(){let[e,r]=Ie(loader.__getMonacoInstance());return k(()=>{let n;return e||(n=loader.init(),n.then(t=>{r(t);})),()=>n?.cancel()}),e}var Le=Pe;const {memo:ze} = await importShared('react'); Y = ae;
const We = await importShared('react'); function Me({ children: e }) {
const {useState:ue,useEffect:W,useRef:C,useCallback:_e} = We; return me.createElement("div", { style: Y.container }, e);
const {useEffect:Ue,useRef:ve} = await importShared('react'); }
function He(e){let r=ve();return Ue(()=>{r.current=e;},[e]),r.current}var se=He;var _=new Map;function Ve({defaultValue:e,defaultLanguage:r,defaultPath:n,value:t,language:a,path:m,theme:E="light",line:g,loading:N="Loading...",options:x={},overrideServices:P={},saveViewState:y=true,keepCurrentModel:V=false,width:z="100%",height:F="100%",className:j,wrapperProps:A={},beforeMount:q=D,onMount:M=D,onChange:O,onValidate:T=D}){let[s,u]=ue(false),[c,w]=ue(true),d=C(null),o=C(null),b=C(null),L=C(M),U=C(q),I=C(),i=C(t),f=se(m),Q=C(false),B=C(false);k(()=>{let p=loader.init();return p.then(R=>(d.current=R)&&w(false)).catch(R=>R?.type!=="cancelation"&&console.error("Monaco initialization: error:",R)),()=>o.current?pe():p.cancel()}),l(()=>{let p=h(d.current,e||t||"",r||a||"",m||n||"");p!==o.current?.getModel()&&(y&&_.set(f,o.current?.saveViewState()),o.current?.setModel(p),y&&o.current?.restoreViewState(_.get(m)));},[m],s),l(()=>{o.current?.updateOptions(x);},[x],s),l(()=>{!o.current||t===void 0||(o.current.getOption(d.current.editor.EditorOption.readOnly)?o.current.setValue(t):t!==o.current.getValue()&&(B.current=true,o.current.executeEdits("",[{range:o.current.getModel().getFullModelRange(),text:t,forceMoveMarkers:true}]),o.current.pushUndoStop(),B.current=false));},[t],s),l(()=>{let p=o.current?.getModel();p&&a&&d.current?.editor.setModelLanguage(p,a);},[a],s),l(()=>{g!==void 0&&o.current?.revealLine(g);},[g],s),l(()=>{d.current?.editor.setTheme(E);},[E],s);let X=_e(()=>{if(!(!b.current||!d.current)&&!Q.current){U.current(d.current);let p=m||n,R=h(d.current,t||e||"",r||a||"",p||"");o.current=d.current?.editor.create(b.current,{model:R,automaticLayout:true,...x},P),y&&o.current.restoreViewState(_.get(p)),d.current.editor.setTheme(E),g!==void 0&&o.current.revealLine(g),u(true),Q.current=true;}},[e,r,n,t,a,m,x,P,y,E,g]);W(()=>{s&&L.current(o.current,d.current);},[s]),W(()=>{!c&&!s&&X();},[c,s,X]),i.current=t,W(()=>{s&&O&&(I.current?.dispose(),I.current=o.current?.onDidChangeModelContent(p=>{B.current||O(o.current.getValue(),p);}));},[s,O]),W(()=>{if(s){let p=d.current.editor.onDidChangeMarkers(R=>{let G=o.current.getModel()?.uri;if(G&&R.find(J=>J.path===G.path)){let J=d.current.editor.getModelMarkers({resource:G});T?.(J);}});return ()=>{p?.dispose();}}return ()=>{}},[s,T]);function pe(){I.current?.dispose(),V?y&&_.set(m,o.current.saveViewState()):o.current.getModel()?.dispose(),o.current.dispose();}return We.createElement(H,{width:z,height:F,isEditorReady:s,loading:N,_ref:b,className:j,wrapperProps:A})}var fe=Ve;var de=ze(fe);var Ft=de; var Z = Me;
var $ = Z;
function Ee({ width: e, height: r, isEditorReady: n, loading: t, _ref: a, className: m, wrapperProps: E }) {
return K.createElement(
"section",
{ style: { ...v.wrapper, width: e, height: r }, ...E },
!n && K.createElement($, null, t),
K.createElement("div", { ref: a, style: { ...v.fullWidth, ...(!n && v.hide) }, className: m }),
);
}
var ee = Ee;
var H = ye(ee);
const { useEffect: xe } = await importShared("react");
function Ce(e) {
xe(e, []);
}
var k = Ce;
const { useEffect: ge, useRef: Re } = await importShared("react");
function he(e, r, n = true) {
let t = Re(true);
ge(
t.current || !n ?
() => {
t.current = false;
}
: e,
r,
);
}
var l = he;
function D() {}
function h(e, r, n, t) {
return De(e, t) || be(e, r, n, t);
}
function De(e, r) {
return e.editor.getModel(te(e, r));
}
function be(e, r, n, t) {
return e.editor.createModel(r, n, t ? te(e, t) : void 0);
}
function te(e, r) {
return e.Uri.parse(r);
}
function Oe({
original: e,
modified: r,
language: n,
originalLanguage: t,
modifiedLanguage: a,
originalModelPath: m,
modifiedModelPath: E,
keepCurrentOriginalModel: g = false,
keepCurrentModifiedModel: N = false,
theme: x = "light",
loading: P = "Loading...",
options: y = {},
height: V = "100%",
width: z = "100%",
className: F,
wrapperProps: j = {},
beforeMount: A = D,
onMount: q = D,
}) {
let [M, O] = re(false),
[T, s] = re(true),
u = S(null),
c = S(null),
w = S(null),
d = S(q),
o = S(A),
b = S(false);
(k(() => {
let i = loader.init();
return (i.then((f) => (c.current = f) && s(false)).catch((f) => f?.type !== "cancelation" && console.error("Monaco initialization: error:", f)), () => (u.current ? I() : i.cancel()));
}),
l(
() => {
if (u.current && c.current) {
let i = u.current.getOriginalEditor(),
f = h(c.current, e || "", t || n || "text", m || "");
f !== i.getModel() && i.setModel(f);
}
},
[m],
M,
),
l(
() => {
if (u.current && c.current) {
let i = u.current.getModifiedEditor(),
f = h(c.current, r || "", a || n || "text", E || "");
f !== i.getModel() && i.setModel(f);
}
},
[E],
M,
),
l(
() => {
let i = u.current.getModifiedEditor();
i.getOption(c.current.editor.EditorOption.readOnly) ?
i.setValue(r || "")
: r !== i.getValue() && (i.executeEdits("", [{ range: i.getModel().getFullModelRange(), text: r || "", forceMoveMarkers: true }]), i.pushUndoStop());
},
[r],
M,
),
l(
() => {
u.current?.getModel()?.original.setValue(e || "");
},
[e],
M,
),
l(
() => {
let { original: i, modified: f } = u.current.getModel();
(c.current.editor.setModelLanguage(i, t || n || "text"), c.current.editor.setModelLanguage(f, a || n || "text"));
},
[n, t, a],
M,
),
l(
() => {
c.current?.editor.setTheme(x);
},
[x],
M,
),
l(
() => {
u.current?.updateOptions(y);
},
[y],
M,
));
let L = oe(() => {
if (!c.current) return;
o.current(c.current);
let i = h(c.current, e || "", t || n || "text", m || ""),
f = h(c.current, r || "", a || n || "text", E || "");
u.current?.setModel({ original: i, modified: f });
}, [n, r, a, e, t, m, E]),
U = oe(() => {
!b.current && w.current && ((u.current = c.current.editor.createDiffEditor(w.current, { automaticLayout: true, ...y })), L(), c.current?.editor.setTheme(x), O(true), (b.current = true));
}, [y, x, L]);
(ne(() => {
M && d.current(u.current, c.current);
}, [M]),
ne(() => {
!T && !M && U();
}, [T, M, U]));
function I() {
let i = u.current?.getModel();
(g || i?.original?.dispose(), N || i?.modified?.dispose(), u.current?.dispose());
}
return ke.createElement(H, { width: z, height: V, isEditorReady: M, loading: P, _ref: w, className: F, wrapperProps: j });
}
var ie = Oe;
var we = Te(ie);
const { useState: Ie } = await importShared("react");
function Pe() {
let [e, r] = Ie(loader.__getMonacoInstance());
return (
k(() => {
let n;
return (
e ||
((n = loader.init()),
n.then((t) => {
r(t);
})),
() => n?.cancel()
);
}),
e
);
}
var Le = Pe;
const { memo: ze } = await importShared("react");
const We = await importShared("react");
const { useState: ue, useEffect: W, useRef: C, useCallback: _e } = We;
const { useEffect: Ue, useRef: ve } = await importShared("react");
function He(e) {
let r = ve();
return (
Ue(() => {
r.current = e;
}, [e]),
r.current
);
}
var se = He;
var _ = new Map();
function Ve({
defaultValue: e,
defaultLanguage: r,
defaultPath: n,
value: t,
language: a,
path: m,
theme: E = "light",
line: g,
loading: N = "Loading...",
options: x = {},
overrideServices: P = {},
saveViewState: y = true,
keepCurrentModel: V = false,
width: z = "100%",
height: F = "100%",
className: j,
wrapperProps: A = {},
beforeMount: q = D,
onMount: M = D,
onChange: O,
onValidate: T = D,
}) {
let [s, u] = ue(false),
[c, w] = ue(true),
d = C(null),
o = C(null),
b = C(null),
L = C(M),
U = C(q),
I = C(),
i = C(t),
f = se(m),
Q = C(false),
B = C(false);
(k(() => {
let p = loader.init();
return (p.then((R) => (d.current = R) && w(false)).catch((R) => R?.type !== "cancelation" && console.error("Monaco initialization: error:", R)), () => (o.current ? pe() : p.cancel()));
}),
l(
() => {
let p = h(d.current, e || t || "", r || a || "", m || n || "");
p !== o.current?.getModel() && (y && _.set(f, o.current?.saveViewState()), o.current?.setModel(p), y && o.current?.restoreViewState(_.get(m)));
},
[m],
s,
),
l(
() => {
o.current?.updateOptions(x);
},
[x],
s,
),
l(
() => {
!o.current ||
t === void 0 ||
(o.current.getOption(d.current.editor.EditorOption.readOnly) ?
o.current.setValue(t)
: t !== o.current.getValue() &&
((B.current = true),
o.current.executeEdits("", [{ range: o.current.getModel().getFullModelRange(), text: t, forceMoveMarkers: true }]),
o.current.pushUndoStop(),
(B.current = false)));
},
[t],
s,
),
l(
() => {
let p = o.current?.getModel();
p && a && d.current?.editor.setModelLanguage(p, a);
},
[a],
s,
),
l(
() => {
g !== void 0 && o.current?.revealLine(g);
},
[g],
s,
),
l(
() => {
d.current?.editor.setTheme(E);
},
[E],
s,
));
let X = _e(() => {
if (!(!b.current || !d.current) && !Q.current) {
U.current(d.current);
let p = m || n,
R = h(d.current, t || e || "", r || a || "", p || "");
((o.current = d.current?.editor.create(b.current, { model: R, automaticLayout: true, ...x }, P)),
y && o.current.restoreViewState(_.get(p)),
d.current.editor.setTheme(E),
g !== void 0 && o.current.revealLine(g),
u(true),
(Q.current = true));
}
}, [e, r, n, t, a, m, x, P, y, E, g]);
(W(() => {
s && L.current(o.current, d.current);
}, [s]),
W(() => {
!c && !s && X();
}, [c, s, X]),
(i.current = t),
W(() => {
s &&
O &&
(I.current?.dispose(),
(I.current = o.current?.onDidChangeModelContent((p) => {
B.current || O(o.current.getValue(), p);
})));
}, [s, O]),
W(() => {
if (s) {
let p = d.current.editor.onDidChangeMarkers((R) => {
let G = o.current.getModel()?.uri;
if (G && R.find((J) => J.path === G.path)) {
let J = d.current.editor.getModelMarkers({ resource: G });
T?.(J);
}
});
return () => {
p?.dispose();
};
}
return () => {};
}, [s, T]));
function pe() {
(I.current?.dispose(), V ? y && _.set(m, o.current.saveViewState()) : o.current.getModel()?.dispose(), o.current.dispose());
}
return We.createElement(H, { width: z, height: F, isEditorReady: s, loading: N, _ref: b, className: j, wrapperProps: A });
}
var fe = Ve;
var de = ze(fe);
var Ft = de;
export { we as DiffEditor, de as Editor, Ft as default, loader, Le as useMonaco }; export { we as DiffEditor, de as Editor, Ft as default, loader, Le as useMonaco };

View File

@ -1,4 +1,4 @@
var react = {exports: {}}; var react = { exports: {} };
var react_production_min = {}; var react_production_min = {};
@ -14,32 +14,328 @@ var react_production_min = {};
var hasRequiredReact_production_min; var hasRequiredReact_production_min;
function requireReact_production_min () { function requireReact_production_min() {
if (hasRequiredReact_production_min) return react_production_min; if (hasRequiredReact_production_min) return react_production_min;
hasRequiredReact_production_min = 1; hasRequiredReact_production_min = 1;
var l=Symbol.for("react.element"),n=Symbol.for("react.portal"),p=Symbol.for("react.fragment"),q=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),t=Symbol.for("react.provider"),u=Symbol.for("react.context"),v=Symbol.for("react.forward_ref"),w=Symbol.for("react.suspense"),x=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),z=Symbol.iterator;function A(a){if(null===a||"object"!==typeof a)return null;a=z&&a[z]||a["@@iterator"];return "function"===typeof a?a:null} var l = Symbol.for("react.element"),
var B={isMounted:function(){return false},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B;}E.prototype.isReactComponent={}; n = Symbol.for("react.portal"),
E.prototype.setState=function(a,b){if("object"!==typeof a&&"function"!==typeof a&&null!=a)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,a,b,"setState");};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,"forceUpdate");};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B;}var H=G.prototype=new F; p = Symbol.for("react.fragment"),
H.constructor=G;C(H,E.prototype);H.isPureReactComponent=true;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:true,ref:true,__self:true,__source:true}; q = Symbol.for("react.strict_mode"),
function M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=""+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f;}if(a&&a.defaultProps)for(d in g=a.defaultProps,g) void 0===c[d]&&(c[d]=g[d]);return {$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}} r = Symbol.for("react.profiler"),
function N(a,b){return {$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return "object"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={"=":"=0",":":"=2"};return "$"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\/+/g;function Q(a,b){return "object"===typeof a&&null!==a&&null!=a.key?escape(""+a.key):b.toString(36)} t = Symbol.for("react.provider"),
function R(a,b,e,d,c){var k=typeof a;if("undefined"===k||"boolean"===k)a=null;var h=false;if(null===a)h=true;else switch(k){case "string":case "number":h=true;break;case "object":switch(a.$$typeof){case l:case n:h=true;}}if(h)return h=a,c=c(h),a=""===d?"."+Q(h,0):d,I(c)?(e="",null!=a&&(e=a.replace(P,"$&/")+"/"),R(c,b,e,"",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?"":(""+c.key).replace(P,"$&/")+"/")+a)),b.push(c)),1;h=0;d=""===d?".":d+":";if(I(a))for(var g=0;g<a.length;g++){k= u = Symbol.for("react.context"),
a[g];var f=d+Q(k,g);h+=R(k,b,e,f,c);}else if(f=A(a),"function"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if("object"===k)throw b=String(a),Error("Objects are not valid as a React child (found: "+("[object Object]"===b?"object with keys {"+Object.keys(a).join(", ")+"}":b)+"). If you meant to render a collection of children, use an array instead.");return h} v = Symbol.for("react.forward_ref"),
function S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,"","",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b;},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b;});-1===a._status&&(a._status=0,a._result=b);}if(1===a._status)return a._result.default;throw a._result;} w = Symbol.for("react.suspense"),
var U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error("act(...) is not supported in production builds of React.");} x = Symbol.for("react.memo"),
react_production_min.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments);},e);},count:function(a){var b=0;S(a,function(){b++;});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error("React.Children.only expected to receive a single React element child.");return a}};react_production_min.Component=E;react_production_min.Fragment=p;react_production_min.Profiler=r;react_production_min.PureComponent=G;react_production_min.StrictMode=q;react_production_min.Suspense=w; y = Symbol.for("react.lazy"),
react_production_min.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;react_production_min.act=X; z = Symbol.iterator;
react_production_min.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+a+".");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){ void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=""+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f]);}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f); function A(a) {
for(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g;}return {$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};react_production_min.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};react_production_min.createElement=M;react_production_min.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};react_production_min.createRef=function(){return {current:null}}; if (null === a || "object" !== typeof a) return null;
react_production_min.forwardRef=function(a){return {$$typeof:v,render:a}};react_production_min.isValidElement=O;react_production_min.lazy=function(a){return {$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};react_production_min.memo=function(a,b){return {$$typeof:x,type:a,compare:void 0===b?null:b}};react_production_min.startTransition=function(a){var b=V.transition;V.transition={};try{a();}finally{V.transition=b;}};react_production_min.unstable_act=X;react_production_min.useCallback=function(a,b){return U.current.useCallback(a,b)};react_production_min.useContext=function(a){return U.current.useContext(a)}; a = (z && a[z]) || a["@@iterator"];
react_production_min.useDebugValue=function(){};react_production_min.useDeferredValue=function(a){return U.current.useDeferredValue(a)};react_production_min.useEffect=function(a,b){return U.current.useEffect(a,b)};react_production_min.useId=function(){return U.current.useId()};react_production_min.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};react_production_min.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};react_production_min.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)}; return "function" === typeof a ? a : null;
react_production_min.useMemo=function(a,b){return U.current.useMemo(a,b)};react_production_min.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};react_production_min.useRef=function(a){return U.current.useRef(a)};react_production_min.useState=function(a){return U.current.useState(a)};react_production_min.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};react_production_min.useTransition=function(){return U.current.useTransition()};react_production_min.version="18.3.1"; }
var B = {
isMounted: function () {
return false;
},
enqueueForceUpdate: function () {},
enqueueReplaceState: function () {},
enqueueSetState: function () {},
},
C = Object.assign,
D = {};
function E(a, b, e) {
this.props = a;
this.context = b;
this.refs = D;
this.updater = e || B;
}
E.prototype.isReactComponent = {};
E.prototype.setState = function (a, b) {
if ("object" !== typeof a && "function" !== typeof a && null != a)
throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");
this.updater.enqueueSetState(this, a, b, "setState");
};
E.prototype.forceUpdate = function (a) {
this.updater.enqueueForceUpdate(this, a, "forceUpdate");
};
function F() {}
F.prototype = E.prototype;
function G(a, b, e) {
this.props = a;
this.context = b;
this.refs = D;
this.updater = e || B;
}
var H = (G.prototype = new F());
H.constructor = G;
C(H, E.prototype);
H.isPureReactComponent = true;
var I = Array.isArray,
J = Object.prototype.hasOwnProperty,
K = { current: null },
L = { key: true, ref: true, __self: true, __source: true };
function M(a, b, e) {
var d,
c = {},
k = null,
h = null;
if (null != b) for (d in (void 0 !== b.ref && (h = b.ref), void 0 !== b.key && (k = "" + b.key), b)) J.call(b, d) && !L.hasOwnProperty(d) && (c[d] = b[d]);
var g = arguments.length - 2;
if (1 === g) c.children = e;
else if (1 < g) {
for (var f = Array(g), m = 0; m < g; m++) f[m] = arguments[m + 2];
c.children = f;
}
if (a && a.defaultProps) for (d in ((g = a.defaultProps), g)) void 0 === c[d] && (c[d] = g[d]);
return { $$typeof: l, type: a, key: k, ref: h, props: c, _owner: K.current };
}
function N(a, b) {
return { $$typeof: l, type: a.type, key: b, ref: a.ref, props: a.props, _owner: a._owner };
}
function O(a) {
return "object" === typeof a && null !== a && a.$$typeof === l;
}
function escape(a) {
var b = { "=": "=0", ":": "=2" };
return (
"$" +
a.replace(/[=:]/g, function (a) {
return b[a];
})
);
}
var P = /\/+/g;
function Q(a, b) {
return "object" === typeof a && null !== a && null != a.key ? escape("" + a.key) : b.toString(36);
}
function R(a, b, e, d, c) {
var k = typeof a;
if ("undefined" === k || "boolean" === k) a = null;
var h = false;
if (null === a) h = true;
else
switch (k) {
case "string":
case "number":
h = true;
break;
case "object":
switch (a.$$typeof) {
case l:
case n:
h = true;
}
}
if (h)
return (
(h = a),
(c = c(h)),
(a = "" === d ? "." + Q(h, 0) : d),
I(c) ?
((e = ""),
null != a && (e = a.replace(P, "$&/") + "/"),
R(c, b, e, "", function (a) {
return a;
}))
: null != c && (O(c) && (c = N(c, e + (!c.key || (h && h.key === c.key) ? "" : ("" + c.key).replace(P, "$&/") + "/") + a)), b.push(c)),
1
);
h = 0;
d = "" === d ? "." : d + ":";
if (I(a))
for (var g = 0; g < a.length; g++) {
k = a[g];
var f = d + Q(k, g);
h += R(k, b, e, f, c);
}
else if (((f = A(a)), "function" === typeof f)) for (a = f.call(a), g = 0; !(k = a.next()).done; ) ((k = k.value), (f = d + Q(k, g++)), (h += R(k, b, e, f, c)));
else if ("object" === k)
throw (
(b = String(a)),
Error(
"Objects are not valid as a React child (found: " +
("[object Object]" === b ? "object with keys {" + Object.keys(a).join(", ") + "}" : b) +
"). If you meant to render a collection of children, use an array instead.",
)
);
return h;
}
function S(a, b, e) {
if (null == a) return a;
var d = [],
c = 0;
R(a, d, "", "", function (a) {
return b.call(e, a, c++);
});
return d;
}
function T(a) {
if (-1 === a._status) {
var b = a._result;
b = b();
b.then(
function (b) {
if (0 === a._status || -1 === a._status) ((a._status = 1), (a._result = b));
},
function (b) {
if (0 === a._status || -1 === a._status) ((a._status = 2), (a._result = b));
},
);
-1 === a._status && ((a._status = 0), (a._result = b));
}
if (1 === a._status) return a._result.default;
throw a._result;
}
var U = { current: null },
V = { transition: null },
W = { ReactCurrentDispatcher: U, ReactCurrentBatchConfig: V, ReactCurrentOwner: K };
function X() {
throw Error("act(...) is not supported in production builds of React.");
}
react_production_min.Children = {
map: S,
forEach: function (a, b, e) {
S(
a,
function () {
b.apply(this, arguments);
},
e,
);
},
count: function (a) {
var b = 0;
S(a, function () {
b++;
});
return b;
},
toArray: function (a) {
return (
S(a, function (a) {
return a;
}) || []
);
},
only: function (a) {
if (!O(a)) throw Error("React.Children.only expected to receive a single React element child.");
return a;
},
};
react_production_min.Component = E;
react_production_min.Fragment = p;
react_production_min.Profiler = r;
react_production_min.PureComponent = G;
react_production_min.StrictMode = q;
react_production_min.Suspense = w;
react_production_min.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = W;
react_production_min.act = X;
react_production_min.cloneElement = function (a, b, e) {
if (null === a || void 0 === a) throw Error("React.cloneElement(...): The argument must be a React element, but you passed " + a + ".");
var d = C({}, a.props),
c = a.key,
k = a.ref,
h = a._owner;
if (null != b) {
void 0 !== b.ref && ((k = b.ref), (h = K.current));
void 0 !== b.key && (c = "" + b.key);
if (a.type && a.type.defaultProps) var g = a.type.defaultProps;
for (f in b) J.call(b, f) && !L.hasOwnProperty(f) && (d[f] = void 0 === b[f] && void 0 !== g ? g[f] : b[f]);
}
var f = arguments.length - 2;
if (1 === f) d.children = e;
else if (1 < f) {
g = Array(f);
for (var m = 0; m < f; m++) g[m] = arguments[m + 2];
d.children = g;
}
return { $$typeof: l, type: a.type, key: c, ref: k, props: d, _owner: h };
};
react_production_min.createContext = function (a) {
a = { $$typeof: u, _currentValue: a, _currentValue2: a, _threadCount: 0, Provider: null, Consumer: null, _defaultValue: null, _globalName: null };
a.Provider = { $$typeof: t, _context: a };
return (a.Consumer = a);
};
react_production_min.createElement = M;
react_production_min.createFactory = function (a) {
var b = M.bind(null, a);
b.type = a;
return b;
};
react_production_min.createRef = function () {
return { current: null };
};
react_production_min.forwardRef = function (a) {
return { $$typeof: v, render: a };
};
react_production_min.isValidElement = O;
react_production_min.lazy = function (a) {
return { $$typeof: y, _payload: { _status: -1, _result: a }, _init: T };
};
react_production_min.memo = function (a, b) {
return { $$typeof: x, type: a, compare: void 0 === b ? null : b };
};
react_production_min.startTransition = function (a) {
var b = V.transition;
V.transition = {};
try {
a();
} finally {
V.transition = b;
}
};
react_production_min.unstable_act = X;
react_production_min.useCallback = function (a, b) {
return U.current.useCallback(a, b);
};
react_production_min.useContext = function (a) {
return U.current.useContext(a);
};
react_production_min.useDebugValue = function () {};
react_production_min.useDeferredValue = function (a) {
return U.current.useDeferredValue(a);
};
react_production_min.useEffect = function (a, b) {
return U.current.useEffect(a, b);
};
react_production_min.useId = function () {
return U.current.useId();
};
react_production_min.useImperativeHandle = function (a, b, e) {
return U.current.useImperativeHandle(a, b, e);
};
react_production_min.useInsertionEffect = function (a, b) {
return U.current.useInsertionEffect(a, b);
};
react_production_min.useLayoutEffect = function (a, b) {
return U.current.useLayoutEffect(a, b);
};
react_production_min.useMemo = function (a, b) {
return U.current.useMemo(a, b);
};
react_production_min.useReducer = function (a, b, e) {
return U.current.useReducer(a, b, e);
};
react_production_min.useRef = function (a) {
return U.current.useRef(a);
};
react_production_min.useState = function (a) {
return U.current.useState(a);
};
react_production_min.useSyncExternalStore = function (a, b, e) {
return U.current.useSyncExternalStore(a, b, e);
};
react_production_min.useTransition = function () {
return U.current.useTransition();
};
react_production_min.version = "18.3.1";
return react_production_min; return react_production_min;
} }
var hasRequiredReact; var hasRequiredReact;
function requireReact () { function requireReact() {
if (hasRequiredReact) return react.exports; if (hasRequiredReact) return react.exports;
hasRequiredReact = 1; hasRequiredReact = 1;
{ {

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
import { r as requireReact } from './index-DQGM2Mpm.js'; import { r as requireReact } from "./index-DQGM2Mpm.js";
var jsxRuntime = {exports: {}}; var jsxRuntime = { exports: {} };
var reactJsxRuntime_production_min = {}; var reactJsxRuntime_production_min = {};
@ -16,17 +16,36 @@ var reactJsxRuntime_production_min = {};
var hasRequiredReactJsxRuntime_production_min; var hasRequiredReactJsxRuntime_production_min;
function requireReactJsxRuntime_production_min () { function requireReactJsxRuntime_production_min() {
if (hasRequiredReactJsxRuntime_production_min) return reactJsxRuntime_production_min; if (hasRequiredReactJsxRuntime_production_min) return reactJsxRuntime_production_min;
hasRequiredReactJsxRuntime_production_min = 1; hasRequiredReactJsxRuntime_production_min = 1;
var f=requireReact(),k=Symbol.for("react.element"),l=Symbol.for("react.fragment"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:true,ref:true,__self:true,__source:true}; var f = requireReact(),
function q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=""+g);void 0!==a.key&&(e=""+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a) void 0===d[b]&&(d[b]=a[b]);return {$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}reactJsxRuntime_production_min.Fragment=l;reactJsxRuntime_production_min.jsx=q;reactJsxRuntime_production_min.jsxs=q; k = Symbol.for("react.element"),
l = Symbol.for("react.fragment"),
m = Object.prototype.hasOwnProperty,
n = f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,
p = { key: true, ref: true, __self: true, __source: true };
function q(c, a, g) {
var b,
d = {},
e = null,
h = null;
void 0 !== g && (e = "" + g);
void 0 !== a.key && (e = "" + a.key);
void 0 !== a.ref && (h = a.ref);
for (b in a) m.call(a, b) && !p.hasOwnProperty(b) && (d[b] = a[b]);
if (c && c.defaultProps) for (b in ((a = c.defaultProps), a)) void 0 === d[b] && (d[b] = a[b]);
return { $$typeof: k, type: c, key: e, ref: h, props: d, _owner: n.current };
}
reactJsxRuntime_production_min.Fragment = l;
reactJsxRuntime_production_min.jsx = q;
reactJsxRuntime_production_min.jsxs = q;
return reactJsxRuntime_production_min; return reactJsxRuntime_production_min;
} }
var hasRequiredJsxRuntime; var hasRequiredJsxRuntime;
function requireJsxRuntime () { function requireJsxRuntime() {
if (hasRequiredJsxRuntime) return jsxRuntime.exports; if (hasRequiredJsxRuntime) return jsxRuntime.exports;
hasRequiredJsxRuntime = 1; hasRequiredJsxRuntime = 1;
{ {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,45 +1,48 @@
const currentImports = {}; const currentImports = {};
const exportSet = new Set(['Module', '__esModule', 'default', '_export_sfc']); const exportSet = new Set(["Module", "__esModule", "default", "_export_sfc"]);
let moduleMap = { let moduleMap = {
"./editor":()=>{ "./editor": () => {
dynamicLoadingCss(["style-Bs2zy9jQ.css"], false, './editor'); dynamicLoadingCss(["style-Bs2zy9jQ.css"], false, "./editor");
return __federation_import('./__federation_expose_Editor-DbTTOPh9.js').then(module =>Object.keys(module).every(item => exportSet.has(item)) ? () => module.default : () => module)}, return __federation_import("./__federation_expose_Editor-DbTTOPh9.js").then((module) => (Object.keys(module).every((item) => exportSet.has(item)) ? () => module.default : () => module));
"./settings":()=>{ },
dynamicLoadingCss(["style-Bs2zy9jQ.css"], false, './settings'); "./settings": () => {
return __federation_import('./__federation_expose_Settings-C7jFM1o4.js').then(module =>Object.keys(module).every(item => exportSet.has(item)) ? () => module.default : () => module)},}; dynamicLoadingCss(["style-Bs2zy9jQ.css"], false, "./settings");
const seen = {}; return __federation_import("./__federation_expose_Settings-C7jFM1o4.js").then((module) => (Object.keys(module).every((item) => exportSet.has(item)) ? () => module.default : () => module));
const dynamicLoadingCss = (cssFilePaths, dontAppendStylesToHead, exposeItemName) => { },
};
const seen = {};
const dynamicLoadingCss = (cssFilePaths, dontAppendStylesToHead, exposeItemName) => {
const metaUrl = import.meta.url; const metaUrl = import.meta.url;
if (typeof metaUrl === 'undefined') { if (typeof metaUrl === "undefined") {
console.warn('The remote style takes effect only when the build.target option in the vite.config.ts file is higher than that of "es2020".'); console.warn('The remote style takes effect only when the build.target option in the vite.config.ts file is higher than that of "es2020".');
return; return;
} }
const curUrl = metaUrl.substring(0, metaUrl.lastIndexOf('remoteEntry.js')); const curUrl = metaUrl.substring(0, metaUrl.lastIndexOf("remoteEntry.js"));
const base = '/'; const base = "/";
'assets'; ("assets");
cssFilePaths.forEach(cssPath => { cssFilePaths.forEach((cssPath) => {
let href = ''; let href = "";
const baseUrl = base || curUrl; const baseUrl = base || curUrl;
if (baseUrl) { if (baseUrl) {
const trimmer = { const trimmer = {
trailing: (path) => (path.endsWith('/') ? path.slice(0, -1) : path), trailing: (path) => (path.endsWith("/") ? path.slice(0, -1) : path),
leading: (path) => (path.startsWith('/') ? path.slice(1) : path) leading: (path) => (path.startsWith("/") ? path.slice(1) : path),
}; };
const isAbsoluteUrl = (url) => url.startsWith('http') || url.startsWith('//'); const isAbsoluteUrl = (url) => url.startsWith("http") || url.startsWith("//");
const cleanBaseUrl = trimmer.trailing(baseUrl); const cleanBaseUrl = trimmer.trailing(baseUrl);
const cleanCssPath = trimmer.leading(cssPath); const cleanCssPath = trimmer.leading(cssPath);
const cleanCurUrl = trimmer.trailing(curUrl); const cleanCurUrl = trimmer.trailing(curUrl);
if (isAbsoluteUrl(baseUrl)) { if (isAbsoluteUrl(baseUrl)) {
href = [cleanBaseUrl, cleanCssPath].filter(Boolean).join('/'); href = [cleanBaseUrl, cleanCssPath].filter(Boolean).join("/");
} else { } else {
if (cleanCurUrl.includes(cleanBaseUrl)) { if (cleanCurUrl.includes(cleanBaseUrl)) {
href = [cleanCurUrl, cleanCssPath].filter(Boolean).join('/'); href = [cleanCurUrl, cleanCssPath].filter(Boolean).join("/");
} else { } else {
href = [cleanCurUrl + cleanBaseUrl, cleanCssPath].filter(Boolean).join('/'); href = [cleanCurUrl + cleanBaseUrl, cleanCssPath].filter(Boolean).join("/");
} }
} }
} else { } else {
@ -47,7 +50,7 @@ const currentImports = {};
} }
if (dontAppendStylesToHead) { if (dontAppendStylesToHead) {
const key = 'css__calcomblock__' + exposeItemName; const key = "css__calcomblock__" + exposeItemName;
window[key] = window[key] || []; window[key] = window[key] || [];
window[key].push(href); window[key].push(href);
return; return;
@ -56,29 +59,30 @@ const currentImports = {};
if (href in seen) return; if (href in seen) return;
seen[href] = true; seen[href] = true;
const element = document.createElement('link'); const element = document.createElement("link");
element.rel = 'stylesheet'; element.rel = "stylesheet";
element.href = href; element.href = href;
document.head.appendChild(element); document.head.appendChild(element);
}); });
}; };
async function __federation_import(name) { async function __federation_import(name) {
currentImports[name] ??= import(name); currentImports[name] ??= import(name);
return currentImports[name] return currentImports[name];
} const get =(module) => { }
if(!moduleMap[module]) throw new Error('Can not find remote module ' + module) const get = (module) => {
if (!moduleMap[module]) throw new Error("Can not find remote module " + module);
return moduleMap[module](); return moduleMap[module]();
}; };
const init =(shareScope) => { const init = (shareScope) => {
globalThis.__federation_shared__= globalThis.__federation_shared__|| {}; globalThis.__federation_shared__ = globalThis.__federation_shared__ || {};
Object.entries(shareScope).forEach(([key, value]) => { Object.entries(shareScope).forEach(([key, value]) => {
for (const [versionKey, versionValue] of Object.entries(value)) { for (const [versionKey, versionValue] of Object.entries(value)) {
const scope = versionValue.scope || 'default'; const scope = versionValue.scope || "default";
globalThis.__federation_shared__[scope] = globalThis.__federation_shared__[scope] || {}; globalThis.__federation_shared__[scope] = globalThis.__federation_shared__[scope] || {};
const shared= globalThis.__federation_shared__[scope]; const shared = globalThis.__federation_shared__[scope];
(shared[key] = shared[key]||{})[versionKey] = versionValue; (shared[key] = shared[key] || {})[versionKey] = versionValue;
} }
}); });
}; };
export { dynamicLoadingCss, get, init }; export { dynamicLoadingCss, get, init };

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,7 @@
import { r as requireReact } from './index-DQGM2Mpm.js'; import { r as requireReact } from "./index-DQGM2Mpm.js";
import { X as requireShim } from './index-Bs--Ol2m.js'; import { X as requireShim } from "./index-Bs--Ol2m.js";
var withSelector = {exports: {}}; var withSelector = { exports: {} };
var withSelector_production = {}; var withSelector_production = {};
@ -17,7 +17,7 @@ var withSelector_production = {};
var hasRequiredWithSelector_production; var hasRequiredWithSelector_production;
function requireWithSelector_production () { function requireWithSelector_production() {
if (hasRequiredWithSelector_production) return withSelector_production; if (hasRequiredWithSelector_production) return withSelector_production;
hasRequiredWithSelector_production = 1; hasRequiredWithSelector_production = 1;
var React = requireReact(), var React = requireReact(),
@ -31,13 +31,7 @@ function requireWithSelector_production () {
useEffect = React.useEffect, useEffect = React.useEffect,
useMemo = React.useMemo, useMemo = React.useMemo,
useDebugValue = React.useDebugValue; useDebugValue = React.useDebugValue;
withSelector_production.useSyncExternalStoreWithSelector = function ( withSelector_production.useSyncExternalStoreWithSelector = function (subscribe, getSnapshot, getServerSnapshot, selector, isEqual) {
subscribe,
getSnapshot,
getServerSnapshot,
selector,
isEqual
) {
var instRef = useRef(null); var instRef = useRef(null);
if (null === instRef.current) { if (null === instRef.current) {
var inst = { hasValue: false, value: null }; var inst = { hasValue: false, value: null };
@ -52,36 +46,33 @@ function requireWithSelector_production () {
nextSnapshot = selector(nextSnapshot); nextSnapshot = selector(nextSnapshot);
if (void 0 !== isEqual && inst.hasValue) { if (void 0 !== isEqual && inst.hasValue) {
var currentSelection = inst.value; var currentSelection = inst.value;
if (isEqual(currentSelection, nextSnapshot)) if (isEqual(currentSelection, nextSnapshot)) return (memoizedSelection = currentSelection);
return (memoizedSelection = currentSelection);
} }
return (memoizedSelection = nextSnapshot); return (memoizedSelection = nextSnapshot);
} }
currentSelection = memoizedSelection; currentSelection = memoizedSelection;
if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection; if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;
var nextSelection = selector(nextSnapshot); var nextSelection = selector(nextSnapshot);
if (void 0 !== isEqual && isEqual(currentSelection, nextSelection)) if (void 0 !== isEqual && isEqual(currentSelection, nextSelection)) return ((memoizedSnapshot = nextSnapshot), currentSelection);
return (memoizedSnapshot = nextSnapshot), currentSelection;
memoizedSnapshot = nextSnapshot; memoizedSnapshot = nextSnapshot;
return (memoizedSelection = nextSelection); return (memoizedSelection = nextSelection);
} }
var hasMemo = false, var hasMemo = false,
memoizedSnapshot, memoizedSnapshot,
memoizedSelection, memoizedSelection,
maybeGetServerSnapshot = maybeGetServerSnapshot = void 0 === getServerSnapshot ? null : getServerSnapshot;
void 0 === getServerSnapshot ? null : getServerSnapshot;
return [ return [
function () { function () {
return memoizedSelector(getSnapshot()); return memoizedSelector(getSnapshot());
}, },
null === maybeGetServerSnapshot null === maybeGetServerSnapshot ? void 0 : (
? void 0 function () {
: function () {
return memoizedSelector(maybeGetServerSnapshot()); return memoizedSelector(maybeGetServerSnapshot());
} }
),
]; ];
}, },
[getSnapshot, getServerSnapshot, selector, isEqual] [getSnapshot, getServerSnapshot, selector, isEqual],
); );
var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]); var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);
useEffect( useEffect(
@ -89,7 +80,7 @@ function requireWithSelector_production () {
inst.hasValue = true; inst.hasValue = true;
inst.value = value; inst.value = value;
}, },
[value] [value],
); );
useDebugValue(value); useDebugValue(value);
return value; return value;
@ -99,7 +90,7 @@ function requireWithSelector_production () {
var hasRequiredWithSelector; var hasRequiredWithSelector;
function requireWithSelector () { function requireWithSelector() {
if (hasRequiredWithSelector) return withSelector.exports; if (hasRequiredWithSelector) return withSelector.exports;
hasRequiredWithSelector = 1; hasRequiredWithSelector = 1;
{ {

2
web/dist/index.html vendored
View File

@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<title>CalcomBlock Plugin</title> <title>CalcomBlock Plugin</title>
<link rel="stylesheet" crossorigin href="/assets/style-Bs2zy9jQ.css"> <link rel="stylesheet" crossorigin href="/assets/style-Bs2zy9jQ.css" />
</head> </head>
<body> <body>
<!-- This is a placeholder for Module Federation remote entry --> <!-- This is a placeholder for Module Federation remote entry -->