{"version":3,"file":"FieldArrayCard.mjs","names":["makeStyles","React","useCallback","useState","FieldArray","useTranslation","SearchSideSheet","DateRangeField","FieldType","Field","Grid","UdpCard","UdpVerticalSpacer","UdpTooltip","UdpIconButton","UdpText","UdpTextInput","UdpDateInput","UdpTimeInput","UdpDateTimeInput","UdpSwitch","UdpCheckbox","UdpAutocomplete","UdpNumberInput","UdpEmptyState","useStyles","theme","sectionHeader","display","justifyContent","gap","spacing","alignItems","marginBottom","fieldsWrapper","flexDirection","cardsWrapper","cardHeader","FieldArrayCard","props","$","_c","title","t0","fieldArrayName","getRowTitle","fieldConfig","removeTopLayoutUnit","t1","defaultAddedItemValues","enableSearchSideSheet","searchSideSheetTitle","searchFieldId","t2","formFieldId","t3","formatAddedSearchItems","productApiBase","searchApi","searchGridColDefs","searchGridTitle","handleSearch","searchBarFieldName","defaultFilters","disableExcludeInSearch","t4","searchSideSheetWidth","searchSideSheetHeight","undefined","classes","openSideSheet","setOpenSideSheet","t","t5","value","min","max","defaultValue","validateNumberRange","t6","finalFieldName","config","fieldObj","index","fieldName","fieldType","fieldLabel","componentProps","fieldComponent","bb42","DropdownMenu","Date","DateRange","Time","DateTime","Toggle","Checkbox","Number","value_0","getField","t7","selectedRecords","fieldArray","formattedRecords","length","record","find","item","push","handleCloseSideSheet","t8","fields","handleAddField","t9","t10","fields_0","map","name","index_0","rowTitle","remove","config_0","fieldKey","Array","isArray","innerConfig","key","data"],"sources":["../../../../src/UI/inputs/fieldArrayCard/FieldArrayCard.jsx"],"sourcesContent":["import { makeStyles } from '@material-ui/core';\nimport React, { useCallback, useState } from 'react';\nimport { FieldArray } from 'react-final-form-arrays';\nimport { useTranslation } from 'react-i18next';\nimport SearchSideSheet from './SearchSideSheet';\nimport DateRangeField from './DateRangeField';\nimport { FieldType } from './fieldArrayCardEnum';\nimport { Field } from '../../../utilities/form';\nimport { Grid } from '../../Grid';\nimport {\n  UdpCard,\n  UdpVerticalSpacer,\n  UdpTooltip,\n  UdpIconButton,\n  UdpText,\n  UdpTextInput,\n  UdpDateInput,\n  UdpTimeInput,\n  UdpDateTimeInput,\n  UdpSwitch,\n  UdpCheckbox,\n  UdpAutocomplete,\n  UdpNumberInput,\n  UdpEmptyState\n} from '../../fluent-web-components';\n\nconst useStyles = makeStyles((theme) => ({\n  sectionHeader: {\n    display: 'flex',\n    justifyContent: 'space-between',\n    gap: theme.spacing(1),\n    alignItems: 'center',\n    marginBottom: theme.spacing(1)\n  },\n  fieldsWrapper: {\n    display: 'flex',\n    flexDirection: 'column'\n  },\n  cardsWrapper: {\n    display: 'flex',\n    flexDirection: 'column',\n    gap: theme.spacing(2)\n  },\n  cardHeader: {\n    display: 'flex',\n    justifyContent: 'space-between',\n    gap: theme.spacing(1),\n    alignItems: 'center'\n  }\n}));\n\n/**\n * Renders a `react-final-form` field array as a list of cards, one per item,\n * each laid out from a shared `fieldConfig`.\n *\n * Each `fieldConfig` entry is:\n * - `fieldName` — appended to the row path, e.g. `labor[0].conditionId`\n * - `fieldLabel` — the field's label\n * - `fieldType` — a `FieldType`; omitted renders a text input\n * - `componentProps` — props spread onto the field. Either a plain object\n *   (identical for every card) or a function `(rowValue, index) => props`\n *   evaluated per card, where `rowValue` is that card's current form value.\n *   Use the function form for props that depend on the row, e.g. disabling a\n *   field on already-saved rows: `componentProps: (row) => ({ disabled: !!row?.id })`\n *\n * An entry may also be an array of entries, which renders those fields\n * side-by-side on one `Grid` row.\n */\nexport const FieldArrayCard = (props) => {\n  const {\n    title = ' ',\n    fieldArrayName,\n    getRowTitle,\n    fieldConfig,\n    removeTopLayoutUnit = false,\n    defaultAddedItemValues,\n    //search sidesheet props\n    enableSearchSideSheet,\n    searchSideSheetTitle,\n    searchFieldId = 'id',\n    formFieldId = 'id',\n    formatAddedSearchItems,\n    productApiBase,\n    searchApi,\n    searchGridColDefs,\n    searchGridTitle,\n    handleSearch,\n    searchBarFieldName,\n    defaultFilters,\n    disableExcludeInSearch = false,\n    searchSideSheetWidth,\n    searchSideSheetHeight\n  } = props;\n  const classes = useStyles();\n  const [openSideSheet, setOpenSideSheet] = useState(false);\n  const { t } = useTranslation();\n\n  const validateNumberRange = useCallback(\n    (value, min, max) => {\n      if (typeof min === 'number' && value < min) {\n        return t('ui.fieldArray.numberMin', {\n          defaultValue: 'Number must be greater than or equal to {{min}}',\n          min\n        });\n      }\n      if (typeof max === 'number' && value > max) {\n        return t('ui.fieldArray.numberMax', {\n          defaultValue: 'Number must be less than or equal to {{max}}',\n          max\n        });\n      }\n      return undefined;\n    },\n    [t]\n  );\n\n  const getField = useCallback(\n    (finalFieldName, config, fieldObj, index) => {\n      const { fieldName, fieldType, fieldLabel } = config;\n\n      // `componentProps` may be a function of the current row, so a config can\n      // vary props per card (e.g. disable a field on already-saved rows only).\n      const componentProps =\n        typeof config.componentProps === 'function'\n          ? config.componentProps(fieldObj, index)\n          : config.componentProps;\n\n      let fieldComponent = null;\n\n      switch (fieldType) {\n        case FieldType.DropdownMenu:\n          fieldComponent = (\n            <Field\n              {...componentProps}\n              name={`${finalFieldName}.${fieldName}`}\n              component={UdpAutocomplete}\n              label={fieldLabel}\n            />\n          );\n          break;\n        case FieldType.Date:\n          fieldComponent = (\n            <Field\n              {...componentProps}\n              name={`${finalFieldName}.${fieldName}`}\n              component={UdpDateInput}\n              label={fieldLabel}\n              allowNull\n            />\n          );\n          break;\n        case FieldType.DateRange:\n          fieldComponent = (\n            <DateRangeField\n              {...componentProps}\n              fieldName={finalFieldName}\n              initialValues={fieldObj}\n            />\n          );\n          break;\n        case FieldType.Time:\n          fieldComponent = (\n            <Field\n              {...componentProps}\n              name={`${finalFieldName}.${fieldName}`}\n              component={UdpTimeInput}\n              label={fieldLabel}\n            />\n          );\n          break;\n        case FieldType.DateTime:\n          fieldComponent = (\n            <Field\n              {...componentProps}\n              name={`${finalFieldName}.${fieldName}`}\n              component={UdpDateTimeInput}\n              label={fieldLabel}\n              allowNull\n            />\n          );\n          break;\n        case FieldType.Toggle:\n          fieldComponent = (\n            <Field\n              defaultChecked={false}\n              {...componentProps}\n              name={`${finalFieldName}.${fieldName}`}\n              component={UdpSwitch}\n              type='checkbox'\n              label={fieldLabel}\n            />\n          );\n          break;\n        case FieldType.Checkbox:\n          fieldComponent = (\n            <Field\n              defaultChecked={false}\n              {...componentProps}\n              name={`${finalFieldName}.${fieldName}`}\n              component={UdpCheckbox}\n              type='checkbox'\n              label={fieldLabel}\n            />\n          );\n          break;\n        case FieldType.Number:\n          fieldComponent = (\n            <Field\n              {...componentProps}\n              name={`${finalFieldName}.${fieldName}`}\n              component={UdpNumberInput}\n              label={fieldLabel}\n              type='number'\n              validate={(value) =>\n                validateNumberRange(\n                  value,\n                  componentProps?.min,\n                  componentProps?.max\n                )\n              }\n            />\n          );\n          break;\n        default:\n          fieldComponent = (\n            <Field\n              {...componentProps}\n              name={`${finalFieldName}.${fieldName}`}\n              component={UdpTextInput}\n              label={fieldLabel}\n            />\n          );\n          break;\n      }\n\n      return fieldComponent;\n    },\n    [validateNumberRange]\n  );\n\n  const handleCloseSideSheet = useCallback(\n    (selectedRecords, fieldArray) => {\n      const formattedRecords = formatAddedSearchItems\n        ? formatAddedSearchItems(selectedRecords ?? [])\n        : selectedRecords;\n\n      if (formattedRecords?.length) {\n        for (const record of formattedRecords) {\n          if (\n            disableExcludeInSearch ||\n            !!!fieldArray?.value?.find(\n              (item) => item[formFieldId] === record[formFieldId]\n            )\n          )\n            fieldArray.push(record);\n        }\n      }\n\n      setOpenSideSheet(false);\n    },\n    [disableExcludeInSearch, formFieldId, formatAddedSearchItems]\n  );\n\n  const handleAddField = useCallback(\n    (fields) => {\n      if (enableSearchSideSheet) {\n        setOpenSideSheet(true);\n      } else {\n        if (defaultAddedItemValues) {\n          fields.push(defaultAddedItemValues);\n        } else {\n          fields.push({});\n        }\n      }\n    },\n    [defaultAddedItemValues, enableSearchSideSheet]\n  );\n\n  return (\n    <div>\n      <FieldArray name={fieldArrayName}>\n        {({ fields }) => {\n          return (\n            <div>\n              <div className={classes.sectionHeader}>\n                <div>\n                  {title && <UdpText variant='subtitle2'>{title}</UdpText>}\n                </div>\n                <UdpTooltip content={t('common.add', { defaultValue: 'Add' })}>\n                  <UdpIconButton\n                    onClick={() => {\n                      handleAddField(fields);\n                    }}\n                    iconName='add'\n                    ariaLabel={t('common.add', { defaultValue: 'Add' })}\n                    appearance='transparent'\n                  />\n                </UdpTooltip>\n              </div>\n\n              <div className={classes.cardsWrapper}>\n                {fields?.value?.length > 0 ? (\n                  fields.map((name, index) => {\n                    const rowTitle =\n                      getRowTitle && getRowTitle(fields?.value?.[index]);\n                    return (\n                      <UdpCard appearance='muted-lighter' key={index}>\n                        <div className={classes.cardHeader}>\n                          <UdpText variant='subtitle2'>{rowTitle}</UdpText>\n                          <UdpTooltip\n                            content={t('common.delete', {\n                              defaultValue: 'Delete'\n                            })}\n                          >\n                            <UdpIconButton\n                              onClick={() => fields.remove(index)}\n                              iconName='delete'\n                              ariaLabel={t('common.delete', {\n                                defaultValue: 'Delete'\n                              })}\n                              appearance='transparent'\n                            />\n                          </UdpTooltip>\n                        </div>\n                        {rowTitle && !removeTopLayoutUnit && (\n                          <UdpVerticalSpacer unit='xxs' />\n                        )}\n                        <div className={classes.fieldsWrapper}>\n                          {fieldConfig?.map((config, fieldKey) => {\n                            if (Array.isArray(config)) {\n                              return (\n                                <Grid container spacing={2} key={fieldKey}>\n                                  {config?.map((innerConfig, key) => {\n                                    return (\n                                      <Grid\n                                        item\n                                        xs={12}\n                                        sm={12 / config?.length}\n                                        key={key}\n                                      >\n                                        {getField(\n                                          name,\n                                          innerConfig,\n                                          fields?.value?.[index],\n                                          index\n                                        )}\n                                      </Grid>\n                                    );\n                                  })}\n                                </Grid>\n                              );\n                            } else {\n                              return getField(\n                                name,\n                                config,\n                                fields?.value?.[index],\n                                index\n                              );\n                            }\n                          })}\n                        </div>\n                      </UdpCard>\n                    );\n                  })\n                ) : (\n                  <UdpCard appearance='muted-lighter'>\n                    <UdpEmptyState\n                      iconName='error'\n                      heading={t('ui.fieldArray.noRecords', {\n                        defaultValue: 'No records to show'\n                      })}\n                      description={t('ui.fieldArray.tryAddingOne', {\n                        defaultValue: 'Try adding one'\n                      })}\n                    />\n                  </UdpCard>\n                )}\n              </div>\n              <SearchSideSheet\n                open={openSideSheet}\n                handleClose={(data) => {\n                  handleCloseSideSheet(data, fields);\n                }}\n                exclude={disableExcludeInSearch ? [] : fields?.value}\n                title={searchSideSheetTitle}\n                productApiBase={productApiBase}\n                searchApi={searchApi}\n                colDefs={searchGridColDefs}\n                idField={searchFieldId}\n                formIdField={formFieldId}\n                gridTitle={searchGridTitle}\n                handleSearch={handleSearch}\n                width={searchSideSheetWidth}\n                height={searchSideSheetHeight}\n                searchBarFieldName={searchBarFieldName}\n                defaultFilters={defaultFilters}\n              />\n            </div>\n          );\n        }}\n      </FieldArray>\n    </div>\n  );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,MAAMyB,YAAYzB,YAAY0B,WAAW;CACvCC,eAAe;EACbC,SAAS;EACTC,gBAAgB;EAChBC,KAAKJ,MAAMK,QAAQ,EAAE;EACrBC,YAAY;EACZC,cAAcP,MAAMK,QAAQ,EAAC;EAC9B;CACDG,eAAe;EACbN,SAAS;EACTO,eAAe;EAChB;CACDC,cAAc;EACZR,SAAS;EACTO,eAAe;EACfL,KAAKJ,MAAMK,QAAQ,EAAC;EACrB;CACDM,YAAY;EACVT,SAAS;EACTC,gBAAgB;EAChBC,KAAKJ,MAAMK,QAAQ,EAAE;EACrBC,YAAY;EACd;CACD,EAAE;;;;;;;;;;;;;;;;;;AAmBH,MAAaM,kBAAiBC,UAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAC5B,MAAA,EAAAC,OAAAC,IAAAC,gBAAAC,aAAAC,aAAAC,qBAAAC,IAAAC,wBAAAC,uBAAAC,sBAAAC,eAAAC,IAAAC,aAAAC,IAAAC,wBAAAC,gBAAAC,WAAAC,mBAAAC,iBAAAC,cAAAC,oBAAAC,gBAAAC,wBAAAC,IAAAC,sBAAAC,0BAuBI5B;CAtBF,MAAAG,QAAAC,OAAAyB,KAAAA,IAAA,MAAAzB;CAIA,MAAAI,sBAAAC,OAAAoB,KAAAA,IAAA,QAAApB;CAKA,MAAAI,gBAAAC,OAAAe,KAAAA,IAAA,OAAAf;CACA,MAAAC,cAAAC,OAAAa,KAAAA,IAAA,OAAAb;CASA,MAAAS,yBAAAC,OAAAG,KAAAA,IAAA,QAAAH;CAIF,MAAAI,UAAgB5C,WAAW;CAC3B,MAAA,CAAA6C,eAAAC,oBAA0CpE,SAAS,MAAM;CACzD,MAAA,EAAAqE,MAAcnE,gBAAgB;CAAC,IAAAoE;AAAA,KAAAjC,EAAA,OAAAgC,GAAA;AAG7BC,QAAAC,OAAAC,KAAAC,QAAA;AACE,OAAI,OAAOD,QAAQ,YAAYD,QAAQC,IAAG,QACjCH,EAAE,2BAA2B;IAAAK,cACpB;IAAiDF;IAEhE,CAAC;AAEJ,OAAI,OAAOC,QAAQ,YAAYF,QAAQE,IAAG,QACjCJ,EAAE,2BAA2B;IAAAK,cACpB;IAA8CD;IAE7D,CAAC;;AAGLpC,IAAA,KAAAgC;AAAAhC,IAAA,KAAAiC;OAAAA,MAAAjC,EAAA;CAfH,MAAAsC,sBAA4BL;CAiB1B,IAAAM;AAAA,KAAAvC,EAAA,OAAAsC,qBAAA;AAGAC,QAAAC,gBAAAC,QAAAC,UAAAC,UAAA;GACE,MAAA,EAAAC,WAAAC,WAAAC,eAA6CL;GAI7C,MAAAM,iBACE,OAAON,OAAMM,mBAAoB,aAC7BN,OAAMM,eAAgBL,UAAUC,MACX,GAArBF,OAAMM;GAEZ,IAAAC;AAA0BC,QAE1B,SAAQJ,WAAR;IAAiB,KACV7E,UAASkF;AACZF,sBACEA,sBAAAA,cAACA,OAADA;MAAMA,GACAD;MACE,MAAA,GAAGP,eAAc,GAAII;MAChB9D,WAAAA;MACJgE,OAAAA;MACP,CAAA;AAEJ,WAAAG;IAAM,KACHjF,UAASmF;AACZH,sBACEA,sBAAAA,cAACA,OAADA;MAAMA,GACAD;MACE,MAAA,GAAGP,eAAc,GAAII;MAChBnE,WAAAA;MACJqE,OAAAA;MACP,WAAA;MACA,CAAA;AAEJ,WAAAG;IAAM,KACHjF,UAASoF;AACZJ,sBACEA,sBAAAA,cAACA,gBAADA;MAAeA,GACTD;MACOP,WAAAA;MACIE,eAAAA;MACf,CAAA;AAEJ,WAAAO;IAAM,KACHjF,UAASqF;AACZL,sBACEA,sBAAAA,cAACA,OAADA;MAAMA,GACAD;MACE,MAAA,GAAGP,eAAc,GAAII;MAChBlE,WAAAA;MACJoE,OAAAA;MACP,CAAA;AAEJ,WAAAG;IAAM,KACHjF,UAASsF;AACZN,sBACEA,sBAAAA,cAACA,OAADA;MAAMA,GACAD;MACE,MAAA,GAAGP,eAAc,GAAII;MAChBjE,WAAAA;MACJmE,OAAAA;MACP,WAAA;MACA,CAAA;AAEJ,WAAAG;IAAM,KACHjF,UAASuF;AACZP,sBACEA,sBAAAA,cAACA,OAADA;MACkBA,gBAAAA;MAAKA,GACjBD;MACE,MAAA,GAAGP,eAAc,GAAII;MAChBhE,WAAAA;MACN,MAAA;MACEkE,OAAAA;MACP,CAAA;AAEJ,WAAAG;IAAM,KACHjF,UAASwF;AACZR,sBACEA,sBAAAA,cAACA,OAADA;MACkBA,gBAAAA;MAAKA,GACjBD;MACE,MAAA,GAAGP,eAAc,GAAII;MAChB/D,WAAAA;MACN,MAAA;MACEiE,OAAAA;MACP,CAAA;AAEJ,WAAAG;IAAM,KACHjF,UAASyF;AACZT,sBACEA,sBAAAA,cAACA,OAADA;MAAMA,GACAD;MACE,MAAA,GAAGP,eAAc,GAAII;MAChB7D,WAAAA;MACJ+D,OAAAA;MACF,MAAA;MACK,WAAAY,YACRpB,oBACEJ,SACAa,gBAAcZ,KACdY,gBAAcX,IAChB;MAEF,CAAA;AAEJ,WAAAa;IAAM,QAEND,kBACEA,sBAAAA,cAACA,OAADA;KAAMA,GACAD;KACE,MAAA,GAAGP,eAAc,GAAII;KAChBpE,WAAAA;KACJsE,OAAAA;KACP,CAAA;;AAGP,UAEME;;AACRhD,IAAA,KAAAsC;AAAAtC,IAAA,KAAAuC;OAAAA,MAAAvC,EAAA;CAxHH,MAAA2D,WAAiBpB;CA0Hf,IAAAqB;AAAA,KAAA5D,EAAA,OAAAwB,0BAAAxB,EAAA,OAAAc,eAAAd,EAAA,OAAAgB,wBAAA;AAGA4C,QAAAC,iBAAAC,eAAA;GACE,MAAAC,mBAAyB/C,yBACrBA,uBAAuB6C,mBAAA,EACT,CAAC,GAFMA;AAIzB,OAAIE,kBAAgBC;SACb,MAAAC,UAAgBF,iBACnB,KACEvC,0BAAA,CACC,CAAC,CAACsC,YAAU5B,OAAagC,MACxBC,SAAUA,KAAKrD,iBAAiBmD,OAAOnD,aACxC,CAEDgD,YAAUM,KAAMH,OAAO;;AAI7BlC,oBAAiB,MAAM;;AACxB/B,IAAA,KAAAwB;AAAAxB,IAAA,KAAAc;AAAAd,IAAA,KAAAgB;AAAAhB,IAAA,KAAA4D;OAAAA,MAAA5D,EAAA;CAnBH,MAAAqE,uBAA6BT;CAqB3B,IAAAU;AAAA,KAAAtE,EAAA,OAAAS,0BAAAT,EAAA,OAAAU,uBAAA;AAGA4D,QAAAC,WAAA;AACE,OAAI7D,sBACFqB,kBAAiB,KAAK;YAElBtB,uBACF8D,QAAMH,KAAM3D,uBAAuB;OAEnC8D,QAAMH,KAAM,EAAE,CAAC;;AAGpBpE,IAAA,KAAAS;AAAAT,IAAA,KAAAU;AAAAV,IAAA,MAAAsE;OAAAA,MAAAtE,EAAA;CAXH,MAAAwE,iBAAuBF;CAarB,IAAAG;AAAA,KAAAzE,EAAA,QAAA6B,QAAAhC,cAAAG,EAAA,QAAA6B,QAAAjC,gBAAAI,EAAA,QAAA6B,QAAAnC,iBAAAM,EAAA,QAAA6B,QAAA1C,iBAAAa,EAAA,QAAAuB,kBAAAvB,EAAA,QAAAwB,0BAAAxB,EAAA,QAAAM,eAAAN,EAAA,QAAAc,eAAAd,EAAA,QAAA2D,YAAA3D,EAAA,QAAAK,eAAAL,EAAA,QAAAwE,kBAAAxE,EAAA,QAAAqE,wBAAArE,EAAA,QAAAqB,gBAAArB,EAAA,QAAA8B,iBAAA9B,EAAA,QAAAiB,kBAAAjB,EAAA,QAAAO,uBAAAP,EAAA,QAAAkB,aAAAlB,EAAA,QAAAsB,sBAAAtB,EAAA,QAAAY,iBAAAZ,EAAA,QAAAmB,qBAAAnB,EAAA,QAAAoB,mBAAApB,EAAA,QAAA2B,yBAAA3B,EAAA,QAAAW,wBAAAX,EAAA,QAAA0B,wBAAA1B,EAAA,QAAAgC,KAAAhC,EAAA,QAAAE,OAAA;AAKKuE,QAAAC,QAAA;GAAC,MAAA,EAAAH,QAAAI,aAAAD;AAAU,UAER,sBAAA,cAAA,OAAA,MACE,sBAAA,cAAA,OAAA,EAAgB,WAAA7C,QAAO1C,eAgBvB,EAfE,sBAAA,cAAA,OAAA,MACGe,SAAS,sBAAA,cAAC,SAAD,EAAiB,SAAA,aAA4B,EAAfA,MAAe,CAEzD,EAAA,sBAAA,cAAC,YAAD,EAAqB,SAAA8B,EAAE,cAAc,EAAAK,cAAgB,OAAO,CAAA,EAU9D,EATI,sBAAA,cAAC,eAAD;IACW,eAAA;AACPmC,oBAAeD,SAAO;;IAEf,UAAA;IACE,WAAAvC,EAAE,cAAc,EAAAK,cAAgB,OAAO,CAAA;IACvC,YAAA;IAEf,CAAA,CACF,CAEA,EAAA,sBAAA,cAAA,OAAA,EAAgB,WAAAR,QAAOjC,cA8EvB,EA7EG2E,UAAMrC,OAAe8B,SAAG,IACvBO,SAAMK,KAAKC,MAAAC,YAAA;IACT,MAAAC,WACE1E,eAAeA,YAAYkE,UAAMrC,QAAUS,SAAO;AAAC,WAEnD,sBAAA,cAAC,SAAD;KAAoB,YAAA;KAAqBA,KAAAA;KAuD/B,EAtDR,sBAAA,cAAA,OAAA,EAAgB,WAAAd,QAAOhC,YAiBtB,EAhBC,sBAAA,cAAC,SAAD,EAAiB,SAAA,aACjB,EAD8BkF,SAC9B,EAAA,sBAAA,cAAC,YAAD,EACW,SAAA/C,EAAE,iBAAiB,EAAAK,cACZ,UACf,CAAA,EAWL,EATI,sBAAA,cAAC,eAAD;KACW,eAAMkC,SAAMS,OAAQrC,QAAK;KACzB,UAAA;KACE,WAAAX,EAAE,iBAAiB,EAAAK,cACd,UACf,CAAA;KACU,YAAA;KAEf,CAAA,CACF,CACC,EAAA0C,YAAA,CAAaxE,uBACZ,sBAAA,cAAC,mBAAD,EAAwB,MAAA,OAC1B,CAAA,EACA,sBAAA,cAAA,OAAA,EAAgB,WAAAsB,QAAOnC,eAkCzB,EAjCKY,aAAWsE,KAAMK,UAAAC,aAAA;AAChB,SAAIC,MAAKC,QAAS3C,SAAO,CAAA,QAErB,sBAAA,cAAC,QAAD;MAAM,WAAA;MAAmB,SAAA;MAAQyC,KAAAA;MAkB1B,EAjBJzC,UAAMmC,KAAMS,aAAAC,QAET,sBAAA,cAAC,QAAD;MACE,MAAA;MACI,IAAA;MACA,IAAA,KAAK7C,UAAMuB;MACVsB;MAUV,EARM3B,SACCkB,MACAQ,aACAd,UAAMrC,QAAUS,UAChBA,QACF,CAGL,CAAA,CACI;SAAA,QAGFgB,SACLkB,MACApC,UACA8B,UAAMrC,QAAUS,UAChBA,QACD;MAEJ,CAEL,CAAU;KAef,GAXC,sBAAA,cAAC,SAAD,EAAoB,YAAA,iBAWtB,EAVI,sBAAA,cAAC,eAAD;IACW,UAAA;IACA,SAAAX,EAAE,2BAA2B,EAAAK,cACtB,sBACf,CAAA;IACY,aAAAL,EAAE,8BAA8B,EAAAK,cAC7B,kBACf,CAAA;IAEL,CAAA,CACF,CAEF,EAAA,sBAAA,cAAC,iBAAD;IACQP,MAAAA;IACO,cAAAyD,SAAA;AACXlB,0BAAqBkB,MAAMhB,SAAO;;IAE3B,SAAA/C,yBAAA,EAA2C,GAAb+C,UAAMrC;IACtCvB,OAAAA;IACSM;IACLC;IACFC,SAAAA;IACAP,SAAAA;IACIE,aAAAA;IACFM,WAAAA;IACGC;IACPK,OAAAA;IACCC,QAAAA;IACYL;IACJC;IAEpB,CAAA,CAAM;;AAETvB,IAAA,MAAA6B,QAAAhC;AAAAG,IAAA,MAAA6B,QAAAjC;AAAAI,IAAA,MAAA6B,QAAAnC;AAAAM,IAAA,MAAA6B,QAAA1C;AAAAa,IAAA,MAAAuB;AAAAvB,IAAA,MAAAwB;AAAAxB,IAAA,MAAAM;AAAAN,IAAA,MAAAc;AAAAd,IAAA,MAAA2D;AAAA3D,IAAA,MAAAK;AAAAL,IAAA,MAAAwE;AAAAxE,IAAA,MAAAqE;AAAArE,IAAA,MAAAqB;AAAArB,IAAA,MAAA8B;AAAA9B,IAAA,MAAAiB;AAAAjB,IAAA,MAAAO;AAAAP,IAAA,MAAAkB;AAAAlB,IAAA,MAAAsB;AAAAtB,IAAA,MAAAY;AAAAZ,IAAA,MAAAmB;AAAAnB,IAAA,MAAAoB;AAAApB,IAAA,MAAA2B;AAAA3B,IAAA,MAAAW;AAAAX,IAAA,MAAA0B;AAAA1B,IAAA,MAAAgC;AAAAhC,IAAA,MAAAE;AAAAF,IAAA,MAAAyE;OAAAA,MAAAzE,EAAA;CAAA,IAAA0E;AAAA,KAAA1E,EAAA,QAAAI,kBAAAJ,EAAA,QAAAyE,IAAA;AAxHLC,QAAA,sBAAA,cAAA,OAAA,MACE,sBAAA,cAAC,YAAD,EAAkBtE,MAAAA,gBAyHpB,EAxHKqE,GAwHL,CAAM;AAAAzE,IAAA,MAAAI;AAAAJ,IAAA,MAAAyE;AAAAzE,IAAA,MAAA0E;OAAAA,OAAA1E,EAAA;AAAA,QA1HN0E"}