valtech-components 2.0.775 → 2.0.777

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.
@@ -54,7 +54,7 @@ export class PatternComponent {
54
54
  if (value.reshuffleInterval !== undefined && value.reshuffleInterval > 0) {
55
55
  this.reshuffleInterval.set(value.reshuffleInterval);
56
56
  }
57
- if (value.tilesPerTick !== undefined && value.tilesPerTick > 0) {
57
+ if (value.tilesPerTick !== undefined && value.tilesPerTick >= 0) {
58
58
  this.tilesPerTick.set(Math.floor(value.tilesPerTick));
59
59
  }
60
60
  if (value.animated !== undefined)
@@ -69,10 +69,10 @@ export class PatternComponent {
69
69
  this.chevronDensity = signal(0.55);
70
70
  this.preserveAspect = signal('slice');
71
71
  this.animated = signal(false);
72
- /** ms entre updates individuales de tiles (modo animated). Default 1200ms. */
73
- this.reshuffleInterval = signal(1200);
74
- /** Cuántos tiles cambiar por tick (default 1cambio sutil). */
75
- this.tilesPerTick = signal(1);
72
+ /** ms entre reshuffles (modo animated). Default 8000ms — "de vez en cuando". */
73
+ this.reshuffleInterval = signal(8000);
74
+ /** Tiles a cambiar por tick. 0 → reseed grid completo (default). >0staggered. */
75
+ this.tilesPerTick = signal(0);
76
76
  /**
77
77
  * Tiles signal — mutable. Se regenera completa cuando cambia seed/cols/rows/
78
78
  * palette/density. En modo animated, tiles individuales se sobrescriben sin
@@ -92,6 +92,8 @@ export class PatternComponent {
92
92
  // Regenera grid completa cuando cambian props estructurales (cols/rows/
93
93
  // palette/density/seed). El seed solo cambia explícitamente via props o
94
94
  // mount inicial — NO se muta en modo animated.
95
+ // `allowSignalWrites: true` requerido en Angular 18: escribimos a `tiles`
96
+ // signal dentro del effect (consumido por svgHtml computed).
95
97
  effect(() => {
96
98
  const cols = this.cols();
97
99
  const rows = this.rows();
@@ -99,10 +101,11 @@ export class PatternComponent {
99
101
  const palette = this.paletteRef();
100
102
  const density = this.chevronDensity();
101
103
  this.tiles.set(generatePatternTiles({ cols, rows, seed, palette, chevronDensity: density }));
102
- });
103
- // Modo animated: cada `reshuffleInterval` ms, sobrescribe `tilesPerTick`
104
- // tiles random efecto staggered (no toda la grid de una). Si el user
105
- // desactiva animated, el timer se limpia automáticamente.
104
+ }, { allowSignalWrites: true });
105
+ // Modo animated: cada `reshuffleInterval` ms regenera el grid completo
106
+ // con un seed nuevo. Visualmente: el patrón cambia de vez en cuando.
107
+ // Si `tilesPerTick > 0` y < total tiles, hace staggered (reemplaza solo
108
+ // N tiles en vez de toda la grid). Default tilesPerTick=0 → reseed total.
106
109
  effect(onCleanup => {
107
110
  const isAnimated = this.animated();
108
111
  const interval = this.reshuffleInterval();
@@ -112,7 +115,14 @@ export class PatternComponent {
112
115
  this.timer = undefined;
113
116
  if (!isAnimated)
114
117
  return;
115
- this.timer = setInterval(() => this.mutateRandomTiles(perTick), interval);
118
+ this.timer = setInterval(() => {
119
+ if (perTick > 0) {
120
+ this.mutateRandomTiles(perTick);
121
+ }
122
+ else {
123
+ this.seed.set(this.randomSeed());
124
+ }
125
+ }, interval);
116
126
  onCleanup(() => {
117
127
  if (this.timer) {
118
128
  clearInterval(this.timer);
@@ -123,7 +133,7 @@ export class PatternComponent {
123
133
  }
124
134
  /**
125
135
  * Reemplaza `count` tiles random del grid actual con tiles nuevos generados.
126
- * Usado por el modo animated para staggered reshuffle.
136
+ * Usado para staggered reshuffle (opt-in via `tilesPerTick > 0`).
127
137
  */
128
138
  mutateRandomTiles(count) {
129
139
  const current = this.tiles();
@@ -161,4 +171,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
161
171
  }], ctorParameters: () => [], propDecorators: { props: [{
162
172
  type: Input
163
173
  }] } });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVybi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvcGF0dGVybi9wYXR0ZXJuLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBR2hCLHFCQUFxQixHQUN0QixNQUFNLFVBQVUsQ0FBQzs7QUFHbEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQThCSCxNQUFNLE9BQU8sZ0JBQWdCO0lBaUIzQixrRUFBa0U7SUFDbEUsSUFBYSxLQUFLLENBQUMsS0FBa0M7UUFDbkQsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQ25CLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDckUsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNyRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUztZQUFFLElB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QztRQUNuRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8sY0FBYyxDQUFDLENBQStCO1FBQ3BELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3JCLDJFQUEyRTtZQUMzRSxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztRQUNyRCxDQUFDO1FBQ0QsT0FBTyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7SUFDeEQsQ0FBQztJQUVPLFVBQVU7UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUMvQyxDQUFDOytHQXpIVSxnQkFBZ0I7bUdBQWhCLGdCQUFnQixtR0F6QmpCLDJEQUEyRCx1UkFEM0QsWUFBWTs7NEZBMEJYLGdCQUFnQjtrQkE3QjVCLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiLDJEQUEyRDt3REEyQ3hELEtBQUs7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBJbnB1dCwgT25EZXN0cm95LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgZ2VuZXJhdGVQYXR0ZXJuVGlsZXMsXG4gIGdlbmVyYXRlUmFuZG9tVGlsZSxcbiAgUEFUVEVSTl9QQUxFVFRFUyxcbiAgUGF0dGVyblBhbGV0dGVLZXksXG4gIFBhdHRlcm5UaWxlLFxuICByZW5kZXJQYXR0ZXJuU3ZnSW5uZXIsXG59IGZyb20gJy4vbW90aWZzJztcbmltcG9ydCB7IFBhdHRlcm5NZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIGB2YWwtcGF0dGVybmBcbiAqXG4gKiBDb21wb25lbnRlIGRlIGZvbmRvIGdlb23DqXRyaWNvIGluc3BpcmFkbyBlbiBlbCBzaXN0ZW1hIFZhbHRlY2guIFJlbmRlcml6YSB1blxuICogZ3JpZCBkZSB0aWxlcyAxMDDDlzEwMCBjb24gbW90aWZzIChjaGV2cm9ucywgdHJpYW5nbGVzLCBkaWFtb25kcywgYXJyb3dzKSBlblxuICogdW4gU1ZHIGlubGluZS4gRGV0ZXJtaW5pc3RhIHbDrWEgYHNlZWRgIG8gYW5pbWFkbyB2w61hIGByZXNodWZmbGVgLlxuICpcbiAqIENlcm8gZGVwZW5kZW5jaWFzIGV4dGVybmFzIOKAlCB0b2RvIFNWRy5cbiAqXG4gKiBAZXhhbXBsZSBDb21vIGZvbmRvIGRlIGNhcmQgKENTUyBhYnNvbHV0ZSk6XG4gKiBgYGBzY3NzXG4gKiAuY2FyZCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICogLmNhcmQgdmFsLXBhdHRlcm4geyBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyB6LWluZGV4OiAwOyBvcGFjaXR5OiAwLjQ7IH1cbiAqIC5jYXJkIC5jb250ZW50IHsgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAxOyB9XG4gKiBgYGBcbiAqXG4gKiBgYGBodG1sXG4gKiA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICogICA8dmFsLXBhdHRlcm4gW3Byb3BzXT1cInsgcGFsZXR0ZTogJ3B1cnBsZScsIGNvbHM6IDYsIHJvd3M6IDMsIHNlZWQ6IDQyIH1cIiAvPlxuICogICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlR1IGNvbnRlbmlkbyBhcXXDrTwvZGl2PlxuICogPC9kaXY+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBDb21vIGJhY2tncm91bmQgYW5pbWFkbyAoaGVyby9sb2dpbik6XG4gKiBgYGBodG1sXG4gKiA8dmFsLXBhdHRlcm4gW3Byb3BzXT1cInsgcGFsZXR0ZTogJ2xhdmVuZGVyJywgY29sczogMTYsIHJvd3M6IDgsIGFuaW1hdGVkOiB0cnVlIH1cIiAvPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1wYXR0ZXJuJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgIDxkaXYgY2xhc3M9XCJ2YWwtcGF0dGVyblwiIFtpbm5lckhUTUxdPVwic3ZnSHRtbCgpXCI+PC9kaXY+IGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgfVxuXG4gICAgICAudmFsLXBhdHRlcm4ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzIGVhc2UtaW4tb3V0O1xuICAgICAgfVxuXG4gICAgICAudmFsLXBhdHRlcm4gOndoZXJlKHN2Zykge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQYXR0ZXJuQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNvbHMgPSBzaWduYWwoMTIpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJvd3MgPSBzaWduYWwoNCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2VlZCA9IHNpZ25hbCh0aGlzLnJhbmRvbVNlZWQoKSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGFsZXR0ZVJlZiA9IHNpZ25hbDxzdHJpbmdbXT4oUEFUVEVSTl9QQUxFVFRFUy5wdXJwbGUpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNoZXZyb25EZW5zaXR5ID0gc2lnbmFsKDAuNTUpO1xuICBwcml2YXRlIHJlYWRvbmx5IHByZXNlcnZlQXNwZWN0ID0gc2lnbmFsPCdzbGljZScgfCAnbWVldCc+KCdzbGljZScpO1xuICBwcml2YXRlIHJlYWRvbmx5IGFuaW1hdGVkID0gc2lnbmFsKGZhbHNlKTtcbiAgLyoqIG1zIGVudHJlIHVwZGF0ZXMgaW5kaXZpZHVhbGVzIGRlIHRpbGVzIChtb2RvIGFuaW1hdGVkKS4gRGVmYXVsdCAxMjAwbXMuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzaHVmZmxlSW50ZXJ2YWwgPSBzaWduYWwoMTIwMCk7XG4gIC8qKiBDdcOhbnRvcyB0aWxlcyBjYW1iaWFyIHBvciB0aWNrIChkZWZhdWx0IDEg4oaSIGNhbWJpbyBzdXRpbCkuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgdGlsZXNQZXJUaWNrID0gc2lnbmFsKDEpO1xuXG4gIHByaXZhdGUgdGltZXI/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD47XG5cbiAgLyoqIE9iamVjdC1maXJzdCBpbnB1dC4gQ2FtYmlvcyBkaXNwYXJhbiByZS1yZW5kZXIgcG9yIHNpZ25hbHMuICovXG4gIEBJbnB1dCgpIHNldCBwcm9wcyh2YWx1ZTogUGF0dGVybk1ldGFkYXRhIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuICAgIGlmICh2YWx1ZS5jb2xzICE9PSB1bmRlZmluZWQpIHRoaXMuY29scy5zZXQoTWF0aC5tYXgoMSwgdmFsdWUuY29scykpO1xuICAgIGlmICh2YWx1ZS5yb3dzICE9PSB1bmRlZmluZWQpIHRoaXMucm93cy5zZXQoTWF0aC5tYXgoMSwgdmFsdWUucm93cykpO1xuICAgIGlmICh2YWx1ZS5zZWVkICE9PSB1bmRlZmluZWQpIHRoaXMuc2VlZC5zZXQodmFsdWUuc2VlZCk7XG4gICAgaWYgKHZhbHVlLmNoZXZyb25EZW5zaXR5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY2hldnJvbkRlbnNpdHkuc2V0KE1hdGgubWluKDEsIE1hdGgubWF4KDAsIHZhbHVlLmNoZXZyb25EZW5zaXR5KSkpO1xuICAgIH1cbiAgICBpZiAodmFsdWUucHJlc2VydmVBc3BlY3QgIT09IHVuZGVmaW5lZCkgdGhpcy5wcmVzZXJ2ZUFzcGVjdC5zZXQodmFsdWUucHJlc2VydmVBc3BlY3QpO1xuICAgIGlmICh2YWx1ZS5wYWxldHRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucGFsZXR0ZVJlZi5zZXQodGhpcy5yZXNvbHZlUGFsZXR0ZSh2YWx1ZS5wYWxldHRlKSk7XG4gICAgfVxuICAgIGlmICh2YWx1ZS5yZXNodWZmbGVJbnRlcnZhbCAhPT0gdW5kZWZpbmVkICYmIHZhbHVlLnJlc2h1ZmZsZUludGVydmFsID4gMCkge1xuICAgICAgdGhpcy5yZXNodWZmbGVJbnRlcnZhbC5zZXQodmFsdWUucmVzaHVmZmxlSW50ZXJ2YWwpO1xuICAgIH1cbiAgICBpZiAodmFsdWUudGlsZXNQZXJUaWNrICE9PSB1bmRlZmluZWQgJiYgdmFsdWUudGlsZXNQZXJUaWNrID4gMCkge1xuICAgICAgdGhpcy50aWxlc1BlclRpY2suc2V0KE1hdGguZmxvb3IodmFsdWUudGlsZXNQZXJUaWNrKSk7XG4gICAgfVxuICAgIGlmICh2YWx1ZS5hbmltYXRlZCAhPT0gdW5kZWZpbmVkKSB0aGlzLmFuaW1hdGVkLnNldCghIXZhbHVlLmFuaW1hdGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaWxlcyBzaWduYWwg4oCUIG11dGFibGUuIFNlIHJlZ2VuZXJhIGNvbXBsZXRhIGN1YW5kbyBjYW1iaWEgc2VlZC9jb2xzL3Jvd3MvXG4gICAqIHBhbGV0dGUvZGVuc2l0eS4gRW4gbW9kbyBhbmltYXRlZCwgdGlsZXMgaW5kaXZpZHVhbGVzIHNlIHNvYnJlc2NyaWJlbiBzaW5cbiAgICogdG9jYXIgZWwgcmVzdG8gKGVmZWN0byBzdGFnZ2VyZWQpLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSB0aWxlcyA9IHNpZ25hbDxQYXR0ZXJuVGlsZVtdPihbXSk7XG5cbiAgLyoqIFNWRyBjb21wbGV0byBjb21vIHN0cmluZyBzYW5pdGl6ZWQgcGFyYSBgW2lubmVySFRNTF1gLiAqL1xuICByZWFkb25seSBzdmdIdG1sID0gY29tcHV0ZWQ8U2FmZUh0bWw+KCgpID0+IHtcbiAgICBjb25zdCBjb2xzID0gdGhpcy5jb2xzKCk7XG4gICAgY29uc3Qgcm93cyA9IHRoaXMucm93cygpO1xuICAgIGNvbnN0IHBhbGV0dGUgPSB0aGlzLnBhbGV0dGVSZWYoKTtcbiAgICBjb25zdCBpbm5lciA9IHJlbmRlclBhdHRlcm5TdmdJbm5lcih0aGlzLnRpbGVzKCksIGNvbHMsIHBhbGV0dGVbMF0hKTtcbiAgICBjb25zdCBhc3BlY3QgPSB0aGlzLnByZXNlcnZlQXNwZWN0KCkgPT09ICdtZWV0JyA/ICd4TWlkWU1pZCBtZWV0JyA6ICd4TWlkWU1pZCBzbGljZSc7XG4gICAgY29uc3Qgc3ZnID0gYDxzdmcgdmlld0JveD1cIjAgMCAke2NvbHMgKiAxMDB9ICR7cm93cyAqIDEwMH1cIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwiJHthc3BlY3R9XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiR7aW5uZXJ9PC9zdmc+YDtcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoc3ZnKTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gUmVnZW5lcmEgZ3JpZCBjb21wbGV0YSBjdWFuZG8gY2FtYmlhbiBwcm9wcyBlc3RydWN0dXJhbGVzIChjb2xzL3Jvd3MvXG4gICAgLy8gcGFsZXR0ZS9kZW5zaXR5L3NlZWQpLiBFbCBzZWVkIHNvbG8gY2FtYmlhIGV4cGzDrWNpdGFtZW50ZSB2aWEgcHJvcHMgb1xuICAgIC8vIG1vdW50IGluaWNpYWwg4oCUIE5PIHNlIG11dGEgZW4gbW9kbyBhbmltYXRlZC5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgY29scyA9IHRoaXMuY29scygpO1xuICAgICAgY29uc3Qgcm93cyA9IHRoaXMucm93cygpO1xuICAgICAgY29uc3Qgc2VlZCA9IHRoaXMuc2VlZCgpO1xuICAgICAgY29uc3QgcGFsZXR0ZSA9IHRoaXMucGFsZXR0ZVJlZigpO1xuICAgICAgY29uc3QgZGVuc2l0eSA9IHRoaXMuY2hldnJvbkRlbnNpdHkoKTtcbiAgICAgIHRoaXMudGlsZXMuc2V0KGdlbmVyYXRlUGF0dGVyblRpbGVzKHsgY29scywgcm93cywgc2VlZCwgcGFsZXR0ZSwgY2hldnJvbkRlbnNpdHk6IGRlbnNpdHkgfSkpO1xuICAgIH0pO1xuXG4gICAgLy8gTW9kbyBhbmltYXRlZDogY2FkYSBgcmVzaHVmZmxlSW50ZXJ2YWxgIG1zLCBzb2JyZXNjcmliZSBgdGlsZXNQZXJUaWNrYFxuICAgIC8vIHRpbGVzIHJhbmRvbSDigJQgZWZlY3RvIHN0YWdnZXJlZCAobm8gdG9kYSBsYSBncmlkIGRlIHVuYSkuIFNpIGVsIHVzZXJcbiAgICAvLyBkZXNhY3RpdmEgYW5pbWF0ZWQsIGVsIHRpbWVyIHNlIGxpbXBpYSBhdXRvbcOhdGljYW1lbnRlLlxuICAgIGVmZmVjdChvbkNsZWFudXAgPT4ge1xuICAgICAgY29uc3QgaXNBbmltYXRlZCA9IHRoaXMuYW5pbWF0ZWQoKTtcbiAgICAgIGNvbnN0IGludGVydmFsID0gdGhpcy5yZXNodWZmbGVJbnRlcnZhbCgpO1xuICAgICAgY29uc3QgcGVyVGljayA9IHRoaXMudGlsZXNQZXJUaWNrKCk7XG4gICAgICBpZiAodGhpcy50aW1lcikgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTtcbiAgICAgIHRoaXMudGltZXIgPSB1bmRlZmluZWQ7XG4gICAgICBpZiAoIWlzQW5pbWF0ZWQpIHJldHVybjtcbiAgICAgIHRoaXMudGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB0aGlzLm11dGF0ZVJhbmRvbVRpbGVzKHBlclRpY2spLCBpbnRlcnZhbCk7XG4gICAgICBvbkNsZWFudXAoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy50aW1lcikge1xuICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lcik7XG4gICAgICAgICAgdGhpcy50aW1lciA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVlbXBsYXphIGBjb3VudGAgdGlsZXMgcmFuZG9tIGRlbCBncmlkIGFjdHVhbCBjb24gdGlsZXMgbnVldm9zIGdlbmVyYWRvcy5cbiAgICogVXNhZG8gcG9yIGVsIG1vZG8gYW5pbWF0ZWQgcGFyYSBzdGFnZ2VyZWQgcmVzaHVmZmxlLlxuICAgKi9cbiAgcHJpdmF0ZSBtdXRhdGVSYW5kb21UaWxlcyhjb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMudGlsZXMoKTtcbiAgICBpZiAoY3VycmVudC5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBuZXh0ID0gWy4uLmN1cnJlbnRdO1xuICAgIGNvbnN0IHBhbGV0dGUgPSB0aGlzLnBhbGV0dGVSZWYoKTtcbiAgICBjb25zdCBkZW5zaXR5ID0gdGhpcy5jaGV2cm9uRGVuc2l0eSgpO1xuICAgIGZvciAobGV0IG4gPSAwOyBuIDwgY291bnQ7IG4rKykge1xuICAgICAgY29uc3QgaWR4ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogbmV4dC5sZW5ndGgpO1xuICAgICAgbmV4dFtpZHhdID0gZ2VuZXJhdGVSYW5kb21UaWxlKHBhbGV0dGUsIGRlbnNpdHkpO1xuICAgIH1cbiAgICB0aGlzLnRpbGVzLnNldChuZXh0KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRpbWVyKSBjbGVhckludGVydmFsKHRoaXMudGltZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlUGFsZXR0ZShwOiBQYXR0ZXJuUGFsZXR0ZUtleSB8IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHApKSB7XG4gICAgICAvLyBBY2VwdGEgYXJyYXlzIGRlIGN1YWxxdWllciBsb25naXR1ZCDiiaUyOyB0aWxlIGNvbnRyYXN0IGxvZ2ljIHVzYSDDrW5kaWNlcy5cbiAgICAgIHJldHVybiBwLmxlbmd0aCA+PSAyID8gcCA6IFBBVFRFUk5fUEFMRVRURVMucHVycGxlO1xuICAgIH1cbiAgICByZXR1cm4gUEFUVEVSTl9QQUxFVFRFU1twXSA/PyBQQVRURVJOX1BBTEVUVEVTLnB1cnBsZTtcbiAgfVxuXG4gIHByaXZhdGUgcmFuZG9tU2VlZCgpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxXzAwMF8wMDApO1xuICB9XG59XG4iXX0=
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVybi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvcGF0dGVybi9wYXR0ZXJuLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBR2hCLHFCQUFxQixHQUN0QixNQUFNLFVBQVUsQ0FBQzs7QUFHbEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQThCSCxNQUFNLE9BQU8sZ0JBQWdCO0lBaUIzQixrRUFBa0U7SUFDbEUsSUFBYSxLQUFLLENBQUMsS0FBa0M7UUFDbkQsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQ25CLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDckUsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNyRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUztZQUFFLElB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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgSW5wdXQsIE9uRGVzdHJveSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGdlbmVyYXRlUGF0dGVyblRpbGVzLFxuICBnZW5lcmF0ZVJhbmRvbVRpbGUsXG4gIFBBVFRFUk5fUEFMRVRURVMsXG4gIFBhdHRlcm5QYWxldHRlS2V5LFxuICBQYXR0ZXJuVGlsZSxcbiAgcmVuZGVyUGF0dGVyblN2Z0lubmVyLFxufSBmcm9tICcuL21vdGlmcyc7XG5pbXBvcnQgeyBQYXR0ZXJuTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBgdmFsLXBhdHRlcm5gXG4gKlxuICogQ29tcG9uZW50ZSBkZSBmb25kbyBnZW9tw6l0cmljbyBpbnNwaXJhZG8gZW4gZWwgc2lzdGVtYSBWYWx0ZWNoLiBSZW5kZXJpemEgdW5cbiAqIGdyaWQgZGUgdGlsZXMgMTAww5cxMDAgY29uIG1vdGlmcyAoY2hldnJvbnMsIHRyaWFuZ2xlcywgZGlhbW9uZHMsIGFycm93cykgZW5cbiAqIHVuIFNWRyBpbmxpbmUuIERldGVybWluaXN0YSB2w61hIGBzZWVkYCBvIGFuaW1hZG8gdsOtYSBgcmVzaHVmZmxlYC5cbiAqXG4gKiBDZXJvIGRlcGVuZGVuY2lhcyBleHRlcm5hcyDigJQgdG9kbyBTVkcuXG4gKlxuICogQGV4YW1wbGUgQ29tbyBmb25kbyBkZSBjYXJkIChDU1MgYWJzb2x1dGUpOlxuICogYGBgc2Nzc1xuICogLmNhcmQgeyBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47IH1cbiAqIC5jYXJkIHZhbC1wYXR0ZXJuIHsgcG9zaXRpb246IGFic29sdXRlOyBpbnNldDogMDsgei1pbmRleDogMDsgb3BhY2l0eTogMC40OyB9XG4gKiAuY2FyZCAuY29udGVudCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTsgfVxuICogYGBgXG4gKlxuICogYGBgaHRtbFxuICogPGRpdiBjbGFzcz1cImNhcmRcIj5cbiAqICAgPHZhbC1wYXR0ZXJuIFtwcm9wc109XCJ7IHBhbGV0dGU6ICdwdXJwbGUnLCBjb2xzOiA2LCByb3dzOiAzLCBzZWVkOiA0MiB9XCIgLz5cbiAqICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5UdSBjb250ZW5pZG8gYXF1w608L2Rpdj5cbiAqIDwvZGl2PlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgQ29tbyBiYWNrZ3JvdW5kIGFuaW1hZG8gKGhlcm8vbG9naW4pOlxuICogYGBgaHRtbFxuICogPHZhbC1wYXR0ZXJuIFtwcm9wc109XCJ7IHBhbGV0dGU6ICdsYXZlbmRlcicsIGNvbHM6IDE2LCByb3dzOiA4LCBhbmltYXRlZDogdHJ1ZSB9XCIgLz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcGF0dGVybicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYCA8ZGl2IGNsYXNzPVwidmFsLXBhdHRlcm5cIiBbaW5uZXJIVE1MXT1cInN2Z0h0bWwoKVwiPjwvZGl2PiBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIH1cblxuICAgICAgLnZhbC1wYXR0ZXJuIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC42cyBlYXNlLWluLW91dDtcbiAgICAgIH1cblxuICAgICAgLnZhbC1wYXR0ZXJuIDp3aGVyZShzdmcpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUGF0dGVybkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgc2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb2xzID0gc2lnbmFsKDEyKTtcbiAgcHJpdmF0ZSByZWFkb25seSByb3dzID0gc2lnbmFsKDQpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlZWQgPSBzaWduYWwodGhpcy5yYW5kb21TZWVkKCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IHBhbGV0dGVSZWYgPSBzaWduYWw8c3RyaW5nW10+KFBBVFRFUk5fUEFMRVRURVMucHVycGxlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjaGV2cm9uRGVuc2l0eSA9IHNpZ25hbCgwLjU1KTtcbiAgcHJpdmF0ZSByZWFkb25seSBwcmVzZXJ2ZUFzcGVjdCA9IHNpZ25hbDwnc2xpY2UnIHwgJ21lZXQnPignc2xpY2UnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBhbmltYXRlZCA9IHNpZ25hbChmYWxzZSk7XG4gIC8qKiBtcyBlbnRyZSByZXNodWZmbGVzIChtb2RvIGFuaW1hdGVkKS4gRGVmYXVsdCA4MDAwbXMg4oCUIFwiZGUgdmV6IGVuIGN1YW5kb1wiLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc2h1ZmZsZUludGVydmFsID0gc2lnbmFsKDgwMDApO1xuICAvKiogVGlsZXMgYSBjYW1iaWFyIHBvciB0aWNrLiAwIOKGkiByZXNlZWQgZ3JpZCBjb21wbGV0byAoZGVmYXVsdCkuID4wIOKGkiBzdGFnZ2VyZWQuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgdGlsZXNQZXJUaWNrID0gc2lnbmFsKDApO1xuXG4gIHByaXZhdGUgdGltZXI/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD47XG5cbiAgLyoqIE9iamVjdC1maXJzdCBpbnB1dC4gQ2FtYmlvcyBkaXNwYXJhbiByZS1yZW5kZXIgcG9yIHNpZ25hbHMuICovXG4gIEBJbnB1dCgpIHNldCBwcm9wcyh2YWx1ZTogUGF0dGVybk1ldGFkYXRhIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuICAgIGlmICh2YWx1ZS5jb2xzICE9PSB1bmRlZmluZWQpIHRoaXMuY29scy5zZXQoTWF0aC5tYXgoMSwgdmFsdWUuY29scykpO1xuICAgIGlmICh2YWx1ZS5yb3dzICE9PSB1bmRlZmluZWQpIHRoaXMucm93cy5zZXQoTWF0aC5tYXgoMSwgdmFsdWUucm93cykpO1xuICAgIGlmICh2YWx1ZS5zZWVkICE9PSB1bmRlZmluZWQpIHRoaXMuc2VlZC5zZXQodmFsdWUuc2VlZCk7XG4gICAgaWYgKHZhbHVlLmNoZXZyb25EZW5zaXR5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY2hldnJvbkRlbnNpdHkuc2V0KE1hdGgubWluKDEsIE1hdGgubWF4KDAsIHZhbHVlLmNoZXZyb25EZW5zaXR5KSkpO1xuICAgIH1cbiAgICBpZiAodmFsdWUucHJlc2VydmVBc3BlY3QgIT09IHVuZGVmaW5lZCkgdGhpcy5wcmVzZXJ2ZUFzcGVjdC5zZXQodmFsdWUucHJlc2VydmVBc3BlY3QpO1xuICAgIGlmICh2YWx1ZS5wYWxldHRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucGFsZXR0ZVJlZi5zZXQodGhpcy5yZXNvbHZlUGFsZXR0ZSh2YWx1ZS5wYWxldHRlKSk7XG4gICAgfVxuICAgIGlmICh2YWx1ZS5yZXNodWZmbGVJbnRlcnZhbCAhPT0gdW5kZWZpbmVkICYmIHZhbHVlLnJlc2h1ZmZsZUludGVydmFsID4gMCkge1xuICAgICAgdGhpcy5yZXNodWZmbGVJbnRlcnZhbC5zZXQodmFsdWUucmVzaHVmZmxlSW50ZXJ2YWwpO1xuICAgIH1cbiAgICBpZiAodmFsdWUudGlsZXNQZXJUaWNrICE9PSB1bmRlZmluZWQgJiYgdmFsdWUudGlsZXNQZXJUaWNrID49IDApIHtcbiAgICAgIHRoaXMudGlsZXNQZXJUaWNrLnNldChNYXRoLmZsb29yKHZhbHVlLnRpbGVzUGVyVGljaykpO1xuICAgIH1cbiAgICBpZiAodmFsdWUuYW5pbWF0ZWQgIT09IHVuZGVmaW5lZCkgdGhpcy5hbmltYXRlZC5zZXQoISF2YWx1ZS5hbmltYXRlZCk7XG4gIH1cblxuICAvKipcbiAgICogVGlsZXMgc2lnbmFsIOKAlCBtdXRhYmxlLiBTZSByZWdlbmVyYSBjb21wbGV0YSBjdWFuZG8gY2FtYmlhIHNlZWQvY29scy9yb3dzL1xuICAgKiBwYWxldHRlL2RlbnNpdHkuIEVuIG1vZG8gYW5pbWF0ZWQsIHRpbGVzIGluZGl2aWR1YWxlcyBzZSBzb2JyZXNjcmliZW4gc2luXG4gICAqIHRvY2FyIGVsIHJlc3RvIChlZmVjdG8gc3RhZ2dlcmVkKS5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgdGlsZXMgPSBzaWduYWw8UGF0dGVyblRpbGVbXT4oW10pO1xuXG4gIC8qKiBTVkcgY29tcGxldG8gY29tbyBzdHJpbmcgc2FuaXRpemVkIHBhcmEgYFtpbm5lckhUTUxdYC4gKi9cbiAgcmVhZG9ubHkgc3ZnSHRtbCA9IGNvbXB1dGVkPFNhZmVIdG1sPigoKSA9PiB7XG4gICAgY29uc3QgY29scyA9IHRoaXMuY29scygpO1xuICAgIGNvbnN0IHJvd3MgPSB0aGlzLnJvd3MoKTtcbiAgICBjb25zdCBwYWxldHRlID0gdGhpcy5wYWxldHRlUmVmKCk7XG4gICAgY29uc3QgaW5uZXIgPSByZW5kZXJQYXR0ZXJuU3ZnSW5uZXIodGhpcy50aWxlcygpLCBjb2xzLCBwYWxldHRlWzBdISk7XG4gICAgY29uc3QgYXNwZWN0ID0gdGhpcy5wcmVzZXJ2ZUFzcGVjdCgpID09PSAnbWVldCcgPyAneE1pZFlNaWQgbWVldCcgOiAneE1pZFlNaWQgc2xpY2UnO1xuICAgIGNvbnN0IHN2ZyA9IGA8c3ZnIHZpZXdCb3g9XCIwIDAgJHtjb2xzICogMTAwfSAke3Jvd3MgKiAxMDB9XCIgcHJlc2VydmVBc3BlY3RSYXRpbz1cIiR7YXNwZWN0fVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4ke2lubmVyfTwvc3ZnPmA7XG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHN2Zyk7XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIFJlZ2VuZXJhIGdyaWQgY29tcGxldGEgY3VhbmRvIGNhbWJpYW4gcHJvcHMgZXN0cnVjdHVyYWxlcyAoY29scy9yb3dzL1xuICAgIC8vIHBhbGV0dGUvZGVuc2l0eS9zZWVkKS4gRWwgc2VlZCBzb2xvIGNhbWJpYSBleHBsw61jaXRhbWVudGUgdmlhIHByb3BzIG9cbiAgICAvLyBtb3VudCBpbmljaWFsIOKAlCBOTyBzZSBtdXRhIGVuIG1vZG8gYW5pbWF0ZWQuXG4gICAgLy8gYGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlYCByZXF1ZXJpZG8gZW4gQW5ndWxhciAxODogZXNjcmliaW1vcyBhIGB0aWxlc2BcbiAgICAvLyBzaWduYWwgZGVudHJvIGRlbCBlZmZlY3QgKGNvbnN1bWlkbyBwb3Igc3ZnSHRtbCBjb21wdXRlZCkuXG4gICAgZWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCBjb2xzID0gdGhpcy5jb2xzKCk7XG4gICAgICAgIGNvbnN0IHJvd3MgPSB0aGlzLnJvd3MoKTtcbiAgICAgICAgY29uc3Qgc2VlZCA9IHRoaXMuc2VlZCgpO1xuICAgICAgICBjb25zdCBwYWxldHRlID0gdGhpcy5wYWxldHRlUmVmKCk7XG4gICAgICAgIGNvbnN0IGRlbnNpdHkgPSB0aGlzLmNoZXZyb25EZW5zaXR5KCk7XG4gICAgICAgIHRoaXMudGlsZXMuc2V0KGdlbmVyYXRlUGF0dGVyblRpbGVzKHsgY29scywgcm93cywgc2VlZCwgcGFsZXR0ZSwgY2hldnJvbkRlbnNpdHk6IGRlbnNpdHkgfSkpO1xuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG5cbiAgICAvLyBNb2RvIGFuaW1hdGVkOiBjYWRhIGByZXNodWZmbGVJbnRlcnZhbGAgbXMgcmVnZW5lcmEgZWwgZ3JpZCBjb21wbGV0b1xuICAgIC8vIGNvbiB1biBzZWVkIG51ZXZvLiBWaXN1YWxtZW50ZTogZWwgcGF0csOzbiBjYW1iaWEgZGUgdmV6IGVuIGN1YW5kby5cbiAgICAvLyBTaSBgdGlsZXNQZXJUaWNrID4gMGAgeSA8IHRvdGFsIHRpbGVzLCBoYWNlIHN0YWdnZXJlZCAocmVlbXBsYXphIHNvbG9cbiAgICAvLyBOIHRpbGVzIGVuIHZleiBkZSB0b2RhIGxhIGdyaWQpLiBEZWZhdWx0IHRpbGVzUGVyVGljaz0wIOKGkiByZXNlZWQgdG90YWwuXG4gICAgZWZmZWN0KG9uQ2xlYW51cCA9PiB7XG4gICAgICBjb25zdCBpc0FuaW1hdGVkID0gdGhpcy5hbmltYXRlZCgpO1xuICAgICAgY29uc3QgaW50ZXJ2YWwgPSB0aGlzLnJlc2h1ZmZsZUludGVydmFsKCk7XG4gICAgICBjb25zdCBwZXJUaWNrID0gdGhpcy50aWxlc1BlclRpY2soKTtcbiAgICAgIGlmICh0aGlzLnRpbWVyKSBjbGVhckludGVydmFsKHRoaXMudGltZXIpO1xuICAgICAgdGhpcy50aW1lciA9IHVuZGVmaW5lZDtcbiAgICAgIGlmICghaXNBbmltYXRlZCkgcmV0dXJuO1xuICAgICAgdGhpcy50aW1lciA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgaWYgKHBlclRpY2sgPiAwKSB7XG4gICAgICAgICAgdGhpcy5tdXRhdGVSYW5kb21UaWxlcyhwZXJUaWNrKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNlZWQuc2V0KHRoaXMucmFuZG9tU2VlZCgpKTtcbiAgICAgICAgfVxuICAgICAgfSwgaW50ZXJ2YWwpO1xuICAgICAgb25DbGVhbnVwKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMudGltZXIpIHtcbiAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMudGltZXIpO1xuICAgICAgICAgIHRoaXMudGltZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZW1wbGF6YSBgY291bnRgIHRpbGVzIHJhbmRvbSBkZWwgZ3JpZCBhY3R1YWwgY29uIHRpbGVzIG51ZXZvcyBnZW5lcmFkb3MuXG4gICAqIFVzYWRvIHBhcmEgc3RhZ2dlcmVkIHJlc2h1ZmZsZSAob3B0LWluIHZpYSBgdGlsZXNQZXJUaWNrID4gMGApLlxuICAgKi9cbiAgcHJpdmF0ZSBtdXRhdGVSYW5kb21UaWxlcyhjb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMudGlsZXMoKTtcbiAgICBpZiAoY3VycmVudC5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCBuZXh0ID0gWy4uLmN1cnJlbnRdO1xuICAgIGNvbnN0IHBhbGV0dGUgPSB0aGlzLnBhbGV0dGVSZWYoKTtcbiAgICBjb25zdCBkZW5zaXR5ID0gdGhpcy5jaGV2cm9uRGVuc2l0eSgpO1xuICAgIGZvciAobGV0IG4gPSAwOyBuIDwgY291bnQ7IG4rKykge1xuICAgICAgY29uc3QgaWR4ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogbmV4dC5sZW5ndGgpO1xuICAgICAgbmV4dFtpZHhdID0gZ2VuZXJhdGVSYW5kb21UaWxlKHBhbGV0dGUsIGRlbnNpdHkpO1xuICAgIH1cbiAgICB0aGlzLnRpbGVzLnNldChuZXh0KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRpbWVyKSBjbGVhckludGVydmFsKHRoaXMudGltZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlUGFsZXR0ZShwOiBQYXR0ZXJuUGFsZXR0ZUtleSB8IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHApKSB7XG4gICAgICAvLyBBY2VwdGEgYXJyYXlzIGRlIGN1YWxxdWllciBsb25naXR1ZCDiiaUyOyB0aWxlIGNvbnRyYXN0IGxvZ2ljIHVzYSDDrW5kaWNlcy5cbiAgICAgIHJldHVybiBwLmxlbmd0aCA+PSAyID8gcCA6IFBBVFRFUk5fUEFMRVRURVMucHVycGxlO1xuICAgIH1cbiAgICByZXR1cm4gUEFUVEVSTl9QQUxFVFRFU1twXSA/PyBQQVRURVJOX1BBTEVUVEVTLnB1cnBsZTtcbiAgfVxuXG4gIHByaXZhdGUgcmFuZG9tU2VlZCgpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxXzAwMF8wMDApO1xuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvcGF0dGVybi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGF0dGVyblBhbGV0dGVLZXkgfSBmcm9tICcuL21vdGlmcyc7XG5cbi8qKlxuICogQ29uZmlndXJhY2nDs24gZGVsIGNvbXBvbmVudGUgYHZhbC1wYXR0ZXJuYC5cbiAqXG4gKiBAZXhhbXBsZSBTdGF0aWMgKHNlZWQgZmlqbywgcmVwcm9kdWNpYmxlKTpcbiAqIGBgYGh0bWxcbiAqIDx2YWwtcGF0dGVybiBbcHJvcHNdPVwieyBwYWxldHRlOiAncHVycGxlJywgY29sczogMTIsIHJvd3M6IDQsIHNlZWQ6IDQyIH1cIiAvPlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgQW5pbWF0ZWQgc3RhZ2dlcmVkICgxIHRpbGUgY2FkYSAxLjJzLCBzdXRpbCk6XG4gKiBgYGBodG1sXG4gKiA8dmFsLXBhdHRlcm4gW3Byb3BzXT1cInsgcGFsZXR0ZTogJ2luaycsIGNvbHM6IDE2LCByb3dzOiA4LCBhbmltYXRlZDogdHJ1ZSB9XCIgLz5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIEFuaW1hdGVkIG3DoXMgYWN0aXZvICgyIHRpbGVzIGNhZGEgODAwbXMpOlxuICogYGBgaHRtbFxuICogPHZhbC1wYXR0ZXJuIFtwcm9wc109XCJ7IGFuaW1hdGVkOiB0cnVlLCByZXNodWZmbGVJbnRlcnZhbDogODAwLCB0aWxlc1BlclRpY2s6IDIgfVwiIC8+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXR0ZXJuTWV0YWRhdGEge1xuICAvKipcbiAgICogUGFsZXR0ZSBidWlsdC1pbiAoYCdwdXJwbGUnIHwgJ2luaycgfCAnbGF2ZW5kZXInYCkgbyBhcnJheSBjdXN0b20gZGUgOFxuICAgKiBjb2xvcmVzIGRhcmsg4oaSIGxpZ2h0LiBEZWZhdWx0OiBgJ3B1cnBsZSdgLlxuICAgKi9cbiAgcGFsZXR0ZT86IFBhdHRlcm5QYWxldHRlS2V5IHwgc3RyaW5nW107XG5cbiAgLyoqIENvbHVtbmFzIGRlbCBncmlkLiBEZWZhdWx0OiAxMi4gKi9cbiAgY29scz86IG51bWJlcjtcblxuICAvKiogRmlsYXMgZGVsIGdyaWQuIERlZmF1bHQ6IDQuICovXG4gIHJvd3M/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNlZWQgcGFyYSBNdWxiZXJyeTMyIOKAlCBkZXRlcm1pbmEgZWwgcGF0csOzbi4gU2kgbm8gc2UgcGFzYSwgZ2VuZXJhIHVubyByYW5kb21cbiAgICogYWwgbW91bnQgeSBxdWVkYSBmaWpvIChhIG1lbm9zIHF1ZSBgYW5pbWF0ZWQ6IHRydWVgKS5cbiAgICovXG4gIHNlZWQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERlbnNpZGFkIGRlIGNoZXZyb25zICgwLi4xKS4gRWwgcmVzdG8gc2UgcmVwYXJ0ZSBlbnRyZSBzb2xpZC9zaGFwZS90cmkuXG4gICAqIERlZmF1bHQ6IGAwLjU1YC5cbiAgICovXG4gIGNoZXZyb25EZW5zaXR5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTaSBgdHJ1ZWAsIGVsIHBhdHLDs24gaGFjZSAqKnN0YWdnZXJlZCByZXNodWZmbGUqKjogY2FkYSBgcmVzaHVmZmxlSW50ZXJ2YWxgXG4gICAqIG1zIHNlIHJlZW1wbGF6YW4gYHRpbGVzUGVyVGlja2AgdGlsZXMgcmFuZG9tIOKAlCBOTyBsYSBncmlkIGVudGVyYS5cbiAgICogRGVmYXVsdDogYGZhbHNlYC5cbiAgICovXG4gIGFuaW1hdGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogbXMgZW50cmUgdXBkYXRlcyBpbmRpdmlkdWFsZXMgZGUgdGlsZXMgKG1vZG8gYW5pbWF0ZWQpLlxuICAgKiBEZWZhdWx0OiBgMTIwMGAgKH4xIHRpbGUgY2FkYSAxLjJzIGNvbiBgdGlsZXNQZXJUaWNrOiAxYCkuXG4gICAqL1xuICByZXNodWZmbGVJbnRlcnZhbD86IG51bWJlcjtcblxuICAvKipcbiAgICogQ3XDoW50b3MgdGlsZXMgY2FtYmlhciBwb3IgdGljayAobW9kbyBhbmltYXRlZCkuIERlZmF1bHQ6IGAxYCAoY2FtYmlvIHN1dGlsKS5cbiAgICogU3ViaXIgYSAyLTQgcGFyYSBlZmVjdG8gbcOhcyB2aXZvLlxuICAgKi9cbiAgdGlsZXNQZXJUaWNrPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBgc2xpY2VgIChkZWZhdWx0KSDigJQgZWwgcGF0csOzbiBjdWJyZSB0b2RvIGVsIGNvbnRlbmVkb3IgbWFudGVuaWVuZG8gYXNwZWN0LFxuICAgKiBjcm9wZWFuZG8gc2kgbmVjZXNhcmlvLiBgbWVldGAg4oCUIGZpdCBjb21wbGV0byBzaW4gY3JvcCwgZGVqYSBlc3BhY2lvLlxuICAgKi9cbiAgcHJlc2VydmVBc3BlY3Q/OiAnc2xpY2UnIHwgJ21lZXQnO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvcGF0dGVybi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGF0dGVyblBhbGV0dGVLZXkgfSBmcm9tICcuL21vdGlmcyc7XG5cbi8qKlxuICogQ29uZmlndXJhY2nDs24gZGVsIGNvbXBvbmVudGUgYHZhbC1wYXR0ZXJuYC5cbiAqXG4gKiBAZXhhbXBsZSBTdGF0aWMgKHNlZWQgZmlqbywgcmVwcm9kdWNpYmxlKTpcbiAqIGBgYGh0bWxcbiAqIDx2YWwtcGF0dGVybiBbcHJvcHNdPVwieyBwYWxldHRlOiAncHVycGxlJywgY29sczogMTIsIHJvd3M6IDQsIHNlZWQ6IDQyIH1cIiAvPlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgQW5pbWF0ZWQgd2hvbGUtZ3JpZCByZXNodWZmbGUgKGNhZGEgOHMg4oCUIGRlZmF1bHQpOlxuICogYGBgaHRtbFxuICogPHZhbC1wYXR0ZXJuIFtwcm9wc109XCJ7IHBhbGV0dGU6ICdpbmsnLCBjb2xzOiAxNiwgcm93czogOCwgYW5pbWF0ZWQ6IHRydWUgfVwiIC8+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBBbmltYXRlZCBzdGFnZ2VyZWQgKDIgdGlsZXMgY2FkYSA4MDBtcyDigJQgc3V0aWwpOlxuICogYGBgaHRtbFxuICogPHZhbC1wYXR0ZXJuIFtwcm9wc109XCJ7IGFuaW1hdGVkOiB0cnVlLCByZXNodWZmbGVJbnRlcnZhbDogODAwLCB0aWxlc1BlclRpY2s6IDIgfVwiIC8+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXR0ZXJuTWV0YWRhdGEge1xuICAvKipcbiAgICogUGFsZXR0ZSBidWlsdC1pbiAoYCdwdXJwbGUnIHwgJ2luaycgfCAnbGF2ZW5kZXInYCkgbyBhcnJheSBjdXN0b20gZGUgOFxuICAgKiBjb2xvcmVzIGRhcmsg4oaSIGxpZ2h0LiBEZWZhdWx0OiBgJ3B1cnBsZSdgLlxuICAgKi9cbiAgcGFsZXR0ZT86IFBhdHRlcm5QYWxldHRlS2V5IHwgc3RyaW5nW107XG5cbiAgLyoqIENvbHVtbmFzIGRlbCBncmlkLiBEZWZhdWx0OiAxMi4gKi9cbiAgY29scz86IG51bWJlcjtcblxuICAvKiogRmlsYXMgZGVsIGdyaWQuIERlZmF1bHQ6IDQuICovXG4gIHJvd3M/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNlZWQgcGFyYSBNdWxiZXJyeTMyIOKAlCBkZXRlcm1pbmEgZWwgcGF0csOzbi4gU2kgbm8gc2UgcGFzYSwgZ2VuZXJhIHVubyByYW5kb21cbiAgICogYWwgbW91bnQgeSBxdWVkYSBmaWpvIChhIG1lbm9zIHF1ZSBgYW5pbWF0ZWQ6IHRydWVgKS5cbiAgICovXG4gIHNlZWQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERlbnNpZGFkIGRlIGNoZXZyb25zICgwLi4xKS4gRWwgcmVzdG8gc2UgcmVwYXJ0ZSBlbnRyZSBzb2xpZC9zaGFwZS90cmkuXG4gICAqIERlZmF1bHQ6IGAwLjU1YC5cbiAgICovXG4gIGNoZXZyb25EZW5zaXR5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTaSBgdHJ1ZWAsIGVsIHBhdHLDs24gaGFjZSAqKnN0YWdnZXJlZCByZXNodWZmbGUqKjogY2FkYSBgcmVzaHVmZmxlSW50ZXJ2YWxgXG4gICAqIG1zIHNlIHJlZW1wbGF6YW4gYHRpbGVzUGVyVGlja2AgdGlsZXMgcmFuZG9tIOKAlCBOTyBsYSBncmlkIGVudGVyYS5cbiAgICogRGVmYXVsdDogYGZhbHNlYC5cbiAgICovXG4gIGFuaW1hdGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogbXMgZW50cmUgdXBkYXRlcyBpbmRpdmlkdWFsZXMgZGUgdGlsZXMgKG1vZG8gYW5pbWF0ZWQpLlxuICAgKiBEZWZhdWx0OiBgMTIwMGAgKH4xIHRpbGUgY2FkYSAxLjJzIGNvbiBgdGlsZXNQZXJUaWNrOiAxYCkuXG4gICAqL1xuICByZXNodWZmbGVJbnRlcnZhbD86IG51bWJlcjtcblxuICAvKipcbiAgICogQ3XDoW50b3MgdGlsZXMgY2FtYmlhciBwb3IgdGljayAobW9kbyBhbmltYXRlZCkuIERlZmF1bHQ6IGAxYCAoY2FtYmlvIHN1dGlsKS5cbiAgICogU3ViaXIgYSAyLTQgcGFyYSBlZmVjdG8gbcOhcyB2aXZvLlxuICAgKi9cbiAgdGlsZXNQZXJUaWNrPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBgc2xpY2VgIChkZWZhdWx0KSDigJQgZWwgcGF0csOzbiBjdWJyZSB0b2RvIGVsIGNvbnRlbmVkb3IgbWFudGVuaWVuZG8gYXNwZWN0LFxuICAgKiBjcm9wZWFuZG8gc2kgbmVjZXNhcmlvLiBgbWVldGAg4oCUIGZpdCBjb21wbGV0byBzaW4gY3JvcCwgZGVqYSBlc3BhY2lvLlxuICAgKi9cbiAgcHJlc2VydmVBc3BlY3Q/OiAnc2xpY2UnIHwgJ21lZXQnO1xufVxuIl19
@@ -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.775';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC43NzUnO1xuIl19
5
+ export const VERSION = '2.0.777';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC43NzcnO1xuIl19
@@ -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.775';
55
+ const VERSION = '2.0.777';
56
56
 
57
57
  /**
58
58
  * Servicio para gestionar presets de componentes.
@@ -6019,7 +6019,7 @@ class PatternComponent {
6019
6019
  if (value.reshuffleInterval !== undefined && value.reshuffleInterval > 0) {
6020
6020
  this.reshuffleInterval.set(value.reshuffleInterval);
6021
6021
  }
6022
- if (value.tilesPerTick !== undefined && value.tilesPerTick > 0) {
6022
+ if (value.tilesPerTick !== undefined && value.tilesPerTick >= 0) {
6023
6023
  this.tilesPerTick.set(Math.floor(value.tilesPerTick));
6024
6024
  }
6025
6025
  if (value.animated !== undefined)
@@ -6034,10 +6034,10 @@ class PatternComponent {
6034
6034
  this.chevronDensity = signal(0.55);
6035
6035
  this.preserveAspect = signal('slice');
6036
6036
  this.animated = signal(false);
6037
- /** ms entre updates individuales de tiles (modo animated). Default 1200ms. */
6038
- this.reshuffleInterval = signal(1200);
6039
- /** Cuántos tiles cambiar por tick (default 1cambio sutil). */
6040
- this.tilesPerTick = signal(1);
6037
+ /** ms entre reshuffles (modo animated). Default 8000ms — "de vez en cuando". */
6038
+ this.reshuffleInterval = signal(8000);
6039
+ /** Tiles a cambiar por tick. 0 → reseed grid completo (default). >0staggered. */
6040
+ this.tilesPerTick = signal(0);
6041
6041
  /**
6042
6042
  * Tiles signal — mutable. Se regenera completa cuando cambia seed/cols/rows/
6043
6043
  * palette/density. En modo animated, tiles individuales se sobrescriben sin
@@ -6057,6 +6057,8 @@ class PatternComponent {
6057
6057
  // Regenera grid completa cuando cambian props estructurales (cols/rows/
6058
6058
  // palette/density/seed). El seed solo cambia explícitamente via props o
6059
6059
  // mount inicial — NO se muta en modo animated.
6060
+ // `allowSignalWrites: true` requerido en Angular 18: escribimos a `tiles`
6061
+ // signal dentro del effect (consumido por svgHtml computed).
6060
6062
  effect(() => {
6061
6063
  const cols = this.cols();
6062
6064
  const rows = this.rows();
@@ -6064,10 +6066,11 @@ class PatternComponent {
6064
6066
  const palette = this.paletteRef();
6065
6067
  const density = this.chevronDensity();
6066
6068
  this.tiles.set(generatePatternTiles({ cols, rows, seed, palette, chevronDensity: density }));
6067
- });
6068
- // Modo animated: cada `reshuffleInterval` ms, sobrescribe `tilesPerTick`
6069
- // tiles random efecto staggered (no toda la grid de una). Si el user
6070
- // desactiva animated, el timer se limpia automáticamente.
6069
+ }, { allowSignalWrites: true });
6070
+ // Modo animated: cada `reshuffleInterval` ms regenera el grid completo
6071
+ // con un seed nuevo. Visualmente: el patrón cambia de vez en cuando.
6072
+ // Si `tilesPerTick > 0` y < total tiles, hace staggered (reemplaza solo
6073
+ // N tiles en vez de toda la grid). Default tilesPerTick=0 → reseed total.
6071
6074
  effect(onCleanup => {
6072
6075
  const isAnimated = this.animated();
6073
6076
  const interval = this.reshuffleInterval();
@@ -6077,7 +6080,14 @@ class PatternComponent {
6077
6080
  this.timer = undefined;
6078
6081
  if (!isAnimated)
6079
6082
  return;
6080
- this.timer = setInterval(() => this.mutateRandomTiles(perTick), interval);
6083
+ this.timer = setInterval(() => {
6084
+ if (perTick > 0) {
6085
+ this.mutateRandomTiles(perTick);
6086
+ }
6087
+ else {
6088
+ this.seed.set(this.randomSeed());
6089
+ }
6090
+ }, interval);
6081
6091
  onCleanup(() => {
6082
6092
  if (this.timer) {
6083
6093
  clearInterval(this.timer);
@@ -6088,7 +6098,7 @@ class PatternComponent {
6088
6098
  }
6089
6099
  /**
6090
6100
  * Reemplaza `count` tiles random del grid actual con tiles nuevos generados.
6091
- * Usado por el modo animated para staggered reshuffle.
6101
+ * Usado para staggered reshuffle (opt-in via `tilesPerTick > 0`).
6092
6102
  */
6093
6103
  mutateRandomTiles(count) {
6094
6104
  const current = this.tiles();