@digi-frontend/dgate-api-documentation 1.0.20 → 1.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/index3.js +1 -1
- package/dist/_virtual/index4.js +1 -1
- package/dist/_virtual/index5.js +1 -1
- package/dist/_virtual/index6.js +1 -1
- package/dist/node_modules/toposort/index.js +1 -1
- package/dist/node_modules/yup/index.esm.js +1 -1
- package/dist/src/components/InfoForm/InfoForm.js +1 -1
- package/dist/src/components/InfoForm/InfoForm.js.map +1 -1
- package/dist/src/components/JsonInput/JsonInput.js +1 -1
- package/dist/src/components/JsonInput/JsonInput.js.map +1 -1
- package/dist/src/components/LivePreview/LivePreview.js +1 -1
- package/dist/src/components/LivePreview/LivePreview.js.map +1 -1
- package/dist/src/components/MethodAccordion/MethodAccordion.js +1 -1
- package/dist/src/components/MethodAccordion/MethodAccordion.js.map +1 -1
- package/dist/src/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/src/components/table/table.js +1 -1
- package/dist/src/components/table/table.js.map +1 -1
- package/dist/src/components/table/tags-table.js +1 -1
- package/dist/src/components/table/tags-table.js.map +1 -1
- package/dist/src/constants/regex.js +1 -1
- package/dist/src/constants/regex.js.map +1 -1
- package/dist/src/layout/layout.js +1 -1
- package/dist/src/layout/layout.js.map +1 -1
- package/dist/src/validator/form.scheme.js +1 -1
- package/dist/src/validator/form.scheme.js.map +1 -1
- package/dist/styles.css +488 -488
- package/dist/types/components/Tooltip/Tooltip.d.ts +2 -2
- package/dist/types/constants/regex.d.ts +1 -0
- package/dist/types/layout/layout.d.ts +2 -1
- package/dist/types/validator/form.scheme.d.ts +1 -1
- package/package.json +2 -2
- package/src/components/InfoForm/InfoForm.tsx +37 -15
- package/src/components/JsonInput/JsonInput.tsx +7 -1
- package/src/components/LivePreview/LivePreview.tsx +40 -22
- package/src/components/MethodAccordion/MethodAccordion.tsx +37 -15
- package/src/components/Tooltip/Tooltip.scss +3 -3
- package/src/components/Tooltip/Tooltip.tsx +2 -3
- package/src/components/table/table.tsx +3 -1
- package/src/components/table/tags-table.tsx +27 -5
- package/src/constants/regex.ts +1 -0
- package/src/layout/layout.tsx +49 -7
- package/src/validator/form.scheme.ts +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sources":["../../../src/layout/layout.tsx"],"sourcesContent":["import { JSX, useEffect } 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, resetForm }) => {\r\n // Handle save logic\r\n const originalOpenApiForm = transformOpenApiObjectToOrigin(values)\r\n handleSave(originalOpenApiForm)\r\n resetForm({\r\n values: values, // You can reset it to the same values if you want\r\n })\r\n\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=\"
|
|
1
|
+
{"version":3,"file":"layout.js","sources":["../../../src/layout/layout.tsx"],"sourcesContent":["import { JSX, useEffect, useState } 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\nimport CommonDialog from '../components/dialog'\r\n\r\ninterface ILayoutProps {\r\n openApiJson?: OpenAPIFile\r\n handleSave?: (values: unknown) => unknown\r\n setIsFormDirty?: any\r\n}\r\n\r\nconst Layout = ({ openApiJson, handleSave, setIsFormDirty }: 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, resetForm }) => {\r\n // Handle save logic\r\n const originalOpenApiForm = transformOpenApiObjectToOrigin(values)\r\n handleSave(originalOpenApiForm)\r\n resetForm({\r\n values: values, // You can reset it to the same values if you want\r\n })\r\n\r\n validateForm(values)\r\n },\r\n })\r\n const [isPublishDialogOpen, setIsPublishDialogOpen] = useState(false)\r\n\r\n useEffect(() => {\r\n if (setIsFormDirty) {\r\n setIsFormDirty(formik.dirty)\r\n }\r\n }, [formik.dirty])\r\n\r\n return (\r\n <div className={styles.docsLayout}>\r\n {formik.dirty && (\r\n <Alert className={styles.apiDocAlert} color=\"warning\" severity=\"warning\">\r\n There are changes you made may not be saved\r\n </Alert>\r\n )}\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={() => setIsPublishDialogOpen(true)}\r\n disabled={!formik.isValid || formik.isSubmitting}\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 tags={formik.values.tags}\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 <CommonDialog\r\n status=\"warning\"\r\n content={\r\n <p\r\n style={{\r\n textAlign: 'center',\r\n fontWeight: 400,\r\n fontSize: '1rem',\r\n lineHeight: '1.4375rem',\r\n }}\r\n >\r\n Are you sure you want to Publish your changes?\r\n </p>\r\n }\r\n onSubmit={{\r\n onClick: () => {\r\n formik.handleSubmit()\r\n setIsPublishDialogOpen(false)\r\n },\r\n text: 'Publish',\r\n color: 'warning',\r\n fullWidth: true,\r\n }}\r\n onCancel={{\r\n text: 'Cancel',\r\n color: 'normal',\r\n fullWidth: true,\r\n }}\r\n onClose={() => setIsPublishDialogOpen(false)}\r\n open={isPublishDialogOpen}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default Layout\r\n"],"names":["Layout","openApiJson","handleSave","setIsFormDirty","clonedOpenApiJson","structuredClone","transformedOpenApi","transformOpenApiObject","formik","useFormik","initialValues","validationSchema","schemaValidation","validateOnMount","onSubmit","values","validateForm","resetForm","originalOpenApiForm","transformOpenApiObjectToOrigin","isPublishDialogOpen","setIsPublishDialogOpen","useState","useEffect","dirty","_jsxs","jsxs","className","styles","docsLayout","children","_jsx","Alert","apiDocAlert","color","severity","layoutContainer","editorSide","docSide","SectionHead","editorSectionHead","text","editorSectionHead_content","Button","methodForm_submitBtn","size","fullWidth","type","variant","onClick","disabled","isValid","isSubmitting","FormikProvider","value","jsx","InfoForm","paths","map","path","pathIndex","_Fragment","methods","sort","a","b","methodColorMapping","order","method","methodIndex","MethodsAccordion","tags","setFieldValue","key","h","livePreviewSide","LivePreview","transformedData","CommonDialog","status","content","style","textAlign","fontWeight","fontSize","lineHeight","handleSubmit","onCancel","onClose","open"],"mappings":"mwBAqBM,MAAAA,EAAS,EAAGC,cAAaC,aAAYC,qBACzC,MAAMC,EAAoBC,gBAAgBJ,GACpCK,EAAqBC,EAAuBH,GAC5CI,EAASC,EAA8B,CAC3CC,cAAeL,gBAAgBC,GAC/BK,iBAAkBC,EAClBC,iBAAiB,EACjBC,SAAU,CAACC,GAAUC,eAAcC,gBAEjC,MAAMC,EAAsBC,EAA+BJ,GAC3Db,EAAWgB,GACXD,EAAU,CACRF,OAAQA,IAGVC,EAAaD,EAAO,KAGjBK,EAAqBC,GAA0BC,GAAS,GAQ/D,OANAC,GAAU,KACJpB,GACFA,EAAeK,EAAOgB,MACvB,GACA,CAAChB,EAAOgB,QAGTC,EAAKC,KAAA,MAAA,CAAAC,UAAWC,EAAOC,WACpBC,SAAA,CAAAtB,EAAOgB,OACNO,EAAAA,IAACC,EAAAA,MAAM,CAAAL,UAAWC,EAAOK,YAAaC,MAAM,UAAUC,SAAS,UAEvDL,SAAA,gDAEVL,EAAAC,KAAA,MAAA,CAAKC,UAAWC,EAAOQ,gBAAeN,SAAA,CACpCL,cAAKE,UAAW,GAAGC,EAAOS,cAAcT,EAAOU,UAC7CR,SAAA,CAAAC,EAAAA,IAACQ,EAAW,CACVZ,UAAWC,EAAOY,kBAClBC,KACEhB,EAAAA,KAAA,MAAA,CAAKE,UAAWC,EAAOc,sDAErBX,EAAAA,IAACY,EAAAA,QACChB,UAAWC,EAAOgB,qBAClBC,KAAK,SACLC,WAAW,EACXC,KAAK,SACLC,QAAQ,YACRd,MAAM,UACNe,QAAS,IAAM5B,GAAuB,GACtC6B,UAAW1C,EAAO2C,SAAW3C,EAAO4C,aAAYtB,SAAA,cAOxDC,MAACsB,EAAc,CAACC,MAAO9C,WACrBuB,EAACwB,IAAAC,EAAW,CAAA,KAEdzB,EAAAA,IAACQ,GAAYZ,UAAWC,EAAOY,kBAAmBC,KAAK,gBACvDV,EAACwB,IAAAF,GAAeC,MAAO9C,EAAMsB,SAC1BtB,EAAOO,OAAO0C,MAAMC,KAAI,CAACC,EAAMC,IAC9B7B,EAAAA,IACG8B,EAAAA,SAAA,CAAA/B,SAAA6B,EAAKG,QACHC,MACC,CAACC,EAAGC,IAAMC,EAAmBF,EAAEjB,MAAMoB,MAAQD,EAAmBD,EAAElB,MAAMoB,QAEzET,KAAI,CAACU,EAAQC,IACZtC,EAAAA,IAACuC,EACC,CAAAC,KAAM/D,EAAOO,OAAOwD,KACpBH,OAAQA,EACRT,KAAMA,EAAKA,KACXa,cAAe,CAACC,EAAKnB,KACnB,MAAMoB,EAAI,SAASd,cAAsBS,MAAgBI,IACzDjE,EAAOgE,cAAcE,EAAGpB,EAAM,eAQ9CvB,MAAA,MAAA,CAAKJ,UAAW,GAAGC,EAAO+C,mBAAmB/C,EAAOU,UACjDR,SAAAxB,GACCyB,EAAAA,IAACsB,GAAeC,MAAO9C,EAAMsB,SAC3BC,EAAAA,IAAC6C,EAAY,CAAAC,gBAAiBvE,WAKtCyB,EAAAA,IAAC+C,EAAY,CACXC,OAAO,UACPC,QACEjD,EACEwB,IAAA,IAAA,CAAA0B,MAAO,CACLC,UAAW,SACXC,WAAY,IACZC,SAAU,OACVC,WAAY,aAIZvD,SAAA,mDAENhB,SAAU,CACRmC,QAAS,KACPzC,EAAO8E,eACPjE,GAAuB,EAAM,EAE/BoB,KAAM,UACNP,MAAO,UACPY,WAAW,GAEbyC,SAAU,CACR9C,KAAM,SACNP,MAAO,SACPY,WAAW,GAEb0C,QAAS,IAAMnE,GAAuB,GACtCoE,KAAMrE,MAGX"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{object as e,string as
|
|
1
|
+
import{object as e,string as i,array as o,mixed as r,lazy as t}from"../../node_modules/yup/index.esm.js";const s=e({openapi:i().required(),info:e({title:i().trim().required("API Name is required."),description:i().required(),version:i().required("API Version is required")}).required(),servers:o(e({url:i().url().required(),description:i().optional()})).optional(),paths:r().required(),components:e({schemas:t((s=>e(s?Object.keys(s).reduce(((s,a)=>(s[a]=e({type:i().optional(),format:i().optional(),properties:t((i=>e(i?Object.keys(i).reduce(((e,i)=>(e[i]=r(),e)),{}):{}))).optional(),items:r().optional(),enum:o(i()).optional(),required:o(i()).optional()}),s)),{}):{}))).optional(),securitySchemes:e().optional()}).optional(),security:o(e().shape({schemeName:o(i()).optional()})).optional(),tags:o(e({name:i().required(),description:i().optional()})).optional()});export{s as schemaValidation};
|
|
2
2
|
//# sourceMappingURL=form.scheme.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.scheme.js","sources":["../../../src/validator/form.scheme.ts"],"sourcesContent":["import * as yup from
|
|
1
|
+
{"version":3,"file":"form.scheme.js","sources":["../../../src/validator/form.scheme.ts"],"sourcesContent":["import * as yup from 'yup'\r\nexport const schemaValidation = yup.object({\r\n openapi: yup.string().required(),\r\n info: yup\r\n .object({\r\n title: yup.string().trim().required('API Name is required.'),\r\n description: yup.string().required(),\r\n version: yup.string().required('API Version is required'),\r\n })\r\n .required(),\r\n servers: yup\r\n .array(\r\n yup.object({\r\n url: yup.string().url().required(),\r\n description: yup.string().optional(),\r\n })\r\n )\r\n .optional(),\r\n paths: yup.mixed().required(), // Assuming TransformedPathsArray is validated elsewhere\r\n components: yup\r\n .object({\r\n schemas: yup\r\n .lazy((value) =>\r\n yup.object(\r\n value\r\n ? Object.keys(value).reduce((acc, key) => {\r\n acc[key] = yup.object({\r\n type: yup.string().optional(),\r\n format: yup.string().optional(),\r\n properties: yup\r\n .lazy((props) =>\r\n yup.object(\r\n props\r\n ? Object.keys(props).reduce((acc, propKey) => {\r\n acc[propKey] = yup.mixed()\r\n return acc\r\n }, {})\r\n : {}\r\n )\r\n )\r\n .optional(),\r\n items: yup.mixed().optional(),\r\n enum: yup.array(yup.string()).optional(),\r\n required: yup.array(yup.string()).optional(),\r\n })\r\n return acc\r\n }, {})\r\n : {}\r\n )\r\n )\r\n .optional(),\r\n securitySchemes: yup.object().optional(),\r\n })\r\n .optional(),\r\n security: yup\r\n .array(\r\n yup.object().shape({\r\n schemeName: yup.array(yup.string()).optional(),\r\n })\r\n )\r\n .optional(),\r\n tags: yup\r\n .array(\r\n yup.object({\r\n name: yup.string().required(),\r\n description: yup.string().optional(),\r\n })\r\n )\r\n .optional(),\r\n})\r\n"],"names":["schemaValidation","yup.object","openapi","yup.string","required","info","yup\n .object","title","trim","description","version","servers","yup\n .array","url","optional","paths","yup.mixed","components","schemas","yup\n .lazy","value","Object","keys","reduce","acc","key","type","format","properties","yup\n .lazy","props","propKey","items","enum","yup.array","securitySchemes","security","shape","schemeName","tags","name"],"mappings":"yGACa,MAAAA,EAAmBC,EAAW,CACzCC,QAASC,IAAaC,WACtBC,KAAMC,EACI,CACNC,MAAOJ,IAAaK,OAAOJ,SAAS,yBACpCK,YAAaN,IAAaC,WAC1BM,QAASP,IAAaC,SAAS,6BAEhCA,WACHO,QAASC,EAELX,EAAW,CACTY,IAAKV,IAAaU,MAAMT,WACxBK,YAAaN,IAAaW,cAG7BA,WACHC,MAAOC,IAAYZ,WACnBa,WAAYX,EACF,CACNY,QAASC,GACAC,GACLnB,EACEmB,EACIC,OAAOC,KAAKF,GAAOG,QAAO,CAACC,EAAKC,KAC9BD,EAAIC,GAAOxB,EAAW,CACpByB,KAAMvB,IAAaW,WACnBa,OAAQxB,IAAaW,WACrBc,WAAYC,GACHC,GACL7B,EACE6B,EACIT,OAAOC,KAAKQ,GAAOP,QAAO,CAACC,EAAKO,KAC9BP,EAAIO,GAAWf,IACRQ,IACN,IACH,CAAA,KAGPV,WACHkB,MAAOhB,IAAYF,WACnBmB,KAAMC,EAAU/B,KAAcW,WAC9BV,SAAU8B,EAAU/B,KAAcW,aAE7BU,IACN,IACH,CAAA,KAGPV,WACHqB,gBAAiBlC,IAAaa,aAE/BA,WACHsB,SAAUxB,EAENX,IAAaoC,MAAM,CACjBC,WAAYJ,EAAU/B,KAAcW,cAGvCA,WACHyB,KAAM3B,EAEFX,EAAW,CACTuC,KAAMrC,IAAaC,WACnBK,YAAaN,IAAaW,cAG7BA"}
|