@digi-frontend/dgate-api-documentation 1.0.25 → 1.0.27

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 (152) hide show
  1. package/dist/node_modules/dom-serializer/lib/foreignNames.js +2 -0
  2. package/dist/node_modules/dom-serializer/lib/foreignNames.js.map +1 -0
  3. package/dist/node_modules/dom-serializer/lib/index.js +2 -0
  4. package/dist/node_modules/dom-serializer/lib/index.js.map +1 -0
  5. package/dist/node_modules/domhandler/lib/index.js +2 -0
  6. package/dist/node_modules/domhandler/lib/index.js.map +1 -0
  7. package/dist/node_modules/domhandler/lib/node.js +2 -0
  8. package/dist/node_modules/domhandler/lib/node.js.map +1 -0
  9. package/dist/node_modules/domutils/lib/feeds.js +2 -0
  10. package/dist/node_modules/domutils/lib/feeds.js.map +1 -0
  11. package/dist/node_modules/domutils/lib/helpers.js +2 -0
  12. package/dist/node_modules/domutils/lib/helpers.js.map +1 -0
  13. package/dist/node_modules/domutils/lib/index.js +2 -0
  14. package/dist/node_modules/domutils/lib/index.js.map +1 -0
  15. package/dist/node_modules/domutils/lib/legacy.js +2 -0
  16. package/dist/node_modules/domutils/lib/legacy.js.map +1 -0
  17. package/dist/node_modules/domutils/lib/manipulation.js +2 -0
  18. package/dist/node_modules/domutils/lib/manipulation.js.map +1 -0
  19. package/dist/node_modules/domutils/lib/querying.js +2 -0
  20. package/dist/node_modules/domutils/lib/querying.js.map +1 -0
  21. package/dist/node_modules/domutils/lib/stringify.js +2 -0
  22. package/dist/node_modules/domutils/lib/stringify.js.map +1 -0
  23. package/dist/node_modules/domutils/lib/traversal.js +2 -0
  24. package/dist/node_modules/domutils/lib/traversal.js.map +1 -0
  25. package/dist/node_modules/entities/lib/decode.js +2 -0
  26. package/dist/node_modules/entities/lib/decode.js.map +1 -0
  27. package/dist/node_modules/entities/lib/decode_codepoint.js +2 -0
  28. package/dist/node_modules/entities/lib/decode_codepoint.js.map +1 -0
  29. package/dist/node_modules/entities/lib/encode.js +2 -0
  30. package/dist/node_modules/entities/lib/encode.js.map +1 -0
  31. package/dist/node_modules/entities/lib/escape.js +2 -0
  32. package/dist/node_modules/entities/lib/escape.js.map +1 -0
  33. package/dist/node_modules/entities/lib/generated/decode-data-html.js +2 -0
  34. package/dist/node_modules/entities/lib/generated/decode-data-html.js.map +1 -0
  35. package/dist/node_modules/entities/lib/generated/decode-data-xml.js +2 -0
  36. package/dist/node_modules/entities/lib/generated/decode-data-xml.js.map +1 -0
  37. package/dist/node_modules/entities/lib/generated/encode-html.js +2 -0
  38. package/dist/node_modules/entities/lib/generated/encode-html.js.map +1 -0
  39. package/dist/node_modules/entities/lib/index.js +2 -0
  40. package/dist/node_modules/entities/lib/index.js.map +1 -0
  41. package/dist/node_modules/html-dom-parser/lib/server/html-to-dom.js +1 -1
  42. package/dist/node_modules/html-dom-parser/lib/server/html-to-dom.js.map +1 -1
  43. package/dist/node_modules/html-react-parser/lib/index.js +1 -1
  44. package/dist/node_modules/html-react-parser/lib/index.js.map +1 -1
  45. package/dist/node_modules/htmlparser2/dist/commonjs/index.js +1 -1
  46. package/dist/node_modules/htmlparser2/dist/commonjs/index.js.map +1 -1
  47. package/dist/node_modules/style-to-object/cjs/index.js +1 -1
  48. package/dist/src/components/InfoForm/InfoForm.js +1 -1
  49. package/dist/src/components/InfoForm/InfoForm.js.map +1 -1
  50. package/dist/src/components/JsonInput/JsonInput.js +1 -1
  51. package/dist/src/components/JsonInput/JsonInput.js.map +1 -1
  52. package/dist/src/components/LivePreview/LivePreview.js +1 -1
  53. package/dist/src/components/LivePreview/LivePreview.js.map +1 -1
  54. package/dist/src/components/MethodAccordion/MethodAccordion.js +1 -1
  55. package/dist/src/components/MethodAccordion/MethodAccordion.js.map +1 -1
  56. package/dist/src/components/table/table.js +1 -1
  57. package/dist/src/components/table/table.js.map +1 -1
  58. package/dist/src/components/table/tags-table.js +1 -1
  59. package/dist/src/components/table/tags-table.js.map +1 -1
  60. package/dist/src/constants/regex.js +1 -1
  61. package/dist/src/constants/regex.js.map +1 -1
  62. package/dist/src/helpers/layout.helper.js +1 -1
  63. package/dist/src/helpers/layout.helper.js.map +1 -1
  64. package/dist/src/layout/layout.js +1 -1
  65. package/dist/src/layout/layout.js.map +1 -1
  66. package/dist/src/layout/layout.module.css.js +1 -1
  67. package/dist/src/validator/form.scheme.js +1 -1
  68. package/dist/src/validator/form.scheme.js.map +1 -1
  69. package/dist/styles.css +425 -386
  70. package/dist/types/components/MethodAccordion/MethodAccordion.d.ts +3 -1
  71. package/dist/types/constants/regex.d.ts +1 -0
  72. package/package.json +1 -1
  73. package/src/components/InfoForm/InfoForm.module.scss +24 -1
  74. package/src/components/InfoForm/InfoForm.tsx +71 -35
  75. package/src/components/JsonInput/JsonInput.tsx +11 -6
  76. package/src/components/LivePreview/LivePreview.module.scss +24 -5
  77. package/src/components/LivePreview/LivePreview.tsx +7 -4
  78. package/src/components/MethodAccordion/MethodAccordion.tsx +80 -64
  79. package/src/components/Tooltip/Tooltip.scss +9 -6
  80. package/src/components/table/style.scss +1 -1
  81. package/src/components/table/table.tsx +9 -8
  82. package/src/components/table/tags-table.tsx +26 -13
  83. package/src/constants/regex.ts +1 -0
  84. package/src/helpers/layout.helper.ts +6 -1
  85. package/src/layout/layout.module.css +6 -0
  86. package/src/layout/layout.tsx +13 -9
  87. package/src/validator/form.scheme.ts +1 -1
  88. package/dist/_virtual/index20.js +0 -2
  89. package/dist/_virtual/index20.js.map +0 -1
  90. package/dist/_virtual/index21.js +0 -2
  91. package/dist/_virtual/index21.js.map +0 -1
  92. package/dist/_virtual/node2.js +0 -2
  93. package/dist/_virtual/node2.js.map +0 -1
  94. package/dist/_virtual/node3.js +0 -2
  95. package/dist/_virtual/node3.js.map +0 -1
  96. package/dist/node_modules/html-dom-parser/node_modules/domhandler/lib/index.js +0 -2
  97. package/dist/node_modules/html-dom-parser/node_modules/domhandler/lib/index.js.map +0 -1
  98. package/dist/node_modules/html-dom-parser/node_modules/domhandler/lib/node.js +0 -2
  99. package/dist/node_modules/html-dom-parser/node_modules/domhandler/lib/node.js.map +0 -1
  100. package/dist/node_modules/html-react-parser/node_modules/domhandler/lib/index.js +0 -2
  101. package/dist/node_modules/html-react-parser/node_modules/domhandler/lib/index.js.map +0 -1
  102. package/dist/node_modules/html-react-parser/node_modules/domhandler/lib/node.js +0 -2
  103. package/dist/node_modules/html-react-parser/node_modules/domhandler/lib/node.js.map +0 -1
  104. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/lib/foreignNames.js +0 -2
  105. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/lib/foreignNames.js.map +0 -1
  106. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/lib/index.js +0 -2
  107. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/lib/index.js.map +0 -1
  108. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/decode.js +0 -2
  109. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/decode.js.map +0 -1
  110. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/decode_codepoint.js +0 -2
  111. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/decode_codepoint.js.map +0 -1
  112. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/encode.js +0 -2
  113. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/encode.js.map +0 -1
  114. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/escape.js +0 -2
  115. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/escape.js.map +0 -1
  116. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-html.js +0 -2
  117. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-html.js.map +0 -1
  118. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-xml.js +0 -2
  119. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-xml.js.map +0 -1
  120. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/generated/encode-html.js +0 -2
  121. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/generated/encode-html.js.map +0 -1
  122. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/index.js +0 -2
  123. package/dist/node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/index.js.map +0 -1
  124. package/dist/node_modules/htmlparser2/node_modules/domhandler/lib/index.js +0 -2
  125. package/dist/node_modules/htmlparser2/node_modules/domhandler/lib/index.js.map +0 -1
  126. package/dist/node_modules/htmlparser2/node_modules/domhandler/lib/node.js +0 -2
  127. package/dist/node_modules/htmlparser2/node_modules/domhandler/lib/node.js.map +0 -1
  128. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/feeds.js +0 -2
  129. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/feeds.js.map +0 -1
  130. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/helpers.js +0 -2
  131. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/helpers.js.map +0 -1
  132. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/index.js +0 -2
  133. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/index.js.map +0 -1
  134. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/legacy.js +0 -2
  135. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/legacy.js.map +0 -1
  136. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/manipulation.js +0 -2
  137. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/manipulation.js.map +0 -1
  138. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/querying.js +0 -2
  139. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/querying.js.map +0 -1
  140. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/stringify.js +0 -2
  141. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/stringify.js.map +0 -1
  142. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/traversal.js +0 -2
  143. package/dist/node_modules/htmlparser2/node_modules/domutils/lib/traversal.js.map +0 -1
  144. package/dist/src/assets/icons/CheckMarkSquare.svg.js +0 -2
  145. package/dist/src/assets/icons/CheckMarkSquare.svg.js.map +0 -1
  146. package/dist/src/assets/icons/CloseIcon.svg.js +0 -2
  147. package/dist/src/assets/icons/CloseIcon.svg.js.map +0 -1
  148. package/dist/src/assets/icons/UpArrow.svg.js +0 -2
  149. package/dist/src/assets/icons/UpArrow.svg.js.map +0 -1
  150. package/dist/src/components/Chips/Chips.js +0 -2
  151. package/dist/src/components/Chips/Chips.js.map +0 -1
  152. package/dist/types/types/index.d.ts +0 -18
@@ -1 +1 @@
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
+ {"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 { dirty, isValid, isSubmitting, values, setFieldValue, handleSubmit } = formik\r\n const [isPublishDialogOpen, setIsPublishDialogOpen] = useState(false)\r\n const [openMethodIndex, setOpenMethodIndex] = useState<number | null>(null)\r\n\r\n useEffect(() => {\r\n if (setIsFormDirty) {\r\n setIsFormDirty(dirty)\r\n }\r\n }, [dirty])\r\n\r\n return (\r\n <div className={styles.docsLayout}>\r\n {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={!isValid || isSubmitting || !dirty}\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=\"Endpoints\" />\r\n <FormikProvider value={formik}>\r\n {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={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 setFieldValue(h, value)\r\n }}\r\n isOpen={openMethodIndex === methodIndex}\r\n setIsOpen={(open) => setOpenMethodIndex(open ? methodIndex : null)}\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 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","dirty","isValid","isSubmitting","setFieldValue","handleSubmit","isPublishDialogOpen","setIsPublishDialogOpen","useState","openMethodIndex","setOpenMethodIndex","useEffect","_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","FormikProvider","value","InfoForm","jsx","paths","map","path","pathIndex","_Fragment","methods","sort","a","b","methodColorMapping","order","method","methodIndex","MethodsAccordion","tags","key","isOpen","setIsOpen","open","livePreviewSide","LivePreview","transformedData","CommonDialog","status","content","style","textAlign","fontWeight","fontSize","lineHeight","onCancel","onClose"],"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,KAGlBK,MAAEA,EAAKC,QAAEA,EAAOC,aAAEA,EAAYP,OAAEA,EAAMQ,cAAEA,EAAaC,aAAEA,GAAiBhB,GACvEiB,EAAqBC,GAA0BC,GAAS,IACxDC,EAAiBC,GAAsBF,EAAwB,MAQtE,OANAG,GAAU,KACJ3B,GACFA,EAAeiB,EAChB,GACA,CAACA,IAGFW,EAAKC,KAAA,MAAA,CAAAC,UAAWC,EAAOC,WAAUC,SAAA,CAC9BhB,GACCiB,EAAAA,IAACC,EAAAA,OAAML,UAAWC,EAAOK,YAAaC,MAAM,UAAUC,SAAS,mEAIjEV,OAAK,MAAA,CAAAE,UAAWC,EAAOQ,gBACrBN,SAAA,CAAAL,EAAAA,KAAA,MAAA,CAAKE,UAAW,GAAGC,EAAOS,cAAcT,EAAOU,oBAC7CP,EAAAA,IAACQ,EACC,CAAAZ,UAAWC,EAAOY,kBAClBC,KACEhB,EAAAA,KAAK,MAAA,CAAAE,UAAWC,EAAOc,0BAAyBZ,SAAA,CAAA,kBAE9CC,EAAAA,IAACY,EAAAA,OAAM,CACLhB,UAAWC,EAAOgB,qBAClBC,KAAK,SACLC,WAAW,EACXC,KAAK,SACLC,QAAQ,YACRd,MAAM,UACNe,QAAS,IAAM7B,GAAuB,GACtC8B,UAAWnC,GAAWC,IAAiBF,EAAKgB,SAAA,cAOpDC,EAAAA,IAACoB,GAAeC,MAAOlD,EACrB4B,SAAAC,EAAAA,IAACsB,EAAQ,CAAA,KAEXtB,EAAAuB,IAACf,EAAY,CAAAZ,UAAWC,EAAOY,kBAAmBC,KAAK,cACvDV,EAAAuB,IAACH,EAAe,CAAAC,MAAOlD,WACpBO,EAAO8C,MAAMC,KAAI,CAACC,EAAMC,IACvB3B,EAAAA,IACG4B,EAAAA,SAAA,CAAA7B,SAAA2B,EAAKG,QACHC,MACC,CAACC,EAAGC,IAAMC,EAAmBF,EAAEf,MAAMkB,MAAQD,EAAmBD,EAAEhB,MAAMkB,QAEzET,KAAI,CAACU,EAAQC,IACZpC,MAACqC,EAAgB,CACfC,KAAM5D,EAAO4D,KACbH,OAAQA,EACRT,KAAMA,EAAKA,KACXxC,cAAe,CAACqD,EAAKlB,KAEnBnC,EADU,SAASyC,cAAsBS,MAAgBG,IACxClB,EAAM,EAEzBmB,OAAQjD,IAAoB6C,EAC5BK,UAAYC,GAASlD,EAAmBkD,EAAON,EAAc,mBAO3EpC,EAAAA,IAAK,MAAA,CAAAJ,UAAW,GAAGC,EAAO8C,mBAAmB9C,EAAOU,mBACjDtC,GACC+B,MAACoB,EAAe,CAAAC,MAAOlD,EAAM4B,SAC3BC,EAAAA,IAAC4C,EAAW,CAACC,gBAAiB5E,WAKtC+B,EAAAA,IAAC8C,EACC,CAAAC,OAAO,UACPC,QACEhD,EAAAA,IAAA,IAAA,CACEiD,MAAO,CACLC,UAAW,SACXC,WAAY,IACZC,SAAU,OACVC,WAAY,aAIZtD,SAAA,mDAENtB,SAAU,CACRyC,QAAS,KACP/B,IACAE,GAAuB,EAAM,EAE/BqB,KAAM,UACNP,MAAO,UACPY,WAAW,GAEbuC,SAAU,CACR5C,KAAM,SACNP,MAAO,SACPY,WAAW,GAEbwC,QAAS,IAAMlE,GAAuB,GACtCqD,KAAMtD,MAGX"}
@@ -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.25rem 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;z-index:3}.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}}.inputContainer .inputWrapper .innerInputContainer .input,.textArea .inputField{padding-inline-end:2.5rem}}");export{o as default};
2
2
  //# sourceMappingURL=layout.module.css.js.map
@@ -1,2 +1,2 @@
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};
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().trim().required("API Description is 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 '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"}
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().trim().required('API Description is 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,IAAaK,OAAOJ,SAAS,gCAC1CM,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"}