@mintlify/msft-sdk 1.1.24 → 1.1.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api-playground/ApiPlayground/Request/PlaygroundModal.js +46 -45
- package/dist/api-playground/ApiPlayground/Request/PlaygroundModal.js.map +1 -1
- package/dist/api-playground/ApiPlayground/Request/index.js +18 -18
- package/dist/api-playground/ApiPlayground/Request/index.js.map +1 -1
- package/dist/api-playground/ApiPlayground/components/EndpointsMenu.js +20 -21
- package/dist/api-playground/ApiPlayground/components/EndpointsMenu.js.map +1 -1
- package/dist/api-playground/ApiPlayground/components/EndpointsMenuLink.js +10 -11
- package/dist/api-playground/ApiPlayground/components/EndpointsMenuLink.js.map +1 -1
- package/dist/api-playground/ApiPlayground/index.js +30 -30
- package/dist/api-playground/ApiPlayground/index.js.map +1 -1
- package/dist/api-playground-2/constants/index.js +12 -3
- package/dist/api-playground-2/constants/index.js.map +1 -1
- package/dist/api-playground-2/schemaGraph/addUniqueKeysToSchema.js +41 -0
- package/dist/api-playground-2/schemaGraph/addUniqueKeysToSchema.js.map +1 -0
- package/dist/api-playground-2/schemaGraph/errors.js +19 -0
- package/dist/api-playground-2/schemaGraph/errors.js.map +1 -0
- package/dist/api-playground-2/schemaGraph/getApiReferenceDataFromGraph.js +26 -0
- package/dist/api-playground-2/schemaGraph/getApiReferenceDataFromGraph.js.map +1 -0
- package/dist/api-playground-2/schemaGraph/getDocumentProperties.js +58 -0
- package/dist/api-playground-2/schemaGraph/getDocumentProperties.js.map +1 -0
- package/dist/api-playground-2/schemaGraph/getSchemaGraphOperationData.js +77 -0
- package/dist/api-playground-2/schemaGraph/getSchemaGraphOperationData.js.map +1 -0
- package/dist/api-playground-2/schemaGraph/getSchemaGraphSchemaData.js +16 -0
- package/dist/api-playground-2/schemaGraph/getSchemaGraphSchemaData.js.map +1 -0
- package/dist/api-playground-2/schemaGraph/processExamples.js +111 -34
- package/dist/api-playground-2/schemaGraph/processExamples.js.map +1 -1
- package/dist/api-playground-2/schemaGraph/reduceCompositions.js +283 -0
- package/dist/api-playground-2/schemaGraph/reduceCompositions.js.map +1 -0
- package/dist/api-playground-2/schemaGraph/resolveGraphNode.js +61 -0
- package/dist/api-playground-2/schemaGraph/resolveGraphNode.js.map +1 -0
- package/dist/api-playground-2/schemaGraph/resolveOperationWithDependencies.js +149 -0
- package/dist/api-playground-2/schemaGraph/resolveOperationWithDependencies.js.map +1 -0
- package/dist/api-playground-2/schemaGraph/resolveSchemaWithDependencies.js +33 -0
- package/dist/api-playground-2/schemaGraph/resolveSchemaWithDependencies.js.map +1 -0
- package/dist/api-playground-2/schemaGraph/sortSchemaByRequired.js +35 -0
- package/dist/api-playground-2/schemaGraph/sortSchemaByRequired.js.map +1 -0
- package/dist/api-playground-2/schemaGraph/utils.js +144 -98
- package/dist/api-playground-2/schemaGraph/utils.js.map +1 -1
- package/dist/common/parseApiTargetFromMetadata.js +24 -0
- package/dist/common/parseApiTargetFromMetadata.js.map +1 -0
- package/dist/common/parseOpenApiString.js +42 -0
- package/dist/common/parseOpenApiString.js.map +1 -0
- package/dist/components/Api/ApiReferenceProvider.js +6 -15
- package/dist/components/Api/ApiReferenceProvider.js.map +1 -1
- package/dist/components/nav-tree/index.js +135 -109
- package/dist/components/nav-tree/index.js.map +1 -1
- package/dist/contexts/ConfigContext.js +61 -12
- package/dist/contexts/ConfigContext.js.map +1 -1
- package/dist/contexts/MDXContentContext.js +0 -1
- package/dist/contexts/MDXContentContext.js.map +1 -1
- package/dist/index.d.ts +125 -9
- package/dist/index.js +156 -144
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/dist/hooks/useCurrentPath.js +0 -17
- package/dist/hooks/useCurrentPath.js.map +0 -1
- package/dist/utils/decodeSlug.js +0 -8
- package/dist/utils/decodeSlug.js.map +0 -1
- package/dist/utils/optionallyAddLeadingSlash.js +0 -7
- package/dist/utils/optionallyAddLeadingSlash.js.map +0 -1
|
@@ -1,41 +1,42 @@
|
|
|
1
1
|
import { jsxs as s, jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import { useState as
|
|
3
|
-
import { DescriptionWithoutHeaders as
|
|
4
|
-
import { useApiPlaygroundPrefillExamples as
|
|
5
|
-
import { useMDXContent as
|
|
6
|
-
import { parseAuthInputsFromUserInfo as
|
|
7
|
-
import { useSecurityOption as
|
|
8
|
-
import { getDefaultsFromParameterGroup as
|
|
2
|
+
import { useState as C, useContext as B, useEffect as J } from "react";
|
|
3
|
+
import { DescriptionWithoutHeaders as H } from "../../EndpointFields/components/Description.js";
|
|
4
|
+
import { useApiPlaygroundPrefillExamples as I } from "../../../hooks/useApiPlaygroundPrefillExamples.js";
|
|
5
|
+
import { useMDXContent as R } from "../../../hooks/useMDXContent.js";
|
|
6
|
+
import { parseAuthInputsFromUserInfo as G } from "../../../hooks/usePrefilledInputs/index.js";
|
|
7
|
+
import { useSecurityOption as U } from "../../../hooks/useSecurityOption.js";
|
|
8
|
+
import { getDefaultsFromParameterGroup as W, getDefaultFromSchema as Q } from "../../../utils/api-playground/defaults.js";
|
|
9
9
|
import { paramFieldDefaults as w } from "../../../utils/api-playground/paramFieldDefaults.js";
|
|
10
|
-
import { getFilteredSecurityOptions as
|
|
10
|
+
import { getFilteredSecurityOptions as X } from "../../../utils/api-reference/getFilteredSecurityOptions.js";
|
|
11
11
|
import "@mintlify/validation";
|
|
12
|
-
import { cn as
|
|
13
|
-
import { ApiPlaygroundContext as
|
|
12
|
+
import { cn as z } from "../../../utils/cn.js";
|
|
13
|
+
import { ApiPlaygroundContext as K } from "../ApiPlaygroundContext.js";
|
|
14
14
|
import { Response as P } from "../Response/index.js";
|
|
15
|
-
import { EndpointsMenu as
|
|
16
|
-
import { PathHeader as
|
|
17
|
-
import { PlaygroundModalWrapper as
|
|
18
|
-
import { BodySection as
|
|
15
|
+
import { EndpointsMenu as L } from "../components/EndpointsMenu.js";
|
|
16
|
+
import { PathHeader as T, SendPill as Y } from "../components/PathHeader.js";
|
|
17
|
+
import { PlaygroundModalWrapper as Z } from "../components/PlaygroundModalWrapper.js";
|
|
18
|
+
import { BodySection as _ } from "./BodySection.js";
|
|
19
19
|
import { ParameterSection as y } from "./ParameterSection.js";
|
|
20
|
-
import { SecuritySection as
|
|
21
|
-
import { ServerSection as
|
|
22
|
-
import { ApiExamples as
|
|
23
|
-
function
|
|
20
|
+
import { SecuritySection as $ } from "./SecuritySection.js";
|
|
21
|
+
import { ServerSection as ee } from "./ServerSection.js";
|
|
22
|
+
import { ApiExamples as te } from "../../../api-playground-2/ApiExamples.js";
|
|
23
|
+
function Oe({
|
|
24
24
|
endpoint: t,
|
|
25
25
|
inputs: a,
|
|
26
|
-
setInputs: m
|
|
26
|
+
setInputs: m,
|
|
27
|
+
pathname: j
|
|
27
28
|
}) {
|
|
28
29
|
var k;
|
|
29
|
-
const [{ pageMetadata: b }] =
|
|
30
|
-
isSending:
|
|
31
|
-
selectedBaseUrlIndex:
|
|
30
|
+
const [{ pageMetadata: b }] = R(), [v, A] = C(0), { prefillExamplesEnabled: f, generatedRequestExampleData: p } = I(), S = U(t.request.security), {
|
|
31
|
+
isSending: E,
|
|
32
|
+
selectedBaseUrlIndex: D,
|
|
32
33
|
isPlaygroundExpanded: g,
|
|
33
|
-
setIsPlaygroundExpanded:
|
|
34
|
-
sendRequest:
|
|
34
|
+
setIsPlaygroundExpanded: F,
|
|
35
|
+
sendRequest: M,
|
|
35
36
|
result: l,
|
|
36
37
|
selectedExampleIndex: d
|
|
37
|
-
} =
|
|
38
|
-
return
|
|
38
|
+
} = B(K), h = (k = t.servers) == null ? void 0 : k[D], q = X(t), V = q[v], n = h == null ? void 0 : h.variables;
|
|
39
|
+
return J(() => {
|
|
39
40
|
var N;
|
|
40
41
|
if (!g) return;
|
|
41
42
|
const e = f ? p[d ?? 0] : JSON.parse(JSON.stringify(a));
|
|
@@ -52,20 +53,20 @@ function Ne({
|
|
|
52
53
|
["cookie", t.request.parameters.cookie]
|
|
53
54
|
].forEach(([i, o]) => {
|
|
54
55
|
var O;
|
|
55
|
-
const c = f ? (O = p[d ?? 0]) == null ? void 0 : O[i] :
|
|
56
|
+
const c = f ? (O = p[d ?? 0]) == null ? void 0 : O[i] : W(o);
|
|
56
57
|
e[i] = {
|
|
57
58
|
...c,
|
|
58
59
|
...w[i],
|
|
59
60
|
...e[i]
|
|
60
61
|
};
|
|
61
62
|
});
|
|
62
|
-
const x =
|
|
63
|
+
const x = G(
|
|
63
64
|
S
|
|
64
65
|
);
|
|
65
66
|
e.query = { ...e.query, ...x.query }, e.header = { ...e.header, ...x.header }, e.cookie = { ...e.cookie, ...x.cookie };
|
|
66
67
|
const u = Object.values(t.request.body)[0];
|
|
67
68
|
if (u != null && u.schemaArray.length) {
|
|
68
|
-
const i = f ? (N = p[d ?? 0]) == null ? void 0 : N.body :
|
|
69
|
+
const i = f ? (N = p[d ?? 0]) == null ? void 0 : N.body : Q(u.schemaArray[0]), o = w.body;
|
|
69
70
|
if (typeof i == "object" && i !== null)
|
|
70
71
|
e.body = Object.assign(
|
|
71
72
|
{},
|
|
@@ -80,21 +81,21 @@ function Ne({
|
|
|
80
81
|
}
|
|
81
82
|
JSON.stringify(e) !== JSON.stringify(a) && m(e);
|
|
82
83
|
}, [g, t, d, S]), /* @__PURE__ */ s(
|
|
83
|
-
|
|
84
|
+
Z,
|
|
84
85
|
{
|
|
85
86
|
isPlaygroundExpanded: g,
|
|
86
|
-
setIsPlaygroundExpanded:
|
|
87
|
+
setIsPlaygroundExpanded: F,
|
|
87
88
|
children: [
|
|
88
89
|
/* @__PURE__ */ s("div", { className: "mint:flex mint:items-center mint:justify-between mint:gap-x-2", children: [
|
|
89
|
-
/* @__PURE__ */ r(
|
|
90
|
-
/* @__PURE__ */ r(
|
|
90
|
+
/* @__PURE__ */ r(L, { endpoint: t, pathname: j }),
|
|
91
|
+
/* @__PURE__ */ r(T, { endpoint: t, hasGrayBackground: !0, display: "interactive" }),
|
|
91
92
|
/* @__PURE__ */ r(
|
|
92
|
-
|
|
93
|
+
Y,
|
|
93
94
|
{
|
|
94
95
|
label: "Send",
|
|
95
96
|
method: t.method,
|
|
96
|
-
isSending:
|
|
97
|
-
onClick:
|
|
97
|
+
isSending: E,
|
|
98
|
+
onClick: M,
|
|
98
99
|
className: "mint:w-20"
|
|
99
100
|
}
|
|
100
101
|
)
|
|
@@ -104,7 +105,7 @@ function Ne({
|
|
|
104
105
|
/* @__PURE__ */ s("div", { className: "mint:space-y-1 mint:min-w-full mint:w-full mint:max-w-full mint:overflow-hidden", children: [
|
|
105
106
|
/* @__PURE__ */ r("div", { className: "mint:text-base mint:font-medium mint:text-gray-900 mint:dark:text-white mint:max-w-full", children: t.title }),
|
|
106
107
|
/* @__PURE__ */ r("div", { className: "mint:flex mint:items-start mint:gap-x-12 mint:justify-between mint:max-w-full! mint:overflow-x-auto", children: b.description && /* @__PURE__ */ r(
|
|
107
|
-
|
|
108
|
+
H,
|
|
108
109
|
{
|
|
109
110
|
markdown: b.description,
|
|
110
111
|
className: "mint:text-sm mint:text-gray-500 mint:dark:text-gray-400"
|
|
@@ -114,21 +115,21 @@ function Ne({
|
|
|
114
115
|
l && /* @__PURE__ */ r(P, { result: l, className: "mint:mt-6 mint:block mint:lg:hidden" }),
|
|
115
116
|
/* @__PURE__ */ s("div", { className: "mint:space-y-2 mint:mt-6", children: [
|
|
116
117
|
n && Object.keys(n).length > 0 && /* @__PURE__ */ r(
|
|
117
|
-
|
|
118
|
+
ee,
|
|
118
119
|
{
|
|
119
120
|
variables: n,
|
|
120
121
|
value: a.server,
|
|
121
122
|
setValue: (e) => m({ ...a, server: e })
|
|
122
123
|
}
|
|
123
124
|
),
|
|
124
|
-
|
|
125
|
-
|
|
125
|
+
V && /* @__PURE__ */ r(
|
|
126
|
+
$,
|
|
126
127
|
{
|
|
127
128
|
inputs: a,
|
|
128
129
|
setInputs: m,
|
|
129
130
|
securityOptions: q,
|
|
130
131
|
selectedSecurityOptionIndex: v,
|
|
131
|
-
setSelectedSecurityOptionIndex:
|
|
132
|
+
setSelectedSecurityOptionIndex: A
|
|
132
133
|
}
|
|
133
134
|
),
|
|
134
135
|
/* @__PURE__ */ r(
|
|
@@ -168,7 +169,7 @@ function Ne({
|
|
|
168
169
|
}
|
|
169
170
|
),
|
|
170
171
|
/* @__PURE__ */ r(
|
|
171
|
-
|
|
172
|
+
_,
|
|
172
173
|
{
|
|
173
174
|
value: a.body,
|
|
174
175
|
setValue: (e) => m({ ...a, body: e }),
|
|
@@ -180,13 +181,13 @@ function Ne({
|
|
|
180
181
|
/* @__PURE__ */ s(
|
|
181
182
|
"div",
|
|
182
183
|
{
|
|
183
|
-
className:
|
|
184
|
+
className: z(
|
|
184
185
|
"mint:p-px mint:col-span-1 mint:lg:col-span-2 mint:lg:space-y-6 mint:lg:flex mint:lg:sticky mint:lg:top-0 mint:lg:self-start mint:lg:h-[calc(100vh-5.5rem)]",
|
|
185
186
|
l && "mint:lg:flex-col mint:overflow-y-auto mint:lg:-top-12 mint:lg:h-screen"
|
|
186
187
|
),
|
|
187
188
|
children: [
|
|
188
189
|
l && /* @__PURE__ */ r(P, { result: l, className: "mint:hidden mint:lg:block mint:min-h-fit" }),
|
|
189
|
-
/* @__PURE__ */ r(
|
|
190
|
+
/* @__PURE__ */ r(te, { isModal: !0, "data-testid": "api-playground-request-example", className: "mint:xl:w-full" })
|
|
190
191
|
]
|
|
191
192
|
}
|
|
192
193
|
)
|
|
@@ -196,6 +197,6 @@ function Ne({
|
|
|
196
197
|
);
|
|
197
198
|
}
|
|
198
199
|
export {
|
|
199
|
-
|
|
200
|
+
Oe as PlaygroundModal
|
|
200
201
|
};
|
|
201
202
|
//# sourceMappingURL=PlaygroundModal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaygroundModal.js","sources":["../../../../src/api-playground/ApiPlayground/Request/PlaygroundModal.tsx"],"sourcesContent":["'use client';\n\nimport { ApiPlaygroundInputs, Endpoint } from '@mintlify/validation';\nimport { useContext, useState, useEffect } from 'react';\n\nimport { DescriptionWithoutHeaders } from '@/api-playground/EndpointFields/components/Description';\nimport { useApiPlaygroundPrefillExamples } from '@/hooks/useApiPlaygroundPrefillExamples';\nimport { useMDXContent } from '@/hooks/useMDXContent';\nimport { parseAuthInputsFromUserInfo } from '@/hooks/usePrefilledInputs';\nimport { useSecurityOption } from '@/hooks/useSecurityOption';\nimport {\n getDefaultsFromParameterGroup,\n getDefaultFromSchema,\n} from '@/utils/api-playground/defaults';\nimport { paramFieldDefaults } from '@/utils/api-playground/paramFieldDefaults';\nimport { getFilteredSecurityOptions } from '@/utils/api-reference/getFilteredSecurityOptions';\nimport { cn } from '@/api-playground-2/schemaGraph/utils';\n\nimport { ApiPlaygroundContext } from '../ApiPlaygroundContext';\nimport { Response } from '../Response';\nimport { EndpointsMenu } from '../components/EndpointsMenu';\nimport { PathHeader, SendPill } from '../components/PathHeader';\nimport { PlaygroundModalWrapper } from '../components/PlaygroundModalWrapper';\nimport { BodySection } from './BodySection';\nimport { ParameterSection } from './ParameterSection';\nimport { SecuritySection } from './SecuritySection';\nimport { ServerSection } from './ServerSection';\nimport ApiExamples from '@/api-playground-2/ApiExamples';\n\nexport function PlaygroundModal({\n endpoint,\n inputs,\n setInputs,\n}: {\n endpoint: Endpoint;\n inputs: ApiPlaygroundInputs;\n setInputs: (inputs: ApiPlaygroundInputs) => void;\n}) {\n const [{ pageMetadata }] = useMDXContent();\n const [selectedSecurityOptionIndex, setSelectedSecurityOptionIndex] = useState(0);\n const { prefillExamplesEnabled, generatedRequestExampleData } = useApiPlaygroundPrefillExamples();\n const securityOption = useSecurityOption(endpoint.request.security);\n\n const {\n isSending,\n selectedBaseUrlIndex,\n isPlaygroundExpanded,\n setIsPlaygroundExpanded,\n sendRequest,\n result,\n selectedExampleIndex,\n } = useContext(ApiPlaygroundContext);\n const server = endpoint.servers?.[selectedBaseUrlIndex];\n\n const filteredSecurityOptions = getFilteredSecurityOptions(endpoint);\n\n const selectedSecurityOption = filteredSecurityOptions[selectedSecurityOptionIndex];\n\n const variables = server?.variables;\n\n useEffect(() => {\n if (!isPlaygroundExpanded) return;\n\n const nextInputs: ApiPlaygroundInputs = prefillExamplesEnabled\n ? generatedRequestExampleData[selectedExampleIndex ?? 0]\n : JSON.parse(JSON.stringify(inputs));\n\n if (variables) {\n const serverDefaults: Record<string, string> = {};\n Object.entries(variables).forEach(([k, v]) => {\n if (nextInputs.server[k] === undefined) {\n serverDefaults[k] = String(v.default);\n }\n });\n nextInputs.server = { ...nextInputs.server, ...serverDefaults };\n }\n\n const paramSections: Array<\n ['header' | 'path' | 'query' | 'cookie', typeof endpoint.request.parameters.header]\n > = [\n ['header', endpoint.request.parameters.header],\n ['path', endpoint.request.parameters.path],\n ['query', endpoint.request.parameters.query],\n ['cookie', endpoint.request.parameters.cookie],\n ];\n\n paramSections.forEach(([section, group]) => {\n const spec = prefillExamplesEnabled\n ? generatedRequestExampleData[selectedExampleIndex ?? 0]?.[section]\n : getDefaultsFromParameterGroup(group);\n\n nextInputs[section] = {\n ...spec,\n ...paramFieldDefaults[section],\n ...nextInputs[section],\n };\n });\n\n const userInfoAuthInputs = parseAuthInputsFromUserInfo(\n securityOption,\n undefined\n );\n\n nextInputs.query = { ...nextInputs.query, ...userInfoAuthInputs.query };\n nextInputs.header = { ...nextInputs.header, ...userInfoAuthInputs.header };\n nextInputs.cookie = { ...nextInputs.cookie, ...userInfoAuthInputs.cookie };\n\n const bodyEntry = Object.values(endpoint.request.body)[0];\n if (bodyEntry?.schemaArray.length) {\n const bodyDefaultFromSpec = prefillExamplesEnabled\n ? generatedRequestExampleData[selectedExampleIndex ?? 0]?.body\n : getDefaultFromSchema(bodyEntry.schemaArray[0]);\n\n const bodyDefaultsFromParamField: Record<string, unknown> = paramFieldDefaults.body;\n\n if (typeof bodyDefaultFromSpec === 'object' && bodyDefaultFromSpec !== null) {\n nextInputs.body = Object.assign(\n {},\n bodyDefaultFromSpec,\n bodyDefaultsFromParamField,\n typeof nextInputs.body === 'object' &&\n nextInputs.body !== null &&\n !Array.isArray(nextInputs.body)\n ? nextInputs.body\n : {}\n );\n } else if (Object.keys(bodyDefaultsFromParamField).length) {\n const existingBody =\n typeof nextInputs.body === 'object' &&\n nextInputs.body !== null &&\n !Array.isArray(nextInputs.body)\n ? nextInputs.body\n : {};\n nextInputs.body = { ...bodyDefaultsFromParamField, ...existingBody };\n } else if (nextInputs.body === undefined && bodyDefaultFromSpec !== undefined) {\n nextInputs.body = bodyDefaultFromSpec;\n }\n }\n\n if (JSON.stringify(nextInputs) !== JSON.stringify(inputs)) {\n setInputs(nextInputs);\n }\n }, [isPlaygroundExpanded, endpoint, selectedExampleIndex, securityOption]);\n\n return (\n <PlaygroundModalWrapper\n isPlaygroundExpanded={isPlaygroundExpanded}\n setIsPlaygroundExpanded={setIsPlaygroundExpanded}\n >\n <div className=\"mint:flex mint:items-center mint:justify-between mint:gap-x-2\">\n <EndpointsMenu endpoint={endpoint} />\n <PathHeader endpoint={endpoint} hasGrayBackground display=\"interactive\" />\n <SendPill\n label=\"Send\"\n method={endpoint.method}\n isSending={isSending}\n onClick={sendRequest}\n className=\"mint:w-20\"\n />\n </div>\n <div className=\"mint:grid mint:grid-cols-1 mint:lg:grid-cols-5 mint:gap-x-8 mint:gap-y-6 mint:mt-5 mint:relative\">\n <div className=\"mint:col-span-1 mint:lg:col-span-3\">\n <div className=\"mint:space-y-1 mint:min-w-full mint:w-full mint:max-w-full mint:overflow-hidden\">\n <div className=\"mint:text-base mint:font-medium mint:text-gray-900 mint:dark:text-white mint:max-w-full\">\n {endpoint.title}\n </div>\n <div className=\"mint:flex mint:items-start mint:gap-x-12 mint:justify-between mint:max-w-full! mint:overflow-x-auto\">\n {pageMetadata.description && (\n <DescriptionWithoutHeaders\n markdown={pageMetadata.description}\n className=\"mint:text-sm mint:text-gray-500 mint:dark:text-gray-400\"\n />\n )}\n </div>\n </div>\n {result && <Response result={result} className=\"mint:mt-6 mint:block mint:lg:hidden\" />}\n <div className=\"mint:space-y-2 mint:mt-6\">\n {variables && Object.keys(variables).length > 0 && (\n <ServerSection\n variables={variables}\n value={inputs.server}\n setValue={(server) => setInputs({ ...inputs, server })}\n />\n )}\n {selectedSecurityOption && (\n <SecuritySection\n inputs={inputs}\n setInputs={setInputs}\n securityOptions={filteredSecurityOptions}\n selectedSecurityOptionIndex={selectedSecurityOptionIndex}\n setSelectedSecurityOptionIndex={setSelectedSecurityOptionIndex}\n />\n )}\n <ParameterSection\n name=\"Header\"\n value={inputs.header}\n setValue={(header) => setInputs({ ...inputs, header })}\n parameters={endpoint.request.parameters.header}\n />\n <ParameterSection\n name=\"Cookie\"\n value={inputs.cookie}\n setValue={(cookie) => setInputs({ ...inputs, cookie })}\n parameters={endpoint.request.parameters.cookie}\n />\n <ParameterSection\n name=\"Path\"\n value={inputs.path}\n setValue={(path) => setInputs({ ...inputs, path })}\n parameters={endpoint.request.parameters.path}\n />\n <ParameterSection\n name=\"Query\"\n value={inputs.query}\n setValue={(query) => setInputs({ ...inputs, query })}\n parameters={endpoint.request.parameters.query}\n />\n <BodySection\n value={inputs.body}\n setValue={(body) => setInputs({ ...inputs, body })}\n body={endpoint.request.body}\n />\n </div>\n </div>\n <div\n className={cn(\n 'mint:p-px mint:col-span-1 mint:lg:col-span-2 mint:lg:space-y-6 mint:lg:flex mint:lg:sticky mint:lg:top-0 mint:lg:self-start mint:lg:h-[calc(100vh-5.5rem)]',\n result && 'mint:lg:flex-col mint:overflow-y-auto mint:lg:-top-12 mint:lg:h-screen'\n )}\n >\n {result && <Response result={result} className=\"mint:hidden mint:lg:block mint:min-h-fit\" />}\n <ApiExamples isModal data-testid=\"api-playground-request-example\" className=\"mint:xl:w-full\" />\n </div>\n </div>\n </PlaygroundModalWrapper>\n );\n}\n"],"names":["PlaygroundModal","endpoint","inputs","setInputs","pageMetadata","useMDXContent","selectedSecurityOptionIndex","setSelectedSecurityOptionIndex","useState","prefillExamplesEnabled","generatedRequestExampleData","useApiPlaygroundPrefillExamples","securityOption","useSecurityOption","isSending","selectedBaseUrlIndex","isPlaygroundExpanded","setIsPlaygroundExpanded","sendRequest","result","selectedExampleIndex","useContext","ApiPlaygroundContext","server","_a","filteredSecurityOptions","getFilteredSecurityOptions","selectedSecurityOption","variables","useEffect","nextInputs","serverDefaults","k","v","section","group","spec","getDefaultsFromParameterGroup","paramFieldDefaults","userInfoAuthInputs","parseAuthInputsFromUserInfo","bodyEntry","bodyDefaultFromSpec","getDefaultFromSchema","bodyDefaultsFromParamField","existingBody","jsxs","PlaygroundModalWrapper","jsx","EndpointsMenu","PathHeader","SendPill","DescriptionWithoutHeaders","Response","ServerSection","SecuritySection","ParameterSection","header","cookie","path","query","BodySection","body","cn","ApiExamples"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PlaygroundModal.js","sources":["../../../../src/api-playground/ApiPlayground/Request/PlaygroundModal.tsx"],"sourcesContent":["'use client';\n\nimport { ApiPlaygroundInputs, Endpoint } from '@mintlify/validation';\nimport { useContext, useState, useEffect } from 'react';\n\nimport { DescriptionWithoutHeaders } from '@/api-playground/EndpointFields/components/Description';\nimport { useApiPlaygroundPrefillExamples } from '@/hooks/useApiPlaygroundPrefillExamples';\nimport { useMDXContent } from '@/hooks/useMDXContent';\nimport { parseAuthInputsFromUserInfo } from '@/hooks/usePrefilledInputs';\nimport { useSecurityOption } from '@/hooks/useSecurityOption';\nimport {\n getDefaultsFromParameterGroup,\n getDefaultFromSchema,\n} from '@/utils/api-playground/defaults';\nimport { paramFieldDefaults } from '@/utils/api-playground/paramFieldDefaults';\nimport { getFilteredSecurityOptions } from '@/utils/api-reference/getFilteredSecurityOptions';\nimport { cn } from '@/api-playground-2/schemaGraph/utils';\n\nimport { ApiPlaygroundContext } from '../ApiPlaygroundContext';\nimport { Response } from '../Response';\nimport { EndpointsMenu } from '../components/EndpointsMenu';\nimport { PathHeader, SendPill } from '../components/PathHeader';\nimport { PlaygroundModalWrapper } from '../components/PlaygroundModalWrapper';\nimport { BodySection } from './BodySection';\nimport { ParameterSection } from './ParameterSection';\nimport { SecuritySection } from './SecuritySection';\nimport { ServerSection } from './ServerSection';\nimport ApiExamples from '@/api-playground-2/ApiExamples';\n\nexport function PlaygroundModal({\n endpoint,\n inputs,\n setInputs,\n pathname,\n}: {\n endpoint: Endpoint;\n inputs: ApiPlaygroundInputs;\n setInputs: (inputs: ApiPlaygroundInputs) => void;\n pathname: string;\n}) {\n const [{ pageMetadata }] = useMDXContent();\n const [selectedSecurityOptionIndex, setSelectedSecurityOptionIndex] = useState(0);\n const { prefillExamplesEnabled, generatedRequestExampleData } = useApiPlaygroundPrefillExamples();\n const securityOption = useSecurityOption(endpoint.request.security);\n\n const {\n isSending,\n selectedBaseUrlIndex,\n isPlaygroundExpanded,\n setIsPlaygroundExpanded,\n sendRequest,\n result,\n selectedExampleIndex,\n } = useContext(ApiPlaygroundContext);\n const server = endpoint.servers?.[selectedBaseUrlIndex];\n\n const filteredSecurityOptions = getFilteredSecurityOptions(endpoint);\n\n const selectedSecurityOption = filteredSecurityOptions[selectedSecurityOptionIndex];\n\n const variables = server?.variables;\n\n useEffect(() => {\n if (!isPlaygroundExpanded) return;\n\n const nextInputs: ApiPlaygroundInputs = prefillExamplesEnabled\n ? generatedRequestExampleData[selectedExampleIndex ?? 0]\n : JSON.parse(JSON.stringify(inputs));\n\n if (variables) {\n const serverDefaults: Record<string, string> = {};\n Object.entries(variables).forEach(([k, v]) => {\n if (nextInputs.server[k] === undefined) {\n serverDefaults[k] = String(v.default);\n }\n });\n nextInputs.server = { ...nextInputs.server, ...serverDefaults };\n }\n\n const paramSections: Array<\n ['header' | 'path' | 'query' | 'cookie', typeof endpoint.request.parameters.header]\n > = [\n ['header', endpoint.request.parameters.header],\n ['path', endpoint.request.parameters.path],\n ['query', endpoint.request.parameters.query],\n ['cookie', endpoint.request.parameters.cookie],\n ];\n\n paramSections.forEach(([section, group]) => {\n const spec = prefillExamplesEnabled\n ? generatedRequestExampleData[selectedExampleIndex ?? 0]?.[section]\n : getDefaultsFromParameterGroup(group);\n\n nextInputs[section] = {\n ...spec,\n ...paramFieldDefaults[section],\n ...nextInputs[section],\n };\n });\n\n const userInfoAuthInputs = parseAuthInputsFromUserInfo(\n securityOption,\n undefined\n );\n\n nextInputs.query = { ...nextInputs.query, ...userInfoAuthInputs.query };\n nextInputs.header = { ...nextInputs.header, ...userInfoAuthInputs.header };\n nextInputs.cookie = { ...nextInputs.cookie, ...userInfoAuthInputs.cookie };\n\n const bodyEntry = Object.values(endpoint.request.body)[0];\n if (bodyEntry?.schemaArray.length) {\n const bodyDefaultFromSpec = prefillExamplesEnabled\n ? generatedRequestExampleData[selectedExampleIndex ?? 0]?.body\n : getDefaultFromSchema(bodyEntry.schemaArray[0]);\n\n const bodyDefaultsFromParamField: Record<string, unknown> = paramFieldDefaults.body;\n\n if (typeof bodyDefaultFromSpec === 'object' && bodyDefaultFromSpec !== null) {\n nextInputs.body = Object.assign(\n {},\n bodyDefaultFromSpec,\n bodyDefaultsFromParamField,\n typeof nextInputs.body === 'object' &&\n nextInputs.body !== null &&\n !Array.isArray(nextInputs.body)\n ? nextInputs.body\n : {}\n );\n } else if (Object.keys(bodyDefaultsFromParamField).length) {\n const existingBody =\n typeof nextInputs.body === 'object' &&\n nextInputs.body !== null &&\n !Array.isArray(nextInputs.body)\n ? nextInputs.body\n : {};\n nextInputs.body = { ...bodyDefaultsFromParamField, ...existingBody };\n } else if (nextInputs.body === undefined && bodyDefaultFromSpec !== undefined) {\n nextInputs.body = bodyDefaultFromSpec;\n }\n }\n\n if (JSON.stringify(nextInputs) !== JSON.stringify(inputs)) {\n setInputs(nextInputs);\n }\n }, [isPlaygroundExpanded, endpoint, selectedExampleIndex, securityOption]);\n\n return (\n <PlaygroundModalWrapper\n isPlaygroundExpanded={isPlaygroundExpanded}\n setIsPlaygroundExpanded={setIsPlaygroundExpanded}\n >\n <div className=\"mint:flex mint:items-center mint:justify-between mint:gap-x-2\">\n <EndpointsMenu endpoint={endpoint} pathname={pathname} />\n <PathHeader endpoint={endpoint} hasGrayBackground display=\"interactive\" />\n <SendPill\n label=\"Send\"\n method={endpoint.method}\n isSending={isSending}\n onClick={sendRequest}\n className=\"mint:w-20\"\n />\n </div>\n <div className=\"mint:grid mint:grid-cols-1 mint:lg:grid-cols-5 mint:gap-x-8 mint:gap-y-6 mint:mt-5 mint:relative\">\n <div className=\"mint:col-span-1 mint:lg:col-span-3\">\n <div className=\"mint:space-y-1 mint:min-w-full mint:w-full mint:max-w-full mint:overflow-hidden\">\n <div className=\"mint:text-base mint:font-medium mint:text-gray-900 mint:dark:text-white mint:max-w-full\">\n {endpoint.title}\n </div>\n <div className=\"mint:flex mint:items-start mint:gap-x-12 mint:justify-between mint:max-w-full! mint:overflow-x-auto\">\n {pageMetadata.description && (\n <DescriptionWithoutHeaders\n markdown={pageMetadata.description}\n className=\"mint:text-sm mint:text-gray-500 mint:dark:text-gray-400\"\n />\n )}\n </div>\n </div>\n {result && <Response result={result} className=\"mint:mt-6 mint:block mint:lg:hidden\" />}\n <div className=\"mint:space-y-2 mint:mt-6\">\n {variables && Object.keys(variables).length > 0 && (\n <ServerSection\n variables={variables}\n value={inputs.server}\n setValue={(server) => setInputs({ ...inputs, server })}\n />\n )}\n {selectedSecurityOption && (\n <SecuritySection\n inputs={inputs}\n setInputs={setInputs}\n securityOptions={filteredSecurityOptions}\n selectedSecurityOptionIndex={selectedSecurityOptionIndex}\n setSelectedSecurityOptionIndex={setSelectedSecurityOptionIndex}\n />\n )}\n <ParameterSection\n name=\"Header\"\n value={inputs.header}\n setValue={(header) => setInputs({ ...inputs, header })}\n parameters={endpoint.request.parameters.header}\n />\n <ParameterSection\n name=\"Cookie\"\n value={inputs.cookie}\n setValue={(cookie) => setInputs({ ...inputs, cookie })}\n parameters={endpoint.request.parameters.cookie}\n />\n <ParameterSection\n name=\"Path\"\n value={inputs.path}\n setValue={(path) => setInputs({ ...inputs, path })}\n parameters={endpoint.request.parameters.path}\n />\n <ParameterSection\n name=\"Query\"\n value={inputs.query}\n setValue={(query) => setInputs({ ...inputs, query })}\n parameters={endpoint.request.parameters.query}\n />\n <BodySection\n value={inputs.body}\n setValue={(body) => setInputs({ ...inputs, body })}\n body={endpoint.request.body}\n />\n </div>\n </div>\n <div\n className={cn(\n 'mint:p-px mint:col-span-1 mint:lg:col-span-2 mint:lg:space-y-6 mint:lg:flex mint:lg:sticky mint:lg:top-0 mint:lg:self-start mint:lg:h-[calc(100vh-5.5rem)]',\n result && 'mint:lg:flex-col mint:overflow-y-auto mint:lg:-top-12 mint:lg:h-screen'\n )}\n >\n {result && <Response result={result} className=\"mint:hidden mint:lg:block mint:min-h-fit\" />}\n <ApiExamples isModal data-testid=\"api-playground-request-example\" className=\"mint:xl:w-full\" />\n </div>\n </div>\n </PlaygroundModalWrapper>\n );\n}\n"],"names":["PlaygroundModal","endpoint","inputs","setInputs","pathname","pageMetadata","useMDXContent","selectedSecurityOptionIndex","setSelectedSecurityOptionIndex","useState","prefillExamplesEnabled","generatedRequestExampleData","useApiPlaygroundPrefillExamples","securityOption","useSecurityOption","isSending","selectedBaseUrlIndex","isPlaygroundExpanded","setIsPlaygroundExpanded","sendRequest","result","selectedExampleIndex","useContext","ApiPlaygroundContext","server","_a","filteredSecurityOptions","getFilteredSecurityOptions","selectedSecurityOption","variables","useEffect","nextInputs","serverDefaults","k","v","section","group","spec","getDefaultsFromParameterGroup","paramFieldDefaults","userInfoAuthInputs","parseAuthInputsFromUserInfo","bodyEntry","bodyDefaultFromSpec","getDefaultFromSchema","bodyDefaultsFromParamField","existingBody","jsxs","PlaygroundModalWrapper","jsx","EndpointsMenu","PathHeader","SendPill","DescriptionWithoutHeaders","Response","ServerSection","SecuritySection","ParameterSection","header","cookie","path","query","BodySection","body","cn","ApiExamples"],"mappings":"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"}
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
import { jsx as e, jsxs as
|
|
2
|
-
import { useContext as
|
|
3
|
-
import { usePrefilledInputs as
|
|
4
|
-
import { useSecurityOption as
|
|
5
|
-
import
|
|
1
|
+
import { jsx as e, jsxs as d } from "react/jsx-runtime";
|
|
2
|
+
import { useContext as f } from "react";
|
|
3
|
+
import { usePrefilledInputs as a } from "../../../hooks/usePrefilledInputs/index.js";
|
|
4
|
+
import { useSecurityOption as p } from "../../../hooks/useSecurityOption.js";
|
|
5
|
+
import x from "../../../components/Api/ErrorBoundary.js";
|
|
6
6
|
import "@mintlify/validation";
|
|
7
|
-
import { cn as
|
|
8
|
-
import { ApiPlaygroundContext as
|
|
9
|
-
import { EndpointHeader as
|
|
10
|
-
import { PlaygroundModal as
|
|
11
|
-
const
|
|
7
|
+
import { cn as b } from "../../../utils/cn.js";
|
|
8
|
+
import { ApiPlaygroundContext as g } from "../ApiPlaygroundContext.js";
|
|
9
|
+
import { EndpointHeader as k } from "../components/PathHeader.js";
|
|
10
|
+
import { PlaygroundModal as y } from "./PlaygroundModal.js";
|
|
11
|
+
const w = ({ endpoint: r, inputs: i, setInputs: m, display: n, pathname: s }) => {
|
|
12
12
|
var l;
|
|
13
|
-
const { selectedBaseUrlIndex:
|
|
14
|
-
return
|
|
13
|
+
const { selectedBaseUrlIndex: u, setIsPlaygroundExpanded: o } = f(g), t = (l = r.servers) == null ? void 0 : l[u], c = p(r.request.security);
|
|
14
|
+
return a({
|
|
15
15
|
inputs: i,
|
|
16
16
|
setInputs: m,
|
|
17
17
|
baseUrl: t == null ? void 0 : t.url,
|
|
18
|
-
securityOption:
|
|
18
|
+
securityOption: c,
|
|
19
19
|
userInfoInputs: void 0
|
|
20
|
-
}), /* @__PURE__ */ e(
|
|
20
|
+
}), /* @__PURE__ */ e(x, { children: /* @__PURE__ */ d(
|
|
21
21
|
"div",
|
|
22
22
|
{
|
|
23
|
-
className:
|
|
23
|
+
className: b(
|
|
24
24
|
"mint:flex mint:w-full mint:flex-col mint:bg-background-light mint:dark:bg-background-dark mint:border-standard mint:rounded-2xl",
|
|
25
25
|
n === "simple" ? "mint:p-1" : "mint:p-1.5"
|
|
26
26
|
),
|
|
27
27
|
children: [
|
|
28
28
|
/* @__PURE__ */ e(
|
|
29
|
-
|
|
29
|
+
k,
|
|
30
30
|
{
|
|
31
31
|
endpoint: r,
|
|
32
32
|
display: n,
|
|
33
33
|
onClickInteractive: () => o == null ? void 0 : o(!0)
|
|
34
34
|
}
|
|
35
35
|
),
|
|
36
|
-
/* @__PURE__ */ e(
|
|
36
|
+
/* @__PURE__ */ e(y, { endpoint: r, inputs: i, setInputs: m, pathname: s })
|
|
37
37
|
]
|
|
38
38
|
}
|
|
39
39
|
) });
|
|
40
40
|
};
|
|
41
41
|
export {
|
|
42
|
-
|
|
42
|
+
w as Request
|
|
43
43
|
};
|
|
44
44
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/api-playground/ApiPlayground/Request/index.tsx"],"sourcesContent":["'use client';\n\nimport { ApiPlaygroundDisplayType } from '@mintlify/models';\nimport { ApiPlaygroundInputs, Endpoint } from '@mintlify/validation';\nimport { useContext } from 'react';\n\nimport { usePrefilledInputs } from '@/hooks/usePrefilledInputs';\nimport { useSecurityOption } from '@/hooks/useSecurityOption';\nimport ErrorBoundary from '@/components/Api/ErrorBoundary';\nimport { cn } from '@/api-playground-2/schemaGraph/utils';\n\nimport { ApiPlaygroundContext } from '../ApiPlaygroundContext';\nimport { EndpointHeader } from '../components/PathHeader';\nimport { PlaygroundModal } from './PlaygroundModal';\n\ntype RequestParams = {\n endpoint: Endpoint;\n inputs: ApiPlaygroundInputs;\n setInputs: (inputs: ApiPlaygroundInputs) => void;\n display: ApiPlaygroundDisplayType;\n};\n\nexport const Request = ({ endpoint, inputs, setInputs, display }: RequestParams) => {\n const { selectedBaseUrlIndex, setIsPlaygroundExpanded } = useContext(ApiPlaygroundContext);\n const server = endpoint.servers?.[selectedBaseUrlIndex];\n\n const securityOption = useSecurityOption(endpoint.request.security);\n usePrefilledInputs({\n inputs,\n setInputs,\n baseUrl: server?.url,\n securityOption,\n userInfoInputs: undefined,\n });\n\n return (\n <ErrorBoundary>\n <div\n className={cn(\n 'mint:flex mint:w-full mint:flex-col mint:bg-background-light mint:dark:bg-background-dark mint:border-standard mint:rounded-2xl',\n display === 'simple' ? 'mint:p-1' : 'mint:p-1.5'\n )}\n >\n <EndpointHeader\n endpoint={endpoint}\n display={display}\n onClickInteractive={() => setIsPlaygroundExpanded?.(true)}\n />\n <PlaygroundModal endpoint={endpoint} inputs={inputs} setInputs={setInputs} />\n </div>\n </ErrorBoundary>\n );\n};\n"],"names":["Request","endpoint","inputs","setInputs","display","selectedBaseUrlIndex","setIsPlaygroundExpanded","useContext","ApiPlaygroundContext","server","_a","securityOption","useSecurityOption","usePrefilledInputs","ErrorBoundary","jsxs","cn","jsx","EndpointHeader","PlaygroundModal"],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/api-playground/ApiPlayground/Request/index.tsx"],"sourcesContent":["'use client';\n\nimport { ApiPlaygroundDisplayType } from '@mintlify/models';\nimport { ApiPlaygroundInputs, Endpoint } from '@mintlify/validation';\nimport { useContext } from 'react';\n\nimport { usePrefilledInputs } from '@/hooks/usePrefilledInputs';\nimport { useSecurityOption } from '@/hooks/useSecurityOption';\nimport ErrorBoundary from '@/components/Api/ErrorBoundary';\nimport { cn } from '@/api-playground-2/schemaGraph/utils';\n\nimport { ApiPlaygroundContext } from '../ApiPlaygroundContext';\nimport { EndpointHeader } from '../components/PathHeader';\nimport { PlaygroundModal } from './PlaygroundModal';\n\ntype RequestParams = {\n endpoint: Endpoint;\n inputs: ApiPlaygroundInputs;\n setInputs: (inputs: ApiPlaygroundInputs) => void;\n display: ApiPlaygroundDisplayType;\n pathname: string;\n};\n\nexport const Request = ({ endpoint, inputs, setInputs, display, pathname }: RequestParams) => {\n const { selectedBaseUrlIndex, setIsPlaygroundExpanded } = useContext(ApiPlaygroundContext);\n const server = endpoint.servers?.[selectedBaseUrlIndex];\n\n const securityOption = useSecurityOption(endpoint.request.security);\n usePrefilledInputs({\n inputs,\n setInputs,\n baseUrl: server?.url,\n securityOption,\n userInfoInputs: undefined,\n });\n\n return (\n <ErrorBoundary>\n <div\n className={cn(\n 'mint:flex mint:w-full mint:flex-col mint:bg-background-light mint:dark:bg-background-dark mint:border-standard mint:rounded-2xl',\n display === 'simple' ? 'mint:p-1' : 'mint:p-1.5'\n )}\n >\n <EndpointHeader\n endpoint={endpoint}\n display={display}\n onClickInteractive={() => setIsPlaygroundExpanded?.(true)}\n />\n <PlaygroundModal endpoint={endpoint} inputs={inputs} setInputs={setInputs} pathname={pathname} />\n </div>\n </ErrorBoundary>\n );\n};\n"],"names":["Request","endpoint","inputs","setInputs","display","pathname","selectedBaseUrlIndex","setIsPlaygroundExpanded","useContext","ApiPlaygroundContext","server","_a","securityOption","useSecurityOption","usePrefilledInputs","ErrorBoundary","jsxs","cn","jsx","EndpointHeader","PlaygroundModal"],"mappings":";;;;;;;;;;AAuBO,MAAMA,IAAU,CAAC,EAAE,UAAAC,GAAU,QAAAC,GAAQ,WAAAC,GAAW,SAAAC,GAAS,UAAAC,QAA8B;;AAC5F,QAAM,EAAE,sBAAAC,GAAsB,yBAAAC,MAA4BC,EAAWC,CAAoB,GACnFC,KAASC,IAAAV,EAAS,YAAT,gBAAAU,EAAmBL,IAE5BM,IAAiBC,EAAkBZ,EAAS,QAAQ,QAAQ;AAClE,SAAAa,EAAmB;AAAA,IACjB,QAAAZ;AAAA,IACA,WAAAC;AAAA,IACA,SAASO,KAAA,gBAAAA,EAAQ;AAAA,IACjB,gBAAAE;AAAA,IACA,gBAAgB;AAAA,EAAA,CACjB,qBAGEG,GAAA,EACC,UAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAb,MAAY,WAAW,aAAa;AAAA,MAAA;AAAA,MAGtC,UAAA;AAAA,QAAA,gBAAAc;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,UAAAlB;AAAA,YACA,SAAAG;AAAA,YACA,oBAAoB,MAAMG,KAAA,gBAAAA,EAA0B;AAAA,UAAI;AAAA,QAAA;AAAA,QAE1D,gBAAAW,EAACE,GAAA,EAAgB,UAAAnB,GAAoB,QAAAC,GAAgB,WAAAC,GAAsB,UAAAE,EAAA,CAAoB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEnG;AAEJ;"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import { jsxs as
|
|
1
|
+
import { jsxs as l, jsx as i } from "react/jsx-runtime";
|
|
2
2
|
import { potentiallyParseOpenApiString as M } from "../../../common/potentiallyParseOpenApiString.js";
|
|
3
|
-
import { slugToTitle as
|
|
4
|
-
import { ChevronDownFilled as
|
|
5
|
-
import { useState as
|
|
3
|
+
import { slugToTitle as f } from "../../../common/slugToTitle.js";
|
|
4
|
+
import { ChevronDownFilled as k } from "@fluentui/react-icons";
|
|
5
|
+
import { useState as P, useMemo as h } from "react";
|
|
6
6
|
import { MethodPill as A } from "../../../components/Api/MethodPill.js";
|
|
7
|
-
import { DropdownMenu as y, DropdownMenuTrigger as
|
|
8
|
-
import { useCurrentPath as N } from "../../../hooks/useCurrentPath.js";
|
|
7
|
+
import { DropdownMenu as y, DropdownMenuTrigger as D, DropdownMenuContent as N } from "../../../components/Api/dropdown-menu.js";
|
|
9
8
|
import { useMDXContent as S } from "../../../hooks/useMDXContent.js";
|
|
10
|
-
import { EndpointsMenuLink as
|
|
11
|
-
import { EndpointsMenuSearch as
|
|
12
|
-
const
|
|
9
|
+
import { EndpointsMenuLink as C } from "./EndpointsMenuLink.js";
|
|
10
|
+
import { EndpointsMenuSearch as T } from "./EndpointsMenuSearch.js";
|
|
11
|
+
const g = (r) => r.reduce((t, e) => "pages" in e ? [...t, ...g(e.pages)] : "openapi" in e || "api" in e || "asyncapi" in e ? [...t, e] : t, []), E = (r) => r.map((t) => {
|
|
13
12
|
{
|
|
14
13
|
const e = t.openapi || t.api;
|
|
15
14
|
if (e == null)
|
|
@@ -17,28 +16,28 @@ const f = (r) => r.reduce((t, e) => "pages" in e ? [...t, ...f(e.pages)] : "open
|
|
|
17
16
|
const n = M(e);
|
|
18
17
|
return n == null ? void 0 : {
|
|
19
18
|
method: n.method,
|
|
20
|
-
title: t.title ||
|
|
19
|
+
title: t.title || f(t.href),
|
|
21
20
|
href: t.href,
|
|
22
21
|
type: "openapi",
|
|
23
22
|
playground: t.playground
|
|
24
23
|
};
|
|
25
24
|
}
|
|
26
|
-
}).filter((t) => t != null),
|
|
27
|
-
var
|
|
28
|
-
const [{ pageMetadata:
|
|
29
|
-
return /* @__PURE__ */
|
|
30
|
-
/* @__PURE__ */ i(
|
|
31
|
-
/* @__PURE__ */ i(A, { method:
|
|
25
|
+
}).filter((t) => t != null), G = ({ endpoint: r, channel: t, operation: e, pathname: n }) => {
|
|
26
|
+
var u;
|
|
27
|
+
const [{ pageMetadata: a }] = S(), s = a.title || f(n), [m, x] = P(""), p = g(((u = a.navigation) == null ? void 0 : u.groupsOrPages) ?? []), d = h(() => E(p), [p]), v = e ? e.title || s : r ? r.title || s : (t == null ? void 0 : t.title) || s, c = e ? e.method : r ? r.method : "websocket", w = c === "websocket", b = h(() => m ? d.filter((o) => o.title.toLowerCase().includes(m.toLowerCase())) : d, [m, d]);
|
|
28
|
+
return /* @__PURE__ */ l(y, { children: [
|
|
29
|
+
/* @__PURE__ */ i(D, { className: "mint:hidden mint:lg:block", children: /* @__PURE__ */ l("div", { className: "mint:flex mint:items-center mint:gap-x-2 mint:border-standard mint:rounded-xl mint:p-1.5 mint:pr-3 mint:min-w-80 mint:hover:bg-gray-50 mint:dark:hover:bg-white/5", children: [
|
|
30
|
+
/* @__PURE__ */ i(A, { method: c, shortMethod: w, isActive: !0 }),
|
|
32
31
|
/* @__PURE__ */ i("div", { className: "mint:flex-1 mint:text-left mint:text-sm mint:font-medium mint:text-gray-900 mint:dark:text-white mint:truncate", children: v }),
|
|
33
|
-
/* @__PURE__ */ i("div", { children: /* @__PURE__ */ i(
|
|
32
|
+
/* @__PURE__ */ i("div", { children: /* @__PURE__ */ i(k, { className: "mint:w-4 mint:h-4 mint:text-gray-500 mint:dark:text-gray-400" }) })
|
|
34
33
|
] }) }),
|
|
35
|
-
/* @__PURE__ */ i(
|
|
36
|
-
/* @__PURE__ */ i(
|
|
37
|
-
b.map((o) => /* @__PURE__ */ i("div", { children: /* @__PURE__ */ i(
|
|
34
|
+
/* @__PURE__ */ i(N, { className: "mint:hidden mint:lg:block mint:w-80 mint:border mint:border-gray-100 mint:dark:border-white/10 mint:rounded-xl mint:px-2 mint:pb-2 mint:pt-0", children: /* @__PURE__ */ l("div", { className: "mint:flex mint:flex-col", children: [
|
|
35
|
+
/* @__PURE__ */ i(T, { search: m, setSearch: x }),
|
|
36
|
+
b.map((o) => /* @__PURE__ */ i("div", { children: /* @__PURE__ */ i(C, { page: o, pathname: n }) }, `search-${o.title}-${o.href}`))
|
|
38
37
|
] }) })
|
|
39
38
|
] });
|
|
40
39
|
};
|
|
41
40
|
export {
|
|
42
|
-
|
|
41
|
+
G as EndpointsMenu
|
|
43
42
|
};
|
|
44
43
|
//# sourceMappingURL=EndpointsMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EndpointsMenu.js","sources":["../../../../src/api-playground/ApiPlayground/components/EndpointsMenu.tsx"],"sourcesContent":["import { potentiallyParseOpenApiString} from '../../../common/potentiallyParseOpenApiString';\nimport { slugToTitle } from '../../../common/slugToTitle';\nimport type { ChannelData } from '@mintlify/common';\nimport { DecoratedNavigationPage } from '@mintlify/models';\nimport { DecoratedPageOrGroupConfig, Endpoint } from '@mintlify/validation';\nimport { ChevronDownFilled } from '@fluentui/react-icons';\nimport { useState, useMemo } from 'react';\n\nimport { MethodPill } from '../../../components/Api/MethodPill';\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger } from '../../../components/Api/dropdown-menu';\nimport {
|
|
1
|
+
{"version":3,"file":"EndpointsMenu.js","sources":["../../../../src/api-playground/ApiPlayground/components/EndpointsMenu.tsx"],"sourcesContent":["import { potentiallyParseOpenApiString} from '../../../common/potentiallyParseOpenApiString';\nimport { slugToTitle } from '../../../common/slugToTitle';\nimport type { ChannelData } from '@mintlify/common';\nimport { DecoratedNavigationPage } from '@mintlify/models';\nimport { DecoratedPageOrGroupConfig, Endpoint } from '@mintlify/validation';\nimport { ChevronDownFilled } from '@fluentui/react-icons';\nimport { useState, useMemo } from 'react';\n\nimport { MethodPill } from '../../../components/Api/MethodPill';\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger } from '../../../components/Api/dropdown-menu';\nimport { useMDXContent } from '@/hooks/useMDXContent';\nimport { ApiPageData } from '../../../api-playground-2/types/api';\n\nimport { EndpointsMenuLink } from './EndpointsMenuLink';\nimport { EndpointsMenuSearch } from './EndpointsMenuSearch';\n\ntype EndpointsMenuProps = {\n endpoint?: Endpoint;\n channel?: ChannelData;\n operation?: { title: string; method: string };\n pathname: string;\n};\n\nconst getAllApiPages = (navigation: DecoratedPageOrGroupConfig[]): DecoratedNavigationPage[] => {\n return navigation.reduce<DecoratedNavigationPage[]>((acc, entry) => {\n if ('pages' in entry) {\n \n return [...acc, ...getAllApiPages(entry.pages as DecoratedPageOrGroupConfig[])];\n } else if ('openapi' in entry || 'api' in entry || 'asyncapi' in entry) {\n return [...acc, entry];\n }\n return acc;\n }, []);\n};\n\nconst mapApiPageData = (pages: DecoratedNavigationPage[]): ApiPageData[] => {\n return pages\n .map((page: DecoratedNavigationPage): ApiPageData | undefined => {\n {\n const endpointStr = page.openapi || page.api;\n if (endpointStr == undefined) {\n return undefined;\n }\n const potentiallyParsedOpenApiString = potentiallyParseOpenApiString(endpointStr);\n if (potentiallyParsedOpenApiString == undefined) {\n return undefined;\n }\n return {\n method: potentiallyParsedOpenApiString.method,\n title: page.title || slugToTitle(page.href),\n href: page.href,\n type: 'openapi',\n playground: page.playground,\n };\n }\n })\n .filter((pageData) => pageData != undefined);\n};\n\nexport const EndpointsMenu = ({ endpoint, channel, operation, pathname }: EndpointsMenuProps) => {\n const [{ pageMetadata }] = useMDXContent() as unknown as [{ pageMetadata: { title?: string; navigation?: { groupsOrPages?: DecoratedPageOrGroupConfig[] } } }];\n const pageTitle = pageMetadata.title || slugToTitle(pathname);\n const [search, setSearch] = useState('');\n\n const allApiPages = getAllApiPages(pageMetadata.navigation?.groupsOrPages ?? []);\n const apiPages = useMemo(() => mapApiPageData(allApiPages), [allApiPages]);\n\n const title = operation\n ? operation.title || pageTitle\n : endpoint\n ? endpoint.title || pageTitle\n : channel?.title || pageTitle;\n const method = operation ? operation.method : endpoint ? endpoint.method : 'websocket';\n const shortMethod = method === 'websocket';\n\n const searchResults = useMemo(() => {\n if (!search) return apiPages;\n return apiPages.filter((page) => {\n return page.title.toLowerCase().includes(search.toLowerCase());\n });\n }, [search, apiPages]);\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger className=\"mint:hidden mint:lg:block\">\n <div className=\"mint:flex mint:items-center mint:gap-x-2 mint:border-standard mint:rounded-xl mint:p-1.5 mint:pr-3 mint:min-w-80 mint:hover:bg-gray-50 mint:dark:hover:bg-white/5\">\n <MethodPill method={method} shortMethod={shortMethod} isActive={true} />\n <div className=\"mint:flex-1 mint:text-left mint:text-sm mint:font-medium mint:text-gray-900 mint:dark:text-white mint:truncate\">\n {title}\n </div>\n <div>\n <ChevronDownFilled className=\"mint:w-4 mint:h-4 mint:text-gray-500 mint:dark:text-gray-400\" />\n </div>\n </div>\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"mint:hidden mint:lg:block mint:w-80 mint:border mint:border-gray-100 mint:dark:border-white/10 mint:rounded-xl mint:px-2 mint:pb-2 mint:pt-0\">\n <div className=\"mint:flex mint:flex-col\">\n <EndpointsMenuSearch search={search} setSearch={setSearch} />\n {searchResults.map((page) => (\n <div key={`search-${page.title}-${page.href}`}>\n <EndpointsMenuLink page={page} pathname={pathname} />\n </div>\n ))}\n </div>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n};\n"],"names":["getAllApiPages","navigation","acc","entry","mapApiPageData","pages","page","endpointStr","potentiallyParsedOpenApiString","potentiallyParseOpenApiString","slugToTitle","pageData","EndpointsMenu","endpoint","channel","operation","pathname","pageMetadata","useMDXContent","pageTitle","search","setSearch","useState","allApiPages","_a","apiPages","useMemo","title","method","shortMethod","searchResults","DropdownMenu","jsx","DropdownMenuTrigger","jsxs","MethodPill","ChevronDownFilled","DropdownMenuContent","EndpointsMenuSearch","EndpointsMenuLink"],"mappings":";;;;;;;;;;AAuBA,MAAMA,IAAiB,CAACC,MACfA,EAAW,OAAkC,CAACC,GAAKC,MACpD,WAAWA,IAEN,CAAC,GAAGD,GAAK,GAAGF,EAAeG,EAAM,KAAqC,CAAC,IACrE,aAAaA,KAAS,SAASA,KAAS,cAAcA,IACxD,CAAC,GAAGD,GAAKC,CAAK,IAEhBD,GACN,CAAA,CAAE,GAGDE,IAAiB,CAACC,MACfA,EACJ,IAAI,CAACC,MAA2D;AAC9D;AACC,UAAMC,IAAcD,EAAK,WAAWA,EAAK;AACzC,QAAIC,KAAe;AACjB;AAEF,UAAMC,IAAiCC,EAA8BF,CAAW;AAChF,WAAIC,KAAkC,OACpC,SAEK;AAAA,MACL,QAAQA,EAA+B;AAAA,MACvC,OAAOF,EAAK,SAASI,EAAYJ,EAAK,IAAI;AAAA,MAC1C,MAAMA,EAAK;AAAA,MACX,MAAM;AAAA,MACN,YAAYA,EAAK;AAAA,IAAA;AAAA,EAErB;AACF,CAAC,EACA,OAAO,CAACK,MAAaA,KAAY,IAAS,GAGlCC,IAAgB,CAAC,EAAE,UAAAC,GAAU,SAAAC,GAAS,WAAAC,GAAW,UAAAC,QAAmC;;AAC/F,QAAM,CAAC,EAAE,cAAAC,GAAc,IAAIC,EAAA,GACrBC,IAAYF,EAAa,SAASP,EAAYM,CAAQ,GACtD,CAACI,GAAQC,CAAS,IAAIC,EAAS,EAAE,GAEjCC,IAAcvB,IAAewB,IAAAP,EAAa,eAAb,gBAAAO,EAAyB,kBAAiB,CAAA,CAAE,GACzEC,IAAWC,EAAQ,MAAMtB,EAAemB,CAAW,GAAG,CAACA,CAAW,CAAC,GAEnEI,IAAQZ,IACVA,EAAU,SAASI,IACnBN,IACEA,EAAS,SAASM,KAClBL,KAAA,gBAAAA,EAAS,UAASK,GAClBS,IAASb,IAAYA,EAAU,SAASF,IAAWA,EAAS,SAAS,aACrEgB,IAAcD,MAAW,aAEzBE,IAAgBJ,EAAQ,MACvBN,IACEK,EAAS,OAAO,CAACnB,MACfA,EAAK,MAAM,YAAA,EAAc,SAASc,EAAO,aAAa,CAC9D,IAHmBK,GAInB,CAACL,GAAQK,CAAQ,CAAC;AAErB,2BACGM,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAC,EAACC,KAAoB,WAAU,6BAC7B,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,qKACb,UAAA;AAAA,MAAA,gBAAAF,EAACG,GAAA,EAAW,QAAAP,GAAgB,aAAAC,GAA0B,UAAU,IAAM;AAAA,MACtE,gBAAAG,EAAC,OAAA,EAAI,WAAU,kHACZ,UAAAL,GACH;AAAA,wBACC,OAAA,EACC,UAAA,gBAAAK,EAACI,GAAA,EAAkB,WAAU,gEAA+D,EAAA,CAC9F;AAAA,IAAA,EAAA,CACF,EAAA,CACF;AAAA,sBACCC,GAAA,EAAoB,WAAU,gJAC7B,UAAA,gBAAAH,EAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,MAAA,gBAAAF,EAACM,GAAA,EAAoB,QAAAlB,GAAgB,WAAAC,EAAA,CAAsB;AAAA,MAC1DS,EAAc,IAAI,CAACxB,MAClB,gBAAA0B,EAAC,OAAA,EACC,4BAACO,GAAA,EAAkB,MAAAjC,GAAY,UAAAU,GAAoB,EAAA,GAD3C,UAAUV,EAAK,KAAK,IAAIA,EAAK,IAAI,EAE3C,CACD;AAAA,IAAA,EAAA,CACH,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { jsx as n, jsxs as
|
|
2
|
-
import { MethodPill as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
const o = c(), i = u(t.href, o), m = t.type === "openapi", d = t.playground === "none" || t.playground === "simple" || t.method === "webhook", s = (h) => {
|
|
1
|
+
import { jsx as n, jsxs as l } from "react/jsx-runtime";
|
|
2
|
+
import { MethodPill as a } from "../../../components/Api/MethodPill.js";
|
|
3
|
+
import { isEqualIgnoringLeadingSlash as c } from "../../../paths/isEqualIgnoringLeadingSlash.js";
|
|
4
|
+
import { cn as u } from "../../../utils/cn.js";
|
|
5
|
+
const w = ({ page: t, pathname: o }) => {
|
|
6
|
+
const i = c(t.href, o), m = t.type === "openapi", d = t.playground === "none" || t.playground === "simple" || t.method === "webhook", s = (h) => {
|
|
8
7
|
h.preventDefault();
|
|
9
8
|
const e = d ? t.href : `${t.href}?playground=open`;
|
|
10
9
|
if (typeof window < "u" && window.next) {
|
|
@@ -16,17 +15,17 @@ const k = ({ page: t }) => {
|
|
|
16
15
|
}
|
|
17
16
|
window.location.href = e;
|
|
18
17
|
};
|
|
19
|
-
return /* @__PURE__ */ n("a", { href: t.href, title: t.title, children: /* @__PURE__ */
|
|
18
|
+
return /* @__PURE__ */ n("a", { href: t.href, title: t.title, children: /* @__PURE__ */ l(
|
|
20
19
|
"div",
|
|
21
20
|
{
|
|
22
21
|
onClick: s,
|
|
23
|
-
className:
|
|
22
|
+
className: u(
|
|
24
23
|
"mint:flex mint:items-center mint:gap-x-2 mint:hover:bg-gray-50 mint:dark:hover:bg-white/5 mint:rounded-xl mint:p-1.5 mint:group mint:cursor-pointer",
|
|
25
24
|
i ? "mint:bg-gray-50 mint:dark:bg-white/5 mint:text-[#643FB2] mint:dark:text-[#C9AAF9] mint:font-medium" : "mint:text-gray-700 mint:hover:text-gray-900 mint:dark:text-gray-400 mint:dark:hover:text-gray-300"
|
|
26
25
|
),
|
|
27
26
|
children: [
|
|
28
27
|
/* @__PURE__ */ n(
|
|
29
|
-
|
|
28
|
+
a,
|
|
30
29
|
{
|
|
31
30
|
method: t.method,
|
|
32
31
|
shortMethod: m,
|
|
@@ -40,6 +39,6 @@ const k = ({ page: t }) => {
|
|
|
40
39
|
) });
|
|
41
40
|
};
|
|
42
41
|
export {
|
|
43
|
-
|
|
42
|
+
w as EndpointsMenuLink
|
|
44
43
|
};
|
|
45
44
|
//# sourceMappingURL=EndpointsMenuLink.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EndpointsMenuLink.js","sources":["../../../../src/api-playground/ApiPlayground/components/EndpointsMenuLink.tsx"],"sourcesContent":["'use client';\n\nimport { MethodPill } from '../../../components/Api/MethodPill';\nimport {
|
|
1
|
+
{"version":3,"file":"EndpointsMenuLink.js","sources":["../../../../src/api-playground/ApiPlayground/components/EndpointsMenuLink.tsx"],"sourcesContent":["'use client';\n\nimport { MethodPill } from '../../../components/Api/MethodPill';\nimport { ApiPageData } from '../../../api-playground-2/types/api';\nimport { isEqualIgnoringLeadingSlash } from '../../../../src/paths/isEqualIgnoringLeadingSlash';\nimport { cn } from '@/utils/cn';\n\nexport const EndpointsMenuLink = ({ page, pathname }: { page: ApiPageData; pathname: string }) => {\n const isActive = isEqualIgnoringLeadingSlash(page.href, pathname);\n const shortMethod = page.type === 'openapi';\n const noPlayground =\n page.playground === 'none' || page.playground === 'simple' || page.method === 'webhook';\n\n const handleClick = (e: React.MouseEvent) => {\n e.preventDefault();\n const targetHref = noPlayground ? page.href : `${page.href}?playground=open`;\n\n // Check if we're in a Next.js environment\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (typeof window !== 'undefined' && (window as any).next) {\n // Use Next.js router if available\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const router = (window as any).next.router;\n if (router) {\n router.push(targetHref);\n return;\n }\n }\n\n // Fallback to standard navigation\n window.location.href = targetHref;\n };\n\n return (\n <a href={page.href} title={page.title}>\n <div\n onClick={handleClick}\n className={cn(\n 'mint:flex mint:items-center mint:gap-x-2 mint:hover:bg-gray-50 mint:dark:hover:bg-white/5 mint:rounded-xl mint:p-1.5 mint:group mint:cursor-pointer',\n isActive\n ? 'mint:bg-gray-50 mint:dark:bg-white/5 mint:text-[#643FB2] mint:dark:text-[#C9AAF9] mint:font-medium'\n : 'mint:text-gray-700 mint:hover:text-gray-900 mint:dark:text-gray-400 mint:dark:hover:text-gray-300'\n )}\n >\n <MethodPill\n method={page.method}\n shortMethod={shortMethod}\n className=\"mint:font-medium mint:px-1 mint:py-px mint:text-xs mint:rounded-md\"\n isActive={isActive}\n />\n <div className=\"mint:text-sm mint:truncate\">{page.title}</div>\n </div>\n </a>\n );\n};\n"],"names":["EndpointsMenuLink","page","pathname","isActive","isEqualIgnoringLeadingSlash","shortMethod","noPlayground","handleClick","e","targetHref","router","jsxs","cn","jsx","MethodPill"],"mappings":";;;;AAOO,MAAMA,IAAoB,CAAC,EAAE,MAAAC,GAAM,UAAAC,QAAwD;AAChG,QAAMC,IAAWC,EAA4BH,EAAK,MAAMC,CAAQ,GAC1DG,IAAcJ,EAAK,SAAS,WAC5BK,IACJL,EAAK,eAAe,UAAUA,EAAK,eAAe,YAAYA,EAAK,WAAW,WAE1EM,IAAc,CAACC,MAAwB;AAC3C,IAAAA,EAAE,eAAA;AACF,UAAMC,IAAaH,IAAeL,EAAK,OAAO,GAAGA,EAAK,IAAI;AAI1D,QAAI,OAAO,SAAW,OAAgB,OAAe,MAAM;AAGzD,YAAMS,IAAU,OAAe,KAAK;AACpC,UAAIA,GAAQ;AACV,QAAAA,EAAO,KAAKD,CAAU;AACtB;AAAA,MACF;AAAA,IACF;AAGA,WAAO,SAAS,OAAOA;AAAA,EACzB;AAEA,2BACG,KAAA,EAAE,MAAMR,EAAK,MAAM,OAAOA,EAAK,OAC9B,UAAA,gBAAAU;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAASJ;AAAA,MACT,WAAWK;AAAA,QACT;AAAA,QACAT,IACI,uGACA;AAAA,MAAA;AAAA,MAGN,UAAA;AAAA,QAAA,gBAAAU;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,QAAQb,EAAK;AAAA,YACb,aAAAI;AAAA,YACA,WAAU;AAAA,YACV,UAAAF;AAAA,UAAA;AAAA,QAAA;AAAA,QAEF,gBAAAU,EAAC,OAAA,EAAI,WAAU,8BAA8B,YAAK,MAAA,CAAM;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAE5D;AAEJ;"}
|