/**
 * 获取数据项的唯一标识
 * @param record - 数据项
 * @param index - 索引
 * @param rowKey - key 字段配置
 * @returns 唯一标识字符串
 */
export var getRowKey = function getRowKey(record, index, rowKey) {
  // 如果 rowKey 是函数，调用函数获取 key
  if (typeof rowKey === 'function') {
    return rowKey(record, index);
  }

  // 如果 rowKey 是字符串，从 record 中取对应字段的值
  if (typeof rowKey === 'string') {
    var key = record === null || record === void 0 ? void 0 : record[rowKey];
    if (key !== undefined && key !== null) {
      return String(key);
    }
  }

  // 默认尝试从 record.key 取值
  var defaultKey = record === null || record === void 0 ? void 0 : record.key;
  if (defaultKey !== undefined && defaultKey !== null) {
    return String(defaultKey);
  }

  // 如果都获取不到，使用索引作为 key（开发环境下警告）
  if (process.env.NODE_ENV === 'development') {
    console.warn('[PisellSuperTabs] rowKey is not found in data item, using index as fallback. This may cause issues with state management.', record);
  }
  return String(index);
};