{"version":3,"file":"AmbientAutoComplete.mjs","names":["React","useCallback","useEffect","useState","TextField","makeStyles","Popper","Autocomplete","useStyles","theme","input","borderRadius","minHeight","padding","paddingTop","paddingBottom","props","isMultiple","marginTop","spacing","marginLeft","formTextInput","fontSize","labelRoot","root","paddingLeft","noLabel","formControl","width","AutoCompletePopper","$","_c","t0","AmbientAutoComplete","label","placeholder","options","textFieldProps","disabled","onChange","onChangeProp","value","optionKey","additionalOnChangeAction","classes","classProps","variant","inputProps","inputPropClasses","customPopper","disableClearable","defaultValue","additionalOptionKey","limitTags","renderTags","getOptionLabelFunction","option","groupBy","size","id","udprecordid","freeSolo","formatUserInputValue","filterOptions","filterOptionsProp","loading","disableCloseOnSelect","getOptionDisabled","other","autocompleteRoot","inputValue","setInputValue","shouldControlInputValue","autoCompleteId","getOptionLabel","formatRawInput","raw","getComparableLabel","normalizeFilterValue","val","toLowerCase","trim","defaultFilterOptions","optionList","filter","includes","hasMatchingValue","values","candidate","Array","isArray","undefined","candidateLabel","some","item","itemKey","candidateKey","commitFreeSoloMultiple","formatted","currentValues","nextValues","e","nextValue","reason","resolvedValue","length","trimmed","pop","push","handleInputChange","newInputValue","handleClose","event","updatedValue","params","onKeyDown","defaultMuiPrevented","key","didCommit","preventDefault","stopPropagation","InputProps","shrink"],"sources":["../../../../src/UI/inputs/textField/AmbientAutoComplete.jsx"],"sourcesContent":["/* eslint-disable no-use-before-define */\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { TextField, makeStyles, Popper } from '@material-ui/core';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\n\nconst useStyles = makeStyles((theme) => ({\n  input: {\n    borderRadius: 2,\n    minHeight: 32,\n    padding: 0,\n    paddingTop: '0 !important',\n    paddingBottom: (props) => (props.isMultiple ? '0 !important' : 10),\n    marginTop: 3,\n    '& .MuiFilledInput-inputMarginDense': {\n      paddingTop: 8\n    },\n    '& .MuiFilledInput-root': {\n      paddingTop: 0\n    },\n    '& .MuiInputAdornment-filled.MuiInputAdornment-positionStart:not(.MuiInputAdornment-hiddenLabel)':\n      {\n        marginTop: theme.spacing(0.5),\n        marginLeft: theme.spacing(1)\n      }\n  },\n  formTextInput: {\n    fontSize: 14,\n    marginTop: '2px !important',\n    paddingBottom: '2px !important'\n  },\n  labelRoot: {\n    fontSize: 14\n  },\n  root: {\n    marginTop: 25,\n    '& .MuiFormLabel-root': {\n      marginTop: -30,\n      marginLeft: -11\n    },\n    '& .MuiInputAdornment-root': {\n      paddingLeft: theme.spacing(1)\n    }\n  },\n  noLabel: {\n    marginTop: theme.spacing(1)\n  },\n  formControl: {\n    width: '100%'\n  }\n}));\n\nconst AutoCompletePopper = (props) => {\n  return <Popper {...props} placement='bottom-start' />;\n};\n\nexport const AmbientAutoComplete = (props) => {\n  const {\n    label,\n    placeholder,\n    options,\n    textFieldProps,\n    disabled,\n    onChange: onChangeProp,\n    value,\n    optionKey,\n    additionalOnChangeAction,\n    classes: classProps,\n    variant = 'filled',\n    inputProps,\n    inputPropClasses,\n    customPopper,\n    disableClearable = false,\n    defaultValue,\n    additionalOptionKey,\n    isMultiple = false,\n    limitTags,\n    renderTags,\n    getOptionLabelFunction = (option) => option,\n    groupBy = null,\n    size = 'medium',\n    id,\n    udprecordid,\n    freeSolo = false,\n    formatUserInputValue,\n    filterOptions: filterOptionsProp,\n    loading,\n    disableCloseOnSelect = false,\n    getOptionDisabled,\n    ...other\n  } = props;\n\n  const classes = useStyles(props);\n  const { autocompleteRoot } = classProps || {};\n  const [inputValue, setInputValue] = useState('');\n  const shouldControlInputValue = freeSolo;\n  const autoCompleteId = id ?? 'autocomplete';\n\n  const getOptionLabel = useCallback(\n    (option) => {\n      if (!option) return '';\n      if (typeof option === 'string') return option;\n      if (optionKey && typeof option === 'object') {\n        return `${getOptionLabelFunction(option[optionKey])}${\n          additionalOptionKey ? ` - (${option[additionalOptionKey]})` : ''\n        }`;\n      }\n      return getOptionLabelFunction(option) || '';\n    },\n    [optionKey, additionalOptionKey, getOptionLabelFunction]\n  );\n\n  const formatRawInput = useCallback(\n    (raw) => (formatUserInputValue ? formatUserInputValue(raw) : raw),\n    [formatUserInputValue]\n  );\n\n  const getComparableLabel = useCallback(\n    (option) => {\n      if (!option) return '';\n      if (typeof option === 'string') return option;\n      return getOptionLabel(option);\n    },\n    [getOptionLabel]\n  );\n\n  const normalizeFilterValue = useCallback(\n    (val) => `${val ?? ''}`.toLowerCase().trim(),\n    []\n  );\n\n  const defaultFilterOptions = useCallback(\n    (optionList) => {\n      const input = normalizeFilterValue(inputValue);\n      if (!input) return optionList;\n      return optionList.filter((option) =>\n        normalizeFilterValue(getComparableLabel(option)).includes(input)\n      );\n    },\n    [getComparableLabel, normalizeFilterValue, inputValue]\n  );\n\n  const hasMatchingValue = useCallback(\n    (values, candidate) => {\n      if (\n        !Array.isArray(values) ||\n        candidate === null ||\n        candidate === undefined\n      )\n        return false;\n      const candidateLabel = getComparableLabel(candidate);\n\n      return values.some((item) => {\n        if (item === candidate) return true;\n        if (\n          optionKey &&\n          typeof item === 'object' &&\n          typeof candidate === 'object'\n        ) {\n          const itemKey = item?.[optionKey];\n          const candidateKey = candidate?.[optionKey];\n          if (itemKey !== undefined && candidateKey !== undefined)\n            return itemKey === candidateKey;\n        }\n        if (\n          optionKey &&\n          typeof item === 'object' &&\n          typeof candidate === 'string'\n        ) {\n          const itemKey = item?.[optionKey];\n          if (itemKey !== undefined) return `${itemKey}` === candidate;\n        }\n        return getComparableLabel(item) === candidateLabel;\n      });\n    },\n    [optionKey, getComparableLabel]\n  );\n\n  const commitFreeSoloMultiple = useCallback(() => {\n    if (!freeSolo || !isMultiple) return false;\n    const raw = (inputValue || '').trim();\n    if (!raw) return false;\n\n    const formatted = formatRawInput(raw);\n    if (!formatted) {\n      setInputValue('');\n      return false;\n    }\n\n    const currentValues = Array.isArray(value) ? value : [];\n    if (hasMatchingValue(currentValues, formatted)) {\n      setInputValue('');\n      return false;\n    }\n\n    const nextValues = [...currentValues, formatted];\n    if (additionalOnChangeAction) additionalOnChangeAction(nextValues);\n    onChangeProp?.(nextValues);\n    setInputValue('');\n    return true;\n  }, [\n    freeSolo,\n    isMultiple,\n    inputValue,\n    formatRawInput,\n    value,\n    hasMatchingValue,\n    additionalOnChangeAction,\n    onChangeProp\n  ]);\n\n  const onChange = useCallback(\n    (e, nextValue, reason) => {\n      let resolvedValue = nextValue;\n\n      if (freeSolo && isMultiple && reason === 'create-option') {\n        const values = Array.isArray(nextValue) ? [...nextValue] : [];\n        const raw = values[values.length - 1];\n\n        if (typeof raw === 'string') {\n          const trimmed = raw.trim();\n          values.pop();\n          if (trimmed) {\n            const formatted = formatRawInput(trimmed);\n            if (formatted && !hasMatchingValue(values, formatted)) {\n              values.push(formatted);\n            }\n          }\n          setInputValue('');\n          resolvedValue = values;\n        }\n      }\n\n      if (\n        freeSolo &&\n        isMultiple &&\n        (reason === 'select-option' || reason === 'clear')\n      ) {\n        setInputValue('');\n      }\n\n      if (additionalOnChangeAction) additionalOnChangeAction(resolvedValue);\n      return onChangeProp?.(resolvedValue);\n    },\n    [\n      additionalOnChangeAction,\n      freeSolo,\n      isMultiple,\n      formatRawInput,\n      hasMatchingValue,\n      onChangeProp\n    ]\n  );\n\n  const handleInputChange = useCallback(\n    (e, newInputValue, reason) => {\n      const nextValue = newInputValue ?? '';\n      if (freeSolo && isMultiple && reason === 'reset') return;\n\n      setInputValue(nextValue);\n\n      if (!freeSolo || isMultiple) return;\n\n      if (reason === 'input' || reason === 'clear') {\n        if (additionalOnChangeAction) additionalOnChangeAction(nextValue);\n        onChangeProp?.(nextValue);\n      }\n    },\n    [freeSolo, isMultiple, additionalOnChangeAction, onChangeProp]\n  );\n\n  const handleClose = useCallback(\n    (event, reason) => {\n      if (!freeSolo) return;\n      const raw = (inputValue || '').trim();\n      if (!raw) return;\n\n      if (isMultiple) {\n        if (reason !== 'blur') return;\n        commitFreeSoloMultiple();\n        return;\n      }\n\n      if (value && typeof value === 'object') return;\n\n      if (\n        reason === 'blur' ||\n        reason === 'enter' ||\n        reason === 'create-option'\n      ) {\n        const updatedValue = formatRawInput(raw);\n        if (additionalOnChangeAction) additionalOnChangeAction(updatedValue);\n        onChangeProp?.(updatedValue);\n      }\n    },\n    [\n      freeSolo,\n      isMultiple,\n      value,\n      inputValue,\n      formatRawInput,\n      commitFreeSoloMultiple,\n      additionalOnChangeAction,\n      onChangeProp\n    ]\n  );\n\n  useEffect(() => {\n    if (!freeSolo || isMultiple) return;\n    if (value === null || value === undefined) {\n      if (inputValue !== '') setInputValue('');\n      return;\n    }\n    const nextValue = typeof value === 'string' ? value : getOptionLabel(value);\n    if (nextValue !== inputValue) {\n      setInputValue(nextValue || '');\n    }\n  }, [freeSolo, isMultiple, value, getOptionLabel, inputValue]);\n\n  return (\n    <Autocomplete\n      id={autoCompleteId}\n      multiple={isMultiple}\n      limitTags={limitTags}\n      disabled={disabled}\n      options={options || []}\n      loading={loading}\n      getOptionLabel={getOptionLabel}\n      getOptionSelected={(option, val) =>\n        optionKey ? option[optionKey] === val[optionKey] : option === val\n      }\n      groupBy={groupBy}\n      onChange={onChange}\n      inputValue={shouldControlInputValue ? inputValue : undefined}\n      onInputChange={shouldControlInputValue ? handleInputChange : undefined}\n      onClose={handleClose}\n      value={value || (isMultiple ? [] : null)}\n      getOptionDisabled={getOptionDisabled}\n      disableCloseOnSelect={disableCloseOnSelect}\n      className={autocompleteRoot}\n      classes={{\n        root: classes.formControl\n      }}\n      PopperComponent={customPopper || AutoCompletePopper}\n      disableClearable={disableClearable}\n      defaultValue={defaultValue}\n      size={size}\n      filterOptions={\n        filterOptionsProp || (freeSolo ? defaultFilterOptions : undefined)\n      }\n      freeSolo={freeSolo}\n      renderInput={(params) => (\n        <div className={label ? classes.root : classes.noLabel}>\n          <TextField\n            {...textFieldProps}\n            {...params}\n            {...other}\n            inputProps={{\n              ...params.inputProps,\n              udprecordid: udprecordid,\n              onKeyDown: (event) => {\n                params.inputProps?.onKeyDown?.(event);\n                textFieldProps?.onKeyDown?.(event);\n\n                if (event.defaultMuiPrevented) return;\n                if (!freeSolo || !isMultiple) return;\n                if (event.key !== 'Enter') return;\n\n                const didCommit = commitFreeSoloMultiple();\n                if (didCommit) {\n                  event.preventDefault();\n                  event.stopPropagation();\n                }\n              }\n            }}\n            label={label}\n            margin='dense'\n            variant={variant}\n            placeholder={placeholder}\n            size='small'\n            InputProps={{\n              ...params.InputProps,\n              classes: {\n                root: classes.input,\n                input: classes.formTextInput,\n                ...props.InputProps?.classes\n              }\n            }}\n            InputLabelProps={{\n              shrink: false,\n              classes: {\n                root: classes.labelRoot\n              }\n            }}\n          />\n        </div>\n      )}\n      renderTags={renderTags}\n    />\n  );\n};\n"],"mappings":";;;;;AAKA,MAAMQ,YAAYH,YAAYI,WAAW;CACvCC,OAAO;EACLC,cAAc;EACdC,WAAW;EACXC,SAAS;EACTC,YAAY;EACZC,gBAAgBC,UAAWA,MAAMC,aAAa,iBAAiB;EAC/DC,WAAW;EACX,sCAAsC,EACpCJ,YAAY,GACb;EACD,0BAA0B,EACxBA,YAAY,GACb;EACD,mGACE;GACEI,WAAWT,MAAMU,QAAQ,GAAI;GAC7BC,YAAYX,MAAMU,QAAQ,EAAC;GAC7B;EACH;CACDE,eAAe;EACbC,UAAU;EACVJ,WAAW;EACXH,eAAe;EAChB;CACDQ,WAAW,EACTD,UAAU,IACX;CACDE,MAAM;EACJN,WAAW;EACX,wBAAwB;GACtBA,WAAW;GACXE,YAAY;GACb;EACD,6BAA6B,EAC3BK,aAAahB,MAAMU,QAAQ,EAAC,EAC9B;EACD;CACDO,SAAS,EACPR,WAAWT,MAAMU,QAAQ,EAAC,EAC3B;CACDQ,aAAa,EACXC,OAAO,QACT;CACD,EAAE;AAEH,MAAMC,sBAAqBb,UAAA;CAAA,MAAAc,IAAAC,EAAA,EAAA;CAAA,IAAAC;AAAA,KAAAF,EAAA,OAAAd,OAAA;AAClBgB,OAAA,sBAAA,cAAC,QAAD;GAAO,GAAKhB;GAAiB,WAAA;GAAiB,CAAA;AAAAc,IAAA,KAAAd;AAAAc,IAAA,KAAAE;OAAAA,MAAAF,EAAA;AAAA,QAA9CE;;AAGT,MAAaC,uBAAuBjB,UAAU;CAC5C,MAAM,EACJkB,OACAC,aACAC,SACAC,gBACAC,UACAC,UAAUC,cACVC,OACAC,WACAC,0BACAC,SAASC,YACTC,UAAU,UACVC,YACAC,kBACAC,cACAC,mBAAmB,OACnBC,cACAC,qBACAnC,aAAa,OACboC,WACAC,YACAC,0BAA0BC,WAAWA,QACrCC,UAAU,MACVC,OAAO,UACPC,IACAC,aACAC,WAAW,OACXC,sBACAC,eAAeC,mBACfC,SACAC,uBAAuB,OACvBC,mBACA,GAAGC,UACDpD;CAEJ,MAAM4B,UAAUpC,UAAUQ,MAAM;CAChC,MAAM,EAAEqD,qBAAqBxB,cAAc,EAAE;CAC7C,MAAM,CAACyB,YAAYC,iBAAiBpE,SAAS,GAAG;CAChD,MAAMqE,0BAA0BX;CAChC,MAAMY,iBAAiBd,MAAM;CAE7B,MAAMe,iBAAiBzE,aACpBuD,aAAW;AACV,MAAI,CAACA,SAAQ,QAAO;AACpB,MAAI,OAAOA,aAAW,SAAU,QAAOA;AACvC,MAAId,aAAa,OAAOc,aAAW,SACjC,QAAO,GAAGD,uBAAuBC,SAAOd,WAAW,GACjDU,sBAAsB,OAAOI,SAAOJ,qBAAoB,KAAM;AAGlE,SAAOG,uBAAuBC,SAAO,IAAI;IAE3C;EAACd;EAAWU;EAAqBG;EACnC,CAAC;CAED,MAAMoB,iBAAiB1E,aACpB2E,QAASd,uBAAuBA,qBAAqBc,IAAI,GAAGA,KAC7D,CAACd,qBACH,CAAC;CAED,MAAMe,qBAAqB5E,aACxBuD,aAAW;AACV,MAAI,CAACA,SAAQ,QAAO;AACpB,MAAI,OAAOA,aAAW,SAAU,QAAOA;AACvC,SAAOkB,eAAelB,SAAO;IAE/B,CAACkB,eACH,CAAC;CAED,MAAMI,uBAAuB7E,aAC1B8E,QAAQ,GAAGA,OAAO,KAAKC,aAAa,CAACC,MAAM,EAC5C,EACF,CAAC;CAED,MAAMC,uBAAuBjF,aAC1BkF,eAAe;EACd,MAAMzE,QAAQoE,qBAAqBR,WAAW;AAC9C,MAAI,CAAC5D,MAAO,QAAOyE;AACnB,SAAOA,WAAWC,QAAQ5B,aACxBsB,qBAAqBD,mBAAmBrB,SAAO,CAAC,CAAC6B,SAAS3E,MAC5D,CAAC;IAEH;EAACmE;EAAoBC;EAAsBR;EAC7C,CAAC;CAED,MAAMgB,mBAAmBrF,aACtBsF,QAAQC,cAAc;AACrB,MACE,CAACC,MAAMC,QAAQH,OAAO,IACtBC,cAAc,QACdA,cAAcG,KAAAA,EAEd,QAAO;EACT,MAAMC,iBAAiBf,mBAAmBW,UAAU;AAEpD,SAAOD,OAAOM,MAAMC,SAAS;AAC3B,OAAIA,SAASN,UAAW,QAAO;AAC/B,OACE9C,aACA,OAAOoD,SAAS,YAChB,OAAON,cAAc,UACrB;IACA,MAAMO,UAAUD,OAAOpD;IACvB,MAAMsD,eAAeR,YAAY9C;AACjC,QAAIqD,YAAYJ,KAAAA,KAAaK,iBAAiBL,KAAAA,EAC5C,QAAOI,YAAYC;;AAEvB,OACEtD,aACA,OAAOoD,SAAS,YAChB,OAAON,cAAc,UACrB;IACA,MAAMO,YAAUD,OAAOpD;AACvB,QAAIqD,cAAYJ,KAAAA,EAAW,QAAO,GAAGI,gBAAcP;;AAErD,UAAOX,mBAAmBiB,KAAK,KAAKF;IACpC;IAEJ,CAAClD,WAAWmC,mBACd,CAAC;CAED,MAAMoB,yBAAyBhG,kBAAkB;AAC/C,MAAI,CAAC4D,YAAY,CAAC5C,WAAY,QAAO;EACrC,MAAM2D,SAAON,cAAc,IAAIW,MAAM;AACrC,MAAI,CAACL,MAAK,QAAO;EAEjB,MAAMsB,YAAYvB,eAAeC,MAAI;AACrC,MAAI,CAACsB,WAAW;AACd3B,iBAAc,GAAG;AACjB,UAAO;;EAGT,MAAM4B,gBAAgBV,MAAMC,QAAQjD,MAAM,GAAGA,QAAQ,EAAE;AACvD,MAAI6C,iBAAiBa,eAAeD,UAAU,EAAE;AAC9C3B,iBAAc,GAAG;AACjB,UAAO;;EAGT,MAAM6B,aAAa,CAAC,GAAGD,eAAeD,UAAU;AAChD,MAAIvD,yBAA0BA,0BAAyByD,WAAW;AAClE5D,iBAAe4D,WAAW;AAC1B7B,gBAAc,GAAG;AACjB,SAAO;IACN;EACDV;EACA5C;EACAqD;EACAK;EACAlC;EACA6C;EACA3C;EACAH;EACD,CAAC;CAEF,MAAMD,WAAWtC,aACdoG,GAAGC,WAAWC,WAAW;EACxB,IAAIC,gBAAgBF;AAEpB,MAAIzC,YAAY5C,cAAcsF,WAAW,iBAAiB;GACxD,MAAMhB,WAASE,MAAMC,QAAQY,UAAU,GAAG,CAAC,GAAGA,UAAU,GAAG,EAAE;GAC7D,MAAM1B,QAAMW,SAAOA,SAAOkB,SAAS;AAEnC,OAAI,OAAO7B,UAAQ,UAAU;IAC3B,MAAM8B,UAAU9B,MAAIK,MAAM;AAC1BM,aAAOoB,KAAK;AACZ,QAAID,SAAS;KACX,MAAMR,cAAYvB,eAAe+B,QAAQ;AACzC,SAAIR,eAAa,CAACZ,iBAAiBC,UAAQW,YAAU,CACnDX,UAAOqB,KAAKV,YAAU;;AAG1B3B,kBAAc,GAAG;AACjBiC,oBAAgBjB;;;AAIpB,MACE1B,YACA5C,eACCsF,WAAW,mBAAmBA,WAAW,SAE1ChC,eAAc,GAAG;AAGnB,MAAI5B,yBAA0BA,0BAAyB6D,cAAc;AACrE,SAAOhE,eAAegE,cAAc;IAEtC;EACE7D;EACAkB;EACA5C;EACA0D;EACAW;EACA9C;EAEJ,CAAC;CAED,MAAMqE,oBAAoB5G,aACvBoG,KAAGS,eAAeP,aAAW;EAC5B,MAAMD,cAAYQ,iBAAiB;AACnC,MAAIjD,YAAY5C,cAAcsF,aAAW,QAAS;AAElDhC,gBAAc+B,YAAU;AAExB,MAAI,CAACzC,YAAY5C,WAAY;AAE7B,MAAIsF,aAAW,WAAWA,aAAW,SAAS;AAC5C,OAAI5D,yBAA0BA,0BAAyB2D,YAAU;AACjE9D,kBAAe8D,YAAU;;IAG7B;EAACzC;EAAU5C;EAAY0B;EAA0BH;EACnD,CAAC;CAED,MAAMuE,cAAc9G,aACjB+G,OAAOT,aAAW;AACjB,MAAI,CAAC1C,SAAU;EACf,MAAMe,SAAON,cAAc,IAAIW,MAAM;AACrC,MAAI,CAACL,MAAK;AAEV,MAAI3D,YAAY;AACd,OAAIsF,aAAW,OAAQ;AACvBN,2BAAwB;AACxB;;AAGF,MAAIxD,SAAS,OAAOA,UAAU,SAAU;AAExC,MACE8D,aAAW,UACXA,aAAW,WACXA,aAAW,iBACX;GACA,MAAMU,eAAetC,eAAeC,MAAI;AACxC,OAAIjC,yBAA0BA,0BAAyBsE,aAAa;AACpEzE,kBAAeyE,aAAa;;IAGhC;EACEpD;EACA5C;EACAwB;EACA6B;EACAK;EACAsB;EACAtD;EACAH;EAEJ,CAAC;AAEDtC,iBAAgB;AACd,MAAI,CAAC2D,YAAY5C,WAAY;AAC7B,MAAIwB,UAAU,QAAQA,UAAUkD,KAAAA,GAAW;AACzC,OAAIrB,eAAe,GAAIC,eAAc,GAAG;AACxC;;EAEF,MAAM+B,cAAY,OAAO7D,UAAU,WAAWA,QAAQiC,eAAejC,MAAM;AAC3E,MAAI6D,gBAAchC,WAChBC,eAAc+B,eAAa,GAAG;IAE/B;EAACzC;EAAU5C;EAAYwB;EAAOiC;EAAgBJ;EAAW,CAAC;AAE7D,QACE,sBAAA,cAAC,cAAD;EACE,IAAIG;EACJ,UAAUxD;EACCoC;EACDf;EACV,SAASF,WAAW,EAAE;EACb6B;EACOS;EAChB,oBAAoBlB,UAAQuB,UAC1BrC,YAAYc,SAAOd,eAAeqC,MAAIrC,aAAac,aAAWuB;EAEvDtB;EACClB;EACV,YAAYiC,0BAA0BF,aAAaqB,KAAAA;EACnD,eAAenB,0BAA0BqC,oBAAoBlB,KAAAA;EAC7D,SAASoB;EACT,OAAOtE,UAAUxB,aAAa,EAAE,GAAG;EAChBkD;EACGD;EACtB,WAAWG;EACX,SAAS,EACP7C,MAAMoB,QAAQjB,aACf;EACD,iBAAiBsB,gBAAgBpB;EACfqB;EACJC;EACRO;EACN,eACEM,sBAAsBH,WAAWqB,uBAAuBS,KAAAA;EAEhD9B;EACV,cAAcqD,WACZ,sBAAA,cAAC,OAAD,EAAK,WAAWhF,QAAQU,QAAQpB,OAAOoB,QAAQlB,SA4ChD,EA3CG,sBAAA,cAAC,WAAD;GACE,GAAIW;GACJ,GAAI6E;GACJ,GAAI9C;GACJ,YAAY;IACV,GAAG8C,OAAOnE;IACGa;IACbuD,YAAYH,YAAU;AACpBE,YAAOnE,YAAYoE,YAAYH,QAAM;AACrC3E,qBAAgB8E,YAAYH,QAAM;AAElC,SAAIA,QAAMI,oBAAqB;AAC/B,SAAI,CAACvD,YAAY,CAAC5C,WAAY;AAC9B,SAAI+F,QAAMK,QAAQ,QAAS;AAG3B,SADkBpB,wBAAwB,EAC3B;AACbe,cAAMO,gBAAgB;AACtBP,cAAMQ,iBAAiB;;;IAG5B;GACMtF;GACP,QAAO;GACEY;GACIX;GACb,MAAK;GACL,YAAY;IACV,GAAG+E,OAAOO;IACV7E,SAAS;KACPpB,MAAMoB,QAAQlC;KACdA,OAAOkC,QAAQvB;KACf,GAAGL,MAAMyG,YAAY7E;KACvB;IACD;GACD,iBAAiB;IACf8E,QAAQ;IACR9E,SAAS,EACPpB,MAAMoB,QAAQrB,WAChB;IACD;GAAC,CAAA,CAGP;EACW+B;EACZ,CAAA"}