function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
/**
 * List 组件工具函数导出
 */

export { useGetText, createGetText, default as createGetTextDefault } from "./getText";

/**
 * 根据层级路径数组递归查找对应节点的 productIds
 * @param nodes 当前层级的节点列表
 * @param levelPath 层级路径数组，每个元素是对应层级的分类 ID
 * @param currentLevel 当前遍历的层级索引
 * @returns 找到的节点的 productIds，找不到返回空数组
 * 
 * @description
 * 特殊逻辑：如果 levelPath 末尾有连续的 0，则去掉所有末尾的 0
 * 例如：
 * - [1, 2, 0] -> 取 id=2 节点的 productIds
 * - [1, 0, 0] -> 取 id=1 节点的 productIds
 * - [3, 0, 0, 0] -> 取 id=3 节点的 productIds
 */
export var findProductIdsByPath = function findProductIdsByPath(nodes, levelPath) {
  var currentLevel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
  // 去掉所有末尾连续的 0
  var effectivePath = _toConsumableArray(levelPath);
  while (effectivePath.length > 0 && (effectivePath[effectivePath.length - 1] === 0 || effectivePath[effectivePath.length - 1] === '0')) {
    effectivePath.pop();
  }
  if (!nodes || nodes.length === 0 || currentLevel >= effectivePath.length) {
    return [];
  }
  var targetId = effectivePath[currentLevel];
  // 查找当前层级中匹配的节点（比较时转为字符串以兼容不同类型）
  var targetNode = nodes.find(function (node) {
    return String(node.id) === String(targetId) || String(node.key) === String(targetId);
  });
  if (!targetNode) {
    return [];
  }

  // 如果是最后一层，返回该节点的 productIds
  if (currentLevel === effectivePath.length - 1) {
    return targetNode.productIds || [];
  }

  // 如果还有下一层，递归查找子节点
  if (targetNode.children && targetNode.children.length > 0) {
    return findProductIdsByPath(targetNode.children, effectivePath, currentLevel + 1);
  }

  // 没有子节点但路径还没结束，返回当前节点的 productIds
  return targetNode.productIds || [];
};