{"version":3,"file":"filters-mQMlkHHM.cjs","names":["alpha","Button","Chip","IconButton","Stack","removeButtonSx","p","ml","mr","fontSize","color","theme","palette","text","primary","backgroundColor","Chips","t0","$","_c","chips","onClearAll","labels","length","t1","filters","t2","Symbol","for","listStyle","m","flexWrap","t3","clearAll","t4","chip","key","label","onRemove","map","t5","Box","Button","Drawer","Stack","Typography","FilterDrawer","t0","$","_c","open","onClose","filters","activeFilterCount","onClearFilters","labels","dir","t1","undefined","t2","t3","paper","t4","Symbol","for","width","p","display","flexDirection","gap","height","t5","t6","flex","t7","t8","justifyContent","pt","borderTop","borderColor","flexShrink","t9","t10","clearAll","t11","filtersDone","t12","t13","t14","Box","Button","Paper","Popper","Stack","Typography","useEffect","useRef","FilterPopover","t0","$","_c","open","onClose","anchorEl","filters","activeFilterCount","onClearFilters","labels","dir","t1","undefined","paperRef","t2","t3","onKeyDown","event","key","target","Element","closest","focus","onOutsidePress","event_0","Node","current","contains","document","addEventListener","removeEventListener","t4","t5","t6","t7","Symbol","for","name","options","offset","enabled","t8","t9","padding","zIndex","t10","Math","max","min","window","innerHeight","getBoundingClientRect","bottom","t11","width","maxWidth","maxHeight","overflowY","borderRadius","t12","p","display","flexDirection","gap","t13","justifyContent","alignItems","t14","fontWeight","t15","t16","t17","clearAll","t18","t19","t20","t21","t22","t23","createAdapterFiltersFeature","filterTypes","Stack","Chips","AutoFilterForm","FilterDrawer","FilterPopover","FilterTreeBuilder","FiltersForm","t0","$","_c","defs","source","registry","labels","defaultExpanded","showSimpleFields","t1","t2","t3","PopoverSlot","props","anchorEl","filters","ActiveFilterChips"],"sources":["../src/components/ActiveFilterChips.tsx","../src/components/FilterDrawer.tsx","../src/components/FilterPopover.tsx","../src/filters.tsx"],"sourcesContent":["/** Removable chips for the active filters. */\nimport type { ActiveFilterChipsSlotProps } from \"@adapttable/react/adapter\";\nimport {\n  alpha,\n  Button,\n  Chip,\n  IconButton,\n  Stack,\n  type SxProps,\n  type Theme,\n} from \"@mui/material\";\n\n/**\n * Reproduces `MuiChip-deleteIcon` at `size=\"small\"` — the glyph size, the 4px\n * gaps either side and the hover tint — on a control that is a real button.\n * MUI's own `deleteIcon` is decoration cloned into a chip root that already\n * carries `role=\"button\"`, so it cannot be one.\n */\nconst removeButtonSx: SxProps<Theme> = {\n  p: 0,\n  ml: \"4px\",\n  mr: \"-4px\",\n  fontSize: 16,\n  color: (theme) => alpha(theme.palette.text.primary, 0.26),\n  \"&:hover\": {\n    backgroundColor: \"transparent\",\n    color: (theme) => alpha(theme.palette.text.primary, 0.4),\n  },\n};\n\n/** Removable MUI chips. */\nexport function Chips({\n  chips,\n  onClearAll,\n  labels,\n}: Readonly<ActiveFilterChipsSlotProps>) {\n  if (chips.length === 0) return null;\n  return (\n    <Stack\n      direction=\"row\"\n      spacing={0.5}\n      useFlexGap\n      component=\"ul\"\n      aria-label={labels.filters}\n      sx={{ listStyle: \"none\", p: 0, m: 0, flexWrap: \"wrap\" }}\n    >\n      {chips.map((chip) => (\n        <li key={chip.key}>\n          <Chip\n            size=\"small\"\n            label={\n              <>\n                {chip.label}\n                <IconButton\n                  disableRipple\n                  aria-label={`${labels.clearAll}: ${chip.label}`}\n                  onClick={chip.onRemove}\n                  sx={removeButtonSx}\n                >\n                  ×\n                </IconButton>\n              </>\n            }\n          />\n        </li>\n      ))}\n      <li>\n        <Button size=\"small\" onClick={onClearAll}>\n          {labels.clearAll}\n        </Button>\n      </li>\n    </Stack>\n  );\n}\n","/** The filters drawer — the backdrop-ed alternative to the popover. */\nimport type { Direction, TableLabels } from \"@adapttable/core\";\nimport { Box, Button, Drawer, Stack, Typography } from \"@mui/material\";\nimport { type ReactNode } from \"react\";\n\n/** Filters drawer. */\nexport function FilterDrawer({\n  open,\n  onClose,\n  filters,\n  activeFilterCount,\n  onClearFilters,\n  labels,\n  dir = \"ltr\",\n}: Readonly<{\n  open: boolean;\n  onClose: () => void;\n  filters: ReactNode;\n  activeFilterCount: number;\n  onClearFilters: () => void;\n  labels: Required<TableLabels>;\n  dir?: Direction;\n}>) {\n  return (\n    <Drawer\n      anchor={dir === \"rtl\" ? \"left\" : \"right\"}\n      open={open}\n      onClose={onClose}\n      slotProps={{ paper: { \"aria-label\": labels.filters, dir } }}\n    >\n      <Box\n        sx={{\n          width: 360,\n          p: 2,\n          display: \"flex\",\n          flexDirection: \"column\",\n          gap: 2,\n          height: \"100%\",\n        }}\n      >\n        <Typography variant=\"h6\">{labels.filters}</Typography>\n        <Box sx={{ flex: 1, display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n          {filters}\n        </Box>\n        <Stack\n          direction=\"row\"\n          sx={{\n            justifyContent: \"space-between\",\n            pt: 2,\n            borderTop: 1,\n            borderColor: \"divider\",\n            flexShrink: 0,\n          }}\n        >\n          <Button onClick={onClearFilters} disabled={activeFilterCount === 0}>\n            {labels.clearAll}\n          </Button>\n          <Button variant=\"contained\" onClick={onClose}>\n            {labels.filtersDone}\n          </Button>\n        </Stack>\n      </Box>\n    </Drawer>\n  );\n}\n","import type { Direction, TableLabels } from \"@adapttable/core\";\nimport { Box, Button, Paper, Popper, Stack, Typography } from \"@mui/material\";\nimport { type ReactNode, useEffect, useRef } from \"react\";\n\n/** Props for {@link FilterPopover}. */\nexport interface FilterPopoverProps {\n  /** Whether the overlay is showing. */\n  open: boolean;\n  /** Closes the overlay. Filters apply live, so this only dismisses it. */\n  onClose: () => void;\n  /** The element the popover is anchored to (the Filters button). */\n  anchorEl: HTMLElement | null;\n  /** The filter fields to render inside. */\n  filters: ReactNode;\n  /** How many filters are currently set, for the header count. */\n  activeFilterCount: number;\n  /** Clears every active filter. */\n  onClearFilters: () => void;\n  /** Resolved labels, every key filled. */\n  labels: Required<TableLabels>;\n  /** Writing direction, so the overlay opens on the correct side. */\n  dir?: Direction;\n}\n\n/**\n * Anchored filter card (the default filter container). Opens under the Filters\n * button. Built on a non-modal `Popper` (+ `ClickAwayListener`) rather than the\n * Modal-based `Popover`, so it renders NO backdrop/scrim — the background stays\n * visible and interactive. Closes on outside click or Escape. Placement is\n * `bottom-end` (flips to `bottom-start` for RTL). Pair with\n * `filtersMode=\"drawer\"` for the slide-in panel instead.\n */\nexport function FilterPopover({\n  open,\n  onClose,\n  anchorEl,\n  filters,\n  activeFilterCount,\n  onClearFilters,\n  labels,\n  dir = \"ltr\",\n}: Readonly<FilterPopoverProps>) {\n  const paperRef = useRef<HTMLDivElement>(null);\n  // Escape must close the popover wherever focus sits (e.g. still on the\n  // Filters trigger) — a keydown on the card alone misses that case.\n  useEffect(() => {\n    if (!open) return;\n    const onKeyDown = (event: KeyboardEvent) => {\n      if (event.key !== \"Escape\") return;\n      if (\n        event.target instanceof Element &&\n        event.target.closest('[role=\"listbox\"], .MuiPopover-root')\n      ) {\n        return;\n      }\n      onClose();\n      // Escape strands keyboard focus inside the removed card — hand it back\n      // to the trigger (the anchor IS the Filters button).\n      anchorEl?.focus();\n    };\n    const onOutsidePress = (event: MouseEvent | TouchEvent) => {\n      const target = event.target;\n      if (!(target instanceof Node)) return;\n      if (\n        paperRef.current?.contains(target) ||\n        anchorEl?.contains(target) ||\n        (target instanceof Element &&\n          target.closest('[role=\"listbox\"], .MuiPopover-root'))\n      ) {\n        return;\n      }\n      onClose();\n    };\n    document.addEventListener(\"keydown\", onKeyDown);\n    document.addEventListener(\"mousedown\", onOutsidePress);\n    document.addEventListener(\"touchstart\", onOutsidePress);\n    return () => {\n      document.removeEventListener(\"keydown\", onKeyDown);\n      document.removeEventListener(\"mousedown\", onOutsidePress);\n      document.removeEventListener(\"touchstart\", onOutsidePress);\n    };\n  }, [open, onClose, anchorEl]);\n  return (\n    <Popper\n      open={open && anchorEl !== null}\n      anchorEl={anchorEl}\n      placement={dir === \"rtl\" ? \"bottom-start\" : \"bottom-end\"}\n      modifiers={[\n        { name: \"offset\", options: { offset: [0, 4] } },\n        { name: \"flip\", enabled: false },\n        // Both axes: a panel that cannot shift horizontally runs off the\n        // edge on a narrow viewport and clips its own labels.\n        { name: \"preventOverflow\", options: { padding: 8 } },\n      ]}\n      style={{ zIndex: 10050 }}\n    >\n      <Paper\n        ref={paperRef}\n        elevation={8}\n        dir={dir}\n        sx={{\n          width: 380,\n          maxWidth: \"calc(100vw - 32px)\",\n          // The form grows while open, and with enough filters it outgrows\n          // the window. Pinned below the trigger it has to stop at the\n          // viewport edge, or its lower fields are painted off-screen and\n          // cannot be reached.\n          maxHeight: anchorEl\n            ? Math.max(\n                120,\n                Math.min(\n                  560,\n                  window.innerHeight -\n                    anchorEl.getBoundingClientRect().bottom -\n                    8\n                )\n              )\n            : \"min(calc(50dvh - 16px), 560px)\",\n          overflowY: \"auto\",\n          borderRadius: 2,\n        }}\n      >\n        <Box sx={{ p: 2, display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n          <Stack\n            direction=\"row\"\n            sx={{ justifyContent: \"space-between\", alignItems: \"center\" }}\n          >\n            <Typography variant=\"subtitle1\" sx={{ fontWeight: 600 }}>\n              {labels.filters}\n            </Typography>\n            <Button\n              size=\"small\"\n              onClick={onClearFilters}\n              disabled={activeFilterCount === 0}\n            >\n              {labels.clearAll}\n            </Button>\n          </Stack>\n          <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n            {filters}\n          </Box>\n        </Box>\n      </Paper>\n    </Popper>\n  );\n}\n","import {\n  createAdapterFiltersFeature,\n  type FilterOverlaySlotProps,\n  type FiltersFormSlotProps,\n} from \"@adapttable/react/adapter\";\nexport { filterTypes } from \"@adapttable/react/features\";\nimport { Stack } from \"@mui/material\";\n\nimport { Chips } from \"./components/ActiveFilterChips\";\nimport { AutoFilterForm } from \"./components/AutoFilterForm\";\nimport { FilterDrawer } from \"./components/FilterDrawer\";\nimport { FilterPopover } from \"./components/FilterPopover\";\nimport { FilterTreeBuilder } from \"./components/FilterTreeBuilder\";\n\n/**\n * The filters panel body — advanced tree plus optional simple fields.\n */\nfunction FiltersForm({\n  defs,\n  source,\n  registry,\n  labels,\n  defaultExpanded,\n  showSimpleFields,\n}: Readonly<FiltersFormSlotProps<never>>) {\n  return (\n    <Stack spacing={3} data-adapttable-part=\"filters-form\">\n      <FilterTreeBuilder\n        defs={defs}\n        source={source}\n        labels={labels}\n        registry={registry}\n        defaultExpanded={defaultExpanded}\n      />\n      {showSimpleFields ? (\n        <AutoFilterForm\n          defs={defs}\n          source={source}\n          labels={labels}\n          registry={registry}\n        />\n      ) : null}\n    </Stack>\n  );\n}\n\nfunction PopoverSlot(props: Readonly<FilterOverlaySlotProps>) {\n  return <FilterPopover {...props} anchorEl={props.anchorEl ?? null} />;\n}\n\n/** Declarative filters with this kit's chip strip and panel. @public */\nexport const filters = createAdapterFiltersFeature({\n  FiltersForm,\n  ActiveFilterChips: Chips,\n  FilterDrawer: FilterDrawer,\n  FilterPopover: PopoverSlot,\n});\n"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,MAAMK,iBAAiC;CACrCC,GAAG;CACHC,IAAI;CACJC,IAAI;CACJC,UAAU;CACVC,QAAQC,WAAAA,GAAUX,cAAAA,MAAAA,CAAMW,MAAMC,QAAQC,KAAKC,SAAS,GAAI;CACxD,WAAW;EACTC,iBAAiB;EACjBL,QAAQC,WAAAA,GAAUX,cAAAA,MAAAA,CAAMW,MAAMC,QAAQC,KAAKC,SAAS,EAAG;CACzD;AACF;;AAGA,SAAOE,MAAAC,IAAA;CAAA,MAAAC,KAAAA,GAAAC,uBAAAA,EAAAA,CAAA,EAAA;CAAe,MAAA,EAAAC,OAAAC,YAAAC,WAAAL;CAKpB,IAAIG,MAAKG,WAAY,GAAC,OAAS;CAOf,MAAAC,KAAAF,OAAMG;CAAQ,IAAAC;CAAA,IAAAR,EAAA,OAAAS,OAAAC,IAAA,2BAAA,GAAA;EACtBF,KAAA;GAAAG,WAAa;GAAMvB,GAAK;GAACwB,GAAK;GAACC,UAAY;EAAO;EAACb,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,IAAAc;CAAA,IAAAd,EAAA,OAAAE,SAAAF,EAAA,OAAAI,OAAAW,UAAA;EAAA,IAAAC;EAAA,IAAAhB,EAAA,OAAAI,OAAAW,UAAA;GAE5CC,MAAAC,SACT,iBAAA,GAAA,kBAAA,IAAA,CAAA,MAAA,EAAA,UACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,cAAA,MAAD;IACO,MAAA;IAEH,OAAA,iBAAA,GAAA,kBAAA,KAAA,CAAA,kBAAA,UAAA,EAAA,UAAA,CACGA,KAAIE,OACL,iBAAA,GAAA,kBAAA,IAAA,CAAC,cAAA,YAAD;KACE,eAAA;KACY,cAAA,GAAGf,OAAMW,SAAS,IAAKE,KAAIE;KAC9B,SAAAF,KAAIG;KACTjC,IAAAA;KACL,UAAA;IALU,CAAA,CAOE,EAAA,CAAA;GACZ,CAAA,EAGJ,GAjBI8B,KAAIC,GAiBR;GACNlB,EAAA,KAAAI,OAAAW;GAAAf,EAAA,KAAAgB;EAAA,OAAAA,KAAAhB,EAAA;EAnBAc,KAAAZ,MAAKmB,IAAKL,EAmBV;EAAChB,EAAA,KAAAE;EAAAF,EAAA,KAAAI,OAAAW;EAAAf,EAAA,KAAAc;CAAA,OAAAA,KAAAd,EAAA;CAAA,IAAAgB;CAAA,IAAAhB,EAAA,OAAAI,OAAAW,YAAAf,EAAA,OAAAG,YAAA;EACFa,KAAA,iBAAA,GAAA,kBAAA,IAAA,CAAA,MAAA,EAAA,UACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,cAAA,QAAD;GAAa,MAAA;GAAiBb,SAAAA;GAC3BC,UAAAA,OAAMW;EADF,CAAA,EAGJ,CAAA;EAAAf,EAAA,KAAAI,OAAAW;EAAAf,EAAA,KAAAG;EAAAH,EAAA,KAAAgB;CAAA,OAAAA,KAAAhB,EAAA;CAAA,IAAAsB;CAAA,IAAAtB,EAAA,OAAAI,OAAAG,WAAAP,EAAA,QAAAc,MAAAd,EAAA,QAAAgB,IAAA;EAhCPM,KAAA,iBAAA,GAAA,kBAAA,KAAA,CAAC,cAAA,OAAD;GACY,WAAA;GACD,SAAA;GACT,YAAA;GACU,WAAA;GACE,cAAAhB;GACR,IAAAE;GANN,UAAA,CAQGM,IAoBDE,EA5BI;;EAiCEhB,EAAA,KAAAI,OAAAG;EAAAP,EAAA,MAAAc;EAAAd,EAAA,MAAAgB;EAAAhB,EAAA,MAAAsB;CAAA,OAAAA,KAAAtB,EAAA;CAAA,OAjCRsB;AAiCQ;;;;;ACjEZ,SAAOM,aAAAC,IAAA;CAAA,MAAAC,KAAAA,GAAAC,uBAAAA,EAAAA,CAAA,EAAA;CAAsB,MAAA,EAAAC,MAAAC,SAAAC,SAAAC,mBAAAC,gBAAAC,QAAAC,KAAAC,OAAAV;CAO3B,MAAAS,MAAAC,OAAAC,KAAAA,IAAA,QAAAD;CAYY,MAAAE,KAAAH,QAAQ,QAAR,SAAA;CAAgC,IAAAI;CAAA,IAAAZ,EAAA,OAAAQ,OAAAR,EAAA,OAAAO,OAAAH,SAAA;EAG7BQ,KAAA,EAAAC,OAAS;GAAA,cAAgBN,OAAMH;GAAQI;EAAM,EAAE;EAACR,EAAA,KAAAQ;EAAAR,EAAA,KAAAO,OAAAH;EAAAJ,EAAA,KAAAY;CAAA,OAAAA,KAAAZ,EAAA;CAAA,IAAAc;CAAA,IAAAd,EAAA,OAAAe,OAAAC,IAAA,2BAAA,GAAA;EAGrDF,KAAA;GAAAG,OACK;GAAGC,GACP;GAACC,SACK;GAAMC,eACA;GAAQC,KAClB;GAACC,QACE;EACV;EAACtB,EAAA,KAAAc;CAAA,OAAAA,KAAAd,EAAA;CAAA,IAAAuB;CAAA,IAAAvB,EAAA,OAAAO,OAAAH,SAAA;EAEDmB,KAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,cAAA,YAAD;GAAoB,SAAA;GAAMhB,UAAAA,OAAMH;EAArB,CAAA;EAA2CJ,EAAA,KAAAO,OAAAH;EAAAJ,EAAA,KAAAuB;CAAA,OAAAA,KAAAvB,EAAA;CAAA,IAAAwB;CAAA,IAAAxB,EAAA,OAAAe,OAAAC,IAAA,2BAAA,GAAA;EAC7CQ,KAAA;GAAAC,MAAQ;GAACN,SAAW;GAAMC,eAAiB;GAAQC,KAAO;EAAE;EAACrB,EAAA,KAAAwB;CAAA,OAAAA,KAAAxB,EAAA;CAAA,IAAA0B;CAAA,IAAA1B,EAAA,OAAAI,SAAA;EAAtEsB,KAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,cAAA,KAAD;GAAS,IAAAF;GACNpB,UAAAA;EADC,CAAA;EAEEJ,EAAA,KAAAI;EAAAJ,EAAA,KAAA0B;CAAA,OAAAA,KAAA1B,EAAA;CAAA,IAAA2B;CAAA,IAAA3B,EAAA,OAAAe,OAAAC,IAAA,2BAAA,GAAA;EAGAW,KAAA;GAAAC,gBACc;GAAeC,IAC3B;GAACC,WACM;GAACC,aACC;GAASC,YACV;EACd;EAAChC,EAAA,KAAA2B;CAAA,OAAAA,KAAA3B,EAAA;CAE0C,MAAAiC,KAAA5B,sBAAsB;CAAC,IAAA6B;CAAA,IAAAlC,EAAA,QAAAO,OAAA4B,YAAAnC,EAAA,QAAAM,kBAAAN,EAAA,QAAAiC,IAAA;EAAlEC,MAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,cAAA,QAAD;GAAiB5B,SAAAA;GAA0B,UAAA2B;GACxC1B,UAAAA,OAAM4B;EADF,CAAA;EAEEnC,EAAA,MAAAO,OAAA4B;EAAAnC,EAAA,MAAAM;EAAAN,EAAA,MAAAiC;EAAAjC,EAAA,MAAAkC;CAAA,OAAAA,MAAAlC,EAAA;CAAA,IAAAoC;CAAA,IAAApC,EAAA,QAAAO,OAAA8B,eAAArC,EAAA,QAAAG,SAAA;EACTiC,MAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,cAAA,QAAD;GAAgB,SAAA;GAAqBjC,SAAAA;GAClCI,UAAAA,OAAM8B;EADF,CAAA;EAEErC,EAAA,MAAAO,OAAA8B;EAAArC,EAAA,MAAAG;EAAAH,EAAA,MAAAoC;CAAA,OAAAA,MAAApC,EAAA;CAAA,IAAAsC;CAAA,IAAAtC,EAAA,QAAAkC,OAAAlC,EAAA,QAAAoC,KAAA;EAfXE,MAAA,iBAAA,GAAA,kBAAA,KAAA,CAAC,cAAA,OAAD;GACY,WAAA;GACN,IAAAX;GAFN,UAAA,CAUEO,KAGAE,GAbI;;EAgBEpC,EAAA,MAAAkC;EAAAlC,EAAA,MAAAoC;EAAApC,EAAA,MAAAsC;CAAA,OAAAA,MAAAtC,EAAA;CAAA,IAAAuC;CAAA,IAAAvC,EAAA,QAAAsC,OAAAtC,EAAA,QAAAuB,MAAAvB,EAAA,QAAA0B,IAAA;EA9BVa,MAAA,iBAAA,GAAA,kBAAA,KAAA,CAAC,cAAA,KAAD;GACM,IAAAzB;GADN,UAAA;IAUES;IACAG;IAGAY;GAdE;;EA+BEtC,EAAA,MAAAsC;EAAAtC,EAAA,MAAAuB;EAAAvB,EAAA,MAAA0B;EAAA1B,EAAA,MAAAuC;CAAA,OAAAA,MAAAvC,EAAA;CAAA,IAAAwC;CAAA,IAAAxC,EAAA,QAAAG,WAAAH,EAAA,QAAAE,QAAAF,EAAA,QAAAuC,OAAAvC,EAAA,QAAAW,MAAAX,EAAA,QAAAY,IAAA;EArCR4B,MAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,cAAA,QAAD;GACU,QAAA7B;GACFT;GACGC;GACE,WAAAS;GAEX2B,UAAAA;EANK,CAAA;EAsCEvC,EAAA,MAAAG;EAAAH,EAAA,MAAAE;EAAAF,EAAA,MAAAuC;EAAAvC,EAAA,MAAAW;EAAAX,EAAA,MAAAY;EAAAZ,EAAA,MAAAwC;CAAA,OAAAA,MAAAxC,EAAA;CAAA,OAtCTwC;AAsCS;;;;;;;;;;;;AC9Bb,SAAOS,cAAAC,IAAA;CAAA,MAAAC,KAAAA,GAAAC,uBAAAA,EAAAA,CAAA,EAAA;CAAuB,MAAA,EAAAC,MAAAC,SAAAC,UAAAC,SAAAC,mBAAAC,gBAAAC,QAAAC,KAAAC,OAAAX;CAQ5B,MAAAU,MAAAC,OAAAC,KAAAA,IAAA,QAAAD;CAEA,MAAAE,YAAAA,GAAiBf,MAAAA,OAAAA,CAAuB,IAAI;CAAE,IAAAgB;CAAA,IAAAC;CAAA,IAAAd,EAAA,OAAAI,YAAAJ,EAAA,OAAAG,WAAAH,EAAA,OAAAE,MAAA;EAGpCW,WAAA;GACR,IAAI,CAACX,MAAI;GACT,MAAAa,aAAkBC,UAAA;IAChB,IAAIA,MAAKC,QAAS,UAAQ;IAC1B,IACED,MAAKE,kBAAmBC,WACxBH,MAAKE,OAAOE,QAAS,sCAAoC,GAAC;IAI5DjB,QAAQ;IAGRC,UAAQiB,MAAQ;GAAC;GAEnB,MAAAC,kBAAuBC,YAAA;IACrB,MAAAL,SAAeF,QAAKE;IACpB,IAAI,EAAEA,kBAAkBM,OAAK;IAC7B,IACEZ,SAAQa,SAAkBC,SAACR,MACF,KAAzBd,UAAQsB,SAAWR,MAAM,KACxBA,kBAAkBC,WACjBD,OAAME,QAAS,sCAAoC,GAAE;IAIzDjB,QAAQ;GAAC;GAEXwB,SAAQC,iBAAkB,WAAWb,SAAS;GAC9CY,SAAQC,iBAAkB,aAAaN,cAAc;GACrDK,SAAQC,iBAAkB,cAAcN,cAAc;GAAC,aAChD;IACLK,SAAQE,oBAAqB,WAAWd,SAAS;IACjDY,SAAQE,oBAAqB,aAAaP,cAAc;IACxDK,SAAQE,oBAAqB,cAAcP,cAAc;GAAC;EAC3D;EACAR,KAAA;GAACZ;GAAMC;GAASC;EAAQ;EAACJ,EAAA,KAAAI;EAAAJ,EAAA,KAAAG;EAAAH,EAAA,KAAAE;EAAAF,EAAA,KAAAa;EAAAb,EAAA,KAAAc;CAAA,OAAA;EAAAD,KAAAb,EAAA;EAAAc,KAAAd,EAAA;CAAA;CApC5BJ,CAAAA,GAAAA,MAAAA,UAAAA,CAAUiB,IAoCPC,EAAyB;CAGlB,MAAAgB,KAAA5B,QAAQE,aAAa;CAEhB,MAAA2B,KAAAtB,QAAQ,QAAR,iBAAA;CAA6C,IAAAuB;CAAA,IAAAC;CAAA,IAAAjC,EAAA,OAAAkC,OAAAC,IAAA,2BAAA,GAAA;EAEtDH,KAAA;GAAAI,MAAQ;GAAQC,SAAW,EAAAC,QAAU,CAAC,GAAG,CAAC,EAAE;EAAE;EAC9CL,KAAA;GAAAG,MAAQ;GAAMG,SAAW;EAAM;EAACvC,EAAA,KAAAgC;EAAAhC,EAAA,KAAAiC;CAAA,OAAA;EAAAD,KAAAhC,EAAA;EAAAiC,KAAAjC,EAAA;CAAA;CAAA,IAAAwC;CAAA,IAAAC;CAAA,IAAAzC,EAAA,OAAAkC,OAAAC,IAAA,2BAAA,GAAA;EAFvBK,KAAA;GACTR;GACAC;GAGA;IAAAG,MAAQ;IAAiBC,SAAW,EAAAK,SAAW,EAAE;GAAE;EAAC;EAE/CD,KAAA,EAAAE,QAAU,MAAM;EAAC3C,EAAA,KAAAwC;EAAAxC,EAAA,KAAAyC;CAAA,OAAA;EAAAD,KAAAxC,EAAA;EAAAyC,KAAAzC,EAAA;CAAA;CAAA,IAAA4C;CAAA,IAAA5C,EAAA,OAAAI,UAAA;EAaTwC,MAAAxC,WACPyC,KAAIC,IACF,KACAD,KAAIE,IACF,KACAC,OAAMC,cACJ7C,SAAQ8C,sBAAuB,CAAC,CAAAC,SAChC,CACJ,CAE6B,IAVxB;EAUyBnD,EAAA,KAAAI;EAAAJ,EAAA,MAAA4C;CAAA,OAAAA,MAAA5C,EAAA;CAAA,IAAAoD;CAAA,IAAApD,EAAA,QAAA4C,KAAA;EAjBlCQ,MAAA;GAAAC,OACK;GAAGC,UACA;GAAoBC,WAKnBX;GAUyBY,WACzB;GAAMC,cACH;EAChB;EAACzD,EAAA,MAAA4C;EAAA5C,EAAA,MAAAoD;CAAA,OAAAA,MAAApD,EAAA;CAAA,IAAA0D;CAAA,IAAA1D,EAAA,QAAAkC,OAAAC,IAAA,2BAAA,GAAA;EAEQuB,MAAA;GAAAC,GAAK;GAACC,SAAW;GAAMC,eAAiB;GAAQC,KAAO;EAAE;EAAC9D,EAAA,MAAA0D;CAAA,OAAAA,MAAA1D,EAAA;CAAA,IAAA+D;CAAA,IAAA/D,EAAA,QAAAkC,OAAAC,IAAA,2BAAA,GAAA;EAG3D4B,MAAA;GAAAC,gBAAkB;GAAeC,YAAc;EAAS;EAACjE,EAAA,MAAA+D;CAAA,OAAAA,MAAA/D,EAAA;CAAA,IAAAkE;CAAA,IAAAlE,EAAA,QAAAkC,OAAAC,IAAA,2BAAA,GAAA;EAEzB+B,MAAA,EAAAC,YAAc,IAAI;EAACnE,EAAA,MAAAkE;CAAA,OAAAA,MAAAlE,EAAA;CAAA,IAAAoE;CAAA,IAAApE,EAAA,QAAAQ,OAAAH,SAAA;EAAvD+D,MAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,cAAA,YAAD;GAAoB,SAAA;GAAgB,IAAAF;GACjC1D,UAAAA,OAAMH;EADE,CAAA;EAEEL,EAAA,MAAAQ,OAAAH;EAAAL,EAAA,MAAAoE;CAAA,OAAAA,MAAApE,EAAA;CAID,MAAAqE,MAAA/D,sBAAsB;CAAC,IAAAgE;CAAA,IAAAtE,EAAA,QAAAQ,OAAA+D,YAAAvE,EAAA,QAAAO,kBAAAP,EAAA,QAAAqE,KAAA;EAHnCC,MAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,cAAA,QAAD;GACO,MAAA;GACI/D,SAAAA;GACC,UAAA8D;GAET7D,UAAAA,OAAM+D;EALF,CAAA;EAMEvE,EAAA,MAAAQ,OAAA+D;EAAAvE,EAAA,MAAAO;EAAAP,EAAA,MAAAqE;EAAArE,EAAA,MAAAsE;CAAA,OAAAA,MAAAtE,EAAA;CAAA,IAAAwE;CAAA,IAAAxE,EAAA,QAAAoE,OAAApE,EAAA,QAAAsE,KAAA;EAbXE,MAAA,iBAAA,GAAA,kBAAA,KAAA,CAAC,cAAA,OAAD;GACY,WAAA;GACN,IAAAT;GAFN,UAAA,CAIEK,KAGAE,GAPI;;EAcEtE,EAAA,MAAAoE;EAAApE,EAAA,MAAAsE;EAAAtE,EAAA,MAAAwE;CAAA,OAAAA,MAAAxE,EAAA;CAAA,IAAAyE;CAAA,IAAAzE,EAAA,QAAAkC,OAAAC,IAAA,2BAAA,GAAA;EACCsC,MAAA;GAAAb,SAAW;GAAMC,eAAiB;GAAQC,KAAO;EAAE;EAAC9D,EAAA,MAAAyE;CAAA,OAAAA,MAAAzE,EAAA;CAAA,IAAA0E;CAAA,IAAA1E,EAAA,QAAAK,SAAA;EAA7DqE,MAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,cAAA,KAAD;GAAS,IAAAD;GACNpE,UAAAA;EADC,CAAA;EAEEL,EAAA,MAAAK;EAAAL,EAAA,MAAA0E;CAAA,OAAAA,MAAA1E,EAAA;CAAA,IAAA2E;CAAA,IAAA3E,EAAA,QAAAwE,OAAAxE,EAAA,QAAA0E,KAAA;EAlBRC,MAAA,iBAAA,GAAA,kBAAA,KAAA,CAAC,cAAA,KAAD;GAAS,IAAAjB;GAAT,UAAA,CACEc,KAeAE,GAhBE;;EAmBE1E,EAAA,MAAAwE;EAAAxE,EAAA,MAAA0E;EAAA1E,EAAA,MAAA2E;CAAA,OAAAA,MAAA3E,EAAA;CAAA,IAAA4E;CAAA,IAAA5E,EAAA,QAAAS,OAAAT,EAAA,QAAAoD,OAAApD,EAAA,QAAA2E,KAAA;EA7CRC,MAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,cAAA,OAAD;GACOhE,KAAAA;GACM,WAAA;GACNH;GACD,IAAA2C;GAsBJuB,UAAAA;EA1BI,CAAA;EA8CE3E,EAAA,MAAAS;EAAAT,EAAA,MAAAoD;EAAApD,EAAA,MAAA2E;EAAA3E,EAAA,MAAA4E;CAAA,OAAAA,MAAA5E,EAAA;CAAA,IAAA6E;CAAA,IAAA7E,EAAA,QAAAI,YAAAJ,EAAA,QAAA4E,OAAA5E,EAAA,QAAA8B,MAAA9B,EAAA,QAAA+B,IAAA;EA3DV8C,MAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,cAAA,QAAD;GACQ,MAAA/C;GACI1B;GACC,WAAA2B;GACA,WAAAS;GAOJ,OAAAC;GAEPmC,UAAAA;EAbK,CAAA;EA4DE5E,EAAA,MAAAI;EAAAJ,EAAA,MAAA4E;EAAA5E,EAAA,MAAA8B;EAAA9B,EAAA,MAAA+B;EAAA/B,EAAA,MAAA6E;CAAA,OAAAA,MAAA7E,EAAA;CAAA,OA5DT6E;AA4DS;;;;;;AC9Hb,SAAAS,YAAAC,IAAA;CAAA,MAAAC,KAAAA,GAAAC,uBAAAA,EAAAA,CAAA,EAAA;CAAqB,MAAA,EAAAC,MAAAC,QAAAC,UAAAC,QAAAC,iBAAAC,qBAAAR;CAOmB,IAAAS;CAAA,IAAAR,EAAA,OAAAM,mBAAAN,EAAA,OAAAE,QAAAF,EAAA,OAAAK,UAAAL,EAAA,OAAAI,YAAAJ,EAAA,OAAAG,QAAA;EAGlCK,KAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,0BAAA,mBAAD;GACQN;GACEC;GACAE;GACED;GACOE;EAAe,CAAA;EAChCN,EAAA,KAAAM;EAAAN,EAAA,KAAAE;EAAAF,EAAA,KAAAK;EAAAL,EAAA,KAAAI;EAAAJ,EAAA,KAAAG;EAAAH,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,IAAAS;CAAA,IAAAT,EAAA,OAAAE,QAAAF,EAAA,OAAAK,UAAAL,EAAA,OAAAI,YAAAJ,EAAA,OAAAO,oBAAAP,EAAA,QAAAG,QAAA;EACDM,KAAAF,mBACC,iBAAA,GAAA,kBAAA,IAAA,CAAC,uBAAA,gBAAD;GACQL;GACEC;GACAE;GACED;EAAQ,CAAA,IALrB;EAOOJ,EAAA,KAAAE;EAAAF,EAAA,KAAAK;EAAAL,EAAA,KAAAI;EAAAJ,EAAA,KAAAO;EAAAP,EAAA,MAAAG;EAAAH,EAAA,MAAAS;CAAA,OAAAA,KAAAT,EAAA;CAAA,IAAAU;CAAA,IAAAV,EAAA,QAAAQ,MAAAR,EAAA,QAAAS,IAAA;EAfVC,KAAA,iBAAA,GAAA,kBAAA,KAAA,CAAC,cAAA,OAAD;GAAgB,SAAA;GAAwB,wBAAA;GAAxC,UAAA,CACEF,IAOCC,EARG;;EAgBET,EAAA,MAAAQ;EAAAR,EAAA,MAAAS;EAAAT,EAAA,MAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,OAhBRU;AAgBQ;AAIZ,SAAAC,YAAAC,OAAA;CAAA,MAAAZ,KAAAA,GAAAC,uBAAAA,EAAAA,CAAA,CAAA;CAC6C,MAAAF,KAAAa,MAAKC,YAAL;CAAsB,IAAAL;CAAA,IAAAR,EAAA,OAAAY,SAAAZ,EAAA,OAAAD,IAAA;EAA1DS,KAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,eAAD;GAAc,GAAKI;GAAiB,UAAAb;EAAsB,CAAA;EAAIC,EAAA,KAAAY;EAAAZ,EAAA,KAAAD;EAAAC,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OAA9DQ;AAA8D;;AAIvE,MAAaM,WAAAA,GAAUxB,0BAAAA,4BAAAA,CAA4B;CACjDQ;CACAiB,mBAAmBtB;CACLE;CACdC,eAAee;AACjB,CAAC"}