code: def _resolve_properties(self, data, scales):
      resolved = resolve_properties(self, data, scales)
  
      resolved["facecolor"] = resolve_color(self, data, "", scales)
      resolved["edgecolor"] = resolve_color(self, data, "edge", scales)
  
      fc = resolved["facecolor"]
      if isinstance(fc, tuple):
          resolved["facecolor"] = (
              fc[0],
              fc[1],
              fc[2],
              fc[3] * resolved["fill"],
          )
      else:
          fc[:, 3] = (
              fc[:, 3] * resolved["fill"]
          )  # TODO Is inplace mod a problem?
          resolved["facecolor"] = fc
  
      return resolved
  
file_path: seaborn/seaborn/_marks/bar.py
imports: from __future__ import annotations
  from collections import defaultdict
  from dataclasses import dataclass
  import numpy
  import matplotlib
  from seaborn._marks.base import Mark, Mappable, MappableBool, MappableColor, MappableFloat, MappableStyle, resolve_properties, resolve_color, document_properties
  from typing import TYPE_CHECKING
label_desc: Use image node_id 2 for calling the BarBase obj's underlying member method code with example usage: obj._resolve_properties(data, scales) and returns: resolved