@digi-frontend/dgate-api-documentation 1.0.55 → 1.0.57
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/index10.js +1 -1
- package/dist/_virtual/index20.js +2 -0
- package/dist/_virtual/index20.js.map +1 -0
- package/dist/_virtual/index3.js +1 -1
- package/dist/_virtual/index4.js +1 -1
- package/dist/_virtual/index5.js +1 -1
- package/dist/_virtual/index6.js +1 -1
- package/dist/_virtual/index7.js +1 -1
- package/dist/_virtual/index8.js +1 -1
- package/dist/_virtual/index9.js +1 -1
- package/dist/node_modules/dom-serializer/lib/index.js +1 -1
- package/dist/node_modules/dom-serializer/node_modules/entities/lib/index.js +1 -1
- package/dist/node_modules/domelementtype/lib/index.js +1 -1
- package/dist/node_modules/domhandler/lib/index.js +1 -1
- package/dist/node_modules/domutils/lib/index.js +1 -1
- package/dist/node_modules/fast-json-stable-stringify/index.js +2 -0
- package/dist/node_modules/fast-json-stable-stringify/index.js.map +1 -0
- package/dist/node_modules/formik/dist/formik.esm.js +1 -1
- package/dist/node_modules/html-dom-parser/lib/index.js +1 -1
- package/dist/node_modules/html-react-parser/esm/index.mjs.js +1 -1
- package/dist/node_modules/html-react-parser/esm/index.mjs.js.map +1 -1
- package/dist/node_modules/html-react-parser/lib/index.js +1 -1
- package/dist/node_modules/htmlparser2/dist/commonjs/index.js +1 -1
- package/dist/node_modules/react-is/index.js +1 -1
- package/dist/node_modules/react-property/lib/index.js +1 -1
- package/dist/node_modules/style-to-object/cjs/index.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/assets/icons/CloseIcon.svg.js +2 -0
- package/dist/src/assets/icons/CloseIcon.svg.js.map +1 -0
- package/dist/src/components/InfoForm/InfoForm.js +1 -1
- package/dist/src/components/InfoForm/InfoForm.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/dialog/index.js +1 -1
- package/dist/src/components/dialog/index.js.map +1 -1
- package/dist/src/components/table/table.js +1 -1
- package/dist/src/components/table/table.js.map +1 -1
- package/dist/src/components/table/tags-table.js +1 -1
- package/dist/src/components/table/tags-table.js.map +1 -1
- package/dist/src/layout/docsComponents/DocsContent/DocsContent.js +1 -1
- package/dist/src/layout/docsComponents/DocsContent/DocsContent.js.map +1 -1
- package/dist/src/layout/docsComponents/DocsContent/OverviewPage/index.js +2 -0
- package/dist/src/layout/docsComponents/DocsContent/OverviewPage/index.js.map +1 -0
- package/dist/src/layout/docsComponents/DocsHeader/DocsHeader.js +1 -1
- package/dist/src/layout/docsComponents/DocsHeader/DocsHeader.js.map +1 -1
- package/dist/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.js +1 -1
- package/dist/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.js.map +1 -1
- package/dist/src/layout/docsLayout.js +1 -1
- package/dist/src/layout/docsLayout.js.map +1 -1
- package/dist/styles.css +761 -757
- package/dist/types/components/dialog/dialog.d.ts +2 -0
- package/dist/types/components/dialog/index.d.ts +1 -1
- package/dist/types/layout/docsComponents/DocsContent/DocsContent.d.ts +2 -1
- package/dist/types/layout/docsComponents/DocsContent/OverviewPage/index.d.ts +9 -0
- package/dist/types/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.d.ts +3 -1
- package/dist/types/layout/docsLayout.d.ts +2 -1
- package/package.json +1 -1
- package/src/components/InfoForm/InfoForm.tsx +16 -16
- package/src/components/LivePreview/LivePreview.module.scss +15 -14
- package/src/components/LivePreview/LivePreview.tsx +1 -0
- package/src/components/MethodAccordion/MethodAccordion.tsx +129 -122
- package/src/components/dialog/dialog.ts +3 -0
- package/src/components/dialog/index.tsx +7 -8
- package/src/components/table/table.tsx +39 -32
- package/src/components/table/tags-table.tsx +2 -2
- package/src/layout/docsComponents/DocsContent/DocsContent.tsx +5 -2
- package/src/layout/docsComponents/DocsContent/{TagPage → OverviewPage}/index.tsx +17 -4
- package/src/layout/docsComponents/DocsContent/{TagPage → OverviewPage}/style.scss +1 -0
- package/src/layout/docsComponents/DocsHeader/DocsHeader.tsx +1 -4
- package/src/layout/docsComponents/DocsSideMenuTree/DocsSideMenuTree.tsx +12 -1
- package/src/layout/docsLayout.tsx +7 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"../../_virtual/jsx-runtime.js";import t,{useState as
|
|
1
|
+
import{j as e}from"../../_virtual/jsx-runtime.js";import t,{useState as i,useRef as s,useEffect as a}from"react";import n from"./docsComponents/index.js";import{transformOpenApiToDocs as c}from"../helpers/docs.helper.js";import o from"../../_virtual/index3.js";var r=t.memo((({apis:t,activeApiId:o,onProductNavigate:r})=>{const[p,d]=i([]),[l,j]=i(!0),[v,m]=i({}),[u,g]=i("OVERVIEW"),[O,f]=i({}),x=s([]),[I,b]=i(!0),[A,S]=i(!1),[E,D]=i(!1),h=(e,t,i,s)=>{if(S(!1),i&&s){const i=Object.fromEntries(Object.entries(Object.assign({},O)).filter((([i])=>!!i.includes(e)&&(i===t||!s.some((e=>i.includes(e)))))));f(Object.assign(Object.assign({},i),{[t]:!O[t]}))}else f((e=>Object.assign(Object.assign({},e),{[t]:!O[t]})))};a((()=>{var e;if(0===p.length){S(!!o);const i=null===(e=structuredClone(t))||void 0===e?void 0:e.map((e=>c(e))).sort(((e,t)=>e.title.toLowerCase().localeCompare(t.title.toLowerCase())));d(i),x.current=i,i.length>0&&b(!1)}}),[t]);return a((()=>{if(o&&p.length>0){const e=p.find((e=>e.apiSpecId===o)),t=`api-${e.apiSpecId}-section`,i=`api-${e.apiSpecId}-overview`;f((e=>Object.assign(Object.assign({},e),{[t]:!0,[i]:!0}))),m(e),g("OVERVIEW"),j(!1),S(!0),D(!0)}}),[o,p]),e.jsxs(n,{children:[e.jsx(n.DocsHeader,{transformedOpenApis:p,updateFilteredData:(e,t=!1)=>{d(t?x.current:e)}}),!I&&e.jsx(n.DocsSideMenuTree,{apis:p,setActiveItemData:m,activeItemData:v,expandedSections:O,setExpandedSections:e=>f((t=>Object.assign(Object.assign({},t),e))),isFirstApiExpanded:l,activeType:u,setIsFirstApiExpanded:j,setActiveType:g,toggleSection:h,canSelectFirstApi:A,canFocusSection:E,setCanFocusSection:D}),!I&&Object.keys(v).length>0&&e.jsx(n.DocsContent,{data:v,activeType:u,setActiveItemData:m,setActiveType:g,setExpandedSections:f,toggleSection:h,onProductNavigate:r}),"ENDPOINT"===u&&e.jsx(n.DocsAside,{data:v})]})}),(function(e,t){var i,s;return o(null!==(i=e.apis)&&void 0!==i?i:[])===o(null!==(s=t.apis)&&void 0!==s?s:[])&&e.activeApiId===t.activeApiId}));export{r as default};
|
|
2
2
|
//# sourceMappingURL=docsLayout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docsLayout.js","sources":["../../../src/layout/docsLayout.tsx"],"sourcesContent":["import React, { JSX, useEffect, useRef, useState } from 'react'\nimport Layout from './docsComponents'\nimport { HTTPMethod, OpenAPIFile, Parameter, RequestBody, Responses } from '@entities/openApi'\nimport { transformOpenApiToDocs } from '../helpers/docs.helper'\nimport { ApiSpecModel } from '@entities/index'\nimport stableStringify from 'fast-json-stable-stringify'\n\ninterface ILayoutProps {\n apis?: ApiSpecModel[]\n activeApiId?: string\n}\n\nexport interface TagData {\n id: string\n method: HTTPMethod\n path: string\n tags: string[]\n responses: Responses\n summary?: string\n description: string\n parameters?: Parameter[]\n requestBody?: RequestBody\n}\n\nexport interface EndpointData extends TagData {\n api: {\n id: string\n description: string\n title: string\n version: string\n }\n}\n\nexport interface OverviewData extends Omit<ApiSpecModel, 'metaData'> {\n description: string\n title: string\n version: string\n tags: Record<string, TagData[]>\n servers: OpenAPIFile['servers']\n}\n\nfunction areEqual(prev: ILayoutProps, next: ILayoutProps): boolean {\n return (\n stableStringify(prev.apis ?? []) === stableStringify(next.apis ?? []) &&\n prev.activeApiId === next.activeApiId\n )\n}\n\nconst DocsLayout = ({ apis, activeApiId }: ILayoutProps): JSX.Element => {\n const [transformedOpenApis, setTransformedOpenApis] = useState<OverviewData[]>([])\n const [isFirstApiExpanded, setIsFirstApiExpanded] = useState(true)\n const [activeItemData, setActiveItemData] = useState<\n OverviewData | EndpointData | Record<string, never>\n >({})\n const [activeType, setActiveType] = useState<'OVERVIEW' | 'ENDPOINT'>('OVERVIEW')\n const [expandedSections, setExpandedSections] = useState<Record<string, boolean>>({})\n const allData = useRef([])\n const [pending, setPending] = useState(true)\n const [canSelectFirstApi, setCanSelectFirstApi] = useState(false)\n\n const toggleSection = (\n apiId: string,\n sectionId: string,\n resetOthers?: boolean,\n key?: string[]\n ) => {\n setCanSelectFirstApi(false)\n if (resetOthers && key) {\n const filteredExpandedSections = Object.fromEntries(\n Object.entries({ ...expandedSections }).filter(([expandKey]) => {\n // Close other APIs sections\n if (!expandKey.includes(apiId)) return false\n // always return the clicked on section\n if (expandKey === sectionId) return true\n // filter all sections containing the key\n if (key.some((k) => expandKey.includes(k))) return false\n return true\n })\n )\n\n setExpandedSections({\n ...filteredExpandedSections,\n [sectionId]: !expandedSections[sectionId],\n })\n } else {\n setExpandedSections((prev) => ({\n ...prev,\n [sectionId]: !expandedSections[sectionId],\n }))\n }\n }\n\n useEffect(() => {\n if (transformedOpenApis.length === 0) {\n setCanSelectFirstApi(!!activeApiId)\n const t = structuredClone(apis)\n ?.map((o3) => transformOpenApiToDocs(o3))\n .sort((a, b) => a.title.toLowerCase().localeCompare(b.title.toLowerCase()))\n setTransformedOpenApis(t)\n allData.current = t\n if (t.length > 0) {\n setPending(false)\n }\n }\n }, [apis])\n\n const updateFilteredData = (filteredItems, isReset = false) => {\n if (isReset) {\n setTransformedOpenApis(allData.current)\n return\n }\n setTransformedOpenApis(filteredItems)\n }\n\n useEffect(() => {\n if (activeApiId && transformedOpenApis.length > 0) {\n const activeApi = transformedOpenApis.find((api) => api.apiSpecId === activeApiId)\n const sectionKey = `api-${activeApi.apiSpecId}-section`\n const overviewKey = `api-${activeApi.apiSpecId}-overview`\n\n setExpandedSections((prev) => ({\n ...prev,\n [sectionKey]: true,\n [overviewKey]: true,\n }))\n setActiveItemData(activeApi)\n setActiveType('OVERVIEW')\n setIsFirstApiExpanded(false)\n setCanSelectFirstApi(true)\n }\n }, [activeApiId, transformedOpenApis])\n\n return (\n <Layout>\n <Layout.DocsHeader\n transformedOpenApis={transformedOpenApis}\n updateFilteredData={updateFilteredData}\n />\n {!pending && (\n <Layout.DocsSideMenuTree\n apis={transformedOpenApis}\n setActiveItemData={setActiveItemData}\n activeItemData={activeItemData as OverviewData | EndpointData}\n expandedSections={expandedSections}\n setExpandedSections={(newExpandedSections) =>\n setExpandedSections((prev) => ({\n ...prev,\n ...newExpandedSections,\n }))\n }\n isFirstApiExpanded={isFirstApiExpanded}\n activeType={activeType}\n setIsFirstApiExpanded={setIsFirstApiExpanded}\n setActiveType={setActiveType}\n toggleSection={toggleSection}\n canSelectFirstApi={canSelectFirstApi}\n />\n )}\n\n {!pending && Object.keys(activeItemData).length > 0 && (\n <Layout.DocsContent\n data={activeItemData as OverviewData | EndpointData}\n activeType={activeType}\n setActiveItemData={setActiveItemData}\n setActiveType={setActiveType}\n setExpandedSections={setExpandedSections}\n toggleSection={toggleSection}\n />\n )}\n {activeType === 'ENDPOINT' && <Layout.DocsAside data={activeItemData as EndpointData} />}\n </Layout>\n )\n}\n\nexport default React.memo(DocsLayout, areEqual)\n"],"names":["docsLayout","React","memo","apis","activeApiId","transformedOpenApis","setTransformedOpenApis","useState","isFirstApiExpanded","setIsFirstApiExpanded","activeItemData","setActiveItemData","activeType","setActiveType","expandedSections","setExpandedSections","allData","useRef","pending","setPending","canSelectFirstApi","setCanSelectFirstApi","toggleSection","apiId","sectionId","resetOthers","key","filteredExpandedSections","Object","fromEntries","entries","assign","filter","expandKey","includes","some","k","prev","useEffect","length","t","_a","structuredClone","map","o3","transformOpenApiToDocs","sort","a","b","title","toLowerCase","localeCompare","current","activeApi","find","api","apiSpecId","sectionKey","overviewKey","_jsxs","jsxs","Layout","children","_jsx","DocsHeader","updateFilteredData","filteredItems","isReset","
|
|
1
|
+
{"version":3,"file":"docsLayout.js","sources":["../../../src/layout/docsLayout.tsx"],"sourcesContent":["import React, { JSX, useEffect, useRef, useState } from 'react'\nimport Layout from './docsComponents'\nimport { HTTPMethod, OpenAPIFile, Parameter, RequestBody, Responses } from '@entities/openApi'\nimport { transformOpenApiToDocs } from '../helpers/docs.helper'\nimport { ApiSpecModel } from '@entities/index'\nimport stableStringify from 'fast-json-stable-stringify'\n\ninterface ILayoutProps {\n apis?: ApiSpecModel[]\n activeApiId?: string\n onProductNavigate?: (productId: number) => void\n}\n\nexport interface TagData {\n id: string\n method: HTTPMethod\n path: string\n tags: string[]\n responses: Responses\n summary?: string\n description: string\n parameters?: Parameter[]\n requestBody?: RequestBody\n}\n\nexport interface EndpointData extends TagData {\n api: {\n id: string\n description: string\n title: string\n version: string\n }\n}\n\nexport interface OverviewData extends Omit<ApiSpecModel, 'metaData'> {\n description: string\n title: string\n version: string\n tags: Record<string, TagData[]>\n servers: OpenAPIFile['servers']\n}\n\nfunction areEqual(prev: ILayoutProps, next: ILayoutProps): boolean {\n return (\n stableStringify(prev.apis ?? []) === stableStringify(next.apis ?? []) &&\n prev.activeApiId === next.activeApiId\n )\n}\n\nconst DocsLayout = ({ apis, activeApiId, onProductNavigate }: ILayoutProps): JSX.Element => {\n const [transformedOpenApis, setTransformedOpenApis] = useState<OverviewData[]>([])\n const [isFirstApiExpanded, setIsFirstApiExpanded] = useState(true)\n const [activeItemData, setActiveItemData] = useState<\n OverviewData | EndpointData | Record<string, never>\n >({})\n const [activeType, setActiveType] = useState<'OVERVIEW' | 'ENDPOINT'>('OVERVIEW')\n const [expandedSections, setExpandedSections] = useState<Record<string, boolean>>({})\n const allData = useRef([])\n const [pending, setPending] = useState(true)\n const [canSelectFirstApi, setCanSelectFirstApi] = useState(false)\n const [canFocusSection, setCanFocusSection] = useState(false)\n\n const toggleSection = (\n apiId: string,\n sectionId: string,\n resetOthers?: boolean,\n key?: string[]\n ) => {\n setCanSelectFirstApi(false)\n if (resetOthers && key) {\n const filteredExpandedSections = Object.fromEntries(\n Object.entries({ ...expandedSections }).filter(([expandKey]) => {\n // Close other APIs sections\n if (!expandKey.includes(apiId)) return false\n // always return the clicked on section\n if (expandKey === sectionId) return true\n // filter all sections containing the key\n if (key.some((k) => expandKey.includes(k))) return false\n return true\n })\n )\n\n setExpandedSections({\n ...filteredExpandedSections,\n [sectionId]: !expandedSections[sectionId],\n })\n } else {\n setExpandedSections((prev) => ({\n ...prev,\n [sectionId]: !expandedSections[sectionId],\n }))\n }\n }\n\n useEffect(() => {\n if (transformedOpenApis.length === 0) {\n setCanSelectFirstApi(!!activeApiId)\n const t = structuredClone(apis)\n ?.map((o3) => transformOpenApiToDocs(o3))\n .sort((a, b) => a.title.toLowerCase().localeCompare(b.title.toLowerCase()))\n setTransformedOpenApis(t)\n allData.current = t\n if (t.length > 0) {\n setPending(false)\n }\n }\n }, [apis])\n\n const updateFilteredData = (filteredItems, isReset = false) => {\n if (isReset) {\n setTransformedOpenApis(allData.current)\n return\n }\n setTransformedOpenApis(filteredItems)\n }\n\n useEffect(() => {\n if (activeApiId && transformedOpenApis.length > 0) {\n const activeApi = transformedOpenApis.find((api) => api.apiSpecId === activeApiId)\n const sectionKey = `api-${activeApi.apiSpecId}-section`\n const overviewKey = `api-${activeApi.apiSpecId}-overview`\n\n setExpandedSections((prev) => ({\n ...prev,\n [sectionKey]: true,\n [overviewKey]: true,\n }))\n setActiveItemData(activeApi)\n setActiveType('OVERVIEW')\n setIsFirstApiExpanded(false)\n setCanSelectFirstApi(true)\n setCanFocusSection(true)\n }\n }, [activeApiId, transformedOpenApis])\n\n return (\n <Layout>\n <Layout.DocsHeader\n transformedOpenApis={transformedOpenApis}\n updateFilteredData={updateFilteredData}\n />\n {!pending && (\n <Layout.DocsSideMenuTree\n apis={transformedOpenApis}\n setActiveItemData={setActiveItemData}\n activeItemData={activeItemData as OverviewData | EndpointData}\n expandedSections={expandedSections}\n setExpandedSections={(newExpandedSections) =>\n setExpandedSections((prev) => ({\n ...prev,\n ...newExpandedSections,\n }))\n }\n isFirstApiExpanded={isFirstApiExpanded}\n activeType={activeType}\n setIsFirstApiExpanded={setIsFirstApiExpanded}\n setActiveType={setActiveType}\n toggleSection={toggleSection}\n canSelectFirstApi={canSelectFirstApi}\n canFocusSection={canFocusSection}\n setCanFocusSection={setCanFocusSection}\n />\n )}\n\n {!pending && Object.keys(activeItemData).length > 0 && (\n <Layout.DocsContent\n data={activeItemData as OverviewData | EndpointData}\n activeType={activeType}\n setActiveItemData={setActiveItemData}\n setActiveType={setActiveType}\n setExpandedSections={setExpandedSections}\n toggleSection={toggleSection}\n onProductNavigate={onProductNavigate}\n />\n )}\n {activeType === 'ENDPOINT' && <Layout.DocsAside data={activeItemData as EndpointData} />}\n </Layout>\n )\n}\n\nexport default React.memo(DocsLayout, areEqual)\n"],"names":["docsLayout","React","memo","apis","activeApiId","onProductNavigate","transformedOpenApis","setTransformedOpenApis","useState","isFirstApiExpanded","setIsFirstApiExpanded","activeItemData","setActiveItemData","activeType","setActiveType","expandedSections","setExpandedSections","allData","useRef","pending","setPending","canSelectFirstApi","setCanSelectFirstApi","canFocusSection","setCanFocusSection","toggleSection","apiId","sectionId","resetOthers","key","filteredExpandedSections","Object","fromEntries","entries","assign","filter","expandKey","includes","some","k","prev","useEffect","length","t","_a","structuredClone","map","o3","transformOpenApiToDocs","sort","a","b","title","toLowerCase","localeCompare","current","activeApi","find","api","apiSpecId","sectionKey","overviewKey","_jsxs","jsxs","Layout","children","_jsx","DocsHeader","updateFilteredData","filteredItems","isReset","DocsSideMenuTree","newExpandedSections","keys","jsx","DocsContent","data","DocsAside","next","stableStringify","_b"],"mappings":"qQAoLA,IAAAA,EAAeC,EAAMC,MAnIF,EAAGC,OAAMC,cAAaC,wBACvC,MAAOC,EAAqBC,GAA0BC,EAAyB,KACxEC,EAAoBC,GAAyBF,GAAS,IACtDG,EAAgBC,GAAqBJ,EAE1C,CAAE,IACGK,EAAYC,GAAiBN,EAAkC,aAC/DO,EAAkBC,GAAuBR,EAAkC,CAAE,GAC9ES,EAAUC,EAAO,KAChBC,EAASC,GAAcZ,GAAS,IAChCa,EAAmBC,GAAwBd,GAAS,IACpDe,EAAiBC,GAAsBhB,GAAS,GAEjDiB,EAAgB,CACpBC,EACAC,EACAC,EACAC,KAGA,GADAP,GAAqB,GACjBM,GAAeC,EAAK,CACtB,MAAMC,EAA2BC,OAAOC,YACtCD,OAAOE,QAAOF,OAAAG,OAAA,CAAA,EAAMnB,IAAoBoB,QAAO,EAAEC,OAE1CA,EAAUC,SAASX,KAEpBU,IAAcT,IAEdE,EAAIS,MAAMC,GAAMH,EAAUC,SAASE,SAK3CvB,EACKe,OAAAG,OAAAH,OAAAG,OAAA,CAAA,EAAAJ,GACH,CAAAH,CAACA,IAAaZ,EAAiBY,KAElC,MACCX,GAAqBwB,GAAST,OAAAG,OAAAH,OAAAG,OAAA,CAAA,EACzBM,GACH,CAAAb,CAACA,IAAaZ,EAAiBY,MAElC,EAGHc,GAAU,WACR,GAAmC,IAA/BnC,EAAoBoC,OAAc,CACpCpB,IAAuBlB,GACvB,MAAMuC,UAAIC,EAAAC,gBAAgB1C,yBACtB2C,KAAKC,GAAOC,EAAuBD,KACpCE,MAAK,CAACC,EAAGC,IAAMD,EAAEE,MAAMC,cAAcC,cAAcH,EAAEC,MAAMC,iBAC9D9C,EAAuBoC,GACvB1B,EAAQsC,QAAUZ,EACdA,EAAED,OAAS,GACbtB,GAAW,EAEd,IACA,CAACjB,IA6BJ,OAnBAsC,GAAU,KACR,GAAIrC,GAAeE,EAAoBoC,OAAS,EAAG,CACjD,MAAMc,EAAYlD,EAAoBmD,MAAMC,GAAQA,EAAIC,YAAcvD,IAChEwD,EAAa,OAAOJ,EAAUG,oBAC9BE,EAAc,OAAOL,EAAUG,qBAErC3C,GAAqBwB,GAAST,OAAAG,OAAAH,OAAAG,OAAA,GACzBM,GAAI,CACPoB,CAACA,IAAa,EACdC,CAACA,IAAc,MAEjBjD,EAAkB4C,GAClB1C,EAAc,YACdJ,GAAsB,GACtBY,GAAqB,GACrBE,GAAmB,EACpB,IACA,CAACpB,EAAaE,IAGfwD,EAACC,KAAAC,EACC,CAAAC,SAAA,CAAAC,MAACF,EAAOG,WACN,CAAA7D,oBAAqBA,EACrB8D,mBA/BqB,CAACC,EAAeC,GAAU,KAEjD/D,EADE+D,EACqBrD,EAAQsC,QAGVc,EAAc,KA4BjClD,GACA+C,EAAAA,IAACF,EAAOO,iBACN,CAAApE,KAAMG,EACNM,kBAAmBA,EACnBD,eAAgBA,EAChBI,iBAAkBA,EAClBC,oBAAsBwD,GACpBxD,GAAqBwB,kCAChBA,GACAgC,KAGP/D,mBAAoBA,EACpBI,WAAYA,EACZH,sBAAuBA,EACvBI,cAAeA,EACfW,cAAeA,EACfJ,kBAAmBA,EACnBE,gBAAiBA,EACjBC,mBAAoBA,KAItBL,GAAWY,OAAO0C,KAAK9D,GAAgB+B,OAAS,GAChDwB,EAAAQ,IAACV,EAAOW,aACNC,KAAMjE,EACNE,WAAYA,EACZD,kBAAmBA,EACnBE,cAAeA,EACfE,oBAAqBA,EACrBS,cAAeA,EACfpB,kBAAmBA,IAGP,aAAfQ,GAA6BqD,EAACQ,IAAAV,EAAOa,WAAUD,KAAMjE,MAEzD,IAvIH,SAAkB6B,EAAoBsC,WACpC,OACEC,EAA6B,UAAbvC,EAAKrC,YAAQ,IAAAyC,EAAAA,EAAA,MAAQmC,EAAyB,QAATC,EAAAF,EAAK3E,YAAI,IAAA6E,EAAAA,EAAI,KAClExC,EAAKpC,cAAgB0E,EAAK1E,WAE9B"}
|