valtech-components 2.0.776 → 2.0.778
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.
|
@@ -86,12 +86,18 @@ export class PatternComponent {
|
|
|
86
86
|
const palette = this.paletteRef();
|
|
87
87
|
const inner = renderPatternSvgInner(this.tiles(), cols, palette[0]);
|
|
88
88
|
const aspect = this.preserveAspect() === 'meet' ? 'xMidYMid meet' : 'xMidYMid slice';
|
|
89
|
-
|
|
89
|
+
// width/height="100%" como ATRIBUTOS (no solo CSS) — algunos browsers
|
|
90
|
+
// (Safari/iOS) ignoran CSS height en SVG sin atributos y caen al intrinsic
|
|
91
|
+
// aspect del viewBox, dejando franjas vacías cuando el container no
|
|
92
|
+
// matchea el ratio.
|
|
93
|
+
const svg = `<svg width="100%" height="100%" viewBox="0 0 ${cols * 100} ${rows * 100}" preserveAspectRatio="${aspect}" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="display:block;">${inner}</svg>`;
|
|
90
94
|
return this.sanitizer.bypassSecurityTrustHtml(svg);
|
|
91
95
|
});
|
|
92
96
|
// Regenera grid completa cuando cambian props estructurales (cols/rows/
|
|
93
97
|
// palette/density/seed). El seed solo cambia explícitamente via props o
|
|
94
98
|
// mount inicial — NO se muta en modo animated.
|
|
99
|
+
// `allowSignalWrites: true` requerido en Angular 18: escribimos a `tiles`
|
|
100
|
+
// signal dentro del effect (consumido por svgHtml computed).
|
|
95
101
|
effect(() => {
|
|
96
102
|
const cols = this.cols();
|
|
97
103
|
const rows = this.rows();
|
|
@@ -99,7 +105,7 @@ export class PatternComponent {
|
|
|
99
105
|
const palette = this.paletteRef();
|
|
100
106
|
const density = this.chevronDensity();
|
|
101
107
|
this.tiles.set(generatePatternTiles({ cols, rows, seed, palette, chevronDensity: density }));
|
|
102
|
-
});
|
|
108
|
+
}, { allowSignalWrites: true });
|
|
103
109
|
// Modo animated: cada `reshuffleInterval` ms regenera el grid completo
|
|
104
110
|
// con un seed nuevo. Visualmente: el patrón cambia de vez en cuando.
|
|
105
111
|
// Si `tilesPerTick > 0` y < total tiles, hace staggered (reemplaza solo
|
|
@@ -161,12 +167,12 @@ export class PatternComponent {
|
|
|
161
167
|
return Math.floor(Math.random() * 1_000_000);
|
|
162
168
|
}
|
|
163
169
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PatternComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
164
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PatternComponent, isStandalone: true, selector: "val-pattern", inputs: { props: "props" }, ngImport: i0, template: ` <div class="val-pattern" [innerHTML]="svgHtml()"></div> `, isInline: true, styles: [":host{display:block;width:100%;height:100%;line-height:0}.val-pattern{
|
|
170
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PatternComponent, isStandalone: true, selector: "val-pattern", inputs: { props: "props" }, ngImport: i0, template: ` <div class="val-pattern" [innerHTML]="svgHtml()"></div> `, isInline: true, styles: [":host{display:block;width:100%;height:100%;line-height:0;position:relative}.val-pattern{position:absolute;inset:0;display:block;transition:opacity .6s ease-in-out}.val-pattern svg{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
165
171
|
}
|
|
166
172
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PatternComponent, decorators: [{
|
|
167
173
|
type: Component,
|
|
168
|
-
args: [{ selector: 'val-pattern', standalone: true, imports: [CommonModule], template: ` <div class="val-pattern" [innerHTML]="svgHtml()"></div> `, styles: [":host{display:block;width:100%;height:100%;line-height:0}.val-pattern{
|
|
174
|
+
args: [{ selector: 'val-pattern', standalone: true, imports: [CommonModule], template: ` <div class="val-pattern" [innerHTML]="svgHtml()"></div> `, styles: [":host{display:block;width:100%;height:100%;line-height:0;position:relative}.val-pattern{position:absolute;inset:0;display:block;transition:opacity .6s ease-in-out}.val-pattern svg{display:block;width:100%;height:100%}\n"] }]
|
|
169
175
|
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
170
176
|
type: Input
|
|
171
177
|
}] } });
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVybi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvcGF0dGVybi9wYXR0ZXJuLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBR2hCLHFCQUFxQixHQUN0QixNQUFNLFVBQVUsQ0FBQzs7QUFHbEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQThCSCxNQUFNLE9BQU8sZ0JBQWdCO0lBaUIzQixrRUFBa0U7SUFDbEUsSUFBYSxLQUFLLENBQUMsS0FBa0M7UUFDbkQsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQ25CLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDckUsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNyRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUztZQUFFLElB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bW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIElucHV0LCBPbkRlc3Ryb3ksIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBnZW5lcmF0ZVBhdHRlcm5UaWxlcyxcbiAgZ2VuZXJhdGVSYW5kb21UaWxlLFxuICBQQVRURVJOX1BBTEVUVEVTLFxuICBQYXR0ZXJuUGFsZXR0ZUtleSxcbiAgUGF0dGVyblRpbGUsXG4gIHJlbmRlclBhdHRlcm5TdmdJbm5lcixcbn0gZnJvbSAnLi9tb3RpZnMnO1xuaW1wb3J0IHsgUGF0dGVybk1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogYHZhbC1wYXR0ZXJuYFxuICpcbiAqIENvbXBvbmVudGUgZGUgZm9uZG8gZ2VvbcOpdHJpY28gaW5zcGlyYWRvIGVuIGVsIHNpc3RlbWEgVmFsdGVjaC4gUmVuZGVyaXphIHVuXG4gKiBncmlkIGRlIHRpbGVzIDEwMMOXMTAwIGNvbiBtb3RpZnMgKGNoZXZyb25zLCB0cmlhbmdsZXMsIGRpYW1vbmRzLCBhcnJvd3MpIGVuXG4gKiB1biBTVkcgaW5saW5lLiBEZXRlcm1pbmlzdGEgdsOtYSBgc2VlZGAgbyBhbmltYWRvIHbDrWEgYHJlc2h1ZmZsZWAuXG4gKlxuICogQ2VybyBkZXBlbmRlbmNpYXMgZXh0ZXJuYXMg4oCUIHRvZG8gU1ZHLlxuICpcbiAqIEBleGFtcGxlIENvbW8gZm9uZG8gZGUgY2FyZCAoQ1NTIGFic29sdXRlKTpcbiAqIGBgYHNjc3NcbiAqIC5jYXJkIHsgcG9zaXRpb246IHJlbGF0aXZlOyBvdmVyZmxvdzogaGlkZGVuOyB9XG4gKiAuY2FyZCB2YWwtcGF0dGVybiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7IHotaW5kZXg6IDA7IG9wYWNpdHk6IDAuNDsgfVxuICogLmNhcmQgLmNvbnRlbnQgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7IH1cbiAqIGBgYFxuICpcbiAqIGBgYGh0bWxcbiAqIDxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gKiAgIDx2YWwtcGF0dGVybiBbcHJvcHNdPVwieyBwYWxldHRlOiAncHVycGxlJywgY29sczogNiwgcm93czogMywgc2VlZDogNDIgfVwiIC8+XG4gKiAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+VHUgY29udGVuaWRvIGFxdcOtPC9kaXY+XG4gKiA8L2Rpdj5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIENvbW8gYmFja2dyb3VuZCBhbmltYWRvIChoZXJvL2xvZ2luKTpcbiAqIGBgYGh0bWxcbiAqIDx2YWwtcGF0dGVybiBbcHJvcHNdPVwieyBwYWxldHRlOiAnbGF2ZW5kZXInLCBjb2xzOiAxNiwgcm93czogOCwgYW5pbWF0ZWQ6IHRydWUgfVwiIC8+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXBhdHRlcm4nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGAgPGRpdiBjbGFzcz1cInZhbC1wYXR0ZXJuXCIgW2lubmVySFRNTF09XCJzdmdIdG1sKClcIj48L2Rpdj4gYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC52YWwtcGF0dGVybiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnMgZWFzZS1pbi1vdXQ7XG4gICAgICB9XG5cbiAgICAgIC52YWwtcGF0dGVybiA6d2hlcmUoc3ZnKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFBhdHRlcm5Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY29scyA9IHNpZ25hbCgxMik7XG4gIHByaXZhdGUgcmVhZG9ubHkgcm93cyA9IHNpZ25hbCg0KTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZWVkID0gc2lnbmFsKHRoaXMucmFuZG9tU2VlZCgpKTtcbiAgcHJpdmF0ZSByZWFkb25seSBwYWxldHRlUmVmID0gc2lnbmFsPHN0cmluZ1tdPihQQVRURVJOX1BBTEVUVEVTLnB1cnBsZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hldnJvbkRlbnNpdHkgPSBzaWduYWwoMC41NSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJlc2VydmVBc3BlY3QgPSBzaWduYWw8J3NsaWNlJyB8ICdtZWV0Jz4oJ3NsaWNlJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYW5pbWF0ZWQgPSBzaWduYWwoZmFsc2UpO1xuICAvKiogbXMgZW50cmUgcmVzaHVmZmxlcyAobW9kbyBhbmltYXRlZCkuIERlZmF1bHQgODAwMG1zIOKAlCBcImRlIHZleiBlbiBjdWFuZG9cIi4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSByZXNodWZmbGVJbnRlcnZhbCA9IHNpZ25hbCg4MDAwKTtcbiAgLyoqIFRpbGVzIGEgY2FtYmlhciBwb3IgdGljay4gMCDihpIgcmVzZWVkIGdyaWQgY29tcGxldG8gKGRlZmF1bHQpLiA+MCDihpIgc3RhZ2dlcmVkLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHRpbGVzUGVyVGljayA9IHNpZ25hbCgwKTtcblxuICBwcml2YXRlIHRpbWVyPzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW50ZXJ2YWw+O1xuXG4gIC8qKiBPYmplY3QtZmlyc3QgaW5wdXQuIENhbWJpb3MgZGlzcGFyYW4gcmUtcmVuZGVyIHBvciBzaWduYWxzLiAqL1xuICBASW5wdXQoKSBzZXQgcHJvcHModmFsdWU6IFBhdHRlcm5NZXRhZGF0YSB8IHVuZGVmaW5lZCkge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcbiAgICBpZiAodmFsdWUuY29scyAhPT0gdW5kZWZpbmVkKSB0aGlzLmNvbHMuc2V0KE1hdGgubWF4KDEsIHZhbHVlLmNvbHMpKTtcbiAgICBpZiAodmFsdWUucm93cyAhPT0gdW5kZWZpbmVkKSB0aGlzLnJvd3Muc2V0KE1hdGgubWF4KDEsIHZhbHVlLnJvd3MpKTtcbiAgICBpZiAodmFsdWUuc2VlZCAhPT0gdW5kZWZpbmVkKSB0aGlzLnNlZWQuc2V0KHZhbHVlLnNlZWQpO1xuICAgIGlmICh2YWx1ZS5jaGV2cm9uRGVuc2l0eSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmNoZXZyb25EZW5zaXR5LnNldChNYXRoLm1pbigxLCBNYXRoLm1heCgwLCB2YWx1ZS5jaGV2cm9uRGVuc2l0eSkpKTtcbiAgICB9XG4gICAgaWYgKHZhbHVlLnByZXNlcnZlQXNwZWN0ICE9PSB1bmRlZmluZWQpIHRoaXMucHJlc2VydmVBc3BlY3Quc2V0KHZhbHVlLnByZXNlcnZlQXNwZWN0KTtcbiAgICBpZiAodmFsdWUucGFsZXR0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnBhbGV0dGVSZWYuc2V0KHRoaXMucmVzb2x2ZVBhbGV0dGUodmFsdWUucGFsZXR0ZSkpO1xuICAgIH1cbiAgICBpZiAodmFsdWUucmVzaHVmZmxlSW50ZXJ2YWwgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZS5yZXNodWZmbGVJbnRlcnZhbCA+IDApIHtcbiAgICAgIHRoaXMucmVzaHVmZmxlSW50ZXJ2YWwuc2V0KHZhbHVlLnJlc2h1ZmZsZUludGVydmFsKTtcbiAgICB9XG4gICAgaWYgKHZhbHVlLnRpbGVzUGVyVGljayAhPT0gdW5kZWZpbmVkICYmIHZhbHVlLnRpbGVzUGVyVGljayA+PSAwKSB7XG4gICAgICB0aGlzLnRpbGVzUGVyVGljay5zZXQoTWF0aC5mbG9vcih2YWx1ZS50aWxlc1BlclRpY2spKTtcbiAgICB9XG4gICAgaWYgKHZhbHVlLmFuaW1hdGVkICE9PSB1bmRlZmluZWQpIHRoaXMuYW5pbWF0ZWQuc2V0KCEhdmFsdWUuYW5pbWF0ZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRpbGVzIHNpZ25hbCDigJQgbXV0YWJsZS4gU2UgcmVnZW5lcmEgY29tcGxldGEgY3VhbmRvIGNhbWJpYSBzZWVkL2NvbHMvcm93cy9cbiAgICogcGFsZXR0ZS9kZW5zaXR5LiBFbiBtb2RvIGFuaW1hdGVkLCB0aWxlcyBpbmRpdmlkdWFsZXMgc2Ugc29icmVzY3JpYmVuIHNpblxuICAgKiB0b2NhciBlbCByZXN0byAoZWZlY3RvIHN0YWdnZXJlZCkuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHRpbGVzID0gc2lnbmFsPFBhdHRlcm5UaWxlW10+KFtdKTtcblxuICAvKiogU1ZHIGNvbXBsZXRvIGNvbW8gc3RyaW5nIHNhbml0aXplZCBwYXJhIGBbaW5uZXJIVE1MXWAuICovXG4gIHJlYWRvbmx5IHN2Z0h0bWwgPSBjb21wdXRlZDxTYWZlSHRtbD4oKCkgPT4ge1xuICAgIGNvbnN0IGNvbHMgPSB0aGlzLmNvbHMoKTtcbiAgICBjb25zdCByb3dzID0gdGhpcy5yb3dzKCk7XG4gICAgY29uc3QgcGFsZXR0ZSA9IHRoaXMucGFsZXR0ZVJlZigpO1xuICAgIGNvbnN0IGlubmVyID0gcmVuZGVyUGF0dGVyblN2Z0lubmVyKHRoaXMudGlsZXMoKSwgY29scywgcGFsZXR0ZVswXSEpO1xuICAgIGNvbnN0IGFzcGVjdCA9IHRoaXMucHJlc2VydmVBc3BlY3QoKSA9PT0gJ21lZXQnID8gJ3hNaWRZTWlkIG1lZXQnIDogJ3hNaWRZTWlkIHNsaWNlJztcbiAgICBjb25zdCBzdmcgPSBgPHN2ZyB2aWV3Qm94PVwiMCAwICR7Y29scyAqIDEwMH0gJHtyb3dzICogMTAwfVwiIHByZXNlcnZlQXNwZWN0UmF0aW89XCIke2FzcGVjdH1cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+JHtpbm5lcn08L3N2Zz5gO1xuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChzdmcpO1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBSZWdlbmVyYSBncmlkIGNvbXBsZXRhIGN1YW5kbyBjYW1iaWFuIHByb3BzIGVzdHJ1Y3R1cmFsZXMgKGNvbHMvcm93cy9cbiAgICAvLyBwYWxldHRlL2RlbnNpdHkvc2VlZCkuIEVsIHNlZWQgc29sbyBjYW1iaWEgZXhwbMOtY2l0YW1lbnRlIHZpYSBwcm9wcyBvXG4gICAgLy8gbW91bnQgaW5pY2lhbCDigJQgTk8gc2UgbXV0YSBlbiBtb2RvIGFuaW1hdGVkLlxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBjb2xzID0gdGhpcy5jb2xzKCk7XG4gICAgICBjb25zdCByb3dzID0gdGhpcy5yb3dzKCk7XG4gICAgICBjb25zdCBzZWVkID0gdGhpcy5zZWVkKCk7XG4gICAgICBjb25zdCBwYWxldHRlID0gdGhpcy5wYWxldHRlUmVmKCk7XG4gICAgICBjb25zdCBkZW5zaXR5ID0gdGhpcy5jaGV2cm9uRGVuc2l0eSgpO1xuICAgICAgdGhpcy50aWxlcy5zZXQoZ2VuZXJhdGVQYXR0ZXJuVGlsZXMoeyBjb2xzLCByb3dzLCBzZWVkLCBwYWxldHRlLCBjaGV2cm9uRGVuc2l0eTogZGVuc2l0eSB9KSk7XG4gICAgfSk7XG5cbiAgICAvLyBNb2RvIGFuaW1hdGVkOiBjYWRhIGByZXNodWZmbGVJbnRlcnZhbGAgbXMgcmVnZW5lcmEgZWwgZ3JpZCBjb21wbGV0b1xuICAgIC8vIGNvbiB1biBzZWVkIG51ZXZvLiBWaXN1YWxtZW50ZTogZWwgcGF0csOzbiBjYW1iaWEgZGUgdmV6IGVuIGN1YW5kby5cbiAgICAvLyBTaSBgdGlsZXNQZXJUaWNrID4gMGAgeSA8IHRvdGFsIHRpbGVzLCBoYWNlIHN0YWdnZXJlZCAocmVlbXBsYXphIHNvbG9cbiAgICAvLyBOIHRpbGVzIGVuIHZleiBkZSB0b2RhIGxhIGdyaWQpLiBEZWZhdWx0IHRpbGVzUGVyVGljaz0wIOKGkiByZXNlZWQgdG90YWwuXG4gICAgZWZmZWN0KG9uQ2xlYW51cCA9PiB7XG4gICAgICBjb25zdCBpc0FuaW1hdGVkID0gdGhpcy5hbmltYXRlZCgpO1xuICAgICAgY29uc3QgaW50ZXJ2YWwgPSB0aGlzLnJlc2h1ZmZsZUludGVydmFsKCk7XG4gICAgICBjb25zdCBwZXJUaWNrID0gdGhpcy50aWxlc1BlclRpY2soKTtcbiAgICAgIGlmICh0aGlzLnRpbWVyKSBjbGVhckludGVydmFsKHRoaXMudGltZXIpO1xuICAgICAgdGhpcy50aW1lciA9IHVuZGVmaW5lZDtcbiAgICAgIGlmICghaXNBbmltYXRlZCkgcmV0dXJuO1xuICAgICAgdGhpcy50aW1lciA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgaWYgKHBlclRpY2sgPiAwKSB7XG4gICAgICAgICAgdGhpcy5tdXRhdGVSYW5kb21UaWxlcyhwZXJUaWNrKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNlZWQuc2V0KHRoaXMucmFuZG9tU2VlZCgpKTtcbiAgICAgICAgfVxuICAgICAgfSwgaW50ZXJ2YWwpO1xuICAgICAgb25DbGVhbnVwKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMudGltZXIpIHtcbiAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMudGltZXIpO1xuICAgICAgICAgIHRoaXMudGltZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZW1wbGF6YSBgY291bnRgIHRpbGVzIHJhbmRvbSBkZWwgZ3JpZCBhY3R1YWwgY29uIHRpbGVzIG51ZXZvcyBnZW5lcmFkb3MuXG4gICAqIFVzYWRvIHBhcmEgc3RhZ2dlcmVkIHJlc2h1ZmZsZSAob3B0LWluIHZpYSBgdGlsZXNQZXJUaWNrID4gMGApLlxuICAgKi9cbiAgcHJpdmF0ZSBtdXRhdGVSYW5kb21UaWxlcyhjb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMudGlsZXMoKTtcbiAgICBpZiAoY3VycmVudC5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBuZXh0ID0gWy4uLmN1cnJlbnRdO1xuICAgIGNvbnN0IHBhbGV0dGUgPSB0aGlzLnBhbGV0dGVSZWYoKTtcbiAgICBjb25zdCBkZW5zaXR5ID0gdGhpcy5jaGV2cm9uRGVuc2l0eSgpO1xuICAgIGZvciAobGV0IG4gPSAwOyBuIDwgY291bnQ7IG4rKykge1xuICAgICAgY29uc3QgaWR4ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogbmV4dC5sZW5ndGgpO1xuICAgICAgbmV4dFtpZHhdID0gZ2VuZXJhdGVSYW5kb21UaWxlKHBhbGV0dGUsIGRlbnNpdHkpO1xuICAgIH1cbiAgICB0aGlzLnRpbGVzLnNldChuZXh0KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRpbWVyKSBjbGVhckludGVydmFsKHRoaXMudGltZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlUGFsZXR0ZShwOiBQYXR0ZXJuUGFsZXR0ZUtleSB8IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHApKSB7XG4gICAgICAvLyBBY2VwdGEgYXJyYXlzIGRlIGN1YWxxdWllciBsb25naXR1ZCDiiaUyOyB0aWxlIGNvbnRyYXN0IGxvZ2ljIHVzYSDDrW5kaWNlcy5cbiAgICAgIHJldHVybiBwLmxlbmd0aCA+PSAyID8gcCA6IFBBVFRFUk5fUEFMRVRURVMucHVycGxlO1xuICAgIH1cbiAgICByZXR1cm4gUEFUVEVSTl9QQUxFVFRFU1twXSA/PyBQQVRURVJOX1BBTEVUVEVTLnB1cnBsZTtcbiAgfVxuXG4gIHByaXZhdGUgcmFuZG9tU2VlZCgpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxXzAwMF8wMDApO1xuICB9XG59XG4iXX0=
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVybi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvcGF0dGVybi9wYXR0ZXJuLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBR2hCLHFCQUFxQixHQUN0QixNQUFNLFVBQVUsQ0FBQzs7QUFHbEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQW9DSCxNQUFNLE9BQU8sZ0JBQWdCO0lBaUIzQixrRUFBa0U7SUFDbEUsSUFBYSxLQUFLLENBQUMsS0FBa0M7UUFDbkQsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQ25CLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDckUsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNyRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUztZQUFFLElB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QUMsWUFBWSxDQUFDLFlBQ2IsMkRBQTJEO3dEQWlEeEQsS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIElucHV0LCBPbkRlc3Ryb3ksIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBnZW5lcmF0ZVBhdHRlcm5UaWxlcyxcbiAgZ2VuZXJhdGVSYW5kb21UaWxlLFxuICBQQVRURVJOX1BBTEVUVEVTLFxuICBQYXR0ZXJuUGFsZXR0ZUtleSxcbiAgUGF0dGVyblRpbGUsXG4gIHJlbmRlclBhdHRlcm5TdmdJbm5lcixcbn0gZnJvbSAnLi9tb3RpZnMnO1xuaW1wb3J0IHsgUGF0dGVybk1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogYHZhbC1wYXR0ZXJuYFxuICpcbiAqIENvbXBvbmVudGUgZGUgZm9uZG8gZ2VvbcOpdHJpY28gaW5zcGlyYWRvIGVuIGVsIHNpc3RlbWEgVmFsdGVjaC4gUmVuZGVyaXphIHVuXG4gKiBncmlkIGRlIHRpbGVzIDEwMMOXMTAwIGNvbiBtb3RpZnMgKGNoZXZyb25zLCB0cmlhbmdsZXMsIGRpYW1vbmRzLCBhcnJvd3MpIGVuXG4gKiB1biBTVkcgaW5saW5lLiBEZXRlcm1pbmlzdGEgdsOtYSBgc2VlZGAgbyBhbmltYWRvIHbDrWEgYHJlc2h1ZmZsZWAuXG4gKlxuICogQ2VybyBkZXBlbmRlbmNpYXMgZXh0ZXJuYXMg4oCUIHRvZG8gU1ZHLlxuICpcbiAqIEBleGFtcGxlIENvbW8gZm9uZG8gZGUgY2FyZCAoQ1NTIGFic29sdXRlKTpcbiAqIGBgYHNjc3NcbiAqIC5jYXJkIHsgcG9zaXRpb246IHJlbGF0aXZlOyBvdmVyZmxvdzogaGlkZGVuOyB9XG4gKiAuY2FyZCB2YWwtcGF0dGVybiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7IHotaW5kZXg6IDA7IG9wYWNpdHk6IDAuNDsgfVxuICogLmNhcmQgLmNvbnRlbnQgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7IH1cbiAqIGBgYFxuICpcbiAqIGBgYGh0bWxcbiAqIDxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gKiAgIDx2YWwtcGF0dGVybiBbcHJvcHNdPVwieyBwYWxldHRlOiAncHVycGxlJywgY29sczogNiwgcm93czogMywgc2VlZDogNDIgfVwiIC8+XG4gKiAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+VHUgY29udGVuaWRvIGFxdcOtPC9kaXY+XG4gKiA8L2Rpdj5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIENvbW8gYmFja2dyb3VuZCBhbmltYWRvIChoZXJvL2xvZ2luKTpcbiAqIGBgYGh0bWxcbiAqIDx2YWwtcGF0dGVybiBbcHJvcHNdPVwieyBwYWxldHRlOiAnbGF2ZW5kZXInLCBjb2xzOiAxNiwgcm93czogOCwgYW5pbWF0ZWQ6IHRydWUgfVwiIC8+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXBhdHRlcm4nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGAgPGRpdiBjbGFzcz1cInZhbC1wYXR0ZXJuXCIgW2lubmVySFRNTF09XCJzdmdIdG1sKClcIj48L2Rpdj4gYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cblxuICAgICAgLnZhbC1wYXR0ZXJuIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC42cyBlYXNlLWluLW91dDtcbiAgICAgIH1cblxuICAgICAgLyogU3BlY2lmaWNpdHkgMCwyLDAg4oCUIGJlYXRzIFVBIGRlZmF1bHRzIHBhcmEgU1ZHLiBXaWR0aC9oZWlnaHQgZnVlcnphblxuICAgICAgICogZmlsbCBkZWwgY29udGFpbmVyLiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwic2xpY2VcIiBlbiBlbCB2aWV3Qm94IGhhY2UgZWxcbiAgICAgICAqIGNyb3AvY292ZXIuIFNpbiBlc3RvLCBlbCBTVkcgY2FlIGEgc3UgaW50cmluc2ljIGFzcGVjdCByYXRpbyBkZWxcbiAgICAgICAqIHZpZXdCb3ggeSBkZWphIGZyYW5qYXMgY3VhbmRvIGVsIGNvbnRhaW5lciBubyBtYXRjaGVhIChlai4gbW9iaWxlXG4gICAgICAgKiBjb24gY29scy9yb3dzIHdpZGUtYXNwZWN0KS4gKi9cbiAgICAgIC52YWwtcGF0dGVybiBzdmcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQYXR0ZXJuQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNvbHMgPSBzaWduYWwoMTIpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJvd3MgPSBzaWduYWwoNCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2VlZCA9IHNpZ25hbCh0aGlzLnJhbmRvbVNlZWQoKSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGFsZXR0ZVJlZiA9IHNpZ25hbDxzdHJpbmdbXT4oUEFUVEVSTl9QQUxFVFRFUy5wdXJwbGUpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNoZXZyb25EZW5zaXR5ID0gc2lnbmFsKDAuNTUpO1xuICBwcml2YXRlIHJlYWRvbmx5IHByZXNlcnZlQXNwZWN0ID0gc2lnbmFsPCdzbGljZScgfCAnbWVldCc+KCdzbGljZScpO1xuICBwcml2YXRlIHJlYWRvbmx5IGFuaW1hdGVkID0gc2lnbmFsKGZhbHNlKTtcbiAgLyoqIG1zIGVudHJlIHJlc2h1ZmZsZXMgKG1vZG8gYW5pbWF0ZWQpLiBEZWZhdWx0IDgwMDBtcyDigJQgXCJkZSB2ZXogZW4gY3VhbmRvXCIuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzaHVmZmxlSW50ZXJ2YWwgPSBzaWduYWwoODAwMCk7XG4gIC8qKiBUaWxlcyBhIGNhbWJpYXIgcG9yIHRpY2suIDAg4oaSIHJlc2VlZCBncmlkIGNvbXBsZXRvIChkZWZhdWx0KS4gPjAg4oaSIHN0YWdnZXJlZC4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSB0aWxlc1BlclRpY2sgPSBzaWduYWwoMCk7XG5cbiAgcHJpdmF0ZSB0aW1lcj86IFJldHVyblR5cGU8dHlwZW9mIHNldEludGVydmFsPjtcblxuICAvKiogT2JqZWN0LWZpcnN0IGlucHV0LiBDYW1iaW9zIGRpc3BhcmFuIHJlLXJlbmRlciBwb3Igc2lnbmFscy4gKi9cbiAgQElucHV0KCkgc2V0IHByb3BzKHZhbHVlOiBQYXR0ZXJuTWV0YWRhdGEgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgaWYgKHZhbHVlLmNvbHMgIT09IHVuZGVmaW5lZCkgdGhpcy5jb2xzLnNldChNYXRoLm1heCgxLCB2YWx1ZS5jb2xzKSk7XG4gICAgaWYgKHZhbHVlLnJvd3MgIT09IHVuZGVmaW5lZCkgdGhpcy5yb3dzLnNldChNYXRoLm1heCgxLCB2YWx1ZS5yb3dzKSk7XG4gICAgaWYgKHZhbHVlLnNlZWQgIT09IHVuZGVmaW5lZCkgdGhpcy5zZWVkLnNldCh2YWx1ZS5zZWVkKTtcbiAgICBpZiAodmFsdWUuY2hldnJvbkRlbnNpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jaGV2cm9uRGVuc2l0eS5zZXQoTWF0aC5taW4oMSwgTWF0aC5tYXgoMCwgdmFsdWUuY2hldnJvbkRlbnNpdHkpKSk7XG4gICAgfVxuICAgIGlmICh2YWx1ZS5wcmVzZXJ2ZUFzcGVjdCAhPT0gdW5kZWZpbmVkKSB0aGlzLnByZXNlcnZlQXNwZWN0LnNldCh2YWx1ZS5wcmVzZXJ2ZUFzcGVjdCk7XG4gICAgaWYgKHZhbHVlLnBhbGV0dGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5wYWxldHRlUmVmLnNldCh0aGlzLnJlc29sdmVQYWxldHRlKHZhbHVlLnBhbGV0dGUpKTtcbiAgICB9XG4gICAgaWYgKHZhbHVlLnJlc2h1ZmZsZUludGVydmFsICE9PSB1bmRlZmluZWQgJiYgdmFsdWUucmVzaHVmZmxlSW50ZXJ2YWwgPiAwKSB7XG4gICAgICB0aGlzLnJlc2h1ZmZsZUludGVydmFsLnNldCh2YWx1ZS5yZXNodWZmbGVJbnRlcnZhbCk7XG4gICAgfVxuICAgIGlmICh2YWx1ZS50aWxlc1BlclRpY2sgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZS50aWxlc1BlclRpY2sgPj0gMCkge1xuICAgICAgdGhpcy50aWxlc1BlclRpY2suc2V0KE1hdGguZmxvb3IodmFsdWUudGlsZXNQZXJUaWNrKSk7XG4gICAgfVxuICAgIGlmICh2YWx1ZS5hbmltYXRlZCAhPT0gdW5kZWZpbmVkKSB0aGlzLmFuaW1hdGVkLnNldCghIXZhbHVlLmFuaW1hdGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaWxlcyBzaWduYWwg4oCUIG11dGFibGUuIFNlIHJlZ2VuZXJhIGNvbXBsZXRhIGN1YW5kbyBjYW1iaWEgc2VlZC9jb2xzL3Jvd3MvXG4gICAqIHBhbGV0dGUvZGVuc2l0eS4gRW4gbW9kbyBhbmltYXRlZCwgdGlsZXMgaW5kaXZpZHVhbGVzIHNlIHNvYnJlc2NyaWJlbiBzaW5cbiAgICogdG9jYXIgZWwgcmVzdG8gKGVmZWN0byBzdGFnZ2VyZWQpLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSB0aWxlcyA9IHNpZ25hbDxQYXR0ZXJuVGlsZVtdPihbXSk7XG5cbiAgLyoqIFNWRyBjb21wbGV0byBjb21vIHN0cmluZyBzYW5pdGl6ZWQgcGFyYSBgW2lubmVySFRNTF1gLiAqL1xuICByZWFkb25seSBzdmdIdG1sID0gY29tcHV0ZWQ8U2FmZUh0bWw+KCgpID0+IHtcbiAgICBjb25zdCBjb2xzID0gdGhpcy5jb2xzKCk7XG4gICAgY29uc3Qgcm93cyA9IHRoaXMucm93cygpO1xuICAgIGNvbnN0IHBhbGV0dGUgPSB0aGlzLnBhbGV0dGVSZWYoKTtcbiAgICBjb25zdCBpbm5lciA9IHJlbmRlclBhdHRlcm5TdmdJbm5lcih0aGlzLnRpbGVzKCksIGNvbHMsIHBhbGV0dGVbMF0hKTtcbiAgICBjb25zdCBhc3BlY3QgPSB0aGlzLnByZXNlcnZlQXNwZWN0KCkgPT09ICdtZWV0JyA/ICd4TWlkWU1pZCBtZWV0JyA6ICd4TWlkWU1pZCBzbGljZSc7XG4gICAgLy8gd2lkdGgvaGVpZ2h0PVwiMTAwJVwiIGNvbW8gQVRSSUJVVE9TIChubyBzb2xvIENTUykg4oCUIGFsZ3Vub3MgYnJvd3NlcnNcbiAgICAvLyAoU2FmYXJpL2lPUykgaWdub3JhbiBDU1MgaGVpZ2h0IGVuIFNWRyBzaW4gYXRyaWJ1dG9zIHkgY2FlbiBhbCBpbnRyaW5zaWNcbiAgICAvLyBhc3BlY3QgZGVsIHZpZXdCb3gsIGRlamFuZG8gZnJhbmphcyB2YWPDrWFzIGN1YW5kbyBlbCBjb250YWluZXIgbm9cbiAgICAvLyBtYXRjaGVhIGVsIHJhdGlvLlxuICAgIGNvbnN0IHN2ZyA9IGA8c3ZnIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiB2aWV3Qm94PVwiMCAwICR7Y29scyAqIDEwMH0gJHtyb3dzICogMTAwfVwiIHByZXNlcnZlQXNwZWN0UmF0aW89XCIke2FzcGVjdH1cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgc3R5bGU9XCJkaXNwbGF5OmJsb2NrO1wiPiR7aW5uZXJ9PC9zdmc+YDtcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoc3ZnKTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gUmVnZW5lcmEgZ3JpZCBjb21wbGV0YSBjdWFuZG8gY2FtYmlhbiBwcm9wcyBlc3RydWN0dXJhbGVzIChjb2xzL3Jvd3MvXG4gICAgLy8gcGFsZXR0ZS9kZW5zaXR5L3NlZWQpLiBFbCBzZWVkIHNvbG8gY2FtYmlhIGV4cGzDrWNpdGFtZW50ZSB2aWEgcHJvcHMgb1xuICAgIC8vIG1vdW50IGluaWNpYWwg4oCUIE5PIHNlIG11dGEgZW4gbW9kbyBhbmltYXRlZC5cbiAgICAvLyBgYWxsb3dTaWduYWxXcml0ZXM6IHRydWVgIHJlcXVlcmlkbyBlbiBBbmd1bGFyIDE4OiBlc2NyaWJpbW9zIGEgYHRpbGVzYFxuICAgIC8vIHNpZ25hbCBkZW50cm8gZGVsIGVmZmVjdCAoY29uc3VtaWRvIHBvciBzdmdIdG1sIGNvbXB1dGVkKS5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbHMgPSB0aGlzLmNvbHMoKTtcbiAgICAgICAgY29uc3Qgcm93cyA9IHRoaXMucm93cygpO1xuICAgICAgICBjb25zdCBzZWVkID0gdGhpcy5zZWVkKCk7XG4gICAgICAgIGNvbnN0IHBhbGV0dGUgPSB0aGlzLnBhbGV0dGVSZWYoKTtcbiAgICAgICAgY29uc3QgZGVuc2l0eSA9IHRoaXMuY2hldnJvbkRlbnNpdHkoKTtcbiAgICAgICAgdGhpcy50aWxlcy5zZXQoZ2VuZXJhdGVQYXR0ZXJuVGlsZXMoeyBjb2xzLCByb3dzLCBzZWVkLCBwYWxldHRlLCBjaGV2cm9uRGVuc2l0eTogZGVuc2l0eSB9KSk7XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgKTtcblxuICAgIC8vIE1vZG8gYW5pbWF0ZWQ6IGNhZGEgYHJlc2h1ZmZsZUludGVydmFsYCBtcyByZWdlbmVyYSBlbCBncmlkIGNvbXBsZXRvXG4gICAgLy8gY29uIHVuIHNlZWQgbnVldm8uIFZpc3VhbG1lbnRlOiBlbCBwYXRyw7NuIGNhbWJpYSBkZSB2ZXogZW4gY3VhbmRvLlxuICAgIC8vIFNpIGB0aWxlc1BlclRpY2sgPiAwYCB5IDwgdG90YWwgdGlsZXMsIGhhY2Ugc3RhZ2dlcmVkIChyZWVtcGxhemEgc29sb1xuICAgIC8vIE4gdGlsZXMgZW4gdmV6IGRlIHRvZGEgbGEgZ3JpZCkuIERlZmF1bHQgdGlsZXNQZXJUaWNrPTAg4oaSIHJlc2VlZCB0b3RhbC5cbiAgICBlZmZlY3Qob25DbGVhbnVwID0+IHtcbiAgICAgIGNvbnN0IGlzQW5pbWF0ZWQgPSB0aGlzLmFuaW1hdGVkKCk7XG4gICAgICBjb25zdCBpbnRlcnZhbCA9IHRoaXMucmVzaHVmZmxlSW50ZXJ2YWwoKTtcbiAgICAgIGNvbnN0IHBlclRpY2sgPSB0aGlzLnRpbGVzUGVyVGljaygpO1xuICAgICAgaWYgKHRoaXMudGltZXIpIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lcik7XG4gICAgICB0aGlzLnRpbWVyID0gdW5kZWZpbmVkO1xuICAgICAgaWYgKCFpc0FuaW1hdGVkKSByZXR1cm47XG4gICAgICB0aGlzLnRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICBpZiAocGVyVGljayA+IDApIHtcbiAgICAgICAgICB0aGlzLm11dGF0ZVJhbmRvbVRpbGVzKHBlclRpY2spO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2VlZC5zZXQodGhpcy5yYW5kb21TZWVkKCkpO1xuICAgICAgICB9XG4gICAgICB9LCBpbnRlcnZhbCk7XG4gICAgICBvbkNsZWFudXAoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy50aW1lcikge1xuICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lcik7XG4gICAgICAgICAgdGhpcy50aW1lciA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVlbXBsYXphIGBjb3VudGAgdGlsZXMgcmFuZG9tIGRlbCBncmlkIGFjdHVhbCBjb24gdGlsZXMgbnVldm9zIGdlbmVyYWRvcy5cbiAgICogVXNhZG8gcGFyYSBzdGFnZ2VyZWQgcmVzaHVmZmxlIChvcHQtaW4gdmlhIGB0aWxlc1BlclRpY2sgPiAwYCkuXG4gICAqL1xuICBwcml2YXRlIG11dGF0ZVJhbmRvbVRpbGVzKGNvdW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy50aWxlcygpO1xuICAgIGlmIChjdXJyZW50Lmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IG5leHQgPSBbLi4uY3VycmVudF07XG4gICAgY29uc3QgcGFsZXR0ZSA9IHRoaXMucGFsZXR0ZVJlZigpO1xuICAgIGNvbnN0IGRlbnNpdHkgPSB0aGlzLmNoZXZyb25EZW5zaXR5KCk7XG4gICAgZm9yIChsZXQgbiA9IDA7IG4gPCBjb3VudDsgbisrKSB7XG4gICAgICBjb25zdCBpZHggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBuZXh0Lmxlbmd0aCk7XG4gICAgICBuZXh0W2lkeF0gPSBnZW5lcmF0ZVJhbmRvbVRpbGUocGFsZXR0ZSwgZGVuc2l0eSk7XG4gICAgfVxuICAgIHRoaXMudGlsZXMuc2V0KG5leHQpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGltZXIpIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lcik7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVQYWxldHRlKHA6IFBhdHRlcm5QYWxldHRlS2V5IHwgc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocCkpIHtcbiAgICAgIC8vIEFjZXB0YSBhcnJheXMgZGUgY3VhbHF1aWVyIGxvbmdpdHVkIOKJpTI7IHRpbGUgY29udHJhc3QgbG9naWMgdXNhIMOtbmRpY2VzLlxuICAgICAgcmV0dXJuIHAubGVuZ3RoID49IDIgPyBwIDogUEFUVEVSTl9QQUxFVFRFUy5wdXJwbGU7XG4gICAgfVxuICAgIHJldHVybiBQQVRURVJOX1BBTEVUVEVTW3BdID8/IFBBVFRFUk5fUEFMRVRURVMucHVycGxlO1xuICB9XG5cbiAgcHJpdmF0ZSByYW5kb21TZWVkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDFfMDAwXzAwMCk7XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Current version of valtech-components.
|
|
3
3
|
* This is automatically updated during the publish process.
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = '2.0.
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const VERSION = '2.0.778';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC43NzgnO1xuIl19
|
|
@@ -52,7 +52,7 @@ import 'prismjs/components/prism-json';
|
|
|
52
52
|
* Current version of valtech-components.
|
|
53
53
|
* This is automatically updated during the publish process.
|
|
54
54
|
*/
|
|
55
|
-
const VERSION = '2.0.
|
|
55
|
+
const VERSION = '2.0.778';
|
|
56
56
|
|
|
57
57
|
/**
|
|
58
58
|
* Servicio para gestionar presets de componentes.
|
|
@@ -6051,12 +6051,18 @@ class PatternComponent {
|
|
|
6051
6051
|
const palette = this.paletteRef();
|
|
6052
6052
|
const inner = renderPatternSvgInner(this.tiles(), cols, palette[0]);
|
|
6053
6053
|
const aspect = this.preserveAspect() === 'meet' ? 'xMidYMid meet' : 'xMidYMid slice';
|
|
6054
|
-
|
|
6054
|
+
// width/height="100%" como ATRIBUTOS (no solo CSS) — algunos browsers
|
|
6055
|
+
// (Safari/iOS) ignoran CSS height en SVG sin atributos y caen al intrinsic
|
|
6056
|
+
// aspect del viewBox, dejando franjas vacías cuando el container no
|
|
6057
|
+
// matchea el ratio.
|
|
6058
|
+
const svg = `<svg width="100%" height="100%" viewBox="0 0 ${cols * 100} ${rows * 100}" preserveAspectRatio="${aspect}" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="display:block;">${inner}</svg>`;
|
|
6055
6059
|
return this.sanitizer.bypassSecurityTrustHtml(svg);
|
|
6056
6060
|
});
|
|
6057
6061
|
// Regenera grid completa cuando cambian props estructurales (cols/rows/
|
|
6058
6062
|
// palette/density/seed). El seed solo cambia explícitamente via props o
|
|
6059
6063
|
// mount inicial — NO se muta en modo animated.
|
|
6064
|
+
// `allowSignalWrites: true` requerido en Angular 18: escribimos a `tiles`
|
|
6065
|
+
// signal dentro del effect (consumido por svgHtml computed).
|
|
6060
6066
|
effect(() => {
|
|
6061
6067
|
const cols = this.cols();
|
|
6062
6068
|
const rows = this.rows();
|
|
@@ -6064,7 +6070,7 @@ class PatternComponent {
|
|
|
6064
6070
|
const palette = this.paletteRef();
|
|
6065
6071
|
const density = this.chevronDensity();
|
|
6066
6072
|
this.tiles.set(generatePatternTiles({ cols, rows, seed, palette, chevronDensity: density }));
|
|
6067
|
-
});
|
|
6073
|
+
}, { allowSignalWrites: true });
|
|
6068
6074
|
// Modo animated: cada `reshuffleInterval` ms regenera el grid completo
|
|
6069
6075
|
// con un seed nuevo. Visualmente: el patrón cambia de vez en cuando.
|
|
6070
6076
|
// Si `tilesPerTick > 0` y < total tiles, hace staggered (reemplaza solo
|
|
@@ -6126,11 +6132,11 @@ class PatternComponent {
|
|
|
6126
6132
|
return Math.floor(Math.random() * 1_000_000);
|
|
6127
6133
|
}
|
|
6128
6134
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PatternComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6129
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PatternComponent, isStandalone: true, selector: "val-pattern", inputs: { props: "props" }, ngImport: i0, template: ` <div class="val-pattern" [innerHTML]="svgHtml()"></div> `, isInline: true, styles: [":host{display:block;width:100%;height:100%;line-height:0}.val-pattern{
|
|
6135
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PatternComponent, isStandalone: true, selector: "val-pattern", inputs: { props: "props" }, ngImport: i0, template: ` <div class="val-pattern" [innerHTML]="svgHtml()"></div> `, isInline: true, styles: [":host{display:block;width:100%;height:100%;line-height:0;position:relative}.val-pattern{position:absolute;inset:0;display:block;transition:opacity .6s ease-in-out}.val-pattern svg{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
6130
6136
|
}
|
|
6131
6137
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PatternComponent, decorators: [{
|
|
6132
6138
|
type: Component,
|
|
6133
|
-
args: [{ selector: 'val-pattern', standalone: true, imports: [CommonModule], template: ` <div class="val-pattern" [innerHTML]="svgHtml()"></div> `, styles: [":host{display:block;width:100%;height:100%;line-height:0}.val-pattern{
|
|
6139
|
+
args: [{ selector: 'val-pattern', standalone: true, imports: [CommonModule], template: ` <div class="val-pattern" [innerHTML]="svgHtml()"></div> `, styles: [":host{display:block;width:100%;height:100%;line-height:0;position:relative}.val-pattern{position:absolute;inset:0;display:block;transition:opacity .6s ease-in-out}.val-pattern svg{display:block;width:100%;height:100%}\n"] }]
|
|
6134
6140
|
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
6135
6141
|
type: Input
|
|
6136
6142
|
}] } });
|