@digi-frontend/dgate-api-documentation 1.0.47 → 1.0.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/core.js +2 -0
- package/dist/_virtual/core.js.map +1 -0
- package/dist/_virtual/core2.js +2 -0
- package/dist/_virtual/core2.js.map +1 -0
- package/dist/_virtual/format.js +2 -0
- package/dist/_virtual/format.js.map +1 -0
- package/dist/_virtual/index3.js +1 -1
- package/dist/_virtual/index4.js +1 -1
- package/dist/_virtual/index5.js +1 -1
- package/dist/_virtual/index6.js +1 -1
- package/dist/f4452c3ebcf0d5da.svg +4 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/defineProperty.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/defineProperty.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/extends.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/iterableToArray.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/iterableToArray.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/typeof.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/typeof.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js.map +1 -0
- package/dist/node_modules/fault/index.js +2 -0
- package/dist/node_modules/fault/index.js.map +1 -0
- package/dist/node_modules/format/format.js +2 -0
- package/dist/node_modules/format/format.js.map +1 -0
- package/dist/node_modules/highlight.js/lib/core.js +2 -0
- package/dist/node_modules/highlight.js/lib/core.js.map +1 -0
- package/dist/node_modules/lowlight/lib/core.js +2 -0
- package/dist/node_modules/lowlight/lib/core.js.map +1 -0
- package/dist/node_modules/nanoid/index.js +2 -0
- package/dist/node_modules/nanoid/index.js.map +1 -0
- package/dist/node_modules/nanoid/url-alphabet/index.js +2 -0
- package/dist/node_modules/nanoid/url-alphabet/index.js.map +1 -0
- package/dist/node_modules/react-syntax-highlighter/dist/esm/checkForListedLanguage.js +2 -0
- package/dist/node_modules/react-syntax-highlighter/dist/esm/checkForListedLanguage.js.map +1 -0
- package/dist/node_modules/react-syntax-highlighter/dist/esm/create-element.js +2 -0
- package/dist/node_modules/react-syntax-highlighter/dist/esm/create-element.js.map +1 -0
- package/dist/node_modules/react-syntax-highlighter/dist/esm/highlight.js +2 -0
- package/dist/node_modules/react-syntax-highlighter/dist/esm/highlight.js.map +1 -0
- package/dist/node_modules/react-syntax-highlighter/dist/esm/light.js +2 -0
- package/dist/node_modules/react-syntax-highlighter/dist/esm/light.js.map +1 -0
- package/dist/node_modules/react-syntax-highlighter/dist/esm/styles/hljs/stackoverflow-dark.js +2 -0
- package/dist/node_modules/react-syntax-highlighter/dist/esm/styles/hljs/stackoverflow-dark.js.map +1 -0
- package/dist/node_modules/react-syntax-highlighter/dist/esm/styles/hljs/stackoverflow-light.js +2 -0
- package/dist/node_modules/react-syntax-highlighter/dist/esm/styles/hljs/stackoverflow-light.js.map +1 -0
- package/dist/node_modules/toposort/index.js +1 -1
- package/dist/node_modules/yup/index.esm.js +1 -1
- package/dist/src/assets/icons/UpArrow.svg.js +2 -0
- package/dist/src/assets/icons/UpArrow.svg.js.map +1 -0
- package/dist/src/assets/icons/copy.svg.js +2 -0
- package/dist/src/assets/icons/copy.svg.js.map +1 -0
- package/dist/src/components/MethodAccordion/MethodAccordion.js +1 -1
- package/dist/src/components/MethodAccordion/MethodAccordion.js.map +1 -1
- package/dist/src/components/dialog/index.js +1 -1
- package/dist/src/components/dialog/index.js.map +1 -1
- package/dist/src/components/table/table.js +1 -1
- package/dist/src/components/table/table.js.map +1 -1
- package/dist/src/constants/methods.constant.js +1 -1
- package/dist/src/constants/methods.constant.js.map +1 -1
- package/dist/src/helpers/docs.helper.js +2 -0
- package/dist/src/helpers/docs.helper.js.map +1 -0
- package/dist/src/helpers/layout.helper.js +1 -1
- package/dist/src/helpers/layout.helper.js.map +1 -1
- package/dist/src/layout/docsComponents/Codebox/Codebox.js +2 -0
- package/dist/src/layout/docsComponents/Codebox/Codebox.js.map +1 -0
- package/dist/src/layout/docsComponents/Codebox/style.module.scss.js +2 -0
- package/dist/src/layout/docsComponents/Codebox/style.module.scss.js.map +1 -0
- package/dist/src/layout/docsComponents/DocsAside/DocsAside.js +1 -1
- package/dist/src/layout/docsComponents/DocsAside/DocsAside.js.map +1 -1
- package/dist/src/layout/docsComponents/DocsAside/style.module.scss.js +2 -0
- package/dist/src/layout/docsComponents/DocsAside/style.module.scss.js.map +1 -0
- package/dist/src/layout/docsComponents/DocsContent/DocsContent.js +1 -1
- package/dist/src/layout/docsComponents/DocsContent/DocsContent.js.map +1 -1
- package/dist/src/layout/docsComponents/DocsContent/EndpointPage/index.js +1 -1
- package/dist/src/layout/docsComponents/DocsContent/EndpointPage/index.js.map +1 -1
- package/dist/src/layout/docsComponents/DocsContent/TagPage/index.js +2 -0
- package/dist/src/layout/docsComponents/DocsContent/TagPage/index.js.map +1 -0
- package/dist/src/layout/docsComponents/DocsHeader/DocsHeader.js +1 -1
- package/dist/src/layout/docsComponents/DocsHeader/DocsHeader.js.map +1 -1
- package/dist/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.js +1 -1
- package/dist/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.js.map +1 -1
- package/dist/src/layout/docsLayout.js +1 -1
- package/dist/src/layout/docsLayout.js.map +1 -1
- package/dist/src/layout/layout.js +1 -1
- package/dist/src/layout/layout.js.map +1 -1
- package/dist/src/layout/layout.module.css.js +1 -1
- package/dist/src/utils/index.js +2 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/validator/form.scheme.js +1 -1
- package/dist/src/validator/form.scheme.js.map +1 -1
- package/dist/styles.css +1164 -892
- package/dist/types/assets/icons/index.d.ts +1 -0
- package/dist/types/components/dialog/dialog.d.ts +1 -0
- package/dist/types/components/dialog/index.d.ts +1 -1
- package/dist/types/helpers/docs.helper.d.ts +2 -2
- package/dist/types/layout/docsComponents/Codebox/Codebox.d.ts +4 -0
- package/dist/types/layout/docsComponents/DocsAside/DocsAside.d.ts +4 -2
- package/dist/types/layout/docsComponents/DocsContent/DocsContent.d.ts +5 -1
- package/dist/types/layout/docsComponents/DocsContent/EndpointPage/index.d.ts +3 -1
- package/dist/types/layout/docsComponents/DocsContent/TagPage/index.d.ts +6 -1
- package/dist/types/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.d.ts +12 -5
- package/dist/types/layout/docsLayout.d.ts +5 -4
- package/dist/types/layout/layout.d.ts +1 -1
- package/dist/types/types/index.d.ts +27 -0
- package/dist/types/types/layout.type.d.ts +1 -0
- package/dist/types/types/openApi.d.ts +1 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/validator/form.scheme.d.ts +1 -0
- package/package.json +3 -3
- package/rollup.config.js +2 -0
- package/src/assets/icons/copy.svg +4 -0
- package/src/assets/icons/index.ts +1 -0
- package/src/components/MethodAccordion/MethodAccordion.module.scss +20 -11
- package/src/components/MethodAccordion/MethodAccordion.tsx +393 -17
- package/src/components/dialog/dialog.ts +1 -0
- package/src/components/dialog/index.tsx +27 -24
- package/src/components/table/table.tsx +5 -1
- package/src/constants/methods.constant.ts +1 -1
- package/src/helpers/docs.helper.ts +17 -4
- package/src/helpers/layout.helper.ts +19 -2
- package/src/layout/docsComponents/Codebox/Codebox.tsx +61 -0
- package/src/layout/docsComponents/Codebox/style.module.scss +43 -0
- package/src/layout/docsComponents/DocsAside/DocsAside.tsx +89 -4
- package/src/layout/docsComponents/DocsAside/style.module.scss +113 -0
- package/src/layout/docsComponents/DocsContent/DocsContent.tsx +25 -3
- package/src/layout/docsComponents/DocsContent/EndpointPage/index.tsx +134 -122
- package/src/layout/docsComponents/DocsContent/EndpointPage/style.scss +45 -0
- package/src/layout/docsComponents/DocsContent/TagPage/index.tsx +77 -74
- package/src/layout/docsComponents/DocsContent/TagPage/style.scss +42 -5
- package/src/layout/docsComponents/DocsHeader/DocsHeader.module.scss +78 -5
- package/src/layout/docsComponents/DocsHeader/DocsHeader.tsx +85 -15
- package/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.tsx +119 -87
- package/src/layout/docsComponents/index.scss +3 -1
- package/src/layout/docsLayout.tsx +47 -18
- package/src/layout/layout.module.css +8 -5
- package/src/layout/layout.tsx +39 -21
- package/src/types/index.ts +28 -0
- package/src/types/layout.type.ts +1 -0
- package/src/types/openApi.ts +1 -0
- package/src/utils/index.ts +7 -0
- package/src/validator/form.scheme.ts +9 -1
- package/src/layout/docsComponents/DocsAside/style.scss +0 -3
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as e}from"../../node_modules/tslib/tslib.es6.js";const
|
|
1
|
+
import{__rest as e}from"../../node_modules/tslib/tslib.es6.js";const s=e=>{var s,t,n,c;if(e.components&&e.components.securitySchemes){const o=null===(s=Object.keys(e.components.securitySchemes))||void 0===s?void 0:s.at(0);o&&(e.components.securitySchemes[o].type=null===(c=null===(n=null===(t=null==e?void 0:e.components)||void 0===t?void 0:t.securitySchemes)||void 0===n?void 0:n[o])||void 0===c?void 0:c.type)}else e.components={securitySchemes:{Public:{type:"http",scheme:"public"}}};return e.tags||(e.tags=[]),Object.assign(Object.assign({},e),{paths:o(e.paths)})},t=e=>{var s,t,o,n;const i=Object.assign(Object.assign({},e),{paths:c(e.paths)});if(i.components&&i.components.securitySchemes){const e=null===(s=Object.keys(i.components.securitySchemes))||void 0===s?void 0:s.at(0);e&&(i.components.securitySchemes[e].type.toLowerCase()=="APIKEY".toLowerCase()&&(i.components.securitySchemes[e].in=i.components.securitySchemes[e].in),i.components.securitySchemes[e].type=null===(n=null===(o=null===(t=null==i?void 0:i.components)||void 0===t?void 0:t.securitySchemes)||void 0===o?void 0:o[e])||void 0===n?void 0:n.type)}return i},o=e=>Object.entries(e).map((([e,s])=>({path:e,methods:Object.entries(s).map((([e,s])=>{var t,o,n,c,i,r;const p=Object.assign(Object.assign({},s),{type:e,tags:s.tags||[],summary:s.summary||"",responses:Object.entries(s.responses).map((([e,s])=>{var t,o,n,c,i;const r=Object.keys(s.content||{})[0];return{code:e,headers:(null==s?void 0:s.headers)?s.headers:{},content:{contentType:r,schema:Object.assign(Object.assign({},null===(o=null===(t=s.content)||void 0===t?void 0:t[r])||void 0===o?void 0:o.schema),{properties:JSON.stringify(null===(i=null===(c=null===(n=s.content)||void 0===n?void 0:n[r])||void 0===c?void 0:c.schema)||void 0===i?void 0:i.properties)})}}}))});if((null==s?void 0:s.parameters)||(p.parameters=[]),"get"!=e.toLowerCase()){const e=Object.keys((null===(t=null==s?void 0:s.requestBody)||void 0===t?void 0:t.content)||{})[0],d=null===(n=null===(o=null==s?void 0:s.requestBody)||void 0===o?void 0:o.content)||void 0===n?void 0:n.schema,a=(null===(r=null===(i=null===(c=null==s?void 0:s.requestBody)||void 0===c?void 0:c.content)||void 0===i?void 0:i.schema)||void 0===r?void 0:r.properties)?{content:{contentType:e,schema:Object.assign(Object.assign({},d),{properties:(null==d?void 0:d.properties)?JSON.stringify(null==d?void 0:d.properties):"{}"})}}:{content:{contentType:"application/json",schema:{properties:"{}",type:"object"}}};p.requestBody=a}return p}))}))),n=(e,s)=>{var t,o;if(!(null==e?void 0:e.schema)||!(null===(t=null==e?void 0:e.schema)||void 0===t?void 0:t.properties))return{};return JSON.parse(null===(o=null==e?void 0:e.schema)||void 0===o?void 0:o.properties)},c=s=>s.reduce(((s,{path:t,methods:o})=>(s[t]=o.reduce(((s,t)=>{var{type:o,tags:c,responses:i,summary:r,requestBody:p}=t,d=e(t,["type","tags","responses","summary","requestBody"]);s[o]=Object.assign(Object.assign({},d),{tags:c,summary:r,responses:i.reduce(((e,{code:s,content:t,headers:o})=>{const c={};if(o)for(const[e,s]of Object.entries(o))c[e]={description:s.description||"",required:s.required||!1,schema:s.schema||{}};return e[s]={description:"Success",content:t.contentType?{[t.contentType]:{schema:Object.assign(Object.assign({},t.schema),{properties:n(t)})}}:{},headers:c},e}),{})});const a="get"!==o?JSON.parse(p.content.schema.properties):{};return"get"!==o&&(s[o].requestBody={content:{[p.content.contentType]:{schema:Object.assign(Object.assign({},p.content.schema),{properties:a})}}}),s}),{}),s)),{});export{s as transformOpenApiObject,t as transformOpenApiObjectToOrigin,c as transformPathsArrayToOrigin,o as transformPathsToArray};
|
|
2
2
|
//# sourceMappingURL=layout.helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.helper.js","sources":["../../../src/helpers/layout.helper.ts"],"sourcesContent":["import { TransformedPathsArray } from '@entities/layout.type'\nimport { OpenAPIFile, SecurityScheme } from '@entities/openApi'\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\n\nexport const transformOpenApiObject = (openApiJson: OpenAPIFile): TransformedOpenApi => {\n if (openApiJson.components && openApiJson.components.securitySchemes) {\n const authKey = Object.keys(openApiJson.components.securitySchemes)?.at(0)\n if (authKey) {\n openApiJson.components.securitySchemes[authKey].type = openApiJson?.components\n ?.securitySchemes?.[authKey]?.type as SecurityScheme['type']\n }\n } else {\n openApiJson.components = {\n securitySchemes: {\n Public: {\n type: 'http',\n scheme: 'public',\n },\n },\n }\n }\n\n if (!openApiJson.tags) {\n openApiJson.tags = []\n }\n\n return {\n ...openApiJson,\n paths: transformPathsToArray(openApiJson.paths),\n } as TransformedOpenApi\n}\n\nexport const transformOpenApiObjectToOrigin = (values: TransformedOpenApi): OpenAPIFile => {\n const object = {\n ...values,\n paths: transformPathsArrayToOrigin(values.paths),\n }\n if (object.components && object.components.securitySchemes) {\n const authKey = Object.keys(object.components.securitySchemes)?.at(0)\n if (authKey) {\n if (object.components.securitySchemes[authKey].type.toLowerCase() == 'APIKEY'.toLowerCase()) {\n object.components.securitySchemes[authKey].in = object.components.securitySchemes[authKey]\n .in as SecurityScheme['in']\n }\n object.components.securitySchemes[authKey].type = object?.components?.securitySchemes?.[\n authKey\n ]?.type as SecurityScheme['type']\n }\n }\n return object\n}\n\nexport const transformPathsToArray = (paths: OpenAPIFile['paths']): TransformedPathsArray | any => {\n const transformedPaths = Object.entries(paths).map(([path, methods]) => ({\n path,\n methods: Object.entries(methods).map(([method, methodProps]) => {\n const obj: any = {\n ...methodProps,\n type: method,\n tags: methodProps.tags || [],\n summary: methodProps.summary || '',\n responses: Object.entries(methodProps.responses).map(([code, codeProps]) => {\n const contentType = Object.keys(codeProps.content || {})[0]\n return {\n code,\n content: {\n contentType,\n schema: {\n ...codeProps.content?.[contentType]?.schema,\n properties: JSON.stringify(codeProps.content?.[contentType]?.schema?.properties),\n },\n },\n }\n }),\n }\n // Add parameters if it does not exist in the original JSON\n if (!methodProps?.parameters) {\n obj.parameters = []\n }\n\n if (method.toLowerCase() != 'get') {\n const contentType = Object.keys(methodProps?.requestBody?.content || {})[0]\n const reqSchema = methodProps?.requestBody?.content?.schema\n const requestBodyData = methodProps?.requestBody?.content?.schema?.properties\n ? {\n content: {\n contentType,\n schema: {\n ...reqSchema,\n properties: reqSchema?.properties ? JSON.stringify(reqSchema?.properties) : '{}',\n },\n },\n }\n : {\n content: {\n contentType: 'application/json',\n schema: {\n properties: '{}',\n type: 'object',\n },\n },\n }\n\n obj['requestBody'] = requestBodyData\n }\n\n return obj\n }),\n }))\n\n return transformedPaths\n}\n\nconst validateBodyForResponse = (content, method) => {\n let _content = JSON.parse((content?.schema as any)?.properties as string)\n // if (method == 'get') {\n // if (!_content?.body) {\n // _content = {\n // body: _content,\n // }\n // }\n // }\n return _content\n}\n\nexport const transformPathsArrayToOrigin = (paths: TransformedPathsArray): OpenAPIFile['paths'] => {\n return paths.reduce((acc, { path, methods }) => {\n acc[path] = methods.reduce(\n (methodAcc, { type, tags, responses, summary, requestBody, ...rest }) => {\n // Initialize the method object\n methodAcc[type] = {\n ...rest,\n tags,\n summary,\n responses: responses.reduce((respAcc, { code, content }) => {\n respAcc[code] = {\n description: 'Success', // Assuming this is static from the original data\n content: content.contentType\n ? {\n [content.contentType]: {\n schema: {\n ...(content.schema as object),\n properties: validateBodyForResponse(content, type),\n },\n },\n }\n : {},\n }\n return respAcc\n }, {} as Record<string, any>),\n }\n\n const parsedRequestBodyProps =\n type !== 'get' ? JSON.parse(requestBody.content.schema.properties) : {}\n // Add requestBody for non-GET methods\n if (type !== 'get') {\n methodAcc[type].requestBody = {\n content: {\n [requestBody.content.contentType]: {\n schema: {\n ...requestBody.content.schema,\n properties: parsedRequestBodyProps,\n },\n },\n },\n }\n }\n\n return methodAcc\n },\n {} as Record<string, any>\n )\n\n return acc\n }, {} as OpenAPIFile['paths'])\n}\n"],"names":["transformOpenApiObject","openApiJson","components","securitySchemes","authKey","_a","Object","keys","at","type","_d","_c","_b","Public","scheme","tags","assign","paths","transformPathsToArray","transformOpenApiObjectToOrigin","values","object","transformPathsArrayToOrigin","toLowerCase","in","entries","map","path","methods","method","methodProps","obj","summary","responses","code","codeProps","contentType","content","schema","properties","JSON","stringify","_e","parameters","requestBody","reqSchema","requestBodyData","validateBodyForResponse","parse","reduce","acc","methodAcc","rest","__rest","respAcc","description","parsedRequestBodyProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"layout.helper.js","sources":["../../../src/helpers/layout.helper.ts"],"sourcesContent":["import { TransformedPathsArray } from '@entities/layout.type'\nimport { OpenAPIFile, SecurityScheme } from '@entities/openApi'\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\n\nexport const transformOpenApiObject = (openApiJson: OpenAPIFile): TransformedOpenApi => {\n if (openApiJson.components && openApiJson.components.securitySchemes) {\n const authKey = Object.keys(openApiJson.components.securitySchemes)?.at(0)\n if (authKey) {\n openApiJson.components.securitySchemes[authKey].type = openApiJson?.components\n ?.securitySchemes?.[authKey]?.type as SecurityScheme['type']\n }\n } else {\n openApiJson.components = {\n securitySchemes: {\n Public: {\n type: 'http',\n scheme: 'public',\n },\n },\n }\n }\n\n if (!openApiJson.tags) {\n openApiJson.tags = []\n }\n\n return {\n ...openApiJson,\n paths: transformPathsToArray(openApiJson.paths),\n } as TransformedOpenApi\n}\n\nexport const transformOpenApiObjectToOrigin = (values: TransformedOpenApi): OpenAPIFile => {\n const object = {\n ...values,\n paths: transformPathsArrayToOrigin(values.paths),\n }\n if (object.components && object.components.securitySchemes) {\n const authKey = Object.keys(object.components.securitySchemes)?.at(0)\n if (authKey) {\n if (object.components.securitySchemes[authKey].type.toLowerCase() == 'APIKEY'.toLowerCase()) {\n object.components.securitySchemes[authKey].in = object.components.securitySchemes[authKey]\n .in as SecurityScheme['in']\n }\n object.components.securitySchemes[authKey].type = object?.components?.securitySchemes?.[\n authKey\n ]?.type as SecurityScheme['type']\n }\n }\n return object\n}\n\nexport const transformPathsToArray = (paths: OpenAPIFile['paths']): TransformedPathsArray | any => {\n const transformedPaths = Object.entries(paths).map(([path, methods]) => ({\n path,\n methods: Object.entries(methods).map(([method, methodProps]) => {\n const obj: any = {\n ...methodProps,\n type: method,\n tags: methodProps.tags || [],\n summary: methodProps.summary || '',\n responses: Object.entries(methodProps.responses).map(([code, codeProps]) => {\n const contentType = Object.keys(codeProps.content || {})[0]\n const headers = !codeProps?.headers ? {} : codeProps.headers\n return {\n code,\n headers,\n content: {\n contentType,\n schema: {\n ...codeProps.content?.[contentType]?.schema,\n properties: JSON.stringify(codeProps.content?.[contentType]?.schema?.properties),\n },\n },\n }\n }),\n }\n // Add parameters if it does not exist in the original JSON\n if (!methodProps?.parameters) {\n obj.parameters = []\n }\n\n // load response headers parameters\n\n if (method.toLowerCase() != 'get') {\n const contentType = Object.keys(methodProps?.requestBody?.content || {})[0]\n const reqSchema = methodProps?.requestBody?.content?.schema\n const requestBodyData = methodProps?.requestBody?.content?.schema?.properties\n ? {\n content: {\n contentType,\n schema: {\n ...reqSchema,\n properties: reqSchema?.properties ? JSON.stringify(reqSchema?.properties) : '{}',\n },\n },\n }\n : {\n content: {\n contentType: 'application/json',\n schema: {\n properties: '{}',\n type: 'object',\n },\n },\n }\n\n obj['requestBody'] = requestBodyData\n }\n return obj\n }),\n }))\n\n return transformedPaths\n}\n\nconst validateBodyForResponse = (content, method) => {\n if (!(content?.schema as any) || !(content?.schema as any)?.properties) {\n return {}\n }\n let _content = JSON.parse((content?.schema as any)?.properties as string)\n // if (method == 'get') {\n // if (!_content?.body) {\n // _content = {\n // body: _content,\n // }\n // }\n // }\n return _content\n}\n\nexport const transformPathsArrayToOrigin = (paths: TransformedPathsArray): OpenAPIFile['paths'] => {\n return paths.reduce((acc, { path, methods }) => {\n acc[path] = methods.reduce(\n (methodAcc, { type, tags, responses, summary, requestBody, ...rest }) => {\n // Initialize the method object\n methodAcc[type] = {\n ...rest,\n tags,\n summary,\n responses: responses.reduce((respAcc, { code, content, headers }) => {\n const formattedHeaders: Record<string, any> = {}\n if (headers) {\n for (const [key, value] of Object.entries(headers)) {\n formattedHeaders[key] = {\n description: value.description || '',\n required: value.required || false,\n schema: value.schema || {},\n }\n }\n }\n respAcc[code] = {\n description: 'Success', // Assuming this is static from the original data\n content: content.contentType\n ? {\n [content.contentType]: {\n schema: {\n ...(content.schema as object),\n properties: validateBodyForResponse(content, type),\n },\n },\n }\n : {},\n headers: formattedHeaders,\n }\n return respAcc\n }, {} as Record<string, any>),\n }\n\n const parsedRequestBodyProps =\n type !== 'get' ? JSON.parse(requestBody.content.schema.properties) : {}\n // Add requestBody for non-GET methods\n if (type !== 'get') {\n methodAcc[type].requestBody = {\n content: {\n [requestBody.content.contentType]: {\n schema: {\n ...requestBody.content.schema,\n properties: parsedRequestBodyProps,\n },\n },\n },\n }\n }\n\n return methodAcc\n },\n {} as Record<string, any>\n )\n\n return acc\n }, {} as OpenAPIFile['paths'])\n}\n"],"names":["transformOpenApiObject","openApiJson","components","securitySchemes","authKey","_a","Object","keys","at","type","_d","_c","_b","Public","scheme","tags","assign","paths","transformPathsToArray","transformOpenApiObjectToOrigin","values","object","transformPathsArrayToOrigin","toLowerCase","in","entries","map","path","methods","method","methodProps","obj","summary","responses","code","codeProps","contentType","content","headers","schema","properties","JSON","stringify","_e","parameters","requestBody","reqSchema","requestBodyData","validateBodyForResponse","parse","reduce","acc","methodAcc","rest","__rest","respAcc","formattedHeaders","key","value","description","required","parsedRequestBodyProps"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as e}from"../../../../_virtual/jsx-runtime.js";import{useState as o}from"react";import s from"./style.module.scss.js";import t from"../../../components/SVGLoader/SVGLoader.js";import r from"../../../assets/icons/copy.svg.js";import{copyToClipboard as m}from"../../../utils/index.js";import i from"../../../../node_modules/react-syntax-highlighter/dist/esm/light.js";import l from"../../../../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/stackoverflow-light.js";import a from"../../../../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/stackoverflow-dark.js";const d=({code:d})=>{const[c,h]=o("DARK");return e.jsxs("div",{className:s.codebox,children:[e.jsxs("div",{className:s.codebox_header,children:[e.jsx("div",{role:"button",tabIndex:-1,onClick:()=>"LIGHT"!==c&&h("LIGHT"),className:`${s.codebox_header_themeToggle} ${s.codebox_header_themeToggle_light}`,title:"Light theme"}),e.jsx("div",{role:"button",tabIndex:-1,onClick:()=>"DARK"!==c&&h("DARK"),className:`${s.codebox_header_themeToggle} ${s.codebox_header_themeToggle_dark}`,title:"Dark theme"}),e.jsx(t,{src:r,width:"0.75rem",height:"0.75rem",className:s.codebox_header_copyIcon,onClick:()=>m(d)})]}),e.jsx(i,{language:"json",style:"LIGHT"===c?l:a,showLineNumbers:!0,wrapLines:!0,customStyle:{margin:0,height:"13.75rem",overflowY:"auto",padding:"0.75rem 1rem 0 1.5rem",backgroundColor:"DARK"===c?"#455162":"#F7F7F7",fontSize:"0.75rem"},lineProps:{className:"custom-code-line"},children:d})]})};export{d as default};
|
|
2
|
+
//# sourceMappingURL=Codebox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Codebox.js","sources":["../../../../../src/layout/docsComponents/Codebox/Codebox.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { Light as SyntaxHighlighter } from 'react-syntax-highlighter'\nimport {\n stackoverflowDark,\n stackoverflowLight,\n} from 'react-syntax-highlighter/dist/esm/styles/hljs'\nimport styles from './style.module.scss'\nimport SVGLoader from '../../../components/SVGLoader/SVGLoader'\nimport { Copy } from '../../../assets/icons'\nimport { copyToClipboard } from '../../../utils'\n\nconst Codebox = ({ code }: { code: string }) => {\n const [theme, setTheme] = useState<'LIGHT' | 'DARK'>('DARK')\n\n return (\n <div className={styles.codebox}>\n <div className={styles.codebox_header}>\n <div\n role=\"button\"\n tabIndex={-1}\n onClick={() => theme !== 'LIGHT' && setTheme('LIGHT')}\n className={`${styles.codebox_header_themeToggle} ${styles.codebox_header_themeToggle_light}`}\n title=\"Light theme\"\n ></div>\n <div\n role=\"button\"\n tabIndex={-1}\n onClick={() => theme !== 'DARK' && setTheme('DARK')}\n className={`${styles.codebox_header_themeToggle} ${styles.codebox_header_themeToggle_dark}`}\n title=\"Dark theme\"\n ></div>\n <SVGLoader\n src={Copy}\n width=\"0.75rem\"\n height=\"0.75rem\"\n className={styles.codebox_header_copyIcon}\n onClick={() => copyToClipboard(code)}\n />\n </div>\n <SyntaxHighlighter\n language=\"json\"\n style={theme === 'LIGHT' ? stackoverflowLight : stackoverflowDark}\n showLineNumbers\n wrapLines\n customStyle={{\n margin: 0,\n height: '13.75rem',\n overflowY: 'auto',\n padding: '0.75rem 1rem 0 1.5rem',\n backgroundColor: theme === 'DARK' ? '#455162' : '#F7F7F7',\n fontSize: '0.75rem',\n }}\n lineProps={{ className: 'custom-code-line' }}\n >\n {code}\n </SyntaxHighlighter>\n </div>\n )\n}\n\nexport default Codebox\n"],"names":["Codebox","code","theme","setTheme","useState","_jsxs","className","styles","codebox","children","codebox_header","_jsx","role","tabIndex","onClick","codebox_header_themeToggle","codebox_header_themeToggle_light","title","jsx","codebox_header_themeToggle_dark","SVGLoader","src","Copy","width","height","codebox_header_copyIcon","copyToClipboard","SyntaxHighlighter","language","style","stackoverflowLight","stackoverflowDark","showLineNumbers","wrapLines","customStyle","margin","overflowY","padding","backgroundColor","fontSize","lineProps"],"mappings":"glBAWA,MAAMA,EAAU,EAAGC,WACjB,MAAOC,EAAOC,GAAYC,EAA2B,QAErD,OACEC,OAAK,MAAA,CAAAC,UAAWC,EAAOC,QAAOC,SAAA,CAC5BJ,EAAAA,KAAK,MAAA,CAAAC,UAAWC,EAAOG,eAAcD,SAAA,CACnCE,aACEC,KAAK,SACLC,UAAW,EACXC,QAAS,IAAgB,UAAVZ,GAAqBC,EAAS,SAC7CG,UAAW,GAAGC,EAAOQ,8BAA8BR,EAAOS,mCAC1DC,MAAM,gBAERN,EACEO,IAAA,MAAA,CAAAN,KAAK,SACLC,UAAW,EACXC,QAAS,IAAgB,SAAVZ,GAAoBC,EAAS,QAC5CG,UAAW,GAAGC,EAAOQ,8BAA8BR,EAAOY,kCAC1DF,MAAM,eAERN,EAAAO,IAACE,EAAS,CACRC,IAAKC,EACLC,MAAM,UACNC,OAAO,UACPlB,UAAWC,EAAOkB,wBAClBX,QAAS,IAAMY,EAAgBzB,QAGnCU,MAACgB,EAAiB,CAChBC,SAAS,OACTC,MAAiB,UAAV3B,EAAoB4B,EAAqBC,EAChDC,iBAAe,EACfC,WAAS,EACTC,YAAa,CACXC,OAAQ,EACRX,OAAQ,WACRY,UAAW,OACXC,QAAS,wBACTC,gBAA2B,SAAVpC,EAAmB,UAAY,UAChDqC,SAAU,WAEZC,UAAW,CAAElC,UAAW,oBAAoBG,SAE3CR,MAGN"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as
|
|
1
|
+
import{j as e}from"../../../../_virtual/jsx-runtime.js";import{useState as s}from"react";import o from"../Codebox/Codebox.js";import{d as i}from"../../../../_virtual/index.js";import{httpStatusCodes as l}from"../../../constants/index.js";import{handleStatusColor as t}from"../../../helpers/methodAccordion.helper.js";import d from"./style.module.scss.js";const n=l.map((s=>({label:e.jsxs("div",{className:d.statusCodeOptionContainer,children:[e.jsx("div",{className:d.statusCodeOptionCircle,style:{backgroundColor:t(s)}}),e.jsx("span",{children:s})]}),value:String(s)}))),a=({data:l})=>{var t,a;const[r,c]=s(n[4]),u=Object.entries(l.responses).map((([e,s])=>({code:e,data:s}))).find((e=>e.code===r.value));return e.jsxs("aside",{className:d.apiDocsAside,children:[e.jsx("h2",{className:d.apiDocsAside_title,children:l.summary}),e.jsxs("h4",{className:d.apiDocsAside_subtitle,children:[e.jsx("span",{className:d.apiDocsAside_subtitle_method,"data-method":l.method,children:l.method})," ",e.jsx("span",{children:l.path})]}),(null===(t=null==l?void 0:l.requestBody)||void 0===t?void 0:t.content)&&e.jsxs("div",{className:d.codeboxSection,children:[e.jsx("div",{className:d.codeboxHeader,children:e.jsx("h6",{className:d.codeboxTitle,children:"Request"})}),e.jsx(o,{code:(()=>{var e,s,o;if(null===(e=null==l?void 0:l.requestBody)||void 0===e?void 0:e.content){const e=Object.keys(null===(s=null==l?void 0:l.requestBody)||void 0===s?void 0:s.content)[0];return JSON.stringify(null===(o=null==l?void 0:l.requestBody)||void 0===o?void 0:o.content[e],null,2)}return"{}"})()})]}),(null===(a=Object.keys((null==l?void 0:l.responses)||{}))||void 0===a?void 0:a.length)>0&&e.jsxs("div",{className:d.codeboxSection,children:[e.jsxs("div",{className:`${d.codeboxHeader}`,children:[e.jsx("h6",{className:d.codeboxTitle,children:"Response"}),e.jsx(i.SelectGroup,{size:"small",withSearch:!1,isMultiple:!1,clearable:!1,placeholder:"200",options:[{list:n}],value:r,onChange:e=>{c(e)}})]}),e.jsx(o,{code:(()=>{var e,s;if(null==u?void 0:u.data){const o=Object.keys(null===(e=u.data)||void 0===e?void 0:e.content)[0];return JSON.stringify(null===(s=u.data)||void 0===s?void 0:s.content[o],null,2)}return"{}"})()})]})]})};export{a as default};
|
|
2
2
|
//# sourceMappingURL=DocsAside.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocsAside.js","sources":["../../../../../src/layout/docsComponents/DocsAside/DocsAside.tsx"],"sourcesContent":["import React from 'react'\nimport './style.scss'\n\nconst DocsAside = () => {\n return <aside className=\"
|
|
1
|
+
{"version":3,"file":"DocsAside.js","sources":["../../../../../src/layout/docsComponents/DocsAside/DocsAside.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { EndpointData } from 'src/layout/docsLayout'\nimport Codebox from '../Codebox/Codebox'\nimport { Option, SelectGroup } from 'digitinary-ui'\nimport { httpStatusCodes } from '../../../constants/index'\nimport { handleStatusColor } from '../../../helpers/methodAccordion.helper'\nimport styles from './style.module.scss'\n\nconst httpStatusCodeOptions: Option[] = httpStatusCodes.map((code) => ({\n label: (\n <div className={styles.statusCodeOptionContainer}>\n <div\n className={styles.statusCodeOptionCircle}\n style={{ backgroundColor: handleStatusColor(code) }}\n ></div>\n <span>{code}</span>\n </div>\n ),\n value: String(code),\n}))\n\nconst DocsAside = ({ data }: { data: EndpointData }) => {\n const [selectedResStatusCode, setSelectedResStatusCode] = useState(httpStatusCodeOptions[4])\n const currentResponse = Object.entries(data.responses)\n .map(([code, data]) => ({ code, data }))\n .find((res) => res.code === selectedResStatusCode.value)\n\n const stringifyRequestBody = () => {\n if (data?.requestBody?.content) {\n const contentKey = Object.keys(data?.requestBody?.content)[0]\n return JSON.stringify(data?.requestBody?.content[contentKey], null, 2)\n } else {\n return '{}'\n }\n }\n\n const stringifyResponseBody = () => {\n if (currentResponse?.data) {\n const contentKey = Object.keys(currentResponse.data?.content)[0]\n return JSON.stringify(currentResponse.data?.content[contentKey], null, 2)\n } else {\n return '{}'\n }\n }\n\n return (\n <aside className={styles.apiDocsAside}>\n <h2 className={styles.apiDocsAside_title}>{data.summary}</h2>\n <h4 className={styles.apiDocsAside_subtitle}>\n <span className={styles.apiDocsAside_subtitle_method} data-method={data.method}>\n {data.method}\n </span>{' '}\n <span>{data.path}</span>\n </h4>\n {data?.requestBody?.content && (\n <div className={styles.codeboxSection}>\n <div className={styles.codeboxHeader}>\n <h6 className={styles.codeboxTitle}>Request</h6>\n </div>\n\n <Codebox code={stringifyRequestBody()} />\n </div>\n )}\n {Object.keys(data?.responses || {})?.length > 0 && (\n <div className={styles.codeboxSection}>\n <div className={`${styles.codeboxHeader}`}>\n <h6 className={styles.codeboxTitle}>Response</h6>\n <SelectGroup\n size=\"small\"\n withSearch={false}\n isMultiple={false}\n clearable={false}\n placeholder=\"200\"\n options={[\n {\n list: httpStatusCodeOptions,\n },\n ]}\n value={selectedResStatusCode}\n onChange={(value) => {\n setSelectedResStatusCode(value)\n }}\n />\n </div>\n\n <Codebox code={stringifyResponseBody()} />\n </div>\n )}\n </aside>\n )\n}\n\nexport default DocsAside\n"],"names":["httpStatusCodeOptions","httpStatusCodes","map","code","label","_jsxs","className","styles","statusCodeOptionContainer","children","_jsx","statusCodeOptionCircle","style","backgroundColor","handleStatusColor","value","String","DocsAside","data","selectedResStatusCode","setSelectedResStatusCode","useState","currentResponse","Object","entries","responses","find","res","apiDocsAside","jsx","apiDocsAside_title","summary","jsxs","apiDocsAside_subtitle","apiDocsAside_subtitle_method","method","path","_a","requestBody","content","codeboxSection","codeboxHeader","codeboxTitle","Codebox","contentKey","keys","_b","JSON","stringify","_c","stringifyRequestBody","length","SelectGroup","size","withSearch","isMultiple","clearable","placeholder","options","list","onChange","stringifyResponseBody"],"mappings":"mWAQA,MAAMA,EAAkCC,EAAgBC,KAAKC,IAAU,CACrEC,MACEC,EAAAA,KAAK,MAAA,CAAAC,UAAWC,EAAOC,0BAAyBC,SAAA,CAC9CC,EAAAA,IACE,MAAA,CAAAJ,UAAWC,EAAOI,uBAClBC,MAAO,CAAEC,gBAAiBC,EAAkBX,MAE9CO,MAAA,OAAA,CAAAD,SAAON,OAGXY,MAAOC,OAAOb,OAGVc,EAAY,EAAGC,mBACnB,MAAOC,EAAuBC,GAA4BC,EAASrB,EAAsB,IACnFsB,EAAkBC,OAAOC,QAAQN,EAAKO,WACzCvB,KAAI,EAAEC,EAAMe,MAAK,CAAQf,OAAMe,WAC/BQ,MAAMC,GAAQA,EAAIxB,OAASgB,EAAsBJ,QAoBpD,OACEV,EAAAA,KAAO,QAAA,CAAAC,UAAWC,EAAOqB,aAAYnB,SAAA,CACnCC,EAAImB,IAAA,KAAA,CAAAvB,UAAWC,EAAOuB,mBAAqBrB,SAAAS,EAAKa,UAChD1B,EAAA2B,KAAA,KAAA,CAAI1B,UAAWC,EAAO0B,sBAAqBxB,SAAA,CACzCC,cAAMJ,UAAWC,EAAO2B,6BAA2C,cAAAhB,EAAKiB,OAAM1B,SAC3ES,EAAKiB,SACA,IACRzB,EAAAmB,IAAA,OAAA,CAAApB,SAAOS,EAAKkB,WAEM,QAAnBC,EAAAnB,eAAAA,EAAMoB,mBAAa,IAAAD,OAAA,EAAAA,EAAAE,UAClBlC,cAAKC,UAAWC,EAAOiC,yBACrB9B,EAAAA,IAAK,MAAA,CAAAJ,UAAWC,EAAOkC,cAAahC,SAClCC,EAAAA,UAAIJ,UAAWC,EAAOmC,aAA0BjC,SAAA,cAGlDC,EAAAA,IAACiC,EAAQ,CAAAxC,KAjCY,gBAC3B,GAAqB,QAAjBkC,EAAAnB,aAAI,EAAJA,EAAMoB,mBAAW,IAAAD,OAAA,EAAAA,EAAEE,QAAS,CAC9B,MAAMK,EAAarB,OAAOsB,KAAwB,QAAnBC,EAAA5B,eAAAA,EAAMoB,mBAAa,IAAAQ,OAAA,EAAAA,EAAAP,SAAS,GAC3D,OAAOQ,KAAKC,UAA6B,UAAnB9B,aAAI,EAAJA,EAAMoB,mBAAa,IAAAW,OAAA,EAAAA,EAAAV,QAAQK,GAAa,KAAM,EACrE,CACC,MAAO,IACR,EA2BoBM,SAGgB,UAAlC3B,OAAOsB,MAAK3B,aAAA,EAAAA,EAAMO,YAAa,WAAG,IAAAqB,OAAA,EAAAA,EAAEK,QAAS,GAC5C9C,EAAAA,YAAKC,UAAWC,EAAOiC,eACrB/B,SAAA,CAAAJ,EAAAA,KAAA,MAAA,CAAKC,UAAW,GAAGC,EAAOkC,gBACxBhC,SAAA,CAAAC,EAAAA,IAAA,KAAA,CAAIJ,UAAWC,EAAOmC,mCACtBhC,MAAC0C,EAAAA,YACC,CAAAC,KAAK,QACLC,YAAY,EACZC,YAAY,EACZC,WAAW,EACXC,YAAY,MACZC,QAAS,CACP,CACEC,KAAM3D,IAGVe,MAAOI,EACPyC,SAAW7C,IACTK,EAAyBL,EAAM,OAKrCL,EAAAmB,IAACc,EAAQ,CAAAxC,KAjDa,cAC5B,GAAImB,aAAe,EAAfA,EAAiBJ,KAAM,CACzB,MAAM0B,EAAarB,OAAOsB,aAAKR,EAAAf,EAAgBJ,2BAAMqB,SAAS,GAC9D,OAAOQ,KAAKC,UAA8B,QAApBF,EAAAxB,EAAgBJ,YAAI,IAAA4B,OAAA,EAAAA,EAAEP,QAAQK,GAAa,KAAM,EACxE,CACC,MAAO,IACR,EA2CoBiB,UAItB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as
|
|
1
|
+
import{j as t}from"../../../../_virtual/jsx-runtime.js";import{TagPage as e}from"./TagPage/index.js";import{EndpointPage as a}from"./EndpointPage/index.js";const s=({data:s,activeType:i,setActiveItemData:d,setActiveType:n,setExpandedSections:o})=>t.jsx("main",{children:"OVERVIEW"===i?t.jsx(e,{data:s,setActiveItemData:d,setActiveType:n,setExpandedSections:o}):t.jsx(a,{data:s})});export{s as default};
|
|
2
2
|
//# sourceMappingURL=DocsContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocsContent.js","sources":["../../../../../src/layout/docsComponents/DocsContent/DocsContent.tsx"],"sourcesContent":["import React from 'react'\nimport './style.scss'\nimport SVGLoader from '../../../components/SVGLoader/SVGLoader'\nimport { CopySticker } from '../../../assets/icons/index'\nimport { TagPage } from './TagPage'\nimport { EndpointPage } from './EndpointPage'\n\nconst DocsContent = (
|
|
1
|
+
{"version":3,"file":"DocsContent.js","sources":["../../../../../src/layout/docsComponents/DocsContent/DocsContent.tsx"],"sourcesContent":["import React from 'react'\nimport './style.scss'\nimport SVGLoader from '../../../components/SVGLoader/SVGLoader'\nimport { CopySticker } from '../../../assets/icons/index'\nimport { TagPage } from './TagPage'\nimport { EndpointPage } from './EndpointPage'\nimport { EndpointData, OverviewData } from 'src/layout/docsLayout'\n\nconst DocsContent = ({\n data,\n activeType,\n setActiveItemData,\n setActiveType,\n setExpandedSections,\n}: {\n data: OverviewData | EndpointData\n activeType: 'OVERVIEW' | 'ENDPOINT'\n}) => {\n return (\n <main>\n {activeType === 'OVERVIEW' ? (\n <TagPage\n data={data}\n setActiveItemData={setActiveItemData}\n setActiveType={setActiveType}\n setExpandedSections={setExpandedSections}\n />\n ) : (\n <EndpointPage data={data} />\n )}\n </main>\n )\n}\n\nexport default DocsContent\n"],"names":["DocsContent","data","activeType","setActiveItemData","setActiveType","setExpandedSections","_jsx","children","TagPage","EndpointPage"],"mappings":"4JAQA,MAAMA,EAAc,EAClBC,OACAC,aACAC,oBACAC,gBACAC,yBAMEC,MACG,OAAA,CAAAC,SAAe,aAAfL,EACCI,MAACE,EAAO,CACNP,KAAMA,EACNE,kBAAmBA,EACnBC,cAAeA,EACfC,oBAAqBA,IAGvBC,MAACG,EAAY,CAACR,KAAMA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"../../../../../_virtual/jsx-runtime.js";import s from"../../../../components/SVGLoader/SVGLoader.js";import
|
|
1
|
+
import{j as e}from"../../../../../_virtual/jsx-runtime.js";import s from"../../../../components/SVGLoader/SVGLoader.js";import l from"../../../../assets/icons/DownArrow.svg.js";import a from"../../../../assets/icons/CopySticker.svg.js";import i from"../../../../assets/icons/RequestOption.svg.js";import r from"../../../../assets/icons/ArrowBack.svg.js";import{d}from"../../../../../_virtual/index.js";import{useState as t,useEffect as o}from"react";import{handleStatusColor as n}from"../../../../helpers/methodAccordion.helper.js";import{httpStatusCodes as c}from"../../../../constants/index.js";import h from"../../Codebox/style.module.scss.js";import m from"../../../../components/Tooltip/Tooltip.js";const j=({data:j})=>{var x,p,v,u,b;const[N,y]=t("header"),C=c.map((s=>({label:e.jsxs("div",{className:"statusCodeOptionContainer",children:[e.jsx("div",{className:"statusCodeOptionCircle",style:{backgroundColor:n(s)}}),e.jsx("span",{children:s})]}),value:s}))),[f,w]=t(null),[g,k]=t(C[4]),[q,A]=t({});return((null==j?void 0:j.parameters)||[]).filter((e=>{var s;return(null===(s=e.in)||void 0===s?void 0:s.toLowerCase())===N.toLowerCase()})),o((()=>{if(g&&g.value){const e=null==j?void 0:j.responses[g.value];A(null==e?void 0:e.headers)}}),[g]),e.jsxs("div",{className:"api-details-expanded",children:[e.jsxs("div",{className:"test-button",children:[e.jsx("button",{className:"back-button",onClick:()=>window.history.back(),children:e.jsx(s,{src:r})}),e.jsx(m,{content:"Comming soon",children:e.jsx("button",{className:"disabled",children:"Test"})})]}),e.jsx("h3",{children:" Api Name"}),e.jsx("h1",{className:"api-title",children:null===(x=null==j?void 0:j.api)||void 0===x?void 0:x.title}),e.jsxs("div",{className:"url-box",children:[e.jsxs("div",{style:{textAlign:"center"},children:[e.jsx("span",{className:`method-label ${null===(p=null==j?void 0:j.method)||void 0===p?void 0:p.toLowerCase()}`,children:j.method}),e.jsx("span",{className:"url-text",children:null==j?void 0:j.path})]}),e.jsx("span",{className:"icon",onClick:()=>navigator.clipboard.writeText(null==j?void 0:j.path),children:e.jsx(s,{src:a})})]}),e.jsx("p",{className:"api-desc",children:(null===(v=null==j?void 0:j.api)||void 0===v?void 0:v.description)||"No Description"}),e.jsx("h3",{children:"Request"}),e.jsxs("div",{className:"request-section",children:[e.jsx("div",{className:"request-tabs",children:["header","path","query","Body"].map((l=>e.jsxs("button",{className:"tab "+(N===l?"active":""),onClick:()=>y(l),children:[e.jsx(s,{src:i,className:"icon-left"}),e.jsx("span",{className:"tab-label",children:"requestBody"===l?"Request Body":l.charAt(0).toUpperCase()+l.slice(1)})]},l)))}),e.jsx("div",{className:"table-wrapper",children:e.jsxs("table",{className:"param-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{className:"head-table-label",children:"Parameter Name"}),e.jsx("th",{className:"head-table-label",children:"Required"}),e.jsx("th",{className:"head-table-label",children:"Type"}),e.jsx("th",{className:"head-table-label",children:"Enum"}),e.jsx("th",{className:"head-table-label",children:"Description"})]})}),e.jsx("tbody",{children:null===(u=j.parameters)||void 0===u?void 0:u.filter((e=>{var s;return(null===(s=e.in)||void 0===s?void 0:s.toLowerCase())===N.toLowerCase()})).map(((a,i)=>{var r,d;return e.jsxs("tr",{children:[e.jsx("td",{children:a.name}),e.jsx("td",{children:a.required?"True":"False"}),e.jsx("td",{children:(null===(r=a.schema)||void 0===r?void 0:r.type)||"-"}),e.jsx("td",{children:Array.isArray(null===(d=a.schema)||void 0===d?void 0:d.enum)?a.schema.enum.join(" / "):"-"}),e.jsxs("td",{className:"desc-cell",children:[e.jsx("div",{className:"desc-text "+(f===i?"expanded":""),children:a.description||"No description"}),e.jsx("button",{className:"desc-toggle",onClick:()=>w(f===i?null:i),children:e.jsx(s,{src:l,className:f===i?"rotated":""})})]})]},i)}))})]})})]}),e.jsxs("div",{className:"response-section",children:[e.jsx("h3",{children:"Response"}),e.jsx("div",{style:{width:"7.5rem",marginLeft:"auto"},children:(null===(b=Object.keys((null==j?void 0:j.responses)||{}))||void 0===b?void 0:b.length)>0&&e.jsx("div",{className:h.codeboxSection,children:e.jsx("div",{className:`${h.codeboxHeader}`,children:e.jsx(d.SelectGroup,{size:"small",withSearch:!1,isMultiple:!1,clearable:!1,placeholder:"200",options:[{list:C}],value:g,onChange:e=>{k(e)}})})})}),e.jsxs("button",{className:"tab active ",children:[e.jsx(s,{src:i,className:"icon-left"}),"Header"]}),e.jsx("div",{className:"table-wrapper",children:e.jsxs("table",{className:"param-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{className:"head-table-label",children:"Header Name"}),e.jsx("th",{className:"head-table-label",children:"Required"}),e.jsx("th",{className:"head-table-label",children:"Type"}),e.jsx("th",{className:"head-table-label",children:"Enum"}),e.jsx("th",{className:"head-table-label",children:"Description"})]})}),e.jsx("tbody",{children:Object.keys(q).map(((s,l)=>{var a,i,r,d,t,o,n;return e.jsxs("tr",{children:[e.jsx("td",{children:s}),e.jsx("td",{children:null===(a=q[s])||void 0===a?void 0:a.required.toString()}),e.jsx("td",{children:null===(r=null===(i=q[s])||void 0===i?void 0:i.schema)||void 0===r?void 0:r.type}),e.jsx("td",{children:null===(o=null===(t=null===(d=q[s])||void 0===d?void 0:d.schema)||void 0===t?void 0:t.enum)||void 0===o?void 0:o.join("/")}),e.jsx("td",{children:null===(n=q[s])||void 0===n?void 0:n.description})]})}))})]})})]})]})};export{j as EndpointPage};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../src/layout/docsComponents/DocsContent/EndpointPage/index.tsx"],"sourcesContent":["import './style.scss'\nimport SVGLoader from '../../../../components/SVGLoader/SVGLoader'\nimport {\n ArrowBack,\n CopySticker,\n DownArrowIcon,\n RequestOption,\n} from '../../../../assets/icons/index'\nimport { ArrowIcon, SelectGroup } from 'digitinary-ui'\nimport { useState } from 'react'\n\nexport const EndpointPage = () => {\n const [expanded, setExpanded] = useState(null)\n\n const requestTableData = [\n {\n name: 'Parameter Name',\n required: 'True',\n type: 'String',\n enum: 'Active/Expired/Cancelled',\n description:\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.',\n },\n {\n name: 'Parameter Name',\n required: 'False',\n type: 'Boolean',\n enum: 'Active/Expired/Cancelled',\n description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.sssssss',\n },\n {\n name: 'Parameter Name',\n required: 'True',\n type: 'Object',\n enum: '-',\n description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.sssssss',\n },\n {\n name: 'Parameter Name',\n required: 'True',\n type: 'Array_String',\n enum: '-',\n description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.sssssss',\n },\n ]\n\n return (\n <div className=\"api-details-expanded\">\n <div className=\"test-button\">\n <button className=\"back-button\" onClick={() => window.history.back()}>\n <SVGLoader src={ArrowBack} />\n </button>\n\n <button className=\"disabled\">Test</button>\n </div>\n <h3> Api Name</h3>\n <h1 className=\"api-title\">Endpoint Name</h1>\n <div className=\"url-box\">\n <div style={{ textAlign: 'center' }}>\n <span className=\"method-label post\">Post</span>\n <span className=\"url-text\">https://apigw sdb-1.test.dgate.digitinary.net/test</span>\n </div>\n\n <SVGLoader src={CopySticker} className=\"copy-icon\" />\n </div>\n\n <p className=\"api-desc\">Endpoint Description</p>\n\n <h3>Request</h3>\n\n <div className=\"request-section\">\n <div className=\"request-tabs\">\n <button className=\"tab\">\n <SVGLoader src={RequestOption} className=\"icon-left\" />\n Header\n </button>\n <button className=\"tab\">\n <SVGLoader src={RequestOption} className=\"icon-left\" />\n Path\n </button>\n <button className=\"tab\">\n <SVGLoader src={RequestOption} className=\"icon-left\" />\n Query\n </button>\n <button className=\"tab\">\n <SVGLoader src={RequestOption} className=\"icon-left\" />\n Request Body\n </button>\n </div>\n <div className=\"table-wrapper\">\n <table className=\"param-table\">\n <thead>\n <tr>\n <th className=\"head-table-label\">Parameter Name</th>\n <th className=\"head-table-label\">Required</th>\n <th className=\"head-table-label\">Type</th>\n <th className=\"head-table-label\">Enum</th>\n <th className=\"head-table-label\">Description</th>\n </tr>\n </thead>\n <tbody>\n {requestTableData.map((row, index) => (\n <tr key={index}>\n <td>{row.name}</td>\n <td>{row.required}</td>\n <td>{row.type}</td>\n <td>{row.enum}</td>\n <td className=\"desc-cell\">\n <div className={`desc-text ${expanded === index ? 'expanded' : ''}`}>\n {row.description}\n </div>\n <button\n className=\"desc-toggle\"\n onClick={() => setExpanded(expanded === index ? null : index)}\n >\n <SVGLoader\n src={DownArrowIcon}\n className={expanded === index ? 'rotated' : ''}\n />\n </button>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n\n <div className=\"response-section\">\n <div className=\"response-drop-test\">\n <SelectGroup\n className=\"response-drop\"\n withSearch={false}\n isMultiple={false}\n clearable={false}\n placeholder=\"200\"\n options={[]}\n //value={selectedStatusCode}\n onChange={(value) => {\n // setSelectedStatusCode(value)\n }}\n />\n </div>\n\n <h3>Response</h3>\n <button className=\"tab\">\n <SVGLoader src={RequestOption} className=\"icon-left\" />\n Header\n </button>\n\n <div className=\"table-wrapper\">\n <table className=\"param-table\">\n <thead>\n <tr>\n <th className=\"head-table-label\">Parameter Name</th>\n <th className=\"head-table-label\">Required</th>\n <th className=\"head-table-label\">Type</th>\n <th className=\"head-table-label\">Enum</th>\n <th className=\"head-table-label\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>Parameter Name</td>\n <td>True</td>\n <td>String</td>\n <td>Active/Expired/Cancelled</td>\n <td>Borem taciti dolor ...</td>\n </tr>\n <tr>\n <td>Parameter Name</td>\n <td>True</td>\n <td>Array_Object</td>\n <td>-</td>\n <td>Borem taciti dolor ...</td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n )\n}\n"],"names":["EndpointPage","expanded","setExpanded","useState","_jsxs","className","children","_jsx","onClick","window","history","back","SVGLoader","src","ArrowBack","jsxs","style","textAlign","jsx","CopySticker","RequestOption","name","required","type","enum","description","map","row","index","DownArrowIcon","SelectGroup","withSearch","isMultiple","clearable","placeholder","options","onChange","value"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../src/layout/docsComponents/DocsContent/EndpointPage/index.tsx"],"sourcesContent":["import './style.scss'\nimport SVGLoader from '../../../../components/SVGLoader/SVGLoader'\nimport {\n ArrowBack,\n CopySticker,\n DownArrowIcon,\n RequestOption,\n} from '../../../../assets/icons/index'\nimport { ArrowIcon, SelectGroup } from 'digitinary-ui'\nimport { useEffect, useState } from 'react'\nimport { EndpointData } from 'src/layout/docsLayout'\nimport { handleStatusColor } from '../../../../helpers/methodAccordion.helper'\nimport { httpStatusCodes } from '../../../../constants/index'\nimport styles from '../../Codebox/style.module.scss'\nimport Tooltip from '../../../../components/Tooltip/Tooltip'\n\nexport const EndpointPage = ({ data }) => {\n const [activeTab, setActiveTab] = useState('header')\n\n const httpStatusCodeOptions = httpStatusCodes.map((code) => ({\n label: (\n <div className={'statusCodeOptionContainer'}>\n <div\n className={'statusCodeOptionCircle'}\n style={{ backgroundColor: handleStatusColor(code) }}\n ></div>\n <span>{code}</span>\n </div>\n ),\n value: code,\n }))\n\n const [expanded, setExpanded] = useState(null)\n const [selectedResStatusCode, setSelectedResStatusCode] = useState(httpStatusCodeOptions[4])\n const [headersList, setHeadersList] = useState({})\n const requestTableData = (data?.parameters || []).filter(\n (param) => param.in?.toLowerCase() === activeTab.toLowerCase()\n )\n\n useEffect(() => {\n if (selectedResStatusCode && selectedResStatusCode.value) {\n const headerObj = data?.responses[selectedResStatusCode.value]\n setHeadersList(headerObj?.headers)\n }\n }, [selectedResStatusCode])\n\n return (\n <div className=\"api-details-expanded\">\n <div className=\"test-button\">\n <button className=\"back-button\" onClick={() => window.history.back()}>\n <SVGLoader src={ArrowBack} />\n </button>\n\n <Tooltip content=\"Comming soon\">\n <button className=\"disabled\">Test</button>\n </Tooltip>\n </div>\n <h3> Api Name</h3>\n <h1 className=\"api-title\">{data?.api?.title}</h1>\n <div className=\"url-box\">\n <div style={{ textAlign: 'center' }}>\n <span className={`method-label ${data?.method?.toLowerCase()}`}>{data.method}</span>\n <span className=\"url-text\">{data?.path}</span>\n </div>\n <span className=\"icon\" onClick={() => navigator.clipboard.writeText(data?.path)}>\n <SVGLoader src={CopySticker} />\n </span>\n </div>\n\n <p className=\"api-desc\">{data?.api?.description || 'No Description'}</p>\n\n <h3>Request</h3>\n\n <div className=\"request-section\">\n <div className=\"request-tabs\">\n {['header', 'path', 'query', 'Body'].map((tab) => (\n <button\n key={tab}\n className={`tab ${activeTab === tab ? 'active' : ''}`}\n onClick={() => setActiveTab(tab)}\n >\n <SVGLoader src={RequestOption} className=\"icon-left\" />\n <span className=\"tab-label\">\n {tab === 'requestBody'\n ? 'Request Body'\n : tab.charAt(0).toUpperCase() + tab.slice(1)}\n </span>\n </button>\n ))}\n </div>\n\n {\n <div className=\"table-wrapper\">\n <table className=\"param-table\">\n <thead>\n <tr>\n <th className=\"head-table-label\">Parameter Name</th>\n <th className=\"head-table-label\">Required</th>\n <th className=\"head-table-label\">Type</th>\n <th className=\"head-table-label\">Enum</th>\n <th className=\"head-table-label\">Description</th>\n </tr>\n </thead>\n <tbody>\n {data.parameters\n ?.filter((p) => p.in?.toLowerCase() === activeTab.toLowerCase())\n .map((row, index) => (\n <tr key={index}>\n <td>{row.name}</td>\n <td>{row.required ? 'True' : 'False'}</td>\n <td>{row.schema?.type || '-'}</td>\n <td>{Array.isArray(row.schema?.enum) ? row.schema.enum.join(' / ') : '-'}</td>\n <td className=\"desc-cell\">\n <div className={`desc-text ${expanded === index ? 'expanded' : ''}`}>\n {row.description || 'No description'}\n </div>\n <button\n className=\"desc-toggle\"\n onClick={() => setExpanded(expanded === index ? null : index)}\n >\n <SVGLoader\n src={DownArrowIcon}\n className={expanded === index ? 'rotated' : ''}\n />\n </button>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n }\n </div>\n\n <div className=\"response-section\">\n <h3>Response</h3>\n\n <div style={{ width: '7.5rem', marginLeft: 'auto' }}>\n {Object.keys(data?.responses || {})?.length > 0 && (\n <div className={styles.codeboxSection}>\n <div className={`${styles.codeboxHeader}`}>\n <SelectGroup\n size=\"small\"\n withSearch={false}\n isMultiple={false}\n clearable={false}\n placeholder=\"200\"\n options={[\n {\n list: httpStatusCodeOptions,\n },\n ]}\n value={selectedResStatusCode}\n onChange={(value) => {\n setSelectedResStatusCode(value)\n }}\n />\n </div>\n </div>\n )}\n </div>\n\n <button className=\"tab active \">\n <SVGLoader src={RequestOption} className=\"icon-left\" />\n Header\n </button>\n\n <div className=\"table-wrapper\">\n <table className=\"param-table\">\n <thead>\n <tr>\n <th className=\"head-table-label\">Header Name</th>\n <th className=\"head-table-label\">Required</th>\n <th className=\"head-table-label\">Type</th>\n <th className=\"head-table-label\">Enum</th>\n <th className=\"head-table-label\">Description</th>\n </tr>\n </thead>\n <tbody>\n {Object.keys(headersList).map((key, index) => (\n <tr>\n <td>{key}</td>\n <td>{headersList[key]?.required.toString()}</td>\n <td>{headersList[key]?.schema?.type}</td>\n <td>{headersList[key]?.schema?.enum?.join('/')}</td>\n <td>{headersList[key]?.description}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n )\n}\n"],"names":["EndpointPage","data","activeTab","setActiveTab","useState","httpStatusCodeOptions","httpStatusCodes","map","code","label","_jsxs","jsxs","className","children","_jsx","style","backgroundColor","handleStatusColor","value","expanded","setExpanded","selectedResStatusCode","setSelectedResStatusCode","headersList","setHeadersList","parameters","filter","param","in","_a","toLowerCase","useEffect","headerObj","responses","headers","jsx","onClick","window","history","back","SVGLoader","src","ArrowBack","Tooltip","content","api","title","textAlign","_b","method","path","navigator","clipboard","writeText","CopySticker","_c","description","tab","RequestOption","charAt","toUpperCase","slice","_d","p","row","index","name","required","schema","type","Array","isArray","enum","join","DownArrowIcon","width","marginLeft","Object","keys","_e","length","styles","codeboxSection","codeboxHeader","SelectGroup","size","withSearch","isMultiple","clearable","placeholder","options","list","onChange","key","toString","_f","_g"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as s}from"../../../../../_virtual/jsx-runtime.js";import e from"../../../../components/SVGLoader/SVGLoader.js";import i from"../../../../assets/icons/CopySticker.svg.js";import a from"../../../../assets/icons/arrowRightGray.svg.js";const r=({data:r,setActiveItemData:n,setActiveType:l,setExpandedSections:t})=>{var c,d;return s.jsxs("div",{className:"api-details-page",children:[s.jsx("h2",{className:"welcome",children:"Welcome to"}),s.jsx("h1",{className:"api-title",children:null==r?void 0:r.title}),s.jsxs("p",{className:"api-version",children:["API Version: ",s.jsx("span",{children:null==r?void 0:r.version})]}),s.jsxs("div",{className:"custom-url-input",children:[s.jsx("label",{className:"input-label",children:"API Base URL"}),s.jsxs("div",{className:"input-wrapper",children:[s.jsx("input",{type:"text",value:r&&r.servers&&r.servers.length>0?null===(c=r.servers[0])||void 0===c?void 0:c.url:"-",readOnly:!0}),s.jsx("span",{className:"icon",onClick:()=>{var s;return navigator.clipboard.writeText(`${r&&r.servers&&r.servers.length>0?null===(s=r.servers[0])||void 0===s?void 0:s.url:"-"}`)},children:s.jsx(e,{src:i})})]})]}),s.jsx("p",{className:"api-desc",children:"API Description"}),s.jsxs("div",{className:"api-product-tag",children:["Product with this API ",s.jsx("span",{className:"product-tag",children:r.associatedProduct.name})]}),s.jsx("h3",{className:"section-title",children:"Endpoints"}),Object.entries(null==r?void 0:r.tags).map((([i,c])=>s.jsxs("div",{className:"endpoint-group",children:[s.jsx("h4",{className:"tag-title",children:i}),s.jsx("div",{className:"endpoint-list",children:c.map(((c,d)=>{var o,p,v;return s.jsxs("div",{className:"endpoint-card",onClick:()=>(s=>{n(Object.assign(Object.assign({},s),{api:Object.assign({id:r.apiSpecId,title:r.title,description:r.description,version:r.version},r)})),l("ENDPOINT"),t((e=>Object.assign(Object.assign({},e),{[`api-${r.apiSpecId}-section`]:!0,[`api-${r.apiSpecId}-endpoints`]:!0,[`api-${r.apiSpecId}-resource-${s.id}`]:!0})))})(c),children:[s.jsxs("div",{children:[s.jsxs("div",{className:"endpoint-card-header",children:[s.jsx("span",{className:`method-label ${c.method.toLowerCase()}`,children:c.method}),s.jsx("div",{className:"title-wrapper",children:s.jsxs("h5",{children:[(c.summary||"Endpoint Name").slice(0,17),(null!==(p=null===(o=c.summary)||void 0===o?void 0:o.length)&&void 0!==p?p:0)>17&&"..."]})})]}),s.jsxs("div",{className:"endpoint-meta",children:[s.jsx("p",{children:c.path}),s.jsx("p",{className:"description",children:null!==(v=c.description)&&void 0!==v?v:"No Description "})]})]}),s.jsx("div",{className:"endpoint-arrow",children:s.jsx(e,{src:a})})]},`${i}-${d}`)}))})]},i))),(null===(d=r.apiVersions)||void 0===d?void 0:d.length)>0&&s.jsxs("div",{className:"versions-section",children:[s.jsx("h4",{children:"API Versions"}),s.jsx("div",{className:"version-list",children:r.apiVersions.map(((e,i)=>{var a;return s.jsx("button",{className:"version-btn",children:(null===(a=e.metaData)||void 0===a?void 0:a.version)||"N/A"},i)}))})]})]})};export{r as TagPage};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../src/layout/docsComponents/DocsContent/TagPage/index.tsx"],"sourcesContent":["import './style.scss'\nimport SVGLoader from '../../../../components/SVGLoader/SVGLoader'\nimport { arrowRightGray, CopySticker } from '../../../../assets/icons/index'\nimport { OverviewData } from 'src/layout/docsLayout'\n\nexport const TagPage = ({ data, setActiveItemData, setActiveType, setExpandedSections }) => {\n const handleClick = (endpoint) => {\n setActiveItemData({\n ...endpoint,\n api: {\n id: data.apiSpecId,\n title: data.title,\n description: data.description,\n version: data.version,\n ...data,\n },\n })\n setActiveType('ENDPOINT')\n\n setExpandedSections((prev) => ({\n ...prev,\n [`api-${data.apiSpecId}-section`]: true,\n [`api-${data.apiSpecId}-endpoints`]: true,\n [`api-${data.apiSpecId}-resource-${endpoint.id}`]: true,\n }))\n }\n return (\n <div className=\"api-details-page\">\n <h2 className=\"welcome\">Welcome to</h2>\n <h1 className=\"api-title\">{data?.title}</h1>\n <p className=\"api-version\">\n API Version: <span>{data?.version}</span>\n </p>\n\n <div className=\"custom-url-input\">\n <label className=\"input-label\">API Base URL</label>\n <div className=\"input-wrapper\">\n <input\n type=\"text\"\n value={!!data && !!data.servers && data.servers.length > 0 ? data.servers[0]?.url : '-'}\n readOnly\n />\n <span\n className=\"icon\"\n onClick={() =>\n navigator.clipboard.writeText(\n `${!!data && !!data.servers && data.servers.length > 0 ? data.servers[0]?.url : '-'}`\n )\n }\n >\n <SVGLoader src={CopySticker} />\n </span>\n </div>\n </div>\n\n <p className=\"api-desc\">API Description</p>\n <div className=\"api-product-tag\">\n Product with this API <span className=\"product-tag\">{data.associatedProduct.name}</span>\n </div>\n\n <h3 className=\"section-title\">Endpoints</h3>\n\n {Object.entries(data?.tags).map(([tag, endpoints]) => (\n <div className=\"endpoint-group\" key={tag}>\n <h4 className=\"tag-title\">{tag}</h4>\n <div className=\"endpoint-list\">\n {endpoints.map((endpoint, idx) => (\n <div\n className=\"endpoint-card\"\n onClick={() => handleClick(endpoint)}\n key={`${tag}-${idx}`}\n >\n <div>\n <div className=\"endpoint-card-header\">\n <span className={`method-label ${endpoint.method.toLowerCase()}`}>\n {endpoint.method}\n </span>\n <div className=\"title-wrapper\">\n <h5>\n {(endpoint.summary || 'Endpoint Name').slice(0, 17)}\n {(endpoint.summary?.length ?? 0) > 17 && '...'}\n </h5>\n </div>\n </div>\n <div className=\"endpoint-meta\">\n <p>{endpoint.path}</p>\n <p className=\"description\">{endpoint.description ?? 'No Description '}</p>\n </div>\n </div>\n\n <div className=\"endpoint-arrow\">\n <SVGLoader src={arrowRightGray} />\n </div>\n </div>\n ))}\n </div>\n </div>\n ))}\n\n {data.apiVersions?.length > 0 && (\n <div className=\"versions-section\">\n <h4>API Versions</h4>\n <div className=\"version-list\">\n {data.apiVersions.map((verObj, index) => (\n <button key={index} className=\"version-btn\">\n {verObj.metaData?.version || 'N/A'}\n </button>\n ))}\n </div>\n </div>\n )}\n </div>\n )\n}\n"],"names":["TagPage","data","setActiveItemData","setActiveType","setExpandedSections","_jsxs","className","_jsx","children","title","version","jsxs","jsx","type","value","servers","length","_a","url","readOnly","onClick","navigator","clipboard","writeText","SVGLoader","src","CopySticker","associatedProduct","name","Object","entries","tags","map","tag","endpoints","endpoint","idx","assign","api","id","apiSpecId","description","prev","handleClick","method","toLowerCase","summary","slice","_b","path","_c","arrowRightGray","apiVersions","verObj","index","metaData"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"../../../../_virtual/jsx-runtime.js";import{useState as s,useRef as o}from"react";import{d as
|
|
1
|
+
import{j as e}from"../../../../_virtual/jsx-runtime.js";import{useState as s,useRef as o}from"react";import{d as t}from"../../../../_virtual/index.js";import r from"../../../components/SVGLoader/SVGLoader.js";import i from"../../../assets/icons/UpArrow.svg.js";import n from"../../../assets/icons/DownArrow.svg.js";import a from"../../../assets/icons/ApiIcon.svg.js";import l from"../../../assets/icons/FilterIcon.svg.js";import c from"../../../assets/icons/BookIcon.svg.js";import d from"../../../assets/icons/searchIcon.svg.js";import m from"../../../components/Tooltip/Tooltip.js";import h from"../../../components/dialog/index.js";import{METHOD_OPTIONS as p}from"../../../constants/methods.constant.js";import j from"./DocsHeader.module.scss.js";const u=({transformedOpenApis:u,updateFilteredData:x})=>{const[v,f]=s(!1),[g,N]=s(""),[b,_]=s([]);s(!1);const[C,A]=s(!1);o(null);return e.jsxs(e.Fragment,{children:[e.jsx("header",{className:j.api_docs_header,children:e.jsxs("div",{className:j.header_content,children:[e.jsxs(t.Button,{variant:"outlined",size:"small",className:j.search_filter_btn,onClick:()=>{f(!0)},children:["Search & Filter",e.jsx(r,{src:l})]}),e.jsxs("div",{className:j.nav_buttons,children:[e.jsx(m,{placement:"bottom",delay:[0,0],className:`guides-tooltip ${j.tippy_box_color}`,content:e.jsx("div",{children:"Coming Soon"}),children:e.jsxs(t.Button,{variant:"outlined",size:"small",className:"guide-btn",disabled:!0,children:[e.jsx(r,{src:c}),"GUIDES"]})}),e.jsxs(t.Button,{variant:"outlined",size:"small",className:j.api_btn,children:[e.jsx(r,{src:a})," API reference"]})]})]})}),e.jsx(h,{size:"sm",open:v,onClose:()=>{f(!1),A(!1)},icon:!1,withClose:!1,noActions:!0,content:e.jsxs("div",{className:"search-filter-form "+(C?"expanded":""),children:[e.jsx("div",{className:"search-filter-form__header",children:e.jsx("p",{className:"search-filter-form__header__title",children:"Search & Filter"})}),e.jsx(t.Input,{className:"name-input",placeholder:"Search by API name",value:g,onChange:e=>N(e),size:t.Size.Medium,clearable:!0,endAdornment:e.jsx(r,{src:d})}),e.jsxs("div",{className:"method-container",children:[e.jsx("label",{children:"Method"}),e.jsxs("div",{className:"typeDdl",onClick:()=>A((e=>!e)),children:[e.jsx("span",{children:"Select Method"}),e.jsx(r,{src:C?i:n})]}),C&&e.jsx("div",{className:"methodList",children:p.map((s=>e.jsxs("div",{className:"method-item",children:[e.jsx("input",{type:"checkbox",className:"agreement-checkbox",checked:b.includes(s.value),onChange:e=>((e,s)=>{const{target:{checked:o}}=e;o?_((e=>[...e,s.value])):b.includes(s.value)&&_((e=>e.filter((e=>e!=s.value))))})(e,s)}),e.jsx("span",{style:{color:s.color},children:s.label})]})))})]}),e.jsx("div",{className:"button-container",children:e.jsx(t.Button,{variant:"contained",color:"primary",size:"large",onClick:()=>{if(!((null==g?void 0:g.trim())||b&&0!==b.length))return x(u,!0),void f(!1);let e=[...u];if(null==g?void 0:g.trim()){const s=g.toLowerCase();e=e.filter((e=>e.title.toLowerCase().includes(s)))}(null==b?void 0:b.length)&&(e=e.filter((e=>{const s=Object.values(e.tags||{}).flat().map((e=>{var s;return null===(s=e.method)||void 0===s?void 0:s.toLowerCase()}));return b.some((e=>s.includes(e.toLowerCase())))}))),x(e),f(!1)},className:"dialog-submit-btn",children:"Apply"})})]})})]})};export{u as default};
|
|
2
2
|
//# sourceMappingURL=DocsHeader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocsHeader.js","sources":["../../../../../src/layout/docsComponents/DocsHeader/DocsHeader.tsx"],"sourcesContent":["import React, { useState, useRef } from 'react'\nimport { Button, Size, Input, SelectGroup } from 'digitinary-ui'\nimport SVGLoader from '../../../components/SVGLoader/SVGLoader'\nimport { FilterIcon, BookIcon, ApiIcon, SearchIcon } from '../../../assets/icons'\nimport Tooltip from '../../../components/Tooltip/Tooltip'\nimport CommonDialog from '../../../components/dialog/index'\nimport { METHOD_OPTIONS } from '../../../constants/methods.constant'\nimport styles from './DocsHeader.module.scss'\n\nconst DocsHeader: React.FC = () => {\n const [showSearchFilter, setShowSearchFilter] = useState<boolean>(false)\n const [apiName, setApiName] = useState<string>('')\n const [selectedMethods, setSelectedMethods] = useState<any[]>([])\n const [isMethodDropdownOpen, setIsMethodDropdownOpen] = useState<boolean>(false)\n const selectRef = useRef<any>(null)\n\n const handleOpenSearchFilter = (): void => {\n setShowSearchFilter(true)\n }\n\n const handleCloseSearchFilter = (): void => {\n setShowSearchFilter(false)\n setIsMethodDropdownOpen(false)\n }\n\n const handleApplyFilters = (): void => {\n setShowSearchFilter(false)\n }\n\n return (\n <>\n <header className={styles.api_docs_header}>\n <div className={styles.header_content}>\n <Button\n variant=\"outlined\"\n size=\"small\"\n className=\"search-filter-btn\"\n onClick={handleOpenSearchFilter}\n >\n Search & Filter\n <SVGLoader src={FilterIcon} />\n </Button>\n <div className={styles.nav_buttons}>\n <Tooltip\n placement=\"bottom\"\n delay={[0, 0]}\n className={`guides-tooltip ${styles.tippy_box_color}`}\n content={<div>Coming Soon</div>}\n >\n <Button variant=\"outlined\" size=\"small\" className=\"guide-btn\" disabled={true}>\n <SVGLoader src={BookIcon} />\n GUIDES\n </Button>\n </Tooltip>\n <Button variant=\"outlined\" size=\"small\" className=\"api-btn\">\n <SVGLoader src={ApiIcon} />\n API reference\n </Button>\n </div>\n </div>\n </header>\n <CommonDialog\n size=\"sm\"\n open={showSearchFilter}\n onClose={handleCloseSearchFilter}\n icon={false}\n withClose={false}\n content={\n <div className={`search-filter-form ${isMethodDropdownOpen ? 'expanded' : ''}`}>\n <div className=\"search-filter-form__header\">\n <p className=\"search-filter-form__header__title\">Search & Filter</p>\n </div>\n <Input\n placeholder=\"Search by API name\"\n value={apiName}\n onChange={(value) => setApiName(value as string)}\n size={Size.Medium}\n clearable\n endAdornment={<SVGLoader src={SearchIcon} />}\n />\n <div className=\"method-container\">\n <label>Method</label>\n <SelectGroup\n isMultiple={true}\n size={Size.Medium}\n placeholder=\"Select Method\"\n value={selectedMethods}\n onChange={(value) => setSelectedMethods(value || [])}\n options={[\n {\n list: METHOD_OPTIONS.map((method) => ({\n label: <span style={{ color: method.color }}>{method.label}</span>,\n value: method.value,\n data: method,\n })),\n },\n ]}\n className=\"method-select custom-select-border\"\n />\n </div>\n <div className=\"button-container\">\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"large\"\n onClick={handleApplyFilters}\n className=\"dialog-submit-btn\"\n >\n Apply\n </Button>\n </div>\n </div>\n }\n />\n </>\n )\n}\n\nexport default DocsHeader\n"],"names":["DocsHeader","showSearchFilter","setShowSearchFilter","useState","apiName","setApiName","selectedMethods","setSelectedMethods","isMethodDropdownOpen","setIsMethodDropdownOpen","useRef","_jsxs","_Fragment","children","_jsx","className","styles","api_docs_header","header_content","jsxs","Button","variant","size","onClick","SVGLoader","src","FilterIcon","nav_buttons","jsx","Tooltip","placement","delay","tippy_box_color","content","disabled","BookIcon","ApiIcon","CommonDialog","open","onClose","icon","withClose","Input","placeholder","value","onChange","Size","Medium","clearable","endAdornment","SearchIcon","SelectGroup","isMultiple","options","list","METHOD_OPTIONS","map","method","label","style","color","data"],"mappings":"ooBASM,MAAAA,EAAuB,KAC3B,MAAOC,EAAkBC,GAAuBC,GAAkB,IAC3DC,EAASC,GAAcF,EAAiB,KACxCG,EAAiBC,GAAsBJ,EAAgB,KACvDK,EAAsBC,GAA2BN,GAAkB,GACxDO,EAAY,MAe9B,OACEC,OAAAC,EAAAA,SAAA,CAAAC,SAAA,CACEC,EAAAA,IAAQ,SAAA,CAAAC,UAAWC,EAAOC,gBACxBJ,SAAAF,EAAAA,KAAA,MAAA,CAAKI,UAAWC,EAAOE,eACrBL,SAAA,CAAAF,EAAAQ,KAACC,SAAM,CACLC,QAAQ,WACRC,KAAK,QACLP,UAAU,oBACVQ,QArBqB,KAC7BrB,GAAoB,EAAK,EAuBjBW,SAAA,CAAA,kBAAAC,EAAAA,IAACU,EAAS,CAACC,IAAKC,OAElBf,OAAK,MAAA,CAAAI,UAAWC,EAAOW,YAAWd,SAAA,CAChCC,EAACc,IAAAC,EACC,CAAAC,UAAU,SACVC,MAAO,CAAC,EAAG,GACXhB,UAAW,kBAAkBC,EAAOgB,kBACpCC,QAASnB,EAAsBc,IAAA,MAAA,CAAAf,SAAA,gBAAAA,SAE/BF,EAACQ,KAAAC,EAAMA,QAACC,QAAQ,WAAWC,KAAK,QAAQP,UAAU,YAAYmB,UAAU,EAAIrB,SAAA,CAC1EC,MAACU,EAAS,CAACC,IAAKU,IAET,cAEXxB,OAACS,EAAAA,OAAM,CAACC,QAAQ,WAAWC,KAAK,QAAQP,UAAU,UAChDF,SAAA,CAAAC,EAAAc,IAACJ,EAAU,CAAAC,IAAKW,IAAW,2BAMnCtB,MAACuB,EAAY,CACXf,KAAK,KACLgB,KAAMrC,EACNsC,QA5C0B,KAC9BrC,GAAoB,GACpBO,GAAwB,EAAM,EA2C1B+B,MAAM,EACNC,WAAW,EACXR,QACEtB,EAAAA,KAAA,MAAA,CAAKI,UAAW,uBAAsBP,EAAuB,WAAa,IACxEK,SAAA,CAAAC,EAAAc,IAAA,MAAA,CAAKb,UAAU,6BAA4BF,SACzCC,EAAAA,IAAG,IAAA,CAAAC,UAAU,mEAEfD,MAAC4B,EAAAA,MACC,CAAAC,YAAY,qBACZC,MAAOxC,EACPyC,SAAWD,GAAUvC,EAAWuC,GAChCtB,KAAMwB,OAAKC,OACXC,WACA,EAAAC,aAAcnC,MAACU,EAAU,CAAAC,IAAKyB,MAEhCvC,OAAA,MAAA,CAAKI,UAAU,mBAAkBF,SAAA,CAC/BC,EAAAA,IAAqB,QAAA,CAAAD,SAAA,WACrBC,MAACqC,cAAW,CACVC,YAAY,EACZ9B,KAAMwB,EAAAA,KAAKC,OACXJ,YAAY,gBACZC,MAAOtC,EACPuC,SAAWD,GAAUrC,EAAmBqC,GAAS,IACjDS,QAAS,CACP,CACEC,KAAMC,EAAeC,KAAKC,IAAY,CACpCC,MAAO5C,EAAAc,IAAA,OAAA,CAAM+B,MAAO,CAAEC,MAAOH,EAAOG,OAAO/C,SAAG4C,EAAOC,QACrDd,MAAOa,EAAOb,MACdiB,KAAMJ,QAIZ1C,UAAU,0CAGdD,EAAKc,IAAA,MAAA,CAAAb,UAAU,4BACbD,EAAAA,IAACM,EAAAA,QACCC,QAAQ,YACRuC,MAAM,UACNtC,KAAK,QACLC,QAhFa,KACzBrB,GAAoB,EAAM,EAgFda,UAAU,oBAGHF,SAAA,mBAMpB"}
|
|
1
|
+
{"version":3,"file":"DocsHeader.js","sources":["../../../../../src/layout/docsComponents/DocsHeader/DocsHeader.tsx"],"sourcesContent":["import React, { useState, useRef } from 'react'\nimport { Button, Size, Input, SelectGroup } from 'digitinary-ui'\nimport SVGLoader from '../../../components/SVGLoader/SVGLoader'\nimport {\n FilterIcon,\n BookIcon,\n ApiIcon,\n SearchIcon,\n arrowDownGray,\n UpArrowIcon,\n DownArrowIcon,\n} from '../../../assets/icons'\nimport Tooltip from '../../../components/Tooltip/Tooltip'\nimport CommonDialog from '../../../components/dialog/index'\nimport { METHOD_OPTIONS } from '../../../constants/methods.constant'\nimport styles from './DocsHeader.module.scss'\n\nconst DocsHeader: React.FC = ({\n transformedOpenApis,\n updateFilteredData,\n}: {\n transformedOpenApis: any[]\n updateFilteredData: any\n}) => {\n const [showSearchFilter, setShowSearchFilter] = useState<boolean>(false)\n const [apiName, setApiName] = useState<string>('')\n const [selectedMethods, setSelectedMethods] = useState<any[]>([])\n const [methodListOpened, setMethodListOpened] = useState(false)\n const [isMethodDropdownOpen, setIsMethodDropdownOpen] = useState<boolean>(false)\n const selectRef = useRef<any>(null)\n\n const handleOpenSearchFilter = (): void => {\n setShowSearchFilter(true)\n }\n\n const handleCloseSearchFilter = (): void => {\n setShowSearchFilter(false)\n setIsMethodDropdownOpen(false)\n }\n\n const handleApplyFilters = (): void => {\n // Reset: no filters applied\n if (!apiName?.trim() && (!selectedMethods || selectedMethods.length === 0)) {\n updateFilteredData(transformedOpenApis, true)\n setShowSearchFilter(false)\n return\n }\n\n let filteredItems = [...transformedOpenApis]\n\n // Filter by API name\n if (apiName?.trim()) {\n const lowerApiName = apiName.toLowerCase()\n filteredItems = filteredItems.filter((api) => api.title.toLowerCase().includes(lowerApiName))\n }\n\n // Filter by selected HTTP methods\n if (selectedMethods?.length) {\n filteredItems = filteredItems.filter((api) => {\n const allMethods = Object.values(api.tags || {})\n .flat()\n .map((endpoint: any) => endpoint.method?.toLowerCase())\n\n return selectedMethods.some((method) => allMethods.includes(method.toLowerCase()))\n })\n }\n\n updateFilteredData(filteredItems)\n setShowSearchFilter(false)\n }\n\n const handleCheckMethod = (e, method: (typeof METHOD_OPTIONS)[0]) => {\n const {\n target: { checked },\n } = e\n if (checked) {\n setSelectedMethods((prev) => [...prev, method.value])\n } else {\n if (selectedMethods.includes(method.value)) {\n setSelectedMethods((prev) => prev.filter((_m) => _m != method.value))\n }\n }\n }\n\n return (\n <>\n <header className={styles.api_docs_header}>\n <div className={styles.header_content}>\n <Button\n variant=\"outlined\"\n size=\"small\"\n className={styles.search_filter_btn}\n onClick={handleOpenSearchFilter}\n >\n Search & Filter\n <SVGLoader src={FilterIcon} />\n </Button>\n <div className={styles.nav_buttons}>\n <Tooltip\n placement=\"bottom\"\n delay={[0, 0]}\n className={`guides-tooltip ${styles.tippy_box_color}`}\n content={<div>Coming Soon</div>}\n >\n <Button variant=\"outlined\" size=\"small\" className=\"guide-btn\" disabled={true}>\n <SVGLoader src={BookIcon} />\n GUIDES\n </Button>\n </Tooltip>\n <Button variant=\"outlined\" size=\"small\" className={styles.api_btn}>\n <SVGLoader src={ApiIcon} /> API reference\n </Button>\n </div>\n </div>\n </header>\n <CommonDialog\n size=\"sm\"\n open={showSearchFilter}\n onClose={handleCloseSearchFilter}\n icon={false}\n withClose={false}\n noActions\n content={\n <div className={`search-filter-form ${isMethodDropdownOpen ? 'expanded' : ''}`}>\n <div className=\"search-filter-form__header\">\n <p className=\"search-filter-form__header__title\">Search & Filter</p>\n </div>\n <Input\n className=\"name-input\"\n placeholder=\"Search by API name\"\n value={apiName}\n onChange={(value) => setApiName(value as string)}\n size={Size.Medium}\n clearable\n endAdornment={<SVGLoader src={SearchIcon} />}\n />\n <div className=\"method-container\">\n <label>Method</label>\n {/* <SelectGroup\n isMultiple={true}\n size={Size.Medium}\n placeholder=\"Select Method\"\n value={selectedMethods}\n onChange={(value) => setSelectedMethods(value || [])}\n options={[\n \n ]}\n withSearch={false}\n className=\"method-select custom-select-border\"\n /> */}\n <div className=\"typeDdl\" onClick={() => setIsMethodDropdownOpen((prev) => !prev)}>\n <span>Select Method</span>\n <SVGLoader src={!isMethodDropdownOpen ? DownArrowIcon : UpArrowIcon} />\n </div>\n {isMethodDropdownOpen && (\n <div className=\"methodList\">\n {METHOD_OPTIONS.map((_m) => (\n <div className=\"method-item\">\n <input\n type=\"checkbox\"\n className=\"agreement-checkbox\"\n checked={selectedMethods.includes(_m.value)}\n onChange={(e) => handleCheckMethod(e, _m)}\n />\n <span style={{ color: _m.color }}>{_m.label}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n <div className=\"button-container\">\n <Button\n variant=\"contained\"\n color=\"primary\"\n size=\"large\"\n onClick={handleApplyFilters}\n className=\"dialog-submit-btn\"\n >\n Apply\n </Button>\n </div>\n </div>\n }\n />\n </>\n )\n}\n\nexport default DocsHeader\n"],"names":["DocsHeader","transformedOpenApis","updateFilteredData","showSearchFilter","setShowSearchFilter","useState","apiName","setApiName","selectedMethods","setSelectedMethods","isMethodDropdownOpen","setIsMethodDropdownOpen","useRef","_jsxs","_jsx","jsx","className","styles","api_docs_header","children","header_content","Button","variant","size","search_filter_btn","onClick","SVGLoader","src","FilterIcon","jsxs","nav_buttons","Tooltip","placement","delay","tippy_box_color","content","disabled","BookIcon","api_btn","ApiIcon","CommonDialog","open","onClose","icon","withClose","noActions","Input","placeholder","value","onChange","Size","Medium","clearable","endAdornment","SearchIcon","prev","UpArrowIcon","DownArrowIcon","METHOD_OPTIONS","map","_m","type","checked","includes","e","method","target","filter","handleCheckMethod","style","color","label","trim","length","filteredItems","lowerApiName","toLowerCase","api","title","allMethods","Object","values","tags","flat","endpoint","_a","some"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as
|
|
1
|
+
import{j as e}from"../../../../_virtual/jsx-runtime.js";import{useEffect as s}from"react";import i from"../../../components/SVGLoader/SVGLoader.js";import a from"../../../assets/icons/arrowDownGray.svg.js";import c from"../../../assets/icons/arrowRightGray.svg.js";import t from"../../../assets/icons/document.svg.js";import p from"../../../assets/icons/eye.svg.js";const n=({apis:n,setActiveItemData:r,activeItemData:d,activeType:o,expandedSections:l,setExpandedSections:j,isFirstApiExpanded:m,setIsFirstApiExpanded:v,setActiveType:_})=>{s((()=>{if(!(null==n?void 0:n.length)||!m)return;const e=n[0],s=`api-${e.apiSpecId}-section`,i=`api-${e.apiSpecId}-overview`;j((e=>Object.assign(Object.assign({},e),{[s]:!0,[i]:!0}))),r(e),_("OVERVIEW"),v(!1)}),[n,m]);const x=(e,s,i,a)=>{if(i&&a){const i=Object.fromEntries(Object.entries(Object.assign({},l)).filter((([i])=>!!i.includes(e)&&(i===s||!a.some((e=>i.includes(e)))))));j(Object.assign(Object.assign({},i),{[s]:!l[s]}))}else j((e=>Object.assign(Object.assign({},e),{[s]:!e[s]})))},h=(s,i)=>s.map(((s,a)=>{const c=`api-${i.apiSpecId}-resource-${s.id}`,t=l[c];return e.jsxs("div",{className:`api-docs-api-tree__endpoint api-docs-api-tree__endpoint--${s.method.toLowerCase()}`,onClick:()=>{t||(r(Object.assign(Object.assign({},s),{api:Object.assign({id:i.apiSpecId,title:i.title,description:i.description,version:i.version},i)})),_("ENDPOINT"),x(i.apiSpecId,c,!0,["resource","overview"]))},"data-active":t,children:[e.jsx("span",{className:"api-docs-api-tree__endpoint-method",children:s.method}),e.jsx("span",{className:"api-docs-api-tree__endpoint-name",children:s.path})]},a)})),I=s=>{const n=`api-${s.apiSpecId}-section`,j=`api-${s.apiSpecId}-endpoints`,m=`api-${s.apiSpecId}-overview`,v=l[n],I="apiSpecId"in d&&d.apiSpecId===s.apiSpecId&&"OVERVIEW"===o,S="api"in d&&d.api.id===s.apiSpecId&&"path"in d&&"method"in d;return e.jsxs("div",{className:"api-docs-api-tree__section","data-active":S||I,children:[e.jsxs("div",{className:"api-docs-api-tree__section-header",onClick:()=>x(s.apiSpecId,n),children:[v?e.jsx(i,{src:a}):e.jsx(i,{src:c}),e.jsx(i,{src:t}),e.jsx("span",{className:"api-docs-api-tree__section-title",children:s.title})]}),v&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"api-docs-api-tree__section__overview",onClick:()=>{I||(x(s.apiSpecId,m,!0,["resource"]),r(s),_("OVERVIEW"))},"data-active":I,children:[e.jsx(i,{src:p}),e.jsx("span",{children:"Overview"})]}),e.jsxs("div",{className:"api-docs-api-tree__section__endpoints",onClick:()=>x(s.apiSpecId,j),"data-active":S&&!I,children:[l[j]?e.jsx(i,{src:a}):e.jsx(i,{src:c}),e.jsx("span",{children:"Endpoints"})]}),l[j]&&e.jsx("div",{className:"api-docs-api-tree__subsections",children:Object.entries(s.tags).sort((([e],[s])=>"default"===e?1:"default"===s?-1:e.localeCompare(s))).map((([t,p],n)=>((s,t,p,n)=>{const r=`api-${p.apiSpecId}-section-${n}`,d=l[r];return e.jsxs("div",{className:"api-docs-api-tree__subsection",children:[e.jsxs("div",{className:"api-docs-api-tree__subsection-header",onClick:()=>x(p.apiSpecId,r),children:[d?e.jsx(i,{src:a}):e.jsx(i,{src:c}),e.jsx("span",{className:"api-docs-api-tree__subsection-title",children:s})]}),d&&e.jsx("div",{className:"api-docs-api-tree__endpoints",children:h(t,p)})]},r)})(t,p,s,n)))})]})]},s.apiSpecId)};return e.jsx("aside",{className:"api-docs-api-tree",children:n.map((e=>I(e)))})};export{n as default};
|
|
2
2
|
//# sourceMappingURL=DocsSideMenuTree.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocsSideMenuTree.js","sources":["../../../../../src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.tsx"],"sourcesContent":["import './style.scss'\nimport React, { useState } from 'react'\nimport SVGLoader from '../../../components/SVGLoader/SVGLoader'\nimport { arrowDownGray, arrowRightGray, document, eye } from '../../../assets/icons'\n\nconst DocsSideMenuTree = ({\n apis,\n setActiveItemData,\n isFirstApiExpanded,\n setIsFirstApiExpanded,\n}) => {\n const [expandedSections, setExpandedSections] = useState({})\n\n const toggleSection = (apiId, sectionId: string, resetOthers?: boolean, key?: string[]) => {\n isFirstApiExpanded && setIsFirstApiExpanded(false)\n if (resetOthers && key) {\n const filteredExpandedSections = Object.fromEntries(\n Object.entries({ ...expandedSections }).filter(([expandKey, _]) => {\n // Close other APIs sections\n if (!expandKey.includes(apiId)) return false\n // always return the clicked on section\n else if (expandKey === sectionId) return true\n // filter all sections containing the key\n else if (key.some((k) => expandKey.includes(k))) return false\n else return true\n })\n )\n\n setExpandedSections({\n ...filteredExpandedSections,\n [sectionId]: !expandedSections[sectionId],\n })\n } else {\n setExpandedSections((prev) => ({\n ...prev,\n [sectionId]: !prev[sectionId],\n }))\n }\n }\n\n const renderEndpoints = (endpoints, api) => {\n return endpoints.map((endpoint, index) => {\n const isResourceExpanded = expandedSections[`api-${api.id}-resource-${endpoint.id}`]\n\n return (\n <div\n key={index}\n className={`api-docs-api-tree__endpoint api-docs-api-tree__endpoint--${endpoint.method.toLowerCase()}`}\n onClick={() => {\n setActiveItemData({\n ...endpoint,\n api: {\n id: api.id,\n title: api.title,\n description: api.description,\n version: api.version,\n },\n })\n\n if (!isResourceExpanded) {\n toggleSection(api.id, `api-${api.id}-resource-${endpoint.id}`, true, [\n 'resource',\n 'overview',\n ])\n }\n }}\n data-active={isResourceExpanded}\n >\n <span className=\"api-docs-api-tree__endpoint-method\">{endpoint.method}</span>\n <span className=\"api-docs-api-tree__endpoint-name\">{endpoint.path}</span>\n </div>\n )\n })\n }\n\n const renderApiSection = (api, index) => {\n const isApiExpanded = expandedSections[`api-${api.id}-section`]\n const isEndpointActive = Object.keys(expandedSections).some((k) =>\n k.includes(`api-${api.id}-resource`)\n )\n const isEndpointsExpanded = expandedSections[`api-${api.id}-endpoints`]\n const isOverviewExpanded = expandedSections[`api-${api.id}-overview`]\n\n if (isFirstApiExpanded && index === 0 && !isApiExpanded) {\n toggleSection(api.id, `api-${api.id}-section`)\n toggleSection(api.id, `api-${api.id}-overview`)\n setActiveItemData(api)\n }\n\n return (\n <div\n key={api.id}\n className=\"api-docs-api-tree__section\"\n data-active={isEndpointActive || isOverviewExpanded}\n >\n <div\n className=\"api-docs-api-tree__section-header\"\n onClick={() => toggleSection(api.id, `api-${api.id}-section`)}\n >\n {isApiExpanded ? <SVGLoader src={arrowDownGray} /> : <SVGLoader src={arrowRightGray} />}\n <SVGLoader src={document} />\n <span className=\"api-docs-api-tree__section-title\">{api.title}</span>\n </div>\n\n {isApiExpanded && (\n <>\n <div\n className={`api-docs-api-tree__section__overview`}\n onClick={() => {\n toggleSection(api.id, `api-${api.id}-overview`, true, ['resource'])\n setActiveItemData(api)\n }}\n data-active={isOverviewExpanded}\n >\n {<SVGLoader src={eye} />}\n <span>Overview</span>\n </div>\n <div\n className=\"api-docs-api-tree__section__endpoints\"\n onClick={() => {\n toggleSection(api.id, `api-${api.id}-endpoints`)\n }}\n data-active={isEndpointActive && !isOverviewExpanded}\n >\n {isEndpointsExpanded ? (\n <SVGLoader src={arrowDownGray} />\n ) : (\n <SVGLoader src={arrowRightGray} />\n )}\n <span>Endpoints</span>\n </div>\n {isEndpointsExpanded && (\n <div className=\"api-docs-api-tree__subsections\">\n {Object.entries(api.tags)\n .sort(([a], [b]) => {\n if (a === 'default') return 1\n if (b === 'default') return -1\n return a.localeCompare(b)\n })\n .map(([tagName, data], index) => renderSubSection(tagName, data, api, index))}\n </div>\n )}\n </>\n )}\n </div>\n )\n }\n\n const renderSubSection = (tagName, data, api, sectionIndex) => {\n const sectionKey = `api-${api.id}-section-${sectionIndex}`\n const isSectionExpanded = expandedSections[sectionKey]\n\n return (\n <div key={sectionKey} className=\"api-docs-api-tree__subsection\">\n <>\n <div\n className=\"api-docs-api-tree__subsection-header\"\n onClick={() => toggleSection(api.id, sectionKey)}\n >\n {isSectionExpanded ? (\n <SVGLoader src={arrowDownGray} />\n ) : (\n <SVGLoader src={arrowRightGray} />\n )}\n <span className=\"api-docs-api-tree__subsection-title\">{tagName}</span>\n </div>\n\n {isSectionExpanded && (\n <div className=\"api-docs-api-tree__endpoints\">{renderEndpoints(data, api)}</div>\n )}\n </>\n </div>\n )\n }\n\n return (\n <aside className=\"api-docs-api-tree\">\n {apis.map((api, index) => renderApiSection(api, index))}\n </aside>\n )\n}\n\nexport default DocsSideMenuTree\n"],"names":["DocsSideMenuTree","apis","setActiveItemData","isFirstApiExpanded","setIsFirstApiExpanded","expandedSections","setExpandedSections","useState","toggleSection","apiId","sectionId","resetOthers","key","filteredExpandedSections","Object","fromEntries","entries","assign","filter","expandKey","_","includes","some","k","prev","renderEndpoints","endpoints","api","map","endpoint","index","isResourceExpanded","id","_jsxs","className","method","toLowerCase","onClick","title","description","version","children","_jsx","jsx","path","renderSubSection","tagName","data","sectionIndex","sectionKey","isSectionExpanded","_Fragment","Fragment","jsxs","SVGLoader","src","arrowDownGray","arrowRightGray","isApiExpanded","isEndpointActive","keys","isEndpointsExpanded","isOverviewExpanded","document","eye","tags","sort","a","b","localeCompare","renderApiSection"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DocsSideMenuTree.js","sources":["../../../../../src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.tsx"],"sourcesContent":["import './style.scss'\nimport React, { useEffect, useState } from 'react'\nimport SVGLoader from '../../../components/SVGLoader/SVGLoader'\nimport { arrowDownGray, arrowRightGray, document, eye } from '../../../assets/icons'\nimport { EndpointData, OverviewData } from 'src/layout/docsLayout'\n\nconst DocsSideMenuTree = ({\n apis,\n setActiveItemData,\n activeItemData,\n activeType,\n expandedSections,\n setExpandedSections,\n isFirstApiExpanded,\n setIsFirstApiExpanded,\n setActiveType,\n}: {\n apis: OverviewData[]\n setActiveItemData: React.Dispatch<React.SetStateAction<OverviewData | EndpointData>>\n activeItemData: OverviewData | EndpointData\n expandedSections: Record<string, boolean>\n setExpandedSections: React.Dispatch<React.SetStateAction<Record<string, boolean>>>\n isFirstApiExpanded: boolean\n setIsFirstApiExpanded: React.Dispatch<React.SetStateAction<boolean>>\n setActiveType: React.Dispatch<React.SetStateAction<'OVERVIEW' | 'ENDPOINT'>>\n activeType: 'OVERVIEW' | 'ENDPOINT'\n}) => {\n // Auto-expand first API only once\n useEffect(() => {\n if (!apis?.length || !isFirstApiExpanded) return\n\n const firstApi = apis[0]\n const sectionKey = `api-${firstApi.apiSpecId}-section`\n const overviewKey = `api-${firstApi.apiSpecId}-overview`\n\n setExpandedSections((prev) => ({\n ...prev,\n [sectionKey]: true,\n [overviewKey]: true,\n }))\n\n setActiveItemData(firstApi)\n setActiveType('OVERVIEW')\n setIsFirstApiExpanded(false)\n }, [apis, isFirstApiExpanded])\n\n const toggleSection = (apiId, sectionId: string, resetOthers?: boolean, key?: string[]) => {\n if (resetOthers && key) {\n const filteredExpandedSections = Object.fromEntries(\n Object.entries({ ...expandedSections }).filter(([expandKey]) => {\n // Close other APIs sections\n if (!expandKey.includes(apiId)) return false\n // always return the clicked on section\n if (expandKey === sectionId) return true\n // filter all sections containing the key\n if (key.some((k) => expandKey.includes(k))) return false\n return true\n })\n )\n\n setExpandedSections({\n ...filteredExpandedSections,\n [sectionId]: !expandedSections[sectionId],\n })\n } else {\n setExpandedSections((prev) => ({\n ...prev,\n [sectionId]: !prev[sectionId],\n }))\n }\n }\n\n const renderEndpoints = (endpoints: EndpointData[], api: OverviewData) =>\n endpoints.map((endpoint, index) => {\n const key = `api-${api.apiSpecId}-resource-${endpoint.id}`\n const isExpanded = expandedSections[key]\n\n return (\n <div\n key={index}\n className={`api-docs-api-tree__endpoint api-docs-api-tree__endpoint--${endpoint.method.toLowerCase()}`}\n onClick={() => {\n if (!isExpanded) {\n setActiveItemData({\n ...endpoint,\n api: {\n id: api.apiSpecId,\n title: api.title,\n description: api.description,\n version: api.version,\n ...api,\n },\n })\n setActiveType('ENDPOINT')\n toggleSection(api.apiSpecId, key, true, ['resource', 'overview'])\n }\n }}\n data-active={isExpanded}\n >\n <span className=\"api-docs-api-tree__endpoint-method\">{endpoint.method}</span>\n <span className=\"api-docs-api-tree__endpoint-name\">{endpoint.path}</span>\n </div>\n )\n })\n\n const renderSubSection = (\n tagName: string,\n data: EndpointData[],\n api: OverviewData,\n sectionIndex: number\n ) => {\n const sectionKey = `api-${api.apiSpecId}-section-${sectionIndex}`\n const isSectionExpanded = expandedSections[sectionKey]\n\n return (\n <div key={sectionKey} className=\"api-docs-api-tree__subsection\">\n <div\n className=\"api-docs-api-tree__subsection-header\"\n onClick={() => toggleSection(api.apiSpecId, sectionKey)}\n >\n {isSectionExpanded ? (\n <SVGLoader src={arrowDownGray} />\n ) : (\n <SVGLoader src={arrowRightGray} />\n )}\n <span className=\"api-docs-api-tree__subsection-title\">{tagName}</span>\n </div>\n\n {isSectionExpanded && (\n <div className=\"api-docs-api-tree__endpoints\">{renderEndpoints(data, api)}</div>\n )}\n </div>\n )\n }\n\n const renderApiSection = (api: OverviewData) => {\n const sectionKey = `api-${api.apiSpecId}-section`\n const endpointsKey = `api-${api.apiSpecId}-endpoints`\n const overviewKey = `api-${api.apiSpecId}-overview`\n\n const isApiExpanded = expandedSections[sectionKey]\n const isOverviewExpanded =\n 'apiSpecId' in activeItemData &&\n activeItemData.apiSpecId === api.apiSpecId &&\n activeType === 'OVERVIEW'\n const isEndpointActive =\n 'api' in activeItemData &&\n activeItemData.api.id === api.apiSpecId &&\n 'path' in activeItemData &&\n 'method' in activeItemData\n\n return (\n <div\n key={api.apiSpecId}\n className=\"api-docs-api-tree__section\"\n data-active={isEndpointActive || isOverviewExpanded}\n >\n <div\n className=\"api-docs-api-tree__section-header\"\n onClick={() => toggleSection(api.apiSpecId, sectionKey)}\n >\n {isApiExpanded ? <SVGLoader src={arrowDownGray} /> : <SVGLoader src={arrowRightGray} />}\n <SVGLoader src={document} />\n <span className=\"api-docs-api-tree__section-title\">{api.title}</span>\n </div>\n\n {isApiExpanded && (\n <>\n <div\n className=\"api-docs-api-tree__section__overview\"\n onClick={() => {\n if (!isOverviewExpanded) {\n toggleSection(api.apiSpecId, overviewKey, true, ['resource'])\n setActiveItemData(api)\n setActiveType('OVERVIEW')\n }\n }}\n data-active={isOverviewExpanded}\n >\n <SVGLoader src={eye} />\n <span>Overview</span>\n </div>\n\n <div\n className=\"api-docs-api-tree__section__endpoints\"\n onClick={() => toggleSection(api.apiSpecId, endpointsKey)}\n data-active={isEndpointActive && !isOverviewExpanded}\n >\n {expandedSections[endpointsKey] ? (\n <SVGLoader src={arrowDownGray} />\n ) : (\n <SVGLoader src={arrowRightGray} />\n )}\n <span>Endpoints</span>\n </div>\n\n {expandedSections[endpointsKey] && (\n <div className=\"api-docs-api-tree__subsections\">\n {Object.entries(api.tags)\n .sort(([a], [b]) =>\n a === 'default' ? 1 : b === 'default' ? -1 : a.localeCompare(b)\n )\n .map(([tagName, data], i) => renderSubSection(tagName, data, api, i))}\n </div>\n )}\n </>\n )}\n </div>\n )\n }\n\n return <aside className=\"api-docs-api-tree\">{apis.map((api) => renderApiSection(api))}</aside>\n}\n\nexport default DocsSideMenuTree\n"],"names":["DocsSideMenuTree","apis","setActiveItemData","activeItemData","activeType","expandedSections","setExpandedSections","isFirstApiExpanded","setIsFirstApiExpanded","setActiveType","useEffect","length","firstApi","sectionKey","apiSpecId","overviewKey","prev","Object","assign","toggleSection","apiId","sectionId","resetOthers","key","filteredExpandedSections","fromEntries","entries","filter","expandKey","includes","some","k","renderEndpoints","endpoints","api","map","endpoint","index","id","isExpanded","_jsxs","className","method","toLowerCase","onClick","title","description","version","children","_jsx","jsx","path","renderApiSection","endpointsKey","isApiExpanded","isOverviewExpanded","isEndpointActive","jsxs","SVGLoader","src","arrowDownGray","arrowRightGray","document","_Fragment","eye","tags","sort","a","b","localeCompare","tagName","data","i","sectionIndex","isSectionExpanded","renderSubSection"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as
|
|
1
|
+
import{j as e}from"../../_virtual/jsx-runtime.js";import{useState as t,useRef as s,useEffect as a}from"react";import o from"./docsComponents/index.js";import{transformOpenApiToDocs as i}from"../helpers/docs.helper.js";const r=({apis:r})=>{const[n,p]=t([]),[c,d]=t(!0),[l,m]=t({}),[x,v]=t("OVERVIEW"),[j,u]=t({}),D=s([]),[A,f]=t(!0);console.log({apis:r,transformedOpenApis:n,activeItemData:l}),a((()=>{var e;if(0===n.length){const t=null===(e=structuredClone(r))||void 0===e?void 0:e.map((e=>i(e))).sort(((e,t)=>e.title.toLowerCase().localeCompare(t.title.toLowerCase())));p(t),D.current=t,t.length>0&&f(!1)}}),[r]);return e.jsxs(o,{children:[e.jsx(o.DocsHeader,{transformedOpenApis:n,updateFilteredData:(e,t=!1)=>{p(t?D.current:e)}}),e.jsx(o.DocsSideMenuTree,{apis:n,setActiveItemData:m,activeItemData:l,expandedSections:j,setExpandedSections:u,isFirstApiExpanded:c,activeType:x,setIsFirstApiExpanded:d,setActiveType:v}),!A&&Object.keys(l).length>0&&e.jsx(o.DocsContent,{data:l,activeType:x,setActiveItemData:m,setActiveType:v,setExpandedSections:u}),"ENDPOINT"===x&&e.jsx(o.DocsAside,{data:l})]})};export{r as default};
|
|
2
2
|
//# sourceMappingURL=docsLayout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docsLayout.js","sources":["../../../src/layout/docsLayout.tsx"],"sourcesContent":["import React, { JSX, useEffect, useState } from 'react'\nimport Layout from './docsComponents'\nimport { HTTPMethod, OpenAPIFile, Parameter, RequestBody, Responses } from '@entities/openApi'\nimport { transformOpenApiToDocs } from '../helpers/docs.helper'\n\ninterface ILayoutProps {\n
|
|
1
|
+
{"version":3,"file":"docsLayout.js","sources":["../../../src/layout/docsLayout.tsx"],"sourcesContent":["import React, { JSX, useEffect, useRef, useState } from 'react'\nimport Layout from './docsComponents'\nimport { HTTPMethod, OpenAPIFile, Parameter, RequestBody, Responses } from '@entities/openApi'\nimport { transformOpenApiToDocs } from '../helpers/docs.helper'\nimport { ApiSpecModel } from '@entities/index'\n\ninterface ILayoutProps {\n apis?: ApiSpecModel[]\n}\n\nexport interface TagData {\n id: string\n method: HTTPMethod\n path: string\n tags: string[]\n responses: Responses\n summary?: string\n description: string\n parameters?: Parameter[]\n requestBody?: RequestBody\n}\n\nexport interface EndpointData extends TagData {\n api: {\n id: string\n description: string\n title: string\n version: string\n }\n}\n\nexport interface OverviewData extends Omit<ApiSpecModel, 'metaData'> {\n description: string\n title: string\n version: string\n tags: Record<string, TagData[]>\n servers: OpenAPIFile['servers']\n}\n\nconst DocsLayout = ({ apis }: ILayoutProps): JSX.Element => {\n const [transformedOpenApis, setTransformedOpenApis] = useState([])\n const [isFirstApiExpanded, setIsFirstApiExpanded] = useState(true)\n const [activeItemData, setActiveItemData] = useState<OverviewData | EndpointData | {}>({})\n const [activeType, setActiveType] = useState<'OVERVIEW' | 'ENDPOINT'>('OVERVIEW')\n const [expandedSections, setExpandedSections] = useState({})\n const allData = useRef([]);\n const [pending, setPending] = useState(true)\n console.log({ apis, transformedOpenApis, activeItemData })\n useEffect(() => {\n if (transformedOpenApis.length === 0) {\n const t = structuredClone(apis)\n ?.map((o3) => transformOpenApiToDocs(o3))\n .sort((a, b) => a.title.toLowerCase().localeCompare(b.title.toLowerCase()))\n setTransformedOpenApis(t)\n allData.current = t\n if (t.length > 0) {\n setPending(false)\n }\n }\n }, [apis])\n\n const updateFilteredData = (filteredItems, isReset=false) => {\n if(isReset){\n setTransformedOpenApis(allData.current)\n return;\n }\n setTransformedOpenApis(filteredItems)\n }\n\n return (\n <Layout>\n <Layout.DocsHeader transformedOpenApis={transformedOpenApis} updateFilteredData={updateFilteredData}/>\n <Layout.DocsSideMenuTree\n apis={transformedOpenApis}\n setActiveItemData={setActiveItemData}\n activeItemData={activeItemData}\n expandedSections={expandedSections}\n setExpandedSections={setExpandedSections}\n isFirstApiExpanded={isFirstApiExpanded}\n activeType={activeType}\n setIsFirstApiExpanded={setIsFirstApiExpanded}\n setActiveType={setActiveType}\n />\n {!pending && Object.keys(activeItemData).length > 0 && (\n <Layout.DocsContent\n data={activeItemData}\n activeType={activeType}\n setActiveItemData={setActiveItemData}\n setActiveType={setActiveType}\n setExpandedSections={setExpandedSections}\n />\n )}\n {activeType === 'ENDPOINT' && <Layout.DocsAside data={activeItemData as EndpointData} />}\n </Layout>\n )\n}\n\nexport default DocsLayout\n"],"names":["DocsLayout","apis","transformedOpenApis","setTransformedOpenApis","useState","isFirstApiExpanded","setIsFirstApiExpanded","activeItemData","setActiveItemData","activeType","setActiveType","expandedSections","setExpandedSections","allData","useRef","pending","setPending","console","log","useEffect","length","t","_a","structuredClone","map","o3","transformOpenApiToDocs","sort","a","b","title","toLowerCase","localeCompare","current","_jsxs","Layout","children","_jsx","DocsHeader","updateFilteredData","filteredItems","isReset","DocsSideMenuTree","Object","keys","DocsContent","data","DocsAside"],"mappings":"0NAuCA,MAAMA,EAAa,EAAGC,WACpB,MAAOC,EAAqBC,GAA0BC,EAAS,KACxDC,EAAoBC,GAAyBF,GAAS,IACtDG,EAAgBC,GAAqBJ,EAA2C,CAAE,IAClFK,EAAYC,GAAiBN,EAAkC,aAC/DO,EAAkBC,GAAuBR,EAAS,CAAE,GACrDS,EAAUC,EAAO,KAChBC,EAASC,GAAcZ,GAAS,GACvCa,QAAQC,IAAI,CAAEjB,OAAMC,sBAAqBK,mBACzCY,GAAU,WACR,GAAmC,IAA/BjB,EAAoBkB,OAAc,CACpC,MAAMC,UAAIC,EAAAC,gBAAgBtB,yBACtBuB,KAAKC,GAAOC,EAAuBD,KACpCE,MAAK,CAACC,EAAGC,IAAMD,EAAEE,MAAMC,cAAcC,cAAcH,EAAEC,MAAMC,iBAC9D5B,EAAuBkB,GACvBR,EAAQoB,QAAUZ,EACdA,EAAED,OAAS,GACbJ,GAAW,EAEd,IACA,CAACf,IAUJ,OACEiC,EAAAA,KAACC,EACC,CAAAC,SAAA,CAAAC,EAAAA,IAACF,EAAOG,WAAU,CAACpC,oBAAqBA,EAAqBqC,mBAVtC,CAACC,EAAeC,GAAQ,KAE/CtC,EADCsC,EACsB5B,EAAQoB,QAGVO,EAAc,IAMnCH,EAAAA,IAACF,EAAOO,iBACN,CAAAzC,KAAMC,EACNM,kBAAmBA,EACnBD,eAAgBA,EAChBI,iBAAkBA,EAClBC,oBAAqBA,EACrBP,mBAAoBA,EACpBI,WAAYA,EACZH,sBAAuBA,EACvBI,cAAeA,KAEfK,GAAW4B,OAAOC,KAAKrC,GAAgBa,OAAS,GAChDiB,EAAAA,IAACF,EAAOU,YAAW,CACjBC,KAAMvC,EACNE,WAAYA,EACZD,kBAAmBA,EACnBE,cAAeA,EACfE,oBAAqBA,IAGT,aAAfH,GAA6B4B,EAAAA,IAACF,EAAOY,UAAS,CAACD,KAAMvC,MAEzD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"../../_virtual/jsx-runtime.js";import{useState as o,useEffect as t}from"react";import{d as i}from"../../_virtual/index.js";import r from"../components/MethodAccordion/MethodAccordion.js";import s from"./layout.module.css.js";import n from"../components/InfoForm/InfoForm.js";import a from"../components/SectionHead/SectionHead.js";import{transformOpenApiObject as l,transformOpenApiObjectToOrigin as d}from"../helpers/layout.helper.js";import m from"../components/LivePreview/LivePreview.js";import{useFormik as c,FormikProvider as
|
|
1
|
+
import{j as e}from"../../_virtual/jsx-runtime.js";import{useState as o,useEffect as t}from"react";import{d as i}from"../../_virtual/index.js";import r from"../components/MethodAccordion/MethodAccordion.js";import s from"./layout.module.css.js";import n from"../components/InfoForm/InfoForm.js";import a from"../components/SectionHead/SectionHead.js";import{transformOpenApiObject as l,transformOpenApiObjectToOrigin as d}from"../helpers/layout.helper.js";import m from"../components/LivePreview/LivePreview.js";import{useFormik as c,FormikProvider as u}from"../../node_modules/formik/dist/formik.esm.js";import{schemaValidation as h}from"../validator/form.scheme.js";import{methodColorMapping as p}from"../constants/index.js";import v from"../components/dialog/index.js";const j=({openApiJson:j,handleSave:x,setIsFormDirty:f,openApiErrors:g})=>{const S=structuredClone(j),y=l(S),A=c({initialValues:structuredClone(y),validationSchema:h,validateOnMount:!0,onSubmit:(e,{validateForm:o,resetForm:t,setSubmitting:i})=>{try{const i=d(e);x(i),t({values:e}),o(e)}catch(e){i(!1)}}}),{dirty:b,isValid:F,isSubmitting:C,values:N,setFieldValue:w,handleSubmit:H,errors:P}=A,[$,_]=o(!1),[D,I]=o(null);return t((()=>{f&&f(b)}),[b]),t((()=>{console.log({values:N,errors:P})}),[N]),e.jsxs("div",{className:s.docsLayout,children:[b&&e.jsx(i.Alert,{className:s.apiDocAlert,color:"warning",severity:"warning",children:"There are changes you made may not be saved"}),e.jsxs("div",{className:s.layoutContainer,children:[e.jsxs("div",{className:`${s.editorSide} ${s.docSide}`,children:[e.jsx(a,{className:s.editorSectionHead_title,text:e.jsxs("div",{className:s.editorSectionHead_content,children:["API Documentation",e.jsx(i.Button,{className:s.methodForm_submitBtn,size:"medium",fullWidth:!1,type:"submit",variant:"contained",color:"primary",onClick:()=>_(!0),disabled:!F||C||!b,children:"Save"})]})}),e.jsx(u,{value:A,children:e.jsx(n,{})}),e.jsx(a,{className:s.editorSectionHead,text:"Endpoints"}),e.jsx(u,{value:A,children:N.paths.map(((o,t)=>e.jsx(e.Fragment,{children:o.methods.sort(((e,o)=>p[e.type].order-p[o.type].order)).map(((i,s)=>{var n,a,l;return e.jsx(r,{tags:N.tags,method:i,path:o.path,setFieldValue:(e,o)=>{w(`paths[${t}].methods[${s}].${e}`,o)},isOpen:D===s,setIsOpen:e=>I(e?s:null),errors:null===(l=null===(a=null===(n=A.errors.paths)||void 0===n?void 0:n[t])||void 0===a?void 0:a.methods)||void 0===l?void 0:l[s]})}))})))})]}),e.jsx("div",{className:`${s.livePreviewSide} ${s.docSide}`,children:y&&e.jsx(u,{value:A,children:e.jsx(m,{transformedData:y,openApiErrors:g})})})]}),e.jsx(v,{status:"warning",content:e.jsxs(e.Fragment,{children:[e.jsx("h5",{style:{fontWeight:600,fontSize:"1.5rem",lineHeight:"1.875rem",color:"#FAAD14",textAlign:"center",margin:0},children:"Publish Changes"}),e.jsx("p",{style:{textAlign:"center",fontWeight:400,fontSize:"1rem",lineHeight:"1.4375rem"},children:"Are you sure to Publish the changes?"})]}),onSubmit:{onClick:()=>{H(),_(!1)},text:"Publish",color:"warning",fullWidth:!0},onCancel:{text:"Cancel",color:"action",fullWidth:!0},onClose:()=>_(!1),open:$})]})};export{j as default};
|
|
2
2
|
//# sourceMappingURL=layout.js.map
|