| // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| part of dart.dom.html; |
| |
| void Function(T)? _wrapZone<T>(void Function(T)? callback) { |
| // For performance reasons avoid wrapping if we are in the root zone. |
| if (Zone.current == Zone.root) return callback; |
| if (callback == null) return null; |
| return Zone.current.bindUnaryCallbackGuarded(callback); |
| } |
| |
| void Function(T1, T2)? _wrapBinaryZone<T1, T2>( |
| void Function(T1, T2)? callback) { |
| // For performance reasons avoid wrapping if we are in the root zone. |
| if (Zone.current == Zone.root) return callback; |
| if (callback == null) return null; |
| return Zone.current.bindBinaryCallbackGuarded(callback); |
| } |
| |
| /** |
| * Finds the first descendant element of this document that matches the |
| * specified group of selectors. |
| * |
| * Unless your webpage contains multiple documents, the top-level |
| * [querySelector] |
| * method behaves the same as this method, so you should use it instead to |
| * save typing a few characters. |
| * |
| * [selectors] should be a string using CSS selector syntax. |
| * |
| * var element1 = document.querySelector('.className'); |
| * var element2 = document.querySelector('#id'); |
| * |
| * For details about CSS selector syntax, see the |
| * [CSS selector specification](http://www.w3.org/TR/css3-selectors/). |
| */ |
| Element? querySelector(String selectors) => document.querySelector(selectors); |
| |
| /** |
| * Finds all descendant elements of this document that match the specified |
| * group of selectors. |
| * |
| * Unless your webpage contains multiple documents, the top-level |
| * [querySelectorAll] |
| * method behaves the same as this method, so you should use it instead to |
| * save typing a few characters. |
| * |
| * [selectors] should be a string using CSS selector syntax. |
| * |
| * var items = document.querySelectorAll('.itemClassName'); |
| * |
| * For details about CSS selector syntax, see the |
| * [CSS selector specification](http://www.w3.org/TR/css3-selectors/). |
| */ |
| ElementList<T> querySelectorAll<T extends Element>(String selectors) => |
| document.querySelectorAll(selectors); |
| |
| /// A utility for changing the Dart wrapper type for elements. |
| abstract class ElementUpgrader { |
| /// Upgrade the specified element to be of the Dart type this was created for. |
| /// |
| /// After upgrading the element passed in is invalid and the returned value |
| /// should be used instead. |
| Element upgrade(Element element); |
| } |