code: def resolve_input(self, ctx):
      inputs = types.Object()
  
      count = len(ctx.selected)
      if count > 0:
          sample_text = "sample" if count == 1 else "samples"
          inputs.str(
              "msg",
              label=f"Delete {count} selected {sample_text}?",
              view=types.Warning(),
          )
      else:
          prop = inputs.str(
              "msg",
              label="You must select samples in the grid to delete",
              view=types.Warning(),
          )
          prop.invalid = True
  
      view = types.View(label="Delete selected samples")
      return types.Property(inputs, view=view)
  
imports: import os
  import fiftyone
  import fiftyone.core.storage
  import fiftyone.operators
  import fiftyone.operators.types
label_desc: Use image node_id 2 for calling the DeleteSelectedSamples obj's underlying member method code with example usage: obj.resolve_input(ctx) and returns: types