input: Write a function to find the maximum value within a nested dictionary. If the dictionary is empty or contains no numeric values, return None.
  
  def findMaxValue(dict):
      max_val = None
      for key, value in dict.items():
          if isinstance(value, dict):
              max_val = max(findMaxValue(value), max_val)
          else:
              max_val = max(value, max_val) if max_val is not None else value
      return max_val
  
  sample_dict_1 = {
      "key1": {
          "value1": 10,
          "value2": 20
      },
      "key2": {
          "value3": 40
      },
  }
  
  sample_dict_2 = {
      "key1": {
          "value1": {
              "value2": 7,
              "value3": {
                  "value4": 15
              }
          },
          "value2": 10
      },
      "key2": {
          "value3": 5
      },
  }
  
  sample_dict_3 = {}
  
  assert findMaxValue(sample_dict_1) == 40
  assert findMaxValue(sample_dict_2) == 15
  assert findMaxValue(sample_dict_3) == None
output: def findMaxValue(dict):
      max_val = None
      for key, value in dict.items():
          if isinstance(value, dict):
              max_val = max(findMaxValue(value), max_val)
          else:
              max_val = max(value, max_val) if max_val is not None else value
      return max_val