valtech-components 2.0.522 → 2.0.524
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,5 +1,5 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, computed, inject,
|
|
2
|
+
import { Component, computed, inject, input } from '@angular/core';
|
|
3
3
|
import { TextComponent } from '../text/text.component';
|
|
4
4
|
import { I18nService } from '../../../services/i18n';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
@@ -27,32 +27,46 @@ import * as i0 from "@angular/core";
|
|
|
27
27
|
export class RightsFooterComponent {
|
|
28
28
|
constructor() {
|
|
29
29
|
this.i18n = inject(I18nService);
|
|
30
|
+
/**
|
|
31
|
+
* Optional configuration for the rights footer.
|
|
32
|
+
* Signal-based input for full reactivity with computed().
|
|
33
|
+
*/
|
|
34
|
+
this.props = input();
|
|
30
35
|
/**
|
|
31
36
|
* Current year for copyright.
|
|
32
37
|
*/
|
|
33
38
|
this.currentYear = new Date().getFullYear();
|
|
34
39
|
/**
|
|
35
|
-
* Computed copyright text - reactive to language changes.
|
|
40
|
+
* Computed copyright text - reactive to both language AND props changes.
|
|
36
41
|
*/
|
|
37
42
|
this.copyrightText = computed(() => {
|
|
38
43
|
this.i18n.lang(); // Track language changes
|
|
39
|
-
const
|
|
40
|
-
const
|
|
44
|
+
const p = this.props(); // Track props changes (now it's a signal!)
|
|
45
|
+
const company = p?.companyName || 'Valtech';
|
|
46
|
+
const rights = p?.rightsText || this.i18n.t('allRightsReserved');
|
|
41
47
|
return `© ${this.currentYear} ${company}. ${rights}`;
|
|
42
48
|
});
|
|
49
|
+
/**
|
|
50
|
+
* Computed helper for align prop in template.
|
|
51
|
+
*/
|
|
52
|
+
this.propsAlign = computed(() => this.props()?.align);
|
|
53
|
+
/**
|
|
54
|
+
* Computed helper for color prop in template.
|
|
55
|
+
*/
|
|
56
|
+
this.propsColor = computed(() => this.props()?.color || 'dark');
|
|
43
57
|
}
|
|
44
58
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RightsFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
59
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: RightsFooterComponent, isStandalone: true, selector: "val-rights-footer", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
46
60
|
<div
|
|
47
61
|
class="rights-footer"
|
|
48
|
-
[class.rights-footer--left]="
|
|
49
|
-
[class.rights-footer--center]="
|
|
50
|
-
[class.rights-footer--right]="
|
|
62
|
+
[class.rights-footer--left]="propsAlign() === 'left'"
|
|
63
|
+
[class.rights-footer--center]="propsAlign() === 'center' || !propsAlign()"
|
|
64
|
+
[class.rights-footer--right]="propsAlign() === 'right'"
|
|
51
65
|
>
|
|
52
66
|
<val-text
|
|
53
67
|
[props]="{
|
|
54
68
|
content: copyrightText(),
|
|
55
|
-
color:
|
|
69
|
+
color: propsColor(),
|
|
56
70
|
bold: false,
|
|
57
71
|
size: 'small'
|
|
58
72
|
}"
|
|
@@ -65,21 +79,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
65
79
|
args: [{ selector: 'val-rights-footer', standalone: true, imports: [CommonModule, TextComponent], template: `
|
|
66
80
|
<div
|
|
67
81
|
class="rights-footer"
|
|
68
|
-
[class.rights-footer--left]="
|
|
69
|
-
[class.rights-footer--center]="
|
|
70
|
-
[class.rights-footer--right]="
|
|
82
|
+
[class.rights-footer--left]="propsAlign() === 'left'"
|
|
83
|
+
[class.rights-footer--center]="propsAlign() === 'center' || !propsAlign()"
|
|
84
|
+
[class.rights-footer--right]="propsAlign() === 'right'"
|
|
71
85
|
>
|
|
72
86
|
<val-text
|
|
73
87
|
[props]="{
|
|
74
88
|
content: copyrightText(),
|
|
75
|
-
color:
|
|
89
|
+
color: propsColor(),
|
|
76
90
|
bold: false,
|
|
77
91
|
size: 'small'
|
|
78
92
|
}"
|
|
79
93
|
/>
|
|
80
94
|
</div>
|
|
81
95
|
`, styles: [".rights-footer{display:block;margin-top:24px}.rights-footer--left{text-align:left}.rights-footer--center{text-align:center}.rights-footer--right{text-align:right}\n"] }]
|
|
82
|
-
}]
|
|
83
|
-
|
|
84
|
-
}] } });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlnaHRzLWZvb3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvcmlnaHRzLWZvb3Rlci9yaWdodHMtZm9vdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUVyRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUF3QkgsTUFBTSxPQUFPLHFCQUFxQjtJQXZCbEM7UUF3QlUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQU9uQzs7V0FFRztRQUNILGdCQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUV2Qzs7V0FFRztRQUNILGtCQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMseUJBQXlCO1lBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsV0FBVyxJQUFJLFNBQVMsQ0FBQztZQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQzFFLE9BQU8sS0FBSyxJQUFJLENBQUMsV0FBVyxJQUFJLE9BQU8sS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztLQUNKOytHQXRCWSxxQkFBcUI7bUdBQXJCLHFCQUFxQix5R0FuQnRCOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JULDZPQWpCUyxZQUFZLCtCQUFFLGFBQWE7OzRGQW9CMUIscUJBQXFCO2tCQXZCakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxZQUM1Qjs7Ozs7Ozs7Ozs7Ozs7OztHQWdCVDs4QkFTUSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJy4uL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmlnaHRzRm9vdGVyTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5cbi8qKlxuICogdmFsLXJpZ2h0cy1mb290ZXJcbiAqXG4gKiBBIHNpbXBsZSBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyBjb3B5cmlnaHQgdGV4dCB3aXRoIGR5bmFtaWMgeWVhci5cbiAqIFVzZWZ1bCBmb3IgZm9vdGVycyB3aGVyZSB5b3UgbmVlZCB0byBzaG93IFwiwqkgMjAyNCBDb21wYW55LiBBbGwgcmlnaHRzIHJlc2VydmVkLlwiXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtcmlnaHRzLWZvb3Rlcj48L3ZhbC1yaWdodHMtZm9vdGVyPlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLXJpZ2h0cy1mb290ZXJcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBjb21wYW55TmFtZTogJ015IENvbXBhbnknLFxuICogICAgIHJpZ2h0c1RleHQ6ICdBbGwgcmlnaHRzIHJlc2VydmVkLicsXG4gKiAgICAgY29sb3I6ICdtZWRpdW0nLFxuICogICAgIGFsaWduOiAnbGVmdCdcbiAqICAgfVwiXG4gKiA+PC92YWwtcmlnaHRzLWZvb3Rlcj5cbiAqXG4gKiBAaW5wdXQgcHJvcHMgLSBPcHRpb25hbCBjb25maWd1cmF0aW9uIChjb21wYW55TmFtZSwgcmlnaHRzVGV4dCwgY29sb3IsIGFsaWduKVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcmlnaHRzLWZvb3RlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRleHRDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicmlnaHRzLWZvb3RlclwiXG4gICAgICBbY2xhc3MucmlnaHRzLWZvb3Rlci0tbGVmdF09XCJwcm9wcz8uYWxpZ24gPT09ICdsZWZ0J1wiXG4gICAgICBbY2xhc3MucmlnaHRzLWZvb3Rlci0tY2VudGVyXT1cInByb3BzPy5hbGlnbiA9PT0gJ2NlbnRlcicgfHwgIXByb3BzPy5hbGlnblwiXG4gICAgICBbY2xhc3MucmlnaHRzLWZvb3Rlci0tcmlnaHRdPVwicHJvcHM/LmFsaWduID09PSAncmlnaHQnXCJcbiAgICA+XG4gICAgICA8dmFsLXRleHRcbiAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICBjb250ZW50OiBjb3B5cmlnaHRUZXh0KCksXG4gICAgICAgICAgY29sb3I6IHByb3BzPy5jb2xvciB8fCAnZGFyaycsXG4gICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgc2l6ZTogJ3NtYWxsJ1xuICAgICAgICB9XCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3JpZ2h0cy1mb290ZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUmlnaHRzRm9vdGVyQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhlIHJpZ2h0cyBmb290ZXIuXG4gICAqL1xuICBASW5wdXQoKSBwcm9wcz86IFJpZ2h0c0Zvb3Rlck1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBDdXJyZW50IHllYXIgZm9yIGNvcHlyaWdodC5cbiAgICovXG4gIGN1cnJlbnRZZWFyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpO1xuXG4gIC8qKlxuICAgKiBDb21wdXRlZCBjb3B5cmlnaHQgdGV4dCAtIHJlYWN0aXZlIHRvIGxhbmd1YWdlIGNoYW5nZXMuXG4gICAqL1xuICBjb3B5cmlnaHRUZXh0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7IC8vIFRyYWNrIGxhbmd1YWdlIGNoYW5nZXNcbiAgICBjb25zdCBjb21wYW55ID0gdGhpcy5wcm9wcz8uY29tcGFueU5hbWUgfHwgJ1ZhbHRlY2gnO1xuICAgIGNvbnN0IHJpZ2h0cyA9IHRoaXMucHJvcHM/LnJpZ2h0c1RleHQgfHwgdGhpcy5pMThuLnQoJ2FsbFJpZ2h0c1Jlc2VydmVkJyk7XG4gICAgcmV0dXJuIGDCqSAke3RoaXMuY3VycmVudFllYXJ9ICR7Y29tcGFueX0uICR7cmlnaHRzfWA7XG4gIH0pO1xufVxuIl19
|
|
96
|
+
}] });
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlnaHRzLWZvb3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvcmlnaHRzLWZvb3Rlci9yaWdodHMtZm9vdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUVyRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUF3QkgsTUFBTSxPQUFPLHFCQUFxQjtJQXZCbEM7UUF3QlUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVuQzs7O1dBR0c7UUFDTSxVQUFLLEdBQUcsS0FBSyxFQUF3QixDQUFDO1FBRS9DOztXQUVHO1FBQ0gsZ0JBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXZDOztXQUVHO1FBQ0gsa0JBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyx5QkFBeUI7WUFDM0MsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsMkNBQTJDO1lBQ25FLE1BQU0sT0FBTyxHQUFHLENBQUMsRUFBRSxXQUFXLElBQUksU0FBUyxDQUFDO1lBQzVDLE1BQU0sTUFBTSxHQUFHLENBQUMsRUFBRSxVQUFVLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNqRSxPQUFPLEtBQUssSUFBSSxDQUFDLFdBQVcsSUFBSSxPQUFPLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDdkQsQ0FBQyxDQUFDLENBQUM7UUFFSDs7V0FFRztRQUNILGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWpEOztXQUVHO1FBQ0gsZUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxJQUFJLE1BQU0sQ0FBQyxDQUFDO0tBQzVEOytHQWxDWSxxQkFBcUI7bUdBQXJCLHFCQUFxQixpTkFuQnRCOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JULDZPQWpCUyxZQUFZLCtCQUFFLGFBQWE7OzRGQW9CMUIscUJBQXFCO2tCQXZCakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxZQUM1Qjs7Ozs7Ozs7Ozs7Ozs7OztHQWdCVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSaWdodHNGb290ZXJNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcblxuLyoqXG4gKiB2YWwtcmlnaHRzLWZvb3RlclxuICpcbiAqIEEgc2ltcGxlIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGNvcHlyaWdodCB0ZXh0IHdpdGggZHluYW1pYyB5ZWFyLlxuICogVXNlZnVsIGZvciBmb290ZXJzIHdoZXJlIHlvdSBuZWVkIHRvIHNob3cgXCLCqSAyMDI0IENvbXBhbnkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXCJcbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC1yaWdodHMtZm9vdGVyPjwvdmFsLXJpZ2h0cy1mb290ZXI+XG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtcmlnaHRzLWZvb3RlclxuICogICBbcHJvcHNdPVwie1xuICogICAgIGNvbXBhbnlOYW1lOiAnTXkgQ29tcGFueScsXG4gKiAgICAgcmlnaHRzVGV4dDogJ0FsbCByaWdodHMgcmVzZXJ2ZWQuJyxcbiAqICAgICBjb2xvcjogJ21lZGl1bScsXG4gKiAgICAgYWxpZ246ICdsZWZ0J1xuICogICB9XCJcbiAqID48L3ZhbC1yaWdodHMtZm9vdGVyPlxuICpcbiAqIEBpbnB1dCBwcm9wcyAtIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gKGNvbXBhbnlOYW1lLCByaWdodHNUZXh0LCBjb2xvciwgYWxpZ24pXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1yaWdodHMtZm9vdGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVGV4dENvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJyaWdodHMtZm9vdGVyXCJcbiAgICAgIFtjbGFzcy5yaWdodHMtZm9vdGVyLS1sZWZ0XT1cInByb3BzQWxpZ24oKSA9PT0gJ2xlZnQnXCJcbiAgICAgIFtjbGFzcy5yaWdodHMtZm9vdGVyLS1jZW50ZXJdPVwicHJvcHNBbGlnbigpID09PSAnY2VudGVyJyB8fCAhcHJvcHNBbGlnbigpXCJcbiAgICAgIFtjbGFzcy5yaWdodHMtZm9vdGVyLS1yaWdodF09XCJwcm9wc0FsaWduKCkgPT09ICdyaWdodCdcIlxuICAgID5cbiAgICAgIDx2YWwtdGV4dFxuICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgIGNvbnRlbnQ6IGNvcHlyaWdodFRleHQoKSxcbiAgICAgICAgICBjb2xvcjogcHJvcHNDb2xvcigpLFxuICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgIHNpemU6ICdzbWFsbCdcbiAgICAgICAgfVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9yaWdodHMtZm9vdGVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJpZ2h0c0Zvb3RlckNvbXBvbmVudCB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSByaWdodHMgZm9vdGVyLlxuICAgKiBTaWduYWwtYmFzZWQgaW5wdXQgZm9yIGZ1bGwgcmVhY3Rpdml0eSB3aXRoIGNvbXB1dGVkKCkuXG4gICAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0PFJpZ2h0c0Zvb3Rlck1ldGFkYXRhPigpO1xuXG4gIC8qKlxuICAgKiBDdXJyZW50IHllYXIgZm9yIGNvcHlyaWdodC5cbiAgICovXG4gIGN1cnJlbnRZZWFyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpO1xuXG4gIC8qKlxuICAgKiBDb21wdXRlZCBjb3B5cmlnaHQgdGV4dCAtIHJlYWN0aXZlIHRvIGJvdGggbGFuZ3VhZ2UgQU5EIHByb3BzIGNoYW5nZXMuXG4gICAqL1xuICBjb3B5cmlnaHRUZXh0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7IC8vIFRyYWNrIGxhbmd1YWdlIGNoYW5nZXNcbiAgICBjb25zdCBwID0gdGhpcy5wcm9wcygpOyAvLyBUcmFjayBwcm9wcyBjaGFuZ2VzIChub3cgaXQncyBhIHNpZ25hbCEpXG4gICAgY29uc3QgY29tcGFueSA9IHA/LmNvbXBhbnlOYW1lIHx8ICdWYWx0ZWNoJztcbiAgICBjb25zdCByaWdodHMgPSBwPy5yaWdodHNUZXh0IHx8IHRoaXMuaTE4bi50KCdhbGxSaWdodHNSZXNlcnZlZCcpO1xuICAgIHJldHVybiBgwqkgJHt0aGlzLmN1cnJlbnRZZWFyfSAke2NvbXBhbnl9LiAke3JpZ2h0c31gO1xuICB9KTtcblxuICAvKipcbiAgICogQ29tcHV0ZWQgaGVscGVyIGZvciBhbGlnbiBwcm9wIGluIHRlbXBsYXRlLlxuICAgKi9cbiAgcHJvcHNBbGlnbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMucHJvcHMoKT8uYWxpZ24pO1xuXG4gIC8qKlxuICAgKiBDb21wdXRlZCBoZWxwZXIgZm9yIGNvbG9yIHByb3AgaW4gdGVtcGxhdGUuXG4gICAqL1xuICBwcm9wc0NvbG9yID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wcm9wcygpPy5jb2xvciB8fCAnZGFyaycpO1xufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, Component, Input, Output, Injectable, signal, makeEnvironmentProviders, APP_INITIALIZER, inject, HostListener, Pipe, ChangeDetectionStrategy, computed, ViewChild, ChangeDetectorRef, ElementRef, ContentChild, PLATFORM_ID, Inject, ErrorHandler, DestroyRef, InjectionToken, Optional, runInInjectionContext, effect, TemplateRef, ViewContainerRef, isSignal, Directive } from '@angular/core';
|
|
2
|
+
import { EventEmitter, Component, Input, Output, Injectable, signal, makeEnvironmentProviders, APP_INITIALIZER, inject, HostListener, Pipe, ChangeDetectionStrategy, computed, input, ViewChild, ChangeDetectorRef, ElementRef, ContentChild, PLATFORM_ID, Inject, ErrorHandler, DestroyRef, InjectionToken, Optional, runInInjectionContext, effect, TemplateRef, ViewContainerRef, isSignal, Directive } from '@angular/core';
|
|
3
3
|
import * as i2$1 from '@ionic/angular/standalone';
|
|
4
4
|
import { IonAvatar, IonCard, IonIcon, IonButton, IonSpinner, IonText, IonModal, IonHeader, IonToolbar, IonContent, IonButtons, IonTitle, IonProgressBar, IonSkeletonText, IonFab, IonFabButton, IonFabList, IonLabel, IonCardContent, IonCardHeader, IonCardTitle, IonCardSubtitle, IonCheckbox, IonTextarea, IonDatetime, IonDatetimeButton, IonInput, IonSelect, IonSelectOption, IonPopover, IonList, IonItem, IonRadioGroup, IonRadio, IonRange, IonSearchbar, IonSegment, IonSegmentButton, IonToggle, IonAccordion, IonAccordionGroup, IonTabBar, IonTabButton, IonBadge, IonBreadcrumb, IonBreadcrumbs, IonChip, IonNote, ToastController as ToastController$1, IonCol, IonRow, IonRefresher, IonRefresherContent, IonMenuButton, IonFooter, IonListHeader, IonInfiniteScroll, IonInfiniteScrollContent, IonGrid, MenuController, IonMenu, IonMenuToggle, AlertController } from '@ionic/angular/standalone';
|
|
5
5
|
import * as i1 from '@angular/common';
|
|
@@ -4785,32 +4785,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
4785
4785
|
class RightsFooterComponent {
|
|
4786
4786
|
constructor() {
|
|
4787
4787
|
this.i18n = inject(I18nService);
|
|
4788
|
+
/**
|
|
4789
|
+
* Optional configuration for the rights footer.
|
|
4790
|
+
* Signal-based input for full reactivity with computed().
|
|
4791
|
+
*/
|
|
4792
|
+
this.props = input();
|
|
4788
4793
|
/**
|
|
4789
4794
|
* Current year for copyright.
|
|
4790
4795
|
*/
|
|
4791
4796
|
this.currentYear = new Date().getFullYear();
|
|
4792
4797
|
/**
|
|
4793
|
-
* Computed copyright text - reactive to language changes.
|
|
4798
|
+
* Computed copyright text - reactive to both language AND props changes.
|
|
4794
4799
|
*/
|
|
4795
4800
|
this.copyrightText = computed(() => {
|
|
4796
4801
|
this.i18n.lang(); // Track language changes
|
|
4797
|
-
const
|
|
4798
|
-
const
|
|
4802
|
+
const p = this.props(); // Track props changes (now it's a signal!)
|
|
4803
|
+
const company = p?.companyName || 'Valtech';
|
|
4804
|
+
const rights = p?.rightsText || this.i18n.t('allRightsReserved');
|
|
4799
4805
|
return `© ${this.currentYear} ${company}. ${rights}`;
|
|
4800
4806
|
});
|
|
4807
|
+
/**
|
|
4808
|
+
* Computed helper for align prop in template.
|
|
4809
|
+
*/
|
|
4810
|
+
this.propsAlign = computed(() => this.props()?.align);
|
|
4811
|
+
/**
|
|
4812
|
+
* Computed helper for color prop in template.
|
|
4813
|
+
*/
|
|
4814
|
+
this.propsColor = computed(() => this.props()?.color || 'dark');
|
|
4801
4815
|
}
|
|
4802
4816
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RightsFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4803
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
4817
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: RightsFooterComponent, isStandalone: true, selector: "val-rights-footer", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
4804
4818
|
<div
|
|
4805
4819
|
class="rights-footer"
|
|
4806
|
-
[class.rights-footer--left]="
|
|
4807
|
-
[class.rights-footer--center]="
|
|
4808
|
-
[class.rights-footer--right]="
|
|
4820
|
+
[class.rights-footer--left]="propsAlign() === 'left'"
|
|
4821
|
+
[class.rights-footer--center]="propsAlign() === 'center' || !propsAlign()"
|
|
4822
|
+
[class.rights-footer--right]="propsAlign() === 'right'"
|
|
4809
4823
|
>
|
|
4810
4824
|
<val-text
|
|
4811
4825
|
[props]="{
|
|
4812
4826
|
content: copyrightText(),
|
|
4813
|
-
color:
|
|
4827
|
+
color: propsColor(),
|
|
4814
4828
|
bold: false,
|
|
4815
4829
|
size: 'small'
|
|
4816
4830
|
}"
|
|
@@ -4823,23 +4837,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
4823
4837
|
args: [{ selector: 'val-rights-footer', standalone: true, imports: [CommonModule, TextComponent], template: `
|
|
4824
4838
|
<div
|
|
4825
4839
|
class="rights-footer"
|
|
4826
|
-
[class.rights-footer--left]="
|
|
4827
|
-
[class.rights-footer--center]="
|
|
4828
|
-
[class.rights-footer--right]="
|
|
4840
|
+
[class.rights-footer--left]="propsAlign() === 'left'"
|
|
4841
|
+
[class.rights-footer--center]="propsAlign() === 'center' || !propsAlign()"
|
|
4842
|
+
[class.rights-footer--right]="propsAlign() === 'right'"
|
|
4829
4843
|
>
|
|
4830
4844
|
<val-text
|
|
4831
4845
|
[props]="{
|
|
4832
4846
|
content: copyrightText(),
|
|
4833
|
-
color:
|
|
4847
|
+
color: propsColor(),
|
|
4834
4848
|
bold: false,
|
|
4835
4849
|
size: 'small'
|
|
4836
4850
|
}"
|
|
4837
4851
|
/>
|
|
4838
4852
|
</div>
|
|
4839
4853
|
`, styles: [".rights-footer{display:block;margin-top:24px}.rights-footer--left{text-align:left}.rights-footer--center{text-align:center}.rights-footer--right{text-align:right}\n"] }]
|
|
4840
|
-
}]
|
|
4841
|
-
type: Input
|
|
4842
|
-
}] } });
|
|
4854
|
+
}] });
|
|
4843
4855
|
|
|
4844
4856
|
/**
|
|
4845
4857
|
* val-alert-box
|