/**
 * A subject class is used for register by observer
 */
class StaticSubject {
  /**
   * It takes a subject title and returns a SubjectTitle object
   *
   * @param {SubjectTitle} title - The title of the subject.
   */
  constructor(title) {
    this.title = title;
  }
  /**
   * Get the title of the subject
   *
   * @returns {string} The title of the subject.
   */
  getDescription() {
    return this.title;
  }
}

const SIDENAV_LINK_SELECTED_TOPIC = new StaticSubject('SIDENAV_LINK_SELECTED_TOPIC');
const ACCORDION_EXPAND_TOPIC = new StaticSubject('ACCORDION_EXPAND_TOPIC');
const FORM_RESET_OPERATION_TRIGGERED = new StaticSubject('FORM_RESET_OPERATION_TRIGGERED');
const FORM_FIELD_ELEMENT_DISCONNECTED = new StaticSubject('FORM_FIELD_ELEMENT_DISCONNECTED');
const RADIO_GROUP_DISABLED_CHANGE = new StaticSubject('RADIO_GROUP_DISABLED_CHANGE');
const CHECKBOX_GROUP_DISABLED_CHANGE = new StaticSubject('CHECKBOX_GROUP_DISABLED_CHANGE');
const FORM_FIELD_PENDING_VALID_CHANGE = new StaticSubject('FORM_FIELD_PENDING_VALID_CHANGE');
const TAB_PANEL_ADD_OR_DEL_TO_GROUP = new StaticSubject('TAB_PANEL_ADD_OR_DEL_TO_GROUP');
const TABLE_EXPAND_ROW = new StaticSubject('TABLE_EXPAND_ROW');
const TABLE_ROW_SELECTION = new StaticSubject('TABLE_ROW_SELECTION');
const TABLE_ROW_SELECTION_ALL = new StaticSubject('TABLE_ROW_SELECTION_ALL');
const TABLE_ROW_CLICK = new StaticSubject('TABLE_ROW_CLICK');
const FIELD_ERROR_MESSAGE_CHANGE = new StaticSubject('FIELD_ERROR_MESSAGE_CHANGE');
const DROPDOWN_ITEM_CLICK = new StaticSubject('DROPDOWN_ITEM_CLICK');
const CHECKBOX_VALUE_CHANGE = new StaticSubject('CHECKBOX_VALUE_CHANGE');
const RADIO_VALUE_CHANGE = new StaticSubject('RADIO_VALUE_CHANGE');
const FORM_ELEMENT_VALUE_CHANGE = new StaticSubject('FORM_ELEMENT_VALUE_CHANGE');
const FORM_ELEMENT_VALIDATE = new StaticSubject('FORM_EMEMENT_VALIDATE');
const SELECTION_TILE_VALUE_CHANGE = new StaticSubject('SELECTION_TILE_VALUE_CHANGE');
const UPDATE_TRANSLATION = new StaticSubject('UPDATE_TRANSLATION');
const DARK_MODE_CHANGE = new StaticSubject('DARK_MODE_CHANGE');
const SHADOW_ROOT_ELEMENT_SCROLLING = new StaticSubject('SHADOW_ROOT_ELEMENT_SCROLLING');
const FLAG_ICON_LOADED = new StaticSubject('FLAG_ICON_LOADED');
const GP_BRAND_CHANGE = new StaticSubject('GP_BRAND_CHANGE');

export { ACCORDION_EXPAND_TOPIC as A, CHECKBOX_VALUE_CHANGE as C, DARK_MODE_CHANGE as D, FORM_ELEMENT_VALUE_CHANGE as F, GP_BRAND_CHANGE as G, RADIO_VALUE_CHANGE as R, SHADOW_ROOT_ELEMENT_SCROLLING as S, TAB_PANEL_ADD_OR_DEL_TO_GROUP as T, UPDATE_TRANSLATION as U, FORM_FIELD_PENDING_VALID_CHANGE as a, FORM_FIELD_ELEMENT_DISCONNECTED as b, FORM_RESET_OPERATION_TRIGGERED as c, FIELD_ERROR_MESSAGE_CHANGE as d, FORM_ELEMENT_VALIDATE as e, FLAG_ICON_LOADED as f, CHECKBOX_GROUP_DISABLED_CHANGE as g, RADIO_GROUP_DISABLED_CHANGE as h, SELECTION_TILE_VALUE_CHANGE as i, SIDENAV_LINK_SELECTED_TOPIC as j, DROPDOWN_ITEM_CLICK as k, TABLE_EXPAND_ROW as l, TABLE_ROW_SELECTION as m, TABLE_ROW_SELECTION_ALL as n, TABLE_ROW_CLICK as o };
