Declaration of the Document Object Model for the JavaScript backend.
Document Ready
- Basic example of a document ready:
Example: cmd: -b:js -r:off
import std/dom proc example(e: Event) = echo "Document is ready" document.addEventListener("DOMContentLoaded", example) # You can also use "load" event.
- This example runs 5 seconds after the document ready:
Example: cmd: -b:js -r:off
import std/dom proc example() = echo "5 seconds after document ready" proc domReady(e: Event) = discard setTimeout(example, 5_000) # Document is ready. document.addEventListener("DOMContentLoaded", domReady)
Document onUnload
- Simple example of how to implement code that runs when the page unloads:
Example: cmd: -b:js -r:off
import std/dom proc example(e: Event) = echo "Document is unloaded" document.addEventListener("unload", example) # You can also use "beforeunload".
Document Autorefresh
- Minimal example of a document autorefresh:
Example: cmd: -b:js -r:off
import std/dom proc example() = window.location.reload() discard setTimeout(example, 5_000)
- For more examples, see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
Types
BoundingRect {.importc.} = object top*, bottom*, left*, right*, x*, y*, width*, height*: float
- Source Edit
ClipboardEvent {.importc.} = object of Event clipboardData*: DataTransfer
- see docs Source Edit
DataTransfer {.importc.} = ref object of RootObj dropEffect*: cstring effectAllowed*: cstring files*: seq[Element] items*: seq[DataTransferItem] types*: seq[cstring]
- see docs Source Edit
DataTransferDropEffect {.pure.} = enum None = "none", Copy = "copy", Link = "link", Move = "move"
- Source Edit
DataTransferEffectAllowed {.pure.} = enum None = "none", Copy = "copy", CopyLink = "copyLink", CopyMove = "copyMove", Link = "link", LinkMove = "linkMove", Move = "move", All = "all", Uninitialized = "uninitialized"
- Source Edit
DataTransferItemKind {.pure.} = enum File = "file", String = "string"
- Source Edit
Document {.importc.} = ref object of Node activeElement*: Element documentElement*: Element alinkColor*: cstring bgColor*: cstring body*: Element charset*: cstring cookie*: cstring defaultCharset*: cstring fgColor*: cstring head*: Element hidden*: bool lastModified*: cstring linkColor*: cstring referrer*: cstring title*: cstring URL*: cstring visibilityState*: cstring vlinkColor*: cstring anchors*: seq[AnchorElement] forms*: seq[FormElement] images*: seq[ImageElement] applets*: seq[Element] embeds*: seq[EmbedElement] links*: seq[LinkElement] fonts*: FontFaceSet
- Source Edit
DocumentOrShadowRoot {.importc.} = object of RootObj activeElement*: Element
- Source Edit
DomEvent {.pure.} = enum Abort = "abort", BeforeInput = "beforeinput", Blur = "blur", Click = "click", CompositionEnd = "compositionend", CompositionStart = "compositionstart", CompositionUpdate = "compositionupdate", DblClick = "dblclick", Error = "error", Focus = "focus", FocusIn = "focusin", FocusOut = "focusout", Input = "input", KeyDown = "keydown", KeyPress = "keypress", KeyUp = "keyup", Load = "load", MouseDown = "mousedown", MouseEnter = "mouseenter", MouseLeave = "mouseleave", MouseMove = "mousemove", MouseOut = "mouseout", MouseOver = "mouseover", MouseUp = "mouseup", Resize = "resize", Scroll = "scroll", Select = "select", Storage = "storage", Unload = "unload", Wheel = "wheel"
- see docs Source Edit
DomException {.importc.} = ref object
- The DOMException interface represents an abnormal event (called an exception) which occurs as a result of calling a method or accessing a property of a web API. Each exception has a name, which is a short "CamelCase" style string identifying the error or abnormal condition. https://developer.mozilla.org/en-US/docs/Web/API/DOMException Source Edit
DomParser = ref object
-
DOM Parser object (defined on browser only, may not be on NodeJS).
https://developer.mozilla.org/en-US/docs/Web/API/DOMParser
let prsr = newDomParser() discard prsr.parseFromString("<html><marquee>Hello World</marquee></html>".cstring, "text/html".cstring)
DragEvent {.importc.} = object of MouseEvent dataTransfer*: DataTransfer
- see docs Source Edit
DragEventTypes = enum Drag = "drag", DragEnd = "dragend", DragEnter = "dragenter", DragExit = "dragexit", DragLeave = "dragleave", DragOver = "dragover", DragStart = "dragstart", Drop = "drop"
- Source Edit
Element {.importc.} = ref object of Node className*: cstring classList*: ClassList checked*: bool defaultChecked*: bool defaultValue*: cstring disabled*: bool form*: FormElement name*: cstring readOnly*: bool options*: seq[OptionElement] selectedOptions*: seq[OptionElement] clientWidth*, clientHeight*: int contentEditable*: cstring isContentEditable*: bool dir*: cstring offsetHeight*: int offsetWidth*: int offsetLeft*: int offsetTop*: int
- Source Edit
EmbedElement {.importc.} = ref object of Element height*: int hspace*: int src*: cstring width*: int vspace*: int
- Source Edit
Event {.importc.} = ref object of RootObj bubbles*: bool cancelBubble*: bool cancelable*: bool composed*: bool currentTarget*: Node defaultPrevented*: bool eventPhase*: int target*: Node isTrusted*: bool
- see docs Source Edit
EventPhase = enum None = 0, CapturingPhase, AtTarget, BubblingPhase
- Source Edit
EventTarget {.importc.} = ref object of RootObj onabort*: proc (event: Event) {.closure.} onblur*: proc (event: Event) {.closure.} onchange*: proc (event: Event) {.closure.} onclick*: proc (event: Event) {.closure.} ondblclick*: proc (event: Event) {.closure.} onerror*: proc (event: Event) {.closure.} onfocus*: proc (event: Event) {.closure.} onkeydown*: proc (event: Event) {.closure.} onkeypress*: proc (event: Event) {.closure.} onkeyup*: proc (event: Event) {.closure.} onload*: proc (event: Event) {.closure.} onmousedown*: proc (event: Event) {.closure.} onmousemove*: proc (event: Event) {.closure.} onmouseout*: proc (event: Event) {.closure.} onmouseover*: proc (event: Event) {.closure.} onmouseup*: proc (event: Event) {.closure.} onreset*: proc (event: Event) {.closure.} onselect*: proc (event: Event) {.closure.} onstorage*: proc (event: Event) {.closure.} onsubmit*: proc (event: Event) {.closure.} onunload*: proc (event: Event) {.closure.} onloadstart*: proc (event: Event) {.closure.} onprogress*: proc (event: Event) {.closure.} onloadend*: proc (event: Event) {.closure.}
- Source Edit
FileReader {.importc.} = ref object of EventTarget
- The FileReader object lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user's computer, using File or Blob objects to specify the file or data to read. https://developer.mozilla.org/en-US/docs/Web/API/FileReader Source Edit
FileReaderState = distinct range[0'u16 .. 2'u16]
- Source Edit
FontFaceSet {.importc.} = ref object ready*: FontFaceSetReady onloadingdone*: proc (event: Event)
- see: docs Source Edit
FontFaceSetReady {.importc.} = ref object then*: proc (cb: proc ())
- see: docs Source Edit
FormElement {.importc.} = ref object of Element acceptCharset*: cstring action*: cstring autocomplete*: cstring elements*: seq[Element] encoding*: cstring enctype*: cstring length*: int noValidate*: bool target*: cstring
- see docs Source Edit
HTMLSlotElement {.importc.} = ref object of RootObj name*: cstring
- Source Edit
ImageElement {.importc.} = ref object of Element border*: int complete*: bool height*: int hspace*: int lowsrc*: cstring src*: cstring vspace*: int width*: int
- Source Edit
InputElement {.importc.} = ref object of Element formAction*: cstring formEncType*: cstring formMethod*: cstring formNoValidate*: bool formTarget*: cstring autofocus*: bool required*: bool value*: cstring validity*: ValidityState validationMessage*: cstring willValidate*: bool indeterminate*: bool alt*: cstring height*: cstring src*: cstring width*: cstring accept*: cstring files*: seq[Blob] autocomplete*: cstring maxLength*: int size*: int pattern*: cstring placeholder*: cstring min*: cstring max*: cstring selectionStart*: int selectionEnd*: int selectionDirection*: cstring dirName*: cstring accessKey*: cstring list*: Element multiple*: bool labels*: seq[Element] step*: cstring valueAsDate*: cstring valueAsNumber*: float
- see docs Source Edit
KeyboardEvent {.importc.} = ref object of UIEvent altKey*, ctrlKey*, metaKey*, shiftKey*: bool code*: cstring isComposing*: bool key*: cstring keyCode*: int location*: int
- see docs Source Edit
KeyboardEventKey {.pure.} = enum Alt, AltGraph, CapsLock, Control, Fn, FnLock, Hyper, Meta, NumLock, ScrollLock, Shift, Super, Symbol, SymbolLock, ArrowDown, ArrowLeft, ArrowRight, ArrowUp, End, Home, PageDown, PageUp, Backspace, Clear, Copy, CrSel, Cut, Delete, EraseEof, ExSel, Insert, Paste, Redo, Undo, Accept, Again, Attn, Cancel, ContextMenu, Escape, Execute, Find, Finish, Help, Pause, Play, Props, Select, ZoomIn, ZoomOut, BrigtnessDown, BrigtnessUp, Eject, LogOff, Power, PowerOff, PrintScreen, Hibernate, Standby, WakeUp, AllCandidates, Alphanumeric, CodeInput, Compose, Convert, Dead, FinalMode, GroupFirst, GroupLast, GroupNext, GroupPrevious, ModeChange, NextCandidate, NonConvert, PreviousCandidate, Process, SingleCandidate, HangulMode, HanjaMode, JunjaMode, Eisu, Hankaku, Hiragana, HiraganaKatakana, KanaMode, KanjiMode, Katakana, Romaji, Zenkaku, ZenkakuHanaku, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, F16, F17, F18, F19, F20, Soft1, Soft2, Soft3, Soft4, AppSwitch, Call, Camera, CameraFocus, EndCall, GoBack, GoHome, HeadsetHook, LastNumberRedial, Notification, MannerMode, VoiceDial, ChannelDown, ChannelUp, MediaFastForward, MediaPause, MediaPlay, MediaPlayPause, MediaRecord, MediaRewind, MediaStop, MediaTrackNext, MediaTrackPrevious, AudioBalanceLeft, AudioBalanceRight, AudioBassDown, AudioBassBoostDown, AudioBassBoostToggle, AudioBassBoostUp, AudioBassUp, AudioFaderFront, AudioFaderRear, AudioSurroundModeNext, AudioTrebleDown, AudioTrebleUp, AudioVolumeDown, AUdioVolumeMute, AudioVolumeUp, MicrophoneToggle, MicrophoneVolumeDown, MicrophoneVolumeMute, MicrophoneVolumeUp, TV, TV3DMode, TVAntennaCable, TVAudioDescription, TVAudioDescriptionMixDown, TVAudioDescriptionMixUp, TVContentsMenu, TVDataService, TVInput, TVInputComponent1, TVInputComponent2, TVInputComposite1, TVInputComposite2, TVInputHDMI1, TVInputHDMI2, TVInputHDMI3, TVInputHDMI4, TVInputVGA1, TVMediaContext, TVNetwork, TVNumberEntry, TVPower, TVRadioService, TVSatellite, TVSatelliteBS, TVSatelliteCS, TVSatelliteToggle, TVTerrestrialAnalog, TVTerrestrialDigital, TVTimer, AVRInput, AVRPower, ColorF0Red, ColorF1Green, ColorF2Yellow, ColorF3Blue, ColorF4Grey, ColorF5Brown, ClosedCaptionToggle, Dimmer, DisplaySwap, DVR, Exit, FavoriteClear0, FavoriteClear1, FavoriteClear2, FavoriteClear3, FavoriteRecall0, FavoriteRecall1, FavoriteRecall2, FavoriteRecall3, FavoriteStore0, FavoriteStore1, FavoriteStore2, FavoriteStore3, Guide, GuideNextDay, GuidePreviousDay, Info, InstantReplay, Link, ListProgram, LiveContent, Lock, MediaApps, MediaAudioTrack, MediaLast, MediaSkipBackward, MediaSkipForward, MediaStepBackward, MediaStepForward, MediaTopMenu, NavigateIn, NavigateNext, NavigateOut, NavigatePrevious, NextFavoriteChannel, NextUserProfile, OnDemand, Pairing, PinPDown, PinPMove, PinPUp, PlaySpeedDown, PlaySpeedReset, PlaySpeedUp, RandomToggle, RcLowBattery, RecordSpeedNext, RfBypass, ScanChannelsToggle, ScreenModeNext, Settings, SplitScreenToggle, STBInput, STBPower, Subtitle, Teletext, VideoModeNext, Wink, ZoomToggle, SpeechCorrectionList, SpeechInputToggle, Close, New, Open, Print, Save, SpellCheck, MailForward, MailReply, MailSend, LaunchCalculator, LaunchCalendar, LaunchContacts, LaunchMail, LaunchMediaPlayer, LaunchMusicPlayer, LaunchMyComputer, LaunchPhone, LaunchScreenSaver, LaunchSpreadsheet, LaunchWebBrowser, LaunchWebCam, LaunchWordProcessor, LaunchApplication1, LaunchApplication2, LaunchApplication3, LaunchApplication4, LaunchApplication5, LaunchApplication6, LaunchApplication7, LaunchApplication8, LaunchApplication9, LaunchApplication10, LaunchApplication11, LaunchApplication12, LaunchApplication13, LaunchApplication14, LaunchApplication15, LaunchApplication16, BrowserBack, BrowserFavorites, BrowserForward, BrowserHome, BrowserRefresh, BrowserSearch, BrowserStop, Key11, Key12, Separator
- see docs Source Edit
LinkElement {.importc.} = ref object of Element target*: cstring text*: cstring x*: int y*: int
- Source Edit
Location {.importc.} = ref object of RootObj hash*: cstring host*: cstring hostname*: cstring href*: cstring pathname*: cstring port*: cstring protocol*: cstring search*: cstring origin*: cstring
- Source Edit
LocationBar {.importc.} = object of RootObj visible*: bool
- Source Edit
MediaQueryList {.importc.} = ref object of EventTarget matches*: bool media*: cstring
- Source Edit
MimeType {.importc.} = object of RootObj description*: cstring enabledPlugin*: ref Plugin suffixes*: seq[cstring]
- Source Edit
MouseButtons = enum NoButton = 0, PrimaryButton = 1, SecondaryButton = 2, AuxilaryButton = 4, FourthButton = 8, FifthButton = 16
- Source Edit
MouseEvent {.importc.} = ref object of UIEvent altKey*, ctrlKey*, metaKey*, shiftKey*: bool button*: int buttons*: int clientX*, clientY*: int movementX*, movementY*: int offsetX*, offsetY*: int pageX*, pageY*: int relatedTarget*: EventTarget screenX*, screenY*: int x*, y*: int
- see docs Source Edit
Node {.importc.} = ref object of EventTarget attributes*: seq[Node] childNodes*: seq[Node] children*: seq[Node] data*: cstring firstChild*: Node lastChild*: Node nextSibling*: Node nodeName*: cstring nodeType*: NodeType nodeValue*: cstring parentNode*: Node content*: Node previousSibling*: Node ownerDocument*: Document innerHTML*: cstring outerHTML*: cstring innerText*: cstring textContent*: cstring style*: Style baseURI*: cstring parentElement*: Element isConnected*: bool
- Source Edit
NodeType = enum ElementNode = 1, AttributeNode, TextNode, CDATANode, EntityRefNode, EntityNode, ProcessingInstructionNode, CommentNode, DocumentNode, DocumentTypeNode, DocumentFragmentNode, NotationNode
- Source Edit
OptionElement {.importc.} = ref object of Element defaultSelected*: bool selected*: bool selectedIndex*: int text*: cstring value*: cstring
- Source Edit
Performance {.importc.} = ref object memory*: PerformanceMemory timing*: PerformanceTiming
- Source Edit
PerformanceMemory {.importc.} = ref object jsHeapSizeLimit*: float totalJSHeapSize*: float usedJSHeapSize*: float
- Source Edit
PerformanceTiming {.importc.} = ref object connectStart*: float domComplete*: float domContentLoadedEventEnd*: float domContentLoadedEventStart*: float domInteractive*: float domLoading*: float domainLookupEnd*: float domainLookupStart*: float fetchStart*: float loadEventEnd*: float loadEventStart*: float navigationStart*: float redirectEnd*: float redirectStart*: float requestStart*: float responseEnd*: float responseStart*: float secureConnectionStart*: float unloadEventEnd*: float unloadEventStart*: float
- Source Edit
Plugin {.importc.} = object of RootObj description*: cstring filename*: cstring name*: cstring
- Source Edit
Range {.importc.} = ref object collapsed*: bool commonAncestorContainer*: Node endContainer*: Node endOffset*: int startContainer*: Node startOffset*: int
- see docs Source Edit
RootNodeOptions = object of RootObj composed*: bool
- Source Edit
Screen {.importc.} = ref object of RootObj availHeight*: int availWidth*: int colorDepth*: int height*: int pixelDepth*: int width*: int
- Source Edit
ScrollIntoViewOptions = object behavior*: cstring inline*: cstring
- Source Edit
Selection {.importc.} = ref object anchorNode*: Node anchorOffset*: int focusNode*: Node focusOffset*: int isCollapsed*: bool rangeCount*: int
- see docs Source Edit
ShadowRoot {.importc.} = ref object of DocumentOrShadowRoot delegatesFocus*: bool host*: Element innerHTML*: cstring mode*: cstring
- Source Edit
SlotOptions = object of RootObj flatten*: bool
- Source Edit
StorageEvent {.importc.} = ref object of Event key*: cstring newValue*, oldValue*: cstring storageArea*: Storage url*: cstring
- see docs Source Edit
Style {.importc.} = ref object of RootObj alignContent*: cstring alignItems*: cstring alignSelf*: cstring all*: cstring animation*: cstring animationDelay*: cstring animationDirection*: cstring animationDuration*: cstring animationFillMode*: cstring animationIterationCount*: cstring animationName*: cstring animationPlayState*: cstring animationTimingFunction*: cstring backdropFilter*: cstring backfaceVisibility*: cstring background*: cstring backgroundAttachment*: cstring backgroundBlendMode*: cstring backgroundClip*: cstring backgroundColor*: cstring backgroundImage*: cstring backgroundOrigin*: cstring backgroundPosition*: cstring backgroundRepeat*: cstring backgroundSize*: cstring blockSize*: cstring border*: cstring borderBlock*: cstring borderBlockColor*: cstring borderBlockEnd*: cstring borderBlockEndColor*: cstring borderBlockEndStyle*: cstring borderBlockEndWidth*: cstring borderBlockStart*: cstring borderBlockStartColor*: cstring borderBlockStartStyle*: cstring borderBlockStartWidth*: cstring borderBlockStyle*: cstring borderBlockWidth*: cstring borderBottom*: cstring borderBottomColor*: cstring borderBottomLeftRadius*: cstring borderBottomRightRadius*: cstring borderBottomStyle*: cstring borderBottomWidth*: cstring borderCollapse*: cstring borderColor*: cstring borderEndEndRadius*: cstring borderEndStartRadius*: cstring borderImage*: cstring borderImageOutset*: cstring borderImageRepeat*: cstring borderImageSlice*: cstring borderImageSource*: cstring borderImageWidth*: cstring borderInline*: cstring borderInlineColor*: cstring borderInlineEnd*: cstring borderInlineEndColor*: cstring borderInlineEndStyle*: cstring borderInlineEndWidth*: cstring borderInlineStart*: cstring borderInlineStartColor*: cstring borderInlineStartStyle*: cstring borderInlineStartWidth*: cstring borderInlineStyle*: cstring borderInlineWidth*: cstring borderLeft*: cstring borderLeftColor*: cstring borderLeftStyle*: cstring borderLeftWidth*: cstring borderRadius*: cstring borderRight*: cstring borderRightColor*: cstring borderRightStyle*: cstring borderRightWidth*: cstring borderSpacing*: cstring borderStartEndRadius*: cstring borderStartStartRadius*: cstring borderStyle*: cstring borderTop*: cstring borderTopColor*: cstring borderTopLeftRadius*: cstring borderTopRightRadius*: cstring borderTopStyle*: cstring borderTopWidth*: cstring borderWidth*: cstring bottom*: cstring boxDecorationBreak*: cstring boxShadow*: cstring boxSizing*: cstring breakAfter*: cstring breakBefore*: cstring breakInside*: cstring captionSide*: cstring caretColor*: cstring clear*: cstring clip*: cstring clipPath*: cstring color*: cstring colorAdjust*: cstring columnCount*: cstring columnFill*: cstring columnGap*: cstring columnRule*: cstring columnRuleColor*: cstring columnRuleStyle*: cstring columnRuleWidth*: cstring columnSpan*: cstring columnWidth*: cstring columns*: cstring contain*: cstring content*: cstring counterIncrement*: cstring counterReset*: cstring counterSet*: cstring cursor*: cstring direction*: cstring display*: cstring emptyCells*: cstring filter*: cstring flex*: cstring flexBasis*: cstring flexDirection*: cstring flexFlow*: cstring flexGrow*: cstring flexShrink*: cstring flexWrap*: cstring cssFloat*: cstring font*: cstring fontFamily*: cstring fontFeatureSettings*: cstring fontKerning*: cstring fontLanguageOverride*: cstring fontOpticalSizing*: cstring fontSize*: cstring fontSizeAdjust*: cstring fontStretch*: cstring fontStyle*: cstring fontSynthesis*: cstring fontVariant*: cstring fontVariantAlternates*: cstring fontVariantCaps*: cstring fontVariantEastAsian*: cstring fontVariantLigatures*: cstring fontVariantNumeric*: cstring fontVariantPosition*: cstring fontVariationSettings*: cstring fontWeight*: cstring gap*: cstring grid*: cstring gridArea*: cstring gridAutoColumns*: cstring gridAutoFlow*: cstring gridAutoRows*: cstring gridColumn*: cstring gridColumnEnd*: cstring gridColumnStart*: cstring gridRow*: cstring gridRowEnd*: cstring gridRowStart*: cstring gridTemplate*: cstring gridTemplateAreas*: cstring gridTemplateColumns*: cstring gridTemplateRows*: cstring hangingPunctuation*: cstring height*: cstring hyphens*: cstring imageOrientation*: cstring imageRendering*: cstring inlineSize*: cstring inset*: cstring insetBlock*: cstring insetBlockEnd*: cstring insetBlockStart*: cstring insetInline*: cstring insetInlineEnd*: cstring insetInlineStart*: cstring isolation*: cstring justifyContent*: cstring justifyItems*: cstring justifySelf*: cstring left*: cstring letterSpacing*: cstring lineBreak*: cstring lineHeight*: cstring listStyle*: cstring listStyleImage*: cstring listStylePosition*: cstring listStyleType*: cstring margin*: cstring marginBlock*: cstring marginBlockEnd*: cstring marginBlockStart*: cstring marginBottom*: cstring marginInline*: cstring marginInlineEnd*: cstring marginInlineStart*: cstring marginLeft*: cstring marginRight*: cstring marginTop*: cstring mask*: cstring maskBorder*: cstring maskBorderMode*: cstring maskBorderOutset*: cstring maskBorderRepeat*: cstring maskBorderSlice*: cstring maskBorderSource*: cstring maskBorderWidth*: cstring maskClip*: cstring maskComposite*: cstring maskImage*: cstring maskMode*: cstring maskOrigin*: cstring maskPosition*: cstring maskRepeat*: cstring maskSize*: cstring maskType*: cstring maxBlockSize*: cstring maxHeight*: cstring maxInlineSize*: cstring maxWidth*: cstring minBlockSize*: cstring minHeight*: cstring minInlineSize*: cstring minWidth*: cstring mixBlendMode*: cstring objectFit*: cstring objectPosition*: cstring offset*: cstring offsetAnchor*: cstring offsetDistance*: cstring offsetPath*: cstring offsetRotate*: cstring opacity*: cstring order*: cstring orphans*: cstring outline*: cstring outlineColor*: cstring outlineOffset*: cstring outlineStyle*: cstring outlineWidth*: cstring overflow*: cstring overflowAnchor*: cstring overflowBlock*: cstring overflowInline*: cstring overflowWrap*: cstring overflowX*: cstring overflowY*: cstring overscrollBehavior*: cstring overscrollBehaviorBlock*: cstring overscrollBehaviorInline*: cstring overscrollBehaviorX*: cstring overscrollBehaviorY*: cstring padding*: cstring paddingBlock*: cstring paddingBlockEnd*: cstring paddingBlockStart*: cstring paddingBottom*: cstring paddingInline*: cstring paddingInlineEnd*: cstring paddingInlineStart*: cstring paddingLeft*: cstring paddingRight*: cstring paddingTop*: cstring pageBreakAfter*: cstring pageBreakBefore*: cstring pageBreakInside*: cstring paintOrder*: cstring perspective*: cstring perspectiveOrigin*: cstring placeContent*: cstring placeItems*: cstring placeSelf*: cstring pointerEvents*: cstring position*: cstring quotes*: cstring resize*: cstring right*: cstring rotate*: cstring rowGap*: cstring scale*: cstring scrollBehavior*: cstring scrollMargin*: cstring scrollMarginBlock*: cstring scrollMarginBlockEnd*: cstring scrollMarginBlockStart*: cstring scrollMarginBottom*: cstring scrollMarginInline*: cstring scrollMarginInlineEnd*: cstring scrollMarginInlineStart*: cstring scrollMarginLeft*: cstring scrollMarginRight*: cstring scrollMarginTop*: cstring scrollPadding*: cstring scrollPaddingBlock*: cstring scrollPaddingBlockEnd*: cstring scrollPaddingBlockStart*: cstring scrollPaddingBottom*: cstring scrollPaddingInline*: cstring scrollPaddingInlineEnd*: cstring scrollPaddingInlineStart*: cstring scrollPaddingLeft*: cstring scrollPaddingRight*: cstring scrollPaddingTop*: cstring scrollSnapAlign*: cstring scrollSnapStop*: cstring scrollSnapType*: cstring scrollbar3dLightColor*: cstring scrollbarArrowColor*: cstring scrollbarBaseColor*: cstring scrollbarColor*: cstring scrollbarDarkshadowColor*: cstring scrollbarFaceColor*: cstring scrollbarHighlightColor*: cstring scrollbarShadowColor*: cstring scrollbarTrackColor*: cstring scrollbarWidth*: cstring shapeImageThreshold*: cstring shapeMargin*: cstring shapeOutside*: cstring tabSize*: cstring tableLayout*: cstring textAlign*: cstring textAlignLast*: cstring textCombineUpright*: cstring textDecoration*: cstring textDecorationColor*: cstring textDecorationLine*: cstring textDecorationSkipInk*: cstring textDecorationStyle*: cstring textDecorationThickness*: cstring textEmphasis*: cstring textEmphasisColor*: cstring textEmphasisPosition*: cstring textEmphasisStyle*: cstring textIndent*: cstring textJustify*: cstring textOrientation*: cstring textOverflow*: cstring textRendering*: cstring textShadow*: cstring textTransform*: cstring textUnderlineOffset*: cstring textUnderlinePosition*: cstring top*: cstring touchAction*: cstring transform*: cstring transformBox*: cstring transformOrigin*: cstring transformStyle*: cstring transition*: cstring transitionDelay*: cstring transitionDuration*: cstring transitionProperty*: cstring transitionTimingFunction*: cstring translate*: cstring unicodeBidi*: cstring verticalAlign*: cstring visibility*: cstring whiteSpace*: cstring widows*: cstring width*: cstring willChange*: cstring wordBreak*: cstring wordSpacing*: cstring writingMode*: cstring zIndex*: cstring
- Source Edit
TextAreaElement {.importc.} = ref object of Element value*: cstring selectionStart*, selectionEnd*: int selectionDirection*: cstring rows*, cols*: int
- see docs Source Edit
Touch {.importc.} = ref object of RootObj identifier*: int screenX*, screenY*, clientX*, clientY*, pageX*, pageY*: int target*: Element radiusX*, radiusY*: int rotationAngle*: int force*: float
- Source Edit
TouchEvent {.importc.} = ref object of UIEvent changedTouches*, targetTouches*, touches*: seq[Touch]
- Source Edit
ValidityState {.importc.} = ref object badInput*: bool customError*: bool patternMismatch*: bool rangeOverflow*: bool rangeUnderflow*: bool stepMismatch*: bool tooLong*: bool tooShort*: bool typeMismatch*: bool valid*: bool valueMissing*: bool
- see docs Source Edit
Window {.importc.} = ref object of EventTarget document*: Document event*: Event history*: History location*: Location closed*: bool defaultStatus*: cstring devicePixelRatio*: float innerHeight*, innerWidth*: int locationbar*: ref LocationBar menubar*: ref MenuBar name*: cstring outerHeight*, outerWidth*: int pageXOffset*, pageYOffset*: int scrollX*: float scrollY*: float personalbar*: ref PersonalBar scrollbars*: ref ScrollBars statusbar*: ref StatusBar status*: cstring toolbar*: ref ToolBar frames*: seq[Frame] screen*: Screen performance*: Performance onpopstate*: proc (event: Event) localStorage*: Storage sessionStorage*: Storage parent*: Window
- Source Edit
Consts
DomApiVersion = 3
- the version of DOM API we try to follow. No guarantees though. Source Edit
fileReaderDone = 2'u
- Source Edit
fileReaderEmpty = 0'u
- Source Edit
fileReaderLoading = 1'u
- Source Edit
Procs
proc abort(f: FileReader) {.importcpp: "#.abort()", ...raises: [], tags: [], forbids: [].}
- https://developer.mozilla.org/en-US/docs/Web/API/FileReader/abort Source Edit
proc addEventListener(et: EventTarget; ev: cstring; cb: proc (ev: Event); options: AddEventListenerOptions) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc addEventListener(et: EventTarget; ev: cstring; cb: proc (ev: Event); useCapture: bool = false) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc appendChild(n, child: Node) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc appendData(n: Node; data: cstring) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc assignedElements(n: HTMLSlotElement; options: SlotOptions): seq[Element] {. importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc assignedNodes(n: HTMLSlotElement; options: SlotOptions): seq[Node] {. importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc attachShadow(n: Element): ShadowRoot {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc cancelAnimationFrame(w: Window; id: int) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc checkValidity(e: FormElement): bool {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc checkValidity(e: InputElement): bool {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc clearData(dt: DataTransfer; format: cstring) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc clearInterval(i: Interval) {.importc, nodecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc clearInterval(w: Window; interval: Interval) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc clearTimeout(t: TimeOut) {.importc, nodecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc clearTimeout(w: Window; timeout: TimeOut) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc clientHeight(): int {.importcpp: "(window.innerHeight || document.documentElement.clientHeight)@", nodecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc clientWidth(): int {.importcpp: "(window.innerWidth || document.documentElement.clientWidth)@", nodecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc decodeURIComponent(uri: cstring): cstring {.importc, nodecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc deleteData(n: Node; start, len: int) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc deleteFromDocument(s: Selection) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc disableExternalCapture(w: Window) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc dispatchEvent(et: EventTarget; ev: Event) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc elementFromPoint(n: DocumentOrShadowRoot; x, y: float): Element {. importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc elementsFromPoint(n: DocumentOrShadowRoot; x, y: float): seq[Element] {. importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc enableExternalCapture(w: Window) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc encodeURIComponent(uri: cstring): cstring {.importc, nodecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc error(f: FileReader): DomException {.importcpp: "#.error", nodecl, ...raises: [], tags: [], forbids: [].}
- https://developer.mozilla.org/en-US/docs/Web/API/FileReader/error Source Edit
proc getAsFile(dti: DataTransferItem): File {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc getBoundingClientRect(e: Node): BoundingRect {. importcpp: "getBoundingClientRect", nodecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc getElementById(d: Document; id: cstring): Element {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc getElementById(id: cstring): Element {.importc: "document.getElementById", nodecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc getModifierState(ev: KeyboardEvent; keyArg: cstring): bool {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc getModifierState(ev: MouseEvent; keyArg: cstring): bool {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc getRootNode(n: Node; options: RootNodeOptions): Node {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc getSelection(d: Document): Selection {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc getSelection(n: DocumentOrShadowRoot): Selection {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc handleEvent(d: Document; event: Event) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc handleEvent(e: Element; event: Event) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc handleEvent(w: Window; e: Event) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc hasAttributeNS(self: Node; namespace, localName: cstring): bool {. importjs: "(#.$1(#, #) || false)", ...raises: [], tags: [], forbids: [].}
- https://developer.mozilla.org/en-US/docs/Web/API/Element/hasAttributeNS Source Edit
proc hasChildNodes(n: Node): bool {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc hasPointerCapture(self: Node; pointerId: SomeNumber): bool {. importjs: "(#.$1(#) || false)", ...raises: [], tags: [], forbids: [].}
- https://developer.mozilla.org/en-US/docs/Web/API/Element/hasPointerCapture Source Edit
proc identifiedTouch(list: TouchList): Touch {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc insertAdjacentElement(self: Node; position: cstring; element: Node) {. importjs: "#.$1(#, #)", ...raises: [], tags: [], forbids: [].}
- https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentElement Source Edit
proc insertAdjacentHTML(self: Node; position, html: cstring) {. importjs: "#.$1(#, #)", ...raises: [], tags: [], forbids: [].}
- https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML Source Edit
proc insertAdjacentText(self: Node; position, data: cstring) {. importjs: "#.$1(#, #)", ...raises: [], tags: [], forbids: [].}
- https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentText Source Edit
proc insertBefore(n, newNode, before: Node) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc insertNode(range: Range; node: Node) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc inViewport(el: Node): bool {....raises: [], tags: [], forbids: [].}
- Source Edit
proc isDefaultNamespace(n: Node): bool {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc isEqualNode(n: Node): bool {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc isFinite(x: BiggestFloat): bool {.importc, nodecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc isNaN(x: BiggestFloat): bool {.importc, nodecl, ...raises: [], tags: [], forbids: [].}
- see also math.isNaN. Source Edit
proc isSameNode(n: Node): bool {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc lookupNamespaceURI(n: Node): cstring {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc lookupPrefix(n: Node): cstring {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc matchMedia(w: Window; mediaQueryString: cstring): MediaQueryList {. importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc message(ex: DomException): cstring {.importcpp: "#.message", nodecl, ...raises: [], tags: [], forbids: [].}
- https://developer.mozilla.org/en-US/docs/Web/API/DOMException/message Source Edit
proc name(ex: DomException): cstring {.importcpp: "#.name", nodecl, ...raises: [], tags: [], forbids: [].}
- https://developer.mozilla.org/en-US/docs/Web/API/DOMException/name Source Edit
proc newDomException(): DomException {.importcpp: "new DomException()", constructor, ...raises: [], tags: [], forbids: [].}
- DOM Exception constructor Source Edit
func newDomParser(): DomParser {.importcpp: "new DOMParser()", ...raises: [], tags: [], forbids: [].}
- DOM Parser constructor. Source Edit
proc newFileReader(): FileReader {.importcpp: "new FileReader()", constructor, ...raises: [], tags: [], forbids: [].}
- File Reader constructor Source Edit
proc now(p: Performance): float {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc offsetHeight(e: Node): int {.importcpp: "#.offsetHeight", nodecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc offsetLeft(e: Node): int {.importcpp: "#.offsetLeft", nodecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc offsetWidth(e: Node): int {.importcpp: "#.offsetWidth", nodecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc play(e: EmbedElement) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc preventDefault(ev: Event) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc readAsBinaryString(f: FileReader; b: Blob) {. importcpp: "#.readAsBinaryString(#)", ...raises: [], tags: [], forbids: [].}
- https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsBinaryString Source Edit
proc readAsDataURL(f: FileReader; b: Blob) {.importcpp: "#.readAsDataURL(#)", ...raises: [], tags: [], forbids: [].}
- https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL Source Edit
proc readAsText(f: FileReader; b: Blob | File; encoding = cstring"UTF-8") {. importcpp: "#.readAsText(#, #)", ...raises: [], tags: [], forbids: [].}
- https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsText Source Edit
proc readyState(f: FileReader): FileReaderState {.importcpp: "#.readyState", nodecl, ...raises: [], tags: [], forbids: [].}
- https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readyState Source Edit
proc releasePointerCapture(self: Node; pointerId: SomeNumber) {. importjs: "#.$1(#)", ...raises: [], tags: [], forbids: [].}
- https://developer.mozilla.org/en-US/docs/Web/API/Element/releasePointerCapture Source Edit
proc removeAllRanges(s: Selection) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc removeAttribute(n: Node; attr: cstring) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc removeAttributeNode(n, attr: Node) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc removeAttributeNS(self: Node; namespace, attributeName: cstring) {. importjs: "#.$1(#, #)", ...raises: [], tags: [], forbids: [].}
- https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttributeNS Source Edit
proc removeChild(n, child: Node) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc removeEventListener(et: EventTarget; ev: cstring; cb: proc (ev: Event)) {. importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc removeItem(s: Storage; key: cstring) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc removeProperty(s: Style; property: cstring) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc replaceChild(n, newNode, oldNode: Node) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc replaceChildren(self: Node; replacements: Node) {.importjs: "#.$1(@)", varargs, ...raises: [], tags: [], forbids: [].}
- https://developer.mozilla.org/en-US/docs/Web/API/Element/replaceChildren Source Edit
proc replaceWith(self: Node; replacements: Node) {.importjs: "#.$1(@)", varargs, ...raises: [], tags: [], forbids: [].}
- https://developer.mozilla.org/en-US/docs/Web/API/Element/replaceWith Source Edit
proc reportValidity(e: FormElement): bool {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc requestPointerLock(self: Node) {.importjs: "#.$1()", ...raises: [], tags: [], forbids: [].}
- https://developer.mozilla.org/en-US/docs/Web/API/Element/requestPointerLock Source Edit
proc reset(f: FormElement) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc resultAsString(f: FileReader): cstring {.importcpp: "#.result", nodecl, ...raises: [], tags: [], forbids: [].}
- https://developer.mozilla.org/en-US/docs/Web/API/FileReader/result Source Edit
proc routeEvent(d: Document; event: Event) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc routeEvent(w: Window; event: Event) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc scrollHeight(e: Node): int {.importcpp: "#.scrollHeight", nodecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc scrollIntoView(n: Node) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc scrollIntoView(n: Node; options: ScrollIntoViewOptions) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc scrollIntoViewIfNeeded(self: Node; centerIfNeeded: bool) {. importjs: "#.$1(#)", ...raises: [], tags: [], forbids: [].}
- https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoViewIfNeeded Source Edit
proc scrollLeft(e: Node): int {.importcpp: "#.scrollLeft", nodecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc scrollTop=(e: Node; value: int) {.importcpp: "#.scrollTop = #", nodecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc scrollWidth(e: Node): int {.importcpp: "#.scrollWidth", nodecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc setAttribute(n: Node; name, value: cstring) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc setAttributeNode(n: Node; attr: Node) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc setCustomValidity(e: InputElement; error: cstring) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc setDragImage(dt: DataTransfer; img: Element; xOffset: int64; yOffset: int64) {. importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc setInterval(action: proc (); ms: int): Interval {.importc, nodecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc setProperty(s: Style; property, value: cstring; priority = "") {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc setRangeText(e: InputElement; replacement: cstring; startindex: int = 0; endindex: int = 0; selectionMode: cstring = "preserve") {. importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc setSelectionRange(e: InputElement; selectionStart: int; selectionEnd: int; selectionDirection: cstring = "none") {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc setTimeout(action: proc (); ms: int): TimeOut {.importc, nodecl, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc stop(e: EmbedElement) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc stopImmediatePropagation(ev: Event) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc stopPropagation(ev: Event) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc submit(f: FormElement) {.importcpp, ...raises: [], tags: [], forbids: [].}
- Source Edit
proc toggleAttribute(self: Node; name: cstring; force = false): bool {. importjs: "(#.$1(#, #) || false)", ...raises: [], tags: [], forbids: [].}
- https://developer.mozilla.org/en-US/docs/Web/API/Element/toggleAttribute Source Edit