valtech-components 2.0.419 → 2.0.420

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.
Files changed (107) hide show
  1. package/esm2022/lib/components/atoms/button/button.component.mjs +30 -102
  2. package/esm2022/lib/components/atoms/countdown/countdown.component.mjs +2 -7
  3. package/esm2022/lib/components/atoms/display/display.component.mjs +18 -101
  4. package/esm2022/lib/components/atoms/image/image.component.mjs +2 -5
  5. package/esm2022/lib/components/atoms/price-tag/price-tag.component.mjs +2 -12
  6. package/esm2022/lib/components/atoms/qr-code/qr-code.component.mjs +4 -29
  7. package/esm2022/lib/components/atoms/text/text.component.mjs +49 -171
  8. package/esm2022/lib/components/atoms/title/title.component.mjs +23 -65
  9. package/esm2022/lib/components/atoms/title/types.mjs +7 -19
  10. package/esm2022/lib/components/molecules/accordion/accordion.component.mjs +7 -53
  11. package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +7 -26
  12. package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +7 -42
  13. package/esm2022/lib/components/molecules/check-input/check-input.component.mjs +12 -41
  14. package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +3 -28
  15. package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +2 -5
  16. package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +3 -6
  17. package/esm2022/lib/components/molecules/comment/comment.component.mjs +5 -31
  18. package/esm2022/lib/components/molecules/currency-input/currency-input.component.mjs +2 -23
  19. package/esm2022/lib/components/molecules/date-range-input/date-range-input.component.mjs +2 -29
  20. package/esm2022/lib/components/molecules/expandable-text/expandable-text.component.mjs +4 -6
  21. package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +16 -40
  22. package/esm2022/lib/components/molecules/language-selector/language-selector.component.mjs +25 -125
  23. package/esm2022/lib/components/molecules/multi-select-search/multi-select-search.component.mjs +4 -6
  24. package/esm2022/lib/components/molecules/number-stepper/number-stepper.component.mjs +2 -10
  25. package/esm2022/lib/components/molecules/participant-card/participant-card.component.mjs +2 -4
  26. package/esm2022/lib/components/molecules/phone-input/phone-input.component.mjs +2 -23
  27. package/esm2022/lib/components/molecules/plain-code-box/plain-code-box.component.mjs +3 -6
  28. package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +9 -12
  29. package/esm2022/lib/components/molecules/raffle-status-card/raffle-status-card.component.mjs +3 -11
  30. package/esm2022/lib/components/molecules/range-input/range-input.component.mjs +4 -25
  31. package/esm2022/lib/components/molecules/segment-control/segment-control.component.mjs +3 -34
  32. package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +11 -20
  33. package/esm2022/lib/components/molecules/select-search/select-search.component.mjs +4 -6
  34. package/esm2022/lib/components/molecules/share-buttons/share-buttons.component.mjs +1 -6
  35. package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +3 -28
  36. package/esm2022/lib/components/molecules/tabs/tabs.component.mjs +7 -41
  37. package/esm2022/lib/components/molecules/textarea-input/textarea-input.component.mjs +2 -27
  38. package/esm2022/lib/components/molecules/ticket-grid/ticket-grid.component.mjs +2 -10
  39. package/esm2022/lib/components/molecules/toggle-input/toggle-input.component.mjs +7 -37
  40. package/esm2022/lib/components/molecules/winner-display/winner-display.component.mjs +1 -12
  41. package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +8 -54
  42. package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +1 -3
  43. package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +3 -5
  44. package/esm2022/lib/services/locale.service.mjs +75 -0
  45. package/esm2022/lib/services/types.mjs +5 -3
  46. package/esm2022/public-api.mjs +2 -7
  47. package/fesm2022/valtech-components.mjs +366 -2279
  48. package/fesm2022/valtech-components.mjs.map +1 -1
  49. package/lib/components/atoms/button/button.component.d.ts +12 -37
  50. package/lib/components/atoms/countdown/countdown.component.d.ts +0 -1
  51. package/lib/components/atoms/display/display.component.d.ts +8 -60
  52. package/lib/components/atoms/image/image.component.d.ts +0 -2
  53. package/lib/components/atoms/price-tag/price-tag.component.d.ts +0 -1
  54. package/lib/components/atoms/qr-code/qr-code.component.d.ts +2 -6
  55. package/lib/components/atoms/text/text.component.d.ts +20 -68
  56. package/lib/components/atoms/title/title.component.d.ts +7 -12
  57. package/lib/components/atoms/title/types.d.ts +11 -24
  58. package/lib/components/molecules/accordion/accordion.component.d.ts +2 -9
  59. package/lib/components/molecules/alert-box/alert-box.component.d.ts +3 -8
  60. package/lib/components/molecules/breadcrumb/breadcrumb.component.d.ts +2 -8
  61. package/lib/components/molecules/check-input/check-input.component.d.ts +2 -10
  62. package/lib/components/molecules/chip-group/chip-group.component.d.ts +2 -8
  63. package/lib/components/molecules/code-display/code-display.component.d.ts +0 -2
  64. package/lib/components/molecules/command-display/command-display.component.d.ts +0 -3
  65. package/lib/components/molecules/comment/comment.component.d.ts +2 -6
  66. package/lib/components/molecules/currency-input/currency-input.component.d.ts +0 -3
  67. package/lib/components/molecules/date-range-input/date-range-input.component.d.ts +0 -3
  68. package/lib/components/molecules/expandable-text/expandable-text.component.d.ts +0 -1
  69. package/lib/components/molecules/glow-card/glow-card.component.d.ts +5 -9
  70. package/lib/components/molecules/language-selector/language-selector.component.d.ts +7 -19
  71. package/lib/components/molecules/multi-select-search/multi-select-search.component.d.ts +0 -2
  72. package/lib/components/molecules/number-stepper/number-stepper.component.d.ts +0 -1
  73. package/lib/components/molecules/participant-card/participant-card.component.d.ts +0 -1
  74. package/lib/components/molecules/phone-input/phone-input.component.d.ts +0 -3
  75. package/lib/components/molecules/plain-code-box/plain-code-box.component.d.ts +0 -3
  76. package/lib/components/molecules/popover-selector/popover-selector.component.d.ts +3 -4
  77. package/lib/components/molecules/raffle-status-card/raffle-status-card.component.d.ts +0 -1
  78. package/lib/components/molecules/range-input/range-input.component.d.ts +3 -8
  79. package/lib/components/molecules/segment-control/segment-control.component.d.ts +2 -8
  80. package/lib/components/molecules/select-input/select-input.component.d.ts +2 -3
  81. package/lib/components/molecules/select-search/select-search.component.d.ts +0 -2
  82. package/lib/components/molecules/share-buttons/share-buttons.component.d.ts +0 -1
  83. package/lib/components/molecules/stepper/stepper.component.d.ts +2 -8
  84. package/lib/components/molecules/tabs/tabs.component.d.ts +2 -8
  85. package/lib/components/molecules/textarea-input/textarea-input.component.d.ts +2 -6
  86. package/lib/components/molecules/ticket-grid/ticket-grid.component.d.ts +0 -1
  87. package/lib/components/molecules/toggle-input/toggle-input.component.d.ts +2 -8
  88. package/lib/components/molecules/winner-display/winner-display.component.d.ts +0 -1
  89. package/lib/components/organisms/comment-section/comment-section.component.d.ts +2 -6
  90. package/lib/components/organisms/data-table/data-table.component.d.ts +0 -1
  91. package/lib/components/organisms/wizard/wizard.component.d.ts +0 -2
  92. package/lib/services/locale.service.d.ts +52 -0
  93. package/lib/services/types.d.ts +1 -6
  94. package/package.json +1 -1
  95. package/public-api.d.ts +1 -5
  96. package/esm2022/lib/services/lang-provider/components/lang-settings.mjs +0 -13
  97. package/esm2022/lib/services/lang-provider/content.mjs +0 -156
  98. package/esm2022/lib/services/lang-provider/lang-provider.service.mjs +0 -530
  99. package/esm2022/lib/services/lang-provider/types.mjs +0 -23
  100. package/esm2022/lib/shared/utils/content.mjs +0 -186
  101. package/esm2022/lib/shared/utils/simple-content.mjs +0 -119
  102. package/lib/services/lang-provider/components/lang-settings.d.ts +0 -3
  103. package/lib/services/lang-provider/content.d.ts +0 -17
  104. package/lib/services/lang-provider/lang-provider.service.d.ts +0 -264
  105. package/lib/services/lang-provider/types.d.ts +0 -30
  106. package/lib/shared/utils/content.d.ts +0 -199
  107. package/lib/shared/utils/simple-content.d.ts +0 -120
@@ -1,17 +1,11 @@
1
- import { AsyncPipe } from '@angular/common';
2
1
  import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
3
2
  import { IonText } from '@ionic/angular/standalone';
4
- import { of, Subscription } from 'rxjs';
5
3
  import { ProcessLinksPipe } from '../../../shared/pipes/process-links.pipe';
6
- import { interpolateStaticContent, shouldUseReactiveContent } from '../../../shared/utils/simple-content';
7
4
  import * as i0 from "@angular/core";
8
- import * as i1 from "../../../services/lang-provider/lang-provider.service";
9
- import * as i2 from "../../../services/link-processor.service";
10
5
  /**
11
6
  * val-text
12
7
  *
13
- * Enhanced text component that supports both static content and reactive content from the language service.
14
- * The component automatically updates when the language changes if using reactive content.
8
+ * Text component that supports static content with optional interpolation.
15
9
  *
16
10
  * @example Static content:
17
11
  * ```html
@@ -23,42 +17,11 @@ import * as i2 from "../../../services/link-processor.service";
23
17
  * }"></val-text>
24
18
  * ```
25
19
  *
26
- * @example Reactive content:
27
- * ```html
28
- * <val-text [props]="{
29
- * contentKey: 'welcomeMessage',
30
- * contentClass: 'HomeComponent',
31
- * contentFallback: 'Welcome!',
32
- * color: 'primary',
33
- * size: 'large',
34
- * bold: true
35
- * }"></val-text>
36
- * ```
37
- *
38
- * @example Reactive content with interpolation:
39
- * ```html
40
- * <val-text [props]="{
41
- * contentKey: 'greeting',
42
- * contentClass: 'UserComponent',
43
- * contentInterpolation: { name: 'John', count: 5 },
44
- * color: 'secondary',
45
- * size: 'medium',
46
- * bold: false
47
- * }"></val-text>
48
- * ```
49
- *
50
20
  * @example With automatic link processing:
51
21
  * ```html
52
22
  * <val-text [props]="{
53
- * content: 'Visit https://example.com or go to /profile for more info',
23
+ * content: 'Visit https://example.com for more info',
54
24
  * processLinks: true,
55
- * linkConfig: {
56
- * openExternalInNewTab: true,
57
- * openInternalInNewTab: false,
58
- * linkClass: 'custom-link',
59
- * externalLinkClass: 'external',
60
- * internalLinkClass: 'internal'
61
- * },
62
25
  * color: 'primary',
63
26
  * size: 'medium'
64
27
  * }"></val-text>
@@ -67,91 +30,51 @@ import * as i2 from "../../../services/link-processor.service";
67
30
  * @example With partial bold support:
68
31
  * ```html
69
32
  * <val-text [props]="{
70
- * content: 'Hola <b>Victor</b>, cómo estás? También puedes usar <strong>strong</strong>',
33
+ * content: 'Hola <b>Victor</b>, cómo estás?',
71
34
  * allowPartialBold: true,
72
35
  * color: 'dark',
73
- * size: 'medium',
74
- * bold: false
75
- * }"></val-text>
76
- * ```
77
- *
78
- * @example Reactive content with partial bold:
79
- * ```html
80
- * <val-text [props]="{
81
- * contentKey: 'welcomeWithName',
82
- * contentClass: 'UserComponent',
83
- * contentInterpolation: { name: '<b>Juan</b>' },
84
- * allowPartialBold: true,
85
- * color: 'primary',
86
- * size: 'large',
87
- * bold: false
36
+ * size: 'medium'
88
37
  * }"></val-text>
89
38
  * ```
90
39
  *
91
- * @example Using ContentService helper:
92
- * ```typescript
93
- * // In component
94
- * content = inject(ContentService);
95
- * componentContent = this.content.forComponent('MyComponent');
96
- *
97
- * textProps = {
98
- * content: this.componentContent.getText('title'), // sync
99
- * color: 'primary',
100
- * size: 'large',
101
- * bold: true
102
- * };
103
- * // Or with reactive binding:
104
- * title$ = this.componentContent.get('title');
105
- * ```
106
- *
107
- * @input props: TextMetadata - Configuration for the text (content, styling, and reactive content options)
40
+ * @input props: TextMetadata - Configuration for the text (content, color, size, bold, etc.)
108
41
  */
109
42
  export class TextComponent {
110
- constructor(langService, linkProcessor) {
111
- this.langService = langService;
112
- this.linkProcessor = linkProcessor;
113
- this.subscription = new Subscription();
43
+ constructor() {
44
+ /**
45
+ * The content to display.
46
+ */
47
+ this.displayContent = '';
114
48
  }
115
49
  ngOnInit() {
116
50
  this.setupDisplayContent();
117
51
  }
118
- ngOnDestroy() {
119
- this.subscription.unsubscribe();
120
- }
121
52
  /**
122
- * Set up the content observable based on the props configuration.
123
- * Priority: static content > reactive content with interpolation > reactive content
53
+ * Set up the content based on the props configuration.
124
54
  */
125
55
  setupDisplayContent() {
126
56
  if (this.props.content) {
127
- // Static content takes precedence
128
57
  if (this.props.contentInterpolation) {
129
- // Static content with interpolation
130
- const interpolatedContent = interpolateStaticContent(this.props.content, this.props.contentInterpolation);
131
- this.displayContent$ = of(interpolatedContent);
58
+ this.displayContent = this.interpolateContent(this.props.content, this.props.contentInterpolation);
132
59
  }
133
60
  else {
134
- // Simple static content
135
- this.displayContent$ = of(this.props.content);
61
+ this.displayContent = this.props.content;
136
62
  }
137
63
  }
138
- else if (shouldUseReactiveContent(this.props)) {
139
- // Reactive content from language service
140
- if (this.props.contentInterpolation) {
141
- // With interpolation
142
- this.displayContent$ = this.langService.getContentWithInterpolation(this.props.contentClass, this.props.contentKey, this.props.contentInterpolation, this.props.contentFallback);
143
- }
144
- else {
145
- // Simple reactive content
146
- this.displayContent$ = this.langService.getContent(this.props.contentClass, this.props.contentKey, this.props.contentFallback);
147
- }
64
+ else if (this.props.contentFallback) {
65
+ // Backwards compatibility: use fallback if content is not provided
66
+ this.displayContent = this.props.contentFallback;
148
67
  }
149
68
  else {
150
- // Fallback to empty string if no valid content configuration
151
- console.warn('val-text: No valid content configuration provided. Use either "content" for static text or "contentKey" + "contentClass" for reactive content.');
152
- this.displayContent$ = of(this.props.contentFallback || '');
69
+ this.displayContent = '';
153
70
  }
154
71
  }
72
+ /**
73
+ * Check if content has partial bold tags.
74
+ */
75
+ hasPartialBold() {
76
+ return this.displayContent?.includes('<b>') || this.displayContent?.includes('<strong>');
77
+ }
155
78
  /**
156
79
  * Process partial bold tags in the content.
157
80
  * Converts <b> and <strong> tags to properly styled bold spans.
@@ -168,99 +91,54 @@ export class TextComponent {
168
91
  processedContent = processedContent.replace(/<strong>(.*?)<\/strong>/gi, '<span class="partial-bold">$1</span>');
169
92
  return processedContent;
170
93
  }
171
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextComponent, deps: [{ token: i1.LangService }, { token: i2.LinkProcessorService }], target: i0.ɵɵFactoryTarget.Component }); }
94
+ /**
95
+ * Interpolate placeholders in content with provided values.
96
+ * Supports {{placeholder}} format.
97
+ *
98
+ * @param content - The content with placeholders
99
+ * @param values - Object with key-value pairs to interpolate
100
+ * @returns Interpolated content
101
+ */
102
+ interpolateContent(content, values) {
103
+ return content.replace(/\{\{(\w+)\}\}/g, (match, key) => {
104
+ return values[key] !== undefined ? String(values[key]) : match;
105
+ });
106
+ }
107
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
172
108
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TextComponent, isStandalone: true, selector: "val-text", inputs: { props: "props" }, ngImport: i0, template: `
173
109
  <ion-text [color]="props.color">
174
110
  @if (props.processLinks) {
175
111
  <p
176
112
  [class]="props.size"
177
113
  [class.bold]="props.bold"
178
- [innerHTML]="displayContent$ | async | processLinks: props.linkConfig"
114
+ [innerHTML]="displayContent | processLinks: props.linkConfig"
179
115
  ></p>
180
- } @else if (
181
- (props.allowPartialBold && (displayContent$ | async)?.includes('<b>')) ||
182
- (displayContent$ | async)?.includes('<strong>')
183
- ) {
184
- <p [class]="props.size" [class.bold]="props.bold" [innerHTML]="processPartialBold(displayContent$ | async)"></p>
116
+ } @else if (props.allowPartialBold && hasPartialBold()) {
117
+ <p [class]="props.size" [class.bold]="props.bold" [innerHTML]="processPartialBold(displayContent)"></p>
185
118
  } @else {
186
- <p [class]="props.size" [class.bold]="props.bold">{{ displayContent$ | async }}</p>
119
+ <p [class]="props.size" [class.bold]="props.bold">{{ displayContent }}</p>
187
120
  }
188
121
  </ion-text>
189
- `, isInline: true, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.small{font-size:.75rem;line-height:1.25rem;font-weight:400}.small.bold{font-size:.75rem;line-height:1.25rem;font-weight:700}.medium{font-size:.875rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.medium{font-size:1rem;line-height:1.5rem}}.medium.bold{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium.bold{font-size:1rem;line-height:1.5rem}}.large{font-size:1rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.large{font-size:1.125rem;line-height:1.5rem}}.large.bold{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large.bold{font-size:1.125rem;line-height:1.5rem}}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}.xlarge.bold{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge.bold{font-size:1.5rem;line-height:2rem}}:host ::ng-deep .partial-bold{font-weight:700}\n"], dependencies: [{ kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: ProcessLinksPipe, name: "processLinks" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
122
+ `, isInline: true, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.small{font-size:.75rem;line-height:1.25rem;font-weight:400}.small.bold{font-size:.75rem;line-height:1.25rem;font-weight:700}.medium{font-size:.875rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.medium{font-size:1rem;line-height:1.5rem}}.medium.bold{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium.bold{font-size:1rem;line-height:1.5rem}}.large{font-size:1rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.large{font-size:1.125rem;line-height:1.5rem}}.large.bold{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large.bold{font-size:1.125rem;line-height:1.5rem}}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}.xlarge.bold{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge.bold{font-size:1.5rem;line-height:2rem}}:host ::ng-deep .partial-bold{font-weight:700}\n"], dependencies: [{ kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "pipe", type: ProcessLinksPipe, name: "processLinks" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
190
123
  }
191
124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextComponent, decorators: [{
192
125
  type: Component,
193
- args: [{ selector: 'val-text', standalone: true, imports: [IonText, AsyncPipe, ProcessLinksPipe], template: `
126
+ args: [{ selector: 'val-text', standalone: true, imports: [IonText, ProcessLinksPipe], template: `
194
127
  <ion-text [color]="props.color">
195
128
  @if (props.processLinks) {
196
129
  <p
197
130
  [class]="props.size"
198
131
  [class.bold]="props.bold"
199
- [innerHTML]="displayContent$ | async | processLinks: props.linkConfig"
132
+ [innerHTML]="displayContent | processLinks: props.linkConfig"
200
133
  ></p>
201
- } @else if (
202
- (props.allowPartialBold && (displayContent$ | async)?.includes('<b>')) ||
203
- (displayContent$ | async)?.includes('<strong>')
204
- ) {
205
- <p [class]="props.size" [class.bold]="props.bold" [innerHTML]="processPartialBold(displayContent$ | async)"></p>
134
+ } @else if (props.allowPartialBold && hasPartialBold()) {
135
+ <p [class]="props.size" [class.bold]="props.bold" [innerHTML]="processPartialBold(displayContent)"></p>
206
136
  } @else {
207
- <p [class]="props.size" [class.bold]="props.bold">{{ displayContent$ | async }}</p>
137
+ <p [class]="props.size" [class.bold]="props.bold">{{ displayContent }}</p>
208
138
  }
209
139
  </ion-text>
210
140
  `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.small{font-size:.75rem;line-height:1.25rem;font-weight:400}.small.bold{font-size:.75rem;line-height:1.25rem;font-weight:700}.medium{font-size:.875rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.medium{font-size:1rem;line-height:1.5rem}}.medium.bold{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium.bold{font-size:1rem;line-height:1.5rem}}.large{font-size:1rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.large{font-size:1.125rem;line-height:1.5rem}}.large.bold{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large.bold{font-size:1.125rem;line-height:1.5rem}}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}.xlarge.bold{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge.bold{font-size:1.5rem;line-height:2rem}}:host ::ng-deep .partial-bold{font-weight:700}\n"] }]
211
- }], ctorParameters: () => [{ type: i1.LangService }, { type: i2.LinkProcessorService }], propDecorators: { props: [{
141
+ }], propDecorators: { props: [{
212
142
  type: Input
213
143
  }] } });
214
- /**
215
- * Helper function to create reactive text props from content configuration.
216
- * This provides a convenient way to create val-text props with reactive content.
217
- *
218
- * @param contentConfig - Content configuration
219
- * @param styleConfig - Optional style configuration
220
- * @returns Partial TextMetadata with content properties set
221
- *
222
- * @example
223
- * ```typescript
224
- * // In component
225
- * titleProps: TextMetadata = {
226
- * ...createTextProps({
227
- * contentKey: 'title',
228
- * contentClass: 'HeaderComponent'
229
- * }, {
230
- * color: 'primary',
231
- * size: 'large',
232
- * bold: true
233
- * })
234
- * };
235
- * ```
236
- *
237
- * @example With partial bold support:
238
- * ```typescript
239
- * // In component
240
- * greetingProps: TextMetadata = {
241
- * ...createTextProps({
242
- * contentKey: 'greeting',
243
- * contentClass: 'UserComponent',
244
- * contentInterpolation: { name: '<b>Juan</b>' }
245
- * }, {
246
- * color: 'primary',
247
- * size: 'medium',
248
- * bold: false,
249
- * allowPartialBold: true
250
- * })
251
- * };
252
- * ```
253
- */
254
- export function createTextProps(contentConfig, styleConfig = {}) {
255
- return {
256
- contentKey: contentConfig.contentKey,
257
- contentClass: contentConfig.contentClass,
258
- contentFallback: contentConfig.contentFallback,
259
- contentInterpolation: contentConfig.contentInterpolation,
260
- color: styleConfig.color || 'dark',
261
- size: styleConfig.size || 'medium',
262
- bold: styleConfig.bold || false,
263
- allowPartialBold: styleConfig.allowPartialBold || false,
264
- };
265
- }
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQWMsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQTRCMUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0dHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFpQ3hCLFlBQ1UsV0FBd0IsRUFDeEIsYUFBbUM7UUFEbkMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBSnJDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUt2QyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssbUJBQW1CO1FBQ3pCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QixrQ0FBa0M7WUFDbEMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3BDLG9DQUFvQztnQkFDcEMsTUFBTSxtQkFBbUIsR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7Z0JBQzFHLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDakQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLHdCQUF3QjtnQkFDeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoRCxDQUFDO1FBQ0gsQ0FBQzthQUFNLElBQUksd0JBQXdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEQseUNBQXlDO1lBQ3pDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2dCQUNwQyxxQkFBcUI7Z0JBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsQ0FDakUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFhLEVBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVyxFQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FDM0IsQ0FBQztZQUNKLENBQUM7aUJBQU0sQ0FBQztnQkFDTiwwQkFBMEI7Z0JBQzFCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMsWUFBYSxFQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVcsRUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQzNCLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTiw2REFBNkQ7WUFDN0QsT0FBTyxDQUFDLElBQUksQ0FDVixnSkFBZ0osQ0FDakosQ0FBQztZQUNGLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlELENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsa0JBQWtCLENBQUMsT0FBc0I7UUFDdkMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUV4QixtQkFBbUI7UUFDbkIsSUFBSSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLHNDQUFzQyxDQUFDLENBQUM7UUFFbEcsd0JBQXdCO1FBQ3hCLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQywyQkFBMkIsRUFBRSxzQ0FBc0MsQ0FBQyxDQUFDO1FBRWpILE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQzsrR0F6R1UsYUFBYTttR0FBYixhQUFhLGdHQXhIZDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQlQscWlIQWxCUyxPQUFPLDJFQUFFLFNBQVMseUNBQUUsZ0JBQWdCOzs0RkF5SG5DLGFBQWE7a0JBNUh6QixTQUFTOytCQUNFLFVBQVUsY0FDUixJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFlBQ3JDOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTTttSEE0SC9DLEtBQUs7c0JBREosS0FBSzs7QUFzRlI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVDRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQzdCLGFBQWdDLEVBQ2hDLGNBQTJGLEVBQUU7SUFFN0YsT0FBTztRQUNMLFVBQVUsRUFBRSxhQUFhLENBQUMsVUFBVTtRQUNwQyxZQUFZLEVBQUUsYUFBYSxDQUFDLFlBQVk7UUFDeEMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxlQUFlO1FBQzlDLG9CQUFvQixFQUFFLGFBQWEsQ0FBQyxvQkFBb0I7UUFDeEQsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLLElBQUksTUFBTTtRQUNsQyxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksSUFBSSxRQUFRO1FBQ2xDLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxJQUFJLEtBQUs7UUFDL0IsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLGdCQUFnQixJQUFJLEtBQUs7S0FDeEQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25UZXh0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMYW5nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2xhbmctcHJvdmlkZXIvbGFuZy1wcm92aWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IExpbmtQcm9jZXNzb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbGluay1wcm9jZXNzb3Iuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9jZXNzTGlua3NQaXBlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3BpcGVzL3Byb2Nlc3MtbGlua3MucGlwZSc7XG5pbXBvcnQgeyBpbnRlcnBvbGF0ZVN0YXRpY0NvbnRlbnQsIHNob3VsZFVzZVJlYWN0aXZlQ29udGVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC91dGlscy9zaW1wbGUtY29udGVudCc7XG5pbXBvcnQgeyBUZXh0Q29udGVudENvbmZpZywgVGV4dE1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC10ZXh0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0lvblRleHQsIEFzeW5jUGlwZSwgUHJvY2Vzc0xpbmtzUGlwZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi10ZXh0IFtjb2xvcl09XCJwcm9wcy5jb2xvclwiPlxuICAgICAgQGlmIChwcm9wcy5wcm9jZXNzTGlua3MpIHtcbiAgICAgICAgPHBcbiAgICAgICAgICBbY2xhc3NdPVwicHJvcHMuc2l6ZVwiXG4gICAgICAgICAgW2NsYXNzLmJvbGRdPVwicHJvcHMuYm9sZFwiXG4gICAgICAgICAgW2lubmVySFRNTF09XCJkaXNwbGF5Q29udGVudCQgfCBhc3luYyB8IHByb2Nlc3NMaW5rczogcHJvcHMubGlua0NvbmZpZ1wiXG4gICAgICAgID48L3A+XG4gICAgICB9IEBlbHNlIGlmIChcbiAgICAgICAgKHByb3BzLmFsbG93UGFydGlhbEJvbGQgJiYgKGRpc3BsYXlDb250ZW50JCB8IGFzeW5jKT8uaW5jbHVkZXMoJzxiPicpKSB8fFxuICAgICAgICAoZGlzcGxheUNvbnRlbnQkIHwgYXN5bmMpPy5pbmNsdWRlcygnPHN0cm9uZz4nKVxuICAgICAgKSB7XG4gICAgICAgIDxwIFtjbGFzc109XCJwcm9wcy5zaXplXCIgW2NsYXNzLmJvbGRdPVwicHJvcHMuYm9sZFwiIFtpbm5lckhUTUxdPVwicHJvY2Vzc1BhcnRpYWxCb2xkKGRpc3BsYXlDb250ZW50JCB8IGFzeW5jKVwiPjwvcD5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8cCBbY2xhc3NdPVwicHJvcHMuc2l6ZVwiIFtjbGFzcy5ib2xkXT1cInByb3BzLmJvbGRcIj57eyBkaXNwbGF5Q29udGVudCQgfCBhc3luYyB9fTwvcD5cbiAgICAgIH1cbiAgICA8L2lvbi10ZXh0PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi90ZXh0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbi8qKlxuICogdmFsLXRleHRcbiAqXG4gKiBFbmhhbmNlZCB0ZXh0IGNvbXBvbmVudCB0aGF0IHN1cHBvcnRzIGJvdGggc3RhdGljIGNvbnRlbnQgYW5kIHJlYWN0aXZlIGNvbnRlbnQgZnJvbSB0aGUgbGFuZ3VhZ2Ugc2VydmljZS5cbiAqIFRoZSBjb21wb25lbnQgYXV0b21hdGljYWxseSB1cGRhdGVzIHdoZW4gdGhlIGxhbmd1YWdlIGNoYW5nZXMgaWYgdXNpbmcgcmVhY3RpdmUgY29udGVudC5cbiAqXG4gKiBAZXhhbXBsZSBTdGF0aWMgY29udGVudDpcbiAqIGBgYGh0bWxcbiAqIDx2YWwtdGV4dCBbcHJvcHNdPVwie1xuICogICBjb250ZW50OiAnU3RhdGljIHRleHQnLFxuICogICBjb2xvcjogJ3ByaW1hcnknLFxuICogICBzaXplOiAnbWVkaXVtJyxcbiAqICAgYm9sZDogZmFsc2VcbiAqIH1cIj48L3ZhbC10ZXh0PlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgUmVhY3RpdmUgY29udGVudDpcbiAqIGBgYGh0bWxcbiAqIDx2YWwtdGV4dCBbcHJvcHNdPVwie1xuICogICBjb250ZW50S2V5OiAnd2VsY29tZU1lc3NhZ2UnLFxuICogICBjb250ZW50Q2xhc3M6ICdIb21lQ29tcG9uZW50JyxcbiAqICAgY29udGVudEZhbGxiYWNrOiAnV2VsY29tZSEnLFxuICogICBjb2xvcjogJ3ByaW1hcnknLFxuICogICBzaXplOiAnbGFyZ2UnLFxuICogICBib2xkOiB0cnVlXG4gKiB9XCI+PC92YWwtdGV4dD5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFJlYWN0aXZlIGNvbnRlbnQgd2l0aCBpbnRlcnBvbGF0aW9uOlxuICogYGBgaHRtbFxuICogPHZhbC10ZXh0IFtwcm9wc109XCJ7XG4gKiAgIGNvbnRlbnRLZXk6ICdncmVldGluZycsXG4gKiAgIGNvbnRlbnRDbGFzczogJ1VzZXJDb21wb25lbnQnLFxuICogICBjb250ZW50SW50ZXJwb2xhdGlvbjogeyBuYW1lOiAnSm9obicsIGNvdW50OiA1IH0sXG4gKiAgIGNvbG9yOiAnc2Vjb25kYXJ5JyxcbiAqICAgc2l6ZTogJ21lZGl1bScsXG4gKiAgIGJvbGQ6IGZhbHNlXG4gKiB9XCI+PC92YWwtdGV4dD5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFdpdGggYXV0b21hdGljIGxpbmsgcHJvY2Vzc2luZzpcbiAqIGBgYGh0bWxcbiAqIDx2YWwtdGV4dCBbcHJvcHNdPVwie1xuICogICBjb250ZW50OiAnVmlzaXQgaHR0cHM6Ly9leGFtcGxlLmNvbSBvciBnbyB0byAvcHJvZmlsZSBmb3IgbW9yZSBpbmZvJyxcbiAqICAgcHJvY2Vzc0xpbmtzOiB0cnVlLFxuICogICBsaW5rQ29uZmlnOiB7XG4gKiAgICAgb3BlbkV4dGVybmFsSW5OZXdUYWI6IHRydWUsXG4gKiAgICAgb3BlbkludGVybmFsSW5OZXdUYWI6IGZhbHNlLFxuICogICAgIGxpbmtDbGFzczogJ2N1c3RvbS1saW5rJyxcbiAqICAgICBleHRlcm5hbExpbmtDbGFzczogJ2V4dGVybmFsJyxcbiAqICAgICBpbnRlcm5hbExpbmtDbGFzczogJ2ludGVybmFsJ1xuICogICB9LFxuICogICBjb2xvcjogJ3ByaW1hcnknLFxuICogICBzaXplOiAnbWVkaXVtJ1xuICogfVwiPjwvdmFsLXRleHQ+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHBhcnRpYWwgYm9sZCBzdXBwb3J0OlxuICogYGBgaHRtbFxuICogPHZhbC10ZXh0IFtwcm9wc109XCJ7XG4gKiAgIGNvbnRlbnQ6ICdIb2xhIDxiPlZpY3RvcjwvYj4sIGPDs21vIGVzdMOhcz8gVGFtYmnDqW4gcHVlZGVzIHVzYXIgPHN0cm9uZz5zdHJvbmc8L3N0cm9uZz4nLFxuICogICBhbGxvd1BhcnRpYWxCb2xkOiB0cnVlLFxuICogICBjb2xvcjogJ2RhcmsnLFxuICogICBzaXplOiAnbWVkaXVtJyxcbiAqICAgYm9sZDogZmFsc2VcbiAqIH1cIj48L3ZhbC10ZXh0PlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgUmVhY3RpdmUgY29udGVudCB3aXRoIHBhcnRpYWwgYm9sZDpcbiAqIGBgYGh0bWxcbiAqIDx2YWwtdGV4dCBbcHJvcHNdPVwie1xuICogICBjb250ZW50S2V5OiAnd2VsY29tZVdpdGhOYW1lJyxcbiAqICAgY29udGVudENsYXNzOiAnVXNlckNvbXBvbmVudCcsXG4gKiAgIGNvbnRlbnRJbnRlcnBvbGF0aW9uOiB7IG5hbWU6ICc8Yj5KdWFuPC9iPicgfSxcbiAqICAgYWxsb3dQYXJ0aWFsQm9sZDogdHJ1ZSxcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgc2l6ZTogJ2xhcmdlJyxcbiAqICAgYm9sZDogZmFsc2VcbiAqIH1cIj48L3ZhbC10ZXh0PlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgVXNpbmcgQ29udGVudFNlcnZpY2UgaGVscGVyOlxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gSW4gY29tcG9uZW50XG4gKiBjb250ZW50ID0gaW5qZWN0KENvbnRlbnRTZXJ2aWNlKTtcbiAqIGNvbXBvbmVudENvbnRlbnQgPSB0aGlzLmNvbnRlbnQuZm9yQ29tcG9uZW50KCdNeUNvbXBvbmVudCcpO1xuICpcbiAqIHRleHRQcm9wcyA9IHtcbiAqICAgY29udGVudDogdGhpcy5jb21wb25lbnRDb250ZW50LmdldFRleHQoJ3RpdGxlJyksIC8vIHN5bmNcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgc2l6ZTogJ2xhcmdlJyxcbiAqICAgYm9sZDogdHJ1ZVxuICogfTtcbiAqIC8vIE9yIHdpdGggcmVhY3RpdmUgYmluZGluZzpcbiAqIHRpdGxlJCA9IHRoaXMuY29tcG9uZW50Q29udGVudC5nZXQoJ3RpdGxlJyk7XG4gKiBgYGBcbiAqXG4gKiBAaW5wdXQgcHJvcHM6IFRleHRNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSB0ZXh0IChjb250ZW50LCBzdHlsaW5nLCBhbmQgcmVhY3RpdmUgY29udGVudCBvcHRpb25zKVxuICovXG5leHBvcnQgY2xhc3MgVGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFRleHQgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAqIEB0eXBlIHtUZXh0TWV0YWRhdGF9XG4gICAqXG4gICAqIEZvciBzdGF0aWMgY29udGVudDpcbiAgICogQHByb3BlcnR5IGNvbnRlbnQgLSBUaGUgdGV4dCB0byBkaXNwbGF5ICh0YWtlcyBwcmVjZWRlbmNlIG92ZXIgcmVhY3RpdmUgY29udGVudClcbiAgICpcbiAgICogRm9yIHJlYWN0aXZlIGNvbnRlbnQ6XG4gICAqIEBwcm9wZXJ0eSBjb250ZW50S2V5IC0gVGhlIGNvbnRlbnQga2V5IHRvIHJldHJpZXZlIGZyb20gbGFuZ3VhZ2Ugc2VydmljZVxuICAgKiBAcHJvcGVydHkgY29udGVudENsYXNzIC0gVGhlIGNvbXBvbmVudCBjbGFzcyBuYW1lIGZvciBjb250ZW50IGxvb2t1cFxuICAgKiBAcHJvcGVydHkgY29udGVudEZhbGxiYWNrIC0gT3B0aW9uYWwgZmFsbGJhY2sgdGV4dCBpZiBjb250ZW50IGlzIG5vdCBmb3VuZFxuICAgKiBAcHJvcGVydHkgY29udGVudEludGVycG9sYXRpb24gLSBPcHRpb25hbCB2YWx1ZXMgdG8gaW50ZXJwb2xhdGUgaW50byBjb250ZW50XG4gICAqXG4gICAqIEZvciBzdHlsaW5nOlxuICAgKiBAcHJvcGVydHkgY29sb3IgLSBUaGUgdGV4dCBjb2xvciAoSW9uaWMgY29sb3Igc3RyaW5nKVxuICAgKiBAcHJvcGVydHkgc2l6ZSAtIFRoZSB0ZXh0IHNpemUgKCdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAneGxhcmdlJylcbiAgICogQHByb3BlcnR5IGJvbGQgLSBXaGV0aGVyIHRoZSB0ZXh0IGlzIGJvbGRcbiAgICogQHByb3BlcnR5IHByb2Nlc3NMaW5rcyAtIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSBwcm9jZXNzIGFuZCBjb252ZXJ0IGxpbmtzIGluIHRleHQgKGRlZmF1bHQ6IGZhbHNlKVxuICAgKiBAcHJvcGVydHkgbGlua0NvbmZpZyAtIENvbmZpZ3VyYXRpb24gZm9yIGxpbmsgcHJvY2Vzc2luZyAoY29sb3JzLCB0YXJnZXQgYmVoYXZpb3IsIGV0Yy4pXG4gICAqIEBwcm9wZXJ0eSBhbGxvd1BhcnRpYWxCb2xkIC0gV2hldGhlciB0byBhbGxvdyBwYXJ0aWFsIGJvbGQgdXNpbmcgPGI+IG9yIDxzdHJvbmc+IHRhZ3MgKGRlZmF1bHQ6IGZhbHNlKVxuICAgKi9cbiAgQElucHV0KClcbiAgcHJvcHM6IFRleHRNZXRhZGF0YTtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSB0aGF0IHByb3ZpZGVzIHRoZSBjb250ZW50IHRvIGRpc3BsYXkuXG4gICAqIFRoaXMgd2lsbCBiZSBlaXRoZXIgc3RhdGljIGNvbnRlbnQgb3IgcmVhY3RpdmUgY29udGVudCBmcm9tIHRoZSBsYW5ndWFnZSBzZXJ2aWNlLlxuICAgKi9cbiAgZGlzcGxheUNvbnRlbnQkOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsYW5nU2VydmljZTogTGFuZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBsaW5rUHJvY2Vzc29yOiBMaW5rUHJvY2Vzc29yU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXR1cERpc3BsYXlDb250ZW50KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB1cCB0aGUgY29udGVudCBvYnNlcnZhYmxlIGJhc2VkIG9uIHRoZSBwcm9wcyBjb25maWd1cmF0aW9uLlxuICAgKiBQcmlvcml0eTogc3RhdGljIGNvbnRlbnQgPiByZWFjdGl2ZSBjb250ZW50IHdpdGggaW50ZXJwb2xhdGlvbiA+IHJlYWN0aXZlIGNvbnRlbnRcbiAgICovXG4gIHByaXZhdGUgc2V0dXBEaXNwbGF5Q29udGVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy5jb250ZW50KSB7XG4gICAgICAvLyBTdGF0aWMgY29udGVudCB0YWtlcyBwcmVjZWRlbmNlXG4gICAgICBpZiAodGhpcy5wcm9wcy5jb250ZW50SW50ZXJwb2xhdGlvbikge1xuICAgICAgICAvLyBTdGF0aWMgY29udGVudCB3aXRoIGludGVycG9sYXRpb25cbiAgICAgICAgY29uc3QgaW50ZXJwb2xhdGVkQ29udGVudCA9IGludGVycG9sYXRlU3RhdGljQ29udGVudCh0aGlzLnByb3BzLmNvbnRlbnQsIHRoaXMucHJvcHMuY29udGVudEludGVycG9sYXRpb24pO1xuICAgICAgICB0aGlzLmRpc3BsYXlDb250ZW50JCA9IG9mKGludGVycG9sYXRlZENvbnRlbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2ltcGxlIHN0YXRpYyBjb250ZW50XG4gICAgICAgIHRoaXMuZGlzcGxheUNvbnRlbnQkID0gb2YodGhpcy5wcm9wcy5jb250ZW50KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHNob3VsZFVzZVJlYWN0aXZlQ29udGVudCh0aGlzLnByb3BzKSkge1xuICAgICAgLy8gUmVhY3RpdmUgY29udGVudCBmcm9tIGxhbmd1YWdlIHNlcnZpY2VcbiAgICAgIGlmICh0aGlzLnByb3BzLmNvbnRlbnRJbnRlcnBvbGF0aW9uKSB7XG4gICAgICAgIC8vIFdpdGggaW50ZXJwb2xhdGlvblxuICAgICAgICB0aGlzLmRpc3BsYXlDb250ZW50JCA9IHRoaXMubGFuZ1NlcnZpY2UuZ2V0Q29udGVudFdpdGhJbnRlcnBvbGF0aW9uKFxuICAgICAgICAgIHRoaXMucHJvcHMuY29udGVudENsYXNzISxcbiAgICAgICAgICB0aGlzLnByb3BzLmNvbnRlbnRLZXkhLFxuICAgICAgICAgIHRoaXMucHJvcHMuY29udGVudEludGVycG9sYXRpb24sXG4gICAgICAgICAgdGhpcy5wcm9wcy5jb250ZW50RmFsbGJhY2tcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFNpbXBsZSByZWFjdGl2ZSBjb250ZW50XG4gICAgICAgIHRoaXMuZGlzcGxheUNvbnRlbnQkID0gdGhpcy5sYW5nU2VydmljZS5nZXRDb250ZW50KFxuICAgICAgICAgIHRoaXMucHJvcHMuY29udGVudENsYXNzISxcbiAgICAgICAgICB0aGlzLnByb3BzLmNvbnRlbnRLZXkhLFxuICAgICAgICAgIHRoaXMucHJvcHMuY29udGVudEZhbGxiYWNrXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZhbGxiYWNrIHRvIGVtcHR5IHN0cmluZyBpZiBubyB2YWxpZCBjb250ZW50IGNvbmZpZ3VyYXRpb25cbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ3ZhbC10ZXh0OiBObyB2YWxpZCBjb250ZW50IGNvbmZpZ3VyYXRpb24gcHJvdmlkZWQuIFVzZSBlaXRoZXIgXCJjb250ZW50XCIgZm9yIHN0YXRpYyB0ZXh0IG9yIFwiY29udGVudEtleVwiICsgXCJjb250ZW50Q2xhc3NcIiBmb3IgcmVhY3RpdmUgY29udGVudC4nXG4gICAgICApO1xuICAgICAgdGhpcy5kaXNwbGF5Q29udGVudCQgPSBvZih0aGlzLnByb3BzLmNvbnRlbnRGYWxsYmFjayB8fCAnJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFByb2Nlc3MgcGFydGlhbCBib2xkIHRhZ3MgaW4gdGhlIGNvbnRlbnQuXG4gICAqIENvbnZlcnRzIDxiPiBhbmQgPHN0cm9uZz4gdGFncyB0byBwcm9wZXJseSBzdHlsZWQgYm9sZCBzcGFucy5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRlbnQgLSBUaGUgY29udGVudCBzdHJpbmcgdG8gcHJvY2Vzc1xuICAgKiBAcmV0dXJucyBQcm9jZXNzZWQgY29udGVudCB3aXRoIGJvbGQgc3R5bGluZ1xuICAgKi9cbiAgcHJvY2Vzc1BhcnRpYWxCb2xkKGNvbnRlbnQ6IHN0cmluZyB8IG51bGwpOiBzdHJpbmcge1xuICAgIGlmICghY29udGVudCkgcmV0dXJuICcnO1xuXG4gICAgLy8gUHJvY2VzcyA8Yj4gdGFnc1xuICAgIGxldCBwcm9jZXNzZWRDb250ZW50ID0gY29udGVudC5yZXBsYWNlKC88Yj4oLio/KTxcXC9iPi9naSwgJzxzcGFuIGNsYXNzPVwicGFydGlhbC1ib2xkXCI+JDE8L3NwYW4+Jyk7XG5cbiAgICAvLyBQcm9jZXNzIDxzdHJvbmc+IHRhZ3NcbiAgICBwcm9jZXNzZWRDb250ZW50ID0gcHJvY2Vzc2VkQ29udGVudC5yZXBsYWNlKC88c3Ryb25nPiguKj8pPFxcL3N0cm9uZz4vZ2ksICc8c3BhbiBjbGFzcz1cInBhcnRpYWwtYm9sZFwiPiQxPC9zcGFuPicpO1xuXG4gICAgcmV0dXJuIHByb2Nlc3NlZENvbnRlbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gY3JlYXRlIHJlYWN0aXZlIHRleHQgcHJvcHMgZnJvbSBjb250ZW50IGNvbmZpZ3VyYXRpb24uXG4gKiBUaGlzIHByb3ZpZGVzIGEgY29udmVuaWVudCB3YXkgdG8gY3JlYXRlIHZhbC10ZXh0IHByb3BzIHdpdGggcmVhY3RpdmUgY29udGVudC5cbiAqXG4gKiBAcGFyYW0gY29udGVudENvbmZpZyAtIENvbnRlbnQgY29uZmlndXJhdGlvblxuICogQHBhcmFtIHN0eWxlQ29uZmlnIC0gT3B0aW9uYWwgc3R5bGUgY29uZmlndXJhdGlvblxuICogQHJldHVybnMgUGFydGlhbCBUZXh0TWV0YWRhdGEgd2l0aCBjb250ZW50IHByb3BlcnRpZXMgc2V0XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEluIGNvbXBvbmVudFxuICogdGl0bGVQcm9wczogVGV4dE1ldGFkYXRhID0ge1xuICogICAuLi5jcmVhdGVUZXh0UHJvcHMoe1xuICogICAgIGNvbnRlbnRLZXk6ICd0aXRsZScsXG4gKiAgICAgY29udGVudENsYXNzOiAnSGVhZGVyQ29tcG9uZW50J1xuICogICB9LCB7XG4gKiAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgICBzaXplOiAnbGFyZ2UnLFxuICogICAgIGJvbGQ6IHRydWVcbiAqICAgfSlcbiAqIH07XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHBhcnRpYWwgYm9sZCBzdXBwb3J0OlxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gSW4gY29tcG9uZW50XG4gKiBncmVldGluZ1Byb3BzOiBUZXh0TWV0YWRhdGEgPSB7XG4gKiAgIC4uLmNyZWF0ZVRleHRQcm9wcyh7XG4gKiAgICAgY29udGVudEtleTogJ2dyZWV0aW5nJyxcbiAqICAgICBjb250ZW50Q2xhc3M6ICdVc2VyQ29tcG9uZW50JyxcbiAqICAgICBjb250ZW50SW50ZXJwb2xhdGlvbjogeyBuYW1lOiAnPGI+SnVhbjwvYj4nIH1cbiAqICAgfSwge1xuICogICAgIGNvbG9yOiAncHJpbWFyeScsXG4gKiAgICAgc2l6ZTogJ21lZGl1bScsXG4gKiAgICAgYm9sZDogZmFsc2UsXG4gKiAgICAgYWxsb3dQYXJ0aWFsQm9sZDogdHJ1ZVxuICogICB9KVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVGV4dFByb3BzKFxuICBjb250ZW50Q29uZmlnOiBUZXh0Q29udGVudENvbmZpZyxcbiAgc3R5bGVDb25maWc6IFBhcnRpYWw8UGljazxUZXh0TWV0YWRhdGEsICdjb2xvcicgfCAnc2l6ZScgfCAnYm9sZCcgfCAnYWxsb3dQYXJ0aWFsQm9sZCc+PiA9IHt9XG4pOiBQYXJ0aWFsPFRleHRNZXRhZGF0YT4ge1xuICByZXR1cm4ge1xuICAgIGNvbnRlbnRLZXk6IGNvbnRlbnRDb25maWcuY29udGVudEtleSxcbiAgICBjb250ZW50Q2xhc3M6IGNvbnRlbnRDb25maWcuY29udGVudENsYXNzLFxuICAgIGNvbnRlbnRGYWxsYmFjazogY29udGVudENvbmZpZy5jb250ZW50RmFsbGJhY2ssXG4gICAgY29udGVudEludGVycG9sYXRpb246IGNvbnRlbnRDb25maWcuY29udGVudEludGVycG9sYXRpb24sXG4gICAgY29sb3I6IHN0eWxlQ29uZmlnLmNvbG9yIHx8ICdkYXJrJyxcbiAgICBzaXplOiBzdHlsZUNvbmZpZy5zaXplIHx8ICdtZWRpdW0nLFxuICAgIGJvbGQ6IHN0eWxlQ29uZmlnLmJvbGQgfHwgZmFsc2UsXG4gICAgYWxsb3dQYXJ0aWFsQm9sZDogc3R5bGVDb25maWcuYWxsb3dQYXJ0aWFsQm9sZCB8fCBmYWxzZSxcbiAgfTtcbn1cbiJdfQ==
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBeUI1RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0NHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUEzRDFCO1FBMEVFOztXQUVHO1FBQ0gsbUJBQWMsR0FBVyxFQUFFLENBQUM7S0ErRDdCO0lBN0RDLFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxtQkFBbUI7UUFDekIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2dCQUNwQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDckcsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDM0MsQ0FBQztRQUNILENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdEMsbUVBQW1FO1lBQ25FLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7UUFDbkQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGtCQUFrQixDQUFDLE9BQXNCO1FBQ3ZDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFeEIsbUJBQW1CO1FBQ25CLElBQUksZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxzQ0FBc0MsQ0FBQyxDQUFDO1FBRWxHLHdCQUF3QjtRQUN4QixnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLEVBQUUsc0NBQXNDLENBQUMsQ0FBQztRQUVqSCxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ssa0JBQWtCLENBQUMsT0FBZSxFQUFFLE1BQTJCO1FBQ3JFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUN0RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FoRlUsYUFBYTttR0FBYixhQUFhLGdHQXZEZDs7Ozs7Ozs7Ozs7Ozs7R0FjVCxxaUhBZlMsT0FBTywyRUFBRSxnQkFBZ0I7OzRGQXdEeEIsYUFBYTtrQkEzRHpCLFNBQVM7K0JBQ0UsVUFBVSxjQUNSLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxZQUMxQjs7Ozs7Ozs7Ozs7Ozs7R0FjVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTTs4QkFvRC9DLEtBQUs7c0JBREosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvblRleHQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IFByb2Nlc3NMaW5rc1BpcGUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvcGlwZXMvcHJvY2Vzcy1saW5rcy5waXBlJztcbmltcG9ydCB7IFRleHRNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtdGV4dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJb25UZXh0LCBQcm9jZXNzTGlua3NQaXBlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLXRleHQgW2NvbG9yXT1cInByb3BzLmNvbG9yXCI+XG4gICAgICBAaWYgKHByb3BzLnByb2Nlc3NMaW5rcykge1xuICAgICAgICA8cFxuICAgICAgICAgIFtjbGFzc109XCJwcm9wcy5zaXplXCJcbiAgICAgICAgICBbY2xhc3MuYm9sZF09XCJwcm9wcy5ib2xkXCJcbiAgICAgICAgICBbaW5uZXJIVE1MXT1cImRpc3BsYXlDb250ZW50IHwgcHJvY2Vzc0xpbmtzOiBwcm9wcy5saW5rQ29uZmlnXCJcbiAgICAgICAgPjwvcD5cbiAgICAgIH0gQGVsc2UgaWYgKHByb3BzLmFsbG93UGFydGlhbEJvbGQgJiYgaGFzUGFydGlhbEJvbGQoKSkge1xuICAgICAgICA8cCBbY2xhc3NdPVwicHJvcHMuc2l6ZVwiIFtjbGFzcy5ib2xkXT1cInByb3BzLmJvbGRcIiBbaW5uZXJIVE1MXT1cInByb2Nlc3NQYXJ0aWFsQm9sZChkaXNwbGF5Q29udGVudClcIj48L3A+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHAgW2NsYXNzXT1cInByb3BzLnNpemVcIiBbY2xhc3MuYm9sZF09XCJwcm9wcy5ib2xkXCI+e3sgZGlzcGxheUNvbnRlbnQgfX08L3A+XG4gICAgICB9XG4gICAgPC9pb24tdGV4dD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG4vKipcbiAqIHZhbC10ZXh0XG4gKlxuICogVGV4dCBjb21wb25lbnQgdGhhdCBzdXBwb3J0cyBzdGF0aWMgY29udGVudCB3aXRoIG9wdGlvbmFsIGludGVycG9sYXRpb24uXG4gKlxuICogQGV4YW1wbGUgU3RhdGljIGNvbnRlbnQ6XG4gKiBgYGBodG1sXG4gKiA8dmFsLXRleHQgW3Byb3BzXT1cIntcbiAqICAgY29udGVudDogJ1N0YXRpYyB0ZXh0JyxcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgc2l6ZTogJ21lZGl1bScsXG4gKiAgIGJvbGQ6IGZhbHNlXG4gKiB9XCI+PC92YWwtdGV4dD5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFdpdGggYXV0b21hdGljIGxpbmsgcHJvY2Vzc2luZzpcbiAqIGBgYGh0bWxcbiAqIDx2YWwtdGV4dCBbcHJvcHNdPVwie1xuICogICBjb250ZW50OiAnVmlzaXQgaHR0cHM6Ly9leGFtcGxlLmNvbSBmb3IgbW9yZSBpbmZvJyxcbiAqICAgcHJvY2Vzc0xpbmtzOiB0cnVlLFxuICogICBjb2xvcjogJ3ByaW1hcnknLFxuICogICBzaXplOiAnbWVkaXVtJ1xuICogfVwiPjwvdmFsLXRleHQ+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHBhcnRpYWwgYm9sZCBzdXBwb3J0OlxuICogYGBgaHRtbFxuICogPHZhbC10ZXh0IFtwcm9wc109XCJ7XG4gKiAgIGNvbnRlbnQ6ICdIb2xhIDxiPlZpY3RvcjwvYj4sIGPDs21vIGVzdMOhcz8nLFxuICogICBhbGxvd1BhcnRpYWxCb2xkOiB0cnVlLFxuICogICBjb2xvcjogJ2RhcmsnLFxuICogICBzaXplOiAnbWVkaXVtJ1xuICogfVwiPjwvdmFsLXRleHQ+XG4gKiBgYGBcbiAqXG4gKiBAaW5wdXQgcHJvcHM6IFRleHRNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSB0ZXh0IChjb250ZW50LCBjb2xvciwgc2l6ZSwgYm9sZCwgZXRjLilcbiAqL1xuZXhwb3J0IGNsYXNzIFRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogVGV4dCBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICogQHR5cGUge1RleHRNZXRhZGF0YX1cbiAgICogQHByb3BlcnR5IGNvbnRlbnQgLSBUaGUgdGV4dCB0byBkaXNwbGF5XG4gICAqIEBwcm9wZXJ0eSBjb2xvciAtIFRoZSB0ZXh0IGNvbG9yIChJb25pYyBjb2xvciBzdHJpbmcpXG4gICAqIEBwcm9wZXJ0eSBzaXplIC0gVGhlIHRleHQgc2l6ZSAoJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8ICd4bGFyZ2UnKVxuICAgKiBAcHJvcGVydHkgYm9sZCAtIFdoZXRoZXIgdGhlIHRleHQgaXMgYm9sZFxuICAgKiBAcHJvcGVydHkgcHJvY2Vzc0xpbmtzIC0gV2hldGhlciB0byBhdXRvbWF0aWNhbGx5IHByb2Nlc3MgYW5kIGNvbnZlcnQgbGlua3MgaW4gdGV4dCAoZGVmYXVsdDogZmFsc2UpXG4gICAqIEBwcm9wZXJ0eSBsaW5rQ29uZmlnIC0gQ29uZmlndXJhdGlvbiBmb3IgbGluayBwcm9jZXNzaW5nIChjb2xvcnMsIHRhcmdldCBiZWhhdmlvciwgZXRjLilcbiAgICogQHByb3BlcnR5IGFsbG93UGFydGlhbEJvbGQgLSBXaGV0aGVyIHRvIGFsbG93IHBhcnRpYWwgYm9sZCB1c2luZyA8Yj4gb3IgPHN0cm9uZz4gdGFncyAoZGVmYXVsdDogZmFsc2UpXG4gICAqL1xuICBASW5wdXQoKVxuICBwcm9wczogVGV4dE1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGVudCB0byBkaXNwbGF5LlxuICAgKi9cbiAgZGlzcGxheUNvbnRlbnQ6IHN0cmluZyA9ICcnO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0dXBEaXNwbGF5Q29udGVudCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB1cCB0aGUgY29udGVudCBiYXNlZCBvbiB0aGUgcHJvcHMgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHByaXZhdGUgc2V0dXBEaXNwbGF5Q29udGVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy5jb250ZW50KSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5jb250ZW50SW50ZXJwb2xhdGlvbikge1xuICAgICAgICB0aGlzLmRpc3BsYXlDb250ZW50ID0gdGhpcy5pbnRlcnBvbGF0ZUNvbnRlbnQodGhpcy5wcm9wcy5jb250ZW50LCB0aGlzLnByb3BzLmNvbnRlbnRJbnRlcnBvbGF0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGlzcGxheUNvbnRlbnQgPSB0aGlzLnByb3BzLmNvbnRlbnQ7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb3BzLmNvbnRlbnRGYWxsYmFjaykge1xuICAgICAgLy8gQmFja3dhcmRzIGNvbXBhdGliaWxpdHk6IHVzZSBmYWxsYmFjayBpZiBjb250ZW50IGlzIG5vdCBwcm92aWRlZFxuICAgICAgdGhpcy5kaXNwbGF5Q29udGVudCA9IHRoaXMucHJvcHMuY29udGVudEZhbGxiYWNrO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRpc3BsYXlDb250ZW50ID0gJyc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGNvbnRlbnQgaGFzIHBhcnRpYWwgYm9sZCB0YWdzLlxuICAgKi9cbiAgaGFzUGFydGlhbEJvbGQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheUNvbnRlbnQ/LmluY2x1ZGVzKCc8Yj4nKSB8fCB0aGlzLmRpc3BsYXlDb250ZW50Py5pbmNsdWRlcygnPHN0cm9uZz4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIHBhcnRpYWwgYm9sZCB0YWdzIGluIHRoZSBjb250ZW50LlxuICAgKiBDb252ZXJ0cyA8Yj4gYW5kIDxzdHJvbmc+IHRhZ3MgdG8gcHJvcGVybHkgc3R5bGVkIGJvbGQgc3BhbnMuXG4gICAqXG4gICAqIEBwYXJhbSBjb250ZW50IC0gVGhlIGNvbnRlbnQgc3RyaW5nIHRvIHByb2Nlc3NcbiAgICogQHJldHVybnMgUHJvY2Vzc2VkIGNvbnRlbnQgd2l0aCBib2xkIHN0eWxpbmdcbiAgICovXG4gIHByb2Nlc3NQYXJ0aWFsQm9sZChjb250ZW50OiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcbiAgICBpZiAoIWNvbnRlbnQpIHJldHVybiAnJztcblxuICAgIC8vIFByb2Nlc3MgPGI+IHRhZ3NcbiAgICBsZXQgcHJvY2Vzc2VkQ29udGVudCA9IGNvbnRlbnQucmVwbGFjZSgvPGI+KC4qPyk8XFwvYj4vZ2ksICc8c3BhbiBjbGFzcz1cInBhcnRpYWwtYm9sZFwiPiQxPC9zcGFuPicpO1xuXG4gICAgLy8gUHJvY2VzcyA8c3Ryb25nPiB0YWdzXG4gICAgcHJvY2Vzc2VkQ29udGVudCA9IHByb2Nlc3NlZENvbnRlbnQucmVwbGFjZSgvPHN0cm9uZz4oLio/KTxcXC9zdHJvbmc+L2dpLCAnPHNwYW4gY2xhc3M9XCJwYXJ0aWFsLWJvbGRcIj4kMTwvc3Bhbj4nKTtcblxuICAgIHJldHVybiBwcm9jZXNzZWRDb250ZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEludGVycG9sYXRlIHBsYWNlaG9sZGVycyBpbiBjb250ZW50IHdpdGggcHJvdmlkZWQgdmFsdWVzLlxuICAgKiBTdXBwb3J0cyB7e3BsYWNlaG9sZGVyfX0gZm9ybWF0LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGVudCAtIFRoZSBjb250ZW50IHdpdGggcGxhY2Vob2xkZXJzXG4gICAqIEBwYXJhbSB2YWx1ZXMgLSBPYmplY3Qgd2l0aCBrZXktdmFsdWUgcGFpcnMgdG8gaW50ZXJwb2xhdGVcbiAgICogQHJldHVybnMgSW50ZXJwb2xhdGVkIGNvbnRlbnRcbiAgICovXG4gIHByaXZhdGUgaW50ZXJwb2xhdGVDb250ZW50KGNvbnRlbnQ6IHN0cmluZywgdmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogc3RyaW5nIHtcbiAgICByZXR1cm4gY29udGVudC5yZXBsYWNlKC9cXHtcXHsoXFx3KylcXH1cXH0vZywgKG1hdGNoLCBrZXkpID0+IHtcbiAgICAgIHJldHVybiB2YWx1ZXNba2V5XSAhPT0gdW5kZWZpbmVkID8gU3RyaW5nKHZhbHVlc1trZXldKSA6IG1hdGNoO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,110 +1,68 @@
1
- import { AsyncPipe, CommonModule } from '@angular/common';
2
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, inject, } from '@angular/core';
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
3
3
  import { IonText } from '@ionic/angular/standalone';
4
- import { of } from 'rxjs';
5
- import { LangService } from '../../../services/lang-provider/lang-provider.service';
6
- import { extractContentConfig, shouldUseReactiveContent } from '../../../shared/utils/simple-content';
7
4
  import * as i0 from "@angular/core";
8
5
  import * as i1 from "@angular/common";
9
6
  /**
10
7
  * val-title
11
8
  *
12
9
  * A styled title or heading, with options for size, color, and boldness.
13
- * Supports both static content and reactive content from the language service.
14
10
  *
15
- * @example Static content:
16
- * ```html
11
+ * @example
17
12
  * <val-title [props]="{ content: 'My Title', size: 'large', color: 'primary', bold: true }"></val-title>
18
- * ```
19
- *
20
- * @example Reactive content:
21
- * ```html
22
- * <val-title [props]="{
23
- * contentConfig: { key: 'pageTitle', fallback: 'Default Title' },
24
- * size: 'large',
25
- * color: 'primary',
26
- * bold: true
27
- * }"></val-title>
28
- * ```
29
- *
30
- * @example Reactive content with interpolation:
31
- * ```html
32
- * <val-title [props]="{
33
- * contentConfig: {
34
- * key: 'welcomeTitle',
35
- * interpolation: { name: 'John' },
36
- * fallback: 'Welcome!'
37
- * },
38
- * size: 'large',
39
- * color: 'primary',
40
- * bold: true
41
- * }"></val-title>
42
- * ```
43
13
  *
44
14
  * @input props: TitleMetadata - Configuration for the title (content, color, size, bold, thin)
45
15
  */
46
16
  export class TitleComponent {
47
- constructor() {
48
- this.langService = inject(LangService);
49
- this.cdr = inject(ChangeDetectorRef);
50
- }
51
- ngOnInit() {
52
- this.updateContent();
53
- }
54
- ngOnChanges(changes) {
55
- if (changes['props']) {
56
- this.updateContent();
57
- this.cdr.detectChanges();
58
- }
59
- }
60
- updateContent() {
61
- // Always convert to Observable for consistent template handling
62
- if (shouldUseReactiveContent(this.props)) {
63
- // Use reactive content with LangService
64
- const config = extractContentConfig(this.props);
65
- this.displayContent$ = this.langService.getContent(config.className, config.key, config.fallback);
17
+ /**
18
+ * Returns the content to display.
19
+ * Uses static content, or contentFallback for backwards compatibility.
20
+ */
21
+ getDisplayContent() {
22
+ if (this.props.content) {
23
+ return this.props.content;
66
24
  }
67
- else {
68
- // Convert static content to Observable
69
- const staticContent = this.props.content || '';
70
- this.displayContent$ = of(staticContent);
25
+ // Backwards compatibility: use contentFallback if present
26
+ if (this.props.contentFallback) {
27
+ return this.props.contentFallback;
71
28
  }
29
+ return '';
72
30
  }
73
31
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
74
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TitleComponent, isStandalone: true, selector: "val-title", inputs: { props: "props" }, usesOnChanges: true, ngImport: i0, template: `
32
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TitleComponent, isStandalone: true, selector: "val-title", inputs: { props: "props" }, ngImport: i0, template: `
75
33
  <ion-text [color]="props.color">
76
34
  @if (!props.bold) {
77
35
  <p [ngClass]="[props.size]" [class.thin]="props.thin">
78
- {{ displayContent$ | async }}
36
+ {{ getDisplayContent() }}
79
37
  </p>
80
38
  } @else {
81
39
  <b>
82
40
  <p [class]="props.size">
83
- {{ displayContent$ | async }}
41
+ {{ getDisplayContent() }}
84
42
  </p>
85
43
  </b>
86
44
  }
87
45
  </ion-text>
88
- `, isInline: true, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.small{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.small{font-size:1rem;line-height:1.5rem}}.small.thin{font-weight:500}.medium{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium{font-size:1.125rem;line-height:1.5rem}}.medium.thin{font-weight:500}.large{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large{font-size:1.5rem;line-height:2rem}}.large.thin{font-weight:500}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}.xlarge.thin{font-weight:500}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
46
+ `, isInline: true, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.small{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.small{font-size:1rem;line-height:1.5rem}}.small.thin{font-weight:500}.medium{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium{font-size:1.125rem;line-height:1.5rem}}.medium.thin{font-weight:500}.large{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large{font-size:1.5rem;line-height:2rem}}.large.thin{font-weight:500}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}.xlarge.thin{font-weight:500}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
89
47
  }
90
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TitleComponent, decorators: [{
91
49
  type: Component,
92
- args: [{ selector: 'val-title', standalone: true, imports: [CommonModule, IonText, AsyncPipe], template: `
50
+ args: [{ selector: 'val-title', standalone: true, imports: [CommonModule, IonText], template: `
93
51
  <ion-text [color]="props.color">
94
52
  @if (!props.bold) {
95
53
  <p [ngClass]="[props.size]" [class.thin]="props.thin">
96
- {{ displayContent$ | async }}
54
+ {{ getDisplayContent() }}
97
55
  </p>
98
56
  } @else {
99
57
  <b>
100
58
  <p [class]="props.size">
101
- {{ displayContent$ | async }}
59
+ {{ getDisplayContent() }}
102
60
  </p>
103
61
  </b>
104
62
  }
105
63
  </ion-text>
106
64
  `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.small{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.small{font-size:1rem;line-height:1.5rem}}.small.thin{font-weight:500}.medium{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium{font-size:1.125rem;line-height:1.5rem}}.medium.thin{font-weight:500}.large{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large{font-size:1.5rem;line-height:2rem}}.large.thin{font-weight:500}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}.xlarge.thin{font-weight:500}\n"] }]
107
- }], ctorParameters: () => [], propDecorators: { props: [{
65
+ }], propDecorators: { props: [{
108
66
  type: Input
109
67
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxLQUFLLEVBSUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7O0FBeUJ0Rzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0NHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFtQnpCO1FBTFEsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEMsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBSXpCLENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFTyxhQUFhO1FBQ25CLGdFQUFnRTtRQUNoRSxJQUFJLHdCQUF3QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pDLHdDQUF3QztZQUN4QyxNQUFNLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BHLENBQUM7YUFBTSxDQUFDO1lBQ04sdUNBQXVDO1lBQ3ZDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQzsrR0EzQ1UsY0FBYzttR0FBZCxjQUFjLHNIQXZEZjs7Ozs7Ozs7Ozs7Ozs7R0FjVCx3c0dBZlMsWUFBWSxrTEFBRSxPQUFPOzs0RkF3RHBCLGNBQWM7a0JBM0QxQixTQUFTOytCQUNFLFdBQVcsY0FDVCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxZQUNqQzs7Ozs7Ozs7Ozs7Ozs7R0FjVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTTt3REFtRC9DLEtBQUs7c0JBREosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25UZXh0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTGFuZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sYW5nLXByb3ZpZGVyL2xhbmctcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBleHRyYWN0Q29udGVudENvbmZpZywgc2hvdWxkVXNlUmVhY3RpdmVDb250ZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL3NpbXBsZS1jb250ZW50JztcbmltcG9ydCB7IFRpdGxlTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXRpdGxlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uVGV4dCwgQXN5bmNQaXBlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLXRleHQgW2NvbG9yXT1cInByb3BzLmNvbG9yXCI+XG4gICAgICBAaWYgKCFwcm9wcy5ib2xkKSB7XG4gICAgICAgIDxwIFtuZ0NsYXNzXT1cIltwcm9wcy5zaXplXVwiIFtjbGFzcy50aGluXT1cInByb3BzLnRoaW5cIj5cbiAgICAgICAgICB7eyBkaXNwbGF5Q29udGVudCQgfCBhc3luYyB9fVxuICAgICAgICA8L3A+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGI+XG4gICAgICAgICAgPHAgW2NsYXNzXT1cInByb3BzLnNpemVcIj5cbiAgICAgICAgICAgIHt7IGRpc3BsYXlDb250ZW50JCB8IGFzeW5jIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2I+XG4gICAgICB9XG4gICAgPC9pb24tdGV4dD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vdGl0bGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuLyoqXG4gKiB2YWwtdGl0bGVcbiAqXG4gKiBBIHN0eWxlZCB0aXRsZSBvciBoZWFkaW5nLCB3aXRoIG9wdGlvbnMgZm9yIHNpemUsIGNvbG9yLCBhbmQgYm9sZG5lc3MuXG4gKiBTdXBwb3J0cyBib3RoIHN0YXRpYyBjb250ZW50IGFuZCByZWFjdGl2ZSBjb250ZW50IGZyb20gdGhlIGxhbmd1YWdlIHNlcnZpY2UuXG4gKlxuICogQGV4YW1wbGUgU3RhdGljIGNvbnRlbnQ6XG4gKiBgYGBodG1sXG4gKiA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6ICdNeSBUaXRsZScsIHNpemU6ICdsYXJnZScsIGNvbG9yOiAncHJpbWFyeScsIGJvbGQ6IHRydWUgfVwiPjwvdmFsLXRpdGxlPlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgUmVhY3RpdmUgY29udGVudDpcbiAqIGBgYGh0bWxcbiAqIDx2YWwtdGl0bGUgW3Byb3BzXT1cIntcbiAqICAgY29udGVudENvbmZpZzogeyBrZXk6ICdwYWdlVGl0bGUnLCBmYWxsYmFjazogJ0RlZmF1bHQgVGl0bGUnIH0sXG4gKiAgIHNpemU6ICdsYXJnZScsXG4gKiAgIGNvbG9yOiAncHJpbWFyeScsXG4gKiAgIGJvbGQ6IHRydWVcbiAqIH1cIj48L3ZhbC10aXRsZT5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFJlYWN0aXZlIGNvbnRlbnQgd2l0aCBpbnRlcnBvbGF0aW9uOlxuICogYGBgaHRtbFxuICogPHZhbC10aXRsZSBbcHJvcHNdPVwie1xuICogICBjb250ZW50Q29uZmlnOiB7XG4gKiAgICAga2V5OiAnd2VsY29tZVRpdGxlJyxcbiAqICAgICBpbnRlcnBvbGF0aW9uOiB7IG5hbWU6ICdKb2huJyB9LFxuICogICAgIGZhbGxiYWNrOiAnV2VsY29tZSEnXG4gKiAgIH0sXG4gKiAgIHNpemU6ICdsYXJnZScsXG4gKiAgIGNvbG9yOiAncHJpbWFyeScsXG4gKiAgIGJvbGQ6IHRydWVcbiAqIH1cIj48L3ZhbC10aXRsZT5cbiAqIGBgYFxuICpcbiAqIEBpbnB1dCBwcm9wczogVGl0bGVNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSB0aXRsZSAoY29udGVudCwgY29sb3IsIHNpemUsIGJvbGQsIHRoaW4pXG4gKi9cbmV4cG9ydCBjbGFzcyBUaXRsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgLyoqXG4gICAqIFRpdGxlIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgKiBAdHlwZSB7VGl0bGVNZXRhZGF0YX1cbiAgICogQHByb3BlcnR5IGNvbnRlbnQgLSBTdGF0aWMgdGl0bGUgdGV4dCAodGFrZXMgcHJlY2VkZW5jZSBvdmVyIHJlYWN0aXZlIGNvbnRlbnQpLlxuICAgKiBAcHJvcGVydHkgY29udGVudENvbmZpZyAtIFJlYWN0aXZlIGNvbnRlbnQgY29uZmlndXJhdGlvbi5cbiAgICogQHByb3BlcnR5IGNvbG9yIC0gVGhlIHRpdGxlIGNvbG9yIChJb25pYyBjb2xvciBzdHJpbmcpLlxuICAgKiBAcHJvcGVydHkgc2l6ZSAtIFRoZSB0aXRsZSBzaXplICgnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgJ3hsYXJnZScpLlxuICAgKiBAcHJvcGVydHkgYm9sZCAtIFdoZXRoZXIgdGhlIHRpdGxlIGlzIGJvbGQuXG4gICAqIEBwcm9wZXJ0eSB0aGluIC0gV2hldGhlciB0aGUgdGl0bGUgaXMgdGhpbiAob3B0aW9uYWwpLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHJvcHM6IFRpdGxlTWV0YWRhdGE7XG5cbiAgcHJpdmF0ZSBsYW5nU2VydmljZSA9IGluamVjdChMYW5nU2VydmljZSk7XG4gIHByaXZhdGUgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBkaXNwbGF5Q29udGVudCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cGRhdGVDb250ZW50KCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRoaXMudXBkYXRlQ29udGVudCgpO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29udGVudCgpIHtcbiAgICAvLyBBbHdheXMgY29udmVydCB0byBPYnNlcnZhYmxlIGZvciBjb25zaXN0ZW50IHRlbXBsYXRlIGhhbmRsaW5nXG4gICAgaWYgKHNob3VsZFVzZVJlYWN0aXZlQ29udGVudCh0aGlzLnByb3BzKSkge1xuICAgICAgLy8gVXNlIHJlYWN0aXZlIGNvbnRlbnQgd2l0aCBMYW5nU2VydmljZVxuICAgICAgY29uc3QgY29uZmlnID0gZXh0cmFjdENvbnRlbnRDb25maWcodGhpcy5wcm9wcyk7XG4gICAgICB0aGlzLmRpc3BsYXlDb250ZW50JCA9IHRoaXMubGFuZ1NlcnZpY2UuZ2V0Q29udGVudChjb25maWcuY2xhc3NOYW1lLCBjb25maWcua2V5LCBjb25maWcuZmFsbGJhY2spO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDb252ZXJ0IHN0YXRpYyBjb250ZW50IHRvIE9ic2VydmFibGVcbiAgICAgIGNvbnN0IHN0YXRpY0NvbnRlbnQgPSB0aGlzLnByb3BzLmNvbnRlbnQgfHwgJyc7XG4gICAgICB0aGlzLmRpc3BsYXlDb250ZW50JCA9IG9mKHN0YXRpY0NvbnRlbnQpO1xuICAgIH1cbiAgfVxufVxuIl19
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUF5QnBEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBYXpCOzs7T0FHRztJQUNILGlCQUFpQjtRQUNmLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQzVCLENBQUM7UUFDRCwwREFBMEQ7UUFDMUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7UUFDcEMsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzsrR0ExQlUsY0FBYzttR0FBZCxjQUFjLGlHQTVCZjs7Ozs7Ozs7Ozs7Ozs7R0FjVCx3c0dBZlMsWUFBWSw2SEFBRSxPQUFPOzs0RkE2QnBCLGNBQWM7a0JBaEMxQixTQUFTOytCQUNFLFdBQVcsY0FDVCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQ3RCOzs7Ozs7Ozs7Ozs7OztHQWNULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQXVCL0MsS0FBSztzQkFESixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25UZXh0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBUaXRsZU1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC10aXRsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvblRleHRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tdGV4dCBbY29sb3JdPVwicHJvcHMuY29sb3JcIj5cbiAgICAgIEBpZiAoIXByb3BzLmJvbGQpIHtcbiAgICAgICAgPHAgW25nQ2xhc3NdPVwiW3Byb3BzLnNpemVdXCIgW2NsYXNzLnRoaW5dPVwicHJvcHMudGhpblwiPlxuICAgICAgICAgIHt7IGdldERpc3BsYXlDb250ZW50KCkgfX1cbiAgICAgICAgPC9wPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxiPlxuICAgICAgICAgIDxwIFtjbGFzc109XCJwcm9wcy5zaXplXCI+XG4gICAgICAgICAgICB7eyBnZXREaXNwbGF5Q29udGVudCgpIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2I+XG4gICAgICB9XG4gICAgPC9pb24tdGV4dD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vdGl0bGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuLyoqXG4gKiB2YWwtdGl0bGVcbiAqXG4gKiBBIHN0eWxlZCB0aXRsZSBvciBoZWFkaW5nLCB3aXRoIG9wdGlvbnMgZm9yIHNpemUsIGNvbG9yLCBhbmQgYm9sZG5lc3MuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtdGl0bGUgW3Byb3BzXT1cInsgY29udGVudDogJ015IFRpdGxlJywgc2l6ZTogJ2xhcmdlJywgY29sb3I6ICdwcmltYXJ5JywgYm9sZDogdHJ1ZSB9XCI+PC92YWwtdGl0bGU+XG4gKlxuICogQGlucHV0IHByb3BzOiBUaXRsZU1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIHRpdGxlIChjb250ZW50LCBjb2xvciwgc2l6ZSwgYm9sZCwgdGhpbilcbiAqL1xuZXhwb3J0IGNsYXNzIFRpdGxlQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRpdGxlIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgKiBAdHlwZSB7VGl0bGVNZXRhZGF0YX1cbiAgICogQHByb3BlcnR5IGNvbnRlbnQgLSBTdGF0aWMgdGl0bGUgdGV4dC5cbiAgICogQHByb3BlcnR5IGNvbG9yIC0gVGhlIHRpdGxlIGNvbG9yIChJb25pYyBjb2xvciBzdHJpbmcpLlxuICAgKiBAcHJvcGVydHkgc2l6ZSAtIFRoZSB0aXRsZSBzaXplICgnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgJ3hsYXJnZScpLlxuICAgKiBAcHJvcGVydHkgYm9sZCAtIFdoZXRoZXIgdGhlIHRpdGxlIGlzIGJvbGQuXG4gICAqIEBwcm9wZXJ0eSB0aGluIC0gV2hldGhlciB0aGUgdGl0bGUgaXMgdGhpbiAob3B0aW9uYWwpLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHJvcHM6IFRpdGxlTWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNvbnRlbnQgdG8gZGlzcGxheS5cbiAgICogVXNlcyBzdGF0aWMgY29udGVudCwgb3IgY29udGVudEZhbGxiYWNrIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgICovXG4gIGdldERpc3BsYXlDb250ZW50KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMuY29udGVudCkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuY29udGVudDtcbiAgICB9XG4gICAgLy8gQmFja3dhcmRzIGNvbXBhdGliaWxpdHk6IHVzZSBjb250ZW50RmFsbGJhY2sgaWYgcHJlc2VudFxuICAgIGlmICh0aGlzLnByb3BzLmNvbnRlbnRGYWxsYmFjaykge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuY29udGVudEZhbGxiYWNrO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cbn1cbiJdfQ==
@@ -1,34 +1,22 @@
1
1
  /**
2
- * Factory function to create title props with reactive content support.
2
+ * Factory function to create title props.
3
3
  *
4
4
  * @param styleConfig - Title styling configuration
5
- * @param contentConfig - Content configuration (static or reactive)
5
+ * @param content - The title text
6
6
  * @returns Complete TitleMetadata object
7
7
  *
8
- * @example Static content:
8
+ * @example
9
9
  * ```typescript
10
10
  * const props = createTitleProps(
11
11
  * { size: 'large', color: 'primary', bold: true },
12
- * { content: 'Static Title' }
13
- * );
14
- * ```
15
- *
16
- * @example Reactive content:
17
- * ```typescript
18
- * const props = createTitleProps(
19
- * { size: 'large', color: 'primary', bold: true },
20
- * {
21
- * contentKey: 'pageTitle',
22
- * contentClass: 'MyComponent',
23
- * contentFallback: 'Default Title'
24
- * }
12
+ * 'My Title'
25
13
  * );
26
14
  * ```
27
15
  */
28
- export function createTitleProps(styleConfig, contentConfig) {
16
+ export function createTitleProps(styleConfig, content) {
29
17
  return {
30
18
  ...styleConfig,
31
- ...contentConfig,
19
+ content,
32
20
  };
33
21
  }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvdGl0bGUvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUJBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsV0FBb0UsRUFDcEUsYUFBaUc7SUFFakcsT0FBTztRQUNMLEdBQUcsV0FBVztRQUNkLEdBQUcsYUFBYTtLQUNqQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVUZXh0TWV0YWRhdGEgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvc2ltcGxlLWNvbnRlbnQnO1xuXG4vKipcbiAqIFByb3BzIGZvciB2YWwtdGl0bGUgY29tcG9uZW50LlxuICogU3VwcG9ydHMgYm90aCBzdGF0aWMgY29udGVudCBhbmQgcmVhY3RpdmUgY29udGVudCBmcm9tIHRoZSBsYW5ndWFnZSBzZXJ2aWNlLlxuICpcbiAqIEBwcm9wZXJ0eSBjb250ZW50IC0gU3RhdGljIHRpdGxlIHRleHQgdG8gZGlzcGxheSAodGFrZXMgcHJlY2VkZW5jZSBvdmVyIHJlYWN0aXZlIGNvbnRlbnQpLlxuICogQHByb3BlcnR5IGNvbnRlbnRLZXkgLSBDb250ZW50IGtleSBmb3IgcmVhY3RpdmUgY29udGVudCBsb29rdXAuXG4gKiBAcHJvcGVydHkgY29udGVudENsYXNzIC0gQ29tcG9uZW50IGNsYXNzIG5hbWUgZm9yIGNvbnRlbnQgbG9va3VwLlxuICogQHByb3BlcnR5IGNvbnRlbnRGYWxsYmFjayAtIEZhbGxiYWNrIHRleHQgaWYgY29udGVudCBpcyBub3QgZm91bmQuXG4gKiBAcHJvcGVydHkgY29sb3IgLSBUaGUgdGl0bGUgY29sb3IgKElvbmljIGNvbG9yIHN0cmluZykuXG4gKiBAcHJvcGVydHkgc2l6ZSAtIFRoZSB0aXRsZSBzaXplICgnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgJ3hsYXJnZScpLlxuICogQHByb3BlcnR5IGJvbGQgLSBXaGV0aGVyIHRoZSB0aXRsZSBpcyBib2xkLlxuICogQHByb3BlcnR5IHRoaW4gLSBXaGV0aGVyIHRoZSB0aXRsZSBpcyB0aGluIChvcHRpb25hbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGl0bGVNZXRhZGF0YSBleHRlbmRzIFJlYWN0aXZlVGV4dE1ldGFkYXRhIHtcbiAgc2l6ZTogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8ICd4bGFyZ2UnO1xuICBjb2xvcjogQ29sb3I7XG4gIGJvbGQ6IGJvb2xlYW47XG4gIHRoaW4/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEZhY3RvcnkgZnVuY3Rpb24gdG8gY3JlYXRlIHRpdGxlIHByb3BzIHdpdGggcmVhY3RpdmUgY29udGVudCBzdXBwb3J0LlxuICpcbiAqIEBwYXJhbSBzdHlsZUNvbmZpZyAtIFRpdGxlIHN0eWxpbmcgY29uZmlndXJhdGlvblxuICogQHBhcmFtIGNvbnRlbnRDb25maWcgLSBDb250ZW50IGNvbmZpZ3VyYXRpb24gKHN0YXRpYyBvciByZWFjdGl2ZSlcbiAqIEByZXR1cm5zIENvbXBsZXRlIFRpdGxlTWV0YWRhdGEgb2JqZWN0XG4gKlxuICogQGV4YW1wbGUgU3RhdGljIGNvbnRlbnQ6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBwcm9wcyA9IGNyZWF0ZVRpdGxlUHJvcHMoXG4gKiAgIHsgc2l6ZTogJ2xhcmdlJywgY29sb3I6ICdwcmltYXJ5JywgYm9sZDogdHJ1ZSB9LFxuICogICB7IGNvbnRlbnQ6ICdTdGF0aWMgVGl0bGUnIH1cbiAqICk7XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBSZWFjdGl2ZSBjb250ZW50OlxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcHJvcHMgPSBjcmVhdGVUaXRsZVByb3BzKFxuICogICB7IHNpemU6ICdsYXJnZScsIGNvbG9yOiAncHJpbWFyeScsIGJvbGQ6IHRydWUgfSxcbiAqICAge1xuICogICAgIGNvbnRlbnRLZXk6ICdwYWdlVGl0bGUnLFxuICogICAgIGNvbnRlbnRDbGFzczogJ015Q29tcG9uZW50JyxcbiAqICAgICBjb250ZW50RmFsbGJhY2s6ICdEZWZhdWx0IFRpdGxlJ1xuICogICB9XG4gKiApO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUaXRsZVByb3BzKFxuICBzdHlsZUNvbmZpZzogUGljazxUaXRsZU1ldGFkYXRhLCAnc2l6ZScgfCAnY29sb3InIHwgJ2JvbGQnIHwgJ3RoaW4nPixcbiAgY29udGVudENvbmZpZzogUGljazxUaXRsZU1ldGFkYXRhLCAnY29udGVudCcgfCAnY29udGVudEtleScgfCAnY29udGVudENsYXNzJyB8ICdjb250ZW50RmFsbGJhY2snPlxuKTogVGl0bGVNZXRhZGF0YSB7XG4gIHJldHVybiB7XG4gICAgLi4uc3R5bGVDb25maWcsXG4gICAgLi4uY29udGVudENvbmZpZyxcbiAgfTtcbn1cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvdGl0bGUvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0JBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixXQUFvRSxFQUNwRSxPQUFlO0lBRWYsT0FBTztRQUNMLEdBQUcsV0FBVztRQUNkLE9BQU87S0FDUixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuXG4vKipcbiAqIFByb3BzIGZvciB2YWwtdGl0bGUgY29tcG9uZW50LlxuICpcbiAqIEBwcm9wZXJ0eSBjb250ZW50IC0gVGl0bGUgdGV4dCB0byBkaXNwbGF5LlxuICogQHByb3BlcnR5IGNvbG9yIC0gVGhlIHRpdGxlIGNvbG9yIChJb25pYyBjb2xvciBzdHJpbmcpLlxuICogQHByb3BlcnR5IHNpemUgLSBUaGUgdGl0bGUgc2l6ZSAoJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8ICd4bGFyZ2UnKS5cbiAqIEBwcm9wZXJ0eSBib2xkIC0gV2hldGhlciB0aGUgdGl0bGUgaXMgYm9sZC5cbiAqIEBwcm9wZXJ0eSB0aGluIC0gV2hldGhlciB0aGUgdGl0bGUgaXMgdGhpbiAob3B0aW9uYWwpLlxuICogQHByb3BlcnR5IGNvbnRlbnRGYWxsYmFjayAtIEZhbGxiYWNrIHRleHQgKGRlcHJlY2F0ZWQsIHVzZSBjb250ZW50IGluc3RlYWQpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRpdGxlTWV0YWRhdGEge1xuICBjb250ZW50Pzogc3RyaW5nO1xuICBzaXplOiAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgJ3hsYXJnZSc7XG4gIGNvbG9yOiBDb2xvcjtcbiAgYm9sZDogYm9vbGVhbjtcbiAgdGhpbj86IGJvb2xlYW47XG4gIC8qKiBAZGVwcmVjYXRlZCBVc2UgY29udGVudCBpbnN0ZWFkICovXG4gIGNvbnRlbnRGYWxsYmFjaz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBGYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSB0aXRsZSBwcm9wcy5cbiAqXG4gKiBAcGFyYW0gc3R5bGVDb25maWcgLSBUaXRsZSBzdHlsaW5nIGNvbmZpZ3VyYXRpb25cbiAqIEBwYXJhbSBjb250ZW50IC0gVGhlIHRpdGxlIHRleHRcbiAqIEByZXR1cm5zIENvbXBsZXRlIFRpdGxlTWV0YWRhdGEgb2JqZWN0XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHByb3BzID0gY3JlYXRlVGl0bGVQcm9wcyhcbiAqICAgeyBzaXplOiAnbGFyZ2UnLCBjb2xvcjogJ3ByaW1hcnknLCBib2xkOiB0cnVlIH0sXG4gKiAgICdNeSBUaXRsZSdcbiAqICk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRpdGxlUHJvcHMoXG4gIHN0eWxlQ29uZmlnOiBQaWNrPFRpdGxlTWV0YWRhdGEsICdzaXplJyB8ICdjb2xvcicgfCAnYm9sZCcgfCAndGhpbic+LFxuICBjb250ZW50OiBzdHJpbmdcbik6IFRpdGxlTWV0YWRhdGEge1xuICByZXR1cm4ge1xuICAgIC4uLnN0eWxlQ29uZmlnLFxuICAgIGNvbnRlbnQsXG4gIH07XG59XG4iXX0=