export default {
    mounted() {
      for (const event of this.events) {
        document.addEventListener(event, (evt) => {
          // https://stackoverflow.com/a/36469636/3419103
          const focus = document.activeElement;
          if (focus && this.ignore.includes(focus.tagName.toLowerCase())) return;
          if (evt.repeat && !this.repeating) return;
          this.$emit("key", {
            action: event,
            altKey: evt.altKey,
            ctrlKey: evt.ctrlKey,
            shiftKey: evt.shiftKey,
            metaKey: evt.metaKey,
            code: evt.code,
            key: evt.key,
            location: evt.location,
            repeat: evt.repeat,
            locale: evt.locale,
          });
          evt.preventDefault();
        });
      }
    },
    props: {
      events: Array,
      repeating: Boolean,
      ignore: Array,
    },
  };
  