valtech-components 2.0.523 → 2.0.525

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, Input } from '@angular/core';
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 company = this.props?.companyName || 'Valtech';
40
- const rights = this.props?.rightsText || this.i18n.t('allRightsReserved');
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: "14.0.0", version: "18.2.14", type: RightsFooterComponent, isStandalone: true, selector: "val-rights-footer", inputs: { props: "props" }, ngImport: i0, template: `
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]="props?.align === 'left'"
49
- [class.rights-footer--center]="props?.align === 'center' || !props?.align"
50
- [class.rights-footer--right]="props?.align === '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: props?.color || 'dark',
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]="props?.align === 'left'"
69
- [class.rights-footer--center]="props?.align === 'center' || !props?.align"
70
- [class.rights-footer--right]="props?.align === '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: props?.color || 'dark',
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
- }], propDecorators: { props: [{
83
- type: Input
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 { CommonModule } from '@angular/common';
2
- import { Component, Input } from '@angular/core';
2
+ import { Component, computed, input } from '@angular/core';
3
3
  import { IonCol, IonGrid, IonRow } from '@ionic/angular/standalone';
4
4
  import { FooterLinksComponent } from '../../molecules/footer-links/footer-links.component';
5
5
  import { RightsFooterComponent } from '../../atoms/rights-footer/rights-footer.component';
@@ -30,22 +30,28 @@ export class CompanyFooterComponent {
30
30
  constructor() {
31
31
  /**
32
32
  * Footer configuration.
33
+ * Signal-based input for full reactivity with computed().
33
34
  */
34
- this.props = {
35
+ this.props = input({
35
36
  links: {
36
37
  leftLinks: { title: '', size: 'medium', links: [] },
37
38
  rightLinks: { title: '', size: 'medium', links: [] },
38
39
  },
39
- };
40
+ });
41
+ // Computed helpers for template bindings
42
+ this.propsWithPadding = computed(() => this.props()?.withPadding);
43
+ this.propsWithBackground = computed(() => this.props()?.withBackground);
44
+ this.propsLinks = computed(() => this.props()?.links);
45
+ this.propsRights = computed(() => this.props()?.rights || {});
40
46
  }
41
47
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CompanyFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
42
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CompanyFooterComponent, isStandalone: true, selector: "val-company-footer", inputs: { props: "props" }, ngImport: i0, template: `
43
- <footer [class.withPadding]="props.withPadding" [class.withBackground]="props.withBackground">
48
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: CompanyFooterComponent, isStandalone: true, selector: "val-company-footer", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
49
+ <footer [class.withPadding]="propsWithPadding()" [class.withBackground]="propsWithBackground()">
44
50
  <ion-grid>
45
- <val-footer-links [props]="props.links" />
51
+ <val-footer-links [props]="propsLinks()" />
46
52
  <ion-row>
47
53
  <ion-col size="12">
48
- <val-rights-footer [props]="props.rights || {}" />
54
+ <val-rights-footer [props]="propsRights()" />
49
55
  </ion-col>
50
56
  </ion-row>
51
57
  </ion-grid>
@@ -55,18 +61,16 @@ export class CompanyFooterComponent {
55
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CompanyFooterComponent, decorators: [{
56
62
  type: Component,
57
63
  args: [{ selector: 'val-company-footer', standalone: true, imports: [CommonModule, IonGrid, IonRow, IonCol, RightsFooterComponent, FooterLinksComponent], template: `
58
- <footer [class.withPadding]="props.withPadding" [class.withBackground]="props.withBackground">
64
+ <footer [class.withPadding]="propsWithPadding()" [class.withBackground]="propsWithBackground()">
59
65
  <ion-grid>
60
- <val-footer-links [props]="props.links" />
66
+ <val-footer-links [props]="propsLinks()" />
61
67
  <ion-row>
62
68
  <ion-col size="12">
63
- <val-rights-footer [props]="props.rights || {}" />
69
+ <val-rights-footer [props]="propsRights()" />
64
70
  </ion-col>
65
71
  </ion-row>
66
72
  </ion-grid>
67
73
  </footer>
68
74
  `, styles: [".withPadding{padding:16px}.withBackground{background-color:var(--ion-background-color)}\n"] }]
69
- }], propDecorators: { props: [{
70
- type: Input
71
- }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFueS1mb290ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9jb21wYW55LWZvb3Rlci9jb21wYW55LWZvb3Rlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOztBQUcxRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBMkJILE1BQU0sT0FBTyxzQkFBc0I7SUExQm5DO1FBMkJFOztXQUVHO1FBQ00sVUFBSyxHQUEwQjtZQUN0QyxLQUFLLEVBQUU7Z0JBQ0wsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7Z0JBQ25ELFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO2FBQ3JEO1NBQ0YsQ0FBQztLQUNIOytHQVZZLHNCQUFzQjttR0FBdEIsc0JBQXNCLDBHQXRCdkI7Ozs7Ozs7Ozs7O0dBV1Qsa0tBWlMsWUFBWSwrQkFBRSxPQUFPLHdFQUFFLE1BQU0sb0RBQUUsTUFBTSxrVEFBRSxxQkFBcUIsaUZBQUUsb0JBQW9COzs0RkF1QmpGLHNCQUFzQjtrQkExQmxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsQ0FBQyxZQUNuRjs7Ozs7Ozs7Ozs7R0FXVDs4QkFlUSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uQ29sLCBJb25HcmlkLCBJb25Sb3cgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEZvb3RlckxpbmtzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2Zvb3Rlci1saW5rcy9mb290ZXItbGlua3MuY29tcG9uZW50JztcbmltcG9ydCB7IFJpZ2h0c0Zvb3RlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3JpZ2h0cy1mb290ZXIvcmlnaHRzLWZvb3Rlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcGFueUZvb3Rlck1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogdmFsLWNvbXBhbnktZm9vdGVyXG4gKlxuICogQSBjb21wbGV0ZSBmb290ZXIgY29tcG9uZW50IGNvbWJpbmluZyBmb290ZXIgbGlua3MgKHdpdGggbG9nbyBhbmQgc29jaWFsIGljb25zKVxuICogYW5kIGEgcmlnaHRzL2NvcHlyaWdodCBmb290ZXIuIENvbmZpZ3VyYWJsZSBwYWRkaW5nIGFuZCBiYWNrZ3JvdW5kIG9wdGlvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtY29tcGFueS1mb290ZXJcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBsaW5rczoge1xuICogICAgICAgbGVmdExpbmtzOiB7IHRpdGxlOiAnQ29tcGFueScsIHNpemU6ICdtZWRpdW0nLCBsaW5rczogWy4uLl0gfSxcbiAqICAgICAgIHJpZ2h0TGlua3M6IHsgdGl0bGU6ICdTdXBwb3J0Jywgc2l6ZTogJ21lZGl1bScsIGxpbmtzOiBbLi4uXSB9LFxuICogICAgICAgbG9nbzogJy9hc3NldHMvbG9nby5wbmcnLFxuICogICAgICAgc29jaWFsTGlua3M6IFsuLi5dXG4gKiAgICAgfSxcbiAqICAgICByaWdodHM6IHsgY29tcGFueU5hbWU6ICdBY21lIEluYycgfSxcbiAqICAgICB3aXRoUGFkZGluZzogdHJ1ZVxuICogICB9XCJcbiAqID48L3ZhbC1jb21wYW55LWZvb3Rlcj5cbiAqXG4gKiBAaW5wdXQgcHJvcHMgLSBGb290ZXIgY29uZmlndXJhdGlvblxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtY29tcGFueS1mb290ZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25HcmlkLCBJb25Sb3csIElvbkNvbCwgUmlnaHRzRm9vdGVyQ29tcG9uZW50LCBGb290ZXJMaW5rc0NvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGZvb3RlciBbY2xhc3Mud2l0aFBhZGRpbmddPVwicHJvcHMud2l0aFBhZGRpbmdcIiBbY2xhc3Mud2l0aEJhY2tncm91bmRdPVwicHJvcHMud2l0aEJhY2tncm91bmRcIj5cbiAgICAgIDxpb24tZ3JpZD5cbiAgICAgICAgPHZhbC1mb290ZXItbGlua3MgW3Byb3BzXT1cInByb3BzLmxpbmtzXCIgLz5cbiAgICAgICAgPGlvbi1yb3c+XG4gICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjEyXCI+XG4gICAgICAgICAgICA8dmFsLXJpZ2h0cy1mb290ZXIgW3Byb3BzXT1cInByb3BzLnJpZ2h0cyB8fCB7fVwiIC8+XG4gICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8L2lvbi1yb3c+XG4gICAgICA8L2lvbi1ncmlkPlxuICAgIDwvZm9vdGVyPlxuICBgLFxuICBzdHlsZXM6IGBcbiAgICAud2l0aFBhZGRpbmcge1xuICAgICAgcGFkZGluZzogMTZweDtcbiAgICB9XG5cbiAgICAud2l0aEJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IpO1xuICAgIH1cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQ29tcGFueUZvb3RlckNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBGb290ZXIgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIEBJbnB1dCgpIHByb3BzOiBDb21wYW55Rm9vdGVyTWV0YWRhdGEgPSB7XG4gICAgbGlua3M6IHtcbiAgICAgIGxlZnRMaW5rczogeyB0aXRsZTogJycsIHNpemU6ICdtZWRpdW0nLCBsaW5rczogW10gfSxcbiAgICAgIHJpZ2h0TGlua3M6IHsgdGl0bGU6ICcnLCBzaXplOiAnbWVkaXVtJywgbGlua3M6IFtdIH0sXG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
75
+ }] });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFueS1mb290ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9jb21wYW55LWZvb3Rlci9jb21wYW55LWZvb3Rlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMzRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7QUFHMUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQTJCSCxNQUFNLE9BQU8sc0JBQXNCO0lBMUJuQztRQTJCRTs7O1dBR0c7UUFDTSxVQUFLLEdBQUcsS0FBSyxDQUF3QjtZQUM1QyxLQUFLLEVBQUU7Z0JBQ0wsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7Z0JBQ25ELFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO2FBQ3JEO1NBQ0YsQ0FBQyxDQUFDO1FBRUgseUNBQXlDO1FBQ3pDLHFCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDN0Qsd0JBQW1CLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUNuRSxlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRCxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQzFEOytHQWpCWSxzQkFBc0I7bUdBQXRCLHNCQUFzQixrTkF0QnZCOzs7Ozs7Ozs7OztHQVdULGtLQVpTLFlBQVksK0JBQUUsT0FBTyx3RUFBRSxNQUFNLG9EQUFFLE1BQU0sa1RBQUUscUJBQXFCLGlGQUFFLG9CQUFvQjs7NEZBdUJqRixzQkFBc0I7a0JBMUJsQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLENBQUMsWUFDbkY7Ozs7Ozs7Ozs7O0dBV1QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkNvbCwgSW9uR3JpZCwgSW9uUm93IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBGb290ZXJMaW5rc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9mb290ZXItbGlua3MvZm9vdGVyLWxpbmtzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSaWdodHNGb290ZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9yaWdodHMtZm9vdGVyL3JpZ2h0cy1mb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBhbnlGb290ZXJNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIHZhbC1jb21wYW55LWZvb3RlclxuICpcbiAqIEEgY29tcGxldGUgZm9vdGVyIGNvbXBvbmVudCBjb21iaW5pbmcgZm9vdGVyIGxpbmtzICh3aXRoIGxvZ28gYW5kIHNvY2lhbCBpY29ucylcbiAqIGFuZCBhIHJpZ2h0cy9jb3B5cmlnaHQgZm9vdGVyLiBDb25maWd1cmFibGUgcGFkZGluZyBhbmQgYmFja2dyb3VuZCBvcHRpb25zLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLWNvbXBhbnktZm9vdGVyXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgbGlua3M6IHtcbiAqICAgICAgIGxlZnRMaW5rczogeyB0aXRsZTogJ0NvbXBhbnknLCBzaXplOiAnbWVkaXVtJywgbGlua3M6IFsuLi5dIH0sXG4gKiAgICAgICByaWdodExpbmtzOiB7IHRpdGxlOiAnU3VwcG9ydCcsIHNpemU6ICdtZWRpdW0nLCBsaW5rczogWy4uLl0gfSxcbiAqICAgICAgIGxvZ286ICcvYXNzZXRzL2xvZ28ucG5nJyxcbiAqICAgICAgIHNvY2lhbExpbmtzOiBbLi4uXVxuICogICAgIH0sXG4gKiAgICAgcmlnaHRzOiB7IGNvbXBhbnlOYW1lOiAnQWNtZSBJbmMnIH0sXG4gKiAgICAgd2l0aFBhZGRpbmc6IHRydWVcbiAqICAgfVwiXG4gKiA+PC92YWwtY29tcGFueS1mb290ZXI+XG4gKlxuICogQGlucHV0IHByb3BzIC0gRm9vdGVyIGNvbmZpZ3VyYXRpb25cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWNvbXBhbnktZm9vdGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uR3JpZCwgSW9uUm93LCBJb25Db2wsIFJpZ2h0c0Zvb3RlckNvbXBvbmVudCwgRm9vdGVyTGlua3NDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxmb290ZXIgW2NsYXNzLndpdGhQYWRkaW5nXT1cInByb3BzV2l0aFBhZGRpbmcoKVwiIFtjbGFzcy53aXRoQmFja2dyb3VuZF09XCJwcm9wc1dpdGhCYWNrZ3JvdW5kKClcIj5cbiAgICAgIDxpb24tZ3JpZD5cbiAgICAgICAgPHZhbC1mb290ZXItbGlua3MgW3Byb3BzXT1cInByb3BzTGlua3MoKVwiIC8+XG4gICAgICAgIDxpb24tcm93PlxuICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiPlxuICAgICAgICAgICAgPHZhbC1yaWdodHMtZm9vdGVyIFtwcm9wc109XCJwcm9wc1JpZ2h0cygpXCIgLz5cbiAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgIDwvaW9uLXJvdz5cbiAgICAgIDwvaW9uLWdyaWQ+XG4gICAgPC9mb290ZXI+XG4gIGAsXG4gIHN0eWxlczogYFxuICAgIC53aXRoUGFkZGluZyB7XG4gICAgICBwYWRkaW5nOiAxNnB4O1xuICAgIH1cblxuICAgIC53aXRoQmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvcik7XG4gICAgfVxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBDb21wYW55Rm9vdGVyQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIEZvb3RlciBjb25maWd1cmF0aW9uLlxuICAgKiBTaWduYWwtYmFzZWQgaW5wdXQgZm9yIGZ1bGwgcmVhY3Rpdml0eSB3aXRoIGNvbXB1dGVkKCkuXG4gICAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0PENvbXBhbnlGb290ZXJNZXRhZGF0YT4oe1xuICAgIGxpbmtzOiB7XG4gICAgICBsZWZ0TGlua3M6IHsgdGl0bGU6ICcnLCBzaXplOiAnbWVkaXVtJywgbGlua3M6IFtdIH0sXG4gICAgICByaWdodExpbmtzOiB7IHRpdGxlOiAnJywgc2l6ZTogJ21lZGl1bScsIGxpbmtzOiBbXSB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIENvbXB1dGVkIGhlbHBlcnMgZm9yIHRlbXBsYXRlIGJpbmRpbmdzXG4gIHByb3BzV2l0aFBhZGRpbmcgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByb3BzKCk/LndpdGhQYWRkaW5nKTtcbiAgcHJvcHNXaXRoQmFja2dyb3VuZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucHJvcHMoKT8ud2l0aEJhY2tncm91bmQpO1xuICBwcm9wc0xpbmtzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wcm9wcygpPy5saW5rcyk7XG4gIHByb3BzUmlnaHRzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wcm9wcygpPy5yaWdodHMgfHwge30pO1xufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { Component, EventEmitter, inject, Input, Output } from '@angular/core';
2
+ import { Component, computed, EventEmitter, inject, input, Output } from '@angular/core';
3
3
  import { NavigationEnd, Router, RouterOutlet } from '@angular/router';
4
4
  import { IonContent } from '@ionic/angular/standalone';
5
5
  import { filter } from 'rxjs';
@@ -38,10 +38,11 @@ export class PageWrapperComponent {
38
38
  this.router = inject(Router);
39
39
  /**
40
40
  * Page wrapper configuration.
41
+ * Signal-based input for full reactivity with computed().
41
42
  */
42
- this.props = {
43
+ this.props = input({
43
44
  scrollToTopOnNavigate: true,
44
- };
45
+ });
45
46
  /**
46
47
  * Emits when a header action is clicked.
47
48
  */
@@ -79,15 +80,23 @@ export class PageWrapperComponent {
79
80
  ],
80
81
  },
81
82
  };
82
- }
83
- /**
84
- * Gets header props, using cached default if not provided.
85
- */
86
- get headerProps() {
87
- return this.props.header || this.defaultHeader;
83
+ // Computed helpers for template bindings
84
+ this.headerProps = computed(() => this.props()?.header || this.defaultHeader);
85
+ this.contentId = computed(() => this.props()?.contentId || 'page-wrapper');
86
+ this.propsFooter = computed(() => this.props()?.footer);
87
+ this.background = computed(() => {
88
+ if (this.theme.IsDark) {
89
+ return 'var(--ion-background-color)';
90
+ }
91
+ const bg = this.props()?.background;
92
+ if (!bg) {
93
+ return 'var(--ion-background-color)';
94
+ }
95
+ return resolveColor(bg);
96
+ });
88
97
  }
89
98
  ngOnInit() {
90
- if (this.props.scrollToTopOnNavigate !== false) {
99
+ if (this.props()?.scrollToTopOnNavigate !== false) {
91
100
  this.routerSubscription = this.router.events
92
101
  .pipe(filter((event) => event instanceof NavigationEnd))
93
102
  .subscribe(() => {
@@ -106,25 +115,12 @@ export class PageWrapperComponent {
106
115
  ionViewWillEnter() {
107
116
  this.scrollToTop();
108
117
  }
109
- /**
110
- * Gets the background color based on theme.
111
- */
112
- getBackground() {
113
- if (this.theme.IsDark) {
114
- return 'var(--ion-background-color)';
115
- }
116
- const bg = this.props.background;
117
- if (!bg) {
118
- return 'var(--ion-background-color)';
119
- }
120
- return resolveColor(bg);
121
- }
122
118
  /**
123
119
  * Scrolls the content to the top.
124
120
  */
125
121
  scrollToTop() {
126
- const contentId = this.props.contentId || 'page-wrapper';
127
- const ionContent = document.querySelector(`#${contentId}`);
122
+ const id = this.props()?.contentId || 'page-wrapper';
123
+ const ionContent = document.querySelector(`#${id}`);
128
124
  if (ionContent && ionContent.scrollToTop) {
129
125
  ionContent.scrollToTop(300);
130
126
  }
@@ -137,30 +133,31 @@ export class PageWrapperComponent {
137
133
  */
138
134
  onHeaderClickHandler(token) {
139
135
  this.onHeaderClick.emit(token);
140
- if (token === 'header-logo' && this.props.homeRoute) {
141
- this.nav.navigateByUrl(this.props.homeRoute);
136
+ const homeRoute = this.props()?.homeRoute;
137
+ if (token === 'header-logo' && homeRoute) {
138
+ this.nav.navigateByUrl(homeRoute);
142
139
  }
143
140
  }
144
141
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PageWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
145
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PageWrapperComponent, isStandalone: true, selector: "val-page-wrapper", inputs: { props: "props" }, outputs: { onHeaderClick: "onHeaderClick" }, ngImport: i0, template: `
142
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PageWrapperComponent, isStandalone: true, selector: "val-page-wrapper", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onHeaderClick: "onHeaderClick" }, ngImport: i0, template: `
146
143
  <div class="ion-page">
147
144
  <val-header
148
- [props]="headerProps"
145
+ [props]="headerProps()"
149
146
  (onClick)="onHeaderClickHandler($event)"
150
147
  />
151
148
  <ion-content
152
- [id]="props.contentId || 'page-wrapper'"
149
+ [id]="contentId()"
153
150
  class="ion-padding"
154
151
  [fullscreen]="true"
155
152
  [ngStyle]="{
156
- '--background': getBackground()
153
+ '--background': background()
157
154
  }"
158
155
  >
159
156
  <main>
160
157
  <router-outlet></router-outlet>
161
158
  </main>
162
- @if (props.footer) {
163
- <val-company-footer [props]="props.footer" />
159
+ @if (propsFooter()) {
160
+ <val-company-footer [props]="propsFooter()" />
164
161
  }
165
162
  </ion-content>
166
163
  </div>
@@ -171,29 +168,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
171
168
  args: [{ selector: 'val-page-wrapper', standalone: true, imports: [CommonModule, HeaderComponent, CompanyFooterComponent, RouterOutlet, IonContent], template: `
172
169
  <div class="ion-page">
173
170
  <val-header
174
- [props]="headerProps"
171
+ [props]="headerProps()"
175
172
  (onClick)="onHeaderClickHandler($event)"
176
173
  />
177
174
  <ion-content
178
- [id]="props.contentId || 'page-wrapper'"
175
+ [id]="contentId()"
179
176
  class="ion-padding"
180
177
  [fullscreen]="true"
181
178
  [ngStyle]="{
182
- '--background': getBackground()
179
+ '--background': background()
183
180
  }"
184
181
  >
185
182
  <main>
186
183
  <router-outlet></router-outlet>
187
184
  </main>
188
- @if (props.footer) {
189
- <val-company-footer [props]="props.footer" />
185
+ @if (propsFooter()) {
186
+ <val-company-footer [props]="propsFooter()" />
190
187
  }
191
188
  </ion-content>
192
189
  </div>
193
190
  `, styles: ["main{min-height:60vh}\n"] }]
194
- }], propDecorators: { props: [{
195
- type: Input
196
- }], onHeaderClick: [{
191
+ }], propDecorators: { onHeaderClick: [{
197
192
  type: Output
198
193
  }] } });
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvcGFnZS13cmFwcGVyL3BhZ2Utd3JhcHBlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFnQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxNQUFNLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFFNUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBa0NILE1BQU0sT0FBTyxvQkFBb0I7SUFqQ2pDO1FBa0NVLFVBQUssR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0IsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hDLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFHaEM7O1dBRUc7UUFDTSxVQUFLLEdBQXdCO1lB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QUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxvQkFBb0IsQ0FBQyxLQUFhO1FBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9CLElBQUksS0FBSyxLQUFLLGFBQWEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNILENBQUM7K0dBekhVLG9CQUFvQjttR0FBcEIsb0JBQW9CLHFKQTdCckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQlQsZ0dBdkJTLFlBQVksb0hBQUUsZUFBZSxnR0FBRSxzQkFBc0Isa0ZBQUUsWUFBWSwySkFBRSxVQUFVOzs0RkE4QjlFLG9CQUFvQjtrQkFqQ2hDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxZQUNoRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCVDs4QkFnQlEsS0FBSztzQkFBYixLQUFLO2dCQU9JLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciwgUm91dGVyT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbkNvbnRlbnQsIFZpZXdXaWxsRW50ZXIsIFZpZXdXaWxsTGVhdmUgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGZpbHRlciwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcGFueUZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9jb21wYW55LWZvb3Rlci9jb21wYW55LWZvb3Rlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdGhlbWUuc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBQYWdlV3JhcHBlck1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyByZXNvbHZlQ29sb3IgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvc3R5bGVzJztcblxuLyoqXG4gKiB2YWwtcGFnZS13cmFwcGVyXG4gKlxuICogQSBjb21wbGV0ZSBwYWdlIHdyYXBwZXIgdGVtcGxhdGUgd2l0aCBoZWFkZXIsIHJvdXRlciBvdXRsZXQsIGZvb3RlcixcbiAqIGFuZCBhdXRvbWF0aWMgc2Nyb2xsLXRvLXRvcCBvbiBuYXZpZ2F0aW9uLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLXBhZ2Utd3JhcHBlclxuICogICBbcHJvcHNdPVwie1xuICogICAgIGhvbWVSb3V0ZTogJy8nLFxuICogICAgIHNjcm9sbFRvVG9wT25OYXZpZ2F0ZTogdHJ1ZSxcbiAqICAgICBmb290ZXI6IHtcbiAqICAgICAgIGxpbmtzOiB7IC4uLiB9LFxuICogICAgICAgcmlnaHRzOiB7IGNvbXBhbnlOYW1lOiAnQWNtZScgfVxuICogICAgIH1cbiAqICAgfVwiXG4gKiA+PC92YWwtcGFnZS13cmFwcGVyPlxuICpcbiAqIEBpbnB1dCBwcm9wcyAtIFBhZ2Ugd3JhcHBlciBjb25maWd1cmF0aW9uXG4gKiBAb3V0cHV0IG9uSGVhZGVyQ2xpY2sgLSBFbWl0cyB3aGVuIGEgaGVhZGVyIGFjdGlvbiBpcyBjbGlja2VkXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1wYWdlLXdyYXBwZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBIZWFkZXJDb21wb25lbnQsIENvbXBhbnlGb290ZXJDb21wb25lbnQsIFJvdXRlck91dGxldCwgSW9uQ29udGVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImlvbi1wYWdlXCI+XG4gICAgICA8dmFsLWhlYWRlclxuICAgICAgICBbcHJvcHNdPVwiaGVhZGVyUHJvcHNcIlxuICAgICAgICAob25DbGljayk9XCJvbkhlYWRlckNsaWNrSGFuZGxlcigkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgICA8aW9uLWNvbnRlbnRcbiAgICAgICAgW2lkXT1cInByb3BzLmNvbnRlbnRJZCB8fCAncGFnZS13cmFwcGVyJ1wiXG4gICAgICAgIGNsYXNzPVwiaW9uLXBhZGRpbmdcIlxuICAgICAgICBbZnVsbHNjcmVlbl09XCJ0cnVlXCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICctLWJhY2tncm91bmQnOiBnZXRCYWNrZ3JvdW5kKClcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIDxtYWluPlxuICAgICAgICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgICAgICAgPC9tYWluPlxuICAgICAgICBAaWYgKHByb3BzLmZvb3Rlcikge1xuICAgICAgICAgIDx2YWwtY29tcGFueS1mb290ZXIgW3Byb3BzXT1cInByb3BzLmZvb3RlclwiIC8+XG4gICAgICAgIH1cbiAgICAgIDwvaW9uLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogYFxuICAgIG1haW4ge1xuICAgICAgbWluLWhlaWdodDogNjB2aDtcbiAgICB9XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VXcmFwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgVmlld1dpbGxFbnRlciwgVmlld1dpbGxMZWF2ZSwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHRoZW1lID0gaW5qZWN0KFRoZW1lU2VydmljZSk7XG4gIHByaXZhdGUgbmF2ID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcHJpdmF0ZSByb3V0ZXJTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIFBhZ2Ugd3JhcHBlciBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IFBhZ2VXcmFwcGVyTWV0YWRhdGEgPSB7XG4gICAgc2Nyb2xsVG9Ub3BPbk5hdmlnYXRlOiB0cnVlLFxuICB9O1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGEgaGVhZGVyIGFjdGlvbiBpcyBjbGlja2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIG9uSGVhZGVyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvKipcbiAgICogRGVmYXVsdCBoZWFkZXIgY29uZmlndXJhdGlvbiAoY2FjaGVkIHRvIGF2b2lkIGluZmluaXRlIGNoYW5nZSBkZXRlY3Rpb24pLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0SGVhZGVyID0ge1xuICAgIGJvcmRlcmVkOiB0cnVlLFxuICAgIHRyYW5zbHVjZW50OiB0cnVlLFxuICAgIHRvb2xiYXI6IHtcbiAgICAgIHdpdGhCYWNrOiBmYWxzZSxcbiAgICAgIHdpdGhBY3Rpb25zOiB0cnVlLFxuICAgICAgdGV4dENvbG9yOiAnZGFyaycgYXMgY29uc3QsXG4gICAgICB3aXRoTWVudTogdHJ1ZSxcbiAgICAgIHRpdGxlOiAnJyxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRva2VuOiAnaGVhZGVyLWxvZ28nLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICAgICAgICBwb3NpdGlvbjogJ2xlZnQnIGFzIGNvbnN0LFxuICAgICAgICAgIHR5cGU6ICdJTUFHRScgYXMgY29uc3QsXG4gICAgICAgICAgaW1hZ2U6IHtcbiAgICAgICAgICAgIHdpZHRoOiAxMCxcbiAgICAgICAgICAgIHNyYzogJy0tbWFpbi1sb2dvJyxcbiAgICAgICAgICAgIGFsdDogJ2hlYWRlciBsb2dvJyxcbiAgICAgICAgICAgIG1vZGU6ICdib3gnIGFzIGNvbnN0LFxuICAgICAgICAgICAgc2hhZGVkOiBmYWxzZSxcbiAgICAgICAgICAgIGJvcmRlcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIHNpemU6ICdzbWFsbCcgYXMgY29uc3QsXG4gICAgICAgICAgICBsaW1pdGVkOiBmYWxzZSxcbiAgICAgICAgICAgIGZsZXg6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfTtcblxuICAvKipcbiAgICogR2V0cyBoZWFkZXIgcHJvcHMsIHVzaW5nIGNhY2hlZCBkZWZhdWx0IGlmIG5vdCBwcm92aWRlZC5cbiAgICovXG4gIGdldCBoZWFkZXJQcm9wcygpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5oZWFkZXIgfHwgdGhpcy5kZWZhdWx0SGVhZGVyO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvcHMuc2Nyb2xsVG9Ub3BPbk5hdmlnYXRlICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgICAgLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zY3JvbGxUb1RvcCgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgaW9uVmlld1dpbGxMZWF2ZSgpOiB2b2lkIHtcbiAgICAvLyBPcHRpb25hbDogY2FuIGFkZCBsb2dpYyBvbiB2aWV3IGxlYXZlXG4gIH1cblxuICBpb25WaWV3V2lsbEVudGVyKCk6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsVG9Ub3AoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGJhc2VkIG9uIHRoZW1lLlxuICAgKi9cbiAgZ2V0QmFja2dyb3VuZCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnRoZW1lLklzRGFyaykge1xuICAgICAgcmV0dXJuICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknO1xuICAgIH1cblxuICAgIGNvbnN0IGJnID0gdGhpcy5wcm9wcy5iYWNrZ3JvdW5kO1xuICAgIGlmICghYmcpIHtcbiAgICAgIHJldHVybiAndmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IpJztcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzb2x2ZUNvbG9yKGJnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGxzIHRoZSBjb250ZW50IHRvIHRoZSB0b3AuXG4gICAqL1xuICBwcml2YXRlIHNjcm9sbFRvVG9wKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRlbnRJZCA9IHRoaXMucHJvcHMuY29udGVudElkIHx8ICdwYWdlLXdyYXBwZXInO1xuICAgIGNvbnN0IGlvbkNvbnRlbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjJHtjb250ZW50SWR9YCkgYXMgYW55O1xuICAgIGlmIChpb25Db250ZW50ICYmIGlvbkNvbnRlbnQuc2Nyb2xsVG9Ub3ApIHtcbiAgICAgIGlvbkNvbnRlbnQuc2Nyb2xsVG9Ub3AoMzAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgd2luZG93LnNjcm9sbFRvKHsgdG9wOiAwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgaGVhZGVyIGFjdGlvbiBjbGlja3MuXG4gICAqL1xuICBvbkhlYWRlckNsaWNrSGFuZGxlcih0b2tlbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5vbkhlYWRlckNsaWNrLmVtaXQodG9rZW4pO1xuXG4gICAgaWYgKHRva2VuID09PSAnaGVhZGVyLWxvZ28nICYmIHRoaXMucHJvcHMuaG9tZVJvdXRlKSB7XG4gICAgICB0aGlzLm5hdi5uYXZpZ2F0ZUJ5VXJsKHRoaXMucHJvcHMuaG9tZVJvdXRlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvcGFnZS13cmFwcGVyL3BhZ2Utd3JhcHBlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBZ0MsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRixPQUFPLEVBQUUsTUFBTSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDakcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBRTVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQWtDSCxNQUFNLE9BQU8sb0JBQW9CO0lBakNqQztRQWtDVSxVQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdCLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoQyxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBR2hDOzs7V0FHRztRQUNNLFVB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QGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBpbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyLCBSb3V0ZXJPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW9uQ29udGVudCwgVmlld1dpbGxFbnRlciwgVmlld1dpbGxMZWF2ZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgZmlsdGVyLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wYW55Rm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL2NvbXBhbnktZm9vdGVyL2NvbXBhbnktZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFBhZ2VXcmFwcGVyTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IHJlc29sdmVDb2xvciB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC91dGlscy9zdHlsZXMnO1xuXG4vKipcbiAqIHZhbC1wYWdlLXdyYXBwZXJcbiAqXG4gKiBBIGNvbXBsZXRlIHBhZ2Ugd3JhcHBlciB0ZW1wbGF0ZSB3aXRoIGhlYWRlciwgcm91dGVyIG91dGxldCwgZm9vdGVyLFxuICogYW5kIGF1dG9tYXRpYyBzY3JvbGwtdG8tdG9wIG9uIG5hdmlnYXRpb24uXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtcGFnZS13cmFwcGVyXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgaG9tZVJvdXRlOiAnLycsXG4gKiAgICAgc2Nyb2xsVG9Ub3BPbk5hdmlnYXRlOiB0cnVlLFxuICogICAgIGZvb3Rlcjoge1xuICogICAgICAgbGlua3M6IHsgLi4uIH0sXG4gKiAgICAgICByaWdodHM6IHsgY29tcGFueU5hbWU6ICdBY21lJyB9XG4gKiAgICAgfVxuICogICB9XCJcbiAqID48L3ZhbC1wYWdlLXdyYXBwZXI+XG4gKlxuICogQGlucHV0IHByb3BzIC0gUGFnZSB3cmFwcGVyIGNvbmZpZ3VyYXRpb25cbiAqIEBvdXRwdXQgb25IZWFkZXJDbGljayAtIEVtaXRzIHdoZW4gYSBoZWFkZXIgYWN0aW9uIGlzIGNsaWNrZWRcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXBhZ2Utd3JhcHBlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEhlYWRlckNvbXBvbmVudCwgQ29tcGFueUZvb3RlckNvbXBvbmVudCwgUm91dGVyT3V0bGV0LCBJb25Db250ZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiaW9uLXBhZ2VcIj5cbiAgICAgIDx2YWwtaGVhZGVyXG4gICAgICAgIFtwcm9wc109XCJoZWFkZXJQcm9wcygpXCJcbiAgICAgICAgKG9uQ2xpY2spPVwib25IZWFkZXJDbGlja0hhbmRsZXIoJGV2ZW50KVwiXG4gICAgICAvPlxuICAgICAgPGlvbi1jb250ZW50XG4gICAgICAgIFtpZF09XCJjb250ZW50SWQoKVwiXG4gICAgICAgIGNsYXNzPVwiaW9uLXBhZGRpbmdcIlxuICAgICAgICBbZnVsbHNjcmVlbl09XCJ0cnVlXCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICctLWJhY2tncm91bmQnOiBiYWNrZ3JvdW5kKClcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIDxtYWluPlxuICAgICAgICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgICAgICAgPC9tYWluPlxuICAgICAgICBAaWYgKHByb3BzRm9vdGVyKCkpIHtcbiAgICAgICAgICA8dmFsLWNvbXBhbnktZm9vdGVyIFtwcm9wc109XCJwcm9wc0Zvb3RlcigpXCIgLz5cbiAgICAgICAgfVxuICAgICAgPC9pb24tY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBgXG4gICAgbWFpbiB7XG4gICAgICBtaW4taGVpZ2h0OiA2MHZoO1xuICAgIH1cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgUGFnZVdyYXBwZXJDb21wb25lbnQgaW1wbGVtZW50cyBWaWV3V2lsbEVudGVyLCBWaWV3V2lsbExlYXZlLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgdGhlbWUgPSBpbmplY3QoVGhlbWVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBuYXYgPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIHJvdXRlclN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogUGFnZSB3cmFwcGVyIGNvbmZpZ3VyYXRpb24uXG4gICAqIFNpZ25hbC1iYXNlZCBpbnB1dCBmb3IgZnVsbCByZWFjdGl2aXR5IHdpdGggY29tcHV0ZWQoKS5cbiAgICovXG4gIHJlYWRvbmx5IHByb3BzID0gaW5wdXQ8UGFnZVdyYXBwZXJNZXRhZGF0YT4oe1xuICAgIHNjcm9sbFRvVG9wT25OYXZpZ2F0ZTogdHJ1ZSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gYSBoZWFkZXIgYWN0aW9uIGlzIGNsaWNrZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgb25IZWFkZXJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGhlYWRlciBjb25maWd1cmF0aW9uIChjYWNoZWQgdG8gYXZvaWQgaW5maW5pdGUgY2hhbmdlIGRldGVjdGlvbikuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRIZWFkZXIgPSB7XG4gICAgYm9yZGVyZWQ6IHRydWUsXG4gICAgdHJhbnNsdWNlbnQ6IHRydWUsXG4gICAgdG9vbGJhcjoge1xuICAgICAgd2l0aEJhY2s6IGZhbHNlLFxuICAgICAgd2l0aEFjdGlvbnM6IHRydWUsXG4gICAgICB0ZXh0Q29sb3I6ICdkYXJrJyBhcyBjb25zdCxcbiAgICAgIHdpdGhNZW51OiB0cnVlLFxuICAgICAgdGl0bGU6ICcnLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgdG9rZW46ICdoZWFkZXItbG9nbycsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgICAgIHBvc2l0aW9uOiAnbGVmdCcgYXMgY29uc3QsXG4gICAgICAgICAgdHlwZTogJ0lNQUdFJyBhcyBjb25zdCxcbiAgICAgICAgICBpbWFnZToge1xuICAgICAgICAgICAgd2lkdGg6IDEwLFxuICAgICAgICAgICAgc3JjOiAnLS1tYWluLWxvZ28nLFxuICAgICAgICAgICAgYWx0OiAnaGVhZGVyIGxvZ28nLFxuICAgICAgICAgICAgbW9kZTogJ2JveCcgYXMgY29uc3QsXG4gICAgICAgICAgICBzaGFkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgYm9yZGVyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyBhcyBjb25zdCxcbiAgICAgICAgICAgIGxpbWl0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZmxleDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9O1xuXG4gIC8vIENvbXB1dGVkIGhlbHBlcnMgZm9yIHRlbXBsYXRlIGJpbmRpbmdzXG4gIGhlYWRlclByb3BzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wcm9wcygpPy5oZWFkZXIgfHwgdGhpcy5kZWZhdWx0SGVhZGVyKTtcbiAgY29udGVudElkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wcm9wcygpPy5jb250ZW50SWQgfHwgJ3BhZ2Utd3JhcHBlcicpO1xuICBwcm9wc0Zvb3RlciA9IGNvbXB1dGVkKCgpID0+IHRoaXMucHJvcHMoKT8uZm9vdGVyKTtcbiAgYmFja2dyb3VuZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy50aGVtZS5Jc0RhcmspIHtcbiAgICAgIHJldHVybiAndmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IpJztcbiAgICB9XG4gICAgY29uc3QgYmcgPSB0aGlzLnByb3BzKCk/LmJhY2tncm91bmQ7XG4gICAgaWYgKCFiZykge1xuICAgICAgcmV0dXJuICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZUNvbG9yKGJnKTtcbiAgfSk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvcHMoKT8uc2Nyb2xsVG9Ub3BPbk5hdmlnYXRlICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgICAgLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zY3JvbGxUb1RvcCgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgaW9uVmlld1dpbGxMZWF2ZSgpOiB2b2lkIHtcbiAgICAvLyBPcHRpb25hbDogY2FuIGFkZCBsb2dpYyBvbiB2aWV3IGxlYXZlXG4gIH1cblxuICBpb25WaWV3V2lsbEVudGVyKCk6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsVG9Ub3AoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGxzIHRoZSBjb250ZW50IHRvIHRoZSB0b3AuXG4gICAqL1xuICBwcml2YXRlIHNjcm9sbFRvVG9wKCk6IHZvaWQge1xuICAgIGNvbnN0IGlkID0gdGhpcy5wcm9wcygpPy5jb250ZW50SWQgfHwgJ3BhZ2Utd3JhcHBlcic7XG4gICAgY29uc3QgaW9uQ29udGVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke2lkfWApIGFzIGFueTtcbiAgICBpZiAoaW9uQ29udGVudCAmJiBpb25Db250ZW50LnNjcm9sbFRvVG9wKSB7XG4gICAgICBpb25Db250ZW50LnNjcm9sbFRvVG9wKDMwMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIGhlYWRlciBhY3Rpb24gY2xpY2tzLlxuICAgKi9cbiAgb25IZWFkZXJDbGlja0hhbmRsZXIodG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMub25IZWFkZXJDbGljay5lbWl0KHRva2VuKTtcblxuICAgIGNvbnN0IGhvbWVSb3V0ZSA9IHRoaXMucHJvcHMoKT8uaG9tZVJvdXRlO1xuICAgIGlmICh0b2tlbiA9PT0gJ2hlYWRlci1sb2dvJyAmJiBob21lUm91dGUpIHtcbiAgICAgIHRoaXMubmF2Lm5hdmlnYXRlQnlVcmwoaG9tZVJvdXRlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==