import { useMemo as f } from "../external/.pnpm/preact@10.28.2/node_modules/preact/hooks/dist/hooks.module.js";
import { useResponsiveContainer as b, containerQueries as g } from "./useResponsiveContainer.js";
import h from "../core/Context/preact/useCoreContext.js";
import { EMPTY_OBJECT as M } from "../utils/value/constants.js";
import { isUndefined as x } from "../utils/value/is.js";
function T(o) {
  let i = {};
  for (const s of Object.keys(o))
    x(o[s]) || (i = { ...i, [s]: o[s] });
  return i;
}
const B = ({
  fields: o,
  customColumns: i,
  columnConfig: s,
  fieldsKeys: l
}) => {
  const { i18n: p } = h(), a = f(() => o.map((r) => ({ key: r })), [o]), y = b(g.up.sm);
  return f(() => {
    const r = i?.filter((e) => !o?.some((m) => m === e.key)).map((e) => e.key) || [], k = [...a, ...i?.filter((e) => e?.key) || []], d = i?.reduce((e, m) => (e[m.key] = m, e), {}) || {}, t = /* @__PURE__ */ new Map();
    return k.forEach((e) => {
      if (d[e.key]?.visibility !== "hidden")
        if (t.has(e.key)) {
          const n = t.get(e.key);
          t.set(e.key, {
            ...n,
            ...e,
            visible: e.visibility !== "hidden",
            position: e.align || n.position
          });
        } else {
          const { key: n, flex: u, align: c } = e, v = p.get(l?.[n] || n), C = T(s?.[n] || M);
          t.set(e.key, {
            key: n,
            label: v,
            visible: r.includes(e.key) ? y : !0,
            flex: u,
            position: c,
            ...C
          });
        }
    }), Array.from(t.values());
  }, [s, i, o, p, y, a, l]);
};
export {
  B as useTableColumns
};
