diff options
Diffstat (limited to 'chromium/third_party/catapult/third_party/polymer2/bower_components/polymer/types/lib/elements/array-selector.d.ts')
-rw-r--r-- | chromium/third_party/catapult/third_party/polymer2/bower_components/polymer/types/lib/elements/array-selector.d.ts | 200 |
1 files changed, 200 insertions, 0 deletions
diff --git a/chromium/third_party/catapult/third_party/polymer2/bower_components/polymer/types/lib/elements/array-selector.d.ts b/chromium/third_party/catapult/third_party/polymer2/bower_components/polymer/types/lib/elements/array-selector.d.ts new file mode 100644 index 00000000000..1d99ee52e4e --- /dev/null +++ b/chromium/third_party/catapult/third_party/polymer2/bower_components/polymer/types/lib/elements/array-selector.d.ts @@ -0,0 +1,200 @@ +/** + * DO NOT EDIT + * + * This file was automatically generated by + * https://github.com/Polymer/gen-typescript-declarations + * + * To modify these typings, edit the source file(s): + * lib/elements/array-selector.html + */ + +/// <reference path="../../polymer-element.d.ts" /> +/// <reference path="../utils/mixin.d.ts" /> +/// <reference path="../utils/array-splice.d.ts" /> + +declare namespace Polymer { + + + /** + * Element mixin for recording dynamic associations between item paths in a + * master `items` array and a `selected` array such that path changes to the + * master array (at the host) element or elsewhere via data-binding) are + * correctly propagated to items in the selected array and vice-versa. + * + * The `items` property accepts an array of user data, and via the + * `select(item)` and `deselect(item)` API, updates the `selected` property + * which may be bound to other parts of the application, and any changes to + * sub-fields of `selected` item(s) will be kept in sync with items in the + * `items` array. When `multi` is false, `selected` is a property + * representing the last selected item. When `multi` is true, `selected` + * is an array of multiply selected items. + */ + function ArraySelectorMixin<T extends new (...args: any[]) => {}>(base: T): T & ArraySelectorMixinConstructor & Polymer.ElementMixinConstructor & Polymer.PropertyEffectsConstructor & Polymer.TemplateStampConstructor & Polymer.PropertyAccessorsConstructor & Polymer.PropertiesChangedConstructor & Polymer.PropertiesMixinConstructor; + + interface ArraySelectorMixinConstructor { + new(...args: any[]): ArraySelectorMixin; + } + + interface ArraySelectorMixin { + + /** + * An array containing items from which selection will be made. + */ + items: any[]|null|undefined; + + /** + * When `true`, multiple items may be selected at once (in this case, + * `selected` is an array of currently selected items). When `false`, + * only one item may be selected at a time. + */ + multi: boolean|null|undefined; + + /** + * When `multi` is true, this is an array that contains any selected. + * When `multi` is false, this is the currently selected item, or `null` + * if no item is selected. + */ + selected: object|object[]|null; + + /** + * When `multi` is false, this is the currently selected item, or `null` + * if no item is selected. + */ + selectedItem: object|null; + + /** + * When `true`, calling `select` on an item that is already selected + * will deselect the item. + */ + toggle: boolean|null|undefined; + + /** + * Clears the selection state. + */ + clearSelection(): void; + + /** + * Returns whether the item is currently selected. + * + * @param item Item from `items` array to test + * @returns Whether the item is selected + */ + isSelected(item: any): boolean; + + /** + * Returns whether the item is currently selected. + * + * @param idx Index from `items` array to test + * @returns Whether the item is selected + */ + isIndexSelected(idx: number): boolean; + + /** + * Deselects the given item if it is already selected. + * + * @param item Item from `items` array to deselect + */ + deselect(item: any): void; + + /** + * Deselects the given index if it is already selected. + * + * @param idx Index from `items` array to deselect + */ + deselectIndex(idx: number): void; + + /** + * Selects the given item. When `toggle` is true, this will automatically + * deselect the item if already selected. + * + * @param item Item from `items` array to select + */ + select(item: any): void; + + /** + * Selects the given index. When `toggle` is true, this will automatically + * deselect the item if already selected. + * + * @param idx Index from `items` array to select + */ + selectIndex(idx: number): void; + } + + /** + * Element implementing the `Polymer.ArraySelector` mixin, which records + * dynamic associations between item paths in a master `items` array and a + * `selected` array such that path changes to the master array (at the host) + * element or elsewhere via data-binding) are correctly propagated to items + * in the selected array and vice-versa. + * + * The `items` property accepts an array of user data, and via the + * `select(item)` and `deselect(item)` API, updates the `selected` property + * which may be bound to other parts of the application, and any changes to + * sub-fields of `selected` item(s) will be kept in sync with items in the + * `items` array. When `multi` is false, `selected` is a property + * representing the last selected item. When `multi` is true, `selected` + * is an array of multiply selected items. + * + * Example: + * + * ```html + * <dom-module id="employee-list"> + * + * <template> + * + * <div> Employee list: </div> + * <dom-repeat id="employeeList" items="{{employees}}"> + * <template> + * <div>First name: <span>{{item.first}}</span></div> + * <div>Last name: <span>{{item.last}}</span></div> + * <button on-click="toggleSelection">Select</button> + * </template> + * </dom-repeat> + * + * <array-selector id="selector" items="{{employees}}" selected="{{selected}}" multi toggle></array-selector> + * + * <div> Selected employees: </div> + * <dom-repeat items="{{selected}}"> + * <template> + * <div>First name: <span>{{item.first}}</span></div> + * <div>Last name: <span>{{item.last}}</span></div> + * </template> + * </dom-repeat> + * + * </template> + * + * </dom-module> + * ``` + * + * ```js + * class EmployeeList extends Polymer.Element { + * static get is() { return 'employee-list'; } + * static get properties() { + * return { + * employees: { + * value() { + * return [ + * {first: 'Bob', last: 'Smith'}, + * {first: 'Sally', last: 'Johnson'}, + * ... + * ]; + * } + * } + * }; + * } + * toggleSelection(e) { + * let item = this.$.employeeList.itemForElement(e.target); + * this.$.selector.select(item); + * } + * } + * ``` + */ + class ArraySelector extends + Polymer.ArraySelectorMixin( + Polymer.Element) { + } +} + +interface HTMLElementTagNameMap { + "array-selector": Polymer.ArraySelector; +} |