@rivm-loculus-tools/common-frontend 0.1.4 → 0.3.0
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/_chunks/EmotionCacheService.js +33 -0
- package/dist/_chunks/EmotionCacheService.js.map +1 -0
- package/dist/_chunks/decorate.js +9 -0
- package/dist/_chunks/react.js.map +1 -1
- package/dist/classes/services/EmotionCacheService/EmotionCacheService.d.ts +7 -0
- package/dist/classes/services/EmotionCacheService/index.d.ts +1 -0
- package/dist/classes/services/EmotionCacheService/index.js +1 -0
- package/dist/classes/services/FastaDataEventBusService/FastaDataEventBusService.d.ts +1 -3
- package/dist/classes/services/FastaDataEventBusService/index.js +6 -8
- package/dist/classes/services/FastaDataEventBusService/index.js.map +1 -1
- package/dist/components/SearchBar/index.js.map +1 -1
- package/dist/components/app/App/App.d.ts +6 -0
- package/dist/components/app/App/index.d.ts +1 -0
- package/dist/components/app/App/index.js +101 -0
- package/dist/components/app/App/index.js.map +1 -0
- package/dist/{_chunks/FastaDataImportDialog.js → components/fasta/FastaDataImportDialog/index.js} +3 -3
- package/dist/components/fasta/FastaDataImportDialog/index.js.map +1 -0
- package/dist/components/{FastaDataImportDialogLoader → fasta/FastaDataImportDialogLoader}/FastaDataImportDialogLoader.d.ts +1 -1
- package/dist/components/fasta/FastaDataImportDialogLoader/index.js +71 -0
- package/dist/components/fasta/FastaDataImportDialogLoader/index.js.map +1 -0
- package/dist/components/fasta/FastaNotLoaded/index.js +54 -0
- package/dist/components/fasta/FastaNotLoaded/index.js.map +1 -0
- package/dist/components/{FastaPageHeaderCenterComponent → fasta/FastaPageHeaderCenterComponent}/FastaPageHeaderCenterComponent.d.ts +1 -1
- package/dist/components/{FastaPageHeaderCenterComponent → fasta/FastaPageHeaderCenterComponent}/index.js +2 -2
- package/dist/components/fasta/FastaPageHeaderCenterComponent/index.js.map +1 -0
- package/dist/components/fasta/FastaPageHeaderImportButton/index.js +27 -0
- package/dist/components/fasta/FastaPageHeaderImportButton/index.js.map +1 -0
- package/dist/components/{FastaPageHeaderResetButton → fasta/FastaPageHeaderResetButton}/index.js +1 -1
- package/dist/components/fasta/FastaPageHeaderResetButton/index.js.map +1 -0
- package/dist/components/ui/GenericErrorMessage/GenericErrorMessage.d.ts +4 -0
- package/dist/components/ui/GenericErrorMessage/index.d.ts +1 -0
- package/dist/components/ui/GenericErrorMessage/index.js +44 -0
- package/dist/components/ui/GenericErrorMessage/index.js.map +1 -0
- package/dist/components/ui/I18nWrapper/index.js +21 -0
- package/dist/components/ui/I18nWrapper/index.js.map +1 -0
- package/dist/components/ui/PageCommon/PageCommon.d.ts +7 -0
- package/dist/components/ui/PageCommon/index.d.ts +1 -0
- package/dist/components/ui/PageCommon/index.js +54 -0
- package/dist/components/ui/PageCommon/index.js.map +1 -0
- package/dist/components/ui/PageCommonDrawer/index.d.ts +1 -0
- package/dist/components/ui/PageCommonDrawer/index.js +29 -0
- package/dist/components/ui/PageCommonDrawer/index.js.map +1 -0
- package/dist/components/ui/PageCommonHeader/index.d.ts +1 -0
- package/dist/components/ui/PageCommonHeader/index.js +98 -0
- package/dist/components/ui/PageCommonHeader/index.js.map +1 -0
- package/dist/components/{PageHeaderDocumentationButton → ui/PageHeaderDocumentationButton}/index.js +1 -1
- package/dist/components/ui/PageHeaderDocumentationButton/index.js.map +1 -0
- package/dist/constants/config.constants.d.ts +9 -0
- package/dist/constants/config.constants.js +6 -0
- package/dist/constants/config.constants.js.map +1 -0
- package/dist/constants/page.constants.js +6 -0
- package/dist/constants/page.constants.js.map +1 -0
- package/dist/context/commonConfigContext/CommonConfigContext.d.ts +9 -0
- package/dist/context/commonConfigContext/CommonConfigContextProvider.d.ts +6 -0
- package/dist/context/commonConfigContext/index.d.ts +3 -0
- package/dist/context/commonConfigContext/index.js +34 -0
- package/dist/context/commonConfigContext/index.js.map +1 -0
- package/dist/context/commonConfigContext/useCommonConfigContext.d.ts +3 -0
- package/dist/context/pageCommonContext/index.d.ts +2 -0
- package/dist/context/pageCommonContext/index.js +24 -0
- package/dist/context/pageCommonContext/index.js.map +1 -0
- package/dist/hooks/useConfig/index.d.ts +1 -0
- package/dist/hooks/useConfig/index.js +7 -0
- package/dist/hooks/useConfig/index.js.map +1 -0
- package/dist/hooks/useConfig/useConfig.d.ts +2 -0
- package/dist/hooks/useUpdateDocumentTitle/index.d.ts +1 -0
- package/dist/hooks/useUpdateDocumentTitle/index.js +13 -0
- package/dist/hooks/useUpdateDocumentTitle/index.js.map +1 -0
- package/dist/hooks/useUpdateDocumentTitle/useUpdateDocumentTitle.d.ts +1 -0
- package/dist/models/config.models.d.ts +19 -0
- package/dist/models/{fasta.js → fasta.models.js} +2 -2
- package/dist/models/fasta.models.js.map +1 -0
- package/dist/models/metadata.models.js +0 -0
- package/dist/pages/ErrorPage/ErrorPage.d.ts +4 -0
- package/dist/pages/ErrorPage/index.d.ts +1 -0
- package/dist/pages/ErrorPage/index.js +17 -0
- package/dist/pages/ErrorPage/index.js.map +1 -0
- package/dist/stores/fastaDataStore/fastaDataStore.d.ts +2 -2
- package/dist/stores/fastaDataStore/index.js +17 -15
- package/dist/stores/fastaDataStore/index.js.map +1 -1
- package/dist/theme/index.js.map +1 -1
- package/dist/utils/DependencyContainerUtil/DependencyContainerUtil.d.ts +6 -0
- package/dist/utils/DependencyContainerUtil/index.d.ts +1 -0
- package/dist/utils/DependencyContainerUtil/index.js +18 -0
- package/dist/utils/DependencyContainerUtil/index.js.map +1 -0
- package/dist/utils/DownloadUtil/index.js.map +1 -1
- package/dist/utils/ErrorUtil/index.js.map +1 -1
- package/dist/utils/FastaUtil/FastaUtil.d.ts +1 -1
- package/dist/utils/FastaUtil/index.js +12 -19
- package/dist/utils/FastaUtil/index.js.map +1 -1
- package/dist/utils/MetaDataUtil/MetaDataUtil.d.ts +1 -1
- package/dist/utils/MetaDataUtil/index.js.map +1 -1
- package/dist/utils/StandardConfigUtil/StandardConfigUtil.d.ts +4 -0
- package/dist/utils/StandardConfigUtil/index.d.ts +1 -0
- package/dist/utils/StandardConfigUtil/index.js +17 -0
- package/dist/utils/StandardConfigUtil/index.js.map +1 -0
- package/dist/utils/UrlUtil/index.js +6 -5
- package/dist/utils/UrlUtil/index.js.map +1 -1
- package/package.json +122 -62
- package/dist/_chunks/FastaDataImportDialog.js.map +0 -1
- package/dist/components/FastaDataImportDialog/index.js +0 -2
- package/dist/components/FastaDataImportDialogLoader/index.js +0 -70
- package/dist/components/FastaDataImportDialogLoader/index.js.map +0 -1
- package/dist/components/FastaNotLoaded/index.js +0 -53
- package/dist/components/FastaNotLoaded/index.js.map +0 -1
- package/dist/components/FastaPageHeaderCenterComponent/index.js.map +0 -1
- package/dist/components/FastaPageHeaderImportButton/index.js +0 -26
- package/dist/components/FastaPageHeaderImportButton/index.js.map +0 -1
- package/dist/components/FastaPageHeaderResetButton/index.js.map +0 -1
- package/dist/components/I18nWrapper/index.js +0 -21
- package/dist/components/I18nWrapper/index.js.map +0 -1
- package/dist/components/PageHeaderDocumentationButton/index.js.map +0 -1
- package/dist/components/page/ErrorPageCommon.d.ts +0 -4
- package/dist/components/page/PageCommon.d.ts +0 -8
- package/dist/components/page/index.d.ts +0 -6
- package/dist/components/page/index.js +0 -207
- package/dist/components/page/index.js.map +0 -1
- package/dist/constants/page.js +0 -6
- package/dist/constants/page.js.map +0 -1
- package/dist/models/fasta.js.map +0 -1
- /package/dist/components/{FastaDataImportDialog → fasta/FastaDataImportDialog}/FastaDataImportDialog.d.ts +0 -0
- /package/dist/components/{FastaDataImportDialog → fasta/FastaDataImportDialog}/index.d.ts +0 -0
- /package/dist/components/{FastaDataImportDialogLoader → fasta/FastaDataImportDialogLoader}/index.d.ts +0 -0
- /package/dist/components/{FastaNotLoaded → fasta/FastaNotLoaded}/FastaNotLoaded.d.ts +0 -0
- /package/dist/components/{FastaNotLoaded → fasta/FastaNotLoaded}/index.d.ts +0 -0
- /package/dist/components/{FastaPageHeaderCenterComponent → fasta/FastaPageHeaderCenterComponent}/index.d.ts +0 -0
- /package/dist/components/{FastaPageHeaderImportButton → fasta/FastaPageHeaderImportButton}/FastaPageHeaderImportButton.d.ts +0 -0
- /package/dist/components/{FastaPageHeaderImportButton → fasta/FastaPageHeaderImportButton}/index.d.ts +0 -0
- /package/dist/components/{FastaPageHeaderResetButton → fasta/FastaPageHeaderResetButton}/FastaPageHeaderResetButton.d.ts +0 -0
- /package/dist/components/{FastaPageHeaderResetButton → fasta/FastaPageHeaderResetButton}/index.d.ts +0 -0
- /package/dist/components/{I18nWrapper → ui/I18nWrapper}/I18nWrapper.d.ts +0 -0
- /package/dist/components/{I18nWrapper → ui/I18nWrapper}/index.d.ts +0 -0
- /package/dist/components/{page → ui/PageCommonDrawer}/PageCommonDrawer.d.ts +0 -0
- /package/dist/components/{page → ui/PageCommonHeader}/PageCommonHeader.d.ts +0 -0
- /package/dist/components/{PageHeaderDocumentationButton → ui/PageHeaderDocumentationButton}/PageHeaderDocumentationButton.d.ts +0 -0
- /package/dist/components/{PageHeaderDocumentationButton → ui/PageHeaderDocumentationButton}/index.d.ts +0 -0
- /package/dist/constants/{page.d.ts → page.constants.d.ts} +0 -0
- /package/dist/{components/page → context/pageCommonContext}/PageCommonContext.d.ts +0 -0
- /package/dist/{components/page → context/pageCommonContext}/PageCommonContextProvider.d.ts +0 -0
- /package/dist/models/{metadata.js → config.models.js} +0 -0
- /package/dist/models/{fasta.d.ts → fasta.models.d.ts} +0 -0
- /package/dist/models/{metadata.d.ts → metadata.models.d.ts} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { StoreApi } from 'zustand';
|
|
2
|
-
import { FastaParseResult, LOADING_STATUS } from '../../models/fasta';
|
|
3
|
-
import { MetadataParseResult } from '../../models/metadata';
|
|
2
|
+
import { FastaParseResult, LOADING_STATUS } from '../../models/fasta.models';
|
|
3
|
+
import { MetadataParseResult } from '../../models/metadata.models';
|
|
4
4
|
export type FastaDataStore = FastaDataStoreActions & FastaDataStoreState;
|
|
5
5
|
export interface FastaDataStoreActions {
|
|
6
6
|
resetDataset: () => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MetaDataUtil as e } from "../../utils/MetaDataUtil/index.js";
|
|
2
2
|
import { FastaUtil as t } from "../../utils/FastaUtil/index.js";
|
|
3
|
-
import { LOADING_STATUS as n } from "../../models/fasta.js";
|
|
3
|
+
import { LOADING_STATUS as n } from "../../models/fasta.models.js";
|
|
4
4
|
//#region src/stores/fastaDataStore/fastaDataStore.ts
|
|
5
5
|
var r = () => ({
|
|
6
6
|
columnMatchCounts: {},
|
|
@@ -17,34 +17,36 @@ var r = () => ({
|
|
|
17
17
|
resetDataset: () => s(r()),
|
|
18
18
|
setColumnMatchCounts: (e) => s({ columnMatchCounts: e }),
|
|
19
19
|
setData: async (r, i) => {
|
|
20
|
-
let o =
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
let { resetDataset: o } = a();
|
|
21
|
+
o();
|
|
22
|
+
let c = t.parseFasta(r);
|
|
23
|
+
if (c.error) throw s({
|
|
24
|
+
loadingError: c.error,
|
|
23
25
|
loadingStatus: n.ERROR
|
|
24
|
-
}), Error(
|
|
26
|
+
}), Error(c.error);
|
|
25
27
|
s({
|
|
26
|
-
parsedFasta:
|
|
28
|
+
parsedFasta: c,
|
|
27
29
|
rawFasta: r
|
|
28
30
|
});
|
|
29
|
-
let
|
|
31
|
+
let l;
|
|
30
32
|
if (i) {
|
|
31
|
-
if (
|
|
32
|
-
loadingError:
|
|
33
|
+
if (l = e.parseTsv(i), l.error) throw s({
|
|
34
|
+
loadingError: l.error,
|
|
33
35
|
loadingStatus: n.ERROR
|
|
34
|
-
}), Error(
|
|
36
|
+
}), Error(l.error);
|
|
35
37
|
s({
|
|
36
|
-
parsedMetadata:
|
|
38
|
+
parsedMetadata: l,
|
|
37
39
|
rawMetadata: i
|
|
38
40
|
});
|
|
39
|
-
let t =
|
|
40
|
-
a().setColumnMatchCounts(
|
|
41
|
+
let t = c.sequences.map((e) => e.id), { bestColumn: r, matchCounts: o } = e.findBestMatchingColumn(l.columns, l.recordsByColumn, t);
|
|
42
|
+
a().setColumnMatchCounts(o), a().setMatchKeyField(r);
|
|
41
43
|
}
|
|
42
44
|
return s({
|
|
43
45
|
loadingError: null,
|
|
44
46
|
loadingStatus: n.SUCCESS
|
|
45
47
|
}), Promise.resolve({
|
|
46
|
-
fastaResult:
|
|
47
|
-
metadataResult:
|
|
48
|
+
fastaResult: c,
|
|
49
|
+
metadataResult: l
|
|
48
50
|
});
|
|
49
51
|
},
|
|
50
52
|
setLoadingStatus: (e) => s({ loadingStatus: e }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/stores/fastaDataStore/fastaDataStore.ts"],"sourcesContent":["import type { StoreApi } from 'zustand';\n\nimport type { FastaParseResult } from '../../models/fasta';\nimport { LOADING_STATUS } from '../../models/fasta';\nimport type { MetadataParseResult } from '../../models/metadata';\nimport { FastaUtil } from '../../utils/FastaUtil';\nimport { MetaDataUtil } from '../../utils/MetaDataUtil';\n\nexport type FastaDataStore = FastaDataStoreActions & FastaDataStoreState;\n\nexport interface FastaDataStoreActions {\n resetDataset: () => void;\n setColumnMatchCounts: (counts: Record<string, number>) => void;\n setData: (fasta: string, tsv?: string) => Promise<{ fastaResult: FastaParseResult; metadataResult?: MetadataParseResult }>;\n setLoadingStatus: (status: LOADING_STATUS) => void;\n setMatchKeyField: (field: null | string) => void;\n}\n\nexport interface FastaDataStoreState {\n columnMatchCounts: Record<string, number>;\n loadingError: null | string;\n loadingStatus: LOADING_STATUS;\n matchKeyField: null | string;\n parsedFasta: FastaParseResult | null;\n parsedMetadata: MetadataParseResult | null;\n rawFasta: string;\n rawMetadata: string;\n}\n\nexport const createFastaDataStoreInitialState = (): FastaDataStoreState => ({\n columnMatchCounts: {},\n loadingError: null,\n loadingStatus: LOADING_STATUS.IDLE,\n matchKeyField: null,\n parsedFasta: null,\n parsedMetadata: null,\n rawFasta: '',\n rawMetadata: '',\n});\n\n\ntype Get<T extends FastaDataStore> = StoreApi<T>['getState'];\ntype Set<T extends FastaDataStore> = StoreApi<T>['setState'];\n\nexport const createFastaDataStoreActions = <T extends FastaDataStore>(kwArgs: { get: Get<T>; set: Set<T> }): FastaDataStoreActions => {\n const { get, set } = kwArgs;\n const setBaseState = (partial: Partial<FastaDataStoreState>) => set(partial as Partial<T>);\n\n return {\n resetDataset: () => setBaseState(createFastaDataStoreInitialState()),\n setColumnMatchCounts: (counts: Record<string, number>) => setBaseState({ columnMatchCounts: counts }),\n setData: async (fasta: string, tsv?: string) => {\n const parsedFasta = FastaUtil.parseFasta(fasta);\n\n if (parsedFasta.error) {\n setBaseState({\n loadingError: parsedFasta.error,\n loadingStatus: LOADING_STATUS.ERROR,\n });\n throw new Error(parsedFasta.error);\n }\n\n setBaseState({\n parsedFasta,\n rawFasta: fasta,\n });\n\n let parsedMetadata: MetadataParseResult | undefined;\n if (tsv) {\n parsedMetadata = MetaDataUtil.parseTsv(tsv);\n if (parsedMetadata.error) {\n setBaseState({\n loadingError: parsedMetadata.error,\n loadingStatus: LOADING_STATUS.ERROR,\n });\n throw new Error(parsedMetadata.error);\n }\n\n setBaseState({\n parsedMetadata,\n rawMetadata: tsv,\n });\n\n const fastaIds = parsedFasta.sequences.map((s) => s.id);\n const { bestColumn, matchCounts } = MetaDataUtil.findBestMatchingColumn(\n parsedMetadata.columns,\n parsedMetadata.recordsByColumn,\n fastaIds,\n );\n get().setColumnMatchCounts(matchCounts);\n get().setMatchKeyField(bestColumn);\n }\n\n setBaseState({\n loadingError: null,\n loadingStatus: LOADING_STATUS.SUCCESS,\n });\n return Promise.resolve({ fastaResult: parsedFasta, metadataResult: parsedMetadata });\n },\n setLoadingStatus: (status: LOADING_STATUS) => setBaseState({ loadingStatus: status }),\n setMatchKeyField: (field: null | string) => setBaseState({ matchKeyField: field }),\n };\n};\n"],"mappings":";;;;AA6BA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["createFastaDataStoreInitialState","LOADING_STATUS","createFastaDataStoreActions","kwArgs","setBaseState","set","partial","counts","get","parsedFasta","FastaUtil","fasta","parsedMetadata","tsv","MetaDataUtil","fastaIds","s","matchCounts","bestColumn","status","field"],"sources":["../../../src/stores/fastaDataStore/fastaDataStore.ts"],"sourcesContent":["import type { StoreApi } from 'zustand';\n\nimport type { FastaParseResult } from '../../models/fasta.models';\nimport { LOADING_STATUS } from '../../models/fasta.models';\nimport type { MetadataParseResult } from '../../models/metadata.models';\nimport { FastaUtil } from '../../utils/FastaUtil';\nimport { MetaDataUtil } from '../../utils/MetaDataUtil';\n\nexport type FastaDataStore = FastaDataStoreActions & FastaDataStoreState;\n\nexport interface FastaDataStoreActions {\n resetDataset: () => void;\n setColumnMatchCounts: (counts: Record<string, number>) => void;\n setData: (fasta: string, tsv?: string) => Promise<{ fastaResult: FastaParseResult; metadataResult?: MetadataParseResult }>;\n setLoadingStatus: (status: LOADING_STATUS) => void;\n setMatchKeyField: (field: null | string) => void;\n}\n\nexport interface FastaDataStoreState {\n columnMatchCounts: Record<string, number>;\n loadingError: null | string;\n loadingStatus: LOADING_STATUS;\n matchKeyField: null | string;\n parsedFasta: FastaParseResult | null;\n parsedMetadata: MetadataParseResult | null;\n rawFasta: string;\n rawMetadata: string;\n}\n\nexport const createFastaDataStoreInitialState = (): FastaDataStoreState => ({\n columnMatchCounts: {},\n loadingError: null,\n loadingStatus: LOADING_STATUS.IDLE,\n matchKeyField: null,\n parsedFasta: null,\n parsedMetadata: null,\n rawFasta: '',\n rawMetadata: '',\n});\n\n\ntype Get<T extends FastaDataStore> = StoreApi<T>['getState'];\ntype Set<T extends FastaDataStore> = StoreApi<T>['setState'];\n\nexport const createFastaDataStoreActions = <T extends FastaDataStore>(kwArgs: { get: Get<T>; set: Set<T> }): FastaDataStoreActions => {\n const { get, set } = kwArgs;\n const setBaseState = (partial: Partial<FastaDataStoreState>) => set(partial as Partial<T>);\n\n return {\n resetDataset: () => setBaseState(createFastaDataStoreInitialState()),\n setColumnMatchCounts: (counts: Record<string, number>) => setBaseState({ columnMatchCounts: counts }),\n setData: async (fasta: string, tsv?: string) => {\n const { resetDataset } = get();\n resetDataset();\n const parsedFasta = FastaUtil.parseFasta(fasta);\n\n if (parsedFasta.error) {\n setBaseState({\n loadingError: parsedFasta.error,\n loadingStatus: LOADING_STATUS.ERROR,\n });\n throw new Error(parsedFasta.error);\n }\n\n setBaseState({\n parsedFasta,\n rawFasta: fasta,\n });\n\n let parsedMetadata: MetadataParseResult | undefined;\n if (tsv) {\n parsedMetadata = MetaDataUtil.parseTsv(tsv);\n if (parsedMetadata.error) {\n setBaseState({\n loadingError: parsedMetadata.error,\n loadingStatus: LOADING_STATUS.ERROR,\n });\n throw new Error(parsedMetadata.error);\n }\n\n setBaseState({\n parsedMetadata,\n rawMetadata: tsv,\n });\n\n const fastaIds = parsedFasta.sequences.map((s) => s.id);\n const { bestColumn, matchCounts } = MetaDataUtil.findBestMatchingColumn(\n parsedMetadata.columns,\n parsedMetadata.recordsByColumn,\n fastaIds,\n );\n get().setColumnMatchCounts(matchCounts);\n get().setMatchKeyField(bestColumn);\n }\n\n setBaseState({\n loadingError: null,\n loadingStatus: LOADING_STATUS.SUCCESS,\n });\n return Promise.resolve({ fastaResult: parsedFasta, metadataResult: parsedMetadata });\n },\n setLoadingStatus: (status: LOADING_STATUS) => setBaseState({ loadingStatus: status }),\n setMatchKeyField: (field: null | string) => setBaseState({ matchKeyField: field }),\n };\n};\n"],"mappings":";;;;AA6BA,IAAaA,WAA+D;CAC1E,mBAAmB,CAAC;CACpB,cAAc;CACd,eAAeC,EAAe;CAC9B,eAAe;CACf,aAAa;CACb,gBAAgB;CAChB,UAAU;CACV,aAAa;AACf,IAMaC,KAAyD,MAAgE;CACpI,IAAM,EAAE,QAAK,WAAQC,GACfC,KAAgB,MAA0CC,EAAIC,CAAqB;CAEzF,OAAO;EACL,oBAAoBF,EAAaJ,EAAiC,CAAC;EACnE,uBAAuB,MAAmCI,EAAa,EAAE,mBAAmBG,EAAO,CAAC;EACpG,SAAS,OAAO,GAAe,MAAiB;GAC9C,IAAM,EAAE,oBAAiBC,EAAI;GAC7B,EAAa;GACb,IAAMC,IAAcC,EAAU,WAAWC,CAAK;GAE9C,IAAIF,EAAY,OAKd,MAJAL,EAAa;IACX,cAAcK,EAAY;IAC1B,eAAeR,EAAe;GAChC,CAAC,GACS,MAAMQ,EAAY,KAAK;GAGnC,EAAa;IACX;IACA,UAAUE;GACZ,CAAC;GAED,IAAIC;GACJ,IAAIC,GAAK;IAEP,IADA,IAAiBC,EAAa,SAASD,CAAG,GACtCD,EAAe,OAKjB,MAJAR,EAAa;KACX,cAAcQ,EAAe;KAC7B,eAAeX,EAAe;IAChC,CAAC,GACS,MAAMW,EAAe,KAAK;IAGtC,EAAa;KACX;KACA,aAAaC;IACf,CAAC;IAED,IAAME,IAAWN,EAAY,UAAU,KAAK,MAAMO,EAAE,EAAE,GAChD,EAAE,eAAY,mBAAgBF,EAAa,uBAC/CF,EAAe,SACfA,EAAe,iBACfG,CACF;IAEA,AADAP,EAAI,CAAC,CAAC,qBAAqBS,CAAW,GACtCT,EAAI,CAAC,CAAC,iBAAiBU,CAAU;GACnC;GAMA,OAJAd,EAAa;IACX,cAAc;IACd,eAAeH,EAAe;GAChC,CAAC,GACM,QAAQ,QAAQ;IAAE,aAAaQ;IAAa,gBAAgBG;GAAe,CAAC;EACrF;EACA,mBAAmB,MAA2BR,EAAa,EAAE,eAAee,EAAO,CAAC;EACpF,mBAAmB,MAAyBf,EAAa,EAAE,eAAegB,EAAM,CAAC;CACnF;AACF"}
|