{"version":3,"file":"ActionWrapper.mjs","names":["makeStyles","Skeleton","useSnackbar","PropTypes","React","lazy","Suspense","useCallback","useEffect","useMemo","useState","useTranslation","ActionSplitScreen","ActionPanelPlacement","ActionModal","then","m","default","ActionSideSheet","apiMutate","getPathObject","getPrimaryKeyValues","getSuccessAction","LayoutUnit","toLowerFirstChar","useAxiosGet","useCrudForeignKeyData","useActionStore","useShellStore","usePromotedMethodEntity","getSanitizedName","getSearchObject","executeQueryAdHoc","ConfigService","useStyles","theme","FIELD_NUMBER","ActionWrapper","props","$","_c","actionState","actionPanel","dispatch","apiCatalogId","executeAction","splitScreenBody","entityAttributes","foreignKeyData","setForeignKeyData","crudTableEditionData","crudTableFormData","globalActions","classes","getFKData","enqueueSnackbar","closeSnackbar","t0","successAction","t","t1","Symbol","for","fkMethodEntities","setFKMethodEntities","loadingContent","setLoadingContent","t2","udpFieldInfos","setUdpFieldInfos","selectedNode","_temp","currentContainerId","_temp2","data","udpOjectFieldInfo","entityName","inquiryParams","properties","catalogReturnObject","t3","t4","integrationV1ApiUrl","config","UNITY_PRODUCT_ID","selectedEntity","t5","entityName_0","fieldInfos","unityBaseSearchMethod","apiMethodId","filterElements","searchField","searchOperator","searchValue","requestObj","resp","pageList","getMetaDataForUdpField","t6","unityBaseGetAllMethod","fetchEntityData","t7","defaultValue","variant","anchorOrigin","vertical","horizontal","showError","t8","attributes","fkData","attr","extendedProperties","childEntity","ceFieldsArr","Object","keys","childEntityAssoc","length","UdpType","Keys","forEach","value","i","name","split","push","idx","test","toLowerCase","ceAttr","find","p","cef","identifier","reference","method","resp_0","fkName","entity","getFKMethodEntities","t9","type","handleOnClose","t10","modal","action","data_0","unityBaseDeleteMethod","onDelete","t11","menuListState","value_0","entityName_1","primaryKeyValues","pathObject","pathParameters","data_1","response","catch","res","message","status","menuList","handleRemoveMenuItem","handleOnDelete","skeletonArr","i_0","skeleton","t12","t13","t14","t15","t16","setFieldInfos","response_0","t17","t18","actionPanels","t19","showInquiryHeaderActions","t20","t21","t22","t23","splitScreen","open","t24","t25","t26","params","t27","nodeObj","t28","t29","t30","selectedNodeParent","t31","refreshTree","t32","t33","sideSheet","actionId","t34","title","t35","propTypes","object","func","catalog","user","state","state_0"],"sources":["../../src/actions/ActionWrapper.jsx"],"sourcesContent":["import { makeStyles } from '@material-ui/core';\nimport { Skeleton } from '@material-ui/lab';\nimport { useSnackbar } from 'notistack';\nimport PropTypes from 'prop-types';\nimport React, { lazy, Suspense, useCallback, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ActionSplitScreen } from './ActionSplitScreen';\nimport { ActionPanelPlacement } from './ActionPanelPlacement';\n\n// Lazy-load action overlays (modal/sidesheet) — they only render when their\n// corresponding action is invoked, so they shouldn't sit in the Shell entry chunk.\n// Conditional render gates the chunk fetch on actual open state.\nconst ActionModal = lazy(() =>\n  import('./ActionModal').then((m) => ({ default: m.ActionModal })),\n);\nconst ActionSideSheet = lazy(() =>\n  import('./ActionSideSheet').then((m) => ({ default: m.ActionSideSheet })),\n);\nimport { apiMutate } from '../utilities/useAxiosMutate';\nimport {\n  getPathObject,\n  getPrimaryKeyValues,\n} from '../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { getSuccessAction } from '../UI/SuccessAction';\nimport { LayoutUnit } from '../layout/LayoutUnit';\nimport { toLowerFirstChar } from '../utilities/input/StringUtilities';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { useCrudForeignKeyData } from '../hooks/crudForeignKeyData';\nimport { useActionStore } from '../stores/actionStore';\nimport { useShellStore } from '../stores/shellStore';\nimport { usePromotedMethodEntity } from '../hooks/usePromotedMethodEntity';\nimport { getSanitizedName } from '../utilities/entities/entityUtilities';\nimport { getSearchObject } from '../utilities/search/SearchUtilities';\nimport { executeQueryAdHoc } from '../udp/utilities/methodUtils';\nimport { ConfigService } from '../configService';\n\nconst useStyles = makeStyles((theme) => ({}));\n\nconst FIELD_NUMBER = 10;\n\nexport const ActionWrapper = (props) => {\n  const {\n    actionState,\n    actionPanel,\n    dispatch,\n    apiCatalogId,\n    executeAction,\n    splitScreenBody,\n    entityAttributes,\n    foreignKeyData,\n    setForeignKeyData,\n    crudTableEditionData,\n    crudTableFormData,\n    globalActions,\n  } = props;\n  const classes = useStyles();\n\n  const { getFKData } = useCrudForeignKeyData();\n\n  const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n  const successAction = getSuccessAction(closeSnackbar);\n  const { t } = useTranslation();\n  const [fkMethodEntities, setFKMethodEntities] = useState([]);\n  const [loadingContent, setLoadingContent] = useState(true);\n  const [udpFieldInfos, setUdpFieldInfos] = useState([]);\n\n  const selectedNode = useActionStore((state) => state.selectedNode);\n  const currentContainerId = useShellStore((state) => state.currentContainerId);\n\n  const { data: udpOjectFieldInfo } = usePromotedMethodEntity('UdpObjectFieldInfo', true);\n\n  const entityName = useMemo(() => {\n    return actionPanel\n      ? actionPanel.entityName\n      : actionState?.inquiryParams[currentContainerId || 0]?.selectedNode?.properties\n          ?.catalogReturnObject;\n  }, [actionPanel, actionState, currentContainerId]);\n\n  const [{ data: selectedEntity }] = useAxiosGet(\n    ConfigService.integrationV1ApiUrl,\n    `apicatalog/${apiCatalogId}/promotedMethodEntities/${entityName}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n    {},\n    !!!apiCatalogId || !!!entityName,\n    false\n  );\n\n  const getMetaDataForUdpField = useCallback(\n    async (entityName) => {\n      let fieldInfos = [];\n      if (udpOjectFieldInfo?.unityBaseSearchMethod?.apiMethodId) {\n        const filterElements = [\n          {\n            searchField: 'ObjectInfo.SanitizedName',\n            searchOperator: '=',\n            searchValue: getSanitizedName(entityName),\n          },\n        ];\n        const requestObj = getSearchObject(filterElements, 1, 50, true);\n\n        await executeQueryAdHoc(\n          { data: requestObj },\n          udpOjectFieldInfo.unityBaseSearchMethod.apiMethodId\n        ).then((resp) => {\n          fieldInfos = resp.data?.pageList;\n        });\n      }\n      return fieldInfos;\n    },\n    [udpOjectFieldInfo]\n  );\n\n  const fetchEntityData = useCallback(\n    async (data) => {\n      if (selectedEntity?.unityBaseGetAllMethod)\n        return await executeAction(data, selectedEntity.unityBaseGetAllMethod.apiMethodId);\n    },\n    [executeAction, selectedEntity]\n  );\n\n  const showError = useCallback(() => {\n    enqueueSnackbar(\n      t('actions.errors.invalidActionValue', {\n        defaultValue: 'Invalid action value.'\n      }),\n      {\n        variant: 'error',\n        anchorOrigin: {\n          vertical: 'top',\n          horizontal: 'center',\n        },\n      }\n    );\n  }, [enqueueSnackbar, t]);\n\n  const getFKMethodEntities = useCallback(\n    async (attributes) => {\n      if (!attributes || !apiCatalogId) {\n        return [];\n      }\n      let fkData = [];\n\n      for (const attr of attributes) {\n        // check if there is a property with this childEntity\n        if (attr?.extendedProperties?.childEntity) {\n          // get the list of child entity field names from the Keys array\n          const ceFieldsArr = [];\n          if (\n            Object.keys(attr.extendedProperties.childEntityAssoc || {}).length &&\n            !attr.extendedProperties.childEntityAssoc.UdpType\n          ) {\n            attr.extendedProperties.childEntityAssoc.Keys.forEach((value, i) => {\n              const name = value.split(',')[0];\n              if (name) {\n                // check name string: if 1 word, lowercase. if 2 words, lower first char\n                ceFieldsArr.push({\n                  idx: i,\n                  name: /^[A-Z]*$/.test(name) ? name.toLowerCase() : toLowerFirstChar(name),\n                });\n              }\n            });\n          }\n\n          // find the child entity attribute\n          const ceAttr = attributes.find((p) =>\n            ceFieldsArr.find((cef) => cef.name === p.name && !p?.extendedProperties?.identifier)\n          );\n\n          if (ceAttr) {\n            // get list of entity if ceProp exists\n            await apiMutate(\n              ConfigService.integrationV1ApiUrl,\n              `apicatalog/${apiCatalogId}/promotedMethodEntities/${attr.reference}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n              {\n                method: 'get',\n              },\n              {}\n            ).then((resp) => {\n              if (resp && resp.data) {\n                fkData.push({ fkName: ceAttr.name, entity: resp.data });\n              }\n            });\n          }\n        }\n      }\n      setFKMethodEntities(fkData);\n    },\n    [apiCatalogId]\n  );\n\n  const handleOnClose = useCallback(\n    (type, entity) => {\n      dispatch({ type: type, entity });\n    },\n    [dispatch]\n  );\n\n  const onDelete = useCallback(\n    async (data) => {\n      if (selectedEntity?.unityBaseDeleteMethod) {\n        if (\n          selectedEntity.unityBaseDeleteMethod.apiMethodId === actionState?.modal?.action?.value\n        ) {\n          return await executeAction(data, actionState?.modal?.action?.value);\n        } else {\n          showError();\n        }\n      }\n    },\n    [actionState, executeAction, selectedEntity, showError]\n  );\n\n  const handleOnDelete = useCallback(\n    async (value) => {\n      if (selectedEntity) {\n        const entityName = selectedEntity?.entityName;\n\n        // Get primary key value object using path parameters and merge with data\n        const primaryKeyValues = getPrimaryKeyValues(entityAttributes, value);\n        const pathObject = getPathObject(\n          selectedEntity?.unityBaseDeleteMethod.pathParameters,\n          primaryKeyValues\n        );\n\n        if (selectedEntity?.unityBaseDeleteMethod) {\n          const data = { ...pathObject };\n          const response = await onDelete({ data }).catch((res) => {\n            enqueueSnackbar(res.message, {\n              variant: 'error',\n              anchorOrigin: {\n                vertical: 'top',\n                horizontal: 'center',\n              },\n            });\n          });\n\n          if (response?.status === 200) {\n            enqueueSnackbar(\n              entityName\n                ? t('actions.snackbar.entityDeleted', {\n                    defaultValue: '{{entityName}} has been deleted',\n                    entityName,\n                  })\n                : t('actions.snackbar.genericDeleted', {\n                    defaultValue: 'Entity has been deleted',\n                  }),\n              {\n                anchorOrigin: {\n                  vertical: 'top',\n                  horizontal: 'center',\n                },\n                action: successAction,\n              }\n            );\n            if (actionState?.menuListState && actionState?.menuListState?.menuList.length > 0) {\n              const handleRemoveMenuItem = actionState?.menuListState?.handleRemoveMenuItem;\n              if (handleRemoveMenuItem) {\n                handleRemoveMenuItem(actionState?.menuListState?.menuList);\n              }\n            }\n            fetchEntityData({ data: {} });\n          }\n        }\n      }\n    },\n    [\n      actionState,\n      enqueueSnackbar,\n      entityAttributes,\n      fetchEntityData,\n      onDelete,\n      selectedEntity,\n      successAction,\n      t,\n    ]\n  );\n\n  const skeleton = useMemo(() => {\n    const skeletonArr = [];\n    for (let i = 0; i < FIELD_NUMBER; i++) {\n      skeletonArr.push(\n        <>\n          <Skeleton key={i} variant=\"rect\" className={classes.skeleton} />\n          <LayoutUnit unit=\"xxs\" />\n        </>\n      );\n    }\n    return skeletonArr;\n  }, [classes]);\n\n  useEffect(() => {\n    if (entityAttributes) {\n      getFKMethodEntities(entityAttributes);\n      setLoadingContent(false);\n    }\n  }, [entityAttributes, getFKMethodEntities]);\n\n  useEffect(() => {\n    if (entityAttributes && fkMethodEntities && fkMethodEntities.length > 0) {\n      getFKData(fkMethodEntities, setForeignKeyData, enqueueSnackbar);\n    }\n  }, [enqueueSnackbar, entityAttributes, fkMethodEntities, getFKData, setForeignKeyData]);\n\n  useEffect(() => {\n    const setFieldInfos = async () => {\n      if (!entityName) return;\n      let response = await getMetaDataForUdpField(entityName);\n      setUdpFieldInfos(response);\n    };\n    if (udpOjectFieldInfo?.unityBaseSearchMethod?.apiMethodId) {\n      setFieldInfos();\n    }\n  }, [getMetaDataForUdpField, udpOjectFieldInfo, entityName]);\n\n  return (\n    <>\n      <ActionSplitScreen\n        body={\n          <>\n            {splitScreenBody}\n            <ActionPanelPlacement\n              actionPanels={actionState?.actionPanels[currentContainerId || 0]}\n              showInquiryHeaderActions={actionState?.showInquiryHeaderActions}\n              selectedNode={actionState?.inquiryParams[currentContainerId || 0]?.selectedNode}\n              globalActions={globalActions}\n            />\n          </>\n        }\n        open={actionState?.splitScreen?.open}\n        action={actionState?.splitScreen?.action}\n        type={actionState?.splitScreen?.type}\n        params={actionState?.splitScreen?.params}\n        executeAction={executeAction}\n        actionPanel={actionPanel}\n        selectedNodeObj={selectedNode?.nodeObj}\n        menuNodeList={actionState?.menuListState?.menuList}\n        sidebarEntity={selectedEntity}\n        selectedNode={actionState?.inquiryParams[currentContainerId || 0]?.selectedNode}\n        selectedNodeParent={actionState?.inquiryParams[currentContainerId || 0]?.selectedNodeParent}\n        refreshTree={actionState?.inquiryParams[currentContainerId || 0]?.refreshTree}\n      />\n      {actionState?.sideSheet?.open && (\n        <Suspense fallback={null}>\n          <ActionSideSheet\n            key={actionState?.sideSheet?.action?.actionId}\n            open={actionState?.sideSheet?.open}\n            dispatch={dispatch}\n            action={actionState?.sideSheet?.action}\n            actionPanel={actionPanel}\n            selectedNodeObj={selectedNode?.nodeObj}\n            executeAction={executeAction}\n            selectedEntity={selectedEntity}\n            handleOnClose={() => {\n              const sideSheet = { open: false, action: null };\n              handleOnClose('OPEN_SIDESHEET', sideSheet);\n            }}\n            entityAttributes={entityAttributes}\n            foreignKeyData={foreignKeyData}\n            loadingContent={loadingContent}\n            fetchEntityData={fetchEntityData}\n            skeleton={skeleton}\n            showError={showError}\n            crudTableEditionData={crudTableEditionData}\n            crudTableFormData={crudTableFormData}\n            selectedNode={actionState?.inquiryParams[currentContainerId || 0]?.selectedNode}\n            selectedNodeParent={actionState?.inquiryParams[currentContainerId || 0]?.selectedNodeParent}\n            refreshTree={actionState?.inquiryParams[currentContainerId || 0]?.refreshTree}\n            udpFieldInfos={udpFieldInfos}\n          />\n        </Suspense>\n      )}\n      {actionState?.modal?.open && (\n        <Suspense fallback={null}>\n          <ActionModal\n            open={actionState?.modal?.open}\n            action={actionState?.modal?.action}\n            title={actionState?.modal?.title + selectedEntity?.entityName}\n            message={t('actions.modal.deleteConfirmation', {\n              defaultValue: 'Are you sure you want to delete this {{entityName}}?',\n              entityName: selectedEntity?.entityName,\n            })}\n            confirmAction={() => handleOnDelete(selectedNode?.nodeObj)}\n            handleOnClose={() => {\n              const modal = { open: false, action: null };\n              handleOnClose('OPEN_MODAL', modal);\n            }}\n            showError={showError}\n          />\n        </Suspense>\n      )}\n    </>\n  );\n};\n\nActionWrapper.propTypes = {\n  actionState: PropTypes.object,\n  actionPanel: PropTypes.object,\n  dispatch: PropTypes.func,\n  catalog: PropTypes.object,\n  executeAction: PropTypes.func,\n  user: PropTypes.object,\n  splitScreenBody: PropTypes.object,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAMc,cAAcT,WAClB,OAAO,qBAAiBU,MAAMC,OAAO,EAAEC,SAASD,EAAEF,aAAa,EACjE,CAAC;AACD,MAAMI,kBAAkBb,WACtB,OAAO,yBAAqBU,MAAMC,OAAO,EAAEC,SAASD,EAAEE,iBAAiB,EACzE,CAAC;AAmBD,MAAMgB,YAAYlC,YAAYmC,WAAW,EAAE,EAAE;AAE7C,MAAMC,eAAe;AAErB,MAAaC,iBAAgBC,UAAA;CAAA,MAAAC,IAAAC,EAAA,IAAA;CAC3B,MAAA,EAAAC,aAAAC,aAAAC,UAAAC,cAAAC,eAAAC,iBAAAC,kBAAAC,gBAAAC,mBAAAC,sBAAAC,mBAAAC,kBAaId;CACJ,MAAAe,UAAgBnB,WAAW;CAE3B,MAAA,EAAAoB,cAAsB5B,uBAAuB;CAE7C,MAAA,EAAA6B,iBAAAC,kBAA2CtD,aAAa;CAAC,IAAAuD;AAAA,KAAAlB,EAAA,OAAAiB,eAAA;AACnCC,OAAAnC,iBAAiBkC,cAAc;AAAAjB,IAAA,KAAAiB;AAAAjB,IAAA,KAAAkB;OAAAA,MAAAlB,EAAA;CAArD,MAAAmB,gBAAsBD;CACtB,MAAA,EAAAE,MAAchD,gBAAgB;CAAC,IAAAiD;AAAA,KAAArB,EAAA,OAAAsB,OAAAC,IAAA,4BAAA,EAAA;AAC0BF,OAAA,EAAE;AAAArB,IAAA,KAAAqB;OAAAA,MAAArB,EAAA;CAA3D,MAAA,CAAAwB,kBAAAC,uBAAgDtD,SAASkD,GAAG;CAC5D,MAAA,CAAAK,gBAAAC,qBAA4CxD,SAAS,KAAK;CAAC,IAAAyD;AAAA,KAAA5B,EAAA,OAAAsB,OAAAC,IAAA,4BAAA,EAAA;AACRK,OAAA,EAAE;AAAA5B,IAAA,KAAA4B;OAAAA,MAAA5B,EAAA;CAArD,MAAA,CAAA6B,eAAAC,oBAA0C3D,SAASyD,GAAG;CAEtD,MAAAG,eAAqB3C,eAAe4C,MAA8B;CAClE,MAAAC,qBAA2B5C,cAAc6C,OAAoC;CAE7E,MAAA,EAAAC,MAAAC,sBAAoC9C,wBAAwB,sBAAsB,KAAK;CAEvF,MAAA+C,aACSlC,cACHA,YAAWkC,aACXnC,aAAWoC,cAAgBL,sBAAA,IAAsCF,cAAYQ,YACtDC;CACsB,IAAAC;AAAA,KAAAzC,EAAA,OAAAsB,OAAAC,IAAA,4BAAA,EAAA;AAKjDkB,OAAA,EAAE;AAAAzC,IAAA,KAAAyC;OAAAA,MAAAzC,EAAA;CAHJ,MAAA,CAAA0C,MAAmCxD,YACjCQ,cAAaiD,qBACb,cAActC,aAAY,0BAA2BgC,WAAU,WAAY3C,cAAakD,OAAOC,oBAC/FJ,IACA,CAAC,CAAC,CAACpC,gBAAH,CAAoB,CAAC,CAACgC,YACtB,MACD;CANM,MAAA,EAAAF,MAAAW,mBAAAJ;CAAwB,IAAAK;AAAA,KAAA/C,EAAA,OAAAoC,mBAAA;AAS7BW,OAAA,OAAAC,iBAAA;GACE,IAAAC,aAAiB,EAAE;AACnB,OAAIb,mBAAiBc,uBAAoCC,YAUvD,OAAM1D,kBACJ,EAAA0C,MAHiB3C,gBAPI,CACrB;IAAA6D,aACe;IAA0BC,gBACvB;IAAGC,aACNhE,iBAAiB8C,aAAU;IACzC,CACF,EACkD,GAAG,IAAI,KAAK,EAGzC,EACpBD,kBAAiBc,sBAAsBC,YACxC,CAAA3E,MAAMiF,SAAA;AACLR,iBAAaQ,KAAItB,MAAeuB;KAChC;AACH,UACMT;;AACRjD,IAAA,KAAAoC;AAAApC,IAAA,KAAA+C;OAAAA,MAAA/C,EAAA;CArBH,MAAA2D,yBAA+BZ;CAuB7B,IAAAa;AAAA,KAAA5D,EAAA,OAAAM,iBAAAN,EAAA,OAAA8C,gBAAA;AAGAc,OAAA,OAAAzB,SAAA;AACE,OAAIW,gBAAce,sBAAuB,QAChC,MAAMvD,cAAc6B,MAAMW,eAAce,sBAAsBV,YAAa;;AACrFnD,IAAA,KAAAM;AAAAN,IAAA,KAAA8C;AAAA9C,IAAA,KAAA4D;OAAAA,MAAA5D,EAAA;CAJH,MAAA8D,kBAAwBF;CAMtB,IAAAG;AAAA,KAAA/D,EAAA,QAAAgB,mBAAAhB,EAAA,QAAAoB,GAAA;AAE4B2C,aAAA;AAC5B/C,mBACEI,EAAE,qCAAqC,EAAA4C,cACvB,yBACf,CAAC,EACF;IAAAC,SACW;IAAOC,cACF;KAAAC,UACF;KAAKC,YACH;KACd;IAEJ,CAAC;;AACFpE,IAAA,MAAAgB;AAAAhB,IAAA,MAAAoB;AAAApB,IAAA,MAAA+D;OAAAA,MAAA/D,EAAA;CAbD,MAAAqE,YAAkBN;CAaO,IAAAO;AAAA,KAAAtE,EAAA,QAAAK,cAAA;AAGvBiE,OAAA,OAAAC,eAAA;AACE,OAAI,CAACA,cAAD,CAAgBlE,aAAY,QACvB,EAAE;GAEX,MAAAmE,SAAa,EAAE;AAEf,QAAK,MAAAC,QAAcF,WAEjB,KAAIE,MAAIC,oBAAiCC,aAAA;IAEvC,MAAAC,cAAoB,EAAE;AACtB,QACEC,OAAMC,KAAML,KAAIC,mBAAmBK,oBAAvB,EAA8C,CAAC,CAAAC,UAA3D,CACCP,KAAIC,mBAAmBK,iBAAiBE,QAEzCR,MAAIC,mBAAmBK,iBAAiBG,KAAKC,SAASC,OAAAC,MAAA;KACpD,MAAAC,OAAaF,MAAKG,MAAO,IAAI,CAAA;AAC7B,SAAID,KAEFV,aAAWY,KAAM;MAAAC,KACVJ;MAACC,MACA,WAAUI,KAAMJ,KAAmD,GAA3CA,KAAIK,aAAuC,GAAtB1G,iBAAiBqG,KAAI;MACzE,CAAC;MAEJ;IAIJ,MAAAM,SAAerB,WAAUsB,MAAMC,MAC7BlB,YAAWiB,MAAME,QAASA,IAAGT,SAAUQ,EAACR,QAAd,CAAwBQ,GAACpB,oBAAgCsB,WACrF,CAAC;AAED,QAAIJ,OAEF,OAAMhH,UACJc,cAAaiD,qBACb,cAActC,aAAY,0BAA2BoE,KAAIwB,UAAU,WAAYvG,cAAakD,OAAOC,oBACnG,EAAAqD,QACU,OACT,EACD,EACF,CAAC,CAAA1H,MAAM2H,WAAA;AACL,SAAIA,UAAQ1C,OAAItB,KACdqC,QAAMgB,KAAM;MAAAY,QAAUR,OAAMN;MAAKe,QAAU5C,OAAItB;MAAO,CAAC;MAEzD;;AAIRV,uBAAoB+C,OAAO;;AAC5BxE,IAAA,MAAAK;AAAAL,IAAA,MAAAsE;OAAAA,MAAAtE,EAAA;CAnDH,MAAAsG,sBAA4BhC;CAqD1B,IAAAiC;AAAA,KAAAvG,EAAA,QAAAI,UAAA;AAGAmG,QAAAC,MAAAH,WAAA;AACEjG,YAAS;IAAAoG;IAAAH;IAAsB,CAAC;;AACjCrG,IAAA,MAAAI;AAAAJ,IAAA,MAAAuG;OAAAA,MAAAvG,EAAA;CAHH,MAAAyG,gBAAsBF;CAKpB,IAAAG;AAAA,KAAA1G,EAAA,QAAAE,aAAAyG,OAAAC,QAAAxB,SAAApF,EAAA,QAAAM,iBAAAN,EAAA,QAAA8C,kBAAA9C,EAAA,QAAAqE,WAAA;AAGAqC,QAAA,OAAAG,WAAA;AACE,OAAI/D,gBAAcgE,sBAChB,KACEhE,eAAcgE,sBAAsB3D,gBAAiBjD,aAAWyG,OAAeC,QAAOxB,MAAA,QAE/E,MAAM9E,cAAc6B,QAAMjC,aAAWyG,OAAeC,QAAOxB,MAAC;OAEnEf,YAAW;;AAGhBrE,IAAA,MAAAE,aAAAyG,OAAAC,QAAAxB;AAAApF,IAAA,MAAAM;AAAAN,IAAA,MAAA8C;AAAA9C,IAAA,MAAAqE;AAAArE,IAAA,MAAA0G;OAAAA,OAAA1G,EAAA;CAXH,MAAA+G,WAAiBL;CAaf,IAAAM;AAAA,KAAAhH,EAAA,QAAAE,aAAA+G,iBAAAjH,EAAA,QAAAgB,mBAAAhB,EAAA,QAAAQ,oBAAAR,EAAA,QAAA8D,mBAAA9D,EAAA,QAAA+G,YAAA/G,EAAA,QAAA8C,kBAAA9C,EAAA,QAAAmB,iBAAAnB,EAAA,QAAAoB,GAAA;AAGA4F,QAAA,OAAAE,YAAA;AACE,OAAIpE,gBAAc;IAChB,MAAAqE,eAAmBrE,gBAAcT;IAGjC,MAAA+E,mBAAyBtI,oBAAoB0B,kBAAkB4E,QAAM;IACrE,MAAAiC,aAAmBxI,cACjBiE,gBAAcgE,sBAAsCQ,gBACpDF,iBACD;AAED,QAAItE,gBAAcgE;UAEC,MAAMC,SAAS,EAAA5E,MADnB,EAAA,GAAKkF,YAAY,EACU,CAAC,CAAAI,OAAOC,QAAA;AAC9C1G,sBAAgB0G,IAAGC,SAAU;OAAA1D,SAClB;OAAOC,cACF;QAAAC,UACF;QAAKC,YACH;QACd;OACD,CAAC;OACF,GAEUwD,WAAa,KAAG;AAC1B5G,sBACEqB,eACIjB,EAAE,kCAAkC;OAAA4C,cACpB;OAAiC3B,YAC/CA;OAID,CAAC,GAFFjB,EAAE,mCAAmC,EAAA4C,cACrB,2BACf,CAAC,EACN;OAAAE,cACgB;QAAAC,UACF;QAAKC,YACH;QACb;OAAAwC,QACOzF;OAEZ,CAAC;AACD,UAAIjB,aAAW+G,iBAAmB/G,aAAW+G,eAAyBY,SAAO7C,SAAG,GAAC;OAC/E,MAAA8C,uBAA6B5H,aAAW+G,eAAqCa;AAC7E,WAAIA,qBACFA,sBAAqB5H,aAAW+G,eAAyBY,SAAC;;AAG9D/D,sBAAgB,EAAA3B,MAAQ,EAAC,EAAG,CAAC;;;;;AAIpCnC,IAAA,MAAAE,aAAA+G;AAAAjH,IAAA,MAAAgB;AAAAhB,IAAA,MAAAQ;AAAAR,IAAA,MAAA8D;AAAA9D,IAAA,MAAA+G;AAAA/G,IAAA,MAAA8C;AAAA9C,IAAA,MAAAmB;AAAAnB,IAAA,MAAAoB;AAAApB,IAAA,MAAAgH;OAAAA,OAAAhH,EAAA;CApDH,MAAA+H,iBAAuBf;CA+DrB,IAAAgB;AAAA,KAAAhI,EAAA,QAAAc,SAAA;AAGAkH,gBAAoB,EAAE;AACtB,OAAA,IAAAC,MAAa,GAAG5C,MAAIxF,cAAcwF,MAChC2C,aAAWxC,KACT,sBAAA,cAAA,MAAA,UAAA,MACE,sBAAA,cAAC,UAAD;GAAeH,KAAAA;GAAW,SAAA;GAAkB,WAAAvE,QAAOoH;GACnD,CAAA,EAAA,sBAAA,cAAC,YAAD,EAAiB,MAAA,OAAQ,CAAA,CAE7B,CAAC;AACFlI,IAAA,MAAAc;AAAAd,IAAA,MAAAgI;OAAAA,eAAAhI,EAAA;CATH,MAAAkI,WAUEF;CACY,IAAAG;CAAA,IAAAC;AAAA,KAAApI,EAAA,QAAAQ,oBAAAR,EAAA,QAAAsG,qBAAA;AAEJ6B,cAAA;AACR,OAAI3H,kBAAgB;AAClB8F,wBAAoB9F,iBAAiB;AACrCmB,sBAAkB,MAAM;;;AAEzByG,QAAA,CAAC5H,kBAAkB8F,oBAAoB;AAAAtG,IAAA,MAAAQ;AAAAR,IAAA,MAAAsG;AAAAtG,IAAA,MAAAmI;AAAAnI,IAAA,MAAAoI;QAAA;AAAAD,QAAAnI,EAAA;AAAAoI,QAAApI,EAAA;;AAL1C/B,WAAUkK,KAKPC,IAAwC;CAAA,IAAAC;CAAA,IAAAC;AAAA,KAAAtI,EAAA,QAAAgB,mBAAAhB,EAAA,QAAAQ,oBAAAR,EAAA,QAAAwB,oBAAAxB,EAAA,QAAAe,aAAAf,EAAA,QAAAU,mBAAA;AAEjC2H,cAAA;AACR,OAAI7H,oBAAAgB,oBAAwCA,iBAAgBwD,SAAU,EACpEjE,WAAUS,kBAAkBd,mBAAmBM,gBAAgB;;AAEhEsH,QAAA;GAACtH;GAAiBR;GAAkBgB;GAAkBT;GAAWL;GAAkB;AAAAV,IAAA,MAAAgB;AAAAhB,IAAA,MAAAQ;AAAAR,IAAA,MAAAwB;AAAAxB,IAAA,MAAAe;AAAAf,IAAA,MAAAU;AAAAV,IAAA,MAAAqI;AAAArI,IAAA,MAAAsI;QAAA;AAAAD,QAAArI,EAAA;AAAAsI,QAAAtI,EAAA;;AAJtF/B,WAAUoK,KAIPC,IAAoF;CAAA,IAAAC;AAAA,KAAAvI,EAAA,QAAAqC,cAAArC,EAAA,QAAA2D,0BAAA3D,EAAA,QAAAoC,mBAAAc,uBAAAC,aAAA;AAE7EoF,cAAA;GACR,MAAAC,gBAAsB,YAAA;AACpB,QAAI,CAACnG,WAAU;AAEfP,qBADe,MAAM6B,uBAAuBtB,WAAW,CAC7B;;AAE5B,OAAID,mBAAiBc,uBAAoCC,YACvDqF,gBAAe;;AAElBxI,IAAA,MAAAqC;AAAArC,IAAA,MAAA2D;AAAA3D,IAAA,MAAAoC,mBAAAc,uBAAAC;AAAAnD,IAAA,MAAAuI;OAAAA,OAAAvI,EAAA;CAAA,IAAA0I;AAAA,KAAA1I,EAAA,QAAAqC,cAAArC,EAAA,QAAA2D,0BAAA3D,EAAA,QAAAoC,mBAAA;AAAEsG,QAAA;GAAC/E;GAAwBvB;GAAmBC;GAAW;AAAArC,IAAA,MAAAqC;AAAArC,IAAA,MAAA2D;AAAA3D,IAAA,MAAAoC;AAAApC,IAAA,MAAA0I;OAAAA,OAAA1I,EAAA;AAT1D/B,WAAUsK,KASPG,IAAwD;CASjC,MAAAC,MAAAzI,aAAW0I,aAAe3G,sBAAA;CACd,MAAA4G,MAAA3I,aAAW4I;CACvB,MAAAC,MAAA7I,aAAWoC,cAAgBL,sBAAA,IAAsCF;CAAA,IAAAiH;AAAA,KAAAhJ,EAAA,QAAAa,iBAAAb,EAAA,QAAA2I,OAAA3I,EAAA,QAAA6I,OAAA7I,EAAA,QAAA+I,KAAA;AAHjFC,QAAA,sBAAA,cAAC,sBAAD;GACgB,cAAAL;GACY,0BAAAE;GACZ,cAAAE;GACClI;GACf,CAAA;AAAAb,IAAA,MAAAa;AAAAb,IAAA,MAAA2I;AAAA3I,IAAA,MAAA6I;AAAA7I,IAAA,MAAA+I;AAAA/I,IAAA,MAAAgJ;OAAAA,OAAAhJ,EAAA;CAAA,IAAAiJ;AAAA,KAAAjJ,EAAA,QAAAO,mBAAAP,EAAA,QAAAgJ,KAAA;AAPJC,QAAA,sBAAA,cAAA,MAAA,UAAA,MACG1I,iBACDyI,IAMC;AAAAhJ,IAAA,MAAAO;AAAAP,IAAA,MAAAgJ;AAAAhJ,IAAA,MAAAiJ;OAAAA,OAAAjJ,EAAA;CAEC,MAAAkJ,MAAAhJ,aAAWiJ,aAAmBC;CAC5B,MAAAC,MAAAnJ,aAAWiJ,aAAqBvC;CAClC,MAAA0C,MAAApJ,aAAWiJ,aAAmB3C;CAC5B,MAAA+C,MAAArJ,aAAWiJ,aAAqBK;CAGvB,MAAAC,MAAA1H,cAAY2H;CACf,MAAAC,MAAAzJ,aAAW+G,eAAyBY;CAEpC,MAAA+B,MAAA1J,aAAWoC,cAAgBL,sBAAA,IAAsCF;CAC3D,MAAA8H,MAAA3J,aAAWoC,cAAgBL,sBAAA,IAA4C6H;CAC9E,MAAAC,MAAA7J,aAAWoC,cAAgBL,sBAAA,IAAqC+H;CAAA,IAAAC;AAAA,KAAAjK,EAAA,QAAAG,eAAAH,EAAA,QAAAM,iBAAAN,EAAA,QAAA8C,kBAAA9C,EAAA,QAAAiJ,OAAAjJ,EAAA,QAAAkJ,OAAAlJ,EAAA,QAAAqJ,OAAArJ,EAAA,QAAAsJ,OAAAtJ,EAAA,QAAAuJ,OAAAvJ,EAAA,QAAAyJ,OAAAzJ,EAAA,QAAA2J,OAAA3J,EAAA,QAAA4J,OAAA5J,EAAA,QAAA6J,OAAA7J,EAAA,QAAA+J,KAAA;AAvB/EE,QAAA,sBAAA,cAAC,mBAAD;GAEI,MAAAhB;GAUI,MAAAC;GACE,QAAAG;GACF,MAAAC;GACE,QAAAC;GACOjJ;GACFH;GACI,iBAAAsJ;GACH,cAAAE;GACC7G,eAAAA;GACD,cAAA8G;GACM,oBAAAC;GACP,aAAAE;GACb,CAAA;AAAA/J,IAAA,MAAAG;AAAAH,IAAA,MAAAM;AAAAN,IAAA,MAAA8C;AAAA9C,IAAA,MAAAiJ;AAAAjJ,IAAA,MAAAkJ;AAAAlJ,IAAA,MAAAqJ;AAAArJ,IAAA,MAAAsJ;AAAAtJ,IAAA,MAAAuJ;AAAAvJ,IAAA,MAAAyJ;AAAAzJ,IAAA,MAAA2J;AAAA3J,IAAA,MAAA4J;AAAA5J,IAAA,MAAA6J;AAAA7J,IAAA,MAAA+J;AAAA/J,IAAA,MAAAiK;OAAAA,OAAAjK,EAAA;CAAA,IAAAkK;AAAA,KAAAlK,EAAA,QAAAG,eAAAH,EAAA,QAAAE,aAAAoC,iBAAAtC,EAAA,QAAAE,aAAAiK,WAAAvD,UAAA5G,EAAA,QAAAE,aAAAiK,WAAAf,QAAApJ,EAAA,QAAAW,wBAAAX,EAAA,QAAAY,qBAAAZ,EAAA,QAAAiC,sBAAAjC,EAAA,QAAAI,YAAAJ,EAAA,QAAAQ,oBAAAR,EAAA,QAAAM,iBAAAN,EAAA,QAAA8D,mBAAA9D,EAAA,QAAAS,kBAAAT,EAAA,QAAAyG,iBAAAzG,EAAA,QAAA0B,kBAAA1B,EAAA,QAAA8C,kBAAA9C,EAAA,QAAA+B,cAAA2H,WAAA1J,EAAA,QAAAqE,aAAArE,EAAA,QAAAkI,YAAAlI,EAAA,QAAA6B,eAAA;AACDqI,QAAAhK,aAAWiK,WAAiBf,QAC3B,sBAAA,cAAC,UAAD,EAAoB,UAAA,MA4BrB,EA3BG,sBAAA,cAAC,iBAAD;GACO,KAAAlJ,aAAWiK,WAAmBvD,QAAUwD;GACvC,MAAAlK,aAAWiK,WAAiBf;GACxBhJ;GACF,QAAAF,aAAWiK,WAAmBvD;GACzBzG;GACI,iBAAA4B,cAAY2H;GACdpJ;GACCwC;GACD,qBAAA;AAEb2D,kBAAc,kBADI;KAAA2C,MAAQ;KAAKxC,QAAU;KAAM,CACL;;GAE1BpG;GACFC;GACAiB;GACCoC;GACPoE;GACC7D;GACW1D;GACHC;GACL,cAAAV,aAAWoC,cAAgBL,sBAAA,IAAsCF;GAC3D,oBAAA7B,aAAWoC,cAAgBL,sBAAA,IAA4C6H;GAC9E,aAAA5J,aAAWoC,cAAgBL,sBAAA,IAAqC+H;GAC9DnI;GAEnB,CAAA,CACD;AAAA7B,IAAA,MAAAG;AAAAH,IAAA,MAAAE,aAAAoC;AAAAtC,IAAA,MAAAE,aAAAiK,WAAAvD;AAAA5G,IAAA,MAAAE,aAAAiK,WAAAf;AAAApJ,IAAA,MAAAW;AAAAX,IAAA,MAAAY;AAAAZ,IAAA,MAAAiC;AAAAjC,IAAA,MAAAI;AAAAJ,IAAA,MAAAQ;AAAAR,IAAA,MAAAM;AAAAN,IAAA,MAAA8D;AAAA9D,IAAA,MAAAS;AAAAT,IAAA,MAAAyG;AAAAzG,IAAA,MAAA0B;AAAA1B,IAAA,MAAA8C;AAAA9C,IAAA,MAAA+B,cAAA2H;AAAA1J,IAAA,MAAAqE;AAAArE,IAAA,MAAAkI;AAAAlI,IAAA,MAAA6B;AAAA7B,IAAA,MAAAkK;OAAAA,OAAAlK,EAAA;CAAA,IAAAqK;AAAA,KAAArK,EAAA,QAAAE,aAAAyG,OAAAC,UAAA5G,EAAA,QAAAE,aAAAyG,OAAAyC,QAAApJ,EAAA,QAAAE,aAAAyG,OAAA2D,SAAAtK,EAAA,QAAAyG,iBAAAzG,EAAA,QAAA+H,kBAAA/H,EAAA,QAAA8C,gBAAAT,cAAArC,EAAA,SAAA+B,cAAA2H,WAAA1J,EAAA,SAAAqE,aAAArE,EAAA,SAAAoB,GAAA;AACAiJ,QAAAnK,aAAWyG,OAAayC,QACvB,sBAAA,cAAC,UAAD,EAAoB,UAAA,MAiBrB,EAhBG,sBAAA,cAAC,aAAD;GACQ,MAAAlJ,aAAWyG,OAAayC;GACtB,QAAAlJ,aAAWyG,OAAeC;GAC3B,OAAA1G,aAAWyG,OAAc2D,QAAGxH,gBAAcT;GACxC,SAAAjB,EAAE,oCAAoC;IAAA4C,cAC/B;IAAsD3B,YACxDS,gBAAcT;IAC3B,CAAA;GACc,qBAAM0F,eAAehG,cAAY2H,QAAS;GAC1C,qBAAA;AAEbjD,kBAAc,cADA;KAAA2C,MAAQ;KAAKxC,QAAU;KAAM,CACT;;GAEzBvC;GAEf,CAAA,CACD;AAAArE,IAAA,MAAAE,aAAAyG,OAAAC;AAAA5G,IAAA,MAAAE,aAAAyG,OAAAyC;AAAApJ,IAAA,MAAAE,aAAAyG,OAAA2D;AAAAtK,IAAA,MAAAyG;AAAAzG,IAAA,MAAA+H;AAAA/H,IAAA,MAAA8C,gBAAAT;AAAArC,IAAA,OAAA+B,cAAA2H;AAAA1J,IAAA,OAAAqE;AAAArE,IAAA,OAAAoB;AAAApB,IAAA,OAAAqK;OAAAA,OAAArK,EAAA;CAAA,IAAAuK;AAAA,KAAAvK,EAAA,SAAAiK,OAAAjK,EAAA,SAAAkK,OAAAlK,EAAA,SAAAqK,KAAA;AA1EHE,QAAA,sBAAA,cAAA,MAAA,UAAA,MACEN,KAyBCC,KA8BAG,IAmBA;AAAArK,IAAA,OAAAiK;AAAAjK,IAAA,OAAAkK;AAAAlK,IAAA,OAAAqK;AAAArK,IAAA,OAAAuK;OAAAA,OAAAvK,EAAA;AAAA,QA3EHuK;;AA+EJzK,cAAc0K,YAAY;CACxBtK,aAAatC,UAAU6M;CACvBtK,aAAavC,UAAU6M;CACvBrK,UAAUxC,UAAU8M;CACpBC,SAAS/M,UAAU6M;CACnBnK,eAAe1C,UAAU8M;CACzBE,MAAMhN,UAAU6M;CAChBlK,iBAAiB3C,UAAU6M;CAC5B;AAzW4B,SAAAzI,MAAA6I,OAAA;AAAA,QA0BoBA,MAAK9I;;AA1BzB,SAAAG,OAAA4I,SAAA;AAAA,QA2ByBD,QAAK5I"}