ctt-babylon 0.11.8 → 0.11.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,74 @@
1
+ import { isPlatformBrowser } from '@angular/common';
2
+ import { Directive, Input, NgZone, PLATFORM_ID, inject, } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class WidgetDynamicDirective {
5
+ constructor(host) {
6
+ this.host = host;
7
+ this.platformId = inject(PLATFORM_ID);
8
+ this.zone = inject(NgZone);
9
+ /** Reintentos */
10
+ this.moveMaxTries = 200; // 200 * 100ms = 20s
11
+ this.moveIntervalMs = 100;
12
+ }
13
+ ngAfterViewInit() {
14
+ if (!isPlatformBrowser(this.platformId))
15
+ return;
16
+ if (!this.moveSelector)
17
+ return;
18
+ this.zone.runOutsideAngular(() => {
19
+ const target = this.host.nativeElement;
20
+ const tryMove = () => {
21
+ const node = document.querySelector(this.moveSelector);
22
+ if (!node)
23
+ return false;
24
+ // si ya está dentro, ok
25
+ if (target.contains(node))
26
+ return true;
27
+ // evita movidas raras si el selector apunta al mismo host
28
+ if (node === target)
29
+ return true;
30
+ target.appendChild(node);
31
+ return true;
32
+ };
33
+ // reintentos
34
+ let tries = 0;
35
+ this.timer = window.setInterval(() => {
36
+ tries++;
37
+ const ok = tryMove();
38
+ if (ok || tries >= this.moveMaxTries) {
39
+ if (this.timer)
40
+ window.clearInterval(this.timer);
41
+ this.timer = undefined;
42
+ }
43
+ }, this.moveIntervalMs);
44
+ // observer para reinyecciones
45
+ this.observer = new MutationObserver(() => tryMove());
46
+ this.observer.observe(document.body, {
47
+ childList: true,
48
+ subtree: true,
49
+ });
50
+ });
51
+ }
52
+ ngOnDestroy() {
53
+ if (this.timer)
54
+ window.clearInterval(this.timer);
55
+ this.observer?.disconnect();
56
+ }
57
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetDynamicDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
58
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: WidgetDynamicDirective, isStandalone: true, selector: "[widgetDynamic]", inputs: { moveSelector: ["widgetDynamic", "moveSelector"], moveMaxTries: "moveMaxTries", moveIntervalMs: "moveIntervalMs" }, ngImport: i0 }); }
59
+ }
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetDynamicDirective, decorators: [{
61
+ type: Directive,
62
+ args: [{
63
+ selector: '[widgetDynamic]',
64
+ standalone: true,
65
+ }]
66
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { moveSelector: [{
67
+ type: Input,
68
+ args: ['widgetDynamic']
69
+ }], moveMaxTries: [{
70
+ type: Input
71
+ }], moveIntervalMs: [{
72
+ type: Input
73
+ }] } });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWR5bmFtaWMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2RpcmVjdGl2ZXMvd2lkZ2V0L3dpZGdldC1keW5hbWljLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBRUgsU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBRU4sV0FBVyxFQUNYLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQzs7QUFNdkIsTUFBTSxPQUFPLHNCQUFzQjtJQWMvQixZQUFvQixJQUE2QjtRQUE3QixTQUFJLEdBQUosSUFBSSxDQUF5QjtRQWJoQyxlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pDLFNBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFLdkMsaUJBQWlCO1FBQ1IsaUJBQVksR0FBRyxHQUFHLENBQUMsQ0FBQyxvQkFBb0I7UUFDeEMsbUJBQWMsR0FBRyxHQUFHLENBQUM7SUFLc0IsQ0FBQztJQUVyRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU87UUFFL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFFdkMsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO2dCQUNqQixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUMvQixJQUFJLENBQUMsWUFBWSxDQUNFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxJQUFJO29CQUFFLE9BQU8sS0FBSyxDQUFDO2dCQUV4Qix3QkFBd0I7Z0JBQ3hCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7b0JBQUUsT0FBTyxJQUFJLENBQUM7Z0JBRXZDLDBEQUEwRDtnQkFDMUQsSUFBSSxJQUFJLEtBQUssTUFBTTtvQkFBRSxPQUFPLElBQUksQ0FBQztnQkFFakMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekIsT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQyxDQUFDO1lBRUYsYUFBYTtZQUNiLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2pDLEtBQUssRUFBRSxDQUFDO2dCQUNSLE1BQU0sRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO2dCQUNyQixJQUFJLEVBQUUsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtvQkFDbEMsSUFBSSxJQUFJLENBQUMsS0FBSzt3QkFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDakQsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7aUJBQzFCO1lBQ0wsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUV4Qiw4QkFBOEI7WUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtnQkFDakMsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsT0FBTyxFQUFFLElBQUk7YUFDaEIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLEtBQUs7WUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQ2hDLENBQUM7K0dBOURRLHNCQUFzQjttR0FBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQUpsQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjsrRUFNMkIsWUFBWTtzQkFBbkMsS0FBSzt1QkFBQyxlQUFlO2dCQUdiLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIFBMQVRGT1JNX0lELFxuICAgIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3dpZGdldER5bmFtaWNdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXREeW5hbWljRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgem9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gICAgLyoqIFNlbGVjdG9yIGRlbCBub2RvIGEgbW92ZXIgKHNvdXJjZSkgKi9cbiAgICBASW5wdXQoJ3dpZGdldER5bmFtaWMnKSBtb3ZlU2VsZWN0b3IhOiBzdHJpbmc7XG5cbiAgICAvKiogUmVpbnRlbnRvcyAqL1xuICAgIEBJbnB1dCgpIG1vdmVNYXhUcmllcyA9IDIwMDsgLy8gMjAwICogMTAwbXMgPSAyMHNcbiAgICBASW5wdXQoKSBtb3ZlSW50ZXJ2YWxNcyA9IDEwMDtcblxuICAgIHByaXZhdGUgb2JzZXJ2ZXI/OiBNdXRhdGlvbk9ic2VydmVyO1xuICAgIHByaXZhdGUgdGltZXI/OiBudW1iZXI7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGhvc3Q6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7fVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICAgICAgaWYgKCF0aGlzLm1vdmVTZWxlY3RvcikgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmhvc3QubmF0aXZlRWxlbWVudDtcblxuICAgICAgICAgICAgY29uc3QgdHJ5TW92ZSA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICApIGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAoIW5vZGUpIHJldHVybiBmYWxzZTtcblxuICAgICAgICAgICAgICAgIC8vIHNpIHlhIGVzdMOhIGRlbnRybywgb2tcbiAgICAgICAgICAgICAgICBpZiAodGFyZ2V0LmNvbnRhaW5zKG5vZGUpKSByZXR1cm4gdHJ1ZTtcblxuICAgICAgICAgICAgICAgIC8vIGV2aXRhIG1vdmlkYXMgcmFyYXMgc2kgZWwgc2VsZWN0b3IgYXB1bnRhIGFsIG1pc21vIGhvc3RcbiAgICAgICAgICAgICAgICBpZiAobm9kZSA9PT0gdGFyZ2V0KSByZXR1cm4gdHJ1ZTtcblxuICAgICAgICAgICAgICAgIHRhcmdldC5hcHBlbmRDaGlsZChub2RlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIC8vIHJlaW50ZW50b3NcbiAgICAgICAgICAgIGxldCB0cmllcyA9IDA7XG4gICAgICAgICAgICB0aGlzLnRpbWVyID0gd2luZG93LnNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0cmllcysrO1xuICAgICAgICAgICAgICAgIGNvbnN0IG9rID0gdHJ5TW92ZSgpO1xuICAgICAgICAgICAgICAgIGlmIChvayB8fCB0cmllcyA+PSB0aGlzLm1vdmVNYXhUcmllcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50aW1lcikgd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy50aW1lcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGltZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgdGhpcy5tb3ZlSW50ZXJ2YWxNcyk7XG5cbiAgICAgICAgICAgIC8vIG9ic2VydmVyIHBhcmEgcmVpbnllY2Npb25lc1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHRyeU1vdmUoKSk7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwge1xuICAgICAgICAgICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50aW1lcikgd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy50aW1lcik7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICB9XG59XG4iXX0=