@thepassle/axobject-query
Version:
Programmatic access to information about the AXObject Model
276 lines (275 loc) • 12.6 kB
JavaScript
import iterationDecorator from "./util/iterationDecorator.js";
import AbbrRole from "./etc/objects/AbbrRole.js";
import AlertDialogRole from "./etc/objects/AlertDialogRole.js";
import AlertRole from "./etc/objects/AlertRole.js";
import AnnotationRole from "./etc/objects/AnnotationRole.js";
import ApplicationRole from "./etc/objects/ApplicationRole.js";
import ArticleRole from "./etc/objects/ArticleRole.js";
import AudioRole from "./etc/objects/AudioRole.js";
import BannerRole from "./etc/objects/BannerRole.js";
import BlockquoteRole from "./etc/objects/BlockquoteRole.js";
import BusyIndicatorRole from "./etc/objects/BusyIndicatorRole.js";
import ButtonRole from "./etc/objects/ButtonRole.js";
import CanvasRole from "./etc/objects/CanvasRole.js";
import CaptionRole from "./etc/objects/CaptionRole.js";
import CellRole from "./etc/objects/CellRole.js";
import CheckBoxRole from "./etc/objects/CheckBoxRole.js";
import ColorWellRole from "./etc/objects/ColorWellRole.js";
import ColumnHeaderRole from "./etc/objects/ColumnHeaderRole.js";
import ColumnRole from "./etc/objects/ColumnRole.js";
import ComboBoxRole from "./etc/objects/ComboBoxRole.js";
import ComplementaryRole from "./etc/objects/ComplementaryRole.js";
import ContentInfoRole from "./etc/objects/ContentInfoRole.js";
import DateRole from "./etc/objects/DateRole.js";
import DateTimeRole from "./etc/objects/DateTimeRole.js";
import DefinitionRole from "./etc/objects/DefinitionRole.js";
import DescriptionListDetailRole from "./etc/objects/DescriptionListDetailRole.js";
import DescriptionListRole from "./etc/objects/DescriptionListRole.js";
import DescriptionListTermRole from "./etc/objects/DescriptionListTermRole.js";
import DetailsRole from "./etc/objects/DetailsRole.js";
import DialogRole from "./etc/objects/DialogRole.js";
import DirectoryRole from "./etc/objects/DirectoryRole.js";
import DisclosureTriangleRole from "./etc/objects/DisclosureTriangleRole.js";
import DivRole from "./etc/objects/DivRole.js";
import DocumentRole from "./etc/objects/DocumentRole.js";
import EmbeddedObjectRole from "./etc/objects/EmbeddedObjectRole.js";
import FeedRole from "./etc/objects/FeedRole.js";
import FigcaptionRole from "./etc/objects/FigcaptionRole.js";
import FigureRole from "./etc/objects/FigureRole.js";
import FooterRole from "./etc/objects/FooterRole.js";
import FormRole from "./etc/objects/FormRole.js";
import GridRole from "./etc/objects/GridRole.js";
import GroupRole from "./etc/objects/GroupRole.js";
import HeadingRole from "./etc/objects/HeadingRole.js";
import IframePresentationalRole from "./etc/objects/IframePresentationalRole.js";
import IframeRole from "./etc/objects/IframeRole.js";
import IgnoredRole from "./etc/objects/IgnoredRole.js";
import ImageMapLinkRole from "./etc/objects/ImageMapLinkRole.js";
import ImageMapRole from "./etc/objects/ImageMapRole.js";
import ImageRole from "./etc/objects/ImageRole.js";
import InlineTextBoxRole from "./etc/objects/InlineTextBoxRole.js";
import InputTimeRole from "./etc/objects/InputTimeRole.js";
import LabelRole from "./etc/objects/LabelRole.js";
import LegendRole from "./etc/objects/LegendRole.js";
import LineBreakRole from "./etc/objects/LineBreakRole.js";
import LinkRole from "./etc/objects/LinkRole.js";
import ListBoxOptionRole from "./etc/objects/ListBoxOptionRole.js";
import ListBoxRole from "./etc/objects/ListBoxRole.js";
import ListItemRole from "./etc/objects/ListItemRole.js";
import ListMarkerRole from "./etc/objects/ListMarkerRole.js";
import ListRole from "./etc/objects/ListRole.js";
import LogRole from "./etc/objects/LogRole.js";
import MainRole from "./etc/objects/MainRole.js";
import MarkRole from "./etc/objects/MarkRole.js";
import MarqueeRole from "./etc/objects/MarqueeRole.js";
import MathRole from "./etc/objects/MathRole.js";
import MenuBarRole from "./etc/objects/MenuBarRole.js";
import MenuButtonRole from "./etc/objects/MenuButtonRole.js";
import MenuItemRole from "./etc/objects/MenuItemRole.js";
import MenuItemCheckBoxRole from "./etc/objects/MenuItemCheckBoxRole.js";
import MenuItemRadioRole from "./etc/objects/MenuItemRadioRole.js";
import MenuListOptionRole from "./etc/objects/MenuListOptionRole.js";
import MenuListPopupRole from "./etc/objects/MenuListPopupRole.js";
import MenuRole from "./etc/objects/MenuRole.js";
import MeterRole from "./etc/objects/MeterRole.js";
import NavigationRole from "./etc/objects/NavigationRole.js";
import NoneRole from "./etc/objects/NoneRole.js";
import NoteRole from "./etc/objects/NoteRole.js";
import OutlineRole from "./etc/objects/OutlineRole.js";
import ParagraphRole from "./etc/objects/ParagraphRole.js";
import PopUpButtonRole from "./etc/objects/PopUpButtonRole.js";
import PreRole from "./etc/objects/PreRole.js";
import PresentationalRole from "./etc/objects/PresentationalRole.js";
import ProgressIndicatorRole from "./etc/objects/ProgressIndicatorRole.js";
import RadioButtonRole from "./etc/objects/RadioButtonRole.js";
import RadioGroupRole from "./etc/objects/RadioGroupRole.js";
import RegionRole from "./etc/objects/RegionRole.js";
import RootWebAreaRole from "./etc/objects/RootWebAreaRole.js";
import RowHeaderRole from "./etc/objects/RowHeaderRole.js";
import RowRole from "./etc/objects/RowRole.js";
import RubyRole from "./etc/objects/RubyRole.js";
import RulerRole from "./etc/objects/RulerRole.js";
import ScrollAreaRole from "./etc/objects/ScrollAreaRole.js";
import ScrollBarRole from "./etc/objects/ScrollBarRole.js";
import SeamlessWebAreaRole from "./etc/objects/SeamlessWebAreaRole.js";
import SearchRole from "./etc/objects/SearchRole.js";
import SearchBoxRole from "./etc/objects/SearchBoxRole.js";
import SliderRole from "./etc/objects/SliderRole.js";
import SliderThumbRole from "./etc/objects/SliderThumbRole.js";
import SpinButtonRole from "./etc/objects/SpinButtonRole.js";
import SpinButtonPartRole from "./etc/objects/SpinButtonPartRole.js";
import SplitterRole from "./etc/objects/SplitterRole.js";
import StaticTextRole from "./etc/objects/StaticTextRole.js";
import StatusRole from "./etc/objects/StatusRole.js";
import SVGRootRole from "./etc/objects/SVGRootRole.js";
import SwitchRole from "./etc/objects/SwitchRole.js";
import TabGroupRole from "./etc/objects/TabGroupRole.js";
import TabRole from "./etc/objects/TabRole.js";
import TableHeaderContainerRole from "./etc/objects/TableHeaderContainerRole.js";
import TableRole from "./etc/objects/TableRole.js";
import TabListRole from "./etc/objects/TabListRole.js";
import TabPanelRole from "./etc/objects/TabPanelRole.js";
import TermRole from "./etc/objects/TermRole.js";
import TextAreaRole from "./etc/objects/TextAreaRole.js";
import TextFieldRole from "./etc/objects/TextFieldRole.js";
import TimeRole from "./etc/objects/TimeRole.js";
import TimerRole from "./etc/objects/TimerRole.js";
import ToggleButtonRole from "./etc/objects/ToggleButtonRole.js";
import ToolbarRole from "./etc/objects/ToolbarRole.js";
import TreeRole from "./etc/objects/TreeRole.js";
import TreeGridRole from "./etc/objects/TreeGridRole.js";
import TreeItemRole from "./etc/objects/TreeItemRole.js";
import UserInterfaceTooltipRole from "./etc/objects/UserInterfaceTooltipRole.js";
import VideoRole from "./etc/objects/VideoRole.js";
import WebAreaRole from "./etc/objects/WebAreaRole.js";
import WindowRole from "./etc/objects/WindowRole.js";
const AXObjects = [
["AbbrRole", AbbrRole],
["AlertDialogRole", AlertDialogRole],
["AlertRole", AlertRole],
["AnnotationRole", AnnotationRole],
["ApplicationRole", ApplicationRole],
["ArticleRole", ArticleRole],
["AudioRole", AudioRole],
["BannerRole", BannerRole],
["BlockquoteRole", BlockquoteRole],
["BusyIndicatorRole", BusyIndicatorRole],
["ButtonRole", ButtonRole],
["CanvasRole", CanvasRole],
["CaptionRole", CaptionRole],
["CellRole", CellRole],
["CheckBoxRole", CheckBoxRole],
["ColorWellRole", ColorWellRole],
["ColumnHeaderRole", ColumnHeaderRole],
["ColumnRole", ColumnRole],
["ComboBoxRole", ComboBoxRole],
["ComplementaryRole", ComplementaryRole],
["ContentInfoRole", ContentInfoRole],
["DateRole", DateRole],
["DateTimeRole", DateTimeRole],
["DefinitionRole", DefinitionRole],
["DescriptionListDetailRole", DescriptionListDetailRole],
["DescriptionListRole", DescriptionListRole],
["DescriptionListTermRole", DescriptionListTermRole],
["DetailsRole", DetailsRole],
["DialogRole", DialogRole],
["DirectoryRole", DirectoryRole],
["DisclosureTriangleRole", DisclosureTriangleRole],
["DivRole", DivRole],
["DocumentRole", DocumentRole],
["EmbeddedObjectRole", EmbeddedObjectRole],
["FeedRole", FeedRole],
["FigcaptionRole", FigcaptionRole],
["FigureRole", FigureRole],
["FooterRole", FooterRole],
["FormRole", FormRole],
["GridRole", GridRole],
["GroupRole", GroupRole],
["HeadingRole", HeadingRole],
["IframePresentationalRole", IframePresentationalRole],
["IframeRole", IframeRole],
["IgnoredRole", IgnoredRole],
["ImageMapLinkRole", ImageMapLinkRole],
["ImageMapRole", ImageMapRole],
["ImageRole", ImageRole],
["InlineTextBoxRole", InlineTextBoxRole],
["InputTimeRole", InputTimeRole],
["LabelRole", LabelRole],
["LegendRole", LegendRole],
["LineBreakRole", LineBreakRole],
["LinkRole", LinkRole],
["ListBoxOptionRole", ListBoxOptionRole],
["ListBoxRole", ListBoxRole],
["ListItemRole", ListItemRole],
["ListMarkerRole", ListMarkerRole],
["ListRole", ListRole],
["LogRole", LogRole],
["MainRole", MainRole],
["MarkRole", MarkRole],
["MarqueeRole", MarqueeRole],
["MathRole", MathRole],
["MenuBarRole", MenuBarRole],
["MenuButtonRole", MenuButtonRole],
["MenuItemRole", MenuItemRole],
["MenuItemCheckBoxRole", MenuItemCheckBoxRole],
["MenuItemRadioRole", MenuItemRadioRole],
["MenuListOptionRole", MenuListOptionRole],
["MenuListPopupRole", MenuListPopupRole],
["MenuRole", MenuRole],
["MeterRole", MeterRole],
["NavigationRole", NavigationRole],
["NoneRole", NoneRole],
["NoteRole", NoteRole],
["OutlineRole", OutlineRole],
["ParagraphRole", ParagraphRole],
["PopUpButtonRole", PopUpButtonRole],
["PreRole", PreRole],
["PresentationalRole", PresentationalRole],
["ProgressIndicatorRole", ProgressIndicatorRole],
["RadioButtonRole", RadioButtonRole],
["RadioGroupRole", RadioGroupRole],
["RegionRole", RegionRole],
["RootWebAreaRole", RootWebAreaRole],
["RowHeaderRole", RowHeaderRole],
["RowRole", RowRole],
["RubyRole", RubyRole],
["RulerRole", RulerRole],
["ScrollAreaRole", ScrollAreaRole],
["ScrollBarRole", ScrollBarRole],
["SeamlessWebAreaRole", SeamlessWebAreaRole],
["SearchRole", SearchRole],
["SearchBoxRole", SearchBoxRole],
["SliderRole", SliderRole],
["SliderThumbRole", SliderThumbRole],
["SpinButtonRole", SpinButtonRole],
["SpinButtonPartRole", SpinButtonPartRole],
["SplitterRole", SplitterRole],
["StaticTextRole", StaticTextRole],
["StatusRole", StatusRole],
["SVGRootRole", SVGRootRole],
["SwitchRole", SwitchRole],
["TabGroupRole", TabGroupRole],
["TabRole", TabRole],
["TableHeaderContainerRole", TableHeaderContainerRole],
["TableRole", TableRole],
["TabListRole", TabListRole],
["TabPanelRole", TabPanelRole],
["TermRole", TermRole],
["TextAreaRole", TextAreaRole],
["TextFieldRole", TextFieldRole],
["TimeRole", TimeRole],
["TimerRole", TimerRole],
["ToggleButtonRole", ToggleButtonRole],
["ToolbarRole", ToolbarRole],
["TreeRole", TreeRole],
["TreeGridRole", TreeGridRole],
["TreeItemRole", TreeItemRole],
["UserInterfaceTooltipRole", UserInterfaceTooltipRole],
["VideoRole", VideoRole],
["WebAreaRole", WebAreaRole],
["WindowRole", WindowRole],
];
const AXObjectsMap = {
entries: function () {
return AXObjects;
},
forEach: function (fn, thisArg = null) {
for (let [key, values] of AXObjects) {
fn.call(thisArg, values, key, AXObjects);
}
},
get: function (key) {
const item = AXObjects.find((tuple) => tuple[0] === key);
return item && item[1];
},
has: function (key) {
return !!AXObjectsMap.get(key);
},
keys: function () {
return AXObjects.map(([key]) => key);
},
values: function () {
return AXObjects.map(([, values]) => values);
},
};
export default iterationDecorator(AXObjectsMap, AXObjectsMap.entries());