"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const checkBullet = require("./lib-util-check-bullet.cjs");
const checkListItemIndent = require("./lib-util-check-list-item-indent.cjs");
function listItem(node, parent, state, info) {
  const listItemIndent = checkListItemIndent.checkListItemIndent(state);
  let bullet = state.bulletCurrent || checkBullet.checkBullet(state);
  if (parent && parent.type === "list" && parent.ordered) {
    bullet = (typeof parent.start === "number" && parent.start > -1 ? parent.start : 1) + (state.options.incrementListMarker === false ? 0 : parent.children.indexOf(node)) + bullet;
  }
  let size = bullet.length + 1;
  if (listItemIndent === "tab" || listItemIndent === "mixed" && (parent && parent.type === "list" && parent.spread || node.spread)) {
    size = Math.ceil(size / 4) * 4;
  }
  const tracker = state.createTracker(info);
  tracker.move(bullet + " ".repeat(size - bullet.length));
  tracker.shift(size);
  const exit = state.enter("listItem");
  const value = state.indentLines(
    state.containerFlow(node, tracker.current()),
    map
  );
  exit();
  return value;
  function map(line, index, blank) {
    if (index) {
      return (blank ? "" : " ".repeat(size)) + line;
    }
    return (blank ? bullet : bullet + " ".repeat(size - bullet.length)) + line;
  }
}
exports.listItem = listItem;
//# sourceMappingURL=lib-handle-list-item.cjs.map
