UNPKG

ngx-diagrams

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.2.0.

156 lines 10.7 kB
/** * @fileoverview added by tsickle * Generated from: lib/base.entity.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { log as _log, withLog as _withLog, UID, LOG_LEVEL } from './utils/tool-kit.util'; import { BehaviorSubject, Subject } from 'rxjs'; import { map, mapTo, takeUntil, filter } from 'rxjs/operators'; import { BaseEvent, LockEvent } from './interfaces/event.interface'; export class BaseEntity { /** * @param {?=} id * @param {?=} logPrefix */ constructor(id, logPrefix = '') { this._destroyed = new Subject(); this._destroyed$ = this._destroyed.asObservable(); this._locked = new BehaviorSubject(false); this._locked$ = this._locked.asObservable(); this._id = id || UID(); this._logPrefix = `${logPrefix}`; } /** * @return {?} */ get id() { return this._id; } /** * @param {?} id * @return {?} */ set id(id) { this._id = id; } /** * @param {?} message * @param {...?} args * @return {?} */ log(message, ...args) { _log(`${this._logPrefix} ${message}: `, LOG_LEVEL.LOG, ...args); } /** * @param {?} message * @param {...?} args * @return {?} */ withLog(message, ...args) { return _withLog(`${this._logPrefix} ${message}: `, LOG_LEVEL.LOG, ...args); } /** * @return {?} */ getLocked() { return this._locked.getValue(); } /** * @param {?=} locked * @return {?} */ setLocked(locked = true) { this._locked.next(locked); } // tslint:disable-next-line /** * @param {?=} lookupTable * @param {?=} clone * @return {?} */ doClone(lookupTable = {}, clone) { /*noop*/ } /** * @param {?=} lookupTable * @return {?} */ clone(lookupTable = {}) { // try and use an existing clone first if (lookupTable[this.id]) { return lookupTable[this.id]; } /** @type {?} */ const clone = Object.assign({}, this); clone.id = UID(); // clone.clearListeners(); lookupTable[this.id] = clone; this.doClone(lookupTable, clone); return clone; } /** * @return {?} */ lockChanges() { return this._locked$.pipe(takeUntil(this.onEntityDestroy()), map((/** * @param {?} locked * @return {?} */ locked => new LockEvent(this, locked))), this.withLog('lockChanges')); } /** * @param {?=} options * @return {?} */ destroy(options) { /** @type {?} */ const defaultOptions = Object.assign({ emit: true, propagate: true }, options); this.log('entity destroyed'); this._destroyed.next(defaultOptions); this._destroyed.complete(); } /** * @return {?} */ onEntityDestroy() { return this._destroyed$.pipe(filter((/** * @param {?} opts * @return {?} */ opts => opts.emit)), mapTo(new BaseEvent(this))); } } if (false) { /** * @type {?} * @private */ BaseEntity.prototype._id; /** * a prefix to make logs more easier * @type {?} * @private */ BaseEntity.prototype._logPrefix; /** * @type {?} * @private */ BaseEntity.prototype._destroyed; /** * @type {?} * @private */ BaseEntity.prototype._destroyed$; /** * @type {?} * @private */ BaseEntity.prototype._locked; /** * @type {?} * @private */ BaseEntity.prototype._locked$; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5lbnRpdHkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZGlhZ3JhbXMvIiwic291cmNlcyI6WyJsaWIvYmFzZS5lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQU0sR0FBRyxJQUFJLElBQUksRUFBRSxPQUFPLElBQUksUUFBUSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQWtCLE1BQU0sOEJBQThCLENBQUM7QUFJcEYsTUFBTSxPQUFPLFVBQVU7Ozs7O0lBV3RCLFlBQVksRUFBTyxFQUFFLFNBQVMsR0FBRyxFQUFFO1FBTDNCLGVBQVUsR0FBNEIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNwRCxnQkFBVyxHQUErQixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pFLFlBQU8sR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0QsYUFBUSxHQUF3QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBR25FLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUNsQyxDQUFDOzs7O0lBRUQsSUFBVyxFQUFFO1FBQ1osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2pCLENBQUM7Ozs7O0lBRUQsSUFBVyxFQUFFLENBQUMsRUFBTTtRQUNuQixJQUFJLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUNmLENBQUM7Ozs7OztJQUVELEdBQUcsQ0FBQyxPQUFlLEVBQUUsR0FBRyxJQUFTO1FBQ2hDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksT0FBTyxJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2pFLENBQUM7Ozs7OztJQUVELE9BQU8sQ0FBQyxPQUFlLEVBQUUsR0FBRyxJQUFTO1FBQ3BDLE9BQU8sUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxPQUFPLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDNUUsQ0FBQzs7OztJQUVELFNBQVM7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQzs7Ozs7SUFFRCxTQUFTLENBQUMsU0FBa0IsSUFBSTtRQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDOzs7Ozs7O0lBR0QsT0FBTyxDQUFDLGNBQW9DLEVBQUUsRUFBRSxLQUFVO1FBQ3pELFFBQVE7SUFDVCxDQUFDOzs7OztJQUVELEtBQUssQ0FBQyxjQUFvQyxFQUFFO1FBQzNDLHNDQUFzQztRQUN0QyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDekIsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzVCOztjQUNLLEtBQUsscUJBQVEsSUFBSSxDQUFFO1FBQ3pCLEtBQUssQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDakIsMEJBQTBCO1FBQzFCLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBRTdCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQzs7OztJQUVNLFdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDeEIsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxFQUNqQyxHQUFHOzs7O1FBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUMsRUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FDM0IsQ0FBQztJQUNILENBQUM7Ozs7O0lBRU0sT0FBTyxDQUFDLE9BQXdCOztjQUNoQyxjQUFjLG1CQUNuQixJQUFJLEVBQUUsSUFBSSxFQUNWLFNBQVMsRUFBRSxJQUFJLElBQ1osT0FBTyxDQUNWO1FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7OztJQUVNLGVBQWU7UUFDckIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDM0IsTUFBTTs7OztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxFQUN6QixLQUFLLENBQUMsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDMUIsQ0FBQztJQUNILENBQUM7Q0FDRDs7Ozs7O0lBcEZBLHlCQUFnQjs7Ozs7O0lBSWhCLGdDQUEyQjs7Ozs7SUFDM0IsZ0NBQTREOzs7OztJQUM1RCxpQ0FBaUY7Ozs7O0lBQ2pGLDZCQUF1RTs7Ozs7SUFDdkUsOEJBQW9FIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUQsIGxvZyBhcyBfbG9nLCB3aXRoTG9nIGFzIF93aXRoTG9nLCBVSUQsIExPR19MRVZFTCB9IGZyb20gJy4vdXRpbHMvdG9vbC1raXQudXRpbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgbWFwVG8sIHRha2VVbnRpbCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFzZUV2ZW50LCBMb2NrRXZlbnQsIERlc3Ryb3lPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2V2ZW50LmludGVyZmFjZSc7XG5cbmV4cG9ydCB0eXBlIEJhc2VFbnRpdHlUeXBlID0gJ25vZGUnIHwgJ2xpbmsnIHwgJ3BvcnQnIHwgJ3BvaW50JztcblxuZXhwb3J0IGNsYXNzIEJhc2VFbnRpdHkge1xuXHRwcml2YXRlIF9pZDogSUQ7XG5cdC8qKlxuXHQgKiBhIHByZWZpeCB0byBtYWtlIGxvZ3MgbW9yZSBlYXNpZXJcblx0ICovXG5cdHByaXZhdGUgX2xvZ1ByZWZpeDogc3RyaW5nO1xuXHRwcml2YXRlIF9kZXN0cm95ZWQ6IFN1YmplY3Q8RGVzdHJveU9wdGlvbnM+ID0gbmV3IFN1YmplY3QoKTtcblx0cHJpdmF0ZSBfZGVzdHJveWVkJDogT2JzZXJ2YWJsZTxEZXN0cm95T3B0aW9ucz4gPSB0aGlzLl9kZXN0cm95ZWQuYXNPYnNlcnZhYmxlKCk7XG5cdHByaXZhdGUgX2xvY2tlZDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cdHByaXZhdGUgX2xvY2tlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9sb2NrZWQuYXNPYnNlcnZhYmxlKCk7XG5cblx0Y29uc3RydWN0b3IoaWQ/OiBJRCwgbG9nUHJlZml4ID0gJycpIHtcblx0XHR0aGlzLl9pZCA9IGlkIHx8IFVJRCgpO1xuXHRcdHRoaXMuX2xvZ1ByZWZpeCA9IGAke2xvZ1ByZWZpeH1gO1xuXHR9XG5cblx0cHVibGljIGdldCBpZCgpOiBJRCB7XG5cdFx0cmV0dXJuIHRoaXMuX2lkO1xuXHR9XG5cblx0cHVibGljIHNldCBpZChpZDogSUQpIHtcblx0XHR0aGlzLl9pZCA9IGlkO1xuXHR9XG5cblx0bG9nKG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogYW55KTogdm9pZCB7XG5cdFx0X2xvZyhgJHt0aGlzLl9sb2dQcmVmaXh9ICR7bWVzc2FnZX06IGAsIExPR19MRVZFTC5MT0csIC4uLmFyZ3MpO1xuXHR9XG5cblx0d2l0aExvZyhtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3M6IGFueSk6IGFueSB7XG5cdFx0cmV0dXJuIF93aXRoTG9nKGAke3RoaXMuX2xvZ1ByZWZpeH0gJHttZXNzYWdlfTogYCwgTE9HX0xFVkVMLkxPRywgLi4uYXJncyk7XG5cdH1cblxuXHRnZXRMb2NrZWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuX2xvY2tlZC5nZXRWYWx1ZSgpO1xuXHR9XG5cblx0c2V0TG9ja2VkKGxvY2tlZDogYm9vbGVhbiA9IHRydWUpIHtcblx0XHR0aGlzLl9sb2NrZWQubmV4dChsb2NrZWQpO1xuXHR9XG5cblx0Ly8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG5cdGRvQ2xvbmUobG9va3VwVGFibGU6IHsgW3M6IHN0cmluZ106IGFueSB9ID0ge30sIGNsb25lOiBhbnkpIHtcblx0XHQvKm5vb3AqL1xuXHR9XG5cblx0Y2xvbmUobG9va3VwVGFibGU6IHsgW3M6IHN0cmluZ106IGFueSB9ID0ge30pIHtcblx0XHQvLyB0cnkgYW5kIHVzZSBhbiBleGlzdGluZyBjbG9uZSBmaXJzdFxuXHRcdGlmIChsb29rdXBUYWJsZVt0aGlzLmlkXSkge1xuXHRcdFx0cmV0dXJuIGxvb2t1cFRhYmxlW3RoaXMuaWRdO1xuXHRcdH1cblx0XHRjb25zdCBjbG9uZSA9IHsgLi4udGhpcyB9O1xuXHRcdGNsb25lLmlkID0gVUlEKCk7XG5cdFx0Ly8gY2xvbmUuY2xlYXJMaXN0ZW5lcnMoKTtcblx0XHRsb29rdXBUYWJsZVt0aGlzLmlkXSA9IGNsb25lO1xuXG5cdFx0dGhpcy5kb0Nsb25lKGxvb2t1cFRhYmxlLCBjbG9uZSk7XG5cdFx0cmV0dXJuIGNsb25lO1xuXHR9XG5cblx0cHVibGljIGxvY2tDaGFuZ2VzKCk6IE9ic2VydmFibGU8TG9ja0V2ZW50PiB7XG5cdFx0cmV0dXJuIHRoaXMuX2xvY2tlZCQucGlwZShcblx0XHRcdHRha2VVbnRpbCh0aGlzLm9uRW50aXR5RGVzdHJveSgpKSxcblx0XHRcdG1hcChsb2NrZWQgPT4gbmV3IExvY2tFdmVudCh0aGlzLCBsb2NrZWQpKSxcblx0XHRcdHRoaXMud2l0aExvZygnbG9ja0NoYW5nZXMnKVxuXHRcdCk7XG5cdH1cblxuXHRwdWJsaWMgZGVzdHJveShvcHRpb25zPzogRGVzdHJveU9wdGlvbnMpIHtcblx0XHRjb25zdCBkZWZhdWx0T3B0aW9uczogRGVzdHJveU9wdGlvbnMgPSB7XG5cdFx0XHRlbWl0OiB0cnVlLFxuXHRcdFx0cHJvcGFnYXRlOiB0cnVlLFxuXHRcdFx0Li4ub3B0aW9uc1xuXHRcdH07XG5cblx0XHR0aGlzLmxvZygnZW50aXR5IGRlc3Ryb3llZCcpO1xuXHRcdHRoaXMuX2Rlc3Ryb3llZC5uZXh0KGRlZmF1bHRPcHRpb25zKTtcblx0XHR0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcblx0fVxuXG5cdHB1YmxpYyBvbkVudGl0eURlc3Ryb3koKTogT2JzZXJ2YWJsZTxCYXNlRXZlbnQ8QmFzZUVudGl0eT4+IHtcblx0XHRyZXR1cm4gdGhpcy5fZGVzdHJveWVkJC5waXBlKFxuXHRcdFx0ZmlsdGVyKG9wdHMgPT4gb3B0cy5lbWl0KSxcblx0XHRcdG1hcFRvKG5ldyBCYXNlRXZlbnQodGhpcykpXG5cdFx0KTtcblx0fVxufVxuIl19