ACTION_IDENTIFIER = "_ACTION"
KEY_IDENTIFIER = "_KEY"

# - Action Types:
LOAD_URL_ACTION = "load_url"
CLICK_ACTION = "click"
CLICK_ELEMENT_WITH_OFFSET_ACTION = "click_element_with_offset"
HOVER_ACTION = "hover"
SCROLL_AN_ELEMENT_ACTION = "scroll_an_element"
REFRESH_ACTION = "refresh"
ENTER_TEXT_ACTION = "enter_text"
SEND_SPECIAL_KEY_ACTION = "send_special_key"
SLEEP_ACTION = "sleep"
WAIT_FOR_ELEMENT_ACTION = "wait_for_element"
SCROLL_WINDOW_TO_POSITION_ACTION = "scroll_window_to_position"
SCROLL_WINDOW_TO_ELEMENT_ACTION = "scroll_window_to_element"
FOR_EACH_ACTION = "for_each"
SHOW_ELEMENT_ACTION = "show_element"
HIDE_ELEMENT_ACTION = "hide_element"
SWITCH_WINDOW_HANDLE_ACTION = "switch_window_handle"
CLOSE_WINDOW_ACTION = "close_window"
EXECUTE_SCRIPT_ACTION = "execute_script"
FOCUS_ACTION = "focus"

ALL_ACTION_TYPES = [locals()[v] for v in dir() if v.endswith(ACTION_IDENTIFIER)]

# - Action Keys
ACTION_KEY = "action"
ACTION_LIST_KEY = "actions"
ALLOW_EMPTY_KEY = "allow_empty"
BYPASS_404_KEY = "bypass_404"
CHILD_KEY = "child"
CSS_SELECTOR_KEY = "css_selector"
CURRENT_URL_KEY = "current_url"
DO_NOT_INCREMENT_KEY = "do_not_increment_element_count"
DURATION_KEY = "duration"
ELEMENT_KEY = "element"
FULL_NAME_KEY = "full_name"
INDEX_KEY = "index"
INPUT_KEY = "input"
INPUT_TYPE_KEY = "input_type"
LIBRARY_KEY = "library"
PATH_KEY = "path"
POSITION_BOTTOM_KEY = "position_bottom"
POSITION_MIDDLE_KEY = "position_middle"
POSITION_TOP_KEY = "position_top"
REFERENCE_KEY = "ref"
SCRIPT_KEY = "script"
SCROLL_PADDING_KEY = "scroll_padding"
SPECIAL_KEY_KEY = "key"
SUFFIX_KEY = "suffix"
URL_KEY = "url"
VIEWPORT_ONLY_KEY = "viewport_only"
X_POSITION_KEY = "x_position"
Y_POSITION_KEY = "y_position"

ALL_ACTION_KEYS = [locals()[v] for v in dir() if v.endswith(KEY_IDENTIFIER)]