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.
- package/esm2022/lib/components/atoms/button/button.component.mjs +30 -102
- package/esm2022/lib/components/atoms/countdown/countdown.component.mjs +2 -7
- package/esm2022/lib/components/atoms/display/display.component.mjs +18 -101
- package/esm2022/lib/components/atoms/image/image.component.mjs +2 -5
- package/esm2022/lib/components/atoms/price-tag/price-tag.component.mjs +2 -12
- package/esm2022/lib/components/atoms/qr-code/qr-code.component.mjs +4 -29
- package/esm2022/lib/components/atoms/text/text.component.mjs +49 -171
- package/esm2022/lib/components/atoms/title/title.component.mjs +23 -65
- package/esm2022/lib/components/atoms/title/types.mjs +7 -19
- package/esm2022/lib/components/molecules/accordion/accordion.component.mjs +7 -53
- package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +7 -26
- package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +7 -42
- package/esm2022/lib/components/molecules/check-input/check-input.component.mjs +12 -41
- package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +3 -28
- package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +2 -5
- package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +3 -6
- package/esm2022/lib/components/molecules/comment/comment.component.mjs +5 -31
- package/esm2022/lib/components/molecules/currency-input/currency-input.component.mjs +2 -23
- package/esm2022/lib/components/molecules/date-range-input/date-range-input.component.mjs +2 -29
- package/esm2022/lib/components/molecules/expandable-text/expandable-text.component.mjs +4 -6
- package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +16 -40
- package/esm2022/lib/components/molecules/language-selector/language-selector.component.mjs +25 -125
- package/esm2022/lib/components/molecules/multi-select-search/multi-select-search.component.mjs +4 -6
- package/esm2022/lib/components/molecules/number-stepper/number-stepper.component.mjs +2 -10
- package/esm2022/lib/components/molecules/participant-card/participant-card.component.mjs +2 -4
- package/esm2022/lib/components/molecules/phone-input/phone-input.component.mjs +2 -23
- package/esm2022/lib/components/molecules/plain-code-box/plain-code-box.component.mjs +3 -6
- package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +9 -12
- package/esm2022/lib/components/molecules/raffle-status-card/raffle-status-card.component.mjs +3 -11
- package/esm2022/lib/components/molecules/range-input/range-input.component.mjs +4 -25
- package/esm2022/lib/components/molecules/segment-control/segment-control.component.mjs +3 -34
- package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +11 -20
- package/esm2022/lib/components/molecules/select-search/select-search.component.mjs +4 -6
- package/esm2022/lib/components/molecules/share-buttons/share-buttons.component.mjs +1 -6
- package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +3 -28
- package/esm2022/lib/components/molecules/tabs/tabs.component.mjs +7 -41
- package/esm2022/lib/components/molecules/textarea-input/textarea-input.component.mjs +2 -27
- package/esm2022/lib/components/molecules/ticket-grid/ticket-grid.component.mjs +2 -10
- package/esm2022/lib/components/molecules/toggle-input/toggle-input.component.mjs +7 -37
- package/esm2022/lib/components/molecules/winner-display/winner-display.component.mjs +1 -12
- package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +8 -54
- package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +1 -3
- package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +3 -5
- package/esm2022/lib/services/locale.service.mjs +75 -0
- package/esm2022/lib/services/types.mjs +5 -3
- package/esm2022/public-api.mjs +2 -7
- package/fesm2022/valtech-components.mjs +366 -2279
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/button/button.component.d.ts +12 -37
- package/lib/components/atoms/countdown/countdown.component.d.ts +0 -1
- package/lib/components/atoms/display/display.component.d.ts +8 -60
- package/lib/components/atoms/image/image.component.d.ts +0 -2
- package/lib/components/atoms/price-tag/price-tag.component.d.ts +0 -1
- package/lib/components/atoms/qr-code/qr-code.component.d.ts +2 -6
- package/lib/components/atoms/text/text.component.d.ts +20 -68
- package/lib/components/atoms/title/title.component.d.ts +7 -12
- package/lib/components/atoms/title/types.d.ts +11 -24
- package/lib/components/molecules/accordion/accordion.component.d.ts +2 -9
- package/lib/components/molecules/alert-box/alert-box.component.d.ts +3 -8
- package/lib/components/molecules/breadcrumb/breadcrumb.component.d.ts +2 -8
- package/lib/components/molecules/check-input/check-input.component.d.ts +2 -10
- package/lib/components/molecules/chip-group/chip-group.component.d.ts +2 -8
- package/lib/components/molecules/code-display/code-display.component.d.ts +0 -2
- package/lib/components/molecules/command-display/command-display.component.d.ts +0 -3
- package/lib/components/molecules/comment/comment.component.d.ts +2 -6
- package/lib/components/molecules/currency-input/currency-input.component.d.ts +0 -3
- package/lib/components/molecules/date-range-input/date-range-input.component.d.ts +0 -3
- package/lib/components/molecules/expandable-text/expandable-text.component.d.ts +0 -1
- package/lib/components/molecules/glow-card/glow-card.component.d.ts +5 -9
- package/lib/components/molecules/language-selector/language-selector.component.d.ts +7 -19
- package/lib/components/molecules/multi-select-search/multi-select-search.component.d.ts +0 -2
- package/lib/components/molecules/number-stepper/number-stepper.component.d.ts +0 -1
- package/lib/components/molecules/participant-card/participant-card.component.d.ts +0 -1
- package/lib/components/molecules/phone-input/phone-input.component.d.ts +0 -3
- package/lib/components/molecules/plain-code-box/plain-code-box.component.d.ts +0 -3
- package/lib/components/molecules/popover-selector/popover-selector.component.d.ts +3 -4
- package/lib/components/molecules/raffle-status-card/raffle-status-card.component.d.ts +0 -1
- package/lib/components/molecules/range-input/range-input.component.d.ts +3 -8
- package/lib/components/molecules/segment-control/segment-control.component.d.ts +2 -8
- package/lib/components/molecules/select-input/select-input.component.d.ts +2 -3
- package/lib/components/molecules/select-search/select-search.component.d.ts +0 -2
- package/lib/components/molecules/share-buttons/share-buttons.component.d.ts +0 -1
- package/lib/components/molecules/stepper/stepper.component.d.ts +2 -8
- package/lib/components/molecules/tabs/tabs.component.d.ts +2 -8
- package/lib/components/molecules/textarea-input/textarea-input.component.d.ts +2 -6
- package/lib/components/molecules/ticket-grid/ticket-grid.component.d.ts +0 -1
- package/lib/components/molecules/toggle-input/toggle-input.component.d.ts +2 -8
- package/lib/components/molecules/winner-display/winner-display.component.d.ts +0 -1
- package/lib/components/organisms/comment-section/comment-section.component.d.ts +2 -6
- package/lib/components/organisms/data-table/data-table.component.d.ts +0 -1
- package/lib/components/organisms/wizard/wizard.component.d.ts +0 -2
- package/lib/services/locale.service.d.ts +52 -0
- package/lib/services/types.d.ts +1 -6
- package/package.json +1 -1
- package/public-api.d.ts +1 -5
- package/esm2022/lib/services/lang-provider/components/lang-settings.mjs +0 -13
- package/esm2022/lib/services/lang-provider/content.mjs +0 -156
- package/esm2022/lib/services/lang-provider/lang-provider.service.mjs +0 -530
- package/esm2022/lib/services/lang-provider/types.mjs +0 -23
- package/esm2022/lib/shared/utils/content.mjs +0 -186
- package/esm2022/lib/shared/utils/simple-content.mjs +0 -119
- package/lib/services/lang-provider/components/lang-settings.d.ts +0 -3
- package/lib/services/lang-provider/content.d.ts +0 -17
- package/lib/services/lang-provider/lang-provider.service.d.ts +0 -264
- package/lib/services/lang-provider/types.d.ts +0 -30
- package/lib/shared/utils/content.d.ts +0 -199
- 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
|
-
*
|
|
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
|
|
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?
|
|
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
|
-
* @
|
|
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(
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
135
|
-
this.displayContent$ = of(this.props.content);
|
|
61
|
+
this.displayContent = this.props.content;
|
|
136
62
|
}
|
|
137
63
|
}
|
|
138
|
-
else if (
|
|
139
|
-
//
|
|
140
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
114
|
+
[innerHTML]="displayContent | processLinks: props.linkConfig"
|
|
179
115
|
></p>
|
|
180
|
-
} @else if (
|
|
181
|
-
|
|
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
|
|
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:
|
|
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,
|
|
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
|
|
132
|
+
[innerHTML]="displayContent | processLinks: props.linkConfig"
|
|
200
133
|
></p>
|
|
201
|
-
} @else if (
|
|
202
|
-
|
|
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
|
|
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
|
-
}],
|
|
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 {
|
|
2
|
-
import { ChangeDetectionStrategy,
|
|
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
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
this.
|
|
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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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" },
|
|
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
|
-
{{
|
|
36
|
+
{{ getDisplayContent() }}
|
|
79
37
|
</p>
|
|
80
38
|
} @else {
|
|
81
39
|
<b>
|
|
82
40
|
<p [class]="props.size">
|
|
83
|
-
{{
|
|
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: "
|
|
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
|
|
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
|
-
{{
|
|
54
|
+
{{ getDisplayContent() }}
|
|
97
55
|
</p>
|
|
98
56
|
} @else {
|
|
99
57
|
<b>
|
|
100
58
|
<p [class]="props.size">
|
|
101
|
-
{{
|
|
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
|
-
}],
|
|
65
|
+
}], propDecorators: { props: [{
|
|
108
66
|
type: Input
|
|
109
67
|
}] } });
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUF5QnBEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBYXpCOzs7T0FHRztJQUNILGlCQUFpQjtRQUNmLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQzVCLENBQUM7UUFDRCwwREFBMEQ7UUFDMUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7UUFDcEMsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzsrR0ExQlUsY0FBYzttR0FBZCxjQUFjLGlHQTVCZjs7Ozs7Ozs7Ozs7Ozs7R0FjVCx3c0dBZlMsWUFBWSw2SEFBRSxPQUFPOzs0RkE2QnBCLGNBQWM7a0JBaEMxQixTQUFTOytCQUNFLFdBQVcsY0FDVCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQ3RCOzs7Ozs7Ozs7Ozs7OztHQWNULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQXVCL0MsS0FBSztzQkFESixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25UZXh0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBUaXRsZU1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC10aXRsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvblRleHRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tdGV4dCBbY29sb3JdPVwicHJvcHMuY29sb3JcIj5cbiAgICAgIEBpZiAoIXByb3BzLmJvbGQpIHtcbiAgICAgICAgPHAgW25nQ2xhc3NdPVwiW3Byb3BzLnNpemVdXCIgW2NsYXNzLnRoaW5dPVwicHJvcHMudGhpblwiPlxuICAgICAgICAgIHt7IGdldERpc3BsYXlDb250ZW50KCkgfX1cbiAgICAgICAgPC9wPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxiPlxuICAgICAgICAgIDxwIFtjbGFzc109XCJwcm9wcy5zaXplXCI+XG4gICAgICAgICAgICB7eyBnZXREaXNwbGF5Q29udGVudCgpIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2I+XG4gICAgICB9XG4gICAgPC9pb24tdGV4dD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vdGl0bGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuLyoqXG4gKiB2YWwtdGl0bGVcbiAqXG4gKiBBIHN0eWxlZCB0aXRsZSBvciBoZWFkaW5nLCB3aXRoIG9wdGlvbnMgZm9yIHNpemUsIGNvbG9yLCBhbmQgYm9sZG5lc3MuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtdGl0bGUgW3Byb3BzXT1cInsgY29udGVudDogJ015IFRpdGxlJywgc2l6ZTogJ2xhcmdlJywgY29sb3I6ICdwcmltYXJ5JywgYm9sZDogdHJ1ZSB9XCI+PC92YWwtdGl0bGU+XG4gKlxuICogQGlucHV0IHByb3BzOiBUaXRsZU1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIHRpdGxlIChjb250ZW50LCBjb2xvciwgc2l6ZSwgYm9sZCwgdGhpbilcbiAqL1xuZXhwb3J0IGNsYXNzIFRpdGxlQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRpdGxlIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgKiBAdHlwZSB7VGl0bGVNZXRhZGF0YX1cbiAgICogQHByb3BlcnR5IGNvbnRlbnQgLSBTdGF0aWMgdGl0bGUgdGV4dC5cbiAgICogQHByb3BlcnR5IGNvbG9yIC0gVGhlIHRpdGxlIGNvbG9yIChJb25pYyBjb2xvciBzdHJpbmcpLlxuICAgKiBAcHJvcGVydHkgc2l6ZSAtIFRoZSB0aXRsZSBzaXplICgnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgJ3hsYXJnZScpLlxuICAgKiBAcHJvcGVydHkgYm9sZCAtIFdoZXRoZXIgdGhlIHRpdGxlIGlzIGJvbGQuXG4gICAqIEBwcm9wZXJ0eSB0aGluIC0gV2hldGhlciB0aGUgdGl0bGUgaXMgdGhpbiAob3B0aW9uYWwpLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHJvcHM6IFRpdGxlTWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNvbnRlbnQgdG8gZGlzcGxheS5cbiAgICogVXNlcyBzdGF0aWMgY29udGVudCwgb3IgY29udGVudEZhbGxiYWNrIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgICovXG4gIGdldERpc3BsYXlDb250ZW50KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMuY29udGVudCkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuY29udGVudDtcbiAgICB9XG4gICAgLy8gQmFja3dhcmRzIGNvbXBhdGliaWxpdHk6IHVzZSBjb250ZW50RmFsbGJhY2sgaWYgcHJlc2VudFxuICAgIGlmICh0aGlzLnByb3BzLmNvbnRlbnRGYWxsYmFjaykge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuY29udGVudEZhbGxiYWNrO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,34 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Factory function to create title props
|
|
2
|
+
* Factory function to create title props.
|
|
3
3
|
*
|
|
4
4
|
* @param styleConfig - Title styling configuration
|
|
5
|
-
* @param
|
|
5
|
+
* @param content - The title text
|
|
6
6
|
* @returns Complete TitleMetadata object
|
|
7
7
|
*
|
|
8
|
-
* @example
|
|
8
|
+
* @example
|
|
9
9
|
* ```typescript
|
|
10
10
|
* const props = createTitleProps(
|
|
11
11
|
* { size: 'large', color: 'primary', bold: true },
|
|
12
|
-
*
|
|
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,
|
|
16
|
+
export function createTitleProps(styleConfig, content) {
|
|
29
17
|
return {
|
|
30
18
|
...styleConfig,
|
|
31
|
-
|
|
19
|
+
content,
|
|
32
20
|
};
|
|
33
21
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvdGl0bGUvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0JBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixXQUFvRSxFQUNwRSxPQUFlO0lBRWYsT0FBTztRQUNMLEdBQUcsV0FBVztRQUNkLE9BQU87S0FDUixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuXG4vKipcbiAqIFByb3BzIGZvciB2YWwtdGl0bGUgY29tcG9uZW50LlxuICpcbiAqIEBwcm9wZXJ0eSBjb250ZW50IC0gVGl0bGUgdGV4dCB0byBkaXNwbGF5LlxuICogQHByb3BlcnR5IGNvbG9yIC0gVGhlIHRpdGxlIGNvbG9yIChJb25pYyBjb2xvciBzdHJpbmcpLlxuICogQHByb3BlcnR5IHNpemUgLSBUaGUgdGl0bGUgc2l6ZSAoJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8ICd4bGFyZ2UnKS5cbiAqIEBwcm9wZXJ0eSBib2xkIC0gV2hldGhlciB0aGUgdGl0bGUgaXMgYm9sZC5cbiAqIEBwcm9wZXJ0eSB0aGluIC0gV2hldGhlciB0aGUgdGl0bGUgaXMgdGhpbiAob3B0aW9uYWwpLlxuICogQHByb3BlcnR5IGNvbnRlbnRGYWxsYmFjayAtIEZhbGxiYWNrIHRleHQgKGRlcHJlY2F0ZWQsIHVzZSBjb250ZW50IGluc3RlYWQpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRpdGxlTWV0YWRhdGEge1xuICBjb250ZW50Pzogc3RyaW5nO1xuICBzaXplOiAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgJ3hsYXJnZSc7XG4gIGNvbG9yOiBDb2xvcjtcbiAgYm9sZDogYm9vbGVhbjtcbiAgdGhpbj86IGJvb2xlYW47XG4gIC8qKiBAZGVwcmVjYXRlZCBVc2UgY29udGVudCBpbnN0ZWFkICovXG4gIGNvbnRlbnRGYWxsYmFjaz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBGYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSB0aXRsZSBwcm9wcy5cbiAqXG4gKiBAcGFyYW0gc3R5bGVDb25maWcgLSBUaXRsZSBzdHlsaW5nIGNvbmZpZ3VyYXRpb25cbiAqIEBwYXJhbSBjb250ZW50IC0gVGhlIHRpdGxlIHRleHRcbiAqIEByZXR1cm5zIENvbXBsZXRlIFRpdGxlTWV0YWRhdGEgb2JqZWN0XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHByb3BzID0gY3JlYXRlVGl0bGVQcm9wcyhcbiAqICAgeyBzaXplOiAnbGFyZ2UnLCBjb2xvcjogJ3ByaW1hcnknLCBib2xkOiB0cnVlIH0sXG4gKiAgICdNeSBUaXRsZSdcbiAqICk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRpdGxlUHJvcHMoXG4gIHN0eWxlQ29uZmlnOiBQaWNrPFRpdGxlTWV0YWRhdGEsICdzaXplJyB8ICdjb2xvcicgfCAnYm9sZCcgfCAndGhpbic+LFxuICBjb250ZW50OiBzdHJpbmdcbik6IFRpdGxlTWV0YWRhdGEge1xuICByZXR1cm4ge1xuICAgIC4uLnN0eWxlQ29uZmlnLFxuICAgIGNvbnRlbnQsXG4gIH07XG59XG4iXX0=
|