{"ast":null,"code":"\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { isValidText } from './util';\nconst MeasureText = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n  let {\n    style,\n    children\n  } = _ref;\n  const spanRef = React.useRef(null);\n  React.useImperativeHandle(ref, () => ({\n    isExceed: () => {\n      const span = spanRef.current;\n      return span.scrollHeight > span.clientHeight;\n    },\n    getHeight: () => spanRef.current.clientHeight\n  }));\n  return /*#__PURE__*/React.createElement(\"span\", {\n    \"aria-hidden\": true,\n    ref: spanRef,\n    style: Object.assign({\n      position: 'fixed',\n      display: 'block',\n      left: 0,\n      top: 0,\n      pointerEvents: 'none',\n      backgroundColor: 'rgba(255, 0, 0, 0.65)'\n    }, style)\n  }, children);\n});\nconst getNodesLen = nodeList => nodeList.reduce((totalLen, node) => totalLen + (isValidText(node) ? String(node).length : 1), 0);\nfunction sliceNodes(nodeList, len) {\n  let currLen = 0;\n  const currentNodeList = [];\n  for (let i = 0; i < nodeList.length; i += 1) {\n    // Match to return\n    if (currLen === len) {\n      return currentNodeList;\n    }\n    const node = nodeList[i];\n    const canCut = isValidText(node);\n    const nodeLen = canCut ? String(node).length : 1;\n    const nextLen = currLen + nodeLen;\n    // Exceed but current not which means we need cut this\n    // This will not happen on validate ReactElement\n    if (nextLen > len) {\n      const restLen = len - currLen;\n      currentNodeList.push(String(node).slice(0, restLen));\n      return currentNodeList;\n    }\n    currentNodeList.push(node);\n    currLen = nextLen;\n  }\n  return nodeList;\n}\n// Measure for the `text` is exceed the `rows` or not\nconst STATUS_MEASURE_NONE = 0;\nconst STATUS_MEASURE_PREPARE = 1;\nconst STATUS_MEASURE_START = 2;\nconst STATUS_MEASURE_NEED_ELLIPSIS = 3;\nconst STATUS_MEASURE_NO_NEED_ELLIPSIS = 4;\nconst lineClipStyle = {\n  display: '-webkit-box',\n  overflow: 'hidden',\n  WebkitBoxOrient: 'vertical'\n};\nexport default function EllipsisMeasure(props) {\n  const {\n    enableMeasure,\n    width,\n    text,\n    children,\n    rows,\n    expanded,\n    miscDeps,\n    onEllipsis\n  } = props;\n  const nodeList = React.useMemo(() => toArray(text), [text]);\n  const nodeLen = React.useMemo(() => getNodesLen(nodeList), [text]);\n  // ========================= Full Content =========================\n  // Used for measure only, which means it's always render as no need ellipsis\n  const fullContent = React.useMemo(() => children(nodeList, false), [text]);\n  // ========================= Cut Content ==========================\n  const [ellipsisCutIndex, setEllipsisCutIndex] = React.useState(null);\n  const cutMidRef = React.useRef(null);\n  // ========================= NeedEllipsis =========================\n  const measureWhiteSpaceRef = React.useRef(null);\n  const needEllipsisRef = React.useRef(null);\n  // Measure for `rows-1` height, to avoid operation exceed the line height\n  const descRowsEllipsisRef = React.useRef(null);\n  const symbolRowEllipsisRef = React.useRef(null);\n  const [canEllipsis, setCanEllipsis] = React.useState(false);\n  const [needEllipsis, setNeedEllipsis] = React.useState(STATUS_MEASURE_NONE);\n  const [ellipsisHeight, setEllipsisHeight] = React.useState(0);\n  const [parentWhiteSpace, setParentWhiteSpace] = React.useState(null);\n  // Trigger start measure\n  useLayoutEffect(() => {\n    if (enableMeasure && width && nodeLen) {\n      setNeedEllipsis(STATUS_MEASURE_PREPARE);\n    } else {\n      setNeedEllipsis(STATUS_MEASURE_NONE);\n    }\n  }, [width, text, rows, enableMeasure, nodeList]);\n  // Measure process\n  useLayoutEffect(() => {\n    var _a, _b, _c, _d;\n    if (needEllipsis === STATUS_MEASURE_PREPARE) {\n      setNeedEllipsis(STATUS_MEASURE_START);\n      // Parent ref `white-space`\n      const nextWhiteSpace = measureWhiteSpaceRef.current && getComputedStyle(measureWhiteSpaceRef.current).whiteSpace;\n      setParentWhiteSpace(nextWhiteSpace);\n    } else if (needEllipsis === STATUS_MEASURE_START) {\n      const isOverflow = !!((_a = needEllipsisRef.current) === null || _a === void 0 ? void 0 : _a.isExceed());\n      setNeedEllipsis(isOverflow ? STATUS_MEASURE_NEED_ELLIPSIS : STATUS_MEASURE_NO_NEED_ELLIPSIS);\n      setEllipsisCutIndex(isOverflow ? [0, nodeLen] : null);\n      setCanEllipsis(isOverflow);\n      // Get the basic height of ellipsis rows\n      const baseRowsEllipsisHeight = ((_b = needEllipsisRef.current) === null || _b === void 0 ? void 0 : _b.getHeight()) || 0;\n      // Get the height of `rows - 1` + symbol height\n      const descRowsEllipsisHeight = rows === 1 ? 0 : ((_c = descRowsEllipsisRef.current) === null || _c === void 0 ? void 0 : _c.getHeight()) || 0;\n      const symbolRowEllipsisHeight = ((_d = symbolRowEllipsisRef.current) === null || _d === void 0 ? void 0 : _d.getHeight()) || 0;\n      const maxRowsHeight = Math.max(baseRowsEllipsisHeight,\n      // height of rows with ellipsis\n      descRowsEllipsisHeight + symbolRowEllipsisHeight);\n      setEllipsisHeight(maxRowsHeight + 1);\n      onEllipsis(isOverflow);\n    }\n  }, [needEllipsis]);\n  // ========================= Cut Measure ==========================\n  const cutMidIndex = ellipsisCutIndex ? Math.ceil((ellipsisCutIndex[0] + ellipsisCutIndex[1]) / 2) : 0;\n  useLayoutEffect(() => {\n    var _a;\n    const [minIndex, maxIndex] = ellipsisCutIndex || [0, 0];\n    if (minIndex !== maxIndex) {\n      const midHeight = ((_a = cutMidRef.current) === null || _a === void 0 ? void 0 : _a.getHeight()) || 0;\n      const isOverflow = midHeight > ellipsisHeight;\n      let targetMidIndex = cutMidIndex;\n      if (maxIndex - minIndex === 1) {\n        targetMidIndex = isOverflow ? minIndex : maxIndex;\n      }\n      setEllipsisCutIndex(isOverflow ? [minIndex, targetMidIndex] : [targetMidIndex, maxIndex]);\n    }\n  }, [ellipsisCutIndex, cutMidIndex]);\n  // ========================= Text Content =========================\n  const finalContent = React.useMemo(() => {\n    // Skip everything if `enableMeasure` is disabled\n    if (!enableMeasure) {\n      return children(nodeList, false);\n    }\n    if (needEllipsis !== STATUS_MEASURE_NEED_ELLIPSIS || !ellipsisCutIndex || ellipsisCutIndex[0] !== ellipsisCutIndex[1]) {\n      const content = children(nodeList, false);\n      // Limit the max line count to avoid scrollbar blink unless no need ellipsis\n      // https://github.com/ant-design/ant-design/issues/42958\n      if ([STATUS_MEASURE_NO_NEED_ELLIPSIS, STATUS_MEASURE_NONE].includes(needEllipsis)) {\n        return content;\n      }\n      return /*#__PURE__*/React.createElement(\"span\", {\n        style: Object.assign(Object.assign({}, lineClipStyle), {\n          WebkitLineClamp: rows\n        })\n      }, content);\n    }\n    return children(expanded ? nodeList : sliceNodes(nodeList, ellipsisCutIndex[0]), canEllipsis);\n  }, [expanded, needEllipsis, ellipsisCutIndex, nodeList].concat(_toConsumableArray(miscDeps)));\n  // ============================ Render ============================\n  const measureStyle = {\n    width,\n    margin: 0,\n    padding: 0,\n    whiteSpace: parentWhiteSpace === 'nowrap' ? 'normal' : 'inherit'\n  };\n  return /*#__PURE__*/React.createElement(React.Fragment, null, finalContent, needEllipsis === STATUS_MEASURE_START && (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MeasureText, {\n    style: Object.assign(Object.assign(Object.assign({}, measureStyle), lineClipStyle), {\n      WebkitLineClamp: rows\n    }),\n    ref: needEllipsisRef\n  }, fullContent), /*#__PURE__*/React.createElement(MeasureText, {\n    style: Object.assign(Object.assign(Object.assign({}, measureStyle), lineClipStyle), {\n      WebkitLineClamp: rows - 1\n    }),\n    ref: descRowsEllipsisRef\n  }, fullContent), /*#__PURE__*/React.createElement(MeasureText, {\n    style: Object.assign(Object.assign(Object.assign({}, measureStyle), lineClipStyle), {\n      WebkitLineClamp: 1\n    }),\n    ref: symbolRowEllipsisRef\n  }, children([], true)))), needEllipsis === STATUS_MEASURE_NEED_ELLIPSIS && ellipsisCutIndex && ellipsisCutIndex[0] !== ellipsisCutIndex[1] && (/*#__PURE__*/React.createElement(MeasureText, {\n    style: Object.assign(Object.assign({}, measureStyle), {\n      top: 400\n    }),\n    ref: cutMidRef\n  }, children(sliceNodes(nodeList, cutMidIndex), true))), needEllipsis === STATUS_MEASURE_PREPARE && (/*#__PURE__*/React.createElement(\"span\", {\n    style: {\n      whiteSpace: 'inherit'\n    },\n    ref: measureWhiteSpaceRef\n  })));\n}","map":{"version":3,"names":["_toConsumableArray","React","toArray","useLayoutEffect","isValidText","MeasureText","forwardRef","_ref","ref","style","children","spanRef","useRef","useImperativeHandle","isExceed","span","current","scrollHeight","clientHeight","getHeight","createElement","Object","assign","position","display","left","top","pointerEvents","backgroundColor","getNodesLen","nodeList","reduce","totalLen","node","String","length","sliceNodes","len","currLen","currentNodeList","i","canCut","nodeLen","nextLen","restLen","push","slice","STATUS_MEASURE_NONE","STATUS_MEASURE_PREPARE","STATUS_MEASURE_START","STATUS_MEASURE_NEED_ELLIPSIS","STATUS_MEASURE_NO_NEED_ELLIPSIS","lineClipStyle","overflow","WebkitBoxOrient","EllipsisMeasure","props","enableMeasure","width","text","rows","expanded","miscDeps","onEllipsis","useMemo","fullContent","ellipsisCutIndex","setEllipsisCutIndex","useState","cutMidRef","measureWhiteSpaceRef","needEllipsisRef","descRowsEllipsisRef","symbolRowEllipsisRef","canEllipsis","setCanEllipsis","needEllipsis","setNeedEllipsis","ellipsisHeight","setEllipsisHeight","parentWhiteSpace","setParentWhiteSpace","_a","_b","_c","_d","nextWhiteSpace","getComputedStyle","whiteSpace","isOverflow","baseRowsEllipsisHeight","descRowsEllipsisHeight","symbolRowEllipsisHeight","maxRowsHeight","Math","max","cutMidIndex","ceil","minIndex","maxIndex","midHeight","targetMidIndex","finalContent","content","includes","WebkitLineClamp","concat","measureStyle","margin","padding","Fragment"],"sources":["/Users/nili/Documents/trae_projects/client/node_modules/antd/es/typography/Base/Ellipsis.js"],"sourcesContent":["\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { isValidText } from './util';\nconst MeasureText = /*#__PURE__*/React.forwardRef(({\n  style,\n  children\n}, ref) => {\n  const spanRef = React.useRef(null);\n  React.useImperativeHandle(ref, () => ({\n    isExceed: () => {\n      const span = spanRef.current;\n      return span.scrollHeight > span.clientHeight;\n    },\n    getHeight: () => spanRef.current.clientHeight\n  }));\n  return /*#__PURE__*/React.createElement(\"span\", {\n    \"aria-hidden\": true,\n    ref: spanRef,\n    style: Object.assign({\n      position: 'fixed',\n      display: 'block',\n      left: 0,\n      top: 0,\n      pointerEvents: 'none',\n      backgroundColor: 'rgba(255, 0, 0, 0.65)'\n    }, style)\n  }, children);\n});\nconst getNodesLen = nodeList => nodeList.reduce((totalLen, node) => totalLen + (isValidText(node) ? String(node).length : 1), 0);\nfunction sliceNodes(nodeList, len) {\n  let currLen = 0;\n  const currentNodeList = [];\n  for (let i = 0; i < nodeList.length; i += 1) {\n    // Match to return\n    if (currLen === len) {\n      return currentNodeList;\n    }\n    const node = nodeList[i];\n    const canCut = isValidText(node);\n    const nodeLen = canCut ? String(node).length : 1;\n    const nextLen = currLen + nodeLen;\n    // Exceed but current not which means we need cut this\n    // This will not happen on validate ReactElement\n    if (nextLen > len) {\n      const restLen = len - currLen;\n      currentNodeList.push(String(node).slice(0, restLen));\n      return currentNodeList;\n    }\n    currentNodeList.push(node);\n    currLen = nextLen;\n  }\n  return nodeList;\n}\n// Measure for the `text` is exceed the `rows` or not\nconst STATUS_MEASURE_NONE = 0;\nconst STATUS_MEASURE_PREPARE = 1;\nconst STATUS_MEASURE_START = 2;\nconst STATUS_MEASURE_NEED_ELLIPSIS = 3;\nconst STATUS_MEASURE_NO_NEED_ELLIPSIS = 4;\nconst lineClipStyle = {\n  display: '-webkit-box',\n  overflow: 'hidden',\n  WebkitBoxOrient: 'vertical'\n};\nexport default function EllipsisMeasure(props) {\n  const {\n    enableMeasure,\n    width,\n    text,\n    children,\n    rows,\n    expanded,\n    miscDeps,\n    onEllipsis\n  } = props;\n  const nodeList = React.useMemo(() => toArray(text), [text]);\n  const nodeLen = React.useMemo(() => getNodesLen(nodeList), [text]);\n  // ========================= Full Content =========================\n  // Used for measure only, which means it's always render as no need ellipsis\n  const fullContent = React.useMemo(() => children(nodeList, false), [text]);\n  // ========================= Cut Content ==========================\n  const [ellipsisCutIndex, setEllipsisCutIndex] = React.useState(null);\n  const cutMidRef = React.useRef(null);\n  // ========================= NeedEllipsis =========================\n  const measureWhiteSpaceRef = React.useRef(null);\n  const needEllipsisRef = React.useRef(null);\n  // Measure for `rows-1` height, to avoid operation exceed the line height\n  const descRowsEllipsisRef = React.useRef(null);\n  const symbolRowEllipsisRef = React.useRef(null);\n  const [canEllipsis, setCanEllipsis] = React.useState(false);\n  const [needEllipsis, setNeedEllipsis] = React.useState(STATUS_MEASURE_NONE);\n  const [ellipsisHeight, setEllipsisHeight] = React.useState(0);\n  const [parentWhiteSpace, setParentWhiteSpace] = React.useState(null);\n  // Trigger start measure\n  useLayoutEffect(() => {\n    if (enableMeasure && width && nodeLen) {\n      setNeedEllipsis(STATUS_MEASURE_PREPARE);\n    } else {\n      setNeedEllipsis(STATUS_MEASURE_NONE);\n    }\n  }, [width, text, rows, enableMeasure, nodeList]);\n  // Measure process\n  useLayoutEffect(() => {\n    var _a, _b, _c, _d;\n    if (needEllipsis === STATUS_MEASURE_PREPARE) {\n      setNeedEllipsis(STATUS_MEASURE_START);\n      // Parent ref `white-space`\n      const nextWhiteSpace = measureWhiteSpaceRef.current && getComputedStyle(measureWhiteSpaceRef.current).whiteSpace;\n      setParentWhiteSpace(nextWhiteSpace);\n    } else if (needEllipsis === STATUS_MEASURE_START) {\n      const isOverflow = !!((_a = needEllipsisRef.current) === null || _a === void 0 ? void 0 : _a.isExceed());\n      setNeedEllipsis(isOverflow ? STATUS_MEASURE_NEED_ELLIPSIS : STATUS_MEASURE_NO_NEED_ELLIPSIS);\n      setEllipsisCutIndex(isOverflow ? [0, nodeLen] : null);\n      setCanEllipsis(isOverflow);\n      // Get the basic height of ellipsis rows\n      const baseRowsEllipsisHeight = ((_b = needEllipsisRef.current) === null || _b === void 0 ? void 0 : _b.getHeight()) || 0;\n      // Get the height of `rows - 1` + symbol height\n      const descRowsEllipsisHeight = rows === 1 ? 0 : ((_c = descRowsEllipsisRef.current) === null || _c === void 0 ? void 0 : _c.getHeight()) || 0;\n      const symbolRowEllipsisHeight = ((_d = symbolRowEllipsisRef.current) === null || _d === void 0 ? void 0 : _d.getHeight()) || 0;\n      const maxRowsHeight = Math.max(baseRowsEllipsisHeight,\n      // height of rows with ellipsis\n      descRowsEllipsisHeight + symbolRowEllipsisHeight);\n      setEllipsisHeight(maxRowsHeight + 1);\n      onEllipsis(isOverflow);\n    }\n  }, [needEllipsis]);\n  // ========================= Cut Measure ==========================\n  const cutMidIndex = ellipsisCutIndex ? Math.ceil((ellipsisCutIndex[0] + ellipsisCutIndex[1]) / 2) : 0;\n  useLayoutEffect(() => {\n    var _a;\n    const [minIndex, maxIndex] = ellipsisCutIndex || [0, 0];\n    if (minIndex !== maxIndex) {\n      const midHeight = ((_a = cutMidRef.current) === null || _a === void 0 ? void 0 : _a.getHeight()) || 0;\n      const isOverflow = midHeight > ellipsisHeight;\n      let targetMidIndex = cutMidIndex;\n      if (maxIndex - minIndex === 1) {\n        targetMidIndex = isOverflow ? minIndex : maxIndex;\n      }\n      setEllipsisCutIndex(isOverflow ? [minIndex, targetMidIndex] : [targetMidIndex, maxIndex]);\n    }\n  }, [ellipsisCutIndex, cutMidIndex]);\n  // ========================= Text Content =========================\n  const finalContent = React.useMemo(() => {\n    // Skip everything if `enableMeasure` is disabled\n    if (!enableMeasure) {\n      return children(nodeList, false);\n    }\n    if (needEllipsis !== STATUS_MEASURE_NEED_ELLIPSIS || !ellipsisCutIndex || ellipsisCutIndex[0] !== ellipsisCutIndex[1]) {\n      const content = children(nodeList, false);\n      // Limit the max line count to avoid scrollbar blink unless no need ellipsis\n      // https://github.com/ant-design/ant-design/issues/42958\n      if ([STATUS_MEASURE_NO_NEED_ELLIPSIS, STATUS_MEASURE_NONE].includes(needEllipsis)) {\n        return content;\n      }\n      return /*#__PURE__*/React.createElement(\"span\", {\n        style: Object.assign(Object.assign({}, lineClipStyle), {\n          WebkitLineClamp: rows\n        })\n      }, content);\n    }\n    return children(expanded ? nodeList : sliceNodes(nodeList, ellipsisCutIndex[0]), canEllipsis);\n  }, [expanded, needEllipsis, ellipsisCutIndex, nodeList].concat(_toConsumableArray(miscDeps)));\n  // ============================ Render ============================\n  const measureStyle = {\n    width,\n    margin: 0,\n    padding: 0,\n    whiteSpace: parentWhiteSpace === 'nowrap' ? 'normal' : 'inherit'\n  };\n  return /*#__PURE__*/React.createElement(React.Fragment, null, finalContent, needEllipsis === STATUS_MEASURE_START && (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MeasureText, {\n    style: Object.assign(Object.assign(Object.assign({}, measureStyle), lineClipStyle), {\n      WebkitLineClamp: rows\n    }),\n    ref: needEllipsisRef\n  }, fullContent), /*#__PURE__*/React.createElement(MeasureText, {\n    style: Object.assign(Object.assign(Object.assign({}, measureStyle), lineClipStyle), {\n      WebkitLineClamp: rows - 1\n    }),\n    ref: descRowsEllipsisRef\n  }, fullContent), /*#__PURE__*/React.createElement(MeasureText, {\n    style: Object.assign(Object.assign(Object.assign({}, measureStyle), lineClipStyle), {\n      WebkitLineClamp: 1\n    }),\n    ref: symbolRowEllipsisRef\n  }, children([], true)))), needEllipsis === STATUS_MEASURE_NEED_ELLIPSIS && ellipsisCutIndex && ellipsisCutIndex[0] !== ellipsisCutIndex[1] && (/*#__PURE__*/React.createElement(MeasureText, {\n    style: Object.assign(Object.assign({}, measureStyle), {\n      top: 400\n    }),\n    ref: cutMidRef\n  }, children(sliceNodes(nodeList, cutMidIndex), true))), needEllipsis === STATUS_MEASURE_PREPARE && (/*#__PURE__*/React.createElement(\"span\", {\n    style: {\n      whiteSpace: 'inherit'\n    },\n    ref: measureWhiteSpaceRef\n  })));\n}"],"mappings":"AAAA,YAAY;;AAEZ,OAAOA,kBAAkB,MAAM,8CAA8C;AAC7E,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,OAAOC,OAAO,MAAM,6BAA6B;AACjD,OAAOC,eAAe,MAAM,kCAAkC;AAC9D,SAASC,WAAW,QAAQ,QAAQ;AACpC,MAAMC,WAAW,GAAG,aAAaJ,KAAK,CAACK,UAAU,CAAC,CAAAC,IAAA,EAG/CC,GAAG,KAAK;EAAA,IAHwC;IACjDC,KAAK;IACLC;EACF,CAAC,GAAAH,IAAA;EACC,MAAMI,OAAO,GAAGV,KAAK,CAACW,MAAM,CAAC,IAAI,CAAC;EAClCX,KAAK,CAACY,mBAAmB,CAACL,GAAG,EAAE,OAAO;IACpCM,QAAQ,EAAEA,CAAA,KAAM;MACd,MAAMC,IAAI,GAAGJ,OAAO,CAACK,OAAO;MAC5B,OAAOD,IAAI,CAACE,YAAY,GAAGF,IAAI,CAACG,YAAY;IAC9C,CAAC;IACDC,SAAS,EAAEA,CAAA,KAAMR,OAAO,CAACK,OAAO,CAACE;EACnC,CAAC,CAAC,CAAC;EACH,OAAO,aAAajB,KAAK,CAACmB,aAAa,CAAC,MAAM,EAAE;IAC9C,aAAa,EAAE,IAAI;IACnBZ,GAAG,EAAEG,OAAO;IACZF,KAAK,EAAEY,MAAM,CAACC,MAAM,CAAC;MACnBC,QAAQ,EAAE,OAAO;MACjBC,OAAO,EAAE,OAAO;MAChBC,IAAI,EAAE,CAAC;MACPC,GAAG,EAAE,CAAC;MACNC,aAAa,EAAE,MAAM;MACrBC,eAAe,EAAE;IACnB,CAAC,EAAEnB,KAAK;EACV,CAAC,EAAEC,QAAQ,CAAC;AACd,CAAC,CAAC;AACF,MAAMmB,WAAW,GAAGC,QAAQ,IAAIA,QAAQ,CAACC,MAAM,CAAC,CAACC,QAAQ,EAAEC,IAAI,KAAKD,QAAQ,IAAI5B,WAAW,CAAC6B,IAAI,CAAC,GAAGC,MAAM,CAACD,IAAI,CAAC,CAACE,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAChI,SAASC,UAAUA,CAACN,QAAQ,EAAEO,GAAG,EAAE;EACjC,IAAIC,OAAO,GAAG,CAAC;EACf,MAAMC,eAAe,GAAG,EAAE;EAC1B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGV,QAAQ,CAACK,MAAM,EAAEK,CAAC,IAAI,CAAC,EAAE;IAC3C;IACA,IAAIF,OAAO,KAAKD,GAAG,EAAE;MACnB,OAAOE,eAAe;IACxB;IACA,MAAMN,IAAI,GAAGH,QAAQ,CAACU,CAAC,CAAC;IACxB,MAAMC,MAAM,GAAGrC,WAAW,CAAC6B,IAAI,CAAC;IAChC,MAAMS,OAAO,GAAGD,MAAM,GAAGP,MAAM,CAACD,IAAI,CAAC,CAACE,MAAM,GAAG,CAAC;IAChD,MAAMQ,OAAO,GAAGL,OAAO,GAAGI,OAAO;IACjC;IACA;IACA,IAAIC,OAAO,GAAGN,GAAG,EAAE;MACjB,MAAMO,OAAO,GAAGP,GAAG,GAAGC,OAAO;MAC7BC,eAAe,CAACM,IAAI,CAACX,MAAM,CAACD,IAAI,CAAC,CAACa,KAAK,CAAC,CAAC,EAAEF,OAAO,CAAC,CAAC;MACpD,OAAOL,eAAe;IACxB;IACAA,eAAe,CAACM,IAAI,CAACZ,IAAI,CAAC;IAC1BK,OAAO,GAAGK,OAAO;EACnB;EACA,OAAOb,QAAQ;AACjB;AACA;AACA,MAAMiB,mBAAmB,GAAG,CAAC;AAC7B,MAAMC,sBAAsB,GAAG,CAAC;AAChC,MAAMC,oBAAoB,GAAG,CAAC;AAC9B,MAAMC,4BAA4B,GAAG,CAAC;AACtC,MAAMC,+BAA+B,GAAG,CAAC;AACzC,MAAMC,aAAa,GAAG;EACpB5B,OAAO,EAAE,aAAa;EACtB6B,QAAQ,EAAE,QAAQ;EAClBC,eAAe,EAAE;AACnB,CAAC;AACD,eAAe,SAASC,eAAeA,CAACC,KAAK,EAAE;EAC7C,MAAM;IACJC,aAAa;IACbC,KAAK;IACLC,IAAI;IACJjD,QAAQ;IACRkD,IAAI;IACJC,QAAQ;IACRC,QAAQ;IACRC;EACF,CAAC,GAAGP,KAAK;EACT,MAAM1B,QAAQ,GAAG7B,KAAK,CAAC+D,OAAO,CAAC,MAAM9D,OAAO,CAACyD,IAAI,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAC3D,MAAMjB,OAAO,GAAGzC,KAAK,CAAC+D,OAAO,CAAC,MAAMnC,WAAW,CAACC,QAAQ,CAAC,EAAE,CAAC6B,IAAI,CAAC,CAAC;EAClE;EACA;EACA,MAAMM,WAAW,GAAGhE,KAAK,CAAC+D,OAAO,CAAC,MAAMtD,QAAQ,CAACoB,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC6B,IAAI,CAAC,CAAC;EAC1E;EACA,MAAM,CAACO,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGlE,KAAK,CAACmE,QAAQ,CAAC,IAAI,CAAC;EACpE,MAAMC,SAAS,GAAGpE,KAAK,CAACW,MAAM,CAAC,IAAI,CAAC;EACpC;EACA,MAAM0D,oBAAoB,GAAGrE,KAAK,CAACW,MAAM,CAAC,IAAI,CAAC;EAC/C,MAAM2D,eAAe,GAAGtE,KAAK,CAACW,MAAM,CAAC,IAAI,CAAC;EAC1C;EACA,MAAM4D,mBAAmB,GAAGvE,KAAK,CAACW,MAAM,CAAC,IAAI,CAAC;EAC9C,MAAM6D,oBAAoB,GAAGxE,KAAK,CAACW,MAAM,CAAC,IAAI,CAAC;EAC/C,MAAM,CAAC8D,WAAW,EAAEC,cAAc,CAAC,GAAG1E,KAAK,CAACmE,QAAQ,CAAC,KAAK,CAAC;EAC3D,MAAM,CAACQ,YAAY,EAAEC,eAAe,CAAC,GAAG5E,KAAK,CAACmE,QAAQ,CAACrB,mBAAmB,CAAC;EAC3E,MAAM,CAAC+B,cAAc,EAAEC,iBAAiB,CAAC,GAAG9E,KAAK,CAACmE,QAAQ,CAAC,CAAC,CAAC;EAC7D,MAAM,CAACY,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGhF,KAAK,CAACmE,QAAQ,CAAC,IAAI,CAAC;EACpE;EACAjE,eAAe,CAAC,MAAM;IACpB,IAAIsD,aAAa,IAAIC,KAAK,IAAIhB,OAAO,EAAE;MACrCmC,eAAe,CAAC7B,sBAAsB,CAAC;IACzC,CAAC,MAAM;MACL6B,eAAe,CAAC9B,mBAAmB,CAAC;IACtC;EACF,CAAC,EAAE,CAACW,KAAK,EAAEC,IAAI,EAAEC,IAAI,EAAEH,aAAa,EAAE3B,QAAQ,CAAC,CAAC;EAChD;EACA3B,eAAe,CAAC,MAAM;IACpB,IAAI+E,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE;IAClB,IAAIT,YAAY,KAAK5B,sBAAsB,EAAE;MAC3C6B,eAAe,CAAC5B,oBAAoB,CAAC;MACrC;MACA,MAAMqC,cAAc,GAAGhB,oBAAoB,CAACtD,OAAO,IAAIuE,gBAAgB,CAACjB,oBAAoB,CAACtD,OAAO,CAAC,CAACwE,UAAU;MAChHP,mBAAmB,CAACK,cAAc,CAAC;IACrC,CAAC,MAAM,IAAIV,YAAY,KAAK3B,oBAAoB,EAAE;MAChD,MAAMwC,UAAU,GAAG,CAAC,EAAE,CAACP,EAAE,GAAGX,eAAe,CAACvD,OAAO,MAAM,IAAI,IAAIkE,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,EAAE,CAACpE,QAAQ,CAAC,CAAC,CAAC;MACxG+D,eAAe,CAACY,UAAU,GAAGvC,4BAA4B,GAAGC,+BAA+B,CAAC;MAC5FgB,mBAAmB,CAACsB,UAAU,GAAG,CAAC,CAAC,EAAE/C,OAAO,CAAC,GAAG,IAAI,CAAC;MACrDiC,cAAc,CAACc,UAAU,CAAC;MAC1B;MACA,MAAMC,sBAAsB,GAAG,CAAC,CAACP,EAAE,GAAGZ,eAAe,CAACvD,OAAO,MAAM,IAAI,IAAImE,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,EAAE,CAAChE,SAAS,CAAC,CAAC,KAAK,CAAC;MACxH;MACA,MAAMwE,sBAAsB,GAAG/B,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAACwB,EAAE,GAAGZ,mBAAmB,CAACxD,OAAO,MAAM,IAAI,IAAIoE,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,EAAE,CAACjE,SAAS,CAAC,CAAC,KAAK,CAAC;MAC7I,MAAMyE,uBAAuB,GAAG,CAAC,CAACP,EAAE,GAAGZ,oBAAoB,CAACzD,OAAO,MAAM,IAAI,IAAIqE,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,EAAE,CAAClE,SAAS,CAAC,CAAC,KAAK,CAAC;MAC9H,MAAM0E,aAAa,GAAGC,IAAI,CAACC,GAAG,CAACL,sBAAsB;MACrD;MACAC,sBAAsB,GAAGC,uBAAuB,CAAC;MACjDb,iBAAiB,CAACc,aAAa,GAAG,CAAC,CAAC;MACpC9B,UAAU,CAAC0B,UAAU,CAAC;IACxB;EACF,CAAC,EAAE,CAACb,YAAY,CAAC,CAAC;EAClB;EACA,MAAMoB,WAAW,GAAG9B,gBAAgB,GAAG4B,IAAI,CAACG,IAAI,CAAC,CAAC/B,gBAAgB,CAAC,CAAC,CAAC,GAAGA,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;EACrG/D,eAAe,CAAC,MAAM;IACpB,IAAI+E,EAAE;IACN,MAAM,CAACgB,QAAQ,EAAEC,QAAQ,CAAC,GAAGjC,gBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IACvD,IAAIgC,QAAQ,KAAKC,QAAQ,EAAE;MACzB,MAAMC,SAAS,GAAG,CAAC,CAAClB,EAAE,GAAGb,SAAS,CAACrD,OAAO,MAAM,IAAI,IAAIkE,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,EAAE,CAAC/D,SAAS,CAAC,CAAC,KAAK,CAAC;MACrG,MAAMsE,UAAU,GAAGW,SAAS,GAAGtB,cAAc;MAC7C,IAAIuB,cAAc,GAAGL,WAAW;MAChC,IAAIG,QAAQ,GAAGD,QAAQ,KAAK,CAAC,EAAE;QAC7BG,cAAc,GAAGZ,UAAU,GAAGS,QAAQ,GAAGC,QAAQ;MACnD;MACAhC,mBAAmB,CAACsB,UAAU,GAAG,CAACS,QAAQ,EAAEG,cAAc,CAAC,GAAG,CAACA,cAAc,EAAEF,QAAQ,CAAC,CAAC;IAC3F;EACF,CAAC,EAAE,CAACjC,gBAAgB,EAAE8B,WAAW,CAAC,CAAC;EACnC;EACA,MAAMM,YAAY,GAAGrG,KAAK,CAAC+D,OAAO,CAAC,MAAM;IACvC;IACA,IAAI,CAACP,aAAa,EAAE;MAClB,OAAO/C,QAAQ,CAACoB,QAAQ,EAAE,KAAK,CAAC;IAClC;IACA,IAAI8C,YAAY,KAAK1B,4BAA4B,IAAI,CAACgB,gBAAgB,IAAIA,gBAAgB,CAAC,CAAC,CAAC,KAAKA,gBAAgB,CAAC,CAAC,CAAC,EAAE;MACrH,MAAMqC,OAAO,GAAG7F,QAAQ,CAACoB,QAAQ,EAAE,KAAK,CAAC;MACzC;MACA;MACA,IAAI,CAACqB,+BAA+B,EAAEJ,mBAAmB,CAAC,CAACyD,QAAQ,CAAC5B,YAAY,CAAC,EAAE;QACjF,OAAO2B,OAAO;MAChB;MACA,OAAO,aAAatG,KAAK,CAACmB,aAAa,CAAC,MAAM,EAAE;QAC9CX,KAAK,EAAEY,MAAM,CAACC,MAAM,CAACD,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAE8B,aAAa,CAAC,EAAE;UACrDqD,eAAe,EAAE7C;QACnB,CAAC;MACH,CAAC,EAAE2C,OAAO,CAAC;IACb;IACA,OAAO7F,QAAQ,CAACmD,QAAQ,GAAG/B,QAAQ,GAAGM,UAAU,CAACN,QAAQ,EAAEoC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAEQ,WAAW,CAAC;EAC/F,CAAC,EAAE,CAACb,QAAQ,EAAEe,YAAY,EAAEV,gBAAgB,EAAEpC,QAAQ,CAAC,CAAC4E,MAAM,CAAC1G,kBAAkB,CAAC8D,QAAQ,CAAC,CAAC,CAAC;EAC7F;EACA,MAAM6C,YAAY,GAAG;IACnBjD,KAAK;IACLkD,MAAM,EAAE,CAAC;IACTC,OAAO,EAAE,CAAC;IACVrB,UAAU,EAAER,gBAAgB,KAAK,QAAQ,GAAG,QAAQ,GAAG;EACzD,CAAC;EACD,OAAO,aAAa/E,KAAK,CAACmB,aAAa,CAACnB,KAAK,CAAC6G,QAAQ,EAAE,IAAI,EAAER,YAAY,EAAE1B,YAAY,KAAK3B,oBAAoB,KAAK,aAAahD,KAAK,CAACmB,aAAa,CAACnB,KAAK,CAAC6G,QAAQ,EAAE,IAAI,EAAE,aAAa7G,KAAK,CAACmB,aAAa,CAACf,WAAW,EAAE;IACzNI,KAAK,EAAEY,MAAM,CAACC,MAAM,CAACD,MAAM,CAACC,MAAM,CAACD,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAEqF,YAAY,CAAC,EAAEvD,aAAa,CAAC,EAAE;MAClFqD,eAAe,EAAE7C;IACnB,CAAC,CAAC;IACFpD,GAAG,EAAE+D;EACP,CAAC,EAAEN,WAAW,CAAC,EAAE,aAAahE,KAAK,CAACmB,aAAa,CAACf,WAAW,EAAE;IAC7DI,KAAK,EAAEY,MAAM,CAACC,MAAM,CAACD,MAAM,CAACC,MAAM,CAACD,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAEqF,YAAY,CAAC,EAAEvD,aAAa,CAAC,EAAE;MAClFqD,eAAe,EAAE7C,IAAI,GAAG;IAC1B,CAAC,CAAC;IACFpD,GAAG,EAAEgE;EACP,CAAC,EAAEP,WAAW,CAAC,EAAE,aAAahE,KAAK,CAACmB,aAAa,CAACf,WAAW,EAAE;IAC7DI,KAAK,EAAEY,MAAM,CAACC,MAAM,CAACD,MAAM,CAACC,MAAM,CAACD,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAEqF,YAAY,CAAC,EAAEvD,aAAa,CAAC,EAAE;MAClFqD,eAAe,EAAE;IACnB,CAAC,CAAC;IACFjG,GAAG,EAAEiE;EACP,CAAC,EAAE/D,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAEkE,YAAY,KAAK1B,4BAA4B,IAAIgB,gBAAgB,IAAIA,gBAAgB,CAAC,CAAC,CAAC,KAAKA,gBAAgB,CAAC,CAAC,CAAC,KAAK,aAAajE,KAAK,CAACmB,aAAa,CAACf,WAAW,EAAE;IAC3LI,KAAK,EAAEY,MAAM,CAACC,MAAM,CAACD,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAEqF,YAAY,CAAC,EAAE;MACpDjF,GAAG,EAAE;IACP,CAAC,CAAC;IACFlB,GAAG,EAAE6D;EACP,CAAC,EAAE3D,QAAQ,CAAC0B,UAAU,CAACN,QAAQ,EAAEkE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAEpB,YAAY,KAAK5B,sBAAsB,KAAK,aAAa/C,KAAK,CAACmB,aAAa,CAAC,MAAM,EAAE;IAC3IX,KAAK,EAAE;MACL+E,UAAU,EAAE;IACd,CAAC;IACDhF,GAAG,EAAE8D;EACP,CAAC,CAAC,CAAC,CAAC;AACN","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}