Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@ngneat/until-destroy

Package Overview
Dependencies
Maintainers
4
Versions
35
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ngneat/until-destroy - npm Package Compare versions

Comparing version 7.1.4 to 7.1.5

49

bundles/ngneat-until-destroy.umd.js

@@ -11,3 +11,4 @@ (function (global, factory) {

/**
* Applied to instances and stores `Subject` instance
* Applied to instances and stores `Subject` instance when
* no custom destroy method is provided.
*/

@@ -19,2 +20,17 @@ var DESTROY = Symbol('__destroy');

var DECORATOR_APPLIED = Symbol('__decoratorApplied');
/**
* If we use the `untilDestroyed` operator multiple times inside the single
* instance providing different `destroyMethodName`, then all streams will
* subscribe to the single subject. If any method is invoked, the subject will
* emit and all streams will be unsubscribed. We wan't to prevent this behavior,
* thus we store subjects under different symbols.
*/
function getSymbol(destroyMethodName) {
if (typeof destroyMethodName === 'string') {
return Symbol("__destroy__" + destroyMethodName);
}
else {
return DESTROY;
}
}
function markAsDecorated(providerOrDef) {

@@ -32,14 +48,14 @@ providerOrDef[DECORATOR_APPLIED] = true;

}
function createSubjectOnTheInstance(instance) {
if (!instance[DESTROY]) {
instance[DESTROY] = new rxjs.Subject();
function createSubjectOnTheInstance(instance, symbol) {
if (!instance[symbol]) {
instance[symbol] = new rxjs.Subject();
}
}
function completeSubjectOnTheInstance(instance) {
if (instance[DESTROY]) {
instance[DESTROY].next();
instance[DESTROY].complete();
function completeSubjectOnTheInstance(instance, symbol) {
if (instance[symbol]) {
instance[symbol].next();
instance[symbol].complete();
// We also have to re-assign this property thus in the future
// we will be able to create new subject on the same instance.
instance[DESTROY] = null;
instance[symbol] = null;
}

@@ -75,3 +91,3 @@ }

// that may lead to memory leaks
completeSubjectOnTheInstance(this);
completeSubjectOnTheInstance(this, getSymbol());
// Check if subscriptions are pushed to some array

@@ -117,3 +133,3 @@ if (arrayName) {

function overrideNonDirectiveInstanceMethod(instance, destroyMethodName) {
function overrideNonDirectiveInstanceMethod(instance, destroyMethodName, symbol) {
var originalDestroy = instance[destroyMethodName];

@@ -123,6 +139,6 @@ if (isFunction(originalDestroy) === false) {

}
createSubjectOnTheInstance(instance);
createSubjectOnTheInstance(instance, symbol);
instance[destroyMethodName] = function () {
isFunction(originalDestroy) && originalDestroy.apply(this, arguments);
completeSubjectOnTheInstance(this);
completeSubjectOnTheInstance(this, symbol);
// We have to re-assign this property back to the original value.

@@ -137,12 +153,13 @@ // If the `untilDestroyed` operator is called for the same instance

return function (source) {
var symbol = getSymbol(destroyMethodName);
// If `destroyMethodName` is passed then the developer applies
// this operator to something non-related to Angular DI system
if (typeof destroyMethodName === 'string') {
overrideNonDirectiveInstanceMethod(instance, destroyMethodName);
overrideNonDirectiveInstanceMethod(instance, destroyMethodName, symbol);
}
else {
ensureClassIsDecorated(instance);
createSubjectOnTheInstance(instance);
createSubjectOnTheInstance(instance, symbol);
}
return source.pipe(operators.takeUntil(instance[DESTROY]));
return source.pipe(operators.takeUntil(instance[symbol]));
};

@@ -149,0 +166,0 @@ }

@@ -1,2 +0,2 @@

!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@ngneat/until-destroy",["exports","rxjs","rxjs/operators"],n):n(((t=t||self).ngneat=t.ngneat||{},t.ngneat["until-destroy"]={}),t.rxjs,t.rxjs.operators)}(this,(function(t,n,r){"use strict";function e(t){return"function"==typeof t}var o=Symbol("__destroy"),i=Symbol("__decoratorApplied");function s(t){t[i]=!0}function u(t){t[o]||(t[o]=new n.Subject)}function c(t){t[o]&&(t[o].next(),t[o].complete(),t[o]=null)}function f(t){return t.ɵcmp||t.ɵdir}function a(t){return!!t.ɵprov}function p(t){t&&e(t.unsubscribe)&&t.unsubscribe()}function d(t,n){var r=n.arrayName,e=n.checkProperties,o=n.blackList;return function(){if(t&&t.call(this),c(this),r)return function(t){Array.isArray(t)&&t.forEach(p)}(this[r]);if(e)for(var n in this)o&&o.includes(n)||p(this[n])}}t.UntilDestroy=function(t){return void 0===t&&(t={}),function(n){a(n)?function(t,n){t.prototype.ngOnDestroy=d(t.prototype.ngOnDestroy,n),s(t)}(n,t):function(t,n){var r=f(t);r.onDestroy=d(r.onDestroy,n),s(r)}(n,t)}},t.untilDestroyed=function(t,n){return function(s){return"string"==typeof n?function(t,n){var r=t[n];if(!1===e(r))throw new Error(t.constructor.name+" is using untilDestroyed but doesn't implement "+n);u(t),t[n]=function(){e(r)&&r.apply(this,arguments),c(this),t[n]=r}}(t,n):(!function(t){var n=t.constructor;if(!(a(n)?n:f(n))[i])throw new Error("untilDestroyed operator cannot be used inside directives or components or providers that are not decorated with UntilDestroy decorator")}(t),u(t)),s.pipe(r.takeUntil(t[o]))}},Object.defineProperty(t,"__esModule",{value:!0})}));
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@ngneat/until-destroy",["exports","rxjs","rxjs/operators"],n):n(((t=t||self).ngneat=t.ngneat||{},t.ngneat["until-destroy"]={}),t.rxjs,t.rxjs.operators)}(this,(function(t,n,r){"use strict";function e(t){return"function"==typeof t}var o=Symbol("__destroy"),i=Symbol("__decoratorApplied");function s(t){return"string"==typeof t?Symbol("__destroy__"+t):o}function u(t){t[i]=!0}function c(t,r){t[r]||(t[r]=new n.Subject)}function f(t,n){t[n]&&(t[n].next(),t[n].complete(),t[n]=null)}function a(t){return t.ɵcmp||t.ɵdir}function p(t){return!!t.ɵprov}function d(t){t&&e(t.unsubscribe)&&t.unsubscribe()}function y(t,n){var r=n.arrayName,e=n.checkProperties,o=n.blackList;return function(){if(t&&t.call(this),f(this,s()),r)return function(t){Array.isArray(t)&&t.forEach(d)}(this[r]);if(e)for(var n in this)o&&o.includes(n)||d(this[n])}}t.UntilDestroy=function(t){return void 0===t&&(t={}),function(n){p(n)?function(t,n){t.prototype.ngOnDestroy=y(t.prototype.ngOnDestroy,n),u(t)}(n,t):function(t,n){var r=a(t);r.onDestroy=y(r.onDestroy,n),u(r)}(n,t)}},t.untilDestroyed=function(t,n){return function(o){var u=s(n);return"string"==typeof n?function(t,n,r){var o=t[n];if(!1===e(o))throw new Error(t.constructor.name+" is using untilDestroyed but doesn't implement "+n);c(t,r),t[n]=function(){e(o)&&o.apply(this,arguments),f(this,r),t[n]=o}}(t,n,u):(!function(t){var n=t.constructor;if(!(p(n)?n:a(n))[i])throw new Error("untilDestroyed operator cannot be used inside directives or components or providers that are not decorated with UntilDestroy decorator")}(t),c(t,u)),o.pipe(r.takeUntil(t[u]))}},Object.defineProperty(t,"__esModule",{value:!0})}));
//# sourceMappingURL=ngneat-until-destroy.umd.min.js.map

@@ -6,5 +6,6 @@ import { Subject } from 'rxjs';

/**
* Applied to instances and stores `Subject` instance
* Applied to instances and stores `Subject` instance when
* no custom destroy method is provided.
*/
export const DESTROY = Symbol('__destroy');
const DESTROY = Symbol('__destroy');
/**

@@ -14,2 +15,17 @@ * Applied to definitions and informs that class is decorated

const DECORATOR_APPLIED = Symbol('__decoratorApplied');
/**
* If we use the `untilDestroyed` operator multiple times inside the single
* instance providing different `destroyMethodName`, then all streams will
* subscribe to the single subject. If any method is invoked, the subject will
* emit and all streams will be unsubscribed. We wan't to prevent this behavior,
* thus we store subjects under different symbols.
*/
export function getSymbol(destroyMethodName) {
if (typeof destroyMethodName === 'string') {
return Symbol(`__destroy__${destroyMethodName}`);
}
else {
return DESTROY;
}
}
export function markAsDecorated(providerOrDef) {

@@ -27,14 +43,14 @@ providerOrDef[DECORATOR_APPLIED] = true;

}
export function createSubjectOnTheInstance(instance) {
if (!instance[DESTROY]) {
instance[DESTROY] = new Subject();
export function createSubjectOnTheInstance(instance, symbol) {
if (!instance[symbol]) {
instance[symbol] = new Subject();
}
}
export function completeSubjectOnTheInstance(instance) {
if (instance[DESTROY]) {
instance[DESTROY].next();
instance[DESTROY].complete();
export function completeSubjectOnTheInstance(instance, symbol) {
if (instance[symbol]) {
instance[symbol].next();
instance[symbol].complete();
// We also have to re-assign this property thus in the future
// we will be able to create new subject on the same instance.
instance[DESTROY] = null;
instance[symbol] = null;
}

@@ -56,2 +72,2 @@ }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nbmVhdC91bnRpbC1kZXN0cm95LyIsInNvdXJjZXMiOlsibGliL2ludGVybmFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE1BQU0sVUFBVSxVQUFVLENBQUMsTUFBZTtJQUN4QyxPQUFPLE9BQU8sTUFBTSxLQUFLLFVBQVUsQ0FBQztBQUN0QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQWtCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUUxRDs7R0FFRztBQUNILE1BQU0saUJBQWlCLEdBQWtCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBRXRFLE1BQU0sVUFBVSxlQUFlLENBQzdCLGFBQXNGO0lBRXJGLGFBQXFCLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDbkQsQ0FBQztBQVFELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxRQUFhO0lBQ2xELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7SUFDekMsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBRSxhQUFxQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFcEUsSUFBSSxnQkFBZ0IsRUFBRTtRQUNwQixNQUFNLElBQUksS0FBSyxDQUNiLDhEQUE4RDtZQUM1RCw0RUFBNEUsQ0FDL0UsQ0FBQztLQUNIO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxRQUFhO0lBQ3RELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDdEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7S0FDekM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLDRCQUE0QixDQUFDLFFBQWE7SUFDeEQsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDckIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3Qiw2REFBNkQ7UUFDN0QsOERBQThEO1FBQzlELFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUM7S0FDMUI7QUFDSCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FDcEIsSUFBeUM7SUFFekMsT0FBUSxJQUF5QixDQUFDLElBQUksSUFBSyxJQUF5QixDQUFDLElBQUksQ0FBQztBQUM1RSxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQVc7SUFDMUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztBQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZVR5cGUsXG4gIMm1Q29tcG9uZW50VHlwZSBhcyBDb21wb25lbnRUeXBlLFxuICDJtURpcmVjdGl2ZVR5cGUgYXMgRGlyZWN0aXZlVHlwZSxcbiAgybVDb21wb25lbnREZWYgYXMgQ29tcG9uZW50RGVmLFxuICDJtURpcmVjdGl2ZURlZiBhcyBEaXJlY3RpdmVEZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKHRhcmdldDogdW5rbm93bikge1xuICByZXR1cm4gdHlwZW9mIHRhcmdldCA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuLyoqXG4gKiBBcHBsaWVkIHRvIGluc3RhbmNlcyBhbmQgc3RvcmVzIGBTdWJqZWN0YCBpbnN0YW5jZVxuICovXG5leHBvcnQgY29uc3QgREVTVFJPWTogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbCgnX19kZXN0cm95Jyk7XG5cbi8qKlxuICogQXBwbGllZCB0byBkZWZpbml0aW9ucyBhbmQgaW5mb3JtcyB0aGF0IGNsYXNzIGlzIGRlY29yYXRlZFxuICovXG5jb25zdCBERUNPUkFUT1JfQVBQTElFRDogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbCgnX19kZWNvcmF0b3JBcHBsaWVkJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXJrQXNEZWNvcmF0ZWQoXG4gIHByb3ZpZGVyT3JEZWY6IEluamVjdGFibGVUeXBlPHVua25vd24+IHwgRGlyZWN0aXZlRGVmPHVua25vd24+IHwgQ29tcG9uZW50RGVmPHVua25vd24+XG4pOiB2b2lkIHtcbiAgKHByb3ZpZGVyT3JEZWYgYXMgYW55KVtERUNPUkFUT1JfQVBQTElFRF0gPSB0cnVlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVudGlsRGVzdHJveU9wdGlvbnMge1xuICBibGFja0xpc3Q/OiBzdHJpbmdbXTtcbiAgYXJyYXlOYW1lPzogc3RyaW5nO1xuICBjaGVja1Byb3BlcnRpZXM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlQ2xhc3NJc0RlY29yYXRlZChpbnN0YW5jZTogYW55KTogbmV2ZXIgfCB2b2lkIHtcbiAgY29uc3QgY29uc3RydWN0b3IgPSBpbnN0YW5jZS5jb25zdHJ1Y3RvcjtcbiAgY29uc3QgcHJvdmlkZXJPckRlZiA9IGlzSW5qZWN0YWJsZVR5cGUoY29uc3RydWN0b3IpID8gY29uc3RydWN0b3IgOiBnZXREZWYoY29uc3RydWN0b3IpO1xuICBjb25zdCBtaXNzaW5nRGVjb3JhdG9yID0gIShwcm92aWRlck9yRGVmIGFzIGFueSlbREVDT1JBVE9SX0FQUExJRURdO1xuXG4gIGlmIChtaXNzaW5nRGVjb3JhdG9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ3VudGlsRGVzdHJveWVkIG9wZXJhdG9yIGNhbm5vdCBiZSB1c2VkIGluc2lkZSBkaXJlY3RpdmVzIG9yICcgK1xuICAgICAgICAnY29tcG9uZW50cyBvciBwcm92aWRlcnMgdGhhdCBhcmUgbm90IGRlY29yYXRlZCB3aXRoIFVudGlsRGVzdHJveSBkZWNvcmF0b3InXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3ViamVjdE9uVGhlSW5zdGFuY2UoaW5zdGFuY2U6IGFueSk6IHZvaWQge1xuICBpZiAoIWluc3RhbmNlW0RFU1RST1ldKSB7XG4gICAgaW5zdGFuY2VbREVTVFJPWV0gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wbGV0ZVN1YmplY3RPblRoZUluc3RhbmNlKGluc3RhbmNlOiBhbnkpOiB2b2lkIHtcbiAgaWYgKGluc3RhbmNlW0RFU1RST1ldKSB7XG4gICAgaW5zdGFuY2VbREVTVFJPWV0ubmV4dCgpO1xuICAgIGluc3RhbmNlW0RFU1RST1ldLmNvbXBsZXRlKCk7XG4gICAgLy8gV2UgYWxzbyBoYXZlIHRvIHJlLWFzc2lnbiB0aGlzIHByb3BlcnR5IHRodXMgaW4gdGhlIGZ1dHVyZVxuICAgIC8vIHdlIHdpbGwgYmUgYWJsZSB0byBjcmVhdGUgbmV3IHN1YmplY3Qgb24gdGhlIHNhbWUgaW5zdGFuY2UuXG4gICAgaW5zdGFuY2VbREVTVFJPWV0gPSBudWxsO1xuICB9XG59XG5cbi8qKlxuICogQXMgZGlyZWN0aXZlIGFuZCBjb21wb25lbnQgZGVmaW5pdGlvbnMgYXJlIGNvbnNpZGVyZWQgcHJpdmF0ZSBBUEksXG4gKiBzbyB0aG9zZSBwcm9wZXJ0aWVzIGFyZSBwcmVmaXhlZCB3aXRoIEFuZ3VsYXIncyBtYXJrZXIgZm9yIFwicHJpdmF0ZVwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWY8VD4oXG4gIHR5cGU6IERpcmVjdGl2ZVR5cGU8VD4gfCBDb21wb25lbnRUeXBlPFQ+XG4pOiBEaXJlY3RpdmVEZWY8VD4gfCBDb21wb25lbnREZWY8VD4ge1xuICByZXR1cm4gKHR5cGUgYXMgQ29tcG9uZW50VHlwZTxUPikuybVjbXAgfHwgKHR5cGUgYXMgRGlyZWN0aXZlVHlwZTxUPikuybVkaXI7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwcm92aWRlZCBgdGFyZ2V0YCBpcyBzb21lIGZ1bmN0aW9uXG4gKiBkZWNvcmF0ZWQgd2l0aCBgQEluamVjdGFibGUoKWBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW5qZWN0YWJsZVR5cGUodGFyZ2V0OiBhbnkpOiB0YXJnZXQgaXMgSW5qZWN0YWJsZVR5cGU8dW5rbm93bj4ge1xuICByZXR1cm4gISF0YXJnZXQuybVwcm92O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nbmVhdC91bnRpbC1kZXN0cm95LyIsInNvdXJjZXMiOlsibGliL2ludGVybmFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE1BQU0sVUFBVSxVQUFVLENBQUMsTUFBZTtJQUN4QyxPQUFPLE9BQU8sTUFBTSxLQUFLLFVBQVUsQ0FBQztBQUN0QyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLEdBQWtCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUVuRDs7R0FFRztBQUNILE1BQU0saUJBQWlCLEdBQWtCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBRXRFOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUksaUJBQTJCO0lBQ3RELElBQUksT0FBTyxpQkFBaUIsS0FBSyxRQUFRLEVBQUU7UUFDekMsT0FBTyxNQUFNLENBQUMsY0FBYyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7S0FDbEQ7U0FBTTtRQUNMLE9BQU8sT0FBTyxDQUFDO0tBQ2hCO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQzdCLGFBQXNGO0lBRXJGLGFBQXFCLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDbkQsQ0FBQztBQVFELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxRQUFhO0lBQ2xELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7SUFDekMsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBRSxhQUFxQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFcEUsSUFBSSxnQkFBZ0IsRUFBRTtRQUNwQixNQUFNLElBQUksS0FBSyxDQUNiLDhEQUE4RDtZQUM1RCw0RUFBNEUsQ0FDL0UsQ0FBQztLQUNIO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxRQUFhLEVBQUUsTUFBYztJQUN0RSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3JCLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0tBQ3hDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxRQUFhLEVBQUUsTUFBYztJQUN4RSxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNwQixRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzVCLDZEQUE2RDtRQUM3RCw4REFBOEQ7UUFDOUQsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztLQUN6QjtBQUNILENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQUNwQixJQUF5QztJQUV6QyxPQUFRLElBQXlCLENBQUMsSUFBSSxJQUFLLElBQXlCLENBQUMsSUFBSSxDQUFDO0FBQzVFLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBVztJQUMxQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlVHlwZSxcbiAgybVDb21wb25lbnRUeXBlIGFzIENvbXBvbmVudFR5cGUsXG4gIMm1RGlyZWN0aXZlVHlwZSBhcyBEaXJlY3RpdmVUeXBlLFxuICDJtUNvbXBvbmVudERlZiBhcyBDb21wb25lbnREZWYsXG4gIMm1RGlyZWN0aXZlRGVmIGFzIERpcmVjdGl2ZURlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzRnVuY3Rpb24odGFyZ2V0OiB1bmtub3duKSB7XG4gIHJldHVybiB0eXBlb2YgdGFyZ2V0ID09PSAnZnVuY3Rpb24nO1xufVxuXG4vKipcbiAqIEFwcGxpZWQgdG8gaW5zdGFuY2VzIGFuZCBzdG9yZXMgYFN1YmplY3RgIGluc3RhbmNlIHdoZW5cbiAqIG5vIGN1c3RvbSBkZXN0cm95IG1ldGhvZCBpcyBwcm92aWRlZC5cbiAqL1xuY29uc3QgREVTVFJPWTogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbCgnX19kZXN0cm95Jyk7XG5cbi8qKlxuICogQXBwbGllZCB0byBkZWZpbml0aW9ucyBhbmQgaW5mb3JtcyB0aGF0IGNsYXNzIGlzIGRlY29yYXRlZFxuICovXG5jb25zdCBERUNPUkFUT1JfQVBQTElFRDogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbCgnX19kZWNvcmF0b3JBcHBsaWVkJyk7XG5cbi8qKlxuICogSWYgd2UgdXNlIHRoZSBgdW50aWxEZXN0cm95ZWRgIG9wZXJhdG9yIG11bHRpcGxlIHRpbWVzIGluc2lkZSB0aGUgc2luZ2xlXG4gKiBpbnN0YW5jZSBwcm92aWRpbmcgZGlmZmVyZW50IGBkZXN0cm95TWV0aG9kTmFtZWAsIHRoZW4gYWxsIHN0cmVhbXMgd2lsbFxuICogc3Vic2NyaWJlIHRvIHRoZSBzaW5nbGUgc3ViamVjdC4gSWYgYW55IG1ldGhvZCBpcyBpbnZva2VkLCB0aGUgc3ViamVjdCB3aWxsXG4gKiBlbWl0IGFuZCBhbGwgc3RyZWFtcyB3aWxsIGJlIHVuc3Vic2NyaWJlZC4gV2Ugd2FuJ3QgdG8gcHJldmVudCB0aGlzIGJlaGF2aW9yLFxuICogdGh1cyB3ZSBzdG9yZSBzdWJqZWN0cyB1bmRlciBkaWZmZXJlbnQgc3ltYm9scy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN5bWJvbDxUPihkZXN0cm95TWV0aG9kTmFtZT86IGtleW9mIFQpOiBzeW1ib2wge1xuICBpZiAodHlwZW9mIGRlc3Ryb3lNZXRob2ROYW1lID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBTeW1ib2woYF9fZGVzdHJveV9fJHtkZXN0cm95TWV0aG9kTmFtZX1gKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gREVTVFJPWTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFya0FzRGVjb3JhdGVkKFxuICBwcm92aWRlck9yRGVmOiBJbmplY3RhYmxlVHlwZTx1bmtub3duPiB8IERpcmVjdGl2ZURlZjx1bmtub3duPiB8IENvbXBvbmVudERlZjx1bmtub3duPlxuKTogdm9pZCB7XG4gIChwcm92aWRlck9yRGVmIGFzIGFueSlbREVDT1JBVE9SX0FQUExJRURdID0gdHJ1ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbnRpbERlc3Ryb3lPcHRpb25zIHtcbiAgYmxhY2tMaXN0Pzogc3RyaW5nW107XG4gIGFycmF5TmFtZT86IHN0cmluZztcbiAgY2hlY2tQcm9wZXJ0aWVzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZUNsYXNzSXNEZWNvcmF0ZWQoaW5zdGFuY2U6IGFueSk6IG5ldmVyIHwgdm9pZCB7XG4gIGNvbnN0IGNvbnN0cnVjdG9yID0gaW5zdGFuY2UuY29uc3RydWN0b3I7XG4gIGNvbnN0IHByb3ZpZGVyT3JEZWYgPSBpc0luamVjdGFibGVUeXBlKGNvbnN0cnVjdG9yKSA/IGNvbnN0cnVjdG9yIDogZ2V0RGVmKGNvbnN0cnVjdG9yKTtcbiAgY29uc3QgbWlzc2luZ0RlY29yYXRvciA9ICEocHJvdmlkZXJPckRlZiBhcyBhbnkpW0RFQ09SQVRPUl9BUFBMSUVEXTtcblxuICBpZiAobWlzc2luZ0RlY29yYXRvcikge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICd1bnRpbERlc3Ryb3llZCBvcGVyYXRvciBjYW5ub3QgYmUgdXNlZCBpbnNpZGUgZGlyZWN0aXZlcyBvciAnICtcbiAgICAgICAgJ2NvbXBvbmVudHMgb3IgcHJvdmlkZXJzIHRoYXQgYXJlIG5vdCBkZWNvcmF0ZWQgd2l0aCBVbnRpbERlc3Ryb3kgZGVjb3JhdG9yJ1xuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN1YmplY3RPblRoZUluc3RhbmNlKGluc3RhbmNlOiBhbnksIHN5bWJvbDogc3ltYm9sKTogdm9pZCB7XG4gIGlmICghaW5zdGFuY2Vbc3ltYm9sXSkge1xuICAgIGluc3RhbmNlW3N5bWJvbF0gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wbGV0ZVN1YmplY3RPblRoZUluc3RhbmNlKGluc3RhbmNlOiBhbnksIHN5bWJvbDogc3ltYm9sKTogdm9pZCB7XG4gIGlmIChpbnN0YW5jZVtzeW1ib2xdKSB7XG4gICAgaW5zdGFuY2Vbc3ltYm9sXS5uZXh0KCk7XG4gICAgaW5zdGFuY2Vbc3ltYm9sXS5jb21wbGV0ZSgpO1xuICAgIC8vIFdlIGFsc28gaGF2ZSB0byByZS1hc3NpZ24gdGhpcyBwcm9wZXJ0eSB0aHVzIGluIHRoZSBmdXR1cmVcbiAgICAvLyB3ZSB3aWxsIGJlIGFibGUgdG8gY3JlYXRlIG5ldyBzdWJqZWN0IG9uIHRoZSBzYW1lIGluc3RhbmNlLlxuICAgIGluc3RhbmNlW3N5bWJvbF0gPSBudWxsO1xuICB9XG59XG5cbi8qKlxuICogQXMgZGlyZWN0aXZlIGFuZCBjb21wb25lbnQgZGVmaW5pdGlvbnMgYXJlIGNvbnNpZGVyZWQgcHJpdmF0ZSBBUEksXG4gKiBzbyB0aG9zZSBwcm9wZXJ0aWVzIGFyZSBwcmVmaXhlZCB3aXRoIEFuZ3VsYXIncyBtYXJrZXIgZm9yIFwicHJpdmF0ZVwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWY8VD4oXG4gIHR5cGU6IERpcmVjdGl2ZVR5cGU8VD4gfCBDb21wb25lbnRUeXBlPFQ+XG4pOiBEaXJlY3RpdmVEZWY8VD4gfCBDb21wb25lbnREZWY8VD4ge1xuICByZXR1cm4gKHR5cGUgYXMgQ29tcG9uZW50VHlwZTxUPikuybVjbXAgfHwgKHR5cGUgYXMgRGlyZWN0aXZlVHlwZTxUPikuybVkaXI7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwcm92aWRlZCBgdGFyZ2V0YCBpcyBzb21lIGZ1bmN0aW9uXG4gKiBkZWNvcmF0ZWQgd2l0aCBgQEluamVjdGFibGUoKWBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW5qZWN0YWJsZVR5cGUodGFyZ2V0OiBhbnkpOiB0YXJnZXQgaXMgSW5qZWN0YWJsZVR5cGU8dW5rbm93bj4ge1xuICByZXR1cm4gISF0YXJnZXQuybVwcm92O1xufVxuIl19

@@ -1,2 +0,2 @@

import { getDef, isFunction, completeSubjectOnTheInstance, isInjectableType, markAsDecorated } from './internals';
import { getDef, getSymbol, isFunction, completeSubjectOnTheInstance, isInjectableType, markAsDecorated } from './internals';
function unsubscribe(property) {

@@ -14,3 +14,3 @@ property && isFunction(property.unsubscribe) && property.unsubscribe();

// that may lead to memory leaks
completeSubjectOnTheInstance(this);
completeSubjectOnTheInstance(this, getSymbol());
// Check if subscriptions are pushed to some array

@@ -54,2 +54,2 @@ if (arrayName) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW50aWwtZGVzdHJveS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ25lYXQvdW50aWwtZGVzdHJveS8iLCJzb3VyY2VzIjpbImxpYi91bnRpbC1kZXN0cm95LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUVWLDRCQUE0QixFQUM1QixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNoQixNQUFNLGFBQWEsQ0FBQztBQUVyQixTQUFTLFdBQVcsQ0FBQyxRQUFhO0lBQ2hDLFFBQVEsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUN6RSxDQUFDO0FBRUQsU0FBUyxnQ0FBZ0MsQ0FBQyxRQUFlO0lBQ3ZELEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FDMUIsV0FBNEMsRUFDNUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBdUI7SUFFOUQsT0FBTztRQUNMLGlEQUFpRDtRQUNqRCxXQUFXLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0QywyREFBMkQ7UUFDM0QsZ0NBQWdDO1FBQ2hDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5DLGtEQUFrRDtRQUNsRCxJQUFJLFNBQVMsRUFBRTtZQUNiLE9BQU8sZ0NBQWdDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDMUQ7UUFFRCxxREFBcUQ7UUFDckQsSUFBSSxlQUFlLEVBQUU7WUFDbkIsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLEVBQUU7Z0JBQzNCLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQzdDLFNBQVM7aUJBQ1Y7Z0JBRUQsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2FBQzdCO1NBQ0Y7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxJQUE2QixFQUFFLE9BQTRCO0lBQ25GLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RGLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FDeEIsSUFBcUQsRUFDckQsT0FBNEI7SUFFNUIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLEdBQVcsQ0FBQyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRSxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDdkIsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsVUFBK0IsRUFBRTtJQUM1RCxPQUFPLENBQUMsTUFBVyxFQUFFLEVBQUU7UUFDckIsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QixnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDbkM7YUFBTTtZQUNMLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlVHlwZSxcbiAgybVDb21wb25lbnRUeXBlIGFzIENvbXBvbmVudFR5cGUsXG4gIMm1RGlyZWN0aXZlVHlwZSBhcyBEaXJlY3RpdmVUeXBlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBnZXREZWYsXG4gIGlzRnVuY3Rpb24sXG4gIFVudGlsRGVzdHJveU9wdGlvbnMsXG4gIGNvbXBsZXRlU3ViamVjdE9uVGhlSW5zdGFuY2UsXG4gIGlzSW5qZWN0YWJsZVR5cGUsXG4gIG1hcmtBc0RlY29yYXRlZFxufSBmcm9tICcuL2ludGVybmFscyc7XG5cbmZ1bmN0aW9uIHVuc3Vic2NyaWJlKHByb3BlcnR5OiBhbnkpOiB2b2lkIHtcbiAgcHJvcGVydHkgJiYgaXNGdW5jdGlvbihwcm9wZXJ0eS51bnN1YnNjcmliZSkgJiYgcHJvcGVydHkudW5zdWJzY3JpYmUoKTtcbn1cblxuZnVuY3Rpb24gdW5zdWJzY3JpYmVJZlByb3BlcnR5SXNBcnJheUxpa2UocHJvcGVydHk6IGFueVtdKTogdm9pZCB7XG4gIEFycmF5LmlzQXJyYXkocHJvcGVydHkpICYmIHByb3BlcnR5LmZvckVhY2godW5zdWJzY3JpYmUpO1xufVxuXG5mdW5jdGlvbiBkZWNvcmF0ZU5nT25EZXN0cm95KFxuICBuZ09uRGVzdHJveTogKCgpID0+IHZvaWQpIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgeyBhcnJheU5hbWUsIGNoZWNrUHJvcGVydGllcywgYmxhY2tMaXN0IH06IFVudGlsRGVzdHJveU9wdGlvbnNcbikge1xuICByZXR1cm4gZnVuY3Rpb24odGhpczogYW55KSB7XG4gICAgLy8gSW52b2tlIHRoZSBvcmlnaW5hbCBgbmdPbkRlc3Ryb3lgIGlmIGl0IGV4aXN0c1xuICAgIG5nT25EZXN0cm95ICYmIG5nT25EZXN0cm95LmNhbGwodGhpcyk7XG5cbiAgICAvLyBJdCdzIGltcG9ydGFudCB0byB1c2UgYHRoaXNgIGluc3RlYWQgb2YgY2FjaGluZyBpbnN0YW5jZVxuICAgIC8vIHRoYXQgbWF5IGxlYWQgdG8gbWVtb3J5IGxlYWtzXG4gICAgY29tcGxldGVTdWJqZWN0T25UaGVJbnN0YW5jZSh0aGlzKTtcblxuICAgIC8vIENoZWNrIGlmIHN1YnNjcmlwdGlvbnMgYXJlIHB1c2hlZCB0byBzb21lIGFycmF5XG4gICAgaWYgKGFycmF5TmFtZSkge1xuICAgICAgcmV0dXJuIHVuc3Vic2NyaWJlSWZQcm9wZXJ0eUlzQXJyYXlMaWtlKHRoaXNbYXJyYXlOYW1lXSk7XG4gICAgfVxuXG4gICAgLy8gTG9vcCB0aHJvdWdoIHRoZSBwcm9wZXJ0aWVzIGFuZCBmaW5kIHN1YnNjcmlwdGlvbnNcbiAgICBpZiAoY2hlY2tQcm9wZXJ0aWVzKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIHRoaXMpIHtcbiAgICAgICAgaWYgKGJsYWNrTGlzdCAmJiBibGFja0xpc3QuaW5jbHVkZXMocHJvcGVydHkpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICB1bnN1YnNjcmliZSh0aGlzW3Byb3BlcnR5XSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIFNlcnZpY2VzIGRvIG5vdCBoYXZlIGRlZmluaXRpb25zLCB0aHVzIHdlIGp1c3QgaGF2ZSB0byBvdmVycmlkZSB0aGVcbiAqIHByb3RvdHlwZSBwcm9wZXJ0eSBpbiBJdnlcbiAqL1xuZnVuY3Rpb24gZGVjb3JhdGVQcm92aWRlcih0eXBlOiBJbmplY3RhYmxlVHlwZTx1bmtub3duPiwgb3B0aW9uczogVW50aWxEZXN0cm95T3B0aW9ucyk6IHZvaWQge1xuICB0eXBlLnByb3RvdHlwZS5uZ09uRGVzdHJveSA9IGRlY29yYXRlTmdPbkRlc3Ryb3kodHlwZS5wcm90b3R5cGUubmdPbkRlc3Ryb3ksIG9wdGlvbnMpO1xuICBtYXJrQXNEZWNvcmF0ZWQodHlwZSk7XG59XG5cbmZ1bmN0aW9uIGRlY29yYXRlRGlyZWN0aXZlKFxuICB0eXBlOiBEaXJlY3RpdmVUeXBlPHVua25vd24+IHwgQ29tcG9uZW50VHlwZTx1bmtub3duPixcbiAgb3B0aW9uczogVW50aWxEZXN0cm95T3B0aW9uc1xuKTogdm9pZCB7XG4gIGNvbnN0IGRlZiA9IGdldERlZih0eXBlKTtcbiAgKGRlZiBhcyBhbnkpLm9uRGVzdHJveSA9IGRlY29yYXRlTmdPbkRlc3Ryb3koZGVmLm9uRGVzdHJveSwgb3B0aW9ucyk7XG4gIG1hcmtBc0RlY29yYXRlZChkZWYpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVW50aWxEZXN0cm95KG9wdGlvbnM6IFVudGlsRGVzdHJveU9wdGlvbnMgPSB7fSk6IENsYXNzRGVjb3JhdG9yIHtcbiAgcmV0dXJuICh0YXJnZXQ6IGFueSkgPT4ge1xuICAgIGlmIChpc0luamVjdGFibGVUeXBlKHRhcmdldCkpIHtcbiAgICAgIGRlY29yYXRlUHJvdmlkZXIodGFyZ2V0LCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb3JhdGVEaXJlY3RpdmUodGFyZ2V0LCBvcHRpb25zKTtcbiAgICB9XG4gIH07XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW50aWwtZGVzdHJveS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ25lYXQvdW50aWwtZGVzdHJveS8iLCJzb3VyY2VzIjpbImxpYi91bnRpbC1kZXN0cm95LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFVBQVUsRUFFViw0QkFBNEIsRUFDNUIsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDaEIsTUFBTSxhQUFhLENBQUM7QUFFckIsU0FBUyxXQUFXLENBQUMsUUFBYTtJQUNoQyxRQUFRLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDekUsQ0FBQztBQUVELFNBQVMsZ0NBQWdDLENBQUMsUUFBZTtJQUN2RCxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQzFCLFdBQTRDLEVBQzVDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQXVCO0lBRTlELE9BQU87UUFDTCxpREFBaUQ7UUFDakQsV0FBVyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEMsMkRBQTJEO1FBQzNELGdDQUFnQztRQUNoQyw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUVoRCxrREFBa0Q7UUFDbEQsSUFBSSxTQUFTLEVBQUU7WUFDYixPQUFPLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQzFEO1FBRUQscURBQXFEO1FBQ3JELElBQUksZUFBZSxFQUFFO1lBQ25CLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxFQUFFO2dCQUMzQixJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUM3QyxTQUFTO2lCQUNWO2dCQUVELFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzthQUM3QjtTQUNGO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsSUFBNkIsRUFBRSxPQUE0QjtJQUNuRixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RixlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDeEIsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQ3hCLElBQXFELEVBQ3JELE9BQTRCO0lBRTVCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixHQUFXLENBQUMsU0FBUyxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLFVBQStCLEVBQUU7SUFDNUQsT0FBTyxDQUFDLE1BQVcsRUFBRSxFQUFFO1FBQ3JCLElBQUksZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDNUIsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ25DO2FBQU07WUFDTCxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZVR5cGUsXG4gIMm1Q29tcG9uZW50VHlwZSBhcyBDb21wb25lbnRUeXBlLFxuICDJtURpcmVjdGl2ZVR5cGUgYXMgRGlyZWN0aXZlVHlwZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgZ2V0RGVmLFxuICBnZXRTeW1ib2wsXG4gIGlzRnVuY3Rpb24sXG4gIFVudGlsRGVzdHJveU9wdGlvbnMsXG4gIGNvbXBsZXRlU3ViamVjdE9uVGhlSW5zdGFuY2UsXG4gIGlzSW5qZWN0YWJsZVR5cGUsXG4gIG1hcmtBc0RlY29yYXRlZFxufSBmcm9tICcuL2ludGVybmFscyc7XG5cbmZ1bmN0aW9uIHVuc3Vic2NyaWJlKHByb3BlcnR5OiBhbnkpOiB2b2lkIHtcbiAgcHJvcGVydHkgJiYgaXNGdW5jdGlvbihwcm9wZXJ0eS51bnN1YnNjcmliZSkgJiYgcHJvcGVydHkudW5zdWJzY3JpYmUoKTtcbn1cblxuZnVuY3Rpb24gdW5zdWJzY3JpYmVJZlByb3BlcnR5SXNBcnJheUxpa2UocHJvcGVydHk6IGFueVtdKTogdm9pZCB7XG4gIEFycmF5LmlzQXJyYXkocHJvcGVydHkpICYmIHByb3BlcnR5LmZvckVhY2godW5zdWJzY3JpYmUpO1xufVxuXG5mdW5jdGlvbiBkZWNvcmF0ZU5nT25EZXN0cm95KFxuICBuZ09uRGVzdHJveTogKCgpID0+IHZvaWQpIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgeyBhcnJheU5hbWUsIGNoZWNrUHJvcGVydGllcywgYmxhY2tMaXN0IH06IFVudGlsRGVzdHJveU9wdGlvbnNcbikge1xuICByZXR1cm4gZnVuY3Rpb24odGhpczogYW55KSB7XG4gICAgLy8gSW52b2tlIHRoZSBvcmlnaW5hbCBgbmdPbkRlc3Ryb3lgIGlmIGl0IGV4aXN0c1xuICAgIG5nT25EZXN0cm95ICYmIG5nT25EZXN0cm95LmNhbGwodGhpcyk7XG5cbiAgICAvLyBJdCdzIGltcG9ydGFudCB0byB1c2UgYHRoaXNgIGluc3RlYWQgb2YgY2FjaGluZyBpbnN0YW5jZVxuICAgIC8vIHRoYXQgbWF5IGxlYWQgdG8gbWVtb3J5IGxlYWtzXG4gICAgY29tcGxldGVTdWJqZWN0T25UaGVJbnN0YW5jZSh0aGlzLCBnZXRTeW1ib2woKSk7XG5cbiAgICAvLyBDaGVjayBpZiBzdWJzY3JpcHRpb25zIGFyZSBwdXNoZWQgdG8gc29tZSBhcnJheVxuICAgIGlmIChhcnJheU5hbWUpIHtcbiAgICAgIHJldHVybiB1bnN1YnNjcmliZUlmUHJvcGVydHlJc0FycmF5TGlrZSh0aGlzW2FycmF5TmFtZV0pO1xuICAgIH1cblxuICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgcHJvcGVydGllcyBhbmQgZmluZCBzdWJzY3JpcHRpb25zXG4gICAgaWYgKGNoZWNrUHJvcGVydGllcykge1xuICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiB0aGlzKSB7XG4gICAgICAgIGlmIChibGFja0xpc3QgJiYgYmxhY2tMaXN0LmluY2x1ZGVzKHByb3BlcnR5KSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdW5zdWJzY3JpYmUodGhpc1twcm9wZXJ0eV0pO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBTZXJ2aWNlcyBkbyBub3QgaGF2ZSBkZWZpbml0aW9ucywgdGh1cyB3ZSBqdXN0IGhhdmUgdG8gb3ZlcnJpZGUgdGhlXG4gKiBwcm90b3R5cGUgcHJvcGVydHkgaW4gSXZ5XG4gKi9cbmZ1bmN0aW9uIGRlY29yYXRlUHJvdmlkZXIodHlwZTogSW5qZWN0YWJsZVR5cGU8dW5rbm93bj4sIG9wdGlvbnM6IFVudGlsRGVzdHJveU9wdGlvbnMpOiB2b2lkIHtcbiAgdHlwZS5wcm90b3R5cGUubmdPbkRlc3Ryb3kgPSBkZWNvcmF0ZU5nT25EZXN0cm95KHR5cGUucHJvdG90eXBlLm5nT25EZXN0cm95LCBvcHRpb25zKTtcbiAgbWFya0FzRGVjb3JhdGVkKHR5cGUpO1xufVxuXG5mdW5jdGlvbiBkZWNvcmF0ZURpcmVjdGl2ZShcbiAgdHlwZTogRGlyZWN0aXZlVHlwZTx1bmtub3duPiB8IENvbXBvbmVudFR5cGU8dW5rbm93bj4sXG4gIG9wdGlvbnM6IFVudGlsRGVzdHJveU9wdGlvbnNcbik6IHZvaWQge1xuICBjb25zdCBkZWYgPSBnZXREZWYodHlwZSk7XG4gIChkZWYgYXMgYW55KS5vbkRlc3Ryb3kgPSBkZWNvcmF0ZU5nT25EZXN0cm95KGRlZi5vbkRlc3Ryb3ksIG9wdGlvbnMpO1xuICBtYXJrQXNEZWNvcmF0ZWQoZGVmKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFVudGlsRGVzdHJveShvcHRpb25zOiBVbnRpbERlc3Ryb3lPcHRpb25zID0ge30pOiBDbGFzc0RlY29yYXRvciB7XG4gIHJldHVybiAodGFyZ2V0OiBhbnkpID0+IHtcbiAgICBpZiAoaXNJbmplY3RhYmxlVHlwZSh0YXJnZXQpKSB7XG4gICAgICBkZWNvcmF0ZVByb3ZpZGVyKHRhcmdldCwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlY29yYXRlRGlyZWN0aXZlKHRhcmdldCwgb3B0aW9ucyk7XG4gICAgfVxuICB9O1xufVxuIl19
import { takeUntil } from 'rxjs/operators';
import { DESTROY, isFunction, createSubjectOnTheInstance, completeSubjectOnTheInstance, ensureClassIsDecorated } from './internals';
function overrideNonDirectiveInstanceMethod(instance, destroyMethodName) {
import { getSymbol, isFunction, createSubjectOnTheInstance, completeSubjectOnTheInstance, ensureClassIsDecorated } from './internals';
function overrideNonDirectiveInstanceMethod(instance, destroyMethodName, symbol) {
const originalDestroy = instance[destroyMethodName];

@@ -8,6 +8,6 @@ if (isFunction(originalDestroy) === false) {

}
createSubjectOnTheInstance(instance);
createSubjectOnTheInstance(instance, symbol);
instance[destroyMethodName] = function () {
isFunction(originalDestroy) && originalDestroy.apply(this, arguments);
completeSubjectOnTheInstance(this);
completeSubjectOnTheInstance(this, symbol);
// We have to re-assign this property back to the original value.

@@ -22,14 +22,15 @@ // If the `untilDestroyed` operator is called for the same instance

return (source) => {
const symbol = getSymbol(destroyMethodName);
// If `destroyMethodName` is passed then the developer applies
// this operator to something non-related to Angular DI system
if (typeof destroyMethodName === 'string') {
overrideNonDirectiveInstanceMethod(instance, destroyMethodName);
overrideNonDirectiveInstanceMethod(instance, destroyMethodName, symbol);
}
else {
ensureClassIsDecorated(instance);
createSubjectOnTheInstance(instance);
createSubjectOnTheInstance(instance, symbol);
}
return source.pipe(takeUntil(instance[DESTROY]));
return source.pipe(takeUntil(instance[symbol]));
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW50aWwtZGVzdHJveWVkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nbmVhdC91bnRpbC1kZXN0cm95LyIsInNvdXJjZXMiOlsibGliL3VudGlsLWRlc3Ryb3llZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUNMLE9BQU8sRUFDUCxVQUFVLEVBQ1YsMEJBQTBCLEVBQzFCLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdkIsTUFBTSxhQUFhLENBQUM7QUFFckIsU0FBUyxrQ0FBa0MsQ0FBQyxRQUFhLEVBQUUsaUJBQXlCO0lBQ2xGLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRXBELElBQUksVUFBVSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEtBQUssRUFBRTtRQUN6QyxNQUFNLElBQUksS0FBSyxDQUNiLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGtEQUFrRCxpQkFBaUIsRUFBRSxDQUNsRyxDQUFDO0tBQ0g7SUFFRCwwQkFBMEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVyQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsR0FBRztRQUM1QixVQUFVLENBQUMsZUFBZSxDQUFDLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdEUsNEJBQTRCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsaUVBQWlFO1FBQ2pFLG1FQUFtRTtRQUNuRSwyREFBMkQ7UUFDM0Qsd0NBQXdDO1FBQ3hDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLGVBQWUsQ0FBQztJQUNoRCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBSSxRQUFXLEVBQUUsaUJBQTJCO0lBQ3hFLE9BQU8sQ0FBSSxNQUFxQixFQUFFLEVBQUU7UUFDbEMsOERBQThEO1FBQzlELDhEQUE4RDtRQUM5RCxJQUFJLE9BQU8saUJBQWlCLEtBQUssUUFBUSxFQUFFO1lBQ3pDLGtDQUFrQyxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1NBQ2pFO2FBQU07WUFDTCxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqQywwQkFBMEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN0QztRQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUssUUFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgREVTVFJPWSxcbiAgaXNGdW5jdGlvbixcbiAgY3JlYXRlU3ViamVjdE9uVGhlSW5zdGFuY2UsXG4gIGNvbXBsZXRlU3ViamVjdE9uVGhlSW5zdGFuY2UsXG4gIGVuc3VyZUNsYXNzSXNEZWNvcmF0ZWRcbn0gZnJvbSAnLi9pbnRlcm5hbHMnO1xuXG5mdW5jdGlvbiBvdmVycmlkZU5vbkRpcmVjdGl2ZUluc3RhbmNlTWV0aG9kKGluc3RhbmNlOiBhbnksIGRlc3Ryb3lNZXRob2ROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3Qgb3JpZ2luYWxEZXN0cm95ID0gaW5zdGFuY2VbZGVzdHJveU1ldGhvZE5hbWVdO1xuXG4gIGlmIChpc0Z1bmN0aW9uKG9yaWdpbmFsRGVzdHJveSkgPT09IGZhbHNlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYCR7aW5zdGFuY2UuY29uc3RydWN0b3IubmFtZX0gaXMgdXNpbmcgdW50aWxEZXN0cm95ZWQgYnV0IGRvZXNuJ3QgaW1wbGVtZW50ICR7ZGVzdHJveU1ldGhvZE5hbWV9YFxuICAgICk7XG4gIH1cblxuICBjcmVhdGVTdWJqZWN0T25UaGVJbnN0YW5jZShpbnN0YW5jZSk7XG5cbiAgaW5zdGFuY2VbZGVzdHJveU1ldGhvZE5hbWVdID0gZnVuY3Rpb24oKSB7XG4gICAgaXNGdW5jdGlvbihvcmlnaW5hbERlc3Ryb3kpICYmIG9yaWdpbmFsRGVzdHJveS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIGNvbXBsZXRlU3ViamVjdE9uVGhlSW5zdGFuY2UodGhpcyk7XG4gICAgLy8gV2UgaGF2ZSB0byByZS1hc3NpZ24gdGhpcyBwcm9wZXJ0eSBiYWNrIHRvIHRoZSBvcmlnaW5hbCB2YWx1ZS5cbiAgICAvLyBJZiB0aGUgYHVudGlsRGVzdHJveWVkYCBvcGVyYXRvciBpcyBjYWxsZWQgZm9yIHRoZSBzYW1lIGluc3RhbmNlXG4gICAgLy8gbXVsdGlwbGUgdGltZXMsIHRoZW4gd2Ugd2lsbCBiZSBhYmxlIHRvIGdldCB0aGUgb3JpZ2luYWxcbiAgICAvLyBtZXRob2QgYWdhaW4gYW5kIG5vdCB0aGUgcGF0Y2hlZCBvbmUuXG4gICAgaW5zdGFuY2VbZGVzdHJveU1ldGhvZE5hbWVdID0gb3JpZ2luYWxEZXN0cm95O1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW50aWxEZXN0cm95ZWQ8VD4oaW5zdGFuY2U6IFQsIGRlc3Ryb3lNZXRob2ROYW1lPzoga2V5b2YgVCkge1xuICByZXR1cm4gPFU+KHNvdXJjZTogT2JzZXJ2YWJsZTxVPikgPT4ge1xuICAgIC8vIElmIGBkZXN0cm95TWV0aG9kTmFtZWAgaXMgcGFzc2VkIHRoZW4gdGhlIGRldmVsb3BlciBhcHBsaWVzXG4gICAgLy8gdGhpcyBvcGVyYXRvciB0byBzb21ldGhpbmcgbm9uLXJlbGF0ZWQgdG8gQW5ndWxhciBESSBzeXN0ZW1cbiAgICBpZiAodHlwZW9mIGRlc3Ryb3lNZXRob2ROYW1lID09PSAnc3RyaW5nJykge1xuICAgICAgb3ZlcnJpZGVOb25EaXJlY3RpdmVJbnN0YW5jZU1ldGhvZChpbnN0YW5jZSwgZGVzdHJveU1ldGhvZE5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbnN1cmVDbGFzc0lzRGVjb3JhdGVkKGluc3RhbmNlKTtcbiAgICAgIGNyZWF0ZVN1YmplY3RPblRoZUluc3RhbmNlKGluc3RhbmNlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc291cmNlLnBpcGUodGFrZVVudGlsPFU+KChpbnN0YW5jZSBhcyBhbnkpW0RFU1RST1ldKSk7XG4gIH07XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW50aWwtZGVzdHJveWVkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nbmVhdC91bnRpbC1kZXN0cm95LyIsInNvdXJjZXMiOlsibGliL3VudGlsLWRlc3Ryb3llZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsMEJBQTBCLEVBQzFCLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdkIsTUFBTSxhQUFhLENBQUM7QUFFckIsU0FBUyxrQ0FBa0MsQ0FDekMsUUFBYSxFQUNiLGlCQUF5QixFQUN6QixNQUFjO0lBRWQsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFcEQsSUFBSSxVQUFVLENBQUMsZUFBZSxDQUFDLEtBQUssS0FBSyxFQUFFO1FBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksa0RBQWtELGlCQUFpQixFQUFFLENBQ2xHLENBQUM7S0FDSDtJQUVELDBCQUEwQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUU3QyxRQUFRLENBQUMsaUJBQWlCLENBQUMsR0FBRztRQUM1QixVQUFVLENBQUMsZUFBZSxDQUFDLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdEUsNEJBQTRCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLGlFQUFpRTtRQUNqRSxtRUFBbUU7UUFDbkUsMkRBQTJEO1FBQzNELHdDQUF3QztRQUN4QyxRQUFRLENBQUMsaUJBQWlCLENBQUMsR0FBRyxlQUFlLENBQUM7SUFDaEQsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUksUUFBVyxFQUFFLGlCQUEyQjtJQUN4RSxPQUFPLENBQUksTUFBcUIsRUFBRSxFQUFFO1FBQ2xDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBSSxpQkFBaUIsQ0FBQyxDQUFDO1FBRS9DLDhEQUE4RDtRQUM5RCw4REFBOEQ7UUFDOUQsSUFBSSxPQUFPLGlCQUFpQixLQUFLLFFBQVEsRUFBRTtZQUN6QyxrQ0FBa0MsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDekU7YUFBTTtZQUNMLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pDLDBCQUEwQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUM5QztRQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUssUUFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgZ2V0U3ltYm9sLFxuICBpc0Z1bmN0aW9uLFxuICBjcmVhdGVTdWJqZWN0T25UaGVJbnN0YW5jZSxcbiAgY29tcGxldGVTdWJqZWN0T25UaGVJbnN0YW5jZSxcbiAgZW5zdXJlQ2xhc3NJc0RlY29yYXRlZFxufSBmcm9tICcuL2ludGVybmFscyc7XG5cbmZ1bmN0aW9uIG92ZXJyaWRlTm9uRGlyZWN0aXZlSW5zdGFuY2VNZXRob2QoXG4gIGluc3RhbmNlOiBhbnksXG4gIGRlc3Ryb3lNZXRob2ROYW1lOiBzdHJpbmcsXG4gIHN5bWJvbDogc3ltYm9sXG4pOiB2b2lkIHtcbiAgY29uc3Qgb3JpZ2luYWxEZXN0cm95ID0gaW5zdGFuY2VbZGVzdHJveU1ldGhvZE5hbWVdO1xuXG4gIGlmIChpc0Z1bmN0aW9uKG9yaWdpbmFsRGVzdHJveSkgPT09IGZhbHNlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYCR7aW5zdGFuY2UuY29uc3RydWN0b3IubmFtZX0gaXMgdXNpbmcgdW50aWxEZXN0cm95ZWQgYnV0IGRvZXNuJ3QgaW1wbGVtZW50ICR7ZGVzdHJveU1ldGhvZE5hbWV9YFxuICAgICk7XG4gIH1cblxuICBjcmVhdGVTdWJqZWN0T25UaGVJbnN0YW5jZShpbnN0YW5jZSwgc3ltYm9sKTtcblxuICBpbnN0YW5jZVtkZXN0cm95TWV0aG9kTmFtZV0gPSBmdW5jdGlvbigpIHtcbiAgICBpc0Z1bmN0aW9uKG9yaWdpbmFsRGVzdHJveSkgJiYgb3JpZ2luYWxEZXN0cm95LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgY29tcGxldGVTdWJqZWN0T25UaGVJbnN0YW5jZSh0aGlzLCBzeW1ib2wpO1xuICAgIC8vIFdlIGhhdmUgdG8gcmUtYXNzaWduIHRoaXMgcHJvcGVydHkgYmFjayB0byB0aGUgb3JpZ2luYWwgdmFsdWUuXG4gICAgLy8gSWYgdGhlIGB1bnRpbERlc3Ryb3llZGAgb3BlcmF0b3IgaXMgY2FsbGVkIGZvciB0aGUgc2FtZSBpbnN0YW5jZVxuICAgIC8vIG11bHRpcGxlIHRpbWVzLCB0aGVuIHdlIHdpbGwgYmUgYWJsZSB0byBnZXQgdGhlIG9yaWdpbmFsXG4gICAgLy8gbWV0aG9kIGFnYWluIGFuZCBub3QgdGhlIHBhdGNoZWQgb25lLlxuICAgIGluc3RhbmNlW2Rlc3Ryb3lNZXRob2ROYW1lXSA9IG9yaWdpbmFsRGVzdHJveTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVudGlsRGVzdHJveWVkPFQ+KGluc3RhbmNlOiBULCBkZXN0cm95TWV0aG9kTmFtZT86IGtleW9mIFQpIHtcbiAgcmV0dXJuIDxVPihzb3VyY2U6IE9ic2VydmFibGU8VT4pID0+IHtcbiAgICBjb25zdCBzeW1ib2wgPSBnZXRTeW1ib2w8VD4oZGVzdHJveU1ldGhvZE5hbWUpO1xuXG4gICAgLy8gSWYgYGRlc3Ryb3lNZXRob2ROYW1lYCBpcyBwYXNzZWQgdGhlbiB0aGUgZGV2ZWxvcGVyIGFwcGxpZXNcbiAgICAvLyB0aGlzIG9wZXJhdG9yIHRvIHNvbWV0aGluZyBub24tcmVsYXRlZCB0byBBbmd1bGFyIERJIHN5c3RlbVxuICAgIGlmICh0eXBlb2YgZGVzdHJveU1ldGhvZE5hbWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBvdmVycmlkZU5vbkRpcmVjdGl2ZUluc3RhbmNlTWV0aG9kKGluc3RhbmNlLCBkZXN0cm95TWV0aG9kTmFtZSwgc3ltYm9sKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZW5zdXJlQ2xhc3NJc0RlY29yYXRlZChpbnN0YW5jZSk7XG4gICAgICBjcmVhdGVTdWJqZWN0T25UaGVJbnN0YW5jZShpbnN0YW5jZSwgc3ltYm9sKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc291cmNlLnBpcGUodGFrZVVudGlsPFU+KChpbnN0YW5jZSBhcyBhbnkpW3N5bWJvbF0pKTtcbiAgfTtcbn1cbiJdfQ==

@@ -6,5 +6,6 @@ import { Subject } from 'rxjs';

/**
* Applied to instances and stores `Subject` instance
* Applied to instances and stores `Subject` instance when
* no custom destroy method is provided.
*/
export var DESTROY = Symbol('__destroy');
var DESTROY = Symbol('__destroy');
/**

@@ -14,2 +15,17 @@ * Applied to definitions and informs that class is decorated

var DECORATOR_APPLIED = Symbol('__decoratorApplied');
/**
* If we use the `untilDestroyed` operator multiple times inside the single
* instance providing different `destroyMethodName`, then all streams will
* subscribe to the single subject. If any method is invoked, the subject will
* emit and all streams will be unsubscribed. We wan't to prevent this behavior,
* thus we store subjects under different symbols.
*/
export function getSymbol(destroyMethodName) {
if (typeof destroyMethodName === 'string') {
return Symbol("__destroy__" + destroyMethodName);
}
else {
return DESTROY;
}
}
export function markAsDecorated(providerOrDef) {

@@ -27,14 +43,14 @@ providerOrDef[DECORATOR_APPLIED] = true;

}
export function createSubjectOnTheInstance(instance) {
if (!instance[DESTROY]) {
instance[DESTROY] = new Subject();
export function createSubjectOnTheInstance(instance, symbol) {
if (!instance[symbol]) {
instance[symbol] = new Subject();
}
}
export function completeSubjectOnTheInstance(instance) {
if (instance[DESTROY]) {
instance[DESTROY].next();
instance[DESTROY].complete();
export function completeSubjectOnTheInstance(instance, symbol) {
if (instance[symbol]) {
instance[symbol].next();
instance[symbol].complete();
// We also have to re-assign this property thus in the future
// we will be able to create new subject on the same instance.
instance[DESTROY] = null;
instance[symbol] = null;
}

@@ -56,2 +72,2 @@ }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nbmVhdC91bnRpbC1kZXN0cm95LyIsInNvdXJjZXMiOlsibGliL2ludGVybmFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE1BQU0sVUFBVSxVQUFVLENBQUMsTUFBZTtJQUN4QyxPQUFPLE9BQU8sTUFBTSxLQUFLLFVBQVUsQ0FBQztBQUN0QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxPQUFPLEdBQWtCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUUxRDs7R0FFRztBQUNILElBQU0saUJBQWlCLEdBQWtCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBRXRFLE1BQU0sVUFBVSxlQUFlLENBQzdCLGFBQXNGO0lBRXJGLGFBQXFCLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDbkQsQ0FBQztBQVFELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxRQUFhO0lBQ2xELElBQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7SUFDekMsSUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hGLElBQU0sZ0JBQWdCLEdBQUcsQ0FBRSxhQUFxQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFcEUsSUFBSSxnQkFBZ0IsRUFBRTtRQUNwQixNQUFNLElBQUksS0FBSyxDQUNiLDhEQUE4RDtZQUM1RCw0RUFBNEUsQ0FDL0UsQ0FBQztLQUNIO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxRQUFhO0lBQ3RELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDdEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7S0FDekM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLDRCQUE0QixDQUFDLFFBQWE7SUFDeEQsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDckIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3Qiw2REFBNkQ7UUFDN0QsOERBQThEO1FBQzlELFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUM7S0FDMUI7QUFDSCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FDcEIsSUFBeUM7SUFFekMsT0FBUSxJQUF5QixDQUFDLElBQUksSUFBSyxJQUF5QixDQUFDLElBQUksQ0FBQztBQUM1RSxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQVc7SUFDMUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztBQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZVR5cGUsXG4gIMm1Q29tcG9uZW50VHlwZSBhcyBDb21wb25lbnRUeXBlLFxuICDJtURpcmVjdGl2ZVR5cGUgYXMgRGlyZWN0aXZlVHlwZSxcbiAgybVDb21wb25lbnREZWYgYXMgQ29tcG9uZW50RGVmLFxuICDJtURpcmVjdGl2ZURlZiBhcyBEaXJlY3RpdmVEZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKHRhcmdldDogdW5rbm93bikge1xuICByZXR1cm4gdHlwZW9mIHRhcmdldCA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuLyoqXG4gKiBBcHBsaWVkIHRvIGluc3RhbmNlcyBhbmQgc3RvcmVzIGBTdWJqZWN0YCBpbnN0YW5jZVxuICovXG5leHBvcnQgY29uc3QgREVTVFJPWTogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbCgnX19kZXN0cm95Jyk7XG5cbi8qKlxuICogQXBwbGllZCB0byBkZWZpbml0aW9ucyBhbmQgaW5mb3JtcyB0aGF0IGNsYXNzIGlzIGRlY29yYXRlZFxuICovXG5jb25zdCBERUNPUkFUT1JfQVBQTElFRDogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbCgnX19kZWNvcmF0b3JBcHBsaWVkJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXJrQXNEZWNvcmF0ZWQoXG4gIHByb3ZpZGVyT3JEZWY6IEluamVjdGFibGVUeXBlPHVua25vd24+IHwgRGlyZWN0aXZlRGVmPHVua25vd24+IHwgQ29tcG9uZW50RGVmPHVua25vd24+XG4pOiB2b2lkIHtcbiAgKHByb3ZpZGVyT3JEZWYgYXMgYW55KVtERUNPUkFUT1JfQVBQTElFRF0gPSB0cnVlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVudGlsRGVzdHJveU9wdGlvbnMge1xuICBibGFja0xpc3Q/OiBzdHJpbmdbXTtcbiAgYXJyYXlOYW1lPzogc3RyaW5nO1xuICBjaGVja1Byb3BlcnRpZXM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlQ2xhc3NJc0RlY29yYXRlZChpbnN0YW5jZTogYW55KTogbmV2ZXIgfCB2b2lkIHtcbiAgY29uc3QgY29uc3RydWN0b3IgPSBpbnN0YW5jZS5jb25zdHJ1Y3RvcjtcbiAgY29uc3QgcHJvdmlkZXJPckRlZiA9IGlzSW5qZWN0YWJsZVR5cGUoY29uc3RydWN0b3IpID8gY29uc3RydWN0b3IgOiBnZXREZWYoY29uc3RydWN0b3IpO1xuICBjb25zdCBtaXNzaW5nRGVjb3JhdG9yID0gIShwcm92aWRlck9yRGVmIGFzIGFueSlbREVDT1JBVE9SX0FQUExJRURdO1xuXG4gIGlmIChtaXNzaW5nRGVjb3JhdG9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ3VudGlsRGVzdHJveWVkIG9wZXJhdG9yIGNhbm5vdCBiZSB1c2VkIGluc2lkZSBkaXJlY3RpdmVzIG9yICcgK1xuICAgICAgICAnY29tcG9uZW50cyBvciBwcm92aWRlcnMgdGhhdCBhcmUgbm90IGRlY29yYXRlZCB3aXRoIFVudGlsRGVzdHJveSBkZWNvcmF0b3InXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3ViamVjdE9uVGhlSW5zdGFuY2UoaW5zdGFuY2U6IGFueSk6IHZvaWQge1xuICBpZiAoIWluc3RhbmNlW0RFU1RST1ldKSB7XG4gICAgaW5zdGFuY2VbREVTVFJPWV0gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wbGV0ZVN1YmplY3RPblRoZUluc3RhbmNlKGluc3RhbmNlOiBhbnkpOiB2b2lkIHtcbiAgaWYgKGluc3RhbmNlW0RFU1RST1ldKSB7XG4gICAgaW5zdGFuY2VbREVTVFJPWV0ubmV4dCgpO1xuICAgIGluc3RhbmNlW0RFU1RST1ldLmNvbXBsZXRlKCk7XG4gICAgLy8gV2UgYWxzbyBoYXZlIHRvIHJlLWFzc2lnbiB0aGlzIHByb3BlcnR5IHRodXMgaW4gdGhlIGZ1dHVyZVxuICAgIC8vIHdlIHdpbGwgYmUgYWJsZSB0byBjcmVhdGUgbmV3IHN1YmplY3Qgb24gdGhlIHNhbWUgaW5zdGFuY2UuXG4gICAgaW5zdGFuY2VbREVTVFJPWV0gPSBudWxsO1xuICB9XG59XG5cbi8qKlxuICogQXMgZGlyZWN0aXZlIGFuZCBjb21wb25lbnQgZGVmaW5pdGlvbnMgYXJlIGNvbnNpZGVyZWQgcHJpdmF0ZSBBUEksXG4gKiBzbyB0aG9zZSBwcm9wZXJ0aWVzIGFyZSBwcmVmaXhlZCB3aXRoIEFuZ3VsYXIncyBtYXJrZXIgZm9yIFwicHJpdmF0ZVwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWY8VD4oXG4gIHR5cGU6IERpcmVjdGl2ZVR5cGU8VD4gfCBDb21wb25lbnRUeXBlPFQ+XG4pOiBEaXJlY3RpdmVEZWY8VD4gfCBDb21wb25lbnREZWY8VD4ge1xuICByZXR1cm4gKHR5cGUgYXMgQ29tcG9uZW50VHlwZTxUPikuybVjbXAgfHwgKHR5cGUgYXMgRGlyZWN0aXZlVHlwZTxUPikuybVkaXI7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwcm92aWRlZCBgdGFyZ2V0YCBpcyBzb21lIGZ1bmN0aW9uXG4gKiBkZWNvcmF0ZWQgd2l0aCBgQEluamVjdGFibGUoKWBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW5qZWN0YWJsZVR5cGUodGFyZ2V0OiBhbnkpOiB0YXJnZXQgaXMgSW5qZWN0YWJsZVR5cGU8dW5rbm93bj4ge1xuICByZXR1cm4gISF0YXJnZXQuybVwcm92O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nbmVhdC91bnRpbC1kZXN0cm95LyIsInNvdXJjZXMiOlsibGliL2ludGVybmFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE1BQU0sVUFBVSxVQUFVLENBQUMsTUFBZTtJQUN4QyxPQUFPLE9BQU8sTUFBTSxLQUFLLFVBQVUsQ0FBQztBQUN0QyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsSUFBTSxPQUFPLEdBQWtCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUVuRDs7R0FFRztBQUNILElBQU0saUJBQWlCLEdBQWtCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBRXRFOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUksaUJBQTJCO0lBQ3RELElBQUksT0FBTyxpQkFBaUIsS0FBSyxRQUFRLEVBQUU7UUFDekMsT0FBTyxNQUFNLENBQUMsZ0JBQWMsaUJBQW1CLENBQUMsQ0FBQztLQUNsRDtTQUFNO1FBQ0wsT0FBTyxPQUFPLENBQUM7S0FDaEI7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FDN0IsYUFBc0Y7SUFFckYsYUFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUNuRCxDQUFDO0FBUUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLFFBQWE7SUFDbEQsSUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQztJQUN6QyxJQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEYsSUFBTSxnQkFBZ0IsR0FBRyxDQUFFLGFBQXFCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUVwRSxJQUFJLGdCQUFnQixFQUFFO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQ2IsOERBQThEO1lBQzVELDRFQUE0RSxDQUMvRSxDQUFDO0tBQ0g7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUFDLFFBQWEsRUFBRSxNQUFjO0lBQ3RFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDckIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7S0FDeEM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLDRCQUE0QixDQUFDLFFBQWEsRUFBRSxNQUFjO0lBQ3hFLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3BCLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QixRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUIsNkRBQTZEO1FBQzdELDhEQUE4RDtRQUM5RCxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO0tBQ3pCO0FBQ0gsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxNQUFNLENBQ3BCLElBQXlDO0lBRXpDLE9BQVEsSUFBeUIsQ0FBQyxJQUFJLElBQUssSUFBeUIsQ0FBQyxJQUFJLENBQUM7QUFDNUUsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFXO0lBQzFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7QUFDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGVUeXBlLFxuICDJtUNvbXBvbmVudFR5cGUgYXMgQ29tcG9uZW50VHlwZSxcbiAgybVEaXJlY3RpdmVUeXBlIGFzIERpcmVjdGl2ZVR5cGUsXG4gIMm1Q29tcG9uZW50RGVmIGFzIENvbXBvbmVudERlZixcbiAgybVEaXJlY3RpdmVEZWYgYXMgRGlyZWN0aXZlRGVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNGdW5jdGlvbih0YXJnZXQ6IHVua25vd24pIHtcbiAgcmV0dXJuIHR5cGVvZiB0YXJnZXQgPT09ICdmdW5jdGlvbic7XG59XG5cbi8qKlxuICogQXBwbGllZCB0byBpbnN0YW5jZXMgYW5kIHN0b3JlcyBgU3ViamVjdGAgaW5zdGFuY2Ugd2hlblxuICogbm8gY3VzdG9tIGRlc3Ryb3kgbWV0aG9kIGlzIHByb3ZpZGVkLlxuICovXG5jb25zdCBERVNUUk9ZOiB1bmlxdWUgc3ltYm9sID0gU3ltYm9sKCdfX2Rlc3Ryb3knKTtcblxuLyoqXG4gKiBBcHBsaWVkIHRvIGRlZmluaXRpb25zIGFuZCBpbmZvcm1zIHRoYXQgY2xhc3MgaXMgZGVjb3JhdGVkXG4gKi9cbmNvbnN0IERFQ09SQVRPUl9BUFBMSUVEOiB1bmlxdWUgc3ltYm9sID0gU3ltYm9sKCdfX2RlY29yYXRvckFwcGxpZWQnKTtcblxuLyoqXG4gKiBJZiB3ZSB1c2UgdGhlIGB1bnRpbERlc3Ryb3llZGAgb3BlcmF0b3IgbXVsdGlwbGUgdGltZXMgaW5zaWRlIHRoZSBzaW5nbGVcbiAqIGluc3RhbmNlIHByb3ZpZGluZyBkaWZmZXJlbnQgYGRlc3Ryb3lNZXRob2ROYW1lYCwgdGhlbiBhbGwgc3RyZWFtcyB3aWxsXG4gKiBzdWJzY3JpYmUgdG8gdGhlIHNpbmdsZSBzdWJqZWN0LiBJZiBhbnkgbWV0aG9kIGlzIGludm9rZWQsIHRoZSBzdWJqZWN0IHdpbGxcbiAqIGVtaXQgYW5kIGFsbCBzdHJlYW1zIHdpbGwgYmUgdW5zdWJzY3JpYmVkLiBXZSB3YW4ndCB0byBwcmV2ZW50IHRoaXMgYmVoYXZpb3IsXG4gKiB0aHVzIHdlIHN0b3JlIHN1YmplY3RzIHVuZGVyIGRpZmZlcmVudCBzeW1ib2xzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3ltYm9sPFQ+KGRlc3Ryb3lNZXRob2ROYW1lPzoga2V5b2YgVCk6IHN5bWJvbCB7XG4gIGlmICh0eXBlb2YgZGVzdHJveU1ldGhvZE5hbWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIFN5bWJvbChgX19kZXN0cm95X18ke2Rlc3Ryb3lNZXRob2ROYW1lfWApO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBERVNUUk9ZO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXJrQXNEZWNvcmF0ZWQoXG4gIHByb3ZpZGVyT3JEZWY6IEluamVjdGFibGVUeXBlPHVua25vd24+IHwgRGlyZWN0aXZlRGVmPHVua25vd24+IHwgQ29tcG9uZW50RGVmPHVua25vd24+XG4pOiB2b2lkIHtcbiAgKHByb3ZpZGVyT3JEZWYgYXMgYW55KVtERUNPUkFUT1JfQVBQTElFRF0gPSB0cnVlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVudGlsRGVzdHJveU9wdGlvbnMge1xuICBibGFja0xpc3Q/OiBzdHJpbmdbXTtcbiAgYXJyYXlOYW1lPzogc3RyaW5nO1xuICBjaGVja1Byb3BlcnRpZXM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlQ2xhc3NJc0RlY29yYXRlZChpbnN0YW5jZTogYW55KTogbmV2ZXIgfCB2b2lkIHtcbiAgY29uc3QgY29uc3RydWN0b3IgPSBpbnN0YW5jZS5jb25zdHJ1Y3RvcjtcbiAgY29uc3QgcHJvdmlkZXJPckRlZiA9IGlzSW5qZWN0YWJsZVR5cGUoY29uc3RydWN0b3IpID8gY29uc3RydWN0b3IgOiBnZXREZWYoY29uc3RydWN0b3IpO1xuICBjb25zdCBtaXNzaW5nRGVjb3JhdG9yID0gIShwcm92aWRlck9yRGVmIGFzIGFueSlbREVDT1JBVE9SX0FQUExJRURdO1xuXG4gIGlmIChtaXNzaW5nRGVjb3JhdG9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ3VudGlsRGVzdHJveWVkIG9wZXJhdG9yIGNhbm5vdCBiZSB1c2VkIGluc2lkZSBkaXJlY3RpdmVzIG9yICcgK1xuICAgICAgICAnY29tcG9uZW50cyBvciBwcm92aWRlcnMgdGhhdCBhcmUgbm90IGRlY29yYXRlZCB3aXRoIFVudGlsRGVzdHJveSBkZWNvcmF0b3InXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3ViamVjdE9uVGhlSW5zdGFuY2UoaW5zdGFuY2U6IGFueSwgc3ltYm9sOiBzeW1ib2wpOiB2b2lkIHtcbiAgaWYgKCFpbnN0YW5jZVtzeW1ib2xdKSB7XG4gICAgaW5zdGFuY2Vbc3ltYm9sXSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBsZXRlU3ViamVjdE9uVGhlSW5zdGFuY2UoaW5zdGFuY2U6IGFueSwgc3ltYm9sOiBzeW1ib2wpOiB2b2lkIHtcbiAgaWYgKGluc3RhbmNlW3N5bWJvbF0pIHtcbiAgICBpbnN0YW5jZVtzeW1ib2xdLm5leHQoKTtcbiAgICBpbnN0YW5jZVtzeW1ib2xdLmNvbXBsZXRlKCk7XG4gICAgLy8gV2UgYWxzbyBoYXZlIHRvIHJlLWFzc2lnbiB0aGlzIHByb3BlcnR5IHRodXMgaW4gdGhlIGZ1dHVyZVxuICAgIC8vIHdlIHdpbGwgYmUgYWJsZSB0byBjcmVhdGUgbmV3IHN1YmplY3Qgb24gdGhlIHNhbWUgaW5zdGFuY2UuXG4gICAgaW5zdGFuY2Vbc3ltYm9sXSA9IG51bGw7XG4gIH1cbn1cblxuLyoqXG4gKiBBcyBkaXJlY3RpdmUgYW5kIGNvbXBvbmVudCBkZWZpbml0aW9ucyBhcmUgY29uc2lkZXJlZCBwcml2YXRlIEFQSSxcbiAqIHNvIHRob3NlIHByb3BlcnRpZXMgYXJlIHByZWZpeGVkIHdpdGggQW5ndWxhcidzIG1hcmtlciBmb3IgXCJwcml2YXRlXCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlZjxUPihcbiAgdHlwZTogRGlyZWN0aXZlVHlwZTxUPiB8IENvbXBvbmVudFR5cGU8VD5cbik6IERpcmVjdGl2ZURlZjxUPiB8IENvbXBvbmVudERlZjxUPiB7XG4gIHJldHVybiAodHlwZSBhcyBDb21wb25lbnRUeXBlPFQ+KS7JtWNtcCB8fCAodHlwZSBhcyBEaXJlY3RpdmVUeXBlPFQ+KS7JtWRpcjtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHByb3ZpZGVkIGB0YXJnZXRgIGlzIHNvbWUgZnVuY3Rpb25cbiAqIGRlY29yYXRlZCB3aXRoIGBASW5qZWN0YWJsZSgpYFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNJbmplY3RhYmxlVHlwZSh0YXJnZXQ6IGFueSk6IHRhcmdldCBpcyBJbmplY3RhYmxlVHlwZTx1bmtub3duPiB7XG4gIHJldHVybiAhIXRhcmdldC7JtXByb3Y7XG59XG4iXX0=

@@ -1,2 +0,2 @@

import { getDef, isFunction, completeSubjectOnTheInstance, isInjectableType, markAsDecorated } from './internals';
import { getDef, getSymbol, isFunction, completeSubjectOnTheInstance, isInjectableType, markAsDecorated } from './internals';
function unsubscribe(property) {

@@ -15,3 +15,3 @@ property && isFunction(property.unsubscribe) && property.unsubscribe();

// that may lead to memory leaks
completeSubjectOnTheInstance(this);
completeSubjectOnTheInstance(this, getSymbol());
// Check if subscriptions are pushed to some array

@@ -56,2 +56,2 @@ if (arrayName) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW50aWwtZGVzdHJveS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ25lYXQvdW50aWwtZGVzdHJveS8iLCJzb3VyY2VzIjpbImxpYi91bnRpbC1kZXN0cm95LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUVWLDRCQUE0QixFQUM1QixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNoQixNQUFNLGFBQWEsQ0FBQztBQUVyQixTQUFTLFdBQVcsQ0FBQyxRQUFhO0lBQ2hDLFFBQVEsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUN6RSxDQUFDO0FBRUQsU0FBUyxnQ0FBZ0MsQ0FBQyxRQUFlO0lBQ3ZELEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FDMUIsV0FBNEMsRUFDNUMsRUFBOEQ7UUFBNUQsd0JBQVMsRUFBRSxvQ0FBZSxFQUFFLHdCQUFTO0lBRXZDLE9BQU87UUFDTCxpREFBaUQ7UUFDakQsV0FBVyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEMsMkRBQTJEO1FBQzNELGdDQUFnQztRQUNoQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuQyxrREFBa0Q7UUFDbEQsSUFBSSxTQUFTLEVBQUU7WUFDYixPQUFPLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQzFEO1FBRUQscURBQXFEO1FBQ3JELElBQUksZUFBZSxFQUFFO1lBQ25CLEtBQUssSUFBTSxRQUFRLElBQUksSUFBSSxFQUFFO2dCQUMzQixJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUM3QyxTQUFTO2lCQUNWO2dCQUVELFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzthQUM3QjtTQUNGO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsSUFBNkIsRUFBRSxPQUE0QjtJQUNuRixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RixlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDeEIsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQ3hCLElBQXFELEVBQ3JELE9BQTRCO0lBRTVCLElBQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixHQUFXLENBQUMsU0FBUyxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLE9BQWlDO0lBQWpDLHdCQUFBLEVBQUEsWUFBaUM7SUFDNUQsT0FBTyxVQUFDLE1BQVc7UUFDakIsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QixnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDbkM7YUFBTTtZQUNMLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlVHlwZSxcbiAgybVDb21wb25lbnRUeXBlIGFzIENvbXBvbmVudFR5cGUsXG4gIMm1RGlyZWN0aXZlVHlwZSBhcyBEaXJlY3RpdmVUeXBlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBnZXREZWYsXG4gIGlzRnVuY3Rpb24sXG4gIFVudGlsRGVzdHJveU9wdGlvbnMsXG4gIGNvbXBsZXRlU3ViamVjdE9uVGhlSW5zdGFuY2UsXG4gIGlzSW5qZWN0YWJsZVR5cGUsXG4gIG1hcmtBc0RlY29yYXRlZFxufSBmcm9tICcuL2ludGVybmFscyc7XG5cbmZ1bmN0aW9uIHVuc3Vic2NyaWJlKHByb3BlcnR5OiBhbnkpOiB2b2lkIHtcbiAgcHJvcGVydHkgJiYgaXNGdW5jdGlvbihwcm9wZXJ0eS51bnN1YnNjcmliZSkgJiYgcHJvcGVydHkudW5zdWJzY3JpYmUoKTtcbn1cblxuZnVuY3Rpb24gdW5zdWJzY3JpYmVJZlByb3BlcnR5SXNBcnJheUxpa2UocHJvcGVydHk6IGFueVtdKTogdm9pZCB7XG4gIEFycmF5LmlzQXJyYXkocHJvcGVydHkpICYmIHByb3BlcnR5LmZvckVhY2godW5zdWJzY3JpYmUpO1xufVxuXG5mdW5jdGlvbiBkZWNvcmF0ZU5nT25EZXN0cm95KFxuICBuZ09uRGVzdHJveTogKCgpID0+IHZvaWQpIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgeyBhcnJheU5hbWUsIGNoZWNrUHJvcGVydGllcywgYmxhY2tMaXN0IH06IFVudGlsRGVzdHJveU9wdGlvbnNcbikge1xuICByZXR1cm4gZnVuY3Rpb24odGhpczogYW55KSB7XG4gICAgLy8gSW52b2tlIHRoZSBvcmlnaW5hbCBgbmdPbkRlc3Ryb3lgIGlmIGl0IGV4aXN0c1xuICAgIG5nT25EZXN0cm95ICYmIG5nT25EZXN0cm95LmNhbGwodGhpcyk7XG5cbiAgICAvLyBJdCdzIGltcG9ydGFudCB0byB1c2UgYHRoaXNgIGluc3RlYWQgb2YgY2FjaGluZyBpbnN0YW5jZVxuICAgIC8vIHRoYXQgbWF5IGxlYWQgdG8gbWVtb3J5IGxlYWtzXG4gICAgY29tcGxldGVTdWJqZWN0T25UaGVJbnN0YW5jZSh0aGlzKTtcblxuICAgIC8vIENoZWNrIGlmIHN1YnNjcmlwdGlvbnMgYXJlIHB1c2hlZCB0byBzb21lIGFycmF5XG4gICAgaWYgKGFycmF5TmFtZSkge1xuICAgICAgcmV0dXJuIHVuc3Vic2NyaWJlSWZQcm9wZXJ0eUlzQXJyYXlMaWtlKHRoaXNbYXJyYXlOYW1lXSk7XG4gICAgfVxuXG4gICAgLy8gTG9vcCB0aHJvdWdoIHRoZSBwcm9wZXJ0aWVzIGFuZCBmaW5kIHN1YnNjcmlwdGlvbnNcbiAgICBpZiAoY2hlY2tQcm9wZXJ0aWVzKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIHRoaXMpIHtcbiAgICAgICAgaWYgKGJsYWNrTGlzdCAmJiBibGFja0xpc3QuaW5jbHVkZXMocHJvcGVydHkpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICB1bnN1YnNjcmliZSh0aGlzW3Byb3BlcnR5XSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIFNlcnZpY2VzIGRvIG5vdCBoYXZlIGRlZmluaXRpb25zLCB0aHVzIHdlIGp1c3QgaGF2ZSB0byBvdmVycmlkZSB0aGVcbiAqIHByb3RvdHlwZSBwcm9wZXJ0eSBpbiBJdnlcbiAqL1xuZnVuY3Rpb24gZGVjb3JhdGVQcm92aWRlcih0eXBlOiBJbmplY3RhYmxlVHlwZTx1bmtub3duPiwgb3B0aW9uczogVW50aWxEZXN0cm95T3B0aW9ucyk6IHZvaWQge1xuICB0eXBlLnByb3RvdHlwZS5uZ09uRGVzdHJveSA9IGRlY29yYXRlTmdPbkRlc3Ryb3kodHlwZS5wcm90b3R5cGUubmdPbkRlc3Ryb3ksIG9wdGlvbnMpO1xuICBtYXJrQXNEZWNvcmF0ZWQodHlwZSk7XG59XG5cbmZ1bmN0aW9uIGRlY29yYXRlRGlyZWN0aXZlKFxuICB0eXBlOiBEaXJlY3RpdmVUeXBlPHVua25vd24+IHwgQ29tcG9uZW50VHlwZTx1bmtub3duPixcbiAgb3B0aW9uczogVW50aWxEZXN0cm95T3B0aW9uc1xuKTogdm9pZCB7XG4gIGNvbnN0IGRlZiA9IGdldERlZih0eXBlKTtcbiAgKGRlZiBhcyBhbnkpLm9uRGVzdHJveSA9IGRlY29yYXRlTmdPbkRlc3Ryb3koZGVmLm9uRGVzdHJveSwgb3B0aW9ucyk7XG4gIG1hcmtBc0RlY29yYXRlZChkZWYpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVW50aWxEZXN0cm95KG9wdGlvbnM6IFVudGlsRGVzdHJveU9wdGlvbnMgPSB7fSk6IENsYXNzRGVjb3JhdG9yIHtcbiAgcmV0dXJuICh0YXJnZXQ6IGFueSkgPT4ge1xuICAgIGlmIChpc0luamVjdGFibGVUeXBlKHRhcmdldCkpIHtcbiAgICAgIGRlY29yYXRlUHJvdmlkZXIodGFyZ2V0LCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb3JhdGVEaXJlY3RpdmUodGFyZ2V0LCBvcHRpb25zKTtcbiAgICB9XG4gIH07XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW50aWwtZGVzdHJveS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ25lYXQvdW50aWwtZGVzdHJveS8iLCJzb3VyY2VzIjpbImxpYi91bnRpbC1kZXN0cm95LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFVBQVUsRUFFViw0QkFBNEIsRUFDNUIsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDaEIsTUFBTSxhQUFhLENBQUM7QUFFckIsU0FBUyxXQUFXLENBQUMsUUFBYTtJQUNoQyxRQUFRLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDekUsQ0FBQztBQUVELFNBQVMsZ0NBQWdDLENBQUMsUUFBZTtJQUN2RCxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQzFCLFdBQTRDLEVBQzVDLEVBQThEO1FBQTVELHdCQUFTLEVBQUUsb0NBQWUsRUFBRSx3QkFBUztJQUV2QyxPQUFPO1FBQ0wsaURBQWlEO1FBQ2pELFdBQVcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXRDLDJEQUEyRDtRQUMzRCxnQ0FBZ0M7UUFDaEMsNEJBQTRCLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFFaEQsa0RBQWtEO1FBQ2xELElBQUksU0FBUyxFQUFFO1lBQ2IsT0FBTyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUMxRDtRQUVELHFEQUFxRDtRQUNyRCxJQUFJLGVBQWUsRUFBRTtZQUNuQixLQUFLLElBQU0sUUFBUSxJQUFJLElBQUksRUFBRTtnQkFDM0IsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDN0MsU0FBUztpQkFDVjtnQkFFRCxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7YUFDN0I7U0FDRjtJQUNILENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLGdCQUFnQixDQUFDLElBQTZCLEVBQUUsT0FBNEI7SUFDbkYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEYsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUN4QixJQUFxRCxFQUNyRCxPQUE0QjtJQUU1QixJQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsR0FBVyxDQUFDLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JFLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFpQztJQUFqQyx3QkFBQSxFQUFBLFlBQWlDO0lBQzVELE9BQU8sVUFBQyxNQUFXO1FBQ2pCLElBQUksZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDNUIsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ25DO2FBQU07WUFDTCxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZVR5cGUsXG4gIMm1Q29tcG9uZW50VHlwZSBhcyBDb21wb25lbnRUeXBlLFxuICDJtURpcmVjdGl2ZVR5cGUgYXMgRGlyZWN0aXZlVHlwZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgZ2V0RGVmLFxuICBnZXRTeW1ib2wsXG4gIGlzRnVuY3Rpb24sXG4gIFVudGlsRGVzdHJveU9wdGlvbnMsXG4gIGNvbXBsZXRlU3ViamVjdE9uVGhlSW5zdGFuY2UsXG4gIGlzSW5qZWN0YWJsZVR5cGUsXG4gIG1hcmtBc0RlY29yYXRlZFxufSBmcm9tICcuL2ludGVybmFscyc7XG5cbmZ1bmN0aW9uIHVuc3Vic2NyaWJlKHByb3BlcnR5OiBhbnkpOiB2b2lkIHtcbiAgcHJvcGVydHkgJiYgaXNGdW5jdGlvbihwcm9wZXJ0eS51bnN1YnNjcmliZSkgJiYgcHJvcGVydHkudW5zdWJzY3JpYmUoKTtcbn1cblxuZnVuY3Rpb24gdW5zdWJzY3JpYmVJZlByb3BlcnR5SXNBcnJheUxpa2UocHJvcGVydHk6IGFueVtdKTogdm9pZCB7XG4gIEFycmF5LmlzQXJyYXkocHJvcGVydHkpICYmIHByb3BlcnR5LmZvckVhY2godW5zdWJzY3JpYmUpO1xufVxuXG5mdW5jdGlvbiBkZWNvcmF0ZU5nT25EZXN0cm95KFxuICBuZ09uRGVzdHJveTogKCgpID0+IHZvaWQpIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgeyBhcnJheU5hbWUsIGNoZWNrUHJvcGVydGllcywgYmxhY2tMaXN0IH06IFVudGlsRGVzdHJveU9wdGlvbnNcbikge1xuICByZXR1cm4gZnVuY3Rpb24odGhpczogYW55KSB7XG4gICAgLy8gSW52b2tlIHRoZSBvcmlnaW5hbCBgbmdPbkRlc3Ryb3lgIGlmIGl0IGV4aXN0c1xuICAgIG5nT25EZXN0cm95ICYmIG5nT25EZXN0cm95LmNhbGwodGhpcyk7XG5cbiAgICAvLyBJdCdzIGltcG9ydGFudCB0byB1c2UgYHRoaXNgIGluc3RlYWQgb2YgY2FjaGluZyBpbnN0YW5jZVxuICAgIC8vIHRoYXQgbWF5IGxlYWQgdG8gbWVtb3J5IGxlYWtzXG4gICAgY29tcGxldGVTdWJqZWN0T25UaGVJbnN0YW5jZSh0aGlzLCBnZXRTeW1ib2woKSk7XG5cbiAgICAvLyBDaGVjayBpZiBzdWJzY3JpcHRpb25zIGFyZSBwdXNoZWQgdG8gc29tZSBhcnJheVxuICAgIGlmIChhcnJheU5hbWUpIHtcbiAgICAgIHJldHVybiB1bnN1YnNjcmliZUlmUHJvcGVydHlJc0FycmF5TGlrZSh0aGlzW2FycmF5TmFtZV0pO1xuICAgIH1cblxuICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgcHJvcGVydGllcyBhbmQgZmluZCBzdWJzY3JpcHRpb25zXG4gICAgaWYgKGNoZWNrUHJvcGVydGllcykge1xuICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiB0aGlzKSB7XG4gICAgICAgIGlmIChibGFja0xpc3QgJiYgYmxhY2tMaXN0LmluY2x1ZGVzKHByb3BlcnR5KSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdW5zdWJzY3JpYmUodGhpc1twcm9wZXJ0eV0pO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBTZXJ2aWNlcyBkbyBub3QgaGF2ZSBkZWZpbml0aW9ucywgdGh1cyB3ZSBqdXN0IGhhdmUgdG8gb3ZlcnJpZGUgdGhlXG4gKiBwcm90b3R5cGUgcHJvcGVydHkgaW4gSXZ5XG4gKi9cbmZ1bmN0aW9uIGRlY29yYXRlUHJvdmlkZXIodHlwZTogSW5qZWN0YWJsZVR5cGU8dW5rbm93bj4sIG9wdGlvbnM6IFVudGlsRGVzdHJveU9wdGlvbnMpOiB2b2lkIHtcbiAgdHlwZS5wcm90b3R5cGUubmdPbkRlc3Ryb3kgPSBkZWNvcmF0ZU5nT25EZXN0cm95KHR5cGUucHJvdG90eXBlLm5nT25EZXN0cm95LCBvcHRpb25zKTtcbiAgbWFya0FzRGVjb3JhdGVkKHR5cGUpO1xufVxuXG5mdW5jdGlvbiBkZWNvcmF0ZURpcmVjdGl2ZShcbiAgdHlwZTogRGlyZWN0aXZlVHlwZTx1bmtub3duPiB8IENvbXBvbmVudFR5cGU8dW5rbm93bj4sXG4gIG9wdGlvbnM6IFVudGlsRGVzdHJveU9wdGlvbnNcbik6IHZvaWQge1xuICBjb25zdCBkZWYgPSBnZXREZWYodHlwZSk7XG4gIChkZWYgYXMgYW55KS5vbkRlc3Ryb3kgPSBkZWNvcmF0ZU5nT25EZXN0cm95KGRlZi5vbkRlc3Ryb3ksIG9wdGlvbnMpO1xuICBtYXJrQXNEZWNvcmF0ZWQoZGVmKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFVudGlsRGVzdHJveShvcHRpb25zOiBVbnRpbERlc3Ryb3lPcHRpb25zID0ge30pOiBDbGFzc0RlY29yYXRvciB7XG4gIHJldHVybiAodGFyZ2V0OiBhbnkpID0+IHtcbiAgICBpZiAoaXNJbmplY3RhYmxlVHlwZSh0YXJnZXQpKSB7XG4gICAgICBkZWNvcmF0ZVByb3ZpZGVyKHRhcmdldCwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlY29yYXRlRGlyZWN0aXZlKHRhcmdldCwgb3B0aW9ucyk7XG4gICAgfVxuICB9O1xufVxuIl19
import { takeUntil } from 'rxjs/operators';
import { DESTROY, isFunction, createSubjectOnTheInstance, completeSubjectOnTheInstance, ensureClassIsDecorated } from './internals';
function overrideNonDirectiveInstanceMethod(instance, destroyMethodName) {
import { getSymbol, isFunction, createSubjectOnTheInstance, completeSubjectOnTheInstance, ensureClassIsDecorated } from './internals';
function overrideNonDirectiveInstanceMethod(instance, destroyMethodName, symbol) {
var originalDestroy = instance[destroyMethodName];

@@ -8,6 +8,6 @@ if (isFunction(originalDestroy) === false) {

}
createSubjectOnTheInstance(instance);
createSubjectOnTheInstance(instance, symbol);
instance[destroyMethodName] = function () {
isFunction(originalDestroy) && originalDestroy.apply(this, arguments);
completeSubjectOnTheInstance(this);
completeSubjectOnTheInstance(this, symbol);
// We have to re-assign this property back to the original value.

@@ -22,14 +22,15 @@ // If the `untilDestroyed` operator is called for the same instance

return function (source) {
var symbol = getSymbol(destroyMethodName);
// If `destroyMethodName` is passed then the developer applies
// this operator to something non-related to Angular DI system
if (typeof destroyMethodName === 'string') {
overrideNonDirectiveInstanceMethod(instance, destroyMethodName);
overrideNonDirectiveInstanceMethod(instance, destroyMethodName, symbol);
}
else {
ensureClassIsDecorated(instance);
createSubjectOnTheInstance(instance);
createSubjectOnTheInstance(instance, symbol);
}
return source.pipe(takeUntil(instance[DESTROY]));
return source.pipe(takeUntil(instance[symbol]));
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW50aWwtZGVzdHJveWVkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nbmVhdC91bnRpbC1kZXN0cm95LyIsInNvdXJjZXMiOlsibGliL3VudGlsLWRlc3Ryb3llZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUNMLE9BQU8sRUFDUCxVQUFVLEVBQ1YsMEJBQTBCLEVBQzFCLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdkIsTUFBTSxhQUFhLENBQUM7QUFFckIsU0FBUyxrQ0FBa0MsQ0FBQyxRQUFhLEVBQUUsaUJBQXlCO0lBQ2xGLElBQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRXBELElBQUksVUFBVSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEtBQUssRUFBRTtRQUN6QyxNQUFNLElBQUksS0FBSyxDQUNWLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSx1REFBa0QsaUJBQW1CLENBQ2xHLENBQUM7S0FDSDtJQUVELDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXJDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHO1FBQzVCLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN0RSw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxpRUFBaUU7UUFDakUsbUVBQW1FO1FBQ25FLDJEQUEyRDtRQUMzRCx3Q0FBd0M7UUFDeEMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsZUFBZSxDQUFDO0lBQ2hELENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFJLFFBQVcsRUFBRSxpQkFBMkI7SUFDeEUsT0FBTyxVQUFJLE1BQXFCO1FBQzlCLDhEQUE4RDtRQUM5RCw4REFBOEQ7UUFDOUQsSUFBSSxPQUFPLGlCQUFpQixLQUFLLFFBQVEsRUFBRTtZQUN6QyxrQ0FBa0MsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztTQUNqRTthQUFNO1lBQ0wsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDakMsMEJBQTBCLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdEM7UUFFRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFLLFFBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gIERFU1RST1ksXG4gIGlzRnVuY3Rpb24sXG4gIGNyZWF0ZVN1YmplY3RPblRoZUluc3RhbmNlLFxuICBjb21wbGV0ZVN1YmplY3RPblRoZUluc3RhbmNlLFxuICBlbnN1cmVDbGFzc0lzRGVjb3JhdGVkXG59IGZyb20gJy4vaW50ZXJuYWxzJztcblxuZnVuY3Rpb24gb3ZlcnJpZGVOb25EaXJlY3RpdmVJbnN0YW5jZU1ldGhvZChpbnN0YW5jZTogYW55LCBkZXN0cm95TWV0aG9kTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IG9yaWdpbmFsRGVzdHJveSA9IGluc3RhbmNlW2Rlc3Ryb3lNZXRob2ROYW1lXTtcblxuICBpZiAoaXNGdW5jdGlvbihvcmlnaW5hbERlc3Ryb3kpID09PSBmYWxzZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGAke2luc3RhbmNlLmNvbnN0cnVjdG9yLm5hbWV9IGlzIHVzaW5nIHVudGlsRGVzdHJveWVkIGJ1dCBkb2Vzbid0IGltcGxlbWVudCAke2Rlc3Ryb3lNZXRob2ROYW1lfWBcbiAgICApO1xuICB9XG5cbiAgY3JlYXRlU3ViamVjdE9uVGhlSW5zdGFuY2UoaW5zdGFuY2UpO1xuXG4gIGluc3RhbmNlW2Rlc3Ryb3lNZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xuICAgIGlzRnVuY3Rpb24ob3JpZ2luYWxEZXN0cm95KSAmJiBvcmlnaW5hbERlc3Ryb3kuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICBjb21wbGV0ZVN1YmplY3RPblRoZUluc3RhbmNlKHRoaXMpO1xuICAgIC8vIFdlIGhhdmUgdG8gcmUtYXNzaWduIHRoaXMgcHJvcGVydHkgYmFjayB0byB0aGUgb3JpZ2luYWwgdmFsdWUuXG4gICAgLy8gSWYgdGhlIGB1bnRpbERlc3Ryb3llZGAgb3BlcmF0b3IgaXMgY2FsbGVkIGZvciB0aGUgc2FtZSBpbnN0YW5jZVxuICAgIC8vIG11bHRpcGxlIHRpbWVzLCB0aGVuIHdlIHdpbGwgYmUgYWJsZSB0byBnZXQgdGhlIG9yaWdpbmFsXG4gICAgLy8gbWV0aG9kIGFnYWluIGFuZCBub3QgdGhlIHBhdGNoZWQgb25lLlxuICAgIGluc3RhbmNlW2Rlc3Ryb3lNZXRob2ROYW1lXSA9IG9yaWdpbmFsRGVzdHJveTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVudGlsRGVzdHJveWVkPFQ+KGluc3RhbmNlOiBULCBkZXN0cm95TWV0aG9kTmFtZT86IGtleW9mIFQpIHtcbiAgcmV0dXJuIDxVPihzb3VyY2U6IE9ic2VydmFibGU8VT4pID0+IHtcbiAgICAvLyBJZiBgZGVzdHJveU1ldGhvZE5hbWVgIGlzIHBhc3NlZCB0aGVuIHRoZSBkZXZlbG9wZXIgYXBwbGllc1xuICAgIC8vIHRoaXMgb3BlcmF0b3IgdG8gc29tZXRoaW5nIG5vbi1yZWxhdGVkIHRvIEFuZ3VsYXIgREkgc3lzdGVtXG4gICAgaWYgKHR5cGVvZiBkZXN0cm95TWV0aG9kTmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIG92ZXJyaWRlTm9uRGlyZWN0aXZlSW5zdGFuY2VNZXRob2QoaW5zdGFuY2UsIGRlc3Ryb3lNZXRob2ROYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZW5zdXJlQ2xhc3NJc0RlY29yYXRlZChpbnN0YW5jZSk7XG4gICAgICBjcmVhdGVTdWJqZWN0T25UaGVJbnN0YW5jZShpbnN0YW5jZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKHRha2VVbnRpbDxVPigoaW5zdGFuY2UgYXMgYW55KVtERVNUUk9ZXSkpO1xuICB9O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW50aWwtZGVzdHJveWVkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nbmVhdC91bnRpbC1kZXN0cm95LyIsInNvdXJjZXMiOlsibGliL3VudGlsLWRlc3Ryb3llZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsMEJBQTBCLEVBQzFCLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdkIsTUFBTSxhQUFhLENBQUM7QUFFckIsU0FBUyxrQ0FBa0MsQ0FDekMsUUFBYSxFQUNiLGlCQUF5QixFQUN6QixNQUFjO0lBRWQsSUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFcEQsSUFBSSxVQUFVLENBQUMsZUFBZSxDQUFDLEtBQUssS0FBSyxFQUFFO1FBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQ1YsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLHVEQUFrRCxpQkFBbUIsQ0FDbEcsQ0FBQztLQUNIO0lBRUQsMEJBQTBCLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRTdDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHO1FBQzVCLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN0RSw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDM0MsaUVBQWlFO1FBQ2pFLG1FQUFtRTtRQUNuRSwyREFBMkQ7UUFDM0Qsd0NBQXdDO1FBQ3hDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLGVBQWUsQ0FBQztJQUNoRCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBSSxRQUFXLEVBQUUsaUJBQTJCO0lBQ3hFLE9BQU8sVUFBSSxNQUFxQjtRQUM5QixJQUFNLE1BQU0sR0FBRyxTQUFTLENBQUksaUJBQWlCLENBQUMsQ0FBQztRQUUvQyw4REFBOEQ7UUFDOUQsOERBQThEO1FBQzlELElBQUksT0FBTyxpQkFBaUIsS0FBSyxRQUFRLEVBQUU7WUFDekMsa0NBQWtDLENBQUMsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3pFO2FBQU07WUFDTCxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqQywwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDOUM7UUFFRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFLLFFBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gIGdldFN5bWJvbCxcbiAgaXNGdW5jdGlvbixcbiAgY3JlYXRlU3ViamVjdE9uVGhlSW5zdGFuY2UsXG4gIGNvbXBsZXRlU3ViamVjdE9uVGhlSW5zdGFuY2UsXG4gIGVuc3VyZUNsYXNzSXNEZWNvcmF0ZWRcbn0gZnJvbSAnLi9pbnRlcm5hbHMnO1xuXG5mdW5jdGlvbiBvdmVycmlkZU5vbkRpcmVjdGl2ZUluc3RhbmNlTWV0aG9kKFxuICBpbnN0YW5jZTogYW55LFxuICBkZXN0cm95TWV0aG9kTmFtZTogc3RyaW5nLFxuICBzeW1ib2w6IHN5bWJvbFxuKTogdm9pZCB7XG4gIGNvbnN0IG9yaWdpbmFsRGVzdHJveSA9IGluc3RhbmNlW2Rlc3Ryb3lNZXRob2ROYW1lXTtcblxuICBpZiAoaXNGdW5jdGlvbihvcmlnaW5hbERlc3Ryb3kpID09PSBmYWxzZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGAke2luc3RhbmNlLmNvbnN0cnVjdG9yLm5hbWV9IGlzIHVzaW5nIHVudGlsRGVzdHJveWVkIGJ1dCBkb2Vzbid0IGltcGxlbWVudCAke2Rlc3Ryb3lNZXRob2ROYW1lfWBcbiAgICApO1xuICB9XG5cbiAgY3JlYXRlU3ViamVjdE9uVGhlSW5zdGFuY2UoaW5zdGFuY2UsIHN5bWJvbCk7XG5cbiAgaW5zdGFuY2VbZGVzdHJveU1ldGhvZE5hbWVdID0gZnVuY3Rpb24oKSB7XG4gICAgaXNGdW5jdGlvbihvcmlnaW5hbERlc3Ryb3kpICYmIG9yaWdpbmFsRGVzdHJveS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIGNvbXBsZXRlU3ViamVjdE9uVGhlSW5zdGFuY2UodGhpcywgc3ltYm9sKTtcbiAgICAvLyBXZSBoYXZlIHRvIHJlLWFzc2lnbiB0aGlzIHByb3BlcnR5IGJhY2sgdG8gdGhlIG9yaWdpbmFsIHZhbHVlLlxuICAgIC8vIElmIHRoZSBgdW50aWxEZXN0cm95ZWRgIG9wZXJhdG9yIGlzIGNhbGxlZCBmb3IgdGhlIHNhbWUgaW5zdGFuY2VcbiAgICAvLyBtdWx0aXBsZSB0aW1lcywgdGhlbiB3ZSB3aWxsIGJlIGFibGUgdG8gZ2V0IHRoZSBvcmlnaW5hbFxuICAgIC8vIG1ldGhvZCBhZ2FpbiBhbmQgbm90IHRoZSBwYXRjaGVkIG9uZS5cbiAgICBpbnN0YW5jZVtkZXN0cm95TWV0aG9kTmFtZV0gPSBvcmlnaW5hbERlc3Ryb3k7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bnRpbERlc3Ryb3llZDxUPihpbnN0YW5jZTogVCwgZGVzdHJveU1ldGhvZE5hbWU/OiBrZXlvZiBUKSB7XG4gIHJldHVybiA8VT4oc291cmNlOiBPYnNlcnZhYmxlPFU+KSA9PiB7XG4gICAgY29uc3Qgc3ltYm9sID0gZ2V0U3ltYm9sPFQ+KGRlc3Ryb3lNZXRob2ROYW1lKTtcblxuICAgIC8vIElmIGBkZXN0cm95TWV0aG9kTmFtZWAgaXMgcGFzc2VkIHRoZW4gdGhlIGRldmVsb3BlciBhcHBsaWVzXG4gICAgLy8gdGhpcyBvcGVyYXRvciB0byBzb21ldGhpbmcgbm9uLXJlbGF0ZWQgdG8gQW5ndWxhciBESSBzeXN0ZW1cbiAgICBpZiAodHlwZW9mIGRlc3Ryb3lNZXRob2ROYW1lID09PSAnc3RyaW5nJykge1xuICAgICAgb3ZlcnJpZGVOb25EaXJlY3RpdmVJbnN0YW5jZU1ldGhvZChpbnN0YW5jZSwgZGVzdHJveU1ldGhvZE5hbWUsIHN5bWJvbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVuc3VyZUNsYXNzSXNEZWNvcmF0ZWQoaW5zdGFuY2UpO1xuICAgICAgY3JlYXRlU3ViamVjdE9uVGhlSW5zdGFuY2UoaW5zdGFuY2UsIHN5bWJvbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKHRha2VVbnRpbDxVPigoaW5zdGFuY2UgYXMgYW55KVtzeW1ib2xdKSk7XG4gIH07XG59XG4iXX0=

@@ -8,3 +8,4 @@ import { Subject } from 'rxjs';

/**
* Applied to instances and stores `Subject` instance
* Applied to instances and stores `Subject` instance when
* no custom destroy method is provided.
*/

@@ -16,2 +17,17 @@ const DESTROY = Symbol('__destroy');

const DECORATOR_APPLIED = Symbol('__decoratorApplied');
/**
* If we use the `untilDestroyed` operator multiple times inside the single
* instance providing different `destroyMethodName`, then all streams will
* subscribe to the single subject. If any method is invoked, the subject will
* emit and all streams will be unsubscribed. We wan't to prevent this behavior,
* thus we store subjects under different symbols.
*/
function getSymbol(destroyMethodName) {
if (typeof destroyMethodName === 'string') {
return Symbol(`__destroy__${destroyMethodName}`);
}
else {
return DESTROY;
}
}
function markAsDecorated(providerOrDef) {

@@ -29,14 +45,14 @@ providerOrDef[DECORATOR_APPLIED] = true;

}
function createSubjectOnTheInstance(instance) {
if (!instance[DESTROY]) {
instance[DESTROY] = new Subject();
function createSubjectOnTheInstance(instance, symbol) {
if (!instance[symbol]) {
instance[symbol] = new Subject();
}
}
function completeSubjectOnTheInstance(instance) {
if (instance[DESTROY]) {
instance[DESTROY].next();
instance[DESTROY].complete();
function completeSubjectOnTheInstance(instance, symbol) {
if (instance[symbol]) {
instance[symbol].next();
instance[symbol].complete();
// We also have to re-assign this property thus in the future
// we will be able to create new subject on the same instance.
instance[DESTROY] = null;
instance[symbol] = null;
}

@@ -71,3 +87,3 @@ }

// that may lead to memory leaks
completeSubjectOnTheInstance(this);
completeSubjectOnTheInstance(this, getSymbol());
// Check if subscriptions are pushed to some array

@@ -112,3 +128,3 @@ if (arrayName) {

function overrideNonDirectiveInstanceMethod(instance, destroyMethodName) {
function overrideNonDirectiveInstanceMethod(instance, destroyMethodName, symbol) {
const originalDestroy = instance[destroyMethodName];

@@ -118,6 +134,6 @@ if (isFunction(originalDestroy) === false) {

}
createSubjectOnTheInstance(instance);
createSubjectOnTheInstance(instance, symbol);
instance[destroyMethodName] = function () {
isFunction(originalDestroy) && originalDestroy.apply(this, arguments);
completeSubjectOnTheInstance(this);
completeSubjectOnTheInstance(this, symbol);
// We have to re-assign this property back to the original value.

@@ -132,12 +148,13 @@ // If the `untilDestroyed` operator is called for the same instance

return (source) => {
const symbol = getSymbol(destroyMethodName);
// If `destroyMethodName` is passed then the developer applies
// this operator to something non-related to Angular DI system
if (typeof destroyMethodName === 'string') {
overrideNonDirectiveInstanceMethod(instance, destroyMethodName);
overrideNonDirectiveInstanceMethod(instance, destroyMethodName, symbol);
}
else {
ensureClassIsDecorated(instance);
createSubjectOnTheInstance(instance);
createSubjectOnTheInstance(instance, symbol);
}
return source.pipe(takeUntil(instance[DESTROY]));
return source.pipe(takeUntil(instance[symbol]));
};

@@ -144,0 +161,0 @@ }

@@ -8,3 +8,4 @@ import { Subject } from 'rxjs';

/**
* Applied to instances and stores `Subject` instance
* Applied to instances and stores `Subject` instance when
* no custom destroy method is provided.
*/

@@ -16,2 +17,17 @@ var DESTROY = Symbol('__destroy');

var DECORATOR_APPLIED = Symbol('__decoratorApplied');
/**
* If we use the `untilDestroyed` operator multiple times inside the single
* instance providing different `destroyMethodName`, then all streams will
* subscribe to the single subject. If any method is invoked, the subject will
* emit and all streams will be unsubscribed. We wan't to prevent this behavior,
* thus we store subjects under different symbols.
*/
function getSymbol(destroyMethodName) {
if (typeof destroyMethodName === 'string') {
return Symbol("__destroy__" + destroyMethodName);
}
else {
return DESTROY;
}
}
function markAsDecorated(providerOrDef) {

@@ -29,14 +45,14 @@ providerOrDef[DECORATOR_APPLIED] = true;

}
function createSubjectOnTheInstance(instance) {
if (!instance[DESTROY]) {
instance[DESTROY] = new Subject();
function createSubjectOnTheInstance(instance, symbol) {
if (!instance[symbol]) {
instance[symbol] = new Subject();
}
}
function completeSubjectOnTheInstance(instance) {
if (instance[DESTROY]) {
instance[DESTROY].next();
instance[DESTROY].complete();
function completeSubjectOnTheInstance(instance, symbol) {
if (instance[symbol]) {
instance[symbol].next();
instance[symbol].complete();
// We also have to re-assign this property thus in the future
// we will be able to create new subject on the same instance.
instance[DESTROY] = null;
instance[symbol] = null;
}

@@ -72,3 +88,3 @@ }

// that may lead to memory leaks
completeSubjectOnTheInstance(this);
completeSubjectOnTheInstance(this, getSymbol());
// Check if subscriptions are pushed to some array

@@ -114,3 +130,3 @@ if (arrayName) {

function overrideNonDirectiveInstanceMethod(instance, destroyMethodName) {
function overrideNonDirectiveInstanceMethod(instance, destroyMethodName, symbol) {
var originalDestroy = instance[destroyMethodName];

@@ -120,6 +136,6 @@ if (isFunction(originalDestroy) === false) {

}
createSubjectOnTheInstance(instance);
createSubjectOnTheInstance(instance, symbol);
instance[destroyMethodName] = function () {
isFunction(originalDestroy) && originalDestroy.apply(this, arguments);
completeSubjectOnTheInstance(this);
completeSubjectOnTheInstance(this, symbol);
// We have to re-assign this property back to the original value.

@@ -134,12 +150,13 @@ // If the `untilDestroyed` operator is called for the same instance

return function (source) {
var symbol = getSymbol(destroyMethodName);
// If `destroyMethodName` is passed then the developer applies
// this operator to something non-related to Angular DI system
if (typeof destroyMethodName === 'string') {
overrideNonDirectiveInstanceMethod(instance, destroyMethodName);
overrideNonDirectiveInstanceMethod(instance, destroyMethodName, symbol);
}
else {
ensureClassIsDecorated(instance);
createSubjectOnTheInstance(instance);
createSubjectOnTheInstance(instance, symbol);
}
return source.pipe(takeUntil(instance[DESTROY]));
return source.pipe(takeUntil(instance[symbol]));
};

@@ -146,0 +163,0 @@ }

import { InjectableType, ɵComponentType as ComponentType, ɵDirectiveType as DirectiveType, ɵComponentDef as ComponentDef, ɵDirectiveDef as DirectiveDef } from '@angular/core';
export declare function isFunction(target: unknown): boolean;
/**
* Applied to instances and stores `Subject` instance
* If we use the `untilDestroyed` operator multiple times inside the single
* instance providing different `destroyMethodName`, then all streams will
* subscribe to the single subject. If any method is invoked, the subject will
* emit and all streams will be unsubscribed. We wan't to prevent this behavior,
* thus we store subjects under different symbols.
*/
export declare const DESTROY: unique symbol;
export declare function getSymbol<T>(destroyMethodName?: keyof T): symbol;
export declare function markAsDecorated(providerOrDef: InjectableType<unknown> | DirectiveDef<unknown> | ComponentDef<unknown>): void;

@@ -14,4 +18,4 @@ export interface UntilDestroyOptions {

export declare function ensureClassIsDecorated(instance: any): never | void;
export declare function createSubjectOnTheInstance(instance: any): void;
export declare function completeSubjectOnTheInstance(instance: any): void;
export declare function createSubjectOnTheInstance(instance: any, symbol: symbol): void;
export declare function completeSubjectOnTheInstance(instance: any, symbol: symbol): void;
/**

@@ -18,0 +22,0 @@ * As directive and component definitions are considered private API,

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"UntilDestroy":{"__symbolic":"function","parameters":["options"],"defaults":[{}],"value":{"__symbolic":"error","message":"Lambda not supported","line":72,"character":9,"module":"./lib/until-destroy"}},"untilDestroyed":{"__symbolic":"function","parameters":["instance","destroyMethodName"],"value":{"__symbolic":"error","message":"Lambda not supported","line":34,"character":9,"module":"./lib/until-destroyed"}}},"origins":{"UntilDestroy":"./lib/until-destroy","untilDestroyed":"./lib/until-destroyed"},"importAs":"@ngneat/until-destroy"}
{"__symbolic":"module","version":4,"metadata":{"UntilDestroy":{"__symbolic":"function","parameters":["options"],"defaults":[{}],"value":{"__symbolic":"error","message":"Lambda not supported","line":73,"character":9,"module":"./lib/until-destroy"}},"untilDestroyed":{"__symbolic":"function","parameters":["instance","destroyMethodName"],"value":{"__symbolic":"error","message":"Lambda not supported","line":38,"character":9,"module":"./lib/until-destroyed"}}},"origins":{"UntilDestroy":"./lib/until-destroy","untilDestroyed":"./lib/until-destroyed"},"importAs":"@ngneat/until-destroy"}

@@ -5,3 +5,3 @@ {

"description": "RxJS operator that unsubscribes when Angular component is destroyed",
"version": "7.1.4",
"version": "7.1.5",
"repository": {

@@ -8,0 +8,0 @@ "type": "git",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc