| // Copyright 2014 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // This code is copied from `package:web` which still needs its own |
| // documentation for public members. Since this is a shim that users should not |
| // use, we ignore this lint for this file. |
| // ignore_for_file: public_member_api_docs |
| |
| /// A stripped down version of `package:web` to avoid pinning that repo in |
| /// Flutter as a dependency. |
| /// |
| /// These are manually copied over from `package:web` as needed, and should stay |
| /// in sync with the latest package version as much as possible. |
| /// |
| /// If missing members are needed, copy them over into the corresponding |
| /// extension or interface. If missing interfaces/types are needed, copy them |
| /// over while excluding unnecessary inheritance to make the copy minimal. These |
| /// types are erased at runtime, so excluding supertypes is safe. If a member is |
| /// needed that belongs to a supertype, then add the necessary `implements` |
| /// clause to the subtype when you add that supertype. Keep extensions next to |
| /// the interface they extend. |
| library; |
| |
| import 'dart:js_interop'; |
| |
| typedef EventListener = JSFunction; |
| typedef XMLHttpRequestResponseType = String; |
| |
| @JS() |
| external Document get document; |
| |
| @JS() |
| external Window get window; |
| |
| extension type CSSStyleDeclaration._(JSObject _) implements JSObject { |
| external set backgroundColor(String value); |
| external String get backgroundColor; |
| external set border(String value); |
| external String get border; |
| external set height(String value); |
| external String get height; |
| external set width(String value); |
| external String get width; |
| } |
| |
| extension type CSSStyleSheet._(JSObject _) implements JSObject { |
| external int insertRule( |
| String rule, [ |
| int index, |
| ]); |
| } |
| |
| extension type Document._(JSObject _) implements JSObject { |
| external Element createElement( |
| String localName, [ |
| JSAny options, |
| ]); |
| external Range createRange(); |
| external HTMLHeadElement? get head; |
| } |
| |
| extension type DOMTokenList._(JSObject _) implements JSObject { |
| external void add(String tokens); |
| } |
| |
| extension type Element._(JSObject _) implements Node, JSObject { |
| external DOMTokenList get classList; |
| external void append(JSAny nodes); |
| } |
| |
| extension type Event._(JSObject _) implements JSObject {} |
| |
| extension type EventTarget._(JSObject _) implements JSObject { |
| external void addEventListener( |
| String type, |
| EventListener? callback, [ |
| JSAny options, |
| ]); |
| } |
| |
| extension type HTMLElement._(JSObject _) implements Element, JSObject { |
| external String get innerText; |
| external set innerText(String value); |
| external CSSStyleDeclaration get style; |
| } |
| |
| extension type HTMLHeadElement._(JSObject _) implements HTMLElement, JSObject {} |
| |
| extension type HTMLStyleElement._(JSObject _) implements HTMLElement, JSObject { |
| external CSSStyleSheet? get sheet; |
| } |
| |
| extension type MediaQueryList._(JSObject _) implements EventTarget, JSObject { |
| external bool get matches; |
| } |
| |
| extension type MouseEvent._(JSObject _) implements JSObject { |
| external num get offsetX; |
| external num get offsetY; |
| external int get button; |
| } |
| |
| extension type Navigator._(JSObject _) implements JSObject { |
| external String get platform; |
| } |
| |
| extension type Node._(JSObject _) implements EventTarget, JSObject {} |
| |
| extension type Range._(JSObject _) implements JSObject { |
| external void selectNode(Node node); |
| } |
| |
| extension type Selection._(JSObject _) implements JSObject { |
| external void addRange(Range range); |
| external void removeAllRanges(); |
| } |
| |
| extension type Window._(JSObject _) implements EventTarget, JSObject { |
| external Navigator get navigator; |
| external MediaQueryList matchMedia(String query); |
| external Selection? getSelection(); |
| } |
| |
| extension type XMLHttpRequest._(JSObject _) |
| implements XMLHttpRequestEventTarget, JSObject { |
| external factory XMLHttpRequest(); |
| external void open( |
| String method, |
| String url, [ |
| bool async, |
| String? username, |
| String? password, |
| ]); |
| external void setRequestHeader( |
| String name, |
| String value, |
| ); |
| external void send([JSAny? body]); |
| external int get status; |
| external set responseType(XMLHttpRequestResponseType value); |
| external XMLHttpRequestResponseType get responseType; |
| external JSAny? get response; |
| } |
| |
| extension type XMLHttpRequestEventTarget._(JSObject _) |
| implements EventTarget, JSObject {} |