"use strict";
/**
 * AI Agent 与表格组件通信的事件名（按实例隔离，避免同页多 Tab / 多套 AI 列表串线）
 *
 * - `DEFAULT_CN_AI_LIST_EVENT_NAMESPACE`：未传 `id` 时与历史行为一致（单实例）
 * - 与 `CnAiTable` / `CnAiAgent` / `CnAiFilter` 使用相同的 `id` 作为命名空间
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.EVENT_NAMES = exports.CN_AI_LIST_INSTANCE_KEY_DATA_ATTR = exports.DEFAULT_CN_AI_LIST_EVENT_NAMESPACE = exports.BIZ_ACCESS_KEY = void 0;
exports.normalizeCnAiListInstanceKey = normalizeCnAiListInstanceKey;
exports.buildCnAiListEventNames = buildCnAiListEventNames;
/** @deprecated 请使用 DEFAULT_CN_AI_LIST_EVENT_NAMESPACE */
exports.BIZ_ACCESS_KEY = 'cn-ai-table';
/** 未指定实例 id 时的事件命名空间（与改造前单实例频道一致） */
exports.DEFAULT_CN_AI_LIST_EVENT_NAMESPACE = 'cn-ai-table';
/**
 * 标记「同一 AI 列表业务实例」根节点的 data 属性名（值见 `CnAiListEventContext.instanceKey`）。
 * 用于 document 级命中测试：多实例同页时，避免在实例 B 上操作被实例 A 误判为「点击表格外」而清列选。
 */
exports.CN_AI_LIST_INSTANCE_KEY_DATA_ATTR = 'data-cn-ai-list-instance-key';
/**
 * 将业务侧的表格/列表实例 id 规范为事件前缀（空则用默认命名空间，对齐旧版）
 */
function normalizeCnAiListInstanceKey(id) {
    if (id == null || String(id).trim() === '') {
        return exports.DEFAULT_CN_AI_LIST_EVENT_NAMESPACE;
    }
    return String(id).trim();
}
/**
 * 根据实例 key 生成全套事件频道名（须与 CnAiAgent / CnAiTable / CnAiFilter 的 `id` 一致）
 */
function buildCnAiListEventNames(instanceKey) {
    const key = normalizeCnAiListInstanceKey(instanceKey);
    return {
        CELL_SELECT: `${key}_cn-ai-table-cell-select`,
        ROW_SELECT: `${key}_cn-ai-table-row-select`,
        COLUMN_SELECT: `${key}_cn-ai-table-column-select`,
        /** 仅列选中态被清除（点击表头外区域），不影响行/单元格选中 */
        COLUMN_CLEAR: `${key}_cn-ai-table-column-clear`,
        CELL_CLEAR: `${key}_cn-ai-table-cell-clear`,
        /** 仅 AI 助理点击关闭按钮时发出，表格监听此事件同步清除选中态，避免监听 CELL_CLEAR 误清（行选/分页等也会发 CELL_CLEAR） */
        AGENT_CLEAR_SELECTION: `${key}_cn-ai-table-agent-clear-selection`,
        SCHEMA_UPDATE: `${key}_cn-ai-table-schema-update`,
        /** 表格插件解析出的 tableId（与 CnAiTable id 一致），供 Agent 页在自身 aiConfig 无 id 时对齐 */
        TABLE_ID_RESOLVED: `${key}_cn-ai-table-id-resolved`,
        TABLE_DATA_UPDATE: `${key}_cn-ai-table-table-data-update`,
        PAGINATION_CHANGE: `${key}_cn-ai-table-pagination-change`,
        /** 跟单任务（queryFollowOrderTaskByJobId.do）轮询状态更新：{ loading, finishedCount } */
        FOLLOW_ORDER_TASKS_UPDATE: `${key}_cn-ai-table-follow-order-tasks-update`,
        /** 点击跟单卡片时切换 tab 到智能跟单 */
        SWITCH_TO_SMART_FOLLOW: `${key}_cn-ai-table-switch-to-smart-follow`,
        /** AI 助理显隐状态变化事件（包含功能开关和显示状态） */
        AGENT_VISIBILITY_CHANGE: `${key}_cn-ai-agent-visibility-change`,
        /** 请求 AI 助理当前状态（用于组件挂载时同步状态） */
        REQUEST_AGENT_STATE: `${key}_cn-ai-agent-request-state`,
        /** 提交单个单元格的 AI 生成任务 */
        SUBMIT_SINGLE_CELL_AI_TASK: `${key}_cn-ai-table-submit-single-cell-ai-task`,
        /** 提交批量 AI 单元格生成任务（用于新建 AI 字段时） */
        SUBMIT_BATCH_AI_TASKS: `${key}_cn-ai-table-submit-batch-ai-tasks`,
        /** AI 字段新增成功事件（用于触发表格滚动到新列） */
        AI_FIELD_ADDED: `${key}_cn-ai-table-ai-field-added`,
        /** 引用字段搜索配置更新（用于 CnAiFilter 同步 lookup 查询 schema） */
        LOOKUP_FIELD_SEARCH_CONFIG_UPDATE: `${key}_cn-ai-table-lookup-field-search-config-update`,
        /** 从 Tab 菜单打开智能跟单助手弹窗 */
        OPEN_SMART_FOLLOW_ASSISTANT: `${key}_cn-ai-table-open-smart-follow-assistant`,
    };
}
/** 单实例默认（与历史常量一致） */
exports.EVENT_NAMES = buildCnAiListEventNames(exports.DEFAULT_CN_AI_LIST_EVENT_NAMESPACE);
