123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- import { Subject } from 'rxjs';
- /**
- * Class to be used to power selecting one or more options from a list.
- */
- declare class SelectionModel<T> {
- private _multiple;
- private _emitChanges;
- compareWith?: ((o1: T, o2: T) => boolean) | undefined;
- /** Currently-selected values. */
- private _selection;
- /** Keeps track of the deselected options that haven't been emitted by the change event. */
- private _deselectedToEmit;
- /** Keeps track of the selected options that haven't been emitted by the change event. */
- private _selectedToEmit;
- /** Cache for the array value of the selected items. */
- private _selected;
- /** Selected values. */
- get selected(): T[];
- /** Event emitted when the value has changed. */
- readonly changed: Subject<SelectionChange<T>>;
- constructor(_multiple?: boolean, initiallySelectedValues?: T[], _emitChanges?: boolean, compareWith?: ((o1: T, o2: T) => boolean) | undefined);
- /**
- * Selects a value or an array of values.
- * @param values The values to select
- * @return Whether the selection changed as a result of this call
- * @breaking-change 16.0.0 make return type boolean
- */
- select(...values: T[]): boolean | void;
- /**
- * Deselects a value or an array of values.
- * @param values The values to deselect
- * @return Whether the selection changed as a result of this call
- * @breaking-change 16.0.0 make return type boolean
- */
- deselect(...values: T[]): boolean | void;
- /**
- * Sets the selected values
- * @param values The new selected values
- * @return Whether the selection changed as a result of this call
- * @breaking-change 16.0.0 make return type boolean
- */
- setSelection(...values: T[]): boolean | void;
- /**
- * Toggles a value between selected and deselected.
- * @param value The value to toggle
- * @return Whether the selection changed as a result of this call
- * @breaking-change 16.0.0 make return type boolean
- */
- toggle(value: T): boolean | void;
- /**
- * Clears all of the selected values.
- * @param flushEvent Whether to flush the changes in an event.
- * If false, the changes to the selection will be flushed along with the next event.
- * @return Whether the selection changed as a result of this call
- * @breaking-change 16.0.0 make return type boolean
- */
- clear(flushEvent?: boolean): boolean | void;
- /**
- * Determines whether a value is selected.
- */
- isSelected(value: T): boolean;
- /**
- * Determines whether the model does not have a value.
- */
- isEmpty(): boolean;
- /**
- * Determines whether the model has a value.
- */
- hasValue(): boolean;
- /**
- * Sorts the selected values based on a predicate function.
- */
- sort(predicate?: (a: T, b: T) => number): void;
- /**
- * Gets whether multiple values can be selected.
- */
- isMultipleSelection(): boolean;
- /** Emits a change event and clears the records of selected and deselected values. */
- private _emitChangeEvent;
- /** Selects a value. */
- private _markSelected;
- /** Deselects a value. */
- private _unmarkSelected;
- /** Clears out the selected values. */
- private _unmarkAll;
- /**
- * Verifies the value assignment and throws an error if the specified value array is
- * including multiple values while the selection model is not supporting multiple values.
- */
- private _verifyValueAssignment;
- /** Whether there are queued up change to be emitted. */
- private _hasQueuedChanges;
- /** Returns a value that is comparable to inputValue by applying compareWith function, returns the same inputValue otherwise. */
- private _getConcreteValue;
- }
- /**
- * Event emitted when the value of a MatSelectionModel has changed.
- * @docs-private
- */
- interface SelectionChange<T> {
- /** Model that dispatched the event. */
- source: SelectionModel<T>;
- /** Options that were added to the model. */
- added: T[];
- /** Options that were removed from the model. */
- removed: T[];
- }
- /**
- * Returns an error that reports that multiple values are passed into a selection model
- * with a single value.
- * @docs-private
- */
- declare function getMultipleValuesInSingleSelectionError(): Error;
- export { SelectionModel as S, getMultipleValuesInSingleSelectionError as g };
- export type { SelectionChange as a };
|