"use strict";
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var shape_colors_exports = {};
__export(shape_colors_exports, {
  getEffectiveShapeButtonColors: () => getEffectiveShapeButtonColors,
  getShapeColors: () => getShapeColors,
  hasDefaultShapeColor: () => hasDefaultShapeColor
});
module.exports = __toCommonJS(shape_colors_exports);
var import_pm_node_types = require("./../../_shared/pm-node-types.js");
const getShapeColors = (node) => {
  if (node.type.name === import_pm_node_types.PmNodeType.SMART_BLOCK_CELL) {
    const color = node.attrs?.shapeColor;
    return color ? [color] : [];
  }
  const colors = [];
  node.forEach((child) => {
    if (child.type.name !== import_pm_node_types.PmNodeType.SMART_BLOCK_CELL) {
      return;
    }
    const color = child.attrs?.shapeColor;
    if (color) {
      colors.push(color);
    }
  });
  return colors;
};
const hasDefaultShapeColor = (node) => {
  if (node.type.name === import_pm_node_types.PmNodeType.SMART_BLOCK_CELL) {
    return !node.attrs?.shapeColor;
  }
  let found = false;
  node.forEach((child) => {
    if (child.type.name === import_pm_node_types.PmNodeType.SMART_BLOCK_CELL && !child.attrs?.shapeColor) {
      found = true;
    }
  });
  return found;
};
const getEffectiveShapeButtonColors = ({
  colors,
  hasDefaultColors = false,
  labelColor
}) => {
  if (colors.length === 0 || hasDefaultColors) {
    return labelColor ? [.../* @__PURE__ */ new Set([...colors, labelColor])] : colors;
  }
  return colors;
};
//# sourceMappingURL=shape-colors.js.map
