@corva/ui 3.78.0-4 → 3.78.0-5
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/cjs-bundle/componentsV2/TemplatesControl/Store/hooks/usePublishTemplate.js +1 -1
- package/cjs-bundle/componentsV2/TemplatesControl/Store/hooks/usePublishTemplate.js.map +1 -1
- package/cjs-bundle/componentsV2/TemplatesControl/Store/utils.js +1 -1
- package/cjs-bundle/componentsV2/TemplatesControl/Store/utils.js.map +1 -1
- package/componentsV2/TemplatesControl/Store/hooks/usePublishTemplate.d.ts.map +1 -1
- package/componentsV2/TemplatesControl/Store/hooks/usePublishTemplate.js +1 -1
- package/componentsV2/TemplatesControl/Store/hooks/usePublishTemplate.js.map +1 -1
- package/componentsV2/TemplatesControl/Store/utils.d.ts +7 -0
- package/componentsV2/TemplatesControl/Store/utils.d.ts.map +1 -1
- package/componentsV2/TemplatesControl/Store/utils.js +1 -1
- package/componentsV2/TemplatesControl/Store/utils.js.map +1 -1
- package/mcp-server/server.mjs +1 -1
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../src/componentsV2/TemplatesControl/Store/utils.ts"],"sourcesContent":["import Jsona from 'jsona';\nimport { intersection } from 'lodash';\n\nimport {\n getFolderId,\n getTemplateFolder,\n isFolder,\n isOwnTemplate,\n isTemplateInFolder,\n} from '../utils';\nimport {\n Action,\n FolderType,\n Store,\n Template,\n TemplateData,\n TreeFolder,\n TreeNode,\n ZustandStoreGetter,\n ZustandStoreSetter,\n} from '../types';\n\nimport {\n getAppSettingsTemplate,\n getPrograms,\n getRigs,\n patchAppSettingsTemplate,\n postAppSettingsTemplate,\n} from '~/clients/jsonApi';\n\nexport const dataFormatter = new Jsona();\n\ntype Tree = {\n /**\n * Map of all folders for easy access\n */\n folders: Record<string, TreeFolder>;\n /**\n * Actual tree\n */\n tree: TreeNode[];\n /**\n * Template path map: templateId to array of folder ids in which this template is\n */\n pathMap: Record<string, string[]>;\n};\n\nconst SubFolderTypes = [FolderType.Rig, FolderType.Program];\n\nconst FoldersOrderMap: Record<FolderType, number> = {\n [FolderType.Company]: 0,\n [FolderType.Preset]: 1,\n [FolderType.Shared]: 2,\n\n [FolderType.Rig]: 3,\n [FolderType.Program]: 4,\n [FolderType.FracFleet]: 5,\n [FolderType.Pad]: 6,\n\n [FolderType.Regular]: 7,\n};\n\nconst sortNodes = (a: TreeNode, b: TreeNode) => {\n if (isFolder(a) && isFolder(b)) {\n return (\n FoldersOrderMap[a.type] - FoldersOrderMap[b.type] || a.name?.localeCompare(b?.name || '') || 0\n );\n }\n\n // Folder first\n if (isFolder(a)) {\n return -1;\n }\n\n // Templates second\n if (isFolder(b)) {\n return 1;\n }\n\n return a.name.localeCompare(b.name);\n};\n\nconst companyFolderId = getFolderId(FolderType.Company);\n\nconst mutatingEnsureFolder = (\n acc: Omit<Tree, 'pathMap'>,\n { id, type, name, entityId }: Omit<TreeFolder, 'items'>\n) => {\n const isSubFolder = SubFolderTypes.includes(type);\n\n const parentFolder = isSubFolder\n ? mutatingEnsureFolder(acc, {\n id: getFolderId(FolderType.Company),\n type: FolderType.Company,\n })\n : undefined;\n\n if (!acc.folders[id]) {\n const newFolder: TreeFolder = {\n id,\n type,\n name,\n items: [],\n entityId,\n };\n\n acc.folders[id] = newFolder;\n\n if (parentFolder) {\n parentFolder.items.push(newFolder);\n } else {\n acc.tree.push(newFolder);\n }\n }\n\n return acc.folders[id];\n};\n\nconst mutatingAddFolderPath = (acc: Tree, template: Template, folder: TreeFolder) => {\n if (!acc.pathMap[template.id]) {\n acc.pathMap[template.id] = [];\n }\n acc.pathMap[template.id].push(folder.id);\n};\n\ntype CreateTreeOptions = {\n foldersEnabled: boolean;\n rigsDataMap: Record<string, string>;\n programsDataMap: Record<string, string>;\n};\n\nexport const createTree = (\n templates: Template[],\n { foldersEnabled, rigsDataMap, programsDataMap }: CreateTreeOptions\n) => {\n const data = templates.reduce<Tree>(\n // ⚠️⚠️⚠️ WARNING!!! ⚠️⚠️⚠️\n // Lots of mutations of accumulator, be careful\n (acc, template) => {\n const { metadata } = template;\n\n // Template is preset\n if (template.isPreset) {\n const folder = mutatingEnsureFolder(acc, {\n id: getFolderId(FolderType.Preset),\n type: FolderType.Preset,\n });\n folder.items.push(template);\n mutatingAddFolderPath(acc, template, folder);\n }\n // Template is shared\n else if (template.shared) {\n const folder = mutatingEnsureFolder(acc, {\n id: getFolderId(FolderType.Shared),\n type: FolderType.Shared,\n });\n folder.items.push(template);\n mutatingAddFolderPath(acc, template, folder);\n }\n // Template is published by company admins\n else if (template.published) {\n const companyFolder = mutatingEnsureFolder(acc, {\n id: companyFolderId,\n type: FolderType.Company,\n });\n mutatingAddFolderPath(acc, template, companyFolder);\n\n // Template is published but not assigned to any entity\n if (!metadata?.rigIds?.length && !metadata?.programIds?.length) {\n companyFolder.items.push(template);\n } else {\n // Template is assigned to some rigs\n if (metadata?.rigIds?.length) {\n metadata.rigIds.forEach(entityId => {\n const name = rigsDataMap[entityId];\n if (name) {\n const folder = mutatingEnsureFolder(acc, {\n id: getFolderId(FolderType.Rig, entityId),\n type: FolderType.Rig,\n entityId,\n name,\n });\n folder.items.push(template);\n mutatingAddFolderPath(acc, template, folder);\n }\n });\n }\n\n // Template is assigned to some programs\n if (metadata?.programIds?.length) {\n metadata.programIds.forEach(entityId => {\n const name = programsDataMap[entityId];\n if (name) {\n const folder = mutatingEnsureFolder(acc, {\n id: getFolderId(FolderType.Program, entityId),\n type: FolderType.Program,\n entityId,\n name,\n });\n folder.items.push(template);\n mutatingAddFolderPath(acc, template, folder);\n }\n });\n }\n }\n }\n // Template in user's folder\n else if (isTemplateInFolder(template) && foldersEnabled) {\n const folderName = getTemplateFolder(template);\n const folder = mutatingEnsureFolder(acc, {\n id: getFolderId(FolderType.Regular, folderName),\n name: folderName,\n type: FolderType.Regular,\n });\n folder.items.push(template);\n mutatingAddFolderPath(acc, template, folder);\n }\n // Template not in folder\n else {\n acc.tree.push(template);\n }\n\n return acc;\n },\n { folders: {}, tree: [], pathMap: {} }\n );\n\n // Sorting items in all folders\n Object.values(data.folders).forEach(folder => folder.items.sort(sortNodes));\n\n // Sorting root level\n data.tree.sort(sortNodes);\n\n return data;\n};\n\nexport const getFolders = (templates: Template[]) => {\n const { folders } = templates.reduce<Omit<Tree, 'pathMap'>>(\n (acc, template) => {\n if (isTemplateInFolder(template)) {\n const folder = getTemplateFolder(template);\n mutatingEnsureFolder(acc, {\n id: getFolderId(FolderType.Regular, folder),\n name: folder,\n type: FolderType.Regular,\n }).items.push(template);\n }\n\n return acc;\n },\n { folders: {}, tree: [] }\n );\n\n return Object.values(folders).toSorted(sortNodes);\n};\n\nexport const AssetsFieldsMap = {\n rig: ['rig.name'],\n program: ['program.name'],\n frac_fleet: ['frac_fleet.name'],\n well: ['well.name'],\n pad: ['pad.name'],\n intervention_unit: ['intervention_unit.name'],\n};\n\ntype LoadAdditionalDataMapsOptions = {\n permissions: Store['permissions'];\n appEntities: Store['appEntities'];\n userProgramIds: Store['userProgramIds'];\n};\n\nexport const loadAdditionalDataMaps = async (\n templates: Template[],\n { appEntities, permissions, userProgramIds }: LoadAdditionalDataMapsOptions\n) => {\n const { canPublish } = permissions;\n const { rigId } = appEntities;\n\n // Loading publish entities\n const createMap = (ids?: number[]) => (ids || []).reduce((acc, id) => ({ ...acc, [id]: id }), {});\n\n const { rigIds, programIds } = canPublish\n ? templates\n .map(({ metadata, published }) => {\n if (published && metadata) {\n return metadata;\n }\n return undefined;\n })\n .reduce<{\n rigIds: Record<string, number>;\n programIds: Record<string, number>;\n }>(\n (acc, metadata) => ({\n ...acc,\n rigIds: { ...acc.rigIds, ...createMap(metadata?.rigIds) },\n programIds: { ...acc.programIds, ...createMap(metadata?.programIds) },\n }),\n { rigIds: {}, programIds: {} }\n )\n : {\n rigIds: rigId ? { [rigId]: rigId } : {},\n programIds: userProgramIds.reduce<Record<string, string>>(\n (acc, id) => ({ ...acc, [id]: id }),\n {}\n ),\n };\n\n const entityRawData = await Promise.all([\n Object.values(rigIds).length\n ? getRigs({ ids: Object.values(rigIds), fields: AssetsFieldsMap.rig })\n : {},\n Object.values(programIds).length\n ? getPrograms({ ids: Object.values(programIds), fields: AssetsFieldsMap.program })\n : {},\n ]);\n const [rigsDataMap, programsDataMap] = entityRawData.map(data =>\n (dataFormatter.deserialize(data) as { id: string; name: string }[])?.reduce(\n (acc, { id, name }) => ({ ...acc, [id]: name }),\n {} as Record<string, string>\n )\n );\n\n return { rigsDataMap, programsDataMap };\n};\n\nexport const getAllTemplates = <T extends TemplateData>(get: ZustandStoreGetter<T>) => [\n ...get().loadedTemplates,\n ...get().presetTemplates,\n];\n\nexport const findTemplate = <T extends TemplateData>(\n get: ZustandStoreGetter<T>,\n templateId?: number\n) => {\n if (templateId === undefined) {\n return undefined;\n }\n\n return getAllTemplates(get).find(({ id }) => templateId === id);\n};\n\nexport const setBusy = <T extends TemplateData>(\n set: ZustandStoreSetter<T>,\n id?: number | string,\n action?: Action\n) => {\n if (id === undefined || action === undefined) {\n return () => {};\n }\n\n const newAction = { id, action };\n\n set(({ currentActions }) => ({ currentActions: [...currentActions, newAction] }));\n\n return () => {\n set(({ currentActions }) => ({\n currentActions: currentActions.filter(action => action !== newAction),\n }));\n };\n};\n\nexport const getUpdatedTemplates = <T extends TemplateData>(\n get: ZustandStoreGetter<T>,\n templateId: number | undefined,\n update: Partial<Template<T>>\n) => {\n const { loadedTemplates } = get();\n return templateId === undefined\n ? loadedTemplates\n : loadedTemplates.map(item => {\n if (item.id === templateId) {\n return { ...item, ...update };\n }\n\n return item;\n });\n};\n\nexport const findTemplateOverride = <T extends TemplateData>(\n loadedTemplates: Template<T>[],\n templateId?: number\n) => {\n if (templateId === undefined) {\n return undefined;\n }\n\n // This may slow us down, needs verification. If it does - refactor to maps in store\n return loadedTemplates.find(\n loadedTemplate =>\n loadedTemplate.metadata?.isPresetOverride &&\n loadedTemplate.metadata?.parentTemplateId === templateId\n );\n};\n\nexport const getTemplateOverride = <T extends TemplateData>(\n get: ZustandStoreGetter<T>,\n template?: Template<T>\n) => {\n if (!template || !template.isPreset) {\n return undefined;\n }\n\n return findTemplateOverride(get().loadedTemplates, template.id);\n};\n\nexport const ensureTemplateSettings = async <T extends TemplateData>(\n get: ZustandStoreGetter<T>,\n set: ZustandStoreSetter<T>,\n template: Template<T>\n) => {\n const override = getTemplateOverride(get, template);\n\n const { settings: existingSettings, id: templateIdToLoad } = override || template;\n let actualSettings = existingSettings;\n\n if (!existingSettings) {\n const clearBusy = setBusy(set, template.id, Action.LoadData);\n try {\n const { settings: settingsFromServer } = dataFormatter.deserialize(\n await getAppSettingsTemplate(get().appKey, templateIdToLoad)\n ) as Template<T>;\n\n set({\n loadedTemplates: getUpdatedTemplates<T>(get, templateIdToLoad, {\n settings: settingsFromServer,\n }),\n });\n\n actualSettings = settingsFromServer;\n } catch (error) {\n console.error(error);\n }\n\n clearBusy();\n }\n\n const resultTemplate = findTemplate(get, template.id);\n\n if (!resultTemplate) {\n throw new Error('ensureTemplateSettings: Template not found in list!');\n }\n\n // For preset overrides - we return the settings of the override\n return { ...resultTemplate, settings: actualSettings };\n};\n\nexport const selectTemplateOnDeletion = async <T extends TemplateData>(\n get: ZustandStoreGetter<T>,\n set: ZustandStoreSetter<T>\n) => {\n const {\n hooks: { getDefaultTemplate },\n presetTemplates,\n loadedTemplates,\n onChange,\n } = get();\n\n if (getDefaultTemplate) {\n const selectedTemplate = getDefaultTemplate([...presetTemplates, ...loadedTemplates], {\n currentTemplateId: undefined,\n templateSettings: undefined,\n event: 'deleteTemplate',\n });\n\n set(() => ({\n currentTemplateId: selectedTemplate?.id,\n templateSettings: undefined,\n }));\n\n const withSettings =\n selectedTemplate && (await ensureTemplateSettings(get, set, selectedTemplate));\n\n onChange?.(withSettings, 'deleteTemplate');\n }\n};\n\nexport const removeTemplateFromList = <T extends TemplateData>(\n get: ZustandStoreGetter<T>,\n set: ZustandStoreSetter<T>,\n templateOrId?: number | Template<T>\n) => {\n const { currentTemplateId, loadedTemplates: prevTemplates } = get();\n\n const templateToDelete =\n typeof templateOrId === 'number' ? findTemplate(get, templateOrId) : templateOrId;\n\n if (templateToDelete) {\n const loadedTemplates = prevTemplates.filter(({ id }) => id !== templateToDelete.id);\n\n const update: Partial<Store<T>> =\n templateToDelete.id === currentTemplateId\n ? { loadedTemplates, currentTemplateId: undefined, templateSettings: undefined }\n : { loadedTemplates };\n\n set(update);\n\n return templateToDelete;\n }\n\n return undefined;\n};\n\n/**\n * Updates templates\n *\n * @return Template[] of updated templates in arbitrary order\n */\nexport const updateTemplates = async <T extends TemplateData>(\n get: ZustandStoreGetter<T>,\n set: ZustandStoreSetter<T>,\n ids: number[],\n updateOrFn: Partial<Template<T>> | ((template: Template<T>) => Partial<Template<T>>),\n action: Action\n) => {\n if (!ids.length) {\n return [];\n }\n\n const getUpdateValue = (template: Template<T>) =>\n typeof updateOrFn === 'function' ? updateOrFn(template) : updateOrFn;\n\n const { loadedTemplates, templateUpdatesMap } = get().loadedTemplates.reduce<{\n loadedTemplates: Template<T>[]; // New loadedTemplates\n templateUpdatesMap: Record<string, Partial<Template>>; // Template updates\n }>(\n (acc, template) => {\n const isChanged = ids.includes(template.id);\n const updateValue = isChanged ? getUpdateValue(template) : undefined;\n const newTemplate = updateValue ? { ...template, ...updateValue } : template;\n\n return {\n ...acc,\n loadedTemplates: [...acc.loadedTemplates, newTemplate],\n templateUpdatesMap: {\n ...acc.templateUpdatesMap,\n ...(updateValue ? { [template.id]: updateValue } : {}),\n },\n };\n },\n { loadedTemplates: [], templateUpdatesMap: {} }\n );\n\n set({ loadedTemplates });\n\n return Promise.all(\n Object.entries(templateUpdatesMap).map(async ([id, updateValue]) => {\n const clearBusy = setBusy(set, Number(id), action);\n let data: Template<T> | undefined;\n\n try {\n data = dataFormatter.deserialize(\n await patchAppSettingsTemplate(get().appKey, id, updateValue as never)\n ) as Template<T>;\n } catch (e) {\n console.error(e);\n } finally {\n clearBusy();\n }\n\n return data;\n })\n );\n};\n\nexport const updateTemplate = async <T extends TemplateData>(\n get: ZustandStoreGetter<T>,\n set: ZustandStoreSetter<T>,\n id: number | undefined,\n updateOrFn: Partial<Template<T>> | ((template: Template<T>) => Partial<Template<T>>),\n action: Action\n) => {\n if (id === undefined) {\n return undefined;\n }\n\n const data = await updateTemplates<T>(get, set, [id], updateOrFn, action);\n return data[0];\n};\n\nexport const addTemplate = async <T extends TemplateData>(\n get: ZustandStoreGetter<T>,\n set: ZustandStoreSetter<T>,\n template: Pick<Template<T>, 'name' | 'settings' | 'metadata'>\n) => {\n const newTemplate = dataFormatter.deserialize(\n await postAppSettingsTemplate(get().appKey, {\n name: template.name,\n settings: template.settings,\n metadata: template.metadata,\n })\n ) as Template<T>;\n\n set(({ loadedTemplates }) => ({ loadedTemplates: [...loadedTemplates, newTemplate] }));\n\n return newTemplate;\n};\n\nexport const processLoadedTemplates = async <T extends TemplateData>(\n get: ZustandStoreGetter<T>,\n templates: Template<T>[]\n) => {\n const {\n userProgramIds,\n hooks: { filterInitialTemplates },\n permissions,\n appEntities,\n } = get();\n const { canPublish } = permissions;\n const { rigId } = appEntities;\n\n const loadedTemplates = canPublish\n ? templates\n : templates.filter(template => {\n const { metadata: { programIds = [], rigIds = [] } = {} } = template;\n const inNotAttachedToEntity = programIds.length === 0 && rigIds.length === 0;\n const isSameProgram = !!intersection(programIds, userProgramIds).length;\n const isSameRig = !!rigId && rigIds.includes(rigId);\n\n return inNotAttachedToEntity || isSameProgram || isSameRig || isOwnTemplate(template);\n });\n\n // Preprocessing templates\n const filteredTemplates = filterInitialTemplates\n ? await filterInitialTemplates(loadedTemplates)\n : loadedTemplates;\n\n // Loading publish entities\n const { rigsDataMap, programsDataMap } = await loadAdditionalDataMaps(filteredTemplates, {\n appEntities,\n permissions,\n userProgramIds,\n });\n\n return {\n loadedTemplates: filteredTemplates,\n rigsDataMap,\n programsDataMap,\n };\n};\n"],"names":["dataFormatter","Jsona","SubFolderTypes","FolderType","Rig","Program","FoldersOrderMap","Company","Preset","_defineProperty","_FoldersOrderMap","Shared","FracFleet","Pad","Regular","sortNodes","a","b","_a$name","isFolder","type","name","localeCompare","companyFolderId","getFolderId","mutatingEnsureFolder","acc","_ref","id","entityId","parentFolder","includes","undefined","folders","newFolder","items","push","tree","mutatingAddFolderPath","template","folder","pathMap","createTree","templates","_ref2","foldersEnabled","rigsDataMap","programsDataMap","data","reduce","metadata","isPreset","shared","published","_metadata$rigIds","_metadata$programIds","_metadata$rigIds2","_metadata$programIds2","companyFolder","rigIds","length","programIds","forEach","isTemplateInFolder","folderName","getTemplateFolder","Object","values","sort","getFolders","toSorted","AssetsFieldsMap","rig","program","frac_fleet","well","pad","intervention_unit","loadAdditionalDataMaps","_ref4","_asyncToGenerator","_regeneratorRuntime","mark","_ref3","appEntities","permissions","userProgramIds","canPublish","rigId","createMap","_ref5","entityRawData","_entityRawData$map","_entityRawData$map2","wrap","_context","prev","next","ids","_objectSpread","map","_ref6","Promise","all","getRigs","fields","getPrograms","sent","_dataFormatter$deseri","deserialize","_ref8","_slicedToArray","abrupt","stop","_callee","_x","_x2","apply","this","arguments","getAllTemplates","get","loadedTemplates","presetTemplates","findTemplate","templateId","find","_ref9","setBusy","set","action","newAction","_ref10","currentActions","concat","_toConsumableArray","_ref11","filter","getUpdatedTemplates","update","item","findTemplateOverride","loadedTemplate","_loadedTemplate$metad","_loadedTemplate$metad2","isPresetOverride","parentTemplateId","getTemplateOverride","ensureTemplateSettings","_ref12","override","_ref13","existingSettings","templateIdToLoad","actualSettings","clearBusy","_ref14","settingsFromServer","resultTemplate","_context2","settings","Action","LoadData","t0","getAppSettingsTemplate","appKey","t1","call","t2","console","error","Error","_callee2","_x3","_x4","_x5","selectTemplateOnDeletion","_ref15","_callee3","_get2","getDefaultTemplate","onChange","selectedTemplate","withSettings","_context3","hooks","currentTemplateId","templateSettings","event","_x6","_x7","removeTemplateFromList","templateOrId","_get3","prevTemplates","templateToDelete","_ref16","updateTemplates","_ref17","_callee5","updateOrFn","getUpdateValue","_get$loadedTemplates$","templateUpdatesMap","_context5","updateValue","newTemplate","entries","_ref20","_callee4","_ref19","_ref21","_context4","Number","patchAppSettingsTemplate","finish","_x13","_x8","_x9","_x10","_x11","_x12","updateTemplate","_ref22","_callee6","_context6","_x14","_x15","_x16","_x17","_x18","addTemplate","_ref23","_context7","postAppSettingsTemplate","_ref24","_callee7","_x19","_x20","_x21","processLoadedTemplates","_ref25","_callee8","_get4","filterInitialTemplates","filteredTemplates","_yield$loadAdditional","_context8","_template$metadata$pr","_template$metadata","_template$metadata$ri","inNotAttachedToEntity","isSameProgram","intersection","isSameRig","isOwnTemplate","_x22","_x23"],"mappings":"qtCA8BaA,IAAAA,EAAgB,IAAIC,EAiB3BC,EAAiB,CAACC,EAAWC,IAAKD,EAAWE,SAE7CC,UACHH,EAAWI,QAAU,GACrBJ,EAAAA,EAAAA,EAAWK,OAAS,GAACC,EAAAC,EACrBP,EAAWQ,OAAS,GAACF,EAAAC,EAErBP,EAAWC,IAAM,GACjBD,EAAAA,EAAAA,EAAWE,QAAU,GACrBF,EAAAA,EAAAA,EAAWS,UAAY,OACvBT,EAAWU,IAAM,GAACJ,EAAAC,EAElBP,EAAWW,QAAU,GACvBJ,GAEKK,EAAY,SAACC,EAAaC,GACE,IAAAC,EAAhC,OAAIC,EAASH,IAAMG,EAASF,GAExBX,EAAgBU,EAAEI,MAAQd,EAAgBW,EAAEG,QAAe,UAANJ,EAAEK,YAAI,IAAAH,OAAA,EAANA,EAAQI,eAAcL,aAAAA,EAAAA,EAAGI,OAAQ,MAAO,EAK7FF,EAASH,IACH,EAING,EAASF,GACJ,EAGFD,EAAEK,KAAKC,cAAcL,EAAEI,KAChC,EAEME,EAAkBC,EAAYrB,EAAWI,SAEzCkB,EAAuB,SAAvBA,EACJC,EAEGC,GAAA,IADDC,IAAAA,GAAIR,IAAAA,KAAMC,IAAAA,KAAMQ,IAAAA,SAIZC,EAFc5B,EAAe6B,SAASX,GAGxCK,EAAqBC,EAAK,CACxBE,GAAIJ,EAAYrB,EAAWI,SAC3Ba,KAAMjB,EAAWI,eAEnByB,EAEJ,IAAKN,EAAIO,QAAQL,GAAK,CACpB,IAAMM,EAAwB,CAC5BN,GAAAA,EACAR,KAAAA,EACAC,KAAAA,EACAc,MAAO,GACPN,SAAAA,GAGFH,EAAIO,QAAQL,GAAMM,EAEdJ,EACFA,EAAaK,MAAMC,KAAKF,GAExBR,EAAIW,KAAKD,KAAKF,EAElB,CAEA,OAAOR,EAAIO,QAAQL,EACrB,EAEMU,EAAwB,SAACZ,EAAWa,EAAoBC,GACvDd,EAAIe,QAAQF,EAASX,MACxBF,EAAIe,QAAQF,EAASX,IAAM,IAE7BF,EAAIe,QAAQF,EAASX,IAAIQ,KAAKI,EAAOZ,GACvC,EAQac,EAAa,SACxBC,EAEGC,GAAA,IADDC,IAAAA,eAAgBC,IAAAA,YAAaC,IAAAA,gBAEzBC,EAAOL,EAAUM,QAGrB,SAACvB,EAAKa,GACJ,IAAQW,EAAaX,EAAbW,SAGR,GAAIX,EAASY,SAAU,CACrB,IAAMX,EAASf,EAAqBC,EAAK,CACvCE,GAAIJ,EAAYrB,EAAWK,QAC3BY,KAAMjB,EAAWK,SAEnBgC,EAAOL,MAAMC,KAAKG,GAClBD,EAAsBZ,EAAKa,EAAUC,EACvC,MAEK,GAAID,EAASa,OAAQ,CACxB,IAAMZ,EAASf,EAAqBC,EAAK,CACvCE,GAAIJ,EAAYrB,EAAWQ,QAC3BS,KAAMjB,EAAWQ,SAEnB6B,EAAOL,MAAMC,KAAKG,GAClBD,EAAsBZ,EAAKa,EAAUC,EACvC,MAEK,GAAID,EAASc,UAAW,CAAA,IAAAC,EAAAC,EAUpBC,EAAAC,EATDC,EAAgBjC,EAAqBC,EAAK,CAC9CE,GAAIL,EACJH,KAAMjB,EAAWI,UAKnB,GAHA+B,EAAsBZ,EAAKa,EAAUmB,GAGhCR,SAAgB,UAAhBA,EAAUS,cAAM,IAAAL,GAAhBA,EAAkBM,QAAWV,SAAoB,QAApBA,EAAAA,EAAUW,kBAAU,IAAAN,GAApBA,EAAsBK,OAIlDV,SAAgB,QAAhBA,EAAAA,EAAUS,cAAM,IAAAH,GAAhBA,EAAkBI,QACpBV,EAASS,OAAOG,SAAQ,SAAAjC,GACtB,IAAMR,EAAOyB,EAAYjB,GACzB,GAAIR,EAAM,CACR,IAAMmB,EAASf,EAAqBC,EAAK,CACvCE,GAAIJ,EAAYrB,EAAWC,IAAKyB,GAChCT,KAAMjB,EAAWC,IACjByB,SAAAA,EACAR,KAAAA,IAEFmB,EAAOL,MAAMC,KAAKG,GAClBD,EAAsBZ,EAAKa,EAAUC,EACvC,CACF,IAIEU,SAAoB,QAApBA,EAAAA,EAAUW,kBAAU,IAAAJ,GAApBA,EAAsBG,QACxBV,EAASW,WAAWC,SAAQ,SAAAjC,GAC1B,IAAMR,EAAO0B,EAAgBlB,GAC7B,GAAIR,EAAM,CACR,IAAMmB,EAASf,EAAqBC,EAAK,CACvCE,GAAIJ,EAAYrB,EAAWE,QAASwB,GACpCT,KAAMjB,EAAWE,QACjBwB,SAAAA,EACAR,KAAAA,IAEFmB,EAAOL,MAAMC,KAAKG,GAClBD,EAAsBZ,EAAKa,EAAUC,EACvC,CACF,SAjCFkB,EAAcvB,MAAMC,KAAKG,EAoC7B,MAEK,GAAIwB,EAAmBxB,IAAaM,EAAgB,CACvD,IAAMmB,EAAaC,EAAkB1B,GAC/BC,EAASf,EAAqBC,EAAK,CACvCE,GAAIJ,EAAYrB,EAAWW,QAASkD,GACpC3C,KAAM2C,EACN5C,KAAMjB,EAAWW,UAEnB0B,EAAOL,MAAMC,KAAKG,GAClBD,EAAsBZ,EAAKa,EAAUC,EACvC,MAGEd,EAAIW,KAAKD,KAAKG,GAGhB,OAAOb,CACT,GACA,CAAEO,QAAS,CAAE,EAAEI,KAAM,GAAII,QAAS,CAAC,IASrC,OALAyB,OAAOC,OAAOnB,EAAKf,SAAS6B,SAAQ,SAAAtB,GAAM,OAAIA,EAAOL,MAAMiC,KAAKrD,MAGhEiC,EAAKX,KAAK+B,KAAKrD,GAERiC,CACT,EAEaqB,EAAa,SAAC1B,GACzB,IAAQV,EAAYU,EAAUM,QAC5B,SAACvB,EAAKa,GACJ,GAAIwB,EAAmBxB,GAAW,CAChC,IAAMC,EAASyB,EAAkB1B,GACjCd,EAAqBC,EAAK,CACxBE,GAAIJ,EAAYrB,EAAWW,QAAS0B,GACpCnB,KAAMmB,EACNpB,KAAMjB,EAAWW,UAChBqB,MAAMC,KAAKG,EAChB,CAEA,OAAOb,CACT,GACA,CAAEO,QAAS,CAAE,EAAEI,KAAM,KAbfJ,QAgBR,OAAOiC,OAAOC,OAAOlC,GAASqC,SAASvD,EACzC,EAEawD,EAAkB,CAC7BC,IAAK,CAAC,YACNC,QAAS,CAAC,gBACVC,WAAY,CAAC,mBACbC,KAAM,CAAC,aACPC,IAAK,CAAC,YACNC,kBAAmB,CAAC,2BASTC,EAAsB,WAAA,IAAAC,EAAAC,EAAAC,EAAAC,MAAG,WACpCvC,EAAqBwC,GAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA/B,EAAAE,EAAA8B,EAAAC,EAAAC,EAAA/C,EAAAC,EAAA,OAAAkC,EAAAa,MAAA,SAAAC,GAAA,OAAA,OAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EASK,OARxBb,EAAWD,EAAXC,YAAaC,IAAAA,YAAaC,EAAcH,EAAdG,eAEpBC,EAAeF,EAAfE,WACAC,EAAUJ,EAAVI,MAGFC,EAAY,SAACS,GAAc,OAAMA,GAAO,IAAIjD,QAAO,SAACvB,EAAKE,GAAE,OAAAuE,EAAAA,EAAA,CAAA,EAAWzE,GAAG,GAAAjB,EAAA,CAAA,EAAGmB,EAAKA,GAAK,GAAE,CAAE,EAAC,EAAA8D,EAElEH,EAC3B5C,EACGyD,KAAI,SAA6BC,GAAA,IAA1BnD,IAAAA,SACN,KADgBG,WACCH,EACf,OAAOA,CAGV,IACAD,QAIC,SAACvB,EAAKwB,GAAQ,OAAAiD,EAAAA,EAAA,CAAA,EACTzE,GAAG,CAAA,EAAA,CACNiC,OAAajC,EAAAA,EAAAA,CAAAA,EAAAA,EAAIiC,QAAW8B,EAAUvC,aAAAA,EAAAA,EAAUS,SAChDE,WAAiBnC,EAAAA,EAAAA,CAAAA,EAAAA,EAAImC,YAAe4B,EAAUvC,aAAQ,EAARA,EAAUW,cAAa,GAEvE,CAAEF,OAAQ,CAAE,EAAEE,WAAY,CAAC,IAE/B,CACEF,OAAQ6B,EAAWA,EAAAA,CAAAA,EAAAA,EAAQA,GAAU,CAAE,EACvC3B,WAAYyB,EAAerC,QACzB,SAACvB,EAAKE,GAAE,OAAAuE,EAAAA,EAAA,CAAA,EAAWzE,GAAG,GAAAjB,EAAA,CAAA,EAAGmB,EAAKA,GAAK,GACnC,KAvBA+B,EAAM+B,EAAN/B,OAAQE,IAAAA,WAAUkC,EAAAE,KAAA,EA2BEK,QAAQC,IAAI,CACtCrC,OAAOC,OAAOR,GAAQC,OAClB4C,EAAQ,CAAEN,IAAKhC,OAAOC,OAAOR,GAAS8C,OAAQlC,EAAgBC,MAC9D,CAAE,EACNN,OAAOC,OAAON,GAAYD,OACtB8C,EAAY,CAAER,IAAKhC,OAAOC,OAAON,GAAa4C,OAAQlC,EAAgBE,UACtE,CAAE,IACN,KAAA,EACiC,OAR7BkB,EAAaI,EAAAY,KAAAf,EAQoBD,EAAcS,KAAI,SAAApD,GAAI,IAAA4D,EAAA,OAC3B,QAA/B5G,EAAAA,EAAc6G,YAAY7D,UAAK,IAAA4D,OAAA,EAAhCA,EAAqE3D,QACnE,SAACvB,EAAGoF,GAAA,IAAIlF,IAAAA,GAAIP,IAAAA,KAAI,OAAA8E,EAAAA,EAAA,CAAA,EAAazE,GAAG,GAAAjB,EAAA,CAAA,EAAGmB,EAAKP,GAAO,GAC/C,CAAE,EAEL,IAAAwE,EAAAkB,EAAAnB,EAAA,GALM9C,EAAW+C,EAAA,GAAE9C,EAAe8C,EAAA,GAO5BE,EAAAiB,OAAA,SAAA,CAAElE,YAAAA,EAAaC,gBAAAA,IAAiB,KAAA,GAAA,IAAA,MAAA,OAAAgD,EAAAkB,OAAA,GAAAC,EACxC,KAAA,OAAA,SArDkCC,EAAAC,GAAA,OAAArC,EAAAsC,MAAAC,KAAAC,UAAA,CAAA,CAAA,GAuDtBC,EAAkB,SAAyBC,GAA0B,MAC7EA,GAAAA,OAAAA,EAAAA,IAAMC,mBACND,IAAME,iBAAe,EAGbC,EAAe,SAC1BH,EACAI,GAEA,QAAmB7F,IAAf6F,EAIJ,OAAOL,EAAgBC,GAAKK,MAAK,SAAAC,GAAA,IAAGnG,IAAAA,GAAE,OAAOiG,IAAejG,IAC9D,EAEaoG,EAAU,SACrBC,EACArG,EACAsG,GAEA,QAAWlG,IAAPJ,QAA+BI,IAAXkG,EACtB,OAAO,WAAM,EAGf,IAAMC,EAAY,CAAEvG,GAAAA,EAAIsG,OAAAA,GAIxB,OAFAD,GAAI,SAAAG,GAAA,IAAGC,IAAAA,eAAc,MAAQ,CAAEA,eAAc,GAAAC,OAAAC,EAAMF,GAAc,CAAEF,IAAY,IAExE,WACLF,GAAI,SAAAO,GAAiB,MAAQ,CAC3BH,iBADKA,eAC0BI,QAAO,SAAAP,GAAM,OAAIA,IAAWC,CAAS,IACrE,IAEL,EAEaO,EAAsB,SACjCjB,EACAI,EACAc,GAEA,IAAQjB,EAAoBD,IAApBC,gBACR,YAAsB1F,IAAf6F,EACHH,EACAA,EAAgBtB,KAAI,SAAAwC,GAClB,OAAIA,EAAKhH,KAAOiG,EACFe,EAAAA,EAAAA,CAAAA,EAAAA,GAASD,GAGhBC,CACT,GACN,EAEaC,EAAuB,SAClCnB,EACAG,GAEA,QAAmB7F,IAAf6F,EAKJ,OAAOH,EAAgBI,MACrB,SAAAgB,GAAc,IAAAC,EAAAC,EAAA,OACW,UAAvBF,EAAe5F,gBAAQ,IAAA6F,OAAA,EAAvBA,EAAyBE,oBACF,QAAvBH,EAAAA,EAAe5F,gBAAQ,IAAA8F,OAAA,EAAvBA,EAAyBE,oBAAqBrB,IAEpD,EAEasB,EAAsB,SACjC1B,EACAlF,GAEA,GAAKA,GAAaA,EAASY,SAI3B,OAAO0F,EAAqBpB,IAAMC,gBAAiBnF,EAASX,GAC9D,EAEawH,EAAsB,WAAA,IAAAC,EAAArE,EAAAC,EAAAC,MAAG,SACpCuC,EAAAA,EACAQ,EACA1F,GAAqB,IAAA+G,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAA7E,EAAAa,MAAA,SAAAiE,GAAA,OAAA,OAAAA,EAAA/D,KAAA+D,EAAA9D,MAAA,KAAA,EAKgB,GAH/BqD,EAAWH,EAAoB1B,EAAKlF,GAExBiH,GAFiCD,EAEUD,GAAY/G,GAAjEyH,SAAgCP,EAAgBF,EAApB3H,GAChC8H,EAAiBF,EAEhBA,EAAgB,CAAAO,EAAA9D,KAAA,GAAA,KAAA,CAGqC,OAFlD0D,EAAY3B,EAAQC,EAAK1F,EAASX,GAAIqI,EAAOC,UAASH,EAAA/D,KAAA,EAAA+D,EAAAI,GAEjBnK,EAAa+J,EAAA9D,KAAA,EAC9CmE,EAAuB3C,IAAM4C,OAAQZ,GAAiB,KAAA,EAAAM,EAAAO,GAAAP,EAAApD,KAAAiD,EAAAG,EAAAI,GADPtD,YAAW0D,KAAAR,EAAAI,GAAAJ,EAAAO,IAAhDT,IAAVG,SAIR/B,EAAI,CACFP,gBAAiBgB,EAAuBjB,EAAKgC,EAAkB,CAC7DO,SAAUH,MAIdH,EAAiBG,EAAmBE,EAAA9D,KAAA,GAAA,MAAA,KAAA,GAAA8D,EAAA/D,KAAA,GAAA+D,EAAAS,GAAAT,EAAA,MAAA,GAEpCU,QAAQC,MAAYX,EAAAS,IAAC,KAAA,GAGvBb,IAAY,KAAA,GAGuC,GAA/CG,EAAiBlC,EAAaH,EAAKlF,EAASX,IAE/B,CAAAmI,EAAA9D,KAAA,GAAA,KAAA,CAAA,MACX,IAAI0E,MAAM,uDAAsD,KAAA,GAAA,OAAAZ,EAAA/C,OAAA,SAAAb,EAAAA,EAAA,CAAA,EAI5D2D,GAAc,GAAA,CAAEE,SAAUN,KAAc,KAAA,GAAA,IAAA,MAAA,OAAAK,EAAA9C,OAAA,GAAA2D,EAAA,KAAA,CAAA,CAAA,EAAA,KACrD,KAAA,OAAA,SAvCkCC,EAAAC,EAAAC,GAAA,OAAA1B,EAAAhC,MAAAC,KAAAC,UAAA,CAAA,CAAA,GAyCtByD,EAAwB,WAAA,IAAGC,EAAAjG,EAAAC,EAAAC,MAAA,SAAAgG,EACtCzD,EACAQ,GAA0B,IAAAkD,EAAAC,EAAAzD,EAAAD,EAAA2D,EAAAC,EAAAC,EAAA,OAAAtG,EAAAa,MAAA,SAAA0F,GAAA,OAAA,OAAAA,EAAAxF,KAAAwF,EAAAvF,MAAA,KAAA,EAMhB,GANgBkF,EAOtB1D,IAJO2D,EAATK,EAAAA,MAASL,mBACTzD,EAAAA,EAAAA,gBACAD,EAAeyD,EAAfzD,gBACA2D,IAAAA,UAGED,EAAkB,CAAAI,EAAAvF,KAAA,GAAA,KAAA,CAaF,GAZZqF,EAAmBF,EAAkB,GAAA9C,OAAAC,EAAKZ,GAAeY,EAAKb,IAAkB,CACpFgE,uBAAmB1J,EACnB2J,sBAAkB3J,EAClB4J,MAAO,mBAGT3D,GAAI,WAAA,MAAO,CACTyD,kBAAmBJ,aAAAA,EAAAA,EAAkB1J,GACrC+J,sBAAkB3J,EACnB,IAAGwJ,EAAArB,GAGFmB,GAAgBE,EAAArB,GAAA,CAAAqB,EAAAvF,KAAA,EAAA,KAAA,CAAA,OAAAuF,EAAAvF,KAAA,EAAWmD,EAAuB3B,EAAKQ,EAAKqD,GAAiB,KAAA,EAAAE,EAAArB,GAAAqB,EAAA7E,KAAA,KAAA,EADzE4E,EAAYC,EAAArB,GAGlBkB,SAAAA,EAAWE,EAAc,kBAAkB,KAAA,GAAA,IAAA,MAAA,OAAAC,EAAAvE,OAAA,GAAAiE,EAE9C,KAAA,OAAA,SA5BoCW,EAAAC,GAAA,OAAAb,EAAA5D,MAAAC,KAAAC,UAAA,CAAA,CAAA,GA8BxBwE,EAAyB,SACpCtE,EACAQ,EACA+D,GAEA,IAAAC,EAA8DxE,IAAtDiE,IAAAA,kBAAoCQ,IAAjBxE,gBAErByE,EACoB,iBAAjBH,EAA4BpE,EAAaH,EAAKuE,GAAgBA,EAEvE,GAAIG,EAAkB,CACpB,IAAMzE,EAAkBwE,EAAczD,QAAO,SAAA2D,GAAK,SAAFxK,KAAgBuK,EAAiBvK,MASjF,OAFAqG,EAJEkE,EAAiBvK,KAAO8J,EACpB,CAAEhE,gBAAAA,EAAiBgE,uBAAmB1J,EAAW2J,sBAAkB3J,GACnE,CAAE0F,gBAAAA,IAIDyE,CACT,CAGF,EAOaE,EAAe,WAAA,IAAGC,EAAAtH,EAAAC,EAAAC,MAAA,SAAAqH,EAC7B9E,EACAQ,EACA/B,EACAsG,EACAtE,GAAc,IAAAuE,EAAAC,EAAAhF,EAAAiF,EAAA,OAAA1H,EAAAa,MAAA,SAAA8G,GAAA,OAAA,OAAAA,EAAA5G,KAAA4G,EAAA3G,MAAA,KAAA,EAAA,GAETC,EAAItC,OAAM,CAAAgJ,EAAA3G,KAAA,EAAA,KAAA,CAAA,OAAA2G,EAAA5F,OAAA,SACN,IAAE,KAAA,EA2Bc,OAxBnByF,EAAiB,SAAClK,GAAqB,MACrB,mBAAfiK,EAA4BA,EAAWjK,GAAYiK,CAAU,EAAAE,EAEtBjF,IAAMC,gBAAgBzE,QAIpE,SAACvB,EAAKa,GACJ,IACMsK,EADY3G,EAAInE,SAASQ,EAASX,IACR6K,EAAelK,QAAYP,EACrD8K,EAAcD,EAAW1G,EAAAA,EAAA,CAAA,EAAQ5D,GAAasK,GAAgBtK,EAEpE,OAAA4D,EAAAA,EAAA,CAAA,EACKzE,GAAG,CAAA,EAAA,CACNgG,4BAAqBhG,EAAIgG,iBAAe,CAAEoF,IAC1CH,mBACKjL,EAAAA,EAAAA,CAAAA,EAAAA,EAAIiL,oBACHE,EAAWpM,EAAA,CAAA,EAAM8B,EAASX,GAAKiL,GAAgB,CAAA,IAGzD,GACA,CAAEnF,gBAAiB,GAAIiF,mBAAoB,CAAC,IAlBtCjF,EAAegF,EAAfhF,gBAAiBiF,IAAAA,mBAqBzB1E,EAAI,CAAEP,gBAAAA,IAECpB,EAAAA,OAAAA,SAAAA,QAAQC,IACbrC,OAAO6I,QAAQJ,GAAoBvG,IAAG,WAAA,IAAC4G,EAAAhI,EAAAC,EAAAC,MAAA,SAAA+H,EAAAC,GAAA,IAAAC,EAAAvL,EAAAiL,EAAAlD,EAAA3G,EAAA,OAAAiC,EAAAa,MAAA,SAAAsH,GAAA,OAAA,OAAAA,EAAApH,KAAAoH,EAAAnH,MAAA,KAAA,EAKf,OALekH,EAAQvL,EAAAA,EAAAA,GAAAA,OAAIiL,EAAWM,EAAA,GACtDxD,EAAY3B,EAAQC,EAAKoF,OAAOzL,GAAKsG,GAAOkF,EAAApH,KAAA,EAAAoH,EAAAjD,GAIzCnK,EAAaoN,EAAAnH,KAAA,EACZqH,EAAyB7F,IAAM4C,OAAQzI,EAAIiL,GAAqB,KAAA,EAAAO,EAAA9C,GAAA8C,EAAAzG,KADxE3D,OAAqB6D,YAAW0D,KAAA6C,EAAAjD,GAAAiD,EAAA9C,IAAA8C,EAAAnH,KAAA,GAAA,MAAA,KAAA,GAAAmH,EAAApH,KAAA,GAAAoH,EAAA5C,GAAA4C,EAAA,MAAA,GAIhC3C,QAAQC,MAAQ0C,EAAA5C,IAAC,KAAA,GAEL,OAFK4C,EAAApH,KAAA,GAEjB2D,IAAYyD,EAAAG,OAAA,IAAA,KAAA,GAAA,OAAAH,EAAApG,OAAA,SAGPhE,GAAI,KAAA,GAAA,IAAA,MAAA,OAAAoK,EAAAnG,OAAA,GAAAgG,EAAA,KAAA,CAAA,CAAA,EAAA,GAAA,GAAA,KACZ,KAAA,OAAA,SAAAO,GAAA,OAAAR,EAAA3F,MAAAC,KAAAC,UAAA,CAAA,CAfqC,MAgBvC,KAAA,EAAA,IAAA,MAAA,OAAAqF,EAAA3F,OAAA,GAAAsF,EACF,KAAA,OAAA,SAvD2BkB,EAAAC,EAAAC,EAAAC,EAAAC,GAAA,OAAAvB,EAAAjF,MAAAC,KAAAC,UAAA,CAAA,CAAA,GAyDfuG,EAAc,WAAA,IAAGC,EAAA/I,EAAAC,EAAAC,MAAA,SAAA8I,EAC5BvG,EACAQ,EACArG,EACA4K,EACAtE,GAAc,IAAAlF,EAAA,OAAAiC,EAAAa,MAAA,SAAAmI,GAAA,OAAA,OAAAA,EAAAjI,KAAAiI,EAAAhI,MAAA,KAAA,EAAA,QAEHjE,IAAPJ,EAAgB,CAAAqM,EAAAhI,KAAA,EAAA,KAAA,CAAA,OAAAgI,EAAAjH,OAAA,cACXhF,GAAS,KAAA,EAAA,OAAAiM,EAAAhI,KAAA,EAGCoG,EAAmB5E,EAAKQ,EAAK,CAACrG,GAAK4K,EAAYtE,GAAO,KAAA,EAA/D,OAAJlF,EAAIiL,EAAAtH,KACH3D,EAAAA,OAAAA,SAAAA,EAAK,IAAE,KAAA,EAAA,IAAA,MAAA,OAAAiL,EAAAhH,OAAA,GAAA+G,EACf,KAAA,OAAA,SAb0BE,EAAAC,EAAAC,EAAAC,EAAAC,GAAA,OAAAP,EAAA1G,MAAAC,KAAAC,UAAA,CAAA,CAAA,GAedgH,EAAW,WAAA,IAAAC,EAAAxJ,EAAAC,EAAAC,MAAG,SACzBuC,EAAAA,EACAQ,EACA1F,GAA6D,IAAAuK,EAAA,OAAA7H,EAAAa,MAAA,SAAA2I,GAAA,OAAA,OAAAA,EAAAzI,KAAAyI,EAAAxI,MAAA,KAAA,EAE5B,OAF4BwI,EAAAtE,GAEzCnK,EAAayO,EAAAxI,KAAA,EACzByI,EAAwBjH,IAAM4C,OAAQ,CAC1ChJ,KAAMkB,EAASlB,KACf2I,SAAUzH,EAASyH,SACnB9G,SAAUX,EAASW,WACnB,KAAA,EAGmF,OAHnFuL,EAAAnE,GAAAmE,EAAA9H,KALEmG,OAA4BjG,YAAW0D,KAAAkE,EAAAtE,GAAAsE,EAAAnE,IAQ7CrC,GAAI,SAAA0G,GAAA,IAAGjH,IAAAA,gBAAe,MAAQ,CAAEA,gBAAe,GAAAY,OAAAC,EAAMb,GAAe,CAAEoF,IAAc,IAAG2B,EAAAzH,OAAA,SAEhF8F,GAAW,KAAA,EAAA,IAAA,MAAA,OAAA2B,EAAAxH,OAAA,GAAA2H,EACnB,KAAA,OAAA,SAhBuBC,EAAAC,EAAAC,GAAA,OAAAP,EAAAnH,MAAAC,KAAAC,UAAA,CAAA,CAAA,GAkBXyH,EAAsB,WAAA,IAAGC,EAAAjK,EAAAC,EAAAC,MAAA,SAAAgK,EACpCzH,EACA9E,GAAwB,IAAAwM,EAAA7J,EAAA8J,EAAA/J,EAAAD,EAAAG,EAAAC,EAAAkC,EAAA2H,EAAAC,EAAAxM,EAAAC,EAAA,OAAAkC,EAAAa,MAAA,SAAAyJ,GAAA,OAAA,OAAAA,EAAAvJ,KAAAuJ,EAAAtJ,MAAA,KAAA,EAsBxB,GAtBwBkJ,EAOpB1H,IAJFnC,EAAAA,EAAAA,eACS8J,EAAsBD,EAA/B1D,MAAS2D,uBACT/J,EAAW8J,EAAX9J,YACAD,IAAAA,YAEMG,EAAeF,EAAfE,WACAC,EAAUJ,EAAVI,MAEFkC,EAAkBnC,EACpB5C,EACAA,EAAU8F,QAAO,SAAAlG,GACf,IAA4DA,EAAAA,EAApDW,SAARsM,GAAAC,OAAA,IAAAA,EAAqD,CAAA,EAAEA,GAAnC5L,WAAAA,aAAa,GAAE2L,EAAAE,EAAAD,EAAE9L,OAAAA,aAAS,GAAE+L,EAC1CC,EAA8C,IAAtB9L,EAAWD,QAAkC,IAAlBD,EAAOC,OAC1DgM,IAAkBC,EAAahM,EAAYyB,GAAgB1B,OAC3DkM,IAActK,GAAS7B,EAAO5B,SAASyD,GAE7C,OAAOmK,GAAyBC,GAAiBE,GAAaC,EAAcxN,EAC9E,KAGsB6M,EAAsB,CAAAG,EAAAtJ,KAAA,GAAA,KAAA,CAAA,OAAAsJ,EAAAtJ,KAAA,EACtCmJ,EAAuB1H,GAAgB,KAAA,EAAA6H,EAAApF,GAAAoF,EAAA5I,KAAA4I,EAAAtJ,KAAA,GAAA,MAAA,KAAA,GAAAsJ,EAAApF,GAC7CzC,EAAe,KAAA,GAFI,OAAjB2H,EAAiBE,EAAApF,GAAAoF,EAAAtJ,KAAA,GAKwBnB,EAAuBuK,EAAmB,CACvFjK,YAAAA,EACAC,YAAAA,EACAC,eAAAA,IACA,KAAA,GAJkC,OAIlCgK,EAAAC,EAAA5I,KAJM7D,IAAAA,YAAaC,IAAAA,gBAMdwM,EAAAvI,OAAA,SAAA,CACLU,gBAAiB2H,EACjBvM,YAAAA,EACAC,gBAAAA,IACD,KAAA,GAAA,IAAA,MAAA,OAAAwM,EAAAtI,OAAA,GAAAiI,EACF,KAAA,OAAA,SAzCkCc,EAAAC,GAAA,OAAAhB,EAAA5H,MAAAC,KAAAC,UAAA,CAAA,CAAA"}
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../src/componentsV2/TemplatesControl/Store/utils.ts"],"sourcesContent":["import Jsona from 'jsona';\nimport { intersection } from 'lodash';\n\nimport {\n getFolderId,\n getTemplateFolder,\n isFolder,\n isOwnTemplate,\n isTemplateInFolder,\n} from '../utils';\nimport {\n Action,\n FolderType,\n Store,\n Template,\n TemplateData,\n TreeFolder,\n TreeNode,\n ZustandStoreGetter,\n ZustandStoreSetter,\n} from '../types';\n\nimport {\n getAppSettingsTemplate,\n getPrograms,\n getRigs,\n patchAppSettingsTemplate,\n postAppSettingsTemplate,\n} from '~/clients/jsonApi';\n\nexport const dataFormatter = new Jsona();\n\ntype Tree = {\n /**\n * Map of all folders for easy access\n */\n folders: Record<string, TreeFolder>;\n /**\n * Actual tree\n */\n tree: TreeNode[];\n /**\n * Template path map: templateId to array of folder ids in which this template is\n */\n pathMap: Record<string, string[]>;\n};\n\nconst SubFolderTypes = [FolderType.Rig, FolderType.Program];\n\nconst FoldersOrderMap: Record<FolderType, number> = {\n [FolderType.Company]: 0,\n [FolderType.Preset]: 1,\n [FolderType.Shared]: 2,\n\n [FolderType.Rig]: 3,\n [FolderType.Program]: 4,\n [FolderType.FracFleet]: 5,\n [FolderType.Pad]: 6,\n\n [FolderType.Regular]: 7,\n};\n\nconst sortNodes = (a: TreeNode, b: TreeNode) => {\n if (isFolder(a) && isFolder(b)) {\n return (\n FoldersOrderMap[a.type] - FoldersOrderMap[b.type] || a.name?.localeCompare(b?.name || '') || 0\n );\n }\n\n // Folder first\n if (isFolder(a)) {\n return -1;\n }\n\n // Templates second\n if (isFolder(b)) {\n return 1;\n }\n\n return a.name.localeCompare(b.name);\n};\n\nconst companyFolderId = getFolderId(FolderType.Company);\n\nconst mutatingEnsureFolder = (\n acc: Omit<Tree, 'pathMap'>,\n { id, type, name, entityId }: Omit<TreeFolder, 'items'>\n) => {\n const isSubFolder = SubFolderTypes.includes(type);\n\n const parentFolder = isSubFolder\n ? mutatingEnsureFolder(acc, {\n id: getFolderId(FolderType.Company),\n type: FolderType.Company,\n })\n : undefined;\n\n if (!acc.folders[id]) {\n const newFolder: TreeFolder = {\n id,\n type,\n name,\n items: [],\n entityId,\n };\n\n acc.folders[id] = newFolder;\n\n if (parentFolder) {\n parentFolder.items.push(newFolder);\n } else {\n acc.tree.push(newFolder);\n }\n }\n\n return acc.folders[id];\n};\n\nconst mutatingAddFolderPath = (acc: Tree, template: Template, folder: TreeFolder) => {\n if (!acc.pathMap[template.id]) {\n acc.pathMap[template.id] = [];\n }\n acc.pathMap[template.id].push(folder.id);\n};\n\ntype CreateTreeOptions = {\n foldersEnabled: boolean;\n rigsDataMap: Record<string, string>;\n programsDataMap: Record<string, string>;\n};\n\nexport const createTree = (\n templates: Template[],\n { foldersEnabled, rigsDataMap, programsDataMap }: CreateTreeOptions\n) => {\n const data = templates.reduce<Tree>(\n // ⚠️⚠️⚠️ WARNING!!! ⚠️⚠️⚠️\n // Lots of mutations of accumulator, be careful\n (acc, template) => {\n const { metadata } = template;\n\n // Template is preset\n if (template.isPreset) {\n const folder = mutatingEnsureFolder(acc, {\n id: getFolderId(FolderType.Preset),\n type: FolderType.Preset,\n });\n folder.items.push(template);\n mutatingAddFolderPath(acc, template, folder);\n }\n // Template is shared\n else if (template.shared) {\n const folder = mutatingEnsureFolder(acc, {\n id: getFolderId(FolderType.Shared),\n type: FolderType.Shared,\n });\n folder.items.push(template);\n mutatingAddFolderPath(acc, template, folder);\n }\n // Template is published by company admins\n else if (template.published) {\n const companyFolder = mutatingEnsureFolder(acc, {\n id: companyFolderId,\n type: FolderType.Company,\n });\n mutatingAddFolderPath(acc, template, companyFolder);\n\n // Template is published but not assigned to any entity\n if (!metadata?.rigIds?.length && !metadata?.programIds?.length) {\n companyFolder.items.push(template);\n } else {\n // Template is assigned to some rigs\n if (metadata?.rigIds?.length) {\n metadata.rigIds.forEach(entityId => {\n const name = rigsDataMap[entityId];\n if (name) {\n const folder = mutatingEnsureFolder(acc, {\n id: getFolderId(FolderType.Rig, entityId),\n type: FolderType.Rig,\n entityId,\n name,\n });\n folder.items.push(template);\n mutatingAddFolderPath(acc, template, folder);\n }\n });\n }\n\n // Template is assigned to some programs\n if (metadata?.programIds?.length) {\n metadata.programIds.forEach(entityId => {\n const name = programsDataMap[entityId];\n if (name) {\n const folder = mutatingEnsureFolder(acc, {\n id: getFolderId(FolderType.Program, entityId),\n type: FolderType.Program,\n entityId,\n name,\n });\n folder.items.push(template);\n mutatingAddFolderPath(acc, template, folder);\n }\n });\n }\n }\n }\n // Template in user's folder\n else if (isTemplateInFolder(template) && foldersEnabled) {\n const folderName = getTemplateFolder(template);\n const folder = mutatingEnsureFolder(acc, {\n id: getFolderId(FolderType.Regular, folderName),\n name: folderName,\n type: FolderType.Regular,\n });\n folder.items.push(template);\n mutatingAddFolderPath(acc, template, folder);\n }\n // Template not in folder\n else {\n acc.tree.push(template);\n }\n\n return acc;\n },\n { folders: {}, tree: [], pathMap: {} }\n );\n\n // Sorting items in all folders\n Object.values(data.folders).forEach(folder => folder.items.sort(sortNodes));\n\n // Sorting root level\n data.tree.sort(sortNodes);\n\n return data;\n};\n\nexport const getFolders = (templates: Template[]) => {\n const { folders } = templates.reduce<Omit<Tree, 'pathMap'>>(\n (acc, template) => {\n if (isTemplateInFolder(template)) {\n const folder = getTemplateFolder(template);\n mutatingEnsureFolder(acc, {\n id: getFolderId(FolderType.Regular, folder),\n name: folder,\n type: FolderType.Regular,\n }).items.push(template);\n }\n\n return acc;\n },\n { folders: {}, tree: [] }\n );\n\n return Object.values(folders).toSorted(sortNodes);\n};\n\nexport const AssetsFieldsMap = {\n rig: ['rig.name'],\n program: ['program.name'],\n frac_fleet: ['frac_fleet.name'],\n well: ['well.name'],\n pad: ['pad.name'],\n intervention_unit: ['intervention_unit.name'],\n};\n\ntype LoadAdditionalDataMapsOptions = {\n permissions: Store['permissions'];\n appEntities: Store['appEntities'];\n userProgramIds: Store['userProgramIds'];\n};\n\nexport const loadAdditionalData = async ({\n rigIds,\n programIds,\n}: {\n rigIds: (string | number)[];\n programIds: (string | number)[];\n}) => {\n const entityRawData = await Promise.all([\n rigIds.length ? getRigs({ ids: rigIds, fields: AssetsFieldsMap.rig }) : {},\n programIds.length ? getPrograms({ ids: programIds, fields: AssetsFieldsMap.program }) : {},\n ]);\n const [rigsDataMap = {}, programsDataMap = {}] = entityRawData.map(data =>\n (dataFormatter.deserialize(data) as { id: string; name: string }[] | undefined)?.reduce(\n (acc, { id, name }) => ({ ...acc, [id]: name }),\n {} as Record<string, string>\n )\n );\n\n return { rigsDataMap, programsDataMap };\n};\n\nexport const loadAdditionalDataMaps = async (\n templates: Template[],\n { appEntities, permissions, userProgramIds }: LoadAdditionalDataMapsOptions\n) => {\n const { canPublish } = permissions;\n const { rigId } = appEntities;\n\n // Loading publish entities\n const createMap = (ids?: number[]) => (ids || []).reduce((acc, id) => ({ ...acc, [id]: id }), {});\n\n const { rigIds, programIds } = canPublish\n ? templates\n .map(({ metadata, published }) => {\n if (published && metadata) {\n return metadata;\n }\n return undefined;\n })\n .reduce<{\n rigIds: Record<string, number>;\n programIds: Record<string, number>;\n }>(\n (acc, metadata) => ({\n ...acc,\n rigIds: { ...acc.rigIds, ...createMap(metadata?.rigIds) },\n programIds: { ...acc.programIds, ...createMap(metadata?.programIds) },\n }),\n { rigIds: {}, programIds: {} }\n )\n : {\n rigIds: rigId ? { [rigId]: rigId } : {},\n programIds: userProgramIds.reduce<Record<string, string>>(\n (acc, id) => ({ ...acc, [id]: id }),\n {}\n ),\n };\n\n return loadAdditionalData({\n programIds: Object.values(programIds),\n rigIds: Object.values(rigIds),\n });\n};\n\nexport const getAllTemplates = <T extends TemplateData>(get: ZustandStoreGetter<T>) => [\n ...get().loadedTemplates,\n ...get().presetTemplates,\n];\n\nexport const findTemplate = <T extends TemplateData>(\n get: ZustandStoreGetter<T>,\n templateId?: number\n) => {\n if (templateId === undefined) {\n return undefined;\n }\n\n return getAllTemplates(get).find(({ id }) => templateId === id);\n};\n\nexport const setBusy = <T extends TemplateData>(\n set: ZustandStoreSetter<T>,\n id?: number | string,\n action?: Action\n) => {\n if (id === undefined || action === undefined) {\n return () => {};\n }\n\n const newAction = { id, action };\n\n set(({ currentActions }) => ({ currentActions: [...currentActions, newAction] }));\n\n return () => {\n set(({ currentActions }) => ({\n currentActions: currentActions.filter(action => action !== newAction),\n }));\n };\n};\n\nexport const getUpdatedTemplates = <T extends TemplateData>(\n get: ZustandStoreGetter<T>,\n templateId: number | undefined,\n update: Partial<Template<T>>\n) => {\n const { loadedTemplates } = get();\n return templateId === undefined\n ? loadedTemplates\n : loadedTemplates.map(item => {\n if (item.id === templateId) {\n return { ...item, ...update };\n }\n\n return item;\n });\n};\n\nexport const findTemplateOverride = <T extends TemplateData>(\n loadedTemplates: Template<T>[],\n templateId?: number\n) => {\n if (templateId === undefined) {\n return undefined;\n }\n\n // This may slow us down, needs verification. If it does - refactor to maps in store\n return loadedTemplates.find(\n loadedTemplate =>\n loadedTemplate.metadata?.isPresetOverride &&\n loadedTemplate.metadata?.parentTemplateId === templateId\n );\n};\n\nexport const getTemplateOverride = <T extends TemplateData>(\n get: ZustandStoreGetter<T>,\n template?: Template<T>\n) => {\n if (!template || !template.isPreset) {\n return undefined;\n }\n\n return findTemplateOverride(get().loadedTemplates, template.id);\n};\n\nexport const ensureTemplateSettings = async <T extends TemplateData>(\n get: ZustandStoreGetter<T>,\n set: ZustandStoreSetter<T>,\n template: Template<T>\n) => {\n const override = getTemplateOverride(get, template);\n\n const { settings: existingSettings, id: templateIdToLoad } = override || template;\n let actualSettings = existingSettings;\n\n if (!existingSettings) {\n const clearBusy = setBusy(set, template.id, Action.LoadData);\n try {\n const { settings: settingsFromServer } = dataFormatter.deserialize(\n await getAppSettingsTemplate(get().appKey, templateIdToLoad)\n ) as Template<T>;\n\n set({\n loadedTemplates: getUpdatedTemplates<T>(get, templateIdToLoad, {\n settings: settingsFromServer,\n }),\n });\n\n actualSettings = settingsFromServer;\n } catch (error) {\n console.error(error);\n }\n\n clearBusy();\n }\n\n const resultTemplate = findTemplate(get, template.id);\n\n if (!resultTemplate) {\n throw new Error('ensureTemplateSettings: Template not found in list!');\n }\n\n // For preset overrides - we return the settings of the override\n return { ...resultTemplate, settings: actualSettings };\n};\n\nexport const selectTemplateOnDeletion = async <T extends TemplateData>(\n get: ZustandStoreGetter<T>,\n set: ZustandStoreSetter<T>\n) => {\n const {\n hooks: { getDefaultTemplate },\n presetTemplates,\n loadedTemplates,\n onChange,\n } = get();\n\n if (getDefaultTemplate) {\n const selectedTemplate = getDefaultTemplate([...presetTemplates, ...loadedTemplates], {\n currentTemplateId: undefined,\n templateSettings: undefined,\n event: 'deleteTemplate',\n });\n\n set(() => ({\n currentTemplateId: selectedTemplate?.id,\n templateSettings: undefined,\n }));\n\n const withSettings =\n selectedTemplate && (await ensureTemplateSettings(get, set, selectedTemplate));\n\n onChange?.(withSettings, 'deleteTemplate');\n }\n};\n\nexport const removeTemplateFromList = <T extends TemplateData>(\n get: ZustandStoreGetter<T>,\n set: ZustandStoreSetter<T>,\n templateOrId?: number | Template<T>\n) => {\n const { currentTemplateId, loadedTemplates: prevTemplates } = get();\n\n const templateToDelete =\n typeof templateOrId === 'number' ? findTemplate(get, templateOrId) : templateOrId;\n\n if (templateToDelete) {\n const loadedTemplates = prevTemplates.filter(({ id }) => id !== templateToDelete.id);\n\n const update: Partial<Store<T>> =\n templateToDelete.id === currentTemplateId\n ? { loadedTemplates, currentTemplateId: undefined, templateSettings: undefined }\n : { loadedTemplates };\n\n set(update);\n\n return templateToDelete;\n }\n\n return undefined;\n};\n\n/**\n * Updates templates\n *\n * @return Template[] of updated templates in arbitrary order\n */\nexport const updateTemplates = async <T extends TemplateData>(\n get: ZustandStoreGetter<T>,\n set: ZustandStoreSetter<T>,\n ids: number[],\n updateOrFn: Partial<Template<T>> | ((template: Template<T>) => Partial<Template<T>>),\n action: Action\n) => {\n if (!ids.length) {\n return [];\n }\n\n const getUpdateValue = (template: Template<T>) =>\n typeof updateOrFn === 'function' ? updateOrFn(template) : updateOrFn;\n\n const { loadedTemplates, templateUpdatesMap } = get().loadedTemplates.reduce<{\n loadedTemplates: Template<T>[]; // New loadedTemplates\n templateUpdatesMap: Record<string, Partial<Template>>; // Template updates\n }>(\n (acc, template) => {\n const isChanged = ids.includes(template.id);\n const updateValue = isChanged ? getUpdateValue(template) : undefined;\n const newTemplate = updateValue ? { ...template, ...updateValue } : template;\n\n return {\n ...acc,\n loadedTemplates: [...acc.loadedTemplates, newTemplate],\n templateUpdatesMap: {\n ...acc.templateUpdatesMap,\n ...(updateValue ? { [template.id]: updateValue } : {}),\n },\n };\n },\n { loadedTemplates: [], templateUpdatesMap: {} }\n );\n\n set({ loadedTemplates });\n\n return Promise.all(\n Object.entries(templateUpdatesMap).map(async ([id, updateValue]) => {\n const clearBusy = setBusy(set, Number(id), action);\n let data: Template<T> | undefined;\n\n try {\n data = dataFormatter.deserialize(\n await patchAppSettingsTemplate(get().appKey, id, updateValue as never)\n ) as Template<T>;\n } catch (e) {\n console.error(e);\n } finally {\n clearBusy();\n }\n\n return data;\n })\n );\n};\n\nexport const updateTemplate = async <T extends TemplateData>(\n get: ZustandStoreGetter<T>,\n set: ZustandStoreSetter<T>,\n id: number | undefined,\n updateOrFn: Partial<Template<T>> | ((template: Template<T>) => Partial<Template<T>>),\n action: Action\n) => {\n if (id === undefined) {\n return undefined;\n }\n\n const data = await updateTemplates<T>(get, set, [id], updateOrFn, action);\n return data[0];\n};\n\nexport const addTemplate = async <T extends TemplateData>(\n get: ZustandStoreGetter<T>,\n set: ZustandStoreSetter<T>,\n template: Pick<Template<T>, 'name' | 'settings' | 'metadata'>\n) => {\n const newTemplate = dataFormatter.deserialize(\n await postAppSettingsTemplate(get().appKey, {\n name: template.name,\n settings: template.settings,\n metadata: template.metadata,\n })\n ) as Template<T>;\n\n set(({ loadedTemplates }) => ({ loadedTemplates: [...loadedTemplates, newTemplate] }));\n\n return newTemplate;\n};\n\nexport const processLoadedTemplates = async <T extends TemplateData>(\n get: ZustandStoreGetter<T>,\n templates: Template<T>[]\n) => {\n const {\n userProgramIds,\n hooks: { filterInitialTemplates },\n permissions,\n appEntities,\n } = get();\n const { canPublish } = permissions;\n const { rigId } = appEntities;\n\n const loadedTemplates = canPublish\n ? templates\n : templates.filter(template => {\n const { metadata: { programIds = [], rigIds = [] } = {} } = template;\n const inNotAttachedToEntity = programIds.length === 0 && rigIds.length === 0;\n const isSameProgram = !!intersection(programIds, userProgramIds).length;\n const isSameRig = !!rigId && rigIds.includes(rigId);\n\n return inNotAttachedToEntity || isSameProgram || isSameRig || isOwnTemplate(template);\n });\n\n // Preprocessing templates\n const filteredTemplates = filterInitialTemplates\n ? await filterInitialTemplates(loadedTemplates)\n : loadedTemplates;\n\n // Loading publish entities\n const { rigsDataMap, programsDataMap } = await loadAdditionalDataMaps(filteredTemplates, {\n appEntities,\n permissions,\n userProgramIds,\n });\n\n return {\n loadedTemplates: filteredTemplates,\n rigsDataMap,\n programsDataMap,\n };\n};\n"],"names":["dataFormatter","Jsona","SubFolderTypes","FolderType","Rig","Program","FoldersOrderMap","Company","Preset","_defineProperty","_FoldersOrderMap","Shared","FracFleet","Pad","Regular","sortNodes","a","b","_a$name","isFolder","type","name","localeCompare","companyFolderId","getFolderId","mutatingEnsureFolder","acc","_ref","id","entityId","parentFolder","includes","undefined","folders","newFolder","items","push","tree","mutatingAddFolderPath","template","folder","pathMap","createTree","templates","_ref2","foldersEnabled","rigsDataMap","programsDataMap","data","reduce","metadata","isPreset","shared","published","_metadata$rigIds","_metadata$programIds","_metadata$rigIds2","_metadata$programIds2","companyFolder","rigIds","length","programIds","forEach","isTemplateInFolder","folderName","getTemplateFolder","Object","values","sort","getFolders","toSorted","AssetsFieldsMap","rig","program","frac_fleet","well","pad","intervention_unit","loadAdditionalData","_ref4","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref3","entityRawData","_entityRawData$map","_entityRawData$map2","_entityRawData$map2$","_entityRawData$map2$2","wrap","_context","prev","next","Promise","all","getRigs","ids","fields","getPrograms","sent","map","_dataFormatter$deseri","deserialize","_ref5","_objectSpread","_slicedToArray","abrupt","stop","_x","apply","this","arguments","loadAdditionalDataMaps","_ref7","_ref6","appEntities","permissions","userProgramIds","canPublish","rigId","createMap","_ref8","_context2","_ref9","_callee2","_x2","_x3","getAllTemplates","get","loadedTemplates","presetTemplates","findTemplate","templateId","find","_ref11","setBusy","set","action","newAction","_ref12","currentActions","concat","_toConsumableArray","_ref13","filter","getUpdatedTemplates","update","item","findTemplateOverride","loadedTemplate","_loadedTemplate$metad","_loadedTemplate$metad2","isPresetOverride","parentTemplateId","getTemplateOverride","ensureTemplateSettings","_ref14","override","_ref15","existingSettings","templateIdToLoad","actualSettings","clearBusy","_ref16","settingsFromServer","resultTemplate","_context3","settings","Action","LoadData","t0","getAppSettingsTemplate","appKey","t1","call","t2","console","error","Error","_callee3","_x4","_x5","_x6","selectTemplateOnDeletion","_ref17","_callee4","_get2","getDefaultTemplate","onChange","selectedTemplate","withSettings","_context4","hooks","currentTemplateId","templateSettings","event","_x7","_x8","removeTemplateFromList","templateOrId","_get3","prevTemplates","templateToDelete","_ref18","updateTemplates","_ref19","_callee6","updateOrFn","getUpdateValue","_get$loadedTemplates$","templateUpdatesMap","_context6","updateValue","newTemplate","entries","_ref22","_callee5","_ref21","_ref23","_context5","Number","patchAppSettingsTemplate","finish","_x14","_x9","_x10","_x11","_x12","_x13","updateTemplate","_ref24","_callee7","_context7","_x15","_x16","_x17","_x18","_x19","addTemplate","_ref25","_context8","postAppSettingsTemplate","_ref26","_callee8","_x20","_x21","_x22","processLoadedTemplates","_ref27","_callee9","_get4","filterInitialTemplates","filteredTemplates","_yield$loadAdditional","_context9","_template$metadata$pr","_template$metadata","_template$metadata$ri","inNotAttachedToEntity","isSameProgram","intersection","isSameRig","isOwnTemplate","_x23","_x24"],"mappings":"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"}
|
package/mcp-server/server.mjs
CHANGED