valtech-components 4.0.126 → 4.0.127

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.
@@ -1,3 +1,4 @@
1
+ import { DOCUMENT } from '@angular/common';
1
2
  import { Injectable, inject } from '@angular/core';
2
3
  import { Meta, Title } from '@angular/platform-browser';
3
4
  import * as i0 from "@angular/core";
@@ -5,6 +6,7 @@ export class MetaService {
5
6
  constructor() {
6
7
  this.meta = inject(Meta);
7
8
  this.titleService = inject(Title);
9
+ this.document = inject(DOCUMENT);
8
10
  this.baseUrl = '';
9
11
  this.defaultImage = '/assets/images/main-icon.png';
10
12
  this.siteName = '';
@@ -44,6 +46,20 @@ export class MetaService {
44
46
  this.meta.updateTag({ name: 'twitter:title', content: fullTitle });
45
47
  this.meta.updateTag({ name: 'twitter:description', content: metadata.description });
46
48
  this.meta.updateTag({ name: 'twitter:image', content: fullImageUrl });
49
+ // Canonical — evita contenido duplicado (trailing slash, params, idioma).
50
+ this.setCanonical(url);
51
+ }
52
+ /**
53
+ * Setea (o actualiza) el <link rel="canonical"> del head. SSR-safe vía DOCUMENT.
54
+ */
55
+ setCanonical(url) {
56
+ let link = this.document.querySelector("link[rel='canonical']");
57
+ if (!link) {
58
+ link = this.document.createElement('link');
59
+ link.setAttribute('rel', 'canonical');
60
+ this.document.head.appendChild(link);
61
+ }
62
+ link.setAttribute('href', url);
47
63
  }
48
64
  /**
49
65
  * Resetear a valores por defecto
@@ -60,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
60
76
  providedIn: 'root',
61
77
  }]
62
78
  }] });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9tZXRhL21ldGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQU14RCxNQUFNLE9BQU8sV0FBVztJQUh4QjtRQUlVLFNBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsaUJBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0IsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLGlCQUFZLEdBQUcsOEJBQThCLENBQUM7UUFDOUMsYUFBUSxHQUFHLEVBQUUsQ0FBQztLQWtEdkI7SUFoREM7O09BRUc7SUFDSCxTQUFTLENBQUMsTUFBa0I7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNoQyxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxRQUFzQixFQUFFLElBQWE7UUFDbEQsTUFBTSxTQUFTLEdBQUcsR0FBRyxRQUFRLENBQUMsS0FBSyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUMzRCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdEQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFFeEYsUUFBUTtRQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXRDLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLElBQUksUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUVELGFBQWE7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxJQUFJLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFFbEYsZUFBZTtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxRQUFzQjtRQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7K0dBdkRVLFdBQVc7bUhBQVgsV0FBVyxjQUZWLE1BQU07OzRGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXRhLCBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgUGFnZU1ldGFkYXRhLCBNZXRhQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBNZXRhU2VydmljZSB7XG4gIHByaXZhdGUgbWV0YSA9IGluamVjdChNZXRhKTtcbiAgcHJpdmF0ZSB0aXRsZVNlcnZpY2UgPSBpbmplY3QoVGl0bGUpO1xuXG4gIHByaXZhdGUgYmFzZVVybCA9ICcnO1xuICBwcml2YXRlIGRlZmF1bHRJbWFnZSA9ICcvYXNzZXRzL2ltYWdlcy9tYWluLWljb24ucG5nJztcbiAgcHJpdmF0ZSBzaXRlTmFtZSA9ICcnO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmFyIGVsIHNlcnZpY2lvIGNvbiB2YWxvcmVzIGRlIGxhIGFwcFxuICAgKi9cbiAgY29uZmlndXJlKGNvbmZpZzogTWV0YUNvbmZpZyk6IHZvaWQge1xuICAgIHRoaXMuYmFzZVVybCA9IGNvbmZpZy5iYXNlVXJsO1xuICAgIHRoaXMuc2l0ZU5hbWUgPSBjb25maWcuc2l0ZU5hbWU7XG4gICAgaWYgKGNvbmZpZy5kZWZhdWx0SW1hZ2UpIHtcbiAgICAgIHRoaXMuZGVmYXVsdEltYWdlID0gY29uZmlnLmRlZmF1bHRJbWFnZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWN0dWFsaXphciBtZXRhIHRhZ3MgZGUgbGEgcMOhZ2luYVxuICAgKi9cbiAgdXBkYXRlUGFnZU1ldGEobWV0YWRhdGE6IFBhZ2VNZXRhZGF0YSwgcGF0aD86IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGZ1bGxUaXRsZSA9IGAke21ldGFkYXRhLnRpdGxlfSB8ICR7dGhpcy5zaXRlTmFtZX1gO1xuICAgIGNvbnN0IHVybCA9IHBhdGggPyBgJHt0aGlzLmJhc2VVcmx9JHtwYXRofWAgOiB0aGlzLmJhc2VVcmw7XG4gICAgY29uc3Qgb2dJbWFnZSA9IG1ldGFkYXRhLm9nSW1hZ2UgfHwgdGhpcy5kZWZhdWx0SW1hZ2U7XG4gICAgY29uc3QgZnVsbEltYWdlVXJsID0gb2dJbWFnZS5zdGFydHNXaXRoKCdodHRwJykgPyBvZ0ltYWdlIDogYCR7dGhpcy5iYXNlVXJsfSR7b2dJbWFnZX1gO1xuXG4gICAgLy8gVGl0bGVcbiAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRUaXRsZShmdWxsVGl0bGUpO1xuXG4gICAgLy8gQmFzaWMgbWV0YSB0YWdzXG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IG5hbWU6ICdkZXNjcmlwdGlvbicsIGNvbnRlbnQ6IG1ldGFkYXRhLmRlc2NyaXB0aW9uIH0pO1xuICAgIGlmIChtZXRhZGF0YS5rZXl3b3Jkcykge1xuICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IG5hbWU6ICdrZXl3b3JkcycsIGNvbnRlbnQ6IG1ldGFkYXRhLmtleXdvcmRzIH0pO1xuICAgIH1cblxuICAgIC8vIE9wZW4gR3JhcGhcbiAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzp0aXRsZScsIGNvbnRlbnQ6IGZ1bGxUaXRsZSB9KTtcbiAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzpkZXNjcmlwdGlvbicsIGNvbnRlbnQ6IG1ldGFkYXRhLmRlc2NyaXB0aW9uIH0pO1xuICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnVybCcsIGNvbnRlbnQ6IHVybCB9KTtcbiAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzppbWFnZScsIGNvbnRlbnQ6IGZ1bGxJbWFnZVVybCB9KTtcbiAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzp0eXBlJywgY29udGVudDogbWV0YWRhdGEudHlwZSB8fCAnd2Vic2l0ZScgfSk7XG5cbiAgICAvLyBUd2l0dGVyIENhcmRcbiAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgbmFtZTogJ3R3aXR0ZXI6dGl0bGUnLCBjb250ZW50OiBmdWxsVGl0bGUgfSk7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IG5hbWU6ICd0d2l0dGVyOmRlc2NyaXB0aW9uJywgY29udGVudDogbWV0YWRhdGEuZGVzY3JpcHRpb24gfSk7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IG5hbWU6ICd0d2l0dGVyOmltYWdlJywgY29udGVudDogZnVsbEltYWdlVXJsIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0ZWFyIGEgdmFsb3JlcyBwb3IgZGVmZWN0b1xuICAgKi9cbiAgcmVzZXRUb0RlZmF1bHQobWV0YWRhdGE6IFBhZ2VNZXRhZGF0YSk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlUGFnZU1ldGEobWV0YWRhdGEpO1xuICB9XG59XG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9tZXRhL21ldGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFNeEQsTUFBTSxPQUFPLFdBQVc7SUFIeEI7UUFJVSxTQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFNUIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLGlCQUFZLEdBQUcsOEJBQThCLENBQUM7UUFDOUMsYUFBUSxHQUFHLEVBQUUsQ0FBQztLQWtFdkI7SUFoRUM7O09BRUc7SUFDSCxTQUFTLENBQUMsTUFBa0I7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNoQyxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxRQUFzQixFQUFFLElBQWE7UUFDbEQsTUFBTSxTQUFTLEdBQUcsR0FBRyxRQUFRLENBQUMsS0FBSyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENB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QUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxRQUFzQjtRQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7K0dBeEVVLFdBQVc7bUhBQVgsV0FBVyxjQUZWLE1BQU07OzRGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXRhLCBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgUGFnZU1ldGFkYXRhLCBNZXRhQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBNZXRhU2VydmljZSB7XG4gIHByaXZhdGUgbWV0YSA9IGluamVjdChNZXRhKTtcbiAgcHJpdmF0ZSB0aXRsZVNlcnZpY2UgPSBpbmplY3QoVGl0bGUpO1xuICBwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICBwcml2YXRlIGJhc2VVcmwgPSAnJztcbiAgcHJpdmF0ZSBkZWZhdWx0SW1hZ2UgPSAnL2Fzc2V0cy9pbWFnZXMvbWFpbi1pY29uLnBuZyc7XG4gIHByaXZhdGUgc2l0ZU5hbWUgPSAnJztcblxuICAvKipcbiAgICogQ29uZmlndXJhciBlbCBzZXJ2aWNpbyBjb24gdmFsb3JlcyBkZSBsYSBhcHBcbiAgICovXG4gIGNvbmZpZ3VyZShjb25maWc6IE1ldGFDb25maWcpOiB2b2lkIHtcbiAgICB0aGlzLmJhc2VVcmwgPSBjb25maWcuYmFzZVVybDtcbiAgICB0aGlzLnNpdGVOYW1lID0gY29uZmlnLnNpdGVOYW1lO1xuICAgIGlmIChjb25maWcuZGVmYXVsdEltYWdlKSB7XG4gICAgICB0aGlzLmRlZmF1bHRJbWFnZSA9IGNvbmZpZy5kZWZhdWx0SW1hZ2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFjdHVhbGl6YXIgbWV0YSB0YWdzIGRlIGxhIHDDoWdpbmFcbiAgICovXG4gIHVwZGF0ZVBhZ2VNZXRhKG1ldGFkYXRhOiBQYWdlTWV0YWRhdGEsIHBhdGg/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBmdWxsVGl0bGUgPSBgJHttZXRhZGF0YS50aXRsZX0gfCAke3RoaXMuc2l0ZU5hbWV9YDtcbiAgICBjb25zdCB1cmwgPSBwYXRoID8gYCR7dGhpcy5iYXNlVXJsfSR7cGF0aH1gIDogdGhpcy5iYXNlVXJsO1xuICAgIGNvbnN0IG9nSW1hZ2UgPSBtZXRhZGF0YS5vZ0ltYWdlIHx8IHRoaXMuZGVmYXVsdEltYWdlO1xuICAgIGNvbnN0IGZ1bGxJbWFnZVVybCA9IG9nSW1hZ2Uuc3RhcnRzV2l0aCgnaHR0cCcpID8gb2dJbWFnZSA6IGAke3RoaXMuYmFzZVVybH0ke29nSW1hZ2V9YDtcblxuICAgIC8vIFRpdGxlXG4gICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUoZnVsbFRpdGxlKTtcblxuICAgIC8vIEJhc2ljIG1ldGEgdGFnc1xuICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBuYW1lOiAnZGVzY3JpcHRpb24nLCBjb250ZW50OiBtZXRhZGF0YS5kZXNjcmlwdGlvbiB9KTtcbiAgICBpZiAobWV0YWRhdGEua2V5d29yZHMpIHtcbiAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBuYW1lOiAna2V5d29yZHMnLCBjb250ZW50OiBtZXRhZGF0YS5rZXl3b3JkcyB9KTtcbiAgICB9XG5cbiAgICAvLyBPcGVuIEdyYXBoXG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dGl0bGUnLCBjb250ZW50OiBmdWxsVGl0bGUgfSk7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6ZGVzY3JpcHRpb24nLCBjb250ZW50OiBtZXRhZGF0YS5kZXNjcmlwdGlvbiB9KTtcbiAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzp1cmwnLCBjb250ZW50OiB1cmwgfSk7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6aW1hZ2UnLCBjb250ZW50OiBmdWxsSW1hZ2VVcmwgfSk7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dHlwZScsIGNvbnRlbnQ6IG1ldGFkYXRhLnR5cGUgfHwgJ3dlYnNpdGUnIH0pO1xuXG4gICAgLy8gVHdpdHRlciBDYXJkXG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IG5hbWU6ICd0d2l0dGVyOnRpdGxlJywgY29udGVudDogZnVsbFRpdGxlIH0pO1xuICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBuYW1lOiAndHdpdHRlcjpkZXNjcmlwdGlvbicsIGNvbnRlbnQ6IG1ldGFkYXRhLmRlc2NyaXB0aW9uIH0pO1xuICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBuYW1lOiAndHdpdHRlcjppbWFnZScsIGNvbnRlbnQ6IGZ1bGxJbWFnZVVybCB9KTtcblxuICAgIC8vIENhbm9uaWNhbCDigJQgZXZpdGEgY29udGVuaWRvIGR1cGxpY2FkbyAodHJhaWxpbmcgc2xhc2gsIHBhcmFtcywgaWRpb21hKS5cbiAgICB0aGlzLnNldENhbm9uaWNhbCh1cmwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldGVhIChvIGFjdHVhbGl6YSkgZWwgPGxpbmsgcmVsPVwiY2Fub25pY2FsXCI+IGRlbCBoZWFkLiBTU1Itc2FmZSB2w61hIERPQ1VNRU5ULlxuICAgKi9cbiAgcHJpdmF0ZSBzZXRDYW5vbmljYWwodXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBsZXQgbGluayA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImxpbmtbcmVsPSdjYW5vbmljYWwnXVwiKSBhcyBIVE1MTGlua0VsZW1lbnQgfCBudWxsO1xuICAgIGlmICghbGluaykge1xuICAgICAgbGluayA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ3JlbCcsICdjYW5vbmljYWwnKTtcbiAgICAgIHRoaXMuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICB9XG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCB1cmwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0ZWFyIGEgdmFsb3JlcyBwb3IgZGVmZWN0b1xuICAgKi9cbiAgcmVzZXRUb0RlZmF1bHQobWV0YWRhdGE6IFBhZ2VNZXRhZGF0YSk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlUGFnZU1ldGEobWV0YWRhdGEpO1xuICB9XG59XG4iXX0=
@@ -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 = '4.0.126';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xMjYnO1xuIl19
5
+ export const VERSION = '4.0.127';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xMjcnO1xuIl19
@@ -56,7 +56,7 @@ import { BrowserMultiFormatReader } from '@zxing/browser';
56
56
  * Current version of valtech-components.
57
57
  * This is automatically updated during the publish process.
58
58
  */
59
- const VERSION = '4.0.126';
59
+ const VERSION = '4.0.127';
60
60
 
61
61
  // Control de estado de refresco (singleton a nivel de módulo)
62
62
  let isRefreshing = false;
@@ -60562,6 +60562,7 @@ class MetaService {
60562
60562
  constructor() {
60563
60563
  this.meta = inject(Meta);
60564
60564
  this.titleService = inject(Title);
60565
+ this.document = inject(DOCUMENT);
60565
60566
  this.baseUrl = '';
60566
60567
  this.defaultImage = '/assets/images/main-icon.png';
60567
60568
  this.siteName = '';
@@ -60601,6 +60602,20 @@ class MetaService {
60601
60602
  this.meta.updateTag({ name: 'twitter:title', content: fullTitle });
60602
60603
  this.meta.updateTag({ name: 'twitter:description', content: metadata.description });
60603
60604
  this.meta.updateTag({ name: 'twitter:image', content: fullImageUrl });
60605
+ // Canonical — evita contenido duplicado (trailing slash, params, idioma).
60606
+ this.setCanonical(url);
60607
+ }
60608
+ /**
60609
+ * Setea (o actualiza) el <link rel="canonical"> del head. SSR-safe vía DOCUMENT.
60610
+ */
60611
+ setCanonical(url) {
60612
+ let link = this.document.querySelector("link[rel='canonical']");
60613
+ if (!link) {
60614
+ link = this.document.createElement('link');
60615
+ link.setAttribute('rel', 'canonical');
60616
+ this.document.head.appendChild(link);
60617
+ }
60618
+ link.setAttribute('href', url);
60604
60619
  }
60605
60620
  /**
60606
60621
  * Resetear a valores por defecto