Focus the delete button in a confirm dialog

To focus the Delete button instead of Cancel when the delete annotation dialog opens, register an annotations.willChange event listener:

instance.addEventListener("annotations.willChange", (event) => {
  const annotation = event.annotations.get(0);
  if (
    event.reason ===
    NutrientViewer.AnnotationsWillChangeReason.DELETE_START
  ) {
    console.log("Will open deletion confirmation dialog");
    // We need to wrap the logic in a `setTimeOut()`, because the modal will be rendered on the next tick.
    setTimeout(function () {
      // The button is in the context of the Nutrient Web SDK viewer.
      const buttons = instance.contentDocument.querySelectorAll(
        '[role="alertdialog"] button'
      );
      console.log(buttons);
      const button = buttons
        .values()
        .find((button) => button.innerText === "Delete");

      if (button) {
        button.focus();
        console.warn("Delete confirmation button focused.");
      } else {
        console.warn("Delete confirmation button not found.");
      }
    }, 0);
  }
});