UNPKG

@thepassle/axobject-query

Version:

Programmatic access to information about the AXObject Model

276 lines (275 loc) 12.6 kB
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());