UNPKG

@angular2-material/core

Version:
43 lines (41 loc) 2.13 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; import { Injectable } from '@angular/core'; /** * Class to coordinate unique selection based on name. * Intended to be consumed as an Angular service. * This service is needed because native radio change events are only fired on the item currently * being selected, and we still need to uncheck the previous selection. * * This service does not *store* any IDs and names because they may change at any time, so it is * less error-prone if they are simply passed through when the events occur. */ export var MdUniqueSelectionDispatcher = (function () { function MdUniqueSelectionDispatcher() { this._listeners = []; } /** Notify other items that selection for the given name has been set. */ MdUniqueSelectionDispatcher.prototype.notify = function (id, name) { for (var _i = 0, _a = this._listeners; _i < _a.length; _i++) { var listener = _a[_i]; listener(id, name); } }; /** Listen for future changes to item selection. */ MdUniqueSelectionDispatcher.prototype.listen = function (listener) { this._listeners.push(listener); }; MdUniqueSelectionDispatcher = __decorate([ Injectable(), __metadata('design:paramtypes', []) ], MdUniqueSelectionDispatcher); return MdUniqueSelectionDispatcher; }()); //# sourceMappingURL=unique-selection-dispatcher.js.map