/** The VegaEventID class represents an event ID with both a Vega name and a native name. */
export class VegaEventID {
  /**
   * The constructor function takes two parameters, vegaName and nativeName, and assigns them to private properties of the same names.
   *
   * @param {string} vegaName - The vegaName parameter is a private property of type string. It is used to store the name of a star in the Vega system.
   * @param {VegaNativeEventNameType} nativeName - The `nativeName` parameter is a string that represents the name of the object in its native language or format.
   */
  constructor(vegaName, nativeName) {
    this.vegaName = vegaName;
    this.nativeName = nativeName;
  }
  /**
   * The function `getName` returns the name of an object using the `getVegaName` method.
   *
   * @returns {string} The `getName` method is returning the result of calling the `getVegaName` method.
   */
  getName() {
    return this.getVegaName();
  }
  /**
   * use the Event Name Manager API to determined to return the vega name of the native name
   *
   * @param {EventSemantics} eventSemantics object define namespace and jqueryDelegatedEvent properties
   * @returns {string} The method is returning the value of the variable "vegaName" or "nativeName" as a string.
   */
  getCurrentName(eventSemantics) {
    return eventSemantics.namespace !== 'native' ? this.getVegaName() : this.getNativeName();
  }
  /**
   * The function returns the value of the variable "vegaName" as a string.
   *
   * @returns {string} The method is returning the value of the variable "vegaName" as a string.
   */
  getVegaName() {
    return this.vegaName;
  }
  /**
   * The function returns the value of the variable "nativeName" as a string.
   *
   * @returns {string} The method is returning the value of the variable "nativeName" as a string.
   */
  getNativeName() {
    return this.nativeName;
  }
  /**
   * The function checks if the current event is a raw event in a browser environment.
   *
   * @returns {boolean} a boolean value.
   */
  isBrowserRawEvent() {
    return HTMLNativeEventIds.includes(this);
  }
}
export const VegaChange = new VegaEventID('vegaChange', 'change');
export const VegaClick = new VegaEventID('vegaClick', 'click');
export const VegaFocus = new VegaEventID('vegaFocus', 'focus');
export const VegaBlur = new VegaEventID('vegaBlur', 'blur');
export const VegaClose = new VegaEventID('vegaClose', 'close');
export const VegaOpen = new VegaEventID('vegaOpen', 'modalOpen');
export const VegaValidate = new VegaEventID('vegaValidate', 'validate');
export const VegaFormSubmit = new VegaEventID('vegaFormSubmit', 'formSubmit');
export const VegaFormReset = new VegaEventID('vegaFormReset', 'formReset');
export const VegaRowClick = new VegaEventID('vegaRowClick', 'rowClick');
export const VegaRowExpand = new VegaEventID('vegaRowExpand', 'rowExpand');
export const VegaRowDragDrop = new VegaEventID('vegaRowDragDrop', 'rowDragDrop');
export const VegaSelectChange = new VegaEventID('vegaSelectChange', 'selectChange');
export const VegaRowSelect = new VegaEventID('vegaRowSelect', 'rowSelect');
export const VegaRowSelectAll = new VegaEventID('vegaRowSelectAll', 'rowSelectAll');
export const VegaSelectAllChange = new VegaEventID('vegaSelectAllChange', 'selectAllChange');
export const VegaPageSizeChange = new VegaEventID('vegaPageSizeChange', 'pageSizeChange');
export const VegaDropdownClick = new VegaEventID('vegaDropdownClick', 'dropdownClick');
export const VegaCreate = new VegaEventID('vegaCreate', 'create');
export const VegaSearch = new VegaEventID('vegaSearch', 'search');
export const VegaSearchTrigger = new VegaEventID('vegaSearchTrigger', 'searchTrigger');
export const VegaHide = new VegaEventID('vegaHide', 'hide');
export const VegaShow = new VegaEventID('vegaShow', 'show');
export const VegaPopoverShow = new VegaEventID('vegaPopoverShow', 'popoverShow');
export const VegaPopoverHide = new VegaEventID('vegaPopoverHide', 'popoverHide');
export const VegaCancel = new VegaEventID('vegaCancel', 'cancel');
export const VegaRemove = new VegaEventID('vegaRemove', 'remove');
export const VegaPageUpdate = new VegaEventID('vegaPageUpdate', 'pageUpdate');
export const VegaCurrentStepUpdate = new VegaEventID('vegaCurrentStepUpdate', 'currentStepUpdate');
export const VegaToggleStatus = new VegaEventID('vegaToggleStatus', 'toggleStatus');
export const VegaStateUpdate = new VegaEventID('vegaStateUpdate', 'stateUpdate');
export const VegaGroupClick = new VegaEventID('vegaGroupClick', 'groupClick');
export const VegaMenuClick = new VegaEventID('vegaMenuClick', 'menuClick');
export const VegaExpand = new VegaEventID('vegaExpand', 'expand');
export const VegaDropdownShow = new VegaEventID('vegaShow', 'dropdownShow');
export const VegaDropdownHide = new VegaEventID('vegaHide', 'dropdownHide');
export const VegaDropdownSearch = new VegaEventID('vegaSearch', 'dropdownSearch');
export const VegaActionClick = new VegaEventID('vegaActionClick', 'actionClick');
export const VegaEventClick = new VegaEventID('vegaEventClick', 'eventClick');
export const VegaDateDblClick = new VegaEventID('vegaDateDblClick', 'dateDblClick');
export const VegaDateClick = new VegaEventID('vegaDateClick', 'dateClick');
export const VegaCountryChange = new VegaEventID('vegaCountryChange', 'countryChange');
export const VegaActionButtonClick = new VegaEventID('vegaActionButtonClick', 'actionButtonClick');
export const VegaMoreActionClick = new VegaEventID('vegaMoreActionClick', 'moreActionClick');
export const VegaSelectFileChange = new VegaEventID('vegaSelectedFileChange', 'selectedFileChange');
export const VegaImageInserted = new VegaEventID('vegaImageInserted', 'imageInserted');
export const VegaRetry = new VegaEventID('vegaRetry', 'retry');
export const VegaPreview = new VegaEventID('vegaPreview', 'preview');
export const VegaLabelButtonClick = new VegaEventID('vegaLabelButtonClick', 'labelButtonClick');
export const VegaReset = new VegaEventID('vegaReset', 'reset');
export const VegaClear = new VegaEventID('vegaClear', 'clear');
export const VegaComplete = new VegaEventID('vegaComplete', 'complete');
export const VegaPaste = new VegaEventID('vegaPaste', 'paste');
export const HTMLNativeEventIds = [VegaChange, VegaClick, VegaFocus, VegaBlur, VegaPaste];
export const VegaMonthYearChange = new VegaEventID('vegaMonthYearChange', 'monthYearChange');
export const VegaSelectionChange = new VegaEventID('vegaSelectionChange', 'selectionChange');
export const VegaSuggestionItemClick = new VegaEventID('vegaSuggestionItemClick', 'suggestionItemClick');
export const VegaNativeInputChange = new VegaEventID('vegaNativeInputChange', 'nativeInputChange');
export const VegaSourceCodeChange = new VegaEventID('vegaSourceCodeChange', 'sourceCodeChange');
