Index: charted/lib/selection/selection.dart |
diff --git a/charted/lib/selection/selection.dart b/charted/lib/selection/selection.dart |
deleted file mode 100644 |
index d040745c4d508ba5d11d6c07b95398023c8f174d..0000000000000000000000000000000000000000 |
--- a/charted/lib/selection/selection.dart |
+++ /dev/null |
@@ -1,390 +0,0 @@ |
-/* |
- * Copyright 2014 Google Inc. All rights reserved. |
- * |
- * Use of this source code is governed by a BSD-style |
- * license that can be found in the LICENSE file or at |
- * https://developers.google.com/open-source/licenses/bsd |
- */ |
-/* |
- * TODO(prsd): Document library |
- */ |
-library charted.selection; |
- |
-import "dart:html" show Element, Event, document; |
-import "dart:math" as math; |
-import "package:charted/core/utils.dart"; |
-import "package:charted/selection/transition.dart"; |
- |
-part "selection_scope.dart"; |
-part "src/selection_impl.dart"; |
- |
-/** |
- * Callback to access key value from a given data object. During the process |
- * of binding data to Elements, the key values are used to match Elements |
- * that have previously bound data |
- */ |
-typedef SelectionKeyFunction(datum); |
- |
-/** |
- * Callback for all DOM related operations - The first parameter [datum] is |
- * the piece of data associated with the node, [ei] is the index of the |
- * element in it's group and [c] is the context to which the data is |
- * associated to. |
- */ |
-typedef E SelectionCallback<E>(datum, int index, Element element); |
- |
-/** Callback used to access a value from a datum */ |
-typedef E SelectionValueAccessor<E>(datum, int index); |
- |
-/** Create a ChartedCallback that always returns [val] */ |
-SelectionCallback toCallback(val) => (datum, index, element) => val; |
- |
-/** Create a ChartedValueAccessor that always returns [val] */ |
-SelectionValueAccessor toValueAccessor(val) => (datum, index) => val; |
- |
-/** |
- * [Selection] is a collection of elements - this collection defines |
- * operators that can be applied on all elements of the collection. |
- * |
- * All operators accept parameters either as a constant value or a callback |
- * function (typically using the named parameters "val" and "fn"). These |
- * operators, when invoked with the callback function, the function is |
- * called once per element and is passed the "data" associated, the "index" |
- * and the element itself. |
- */ |
-abstract class Selection { |
- /** |
- * Collection of groups - A selection when created by calling [selectAll] |
- * on an existing [Selection], could contain more than one group. |
- */ |
- Iterable<SelectionGroup> groups; |
- |
- /** |
- * Scope of this selection that manages the element, data associations for |
- * all elements in this selection (and the sub-selections) |
- */ |
- SelectionScope get scope; |
- |
- /** Indicates if this selection is empty */ |
- bool get isEmpty; |
- |
- /** Number of elements in this selection */ |
- int get length; |
- |
- /** First non-null element in this selection, if any. */ |
- Element get first; |
- |
- /** |
- * Creates and returns a new [Selection] containing the first element |
- * matching [selector] under each element in the current selection. |
- * |
- * If an element does not have a matching descendant, a placeholder is used |
- * in it's position - thus being able to match the indices of elements in |
- * the current and the created sub-selection. |
- * |
- * Any data bound to elements in this selection is inherited by the |
- * selected descendants. |
- */ |
- Selection select(String selector); |
- |
- /** |
- * Same as [select], but calls [fn] for each non-null element in the |
- * selection (with data associated to the element, index of the element in |
- * it's group and the element itself) to get the selected element that will |
- * be selected. |
- */ |
- Selection selectWithCallback(SelectionCallback<Element> fn); |
- |
- /** |
- * Creates and returns a new [Selection] containing all elements matching |
- * [selector] under each element in the current selection. |
- * |
- * The resulting [Selection] is nested with elements from current selection |
- * as parents and the selected descendants grouped by elements in the |
- * current selection. When no descendants match the selector, the |
- * collection of selected elements in a group is empty. |
- * |
- * Data bound to the elements is not automatically inherited by the |
- * selected descendants. |
- */ |
- Selection selectAll(String selector); |
- |
- /** |
- * Same as [selectAll], but calls [fn] for each non-null element in the |
- * selection (with data associated to the element, index of the element in |
- * it's group and the element itself) to get a collection of selected |
- * elements that will be part of the new selection. |
- */ |
- Selection selectAllWithCallback(SelectionCallback<Iterable<Element>> fn); |
- |
- /** |
- * Sets the attribute [name] on all elements when [val] is not null. |
- * Removes the attribute when [val] is null. |
- */ |
- void attr(String name, val); |
- |
- /** |
- * Same as [attr], but calls [fn] for each non-null element in the |
- * selection (with data associated to the element, index of the element in |
- * it's group and the element itself) to get the value of the attribute. |
- */ |
- void attrWithCallback(String name, SelectionCallback fn); |
- |
- /** |
- * Ensures presence of a class when [val] is true. Ensures that the class |
- * isn't present if [val] is false. |
- */ |
- void classed(String name, [bool val = true]); |
- |
- /** |
- * Same as [classed], but calls [fn] for each non-null element in the |
- * selection (with data associated to the element, index of the element in |
- * it's group and the element itself) to get the boolean value that |
- * indicates if the class must be added or removed. |
- */ |
- void classedWithCallback(String name, SelectionCallback<bool> fn); |
- |
- /** Sets CSS [property] to [val] on all elements in the selection. */ |
- void style(String property, val, {String priority}); |
- |
- /** |
- * Same as [style], but calls [fn] for each non-null element in the |
- * selection (with data associated to the element, index of the element in |
- * it's group and the element itself) to get the value of the property. |
- */ |
- void styleWithCallback(String property, |
- SelectionCallback<String> fn, {String priority}); |
- |
- /** |
- * Sets textContent of all elements in the selection to [val]. A side-effect |
- * of this call is that any children of these elements will not be part of |
- * the DOM anymore. |
- */ |
- void text(String val); |
- |
- /** |
- * Same as [text], but calls [fn] for each non-null element in |
- * the selection (with data associated to the element, index of the |
- * element in it's group and the element itself) to get the text content |
- */ |
- void textWithCallback(SelectionCallback<String> fn); |
- |
- /** |
- * Sets innerHtml of all elements in the selection to [val]. A side-effect |
- * of this call is that any children of these elements will not be part of |
- * the DOM anymore. |
- */ |
- void html(String val); |
- |
- /** |
- * Same as [html], but calls [fn] for each non-null element in |
- * the selection (with data associated to the element, index of the |
- * element in it's group and the element itself) to get the html content |
- */ |
- void htmlWithCallback(SelectionCallback<String> fn); |
- |
- /** |
- * Appends a new child element to each element in the selection. |
- * |
- * Returns a [Selection] containing the newly created elements. As with |
- * [select], any data bound to the elements in this selection is inherited |
- * by the new elements. |
- */ |
- Selection append(String tag); |
- |
- /** |
- * Same as [append], but calls [fn] for each non-null element in the |
- * selection (with data associated to the element, index of the element in |
- * it's group and the element itself) to get the element to be appended. |
- */ |
- Selection appendWithCallback(SelectionCallback<Element> fn); |
- |
- /** |
- * Inserts a child node to each element in the selection before the first |
- * element matching [before] or before the element returned by [beforeFn]. |
- * |
- * Returns a [Selection] containing the newly created elements. As with |
- * [select], any data bound to the elements in this selection is inherited |
- * by the new elements. |
- */ |
- Selection insert(String tag, |
- {String before, SelectionCallback<Element> beforeFn}); |
- |
- /** |
- * Same as [insert], but calls [fn] for each non-null element in the |
- * selection (with data associated to the element, index of the element in |
- * it's group and the element itself) to get the element to be inserted. |
- */ |
- Selection insertWithCallback(SelectionCallback<Element> fn, |
- {String before, SelectionCallback<Element> beforeFn}); |
- |
- /** Removes all selected elements from the DOM */ |
- void remove(); |
- |
- /** Calls [fn] on each element in this selection */ |
- void each(SelectionCallback fn); |
- |
- /** |
- * Adds or removes an event [listener] to each element in the selection for |
- * the specified [type] (Eg: "mouseclick", "mousedown") |
- * |
- * Any existing listener of the same type will be removed. To register |
- * multiple listener for the same event type, the [type] can be suffixed |
- * with a namespace. (Eg: "mouseclick.foo", "mousedown.bar") |
- * |
- * When [listener] is null, any existing listener of the same type and in |
- * the same namespace will be removed (Eg: Using "mouseclick.foo" as type |
- * will only remove listeners for "mouseclick.foo" and not "mouseclick.bar") |
- * |
- * To remove listeners of an event type in all namespaces, prefix the type |
- * with a "." (Eg: ".mouseclick" will remove "mouseclick.bar", |
- * "mouseclick .foo" and all other mouseclick event listeners) |
- * |
- * To summarize, [type] can be any DOM event type optionally in the format |
- * "event.namespace" where event is the DOM event type and namespace is |
- * used to distinguish between added listeners. |
- * |
- * When [listener] is called, it is passed the current value associated with |
- * the element. Please note that index passed to the listener contains a |
- * value as it was at the time of adding the listener. |
- */ |
- void on(String type, [SelectionCallback listener, bool capture]); |
- |
- /** |
- * Associates data with the selected elements. |
- * Computes the enter, update and exit selections. |
- */ |
- DataSelection data(Iterable vals, [SelectionKeyFunction keyFn]); |
- |
- /** |
- * Same as [data], but calls [fn] for each non-null element in the |
- * selection (with data associated to the element, index of the element in |
- * it's group and the element itself) to get the data to be set on the |
- * current element. |
- */ |
- DataSelection dataWithCallback( |
- SelectionCallback<Iterable> fn, [SelectionKeyFunction keyFn]); |
- |
- /** |
- * Associates data with all the elements - no join is performed. Unlike |
- * [data], this does not compute the enter, update and exit selections. |
- */ |
- void datum(Iterable vals); |
- |
- /** |
- * Same as [datum], but calls [fn] for each non-null element in the |
- * selection (with data associated to the element, index of the element in |
- * it's group and the element itself) to get the data to be set on the |
- * current element. |
- */ |
- void datumWithCallback(SelectionCallback<Iterable> fn); |
- |
- /** |
- * Starts a transition for the current selection. Transitions behave much |
- * like selections, except operators animate smoothly over time rather than |
- * applying instantaneously. |
- */ |
- Transition transition(); |
-} |
- |
- |
-/* |
- * Group of elements in the selection. |
- * Each selection may contain more than one group of elements. |
- */ |
-abstract class SelectionGroup { |
- Iterable<Element> elements; |
- Element parent; |
-} |
- |
- |
-/** |
- * [EnterSelection] is a sub-selection that represents missing elements of a |
- * selection - an element is considered missing when there is data and no |
- * corresponding element in a selection. |
- */ |
-abstract class EnterSelection { |
- /** |
- * Indicate if this selection is empty |
- * See [Selection.isEmpty] for more information. |
- */ |
- bool get isEmpty; |
- |
- /** [DataSelection] that corresponds to this selection. */ |
- DataSelection get update; |
- |
- /** |
- * Appends an element to all elements in this selection and return |
- * [Selection] containing the newly added elements. |
- * |
- * See [Selection.append] for more information. |
- * The new nodes are merged into the [DataSelection] |
- */ |
- Selection append(String tag); |
- |
- /** |
- * Same as [append] but calls [fn] to get the element to be appended. |
- * See [Selection.appendWithCallback] for more information. |
- */ |
- Selection appendWithCallback(SelectionCallback<Element> fn); |
- |
- /** |
- * Insert a child node to each element in the selection and return |
- * [Selection] containing the newly added elements. |
- * |
- * See [Selection.insert] for more information. |
- * The new nodes are merged into the [UpdateSelection] |
- */ |
- Selection insert(String tag, |
- {String before, SelectionCallback<Element> beforeFn}); |
- |
- /** |
- * Same as [insert] but calls [fn] to get the element to be inserted. |
- * See [Selection.insertWithCallback] for more information. |
- */ |
- Selection insertWithCallback(SelectionCallback<Element> fn, |
- {String before, SelectionCallback<Element> beforeFn}); |
- |
- /** |
- * For each element in the current selection, select exactly one |
- * descendant and return [Selection] containing the selected elements. |
- * |
- * See [Selection.select] for more information. |
- */ |
- Selection select(String selector); |
- |
- /** |
- * Same as [select] but calls [fn] to get the element to be inserted. |
- * See [Selection.selectWithCallback] for more information. |
- */ |
- Selection selectWithCallback(SelectionCallback<Element> fn); |
-} |
- |
-/* |
- * [ExitSelection] is a sub-selection that represents elements that don't |
- * have data associated to them. |
- */ |
-abstract class ExitSelection extends Selection { |
- DataSelection get update; |
-} |
- |
-/* |
- * Selection that consists elements in the selection that aren't part of |
- * [EnterSelection] or the [ExitSelection] |
- * |
- * An [UpdateSelection] is only available after data() is attached and is |
- * currently exactly the same as [Selection] itself. |
- */ |
-abstract class DataSelection extends Selection { |
- /** |
- * A view of the current selection that contains a collection of data |
- * elements which weren't associated with an element in the DOM. |
- */ |
- EnterSelection get enter; |
- |
- /** |
- * A view of the current selection containing elements that don't have data |
- * associated with them. |
- */ |
- ExitSelection get exit; |
-} |