@qualcomm-ui/react-swagger 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +31 -0
- package/README.md +7 -0
- package/dist/all.min.css +1 -0
- package/dist/code-mirror/copy-to-clipboard.d.ts +6 -0
- package/dist/code-mirror/copy-to-clipboard.d.ts.map +1 -0
- package/dist/code-mirror/docs-code-mirror.d.ts +16 -0
- package/dist/code-mirror/docs-code-mirror.d.ts.map +1 -0
- package/dist/code-mirror/index.d.ts +2 -0
- package/dist/code-mirror/index.d.ts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +7 -0
- package/dist/internal/array-model.d.ts +20 -0
- package/dist/internal/array-model.d.ts.map +1 -0
- package/dist/internal/auth/api-key-auth.d.ts +12 -0
- package/dist/internal/auth/api-key-auth.d.ts.map +1 -0
- package/dist/internal/auth/auth-item.d.ts +12 -0
- package/dist/internal/auth/auth-item.d.ts.map +1 -0
- package/dist/internal/auth/authorization-popup.d.ts +12 -0
- package/dist/internal/auth/authorization-popup.d.ts.map +1 -0
- package/dist/internal/auth/authorize-btn.d.ts +10 -0
- package/dist/internal/auth/authorize-btn.d.ts.map +1 -0
- package/dist/internal/auth/authorize-operation-btn.d.ts +11 -0
- package/dist/internal/auth/authorize-operation-btn.d.ts.map +1 -0
- package/dist/internal/auth/auths.d.ts +12 -0
- package/dist/internal/auth/auths.d.ts.map +1 -0
- package/dist/internal/auth/basic-auth.d.ts +12 -0
- package/dist/internal/auth/basic-auth.d.ts.map +1 -0
- package/dist/internal/auth/index.d.ts +9 -0
- package/dist/internal/auth/index.d.ts.map +1 -0
- package/dist/internal/auth/oauth2.d.ts +20 -0
- package/dist/internal/auth/oauth2.d.ts.map +1 -0
- package/dist/internal/auth/utils.d.ts +11 -0
- package/dist/internal/auth/utils.d.ts.map +1 -0
- package/dist/internal/clear.d.ts +8 -0
- package/dist/internal/clear.d.ts.map +1 -0
- package/dist/internal/content-type.d.ts +14 -0
- package/dist/internal/content-type.d.ts.map +1 -0
- package/dist/internal/enum-model.d.ts +11 -0
- package/dist/internal/enum-model.d.ts.map +1 -0
- package/dist/internal/execute.d.ts +14 -0
- package/dist/internal/execute.d.ts.map +1 -0
- package/dist/internal/highlight-code.d.ts +14 -0
- package/dist/internal/highlight-code.d.ts.map +1 -0
- package/dist/internal/index.d.ts +36 -0
- package/dist/internal/index.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/components/data-key-pair.d.ts +11 -0
- package/dist/internal/json-model-viewer/components/data-key-pair.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/components/data-type-label.d.ts +7 -0
- package/dist/internal/json-model-viewer/components/data-type-label.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/components/data-types/array-schema.d.ts +3 -0
- package/dist/internal/json-model-viewer/components/data-types/array-schema.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/components/data-types/boolean-schema.d.ts +2 -0
- package/dist/internal/json-model-viewer/components/data-types/boolean-schema.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/components/data-types/boolean.d.ts +2 -0
- package/dist/internal/json-model-viewer/components/data-types/boolean.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/components/data-types/date.d.ts +2 -0
- package/dist/internal/json-model-viewer/components/data-types/date.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/components/data-types/define-easy-type.d.ts +22 -0
- package/dist/internal/json-model-viewer/components/data-types/define-easy-type.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/components/data-types/function.d.ts +3 -0
- package/dist/internal/json-model-viewer/components/data-types/function.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/components/data-types/index.d.ts +14 -0
- package/dist/internal/json-model-viewer/components/data-types/index.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/components/data-types/null.d.ts +2 -0
- package/dist/internal/json-model-viewer/components/data-types/null.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/components/data-types/number-schema.d.ts +2 -0
- package/dist/internal/json-model-viewer/components/data-types/number-schema.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/components/data-types/number.d.ts +5 -0
- package/dist/internal/json-model-viewer/components/data-types/number.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/components/data-types/object.d.ts +5 -0
- package/dist/internal/json-model-viewer/components/data-types/object.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/components/data-types/string-schema.d.ts +2 -0
- package/dist/internal/json-model-viewer/components/data-types/string-schema.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/components/data-types/string.d.ts +2 -0
- package/dist/internal/json-model-viewer/components/data-types/string.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/components/data-types/undefined.d.ts +2 -0
- package/dist/internal/json-model-viewer/components/data-types/undefined.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/components/index.d.ts +4 -0
- package/dist/internal/json-model-viewer/components/index.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/components/internal/index.d.ts +3 -0
- package/dist/internal/json-model-viewer/components/internal/index.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/components/internal/ref-name.d.ts +11 -0
- package/dist/internal/json-model-viewer/components/internal/ref-name.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/components/internal/utils.d.ts +14 -0
- package/dist/internal/json-model-viewer/components/internal/utils.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/hooks/index.d.ts +4 -0
- package/dist/internal/json-model-viewer/hooks/index.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/hooks/use-color.d.ts +2 -0
- package/dist/internal/json-model-viewer/hooks/use-color.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/hooks/use-inspect.d.ts +3 -0
- package/dist/internal/json-model-viewer/hooks/use-inspect.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/hooks/use-is-cycle-reference.d.ts +2 -0
- package/dist/internal/json-model-viewer/hooks/use-is-cycle-reference.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/index.d.ts +6 -0
- package/dist/internal/json-model-viewer/index.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/json-model-viewer.d.ts +4 -0
- package/dist/internal/json-model-viewer/json-model-viewer.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/stores/index.d.ts +3 -0
- package/dist/internal/json-model-viewer/stores/index.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/stores/json-viewer-store.d.ts +41 -0
- package/dist/internal/json-model-viewer/stores/json-viewer-store.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/stores/type-registry.d.ts +15 -0
- package/dist/internal/json-model-viewer/stores/type-registry.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/theme/base16.d.ts +25 -0
- package/dist/internal/json-model-viewer/theme/base16.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/theme/index.d.ts +2 -0
- package/dist/internal/json-model-viewer/theme/index.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/type.d.ts +214 -0
- package/dist/internal/json-model-viewer/type.d.ts.map +1 -0
- package/dist/internal/json-model-viewer/utils/index.d.ts +108 -0
- package/dist/internal/json-model-viewer/utils/index.d.ts.map +1 -0
- package/dist/internal/json-schema-array-item-file.d.ts +7 -0
- package/dist/internal/json-schema-array-item-file.d.ts.map +1 -0
- package/dist/internal/json-schema-array-item-text.d.ts +7 -0
- package/dist/internal/json-schema-array-item-text.d.ts.map +1 -0
- package/dist/internal/json-schema-array.d.ts +6 -0
- package/dist/internal/json-schema-array.d.ts.map +1 -0
- package/dist/internal/json-schema-object.d.ts +7 -0
- package/dist/internal/json-schema-object.d.ts.map +1 -0
- package/dist/internal/json-schema-string.d.ts +7 -0
- package/dist/internal/json-schema-string.d.ts.map +1 -0
- package/dist/internal/layout.d.ts +15 -0
- package/dist/internal/layout.d.ts.map +1 -0
- package/dist/internal/model-collapse.d.ts +21 -0
- package/dist/internal/model-collapse.d.ts.map +1 -0
- package/dist/internal/model-example.d.ts +17 -0
- package/dist/internal/model-example.d.ts.map +1 -0
- package/dist/internal/model-wrapper.d.ts +20 -0
- package/dist/internal/model-wrapper.d.ts.map +1 -0
- package/dist/internal/models.d.ts +16 -0
- package/dist/internal/models.d.ts.map +1 -0
- package/dist/internal/object-model.d.ts +26 -0
- package/dist/internal/object-model.d.ts.map +1 -0
- package/dist/internal/operation-summary-method.d.ts +9 -0
- package/dist/internal/operation-summary-method.d.ts.map +1 -0
- package/dist/internal/operation-summary-path.d.ts +9 -0
- package/dist/internal/operation-summary-path.d.ts.map +1 -0
- package/dist/internal/operation-summary.d.ts +19 -0
- package/dist/internal/operation-summary.d.ts.map +1 -0
- package/dist/internal/operation-tag.d.ts +16 -0
- package/dist/internal/operation-tag.d.ts.map +1 -0
- package/dist/internal/operation.d.ts +27 -0
- package/dist/internal/operation.d.ts.map +1 -0
- package/dist/internal/param-body.d.ts +20 -0
- package/dist/internal/param-body.d.ts.map +1 -0
- package/dist/internal/request-body-editor.d.ts +14 -0
- package/dist/internal/request-body-editor.d.ts.map +1 -0
- package/dist/internal/schemes.d.ts +14 -0
- package/dist/internal/schemes.d.ts.map +1 -0
- package/dist/internal/servers.d.ts +13 -0
- package/dist/internal/servers.d.ts.map +1 -0
- package/dist/internal/syntax-highlighter.d.ts +11 -0
- package/dist/internal/syntax-highlighter.d.ts.map +1 -0
- package/dist/internal/try-it-out-button.d.ts +14 -0
- package/dist/internal/try-it-out-button.d.ts.map +1 -0
- package/dist/internal/types.d.ts +21 -0
- package/dist/internal/types.d.ts.map +1 -0
- package/dist/internal/use-jump-to-hash.d.ts +6 -0
- package/dist/internal/use-jump-to-hash.d.ts.map +1 -0
- package/dist/internal/use-swagger-context.d.ts +4 -0
- package/dist/internal/use-swagger-context.d.ts.map +1 -0
- package/dist/internal/use-theme-context.d.ts +4 -0
- package/dist/internal/use-theme-context.d.ts.map +1 -0
- package/dist/internal/utils.d.ts +29 -0
- package/dist/internal/utils.d.ts.map +1 -0
- package/dist/swagger.d.ts +64 -0
- package/dist/swagger.d.ts.map +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/swagger.tsx", "../src/internal/json-model-viewer/json-model-viewer.tsx", "../src/internal/json-model-viewer/components/data-key-pair.tsx", "../src/internal/json-model-viewer/stores/json-viewer-store.ts", "../src/internal/json-model-viewer/stores/type-registry.tsx", "../src/internal/json-model-viewer/components/internal/ref-name.tsx", "../src/internal/json-model-viewer/components/internal/utils.ts", "../src/internal/json-model-viewer/components/data-types/object.tsx", "../src/internal/json-model-viewer/utils/index.ts", "../src/internal/json-model-viewer/components/data-types/array-schema.tsx", "../src/internal/json-model-viewer/components/data-types/define-easy-type.tsx", "../src/internal/json-model-viewer/components/data-type-label.tsx", "../src/internal/json-model-viewer/components/data-types/boolean-schema.tsx", "../src/internal/json-model-viewer/components/data-types/boolean.tsx", "../src/internal/json-model-viewer/components/data-types/date.tsx", "../src/internal/json-model-viewer/components/data-types/function.tsx", "../src/internal/json-model-viewer/components/data-types/null.tsx", "../src/internal/json-model-viewer/components/data-types/number-schema.tsx", "../src/internal/json-model-viewer/components/data-types/number.tsx", "../src/internal/json-model-viewer/components/data-types/string-schema.tsx", "../src/internal/json-model-viewer/components/data-types/string.tsx", "../src/internal/json-model-viewer/components/data-types/undefined.tsx", "../src/internal/json-model-viewer/hooks/use-color.ts", "../src/internal/json-model-viewer/hooks/use-inspect.ts", "../src/internal/json-model-viewer/hooks/use-is-cycle-reference.ts", "../src/internal/json-model-viewer/theme/base16.ts", "../src/internal/use-theme-context.tsx", "../src/internal/array-model.tsx", "../src/internal/auth/api-key-auth.tsx", "../src/internal/auth/auth-item.tsx", "../src/internal/auth/authorization-popup.tsx", "../src/internal/auth/authorize-btn.tsx", "../src/internal/auth/authorize-operation-btn.tsx", "../src/internal/auth/auths.tsx", "../src/internal/auth/basic-auth.tsx", "../src/internal/auth/oauth2.tsx", "../src/internal/auth/utils.ts", "../src/internal/clear.tsx", "../src/internal/content-type.tsx", "../src/internal/enum-model.tsx", "../src/internal/execute.tsx", "../src/code-mirror/docs-code-mirror.tsx", "../src/internal/utils.ts", "../src/internal/highlight-code.tsx", "../src/internal/json-schema-array-item-file.tsx", "../src/internal/json-schema-array-item-text.tsx", "../src/internal/json-schema-array.tsx", "../src/internal/json-schema-object.tsx", "../src/internal/json-schema-string.tsx", "../src/internal/layout.tsx", "../src/internal/use-swagger-context.tsx", "../src/internal/model-collapse.tsx", "../src/internal/model-example.tsx", "../src/internal/model-wrapper.tsx", "../src/internal/models.tsx", "../src/internal/use-jump-to-hash.tsx", "../src/internal/object-model.tsx", "../src/internal/operation-summary-method.tsx", "../src/internal/operation-summary-path.tsx", "../src/internal/operation-summary.tsx", "../src/internal/operation-tag.tsx", "../src/internal/operation.tsx", "../src/internal/param-body.tsx", "../src/internal/request-body-editor.tsx", "../src/internal/schemes.tsx", "../src/internal/servers.tsx", "../src/internal/syntax-highlighter.tsx", "../src/internal/try-it-out-button.tsx"],
|
|
4
|
+
"sourcesContent": ["// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {memo, useMemo} from \"react\"\r\n\r\nimport SwaggerUI from \"swagger-ui-react\"\r\n\r\nimport type {QdsTheme} from \"@qualcomm-ui/qds-core/theme\"\r\n\r\nimport {\r\n ApiKeyAuth,\r\n ArrayModel,\r\n AuthItem,\r\n AuthorizationPopup,\r\n AuthorizeBtn,\r\n AuthorizeOperationBtn,\r\n Auths,\r\n BasicAuth,\r\n Clear,\r\n ContentType,\r\n EnumModel,\r\n Execute,\r\n HighlightCode,\r\n JsonSchemaArray,\r\n JsonSchemaObject,\r\n JsonSchemaString,\r\n Layout,\r\n ModelCollapse,\r\n ModelExample,\r\n Models,\r\n ModelWrapper,\r\n Oauth2,\r\n ObjectModel,\r\n Operation,\r\n OperationSummary,\r\n OperationSummaryMethod,\r\n OperationSummaryPath,\r\n OperationTag,\r\n ParamBody,\r\n type QuiSwaggerContext,\r\n type RenderLink,\r\n RequestBodyEditor,\r\n Schemes,\r\n Servers,\r\n SwaggerContextProvider,\r\n SyntaxHighlighter,\r\n ThemeContextProvider,\r\n TryItOutButton,\r\n} from \"./internal\"\r\n\r\nconst quiSwaggerPlugin: PluginGenerator = () => ({\r\n components: {\r\n apiKeyAuth: ApiKeyAuth,\r\n ArrayModel,\r\n AuthItem,\r\n authorizationPopup: AuthorizationPopup,\r\n authorizeBtn: AuthorizeBtn,\r\n authorizeOperationBtn: AuthorizeOperationBtn,\r\n auths: Auths,\r\n basicAuth: BasicAuth,\r\n clear: Clear,\r\n contentType: memo(ContentType),\r\n EnumModel,\r\n execute: Execute,\r\n HighlightCode,\r\n JsonSchema_array: JsonSchemaArray,\r\n JsonSchema_object: JsonSchemaObject,\r\n JsonSchema_string: JsonSchemaString,\r\n Layout,\r\n ModelCollapse,\r\n modelExample: ModelExample,\r\n Models,\r\n ModelWrapper,\r\n oauth2: Oauth2,\r\n ObjectModel,\r\n operation: Operation,\r\n OperationSummary: memo(OperationSummary),\r\n OperationSummaryMethod: memo(OperationSummaryMethod),\r\n OperationSummaryPath: memo(OperationSummaryPath),\r\n OperationTag,\r\n ParamBody,\r\n RequestBodyEditor,\r\n schemes: Schemes,\r\n Servers,\r\n SyntaxHighlighter,\r\n TryItOutButton: memo(TryItOutButton),\r\n },\r\n})\r\n\r\ninterface Request {\r\n [k: string]: any\r\n}\r\ninterface Response {\r\n [k: string]: any\r\n}\r\ntype System = any\r\n\r\ntype PluginGenerator = (system: System) => object\r\n\r\ntype Plugin = object | PluginGenerator\r\n\r\ntype Preset = () => unknown\r\n\r\nexport interface SwaggerUIProps {\r\n deepLinking?: boolean\r\n defaultModelExpandDepth?: number\r\n defaultModelRendering?: \"example\" | \"model\"\r\n defaultModelsExpandDepth?: number\r\n displayOperationId?: boolean\r\n displayRequestDuration?: boolean\r\n docExpansion?: \"list\" | \"full\" | \"none\"\r\n filter?: string | boolean\r\n layout?: string\r\n oauth2RedirectUrl?: string\r\n onComplete?: (system: System) => void\r\n persistAuthorization?: boolean\r\n plugins?: Plugin[]\r\n presets?: Preset[]\r\n queryConfigEnabled?: boolean\r\n requestInterceptor?: (req: Request) => Request | Promise<Request>\r\n requestSnippets?: object\r\n requestSnippetsEnabled?: boolean\r\n responseInterceptor?: (res: Response) => Response | Promise<Response>\r\n showCommonExtensions?: boolean\r\n showExtensions?: boolean\r\n showMutatedRequest?: boolean\r\n spec?: object | string\r\n supportedSubmitMethods?: Array<\r\n \"get\" | \"put\" | \"post\" | \"delete\" | \"options\" | \"head\" | \"patch\" | \"trace\"\r\n >\r\n tryItOutEnabled?: boolean\r\n url?: string\r\n withCredentials?: boolean\r\n}\r\n\r\nexport interface SwaggerProps extends SwaggerUIProps {\r\n /**\r\n * Function to return the URL fragment identifier, beginning with a #. This should\r\n * be SSR-compatible.\r\n */\r\n getHash: () => string\r\n\r\n /**\r\n * If true, the top title section will be hidden.\r\n */\r\n hideTitleSection?: boolean\r\n\r\n /**\r\n * Link render function.\r\n */\r\n renderLink: RenderLink\r\n\r\n /**\r\n * The current QUI theme. This must be provided to apply the correct theme to the\r\n * syntax highlighters.\r\n */\r\n theme: QdsTheme\r\n}\r\n\r\nexport function Swagger({\r\n getHash,\r\n hideTitleSection,\r\n plugins: pluginsProp,\r\n renderLink: RenderLink,\r\n theme,\r\n ...props\r\n}: SwaggerProps) {\r\n const plugins = useMemo(() => {\r\n const functionsPlugin: PluginGenerator = () => ({\r\n fn: {\r\n getHash,\r\n },\r\n })\r\n const renderLinkPlugin: PluginGenerator = () => ({\r\n components: {\r\n RenderLink,\r\n },\r\n })\r\n const quiPlugins: Plugin[] = [\r\n functionsPlugin,\r\n renderLinkPlugin,\r\n quiSwaggerPlugin,\r\n ]\r\n return pluginsProp ? [...quiPlugins, ...pluginsProp] : quiPlugins\r\n }, [RenderLink, getHash, pluginsProp])\r\n\r\n const context: QuiSwaggerContext = {\r\n hash: getHash(),\r\n hideTitleSection,\r\n }\r\n\r\n return (\r\n <SwaggerContextProvider value={context}>\r\n <ThemeContextProvider value={theme}>\r\n <SwaggerUI\r\n defaultModelExpandDepth={1000}\r\n defaultModelRendering=\"model\"\r\n defaultModelsExpandDepth={1000}\r\n layout=\"Layout\"\r\n plugins={plugins}\r\n {...props}\r\n />\r\n </ThemeContextProvider>\r\n </SwaggerContextProvider>\r\n )\r\n}\r\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n type FC,\n type ReactElement,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n} from \"react\"\n\nimport {clsx} from \"@qualcomm-ui/utils/clsx\"\n\nimport {DataKeyPair} from \"./components\"\nimport {\n createJsonViewerStore,\n createTypeRegistryStore,\n JsonViewerStoreContext,\n predefinedTypes,\n TypeRegistryStoreContext,\n useJsonViewerStore,\n useTypeRegistryStore,\n} from \"./stores\"\nimport {darkColorspace, lightColorspace} from \"./theme/base16\"\nimport type {JsonViewerProps} from \"./type\"\n\nconst JsonViewerInternal: FC<JsonViewerProps> = (props) => {\n const {setState} = useContext(JsonViewerStoreContext)\n useEffect(() => {\n setState((state: any) => ({\n prevValue: state.value,\n value: props.value,\n }))\n }, [props.value, setState])\n\n useEffect(() => {\n if (props.theme === \"light\") {\n setState({\n colorspace: lightColorspace,\n })\n } else if (props.theme === \"dark\") {\n setState({\n colorspace: darkColorspace,\n })\n } else if (typeof props.theme === \"object\") {\n setState({\n colorspace: props.theme,\n })\n }\n }, [setState, props.theme])\n\n const themeCls = useMemo(() => {\n if (typeof props.theme === \"object\") {\n return \"json-viewer-theme-custom\"\n }\n return props.theme === \"dark\"\n ? \"json-viewer-theme-dark\"\n : \"json-viewer-theme-light\"\n }, [props.theme])\n\n const onceRef = useRef(true)\n\n const registerTypes = useTypeRegistryStore((store) => store.registerTypes)\n if (onceRef.current) {\n const allTypes = props.valueTypes\n ? [...predefinedTypes, ...props.valueTypes]\n : [...predefinedTypes]\n registerTypes(allTypes)\n onceRef.current = false\n }\n\n useEffect(() => {\n const allTypes = props.valueTypes\n ? [...predefinedTypes, ...props.valueTypes]\n : [...predefinedTypes]\n registerTypes(allTypes)\n }, [props.valueTypes, registerTypes])\n\n const value = useJsonViewerStore((store) => store.value)\n const prevValue = useJsonViewerStore((store) => store.prevValue)\n const emptyPath = useMemo(() => [], [])\n const setHover = useJsonViewerStore((store) => store.setHover)\n const onMouseLeave = useCallback(() => setHover(null), [setHover])\n\n return (\n <div\n className={clsx(\"json-model-viewer\", themeCls, props.className)}\n onMouseLeave={onMouseLeave}\n style={{...props.style, contentVisibility: \"auto\"}}\n >\n <div className=\"model-gutter\"></div>\n <DataKeyPair path={emptyPath} prevValue={prevValue} value={value} />\n </div>\n )\n}\n\nexport function JsonModelViewer<Value>(\n props: JsonViewerProps<Value>,\n): ReactElement {\n if (process.env.NODE_ENV !== \"production\") {\n if (\"displayObjectSize\" in props) {\n console.error(\n \"`displayObjectSize` is deprecated. Use `displaySize` instead.\\nSee https://viewer.textea.io/migration/migration-v3#raname-displayobjectsize-to-displaysize for more information.\",\n )\n }\n }\n const isAutoDarkTheme = true\n const themeType = useMemo(\n () =>\n props.theme === \"auto\"\n ? isAutoDarkTheme\n ? \"dark\"\n : \"light\"\n : (props.theme ?? \"light\"),\n [isAutoDarkTheme, props.theme],\n )\n\n const mixedProps = {...props, theme: themeType}\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const jsonViewerStore = useMemo(() => createJsonViewerStore(props), [])\n const typeRegistryStore = useMemo(() => createTypeRegistryStore(), [])\n\n return (\n <TypeRegistryStoreContext.Provider value={typeRegistryStore}>\n <JsonViewerStoreContext.Provider value={jsonViewerStore}>\n <JsonViewerInternal {...mixedProps} />\n </JsonViewerStoreContext.Provider>\n </TypeRegistryStoreContext.Provider>\n )\n}\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n type CSSProperties,\n type MouseEvent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from \"react\"\n\nimport {ChevronRightIcon} from \"lucide-react\"\n\nimport {Icon} from \"@qualcomm-ui/react/icon\"\nimport {clsx} from \"@qualcomm-ui/utils/clsx\"\n\nimport {useInspect, useTextColor} from \"../hooks\"\nimport {useJsonViewerStore, useTypeComponents} from \"../stores\"\nimport type {DataItemProps} from \"../type\"\nimport {getValueSize} from \"../utils\"\n\nimport {getRefName, isReferenceArray, isReferenceObject} from \"./internal\"\n\nexport type DataKeyPairProps = {\n className?: string\n nestedIndex?: number\n path: (string | number)[]\n prevValue?: unknown\n style?: CSSProperties\n value: unknown\n}\n\nexport function DataKeyPair(props: DataKeyPairProps) {\n const {nestedIndex, path, prevValue, value} = props\n const {Component, PostComponent, PreComponent} = useTypeComponents(\n value,\n path,\n )\n\n const depth = path.length\n const key = path[depth - 1]\n const setHover = useJsonViewerStore((store) => store.setHover)\n const root = useJsonViewerStore((store) => store.value)\n const [inspect, setInspect] = useInspect(path, value, nestedIndex)\n const keyColor = useTextColor()\n const numberKeyColor = useJsonViewerStore((store) => store.colorspace.base0C)\n const highlightColor = useJsonViewerStore((store) => store.colorspace.base0A)\n const quotesOnKeys = useJsonViewerStore((store) => store.quotesOnKeys)\n const rootName = useJsonViewerStore((store) => store.rootName)\n const displayNumberKeys = useJsonViewerStore(\n (store) => store.displayNumberKeys,\n )\n const isRoot = root === value\n const isNumberKey = Number.isInteger(Number(key))\n\n const highlightUpdates = useJsonViewerStore((store) => store.highlightUpdates)\n const isHighlight = useMemo(() => {\n if (!highlightUpdates || prevValue === undefined) {\n return false\n }\n\n // highlight if value type changed\n if (typeof value !== typeof prevValue) {\n return true\n }\n\n if (typeof value === \"number\") {\n // notice: NaN !== NaN\n if (isNaN(value) && isNaN(prevValue as number)) {\n return false\n }\n return value !== prevValue\n }\n\n // highlight if isArray changed\n if (Array.isArray(value) !== Array.isArray(prevValue)) {\n return true\n }\n\n // not highlight object/function\n // deep compare they will be slow\n if (typeof value === \"object\" || typeof value === \"function\") {\n return false\n }\n\n // highlight if not equal\n if (value !== prevValue) {\n return true\n }\n\n return false\n }, [highlightUpdates, prevValue, value])\n const highlightContainer = useRef<HTMLSpanElement>(null)\n\n useEffect(() => {\n if (\n highlightContainer.current &&\n isHighlight &&\n \"animate\" in highlightContainer.current\n ) {\n highlightContainer.current.animate(\n [{backgroundColor: highlightColor}, {backgroundColor: \"\"}],\n {\n duration: 1000,\n easing: \"ease-in\",\n },\n )\n }\n }, [highlightColor, isHighlight, prevValue, value])\n\n const isEmptyValue = useMemo(() => getValueSize(value) === 0, [value])\n const expandable = !isEmptyValue && !!(PreComponent && PostComponent)\n const KeyRenderer = useJsonViewerStore((store) => store.keyRenderer)\n const downstreamProps: DataItemProps = useMemo(() => {\n return {\n inspect,\n nestedIndex,\n path: [...path, \"properties\"],\n prevValue,\n refName: getRefName(value),\n setInspect,\n value: isReferenceObject(value)\n ? value.properties\n : isReferenceArray(value)\n ? \"properties\" in value.items\n ? value.items.properties\n : value.items\n : value,\n }\n }, [inspect, path, setInspect, value, prevValue, nestedIndex])\n\n const onKeyClick = useCallback(\n (event: MouseEvent<HTMLSpanElement>) => {\n if (event.isDefaultPrevented()) {\n return\n }\n if (!isEmptyValue) {\n setInspect((state) => !state)\n }\n },\n [isEmptyValue, setInspect],\n )\n\n const onMouseEnter = useCallback(\n () => setHover(path, nestedIndex),\n [setHover, path, nestedIndex],\n )\n\n const color = useJsonViewerStore((store) => store.colorspace.base05)\n const showIndicator = useJsonViewerStore((store) => store.displayKeyIndicator)\n\n return (\n <div\n className={clsx(\"data-key-pair\", {expandable}, props.className)}\n data-testid={`data-key-pair${path.join(\".\")}`}\n onMouseEnter={onMouseEnter}\n style={props.style}\n >\n <span\n className={clsx(\"data-key\", {expandable})}\n onClick={onKeyClick}\n style={{color: keyColor}}\n >\n {expandable ? (\n <span className=\"inline-icon expand-icon\">\n <Icon\n className=\"inline-icon\"\n icon={ChevronRightIcon}\n style={{\n color,\n transform: inspect ? \"rotate(90deg)\" : \"unset\",\n transition: \"transform 161ms ease\",\n }}\n />\n </span>\n ) : null}\n <span ref={highlightContainer}>\n {isRoot && depth === 0 ? (\n rootName !== false ? (\n quotesOnKeys ? (\n <>"{rootName}"</>\n ) : (\n <>{rootName}</>\n )\n ) : null\n ) : KeyRenderer.when(downstreamProps) ? (\n <KeyRenderer {...downstreamProps} />\n ) : (\n nestedIndex === undefined &&\n (isNumberKey ? (\n <>\n {displayNumberKeys ? (\n <span style={{color: numberKeyColor}}>{key}</span>\n ) : null}\n </>\n ) : quotesOnKeys ? (\n <>"{key}"</>\n ) : (\n <>{key}</>\n ))\n )}\n </span>\n {showIndicator\n ? isRoot\n ? rootName !== false && <div className=\"indicator\">:</div>\n : nestedIndex === undefined && <div className=\"indicator\">:</div>\n : null}\n {PreComponent && <PreComponent {...downstreamProps} />}\n </span>\n\n {Component ? (\n <Component {...downstreamProps} />\n ) : (\n <span className=\"data-value-fallback\">{`fallback: ${value}`}</span>\n )}\n\n {PostComponent && <PostComponent {...downstreamProps} />}\n </div>\n )\n}\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {createContext, type SetStateAction, useContext} from \"react\"\n\nimport {create, type StoreApi, useStore} from \"zustand\"\n\nimport {\n darkColorspace,\n type JsonViewerOnChange,\n type JsonViewerProps,\n type Path,\n} from \"..\"\nimport type {RenderLink} from \"../../utils\"\nimport type {Colorspace} from \"../theme/base16\"\nimport type {JsonViewerKeyRenderer} from \"../type\"\n\nconst DefaultKeyRenderer: JsonViewerKeyRenderer = () => null\nDefaultKeyRenderer.when = () => false\n\nexport type JsonViewerState<T = unknown> = {\n collapseStringsAfterLength: number\n colorspace: Colorspace\n defaultInspectControl?: (path: Path, value: unknown) => boolean\n defaultInspectDepth: number\n displayDataTypes: boolean\n displayKeyIndicator: boolean\n displayNumberKeys: boolean\n displaySize: boolean | ((path: Path, value: unknown) => boolean)\n getInspectCache: (path: Path, nestedIndex?: number) => boolean\n groupArraysAfterLength: number\n highlightUpdates: boolean\n hoverPath: {nestedIndex?: number; path: Path} | null\n indentWidth: number\n inspectCache: Record<string, boolean>\n keyRenderer: JsonViewerKeyRenderer\n maxDisplayLength: number\n objectSortKeys: boolean | ((a: string, b: string) => number)\n onChange: JsonViewerOnChange\n prevValue: T | undefined\n quotesOnKeys: boolean\n renderLink: RenderLink\n rootName: false | string\n\n setHover: (path: Path | null, nestedIndex?: number) => void\n setInspectCache: (\n path: Path,\n action: SetStateAction<boolean>,\n nestedIndex?: number,\n ) => void\n value: T\n}\n\nexport const createJsonViewerStore = <T = unknown>(\n props: JsonViewerProps<T>,\n) => {\n return create<JsonViewerState>()((set, get) => ({\n collapseStringsAfterLength:\n props.collapseStringsAfterLength === false\n ? Number.MAX_VALUE\n : (props.collapseStringsAfterLength ?? 50),\n colorspace: darkColorspace,\n defaultInspectControl: props.defaultInspectControl ?? undefined,\n defaultInspectDepth: props.defaultInspectDepth ?? 5,\n displayDataTypes: props.displayDataTypes ?? true,\n displayKeyIndicator: props.displayKeyIndicator ?? true,\n displayNumberKeys: props.displayNumberKeys ?? true,\n displaySize: props.displaySize ?? true,\n getInspectCache: (path, nestedIndex) => {\n const target =\n nestedIndex !== undefined\n ? `${path.join(\".\")}[${nestedIndex}]nt`\n : path.join(\".\")\n return get().inspectCache[target]\n },\n groupArraysAfterLength: props.groupArraysAfterLength ?? 100,\n highlightUpdates: props.highlightUpdates ?? false,\n hoverPath: null,\n indentWidth: props.indentWidth ?? 3,\n inspectCache: {},\n keyRenderer: props.keyRenderer ?? DefaultKeyRenderer,\n maxDisplayLength: props.maxDisplayLength ?? 30,\n objectSortKeys: props.objectSortKeys ?? false,\n onChange: props.onChange ?? (() => {}),\n prevValue: undefined,\n quotesOnKeys: props.quotesOnKeys ?? true,\n renderLink: props.renderLink,\n rootName: props.rootName ?? \"root\",\n setHover: (path, nestedIndex) => {\n set({\n hoverPath: path ? {nestedIndex, path} : null,\n })\n },\n setInspectCache: (path, action, nestedIndex) => {\n const target =\n nestedIndex !== undefined\n ? `${path.join(\".\")}[${nestedIndex}]nt`\n : path.join(\".\")\n set((state) => ({\n inspectCache: {\n ...state.inspectCache,\n [target]:\n typeof action === \"function\"\n ? action(state.inspectCache[target])\n : action,\n },\n }))\n },\n value: props.value,\n }))\n}\n\nexport const JsonViewerStoreContext = createContext<StoreApi<JsonViewerState>>(\n null!,\n)\n\nexport const JsonViewerProvider = JsonViewerStoreContext.Provider\n\nexport const useJsonViewerStore = <U>(\n selector: (state: JsonViewerState) => U,\n) => {\n const store = useContext(JsonViewerStoreContext)\n\n if (!store) {\n throw new Error(\n \"JsonModelViewer components must be wrapped in <JsonViewerProvider>\",\n )\n }\n\n return useStore(store, selector)\n}\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n createContext,\n memo,\n type SetStateAction,\n useContext,\n useMemo,\n} from \"react\"\n\nimport {createStore, type StoreApi, useStore} from \"zustand\"\n\nimport {\n arraySchemaType,\n bigIntType,\n booleanSchemaType,\n booleanType,\n dateType,\n floatType,\n functionType,\n intType,\n nanType,\n nullType,\n numberSchemaType,\n objectType,\n stringSchemaType,\n stringType,\n undefinedType,\n} from \"../components/data-types\"\nimport type {DataItemProps, DataType, Path} from \"../type\"\n\nfunction memoizeDataType<Type>(dataType: DataType<Type>): DataType<Type> {\n function compare(\n prevProps: Readonly<DataItemProps<Type>>,\n nextProps: Readonly<DataItemProps<Type>>,\n ) {\n return (\n Object.is(prevProps.value, nextProps.value) &&\n prevProps.inspect &&\n nextProps.inspect &&\n prevProps.path?.join(\".\") === nextProps.path?.join(\".\")\n )\n }\n dataType.Component = memo(dataType.Component, compare)\n if (dataType.Editor) {\n dataType.Editor = memo(\n dataType.Editor,\n function compare(prevProps, nextProps) {\n return Object.is(prevProps.value, nextProps.value)\n },\n )\n }\n if (dataType.PreComponent) {\n dataType.PreComponent = memo(dataType.PreComponent, compare)\n }\n if (dataType.PostComponent) {\n dataType.PostComponent = memo(dataType.PostComponent, compare)\n }\n return dataType\n}\n\nexport const predefinedTypes: DataType<any>[] = [\n memoizeDataType(booleanType),\n memoizeDataType(dateType),\n memoizeDataType(nullType),\n memoizeDataType(undefinedType),\n memoizeDataType(stringType),\n memoizeDataType(functionType),\n memoizeDataType(nanType),\n memoizeDataType(intType),\n memoizeDataType(floatType),\n memoizeDataType(bigIntType),\n memoizeDataType(stringSchemaType),\n memoizeDataType(numberSchemaType),\n memoizeDataType(booleanSchemaType),\n memoizeDataType(arraySchemaType),\n]\n\ntype TypeRegistryState = {\n registerTypes: (setState: SetStateAction<DataType<any>[]>) => void\n\n registry: DataType<any>[]\n}\n\nexport const createTypeRegistryStore = () => {\n return createStore<TypeRegistryState>()((set) => ({\n registerTypes: (setState) => {\n set((state) => ({\n registry:\n typeof setState === \"function\" ? setState(state.registry) : setState,\n }))\n },\n\n registry: predefinedTypes,\n }))\n}\n\nexport const TypeRegistryStoreContext =\n // @ts-expect-error\n createContext<StoreApi<TypeRegistryState>>(undefined)\n\nexport const TypeRegistryProvider = TypeRegistryStoreContext.Provider\n\nexport const useTypeRegistryStore = <U,>(\n selector: (state: TypeRegistryState) => U,\n equalityFn?: (a: U, b: U) => boolean,\n) => {\n const store = useContext(TypeRegistryStoreContext)\n return useStore(store, selector, equalityFn)\n}\n\nfunction matchTypeComponents<Value>(\n value: Value,\n path: Path,\n registry: TypeRegistryState[\"registry\"],\n): DataType<Value> {\n let potential: DataType<Value> | undefined\n for (const T of registry) {\n if (T.is(value, path)) {\n potential = T\n }\n }\n if (potential === undefined) {\n if (typeof value === \"object\") {\n return objectType as unknown as DataType<Value>\n }\n throw new Error(`No type matched for value: ${value}`)\n }\n return potential\n}\n\nexport function useTypeComponents(value: unknown, path: Path) {\n const registry = useTypeRegistryStore((store) => store.registry)\n return useMemo(\n () => matchTypeComponents(value, path, registry),\n [value, path, registry],\n )\n}\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {ReactNode} from \"react\"\n\nimport {Link2Icon} from \"lucide-react\"\n\nimport {IconButton} from \"@qualcomm-ui/react/button\"\nimport {clsx} from \"@qualcomm-ui/utils/clsx\"\n\nimport {useJsonViewerStore} from \"../../stores\"\n\nRefName.displayName = \"RefName\"\n\nexport interface RefNameProps {\n inspect: boolean\n isArray?: boolean\n refName: string\n}\n\nexport function RefName({inspect, isArray, refName}: RefNameProps): ReactNode {\n const Link = useJsonViewerStore((store) => store.renderLink)\n return (\n <span className=\"data-ref-name-wrapper\">\n <span className={clsx(\"data-ref-name\", {inspect})}>\n {refName}\n {isArray ? \"[]\" : \"\"}\n </span>\n <IconButton\n density=\"compact\"\n icon={Link2Icon}\n render={<Link href={`#model-${refName}`} />}\n size=\"sm\"\n variant=\"ghost\"\n />\n </span>\n )\n}\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nexport interface ReferenceObject {\n $$ref: string\n properties: Record<string, unknown>\n type: \"object\"\n}\n\nexport interface ReferenceArray {\n items: ReferenceObject\n type: \"array\"\n}\n\nexport function isReferenceObject(value: unknown): value is ReferenceObject {\n return !!(\n value &&\n typeof value === \"object\" &&\n \"properties\" in value &&\n \"type\" in value &&\n value.type === \"object\"\n )\n}\n\nexport function isReferenceArray(value: unknown): value is ReferenceArray {\n return !!(\n value &&\n typeof value === \"object\" &&\n \"type\" in value &&\n value.type === \"array\" &&\n \"items\" in value\n )\n}\n\nexport function getRefName(value: any) {\n let refName: string = \"\"\n if (isReferenceObject(value)) {\n refName = value.$$ref?.substring(value.$$ref?.lastIndexOf(\"/\") + 1)\n } else if (isReferenceArray(value)) {\n refName = value.items.$$ref?.substring(\n value.items.$$ref?.lastIndexOf(\"/\") + 1,\n )\n }\n\n return refName\n}\n\nexport function getArrayType(value: any) {\n if (!value?.type) {\n return \"\"\n }\n return value.type === \"string\" ||\n value.type === \"boolean\" ||\n value.type === \"integer\" ||\n value.type === \"null\"\n ? value.type\n : \"\"\n}\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {type ReactNode, useMemo, useState} from \"react\"\n\nimport {InfinityIcon} from \"lucide-react\"\n\nimport {Icon} from \"@qualcomm-ui/react/icon\"\n\nimport {useIsCycleReference, useTextColor} from \"../../hooks\"\nimport {useJsonViewerStore} from \"../../stores\"\nimport type {DataItemProps, DataType} from \"../../type\"\nimport {getValueSize, segmentArray} from \"../../utils\"\nimport {DataKeyPair} from \"../data-key-pair\"\nimport {RefName} from \"../internal\"\n\nconst objectLb = \"{\"\nconst arrayLb = \"[\"\nconst objectRb = \"}\"\nconst arrayRb = \"]\"\n\nfunction inspectMetadata(value: object) {\n const length = getValueSize(value)\n\n let name = \"\"\n if (value instanceof Map || value instanceof Set) {\n name = value[Symbol.toStringTag]\n }\n if (Object.prototype.hasOwnProperty.call(value, Symbol.toStringTag)) {\n name = (value as any)[Symbol.toStringTag]\n }\n return `${length} Items${name ? ` (${name})` : \"\"}`\n}\n\nfunction PreObjectType(props: DataItemProps<any>): ReactNode {\n const metadataColor = useJsonViewerStore((store) => store.colorspace.base04)\n const isArray = useMemo(\n () => props.arrayOverride || Array.isArray(props.value),\n [props.arrayOverride, props.value],\n )\n const isEmptyValue = useMemo(\n () => getValueSize(props.value) === 0,\n [props.value],\n )\n const sizeOfValue = useMemo(() => inspectMetadata(props.value), [props.value])\n const displaySize = useJsonViewerStore((store) => store.displaySize)\n const shouldDisplaySize = useMemo(\n () =>\n typeof displaySize === \"function\"\n ? displaySize(props.path, props.value)\n : displaySize,\n [displaySize, props.path, props.value],\n )\n const color = useJsonViewerStore((store) => store.colorspace.base05)\n const isTrap = useIsCycleReference(props.path, props.value)\n\n const refName = props.refName\n\n return (\n <span className=\"data-object-start\" style={{color}}>\n {isArray ? arrayLb : objectLb}\n {refName ? <RefName inspect={props.inspect} refName={refName} /> : null}\n {!refName && shouldDisplaySize && props.inspect && !isEmptyValue && (\n <span className=\"data-size-label\" style={{color: metadataColor}}>\n {sizeOfValue}\n </span>\n )}\n\n {isTrap && !props.inspect && (\n <>\n <Icon className=\"inline-icon\" icon={InfinityIcon} style={{color}} />\n {isTrap}\n </>\n )}\n </span>\n )\n}\n\nfunction PostObjectType(props: DataItemProps<object>): ReactNode {\n const metadataColor = useJsonViewerStore((store) => store.colorspace.base04)\n\n const isArray = useMemo(() => Array.isArray(props.value), [props.value])\n const isEmptyValue = useMemo(\n () => getValueSize(props.value) === 0,\n [props.value],\n )\n const sizeOfValue = useMemo(() => inspectMetadata(props.value), [props.value])\n const displaySize = useJsonViewerStore((store) => store.displaySize)\n const shouldDisplaySize = useMemo(\n () =>\n typeof displaySize === \"function\"\n ? displaySize(props.path, props.value)\n : displaySize,\n [displaySize, props.path, props.value],\n )\n\n const color = useJsonViewerStore((store) => store.colorspace.base06)\n\n const refName = props.refName\n\n return (\n <span className=\"data-object-end\" style={{color}}>\n {isArray ? arrayRb : objectRb}\n {!refName && shouldDisplaySize && (isEmptyValue || !props.inspect) ? (\n <span className=\"data-size-label\" style={{color: metadataColor}}>\n {sizeOfValue}\n </span>\n ) : null}\n </span>\n )\n}\n\nexport function ObjectType(props: DataItemProps<any>): ReactNode {\n const keyColor = useTextColor()\n const borderColor = useJsonViewerStore((store) => store.colorspace.base02)\n const groupArraysAfterLength = useJsonViewerStore(\n (store) => store.groupArraysAfterLength,\n )\n const isTrap = useIsCycleReference(props.path, props.value)\n const [displayLength, setDisplayLength] = useState(\n useJsonViewerStore((store) => store.maxDisplayLength),\n )\n const objectSortKeys = useJsonViewerStore((store) => store.objectSortKeys)\n\n const elements = useMemo(() => {\n if (!props.inspect) {\n return null\n }\n const value: unknown[] | any = props.value\n\n if (Array.isArray(value)) {\n // unknown[]\n if (value.length <= groupArraysAfterLength) {\n const elements = value.slice(0, displayLength).map((value, _index) => {\n const index = props.nestedIndex\n ? props.nestedIndex * groupArraysAfterLength + _index\n : _index\n const path = [...props.path, index]\n return (\n <DataKeyPair\n key={index}\n path={path}\n prevValue={\n Array.isArray(props.prevValue)\n ? props.prevValue[index]\n : undefined\n }\n value={value}\n />\n )\n })\n if (value.length > displayLength) {\n const rest = value.length - displayLength\n elements.push(\n <div\n key=\"last\"\n className=\"rest-spread\"\n onClick={() => setDisplayLength((length: number) => length * 2)}\n style={{color: keyColor}}\n >\n hidden {rest} items\u2026\n </div>,\n )\n }\n return elements\n }\n\n const elements: unknown[][] = segmentArray(value, groupArraysAfterLength)\n const prevElements = Array.isArray(props.prevValue)\n ? segmentArray(props.prevValue, groupArraysAfterLength)\n : undefined\n\n return elements.map((list, index) => {\n return (\n <DataKeyPair\n key={index}\n nestedIndex={index}\n path={props.path}\n prevValue={prevElements?.[index]}\n value={list}\n />\n )\n })\n }\n\n if (!value) {\n return <></>\n }\n\n if (value.type === \"object\" && value.properties) {\n return (\n <DataKeyPair\n path={[]}\n prevValue={props.prevValue}\n value={value.properties}\n />\n )\n }\n // object\n let entries: [key: string, value: unknown][] = Object.entries(value).filter(\n ([key]) => key !== \"$$ref\",\n )\n if (objectSortKeys) {\n entries =\n objectSortKeys === true\n ? entries.sort(([a], [b]) => a.localeCompare(b))\n : entries.sort(([a], [b]) => objectSortKeys(a, b))\n }\n const elements = entries.slice(0, displayLength).map(([key, value]) => {\n const path = [...props.path, key]\n return (\n <DataKeyPair\n key={key}\n path={path}\n prevValue={props.prevValue?.[key]}\n value={value}\n />\n )\n })\n if (entries.length > displayLength) {\n const rest = entries.length - displayLength\n elements.push(\n <div\n key=\"last\"\n className=\"rest-spread no-select\"\n onClick={() => setDisplayLength((length: number) => length * 2)}\n style={{color: keyColor}}\n >\n hidden {rest} items\u2026\n </div>,\n )\n }\n return elements\n }, [props, objectSortKeys, displayLength, groupArraysAfterLength, keyColor])\n const marginLeft = props.inspect ? 0.8 : 0\n const width = useJsonViewerStore((store) => store.indentWidth)\n const indentWidth = props.inspect ? width - marginLeft : width\n const isEmptyValue = useMemo(\n () => getValueSize(props.value) === 0,\n [props.value],\n )\n if (isEmptyValue) {\n return null\n }\n\n return (\n <div\n className=\"data-object\"\n style={{\n borderLeft: props.inspect ? `1px solid ${borderColor}` : \"none\",\n color: keyColor,\n display: props.inspect ? \"block\" : \"inline-block\",\n marginLeft: marginLeft * 8,\n paddingLeft: props.inspect ? (indentWidth - 0.6) * 8 : 0,\n }}\n >\n {props.inspect\n ? elements\n : !isTrap &&\n !props.refName && (\n <span\n className=\"data-object-body\"\n onClick={() => props.setInspect(true)}\n >\n \u2026\n </span>\n )}\n </div>\n )\n}\n\nexport const objectType: DataType<object> = {\n Component: ObjectType,\n is: (value) => typeof value === \"object\",\n PostComponent: PostObjectType,\n PreComponent: PreObjectType,\n}\n", "import type {ComponentType} from \"react\"\n\nimport type {DataItemProps, DataType, EditorProps, Path} from \"../type\"\n\n// reference: https://github.com/immerjs/immer/blob/main/src/utils/common.ts\nconst objectCtorString = Object.prototype.constructor.toString()\nexport function isPlainObject(value: any): boolean {\n if (!value || typeof value !== \"object\") {\n return false\n }\n\n const proto = Object.getPrototypeOf(value)\n if (proto === null) {\n return true\n }\n\n const Ctor =\n Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n if (Ctor === Object) {\n return true\n }\n\n return (\n typeof Ctor === \"function\" &&\n Function.toString.call(Ctor) === objectCtorString\n )\n}\n\nfunction shouldShallowCopy(value: any) {\n if (!value) {\n return false\n }\n\n return (\n isPlainObject(value) ||\n Array.isArray(value) ||\n value instanceof Map ||\n value instanceof Set\n )\n}\n\nfunction shallowCopy(value: any) {\n if (Array.isArray(value)) {\n return Array.prototype.slice.call(value)\n }\n if (value instanceof Set) {\n return new Set(value)\n }\n if (value instanceof Map) {\n return new Map(value)\n }\n if (typeof value === \"object\" && value !== null) {\n return Object.assign({}, value)\n }\n return value\n}\n\nfunction _applyValue(\n input: any,\n path: (string | number)[],\n value: any,\n visitedMapping = new Map<any, any>(),\n) {\n if (typeof input !== \"object\" || input === null) {\n if (path.length !== 0) {\n throw new Error(\"path is incorrect\")\n }\n return value\n }\n\n const shouldCopy = shouldShallowCopy(input)\n if (shouldCopy) {\n let copiedInput = visitedMapping.get(input)\n if (!copiedInput) {\n copiedInput = shallowCopy(input)\n visitedMapping.set(input, copiedInput)\n }\n input = copiedInput\n }\n\n const [key, ...restPath] = path\n if (key !== undefined) {\n if (key === \"__proto__\") {\n throw new TypeError(\"Modification of prototype is not allowed\")\n }\n if (restPath.length > 0) {\n input[key] = _applyValue(input[key], restPath, value, visitedMapping)\n } else {\n input[key] = value\n }\n }\n return input\n}\n\n/**\n * Apply a value to a given path of an object.\n */\nexport function applyValue(input: any, path: (string | number)[], value: any) {\n return _applyValue(input, path, value)\n}\n\n/**\n * Delete a value from a given path of an object.\n */\nexport function deleteValue(input: any, path: (string | number)[], value: any) {\n if (typeof input !== \"object\" || input === null) {\n if (path.length !== 0) {\n throw new Error(\"path is incorrect\")\n }\n return value\n }\n\n const shouldCopy = shouldShallowCopy(input)\n if (shouldCopy) {\n input = shallowCopy(input)\n }\n\n const [key, ...restPath] = path\n if (key !== undefined) {\n if (key === \"__proto__\") {\n throw new TypeError(\"Modification of prototype is not allowed\")\n }\n if (restPath.length > 0) {\n input[key] = deleteValue(input[key], restPath, value)\n } else {\n if (Array.isArray(input)) {\n input.splice(Number(key), 1)\n } else {\n delete input[key]\n }\n }\n }\n return input\n}\n\n/**\n * @deprecated use `defineDataType` instead\n */\n// case 1: you only render with a single component\nexport function createDataType<ValueType = unknown>(\n is: (value: unknown, path: Path) => boolean,\n Component: ComponentType<DataItemProps<ValueType>>,\n): {\n Component: ComponentType<DataItemProps<ValueType>>\n is: (value: unknown, path: Path) => boolean\n}\n/**\n * @deprecated use `defineDataType` instead\n */\n// case 2: you only render with a single component with editor\nexport function createDataType<ValueType = unknown>(\n is: (value: unknown, path: Path) => boolean,\n Component: ComponentType<DataItemProps<ValueType>>,\n Editor: ComponentType<EditorProps<ValueType>>,\n): {\n Component: ComponentType<DataItemProps<ValueType>>\n Editor: ComponentType<DataItemProps<ValueType>>\n is: (value: unknown, path: Path) => boolean\n}\n/**\n * @deprecated use `defineDataType` instead\n */\n// case 3: you only render with a component with pre and post.\nexport function createDataType<ValueType = unknown>(\n is: (value: unknown, path: Path) => boolean,\n Component: ComponentType<DataItemProps<ValueType>>,\n Editor: undefined,\n PreComponent: ComponentType<DataItemProps<ValueType>>,\n PostComponent: ComponentType<DataItemProps<ValueType>>,\n): {\n Component: ComponentType<DataItemProps<ValueType>>\n is: (value: unknown, path: Path) => boolean\n PostComponent: ComponentType<DataItemProps<ValueType>>\n PreComponent: ComponentType<DataItemProps<ValueType>>\n}\n/**\n * @deprecated use `defineDataType` instead\n */\n// case 4: need all of these\nexport function createDataType<ValueType = unknown>(\n is: (value: unknown, path: Path) => boolean,\n Component: ComponentType<DataItemProps<ValueType>>,\n Editor: ComponentType<EditorProps<ValueType>>,\n PreComponent: ComponentType<DataItemProps<ValueType>>,\n PostComponent: ComponentType<DataItemProps<ValueType>>,\n): {\n Component: ComponentType<DataItemProps<ValueType>>\n Editor: ComponentType<DataItemProps<ValueType>>\n is: (value: unknown, path: Path) => boolean\n PostComponent: ComponentType<DataItemProps<ValueType>>\n PreComponent: ComponentType<DataItemProps<ValueType>>\n}\n/**\n * @deprecated use `defineDataType` instead\n */\nexport function createDataType<ValueType = unknown>(\n is: (value: unknown, path: Path) => boolean,\n Component: ComponentType<DataItemProps<ValueType>>,\n Editor?: ComponentType<EditorProps<ValueType>>,\n PreComponent?: ComponentType<DataItemProps<ValueType>>,\n PostComponent?: ComponentType<DataItemProps<ValueType>>,\n): any {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\n \"createDataType is deprecated, please use `defineDataType` instead. See https://viewer.textea.io/migration/migration-v3#use-definedatatype-instead-of-createdatatype for more information.\",\n )\n }\n return {\n Component,\n Editor,\n is,\n PostComponent,\n PreComponent,\n }\n}\n\n/**\n * Define custom data types for any data structure\n */\nexport function defineDataType<ValueType = unknown>({\n Component,\n deserialize,\n Editor,\n is,\n PostComponent,\n PreComponent,\n serialize,\n}: {\n /**\n * The main component used to render a value of this data type.\n */\n Component: ComponentType<DataItemProps<ValueType>>\n /**\n * Converts a string representation of a value back to a value of this data type.\n *\n * Throws an error if the input is invalid, in which case the editor will ignore\n * the change.\n */\n deserialize?: (value: string) => ValueType\n /**\n * An optional custom editor component for editing values of this data type.\n *\n * You must also provide a `serialize` and `deserialize` function to enable this\n * feature.\n */\n Editor?: ComponentType<EditorProps<string>>\n /**\n * Determines whether a given value belongs to this data type.\n *\n * @param value The value to check\n * @param path The path to the value within the input data structure\n * @returns `true` if the value belongs to this data type, `false` otherwise\n */\n is: (value: unknown, path: Path) => boolean\n /**\n * An optional component to render after the value.\n *\n * In collapsed mode, it will still be rendered as a suffix.\n */\n PostComponent?: ComponentType<DataItemProps<ValueType>>\n /**\n * An optional component to render before the value.\n *\n * In collapsed mode, it will still be rendered as a prefix.\n */\n PreComponent?: ComponentType<DataItemProps<ValueType>>\n /**\n * Convert the value of this data type to a string for editing\n */\n serialize?: (value: ValueType) => string\n}): DataType<ValueType> {\n return {\n Component,\n deserialize,\n Editor,\n is,\n PostComponent,\n PreComponent,\n serialize,\n }\n}\n\nexport const isCycleReference = (\n root: any,\n path: (string | number)[],\n value: unknown,\n): false | string => {\n if (root === null || value === null) {\n return false\n }\n if (typeof root !== \"object\") {\n return false\n }\n if (typeof value !== \"object\") {\n return false\n }\n if (Object.is(root, value) && path.length !== 0) {\n return \"\"\n }\n const currentPath = []\n const arr = [...path]\n let currentRoot = root\n while (currentRoot !== value || arr.length !== 0) {\n if (typeof currentRoot !== \"object\" || currentRoot === null) {\n return false\n }\n if (Object.is(currentRoot, value)) {\n return currentPath.reduce<string>((path, value, currentIndex) => {\n if (typeof value === \"number\") {\n return `${path}[${value}]`\n }\n return `${path}${currentIndex === 0 ? \"\" : \".\"}${value}`\n }, \"\")\n }\n const target = arr.shift()!\n currentPath.push(target)\n currentRoot = currentRoot[target]\n }\n return false\n}\n\nexport function getValueSize(value: any): number {\n if (value === null || undefined) {\n return 0\n } else if (Array.isArray(value)) {\n return value.length\n } else if (value instanceof Map || value instanceof Set) {\n return value.size\n } else if (value instanceof Date) {\n return 1\n } else if (typeof value === \"object\") {\n return Object.keys(value).length\n } else if (typeof value === \"string\") {\n return value.length\n }\n return 1\n}\n\nexport function segmentArray<T>(arr: T[], size: number): T[][] {\n const result: T[][] = []\n let index = 0\n while (index < arr.length) {\n result.push(arr.slice(index, index + size))\n index += size\n }\n return result\n}\n\n/**\n * A safe version of `JSON.stringify` that handles circular references and BigInts.\n *\n * This function might be changed in the future to support more types. Use it with\n * caution.*\n *\n * @param obj A JavaScript value, usually an object or array, to be converted.\n * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\n * @returns\n */\nexport function safeStringify(obj: any, space?: string | number) {\n const seenValues: any[] = []\n\n function replacer(key: string | number, value: any) {\n // https://github.com/GoogleChromeLabs/jsbi/issues/30\n if (typeof value === \"bigint\") {\n return value.toString()\n }\n\n // Map and Set are not supported by JSON.stringify\n if (value instanceof Map) {\n if (\"toJSON\" in value && typeof value.toJSON === \"function\") {\n return value.toJSON()\n }\n if (value.size === 0) {\n return {}\n }\n\n if (seenValues.includes(value)) {\n return \"[Circular]\"\n }\n seenValues.push(value)\n\n const entries = Array.from(value.entries())\n if (\n entries.every(\n ([key]) => typeof key === \"string\" || typeof key === \"number\",\n )\n ) {\n return Object.fromEntries(entries)\n }\n\n // if keys are not string or number, we can't convert to object\n // fallback to default behavior\n return {}\n }\n if (value instanceof Set) {\n if (\"toJSON\" in value && typeof value.toJSON === \"function\") {\n return value.toJSON()\n }\n\n if (seenValues.includes(value)) {\n return \"[Circular]\"\n }\n seenValues.push(value)\n\n return Array.from(value.values())\n }\n\n // https://stackoverflow.com/a/72457899\n if (\n typeof value === \"object\" &&\n value !== null &&\n Object.keys(value).length\n ) {\n const stackSize = seenValues.length\n if (stackSize) {\n // clean up expired references\n for (\n let n = stackSize - 1;\n n >= 0 && seenValues[n][key] !== value;\n --n\n ) {\n seenValues.pop()\n }\n if (seenValues.includes(value)) {\n return \"[Circular]\"\n }\n }\n seenValues.push(value)\n }\n return value\n }\n\n return JSON.stringify(obj, replacer, space)\n}\n\nconst copyToClipboard = async (value: string) => {\n if (!navigator?.clipboard) {\n console.error(\"Access to clipboard rejected!\")\n }\n try {\n await navigator.clipboard.writeText(value)\n } catch {\n console.error(\"Failed to copy!\")\n }\n}\n\nexport async function copyString(value: string) {\n if (\"clipboard\" in navigator) {\n try {\n await navigator.clipboard.writeText(value)\n } catch {\n // When navigator.clipboard throws an error, fallback to copy-to-clipboard\n // package\n }\n }\n\n // fallback to copy-to-clipboard when navigator.clipboard is not available\n copyToClipboard(value)\n}\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {ReactNode} from \"react\"\n\nimport {useJsonViewerStore} from \"../../stores\"\nimport type {DataItemProps, DataType} from \"../../type\"\nimport {getArrayType, isReferenceArray, RefName} from \"../internal\"\n\nimport {ObjectType} from \"./object\"\n\nfunction PreArrayType(props: DataItemProps<any>): ReactNode {\n const refName = props.refName\n\n const color = useJsonViewerStore((store) => store.colorspace.base06)\n\n const simpleType = getArrayType(props.value)\n\n return (\n <span className=\"data-object-start\" style={{color}}>\n <div className=\"indicator\">{simpleType ? \"\" : `[{`}</div>\n {refName ? (\n <RefName inspect={props.inspect} isArray refName={refName} />\n ) : null}\n </span>\n )\n}\n\nfunction PostArrayType(props: DataItemProps<any>): ReactNode {\n const color = useJsonViewerStore((store) => store.colorspace.base06)\n\n const simpleType = getArrayType(props.value)\n\n return (\n <span className=\"data-object-end\" style={{color}}>\n <div className=\"indicator\">{simpleType ? \"\" : `}]`}</div>\n </span>\n )\n}\n\nfunction ArrayType(props: DataItemProps<any>) {\n const simpleType = getArrayType(props.value)\n const color = useJsonViewerStore((store) => store.colorspace.base09)\n\n if (simpleType) {\n return <span style={{color}}>{simpleType}[]</span>\n }\n\n return <ObjectType {...props} />\n}\n\nexport const arraySchemaType: DataType<object> = {\n Component: ArrayType,\n is: (value) => isReferenceArray(value),\n PostComponent: PostArrayType,\n PreComponent: PreArrayType,\n}\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {type ComponentType, type FC, memo} from \"react\"\n\nimport {useJsonViewerStore} from \"../../stores\"\nimport type {Colorspace} from \"../../theme/base16\"\nimport type {DataItemProps, DataType} from \"../../type\"\nimport {DataTypeLabel} from \"../data-type-label\"\n\nexport type EasyTypeConfig<Value> = Pick<\n DataType<Value>,\n \"is\" | \"serialize\" | \"deserialize\"\n> & {\n colorKey: keyof Colorspace\n displayTypeLabel?: boolean\n Renderer: ComponentType<DataItemProps<Value>>\n type: string\n}\n/**\n * Enhanced version of `defineDataType` that creates a `DataType` with editor and a\n * optional type label. It will take care of the color and all the necessary props.\n *\n * All of the built-in data types are defined with this function.*\n *\n * @param type The type name.\n * @param colorKey The color key in the colorspace. ('base00' - 'base0F')\n * @param displayTypeLabel Whether to display the type label.\n * @param Renderer The component to render the value.\n */\nexport function defineEasyType<Value>({\n colorKey,\n deserialize,\n displayTypeLabel = true,\n is,\n Renderer,\n serialize,\n type,\n}: EasyTypeConfig<Value>): DataType<Value> {\n const Render = memo(Renderer)\n const EasyType: FC<DataItemProps<Value>> = (props) => {\n const storeDisplayDataTypes = useJsonViewerStore(\n (store) => store.displayDataTypes,\n )\n const color = useJsonViewerStore((store) => store.colorspace[colorKey])\n\n return (\n <div className=\"simple-type\" style={{color}}>\n {displayTypeLabel && storeDisplayDataTypes && (\n <DataTypeLabel dataType={type} />\n )}\n <div className={`${type}-value simple-value`}>\n <Render\n inspect={props.inspect}\n path={props.path}\n prevValue={props.prevValue}\n setInspect={props.setInspect}\n value={props.value}\n />\n </div>\n </div>\n )\n }\n EasyType.displayName = `easy-${type}-type`\n\n if (!serialize || !deserialize) {\n return {\n Component: EasyType,\n is,\n }\n }\n\n return {\n Component: EasyType,\n deserialize,\n is,\n serialize,\n }\n}\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {FC} from \"react\"\n\nexport type DataLabelProps = {\n dataType: string\n enable?: boolean\n}\n\nexport const DataTypeLabel: FC<DataLabelProps> = ({\n dataType,\n enable = true,\n}) => {\n if (!enable) {\n return null\n }\n\n return <div className=\"data-type-label\">{dataType}</div>\n}\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {defineEasyType} from \"./define-easy-type\"\n\nexport const booleanSchemaType = defineEasyType<string>({\n colorKey: \"base09\",\n is: (value: unknown) =>\n !!(\n value &&\n typeof value === \"object\" &&\n \"type\" in value &&\n value.type === \"boolean\"\n ),\n Renderer: () => {\n return <span className=\"data-value\">boolean</span>\n },\n type: \"boolean\",\n})\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {defineEasyType} from \"./define-easy-type\"\n\nexport const booleanType = defineEasyType<boolean>({\n colorKey: \"base0E\",\n deserialize: (value) => {\n if (value === \"true\") {\n return true\n }\n if (value === \"false\") {\n return false\n }\n throw new Error(\"Invalid boolean value\")\n },\n is: (value) => typeof value === \"boolean\",\n Renderer: ({value}) => <>{value ? \"true\" : \"false\"}</>,\n serialize: (value) => value.toString(),\n type: \"bool\",\n})\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {defineEasyType} from \"./define-easy-type\"\n\nconst displayOptions: Intl.DateTimeFormatOptions = {\n day: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n month: \"short\",\n weekday: \"short\",\n year: \"numeric\",\n}\n\nexport const dateType = defineEasyType<Date>({\n colorKey: \"base0D\",\n is: (value) => value instanceof Date,\n Renderer: ({value}) => (\n <>{value.toLocaleTimeString(\"en-us\", displayOptions)}</>\n ),\n type: \"date\",\n})\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {FC} from \"react\"\n\nimport {useJsonViewerStore} from \"../../stores\"\nimport type {DataItemProps, DataType} from \"../../type\"\nimport {DataTypeLabel} from \"../data-type-label\"\n\nconst functionBody = (func: Function) => {\n const funcString = func.toString()\n\n let isUsualFunction = true\n const parenthesisPos = funcString.indexOf(\")\")\n const arrowPos = funcString.indexOf(\"=>\")\n if (arrowPos !== -1 && arrowPos > parenthesisPos) {\n isUsualFunction = false\n }\n if (isUsualFunction) {\n return funcString.substring(\n funcString.indexOf(\"{\", parenthesisPos) + 1,\n funcString.lastIndexOf(\"}\"),\n )\n }\n\n return funcString.substring(funcString.indexOf(\"=>\") + 2)\n}\n\nconst functionName = (func: Function) => {\n const funcString = func.toString()\n const isUsualFunction = funcString.indexOf(\"function\") !== -1\n if (isUsualFunction) {\n return funcString.substring(8, funcString.indexOf(\"{\")).trim()\n }\n\n return funcString.substring(0, funcString.indexOf(\"=>\") + 2).trim()\n}\n\nconst lb = \"{\"\nconst rb = \"}\"\n\nconst PreFunctionType: FC<DataItemProps<Function>> = (props) => {\n return (\n <>\n <DataTypeLabel dataType=\"function\" />\n <span className=\"data-function-start\">\n {functionName(props.value)} {lb}\n </span>\n </>\n )\n}\n\nconst PostFunctionType: FC<DataItemProps<Function>> = () => {\n return (\n <>\n <span className=\"data-function-end\">{rb}</span>\n </>\n )\n}\n\nconst FunctionType: FC<DataItemProps<Function>> = (props) => {\n const functionColor = useJsonViewerStore((store) => store.colorspace.base05)\n return (\n <>\n <div\n className=\"data-function\"\n style={{\n color: functionColor,\n display: props.inspect ? \"block\" : \"inline-block\",\n paddingLeft: props.inspect ? 16 : 0,\n }}\n >\n {props.inspect ? (\n functionBody(props.value)\n ) : (\n <span\n className=\"data-function-body\"\n onClick={() => props.setInspect(true)}\n >\n \u2026\n </span>\n )}\n </div>\n </>\n )\n}\n\nexport const functionType: DataType<Function> = {\n Component: FunctionType,\n is: (value) => typeof value === \"function\",\n PostComponent: PostFunctionType,\n PreComponent: PreFunctionType,\n}\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {useJsonViewerStore} from \"../../stores\"\n\nimport {defineEasyType} from \"./define-easy-type\"\n\nexport const nullType = defineEasyType<null>({\n colorKey: \"base08\",\n displayTypeLabel: false,\n is: (value) => value === null,\n Renderer: () => {\n const backgroundColor = useJsonViewerStore(\n (store) => store.colorspace.base02,\n )\n return (\n <div\n className=\"q-font-metadata-md-mono rounded-sm px-0.5 py-[1px]\"\n style={{\n backgroundColor,\n }}\n >\n NULL\n </div>\n )\n },\n type: \"null\",\n})\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {defineEasyType} from \"./define-easy-type\"\n\nexport const numberSchemaType = defineEasyType<string>({\n colorKey: \"base09\",\n is: (value: unknown) =>\n !!(\n value &&\n typeof value === \"object\" &&\n \"type\" in value &&\n value.type === \"integer\"\n ),\n Renderer: () => {\n return <span className=\"data-value\">integer</span>\n },\n type: \"integer\",\n})\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {useJsonViewerStore} from \"../../stores\"\n\nimport {defineEasyType} from \"./define-easy-type\"\n\nconst isInt = (n: number) => n % 1 === 0\n\nexport const nanType = defineEasyType<number>({\n colorKey: \"base08\",\n // allow deserialize the value back to number\n deserialize: (value) => parseFloat(value),\n displayTypeLabel: false,\n is: (value) => typeof value === \"number\" && isNaN(value),\n Renderer: () => {\n const backgroundColor = useJsonViewerStore(\n (store) => store.colorspace.base02,\n )\n return (\n <div className=\"rounded-sm px-0.5 py-[1px]\" style={{backgroundColor}}>\n NaN\n </div>\n )\n },\n serialize: () => \"NaN\",\n type: \"NaN\",\n})\n\nexport const floatType = defineEasyType<number>({\n colorKey: \"base0B\",\n deserialize: (value) => parseFloat(value),\n is: (value) => typeof value === \"number\" && !isInt(value) && !isNaN(value),\n Renderer: ({value}) => <>{value}</>,\n serialize: (value) => value.toString(),\n type: \"float\",\n})\n\nexport const intType = defineEasyType<number>({\n colorKey: \"base0F\",\n // allow deserialize the value to float\n deserialize: (value) => parseFloat(value),\n is: (value) => typeof value === \"number\" && isInt(value),\n Renderer: ({value}) => <>{value}</>,\n serialize: (value) => value.toString(),\n type: \"int\",\n})\n\nexport const bigIntType = defineEasyType<bigint>({\n colorKey: \"base0F\",\n deserialize: (value) => BigInt(value.replace(/\\D/g, \"\")),\n is: (value) => typeof value === \"bigint\",\n Renderer: ({value}) => <>{`${value}n`}</>,\n serialize: (value) => value.toString(),\n type: \"bigint\",\n})\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {defineEasyType} from \"./define-easy-type\"\n\nexport const stringSchemaType = defineEasyType<string>({\n colorKey: \"base09\",\n is: (value: unknown) =>\n !!(\n value &&\n typeof value === \"object\" &&\n \"type\" in value &&\n value.type === \"string\"\n ),\n Renderer: () => {\n return <span className=\"data-value\">string</span>\n },\n type: \"string\",\n})\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {useState} from \"react\"\n\nimport {useJsonViewerStore} from \"../../stores\"\n\nimport {defineEasyType} from \"./define-easy-type\"\n\nexport const stringType = defineEasyType<string>({\n colorKey: \"base09\",\n deserialize: (value) => value,\n is: (value) => typeof value === \"string\",\n Renderer: (props) => {\n const [showRest, setShowRest] = useState(false)\n const collapseStringsAfterLength = useJsonViewerStore(\n (store) => store.collapseStringsAfterLength,\n )\n const value = showRest\n ? props.value\n : props.value.slice(0, collapseStringsAfterLength)\n const hasRest = props.value.length > collapseStringsAfterLength\n return (\n <span\n className=\"data-value\"\n onClick={() => {\n if (window.getSelection()?.type === \"Range\") {\n return\n }\n\n if (hasRest) {\n setShowRest((value) => !value)\n }\n }}\n style={{\n cursor: hasRest ? \"pointer\" : \"inherit\",\n }}\n >\n "\n {value}\n {hasRest && !showRest && <span className=\"show-rest\">\u2026</span>}\n "\n </span>\n )\n },\n serialize: (value) => value,\n type: \"string\",\n})\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {useJsonViewerStore} from \"../../stores\"\n\nimport {defineEasyType} from \"./define-easy-type\"\n\nexport const undefinedType = defineEasyType<undefined>({\n colorKey: \"base05\",\n displayTypeLabel: false,\n is: (value) => value === undefined,\n Renderer: () => {\n const backgroundColor = useJsonViewerStore(\n (store) => store.colorspace.base02,\n )\n return (\n <div className=\"rounded-sm px-0.5 py-[1px]\" style={{backgroundColor}}>\n undefined\n </div>\n )\n },\n type: \"undefined\",\n})\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {useJsonViewerStore} from \"../stores\"\n\nexport const useTextColor = () => {\n return useJsonViewerStore((store) => store.colorspace.base07)\n}\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n type Dispatch,\n type SetStateAction,\n useCallback,\n useEffect,\n useState,\n} from \"react\"\n\nimport {useJsonViewerStore} from \"../stores\"\n\nimport {useIsCycleReference} from \"./use-is-cycle-reference\"\n\nexport function useInspect(\n path: (string | number)[],\n value: any,\n nestedIndex?: number,\n) {\n const depth = path.length\n const isTrap = useIsCycleReference(path, value)\n const getInspectCache = useJsonViewerStore((store) => store.getInspectCache)\n const setInspectCache = useJsonViewerStore((store) => store.setInspectCache)\n const defaultInspectDepth = useJsonViewerStore(\n (store) => store.defaultInspectDepth,\n )\n const defaultInspectControl = useJsonViewerStore(\n (store) => store.defaultInspectControl,\n )\n useEffect(() => {\n const inspect = getInspectCache(path, nestedIndex)\n if (inspect !== undefined) {\n return\n }\n\n // item with nestedIndex should not be inspected\n if (nestedIndex !== undefined) {\n setInspectCache(path, false, nestedIndex)\n return\n }\n\n // do not inspect when it is a cycle reference, otherwise there will have a loop\n const shouldInspect = isTrap\n ? false\n : typeof defaultInspectControl === \"function\"\n ? defaultInspectControl(path, value)\n : depth < defaultInspectDepth\n setInspectCache(path, shouldInspect)\n }, [\n defaultInspectDepth,\n defaultInspectControl,\n depth,\n getInspectCache,\n isTrap,\n nestedIndex,\n path,\n value,\n setInspectCache,\n ])\n\n const [inspect, set] = useState<boolean>(() => {\n const shouldInspect = getInspectCache(path, nestedIndex)\n if (shouldInspect !== undefined) {\n return shouldInspect\n }\n if (nestedIndex !== undefined) {\n return false\n }\n return isTrap\n ? false\n : typeof defaultInspectControl === \"function\"\n ? defaultInspectControl(path, value)\n : depth < defaultInspectDepth\n })\n const setInspect = useCallback<Dispatch<SetStateAction<boolean>>>(\n (apply) => {\n set((oldState) => {\n const newState = typeof apply === \"boolean\" ? apply : apply(oldState)\n setInspectCache(path, newState, nestedIndex)\n return newState\n })\n },\n [nestedIndex, path, setInspectCache],\n )\n return [inspect, setInspect] as const\n}\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {useMemo} from \"react\"\n\nimport {useJsonViewerStore} from \"../stores\"\nimport {isCycleReference} from \"../utils\"\n\nexport function useIsCycleReference(path: (string | number)[], value: any) {\n const rootValue = useJsonViewerStore((store) => store.value)\n\n return useMemo(\n () =>\n path[path.length - 1] !== \"properties\" &&\n isCycleReference(rootValue, path, value),\n [path, value, rootValue],\n )\n}\n", "// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nexport type NamedColorspace = {\n author: string\n scheme: string\n} & Colorspace\n\nexport type Colorspace = {\n base0A: string\n base0B: string\n base0C: string\n base0D: string\n base0E: string\n base0F: string\n base00: string\n base01: string\n base02: string\n base03: string\n base04: string\n base05: string\n base06: string\n base07: string\n base08: string\n base09: string\n}\n\nexport const lightColorspace: NamedColorspace = {\n author: \"mac gainor (https://github.com/mac-s-g)\",\n base0A: \"#ffd500\",\n base0B: \"#859900\",\n base0C: \"#6c71c4\",\n base0D: \"#586e75\",\n base0E: \"#2aa198\",\n base0F: \"#268bd2\",\n base00: \"rgba(0, 0, 0, 0)\",\n base01: \"rgb(245, 245, 245)\",\n base02: \"rgb(235, 235, 235)\",\n base03: \"#93a1a1\",\n base04: \"rgba(0, 0, 0, 0.3)\",\n base05: \"#586e75\",\n base06: \"#073642\",\n base07: \"#002b36\",\n base08: \"#d33682\",\n base09: \"#cb4b16\",\n scheme: \"Light Theme\",\n}\n\nexport const darkColorspace: NamedColorspace = {\n author: \"Chris Kempson (http://chriskempson.com)\",\n base0A: \"#f7ca88\",\n base0B: \"#a1b56c\",\n base0C: \"#86c1b9\",\n base0D: \"#7cafc2\",\n base0E: \"#a5d6ff\",\n base0F: \"#e8e8e8\",\n base00: \"#181818\",\n base01: \"#282828\",\n base02: \"#383838\",\n base03: \"#585858\",\n base04: \"#b8b8b8\",\n base05: \"#d8d8d8\",\n base06: \"#e8e8e8\",\n base07: \"#d2a8ff\",\n base08: \"#ab4642\",\n base09: \"#a5d6ff\",\n scheme: \"Dark Theme\",\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {createContext, useContext} from \"react\"\n\nimport type {QdsTheme} from \"@qualcomm-ui/qds-core/theme\"\n\nconst ThemeContext = createContext<QdsTheme>(\"dark\")\n\nexport const ThemeContextProvider = ThemeContext.Provider\n\nexport function useThemeContext() {\n return useContext(ThemeContext)\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {ReactNode} from \"react\"\n\nimport {JsonModelViewer} from \"./json-model-viewer\"\nimport type {GetComponent, Schema} from \"./types\"\nimport {useThemeContext} from \"./use-theme-context\"\n\nArrayModel.displayName = \"ArrayModel\"\n\nexport interface ArrayModelProps {\n depth?: number\n displayName?: string\n expandDepth?: number\n expanded?: boolean\n getComponent: GetComponent\n includeReadOnly?: boolean\n includeWriteOnly?: boolean\n name?: string\n onToggle?: (modelName: string, expanded: boolean) => void\n required?: boolean\n schema: Schema\n}\n\nexport function ArrayModel(props: ArrayModelProps): ReactNode {\n const {schema} = props\n\n const renderLink = props.getComponent(\"RenderLink\")\n\n const title: any = schema.get(\"title\") || props.displayName || props.name\n\n const titleEl = title ? (\n <button\n className=\"model-box-control\"\n onClick={() => props.onToggle?.(props.name!, !props.expanded)}\n >\n <span className=\"model-title__text\">{title}</span>\n </button>\n ) : null\n\n const json = schema.toJS()\n\n const theme = useThemeContext()\n\n return (\n <div className=\"array-model\">\n {titleEl}\n <JsonModelViewer\n displayDataTypes={false}\n displaySize={false}\n groupArraysAfterLength={100}\n highlightUpdates\n indentWidth={2}\n renderLink={renderLink}\n rootName={false}\n theme={theme}\n value={json}\n />\n </div>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {useState} from \"react\"\n\nimport {PasswordInput} from \"@qualcomm-ui/react/password-input\"\n\nimport type {GetComponent} from \"../types\"\n\ninterface ApiKeyAuthProps {\n authorized: any\n errSelectors: any\n getComponent: GetComponent\n name: string\n onChange: (auth: any) => void\n schema: any\n}\n\nexport function ApiKeyAuth(props: ApiKeyAuthProps) {\n const getValue = () => {\n const {authorized, name} = props\n return authorized && authorized.getIn([name, \"value\"])\n }\n\n const [state, setState] = useState({\n name: props.name,\n schema: props.schema,\n value: getValue(),\n })\n\n const onChange = (value: string) => {\n const newState = {...state, value}\n setState(newState)\n props.onChange?.(newState)\n }\n\n const {errSelectors, getComponent, name, schema} = props\n const Row = getComponent(\"Row\")\n const Col = getComponent(\"Col\")\n const AuthError = getComponent(\"authError\")\n const Markdown = getComponent(\"Markdown\", true)\n const JumpToPath = getComponent(\"JumpToPath\", true)\n const value = getValue()\n const errors = errSelectors\n .allErrors()\n .filter((err: any) => err.get(\"authId\") === name)\n\n return (\n <div className=\"api-key-wrapper\">\n <h4 className=\"api-key-wrapper-header\">\n <code>{name || schema.get(\"name\")}</code> (apiKey)\n <JumpToPath path={[\"securityDefinitions\", name]} />\n </h4>\n {value && <h6>Authorized</h6>}\n <Row>\n <Markdown source={schema.get(\"description\")} />\n </Row>\n <Row>\n <p className=\"text-body-sm\">\n Name: <code className=\"qui-code\">{schema.get(\"name\")}</code>\n </p>\n </Row>\n <Row>\n <p className=\"text-body-sm\">\n In: <code className=\"qui-code\">{schema.get(\"in\")}</code>\n </p>\n </Row>\n <Row>\n <Col>\n <PasswordInput\n aria-label={schema.get(\"name\")}\n className=\"swagger-input\"\n disabled={!!value}\n inputProps={{autoFocus: true}}\n onValueChange={onChange}\n />\n </Col>\n </Row>\n {errors.valueSeq().map((error: any, key: number) => (\n <AuthError key={key} error={error} />\n ))}\n </div>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {GetComponent, Schema} from \"../types\"\n\ninterface AuthItemProps {\n authorized: any\n errSelectors: any\n getComponent: GetComponent\n name: string\n onAuthChange: (auth: any) => void\n schema: Schema\n}\n\nexport function AuthItem(props: AuthItemProps) {\n const {authorized, errSelectors, getComponent, name, onAuthChange, schema} =\n props\n const ApiKeyAuth = getComponent(\"apiKeyAuth\")\n const BasicAuth = getComponent(\"basicAuth\")\n\n let authEl\n const type: any = schema.get(\"type\")\n\n switch (type) {\n case \"apiKey\":\n authEl = (\n <ApiKeyAuth\n key={name}\n authorized={authorized}\n errSelectors={errSelectors}\n getComponent={getComponent}\n name={name}\n onChange={onAuthChange}\n schema={schema}\n />\n )\n break\n case \"basic\":\n authEl = (\n <BasicAuth\n key={name}\n authorized={authorized}\n errSelectors={errSelectors}\n getComponent={getComponent}\n name={name}\n onChange={onAuthChange}\n schema={schema}\n />\n )\n break\n default:\n authEl = <div key={name}>Unknown security definition type {type}</div>\n }\n\n return <div key={`${name}-jump`}>{authEl}</div>\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Dialog} from \"@qualcomm-ui/react/dialog\"\n\nimport type {GetComponent} from \"../types\"\n\ninterface AuthorizationPopupProps {\n authActions: any\n authSelectors: any\n errSelectors: object\n fn: any\n getComponent: GetComponent\n specSelectors: object\n}\n\nexport function AuthorizationPopup({\n authActions,\n authSelectors,\n errSelectors,\n fn,\n getComponent,\n specSelectors,\n}: AuthorizationPopupProps) {\n const close = () => {\n authActions.showDefinitions(false)\n }\n\n const definitions = authSelectors.shownDefinitions()\n const Auths = getComponent(\"auths\")\n\n return (\n <Dialog.Root\n defaultOpen\n onOpenChange={(open) => {\n if (!open) {\n close()\n }\n }}\n size=\"md\"\n >\n <Dialog.FloatingPortal>\n <Dialog.Body className=\"swagger-ui\">\n <Dialog.CloseButton />\n <Dialog.Heading>Available Authorizations</Dialog.Heading>\n <Dialog.Description className=\"authorization-popup-dialog-body\">\n {definitions.valueSeq().map((definition: any, key: any) => (\n <Auths\n key={key}\n AST={fn.AST}\n authActions={authActions}\n authSelectors={authSelectors}\n definitions={definition}\n errSelectors={errSelectors}\n getComponent={getComponent}\n specSelectors={specSelectors}\n />\n ))}\n </Dialog.Description>\n </Dialog.Body>\n </Dialog.FloatingPortal>\n </Dialog.Root>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {LockIcon, LockOpenIcon} from \"lucide-react\"\n\nimport {Button} from \"@qualcomm-ui/react/button\"\n\nimport type {GetComponent} from \"../types\"\n\ninterface AuthorizeBtnProps {\n getComponent: GetComponent\n isAuthorized?: boolean\n onClick?: () => void\n showPopup?: boolean\n}\n\nexport function AuthorizeBtn({\n getComponent,\n isAuthorized,\n onClick,\n showPopup,\n}: AuthorizeBtnProps) {\n const AuthorizationPopup = getComponent(\"authorizationPopup\", true)\n\n return (\n <div className=\"auth-wrapper\">\n <Button\n emphasis=\"primary\"\n endIcon={isAuthorized ? LockIcon : LockOpenIcon}\n onClick={onClick}\n variant=\"fill\"\n >\n Authorize\n </Button>\n {showPopup && <AuthorizationPopup />}\n </div>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {MouseEvent, ReactNode} from \"react\"\n\nimport {LockIcon, LockOpenIcon} from \"lucide-react\"\n\nimport {IconButton} from \"@qualcomm-ui/react/button\"\n\nAuthorizeOperationBtn.displayName = \"AuthorizeOperationBtn\"\n\nexport interface AuthorizeOperationBtnProps {\n getComponent: () => any\n isAuthorized: boolean\n onClick?: () => void\n}\n\nexport function AuthorizeOperationBtn(\n props: AuthorizeOperationBtnProps,\n): ReactNode {\n function onClick(e: MouseEvent) {\n e.stopPropagation()\n\n props.onClick?.()\n }\n\n const {isAuthorized} = props\n\n return (\n <IconButton\n aria-label={\n isAuthorized\n ? \"authorization button locked\"\n : \"authorization button unlocked\"\n }\n icon={isAuthorized ? LockIcon : LockOpenIcon}\n onClick={onClick}\n size=\"sm\"\n variant=\"ghost\"\n />\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {type FormEvent, type MouseEvent, useState} from \"react\"\n\nimport type {Map} from \"immutable\"\n\nimport {Button} from \"@qualcomm-ui/react/button\"\n\ninterface AuthsProps {\n authActions: any\n authSelectors: any\n definitions: Map<any, any>\n errSelectors: any\n getComponent: (name: string, fallback?: boolean) => any\n specSelectors: any\n}\n\nexport function Auths(props: AuthsProps) {\n const [state, setState] = useState<any>({})\n\n const onAuthChange = (auth: any) => {\n const {name} = auth\n setState({...state, [name]: auth})\n }\n\n const submitAuth = (e: FormEvent) => {\n e.preventDefault()\n const {authActions} = props\n authActions.authorizeWithPersistOption(state)\n }\n\n const logoutClick = (e: MouseEvent) => {\n e.preventDefault()\n const {authActions, definitions} = props\n const auths = definitions.map((val: any, key: string) => key).toArray()\n setState(\n auths.reduce((prev: any, auth: any) => ({...prev, [auth]: \"\"}), {}),\n )\n authActions.logoutWithPersistOption(auths)\n }\n\n const close = (e: MouseEvent) => {\n e.preventDefault()\n const {authActions} = props\n authActions.showDefinitions(false)\n }\n\n const {authSelectors, definitions, errSelectors, getComponent} = props\n const AuthItem = getComponent(\"AuthItem\")\n const Oauth2 = getComponent(\"oauth2\", true)\n\n const authorized = authSelectors.authorized()\n const authorizedAuth = definitions.filter(\n (definition: any, key: string) => !!authorized.get(key),\n )\n const nonOauthDefinitions = definitions.filter(\n (schema: any) => schema.get(\"type\") !== \"oauth2\",\n )\n const oauthDefinitions = definitions.filter(\n (schema: any) => schema.get(\"type\") === \"oauth2\",\n )\n\n const defs: any = nonOauthDefinitions\n .entrySeq()\n .map(([name, schema]: any) => {\n return (\n <AuthItem\n key={name}\n authorized={authorized}\n errSelectors={errSelectors}\n getComponent={getComponent}\n name={name}\n onAuthChange={onAuthChange}\n schema={schema}\n />\n )\n })\n\n return (\n <div className=\"auth-container\">\n {!!nonOauthDefinitions.size && (\n <form onSubmit={submitAuth}>\n {defs}\n <div className=\"auth-btn-wrapper\">\n {nonOauthDefinitions.size === authorizedAuth.size ? (\n <Button\n aria-label=\"Remove authorization\"\n onClick={logoutClick}\n variant=\"outline\"\n >\n Logout\n </Button>\n ) : (\n <Button\n aria-label=\"Apply credentials\"\n emphasis=\"primary\"\n type=\"submit\"\n variant=\"fill\"\n >\n Authorize\n </Button>\n )}\n <Button onClick={close} variant=\"outline\">\n Close\n </Button>\n </div>\n </form>\n )}\n {oauthDefinitions && oauthDefinitions.size ? (\n <div className=\"oauth-wrapper\">\n <div className=\"scope-def\">\n <p>\n Scopes are used to grant an application different levels of access\n to data on behalf of the end user. Each API may declare one or\n more scopes.\n </p>\n <p>\n API requires the following scopes. Select which ones you want to\n grant to Swagger UI.\n </p>\n </div>\n {definitions\n .filter((schema) => schema.get(\"type\") === \"oauth2\")\n .entrySeq()\n .map(([name, schema]: any) => {\n return (\n <div key={name}>\n <Oauth2 authorized={authorized} name={name} schema={schema} />\n </div>\n )\n })\n .toArray()}\n </div>\n ) : null}\n </div>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {useState} from \"react\"\n\nimport {PasswordInput} from \"@qualcomm-ui/react/password-input\"\nimport {TextInput} from \"@qualcomm-ui/react/text-input\"\n\nimport type {GetComponent} from \"../types\"\n\ninterface BasicAuthProps {\n authorized: any\n errSelectors: any\n getComponent: GetComponent\n name: string\n onChange: (auth: any) => void\n schema: any\n}\n\nexport function BasicAuth(props: BasicAuthProps) {\n const [state, setState] = useState({\n name: props.name,\n schema: props.schema,\n value: {},\n })\n\n const getValue = () => {\n const {authorized, name} = props\n return (authorized && authorized.getIn([name, \"value\"])) || {}\n }\n\n const onChange = (value: string, name: string) => {\n const {onChange} = props\n const newValue = {...state.value, [name]: value}\n setState({...state, value: newValue})\n onChange(state)\n }\n\n const {errSelectors, getComponent, name, schema} = props\n const Row = getComponent(\"Row\")\n const Col = getComponent(\"Col\")\n const AuthError = getComponent(\"authError\")\n const JumpToPath = getComponent(\"JumpToPath\", true)\n const Markdown = getComponent(\"Markdown\", true)\n const username = getValue().username\n const errors = errSelectors\n .allErrors()\n .filter((err: any) => err.get(\"authId\") === name)\n\n return (\n <div>\n <h4>\n Basic authorization\n <JumpToPath path={[\"securityDefinitions\", name]} />\n </h4>\n {username && <h6>Authorized</h6>}\n <Row>\n <Markdown source={schema.get(\"description\")} />\n </Row>\n <Row>\n {username ? (\n <TextInput\n clearable={false}\n disabled\n label=\"Username\"\n value={username}\n />\n ) : (\n <Col>\n <TextInput\n inputProps={{\n autoFocus: true,\n id: \"auth_username\",\n }}\n label=\"Username\"\n name=\"username\"\n onValueChange={(value) => onChange(value, \"username\")}\n />\n </Col>\n )}\n </Row>\n <Row>\n {username ? (\n <PasswordInput\n clearable={false}\n disabled\n label=\"Password\"\n value={((state.value as any)?.[state.name] as string) || \"\"}\n />\n ) : (\n <Col>\n <PasswordInput\n inputProps={{\n id: \"auth_password\",\n }}\n label=\"Password\"\n name=\"password\"\n onValueChange={(value) => onChange(value, \"password\")}\n />\n </Col>\n )}\n </Row>\n {errors.valueSeq().map((error: any, key: number) => (\n <AuthError key={key} error={error} />\n ))}\n </div>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {type ReactNode, type SyntheticEvent, useState} from \"react\"\n\nimport {selectCollection} from \"@qualcomm-ui/core/select\"\nimport {Button} from \"@qualcomm-ui/react/button\"\nimport {Checkbox} from \"@qualcomm-ui/react/checkbox\"\nimport {PasswordInput} from \"@qualcomm-ui/react/password-input\"\nimport {Select} from \"@qualcomm-ui/react/select\"\nimport {TextInput} from \"@qualcomm-ui/react/text-input\"\n\nimport type {GetComponent} from \"../types\"\n\nimport {authorizeOauth2} from \"./utils\"\n\nOauth2.displayName = \"Oauth2\"\n\nexport interface Oauth2Props {\n authActions: any\n authorized?: any\n authSelectors: any\n errActions: any\n errSelectors: any\n getComponent: GetComponent\n getConfigs?: any\n name?: string\n oas3Selectors: any\n schema: any\n specSelectors: any\n}\n\nexport function Oauth2(props: Oauth2Props): ReactNode {\n const {\n authorized,\n authSelectors,\n errSelectors,\n getComponent,\n name,\n schema,\n specSelectors,\n } = props\n const auth = authorized && authorized.get(name)\n let authConfigs = authSelectors.getConfigs() || {}\n const username = (auth && auth.get(\"username\")) || \"\"\n const clientId = (auth && auth.get(\"clientId\")) || authConfigs.clientId || \"\"\n const clientSecret =\n (auth && auth.get(\"clientSecret\")) || authConfigs.clientSecret || \"\"\n const passwordType = (auth && auth.get(\"passwordType\")) || \"basic\"\n let scopes = (auth && auth.get(\"scopes\")) || authConfigs.scopes || []\n if (typeof scopes === \"string\") {\n scopes = scopes.split(authConfigs.scopeSeparator || \" \")\n }\n\n const [state, setState] = useState({\n appName: authConfigs.appName,\n clientId,\n clientSecret,\n name,\n password: \"\",\n passwordType,\n schema,\n scopes,\n username,\n })\n\n const close = (e: SyntheticEvent) => {\n e.preventDefault()\n const {authActions} = props\n\n authActions.showDefinitions(false)\n }\n\n const authorize = () => {\n const {authActions, authSelectors, errActions, getConfigs, oas3Selectors} =\n props\n const configs = getConfigs()\n const authConfigs = authSelectors.getConfigs()\n\n errActions.clear({authId: name, source: \"auth\", type: \"auth\"})\n authorizeOauth2({\n auth: state,\n authActions,\n authConfigs,\n configs,\n currentServer: oas3Selectors.serverEffectiveValue(\n oas3Selectors.selectedServer(),\n ),\n errActions,\n })\n }\n\n const onScopeChange = (scope: string, checked: boolean) => {\n if (checked && state.scopes.indexOf(scope) === -1) {\n const newScopes = state.scopes.concat([scope])\n setState((prevState) => ({...prevState, scopes: newScopes}))\n } else if (!checked && state.scopes.indexOf(scope) > -1) {\n setState((prevState) => ({\n ...prevState,\n scopes: state.scopes.filter((val: any) => val !== scope),\n }))\n }\n }\n\n const onInputChange = (name: string, value: any) => {\n const state = {\n [name]: value,\n }\n\n setState((prevState) => ({...prevState, ...state}))\n }\n\n const selectScopes = (e: any) => {\n if (e.target.dataset.all) {\n setState((prevState) => ({\n ...prevState,\n scopes: Array.from(\n (\n props.schema.get(\"allowedScopes\") || props.schema.get(\"scopes\")\n ).keys(),\n ),\n }))\n } else {\n setState((prevState) => ({...prevState, scopes: []}))\n }\n }\n\n const logout = (e: any) => {\n e.preventDefault()\n const {authActions, errActions, name} = props\n\n errActions.clear({authId: name, source: \"auth\", type: \"auth\"})\n authActions.logoutWithPersistOption([name])\n }\n\n const Row = getComponent(\"Row\")\n const Col = getComponent(\"Col\")\n const AuthError = getComponent(\"authError\")\n const JumpToPath = getComponent(\"JumpToPath\", true)\n const Markdown = getComponent(\"Markdown\", true)\n\n const {isOAS3} = specSelectors\n\n const oidcUrl = isOAS3() ? schema.get(\"openIdConnectUrl\") : null\n\n // Auth type consts\n const AUTH_FLOW_IMPLICIT = \"implicit\"\n const AUTH_FLOW_PASSWORD = \"password\"\n const AUTH_FLOW_ACCESS_CODE = isOAS3()\n ? oidcUrl\n ? \"authorization_code\"\n : \"authorizationCode\"\n : \"accessCode\"\n const AUTH_FLOW_APPLICATION = isOAS3()\n ? oidcUrl\n ? \"client_credentials\"\n : \"clientCredentials\"\n : \"application\"\n\n authConfigs = authSelectors.getConfigs() || {}\n const isPkceCodeGrant = !!authConfigs.usePkceWithAuthorizationCodeGrant\n\n const flow = schema.get(\"flow\")\n const flowToDisplay =\n flow === AUTH_FLOW_ACCESS_CODE && isPkceCodeGrant\n ? `${flow} with PKCE`\n : flow\n scopes = schema.get(\"allowedScopes\") || schema.get(\"scopes\")\n const authorizedAuth = authSelectors.authorized().get(name)\n const isAuthorized = !!authorizedAuth\n const errors = errSelectors\n .allErrors()\n .filter((err: any) => err.get(\"authId\") === name)\n const isValid = !errors.filter(\n (err: any) => err.get(\"source\") === \"validation\",\n ).size\n const description = schema.get(\"description\")\n\n return (\n <div className=\"oauth2-wrapper\">\n <h4 className=\"oauth2-heading\">\n {name} (OAuth2, {flowToDisplay}){\" \"}\n <JumpToPath path={[\"securityDefinitions\", name]} />\n </h4>\n {!state.appName ? null : <h5>Application: {state.appName} </h5>}\n {description && <Markdown source={schema.get(\"description\")} />}\n\n {isAuthorized && <h6>Authorized</h6>}\n\n {oidcUrl && (\n <p className=\"text-body-sm\">\n OpenID Connect URL: <code className=\"qui-code\">{oidcUrl}</code>\n </p>\n )}\n {(flow === AUTH_FLOW_IMPLICIT || flow === AUTH_FLOW_ACCESS_CODE) && (\n <p className=\"text-body-sm\">\n Authorization URL:{\" \"}\n <code className=\"qui-code\">{schema.get(\"authorizationUrl\")}</code>\n </p>\n )}\n {(flow === AUTH_FLOW_PASSWORD ||\n flow === AUTH_FLOW_ACCESS_CODE ||\n flow === AUTH_FLOW_APPLICATION) && (\n <p className=\"text-body-sm\">\n Token URL:<code className=\"qui-code\"> {schema.get(\"tokenUrl\")}</code>\n </p>\n )}\n <p className=\"text-body-sm\">\n Flow: <code className=\"qui-code\">{flowToDisplay}</code>\n </p>\n\n {flow !== AUTH_FLOW_PASSWORD ? null : (\n <Row>\n <Row>\n <Col desktop={10} tablet={10}>\n <TextInput\n disabled={isAuthorized}\n inputProps={{autoFocus: true, \"data-name\": \"username\"}}\n label=\"Username\"\n onValueChange={(value) => onInputChange(\"username\", value)}\n />\n </Col>\n </Row>\n <Row>\n <Col desktop={10} tablet={10}>\n <PasswordInput\n className=\"swagger-input\"\n disabled={isAuthorized}\n onValueChange={(value) => onInputChange(\"password\", value)}\n />\n </Col>\n </Row>\n <Row>\n <Col desktop={10} tablet={10}>\n <Select\n collection={selectCollection({\n items: [\n {label: \"Authorization header\", value: \"basic\"},\n {label: \"Request body\", value: \"request-body\"},\n ],\n })}\n defaultValue={[\"basic\"]}\n disabled={isAuthorized}\n label=\"Client credentials location:\"\n onValueChange={(value) =>\n onInputChange(\"passwordType\", value[0])\n }\n size=\"sm\"\n />\n </Col>\n </Row>\n </Row>\n )}\n {(flow === AUTH_FLOW_APPLICATION ||\n flow === AUTH_FLOW_IMPLICIT ||\n flow === AUTH_FLOW_ACCESS_CODE ||\n flow === AUTH_FLOW_PASSWORD) &&\n (!isAuthorized || (isAuthorized && state.clientId)) && (\n <Row>\n <Col desktop={10} tablet={10}>\n <TextInput\n className=\"swagger-input\"\n defaultValue={state.clientId}\n disabled={isAuthorized}\n label=\"client_id\"\n onValueChange={(value) => onInputChange(\"clientId\", value)}\n />\n </Col>\n </Row>\n )}\n\n {(flow === AUTH_FLOW_APPLICATION ||\n flow === AUTH_FLOW_ACCESS_CODE ||\n flow === AUTH_FLOW_PASSWORD) && (\n <Row>\n <Col desktop={10} tablet={10}>\n <PasswordInput\n className=\"swagger-input\"\n defaultValue={state.clientSecret}\n disabled={isAuthorized}\n label=\"client_secret\"\n onValueChange={(value) => onInputChange(\"clientSecret\", value)}\n />\n </Col>\n </Row>\n )}\n\n {!isAuthorized && scopes && scopes.size ? (\n <div className=\"scopes\">\n <div className=\"scope-actions\">\n Scopes:\n <button className=\"q-text-link\" data-all onClick={selectScopes}>\n select all\n </button>\n <button className=\"q-text-link\" onClick={selectScopes}>\n select none\n </button>\n </div>\n {scopes\n .map((description: any, name: string) => {\n return (\n <Row key={name}>\n <Checkbox\n checked={state.scopes.includes(name)}\n controlProps={{\"data-value\": name}}\n disabled={isAuthorized}\n label={\n <div className=\"text\">\n <p className=\"name\">{name}</p>\n <p className=\"description\">{description}</p>\n </div>\n }\n onCheckedChange={(checked) => {\n onScopeChange(name, checked)\n }}\n />\n </Row>\n )\n })\n .toArray()}\n </div>\n ) : null}\n\n {errors.valueSeq().map((error: any, key: string) => {\n return <AuthError key={key} error={error} />\n })}\n <div className=\"auth-btn-wrapper\">\n {isValid &&\n (isAuthorized ? (\n <Button\n aria-label=\"Remove authorization\"\n onClick={logout}\n variant=\"fill\"\n >\n Logout\n </Button>\n ) : (\n <Button\n aria-label=\"Apply given OAuth2 credentials\"\n emphasis=\"primary\"\n onClick={authorize}\n variant=\"fill\"\n >\n Authorize\n </Button>\n ))}\n <Button onClick={close} variant=\"outline\">\n Close\n </Button>\n </div>\n </div>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport Im from \"immutable\"\nimport randomBytes from \"randombytes\"\nimport shaJs from \"sha.js\"\nimport parseUrl from \"url-parse\"\n\nfunction b64toB64UrlEncoded(str: any) {\n return str.replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\")\n}\n\nexport function generateCodeVerifier() {\n return b64toB64UrlEncoded(randomBytes(32).toString(\"base64\"))\n}\n\nexport function createCodeChallenge(codeVerifier: any) {\n return b64toB64UrlEncoded(\n shaJs(\"sha256\").update(codeVerifier).digest(\"base64\"),\n )\n}\n\nfunction sanitizeUrl(url: any): string {\n if (typeof url !== \"string\" || url.trim() === \"\") {\n return \"\"\n }\n\n const urlTrimmed = url.trim()\n const blankURL = \"about:blank\"\n\n try {\n const base = `https://base${String(Math.random()).slice(2)}`\n const urlObject = new URL(urlTrimmed, base)\n const scheme = urlObject.protocol.slice(0, -1)\n\n // check for invalid schemes\n if ([\"javascript\", \"data\", \"vbscript\"].includes(scheme.toLowerCase())) {\n return blankURL\n }\n\n // return sanitized URI reference\n if (urlObject.origin === base) {\n if (urlTrimmed.startsWith(\"/\")) {\n return `${urlObject.pathname}${urlObject.search}${urlObject.hash}`\n }\n\n // Handle relative paths (./path, ../path, ./../../path, etc.)\n if (urlTrimmed.startsWith(\"./\") || urlTrimmed.startsWith(\"../\")) {\n const relativePath = urlTrimmed?.match(/^(\\.\\.?\\/)+/)?.[0]\n const remainingPath = urlObject.pathname.substring(1)\n return `${relativePath}${remainingPath}${urlObject.search}${urlObject.hash}`\n }\n\n return `${urlObject.pathname.substring(1)}${urlObject.search}${urlObject.hash}`\n }\n\n return String(urlObject)\n } catch {\n return blankURL\n }\n}\n\nexport function authorizeOauth2({\n auth,\n authActions,\n authConfigs = {},\n configs,\n currentServer,\n errActions,\n}: {\n auth: any\n authActions: any\n authConfigs?: any\n configs: any\n currentServer?: any\n errActions: any\n}) {\n const {clientId, name, schema, scopes} = auth\n const flow = schema.get(\"flow\")\n const query = []\n\n switch (flow) {\n case \"password\":\n authActions.authorizePassword(auth)\n return\n\n case \"application\":\n authActions.authorizeApplication(auth)\n return\n\n case \"accessCode\":\n query.push(\"response_type=code\")\n break\n\n case \"implicit\":\n query.push(\"response_type=token\")\n break\n\n case \"clientCredentials\":\n case \"client_credentials\":\n // OAS3\n authActions.authorizeApplication(auth)\n return\n\n case \"authorizationCode\":\n case \"authorization_code\":\n // OAS3\n query.push(\"response_type=code\")\n break\n }\n\n if (typeof clientId === \"string\") {\n query.push(`client_id=${encodeURIComponent(clientId)}`)\n }\n\n const redirectUrl = configs.oauth2RedirectUrl\n\n // todo move to parser\n if (typeof redirectUrl === \"undefined\") {\n errActions.newAuthErr({\n authId: name,\n level: \"error\",\n message:\n \"oauth2RedirectUrl configuration is not passed. Oauth2 authorization cannot be performed.\",\n source: \"validation\",\n })\n return\n }\n query.push(`redirect_uri=${encodeURIComponent(redirectUrl)}`)\n\n let scopesArray = []\n if (Array.isArray(scopes)) {\n scopesArray = scopes\n } else if (Im.List.isList(scopes)) {\n scopesArray = scopes.toArray()\n }\n\n if (scopesArray.length > 0) {\n const scopeSeparator = authConfigs.scopeSeparator || \" \"\n\n query.push(`scope=${encodeURIComponent(scopesArray.join(scopeSeparator))}`)\n }\n\n const state = btoa(new Date().toString())\n\n query.push(`state=${encodeURIComponent(state)}`)\n\n if (typeof authConfigs.realm !== \"undefined\") {\n query.push(`realm=${encodeURIComponent(authConfigs.realm)}`)\n }\n\n if (\n (flow === \"authorizationCode\" ||\n flow === \"authorization_code\" ||\n flow === \"accessCode\") &&\n authConfigs.usePkceWithAuthorizationCodeGrant\n ) {\n const codeVerifier = generateCodeVerifier()\n const codeChallenge = createCodeChallenge(codeVerifier)\n\n query.push(`code_challenge=${codeChallenge}`)\n query.push(\"code_challenge_method=S256\")\n\n // storing the Code Verifier so it can be sent to the token endpoint\n // when exchanging the Authorization Code for an Access Token\n auth.codeVerifier = codeVerifier\n }\n\n const {additionalQueryStringParams} = authConfigs\n\n for (const key in additionalQueryStringParams) {\n if (typeof additionalQueryStringParams[key] !== \"undefined\") {\n query.push(\n [key, additionalQueryStringParams[key]]\n .map(encodeURIComponent)\n .join(\"=\"),\n )\n }\n }\n\n const authorizationUrl = schema.get(\"authorizationUrl\")\n let sanitizedAuthorizationUrl\n if (currentServer) {\n // OpenAPI 3\n sanitizedAuthorizationUrl = parseUrl(\n sanitizeUrl(authorizationUrl),\n currentServer,\n true,\n ).toString()\n } else {\n sanitizedAuthorizationUrl = sanitizeUrl(authorizationUrl)\n }\n const url = [sanitizedAuthorizationUrl, query.join(\"&\")].join(\n typeof authorizationUrl === \"string\" && !authorizationUrl.includes(\"?\")\n ? \"?\"\n : \"&\",\n )\n\n // pass action authorizeOauth2 and authentication data through window\n // to authorize with oauth2\n\n let callback\n if (flow === \"implicit\") {\n callback = authActions.preAuthorizeImplicit\n } else if (authConfigs.useBasicAuthenticationWithAccessCodeGrant) {\n callback = authActions.authorizeAccessCodeWithBasicAuthentication\n } else {\n callback = authActions.authorizeAccessCodeWithFormParams\n }\n\n authActions.authPopup(url, {\n auth,\n callback,\n errCb: errActions.newAuthErr,\n redirectUrl,\n state,\n })\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Trash2Icon} from \"lucide-react\"\n\nimport {Button} from \"@qualcomm-ui/react/button\"\n\ninterface ClearProps {\n method: string\n path: string\n specActions: any\n}\n\nexport function Clear(props: ClearProps) {\n const onClick = () => {\n const {method, path, specActions} = props\n specActions.clearResponse(path, method)\n specActions.clearRequest(path, method)\n }\n\n return (\n <Button endIcon={Trash2Icon} onClick={onClick} variant=\"outline\">\n Clear\n </Button>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {useEffect, useMemo} from \"react\"\n\nimport immutable from \"immutable\"\n\nimport {selectCollection} from \"@qualcomm-ui/core/select\"\nimport {Select} from \"@qualcomm-ui/react/select\"\nimport {useEffectOnce} from \"@qualcomm-ui/react-core/effects\"\n\nexport interface ContentTypeProps {\n ariaControls?: string\n ariaLabel?: string\n className?: string\n contentTypes?: any[] | Set<any> | {[key: string]: any}\n controlId?: string\n label?: string\n onChange?: (value: any) => void\n value?: string | null\n}\n\nexport function ContentType({\n ariaControls,\n ariaLabel,\n contentTypes: contentTypesProp,\n label,\n onChange,\n value = null,\n}: ContentTypeProps) {\n const contentTypes = useMemo(() => {\n return immutable.fromJS(contentTypesProp)\n }, [contentTypesProp])\n\n const collection = useMemo(() => {\n if (!contentTypes || !contentTypes.size) {\n return null\n }\n return selectCollection({items: contentTypes.toArray()})\n }, [contentTypes])\n\n useEffectOnce(() => {\n if (contentTypes && onChange) {\n onChange(contentTypes.first())\n }\n })\n\n useEffect(() => {\n if (\n contentTypes &&\n value &&\n !contentTypes.includes(value) &&\n onChange &&\n contentTypes.size\n ) {\n onChange(contentTypes.first())\n }\n }, [contentTypes, onChange, value])\n\n if (!contentTypes || !contentTypes.size || !collection) {\n return null\n }\n\n return (\n <Select\n clearable={false}\n collection={collection}\n controlProps={{\n \"aria-controls\": ariaControls,\n \"aria-label\": ariaLabel || \"Content Type\",\n }}\n label={label?.trim() || undefined}\n onClick={(event) => {\n // something is causing this to click twice, so the menu never opens.\n event.preventDefault()\n }}\n onValueChange={(value) => onChange?.(value[0])}\n size=\"sm\"\n style={{minWidth: 180}}\n value={value ? [value] : []}\n />\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {ReactNode} from \"react\"\n\nimport {JsonModelViewer, type JsonViewerKeyRenderer} from \"./json-model-viewer\"\nimport type {GetComponent} from \"./types\"\nimport {useThemeContext} from \"./use-theme-context\"\n\nEnumModel.displayName = \"EnumModel\"\n\nexport interface EnumModelProps {\n getComponent: GetComponent\n value: any\n}\n\nconst KeyRenderer: JsonViewerKeyRenderer = () => null\nKeyRenderer.when = () => true\n\nexport function EnumModel({getComponent, value}: EnumModelProps): ReactNode {\n const renderLink = getComponent(\"RenderLink\")\n\n const theme = useThemeContext()\n\n return (\n <JsonModelViewer\n defaultInspectDepth={25}\n displayDataTypes={false}\n displayKeyIndicator={false}\n displaySize={false}\n groupArraysAfterLength={100}\n indentWidth={2}\n keyRenderer={KeyRenderer}\n renderLink={renderLink}\n rootName={false}\n theme={theme}\n value={value.toJSON()}\n />\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {PlayIcon} from \"lucide-react\"\n\nimport {Button} from \"@qualcomm-ui/react/button\"\n\ninterface ExecuteProps {\n disabled?: boolean\n method: string\n oas3Actions: any\n oas3Selectors: any\n onExecute?: () => void\n operation: any\n path: string\n specActions: any\n specSelectors: any\n}\n\nexport function Execute(props: ExecuteProps) {\n const handleValidateParameters = (): boolean => {\n const {method, path, specActions, specSelectors} = props\n specActions.validateParams([path, method])\n return specSelectors.validateBeforeExecute([path, method])\n }\n\n const handleValidateRequestBody = (): boolean => {\n const {method, oas3Actions, oas3Selectors, path, specSelectors} = props\n const validationErrors = {\n missingBodyValue: false,\n missingRequiredKeys: [] as string[],\n }\n oas3Actions.clearRequestBodyValidateError({method, path})\n const oas3RequiredRequestBodyContentType =\n specSelectors.getOAS3RequiredRequestBodyContentType([path, method])\n const oas3RequestBodyValue = oas3Selectors.requestBodyValue(path, method)\n const oas3ValidateBeforeExecuteSuccess =\n oas3Selectors.validateBeforeExecute([path, method])\n const oas3RequestContentType = oas3Selectors.requestContentType(\n path,\n method,\n )\n\n if (!oas3ValidateBeforeExecuteSuccess) {\n validationErrors.missingBodyValue = true\n oas3Actions.setRequestBodyValidateError({method, path, validationErrors})\n return false\n }\n if (!oas3RequiredRequestBodyContentType) {\n return true\n }\n const missingRequiredKeys: string[] = oas3Selectors.validateShallowRequired(\n {\n oas3RequestBodyValue,\n oas3RequestContentType,\n oas3RequiredRequestBodyContentType,\n },\n )\n if (!missingRequiredKeys || missingRequiredKeys.length < 1) {\n return true\n }\n missingRequiredKeys.forEach((missingKey) => {\n validationErrors.missingRequiredKeys.push(missingKey)\n })\n oas3Actions.setRequestBodyValidateError({method, path, validationErrors})\n return false\n }\n\n const handleValidationResultPass = () => {\n const {method, operation, path, specActions} = props\n if (props.onExecute) {\n props.onExecute()\n }\n specActions.execute({method, operation, path})\n }\n\n const handleValidationResultFail = () => {\n const {method, path, specActions} = props\n specActions.clearValidateParams([path, method])\n setTimeout(() => {\n specActions.validateParams([path, method])\n }, 40)\n }\n\n const handleValidationResult = (isPass: boolean) => {\n if (isPass) {\n handleValidationResultPass()\n } else {\n handleValidationResultFail()\n }\n }\n\n const onClick = () => {\n const paramsResult = handleValidateParameters()\n const requestBodyResult = handleValidateRequestBody()\n const isPass = paramsResult && requestBodyResult\n handleValidationResult(isPass)\n }\n\n const {disabled} = props\n return (\n <Button\n className=\"execute-button\"\n disabled={disabled}\n emphasis=\"primary\"\n endIcon={PlayIcon}\n onClick={onClick}\n variant=\"fill\"\n >\n Execute\n </Button>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {type ReactNode, useMemo} from \"react\"\r\n\r\nimport {langs} from \"@uiw/codemirror-extensions-langs\"\r\nimport {githubDark, githubLight} from \"@uiw/codemirror-theme-github\"\r\nimport CodeMirror, {type ReactCodeMirrorProps} from \"@uiw/react-codemirror\"\r\nimport {DownloadIcon} from \"lucide-react\"\r\n\r\nimport type {QdsTheme} from \"@qualcomm-ui/qds-core/theme\"\r\nimport {IconButton} from \"@qualcomm-ui/react/button\"\r\nimport {Tooltip} from \"@qualcomm-ui/react/tooltip\"\r\nimport {CopyToClipboardIconButton} from \"@qualcomm-ui/react-mdx/copy-to-clipboard\"\r\n\r\nDocsCodeMirror.displayName = \"DocsCodeMirror\"\r\n\r\nexport interface DocsCodeMirrorProps extends ReactCodeMirrorProps {\r\n copyable?: boolean\r\n downloadable?: boolean\r\n handleDownload?: () => void\r\n language: string | undefined\r\n theme?: QdsTheme\r\n value: string\r\n}\r\n\r\nexport function DocsCodeMirror({\r\n basicSetup: basicSetupProp,\r\n copyable,\r\n downloadable,\r\n handleDownload,\r\n language = \"json\",\r\n theme = \"dark\",\r\n value,\r\n ...props\r\n}: DocsCodeMirrorProps): ReactNode {\r\n const basicSetup = typeof basicSetupProp === \"object\" ? basicSetupProp : {}\r\n\r\n const extensions = useMemo(() => {\r\n switch (language) {\r\n case \"bash\":\r\n return [langs.bash()]\r\n case \"html\":\r\n return [langs.html()]\r\n case \"xml\":\r\n return [langs.xml()]\r\n default:\r\n return [langs.json()]\r\n }\r\n }, [language])\r\n\r\n return (\r\n <div className=\"q-code-mirror\">\r\n <CodeMirror\r\n basicSetup={{\r\n ...basicSetup,\r\n highlightActiveLine: false,\r\n lineNumbers: false,\r\n lintKeymap: true,\r\n syntaxHighlighting: true,\r\n }}\r\n editable={false}\r\n extensions={extensions}\r\n maxHeight=\"700px\"\r\n minWidth=\"400px\"\r\n theme={[theme === \"dark\" ? githubDark : githubLight]}\r\n value={value}\r\n {...props}\r\n />\r\n\r\n {copyable || downloadable ? (\r\n <div className=\"actions-wrapper\">\r\n {!downloadable ? null : (\r\n <Tooltip\r\n trigger={\r\n <IconButton\r\n aria-label=\"Download\"\r\n density=\"compact\"\r\n emphasis=\"primary\"\r\n icon={DownloadIcon}\r\n onClick={handleDownload}\r\n variant=\"ghost\"\r\n />\r\n }\r\n >\r\n Download\r\n </Tooltip>\r\n )}\r\n {copyable ? (\r\n <CopyToClipboardIconButton valueOrFn={() => value} />\r\n ) : null}\r\n </div>\r\n ) : null}\r\n </div>\r\n )\r\n}\r\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {HTMLAttributes, ReactNode} from \"react\"\n\nimport {sanitizeUrl as braintreeSanitizeUrl} from \"@braintree/sanitize-url\"\nimport cssEscape from \"css.escape\"\nimport immutable from \"immutable\"\n\nexport function sanitizeUrl(url: unknown) {\n if (typeof url !== \"string\" || url === \"\") {\n return \"\"\n }\n\n return braintreeSanitizeUrl(url)\n}\n\nexport function jsFileDownload(\n data: any,\n filename: string,\n mime?: string,\n bom?: any,\n) {\n const blobData = typeof bom !== \"undefined\" ? [bom, data] : [data]\n const blob = new Blob(blobData, {type: mime || \"application/octet-stream\"})\n\n const blobURL =\n window.URL && window.URL.createObjectURL\n ? window.URL.createObjectURL(blob)\n : window.webkitURL.createObjectURL(blob)\n const tempLink = document.createElement(\"a\")\n tempLink.style.display = \"none\"\n tempLink.href = blobURL\n tempLink.setAttribute(\"download\", filename)\n\n // Safari thinks _blank anchor are pop ups. We only want to set _blank\n // target if the browser does not support the HTML5 download attribute.\n // This allows you to download files in desktop safari if pop up blocking\n // is enabled.\n if (typeof tempLink.download === \"undefined\") {\n tempLink.setAttribute(\"target\", \"_blank\")\n }\n\n document.body.appendChild(tempLink)\n tempLink.click()\n\n // Fixes \"webkit blob resource error 1\"\n setTimeout(function () {\n document.body.removeChild(tempLink)\n window.URL.revokeObjectURL(blobURL)\n }, 200)\n}\n\nexport function stringify(thing: any) {\n if (typeof thing === \"string\") {\n return thing\n }\n\n if (thing && thing.toJS) {\n thing = thing.toJS()\n }\n\n if (typeof thing === \"object\" && thing !== null) {\n try {\n return JSON.stringify(thing, null, 2)\n } catch (e) {\n return String(thing)\n }\n }\n\n if (thing === null || thing === undefined) {\n return \"\"\n }\n\n return thing.toString()\n}\n\n/**\n * The function used to render the application's clientside link component.\n */\nexport type RenderLink = (\n props: HTMLAttributes<HTMLAnchorElement> & {href: string},\n) => ReactNode\n\nexport function isFunc(thing: unknown): thing is Function {\n return typeof thing === \"function\"\n}\n\nexport function isAbsoluteUrl(url: string) {\n return url.match(/^(?:[a-z]+:)?\\/\\//i) // Matches http://, HTTP://, https://, ftp://, //example.com,\n}\n\nexport function addProtocol(url: string) {\n if (!url.match(/^\\/\\//i)) {\n return url\n } // Checks if protocol is missing e.g. //example.com\n\n return `${window.location.protocol}${url}`\n}\n\nexport function buildBaseUrl(selectedServer: any, specUrl: string) {\n if (!selectedServer) {\n return specUrl\n }\n if (isAbsoluteUrl(selectedServer)) {\n return addProtocol(selectedServer)\n }\n\n return new URL(selectedServer, specUrl).href\n}\n\nexport function buildUrl(\n url: string,\n specUrl: string,\n {selectedServer = \"\"} = {},\n) {\n if (!url) {\n return undefined\n }\n if (isAbsoluteUrl(url)) {\n return url\n }\n\n const baseUrl = buildBaseUrl(selectedServer, specUrl)\n if (!isAbsoluteUrl(baseUrl)) {\n return new URL(url, window.location.href).href\n }\n return new URL(url, baseUrl).href\n}\n\n/**\n * Safe version of buildUrl function. `selectedServer` can contain server variables\n * which can fail the URL resolution.\n */\nexport function safeBuildUrl(\n url: string,\n specUrl: string,\n {selectedServer = \"\"} = {},\n) {\n try {\n return buildUrl(url, specUrl, {selectedServer})\n } catch {\n return undefined\n }\n}\n\n// suitable for use in URL fragments\nexport const createDeepLinkPath = (str: string) =>\n typeof str === \"string\" ? str.trim().replace(/\\s/g, \"%20\") : \"\"\n\n// suitable for use in CSS classes and ids\nexport const escapeDeepLinkPath = (str: string) =>\n cssEscape(createDeepLinkPath(str).replace(/%20/g, \"_\"))\n\nexport function getList(iterable: any, keys: any) {\n if (!immutable.Iterable.isIterable(iterable)) {\n return immutable.List()\n }\n const val = iterable.getIn(Array.isArray(keys) ? keys : [keys])\n return immutable.List.isList(val) ? val : immutable.List()\n}\n\nexport const getExtensions = (defObj: any) =>\n defObj.filter((v: any, k: any) => /^x-/.test(k))\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {DocsCodeMirror} from \"../code-mirror\"\n\nimport type {GetComponent} from \"./types\"\nimport {useThemeContext} from \"./use-theme-context\"\nimport {jsFileDownload} from \"./utils\"\n\ninterface HighlightCodeProps {\n canCopy?: boolean\n children: string\n className?: string\n downloadable?: boolean\n fileName?: string\n fn: any\n getComponent: GetComponent\n language?: string\n}\n\nexport function HighlightCode({\n canCopy,\n children,\n downloadable,\n fileName = \"response.txt\",\n language,\n}: HighlightCodeProps) {\n const handleDownload = () => {\n jsFileDownload(children, fileName)\n }\n\n const copyable =\n canCopy || children?.startsWith(\"{\") || children?.startsWith(\"[\")\n\n const theme = useThemeContext()\n\n return (\n <div className=\"qui-code-mirror\" style={{maxWidth: 700}}>\n <DocsCodeMirror\n copyable={copyable}\n downloadable={downloadable}\n handleDownload={handleDownload}\n language={language}\n theme={theme}\n value={children}\n />\n </div>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {ChangeEvent, ReactNode} from \"react\"\n\nimport type {JsonSchemaProps} from \"./types\"\n\nJsonSchemaArrayItemFile.displayName = \"JsonSchemaArrayItemFile\"\n\nexport function JsonSchemaArrayItemFile(props: JsonSchemaProps): ReactNode {\n const onFileChange = (e: ChangeEvent<HTMLInputElement>) => {\n const value = e.target.files![0]\n props.onChange?.(value, props.keyName)\n }\n\n const {disabled, errors, getComponent} = props\n const Input = getComponent(\"Input\")\n const isDisabled = disabled || !(\"FormData\" in window)\n\n return (\n <Input\n className={errors.size ? \"invalid\" : \"\"}\n disabled={isDisabled}\n onChange={onFileChange}\n title={errors.size ? errors : \"\"}\n type=\"file\"\n />\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {ReactNode} from \"react\"\n\nimport {TextInput} from \"@qualcomm-ui/react/text-input\"\n\nimport type {JsonSchemaProps} from \"./types\"\n\nJsonSchemaArrayItemText.displayName = \"JsonSchemaArrayItemText\"\n\nexport function JsonSchemaArrayItemText(props: JsonSchemaProps): ReactNode {\n const {\n description,\n disabled,\n errors: errorsProp,\n keyName = \"\",\n onChange: onChangeProp = () => {},\n value: valueProp = \"\",\n } = props\n\n const onChange = (value: string) => {\n onChangeProp(value, keyName)\n }\n\n const errors = errorsProp.toJS ? errorsProp.toJS() : []\n\n const value = valueProp || \"\"\n\n return (\n <TextInput\n className=\"swagger-input\"\n disabled={disabled}\n errorText={errors.length ? errors[0] : \"\"}\n invalid={errors.length > 0}\n onValueChange={onChange}\n placeholder={description}\n size=\"sm\"\n value={value}\n />\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {useEffect, useMemo, useState} from \"react\"\n\nimport immutable from \"immutable\"\nimport {MinusIcon, PlusIcon} from \"lucide-react\"\n\nimport {selectCollection} from \"@qualcomm-ui/core/select\"\nimport {Button, IconButton} from \"@qualcomm-ui/react/button\"\nimport {Select} from \"@qualcomm-ui/react/select\"\n\nimport {JsonSchemaArrayItemFile} from \"./json-schema-array-item-file\"\nimport {JsonSchemaArrayItemText} from \"./json-schema-array-item-text\"\nimport type {JsonSchemaProps} from \"./types\"\n\nJsonSchemaArray.displayName = \"JsonSchemaArray\"\n\nfunction valueOrEmptyList(value: unknown) {\n return immutable.List.isList(value)\n ? value\n : Array.isArray(value)\n ? immutable.fromJS(value)\n : immutable.List()\n}\n\nexport function JsonSchemaArray(props: JsonSchemaProps) {\n const {\n disabled,\n errors: errorsProp,\n fn,\n getComponent,\n onChange: onChangeProp = () => {},\n required = false,\n schema: schemaProp = {},\n value: valueProp = \"\",\n } = props\n\n const [value, setValue] = useState(valueOrEmptyList(valueProp))\n const [schema, setSchema] = useState(schemaProp)\n\n useEffect(() => {\n setSchema(schemaProp)\n }, [schemaProp])\n\n useEffect(() => {\n if (value !== valueProp) {\n setValue(valueOrEmptyList(valueProp))\n }\n }, [value, valueProp])\n\n const onChange = (updatedValue: immutable.List<any>) => {\n onChangeProp?.(updatedValue)\n }\n\n const onItemChange = (itemVal: any, i: number) => {\n const updatedValue = value.set(i, itemVal)\n setValue(updatedValue)\n onChange(updatedValue)\n }\n\n const removeItem = (i: number) => {\n const updatedValue = value.delete(i)\n setValue(updatedValue)\n onChange(updatedValue)\n }\n\n const addItem = () => {\n const newValue = valueOrEmptyList(value).push(\n fn.getSampleSchema(schema.get(\"items\"), false, {\n includeWriteOnly: true,\n }),\n )\n setValue(newValue)\n onChange(newValue)\n }\n\n const onEnumChange = (value: any) => {\n setValue(value)\n onChange(value)\n }\n\n const errors: any = errorsProp.toJS\n ? errorsProp.toJS()\n : Array.isArray(errorsProp)\n ? errorsProp\n : []\n const arrayErrors = errors.filter((e: any) => typeof e === \"string\")\n const needsRemoveError = errors\n .filter((e: any) => e.needRemove !== undefined)\n .map((e: any) => e.error)\n const shouldRenderValue =\n value && value.count && value.count() > 0 ? true : false\n const schemaItemsEnum = schema.getIn([\"items\", \"enum\"])\n const schemaItemsType = schema.getIn([\"items\", \"type\"])\n const schemaItemsFormat = schema.getIn([\"items\", \"format\"])\n const schemaItemsSchema = schema.get(\"items\")\n let ArrayItemsComponent: any\n let isArrayItemText = false\n const isArrayItemFile =\n schemaItemsType === \"file\" ||\n (schemaItemsType === \"string\" && schemaItemsFormat === \"binary\")\n ? true\n : false\n if (schemaItemsType && schemaItemsFormat) {\n ArrayItemsComponent = getComponent(\n `JsonSchema_${schemaItemsType}_${schemaItemsFormat}`,\n )\n } else if (\n schemaItemsType === \"boolean\" ||\n schemaItemsType === \"array\" ||\n schemaItemsType === \"object\"\n ) {\n ArrayItemsComponent = getComponent(`JsonSchema_${schemaItemsType}`)\n }\n // if ArrayItemsComponent not assigned or does not exist,\n // use default schemaItemsType === \"string\" & JsonSchemaArrayItemText component\n if (!ArrayItemsComponent && !isArrayItemFile) {\n isArrayItemText = true\n }\n\n const enumCollection = useMemo(() => {\n if (!schemaItemsEnum) {\n return null\n }\n return selectCollection({items: schemaItemsEnum.toArray()})\n }, [schemaItemsEnum])\n\n if (schemaItemsEnum && enumCollection) {\n const selectValue =\n value instanceof immutable.List\n ? (value as immutable.List<any>).toArray()\n : Array.from(value)\n return (\n <Select\n className=\"swagger-input\"\n clearable={!required}\n collection={enumCollection}\n disabled={disabled}\n invalid={errors.length > 0}\n multiple\n onValueChange={(value) => onEnumChange(value)}\n size=\"sm\"\n value={selectValue}\n />\n )\n }\n\n return (\n <div className=\"json-schema-array\">\n {shouldRenderValue\n ? value.map((item: any, i: number) => {\n const itemErrors = immutable.fromJS([\n ...errors\n .filter((err: any) => err.index === i)\n .map((e: any) => e.error),\n ])\n return (\n <div key={i} className=\"json-schema-form-item\">\n {isArrayItemFile ? (\n <JsonSchemaArrayItemFile\n {...props}\n disabled={disabled}\n errors={itemErrors}\n onChange={(val: any) => onItemChange(val, i)}\n value={item}\n />\n ) : isArrayItemText ? (\n <JsonSchemaArrayItemText\n {...props}\n disabled={disabled}\n errors={itemErrors}\n onChange={(val: any) => onItemChange(val, i)}\n value={item}\n />\n ) : (\n <ArrayItemsComponent\n {...props}\n disabled={disabled}\n errors={itemErrors}\n fn={fn}\n getComponent={getComponent}\n onChange={(val: any) => onItemChange(val, i)}\n schema={schemaItemsSchema}\n value={item}\n />\n )}\n {!disabled ? (\n <IconButton\n aria-label={\n needsRemoveError?.length\n ? needsRemoveError[0]\n : \"Remove Option\"\n }\n icon={MinusIcon}\n onClick={() => removeItem(i)}\n size=\"sm\"\n variant=\"outline\"\n />\n ) : null}\n </div>\n )\n })\n : null}\n {!disabled ? (\n <Button\n aria-label={arrayErrors.length ? arrayErrors[0] : \"\"}\n className=\"qui-json-schema-array-add-btn\"\n emphasis={arrayErrors.length ? \"danger\" : \"neutral\"}\n endIcon={PlusIcon}\n onClick={addItem}\n variant=\"fill\"\n >\n Add {schemaItemsType ? `${schemaItemsType} ` : \"\"}item\n </Button>\n ) : null}\n </div>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {ReactNode} from \"react\"\n\nimport {DocsCodeMirror} from \"../code-mirror\"\n\nimport type {JsonSchemaProps} from \"./types\"\nimport {useThemeContext} from \"./use-theme-context\"\nimport {stringify} from \"./utils\"\n\nJsonSchemaObject.displayName = \"JsonSchemaObject\"\n\nexport function JsonSchemaObject(props: JsonSchemaProps): ReactNode {\n const onChange = (value: any) => {\n props.onChange?.(value)\n }\n\n const handleOnChange = (value: string) => {\n onChange(value)\n }\n\n const {disabled, value} = props\n\n const theme = useThemeContext()\n\n return (\n <div>\n <DocsCodeMirror\n basicSetup={{\n foldGutter: false,\n lineNumbers: false,\n lintKeymap: true,\n }}\n editable={!disabled}\n language=\"json\"\n onChange={handleOnChange}\n theme={theme}\n value={stringify(value)}\n />\n </div>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {type ChangeEvent, type ReactNode, useMemo} from \"react\"\n\nimport {selectCollection} from \"@qualcomm-ui/core/select\"\nimport {Select} from \"@qualcomm-ui/react/select\"\nimport {TextInput} from \"@qualcomm-ui/react/text-input\"\n\nimport type {JsonSchemaProps} from \"./types\"\n\nJsonSchemaString.displayName = \"JsonSchemaString\"\n\nexport function JsonSchemaString({\n description,\n disabled,\n errors: errorsProp,\n keyName,\n onChange: onChangeProp,\n required,\n schema,\n value: valueProp,\n}: JsonSchemaProps): ReactNode {\n const onFileChange = (e: ChangeEvent<HTMLInputElement>) => {\n const value = e.target.files?.[0]\n onChangeProp?.(value, keyName)\n }\n\n const enumValue = schema && schema.get ? schema.get(\"enum\") : null\n const format = schema && schema.get ? schema.get(\"format\") : null\n const type = schema && schema.get ? schema.get(\"type\") : null\n const schemaIn = schema && schema.get ? schema.get(\"in\") : null\n const value = valueProp ? valueProp : \"\"\n const errors = errorsProp.toJS ? errorsProp.toJS() : []\n\n const enumCollection = useMemo(() => {\n if (!enumValue) {\n return null\n }\n return selectCollection({items: [...enumValue]})\n }, [enumValue])\n\n if (enumValue && enumCollection) {\n return (\n <Select\n clearable={!required}\n collection={enumCollection}\n disabled={disabled}\n invalid={errors.length > 0}\n onValueChange={(value) => onChangeProp?.(value[0])}\n size=\"sm\"\n value={value ? [value] : []}\n />\n )\n }\n\n const isDisabled =\n disabled ||\n !!(schemaIn && schemaIn === \"formData\" && !(\"FormData\" in window))\n\n if (type && type === \"file\") {\n return (\n <input\n disabled={isDisabled}\n onChange={(event) => onFileChange(event)}\n type=\"file\"\n />\n )\n }\n\n return (\n <TextInput\n className=\"swagger-input\"\n disabled={isDisabled}\n errorText={errors.length ? errors[0] : \"\"}\n inputProps={{type: format && format === \"password\" ? \"password\" : \"text\"}}\n invalid={errors.length > 0}\n onValueChange={(val) => onChangeProp?.(val, keyName)}\n placeholder={description}\n size=\"sm\"\n value={value}\n />\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {ReactNode} from \"react\"\n\nimport {clsx} from \"@qualcomm-ui/utils/clsx\"\n\nimport type {GetComponent} from \"./types\"\nimport {useSwaggerContext} from \"./use-swagger-context\"\n\nLayout.displayName = \"Layout\"\n\nexport interface LayoutProps {\n errActions: any\n errSelectors: any\n getComponent: GetComponent\n oas3Actions: any\n oas3Selectors: any\n specSelectors: any\n}\n\nexport function Layout({\n errSelectors,\n getComponent,\n specSelectors,\n}: LayoutProps): ReactNode {\n const SvgAssets = getComponent(\"SvgAssets\")\n const InfoContainer = getComponent(\"InfoContainer\", true)\n const VersionPragmaFilter = getComponent(\"VersionPragmaFilter\")\n const Operations = getComponent(\"operations\", true)\n const Models = getComponent(\"Models\", true)\n const Webhooks = getComponent(\"Webhooks\", true)\n const Row = getComponent(\"Row\")\n const Col = getComponent(\"Col\")\n const Errors = getComponent(\"errors\", true)\n\n const ServersContainer = getComponent(\"ServersContainer\", true)\n const SchemesContainer = getComponent(\"SchemesContainer\", true)\n const AuthorizeBtnContainer = getComponent(\"AuthorizeBtnContainer\", true)\n const FilterContainer = getComponent(\"FilterContainer\", true)\n const isSwagger2 = specSelectors.isSwagger2()\n const isOAS3 = specSelectors.isOAS3()\n const isOAS31 = specSelectors.isOAS31()\n\n const isSpecEmpty = !specSelectors.specStr()\n\n const loadingStatus = specSelectors.loadingStatus()\n\n const {hideTitleSection} = useSwaggerContext()\n\n let loadingMessage = null\n\n if (loadingStatus === \"loading\") {\n loadingMessage = (\n <div className=\"info\">\n <div className=\"loading-container\">\n <div className=\"loading\"></div>\n </div>\n </div>\n )\n }\n\n if (loadingStatus === \"failed\") {\n loadingMessage = (\n <div className=\"info\">\n <div className=\"loading-container\">\n <h4 className=\"title\">Failed to load API definition.</h4>\n <Errors />\n </div>\n </div>\n )\n }\n\n if (loadingStatus === \"failedConfig\") {\n const lastErr = errSelectors.lastError()\n const lastErrMsg = lastErr ? lastErr.get(\"message\") : \"\"\n loadingMessage = (\n <div className=\"info failed-config\">\n <div className=\"loading-container\">\n <h4 className=\"title\">Failed to load remote configuration.</h4>\n <p>{lastErrMsg}</p>\n </div>\n </div>\n )\n }\n\n if (!loadingMessage && isSpecEmpty) {\n loadingMessage = <h4>No API definition provided.</h4>\n }\n\n if (loadingMessage) {\n return (\n <div className=\"swagger-ui\">\n <div className=\"loading-container\">{loadingMessage}</div>\n </div>\n )\n }\n\n const servers = specSelectors.servers()\n const schemes = specSelectors.schemes()\n\n const hasServers = servers && servers.size\n const hasSchemes = schemes && schemes.size\n const hasSecurityDefinitions = !!specSelectors.securityDefinitions()\n\n return (\n <div className=\"swagger-ui\">\n <SvgAssets />\n <VersionPragmaFilter\n alsoShow={<Errors />}\n isOAS3={isOAS3}\n isSwagger2={isSwagger2}\n >\n <Errors />\n\n {hideTitleSection ? null : (\n <Row className=\"information-container\">\n <Col mobile={12}>\n <InfoContainer />\n </Col>\n </Row>\n )}\n\n {hasServers || hasSchemes || hasSecurityDefinitions ? (\n <div\n className={clsx(\n \"scheme-container\",\n hideTitleSection ? \"title-hidden\" : \"\",\n )}\n >\n <div className=\"schemes-wrapper\">\n {hasServers || hasSchemes ? (\n <div className=\"schemes-server-container\">\n {hasServers ? <ServersContainer /> : null}\n {hasSchemes ? <SchemesContainer /> : null}\n </div>\n ) : null}\n {hasSecurityDefinitions ? <AuthorizeBtnContainer /> : null}\n </div>\n </div>\n ) : null}\n\n <FilterContainer />\n\n <Row>\n <Col desktop={12} mobile={12}>\n <Operations />\n </Col>\n </Row>\n\n {isOAS31 && (\n <Row className=\"webhooks-container\">\n <Col desktop={12} mobile={12}>\n <Webhooks />\n </Col>\n </Row>\n )}\n\n <Row>\n <Col desktop={12} mobile={12}>\n <Models />\n </Col>\n </Row>\n </VersionPragmaFilter>\n </div>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {createContext, useContext} from \"react\"\n\nimport type {QuiSwaggerContext} from \"./types\"\n\nconst SwaggerContext = createContext<QuiSwaggerContext | null>(null)\n\nexport const SwaggerContextProvider = SwaggerContext.Provider\n\nexport function useSwaggerContext(): QuiSwaggerContext {\n const context = useContext(SwaggerContext)\n\n if (!context) {\n throw new Error(\"QUI Swagger must be wrapped by a <SwaggerContextProvider>\")\n }\n\n return context\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {type ReactNode, useCallback, useEffect, useRef, useState} from \"react\"\n\nimport {ChevronUpIcon} from \"lucide-react\"\n\nimport {Button} from \"@qualcomm-ui/react/button\"\nimport {Icon} from \"@qualcomm-ui/react/icon\"\n\nModelCollapse.displayName = \"ModelCollapse\"\n\nexport interface ModelCollapseProps {\n activeInHash?: boolean\n children: any\n classes: string\n collapsedContent: any\n expanded: boolean\n hideSelfOnExpand: boolean\n layoutActions: Record<string, any>\n layoutSelectors: Record<string, any>\n modelId?: string\n modelName: string\n onToggle?: (modelName: string, expanded: boolean) => void\n specPath: any\n title: ReactNode\n}\n\nexport function ModelCollapse({\n children,\n classes,\n collapsedContent = \"{...}\",\n expanded: expandedProp = true,\n hideSelfOnExpand = false,\n modelId,\n modelName,\n onToggle,\n title,\n}: ModelCollapseProps): ReactNode {\n const [expanded, setExpanded] = useState(expandedProp)\n\n const mounted = useRef(false)\n\n useEffect(() => {\n setExpanded(expandedProp)\n }, [expandedProp])\n\n const toggleCollapsed = useCallback(() => {\n onToggle?.(modelName, !expanded)\n setExpanded((prevState) => !prevState)\n }, [expanded, modelName, onToggle])\n\n useEffect(() => {\n if (\n !mounted.current &&\n window.location.hash &&\n modelId &&\n window.location.hash === `#${modelId}`\n ) {\n const anchor = document.getElementById(modelId)\n if (anchor) {\n anchor.scrollIntoView()\n }\n }\n // Only scroll after first mounting the component.\n // We do this because the swagger component is mounted after the page loads.\n mounted.current = true\n }, [modelId, modelName, onToggle, expanded])\n\n if (expanded && hideSelfOnExpand) {\n return <span className={classes || \"\"}>{children}</span>\n }\n\n return (\n <span>\n <Button\n aria-expanded={expanded}\n endIcon={<Icon className=\"collapse-icon\" icon={ChevronUpIcon} />}\n id={modelId}\n onClick={toggleCollapsed}\n variant=\"ghost\"\n >\n {title && <span>{title}</span>}\n </Button>\n\n {!expanded && <span>{collapsedContent}</span>}\n\n {expanded && children}\n </span>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {useCallback, useEffect, useMemo, useRef, useState} from \"react\"\n\nimport randomBytes from \"randombytes\"\n\nimport {Tab, Tabs} from \"@qualcomm-ui/react/tabs\"\n\nimport type {GetComponent, Schema} from \"./types\"\n\nconst usePrevious = (value: any) => {\n const ref = useRef(undefined)\n useEffect(() => {\n ref.current = value\n })\n return ref.current\n}\n\nconst useTabs = ({\n example,\n initialTab,\n isExecute,\n schema,\n}: {\n example: string\n initialTab: string\n isExecute: boolean\n schema: Schema\n}) => {\n const tabs = useMemo(() => ({example: \"example\", model: \"model\"}), [])\n const allowedTabs = useMemo(() => Object.keys(tabs), [tabs])\n const tab =\n !allowedTabs.includes(initialTab) || !schema || isExecute\n ? tabs.example\n : initialTab\n const prevIsExecute = usePrevious(isExecute)\n const [activeTab, setActiveTab] = useState(tab)\n const handleTabChange = useCallback((e: string) => {\n setActiveTab(e)\n }, [])\n\n useEffect(() => {\n if (prevIsExecute && !isExecute && example) {\n setActiveTab(tabs.example)\n }\n }, [prevIsExecute, isExecute, example, tabs.example])\n\n return {activeTab, onTabChange: handleTabChange, tabs}\n}\n\ninterface Props {\n example: any\n getComponent: GetComponent\n getConfigs: () => any\n includeReadOnly?: boolean\n includeWriteOnly?: boolean\n isExecute?: boolean\n schema: any\n specPath: any[]\n specSelectors: {\n isOAS3: () => boolean\n }\n}\n\nexport function ModelExample({\n example,\n getComponent,\n getConfigs,\n includeReadOnly = false,\n includeWriteOnly = false,\n isExecute = false,\n schema,\n specPath,\n specSelectors,\n}: Props) {\n const {defaultModelExpandDepth, defaultModelRendering} = getConfigs()\n const ModelWrapper = getComponent(\"ModelWrapper\")\n const HighlightCode = getComponent(\"HighlightCode\", true)\n const exampleTabId = randomBytes(5).toString(\"base64\")\n const examplePanelId = randomBytes(5).toString(\"base64\")\n const modelTabId = randomBytes(5).toString(\"base64\")\n const modelPanelId = randomBytes(5).toString(\"base64\")\n const isOAS3 = specSelectors.isOAS3()\n const {activeTab, onTabChange, tabs} = useTabs({\n example,\n initialTab: defaultModelRendering,\n isExecute,\n schema,\n })\n\n return (\n <div className=\"model-example\">\n <Tabs.Root onValueChange={onTabChange} value={activeTab}>\n <Tabs.List>\n <Tabs.Indicator />\n <Tab.Root value=\"example\">\n <Tab.Button>{isExecute ? \"Edit Value\" : \"Example\"}</Tab.Button>\n </Tab.Root>\n {schema ? (\n <Tab.Root value=\"model\">\n <Tab.Button>{isOAS3 ? \"Schema\" : \"Model\"}</Tab.Button>\n </Tab.Root>\n ) : null}\n </Tabs.List>\n <Tabs.Panel value=\"example\">\n <div\n aria-hidden={activeTab !== tabs.example}\n aria-labelledby={exampleTabId}\n data-name=\"examplePanel\"\n id={examplePanelId}\n tabIndex={0}\n >\n {example ? (\n example\n ) : (\n <HighlightCode>(no example available</HighlightCode>\n )}\n </div>\n </Tabs.Panel>\n {schema ? (\n <Tabs.Panel value=\"model\">\n <div\n aria-hidden={activeTab === tabs.example}\n aria-labelledby={modelTabId}\n data-name=\"modelPanel\"\n id={modelPanelId}\n tabIndex={0}\n >\n <ModelWrapper\n expandDepth={defaultModelExpandDepth}\n getComponent={getComponent}\n getConfigs={getConfigs}\n includeReadOnly={includeReadOnly}\n includeWriteOnly={includeWriteOnly}\n schema={schema}\n specPath={specPath}\n specSelectors={specSelectors}\n />\n </div>\n </Tabs.Panel>\n ) : null}\n </Tabs.Root>\n </div>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {ReactNode} from \"react\"\n\nimport type {GetComponent} from \"./types\"\n\ninterface Props {\n displayName?: string\n expandDepth?: number\n fullPath: any[]\n getComponent: GetComponent\n getConfigs: () => any\n includeReadOnly?: boolean\n includeWriteOnly?: boolean\n layoutActions?: any\n layoutSelectors: any\n name?: string\n schema: any\n specPath: any\n specSelectors: any\n}\n\nexport function ModelWrapper(props: Props): ReactNode {\n const {\n expandDepth,\n fullPath,\n getComponent,\n getConfigs,\n layoutActions,\n layoutSelectors,\n } = props\n\n const onToggle = (name: string, isShown: boolean) => {\n // If this prop is present, we'll have deepLinking for it\n if (layoutActions) {\n layoutActions.show(fullPath, isShown)\n }\n }\n\n const Model = getComponent(\"Model\")\n\n let expanded\n if (layoutSelectors) {\n // If this is prop is present, we'll have deepLinking for it\n expanded = layoutSelectors.isShown(fullPath)\n }\n\n return (\n <div className=\"model-box\">\n <Model\n {...props}\n depth={1}\n expandDepth={expandDepth || 0}\n expanded={expanded}\n getConfigs={getConfigs}\n onToggle={onToggle}\n />\n </div>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {ReactNode} from \"react\"\n\nimport Im from \"immutable\"\nimport {ChevronUpIcon} from \"lucide-react\"\n\nimport {Collapsible} from \"@qualcomm-ui/react/collapsible\"\nimport {Icon} from \"@qualcomm-ui/react/icon\"\nimport {clsx} from \"@qualcomm-ui/utils/clsx\"\n\nimport type {GetComponent} from \"./types\"\nimport {useJumpToHash} from \"./use-jump-to-hash\"\nimport {useSwaggerContext} from \"./use-swagger-context\"\n\nModels.displayName = \"Models\"\n\nexport interface ModelsProps {\n fn: any\n getComponent: GetComponent\n getConfigs: () => any\n layoutActions?: any\n layoutSelectors?: any\n specActions: any\n specSelectors?: any\n}\n\nexport function Models(props: ModelsProps): ReactNode {\n const getSchemaBasePath = () => {\n const isOAS3 = props.specSelectors.isOAS3()\n return isOAS3 ? [\"components\", \"schemas\"] : [\"definitions\"]\n }\n\n const handleToggle = (name: string, isExpanded: boolean) => {\n const {layoutActions} = props\n layoutActions.show([...getSchemaBasePath(), name], isExpanded)\n if (isExpanded) {\n props.specActions.requestResolvedSubtree([...getSchemaBasePath(), name])\n }\n }\n\n const onLoadModels = (ref: any) => {\n if (ref) {\n props.layoutActions.readyToScroll(getSchemaBasePath(), ref)\n }\n }\n\n const onLoadModel = (ref: any) => {\n if (ref) {\n const name = ref.getAttribute(\"data-name\")\n props.layoutActions.readyToScroll([...getSchemaBasePath(), name], ref)\n }\n }\n\n const {\n getComponent,\n getConfigs,\n layoutActions,\n layoutSelectors,\n specSelectors,\n } = props\n const definitions = specSelectors.definitions()\n const {defaultModelsExpandDepth, docExpansion} = getConfigs()\n\n const {hash} = useSwaggerContext()\n const nameFromHash = hash.substring(hash.indexOf(\"model-\") + 6)\n\n useJumpToHash(props.fn?.getHash, \"models\")\n\n if (!definitions.size || defaultModelsExpandDepth < 0) {\n return null\n }\n\n const specPathBase = getSchemaBasePath()\n const showModels = layoutSelectors.isShown(\n specPathBase,\n defaultModelsExpandDepth > 0 && docExpansion !== \"none\",\n )\n const isOAS3 = specSelectors.isOAS3()\n\n const ModelWrapper = getComponent(\"ModelWrapper\")\n const ModelCollapse = getComponent(\"ModelCollapse\")\n\n return (\n <section\n ref={onLoadModels}\n className={showModels ? \"models is-open\" : \"models\"}\n >\n <button\n aria-expanded={showModels}\n className=\"model-collapse-title\"\n id=\"models\"\n onClick={() => layoutActions.show(specPathBase, !showModels)}\n >\n {isOAS3 ? \"Schemas\" : \"Models\"}\n <Icon\n aria-label=\"Model visibility icon\"\n className={clsx(\"collapse-icon\", {\"is-open\": showModels})}\n icon={ChevronUpIcon}\n size=\"md\"\n />\n </button>\n\n <Collapsible.Root open={showModels}>\n <Collapsible.Content>\n {definitions\n .entrySeq()\n .map(([name]: any) => {\n const fullPath = [...specPathBase, name]\n const specPath = Im.List(fullPath)\n\n const schemaValue = specSelectors.specResolvedSubtree(fullPath)\n const rawSchemaValue = specSelectors.specJson().getIn(fullPath)\n\n const schema = Im.Map.isMap(schemaValue) ? schemaValue : Im.Map()\n const rawSchema = Im.Map.isMap(rawSchemaValue)\n ? rawSchemaValue\n : Im.Map()\n\n const displayName =\n schema.get(\"title\") || rawSchema.get(\"title\") || name\n const isShown = layoutSelectors.isShown(fullPath, false)\n\n if (isShown && schema.size === 0 && rawSchema.size > 0) {\n // Firing an action in a container render is not great,\n // but it works for now.\n props.specActions.requestResolvedSubtree(fullPath)\n }\n\n const activeInHash = nameFromHash && nameFromHash === name\n\n const content = (\n <ModelWrapper\n activeInHash={activeInHash}\n displayName={displayName}\n expandDepth={defaultModelsExpandDepth}\n fullPath={fullPath}\n getComponent={getComponent}\n getConfigs={getConfigs}\n includeReadOnly\n includeWriteOnly\n layoutActions={layoutActions}\n layoutSelectors={layoutSelectors}\n name={name}\n schema={schema || Im.Map()}\n specPath={specPath}\n specSelectors={specSelectors}\n />\n )\n\n const title = (\n <span className=\"model-box\">\n <span className=\"model model-title\">{displayName}</span>\n </span>\n )\n\n const modelId = `model-${name}`\n\n return (\n <div\n key={`models-section-${name}`}\n ref={onLoadModel}\n className=\"model-container\"\n data-name={name}\n >\n <span className=\"model-box-anchor\" id={modelId}></span>\n <ModelCollapse\n activeInHash={activeInHash}\n classes=\"model-box\"\n collapsedContent=\"\"\n displayName={displayName}\n expanded={defaultModelsExpandDepth > 0 && isShown}\n getHash={props.fn.getHash}\n hideSelfOnExpand\n layoutActions={layoutActions}\n layoutSelectors={layoutSelectors}\n modelId={modelId}\n modelName={name}\n onToggle={handleToggle}\n specPath={specPath}\n title={title}\n >\n {content}\n </ModelCollapse>\n </div>\n )\n })\n .toArray()}\n </Collapsible.Content>\n </Collapsible.Root>\n </section>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {useEffect, useRef} from \"react\"\n\nexport function useJumpToHash(\n getHash: (() => string) | undefined,\n elementId: string | undefined,\n /**\n * Callback fired only after the first time the function is fired.\n */\n initialMountCallback?: () => void,\n) {\n const hash = getHash?.()\n\n const mountedRef = useRef(false)\n\n useEffect(() => {\n if (!mountedRef.current && hash && elementId && hash === `#${elementId}`) {\n const element = document.getElementById(elementId)\n if (element) {\n element.scrollIntoView()\n // on first mount when navigating to an operation, expand the panel\n if (!mountedRef.current) {\n initialMountCallback?.()\n }\n }\n }\n mountedRef.current = true\n }, [elementId, hash, initialMountCallback])\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {type ReactNode, useEffect, useRef} from \"react\"\n\nimport {ChevronUpIcon} from \"lucide-react\"\n\nimport {Button} from \"@qualcomm-ui/react/button\"\n\nimport {JsonModelViewer} from \"./json-model-viewer\"\nimport type {GetComponent, Schema} from \"./types\"\nimport {useThemeContext} from \"./use-theme-context\"\n\nObjectModel.displayName = \"ObjectModelOriginal\"\n\nexport interface ObjectModelProps {\n activeInHash?: boolean\n depth?: number\n displayName?: string\n expandDepth?: number\n expanded?: boolean\n fn: any\n getComponent: GetComponent\n getConfigs: () => any\n includeReadOnly?: boolean\n includeWriteOnly?: boolean\n isRef?: boolean\n language?: string\n name?: string\n onToggle?: (name: string, expanded: boolean) => void\n schema: Schema\n specPath: Array<any>\n specSelectors: any\n}\n\nexport function ObjectModel(props: ObjectModelProps): ReactNode {\n const {displayName, isRef, schema} = props\n\n const theme = useThemeContext()\n\n const mounted = useRef(false)\n\n useEffect(() => {\n if (!props.expanded && !mounted.current) {\n props.onToggle?.(props.name!, !props.expanded)\n }\n mounted.current = true\n }, [props])\n\n if (!schema) {\n return null\n }\n\n schema.mapEntries((entry: any) => {\n return entry\n })\n\n const json = schema.toJS()\n const title = (schema.get(\"title\") as string) || displayName || name\n\n const titleEl = title ? (\n <Button\n className=\"object-model-expand-button\"\n endIcon={ChevronUpIcon}\n onClick={() => props.onToggle?.(props.name!, !props.expanded)}\n variant=\"ghost\"\n >\n {isRef && schema.get(\"$$ref\") && (\n <span className=\"model-hint\">{schema.get(\"$$ref\") as string}</span>\n )}\n <span className=\"model-title__text\">{title}</span>\n </Button>\n ) : null\n\n const renderLink = props.getComponent(\"RenderLink\")\n\n return (\n <div className=\"object-model\">\n {titleEl}\n <JsonModelViewer\n displayDataTypes={false}\n displaySize={false}\n groupArraysAfterLength={100}\n highlightUpdates\n indentWidth={2}\n renderLink={renderLink}\n rootName={false}\n theme={theme}\n value={json}\n />\n </div>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {ReactNode} from \"react\"\n\nimport {Button, type ButtonProps} from \"@qualcomm-ui/react/button\"\nimport {clsx} from \"@qualcomm-ui/utils/clsx\"\n\nOperationSummaryMethod.displayName = \"OperationSummaryMethod\"\n\nexport interface OperationSummaryMethodProps {\n method: string\n}\n\nconst propsMap: Record<string, Partial<ButtonProps>> = {\n delete: {\n emphasis: \"danger\",\n },\n get: {\n className: \"q-method-get\",\n emphasis: \"primary\",\n },\n head: {\n className: \"q-purple\",\n emphasis: \"primary\",\n },\n options: {\n className: \"q-kiwi\",\n emphasis: \"primary\",\n },\n patch: {\n className: \"q-orange\",\n emphasis: \"neutral\",\n },\n post: {\n emphasis: \"primary\",\n },\n put: {\n className: \"q-method-put\",\n emphasis: \"neutral\",\n },\n trace: {\n className: \"q-teal\",\n emphasis: \"primary\",\n },\n}\n\nexport function OperationSummaryMethod({\n method,\n}: OperationSummaryMethodProps): ReactNode {\n const buttonProps = propsMap[method]\n\n return (\n <Button\n {...buttonProps}\n className={clsx(buttonProps?.className, \"qui-method-button\", method)}\n render={<div />}\n size=\"sm\"\n tabIndex={-1}\n variant=\"fill\"\n >\n {method.toUpperCase()}\n </Button>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Fragment, type ReactNode} from \"react\"\n\nOperationSummaryPath.displayName = \"OperationSummaryPath\"\n\nexport interface OperationSummaryPathProps {\n operationProps: any\n}\n\nexport function OperationSummaryPath({\n operationProps,\n}: OperationSummaryPathProps): ReactNode {\n const {deprecated, path} = operationProps.toJS()\n\n /**\n * Add <wbr> word-break elements between each segment, before the slash\n * to allow browsers an opportunity to break long paths into sensible segments.\n */\n const pathParts: ReactNode[] = path.split(/(?=\\/)/g)\n for (let i = 1; i < pathParts.length; i += 2) {\n pathParts.splice(i, 0, <wbr key={i} />)\n }\n\n return (\n <span\n className={\n deprecated ? \"opblock-summary-path__deprecated\" : \"opblock-summary-path\"\n }\n data-path={path}\n >\n {pathParts.map((part, i: number) => (\n <Fragment key={i}>{part}</Fragment>\n ))}\n </span>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {MouseEvent, ReactNode} from \"react\"\n\nimport type {List} from \"immutable\"\nimport {toString} from \"lodash-es\"\nimport {ChevronUpIcon, Link2} from \"lucide-react\"\n\nimport {IconButton} from \"@qualcomm-ui/react/button\"\nimport {Icon} from \"@qualcomm-ui/react/icon\"\nimport {clsx} from \"@qualcomm-ui/utils/clsx\"\n\nimport type {GetComponent} from \"./types\"\nimport {useJumpToHash} from \"./use-jump-to-hash\"\nimport type {RenderLink} from \"./utils\"\n\nOperationSummary.displayName = \"OperationSummary\"\n\nexport interface OperationSummaryProps {\n authActions?: any\n authSelectors?: any\n fn: any\n getComponent: GetComponent\n getConfigs: () => any\n isShown: boolean\n operationProps: any\n specPath: List<any>\n toggleShown: () => void\n}\n\nexport function OperationSummary({\n authActions,\n authSelectors,\n fn,\n getComponent,\n isShown,\n operationProps,\n specPath,\n toggleShown,\n}: OperationSummaryProps): ReactNode {\n const {\n displayOperationId,\n isAuthorized,\n method,\n op,\n operationId,\n originalOperationId,\n showSummary,\n summary,\n } = operationProps.toJS()\n\n const {summary: resolvedSummary} = op\n\n const security = operationProps.get(\"security\")\n\n const AuthorizeOperationBtn = getComponent(\"authorizeOperationBtn\", true)\n const OperationSummaryMethod = getComponent(\"OperationSummaryMethod\")\n const OperationSummaryPath = getComponent(\"OperationSummaryPath\")\n\n const hasSecurity = security && !!security.count()\n const securityIsOptional =\n hasSecurity && security.size === 1 && security.first().isEmpty()\n const allowAnonymous = !hasSecurity || securityIsOptional\n\n const id = `${operationId}-1`\n\n const Link: RenderLink = getComponent(\"RenderLink\")\n\n useJumpToHash(fn.getHash, id, () => {\n toggleShown()\n })\n\n return (\n <div className=\"opblock-summary\">\n <div className=\"opblock-summary-id\" id={id}></div>\n <button\n aria-expanded={isShown}\n className=\"opblock-summary-control\"\n onClick={toggleShown}\n >\n <IconButton\n icon={Link2}\n onClick={(event: MouseEvent) => {\n if (!isShown) {\n toggleShown()\n }\n event.stopPropagation()\n }}\n render={<Link href={`#${id}`} />}\n size=\"sm\"\n style={{marginRight: 8}}\n variant=\"outline\"\n />\n <OperationSummaryMethod method={method} />\n <div className=\"opblock-summary-path-description-wrapper\">\n <OperationSummaryPath\n getComponent={getComponent}\n operationProps={operationProps}\n specPath={specPath}\n />\n\n {!showSummary ? null : (\n <div className=\"opblock-summary-description\">\n {toString(resolvedSummary || summary)}\n </div>\n )}\n </div>\n\n {displayOperationId && (originalOperationId || operationId) ? (\n <span className=\"opblock-summary-operation-id\">\n {originalOperationId || operationId}\n </span>\n ) : null}\n <Icon\n className={clsx(\"collapse-icon\", {\"is-open\": isShown})}\n icon={ChevronUpIcon}\n size=\"sm\"\n />\n </button>\n {allowAnonymous ? null : (\n <AuthorizeOperationBtn\n isAuthorized={isAuthorized}\n onClick={() => {\n const applicableDefinitions =\n authSelectors.definitionsForRequirements(security)\n authActions.showDefinitions(applicableDefinitions)\n }}\n />\n )}\n </div>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {ReactNode} from \"react\"\n\nimport {ChevronUpIcon, ExternalLinkIcon} from \"lucide-react\"\n\nimport {Collapsible} from \"@qualcomm-ui/react/collapsible\"\nimport {Icon} from \"@qualcomm-ui/react/icon\"\nimport {Link} from \"@qualcomm-ui/react/link\"\nimport {clsx} from \"@qualcomm-ui/utils/clsx\"\n\nimport type {GetComponent} from \"./types\"\nimport {\n createDeepLinkPath,\n escapeDeepLinkPath,\n isFunc,\n safeBuildUrl,\n sanitizeUrl,\n} from \"./utils\"\n\ninterface Props {\n children?: ReactNode\n getComponent: GetComponent\n getConfigs: () => any\n layoutActions: any\n layoutSelectors: any\n oas3Selectors: any\n specUrl: string\n tag: string\n tagObj: any\n}\n\nexport function OperationTag(props: Props) {\n const {\n children,\n getComponent,\n getConfigs,\n layoutActions,\n layoutSelectors,\n oas3Selectors,\n specUrl,\n tag,\n tagObj,\n } = props\n\n const {deepLinking, docExpansion} = getConfigs()\n\n const Markdown = getComponent(\"Markdown\", true)\n const DeepLink = getComponent(\"DeepLink\")\n\n const tagDescription = tagObj.getIn([\"tagDetails\", \"description\"], null)\n const tagExternalDocsDescription = tagObj.getIn([\n \"tagDetails\",\n \"externalDocs\",\n \"description\",\n ])\n const rawTagExternalDocsUrl = tagObj.getIn([\n \"tagDetails\",\n \"externalDocs\",\n \"url\",\n ])\n let tagExternalDocsUrl\n if (isFunc(oas3Selectors) && isFunc(oas3Selectors.selectedServer)) {\n tagExternalDocsUrl = safeBuildUrl(rawTagExternalDocsUrl, specUrl, {\n selectedServer: oas3Selectors.selectedServer(),\n })\n } else {\n tagExternalDocsUrl = rawTagExternalDocsUrl\n }\n\n const isShownKey = [\"operations-tag\", tag]\n const showTag = layoutSelectors.isShown(\n isShownKey,\n docExpansion === \"full\" || docExpansion === \"list\",\n )\n\n return (\n <div\n className={\n showTag ? \"opblock-tag-section is-open\" : \"opblock-tag-section\"\n }\n >\n <h3\n className={!tagDescription ? \"opblock-tag no-desc\" : \"opblock-tag\"}\n data-is-open={showTag}\n data-tag={tag}\n id={isShownKey.map((v) => escapeDeepLinkPath(v)).join(\"-\")}\n onClick={() => layoutActions.show(isShownKey, !showTag)}\n >\n <DeepLink\n enabled={deepLinking}\n isShown={showTag}\n path={createDeepLinkPath(tag)}\n text={tag}\n />\n {!tagDescription ? (\n <small></small>\n ) : (\n <small>\n <Markdown source={tagDescription} />\n </small>\n )}\n\n {!tagExternalDocsUrl ? null : (\n <Link\n className=\"info__externaldocs external-link\"\n endIcon={ExternalLinkIcon}\n href={sanitizeUrl(tagExternalDocsUrl)}\n onClick={(e: any) => e.stopPropagation()}\n render={<a target=\"_blank\" />}\n >\n {tagExternalDocsDescription || tagExternalDocsUrl}\n </Link>\n )}\n\n <button\n aria-expanded={showTag}\n className=\"expand-operation\"\n onClick={() => layoutActions.show(isShownKey, !showTag)}\n title={showTag ? \"Collapse operation\" : \"Expand operation\"}\n >\n <Icon\n className={clsx(\"collapse-icon\", {\"is-open\": showTag})}\n icon={ChevronUpIcon}\n size=\"md\"\n />\n </button>\n </h3>\n\n <Collapsible.Root open={showTag}>\n <Collapsible.Content>{children}</Collapsible.Content>\n </Collapsible.Root>\n </div>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {useEffect, useState} from \"react\"\n\nimport immutable from \"immutable\"\n\nimport {Collapsible} from \"@qualcomm-ui/react/collapsible\"\nimport {InlineNotification} from \"@qualcomm-ui/react/inline-notification\"\nimport {Progress} from \"@qualcomm-ui/react/progress\"\nimport {booleanDataAttr} from \"@qualcomm-ui/utils/attributes\"\n\nimport type {GetComponent} from \"./types\"\nimport {\n escapeDeepLinkPath,\n getExtensions,\n getList,\n safeBuildUrl,\n sanitizeUrl,\n} from \"./utils\"\n\ninterface Props {\n authActions?: any\n authSelectors?: any\n fn: any\n getComponent: GetComponent\n getConfigs: () => any\n layoutActions: any\n layoutSelectors: any\n oas3Actions: any\n oas3Selectors: any\n onCancelClick: () => void\n onExecute: () => void\n onResetClick: () => void\n onTryoutClick: () => void\n operation: any\n request?: Iterable<any>\n response?: any\n specActions: any\n specPath: any\n specSelectors: any\n summary?: string\n toggleShown: () => void\n}\n\nexport function Operation({\n authActions,\n authSelectors,\n fn,\n getComponent,\n getConfigs,\n oas3Actions,\n oas3Selectors,\n onCancelClick,\n onExecute,\n onResetClick,\n onTryoutClick,\n operation: operationProps,\n request,\n response,\n specActions,\n specPath = immutable.List(),\n specSelectors,\n toggleShown,\n}: Props) {\n const {\n allowTryItOut,\n deprecated,\n displayRequestDuration,\n executeInProgress,\n isShown,\n method,\n op,\n operationId,\n path,\n tag,\n tryItOutEnabled,\n } = operationProps.toJS()\n\n const {description, externalDocs, schemes} = op\n\n const externalDocsUrl = externalDocs\n ? safeBuildUrl(externalDocs.url, specSelectors.url(), {\n selectedServer: oas3Selectors.selectedServer(),\n })\n : \"\"\n const operation = operationProps.getIn([\"op\"])\n const responses = operation.get(\"responses\")\n const parameters = getList(operation, [\"parameters\"])\n const operationScheme = specSelectors.operationScheme(path, method)\n const isShownKey = [\"operations\", tag, operationId]\n const extensions = getExtensions(operation)\n\n const Responses = getComponent(\"responses\")\n const Parameters = getComponent(\"parameters\")\n const Execute = getComponent(\"execute\")\n const Collapse = getComponent(\"Collapse\")\n const Clear = getComponent(\"clear\")\n const Markdown = getComponent(\"Markdown\", true)\n const Schemes = getComponent(\"schemes\")\n const OperationServers = getComponent(\"OperationServers\")\n const OperationExt = getComponent(\"OperationExt\")\n const OperationSummary = getComponent(\"OperationSummary\")\n const Link = getComponent(\"Link\")\n\n const {showExtensions} = getConfigs()\n\n // Merge in Live Response\n if (responses && response && response.size > 0) {\n const notDocumented =\n !responses.get(String(response.get(\"status\"))) &&\n !responses.get(\"default\")\n response = response.set(\"notDocumented\", notDocumented)\n }\n\n const onChangeKey = [path, method] // Used to add values to _this_ operation ( indexed by path and method )\n\n const validationErrors = specSelectors.validationErrors([path, method])\n\n const [loaded, setLoaded] = useState(false)\n\n /**\n * After the children load in, we replace the <Collapse> element with <QCollapse>.\n * There isn't a way to detect this, so wait 50ms.\n */\n useEffect(() => {\n let mounted = true\n if (isShown) {\n setTimeout(() => {\n if (mounted) {\n setLoaded(true)\n }\n }, 50)\n }\n return () => {\n mounted = false\n }\n }, [isShown])\n\n const body = (\n <div className=\"opblock-body\">\n {(operation && operation.size) || operation === null ? null : (\n <Progress />\n )}\n {deprecated && (\n <h4 className=\"opblock-title_normal\"> Warning: Deprecated</h4>\n )}\n {description && (\n <div className=\"opblock-description-wrapper\">\n <div className=\"opblock-description\">\n <Markdown source={description} />\n </div>\n </div>\n )}\n {externalDocsUrl ? (\n <div className=\"opblock-external-docs-wrapper\">\n <h4 className=\"opblock-title_normal\">Find more details</h4>\n <div className=\"opblock-external-docs\">\n {externalDocs.description && (\n <span className=\"opblock-external-docs__description\">\n <Markdown source={externalDocs.description} />\n </span>\n )}\n <Link\n className=\"opblock-external-docs__link\"\n href={sanitizeUrl(externalDocsUrl)}\n target=\"_blank\"\n >\n {externalDocsUrl}\n </Link>\n </div>\n </div>\n ) : null}\n\n {!operation || !operation.size ? null : (\n <Parameters\n allowTryItOut={allowTryItOut}\n fn={fn}\n getComponent={getComponent}\n getConfigs={getConfigs}\n oas3Actions={oas3Actions}\n oas3Selectors={oas3Selectors}\n onCancelClick={onCancelClick}\n onChangeKey={onChangeKey}\n onResetClick={onResetClick}\n onTryoutClick={onTryoutClick}\n operation={operation}\n parameters={parameters}\n pathMethod={[path, method]}\n specActions={specActions}\n specPath={specPath.push(\"parameters\")}\n specSelectors={specSelectors}\n tryItOutEnabled={tryItOutEnabled}\n />\n )}\n\n {!tryItOutEnabled ? null : (\n <OperationServers\n getComponent={getComponent}\n getEffectiveServerValue={oas3Selectors.serverEffectiveValue}\n getSelectedServer={oas3Selectors.selectedServer}\n getServerVariable={oas3Selectors.serverVariableValue}\n method={method}\n operationServers={operation.get(\"servers\")}\n path={path}\n pathServers={specSelectors.paths().getIn([path, \"servers\"])}\n setSelectedServer={oas3Actions.setSelectedServer}\n setServerVariableValue={oas3Actions.setServerVariableValue}\n />\n )}\n\n {!tryItOutEnabled || !allowTryItOut ? null : schemes && schemes.size ? (\n <div className=\"opblock-schemes\">\n <Schemes\n currentScheme={operationScheme}\n method={method}\n path={path}\n schemes={schemes}\n specActions={specActions}\n />\n </div>\n ) : null}\n\n {!tryItOutEnabled ||\n !allowTryItOut ||\n validationErrors.length <= 0 ? null : (\n <div className=\"errors-wrapper\">\n <InlineNotification\n description={\n <div>\n Please correct the following validation errors and try again.\n </div>\n }\n emphasis=\"danger\"\n label=\"Error\"\n />\n </div>\n )}\n\n <div\n className={\n !tryItOutEnabled || !response || !allowTryItOut\n ? \"execute-wrapper\"\n : \"btn-group\"\n }\n data-enabled={booleanDataAttr(tryItOutEnabled)}\n >\n {!tryItOutEnabled || !allowTryItOut ? null : (\n <Execute\n disabled={executeInProgress}\n method={method}\n oas3Actions={oas3Actions}\n oas3Selectors={oas3Selectors}\n onExecute={onExecute}\n operation={operation}\n path={path}\n specActions={specActions}\n specSelectors={specSelectors}\n />\n )}\n\n {!tryItOutEnabled || !response || !allowTryItOut ? null : (\n <Clear method={method} path={path} specActions={specActions} />\n )}\n </div>\n\n {executeInProgress ? <Progress /> : <div style={{height: 4}}></div>}\n\n {!responses ? null : (\n <Responses\n displayRequestDuration={displayRequestDuration}\n fn={fn}\n getComponent={getComponent}\n getConfigs={getConfigs}\n method={method}\n oas3Actions={oas3Actions}\n oas3Selectors={oas3Selectors}\n path={path}\n produces={specSelectors.producesOptionsFor([path, method])}\n producesValue={specSelectors.currentProducesFor([path, method])}\n request={request}\n responses={responses}\n specActions={specActions}\n specPath={specPath.push(\"responses\")}\n specSelectors={specSelectors}\n tryItOutResponse={response}\n />\n )}\n\n {!showExtensions || !extensions.size ? null : (\n <OperationExt extensions={extensions} getComponent={getComponent} />\n )}\n </div>\n )\n\n return (\n <div\n className={\n deprecated\n ? \"opblock opblock-deprecated\"\n : isShown\n ? `opblock opblock-${method} is-open`\n : `opblock opblock-${method}`\n }\n id={escapeDeepLinkPath(isShownKey.join(\"-\"))}\n >\n <OperationSummary\n authActions={authActions}\n authSelectors={authSelectors}\n fn={fn}\n getComponent={getComponent}\n isShown={isShown}\n operationProps={operationProps}\n specPath={specPath}\n toggleShown={toggleShown}\n />\n {loaded ? (\n <Collapsible.Root open={isShown}>\n <Collapsible.Content>{body}</Collapsible.Content>\n </Collapsible.Root>\n ) : (\n <Collapse isOpened={isShown}>{body}</Collapse>\n )}\n </div>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {type ReactNode, useCallback, useEffect, useState} from \"react\"\n\nimport immutable from \"immutable\"\nimport {Edit2Icon, XIcon} from \"lucide-react\"\n\nimport {Button} from \"@qualcomm-ui/react/button\"\n\nimport {DocsCodeMirror} from \"../code-mirror\"\n\nimport type {GetComponent} from \"./types\"\nimport {useThemeContext} from \"./use-theme-context\"\n\nParamBody.displayName = \"ParamBody\"\n\nexport interface ParamBodyProps {\n consumes?: any\n consumesValue?: string\n fn: any\n getComponent: GetComponent\n isExecute?: boolean\n language?: string\n onChange?: (val: any, state: any) => void\n onChangeConsumes?: () => void\n param?: any\n pathMethod: string[]\n specSelectors: any\n}\n\nexport function ParamBody({\n consumes: consumesProp,\n consumesValue: consumesValueProp,\n fn,\n getComponent,\n isExecute,\n language,\n onChange: onChangeProp,\n onChangeConsumes,\n param = immutable.fromJS({}),\n pathMethod,\n specSelectors,\n}: ParamBodyProps): ReactNode {\n const [state, setState] = useState({isEditBox: false, value: \"\"})\n\n const onChange = useCallback(\n (value: any, {isEditBox, isXml}: any) => {\n setState({isEditBox, value})\n onChangeProp?.(value, isXml)\n },\n [onChangeProp],\n )\n\n const sample = useCallback(\n (xml?: string) => {\n const schema = fn.inferSchema(param.toJS())\n\n return fn.getSampleSchema(schema, xml, {\n includeWriteOnly: true,\n })\n },\n [fn, param],\n )\n\n const updateValues = useCallback(() => {\n const isXml = /xml/i.test(consumesValueProp!)\n const isJson = /json/i.test(consumesValueProp!)\n const paramValue = isXml ? param.get(\"value_xml\") : param.get(\"value\")\n\n if (paramValue !== undefined) {\n const val = !paramValue && isJson ? \"{}\" : paramValue\n setState((prevState) => ({...prevState, value: val}))\n onChange(val, {isEditBox: isExecute, isXml})\n } else {\n if (isXml) {\n onChange(sample(\"xml\"), {isEditBox: isExecute, isXml})\n } else {\n onChange(sample(), {isEditBox: isExecute})\n }\n }\n }, [consumesValueProp, isExecute, onChange, param, sample])\n\n useEffect(() => {\n updateValues()\n }, [updateValues])\n\n const handleOnChange = (inputValue: string) => {\n const isXml = /xml/i.test(consumesValueProp!)\n onChange(inputValue, {isEditBox: state.isEditBox, isXml})\n }\n\n const toggleIsEditBox = () =>\n setState((state) => ({...state, isEditBox: !state.isEditBox}))\n\n const ContentType = getComponent(\"contentType\")\n const consumesValue = specSelectors\n .contentTypeValues(pathMethod)\n .get(\"requestContentType\")\n const consumes =\n consumesProp && consumesProp.size\n ? consumesProp\n : immutable.fromJS([\"application/json\"])\n\n const {isEditBox, value} = state\n\n const regionId = createHtmlReadyId(\n `${pathMethod[1]}${pathMethod[0]}_parameters`,\n )\n const controlId = `${regionId}_select`\n\n const theme = useThemeContext()\n\n return (\n <div\n className=\"body-param\"\n data-param-in={param.get(\"in\")}\n data-param-name={param.get(\"name\")}\n >\n <DocsCodeMirror\n copyable\n editable={isEditBox}\n language={language || \"json\"}\n onChange={handleOnChange}\n theme={theme}\n value={value}\n />\n\n <div className=\"body-param-options\">\n {!isExecute ? null : (\n <div className=\"body-param-edit\">\n {isEditBox ? (\n <Button\n emphasis=\"danger\"\n endIcon={XIcon}\n onClick={toggleIsEditBox}\n variant=\"outline\"\n >\n Cancel\n </Button>\n ) : (\n <Button\n emphasis=\"primary\"\n endIcon={Edit2Icon}\n onClick={toggleIsEditBox}\n variant=\"fill\"\n >\n Edit\n </Button>\n )}\n </div>\n )}\n\n <ContentType\n contentTypes={consumes}\n controlId={controlId}\n label=\"Parameter content type\"\n onChange={onChangeConsumes}\n value={consumesValue}\n />\n </div>\n </div>\n )\n}\n\nfunction createHtmlReadyId(id: string, replacement = \"_\") {\n return id.replace(/[^\\w-]/g, replacement)\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {type ReactNode, useEffect, useState} from \"react\"\n\nimport {DocsCodeMirror} from \"../code-mirror\"\n\nimport type {GetComponent} from \"./types\"\nimport {useThemeContext} from \"./use-theme-context\"\nimport {stringify} from \"./utils\"\n\nRequestBodyEditor.displayName = \"RequestBodyEditor\"\n\nexport interface RequestBodyEditorProps {\n defaultValue?: string\n errors?: any[]\n getComponent: GetComponent\n onChange?: (value: string) => void\n value?: string\n}\n\nexport function RequestBodyEditor(props: RequestBodyEditorProps): ReactNode {\n const [state, setState] = useState(\n stringify(props.value || props.defaultValue),\n )\n\n useEffect(() => {\n setState(stringify(props.value || props.defaultValue))\n }, [props.defaultValue, props.value])\n\n const theme = useThemeContext()\n\n return (\n <DocsCodeMirror\n editable\n language=\"json\"\n onChange={(value) => {\n props.onChange?.(value)\n }}\n theme={theme}\n value={state}\n />\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {type ReactNode, useCallback, useEffect, useMemo} from \"react\"\n\nimport {selectCollection} from \"@qualcomm-ui/core/select\"\nimport {Select} from \"@qualcomm-ui/react/select\"\n\nSchemes.displayName = \"Schemes\"\n\ninterface Props {\n currentScheme: string\n method?: string\n path?: string\n schemes: any\n specActions: any\n}\n\nexport function Schemes(props: Props): ReactNode {\n const {currentScheme, method, path, schemes, specActions} = props\n\n const setSchemes = useCallback(\n (value: any) => {\n specActions.setScheme(value, path, method)\n },\n [method, path, specActions],\n )\n\n const collection = useMemo(() => {\n return selectCollection({items: schemes.valueSeq().toArray()})\n }, [schemes])\n\n useEffect(() => {\n if (!currentScheme || !schemes.includes(currentScheme)) {\n setSchemes(schemes.first())\n }\n }, [currentScheme, schemes, setSchemes])\n\n return (\n <Select\n clearable={false}\n collection={collection}\n label=\"Schemes\"\n onValueChange={(value) => setSchemes(value[0])}\n size=\"sm\"\n style={{minWidth: 100}}\n value={currentScheme ? [currentScheme] : []}\n />\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {type ReactNode, useCallback, useEffect, useMemo} from \"react\"\n\nimport immutable, {type List} from \"immutable\"\n\nimport {selectCollection} from \"@qualcomm-ui/core/select\"\nimport {Select} from \"@qualcomm-ui/react/select\"\nimport {TextInput} from \"@qualcomm-ui/react/text-input\"\n\ninterface ServersProps {\n // Use 'any[]' for ImPropTypes.list\n currentServer: string\n // Use '() => any' for PropTypes.func\n getEffectiveServerValue: (server: string) => any\n // Use '() => void' for PropTypes.func\n getServerVariable: (currentServer: any, name: string) => any\n servers: List<any>\n setSelectedServer: (server: any) => void\n // Use '() => void' for PropTypes.func\n setServerVariableValue: (value: any) => void // Use '() => any' for PropTypes.func\n}\n\nexport function Servers({\n currentServer,\n getEffectiveServerValue,\n getServerVariable,\n servers,\n setSelectedServer,\n setServerVariableValue,\n}: ServersProps): ReactNode {\n const currentServerDefinition =\n servers.find((s) => s.get(\"url\") === currentServer) ||\n immutable.OrderedMap()\n const currentServerVariableDefs =\n currentServerDefinition.get(\"variables\") || immutable.OrderedMap()\n const shouldShowVariableUI = currentServerVariableDefs.size !== 0\n\n useEffect(() => {\n if (currentServer) {\n return\n }\n\n // fire 'change' event to set default 'value' of select\n setSelectedServer(servers.first()?.get(\"url\"))\n }, [currentServer, servers, setSelectedServer])\n\n useEffect(() => {\n // server has changed, we may need to set default values\n const currentServerDefinition = servers.find(\n (server) => server.get(\"url\") === currentServer,\n )\n if (!currentServerDefinition) {\n setSelectedServer(servers.first().get(\"url\"))\n return\n }\n\n const currentServerVariableDefs =\n currentServerDefinition.get(\"variables\") || immutable.OrderedMap()\n currentServerVariableDefs.map((val: any, key: any) => {\n setServerVariableValue({\n key,\n server: currentServer,\n val: val.get(\"default\") || \"\",\n })\n })\n }, [currentServer, servers, setSelectedServer, setServerVariableValue])\n\n const handleServerChange = useCallback(\n (value: string) => {\n setSelectedServer(value)\n },\n [setSelectedServer],\n )\n\n const handleServerVariableChange = useCallback(\n (name: string, newValue: string) => {\n setServerVariableValue({\n key: name,\n server: currentServer,\n val: newValue,\n })\n },\n [setServerVariableValue, currentServer],\n )\n\n const serversOpts = servers.toArray().map((schema) => schema.get(\"url\"))\n\n const serversCollection = useMemo(() => {\n return selectCollection({items: serversOpts})\n }, [serversOpts])\n\n return (\n <div className=\"servers\">\n <Select\n className=\"swagger-input\"\n clearable={false}\n collection={serversCollection}\n controlProps={{id: \"servers\"}}\n onValueChange={(value) => handleServerChange(value[0])}\n value={currentServer ? [currentServer] : []}\n />\n\n {shouldShowVariableUI && (\n <div>\n <div className=\"computed-url\">\n Computed URL:\n <code>{getEffectiveServerValue(currentServer)}</code>\n </div>\n <h4>Server variables</h4>\n <table>\n <tbody>\n {currentServerVariableDefs.entrySeq().map(([name, val]: any) => {\n const opts: string[] = val.get(\"enum\")\n ? val.get(\"enum\").toArray()\n : []\n return (\n <tr key={name}>\n <td>{name}</td>\n <td>\n {opts.length ? (\n <Select\n collection={selectCollection({items: opts})}\n onValueChange={(value) =>\n handleServerVariableChange(name, value[0])\n }\n value={\n getServerVariable(currentServer, name)\n ? [getServerVariable(currentServer, name)]\n : []\n }\n />\n ) : (\n <TextInput\n onValueChange={(value) =>\n handleServerVariableChange(name, value)\n }\n value={getServerVariable(currentServer, name) || \"\"}\n />\n )}\n </td>\n </tr>\n )\n })}\n </tbody>\n </table>\n </div>\n )}\n </div>\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {ReactNode} from \"react\"\n\nimport {DocsCodeMirror} from \"../code-mirror\"\n\nimport {useThemeContext} from \"./use-theme-context\"\n\nSyntaxHighlighter.displayName = \"SyntaxHighlighter\"\n\nexport interface SyntaxHighlighterProps {\n children: string\n fn: any\n language?: string\n}\n\nexport function SyntaxHighlighter({\n children,\n ...props\n}: SyntaxHighlighterProps): ReactNode {\n const theme = useThemeContext()\n\n return (\n <DocsCodeMirror language={props.language} theme={theme} value={children} />\n )\n}\n", "// Modified from https://github.com/swagger-api/swagger-ui\n// Apache-2.0\n// Changes from Qualcomm Technologies, Inc. are provided under the following license:\n// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport type {MouseEventHandler, ReactNode} from \"react\"\n\nimport {FlaskConicalIcon, RotateCcw, XIcon} from \"lucide-react\"\n\nimport {Button} from \"@qualcomm-ui/react/button\"\n\nTryItOutButton.displayName = \"TryItOutButton\"\n\nexport interface TryItOutButtonProps {\n enabled?: boolean\n // Try it out is enabled, ie: the user has access to the form\n hasUserEditedBody?: boolean\n // Try it out is enabled, ie: the user has access to the form\n isOAS3?: boolean\n onCancelClick?: MouseEventHandler<HTMLButtonElement>\n onResetClick?: MouseEventHandler<HTMLButtonElement>\n onTryoutClick?: MouseEventHandler<HTMLButtonElement> // Try it out is enabled, ie: the user has access to the form\n}\n\nexport function TryItOutButton({\n enabled,\n hasUserEditedBody,\n isOAS3,\n onCancelClick,\n onResetClick,\n onTryoutClick,\n}: TryItOutButtonProps): ReactNode {\n const showReset = isOAS3 && hasUserEditedBody\n return (\n <div className={showReset ? \"try-out btn-group\" : \"try-out\"}>\n {enabled ? (\n <Button\n emphasis=\"danger\"\n endIcon={XIcon}\n onClick={onCancelClick}\n variant=\"outline\"\n >\n Cancel\n </Button>\n ) : (\n <Button\n emphasis=\"primary\"\n endIcon={FlaskConicalIcon}\n onClick={onTryoutClick}\n variant=\"outline\"\n >\n Try it out\n </Button>\n )}\n {showReset && (\n <Button\n emphasis=\"neutral\"\n endIcon={RotateCcw}\n onClick={onResetClick}\n variant=\"outline\"\n >\n Reset\n </Button>\n )}\n </div>\n )\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["memo", "useMemo", "useCallback", "useContext", "useEffect", "useMemo", "useRef", "clsx", "useCallback", "useEffect", "useMemo", "Icon", "clsx", "createContext", "memo", "useContext", "useMemo", "useStore", "Link", "path", "value", "jsx", "jsxs", "name", "elements", "value", "jsx", "jsxs", "jsx", "jsx", "jsxs", "jsx", "Fragment", "jsx", "Fragment", "jsx", "Fragment", "jsx", "jsxs", "jsx", "jsx", "Fragment", "jsx", "jsx", "useState", "jsx", "jsxs", "useState", "value", "jsx", "memo", "createContext", "useContext", "useStore", "useMemo", "useState", "useMemo", "useMemo", "useState", "Fragment", "jsx", "jsxs", "useMemo", "useEffect", "KeyRenderer", "useCallback", "clsx", "Icon", "jsx", "jsxs", "useContext", "useEffect", "useMemo", "useRef", "useCallback", "clsx", "createContext", "useContext", "jsx", "jsxs", "useState", "jsx", "jsxs", "name", "value", "jsx", "jsxs", "name", "ApiKeyAuth", "BasicAuth", "jsx", "jsxs", "Auths", "jsx", "jsxs", "AuthorizationPopup", "LockIcon", "LockOpenIcon", "IconButton", "jsx", "useState", "Button", "jsx", "jsxs", "name", "definitions", "AuthItem", "Oauth2", "useState", "PasswordInput", "jsx", "jsxs", "name", "onChange", "useState", "Button", "PasswordInput", "TextInput", "name", "jsx", "jsxs", "name", "useState", "authSelectors", "authConfigs", "state", "TextInput", "PasswordInput", "description", "Button", "Button", "jsx", "useEffect", "useMemo", "selectCollection", "Select", "jsx", "value", "jsx", "Button", "jsx", "useMemo", "IconButton", "jsx", "jsxs", "immutable", "sanitizeUrl", "jsx", "jsx", "TextInput", "jsx", "value", "useEffect", "useMemo", "useState", "immutable", "selectCollection", "Button", "IconButton", "Select", "jsx", "jsxs", "immutable", "useState", "useEffect", "value", "useMemo", "selectCollection", "Select", "IconButton", "Button", "jsx", "value", "useMemo", "selectCollection", "Select", "TextInput", "jsx", "value", "clsx", "createContext", "useContext", "jsx", "jsxs", "Models", "clsx", "useCallback", "useEffect", "useRef", "useState", "Button", "Icon", "jsx", "jsxs", "useCallback", "useEffect", "useMemo", "useRef", "useState", "randomBytes", "jsx", "jsxs", "ModelWrapper", "HighlightCode", "jsx", "name", "Im", "ChevronUpIcon", "Icon", "clsx", "useEffect", "useRef", "jsx", "jsxs", "name", "layoutActions", "ModelWrapper", "ModelCollapse", "Icon", "clsx", "ChevronUpIcon", "Im", "useEffect", "useRef", "ChevronUpIcon", "Button", "jsx", "jsxs", "useRef", "useEffect", "Button", "ChevronUpIcon", "Button", "clsx", "jsx", "Fragment", "jsx", "ChevronUpIcon", "IconButton", "Icon", "clsx", "jsx", "jsxs", "AuthorizeOperationBtn", "OperationSummaryMethod", "OperationSummaryPath", "Link", "IconButton", "Icon", "clsx", "ChevronUpIcon", "ChevronUpIcon", "Collapsible", "Icon", "clsx", "jsx", "jsxs", "sanitizeUrl", "Icon", "clsx", "ChevronUpIcon", "Collapsible", "useEffect", "useState", "immutable", "Collapsible", "jsx", "jsxs", "immutable", "Execute", "Clear", "Schemes", "OperationSummary", "Link", "useState", "useEffect", "sanitizeUrl", "Collapsible", "useCallback", "useEffect", "useState", "immutable", "Button", "jsx", "jsxs", "immutable", "useState", "useCallback", "value", "isEditBox", "useEffect", "state", "ContentType", "Button", "useEffect", "useState", "jsx", "useState", "useEffect", "useCallback", "useEffect", "useMemo", "selectCollection", "Select", "jsx", "useCallback", "useEffect", "useMemo", "immutable", "selectCollection", "Select", "TextInput", "jsx", "jsxs", "currentServerDefinition", "name", "jsx", "XIcon", "Button", "jsx", "jsxs", "jsx", "memo", "useMemo"]
|
|
7
|
+
}
|