code: def __init__(self, name, opts):
      self.fieldName = name
      vals = opts.get("values", [])
      if isinstance(vals, list):
          vals = OrderedDict([(v, str(v)) for v in vals])
      childs = []
      for val, vname in vals.items():
          ch = ptree.Parameter.create(name=vname, type="color")
          ch.maskValue = val
          childs.append(ch)
  
      ptree.types.GroupParameter.__init__(
          self,
          name=name,
          autoIncrementName=True,
          removable=True,
          renamable=True,
          children=[
              dict(name="Values", type="group", children=childs),
              dict(
                  name="Operation",
                  type="list",
                  value="Overlay",
                  limits=["Overlay", "Add", "Multiply", "Set"],
              ),
              dict(
                  name="Channels..",
                  type="group",
                  expanded=False,
                  children=[
                      dict(name="Red", type="bool", value=True),
                      dict(name="Green", type="bool", value=True),
                      dict(name="Blue", type="bool", value=True),
                      dict(name="Alpha", type="bool", value=True),
                  ],
              ),
              dict(name="Enabled", type="bool", value=True),
              dict(name="Default", type="color"),
          ],
      )
  
imports: from collections import OrderedDict
  import numpy
  from ..None import functions
  from ..None import parametertree
  from ..Qt import QtCore
label_desc: Use image node_id 1 to create a new EnumColorMapItem object from inherited base classes: ptree.types with example: obj = EnumColorMapItem(name, opts)