var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  // If the importer is in node compatibility mode or this is not an ESM
  // file that has been converted to a CommonJS file using a Babel-
  // compatible transform (i.e. "__esModule" has not been set), then set
  // "default" to the CommonJS "module.exports" for node compatibility.
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);

// src/plus/pisellGlobalSearch/components/GroupedResults.tsx
var GroupedResults_exports = {};
__export(GroupedResults_exports, {
  default: () => GroupedResults_default
});
module.exports = __toCommonJS(GroupedResults_exports);
var import_react = __toESM(require("react"));
var import_antd = require("antd");
var import_utils = require("@pisell/utils");
var import_getLocaleLabel = require("../utils/getLocaleLabel");
var GroupedResults = ({
  providers,
  stateMap,
  keyword,
  mode,
  locale,
  onJumpTab,
  onClose,
  navigate,
  onOpenDetail,
  onRealtimePatchItems,
  detailRefreshVersions
}) => {
  const ctxBase = {
    close: onClose,
    navigate,
    onOpenDetail,
    onRealtimePatchItems,
    detailRefreshVersions
  };
  const allEmpty = providers.every((p) => {
    var _a;
    if (p.renderResults) return false;
    const s = stateMap[p.key];
    return !(s == null ? void 0 : s.loading) && (((_a = s == null ? void 0 : s.list) == null ? void 0 : _a.length) ?? 0) === 0 && !(s == null ? void 0 : s.error);
  });
  if (allEmpty) {
    return /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-global-search__empty" }, keyword ? import_utils.locales.getText("pisell-global-search.empty") : import_utils.locales.getText("pisell-global-search.empty.idle"));
  }
  return /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-global-search__groups" }, providers.map((provider) => {
    const state = stateMap[provider.key];
    if (!state) return null;
    const { loading, list, total, error } = state;
    const showGroupHeader = mode !== "business";
    if (!provider.renderResults && !loading && list.length === 0 && !error) {
      return null;
    }
    return /* @__PURE__ */ import_react.default.createElement(
      "section",
      {
        key: provider.key,
        className: "pisell-global-search__group"
      },
      showGroupHeader && /* @__PURE__ */ import_react.default.createElement("header", { className: "pisell-global-search__group-header" }, /* @__PURE__ */ import_react.default.createElement("span", { className: "pisell-global-search__group-title" }, provider.icon, (0, import_getLocaleLabel.getLocaleLabel)(provider.label, locale), total > 0 && /* @__PURE__ */ import_react.default.createElement("span", null, "(", total, ")")), total > list.length && /* @__PURE__ */ import_react.default.createElement(
        "button",
        {
          type: "button",
          className: "pisell-global-search__view-all",
          onClick: () => onJumpTab(provider.key)
        },
        import_utils.locales.getText("pisell-global-search.view-all")
      )),
      /* @__PURE__ */ import_react.default.createElement(
        "div",
        {
          className: `pisell-global-search__group-body${provider.renderResults ? " pisell-global-search__group-body--bare" : ""}`
        },
        provider.renderResults ? (
          // Provider 提供 renderResults → 接管 group body 渲染
          provider.renderResults(
            { state, keyword, mode, layout: "grouped" },
            { keyword, ...ctxBase }
          )
        ) : loading && list.length === 0 ? /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-global-search__group-loading" }, /* @__PURE__ */ import_react.default.createElement(import_antd.Spin, { size: "small" })) : error ? /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-global-search__group-error" }, import_utils.locales.getText("pisell-global-search.error")) : /* @__PURE__ */ import_react.default.createElement("ul", { className: "pisell-global-search__group-list" }, list.map((item, index) => /* @__PURE__ */ import_react.default.createElement(
          "li",
          {
            key: getItemKey(item, index),
            className: "pisell-global-search__group-item"
          },
          provider.renderItem(item, { keyword, ...ctxBase })
        )))
      )
    );
  }));
};
function getItemKey(item, index) {
  if (item && typeof item === "object") {
    const obj = item;
    if (typeof obj.id === "string" || typeof obj.id === "number") {
      return obj.id;
    }
    if (typeof obj.key === "string" || typeof obj.key === "number") {
      return obj.key;
    }
  }
  return index;
}
var GroupedResults_default = GroupedResults;
