@vindev/particle
Version:
Angular Component Library using Tailwind
40 lines • 5.01 kB
JavaScript
import { Directive } from '@angular/core';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
export function InitializedMixin(Base = class {
}) {
class Initialized extends Base {
constructor(...args) {
super(...args);
this._isInitialized = false;
this._pendingSubscribers = [];
this.initialized = new Observable((subscriber) => {
if (this._isInitialized) {
this._notifySubscriber(subscriber);
}
else {
this._pendingSubscribers?.push(subscriber);
}
});
}
_markInitialized() {
if (this._isInitialized) {
throw Error('This directive has already been marked as initialized and should not be called twice.');
}
this._isInitialized = true;
this._pendingSubscribers?.forEach(this._notifySubscriber);
this._pendingSubscribers = null;
}
_notifySubscriber(subscriber) {
subscriber.next();
subscriber.complete();
}
}
Initialized.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: Initialized, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
Initialized.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: Initialized, usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: Initialized, decorators: [{
type: Directive
}], ctorParameters: function () { return [{ type: undefined }]; } });
return Initialized;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZWQubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BhcnRpY2xlLWxpYi9zcmMvbGliL3NoYXJlZC9taXhpbnMvaW5pdGlhbGl6ZWQubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sTUFBTSxDQUFDOztBQUc5QyxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLE9BQVU7Q0FBZTtJQUV6QixNQUNNLFdBQVksU0FBUSxJQUFJO1FBYTVCLFlBQVksR0FBRyxJQUFXO1lBQ3hCLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBYmpCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1lBRXZCLHdCQUFtQixHQUE4QixFQUFFLENBQUM7WUFFcEQsZ0JBQVcsR0FBRyxJQUFJLFVBQVUsQ0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFO2dCQUNoRCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7b0JBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDcEM7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDNUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUlILENBQUM7UUFFRCxnQkFBZ0I7WUFDZCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3ZCLE1BQU0sS0FBSyxDQUNULHVGQUF1RixDQUN4RixDQUFDO2FBQ0g7WUFFRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztZQUUzQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDbEMsQ0FBQztRQUVELGlCQUFpQixDQUFDLFVBQTRCO1lBQzVDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEIsQ0FBQzs7NEdBakNHLFdBQVc7Z0dBQVgsV0FBVzsrRkFBWCxXQUFXO3NCQURoQixTQUFTOztJQXFDVixPQUFPLFdBQVcsQ0FBQztDQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpYmVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvcic7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gSW5pdGlhbGl6ZWRNaXhpbjxUIGV4dGVuZHMgQ29uc3RydWN0b3I8e30+PihcclxuICBCYXNlOiBUID0gY2xhc3Mge30gYXMgYW55XHJcbikge1xyXG4gIEBEaXJlY3RpdmUoKVxyXG4gIGNsYXNzIEluaXRpYWxpemVkIGV4dGVuZHMgQmFzZSB7XHJcbiAgICBfaXNJbml0aWFsaXplZCA9IGZhbHNlO1xyXG5cclxuICAgIF9wZW5kaW5nU3Vic2NyaWJlcnM6IFN1YnNjcmliZXI8dm9pZD5bXSB8IG51bGwgPSBbXTtcclxuXHJcbiAgICBpbml0aWFsaXplZCA9IG5ldyBPYnNlcnZhYmxlPHZvaWQ+KChzdWJzY3JpYmVyKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLl9pc0luaXRpYWxpemVkKSB7XHJcbiAgICAgICAgdGhpcy5fbm90aWZ5U3Vic2NyaWJlcihzdWJzY3JpYmVyKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLl9wZW5kaW5nU3Vic2NyaWJlcnM/LnB1c2goc3Vic2NyaWJlcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IGFueVtdKSB7XHJcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xyXG4gICAgfVxyXG5cclxuICAgIF9tYXJrSW5pdGlhbGl6ZWQoKTogdm9pZCB7XHJcbiAgICAgIGlmICh0aGlzLl9pc0luaXRpYWxpemVkKSB7XHJcbiAgICAgICAgdGhyb3cgRXJyb3IoXHJcbiAgICAgICAgICAnVGhpcyBkaXJlY3RpdmUgaGFzIGFscmVhZHkgYmVlbiBtYXJrZWQgYXMgaW5pdGlhbGl6ZWQgYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIHR3aWNlLidcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLl9pc0luaXRpYWxpemVkID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMuX3BlbmRpbmdTdWJzY3JpYmVycz8uZm9yRWFjaCh0aGlzLl9ub3RpZnlTdWJzY3JpYmVyKTtcclxuICAgICAgdGhpcy5fcGVuZGluZ1N1YnNjcmliZXJzID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBfbm90aWZ5U3Vic2NyaWJlcihzdWJzY3JpYmVyOiBTdWJzY3JpYmVyPHZvaWQ+KTogdm9pZCB7XHJcbiAgICAgIHN1YnNjcmliZXIubmV4dCgpO1xyXG4gICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gSW5pdGlhbGl6ZWQ7XHJcbn1cclxuIl19