@digi-frontend/dgate-api-documentation 1.0.95 → 1.0.97

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.
@@ -1,2 +1,2 @@
1
- import{__rest as e}from"../../node_modules/tslib/tslib.es6.js";const s=(e,s)=>e.replace(/^#\//,"").split("/").reduce((e,s)=>null==e?void 0:e[s],s),t=e=>{var s,t,o,i;if(e.components&&e.components.securitySchemes){const n=null===(s=Object.keys(e.components.securitySchemes))||void 0===s?void 0:s.at(0);n&&(e.components.securitySchemes[n].type=null===(i=null===(o=null===(t=null==e?void 0:e.components)||void 0===t?void 0:t.securitySchemes)||void 0===o?void 0:o[n])||void 0===i?void 0:i.type)}else e.components=Object.assign({securitySchemes:{Public:{type:"http",scheme:"public"}}},e.components||{});return e.tags||(e.tags=[]),Object.assign(Object.assign({},e),{paths:n(e)})},o=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},n=e=>{const t=e.paths;return Object.entries(t).map(([t,o])=>({path:t,methods:Object.entries(o).map(([t,o])=>{var n,i,c,r,l,d;const a=Object.assign(Object.assign({},o),{type:t,tags:o.tags||[],summary:o.summary||"",responses:Object.entries(o.responses).map(([t,o])=>{var n,i,c,r,l;const d=Object.keys(o.content||{})[0];let a=null!==(n=null==o?void 0:o.headers)&&void 0!==n?n:{};Object.keys(a).map(e=>{var s,t,o,n;let i=a[e];(null==i?void 0:i.schema)&&(null===(s=null==i?void 0:i.schema)||void 0===s?void 0:s.type)&&"array"!=(null===(t=null==i?void 0:i.schema)||void 0===t?void 0:t.type)&&(null===(n=null===(o=a[e])||void 0===o?void 0:o.schema)||void 0===n||delete n.items)});let p=null===(c=null===(i=o.content)||void 0===i?void 0:i[d])||void 0===c?void 0:c.schema;if(null==p?void 0:p.$ref)p=s(null==p?void 0:p.$ref,e);else if("array"==(null==p?void 0:p.type)&&(null===(r=null==p?void 0:p.items)||void 0===r?void 0:r.$ref)){const t=s(p.items.$ref,e);p=Object.assign(Object.assign({},p),{items:t})}return{code:t,headers:a,content:{contentType:d,schema:Object.assign(Object.assign({},p),{properties:JSON.stringify((null==p?void 0:p.properties)||(null===(l=null==p?void 0:p.items)||void 0===l?void 0:l.properties))})}}})});if(a.responses.find(e=>"200"==e.code)||a.responses.push({code:"200",content:{contentType:"application/json",schema:{}},headers:{}}),(null==o?void 0:o.parameters)||(a.parameters=[]),"get"!=t.toLowerCase()){const t=Object.keys((null===(n=null==o?void 0:o.requestBody)||void 0===n?void 0:n.content)||{})[0];let p=null===(r=null===(c=null===(i=null==o?void 0:o.requestBody)||void 0===i?void 0:i.content)||void 0===c?void 0:c[t])||void 0===r?void 0:r.schema;(null==p?void 0:p.$ref)?p=s(p.$ref,e):"array"===(null==p?void 0:p.type)&&(null===(l=p.items)||void 0===l?void 0:l.$ref)&&(p=Object.assign(Object.assign({},p),{items:s(p.items.$ref,e)}));const u=p?{content:{contentType:t,schema:Object.assign(Object.assign({},p),{properties:JSON.stringify((null==p?void 0:p.properties)||(null===(d=null==p?void 0:p.items)||void 0===d?void 0:d.properties))})}}:{content:{contentType:"application/json",schema:{properties:"{}",type:"object"}}};a.requestBody=u}return a})}))},i=(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:n,responses:c,summary:r,requestBody:l}=t,d=e(t,["type","tags","responses","summary","requestBody"]);let a=structuredClone(d||{});a&&a.parameters&&a.parameters.map(e=>{var s,t,o;return e&&(null===(s=null==e?void 0:e.schema)||void 0===s?void 0:s.items)&&"array"==(null===(o=null===(t=null==e?void 0:e.schema)||void 0===t?void 0:t.items)||void 0===o?void 0:o.type)&&(e.schema.items.items={}),e}),s[o]=Object.assign(Object.assign({},a),{tags:n,summary:r,responses:c.reduce((e,{code:s,content:t,headers:o})=>{const n={};if(o)for(const[e,s]of Object.entries(o))n[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:i(t)})}}:{},headers:n},e},{})});const p="get"!==o?JSON.parse(l.content.schema.properties):{};return"get"!==o&&(s[o].requestBody={content:{[l.content.contentType]:{schema:Object.assign(Object.assign({},l.content.schema),{properties:p})}}}),s},{}),s),{});export{t as transformOpenApiObject,o as transformOpenApiObjectToOrigin,c as transformPathsArrayToOrigin,n as transformPathsToArray};
1
+ import{__rest as e}from"../../node_modules/tslib/tslib.es6.js";const s=(e,s)=>e.replace(/^#\//,"").split("/").reduce((e,s)=>null==e?void 0:e[s],s),t=e=>{var s,t,n,i;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===(i=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===i?void 0:i.type)}else e.components=Object.assign({securitySchemes:{Public:{type:"http",scheme:"public"}}},e.components||{});return e.tags||(e.tags=[]),Object.assign(Object.assign({},e),{paths:o(e)})},n=e=>{var s,t,n,o;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===(o=null===(n=null===(t=null==i?void 0:i.components)||void 0===t?void 0:t.securitySchemes)||void 0===n?void 0:n[e])||void 0===o?void 0:o.type)}return i},o=e=>{const t=e.paths;return Object.entries(t).map(([t,n])=>({path:t,methods:Object.entries(n).map(([t,n])=>{var o,i,c,r,l,d;const a=Object.assign(Object.assign({},n),{type:t,tags:n.tags||[],summary:n.summary||"",responses:Object.entries(n.responses).map(([t,n])=>{var o,i,c,r,l;const d=Object.keys(n.content||{})[0];let a=null!==(o=null==n?void 0:n.headers)&&void 0!==o?o:{};Object.keys(a).map(e=>{var s,t,n,o;let i=a[e];(null==i?void 0:i.schema)&&(null===(s=null==i?void 0:i.schema)||void 0===s?void 0:s.type)&&"array"!=(null===(t=null==i?void 0:i.schema)||void 0===t?void 0:t.type)&&(null===(o=null===(n=a[e])||void 0===n?void 0:n.schema)||void 0===o||delete o.items)});let u=null===(c=null===(i=n.content)||void 0===i?void 0:i[d])||void 0===c?void 0:c.schema;if(null==u?void 0:u.$ref)u=s(null==u?void 0:u.$ref,e);else if("array"==(null==u?void 0:u.type)&&(null===(r=null==u?void 0:u.items)||void 0===r?void 0:r.$ref)){const t=s(u.items.$ref,e);u=Object.assign(Object.assign({},u),{items:t})}return{code:t,headers:a,content:{contentType:d,schema:Object.assign(Object.assign({},u),{properties:JSON.stringify((null==u?void 0:u.properties)||(null===(l=null==u?void 0:u.items)||void 0===l?void 0:l.properties))})}}})});if(a.responses.find(e=>"200"==e.code)||a.responses.push({code:"200",content:{contentType:"application/json",schema:{}},headers:{}}),(null==n?void 0:n.parameters)||(a.parameters=[]),"get"!=t.toLowerCase()){const t=Object.keys((null===(o=null==n?void 0:n.requestBody)||void 0===o?void 0:o.content)||{})[0];let u=null===(r=null===(c=null===(i=null==n?void 0:n.requestBody)||void 0===i?void 0:i.content)||void 0===c?void 0:c[t])||void 0===r?void 0:r.schema;(null==u?void 0:u.$ref)?u=s(u.$ref,e):"array"===(null==u?void 0:u.type)&&(null===(l=u.items)||void 0===l?void 0:l.$ref)&&(u=Object.assign(Object.assign({},u),{items:s(u.items.$ref,e)}));const p=u?{content:{contentType:t,schema:Object.assign(Object.assign({},u),{properties:JSON.stringify((null==u?void 0:u.properties)||(null===(d=null==u?void 0:u.items)||void 0===d?void 0:d.properties))})}}:{content:{contentType:"application/json",schema:{properties:"{}",type:"object"}}};a.requestBody=p}return a})}))},i=(e,s)=>{var t,n;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===(n=null==e?void 0:e.schema)||void 0===n?void 0:n.properties)},c=s=>s.reduce((s,{path:t,methods:n})=>(s[t]=n.reduce((s,t)=>{var{type:n,tags:o,responses:c,summary:r,requestBody:l}=t,d=e(t,["type","tags","responses","summary","requestBody"]);let a=structuredClone(d||{});a&&a.parameters&&a.parameters.map(e=>{var s,t,n;return e&&(null===(s=null==e?void 0:e.schema)||void 0===s?void 0:s.items)&&"array"==(null===(n=null===(t=null==e?void 0:e.schema)||void 0===t?void 0:t.items)||void 0===n?void 0:n.type)&&(e.schema.items.items={}),e});const u=d.responses||{};s[n]=Object.assign(Object.assign({},a),{tags:o,summary:r,responses:c.reduce((e,{code:s,content:t,headers:n})=>{var o;const c=!u[s],r=Object.keys(n||{}).length>0,l=Object.keys(i(t||{})||{}).length>0;if(c&&!r&&!l)return e;const d={};if(n)for(const[e,s]of Object.entries(n))d[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:i(t)})}}:(null===(o=u[s])||void 0===o?void 0:o.content)||{},headers:d},e},{})});const p="get"!==n?JSON.parse(l.content.schema.properties):{};return"get"!==n&&(s[n].requestBody={content:{[l.content.contentType]:{schema:Object.assign(Object.assign({},l.content.schema),{properties:p})}}}),s},{}),s),{});export{t as transformOpenApiObject,n 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\nconst resolveRef = (ref: string, openApiJson: OpenAPIFile): Object => {\n const parts = ref.replace(/^#\\//, '').split('/')\n return parts.reduce((obj, key) => obj?.[key], openApiJson)\n}\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 ...(openApiJson.components || {}),\n }\n }\n\n if (!openApiJson.tags) {\n openApiJson.tags = []\n }\n\n return {\n ...openApiJson,\n paths: transformPathsToArray(openApiJson),\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 = (openApiJson: OpenAPIFile): TransformedPathsArray | any => {\n const paths: OpenAPIFile['paths'] = openApiJson.paths\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 let headers = codeProps?.headers ?? {}\n\n // ? Fix headers with items property\n Object.keys(headers).map((header: string) => {\n let headerObj = headers[header]\n if (\n headerObj?.schema &&\n headerObj?.schema?.type &&\n headerObj?.schema?.type != 'array'\n ) {\n delete headers[header]?.schema?.items\n }\n })\n\n let schema = codeProps.content?.[contentType]?.schema\n if (schema?.$ref) {\n schema = resolveRef(schema?.$ref, openApiJson)\n } else if (schema?.type == 'array' && schema?.items?.$ref) {\n const resolvedItemSchema = resolveRef(schema.items.$ref, openApiJson)\n schema = {\n ...schema,\n items: resolvedItemSchema,\n }\n }\n\n return {\n code,\n headers,\n content: {\n contentType,\n schema: {\n ...schema,\n properties: JSON.stringify(schema?.properties || schema?.items?.properties),\n },\n },\n }\n }),\n }\n\n if (!obj.responses.find((item) => item.code == '200')) {\n obj.responses.push({\n code: '200',\n content: {\n contentType: 'application/json',\n schema: {},\n },\n headers: {},\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 let reqSchema = methodProps?.requestBody?.content?.[contentType]?.schema\n\n if (reqSchema?.$ref) {\n reqSchema = resolveRef(reqSchema.$ref, openApiJson)\n } else if (reqSchema?.type === 'array' && reqSchema.items?.$ref) {\n reqSchema = {\n ...reqSchema,\n items: resolveRef(reqSchema.items.$ref, openApiJson),\n }\n }\n\n const requestBodyData = reqSchema\n ? {\n content: {\n contentType,\n schema: {\n ...reqSchema,\n properties: JSON.stringify(reqSchema?.properties || reqSchema?.items?.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\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 // ? Validate (rest) [parameters]\n let copiedRest = structuredClone(rest || {})\n if (copiedRest && copiedRest.parameters) {\n copiedRest.parameters.map((param) => {\n if (param && param?.schema?.items && param?.schema?.items?.type == 'array') {\n param.schema.items.items = {}\n }\n return param\n })\n }\n methodAcc[type] = {\n ...copiedRest,\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":["resolveRef","ref","openApiJson","replace","split","reduce","obj","key","transformOpenApiObject","components","securitySchemes","authKey","_a","Object","keys","at","type","_d","_c","_b","assign","Public","scheme","tags","paths","transformPathsToArray","transformOpenApiObjectToOrigin","values","object","transformPathsArrayToOrigin","toLowerCase","in","entries","map","path","methods","method","methodProps","summary","responses","code","codeProps","contentType","content","headers","header","headerObj","schema","items","$ref","resolvedItemSchema","properties","JSON","stringify","_e","find","item","push","parameters","requestBody","reqSchema","requestBodyData","_f","validateBodyForResponse","parse","acc","methodAcc","rest","__rest","copiedRest","structuredClone","param","respAcc","formattedHeaders","value","description","required","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\nconst resolveRef = (ref: string, openApiJson: OpenAPIFile): Object => {\n const parts = ref.replace(/^#\\//, '').split('/')\n return parts.reduce((obj, key) => obj?.[key], openApiJson)\n}\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 ...(openApiJson.components || {}),\n }\n }\n\n if (!openApiJson.tags) {\n openApiJson.tags = []\n }\n\n return {\n ...openApiJson,\n paths: transformPathsToArray(openApiJson),\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 = (openApiJson: OpenAPIFile): TransformedPathsArray | any => {\n const paths: OpenAPIFile['paths'] = openApiJson.paths\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 let headers = codeProps?.headers ?? {}\n\n // ? Fix headers with items property\n Object.keys(headers).map((header: string) => {\n let headerObj = headers[header]\n if (\n headerObj?.schema &&\n headerObj?.schema?.type &&\n headerObj?.schema?.type != 'array'\n ) {\n delete headers[header]?.schema?.items\n }\n })\n\n let schema = codeProps.content?.[contentType]?.schema\n if (schema?.$ref) {\n schema = resolveRef(schema?.$ref, openApiJson)\n } else if (schema?.type == 'array' && schema?.items?.$ref) {\n const resolvedItemSchema = resolveRef(schema.items.$ref, openApiJson)\n schema = {\n ...schema,\n items: resolvedItemSchema,\n }\n }\n\n return {\n code,\n headers,\n content: {\n contentType,\n schema: {\n ...schema,\n properties: JSON.stringify(schema?.properties || schema?.items?.properties),\n },\n },\n }\n }),\n }\n\n if (!obj.responses.find((item) => item.code == '200')) {\n obj.responses.push({\n code: '200',\n content: {\n contentType: 'application/json',\n schema: {},\n },\n headers: {},\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 let reqSchema = methodProps?.requestBody?.content?.[contentType]?.schema\n\n if (reqSchema?.$ref) {\n reqSchema = resolveRef(reqSchema.$ref, openApiJson)\n } else if (reqSchema?.type === 'array' && reqSchema.items?.$ref) {\n reqSchema = {\n ...reqSchema,\n items: resolveRef(reqSchema.items.$ref, openApiJson),\n }\n }\n\n const requestBodyData = reqSchema\n ? {\n content: {\n contentType,\n schema: {\n ...reqSchema,\n properties: JSON.stringify(reqSchema?.properties || reqSchema?.items?.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\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 // ? Validate (rest) [parameters]\n let copiedRest = structuredClone(rest || {})\n if (copiedRest && copiedRest.parameters) {\n copiedRest.parameters.map((param) => {\n if (param && param?.schema?.items && param?.schema?.items?.type == 'array') {\n param.schema.items.items = {}\n }\n return param\n })\n }\n\n // Get the original responses from the rest object\n const originalResponses = rest.responses || {}\n\n methodAcc[type] = {\n ...copiedRest,\n tags,\n summary,\n responses: responses.reduce((respAcc, { code, content, headers }) => {\n // Skip if:\n // 1. This is a new code (not in original) AND\n // 2. Both headers and content are empty\n const isNewCode = !originalResponses[code]\n const hasHeaders = Object.keys(headers || {}).length > 0\n const hasContent =\n Object.keys(validateBodyForResponse(content || {}, type) || {}).length > 0\n\n if (isNewCode && !hasHeaders && !hasContent) {\n return respAcc\n }\n\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 : originalResponses[code]?.content || {},\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":["resolveRef","ref","openApiJson","replace","split","reduce","obj","key","transformOpenApiObject","components","securitySchemes","authKey","_a","Object","keys","at","type","_d","_c","_b","assign","Public","scheme","tags","paths","transformPathsToArray","transformOpenApiObjectToOrigin","values","object","transformPathsArrayToOrigin","toLowerCase","in","entries","map","path","methods","method","methodProps","summary","responses","code","codeProps","contentType","content","headers","header","headerObj","schema","items","$ref","resolvedItemSchema","properties","JSON","stringify","_e","find","item","push","parameters","requestBody","reqSchema","requestBodyData","_f","validateBodyForResponse","parse","acc","methodAcc","rest","__rest","copiedRest","structuredClone","param","originalResponses","respAcc","isNewCode","hasHeaders","length","hasContent","formattedHeaders","value","description","required","parsedRequestBodyProps"],"mappings":"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"}
@@ -1,2 +1,2 @@
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/index3.js";import{httpStatusCodes as l}from"../../../constants/index.js";import{handleStatusColor as d}from"../../../helpers/methodAccordion.helper.js";import t from"./style.module.scss.js";const n=l.map(s=>({label:e.jsxs("div",{className:t.statusCodeOptionContainer,children:[e.jsx("div",{className:t.statusCodeOptionCircle,style:{backgroundColor:d(s)}}),e.jsx("span",{children:s})]}),value:String(s)})),a=({data:l})=>{var d,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:t.apiDocsAside,children:[e.jsx("h2",{className:t.apiDocsAside_title,children:l.summary}),e.jsxs("h4",{className:t.apiDocsAside_subtitle,children:[e.jsx("span",{className:t.apiDocsAside_subtitle_method,"data-method":l.method,children:l.method})," ",e.jsx("span",{children:l.path})]}),!["delete","get"].includes(l.method)&&(null===(d=null==l?void 0:l.requestBody)||void 0===d?void 0:d.content)&&e.jsxs("div",{className:t.codeboxSection,children:[e.jsx("div",{className:t.codeboxHeader,children:e.jsx("h6",{className:t.codeboxTitle,children:"Request"})}),e.jsx(o,{code:(()=>{var e,s,o,i,d;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===(d=null===(i=null===(o=null==l?void 0:l.requestBody)||void 0===o?void 0:o.content[e])||void 0===i?void 0:i.schema)||void 0===d?void 0:d.properties,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:t.codeboxSection,children:[e.jsxs("div",{className:`${t.codeboxHeader}`,children:[e.jsx("h6",{className:t.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,o,i;if(null==u?void 0:u.data){const l=Object.keys(null===(e=u.data)||void 0===e?void 0:e.content)[0];return JSON.stringify(null===(i=null===(o=null===(s=u.data)||void 0===s?void 0:s.content[l])||void 0===o?void 0:o.schema)||void 0===i?void 0:i.properties,null,2)}return"{}"})()})]})]})};export{a as default};
1
+ import{j as e}from"../../../../_virtual/jsx-runtime.js";import{useEffect as s,useState as o}from"react";import l from"../Codebox/Codebox.js";import{d as i}from"../../../../_virtual/index3.js";import{handleStatusColor as d}from"../../../helpers/methodAccordion.helper.js";import t from"./style.module.scss.js";const n=({data:n})=>{var a,r;const c=Object.keys((null==n?void 0:n.responses)||{}).filter(e=>{var s,o,l;const i=n.responses[e],d=Object.keys((null==i?void 0:i.content)||{})[0];return null===(l=null===(o=null===(s=null==i?void 0:i.content)||void 0===s?void 0:s[d])||void 0===o?void 0:o.schema)||void 0===l?void 0:l.properties}),u=c.map(s=>({label:e.jsxs("div",{className:t.statusCodeOptionContainer,children:[e.jsx("div",{className:t.statusCodeOptionCircle,style:{backgroundColor:d(s)}}),e.jsx("span",{children:s})]}),value:String(s)}));s(()=>{m(c.includes("200")?u.find(e=>"200"===e.value):u[0]||null)},[n]);const[v,m]=o(u[4]),p=Object.entries(n.responses).map(([e,s])=>({code:e,data:s})).find(e=>e.code===(null==v?void 0:v.value));return e.jsxs("aside",{className:t.apiDocsAside,children:[e.jsx("h2",{className:t.apiDocsAside_title,children:n.summary}),e.jsxs("h4",{className:t.apiDocsAside_subtitle,children:[e.jsx("span",{className:t.apiDocsAside_subtitle_method,"data-method":n.method,children:n.method})," ",e.jsx("span",{children:n.path})]}),!["delete","get"].includes(n.method)&&(null===(a=null==n?void 0:n.requestBody)||void 0===a?void 0:a.content)&&e.jsxs("div",{className:t.codeboxSection,children:[e.jsx("div",{className:t.codeboxHeader,children:e.jsx("h6",{className:t.codeboxTitle,children:"Request"})}),e.jsx(l,{code:(()=>{var e,s,o,l,i;if(null===(e=null==n?void 0:n.requestBody)||void 0===e?void 0:e.content){const e=Object.keys(null===(s=null==n?void 0:n.requestBody)||void 0===s?void 0:s.content)[0];return JSON.stringify(null===(i=null===(l=null===(o=null==n?void 0:n.requestBody)||void 0===o?void 0:o.content[e])||void 0===l?void 0:l.schema)||void 0===i?void 0:i.properties,null,2)}return"{}"})()})]}),(null===(r=Object.keys((null==n?void 0:n.responses)||{}))||void 0===r?void 0:r.length)>0&&e.jsxs("div",{className:t.codeboxSection,children:[e.jsxs("div",{className:`${t.codeboxHeader}`,children:[e.jsx("h6",{className:t.codeboxTitle,children:"Response"}),e.jsx(i.SelectGroup,{size:"small",withSearch:!1,isMultiple:!1,clearable:!1,placeholder:"200",options:[{list:u}],value:v,onChange:e=>{m(e)}})]}),e.jsx(l,{code:(()=>{var e,s,o,l;if(null==p?void 0:p.data){const i=Object.keys(null===(e=p.data)||void 0===e?void 0:e.content)[0];return JSON.stringify(null===(l=null===(o=null===(s=p.data)||void 0===s?void 0:s.content[i])||void 0===o?void 0:o.schema)||void 0===l?void 0:l.properties,null,2)}return"{}"})()})]})]})};export{n 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, { 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]?.schema?.properties, 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]?.schema?.properties, 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 {!['delete', 'get'].includes(data.method) && 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","jsxs","apiDocsAside","apiDocsAside_title","summary","apiDocsAside_subtitle","apiDocsAside_subtitle_method","method","path","includes","_a","requestBody","content","codeboxSection","codeboxHeader","codeboxTitle","jsx","Codebox","contentKey","keys","_b","JSON","stringify","_e","_d","_c","schema","properties","stringifyRequestBody","length","SelectGroup","size","withSearch","isMultiple","clearable","placeholder","options","list","onChange","stringifyResponseBody"],"mappings":"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"}
1
+ {"version":3,"file":"DocsAside.js","sources":["../../../../../src/layout/docsComponents/DocsAside/DocsAside.tsx"],"sourcesContent":["import React, { useEffect, 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 DocsAside = ({ data }: { data: EndpointData }) => {\n // Filter status codes to only include those with non-empty properties\n const filteredStatusCodes = Object.keys(data?.responses || {}).filter((code) => {\n const response = data.responses[code]\n const contentType = Object.keys(response?.content || {})[0]\n return response?.content?.[contentType]?.schema?.properties\n })\n\n // Create options for the select dropdown\n const httpStatusCodeOptions = filteredStatusCodes.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\n // Function to get default option\n const getDefaultOption = () => {\n const has200 = filteredStatusCodes.includes('200')\n return has200\n ? httpStatusCodeOptions.find((opt) => opt.value === '200')\n : httpStatusCodeOptions[0] || null\n }\n\n useEffect(() => {\n setSelectedResStatusCode(getDefaultOption())\n }, [data])\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]?.schema?.properties, 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]?.schema?.properties, 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 {!['delete', 'get'].includes(data.method) && 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":["DocsAside","data","filteredStatusCodes","Object","keys","responses","filter","code","response","contentType","content","_b","_a","schema","_c","properties","httpStatusCodeOptions","map","label","_jsxs","className","styles","statusCodeOptionContainer","children","_jsx","statusCodeOptionCircle","style","backgroundColor","handleStatusColor","value","String","useEffect","setSelectedResStatusCode","includes","find","opt","selectedResStatusCode","useState","currentResponse","entries","res","jsxs","apiDocsAside","apiDocsAside_title","summary","apiDocsAside_subtitle","apiDocsAside_subtitle_method","method","path","requestBody","codeboxSection","codeboxHeader","codeboxTitle","jsx","Codebox","contentKey","JSON","stringify","_e","_d","stringifyRequestBody","length","SelectGroup","size","withSearch","isMultiple","clearable","placeholder","options","list","onChange","stringifyResponseBody"],"mappings":"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"}
@@ -1,2 +1,2 @@
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 i from"../../../../assets/icons/RequestOption.svg.js";import a from"../../../../assets/icons/ArrowBack.svg.js";import o from"../../../../assets/icons/arrow-down.svg.js";import d from"../../../../assets/icons/newCopyIcon.svg.js";import r from"../../../../assets/icons/arrow-up.svg.js";import{d as t}from"../../../../../_virtual/index3.js";import{useState as n,useEffect as c,useMemo as v}from"react";import{handleStatusColor as h}from"../../../../helpers/methodAccordion.helper.js";import{httpStatusCodes as m}from"../../../../constants/index.js";import u from"../../../../components/Tooltip/Tooltip.js";import{useSectionToggle as p,SectionEnum as j}from"../../../../context/SectionToggleContext.js";import{copyToClipboard as x,capitalizeFirstLetter as b}from"../../../../utils/index.js";const N=({data:N,setActiveType:y,setActiveItemData:f})=>{var g,C,w,k,S,q,O,T;const[R,$]=n("header"),{toggleSection:A}=p(),[E,L]=n((null===(w=null===(C=null===(g=null==N?void 0:N.api)||void 0===g?void 0:g.servers)||void 0===C?void 0:C[0])||void 0===w?void 0:w.url)||""),[I,V]=n(!1);c(()=>{var e,s,l;L((null===(l=null===(s=null===(e=null==N?void 0:N.api)||void 0===e?void 0:e.servers)||void 0===s?void 0:s[0])||void 0===l?void 0:l.url)||"")},[N]),v(()=>{var e,s,l;const i=null===(l=null===(s=null===(e=N.api)||void 0===e?void 0:e.servers)||void 0===s?void 0:s.filter(e=>"/"!==e.url)[0])||void 0===l?void 0:l.url,a=null==N?void 0:N.path.split("/").slice(2);return`${i}${(null==a?void 0:a.length)?"/"+a.join("/"):""}`},[N]);const z=m.map(s=>({label:e.jsxs("div",{className:"statusCodeOptionContainer",children:[e.jsx("div",{className:"statusCodeOptionCircle",style:{backgroundColor:h(s)}}),e.jsx("span",{children:s})]}),value:s})),[D,_]=n(null),[B,G]=n(z[4]),[H,P]=n({});return((null==N?void 0:N.parameters)||[]).filter(e=>{var s;return(null===(s=e.in)||void 0===s?void 0:s.toLowerCase())===R.toLowerCase()}),c(()=>{if(B&&B.value){const e=null==N?void 0:N.responses[B.value];P(null==e?void 0:e.headers)}},[B,null==N?void 0:N.responses]),e.jsxs("div",{className:"api-details-expanded",children:[e.jsxs("div",{className:"test-button",children:[e.jsx("button",{className:"back-button",onClick:()=>{A(N.api.apiSpecId,[{type:j.OVERVIEW,setTo:!0}],{resetOthers:!0,filterKeys:[j.RESOURCE]}),y("OVERVIEW"),f(N.api)},children:e.jsx(s,{src:a})}),e.jsx(u,{content:"Comming soon",children:e.jsx("button",{className:"disabled",children:"Test"})})]}),e.jsx("h3",{children:N.api.title}),e.jsx("h1",{className:"api-title",children:null==N?void 0:N.summary}),e.jsxs("div",{className:"url-box",children:[I&&0!==E.length&&e.jsx("div",{className:"url-list",children:null===(S=null===(k=N.api)||void 0===k?void 0:k.servers)||void 0===S?void 0:S.map((s,l)=>e.jsxs("div",{className:"url-item",onClick:()=>{L(s.url),V(!1)},children:[e.jsx("input",{type:"radio",name:"api-method",checked:E===s.url,readOnly:!0}),e.jsx("span",{children:`${s.url}${N.path}`})]},l))}),e.jsxs("div",{className:"url-box_text-container",children:[e.jsx("span",{className:`method-label ${null===(q=null==N?void 0:N.method)||void 0===q?void 0:q.toLowerCase()}`,children:N.method}),e.jsx("div",{className:"url-container",children:e.jsxs("div",{className:"type-ddl",onClick:()=>V(e=>!e),children:[e.jsx("span",{className:"url-text",children:`${E}${N.path}`}),e.jsxs("div",{className:"icon-container",children:[e.jsx(s,{className:"icon",role:"button",tabIndex:0,onClick:e=>{e.stopPropagation(),x(`${E}${N.path}`)},src:d}),0!==E.length&&e.jsx(s,{src:I?r:o})]})]})})]})]}),e.jsx("p",{className:"api-desc",children:(null==N?void 0:N.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"].map(l=>e.jsxs("button",{className:"tab "+(R===l?"active":""),onClick:()=>$(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===(O=N.parameters)||void 0===O?void 0:O.filter(e=>{var s;return(null===(s=e.in)||void 0===s?void 0:s.toLowerCase())===R.toLowerCase()}).map((i,a)=>{var o,d,r,t,n,c,v;return e.jsxs("tr",{children:[e.jsx("td",{children:i.name}),e.jsx("td",{children:i.required?"True":"False"}),e.jsxs("td",{style:{textTransform:"capitalize"},children:[e.jsx("span",{children:(null===(o=null==i?void 0:i.schema)||void 0===o?void 0:o.type)||"-"}),"array"===(null===(d=null==i?void 0:i.schema)||void 0===d?void 0:d.type)&&(null===(t=null===(r=null==i?void 0:i.schema)||void 0===r?void 0:r.items)||void 0===t?void 0:t.type)&&e.jsxs("span",{style:{color:"#616874",fontSize:"0.75rem"},children:["_",b(null===(c=null===(n=i.schema)||void 0===n?void 0:n.items)||void 0===c?void 0:c.type)]})]}),e.jsx("td",{children:Array.isArray(null===(v=i.schema)||void 0===v?void 0:v.enum)?i.schema.enum.join(" / "):"-"}),e.jsxs("td",{className:"desc-cell",children:[e.jsx("div",{className:"desc-text "+(D===a?"expanded":""),children:i.description||"No description"}),e.jsx("button",{className:"desc-toggle",onClick:()=>_(D===a?null:a),children:e.jsx(s,{src:l,className:D===a?"rotated":""})})]})]},a)})})]})})]}),e.jsxs("div",{className:"response-section",children:[e.jsx("h3",{children:"Response"}),e.jsxs("div",{children:[e.jsx("div",{style:{height:"0.5rem",width:"7.5rem",marginLeft:"auto"},children:(null===(T=Object.keys((null==N?void 0:N.responses)||{}))||void 0===T?void 0:T.length)>0&&e.jsx("div",{className:"codeboxSection",children:e.jsx("div",{className:"codeboxHeader",children:e.jsx(t.SelectGroup,{size:"small",withSearch:!1,isMultiple:!1,clearable:!1,placeholder:"200",options:[{list:z}],value:B,onChange:e=>{G(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:!!H&&Object.keys(H)&&Object.keys(H).map(s=>{var l,i,a,o,d,r,t,n,c,v,h,m,u,p,j;return e.jsxs("tr",{children:[e.jsx("td",{children:s}),e.jsx("td",{children:null===(l=H[s])||void 0===l?void 0:l.required.toString()}),e.jsxs("td",{style:{textTransform:"capitalize"},children:[e.jsx("span",{children:(null===(a=null===(i=H[s])||void 0===i?void 0:i.schema)||void 0===a?void 0:a.type)||"-"}),"array"===(null===(d=null===(o=H[s])||void 0===o?void 0:o.schema)||void 0===d?void 0:d.type)&&(null===(n=null===(t=null===(r=H[s])||void 0===r?void 0:r.schema)||void 0===t?void 0:t.items)||void 0===n?void 0:n.type)&&e.jsxs("span",{style:{color:"#616874",fontSize:"0.75rem"},children:["_",b(null===(h=null===(v=null===(c=H[s])||void 0===c?void 0:c.schema)||void 0===v?void 0:v.items)||void 0===h?void 0:h.type)]})]}),e.jsx("td",{children:null===(p=null===(u=null===(m=H[s])||void 0===m?void 0:m.schema)||void 0===u?void 0:u.enum)||void 0===p?void 0:p.join("/")}),e.jsx("td",{children:null===(j=H[s])||void 0===j?void 0:j.description})]})})})]})})]})]})};export{N as EndpointPage};
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 i from"../../../../assets/icons/RequestOption.svg.js";import a from"../../../../assets/icons/ArrowBack.svg.js";import o from"../../../../assets/icons/arrow-down.svg.js";import d from"../../../../assets/icons/newCopyIcon.svg.js";import r from"../../../../assets/icons/arrow-up.svg.js";import{d as n}from"../../../../../_virtual/index3.js";import{useState as t,useEffect as c,useMemo as v}from"react";import{handleStatusColor as h}from"../../../../helpers/methodAccordion.helper.js";import m from"../../../../components/Tooltip/Tooltip.js";import{useSectionToggle as u,SectionEnum as p}from"../../../../context/SectionToggleContext.js";import{copyToClipboard as j,capitalizeFirstLetter as x}from"../../../../utils/index.js";const b=({data:b,setActiveType:N,setActiveItemData:y})=>{var f,g,C,w,k,O,S,q;const[T,R]=t("header"),{toggleSection:$}=u(),[A,E]=t((null===(C=null===(g=null===(f=null==b?void 0:b.api)||void 0===f?void 0:f.servers)||void 0===g?void 0:g[0])||void 0===C?void 0:C.url)||""),[L,I]=t(!1);c(()=>{var e,s,l;E((null===(l=null===(s=null===(e=null==b?void 0:b.api)||void 0===e?void 0:e.servers)||void 0===s?void 0:s[0])||void 0===l?void 0:l.url)||"")},[b]),v(()=>{var e,s,l;const i=null===(l=null===(s=null===(e=b.api)||void 0===e?void 0:e.servers)||void 0===s?void 0:s.filter(e=>"/"!==e.url)[0])||void 0===l?void 0:l.url,a=null==b?void 0:b.path.split("/").slice(2);return`${i}${(null==a?void 0:a.length)?"/"+a.join("/"):""}`},[b]);const V=Object.keys((null==b?void 0:b.responses)||{}).filter(e=>{var s,l,i;const a=b.responses[e];return null===(i=null===(l=null===(s=null==a?void 0:a.content)||void 0===s?void 0:s["application/json"])||void 0===l?void 0:l.schema)||void 0===i?void 0:i.properties}),z=V.map(s=>({label:e.jsxs("div",{className:"statusCodeOptionContainer",children:[e.jsx("div",{className:"statusCodeOptionCircle",style:{backgroundColor:h(s)}}),e.jsx("span",{children:s})]}),value:s})),D=()=>V.includes("200")?z.find(e=>"200"===e.value):z[0]||null,[_,B]=t(null),[G,H]=t(D()),[P,U]=t({});return((null==b?void 0:b.parameters)||[]).filter(e=>{var s;return(null===(s=e.in)||void 0===s?void 0:s.toLowerCase())===T.toLowerCase()}),c(()=>{H(D())},[b]),c(()=>{if(G&&G.value){const e=null==b?void 0:b.responses[G.value];U(null==e?void 0:e.headers)}},[G,null==b?void 0:b.responses]),e.jsxs("div",{className:"api-details-expanded",children:[e.jsxs("div",{className:"test-button",children:[e.jsx("button",{className:"back-button",onClick:()=>{$(b.api.apiSpecId,[{type:p.OVERVIEW,setTo:!0}],{resetOthers:!0,filterKeys:[p.RESOURCE]}),N("OVERVIEW"),y(b.api)},children:e.jsx(s,{src:a})}),e.jsx(m,{content:"Comming soon",children:e.jsx("button",{className:"disabled",children:"Test"})})]}),e.jsx("h3",{children:b.api.title}),e.jsx("h1",{className:"api-title",children:null==b?void 0:b.summary}),e.jsxs("div",{className:"url-box",children:[L&&0!==A.length&&e.jsx("div",{className:"url-list",children:null===(k=null===(w=b.api)||void 0===w?void 0:w.servers)||void 0===k?void 0:k.map((s,l)=>e.jsxs("div",{className:"url-item",onClick:()=>{E(s.url),I(!1)},children:[e.jsx("input",{type:"radio",name:"api-method",checked:A===s.url,readOnly:!0}),e.jsx("span",{children:`${s.url}${b.path}`})]},l))}),e.jsxs("div",{className:"url-box_text-container",children:[e.jsx("span",{className:`method-label ${null===(O=null==b?void 0:b.method)||void 0===O?void 0:O.toLowerCase()}`,children:b.method}),e.jsx("div",{className:"url-container",children:e.jsxs("div",{className:"type-ddl",onClick:()=>I(e=>!e),children:[e.jsx("span",{className:"url-text",children:`${A}${b.path}`}),e.jsxs("div",{className:"icon-container",children:[e.jsx(s,{className:"icon",role:"button",tabIndex:0,onClick:e=>{e.stopPropagation(),j(`${A}${b.path}`)},src:d}),0!==A.length&&e.jsx(s,{src:L?r:o})]})]})})]})]}),e.jsx("p",{className:"api-desc",children:(null==b?void 0:b.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"].map(l=>e.jsxs("button",{className:"tab "+(T===l?"active":""),onClick:()=>R(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===(S=b.parameters)||void 0===S?void 0:S.filter(e=>{var s;return(null===(s=e.in)||void 0===s?void 0:s.toLowerCase())===T.toLowerCase()}).map((i,a)=>{var o,d,r,n,t,c,v;return e.jsxs("tr",{children:[e.jsx("td",{children:i.name}),e.jsx("td",{children:i.required?"True":"False"}),e.jsxs("td",{style:{textTransform:"capitalize"},children:[e.jsx("span",{children:(null===(o=null==i?void 0:i.schema)||void 0===o?void 0:o.type)||"-"}),"array"===(null===(d=null==i?void 0:i.schema)||void 0===d?void 0:d.type)&&(null===(n=null===(r=null==i?void 0:i.schema)||void 0===r?void 0:r.items)||void 0===n?void 0:n.type)&&e.jsxs("span",{style:{color:"#616874",fontSize:"0.75rem"},children:["_",x(null===(c=null===(t=i.schema)||void 0===t?void 0:t.items)||void 0===c?void 0:c.type)]})]}),e.jsx("td",{children:Array.isArray(null===(v=i.schema)||void 0===v?void 0:v.enum)?i.schema.enum.join(" / "):"-"}),e.jsxs("td",{className:"desc-cell",children:[e.jsx("div",{className:"desc-text "+(_===a?"expanded":""),children:i.description||"No description"}),e.jsx("button",{className:"desc-toggle",onClick:()=>B(_===a?null:a),children:e.jsx(s,{src:l,className:_===a?"rotated":""})})]})]},a)})})]})})]}),e.jsxs("div",{className:"response-section",children:[e.jsx("h3",{children:"Response"}),e.jsxs("div",{children:[e.jsx("div",{style:{height:"0.5rem",width:"7.5rem",marginLeft:"auto"},children:(null===(q=Object.keys((null==b?void 0:b.responses)||{}))||void 0===q?void 0:q.length)>0&&e.jsx("div",{className:"codeboxSection",children:e.jsx("div",{className:"codeboxHeader",children:e.jsx(n.SelectGroup,{size:"small",withSearch:!1,isMultiple:!1,clearable:!1,placeholder:"200",options:[{list:z}],value:G,onChange:e=>{H(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:!!P&&Object.keys(P)&&Object.keys(P).map(s=>{var l,i,a,o,d,r,n,t,c,v,h,m,u,p,j;return e.jsxs("tr",{children:[e.jsx("td",{children:s}),e.jsx("td",{children:null===(l=P[s])||void 0===l?void 0:l.required.toString()}),e.jsxs("td",{style:{textTransform:"capitalize"},children:[e.jsx("span",{children:(null===(a=null===(i=P[s])||void 0===i?void 0:i.schema)||void 0===a?void 0:a.type)||"-"}),"array"===(null===(d=null===(o=P[s])||void 0===o?void 0:o.schema)||void 0===d?void 0:d.type)&&(null===(t=null===(n=null===(r=P[s])||void 0===r?void 0:r.schema)||void 0===n?void 0:n.items)||void 0===t?void 0:t.type)&&e.jsxs("span",{style:{color:"#616874",fontSize:"0.75rem"},children:["_",x(null===(h=null===(v=null===(c=P[s])||void 0===c?void 0:c.schema)||void 0===v?void 0:v.items)||void 0===h?void 0:h.type)]})]}),e.jsx("td",{children:null===(p=null===(u=null===(m=P[s])||void 0===m?void 0:m.schema)||void 0===u?void 0:u.enum)||void 0===p?void 0:p.join("/")}),e.jsx("td",{children:null===(j=P[s])||void 0===j?void 0:j.description})]})})})]})})]})]})};export{b 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 SVGLoader from '../../../../components/SVGLoader/SVGLoader'\nimport {\n ArrowBack,\n arrowDown,\n arrowUp,\n DownArrowIcon,\n newCopyIcon,\n RequestOption,\n} from '../../../../assets/icons/index'\nimport { SelectGroup } from 'digitinary-ui'\nimport { useEffect, useMemo, useState } from 'react'\nimport { EndpointData, OverviewData } 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'\nimport './style.scss'\nimport { SectionEnum, useSectionToggle } from '../../../../../src/context/SectionToggleContext'\nimport { capitalizeFirstLetter, copyToClipboard } from '../../../../../src/utils'\n\nexport const EndpointPage = ({\n data,\n setActiveType,\n setActiveItemData,\n}: {\n data: EndpointData\n setActiveType: React.Dispatch<React.SetStateAction<'OVERVIEW' | 'ENDPOINT'>>\n setActiveItemData: React.Dispatch<React.SetStateAction<OverviewData | EndpointData>>\n}) => {\n const [activeTab, setActiveTab] = useState('header')\n const { toggleSection } = useSectionToggle()\n const [selectedUrl, setSelectedUrl] = useState(data?.api?.servers?.[0]?.url || '')\n const [isUrlDropdownOpen, setIsUrlDropdownOpen] = useState<boolean>(false)\n\n useEffect(() => {\n setSelectedUrl(data?.api?.servers?.[0]?.url || '')\n }, [data])\n\n const fullUrl = useMemo(() => {\n // env gateway url + api version(if appended) + context path\n const url = data.api?.servers?.filter((s) => s.url !== '/')[0]?.url\n const pathParts = data?.path.split('/').slice(2) // slice from index 2 to skip the first empty \"\" and \"comments\"\n const fullPath = !!pathParts?.length ? '/' + pathParts.join('/') : '' // this will contain the full path without the context path\n return `${url}${fullPath}`\n }, [data])\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, data?.responses])\n\n // ? TODO: 'body' should be returned after discussing with PO\n\n return (\n <div className=\"api-details-expanded\">\n <div className=\"test-button\">\n <button\n className=\"back-button\"\n onClick={() => {\n toggleSection(data.api.apiSpecId, [{ type: SectionEnum.OVERVIEW, setTo: true }], {\n resetOthers: true,\n filterKeys: [SectionEnum.RESOURCE],\n })\n setActiveType('OVERVIEW')\n setActiveItemData(data.api)\n }}\n >\n <SVGLoader src={ArrowBack} />\n </button>\n\n <Tooltip content=\"Comming soon\">\n <button className=\"disabled\">Test</button>\n </Tooltip>\n </div>\n <h3>{data.api.title}</h3>\n <h1 className=\"api-title\">{data?.summary}</h1>\n <div className=\"url-box\">\n {isUrlDropdownOpen && selectedUrl.length !== 0 && (\n <div className=\"url-list\">\n {data.api?.servers?.map((server, index) => (\n <div\n key={index}\n className=\"url-item\"\n onClick={() => {\n setSelectedUrl(server.url)\n setIsUrlDropdownOpen(false)\n }}\n >\n <input\n type=\"radio\"\n name=\"api-method\"\n checked={selectedUrl === server.url}\n readOnly\n />\n <span>{`${server.url}${data.path}`}</span>\n </div>\n ))}\n </div>\n )}\n <div className=\"url-box_text-container\">\n <span className={`method-label ${data?.method?.toLowerCase()}`}>{data.method}</span>\n <div className=\"url-container\">\n <div className=\"type-ddl\" onClick={() => setIsUrlDropdownOpen((prev) => !prev)}>\n <span className=\"url-text\">{`${selectedUrl}${data.path}`}</span>\n <div className=\"icon-container\">\n <SVGLoader\n className=\"icon\"\n role=\"button\"\n tabIndex={0}\n onClick={(e) => {\n e.stopPropagation()\n copyToClipboard(`${selectedUrl}${data.path}`)\n }}\n src={newCopyIcon}\n />\n {selectedUrl.length !== 0 && (\n <SVGLoader src={!isUrlDropdownOpen ? arrowDown : arrowUp} />\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <p className=\"api-desc\">{data?.description || 'No Description'}</p>\n\n <h3>Request</h3>\n\n <div className=\"request-section\">\n <div className=\"request-tabs\">\n {['header', 'path', 'query'].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 style={{ textTransform: 'capitalize' }}>\n <span>{row?.schema?.type || '-'}</span>\n {row?.schema?.type === 'array' && row?.schema?.items?.type && (\n <span style={{ color: '#616874', fontSize: '0.75rem' }}>\n _{capitalizeFirstLetter(row.schema?.items?.type)}\n </span>\n )}\n </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>\n <div style={{ height: '0.5rem', width: '7.5rem', marginLeft: 'auto' }}>\n {Object.keys(data?.responses || {})?.length > 0 && (\n <div className={'codeboxSection'}>\n <div className={`${'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 <button className=\"tab active \">\n <SVGLoader src={RequestOption} className=\"icon-left\" />\n Header\n </button>\n </div>\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 {!!headersList &&\n Object.keys(headersList) &&\n Object.keys(headersList).map((key) => (\n <tr>\n <td>{key}</td>\n <td>{headersList[key]?.required.toString()}</td>\n <td style={{ textTransform: 'capitalize' }}>\n <span>{headersList[key]?.schema?.type || '-'}</span>\n {headersList[key]?.schema?.type === 'array' &&\n headersList[key]?.schema?.items?.type && (\n <span style={{ color: '#616874', fontSize: '0.75rem' }}>\n _{capitalizeFirstLetter(headersList[key]?.schema?.items?.type)}\n </span>\n )}\n </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","setActiveType","setActiveItemData","activeTab","setActiveTab","useState","toggleSection","useSectionToggle","selectedUrl","setSelectedUrl","_c","_b","_a","api","servers","url","isUrlDropdownOpen","setIsUrlDropdownOpen","useEffect","useMemo","filter","s","pathParts","path","split","slice","length","join","httpStatusCodeOptions","httpStatusCodes","map","code","label","_jsxs","jsxs","className","children","_jsx","style","backgroundColor","handleStatusColor","value","expanded","setExpanded","selectedResStatusCode","setSelectedResStatusCode","headersList","setHeadersList","parameters","param","in","toLowerCase","headerObj","responses","headers","onClick","apiSpecId","type","SectionEnum","OVERVIEW","setTo","resetOthers","filterKeys","RESOURCE","SVGLoader","src","ArrowBack","Tooltip","content","title","summary","_e","_d","server","index","name","checked","readOnly","jsx","_f","method","prev","role","tabIndex","e","stopPropagation","copyToClipboard","newCopyIcon","arrowUp","arrowDown","description","tab","RequestOption","charAt","toUpperCase","_g","p","row","required","textTransform","schema","items","color","fontSize","capitalizeFirstLetter","Array","isArray","enum","DownArrowIcon","height","width","marginLeft","_h","Object","keys","SelectGroup","size","withSearch","isMultiple","clearable","placeholder","options","list","onChange","key","toString","_k","_j","_p","_o","_q"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/layout/docsComponents/DocsContent/EndpointPage/index.tsx"],"sourcesContent":["import SVGLoader from '../../../../components/SVGLoader/SVGLoader'\nimport {\n ArrowBack,\n arrowDown,\n arrowUp,\n DownArrowIcon,\n newCopyIcon,\n RequestOption,\n} from '../../../../assets/icons/index'\nimport { SelectGroup } from 'digitinary-ui'\nimport { useEffect, useMemo, useState } from 'react'\nimport { EndpointData, OverviewData } 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'\nimport './style.scss'\nimport { SectionEnum, useSectionToggle } from '../../../../../src/context/SectionToggleContext'\nimport { capitalizeFirstLetter, copyToClipboard } from '../../../../../src/utils'\n\nexport const EndpointPage = ({\n data,\n setActiveType,\n setActiveItemData,\n}: {\n data: EndpointData\n setActiveType: React.Dispatch<React.SetStateAction<'OVERVIEW' | 'ENDPOINT'>>\n setActiveItemData: React.Dispatch<React.SetStateAction<OverviewData | EndpointData>>\n}) => {\n const [activeTab, setActiveTab] = useState('header')\n const { toggleSection } = useSectionToggle()\n const [selectedUrl, setSelectedUrl] = useState(data?.api?.servers?.[0]?.url || '')\n const [isUrlDropdownOpen, setIsUrlDropdownOpen] = useState<boolean>(false)\n\n useEffect(() => {\n setSelectedUrl(data?.api?.servers?.[0]?.url || '')\n }, [data])\n\n const fullUrl = useMemo(() => {\n // env gateway url + api version(if appended) + context path\n const url = data.api?.servers?.filter((s) => s.url !== '/')[0]?.url\n const pathParts = data?.path.split('/').slice(2) // slice from index 2 to skip the first empty \"\" and \"comments\"\n const fullPath = !!pathParts?.length ? '/' + pathParts.join('/') : '' // this will contain the full path without the context path\n return `${url}${fullPath}`\n }, [data])\n\n // Filter status codes to only include those\n const filteredStatusCodes = Object.keys(data?.responses || {}).filter((code) => {\n const response = data.responses[code]\n return (\n response?.content?.['application/json']?.schema?.properties\n )\n })\n\n // Create options for the select dropdown\n const httpStatusCodeOptions = filteredStatusCodes.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 // Function to get default option\n const getDefaultOption = () => {\n const has200 = filteredStatusCodes.includes('200')\n return has200\n ? httpStatusCodeOptions.find((opt) => opt.value === '200')\n : httpStatusCodeOptions[0] || null\n }\n\n const [expanded, setExpanded] = useState(null)\n const [selectedResStatusCode, setSelectedResStatusCode] = useState(getDefaultOption())\n const [headersList, setHeadersList] = useState({})\n const requestTableData = (data?.parameters || []).filter(\n (param) => param.in?.toLowerCase() === activeTab.toLowerCase()\n )\n\n useEffect(() => {\n setSelectedResStatusCode(getDefaultOption())\n }, [data])\n\n useEffect(() => {\n if (selectedResStatusCode && selectedResStatusCode.value) {\n const headerObj = data?.responses[selectedResStatusCode.value]\n setHeadersList(headerObj?.headers)\n }\n }, [selectedResStatusCode, data?.responses])\n\n return (\n <div className=\"api-details-expanded\">\n <div className=\"test-button\">\n <button\n className=\"back-button\"\n onClick={() => {\n toggleSection(data.api.apiSpecId, [{ type: SectionEnum.OVERVIEW, setTo: true }], {\n resetOthers: true,\n filterKeys: [SectionEnum.RESOURCE],\n })\n setActiveType('OVERVIEW')\n setActiveItemData(data.api)\n }}\n >\n <SVGLoader src={ArrowBack} />\n </button>\n\n <Tooltip content=\"Comming soon\">\n <button className=\"disabled\">Test</button>\n </Tooltip>\n </div>\n <h3>{data.api.title}</h3>\n <h1 className=\"api-title\">{data?.summary}</h1>\n <div className=\"url-box\">\n {isUrlDropdownOpen && selectedUrl.length !== 0 && (\n <div className=\"url-list\">\n {data.api?.servers?.map((server, index) => (\n <div\n key={index}\n className=\"url-item\"\n onClick={() => {\n setSelectedUrl(server.url)\n setIsUrlDropdownOpen(false)\n }}\n >\n <input\n type=\"radio\"\n name=\"api-method\"\n checked={selectedUrl === server.url}\n readOnly\n />\n <span>{`${server.url}${data.path}`}</span>\n </div>\n ))}\n </div>\n )}\n <div className=\"url-box_text-container\">\n <span className={`method-label ${data?.method?.toLowerCase()}`}>{data.method}</span>\n <div className=\"url-container\">\n <div className=\"type-ddl\" onClick={() => setIsUrlDropdownOpen((prev) => !prev)}>\n <span className=\"url-text\">{`${selectedUrl}${data.path}`}</span>\n <div className=\"icon-container\">\n <SVGLoader\n className=\"icon\"\n role=\"button\"\n tabIndex={0}\n onClick={(e) => {\n e.stopPropagation()\n copyToClipboard(`${selectedUrl}${data.path}`)\n }}\n src={newCopyIcon}\n />\n {selectedUrl.length !== 0 && (\n <SVGLoader src={!isUrlDropdownOpen ? arrowDown : arrowUp} />\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <p className=\"api-desc\">{data?.description || 'No Description'}</p>\n\n <h3>Request</h3>\n\n <div className=\"request-section\">\n <div className=\"request-tabs\">\n {['header', 'path', 'query'].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 <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 style={{ textTransform: 'capitalize' }}>\n <span>{row?.schema?.type || '-'}</span>\n {row?.schema?.type === 'array' && row?.schema?.items?.type && (\n <span style={{ color: '#616874', fontSize: '0.75rem' }}>\n _{capitalizeFirstLetter(row.schema?.items?.type)}\n </span>\n )}\n </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 </div>\n\n <div className=\"response-section\">\n <h3>Response</h3>\n\n <div>\n <div style={{ height: '0.5rem', width: '7.5rem', marginLeft: 'auto' }}>\n {Object.keys(data?.responses || {})?.length > 0 && (\n <div className={'codeboxSection'}>\n <div className={`${'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 <button className=\"tab active \">\n <SVGLoader src={RequestOption} className=\"icon-left\" />\n Header\n </button>\n </div>\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 {!!headersList &&\n Object.keys(headersList) &&\n Object.keys(headersList).map((key) => (\n <tr>\n <td>{key}</td>\n <td>{headersList[key]?.required.toString()}</td>\n <td style={{ textTransform: 'capitalize' }}>\n <span>{headersList[key]?.schema?.type || '-'}</span>\n {headersList[key]?.schema?.type === 'array' &&\n headersList[key]?.schema?.items?.type && (\n <span style={{ color: '#616874', fontSize: '0.75rem' }}>\n _{capitalizeFirstLetter(headersList[key]?.schema?.items?.type)}\n </span>\n )}\n </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","setActiveType","setActiveItemData","activeTab","setActiveTab","useState","toggleSection","useSectionToggle","selectedUrl","setSelectedUrl","_c","_b","_a","api","servers","url","isUrlDropdownOpen","setIsUrlDropdownOpen","useEffect","useMemo","filter","s","pathParts","path","split","slice","length","join","filteredStatusCodes","Object","keys","responses","code","response","content","schema","properties","httpStatusCodeOptions","map","label","_jsxs","jsxs","className","children","_jsx","style","backgroundColor","handleStatusColor","value","getDefaultOption","includes","find","opt","expanded","setExpanded","selectedResStatusCode","setSelectedResStatusCode","headersList","setHeadersList","parameters","param","in","toLowerCase","headerObj","headers","onClick","apiSpecId","type","SectionEnum","OVERVIEW","setTo","resetOthers","filterKeys","RESOURCE","SVGLoader","src","ArrowBack","Tooltip","title","summary","_e","_d","server","index","name","checked","readOnly","jsx","_f","method","prev","role","tabIndex","e","stopPropagation","copyToClipboard","newCopyIcon","arrowUp","arrowDown","description","tab","RequestOption","charAt","toUpperCase","_g","p","row","required","textTransform","items","color","fontSize","capitalizeFirstLetter","Array","isArray","enum","DownArrowIcon","height","width","marginLeft","_h","SelectGroup","size","withSearch","isMultiple","clearable","placeholder","options","list","onChange","key","toString","_k","_j","_p","_o","_q"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as e}from"../../../../_virtual/jsx-runtime.js";import{useState as s}from"react";import{d as o}from"../../../../_virtual/index3.js";import t from"../../../components/SVGLoader/SVGLoader.js";import r from"../../../assets/icons/UpArrow.svg.js";import i from"../../../assets/icons/DownArrow.svg.js";import a from"../../../assets/icons/ApiIcon.svg.js";import n from"../../../assets/icons/FilterIcon.svg.js";import l from"../../../assets/icons/BookIcon.svg.js";import c from"../../../assets/icons/searchIcon.svg.js";import d from"../../../components/Tooltip/Tooltip.js";import m from"../../../components/dialog/index.js";import{METHOD_OPTIONS as h}from"../../../constants/methods.constant.js";import p from"./DocsHeader.module.scss.js";const j=({transformedOpenApis:j,updateFilteredData:u})=>{const[x,v]=s(!1),[f,g]=s(""),[N,b]=s([]),[_,C]=s(!1);return e.jsxs(e.Fragment,{children:[e.jsx("header",{className:p.api_docs_header,children:e.jsxs("div",{className:p.header_content,children:[e.jsxs(o.Button,{variant:"outlined",size:"small",className:p.search_filter_btn,onClick:()=>{v(!0)},children:["Search & Filter",e.jsx(t,{src:n})]}),e.jsxs("div",{className:p.nav_buttons,children:[e.jsx(d,{placement:"bottom",delay:[0,0],className:`guides-tooltip ${p.tippy_box_color}`,content:e.jsx("div",{children:"Coming Soon"}),children:e.jsxs(o.Button,{variant:"outlined",size:"small",className:"guide-btn",disabled:!0,children:[e.jsx(t,{src:l}),"GUIDES"]})}),e.jsxs(o.Button,{variant:"outlined",size:"small",className:p.api_btn,children:[e.jsx(t,{src:a}),"   API reference"]})]})]})}),e.jsx(m,{size:"sm",open:x,onClose:()=>{v(!1),C(!1)},icon:!1,withClose:!1,noActions:!0,content:e.jsxs("div",{className:"search-filter-form "+(_?"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(o.Input,{className:"name-input",placeholder:"Search by API name",value:f,onChange:e=>g(e),size:o.Size.Medium,clearable:!0,endAdornment:e.jsx(t,{src:c})}),e.jsxs("div",{className:"method-container",children:[e.jsx("label",{children:"Method"}),e.jsxs("div",{className:"typeDdl",onClick:()=>C(e=>!e),children:[e.jsx("span",{children:"Select Method"}),e.jsx(t,{src:_?r:i})]}),_&&e.jsx("div",{className:"methodList",children:h.map(s=>e.jsxs("div",{className:"method-item",children:[e.jsx("input",{type:"checkbox",className:"agreement-checkbox",checked:N.includes(s.value),onChange:e=>((e,s)=>{const{target:{checked:o}}=e;o?b(e=>[...e,s.value]):N.includes(s.value)&&b(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(o.Button,{variant:"contained",color:"primary",size:"large",onClick:()=>{if(!((null==f?void 0:f.trim())||N&&0!==N.length))return u(j,!0),void v(!1);let e=[...j];if(null==f?void 0:f.trim()){const s=f.toLowerCase();e=e.filter(e=>e.title.toLowerCase().includes(s))}(null==N?void 0:N.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 N.some(e=>s.includes(e.toLowerCase()))})),u(e),v(!1)},className:"dialog-submit-btn",children:"Apply"})})]})})]})};export{j as default};
1
+ import{j as e}from"../../../../_virtual/jsx-runtime.js";import{useState as s}from"react";import{d as o}from"../../../../_virtual/index3.js";import t from"../../../components/SVGLoader/SVGLoader.js";import r from"../../../assets/icons/UpArrow.svg.js";import i from"../../../assets/icons/DownArrow.svg.js";import a from"../../../assets/icons/ApiIcon.svg.js";import n from"../../../assets/icons/FilterIcon.svg.js";import l from"../../../assets/icons/BookIcon.svg.js";import c from"../../../assets/icons/searchIcon.svg.js";import d from"../../../components/Tooltip/Tooltip.js";import m from"../../../components/dialog/index.js";import{METHOD_OPTIONS as h}from"../../../constants/methods.constant.js";import j from"./DocsHeader.module.scss.js";const p=({transformedOpenApis:p,updateFilteredData:u})=>{const[v,x]=s(!1),[f,g]=s(""),[N,b]=s([]),[_,C]=s(!1);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(o.Button,{variant:"outlined",size:"small",className:j.search_filter_btn,onClick:()=>{x(!0)},children:["Search & Filter",e.jsx(t,{src:n})]}),e.jsxs("div",{className:j.nav_buttons,children:[e.jsx(d,{placement:"bottom",offset:[10,5],delay:[0,0],className:"guide-tooltip",content:e.jsx("div",{children:"Coming Soon"}),children:e.jsxs(o.Button,{variant:"outlined",size:"small",className:"guide-btn",disabled:!0,children:[e.jsx(t,{src:l}),"GUIDES"]})}),e.jsxs(o.Button,{variant:"outlined",size:"small",className:j.api_btn,children:[e.jsx(t,{src:a}),"   API reference"]})]})]})}),e.jsx(m,{size:"sm",open:v,onClose:()=>{x(!1),C(!1)},icon:!1,withClose:!1,noActions:!0,content:e.jsxs("div",{className:"search-filter-form "+(_?"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(o.Input,{className:"name-input",placeholder:"Search by API name",value:f,onChange:e=>g(e),size:o.Size.Medium,clearable:!0,endAdornment:e.jsx(t,{src:c})}),e.jsxs("div",{className:"method-container",children:[e.jsx("label",{children:"Method"}),e.jsxs("div",{className:"typeDdl",onClick:()=>C(e=>!e),children:[e.jsx("span",{children:"Select Method"}),e.jsx(t,{src:_?r:i})]}),_&&e.jsx("div",{className:"methodList",children:h.map(s=>e.jsxs("div",{className:"method-item",children:[e.jsx("input",{type:"checkbox",className:"agreement-checkbox",checked:N.includes(s.value),onChange:e=>((e,s)=>{const{target:{checked:o}}=e;o?b(e=>[...e,s.value]):N.includes(s.value)&&b(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(o.Button,{variant:"contained",color:"primary",size:"large",onClick:()=>{if(!((null==f?void 0:f.trim())||N&&0!==N.length))return u(p,!0),void x(!1);let e=[...p];if(null==f?void 0:f.trim()){const s=f.toLowerCase();e=e.filter(e=>e.title.toLowerCase().includes(s))}(null==N?void 0:N.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 N.some(e=>s.includes(e.toLowerCase()))})),u(e),x(!1)},className:"dialog-submit-btn",children:"Apply"})})]})})]})};export{p 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 } from 'digitinary-ui'\nimport SVGLoader from '../../../components/SVGLoader/SVGLoader'\nimport {\n FilterIcon,\n BookIcon,\n ApiIcon,\n SearchIcon,\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'\nimport { OverviewData } from '../../../../src/layout/docsLayout'\n\nconst DocsHeader = ({\n transformedOpenApis,\n updateFilteredData,\n}: {\n transformedOpenApis: OverviewData[]\n updateFilteredData: (filteredItems: OverviewData[], isReset?: boolean) => void\n}) => {\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\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} /> &nbsp; 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","_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
+ {"version":3,"file":"DocsHeader.js","sources":["../../../../../src/layout/docsComponents/DocsHeader/DocsHeader.tsx"],"sourcesContent":["import React, { useState, useRef } from 'react'\nimport { Button, Size, Input } from 'digitinary-ui'\nimport SVGLoader from '../../../components/SVGLoader/SVGLoader'\nimport {\n FilterIcon,\n BookIcon,\n ApiIcon,\n SearchIcon,\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'\nimport { OverviewData } from '../../../../src/layout/docsLayout'\n\nconst DocsHeader = ({\n transformedOpenApis,\n updateFilteredData,\n}: {\n transformedOpenApis: OverviewData[]\n updateFilteredData: (filteredItems: OverviewData[], isReset?: boolean) => void\n}) => {\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\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 offset={[10, 5]}\n delay={[0, 0]}\n className=\"guide-tooltip\"\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} /> &nbsp; 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","_jsxs","_jsx","jsx","className","styles","api_docs_header","children","header_content","Button","variant","size","search_filter_btn","onClick","SVGLoader","src","FilterIcon","nav_buttons","Tooltip","placement","offset","delay","content","jsxs","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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"}