web_utils 1.0.4 web_utils: ^1.0.4 copied to clipboard
A collection of useful Dart extensions for web development, enhancing JavaScript interop and simplifying common operations with the `web` package.
web_utils #
This Dart package provides a set of extensions that enhance the capabilities of
various web API types, such as Node
, Element
, Document
, and others, making it
easier to work with HTML elements, styles, and other web-related objects in your Dart projects.
js_interop_utils #
This package exports and utilizes the js_interop_utils package for
enhanced JavaScript interoperation in Dart. The js_interop_utils
package provides utilities for working with
JavaScript objects and types, helping to bridge Dart and JavaScript in a seamless manner.
Usage #
import 'package:dom_extensions/dom_extensions.dart';
void main() {
// Selecting elements
final div = document.select<Element>('.my-div');
final allDivs = document.selectAll<Element>('.my-div');
// Manipulating elements
div?.text = 'Hello, world!';
// Working with NodeList
final nodes = document.querySelectorAll('.node');
final elements = nodes.toElements();
}
Features #
The package includes the following extensions:
IterableNodeExtension #
whereElement()
: Filters theIterable<Node>
and returns onlyElement
nodes.toElements()
: Converts theIterable<Node>
to aList<Element>
.whereHTMLElement()
: Filters theIterable<Node>
and returns onlyHTMLElement
nodes.toHTMLElements()
: Converts theIterable<Node>
to aList<HTMLElement>
.
DocumentExtension #
select<T extends Element>(String selectors)
: Selects the first element matching the given selector and casts it to typeT
.selectAll<T extends Element>(String selectors)
: Selects all elements matching the selector and casts them to typeT
.
ElementExtension #
text
: Gets or sets the text content of an element.asHTMLElement
: Casts an element toHTMLElement
if applicable.insertChild(int index, Element node)
: Inserts an element at a specified index.insertNode(int index, Node node)
: Inserts a node at a specified index.appendAll(Iterable<JSAny> nodes)
: Appends multiple nodes to the element.appendNodes(Iterable<Node> nodes)
: Appends multiple nodes to the element.
HTMLOptionsCollectionExtension #
toIterable()
: Converts the collection to anIterable<HTMLOptionElement>
.toList()
: Converts the collection to aList<HTMLOptionElement>
.isEmpty
: Checks if the collection is empty.isNotEmpty
: Checks if the collection is not empty.
TouchListExtension #
toIterable()
: Converts theTouchList
to anIterable<Touch>
.toList()
: Converts theTouchList
to aList<Touch>
.isEmpty
: Checks if the list is empty.isNotEmpty
: Checks if the list is not empty.
FileListExtension #
toIterable()
: Converts theFileList
to anIterable<File>
.toList()
: Converts theFileList
to aList<File>
.isEmpty
: Checks if the list is empty.isNotEmpty
: Checks if the list is not empty.
CSSStyleDeclarationExtension #
isEmpty
: Checks if the style declaration is empty.isNotEmpty
: Checks if the style declaration is not empty.
CSSRuleListExtension #
toIterable()
: Converts theCSSRuleList
to anIterable<CSSRule>
.toList()
: Converts theCSSRuleList
to aList<CSSRule>
.isEmpty
: Checks if the rule list is empty.isNotEmpty
: Checks if the rule list is not empty.
CanvasRenderingContext2DExtension #
setFillColorRgb(int r, int g, int b, [num a = 1])
: Sets the fill color for the context using RGB values.setStrokeColorRgb(int r, int g, int b, [num a = 1])
: Sets the stroke color for the context using RGB values.
DOMTokenListExtension #
toIterable()
: Converts theDOMTokenList
to anIterable<String>
.toList()
: Converts theDOMTokenList
to aList<String>
.isEmpty
: Checks if the token list is empty.isNotEmpty
: Checks if the token list is not empty.addAndDetectChange(String clazz)
: Adds a class and detects whether it caused a change.removeAndDetectChange(String clazz)
: Removes a class and detects whether it caused a change.addAll(Iterable<String> classes)
: Adds multiple classes.removeAll(Iterable<String> classes)
: Removes multiple classes.
NamedNodeMapExtension #
toIterable()
: Converts theNamedNodeMap
to anIterable<Attr>
.toList()
: Converts theNamedNodeMap
to aList<Attr>
.whereType<T>()
: Filters the map for attributes of a specific type.isEmpty
: Checks if the map is empty.isNotEmpty
: Checks if the map is not empty.
HTMLCollectionExtension #
toIterable()
: Converts theHTMLCollection
to anIterable<Element>
.toList()
: Converts theHTMLCollection
to aList<Element>
.whereType<T>()
: Filters the collection for elements of a specific type.isEmpty
: Checks if the collection is empty.isNotEmpty
: Checks if the collection is not empty.indexOf(Element element)
: Finds the index of a specific element in the collection.
NodeListExtension #
toIterable()
: Converts theNodeList
to anIterable<Node>
.toList()
: Converts theNodeList
to aList<Node>
.whereType<T extends Node>()
: Filters the list for nodes of a specific type.whereElement()
: Filters the list forElement
nodes.toElements()
: Converts the list to aList<Element>
.whereHTMLElement()
: Filters the list forHTMLElement
nodes.toHTMLElements()
: Converts the list to aList<HTMLElement>
.isEmpty
: Checks if the node list is empty.isNotEmpty
: Checks if the node list is not empty.indexOf(Node node)
: Finds the index of a specific node in the list.
StorageExtension #
isEmpty
: Checks if the storage is empty.isNotEmpty
: Checks if the storage is not empty.keys
: Retrieves the keys of the storage.remove(String key)
: Removes an item from the storage.
IDBFactoryExtension #
- **
openDatabase(String name, {int? version, void Function(Event event)? onUpgradeNeeded, void Function(Event event)? onBlocked})
**: Opens a database with the given name and version, with optional upgrade and blocked handlers.
IDBRequestExtension #
process<T extends JSAny, R>(({bool next, R? result}) Function(T? result) processor)
: Processes anIDBRequest
result with a custom processor function.
TextMetricsExtension #
tryActualBoundingBoxAscent
: Tries to get the actual bounding box ascent.tryActualBoundingBoxDescent
: Tries to get the actual bounding box descent.tryFontBoundingBoxAscent
: Tries to get the font bounding box ascent.tryFontBoundingBoxDescent
: Tries to get the font bounding box descent.tryEmHeightAscent
: Tries to get the em height ascent.
Features and bugs #
Please file feature requests and bugs at the issue tracker.
Author #
Graciliano M. Passos: gmpassos@GitHub.
Sponsor #
Don't be shy, show some love, and become our GitHub Sponsor. Your support means the world to us, and it keeps the code caffeinated! ☕✨
Thanks a million! 🚀😄