UNPKG

devextreme-angular

Version:

Angular UI and visualization components based on DevExtreme widgets

103 lines 13.4 kB
/*! * devextreme-angular * Version: 20.2.5 * Build date: Fri Jan 15 2021 * * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED * * This software may be modified and distributed under the terms * of the MIT license. See the LICENSE file in the root of the project for details. * * https://github.com/DevExpress/devextreme-angular */ import { EventEmitter } from '@angular/core'; var NgEventsStrategy = /** @class */ (function () { function NgEventsStrategy(instance, zone) { this.instance = instance; this.zone = zone; this.subscriptions = {}; this.events = {}; } NgEventsStrategy.prototype.hasEvent = function (name) { return this.getEmitter(name).observers.length !== 0; }; NgEventsStrategy.prototype.fireEvent = function (name, args) { var emitter = this.getEmitter(name); if (emitter.observers.length) { var internalSubs = this.subscriptions[name] || []; if (internalSubs.length === emitter.observers.length) emitter.next(args && args[0]); else this.zone.run(function () { return emitter.next(args && args[0]); }); } }; NgEventsStrategy.prototype.on = function (name, handler) { var _this = this; if (typeof name === 'string') { var eventSubscriptions = this.subscriptions[name] || [], subcription = this.getEmitter(name).subscribe(handler.bind(this.instance)), unsubscribe = subcription.unsubscribe.bind(subcription); eventSubscriptions.push({ handler: handler, unsubscribe: unsubscribe }); this.subscriptions[name] = eventSubscriptions; } else { var handlersObj_1 = name; Object.keys(handlersObj_1).forEach(function (event) { return _this.on(event, handlersObj_1[event]); }); } }; NgEventsStrategy.prototype.off = function (name, handler) { var eventSubscriptions = this.subscriptions[name] || []; if (handler) { eventSubscriptions.some(function (subscription, i) { if (subscription.handler === handler) { subscription.unsubscribe(); eventSubscriptions.splice(i, 1); return true; } }); } else { eventSubscriptions.forEach(function (subscription) { subscription.unsubscribe(); }); eventSubscriptions.splice(0, eventSubscriptions.length); } }; NgEventsStrategy.prototype.dispose = function () { }; NgEventsStrategy.prototype.addEmitter = function (eventName, emitter) { this.events[eventName] = emitter; }; NgEventsStrategy.prototype.getEmitter = function (eventName) { if (!this.events[eventName]) { this.events[eventName] = new EventEmitter(); } return this.events[eventName]; }; return NgEventsStrategy; }()); export { NgEventsStrategy }; var EmitterHelper = /** @class */ (function () { function EmitterHelper(zone, component) { this.zone = zone; this.component = component; this.lockedValueChangeEvent = false; } EmitterHelper.prototype.fireNgEvent = function (eventName, eventArgs) { if (this.lockedValueChangeEvent && eventName === 'valueChange') { return; } var emitter = this.component[eventName]; if (emitter && emitter.observers.length) { this.zone.run(function () { emitter.next(eventArgs && eventArgs[0]); }); } }; EmitterHelper.prototype.createEmitters = function (events) { var _this = this; events.forEach(function (event) { _this.component[event.emit] = new EventEmitter(); }); }; return EmitterHelper; }()); export { EmitterHelper }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vZGV2ZXh0cmVtZS1hbmd1bGFyL2NvcmUvIiwic291cmNlcyI6WyJldmVudHMtc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBT3JEO0lBSUksMEJBQW9CLFFBQWEsRUFBVSxJQUFZO1FBQW5DLGFBQVEsR0FBUixRQUFRLENBQUs7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBSC9DLGtCQUFhLEdBQTRDLEVBQUUsQ0FBQztRQUM1RCxXQUFNLEdBQXlDLEVBQUUsQ0FBQztJQUVDLENBQUM7SUFFNUQsbUNBQVEsR0FBUixVQUFTLElBQVk7UUFDakIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxvQ0FBUyxHQUFULFVBQVUsSUFBSSxFQUFFLElBQUk7UUFDaEIsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQzFCLElBQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BELElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU07Z0JBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOztnQkFFOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBTSxPQUFBLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUE3QixDQUE2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LElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEMsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFRCxzQ0FBYyxHQUFkLFVBQWUsTUFBYTtRQUE1QixpQkFJQztRQUhHLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBQSxLQUFLO1lBQ2hCLEtBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0wsb0JBQUM7QUFBRCxDQUFDLEFBdEJELElBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBkZXZleHRyZW1lLWFuZ3VsYXJcbiAqIFZlcnNpb246IDIwLjIuNVxuICogQnVpbGQgZGF0ZTogRnJpIEphbiAxNSAyMDIxXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDEyIC0gMjAyMSBEZXZlbG9wZXIgRXhwcmVzcyBJbmMuIEFMTCBSSUdIVFMgUkVTRVJWRURcbiAqXG4gKiBUaGlzIHNvZnR3YXJlIG1heSBiZSBtb2RpZmllZCBhbmQgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zXG4gKiBvZiB0aGUgTUlUIGxpY2Vuc2UuIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBwcm9qZWN0IGZvciBkZXRhaWxzLlxuICpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9EZXZFeHByZXNzL2RldmV4dHJlbWUtYW5ndWxhclxuICovXG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IER4Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnQnO1xyXG5cclxuaW50ZXJmYWNlIElFdmVudFN1YnNjcmlwdGlvbiB7XHJcbiAgICBoYW5kbGVyOiBhbnk7XHJcbiAgICB1bnN1YnNjcmliZTogKCkgPT4gdm9pZDtcclxufVxyXG5leHBvcnQgY2xhc3MgTmdFdmVudHNTdHJhdGVneSB7XHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IHsgW2tleTogc3RyaW5nXTogSUV2ZW50U3Vic2NyaXB0aW9uW10gfSA9IHt9O1xyXG4gICAgcHJpdmF0ZSBldmVudHM6IHsgW2tleTogc3RyaW5nXTogRXZlbnRFbWl0dGVyPGFueT4gfSA9IHt9O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5zdGFuY2U6IGFueSwgcHJpdmF0ZSB6b25lOiBOZ1pvbmUpIHsgfVxyXG5cclxuICAgIGhhc0V2ZW50KG5hbWU6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEVtaXR0ZXIobmFtZSkub2JzZXJ2ZXJzLmxlbmd0aCAhPT0gMDtcclxuICAgIH1cclxuXHJcbiAgICBmaXJlRXZlbnQobmFtZSwgYXJncykge1xyXG4gICAgICAgIGxldCBlbWl0dGVyID0gdGhpcy5nZXRFbWl0dGVyKG5hbWUpO1xyXG4gICAgICAgIGlmIChlbWl0dGVyLm9ic2VydmVycy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgY29uc3QgaW50ZXJuYWxTdWJzID0gdGhpcy5zdWJzY3JpcHRpb25zW25hbWVdIHx8IFtdO1xyXG4gICAgICAgICAgICBpZiAoaW50ZXJuYWxTdWJzLmxlbmd0aCA9PT0gZW1pdHRlci5vYnNlcnZlcnMubGVuZ3RoKVxyXG4gICAgICAgICAgICAgICAgZW1pdHRlci5uZXh0KGFyZ3MgJiYgYXJnc1swXSk7XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4gZW1pdHRlci5uZXh0KGFyZ3MgJiYgYXJnc1swXSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbihuYW1lOiBzdHJpbmcgfCBPYmplY3QsIGhhbmRsZXI/OiBGdW5jdGlvbikge1xyXG4gICAgICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgbGV0IGV2ZW50U3Vic2NyaXB0aW9ucyA9IHRoaXMuc3Vic2NyaXB0aW9uc1tuYW1lXSB8fCBbXSxcclxuICAgICAgICAgICAgICAgIHN1YmNyaXB0aW9uID0gdGhpcy5nZXRFbWl0dGVyKG5hbWUpLnN1YnNjcmliZShoYW5kbGVyLmJpbmQodGhpcy5pbnN0YW5jZSkpLFxyXG4gICAgICAgICAgICAgICAgdW5zdWJzY3JpYmUgPSBzdWJjcmlwdGlvbi51bnN1YnNjcmliZS5iaW5kKHN1YmNyaXB0aW9uKTtcclxuXHJcbiAgICAgICAgICAgIGV2ZW50U3Vic2NyaXB0aW9ucy5wdXNoKHsgaGFuZGxlciwgdW5zdWJzY3JpYmUgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uc1tuYW1lXSA9IGV2ZW50U3Vic2NyaXB0aW9ucztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgaGFuZGxlcnNPYmogPSBuYW1lO1xyXG5cclxuICAgICAgICAgICAgT2JqZWN0LmtleXMoaGFuZGxlcnNPYmopLmZvckVhY2goZXZlbnQgPT4gdGhpcy5vbihldmVudCwgaGFuZGxlcnNPYmpbZXZlbnRdKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9mZihuYW1lLCBoYW5kbGVyKSB7XHJcbiAgICAgICAgbGV0IGV2ZW50U3Vic2NyaXB0aW9ucyA9IHRoaXMuc3Vic2NyaXB0aW9uc1tuYW1lXSB8fCBbXTtcclxuXHJcbiAgICAgICAgaWYgKGhhbmRsZXIpIHtcclxuICAgICAgICAgICAgZXZlbnRTdWJzY3JpcHRpb25zLnNvbWUoKHN1YnNjcmlwdGlvbiwgaSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHN1YnNjcmlwdGlvbi5oYW5kbGVyID09PSBoYW5kbGVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRTdWJzY3JpcHRpb25zLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZXZlbnRTdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHtcclxuICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgZXZlbnRTdWJzY3JpcHRpb25zLnNwbGljZSgwLCBldmVudFN1YnNjcmlwdGlvbnMubGVuZ3RoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZGlzcG9zZSgpIHt9XHJcblxyXG4gICAgcHVibGljIGFkZEVtaXR0ZXIoZXZlbnROYW1lOiBzdHJpbmcsIGVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxhbnk+KSB7XHJcbiAgICAgICAgdGhpcy5ldmVudHNbZXZlbnROYW1lXSA9IGVtaXR0ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRFbWl0dGVyKGV2ZW50TmFtZTogc3RyaW5nKTogRXZlbnRFbWl0dGVyPGFueT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5ldmVudHNbZXZlbnROYW1lXSkge1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50c1tldmVudE5hbWVdID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5ldmVudHNbZXZlbnROYW1lXTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVtaXR0ZXJIZWxwZXIge1xyXG4gICAgbG9ja2VkVmFsdWVDaGFuZ2VFdmVudCA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgem9uZTogTmdab25lLCBwcml2YXRlIGNvbXBvbmVudDogRHhDb21wb25lbnQpIHsgfVxyXG5cclxuICAgIGZpcmVOZ0V2ZW50KGV2ZW50TmFtZTogc3RyaW5nLCBldmVudEFyZ3M6IGFueSkge1xyXG4gICAgICAgIGlmICh0aGlzLmxvY2tlZFZhbHVlQ2hhbmdlRXZlbnQgJiYgZXZlbnROYW1lID09PSAndmFsdWVDaGFuZ2UnKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGVtaXR0ZXIgPSB0aGlzLmNvbXBvbmVudFtldmVudE5hbWVdO1xyXG4gICAgICAgIGlmIChlbWl0dGVyICYmIGVtaXR0ZXIub2JzZXJ2ZXJzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGVtaXR0ZXIubmV4dChldmVudEFyZ3MgJiYgZXZlbnRBcmdzWzBdKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZUVtaXR0ZXJzKGV2ZW50czogYW55W10pIHtcclxuICAgICAgICBldmVudHMuZm9yRWFjaChldmVudCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50W2V2ZW50LmVtaXRdID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG4iXX0=