import { computed as O, ref as p, watch as re, onMounted as nt, onBeforeUnmount as st, createElementBlock as P, openBlock as C, unref as b, normalizeStyle as ue, createBlock as E, createCommentVNode as z, createVNode as _e, createSlots as rt, withCtx as S, renderSlot as x, normalizeProps as _, guardReactiveProps as I, normalizeClass as Ie, createElementVNode as Re, Fragment as ut, renderList as it, toDisplayString as We, createTextVNode as ct, nextTick as Ve } from "vue";
import { u as dt, c as Ue, a6 as vt, v as ht, t as ft, p as Z, a as mt, o as pt, e as De, g as gt, f as yt, X as bt, q as wt, r as Ct, x as kt } from "./index-C7spnOfS.js";
import { _ as $t } from "./Title-Ch602IT9.js";
import { u as xt, U as Tt } from "./usePrinter-BDUIRBP4.js";
import { t as St, u as Mt, d as Ft } from "./useResponsive-Cw4oZ8sQ.js";
import Pt from "./vue-ui-accordion-Bk2aYAD-.js";
import { D as zt } from "./DataTable-CmnlvDKM.js";
import { u as Be } from "./useNestedProp-BXHzK3EV.js";
import { _ as Ot } from "./PackageVersion-DavVl5j6.js";
import { _ as At } from "./Tooltip-0IaPNa9t.js";
import { P as Nt } from "./PenAndPaper-CGAd_cD9.js";
import { u as _t } from "./useUserOptionState-BIvW1Kz7.js";
import { u as It } from "./useChartAccessibility-BWojgys7.js";
import { u as Rt } from "./usePanZoom-CWL8SzZN.js";
import { _ as Wt } from "./_plugin-vue_export-helper-CHgC5LLL.js";
const Vt = ["id"], Ut = ["xmlns", "viewBox"], Dt = ["width", "height"], Bt = ["transform"], Et = ["fill", "font-weight", "x", "y", "font-size", "transform", "onMouseover"], Gt = {
  key: 4,
  class: "vue-data-ui-watermark"
}, Lt = ["innerHTML"], Ht = {
  __name: "vue-ui-word-cloud",
  props: {
    config: {
      type: Object,
      default() {
        return {};
      }
    },
    dataset: {
      type: [Array, String],
      default() {
        return [];
      }
    }
  },
  setup(Ee, { expose: Ge }) {
    const { vue_ui_word_cloud: Le } = dt(), M = Ee, G = O({
      get() {
        return !!M.dataset && M.dataset.length;
      },
      set(t) {
        return t;
      }
    }), J = p(Ue()), ie = p(0), R = p(null), ce = p(null), de = p(null), ve = p(0), he = p(0), K = p(!1), e = O({
      get: () => ge(),
      set: (t) => t
    }), A = p(fe());
    function fe() {
      return typeof M.dataset == "string" ? vt(M.dataset) : M.dataset.map((t, l) => ({
        ...t,
        value: ht(t.value)
      }));
    }
    re(() => M.dataset, () => {
      A.value = fe(), te();
    });
    const { userOptionsVisible: Q, setUserOptionsVisibility: me, keepUserOptionState: pe } = _t({ config: e.value }), { svgRef: ee } = It({ config: e.value.style.chart.title });
    function ge() {
      const t = Be({
        userConfig: M.config,
        defaultConfig: Le
      });
      return t.theme ? {
        ...Be({
          userConfig: mt.vue_ui_word_cloud[t.theme] || M.config,
          defaultConfig: t
        }),
        customPalette: ft[t.theme] || Z
      } : t;
    }
    re(() => M.config, (t) => {
      e.value = ge(), Q.value = !e.value.userOptions.showOnChartHover, ye(), ve.value += 1, he.value += 1, refreshSlicer(), k.value.showTable = e.value.table.show, k.value.showTooltip = e.value.style.chart.tooltip.show;
    }, { deep: !0 });
    const n = p({
      width: e.value.style.chart.width,
      height: e.value.style.chart.height,
      maxFontSize: e.value.style.chart.words.maxFontSize,
      minFontSize: e.value.style.chart.words.minFontSize
    }), He = Ft(() => {
      te();
    }, 10), je = St(() => {
      const { width: t, height: l } = Mt({
        chart: R.value,
        title: e.value.style.chart.title.text ? ce.value : null,
        source: de.value
      });
      requestAnimationFrame(() => {
        n.value.width = t, n.value.height = l, Ve(He);
      });
    }), L = p(null);
    nt(ye);
    function ye() {
      pt(M.dataset) ? De({
        componentName: "VueUiWordCloud",
        type: "dataset"
      }) : A.value.forEach((t, l) => {
        gt({
          datasetObject: t,
          requiredAttributes: ["name", "value"]
        }).forEach((o) => {
          G.value = !1, De({
            componentName: "VueUiWordCloud",
            type: "datasetSerieAttribute",
            property: o,
            index: l
          });
        });
      }), e.value.responsive && (L.value = new ResizeObserver(je), L.value.observe(R.value.parentNode));
    }
    st(() => {
      L.value && L.value.disconnect();
    });
    const { isPrinting: be, isImaging: we, generatePdf: Ce, generateImage: ke } = xt({
      elementId: `wordCloud_${J.value}`,
      fileName: e.value.style.chart.title.text || "vue-ui-word-cloud",
      options: e.value.userOptions.print
    }), k = p({
      showTable: e.value.table.show,
      showTooltip: e.value.style.chart.tooltip.show
    });
    function Xe(t, l, o = "Arial") {
      const a = document.createElement("canvas").getContext("2d");
      return a.font = `${l}px ${e.value.style.chart.words.bold ? "bold" : "normal"} ${o}`, {
        width: a.measureText(t).width + e.value.style.chart.words.proximity,
        height: l
      };
    }
    function qe(t, l, o) {
      const s = Math.round(l), a = Math.round(o), $ = 1, T = n.value.minFontSize, D = n.value.maxFontSize, Se = e.value.style.chart.words.proximity || 0, Me = t.map((h) => h.value), ne = Math.min(...Me), Fe = Math.max(...Me), Y = new Uint8Array(s * a), B = document.createElement("canvas"), F = B.getContext("2d", { willReadFrequently: !0 });
      B.width = s, B.height = a;
      function Pe(h, g, y) {
        F.save(), F.font = `${n.value.style && n.value.style.bold ? "bold " : ""}${g}px Arial`;
        const f = F.measureText(h.name), c = Math.ceil(f.width) + 2 + (y ? y * 2 : 0), r = Math.ceil(g) + 2 + (y ? y * 2 : 0);
        B.width = c, B.height = r, F.clearRect(0, 0, c, r), F.font = `${n.value.style && n.value.style.bold ? "bold " : ""}${g}px Arial`, F.textAlign = "center", F.textBaseline = "middle", F.fillStyle = "black", F.fillText(h.name, c / 2, r / 2);
        const i = F.getImageData(0, 0, c, r).data, d = [];
        for (let m = 0; m < r; m += 1)
          for (let v = 0; v < c; v += 1)
            i[(m * c + v) * 4 + 3] > 1 && d.push([v, m]);
        return F.restore(), { w: c, h: r, wordMask: d };
      }
      function ze(h, g, y, f, c, r) {
        for (let u = 0; u < r.length; u += 1) {
          const i = f + r[u][0], d = c + r[u][1];
          if (i < 0 || d < 0 || i >= g || d >= y || h[d * g + i]) return !1;
        }
        return !0;
      }
      function Oe(h, g, y, f, c, r) {
        for (let u = 0; u < r.length; u += 1) {
          const i = f + r[u][0], d = c + r[u][1];
          i >= 0 && d >= 0 && i < g && d < y && (h[d * g + i] = 1);
        }
      }
      const Qe = 6, et = 2, tt = 2, ot = 1, Ae = Math.floor(s / 2), Ne = Math.floor(a / 2), at = [...t].sort((h, g) => g.value - h.value), se = [];
      function lt(h, g, y, f = 1) {
        const c = new Set(h.map(([u, i]) => `${u},${i}`)), r = new Set(c);
        for (let [u, i] of h)
          for (let d = -f; d <= f; d += 1)
            for (let m = -f; m <= f; m += 1) {
              if (d === 0 && m === 0) continue;
              const v = u + d, w = i + m;
              v >= 0 && v < g && w >= 0 && w < y && r.add(`${v},${w}`);
            }
        return Array.from(r).map((u) => u.split(",").map(Number));
      }
      for (const h of at) {
        let g = T;
        Fe !== ne && (g = (h.value - ne) / (Fe - ne) * (D - T) + T), g = Math.max(T, Math.min(D, g));
        let y = !1, f = g;
        for (; !y && f >= $; ) {
          let { w: c, h: r, wordMask: u } = Pe(h, f, Se);
          u = lt(u, c, r, 2);
          let i = 0, d = 0;
          for (; i < Math.max(s, a) && !y && d < 1e4; ) {
            for (let m = 0; m < 360; m += Qe) {
              d += 1;
              const v = Math.round(Ae + i * Math.cos(m * Math.PI / 180) - c / 2), w = Math.round(Ne + i * Math.sin(m * Math.PI / 180) - r / 2);
              if (!(v < 0 || w < 0 || v + c > s || w + r > a) && ze(Y, s, a, v, w, u)) {
                se.push({ ...h, x: v - s / 2, y: w - a / 2, fontSize: f, width: c, height: r, angle: 0 }), Oe(Y, s, a, v, w, u), y = !0;
                break;
              }
            }
            i += et;
          }
          y || (f -= 1);
        }
        if (!y && f < $) {
          f = $;
          const { w: c, h: r, wordMask: u } = Pe(h, f, Se);
          let i = 0, d = 0;
          for (; i < Math.max(s, a) && !y && d < 25e3; ) {
            for (let m = 0; m < 360; m += tt) {
              d += 1;
              const v = Math.round(Ae + i * Math.cos(m * Math.PI / 180) - c / 2), w = Math.round(Ne + i * Math.sin(m * Math.PI / 180) - r / 2);
              if (!(v < 0 || w < 0 || v + c > s || w + r > a) && ze(Y, s, a, v, w, u)) {
                se.push({ ...h, x: v - s / 2, y: w - a / 2, fontSize: f, width: c, height: r, angle: 0 }), Oe(Y, s, a, v, w, u), y = !0;
                break;
              }
            }
            i += ot;
          }
        }
      }
      return se;
    }
    const W = p([]);
    re(() => M.dataset, te, { immediate: !0 }), O(() => Math.round(Math.min(...A.value.map((t) => t.value)))), O(() => Math.round(Math.max(...A.value.map((t) => t.value))));
    function te() {
      const t = [...A.value].map((a) => a.value), l = Math.max(...t), o = Math.min(...t), s = [...A.value].map((a, $) => {
        let T = (a.value - o) / (l - o) * (n.value.maxFontSize - n.value.minFontSize) + n.value.minFontSize;
        T = isNaN(T) ? n.value.minFontSize : T;
        const D = Xe(a.name, T);
        return {
          ...a,
          id: Ue(),
          fontSize: T,
          width: D.width,
          height: D.height,
          color: e.value.style.chart.words.usePalette ? e.value.customPalette[$] || e.value.customPalette[$ % e.value.customPalette.length] || Z[$] || Z[$ % Z.length] : e.value.style.chart.words.color
        };
      });
      W.value = qe(s, n.value.width, n.value.height).sort((a, $) => $.fontSize - a.fontSize);
    }
    const H = O(() => {
      const t = W.value.map((o) => ({
        name: o.name,
        color: o.color
      })), l = W.value.map((o) => o.value);
      return { head: t, body: l };
    });
    function $e() {
      Ve(() => {
        const t = H.value.head.map((s, a) => [[
          s.name
        ], [H.value.body[a]]]), l = [[e.value.style.chart.title.text], [e.value.style.chart.title.subtitle.text], [[""], [e.value.table.columnNames.value]]].concat(t), o = wt(l);
        Ct({ csvContent: o, title: e.value.style.chart.title.text || "vue-ui-word-cloud" });
      });
    }
    const j = O(() => {
      const t = [
        e.value.table.columnNames.series,
        e.value.table.columnNames.value
      ], l = H.value.head.map((a, $) => {
        const T = yt({ p: e.value.table.td.prefix, v: H.value.body[$], s: e.value.table.td.suffix, r: e.value.table.td.roundingValue });
        return [
          {
            color: a.color,
            name: a.name
          },
          T
        ];
      }), o = {
        th: {
          backgroundColor: e.value.table.th.backgroundColor,
          color: e.value.table.th.color,
          outline: e.value.table.th.outline
        },
        td: {
          backgroundColor: e.value.table.td.backgroundColor,
          color: e.value.table.td.color,
          outline: e.value.table.td.outline
        },
        breakpoint: e.value.table.responsiveBreakpoint
      };
      return {
        colNames: [
          e.value.table.columnNames.series,
          e.value.table.columnNames.value
        ],
        head: t,
        body: l,
        config: o
      };
    }), X = p(!1);
    function Ye(t) {
      X.value = t, ie.value += 1;
    }
    function Ze() {
      return W.value;
    }
    function xe() {
      k.value.showTable = !k.value.showTable;
    }
    function Te() {
      k.value.showTooltip = !k.value.showTooltip;
    }
    const V = p(!1);
    function oe() {
      V.value = !V.value;
    }
    const Je = O(() => !V.value && e.value.style.chart.zoom.show), { viewBox: q } = Rt(ee, {
      x: 0,
      y: 0,
      width: n.value.width <= 0 ? 10 : n.value.width,
      height: n.value.height <= 0 ? 10 : n.value.height
    }, 1, Je);
    Ge({
      getData: Ze,
      generateCsv: $e,
      generatePdf: Ce,
      generateImage: ke,
      toggleTable: xe,
      toggleTooltip: Te,
      toggleAnnotator: oe
    });
    const N = p(null), U = p(!1), ae = p(""), le = p(null);
    function Ke(t) {
      if (!k.value.showTooltip) return;
      N.value = t.id, le.value = { datapoint: t, config: e.value };
      const l = e.value.style.chart.tooltip.customFormat;
      if (U.value = !1, kt(l))
        try {
          const o = l({
            datapoint: t,
            config: e.value
          });
          typeof o == "string" && (ae.value = o, U.value = !0);
        } catch {
          console.warn("Custom format cannot be applied."), U.value = !1;
        }
      if (!U.value) {
        let o = `<svg viewBox="0 0 10 10" height="${e.value.style.chart.tooltip.fontSize}"><circle cx="5" cy="5" r="5" fill="${t.color}"/></svg><span>${t.name}:</span><b>${(t.value || 0).toFixed(e.value.style.chart.tooltip.roundingValue)}</b>`;
        ae.value = `<div dir="auto" style="display:flex; gap:4px; align-items:center; jsutify-content:center;">${o}</div>`;
      }
      K.value = !0;
    }
    return (t, l) => (C(), P("div", {
      class: "vue-ui-word-cloud",
      ref_key: "wordCloudChart",
      ref: R,
      id: `wordCloud_${J.value}`,
      style: ue(`width: 100%; font-family:${e.value.style.fontFamily};background:${e.value.style.chart.backgroundColor};${e.value.responsive ? "height:100%" : ""}`),
      onMouseenter: l[2] || (l[2] = () => b(me)(!0)),
      onMouseleave: l[3] || (l[3] = () => b(me)(!1))
    }, [
      e.value.userOptions.buttons.annotator ? (C(), E(Nt, {
        key: 0,
        svgRef: b(ee),
        backgroundColor: e.value.style.chart.backgroundColor,
        color: e.value.style.chart.color,
        active: V.value,
        onClose: oe
      }, null, 8, ["svgRef", "backgroundColor", "color", "active"])) : z("", !0),
      e.value.style.chart.title.text ? (C(), P("div", {
        key: 1,
        ref_key: "chartTitle",
        ref: ce,
        style: "width:100%;background:transparent;padding-bottom:24px"
      }, [
        (C(), E($t, {
          key: `title_${ve.value}`,
          config: {
            title: {
              ...e.value.style.chart.title
            },
            subtitle: {
              ...e.value.style.chart.title.subtitle
            }
          }
        }, null, 8, ["config"]))
      ], 512)) : z("", !0),
      e.value.userOptions.show && G.value && (b(pe) || b(Q)) ? (C(), E(Tt, {
        ref: "details",
        key: `user_option_${ie.value}`,
        backgroundColor: e.value.style.chart.backgroundColor,
        color: e.value.style.chart.color,
        isPrinting: b(be),
        isImaging: b(we),
        uid: J.value,
        hasPdf: e.value.userOptions.buttons.pdf,
        hasXls: e.value.userOptions.buttons.csv,
        hasImg: e.value.userOptions.buttons.img,
        hasTable: e.value.userOptions.buttons.table,
        hasFullscreen: e.value.userOptions.buttons.fullscreen,
        isFullscreen: X.value,
        titles: { ...e.value.userOptions.buttonTitles },
        chartElement: R.value,
        position: e.value.userOptions.position,
        hasTooltip: e.value.style.chart.tooltip.show && e.value.userOptions.buttons.tooltip,
        isTooltip: k.value.showTooltip,
        hasAnnotator: e.value.userOptions.buttons.annotator,
        isAnnotation: V.value,
        onToggleFullscreen: Ye,
        onGeneratePdf: b(Ce),
        onGenerateCsv: $e,
        onGenerateImage: b(ke),
        onToggleTable: xe,
        onToggleTooltip: Te,
        onToggleAnnotator: oe,
        style: ue({
          visibility: b(pe) ? b(Q) ? "visible" : "hidden" : "visible"
        })
      }, rt({ _: 2 }, [
        t.$slots.menuIcon ? {
          name: "menuIcon",
          fn: S(({ isOpen: o, color: s }) => [
            x(t.$slots, "menuIcon", _(I({ isOpen: o, color: s })), void 0, !0)
          ]),
          key: "0"
        } : void 0,
        t.$slots.optionPdf ? {
          name: "optionPdf",
          fn: S(() => [
            x(t.$slots, "optionPdf", {}, void 0, !0)
          ]),
          key: "1"
        } : void 0,
        t.$slots.optionCsv ? {
          name: "optionCsv",
          fn: S(() => [
            x(t.$slots, "optionCsv", {}, void 0, !0)
          ]),
          key: "2"
        } : void 0,
        t.$slots.optionImg ? {
          name: "optionImg",
          fn: S(() => [
            x(t.$slots, "optionImg", {}, void 0, !0)
          ]),
          key: "3"
        } : void 0,
        t.$slots.optionTable ? {
          name: "optionTable",
          fn: S(() => [
            x(t.$slots, "optionTable", {}, void 0, !0)
          ]),
          key: "4"
        } : void 0,
        t.$slots.optionFullscreen ? {
          name: "optionFullscreen",
          fn: S(({ toggleFullscreen: o, isFullscreen: s }) => [
            x(t.$slots, "optionFullscreen", _(I({ toggleFullscreen: o, isFullscreen: s })), void 0, !0)
          ]),
          key: "5"
        } : void 0,
        t.$slots.optionAnnotator ? {
          name: "optionAnnotator",
          fn: S(({ toggleAnnotator: o, isAnnotator: s }) => [
            x(t.$slots, "optionAnnotator", _(I({ toggleAnnotator: o, isAnnotator: s })), void 0, !0)
          ]),
          key: "6"
        } : void 0
      ]), 1032, ["backgroundColor", "color", "isPrinting", "isImaging", "uid", "hasPdf", "hasXls", "hasImg", "hasTable", "hasFullscreen", "isFullscreen", "titles", "chartElement", "position", "hasTooltip", "isTooltip", "hasAnnotator", "isAnnotation", "onGeneratePdf", "onGenerateImage", "style"])) : z("", !0),
      G.value ? (C(), P("svg", {
        key: 3,
        ref_key: "svgRef",
        ref: ee,
        class: Ie({ "vue-data-ui-fullscreen--on": X.value, "vue-data-ui-fulscreen--off": !X.value }),
        xmlns: b(bt),
        viewBox: `${b(q).x} ${b(q).y} ${b(q).width} ${b(q).height}`,
        style: "overflow:hidden;background:transparent;"
      }, [
        _e(Ot),
        t.$slots["chart-background"] ? (C(), P("foreignObject", {
          key: 0,
          x: 0,
          y: 0,
          width: n.value.width <= 0 ? 10 : n.value.width,
          height: n.value.height <= 0 ? 10 : n.value.height,
          style: {
            pointerEvents: "none"
          }
        }, [
          x(t.$slots, "chart-background", {}, void 0, !0)
        ], 8, Dt)) : z("", !0),
        Re("g", {
          transform: `translate(${(n.value.width <= 0 ? 10 : n.value.width) / 2}, ${(n.value.height <= 0 ? 10 : n.value.height) / 2})`
        }, [
          (C(!0), P(ut, null, it(W.value, (o, s) => (C(), P("g", null, [
            (C(), P("text", {
              fill: o.color,
              "font-weight": e.value.style.chart.words.bold ? "bold" : "normal",
              key: s,
              x: o.x,
              y: o.y,
              "font-size": o.fontSize,
              transform: `translate(${o.width / 2}, ${o.height / 2})`,
              class: Ie({ animated: e.value.useCssAnimation, "word-selected": N.value && N.value === o.id && k.value.showTooltip, "word-not-selected": N.value && N.value !== o.id && k.value.showTooltip }),
              "text-anchor": "middle",
              "dominant-baseline": "central",
              onMouseover: (a) => Ke(o),
              onMouseleave: l[0] || (l[0] = (a) => {
                N.value = null, K.value = !1;
              }),
              style: ue(`animation-delay:${s * e.value.animationDelayMs}ms !important;`)
            }, We(o.name), 47, Et))
          ]))), 256))
        ], 8, Bt),
        x(t.$slots, "svg", {
          svg: { height: n.value.height, width: n.value.width }
        }, void 0, !0)
      ], 10, Ut)) : z("", !0),
      t.$slots.watermark ? (C(), P("div", Gt, [
        x(t.$slots, "watermark", _(I({ isPrinting: b(be) || b(we) })), void 0, !0)
      ])) : z("", !0),
      _e(At, {
        show: k.value.showTooltip && K.value,
        backgroundColor: e.value.style.chart.tooltip.backgroundColor,
        color: e.value.style.chart.tooltip.color,
        fontSize: e.value.style.chart.tooltip.fontSize,
        borderRadius: e.value.style.chart.tooltip.borderRadius,
        borderColor: e.value.style.chart.tooltip.borderColor,
        borderWidth: e.value.style.chart.tooltip.borderWidth,
        backgroundOpacity: e.value.style.chart.tooltip.backgroundOpacity,
        position: e.value.style.chart.tooltip.position,
        offsetY: e.value.style.chart.tooltip.offsetY,
        parent: R.value,
        content: ae.value,
        isCustom: U.value
      }, {
        "tooltip-before": S(() => [
          x(t.$slots, "tooltip-before", _(I({ ...le.value })), void 0, !0)
        ]),
        "tooltip-after": S(() => [
          x(t.$slots, "tooltip-after", _(I({ ...le.value })), void 0, !0)
        ]),
        _: 3
      }, 8, ["show", "backgroundColor", "color", "fontSize", "borderRadius", "borderColor", "borderWidth", "backgroundOpacity", "position", "offsetY", "parent", "content", "isCustom"]),
      t.$slots.source ? (C(), P("div", {
        key: 5,
        ref_key: "source",
        ref: de,
        dir: "auto"
      }, [
        x(t.$slots, "source", {}, void 0, !0)
      ], 512)) : z("", !0),
      G.value ? (C(), E(Pt, {
        key: 6,
        hideDetails: "",
        config: {
          open: k.value.showTable,
          maxHeight: 1e4,
          body: {
            backgroundColor: e.value.style.chart.backgroundColor,
            color: e.value.style.chart.color
          },
          head: {
            backgroundColor: e.value.style.chart.backgroundColor,
            color: e.value.style.chart.color
          }
        }
      }, {
        content: S(() => [
          (C(), E(zt, {
            key: `table_${he.value}`,
            colNames: j.value.colNames,
            head: j.value.head,
            body: j.value.body,
            config: j.value.config,
            title: `${e.value.style.chart.title.text}${e.value.style.chart.title.subtitle.text ? ` : ${e.value.style.chart.title.subtitle.text}` : ""}`,
            onClose: l[1] || (l[1] = (o) => k.value.showTable = !1)
          }, {
            th: S(({ th: o }) => [
              Re("div", {
                innerHTML: o,
                style: { display: "flex", "align-items": "center" }
              }, null, 8, Lt)
            ]),
            td: S(({ td: o }) => [
              ct(We(o.name || o), 1)
            ]),
            _: 1
          }, 8, ["colNames", "head", "body", "config", "title"]))
        ]),
        _: 1
      }, 8, ["config"])) : z("", !0)
    ], 44, Vt));
  }
}, ro = /* @__PURE__ */ Wt(Ht, [["__scopeId", "data-v-a7ce3b3e"]]);
export {
  ro as default
};
