@digi-frontend/dgate-api-documentation 1.0.8 → 1.0.10

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.
Files changed (32) hide show
  1. package/dist/node_modules/digitinary-ui/dist/index.js +1 -1
  2. package/dist/node_modules/digitinary-ui/dist/index.js.map +1 -1
  3. package/dist/src/components/InfoForm/InfoForm.js.map +1 -1
  4. package/dist/src/components/JsonInput/JsonInput.js +1 -1
  5. package/dist/src/components/JsonInput/JsonInput.js.map +1 -1
  6. package/dist/src/components/LivePreview/LivePreview.js +1 -1
  7. package/dist/src/components/LivePreview/LivePreview.js.map +1 -1
  8. package/dist/src/components/MethodAccordion/MethodAccordion.js +1 -1
  9. package/dist/src/components/MethodAccordion/MethodAccordion.js.map +1 -1
  10. package/dist/src/components/table/table.js +1 -1
  11. package/dist/src/components/table/table.js.map +1 -1
  12. package/dist/src/constants/index.js.map +1 -1
  13. package/dist/src/helpers/layout.helper.js +1 -1
  14. package/dist/src/helpers/layout.helper.js.map +1 -1
  15. package/dist/src/layout/layout.js +1 -1
  16. package/dist/src/layout/layout.js.map +1 -1
  17. package/dist/src/layout/layout.module.css.js +1 -1
  18. package/dist/styles.css +772 -742
  19. package/dist/types/components/JsonInput/JsonInput.d.ts +2 -1
  20. package/dist/types/components/MethodAccordion/MethodAccordion.d.ts +1 -1
  21. package/package.json +2 -2
  22. package/src/components/InfoForm/InfoForm.tsx +1 -0
  23. package/src/components/JsonInput/JsonInput.tsx +34 -26
  24. package/src/components/JsonInput/style.module.scss +14 -4
  25. package/src/components/LivePreview/LivePreview.tsx +11 -17
  26. package/src/components/MethodAccordion/MethodAccordion.module.scss +54 -23
  27. package/src/components/MethodAccordion/MethodAccordion.tsx +8 -4
  28. package/src/components/table/table.tsx +27 -16
  29. package/src/constants/index.ts +4 -4
  30. package/src/helpers/layout.helper.ts +13 -1
  31. package/src/layout/layout.module.css +1 -1
  32. package/src/layout/layout.tsx +1 -2
@@ -1,2 +1,2 @@
1
- import{__rest as e}from"../../node_modules/tslib/tslib.es6.js";const t=e=>{var t,s,n,c,i;if(e.components&&e.components.securitySchemes){const o=null===(t=Object.keys(e.components.securitySchemes))||void 0===t?void 0:t.at(0);o&&(e.components.securitySchemes[o].type=null===(i=null===(c=null===(n=null===(s=null==e?void 0:e.components)||void 0===s?void 0:s.securitySchemes)||void 0===n?void 0:n[o])||void 0===c?void 0:c.type)||void 0===i?void 0:i.toUpperCase())}return Object.assign(Object.assign({},e),{paths:o(e.paths)})},s=e=>{var t,s,o,c,i;const r=Object.assign(Object.assign({},e),{paths:n(e.paths)});if(r.components&&r.components.securitySchemes){const e=null===(t=Object.keys(r.components.securitySchemes))||void 0===t?void 0:t.at(0);e&&(r.components.securitySchemes[e].type.toLowerCase()=="APIKEY".toLowerCase()&&(r.components.securitySchemes[e].in=r.components.securitySchemes[e].in.toUpperCase()),r.components.securitySchemes[e].type=null===(i=null===(c=null===(o=null===(s=null==r?void 0:r.components)||void 0===s?void 0:s.securitySchemes)||void 0===o?void 0:o[e])||void 0===c?void 0:c.type)||void 0===i?void 0:i.toUpperCase())}return r},o=e=>Object.entries(e).map((([e,t])=>({path:e,methods:Object.entries(t).map((([e,t])=>{var s,o,n,c,i,r;const p=Object.assign(Object.assign({},t),{type:e,tags:t.tags,responses:Object.entries(t.responses).map((([e,t])=>{var s,o,n,c,i;const r=Object.keys(t.content||{})[0];return{code:e,content:{contentType:r,schema:Object.assign(Object.assign({},null===(o=null===(s=t.content)||void 0===s?void 0:s[r])||void 0===o?void 0:o.schema),{properties:JSON.stringify(null===(i=null===(c=null===(n=t.content)||void 0===n?void 0:n[r])||void 0===c?void 0:c.schema)||void 0===i?void 0:i.properties)})}}}))});if("get"!=e.toLowerCase()){const e=Object.keys((null===(s=null==t?void 0:t.requestBody)||void 0===s?void 0:s.content)||{})[0],d=null===(n=null===(o=null==t?void 0:t.requestBody)||void 0===o?void 0:o.content)||void 0===n?void 0:n.schema,l=(null===(r=null===(i=null===(c=null==t?void 0:t.requestBody)||void 0===c?void 0:c.content)||void 0===i?void 0:i.schema)||void 0===r?void 0:r.properties)?{content:{contentType:e,schema:Object.assign(Object.assign({},d),{properties:(null==d?void 0:d.properties)?JSON.stringify(null==d?void 0:d.properties):"{}"})}}:{content:{contentType:"application/json",schema:{properties:"{}",type:"object"}}};p.requestBody=l}return p}))}))),n=t=>t.reduce(((t,{path:s,methods:o})=>(t[s]=o.reduce(((t,s)=>{var{type:o,tags:n,responses:c,requestBody:i}=s,r=e(s,["type","tags","responses","requestBody"]);t[o]=Object.assign(Object.assign({},r),{tags:n,responses:c.reduce(((e,{code:t,content:s})=>{var o;return e[t]={description:"Success",content:s.contentType?{[s.contentType]:{schema:Object.assign(Object.assign({},s.schema),{properties:JSON.parse(null===(o=null==s?void 0:s.schema)||void 0===o?void 0:o.properties)})}}:{}},e}),{})});const p="get"!==o?JSON.parse(i.content.schema.properties):{};return"get"!==o&&(t[o].requestBody={content:{[i.content.contentType]:{schema:Object.assign(Object.assign({},i.content.schema),{properties:p})}}}),t}),{}),t)),{});export{t as transformOpenApiObject,s as transformOpenApiObjectToOrigin,n as transformPathsArrayToOrigin,o as transformPathsToArray};
1
+ import{__rest as e}from"../../node_modules/tslib/tslib.es6.js";const t=e=>{var t,s,n,c,i;if(e.components&&e.components.securitySchemes){const o=null===(t=Object.keys(e.components.securitySchemes))||void 0===t?void 0:t.at(0);o&&(e.components.securitySchemes[o].type=null===(i=null===(c=null===(n=null===(s=null==e?void 0:e.components)||void 0===s?void 0:s.securitySchemes)||void 0===n?void 0:n[o])||void 0===c?void 0:c.type)||void 0===i?void 0:i.toUpperCase())}else e.components={securitySchemes:{Public:{type:"http",scheme:"public"}}};return Object.assign(Object.assign({},e),{paths:o(e.paths)})},s=e=>{var t,s,o,c,i;const r=Object.assign(Object.assign({},e),{paths:n(e.paths)});if(r.components&&r.components.securitySchemes){const e=null===(t=Object.keys(r.components.securitySchemes))||void 0===t?void 0:t.at(0);e&&(r.components.securitySchemes[e].type.toLowerCase()=="APIKEY".toLowerCase()&&(r.components.securitySchemes[e].in=r.components.securitySchemes[e].in.toUpperCase()),r.components.securitySchemes[e].type=null===(i=null===(c=null===(o=null===(s=null==r?void 0:r.components)||void 0===s?void 0:s.securitySchemes)||void 0===o?void 0:o[e])||void 0===c?void 0:c.type)||void 0===i?void 0:i.toUpperCase())}return r},o=e=>Object.entries(e).map((([e,t])=>({path:e,methods:Object.entries(t).map((([e,t])=>{var s,o,n,c,i,r;const p=Object.assign(Object.assign({},t),{type:e,tags:t.tags,responses:Object.entries(t.responses).map((([e,t])=>{var s,o,n,c,i;const r=Object.keys(t.content||{})[0];return{code:e,content:{contentType:r,schema:Object.assign(Object.assign({},null===(o=null===(s=t.content)||void 0===s?void 0:s[r])||void 0===o?void 0:o.schema),{properties:JSON.stringify(null===(i=null===(c=null===(n=t.content)||void 0===n?void 0:n[r])||void 0===c?void 0:c.schema)||void 0===i?void 0:i.properties)})}}}))});if((null==t?void 0:t.parameters)||(p.parameters=[]),"get"!=e.toLowerCase()){const e=Object.keys((null===(s=null==t?void 0:t.requestBody)||void 0===s?void 0:s.content)||{})[0],d=null===(n=null===(o=null==t?void 0:t.requestBody)||void 0===o?void 0:o.content)||void 0===n?void 0:n.schema,l=(null===(r=null===(i=null===(c=null==t?void 0:t.requestBody)||void 0===c?void 0:c.content)||void 0===i?void 0:i.schema)||void 0===r?void 0:r.properties)?{content:{contentType:e,schema:Object.assign(Object.assign({},d),{properties:(null==d?void 0:d.properties)?JSON.stringify(null==d?void 0:d.properties):"{}"})}}:{content:{contentType:"application/json",schema:{properties:"{}",type:"object"}}};p.requestBody=l}return p}))}))),n=t=>t.reduce(((t,{path:s,methods:o})=>(t[s]=o.reduce(((t,s)=>{var{type:o,tags:n,responses:c,requestBody:i}=s,r=e(s,["type","tags","responses","requestBody"]);t[o]=Object.assign(Object.assign({},r),{tags:n,responses:c.reduce(((e,{code:t,content:s})=>{var o;return e[t]={description:"Success",content:s.contentType?{[s.contentType]:{schema:Object.assign(Object.assign({},s.schema),{properties:JSON.parse(null===(o=null==s?void 0:s.schema)||void 0===o?void 0:o.properties)})}}:{}},e}),{})});const p="get"!==o?JSON.parse(i.content.schema.properties):{};return"get"!==o&&(t[o].requestBody={content:{[i.content.contentType]:{schema:Object.assign(Object.assign({},i.content.schema),{properties:p})}}}),t}),{}),t)),{});export{t as transformOpenApiObject,s as transformOpenApiObjectToOrigin,n 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'\r\nimport { OpenAPIFile, SecurityScheme } from '@entities/openApi'\r\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\r\n\r\nexport const transformOpenApiObject = (openApiJson: OpenAPIFile): TransformedOpenApi => {\r\n if (openApiJson.components && openApiJson.components.securitySchemes) {\r\n const authKey = Object.keys(openApiJson.components.securitySchemes)?.at(0)\r\n\r\n if (authKey) {\r\n openApiJson.components.securitySchemes[authKey].type =\r\n openApiJson?.components?.securitySchemes?.[\r\n authKey\r\n ]?.type?.toUpperCase() as SecurityScheme['type']\r\n }\r\n }\r\n\r\n return {\r\n ...openApiJson,\r\n paths: transformPathsToArray(openApiJson.paths),\r\n } as TransformedOpenApi\r\n}\r\n\r\nexport const transformOpenApiObjectToOrigin = (values: TransformedOpenApi): OpenAPIFile => {\r\n const object = {\r\n ...values,\r\n paths: transformPathsArrayToOrigin(values.paths),\r\n }\r\n if (object.components && object.components.securitySchemes) {\r\n const authKey = Object.keys(object.components.securitySchemes)?.at(0)\r\n if (authKey) {\r\n if (object.components.securitySchemes[authKey].type.toLowerCase() == 'APIKEY'.toLowerCase()) {\r\n object.components.securitySchemes[authKey].in = object.components.securitySchemes[\r\n authKey\r\n ].in.toUpperCase() as SecurityScheme['in']\r\n }\r\n object.components.securitySchemes[authKey].type = object?.components?.securitySchemes?.[\r\n authKey\r\n ]?.type?.toUpperCase() as SecurityScheme['type']\r\n }\r\n }\r\n return object\r\n}\r\n\r\nexport const transformPathsToArray = (paths: OpenAPIFile['paths']): TransformedPathsArray | any => {\r\n const transformedPaths = Object.entries(paths).map(([path, methods]) => ({\r\n path,\r\n methods: Object.entries(methods).map(([method, methodProps]) => {\r\n const obj: any = {\r\n ...methodProps,\r\n type: method,\r\n tags: methodProps.tags,\r\n responses: Object.entries(methodProps.responses).map(([code, codeProps]) => {\r\n const contentType = Object.keys(codeProps.content || {})[0]\r\n return {\r\n code,\r\n content: {\r\n contentType,\r\n schema: {\r\n ...codeProps.content?.[contentType]?.schema,\r\n properties: JSON.stringify(codeProps.content?.[contentType]?.schema?.properties),\r\n },\r\n },\r\n }\r\n }),\r\n }\r\n\r\n if (method.toLowerCase() != 'get') {\r\n const contentType = Object.keys(methodProps?.requestBody?.content || {})[0]\r\n const reqSchema = methodProps?.requestBody?.content?.schema\r\n const requestBodyData = methodProps?.requestBody?.content?.schema?.properties\r\n ? {\r\n content: {\r\n contentType,\r\n schema: {\r\n ...reqSchema,\r\n properties: reqSchema?.properties ? JSON.stringify(reqSchema?.properties) : '{}',\r\n },\r\n },\r\n }\r\n : {\r\n content: {\r\n contentType: 'application/json',\r\n schema: {\r\n properties: '{}',\r\n type: 'object',\r\n },\r\n },\r\n }\r\n\r\n obj['requestBody'] = requestBodyData\r\n }\r\n\r\n return obj\r\n }),\r\n }))\r\n return transformedPaths\r\n}\r\n\r\nexport const transformPathsArrayToOrigin = (paths: TransformedPathsArray): OpenAPIFile['paths'] => {\r\n return paths.reduce((acc, { path, methods }) => {\r\n acc[path] = methods.reduce((methodAcc, { type, tags, responses, requestBody, ...rest }) => {\r\n // Initialize the method object\r\n methodAcc[type] = {\r\n ...rest,\r\n tags,\r\n responses: responses.reduce((respAcc, { code, content }) => {\r\n respAcc[code] = {\r\n description: 'Success', // Assuming this is static from the original data\r\n content: content.contentType\r\n ? {\r\n [content.contentType]: {\r\n schema: {\r\n ...(content.schema as object),\r\n properties: JSON.parse((content?.schema as any)?.properties as string),\r\n },\r\n },\r\n }\r\n : {},\r\n }\r\n return respAcc\r\n }, {} as Record<string, any>),\r\n }\r\n\r\n const parsedRequestBodyProps =\r\n type !== 'get' ? JSON.parse(requestBody.content.schema.properties) : {}\r\n // Add requestBody for non-GET methods\r\n if (type !== 'get') {\r\n methodAcc[type].requestBody = {\r\n content: {\r\n [requestBody.content.contentType]: {\r\n schema: {\r\n ...requestBody.content.schema,\r\n properties: parsedRequestBodyProps,\r\n },\r\n },\r\n },\r\n }\r\n }\r\n\r\n return methodAcc\r\n }, {} as Record<string, any>)\r\n\r\n return acc\r\n }, {} as OpenAPIFile['paths'])\r\n}\r\n"],"names":["transformOpenApiObject","openApiJson","components","securitySchemes","authKey","_a","Object","keys","at","type","_e","_d","_b","_c","toUpperCase","assign","paths","transformPathsToArray","transformOpenApiObjectToOrigin","values","object","transformPathsArrayToOrigin","toLowerCase","in","entries","map","path","methods","method","methodProps","obj","tags","responses","code","codeProps","contentType","content","schema","properties","JSON","stringify","requestBody","reqSchema","requestBodyData","reduce","acc","methodAcc","rest","__rest","respAcc","description","parse","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'\r\nimport { OpenAPIFile, SecurityScheme } from '@entities/openApi'\r\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\r\n\r\nexport const transformOpenApiObject = (openApiJson: OpenAPIFile): TransformedOpenApi => {\r\n if (openApiJson.components && openApiJson.components.securitySchemes) {\r\n const authKey = Object.keys(openApiJson.components.securitySchemes)?.at(0)\r\n if (authKey) {\r\n openApiJson.components.securitySchemes[authKey].type =\r\n openApiJson?.components?.securitySchemes?.[\r\n authKey\r\n ]?.type?.toUpperCase() as SecurityScheme['type']\r\n }\r\n } else {\r\n openApiJson.components = {\r\n securitySchemes: {\r\n Public: {\r\n type: 'http',\r\n scheme: 'public',\r\n },\r\n },\r\n }\r\n }\r\n\r\n return {\r\n ...openApiJson,\r\n paths: transformPathsToArray(openApiJson.paths),\r\n } as TransformedOpenApi\r\n}\r\n\r\nexport const transformOpenApiObjectToOrigin = (values: TransformedOpenApi): OpenAPIFile => {\r\n const object = {\r\n ...values,\r\n paths: transformPathsArrayToOrigin(values.paths),\r\n }\r\n if (object.components && object.components.securitySchemes) {\r\n const authKey = Object.keys(object.components.securitySchemes)?.at(0)\r\n if (authKey) {\r\n if (object.components.securitySchemes[authKey].type.toLowerCase() == 'APIKEY'.toLowerCase()) {\r\n object.components.securitySchemes[authKey].in = object.components.securitySchemes[\r\n authKey\r\n ].in.toUpperCase() as SecurityScheme['in']\r\n }\r\n object.components.securitySchemes[authKey].type = object?.components?.securitySchemes?.[\r\n authKey\r\n ]?.type?.toUpperCase() as SecurityScheme['type']\r\n }\r\n }\r\n return object\r\n}\r\n\r\nexport const transformPathsToArray = (paths: OpenAPIFile['paths']): TransformedPathsArray | any => {\r\n const transformedPaths = Object.entries(paths).map(([path, methods]) => ({\r\n path,\r\n methods: Object.entries(methods).map(([method, methodProps]) => {\r\n const obj: any = {\r\n ...methodProps,\r\n type: method,\r\n tags: methodProps.tags,\r\n responses: Object.entries(methodProps.responses).map(([code, codeProps]) => {\r\n const contentType = Object.keys(codeProps.content || {})[0]\r\n return {\r\n code,\r\n content: {\r\n contentType,\r\n schema: {\r\n ...codeProps.content?.[contentType]?.schema,\r\n properties: JSON.stringify(codeProps.content?.[contentType]?.schema?.properties),\r\n },\r\n },\r\n }\r\n }),\r\n }\r\n // Add parameters if it does not exist in the original JSON\r\n if (!methodProps?.parameters) {\r\n obj.parameters = []\r\n }\r\n\r\n if (method.toLowerCase() != 'get') {\r\n const contentType = Object.keys(methodProps?.requestBody?.content || {})[0]\r\n const reqSchema = methodProps?.requestBody?.content?.schema\r\n const requestBodyData = methodProps?.requestBody?.content?.schema?.properties\r\n ? {\r\n content: {\r\n contentType,\r\n schema: {\r\n ...reqSchema,\r\n properties: reqSchema?.properties ? JSON.stringify(reqSchema?.properties) : '{}',\r\n },\r\n },\r\n }\r\n : {\r\n content: {\r\n contentType: 'application/json',\r\n schema: {\r\n properties: '{}',\r\n type: 'object',\r\n },\r\n },\r\n }\r\n\r\n obj['requestBody'] = requestBodyData\r\n }\r\n\r\n return obj\r\n }),\r\n }))\r\n return transformedPaths\r\n}\r\n\r\nexport const transformPathsArrayToOrigin = (paths: TransformedPathsArray): OpenAPIFile['paths'] => {\r\n return paths.reduce((acc, { path, methods }) => {\r\n acc[path] = methods.reduce((methodAcc, { type, tags, responses, requestBody, ...rest }) => {\r\n // Initialize the method object\r\n methodAcc[type] = {\r\n ...rest,\r\n tags,\r\n responses: responses.reduce((respAcc, { code, content }) => {\r\n respAcc[code] = {\r\n description: 'Success', // Assuming this is static from the original data\r\n content: content.contentType\r\n ? {\r\n [content.contentType]: {\r\n schema: {\r\n ...(content.schema as object),\r\n properties: JSON.parse((content?.schema as any)?.properties as string),\r\n },\r\n },\r\n }\r\n : {},\r\n }\r\n return respAcc\r\n }, {} as Record<string, any>),\r\n }\r\n\r\n const parsedRequestBodyProps =\r\n type !== 'get' ? JSON.parse(requestBody.content.schema.properties) : {}\r\n // Add requestBody for non-GET methods\r\n if (type !== 'get') {\r\n methodAcc[type].requestBody = {\r\n content: {\r\n [requestBody.content.contentType]: {\r\n schema: {\r\n ...requestBody.content.schema,\r\n properties: parsedRequestBodyProps,\r\n },\r\n },\r\n },\r\n }\r\n }\r\n\r\n return methodAcc\r\n }, {} as Record<string, any>)\r\n\r\n return acc\r\n }, {} as OpenAPIFile['paths'])\r\n}\r\n"],"names":["transformOpenApiObject","openApiJson","components","securitySchemes","authKey","_a","Object","keys","at","type","_e","_d","_b","_c","toUpperCase","Public","scheme","assign","paths","transformPathsToArray","transformOpenApiObjectToOrigin","values","object","transformPathsArrayToOrigin","toLowerCase","in","entries","map","path","methods","method","methodProps","obj","tags","responses","code","codeProps","contentType","content","schema","properties","JSON","stringify","parameters","requestBody","reqSchema","requestBodyData","reduce","acc","methodAcc","rest","__rest","respAcc","description","parse","parsedRequestBodyProps"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as e}from"../../_virtual/jsx-runtime.js";import{d as o}from"../../_virtual/index.js";import t from"../components/MethodAccordion/MethodAccordion.js";import s from"./layout.module.css.js";import i from"../components/InfoForm/InfoForm.js";import r from"../components/SectionHead/SectionHead.js";import{transformOpenApiObject as a,transformOpenApiObjectToOrigin as d}from"../helpers/layout.helper.js";import n from"../components/LivePreview/LivePreview.js";import{useFormik as m,FormikProvider as l}from"../../node_modules/formik/dist/formik.esm.js";import{schemaValidation as c}from"../validator/form.scheme.js";import{methodColorMapping as p}from"../constants/index.js";const u=({openApiJson:u,handleSave:h})=>{const j=structuredClone(u),v=a(j),f=m({initialValues:structuredClone(v),validationSchema:c,validateOnMount:!0,onSubmit:(e,{validateForm:o})=>{const t=d(e);h(t),o(e)}});return e.jsxs("div",{className:s.docsLayout,children:[e.jsx(o.Alert,{className:s.apiDocAlert,color:"info",children:"Changes are saved and published for API information and each endpoint individually as you update."}),e.jsxs("div",{className:s.layoutContainer,children:[e.jsxs("div",{className:`${s.editorSide} ${s.docSide}`,children:[e.jsx(r,{className:s.editorSectionHead,text:e.jsxs("div",{className:s.editorSectionHead_content,children:["API Information",e.jsx(o.Button,{className:s.methodForm_submitBtn,size:"medium",fullWidth:!1,type:"submit",variant:"contained",color:"primary",onClick:f.submitForm,children:"Save"})]})}),e.jsx(l,{value:f,children:e.jsx(i,{})}),e.jsx(r,{className:s.editorSectionHead,text:"API Methods"}),e.jsx(l,{value:f,children:f.values.paths.map(((o,s)=>e.jsx(e.Fragment,{children:o.methods.sort((e=>p[e.type].order+p[e.type].order)).map(((i,r)=>e.jsx(t,{method:i,path:o.path,setFieldValue:(e,o)=>{const t=`paths[${s}].methods[${r}].${e}`;f.setFieldValue(t,o)}})))})))})]}),e.jsx("div",{className:`${s.livePreviewSide} ${s.docSide}`,children:v&&e.jsx(l,{value:f,children:e.jsx(n,{transformedData:v})})})]})]})};export{u as default};
1
+ import{j as e}from"../../_virtual/jsx-runtime.js";import{d as o}from"../../_virtual/index.js";import t from"../components/MethodAccordion/MethodAccordion.js";import s from"./layout.module.css.js";import i from"../components/InfoForm/InfoForm.js";import r from"../components/SectionHead/SectionHead.js";import{transformOpenApiObject as a,transformOpenApiObjectToOrigin as d}from"../helpers/layout.helper.js";import n from"../components/LivePreview/LivePreview.js";import{useFormik as m,FormikProvider as l}from"../../node_modules/formik/dist/formik.esm.js";import{schemaValidation as c}from"../validator/form.scheme.js";import{methodColorMapping as p}from"../constants/index.js";const u=({openApiJson:u,handleSave:h})=>{const j=structuredClone(u),v=a(j),f=m({initialValues:structuredClone(v),validationSchema:c,validateOnMount:!0,onSubmit:(e,{validateForm:o})=>{const t=d(e);h(t),o(e)}});return e.jsxs("div",{className:s.docsLayout,children:[e.jsx(o.Alert,{className:s.apiDocAlert,color:"info",children:"Changes are saved and published for API information and each endpoint individually as you update."}),e.jsxs("div",{className:s.layoutContainer,children:[e.jsxs("div",{className:`${s.editorSide} ${s.docSide}`,children:[e.jsx(r,{className:s.editorSectionHead,text:e.jsxs("div",{className:s.editorSectionHead_content,children:["API Information",e.jsx(o.Button,{className:s.methodForm_submitBtn,size:"medium",fullWidth:!1,type:"submit",variant:"contained",color:"primary",onClick:f.submitForm,children:"Save"})]})}),e.jsx(l,{value:f,children:e.jsx(i,{})}),e.jsx(r,{className:s.editorSectionHead,text:"API Methods"}),e.jsx(l,{value:f,children:f.values.paths.map(((o,s)=>e.jsx(e.Fragment,{children:o.methods.sort(((e,o)=>p[e.type].order-p[o.type].order)).map(((i,r)=>e.jsx(t,{method:i,path:o.path,setFieldValue:(e,o)=>{const t=`paths[${s}].methods[${r}].${e}`;f.setFieldValue(t,o)}})))})))})]}),e.jsx("div",{className:`${s.livePreviewSide} ${s.docSide}`,children:v&&e.jsx(l,{value:f,children:e.jsx(n,{transformedData:v})})})]})]})};export{u as default};
2
2
  //# sourceMappingURL=layout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sources":["../../../src/layout/layout.tsx"],"sourcesContent":["import { JSX } from 'react'\r\nimport { Alert, Button } from 'digitinary-ui'\r\nimport MethodsAccordion from '../components/MethodAccordion/MethodAccordion'\r\nimport styles from './layout.module.css'\r\nimport InfoForm from '../components/InfoForm/InfoForm'\r\nimport SectionHead from '../components/SectionHead/SectionHead'\r\nimport { transformOpenApiObject, transformOpenApiObjectToOrigin } from '../helpers/layout.helper'\r\nimport { OpenAPIFile } from '../types/openApi'\r\nimport LivePreview from '../components/LivePreview/LivePreview'\r\nimport { FormikProvider, useFormik } from 'formik'\r\nimport { schemaValidation } from '../validator/form.scheme'\r\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\r\nimport { methodColorMapping } from '../constants/index'\r\n\r\ninterface ILayoutProps {\r\n openApiJson?: OpenAPIFile\r\n handleSave?: (values: unknown) => unknown\r\n}\r\n\r\nconst Layout = ({ openApiJson, handleSave }: ILayoutProps): JSX.Element => {\r\n const clonedOpenApiJson = structuredClone(openApiJson)\r\n const transformedOpenApi = transformOpenApiObject(clonedOpenApiJson)\r\n const formik = useFormik<TransformedOpenApi>({\r\n initialValues: structuredClone(transformedOpenApi),\r\n validationSchema: schemaValidation,\r\n validateOnMount: true,\r\n onSubmit: (values, { validateForm }) => {\r\n // Handle save logic\r\n const originalOpenApiForm = transformOpenApiObjectToOrigin(values)\r\n handleSave(originalOpenApiForm)\r\n validateForm(values)\r\n },\r\n })\r\n\r\n return (\r\n <div className={styles.docsLayout}>\r\n <Alert className={styles.apiDocAlert} color=\"info\">\r\n Changes are saved and published for API information and each endpoint individually as you\r\n update.\r\n </Alert>\r\n <div className={styles.layoutContainer}>\r\n <div className={`${styles.editorSide} ${styles.docSide}`}>\r\n <SectionHead\r\n className={styles.editorSectionHead}\r\n text={\r\n <div className={styles.editorSectionHead_content}>\r\n API Information\r\n <Button\r\n className={styles.methodForm_submitBtn}\r\n size=\"medium\"\r\n fullWidth={false}\r\n type=\"submit\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n onClick={formik.submitForm}\r\n >\r\n Save\r\n </Button>\r\n </div>\r\n }\r\n />\r\n <FormikProvider value={formik}>\r\n <InfoForm />\r\n </FormikProvider>\r\n <SectionHead className={styles.editorSectionHead} text=\"API Methods\" />\r\n <FormikProvider value={formik}>\r\n {formik.values.paths.map((path, pathIndex) => (\r\n <>\r\n {path.methods\r\n .sort(\r\n (method) =>\r\n methodColorMapping[method.type].order + methodColorMapping[method.type].order\r\n )\r\n .map((method, methodIndex) => (\r\n <MethodsAccordion\r\n method={method}\r\n path={path.path}\r\n setFieldValue={(key, value) => {\r\n const h = `paths[${pathIndex}].methods[${methodIndex}].${key}`\r\n formik.setFieldValue(h, value)\r\n }}\r\n />\r\n ))}\r\n </>\r\n ))}\r\n </FormikProvider>\r\n </div>\r\n <div className={`${styles.livePreviewSide} ${styles.docSide}`}>\r\n {transformedOpenApi && (\r\n <FormikProvider value={formik}>\r\n <LivePreview transformedData={transformedOpenApi} />\r\n </FormikProvider>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Layout\r\n"],"names":["Layout","openApiJson","handleSave","clonedOpenApiJson","structuredClone","transformedOpenApi","transformOpenApiObject","formik","useFormik","initialValues","validationSchema","schemaValidation","validateOnMount","onSubmit","values","validateForm","originalOpenApiForm","transformOpenApiObjectToOrigin","_jsxs","jsxs","className","styles","docsLayout","children","_jsx","jsx","Alert","apiDocAlert","color","layoutContainer","editorSide","docSide","SectionHead","editorSectionHead","text","editorSectionHead_content","Button","methodForm_submitBtn","size","fullWidth","type","variant","onClick","submitForm","FormikProvider","value","InfoForm","paths","map","path","pathIndex","_Fragment","methods","sort","method","methodColorMapping","order","methodIndex","MethodsAccordion","setFieldValue","key","h","livePreviewSide","LivePreview","transformedData"],"mappings":"sqBAmBM,MAAAA,EAAS,EAAGC,cAAaC,iBAC7B,MAAMC,EAAoBC,gBAAgBH,GACpCI,EAAqBC,EAAuBH,GAC5CI,EAASC,EAA8B,CAC3CC,cAAeL,gBAAgBC,GAC/BK,iBAAkBC,EAClBC,iBAAiB,EACjBC,SAAU,CAACC,GAAUC,mBAEnB,MAAMC,EAAsBC,EAA+BH,GAC3DZ,EAAWc,GACXD,EAAaD,EAAO,IAIxB,OACEI,EAAAC,KAAA,MAAA,CAAKC,UAAWC,EAAOC,WACrBC,SAAA,CAAAC,EAAAC,IAACC,EAAKA,MAAC,CAAAN,UAAWC,EAAOM,YAAaC,MAAM,OAAML,SAAA,sGAIlDL,EAAAC,KAAA,MAAA,CAAKC,UAAWC,EAAOQ,0BACrBX,EAAKC,KAAA,MAAA,CAAAC,UAAW,GAAGC,EAAOS,cAAcT,EAAOU,UAASR,SAAA,CACtDC,EAAAA,IAACQ,EAAW,CACVZ,UAAWC,EAAOY,kBAClBC,KACEhB,EAAKC,KAAA,MAAA,CAAAC,UAAWC,EAAOc,0BAAyBZ,SAAA,CAAA,kBAE9CC,MAACY,EAAAA,QACChB,UAAWC,EAAOgB,qBAClBC,KAAK,SACLC,WAAW,EACXC,KAAK,SACLC,QAAQ,YACRb,MAAM,UACNc,QAASnC,EAAOoC,WAGTpB,SAAA,cAIfC,EAAAA,IAACoB,GAAeC,MAAOtC,EAAMgB,SAC3BC,MAACsB,EAAQ,MAEXtB,MAACQ,EAAW,CAACZ,UAAWC,EAAOY,kBAAmBC,KAAK,gBACvDV,MAACoB,EAAc,CAACC,MAAOtC,EACpBgB,SAAAhB,EAAOO,OAAOiC,MAAMC,KAAI,CAACC,EAAMC,IAC9B1B,EAAAA,IACG2B,EAAAA,SAAA,CAAA5B,SAAA0B,EAAKG,QACHC,MACEC,GACCC,EAAmBD,EAAOd,MAAMgB,MAAQD,EAAmBD,EAAOd,MAAMgB,QAE3ER,KAAI,CAACM,EAAQG,IACZjC,EAAAA,IAACkC,EAAgB,CACfJ,OAAQA,EACRL,KAAMA,EAAKA,KACXU,cAAe,CAACC,EAAKf,KACnB,MAAMgB,EAAI,SAASX,cAAsBO,MAAgBG,IACzDrD,EAAOoD,cAAcE,EAAGhB,EAAM,eAQ9CrB,EAAAC,IAAA,MAAA,CAAKL,UAAW,GAAGC,EAAOyC,mBAAmBzC,EAAOU,UAASR,SAC1DlB,GACCmB,MAACoB,EAAc,CAACC,MAAOtC,WACrBiB,EAAAA,IAACuC,GAAYC,gBAAiB3D,aAMzC"}
1
+ {"version":3,"file":"layout.js","sources":["../../../src/layout/layout.tsx"],"sourcesContent":["import { JSX } from 'react'\r\nimport { Alert, Button } from 'digitinary-ui'\r\nimport MethodsAccordion from '../components/MethodAccordion/MethodAccordion'\r\nimport styles from './layout.module.css'\r\nimport InfoForm from '../components/InfoForm/InfoForm'\r\nimport SectionHead from '../components/SectionHead/SectionHead'\r\nimport { transformOpenApiObject, transformOpenApiObjectToOrigin } from '../helpers/layout.helper'\r\nimport { OpenAPIFile } from '../types/openApi'\r\nimport LivePreview from '../components/LivePreview/LivePreview'\r\nimport { FormikProvider, useFormik } from 'formik'\r\nimport { schemaValidation } from '../validator/form.scheme'\r\nimport { TransformedOpenApi } from '@entities/transformedOpenApi'\r\nimport { methodColorMapping } from '../constants/index'\r\n\r\ninterface ILayoutProps {\r\n openApiJson?: OpenAPIFile\r\n handleSave?: (values: unknown) => unknown\r\n}\r\n\r\nconst Layout = ({ openApiJson, handleSave }: ILayoutProps): JSX.Element => {\r\n const clonedOpenApiJson = structuredClone(openApiJson)\r\n const transformedOpenApi = transformOpenApiObject(clonedOpenApiJson)\r\n const formik = useFormik<TransformedOpenApi>({\r\n initialValues: structuredClone(transformedOpenApi),\r\n validationSchema: schemaValidation,\r\n validateOnMount: true,\r\n onSubmit: (values, { validateForm }) => {\r\n // Handle save logic\r\n const originalOpenApiForm = transformOpenApiObjectToOrigin(values)\r\n handleSave(originalOpenApiForm)\r\n validateForm(values)\r\n },\r\n })\r\n\r\n return (\r\n <div className={styles.docsLayout}>\r\n <Alert className={styles.apiDocAlert} color=\"info\">\r\n Changes are saved and published for API information and each endpoint individually as you\r\n update.\r\n </Alert>\r\n <div className={styles.layoutContainer}>\r\n <div className={`${styles.editorSide} ${styles.docSide}`}>\r\n <SectionHead\r\n className={styles.editorSectionHead}\r\n text={\r\n <div className={styles.editorSectionHead_content}>\r\n API Information\r\n <Button\r\n className={styles.methodForm_submitBtn}\r\n size=\"medium\"\r\n fullWidth={false}\r\n type=\"submit\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n onClick={formik.submitForm}\r\n >\r\n Save\r\n </Button>\r\n </div>\r\n }\r\n />\r\n <FormikProvider value={formik}>\r\n <InfoForm />\r\n </FormikProvider>\r\n <SectionHead className={styles.editorSectionHead} text=\"API Methods\" />\r\n <FormikProvider value={formik}>\r\n {formik.values.paths.map((path, pathIndex) => (\r\n <>\r\n {path.methods\r\n .sort(\r\n (a, b) => methodColorMapping[a.type].order - methodColorMapping[b.type].order\r\n )\r\n .map((method, methodIndex) => (\r\n <MethodsAccordion\r\n method={method}\r\n path={path.path}\r\n setFieldValue={(key, value) => {\r\n const h = `paths[${pathIndex}].methods[${methodIndex}].${key}`\r\n formik.setFieldValue(h, value)\r\n }}\r\n />\r\n ))}\r\n </>\r\n ))}\r\n </FormikProvider>\r\n </div>\r\n <div className={`${styles.livePreviewSide} ${styles.docSide}`}>\r\n {transformedOpenApi && (\r\n <FormikProvider value={formik}>\r\n <LivePreview transformedData={transformedOpenApi} />\r\n </FormikProvider>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Layout\r\n"],"names":["Layout","openApiJson","handleSave","clonedOpenApiJson","structuredClone","transformedOpenApi","transformOpenApiObject","formik","useFormik","initialValues","validationSchema","schemaValidation","validateOnMount","onSubmit","values","validateForm","originalOpenApiForm","transformOpenApiObjectToOrigin","_jsxs","jsxs","className","styles","docsLayout","children","_jsx","jsx","Alert","apiDocAlert","color","layoutContainer","editorSide","docSide","SectionHead","editorSectionHead","text","editorSectionHead_content","Button","methodForm_submitBtn","size","fullWidth","type","variant","onClick","submitForm","FormikProvider","value","InfoForm","paths","map","path","pathIndex","_Fragment","methods","sort","a","b","methodColorMapping","order","method","methodIndex","MethodsAccordion","setFieldValue","key","h","livePreviewSide","LivePreview","transformedData"],"mappings":"sqBAmBM,MAAAA,EAAS,EAAGC,cAAaC,iBAC7B,MAAMC,EAAoBC,gBAAgBH,GACpCI,EAAqBC,EAAuBH,GAC5CI,EAASC,EAA8B,CAC3CC,cAAeL,gBAAgBC,GAC/BK,iBAAkBC,EAClBC,iBAAiB,EACjBC,SAAU,CAACC,GAAUC,mBAEnB,MAAMC,EAAsBC,EAA+BH,GAC3DZ,EAAWc,GACXD,EAAaD,EAAO,IAIxB,OACEI,EAAAC,KAAA,MAAA,CAAKC,UAAWC,EAAOC,WACrBC,SAAA,CAAAC,EAAAC,IAACC,EAAKA,MAAC,CAAAN,UAAWC,EAAOM,YAAaC,MAAM,OAAML,SAAA,sGAIlDL,EAAAC,KAAA,MAAA,CAAKC,UAAWC,EAAOQ,0BACrBX,EAAKC,KAAA,MAAA,CAAAC,UAAW,GAAGC,EAAOS,cAAcT,EAAOU,UAASR,SAAA,CACtDC,EAAAA,IAACQ,EAAW,CACVZ,UAAWC,EAAOY,kBAClBC,KACEhB,EAAKC,KAAA,MAAA,CAAAC,UAAWC,EAAOc,0BAAyBZ,SAAA,CAAA,kBAE9CC,MAACY,EAAAA,QACChB,UAAWC,EAAOgB,qBAClBC,KAAK,SACLC,WAAW,EACXC,KAAK,SACLC,QAAQ,YACRb,MAAM,UACNc,QAASnC,EAAOoC,WAGTpB,SAAA,cAIfC,EAAAA,IAACoB,GAAeC,MAAOtC,EAAMgB,SAC3BC,MAACsB,EAAQ,MAEXtB,MAACQ,EAAW,CAACZ,UAAWC,EAAOY,kBAAmBC,KAAK,gBACvDV,MAACoB,EAAc,CAACC,MAAOtC,EACpBgB,SAAAhB,EAAOO,OAAOiC,MAAMC,KAAI,CAACC,EAAMC,IAC9B1B,EAAAA,IACG2B,EAAAA,SAAA,CAAA5B,SAAA0B,EAAKG,QACHC,MACC,CAACC,EAAGC,IAAMC,EAAmBF,EAAEd,MAAMiB,MAAQD,EAAmBD,EAAEf,MAAMiB,QAEzET,KAAI,CAACU,EAAQC,IACZnC,EAAAA,IAACoC,EAAgB,CACfF,OAAQA,EACRT,KAAMA,EAAKA,KACXY,cAAe,CAACC,EAAKjB,KACnB,MAAMkB,EAAI,SAASb,cAAsBS,MAAgBG,IACzDvD,EAAOsD,cAAcE,EAAGlB,EAAM,eAQ9CrB,EAAAC,IAAA,MAAA,CAAKL,UAAW,GAAGC,EAAO2C,mBAAmB3C,EAAOU,UAASR,SAC1DlB,GACCmB,MAACoB,EAAc,CAACC,MAAOtC,WACrBiB,EAAAA,IAACyC,GAAYC,gBAAiB7D,aAMzC"}
@@ -1,2 +1,2 @@
1
- import e from"../../node_modules/style-inject/dist/style-inject.es.js";var o={docsLayout:"layout-module_docsLayout__vDeK7",apiDocAlert:"layout-module_apiDocAlert__cSDp2",layoutContainer:"layout-module_layoutContainer__qBWib",editorSide:"layout-module_editorSide__hWc6O",editorSectionHead:"layout-module_editorSectionHead__chDdH",editorSectionHead_content:"layout-module_editorSectionHead_content__DQa6a",livePreviewSide:"layout-module_livePreviewSide__Q5HsZ",docSide:"layout-module_docSide__qLt4E"};e(".layout-module_docsLayout__vDeK7{display:flex;flex-direction:column;height:100vh;max-height:100%;overflow:hidden;.layout-module_apiDocAlert__cSDp2{border-radius:0}.layout-module_layoutContainer__qBWib{display:grid;grid-template-columns:60% 40%;height:100%;max-height:100%;max-width:100%;overflow:hidden;width:100%;.layout-module_editorSide__hWc6O{background-color:#fff;padding-bottom:1.25rem;.layout-module_editorSectionHead__chDdH{span{width:100%}.layout-module_editorSectionHead_content__DQa6a{align-items:center;display:flex;justify-content:space-between;button{width:6.25rem}}}}.layout-module_livePreviewSide__Q5HsZ{background-color:#f8f9fb;padding:1.875rem}.layout-module_docSide__qLt4E{max-height:100%;overflow-x:clip;overflow-y:overlay;scroll-behavior:smooth}}}");export{o as default};
1
+ import e from"../../node_modules/style-inject/dist/style-inject.es.js";var o={docsLayout:"layout-module_docsLayout__vDeK7",apiDocAlert:"layout-module_apiDocAlert__cSDp2",layoutContainer:"layout-module_layoutContainer__qBWib",editorSide:"layout-module_editorSide__hWc6O",editorSectionHead:"layout-module_editorSectionHead__chDdH",editorSectionHead_content:"layout-module_editorSectionHead_content__DQa6a",livePreviewSide:"layout-module_livePreviewSide__Q5HsZ",docSide:"layout-module_docSide__qLt4E"};e(".layout-module_docsLayout__vDeK7{display:flex;flex-direction:column;height:100vh;max-height:100%;overflow:hidden;.layout-module_apiDocAlert__cSDp2{border-radius:0}.layout-module_layoutContainer__qBWib{display:grid;grid-template-columns:60% 40%;height:100%;max-height:100%;max-width:100%;overflow:hidden;width:100%;.layout-module_editorSide__hWc6O{background-color:#fff;padding-bottom:1.25rem;.layout-module_editorSectionHead__chDdH{span{width:100%}.layout-module_editorSectionHead_content__DQa6a{align-items:center;display:flex;justify-content:space-between;button{width:6.25rem}}}}.layout-module_livePreviewSide__Q5HsZ{background-color:#f8f9fb;padding:1.25rem 1.875rem}.layout-module_docSide__qLt4E{max-height:100%;overflow-x:clip;overflow-y:overlay;scroll-behavior:smooth}}}");export{o as default};
2
2
  //# sourceMappingURL=layout.module.css.js.map