@ngneat/overview
Version:
The Template for Success in Template Management
57 lines • 7.18 kB
JavaScript
import { createComponent, } from '@angular/core';
export class CompRef {
constructor(options) {
this.options = options;
if (options.vcr) {
this.ref = options.vcr.createComponent(options.component, {
index: options.vcr.length,
injector: options.injector || options.vcr.injector,
});
}
else {
this.ref = createComponent(options.component, {
elementInjector: options.injector,
environmentInjector: options.environmentInjector,
});
options.appRef.attachView(this.ref.hostView);
}
}
setInput(input, value) {
this.ref.setInput(input, value);
return this;
}
setInputs(inputs) {
Object.keys(inputs).forEach((input) => {
this.ref.setInput(input, inputs[input]);
});
return this;
}
detectChanges() {
this.ref.hostView.detectChanges();
return this;
}
updateContext(context) {
this.options.contextSignal?.set(context);
return this;
}
appendTo(container) {
container.appendChild(this.getElement());
return this;
}
removeFrom(container) {
container.removeChild(this.getElement());
return this;
}
getRawContent() {
return this.getElement().outerHTML;
}
getElement() {
return this.ref.location.nativeElement;
}
destroy() {
this.ref.destroy();
!this.options.vcr && this.options.appRef.detachView(this.ref.hostView);
this.ref = null;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcC1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ25lYXQvb3ZlcnZpZXcvc3JjL2xpYi92aWV3cy9jb21wLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsZUFBZSxHQU1oQixNQUFNLGVBQWUsQ0FBQztBQVl2QixNQUFNLE9BQU8sT0FBTztJQUdsQixZQUFvQixPQUErQjtRQUEvQixZQUFPLEdBQVAsT0FBTyxDQUF3QjtRQUNqRCxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7Z0JBQ3hELEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU07Z0JBQ3pCLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUTthQUNuRCxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxHQUFHLEdBQUcsZUFBZSxDQUFPLE9BQU8sQ0FBQyxTQUFTLEVBQUU7Z0JBQ2xELGVBQWUsRUFBRSxPQUFPLENBQUMsUUFBUTtnQkFDakMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLG1CQUFtQjthQUNqRCxDQUFDLENBQUM7WUFDSCxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUF5QyxLQUFRLEVBQUUsS0FBb0M7UUFDN0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTFDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUEwRDtRQUNsRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVsQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxhQUFhLENBQUMsT0FBZ0I7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXpDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFFBQVEsQ0FBQyxTQUFrQjtRQUN6QixTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBRXpDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFVBQVUsQ0FBQyxTQUFrQjtRQUMzQixTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBRXpDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztJQUNsQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgQ29tcG9uZW50UmVmLFxuICBjcmVhdGVDb21wb25lbnQsXG4gIEVudmlyb25tZW50SW5qZWN0b3IsXG4gIEluamVjdG9yLFxuICBUeXBlLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBXcml0YWJsZVNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFeGNsdWRlRnVuY3Rpb25zLCBFeHRyYWN0SW5wdXRUeXBlcywgSW5mZXJJbnB1dFNpZ25hbFR5cGUsIFZpZXdSZWYgfSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIE9wdGlvbnM8Q29tcCwgQ29udGV4dD4ge1xuICBjb21wb25lbnQ6IFR5cGU8Q29tcD47XG4gIGluamVjdG9yOiBJbmplY3RvcjtcbiAgZW52aXJvbm1lbnRJbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3RvcjtcbiAgdmNyOiBWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkO1xuICBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmIHwgdW5kZWZpbmVkO1xuICBjb250ZXh0U2lnbmFsPzogV3JpdGFibGVTaWduYWw8Q29udGV4dD47XG59XG5cbmV4cG9ydCBjbGFzcyBDb21wUmVmPENvbXAsIENvbnRleHQgPSBhbnk+IGltcGxlbWVudHMgVmlld1JlZiB7XG4gIHJlZjogQ29tcG9uZW50UmVmPENvbXA+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3B0aW9uczogT3B0aW9uczxDb21wLCBDb250ZXh0Pikge1xuICAgIGlmIChvcHRpb25zLnZjcikge1xuICAgICAgdGhpcy5yZWYgPSBvcHRpb25zLnZjci5jcmVhdGVDb21wb25lbnQob3B0aW9ucy5jb21wb25lbnQsIHtcbiAgICAgICAgaW5kZXg6IG9wdGlvbnMudmNyLmxlbmd0aCxcbiAgICAgICAgaW5qZWN0b3I6IG9wdGlvbnMuaW5qZWN0b3IgfHwgb3B0aW9ucy52Y3IuaW5qZWN0b3IsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWYgPSBjcmVhdGVDb21wb25lbnQ8Q29tcD4ob3B0aW9ucy5jb21wb25lbnQsIHtcbiAgICAgICAgZWxlbWVudEluamVjdG9yOiBvcHRpb25zLmluamVjdG9yLFxuICAgICAgICBlbnZpcm9ubWVudEluamVjdG9yOiBvcHRpb25zLmVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgICB9KTtcbiAgICAgIG9wdGlvbnMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5yZWYuaG9zdFZpZXcpO1xuICAgIH1cbiAgfVxuXG4gIHNldElucHV0PEsgZXh0ZW5kcyBrZXlvZiBFeGNsdWRlRnVuY3Rpb25zPENvbXA+PihpbnB1dDogSywgdmFsdWU6IEluZmVySW5wdXRTaWduYWxUeXBlPENvbXBbS10+KSB7XG4gICAgdGhpcy5yZWYuc2V0SW5wdXQoaW5wdXQgYXMgc3RyaW5nLCB2YWx1ZSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNldElucHV0cyhpbnB1dHM6IFBhcnRpYWw8RXh0cmFjdElucHV0VHlwZXM8RXhjbHVkZUZ1bmN0aW9uczxDb21wPj4+KSB7XG4gICAgT2JqZWN0LmtleXMoaW5wdXRzKS5mb3JFYWNoKChpbnB1dCkgPT4ge1xuICAgICAgdGhpcy5yZWYuc2V0SW5wdXQoaW5wdXQsIGlucHV0c1tpbnB1dF0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkZXRlY3RDaGFuZ2VzKCkge1xuICAgIHRoaXMucmVmLmhvc3RWaWV3LmRldGVjdENoYW5nZXMoKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgdXBkYXRlQ29udGV4dChjb250ZXh0OiBDb250ZXh0KSB7XG4gICAgdGhpcy5vcHRpb25zLmNvbnRleHRTaWduYWw/LnNldChjb250ZXh0KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYXBwZW5kVG8oY29udGFpbmVyOiBFbGVtZW50KSB7XG4gICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuZ2V0RWxlbWVudCgpKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcmVtb3ZlRnJvbShjb250YWluZXI6IEVsZW1lbnQpIHtcbiAgICBjb250YWluZXIucmVtb3ZlQ2hpbGQodGhpcy5nZXRFbGVtZW50KCkpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXRSYXdDb250ZW50KCkge1xuICAgIHJldHVybiB0aGlzLmdldEVsZW1lbnQoKS5vdXRlckhUTUw7XG4gIH1cblxuICBnZXRFbGVtZW50PFQgZXh0ZW5kcyBFbGVtZW50PigpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5yZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5yZWYuZGVzdHJveSgpO1xuICAgICF0aGlzLm9wdGlvbnMudmNyICYmIHRoaXMub3B0aW9ucy5hcHBSZWYuZGV0YWNoVmlldyh0aGlzLnJlZi5ob3N0Vmlldyk7XG4gICAgdGhpcy5yZWYgPSBudWxsO1xuICB9XG59XG4iXX0=