valtech-components 2.0.628 → 2.0.630
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/molecules/action-card/action-card.component.mjs +298 -0
- package/esm2022/lib/components/molecules/action-card/types.mjs +11 -0
- package/esm2022/lib/components/molecules/linked-providers/linked-providers.component.mjs +236 -0
- package/esm2022/lib/components/molecules/linked-providers/types.mjs +27 -0
- package/esm2022/lib/components/molecules/stats-card/stats-card.component.mjs +33 -3
- package/esm2022/lib/components/molecules/stats-card/types.mjs +1 -1
- package/esm2022/lib/components/molecules/username-input/types.mjs +2 -0
- package/esm2022/lib/components/molecules/username-input/username-input.component.mjs +260 -0
- package/esm2022/lib/components/templates/docs-page/docs-page.component.mjs +3 -3
- package/esm2022/lib/services/auth/auth.service.mjs +24 -1
- package/esm2022/lib/services/auth/types.mjs +1 -1
- package/esm2022/public-api.mjs +7 -1
- package/fesm2022/valtech-components.mjs +904 -46
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/molecules/action-card/action-card.component.d.ts +90 -0
- package/lib/components/molecules/action-card/types.d.ts +83 -0
- package/lib/components/molecules/linked-providers/linked-providers.component.d.ts +30 -0
- package/lib/components/molecules/linked-providers/types.d.ts +38 -0
- package/lib/components/molecules/stats-card/types.d.ts +17 -0
- package/lib/components/molecules/username-input/types.d.ts +34 -0
- package/lib/components/molecules/username-input/username-input.component.d.ts +45 -0
- package/lib/services/auth/auth.service.d.ts +11 -1
- package/lib/services/auth/types.d.ts +56 -0
- package/package.json +1 -1
- package/public-api.d.ts +6 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Información de proveedores OAuth disponibles.
|
|
3
|
+
*/
|
|
4
|
+
export const OAUTH_PROVIDERS_INFO = {
|
|
5
|
+
google: {
|
|
6
|
+
id: 'google',
|
|
7
|
+
name: 'Google',
|
|
8
|
+
icon: 'logo-google',
|
|
9
|
+
color: '#DB4437',
|
|
10
|
+
bgColor: '#DB443715',
|
|
11
|
+
},
|
|
12
|
+
apple: {
|
|
13
|
+
id: 'apple',
|
|
14
|
+
name: 'Apple',
|
|
15
|
+
icon: 'logo-apple',
|
|
16
|
+
color: '#000000',
|
|
17
|
+
bgColor: '#00000010',
|
|
18
|
+
},
|
|
19
|
+
microsoft: {
|
|
20
|
+
id: 'microsoft',
|
|
21
|
+
name: 'Microsoft',
|
|
22
|
+
icon: 'logo-microsoft',
|
|
23
|
+
color: '#00A4EF',
|
|
24
|
+
bgColor: '#00A4EF15',
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xpbmtlZC1wcm92aWRlcnMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUNBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQStDO0lBQzlFLE1BQU0sRUFBRTtRQUNOLEVBQUUsRUFBRSxRQUFRO1FBQ1osSUFBSSxFQUFFLFFBQVE7UUFDZCxJQUFJLEVBQUUsYUFBYTtRQUNuQixLQUFLLEVBQUUsU0FBUztRQUNoQixPQUFPLEVBQUUsV0FBVztLQUNyQjtJQUNELEtBQUssRUFBRTtRQUNMLEVBQUUsRUFBRSxPQUFPO1FBQ1gsSUFBSSxFQUFFLE9BQU87UUFDYixJQUFJLEVBQUUsWUFBWTtRQUNsQixLQUFLLEVBQUUsU0FBUztRQUNoQixPQUFPLEVBQUUsV0FBVztLQUNyQjtJQUNELFNBQVMsRUFBRTtRQUNULEVBQUUsRUFBRSxXQUFXO1FBQ2YsSUFBSSxFQUFFLFdBQVc7UUFDakIsSUFBSSxFQUFFLGdCQUFnQjtRQUN0QixLQUFLLEVBQUUsU0FBUztRQUNoQixPQUFPLEVBQUUsV0FBVztLQUNyQjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaW5rZWRQcm92aWRlciwgT0F1dGhQcm92aWRlciB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvdHlwZXMnO1xuXG4vKipcbiAqIE1ldGFkYXRhIHBhcmEgTGlua2VkUHJvdmlkZXJzQ29tcG9uZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpbmtlZFByb3ZpZGVyc01ldGFkYXRhIHtcbiAgLyoqIExpc3RhIGRlIHByb3ZlZWRvcmVzIHZpbmN1bGFkb3MgKi9cbiAgcHJvdmlkZXJzOiBMaW5rZWRQcm92aWRlcltdO1xuICAvKiogUHJvdmVlZG9yZXMgZGlzcG9uaWJsZXMgcGFyYSB2aW5jdWxhciAoZGVmYXVsdDogWydnb29nbGUnXSkgKi9cbiAgYXZhaWxhYmxlUHJvdmlkZXJzPzogT0F1dGhQcm92aWRlcltdO1xuICAvKiogQ2FsbGJhY2sgY3VhbmRvIHNlIHF1aWVyZSB2aW5jdWxhciB1biBwcm92aWRlciAqL1xuICBvbkxpbms/OiAocHJvdmlkZXI6IE9BdXRoUHJvdmlkZXIpID0+IHZvaWQ7XG4gIC8qKiBDYWxsYmFjayBjdWFuZG8gc2UgcXVpZXJlIGRlc3ZpbmN1bGFyIHVuIHByb3ZpZGVyICovXG4gIG9uVW5saW5rPzogKHByb3ZpZGVyOiBPQXV0aFByb3ZpZGVyKSA9PiB2b2lkO1xuICAvKiogTW9zdHJhciBib3TDs24gcGFyYSB2aW5jdWxhciBudWV2b3MgKGRlZmF1bHQ6IHRydWUpICovXG4gIHNob3dMaW5rQnV0dG9uPzogYm9vbGVhbjtcbiAgLyoqIFBlcm1pdGlyIGRlc3ZpbmN1bGFyIChkZWZhdWx0OiB0cnVlIHNpIGhheSBtw6FzIGRlIHVuIG3DqXRvZG8gZGUgYXV0aCkgKi9cbiAgYWxsb3dVbmxpbms/OiBib29sZWFuO1xuICAvKiogVMOtdHVsbyBkZSBsYSBzZWNjacOzbiAqL1xuICB0aXRsZT86IHN0cmluZztcbiAgLyoqIERlc2NyaXBjacOzbiBkZSBsYSBzZWNjacOzbiAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqIE1vZG8gY29tcGFjdG8gc2luIGNhcmQgKi9cbiAgY29tcGFjdD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogSW5mb3JtYWNpw7NuIHZpc3VhbCBkZSB1biBwcm92ZWVkb3IgT0F1dGguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJEaXNwbGF5SW5mbyB7XG4gIGlkOiBPQXV0aFByb3ZpZGVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIGljb246IHN0cmluZztcbiAgY29sb3I6IHN0cmluZztcbiAgYmdDb2xvcjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEluZm9ybWFjacOzbiBkZSBwcm92ZWVkb3JlcyBPQXV0aCBkaXNwb25pYmxlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IE9BVVRIX1BST1ZJREVSU19JTkZPOiBSZWNvcmQ8T0F1dGhQcm92aWRlciwgUHJvdmlkZXJEaXNwbGF5SW5mbz4gPSB7XG4gIGdvb2dsZToge1xuICAgIGlkOiAnZ29vZ2xlJyxcbiAgICBuYW1lOiAnR29vZ2xlJyxcbiAgICBpY29uOiAnbG9nby1nb29nbGUnLFxuICAgIGNvbG9yOiAnI0RCNDQzNycsXG4gICAgYmdDb2xvcjogJyNEQjQ0MzcxNScsXG4gIH0sXG4gIGFwcGxlOiB7XG4gICAgaWQ6ICdhcHBsZScsXG4gICAgbmFtZTogJ0FwcGxlJyxcbiAgICBpY29uOiAnbG9nby1hcHBsZScsXG4gICAgY29sb3I6ICcjMDAwMDAwJyxcbiAgICBiZ0NvbG9yOiAnIzAwMDAwMDEwJyxcbiAgfSxcbiAgbWljcm9zb2Z0OiB7XG4gICAgaWQ6ICdtaWNyb3NvZnQnLFxuICAgIG5hbWU6ICdNaWNyb3NvZnQnLFxuICAgIGljb246ICdsb2dvLW1pY3Jvc29mdCcsXG4gICAgY29sb3I6ICcjMDBBNEVGJyxcbiAgICBiZ0NvbG9yOiAnIzAwQTRFRjE1JyxcbiAgfSxcbn07XG4iXX0=
|
|
@@ -120,9 +120,24 @@ export class StatsCardComponent {
|
|
|
120
120
|
@if (resolvedProps.footer && !resolvedProps.loading) {
|
|
121
121
|
<div class="stats-footer">{{ resolvedProps.footer }}</div>
|
|
122
122
|
}
|
|
123
|
+
|
|
124
|
+
@if (resolvedProps.description && !resolvedProps.loading) {
|
|
125
|
+
<div class="stats-description">{{ resolvedProps.description }}</div>
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
@if (resolvedProps.logo && !resolvedProps.loading) {
|
|
129
|
+
<div class="stats-logo">
|
|
130
|
+
<img
|
|
131
|
+
[src]="resolvedProps.logo.src"
|
|
132
|
+
[alt]="resolvedProps.logo.alt"
|
|
133
|
+
[style.max-height.px]="resolvedProps.logo.maxHeight || 32"
|
|
134
|
+
[style.max-width.px]="resolvedProps.logo.maxWidth || 120"
|
|
135
|
+
/>
|
|
136
|
+
</div>
|
|
137
|
+
}
|
|
123
138
|
</ion-card-content>
|
|
124
139
|
</ion-card>
|
|
125
|
-
`, isInline: true, styles: [":host{display:block}.stats-card{margin:0;border-radius:12px;cursor:pointer;transition:transform .2s,box-shadow .2s}.stats-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001f}.stats-card.background-light{--background: var(--ion-color-light)}.stats-card.background-light .stats-title,.stats-card.background-light .stats-footer{color:var(--ion-color-medium)}.stats-card.background-light .stats-value{color:var(--ion-text-color)}.stats-card.background-light .stats-icon{color:var(--card-color);opacity:.8}.stats-card.background-solid{--background: var(--card-color)}.stats-card.background-solid .stats-title,.stats-card.background-solid .stats-footer,.stats-card.background-solid .stats-value,.stats-card.background-solid .stats-icon{color:#fff}.stats-card.background-solid .stats-title,.stats-card.background-solid .stats-footer{opacity:.9}.stats-card.background-gradient{--background: linear-gradient(135deg, var(--card-color), var(--card-color-shade, var(--card-color)))}.stats-card.background-gradient .stats-title,.stats-card.background-gradient .stats-footer,.stats-card.background-gradient .stats-value,.stats-card.background-gradient .stats-icon{color:#fff}.stats-card.background-gradient .stats-title,.stats-card.background-gradient .stats-footer{opacity:.9}ion-card-content{padding:16px}.stats-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.stats-title{font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.stats-icon{font-size:24px}.stats-value{font-size:28px;font-weight:700;line-height:1.2;margin-bottom:8px}.stats-value .prefix,.stats-value .suffix{font-size:18px;font-weight:500;opacity:.8}.stats-value .prefix{margin-right:2px}.stats-value .suffix{margin-left:4px}.stats-trend{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:500;padding:4px 8px;border-radius:12px;margin-bottom:8px}.stats-trend ion-icon{font-size:16px}.stats-trend.trend-up{background-color:rgba(var(--ion-color-success-rgb),.15);color:var(--ion-color-success)}.stats-trend.trend-down{background-color:rgba(var(--ion-color-danger-rgb),.15);color:var(--ion-color-danger)}.stats-trend.trend-neutral{background-color:rgba(var(--ion-color-medium-rgb),.15);color:var(--ion-color-medium)}.stats-trend .trend-label{font-weight:400;opacity:.8;margin-left:4px}.stats-footer{font-size:12px;margin-top:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }] }); }
|
|
140
|
+
`, isInline: true, styles: [":host{display:block}.stats-card{margin:0;border-radius:12px;cursor:pointer;transition:transform .2s,box-shadow .2s}.stats-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001f}.stats-card.background-light{--background: var(--ion-color-light)}.stats-card.background-light .stats-title,.stats-card.background-light .stats-footer{color:var(--ion-color-medium)}.stats-card.background-light .stats-value{color:var(--ion-text-color)}.stats-card.background-light .stats-icon{color:var(--card-color);opacity:.8}.stats-card.background-solid{--background: var(--card-color)}.stats-card.background-solid .stats-title,.stats-card.background-solid .stats-footer,.stats-card.background-solid .stats-value,.stats-card.background-solid .stats-icon{color:#fff}.stats-card.background-solid .stats-title,.stats-card.background-solid .stats-footer{opacity:.9}.stats-card.background-gradient{--background: linear-gradient(135deg, var(--card-color), var(--card-color-shade, var(--card-color)))}.stats-card.background-gradient .stats-title,.stats-card.background-gradient .stats-footer,.stats-card.background-gradient .stats-value,.stats-card.background-gradient .stats-icon{color:#fff}.stats-card.background-gradient .stats-title,.stats-card.background-gradient .stats-footer{opacity:.9}ion-card-content{padding:16px}.stats-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.stats-title{font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.stats-icon{font-size:24px}.stats-value{font-size:28px;font-weight:700;line-height:1.2;margin-bottom:8px}.stats-value .prefix,.stats-value .suffix{font-size:18px;font-weight:500;opacity:.8}.stats-value .prefix{margin-right:2px}.stats-value .suffix{margin-left:4px}.stats-trend{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:500;padding:4px 8px;border-radius:12px;margin-bottom:8px}.stats-trend ion-icon{font-size:16px}.stats-trend.trend-up{background-color:rgba(var(--ion-color-success-rgb),.15);color:var(--ion-color-success)}.stats-trend.trend-down{background-color:rgba(var(--ion-color-danger-rgb),.15);color:var(--ion-color-danger)}.stats-trend.trend-neutral{background-color:rgba(var(--ion-color-medium-rgb),.15);color:var(--ion-color-medium)}.stats-trend .trend-label{font-weight:400;opacity:.8;margin-left:4px}.stats-footer{font-size:12px;margin-top:4px}.stats-description{margin-top:8px;font-size:14px;line-height:1.4;color:var(--ion-text-color);opacity:.8}.stats-logo{margin-top:16px;padding-top:12px;border-top:1px solid rgba(var(--ion-text-color-rgb),.1)}.stats-logo img{display:block;object-fit:contain;filter:grayscale(100%);opacity:.7;transition:filter .2s,opacity .2s}.stats-logo:hover img{filter:grayscale(0%);opacity:1}.background-solid .stats-description,.background-gradient .stats-description{color:#fff;opacity:.9}.background-solid .stats-logo,.background-gradient .stats-logo{border-top-color:#fff3}.background-solid .stats-logo img,.background-gradient .stats-logo img{filter:grayscale(100%) brightness(10)}.background-solid .stats-logo:hover img,.background-gradient .stats-logo:hover img{filter:brightness(10)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }] }); }
|
|
126
141
|
}
|
|
127
142
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StatsCardComponent, decorators: [{
|
|
128
143
|
type: Component,
|
|
@@ -168,9 +183,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
168
183
|
@if (resolvedProps.footer && !resolvedProps.loading) {
|
|
169
184
|
<div class="stats-footer">{{ resolvedProps.footer }}</div>
|
|
170
185
|
}
|
|
186
|
+
|
|
187
|
+
@if (resolvedProps.description && !resolvedProps.loading) {
|
|
188
|
+
<div class="stats-description">{{ resolvedProps.description }}</div>
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
@if (resolvedProps.logo && !resolvedProps.loading) {
|
|
192
|
+
<div class="stats-logo">
|
|
193
|
+
<img
|
|
194
|
+
[src]="resolvedProps.logo.src"
|
|
195
|
+
[alt]="resolvedProps.logo.alt"
|
|
196
|
+
[style.max-height.px]="resolvedProps.logo.maxHeight || 32"
|
|
197
|
+
[style.max-width.px]="resolvedProps.logo.maxWidth || 120"
|
|
198
|
+
/>
|
|
199
|
+
</div>
|
|
200
|
+
}
|
|
171
201
|
</ion-card-content>
|
|
172
202
|
</ion-card>
|
|
173
|
-
`, styles: [":host{display:block}.stats-card{margin:0;border-radius:12px;cursor:pointer;transition:transform .2s,box-shadow .2s}.stats-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001f}.stats-card.background-light{--background: var(--ion-color-light)}.stats-card.background-light .stats-title,.stats-card.background-light .stats-footer{color:var(--ion-color-medium)}.stats-card.background-light .stats-value{color:var(--ion-text-color)}.stats-card.background-light .stats-icon{color:var(--card-color);opacity:.8}.stats-card.background-solid{--background: var(--card-color)}.stats-card.background-solid .stats-title,.stats-card.background-solid .stats-footer,.stats-card.background-solid .stats-value,.stats-card.background-solid .stats-icon{color:#fff}.stats-card.background-solid .stats-title,.stats-card.background-solid .stats-footer{opacity:.9}.stats-card.background-gradient{--background: linear-gradient(135deg, var(--card-color), var(--card-color-shade, var(--card-color)))}.stats-card.background-gradient .stats-title,.stats-card.background-gradient .stats-footer,.stats-card.background-gradient .stats-value,.stats-card.background-gradient .stats-icon{color:#fff}.stats-card.background-gradient .stats-title,.stats-card.background-gradient .stats-footer{opacity:.9}ion-card-content{padding:16px}.stats-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.stats-title{font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.stats-icon{font-size:24px}.stats-value{font-size:28px;font-weight:700;line-height:1.2;margin-bottom:8px}.stats-value .prefix,.stats-value .suffix{font-size:18px;font-weight:500;opacity:.8}.stats-value .prefix{margin-right:2px}.stats-value .suffix{margin-left:4px}.stats-trend{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:500;padding:4px 8px;border-radius:12px;margin-bottom:8px}.stats-trend ion-icon{font-size:16px}.stats-trend.trend-up{background-color:rgba(var(--ion-color-success-rgb),.15);color:var(--ion-color-success)}.stats-trend.trend-down{background-color:rgba(var(--ion-color-danger-rgb),.15);color:var(--ion-color-danger)}.stats-trend.trend-neutral{background-color:rgba(var(--ion-color-medium-rgb),.15);color:var(--ion-color-medium)}.stats-trend .trend-label{font-weight:400;opacity:.8;margin-left:4px}.stats-footer{font-size:12px;margin-top:4px}\n"] }]
|
|
203
|
+
`, styles: [":host{display:block}.stats-card{margin:0;border-radius:12px;cursor:pointer;transition:transform .2s,box-shadow .2s}.stats-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001f}.stats-card.background-light{--background: var(--ion-color-light)}.stats-card.background-light .stats-title,.stats-card.background-light .stats-footer{color:var(--ion-color-medium)}.stats-card.background-light .stats-value{color:var(--ion-text-color)}.stats-card.background-light .stats-icon{color:var(--card-color);opacity:.8}.stats-card.background-solid{--background: var(--card-color)}.stats-card.background-solid .stats-title,.stats-card.background-solid .stats-footer,.stats-card.background-solid .stats-value,.stats-card.background-solid .stats-icon{color:#fff}.stats-card.background-solid .stats-title,.stats-card.background-solid .stats-footer{opacity:.9}.stats-card.background-gradient{--background: linear-gradient(135deg, var(--card-color), var(--card-color-shade, var(--card-color)))}.stats-card.background-gradient .stats-title,.stats-card.background-gradient .stats-footer,.stats-card.background-gradient .stats-value,.stats-card.background-gradient .stats-icon{color:#fff}.stats-card.background-gradient .stats-title,.stats-card.background-gradient .stats-footer{opacity:.9}ion-card-content{padding:16px}.stats-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.stats-title{font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.stats-icon{font-size:24px}.stats-value{font-size:28px;font-weight:700;line-height:1.2;margin-bottom:8px}.stats-value .prefix,.stats-value .suffix{font-size:18px;font-weight:500;opacity:.8}.stats-value .prefix{margin-right:2px}.stats-value .suffix{margin-left:4px}.stats-trend{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:500;padding:4px 8px;border-radius:12px;margin-bottom:8px}.stats-trend ion-icon{font-size:16px}.stats-trend.trend-up{background-color:rgba(var(--ion-color-success-rgb),.15);color:var(--ion-color-success)}.stats-trend.trend-down{background-color:rgba(var(--ion-color-danger-rgb),.15);color:var(--ion-color-danger)}.stats-trend.trend-neutral{background-color:rgba(var(--ion-color-medium-rgb),.15);color:var(--ion-color-medium)}.stats-trend .trend-label{font-weight:400;opacity:.8;margin-left:4px}.stats-footer{font-size:12px;margin-top:4px}.stats-description{margin-top:8px;font-size:14px;line-height:1.4;color:var(--ion-text-color);opacity:.8}.stats-logo{margin-top:16px;padding-top:12px;border-top:1px solid rgba(var(--ion-text-color-rgb),.1)}.stats-logo img{display:block;object-fit:contain;filter:grayscale(100%);opacity:.7;transition:filter .2s,opacity .2s}.stats-logo:hover img{filter:grayscale(0%);opacity:1}.background-solid .stats-description,.background-gradient .stats-description{color:#fff;opacity:.9}.background-solid .stats-logo,.background-gradient .stats-logo{border-top-color:#fff3}.background-solid .stats-logo img,.background-gradient .stats-logo img{filter:grayscale(100%) brightness(10)}.background-solid .stats-logo:hover img,.background-gradient .stats-logo:hover img{filter:brightness(10)}\n"] }]
|
|
174
204
|
}], propDecorators: { preset: [{
|
|
175
205
|
type: Input
|
|
176
206
|
}], props: [{
|
|
@@ -178,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
178
208
|
}], cardClick: [{
|
|
179
209
|
type: Output
|
|
180
210
|
}] } });
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3N0YXRzLWNhcmQvc3RhdHMtY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsWUFBWSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFbkgsUUFBUSxDQUFDLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQXFEaEc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQXhFL0I7UUF5RVUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUcvQixVQUFLLEdBQStCLEVBQUUsQ0FBQztRQUVoRCxrQkFBYSxHQUFzQixFQUF1QixDQUFDO1FBRWpELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRS9DLFNBQUksR0FBRyxJQUFJLENBQUM7S0FnRGI7SUE5Q0MsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU07WUFDN0IsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFnQztZQUM1RSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRVAsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixHQUFHLFdBQVc7WUFDZCxHQUFHLElBQUksQ0FBQyxLQUFLO1NBQ08sQ0FBQztJQUN6QixDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQztRQUNwRCxPQUFPLG1CQUFtQixLQUFLLEdBQUcsQ0FBQztJQUNyQyxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQztRQUNwRCxPQUFPLGNBQWMsRUFBRSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGFBQWE7UUFDWCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxTQUFTLElBQUksU0FBUyxDQUFDO1FBQ25FLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztRQUV0RCxJQUFJLFNBQVMsS0FBSyxTQUFTO1lBQUUsT0FBTyxlQUFlLENBQUM7UUFDcEQsSUFBSSxTQUFTLEtBQUssSUFBSTtZQUFFLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUNsRSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDNUMsQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxTQUFTLElBQUksU0FBUyxDQUFDO1FBQ25FLElBQUksU0FBUyxLQUFLLElBQUk7WUFBRSxPQUFPLGFBQWEsQ0FBQztRQUM3QyxJQUFJLFNBQVMsS0FBSyxNQUFNO1lBQUUsT0FBTyxlQUFlLENBQUM7UUFDakQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzsrR0F6RFUsa0JBQWtCO21HQUFsQixrQkFBa0Isa0xBcEVuQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Q1QsNjVFQTdDUyxZQUFZLCtCQUFFLE9BQU8seUxBQUUsY0FBYywrRUFBRSxPQUFPLDJKQUFFLGVBQWU7OzRGQXFFOUQsa0JBQWtCO2tCQXhFOUIsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsZUFBZSxDQUFDLFlBQ2hFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRDVDs4QkEyQlEsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFJSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkNhcmQsIElvbkNhcmRDb250ZW50LCBJb25JY29uLCBJb25Ta2VsZXRvblRleHQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQcmVzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlc2V0cyc7XG5pbXBvcnQgeyBTdGF0c0NhcmRNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyB0cmVuZGluZ1VwLCB0cmVuZGluZ0Rvd24sIHJlbW92ZSwgYW5hbHl0aWNzLCBwZW9wbGUsIGNhc2gsIGNhcnQsIGV5ZSwgaGVhcnQsIHN0YXIgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmFkZEljb25zKHsgdHJlbmRpbmdVcCwgdHJlbmRpbmdEb3duLCByZW1vdmUsIGFuYWx5dGljcywgcGVvcGxlLCBjYXNoLCBjYXJ0LCBleWUsIGhlYXJ0LCBzdGFyIH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtc3RhdHMtY2FyZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkNhcmQsIElvbkNhcmRDb250ZW50LCBJb25JY29uLCBJb25Ta2VsZXRvblRleHRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tY2FyZFxuICAgICAgY2xhc3M9XCJzdGF0cy1jYXJkXCJcbiAgICAgIFtjbGFzc109XCJnZXRCYWNrZ3JvdW5kQ2xhc3MoKVwiXG4gICAgICBbc3R5bGUuLS1jYXJkLWNvbG9yXT1cImdldENhcmRDb2xvcigpXCJcbiAgICAgIChjbGljayk9XCJjYXJkQ2xpY2suZW1pdCgpXCJcbiAgICA+XG4gICAgICA8aW9uLWNhcmQtY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRzLWhlYWRlclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RhdHMtdGl0bGVcIj57eyByZXNvbHZlZFByb3BzLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgIEBpZiAocmVzb2x2ZWRQcm9wcy5pY29uKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwicmVzb2x2ZWRQcm9wcy5pY29uXCIgY2xhc3M9XCJzdGF0cy1pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0cy12YWx1ZVwiPlxuICAgICAgICAgIEBpZiAocmVzb2x2ZWRQcm9wcy5sb2FkaW5nKSB7XG4gICAgICAgICAgICA8aW9uLXNrZWxldG9uLXRleHQgW2FuaW1hdGVkXT1cInRydWVcIiBzdHlsZT1cIndpZHRoOiA2MCU7IGhlaWdodDogMzJweDtcIj48L2lvbi1za2VsZXRvbi10ZXh0PlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgQGlmIChyZXNvbHZlZFByb3BzLnByZWZpeCkge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByZWZpeFwiPnt7IHJlc29sdmVkUHJvcHMucHJlZml4IH19PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7IHJlc29sdmVkUHJvcHMudmFsdWUgfX08L3NwYW4+XG4gICAgICAgICAgICBAaWYgKHJlc29sdmVkUHJvcHMuc3VmZml4KSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VmZml4XCI+e3sgcmVzb2x2ZWRQcm9wcy5zdWZmaXggfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBAaWYgKHJlc29sdmVkUHJvcHMudHJlbmQgJiYgIXJlc29sdmVkUHJvcHMubG9hZGluZykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0cy10cmVuZFwiIFtjbGFzc109XCJnZXRUcmVuZENsYXNzKClcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJnZXRUcmVuZEljb24oKVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRyZW5kLXZhbHVlXCI+e3sgTWF0aC5hYnMocmVzb2x2ZWRQcm9wcy50cmVuZC52YWx1ZSkgfX0lPC9zcGFuPlxuICAgICAgICAgICAgQGlmIChyZXNvbHZlZFByb3BzLnRyZW5kLmxhYmVsKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJlbmQtbGFiZWxcIj57eyByZXNvbHZlZFByb3BzLnRyZW5kLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChyZXNvbHZlZFByb3BzLmZvb3RlciAmJiAhcmVzb2x2ZWRQcm9wcy5sb2FkaW5nKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRzLWZvb3RlclwiPnt7IHJlc29sdmVkUHJvcHMuZm9vdGVyIH19PC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cbiAgICA8L2lvbi1jYXJkPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9zdGF0cy1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtc3RhdHMtY2FyZFxuICpcbiAqIEEgY2FyZCBjb21wb25lbnQgZm9yIGRpc3BsYXlpbmcgc3RhdGlzdGljcyBhbmQgS1BJcy5cbiAqIFN1cHBvcnRzIHByZXNldHMgZm9yIHJldXNhYmxlIGNvbmZpZ3VyYXRpb25zLlxuICpcbiAqIEBleGFtcGxlIFdpdGggcHJlc2V0OlxuICogPHZhbC1zdGF0cy1jYXJkIHByZXNldD1cImtwaVwiIFtwcm9wc109XCJ7IHRpdGxlOiAnVXNlcnMnLCB2YWx1ZTogMTAwMCB9XCI+PC92YWwtc3RhdHMtY2FyZD5cbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyB1c2FnZVxuICogPHZhbC1zdGF0cy1jYXJkIFtwcm9wc109XCJ7XG4gKiAgIHRpdGxlOiAnVG90YWwgVXNlcnMnLFxuICogICB2YWx1ZTogMTI1MDAsXG4gKiAgIGljb246ICdwZW9wbGUnLFxuICogICBjb2xvcjogJ3ByaW1hcnknXG4gKiB9XCI+PC92YWwtc3RhdHMtY2FyZD5cbiAqXG4gKiBAaW5wdXQgcHJlc2V0OiBzdHJpbmcgLSBOYW1lIG9mIHByZXNldCB0byBhcHBseVxuICogQGlucHV0IHByb3BzOiBTdGF0c0NhcmRNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBzdGF0cyBjYXJkXG4gKiBAb3V0cHV0IGNhcmRDbGljazogdm9pZCAtIEVtaXRzIHdoZW4gY2FyZCBpcyBjbGlja2VkXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGF0c0NhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgcHJlc2V0cyA9IGluamVjdChQcmVzZXRTZXJ2aWNlKTtcblxuICBASW5wdXQoKSBwcmVzZXQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHByb3BzOiBQYXJ0aWFsPFN0YXRzQ2FyZE1ldGFkYXRhPiA9IHt9O1xuXG4gIHJlc29sdmVkUHJvcHM6IFN0YXRzQ2FyZE1ldGFkYXRhID0ge30gYXMgU3RhdHNDYXJkTWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpIGNhcmRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBNYXRoID0gTWF0aDtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydwcmVzZXQnXSB8fCBjaGFuZ2VzWydwcm9wcyddKSB7XG4gICAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVByb3BzKCk6IHZvaWQge1xuICAgIGNvbnN0IHByZXNldFByb3BzID0gdGhpcy5wcmVzZXRcbiAgICAgID8gKHRoaXMucHJlc2V0cy5nZXQoJ3N0YXRzQ2FyZCcsIHRoaXMucHJlc2V0KSBhcyBQYXJ0aWFsPFN0YXRzQ2FyZE1ldGFkYXRhPilcbiAgICAgIDoge307XG5cbiAgICB0aGlzLnJlc29sdmVkUHJvcHMgPSB7XG4gICAgICAuLi5wcmVzZXRQcm9wcyxcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgfSBhcyBTdGF0c0NhcmRNZXRhZGF0YTtcbiAgfVxuXG4gIGdldENhcmRDb2xvcigpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbG9yID0gdGhpcy5yZXNvbHZlZFByb3BzLmNvbG9yIHx8ICdwcmltYXJ5JztcbiAgICByZXR1cm4gYHZhcigtLWlvbi1jb2xvci0ke2NvbG9yfSlgO1xuICB9XG5cbiAgZ2V0QmFja2dyb3VuZENsYXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmcgPSB0aGlzLnJlc29sdmVkUHJvcHMuYmFja2dyb3VuZCB8fCAnbGlnaHQnO1xuICAgIHJldHVybiBgYmFja2dyb3VuZC0ke2JnfWA7XG4gIH1cblxuICBnZXRUcmVuZENsYXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZGlyZWN0aW9uID0gdGhpcy5yZXNvbHZlZFByb3BzLnRyZW5kPy5kaXJlY3Rpb24gfHwgJ25ldXRyYWwnO1xuICAgIGNvbnN0IGludmVydCA9IHRoaXMucmVzb2x2ZWRQcm9wcy50cmVuZD8uaW52ZXJ0Q29sb3JzO1xuXG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ25ldXRyYWwnKSByZXR1cm4gJ3RyZW5kLW5ldXRyYWwnO1xuICAgIGlmIChkaXJlY3Rpb24gPT09ICd1cCcpIHJldHVybiBpbnZlcnQgPyAndHJlbmQtZG93bicgOiAndHJlbmQtdXAnO1xuICAgIHJldHVybiBpbnZlcnQgPyAndHJlbmQtdXAnIDogJ3RyZW5kLWRvd24nO1xuICB9XG5cbiAgZ2V0VHJlbmRJY29uKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZGlyZWN0aW9uID0gdGhpcy5yZXNvbHZlZFByb3BzLnRyZW5kPy5kaXJlY3Rpb24gfHwgJ25ldXRyYWwnO1xuICAgIGlmIChkaXJlY3Rpb24gPT09ICd1cCcpIHJldHVybiAndHJlbmRpbmctdXAnO1xuICAgIGlmIChkaXJlY3Rpb24gPT09ICdkb3duJykgcmV0dXJuICd0cmVuZGluZy1kb3duJztcbiAgICByZXR1cm4gJ3JlbW92ZSc7XG4gIH1cbn1cbiJdfQ==
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3N0YXRzLWNhcmQvc3RhdHMtY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsWUFBWSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFbkgsUUFBUSxDQUFDLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQW9FaEc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQXZGL0I7UUF3RlUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUcvQixVQUFLLEdBQStCLEVBQUUsQ0FBQztRQUVoRCxrQkFBYSxHQUFzQixFQUF1QixDQUFDO1FBRWpELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRS9DLFNBQUksR0FBRyxJQUFJLENBQUM7S0FnRGI7SUE5Q0MsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU07WUFDN0IsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFnQztZQUM1RSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRVAsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixHQUFHLFdBQVc7WUFDZCxHQUFHLElBQUksQ0FBQyxLQUFLO1NBQ08sQ0FBQztJQUN6QixDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQztRQUNwRCxPQUFPLG1CQUFtQixLQUFLLEdBQUcsQ0FBQztJQUNyQyxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQztRQUNwRCxPQUFPLGNBQWMsRUFBRSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGFBQWE7UUFDWCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxTQUFTLElBQUksU0FBUyxDQUFDO1FBQ25FLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztRQUV0RCxJQUFJLFNBQVMsS0FBSyxTQUFTO1lBQUUsT0FBTyxlQUFlLENBQUM7UUFDcEQsSUFBSSxTQUFTLEtBQUssSUFBSTtZQUFFLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUNsRSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDNUMsQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxTQUFTLElBQUksU0FBUyxDQUFDO1FBQ25FLElBQUksU0FBUyxLQUFLLElBQUk7WUFBRSxPQUFPLGFBQWEsQ0FBQztRQUM3QyxJQUFJLFNBQVMsS0FBSyxNQUFNO1lBQUUsT0FBTyxlQUFlLENBQUM7UUFDakQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzsrR0F6RFUsa0JBQWtCO21HQUFsQixrQkFBa0Isa0xBbkZuQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyRFQsbXFHQTVEUyxZQUFZLCtCQUFFLE9BQU8seUxBQUUsY0FBYywrRUFBRSxPQUFPLDJKQUFFLGVBQWU7OzRGQW9GOUQsa0JBQWtCO2tCQXZGOUIsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsZUFBZSxDQUFDLFlBQ2hFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJEVDs4QkEyQlEsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFJSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkNhcmQsIElvbkNhcmRDb250ZW50LCBJb25JY29uLCBJb25Ta2VsZXRvblRleHQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQcmVzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlc2V0cyc7XG5pbXBvcnQgeyBTdGF0c0NhcmRNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyB0cmVuZGluZ1VwLCB0cmVuZGluZ0Rvd24sIHJlbW92ZSwgYW5hbHl0aWNzLCBwZW9wbGUsIGNhc2gsIGNhcnQsIGV5ZSwgaGVhcnQsIHN0YXIgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmFkZEljb25zKHsgdHJlbmRpbmdVcCwgdHJlbmRpbmdEb3duLCByZW1vdmUsIGFuYWx5dGljcywgcGVvcGxlLCBjYXNoLCBjYXJ0LCBleWUsIGhlYXJ0LCBzdGFyIH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtc3RhdHMtY2FyZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkNhcmQsIElvbkNhcmRDb250ZW50LCBJb25JY29uLCBJb25Ta2VsZXRvblRleHRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tY2FyZFxuICAgICAgY2xhc3M9XCJzdGF0cy1jYXJkXCJcbiAgICAgIFtjbGFzc109XCJnZXRCYWNrZ3JvdW5kQ2xhc3MoKVwiXG4gICAgICBbc3R5bGUuLS1jYXJkLWNvbG9yXT1cImdldENhcmRDb2xvcigpXCJcbiAgICAgIChjbGljayk9XCJjYXJkQ2xpY2suZW1pdCgpXCJcbiAgICA+XG4gICAgICA8aW9uLWNhcmQtY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRzLWhlYWRlclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RhdHMtdGl0bGVcIj57eyByZXNvbHZlZFByb3BzLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgIEBpZiAocmVzb2x2ZWRQcm9wcy5pY29uKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwicmVzb2x2ZWRQcm9wcy5pY29uXCIgY2xhc3M9XCJzdGF0cy1pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0cy12YWx1ZVwiPlxuICAgICAgICAgIEBpZiAocmVzb2x2ZWRQcm9wcy5sb2FkaW5nKSB7XG4gICAgICAgICAgICA8aW9uLXNrZWxldG9uLXRleHQgW2FuaW1hdGVkXT1cInRydWVcIiBzdHlsZT1cIndpZHRoOiA2MCU7IGhlaWdodDogMzJweDtcIj48L2lvbi1za2VsZXRvbi10ZXh0PlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgQGlmIChyZXNvbHZlZFByb3BzLnByZWZpeCkge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByZWZpeFwiPnt7IHJlc29sdmVkUHJvcHMucHJlZml4IH19PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7IHJlc29sdmVkUHJvcHMudmFsdWUgfX08L3NwYW4+XG4gICAgICAgICAgICBAaWYgKHJlc29sdmVkUHJvcHMuc3VmZml4KSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VmZml4XCI+e3sgcmVzb2x2ZWRQcm9wcy5zdWZmaXggfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBAaWYgKHJlc29sdmVkUHJvcHMudHJlbmQgJiYgIXJlc29sdmVkUHJvcHMubG9hZGluZykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0cy10cmVuZFwiIFtjbGFzc109XCJnZXRUcmVuZENsYXNzKClcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJnZXRUcmVuZEljb24oKVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRyZW5kLXZhbHVlXCI+e3sgTWF0aC5hYnMocmVzb2x2ZWRQcm9wcy50cmVuZC52YWx1ZSkgfX0lPC9zcGFuPlxuICAgICAgICAgICAgQGlmIChyZXNvbHZlZFByb3BzLnRyZW5kLmxhYmVsKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJlbmQtbGFiZWxcIj57eyByZXNvbHZlZFByb3BzLnRyZW5kLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChyZXNvbHZlZFByb3BzLmZvb3RlciAmJiAhcmVzb2x2ZWRQcm9wcy5sb2FkaW5nKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRzLWZvb3RlclwiPnt7IHJlc29sdmVkUHJvcHMuZm9vdGVyIH19PC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKHJlc29sdmVkUHJvcHMuZGVzY3JpcHRpb24gJiYgIXJlc29sdmVkUHJvcHMubG9hZGluZykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0cy1kZXNjcmlwdGlvblwiPnt7IHJlc29sdmVkUHJvcHMuZGVzY3JpcHRpb24gfX08L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAocmVzb2x2ZWRQcm9wcy5sb2dvICYmICFyZXNvbHZlZFByb3BzLmxvYWRpbmcpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdHMtbG9nb1wiPlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICBbc3JjXT1cInJlc29sdmVkUHJvcHMubG9nby5zcmNcIlxuICAgICAgICAgICAgICBbYWx0XT1cInJlc29sdmVkUHJvcHMubG9nby5hbHRcIlxuICAgICAgICAgICAgICBbc3R5bGUubWF4LWhlaWdodC5weF09XCJyZXNvbHZlZFByb3BzLmxvZ28ubWF4SGVpZ2h0IHx8IDMyXCJcbiAgICAgICAgICAgICAgW3N0eWxlLm1heC13aWR0aC5weF09XCJyZXNvbHZlZFByb3BzLmxvZ28ubWF4V2lkdGggfHwgMTIwXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cbiAgICA8L2lvbi1jYXJkPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9zdGF0cy1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtc3RhdHMtY2FyZFxuICpcbiAqIEEgY2FyZCBjb21wb25lbnQgZm9yIGRpc3BsYXlpbmcgc3RhdGlzdGljcyBhbmQgS1BJcy5cbiAqIFN1cHBvcnRzIHByZXNldHMgZm9yIHJldXNhYmxlIGNvbmZpZ3VyYXRpb25zLlxuICpcbiAqIEBleGFtcGxlIFdpdGggcHJlc2V0OlxuICogPHZhbC1zdGF0cy1jYXJkIHByZXNldD1cImtwaVwiIFtwcm9wc109XCJ7IHRpdGxlOiAnVXNlcnMnLCB2YWx1ZTogMTAwMCB9XCI+PC92YWwtc3RhdHMtY2FyZD5cbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyB1c2FnZVxuICogPHZhbC1zdGF0cy1jYXJkIFtwcm9wc109XCJ7XG4gKiAgIHRpdGxlOiAnVG90YWwgVXNlcnMnLFxuICogICB2YWx1ZTogMTI1MDAsXG4gKiAgIGljb246ICdwZW9wbGUnLFxuICogICBjb2xvcjogJ3ByaW1hcnknXG4gKiB9XCI+PC92YWwtc3RhdHMtY2FyZD5cbiAqXG4gKiBAaW5wdXQgcHJlc2V0OiBzdHJpbmcgLSBOYW1lIG9mIHByZXNldCB0byBhcHBseVxuICogQGlucHV0IHByb3BzOiBTdGF0c0NhcmRNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBzdGF0cyBjYXJkXG4gKiBAb3V0cHV0IGNhcmRDbGljazogdm9pZCAtIEVtaXRzIHdoZW4gY2FyZCBpcyBjbGlja2VkXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGF0c0NhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgcHJlc2V0cyA9IGluamVjdChQcmVzZXRTZXJ2aWNlKTtcblxuICBASW5wdXQoKSBwcmVzZXQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHByb3BzOiBQYXJ0aWFsPFN0YXRzQ2FyZE1ldGFkYXRhPiA9IHt9O1xuXG4gIHJlc29sdmVkUHJvcHM6IFN0YXRzQ2FyZE1ldGFkYXRhID0ge30gYXMgU3RhdHNDYXJkTWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpIGNhcmRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBNYXRoID0gTWF0aDtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydwcmVzZXQnXSB8fCBjaGFuZ2VzWydwcm9wcyddKSB7XG4gICAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVByb3BzKCk6IHZvaWQge1xuICAgIGNvbnN0IHByZXNldFByb3BzID0gdGhpcy5wcmVzZXRcbiAgICAgID8gKHRoaXMucHJlc2V0cy5nZXQoJ3N0YXRzQ2FyZCcsIHRoaXMucHJlc2V0KSBhcyBQYXJ0aWFsPFN0YXRzQ2FyZE1ldGFkYXRhPilcbiAgICAgIDoge307XG5cbiAgICB0aGlzLnJlc29sdmVkUHJvcHMgPSB7XG4gICAgICAuLi5wcmVzZXRQcm9wcyxcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgfSBhcyBTdGF0c0NhcmRNZXRhZGF0YTtcbiAgfVxuXG4gIGdldENhcmRDb2xvcigpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbG9yID0gdGhpcy5yZXNvbHZlZFByb3BzLmNvbG9yIHx8ICdwcmltYXJ5JztcbiAgICByZXR1cm4gYHZhcigtLWlvbi1jb2xvci0ke2NvbG9yfSlgO1xuICB9XG5cbiAgZ2V0QmFja2dyb3VuZENsYXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmcgPSB0aGlzLnJlc29sdmVkUHJvcHMuYmFja2dyb3VuZCB8fCAnbGlnaHQnO1xuICAgIHJldHVybiBgYmFja2dyb3VuZC0ke2JnfWA7XG4gIH1cblxuICBnZXRUcmVuZENsYXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZGlyZWN0aW9uID0gdGhpcy5yZXNvbHZlZFByb3BzLnRyZW5kPy5kaXJlY3Rpb24gfHwgJ25ldXRyYWwnO1xuICAgIGNvbnN0IGludmVydCA9IHRoaXMucmVzb2x2ZWRQcm9wcy50cmVuZD8uaW52ZXJ0Q29sb3JzO1xuXG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ25ldXRyYWwnKSByZXR1cm4gJ3RyZW5kLW5ldXRyYWwnO1xuICAgIGlmIChkaXJlY3Rpb24gPT09ICd1cCcpIHJldHVybiBpbnZlcnQgPyAndHJlbmQtZG93bicgOiAndHJlbmQtdXAnO1xuICAgIHJldHVybiBpbnZlcnQgPyAndHJlbmQtdXAnIDogJ3RyZW5kLWRvd24nO1xuICB9XG5cbiAgZ2V0VHJlbmRJY29uKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZGlyZWN0aW9uID0gdGhpcy5yZXNvbHZlZFByb3BzLnRyZW5kPy5kaXJlY3Rpb24gfHwgJ25ldXRyYWwnO1xuICAgIGlmIChkaXJlY3Rpb24gPT09ICd1cCcpIHJldHVybiAndHJlbmRpbmctdXAnO1xuICAgIGlmIChkaXJlY3Rpb24gPT09ICdkb3duJykgcmV0dXJuICd0cmVuZGluZy1kb3duJztcbiAgICByZXR1cm4gJ3JlbW92ZSc7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3N0YXRzLWNhcmQvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuXG4vKipcbiAqIExvZ28gY29uZmlndXJhdGlvbiBmb3Igc3RhdHMgY2FyZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGF0c0NhcmRMb2dvIHtcbiAgLyoqIExvZ28gaW1hZ2UgVVJMICovXG4gIHNyYzogc3RyaW5nO1xuICAvKiogQWx0IHRleHQgZm9yIGFjY2Vzc2liaWxpdHkgKi9cbiAgYWx0OiBzdHJpbmc7XG4gIC8qKiBNYXggaGVpZ2h0IGluIHBpeGVscyAoZGVmYXVsdDogMzIpICovXG4gIG1heEhlaWdodD86IG51bWJlcjtcbiAgLyoqIE1heCB3aWR0aCBpbiBwaXhlbHMgKGRlZmF1bHQ6IDEyMCkgKi9cbiAgbWF4V2lkdGg/OiBudW1iZXI7XG59XG5cbi8qKlxuICogVHJlbmQgY29uZmlndXJhdGlvbiBmb3Igc3RhdHMgY2FyZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGF0c1RyZW5kIHtcbiAgLyoqIFRyZW5kIHZhbHVlIChwZXJjZW50YWdlIG9yIGFic29sdXRlKSAqL1xuICB2YWx1ZTogbnVtYmVyO1xuICAvKiogVHJlbmQgZGlyZWN0aW9uICovXG4gIGRpcmVjdGlvbjogJ3VwJyB8ICdkb3duJyB8ICduZXV0cmFsJztcbiAgLyoqIFRyZW5kIGxhYmVsIChlLmcuLCBcInZzIGxhc3QgbW9udGhcIikgKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBJbnZlcnQgY29sb3JzICh1cD1iYWQsIGRvd249Z29vZCkgKi9cbiAgaW52ZXJ0Q29sb3JzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBNZXRhZGF0YSBmb3IgdGhlIHN0YXRzIGNhcmQgY29tcG9uZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRzQ2FyZE1ldGFkYXRhIHtcbiAgLyoqIFN0YXQgdGl0bGUvbGFiZWwgKi9cbiAgdGl0bGU6IHN0cmluZztcbiAgLyoqIE1haW4gc3RhdCB2YWx1ZSAqL1xuICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xuICAvKiogVmFsdWUgcHJlZml4IChlLmcuLCBcIiRcIiwgXCLigqxcIikgKi9cbiAgcHJlZml4Pzogc3RyaW5nO1xuICAvKiogVmFsdWUgc3VmZml4IChlLmcuLCBcIiVcIiwgXCJ1c2Vyc1wiKSAqL1xuICBzdWZmaXg/OiBzdHJpbmc7XG4gIC8qKiBJY29uIG5hbWUgKi9cbiAgaWNvbj86IHN0cmluZztcbiAgLyoqIENhcmQgY29sb3IgKi9cbiAgY29sb3I/OiBDb2xvcjtcbiAgLyoqIEJhY2tncm91bmQgc3R5bGUgKi9cbiAgYmFja2dyb3VuZD86ICdzb2xpZCcgfCAnZ3JhZGllbnQnIHwgJ2xpZ2h0JztcbiAgLyoqIFRyZW5kIGluZGljYXRvciAqL1xuICB0cmVuZD86IFN0YXRzVHJlbmQ7XG4gIC8qKiBGb290ZXIgdGV4dCAqL1xuICBmb290ZXI/OiBzdHJpbmc7XG4gIC8qKiBEZXNjcmlwdGlvbiB0ZXh0IChmb3IgR2l0TGFiLXN0eWxlIGxheW91dCkgKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBDb21wYW55L2JyYW5kIGxvZ28gZGlzcGxheWVkIGF0IGJvdHRvbSAqL1xuICBsb2dvPzogU3RhdHNDYXJkTG9nbztcbiAgLyoqIExvYWRpbmcgc3RhdGUgKi9cbiAgbG9hZGluZz86IGJvb2xlYW47XG4gIC8qKiBVbmlxdWUgdG9rZW4gaWRlbnRpZmllciAqL1xuICB0b2tlbj86IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3VzZXJuYW1lLWlucHV0L3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbXBvbmVudFN0YXRlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG4vKipcbiAqIE1ldGFkYXRhIGZvciBVc2VybmFtZUlucHV0Q29tcG9uZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJuYW1lSW5wdXRNZXRhZGF0YSB7XG4gIC8qKiBGb3JtQ29udHJvbCBwYXJhIGVsIHZhbG9yIGRlbCB1c2VybmFtZSAqL1xuICBjb250cm9sOiBGb3JtQ29udHJvbDxzdHJpbmc+O1xuICAvKiogTGFiZWwgZGVsIGNhbXBvICovXG4gIGxhYmVsPzogc3RyaW5nO1xuICAvKiogUGxhY2Vob2xkZXIgZGVsIGlucHV0ICovXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAvKiogUHJlZmlqbyB2aXN1YWwgKGRlZmF1bHQ6ICdAJykgKi9cbiAgcHJlZml4Pzogc3RyaW5nO1xuICAvKiogTG9uZ2l0dWQgbcOtbmltYSBwZXJtaXRpZGEgKGRlZmF1bHQ6IDMpICovXG4gIG1pbkxlbmd0aD86IG51bWJlcjtcbiAgLyoqIExvbmdpdHVkIG3DoXhpbWEgcGVybWl0aWRhIChkZWZhdWx0OiAzMCkgKi9cbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogRnVuY2nDs24gcGFyYSB2ZXJpZmljYXIgZGlzcG9uaWJpbGlkYWQgZGVsIHVzZXJuYW1lICovXG4gIGNoZWNrQXZhaWxhYmlsaXR5PzogKGhhbmRsZTogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAvKiogTWVuc2FqZXMgZGUgZXJyb3IgcGVyc29uYWxpemFkb3MgKi9cbiAgZXJyb3JzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqIEVzdGFkbyBkZWwgY29tcG9uZW50ZSAqL1xuICBzdGF0ZT86IENvbXBvbmVudFN0YXRlO1xuICAvKiogTW9zdHJhciBpbmRpY2Fkb3IgZGUgZGlzcG9uaWJpbGlkYWQgKGRlZmF1bHQ6IHRydWUpICovXG4gIHNob3dBdmFpbGFiaWxpdHk/OiBib29sZWFuO1xuICAvKiogRGVib3VuY2UgZW4gbXMgcGFyYSBjaGVjayBkZSBkaXNwb25pYmlsaWRhZCAoZGVmYXVsdDogNTAwKSAqL1xuICBkZWJvdW5jZVRpbWU/OiBudW1iZXI7XG59XG5cbi8qKlxuICogRXN0YWRvIGRlIGRpc3BvbmliaWxpZGFkIGRlbCB1c2VybmFtZS5cbiAqL1xuZXhwb3J0IHR5cGUgVXNlcm5hbWVBdmFpbGFiaWxpdHlTdGF0dXMgPSAnaWRsZScgfCAnY2hlY2tpbmcnIHwgJ2F2YWlsYWJsZScgfCAndGFrZW4nIHwgJ2ludmFsaWQnO1xuIl19
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import { Component, Input, signal, computed, } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { IonInput, IonSpinner, IonIcon, IonText } from '@ionic/angular/standalone';
|
|
5
|
+
import { Subject, debounceTime, distinctUntilChanged, takeUntil, switchMap, of, catchError } from 'rxjs';
|
|
6
|
+
import { addIcons } from 'ionicons';
|
|
7
|
+
import { checkmarkCircle, closeCircle, alertCircle } from 'ionicons/icons';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/forms";
|
|
10
|
+
addIcons({ checkmarkCircle, closeCircle, alertCircle });
|
|
11
|
+
/**
|
|
12
|
+
* Username Input Component
|
|
13
|
+
*
|
|
14
|
+
* Input especializado para usernames/handles con:
|
|
15
|
+
* - Prefijo '@' visual
|
|
16
|
+
* - Validación de formato (alfanuméricos y _)
|
|
17
|
+
* - Normalización automática (lowercase, sin espacios)
|
|
18
|
+
* - Verificación de disponibilidad con debounce
|
|
19
|
+
* - Estados visuales: available, taken, checking
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* <val-username-input
|
|
23
|
+
* [props]="{
|
|
24
|
+
* control: usernameControl,
|
|
25
|
+
* label: 'Nombre de usuario',
|
|
26
|
+
* placeholder: 'tu_username',
|
|
27
|
+
* checkAvailability: checkFn
|
|
28
|
+
* }"
|
|
29
|
+
* />
|
|
30
|
+
*/
|
|
31
|
+
export class UsernameInputComponent {
|
|
32
|
+
constructor() {
|
|
33
|
+
this.destroy$ = new Subject();
|
|
34
|
+
this.checkAvailability$ = new Subject();
|
|
35
|
+
// Signals
|
|
36
|
+
this.isFocused = signal(false);
|
|
37
|
+
this.availabilityStatus = signal('idle');
|
|
38
|
+
// Computed
|
|
39
|
+
this.hasError = computed(() => {
|
|
40
|
+
const control = this.props?.control;
|
|
41
|
+
return control?.touched && control?.invalid;
|
|
42
|
+
});
|
|
43
|
+
this.showStatusMessage = computed(() => {
|
|
44
|
+
const status = this.availabilityStatus();
|
|
45
|
+
return status === 'available' || status === 'taken';
|
|
46
|
+
});
|
|
47
|
+
this.statusColor = computed(() => {
|
|
48
|
+
return this.availabilityStatus() === 'available' ? 'success' : 'danger';
|
|
49
|
+
});
|
|
50
|
+
this.statusMessage = computed(() => {
|
|
51
|
+
const status = this.availabilityStatus();
|
|
52
|
+
if (status === 'available')
|
|
53
|
+
return 'Username disponible';
|
|
54
|
+
if (status === 'taken')
|
|
55
|
+
return 'Username ya está en uso';
|
|
56
|
+
return '';
|
|
57
|
+
});
|
|
58
|
+
this.errorMessage = computed(() => {
|
|
59
|
+
const control = this.props?.control;
|
|
60
|
+
if (!control?.errors)
|
|
61
|
+
return '';
|
|
62
|
+
const errors = this.props?.errors || {};
|
|
63
|
+
if (control.errors['required']) {
|
|
64
|
+
return errors['required'] || 'El username es requerido';
|
|
65
|
+
}
|
|
66
|
+
if (control.errors['minlength']) {
|
|
67
|
+
const min = this.props?.minLength || 3;
|
|
68
|
+
return errors['minlength'] || `Mínimo ${min} caracteres`;
|
|
69
|
+
}
|
|
70
|
+
if (control.errors['maxlength']) {
|
|
71
|
+
const max = this.props?.maxLength || 30;
|
|
72
|
+
return errors['maxlength'] || `Máximo ${max} caracteres`;
|
|
73
|
+
}
|
|
74
|
+
if (control.errors['pattern']) {
|
|
75
|
+
return errors['pattern'] || 'Solo letras, números y guión bajo (_)';
|
|
76
|
+
}
|
|
77
|
+
return '';
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
ngOnInit() {
|
|
81
|
+
this.setupAvailabilityCheck();
|
|
82
|
+
}
|
|
83
|
+
ngOnDestroy() {
|
|
84
|
+
this.destroy$.next();
|
|
85
|
+
this.destroy$.complete();
|
|
86
|
+
}
|
|
87
|
+
onFocus() {
|
|
88
|
+
this.isFocused.set(true);
|
|
89
|
+
}
|
|
90
|
+
onBlur() {
|
|
91
|
+
this.isFocused.set(false);
|
|
92
|
+
this.props.control.markAsTouched();
|
|
93
|
+
}
|
|
94
|
+
onInput(event) {
|
|
95
|
+
const input = event.detail.value || '';
|
|
96
|
+
// Normalize: lowercase, remove spaces, only allow valid chars
|
|
97
|
+
const normalized = this.normalizeUsername(input);
|
|
98
|
+
if (normalized !== input) {
|
|
99
|
+
this.props.control.setValue(normalized, { emitEvent: false });
|
|
100
|
+
}
|
|
101
|
+
// Trigger availability check
|
|
102
|
+
if (this.props.checkAvailability && this.isValidFormat(normalized)) {
|
|
103
|
+
this.checkAvailability$.next(normalized);
|
|
104
|
+
}
|
|
105
|
+
else if (!this.isValidFormat(normalized) && normalized.length > 0) {
|
|
106
|
+
this.availabilityStatus.set('invalid');
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
this.availabilityStatus.set('idle');
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
setupAvailabilityCheck() {
|
|
113
|
+
if (!this.props?.checkAvailability)
|
|
114
|
+
return;
|
|
115
|
+
this.checkAvailability$
|
|
116
|
+
.pipe(debounceTime(this.props.debounceTime || 500), distinctUntilChanged(), switchMap(username => {
|
|
117
|
+
if (!username || username.length < (this.props.minLength || 3)) {
|
|
118
|
+
return of(null);
|
|
119
|
+
}
|
|
120
|
+
this.availabilityStatus.set('checking');
|
|
121
|
+
return this.props.checkAvailability(username).pipe(catchError(() => of(null)));
|
|
122
|
+
}), takeUntil(this.destroy$))
|
|
123
|
+
.subscribe(available => {
|
|
124
|
+
if (available === null) {
|
|
125
|
+
this.availabilityStatus.set('idle');
|
|
126
|
+
}
|
|
127
|
+
else if (available) {
|
|
128
|
+
this.availabilityStatus.set('available');
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
this.availabilityStatus.set('taken');
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
normalizeUsername(value) {
|
|
136
|
+
return value
|
|
137
|
+
.toLowerCase()
|
|
138
|
+
.replace(/\s/g, '')
|
|
139
|
+
.replace(/[^a-z0-9_]/g, '');
|
|
140
|
+
}
|
|
141
|
+
isValidFormat(value) {
|
|
142
|
+
if (!value)
|
|
143
|
+
return false;
|
|
144
|
+
const minLen = this.props?.minLength || 3;
|
|
145
|
+
const maxLen = this.props?.maxLength || 30;
|
|
146
|
+
const pattern = /^[a-z0-9_]+$/;
|
|
147
|
+
return value.length >= minLen && value.length <= maxLen && pattern.test(value);
|
|
148
|
+
}
|
|
149
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UsernameInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
150
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: UsernameInputComponent, isStandalone: true, selector: "val-username-input", inputs: { props: "props" }, ngImport: i0, template: `
|
|
151
|
+
<div class="username-input-container">
|
|
152
|
+
@if (props.label) {
|
|
153
|
+
<label class="username-label">{{ props.label }}</label>
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
<div class="username-input-wrapper" [class.focused]="isFocused()" [class.error]="hasError()">
|
|
157
|
+
<span class="username-prefix">{{ props.prefix || '@' }}</span>
|
|
158
|
+
<ion-input
|
|
159
|
+
[formControl]="props.control"
|
|
160
|
+
type="text"
|
|
161
|
+
[placeholder]="props.placeholder || 'username'"
|
|
162
|
+
[maxlength]="props.maxLength || 30"
|
|
163
|
+
(ionFocus)="onFocus()"
|
|
164
|
+
(ionBlur)="onBlur()"
|
|
165
|
+
(ionInput)="onInput($event)"
|
|
166
|
+
class="username-field"
|
|
167
|
+
/>
|
|
168
|
+
|
|
169
|
+
@if (props.showAvailability !== false) {
|
|
170
|
+
<div class="availability-indicator">
|
|
171
|
+
@switch (availabilityStatus()) {
|
|
172
|
+
@case ('checking') {
|
|
173
|
+
<ion-spinner name="crescent" class="checking-spinner" />
|
|
174
|
+
}
|
|
175
|
+
@case ('available') {
|
|
176
|
+
<ion-icon name="checkmark-circle" class="status-icon available" />
|
|
177
|
+
}
|
|
178
|
+
@case ('taken') {
|
|
179
|
+
<ion-icon name="close-circle" class="status-icon taken" />
|
|
180
|
+
}
|
|
181
|
+
@case ('invalid') {
|
|
182
|
+
<ion-icon name="alert-circle" class="status-icon invalid" />
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
</div>
|
|
186
|
+
}
|
|
187
|
+
</div>
|
|
188
|
+
|
|
189
|
+
@if (showStatusMessage()) {
|
|
190
|
+
<ion-text [color]="statusColor()" class="status-message">
|
|
191
|
+
<small>{{ statusMessage() }}</small>
|
|
192
|
+
</ion-text>
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
@if (hasError() && errorMessage()) {
|
|
196
|
+
<ion-text color="danger" class="error-message">
|
|
197
|
+
<small>{{ errorMessage() }}</small>
|
|
198
|
+
</ion-text>
|
|
199
|
+
}
|
|
200
|
+
</div>
|
|
201
|
+
`, isInline: true, styles: [".username-input-container{margin-bottom:1rem}.username-label{display:block;font-size:.875rem;font-weight:500;color:var(--ion-color-dark);margin-bottom:.5rem}.username-input-wrapper{display:flex;align-items:center;background:var(--ion-background-color, #fff);border:1px solid var(--ion-border-color, #e0e0e0);border-radius:8px;padding:0 .75rem;transition:border-color .2s,box-shadow .2s}.username-input-wrapper.focused{border-color:var(--ion-color-primary);box-shadow:0 0 0 2px var(--ion-color-primary-tint)}.username-input-wrapper.error{border-color:var(--ion-color-danger)}.username-prefix{font-size:1rem;font-weight:500;color:var(--ion-color-medium);-webkit-user-select:none;user-select:none}.username-field{flex:1;--padding-start: .25rem;--padding-end: 0;--background: transparent;font-size:1rem}.username-field::part(native){padding-left:.25rem}.availability-indicator{display:flex;align-items:center;justify-content:center;width:24px;height:24px;margin-left:.5rem}.checking-spinner{width:18px;height:18px;--color: var(--ion-color-medium)}.status-icon{font-size:1.25rem}.status-icon.available{color:var(--ion-color-success)}.status-icon.taken{color:var(--ion-color-danger)}.status-icon.invalid{color:var(--ion-color-warning)}.status-message,.error-message{display:block;margin-top:.25rem;padding-left:.25rem}:host-context(body.dark){.username-input-wrapper{background:var(--ion-color-step-50);border-color:var(--ion-color-step-150)}.username-label{color:var(--ion-color-light)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
|
|
202
|
+
}
|
|
203
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UsernameInputComponent, decorators: [{
|
|
204
|
+
type: Component,
|
|
205
|
+
args: [{ selector: 'val-username-input', standalone: true, imports: [CommonModule, ReactiveFormsModule, IonInput, IonSpinner, IonIcon, IonText], template: `
|
|
206
|
+
<div class="username-input-container">
|
|
207
|
+
@if (props.label) {
|
|
208
|
+
<label class="username-label">{{ props.label }}</label>
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
<div class="username-input-wrapper" [class.focused]="isFocused()" [class.error]="hasError()">
|
|
212
|
+
<span class="username-prefix">{{ props.prefix || '@' }}</span>
|
|
213
|
+
<ion-input
|
|
214
|
+
[formControl]="props.control"
|
|
215
|
+
type="text"
|
|
216
|
+
[placeholder]="props.placeholder || 'username'"
|
|
217
|
+
[maxlength]="props.maxLength || 30"
|
|
218
|
+
(ionFocus)="onFocus()"
|
|
219
|
+
(ionBlur)="onBlur()"
|
|
220
|
+
(ionInput)="onInput($event)"
|
|
221
|
+
class="username-field"
|
|
222
|
+
/>
|
|
223
|
+
|
|
224
|
+
@if (props.showAvailability !== false) {
|
|
225
|
+
<div class="availability-indicator">
|
|
226
|
+
@switch (availabilityStatus()) {
|
|
227
|
+
@case ('checking') {
|
|
228
|
+
<ion-spinner name="crescent" class="checking-spinner" />
|
|
229
|
+
}
|
|
230
|
+
@case ('available') {
|
|
231
|
+
<ion-icon name="checkmark-circle" class="status-icon available" />
|
|
232
|
+
}
|
|
233
|
+
@case ('taken') {
|
|
234
|
+
<ion-icon name="close-circle" class="status-icon taken" />
|
|
235
|
+
}
|
|
236
|
+
@case ('invalid') {
|
|
237
|
+
<ion-icon name="alert-circle" class="status-icon invalid" />
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
</div>
|
|
241
|
+
}
|
|
242
|
+
</div>
|
|
243
|
+
|
|
244
|
+
@if (showStatusMessage()) {
|
|
245
|
+
<ion-text [color]="statusColor()" class="status-message">
|
|
246
|
+
<small>{{ statusMessage() }}</small>
|
|
247
|
+
</ion-text>
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
@if (hasError() && errorMessage()) {
|
|
251
|
+
<ion-text color="danger" class="error-message">
|
|
252
|
+
<small>{{ errorMessage() }}</small>
|
|
253
|
+
</ion-text>
|
|
254
|
+
}
|
|
255
|
+
</div>
|
|
256
|
+
`, styles: [".username-input-container{margin-bottom:1rem}.username-label{display:block;font-size:.875rem;font-weight:500;color:var(--ion-color-dark);margin-bottom:.5rem}.username-input-wrapper{display:flex;align-items:center;background:var(--ion-background-color, #fff);border:1px solid var(--ion-border-color, #e0e0e0);border-radius:8px;padding:0 .75rem;transition:border-color .2s,box-shadow .2s}.username-input-wrapper.focused{border-color:var(--ion-color-primary);box-shadow:0 0 0 2px var(--ion-color-primary-tint)}.username-input-wrapper.error{border-color:var(--ion-color-danger)}.username-prefix{font-size:1rem;font-weight:500;color:var(--ion-color-medium);-webkit-user-select:none;user-select:none}.username-field{flex:1;--padding-start: .25rem;--padding-end: 0;--background: transparent;font-size:1rem}.username-field::part(native){padding-left:.25rem}.availability-indicator{display:flex;align-items:center;justify-content:center;width:24px;height:24px;margin-left:.5rem}.checking-spinner{width:18px;height:18px;--color: var(--ion-color-medium)}.status-icon{font-size:1.25rem}.status-icon.available{color:var(--ion-color-success)}.status-icon.taken{color:var(--ion-color-danger)}.status-icon.invalid{color:var(--ion-color-warning)}.status-message,.error-message{display:block;margin-top:.25rem;padding-left:.25rem}:host-context(body.dark){.username-input-wrapper{background:var(--ion-color-step-50);border-color:var(--ion-color-step-150)}.username-label{color:var(--ion-color-light)}}\n"] }]
|
|
257
|
+
}], propDecorators: { props: [{
|
|
258
|
+
type: Input
|
|
259
|
+
}] } });
|
|
260
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcm5hbWUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy91c2VybmFtZS1pbnB1dC91c2VybmFtZS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBR0wsTUFBTSxFQUNOLFFBQVEsR0FFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHM0UsUUFBUSxDQUFDLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBRXhEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBK0pILE1BQU0sT0FBTyxzQkFBc0I7SUE5Sm5DO1FBaUtVLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQy9CLHVCQUFrQixHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFFbkQsVUFBVTtRQUNWLGNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsdUJBQWtCLEdBQUcs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QUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVPLGFBQWEsQ0FBQyxLQUFhO1FBQ2pDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLElBQUksQ0FBQyxDQUFDO1FBQzFDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUM7UUFDL0IsT0FBTyxLQUFLLENBQUMsTUFBTSxJQUFJLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLE1BQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pGLENBQUM7K0dBeklVLHNCQUFzQjttR0FBdEIsc0JBQXNCLDBHQTFKdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1EVCxxaERBcERTLFlBQVksOEJBQUUsbUJBQW1CLDZkQUFFLFFBQVEsOGVBQUUsVUFBVSx5R0FBRSxPQUFPLDJKQUFFLE9BQU87OzRGQTJKeEUsc0JBQXNCO2tCQTlKbEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxZQUMxRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbURUOzhCQXdHUSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbiAgc2lnbmFsLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uSW5wdXQsIElvblNwaW5uZXIsIElvbkljb24sIElvblRleHQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IFN1YmplY3QsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCwgc3dpdGNoTWFwLCBvZiwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBjaGVja21hcmtDaXJjbGUsIGNsb3NlQ2lyY2xlLCBhbGVydENpcmNsZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IFVzZXJuYW1lSW5wdXRNZXRhZGF0YSwgVXNlcm5hbWVBdmFpbGFiaWxpdHlTdGF0dXMgfSBmcm9tICcuL3R5cGVzJztcblxuYWRkSWNvbnMoeyBjaGVja21hcmtDaXJjbGUsIGNsb3NlQ2lyY2xlLCBhbGVydENpcmNsZSB9KTtcblxuLyoqXG4gKiBVc2VybmFtZSBJbnB1dCBDb21wb25lbnRcbiAqXG4gKiBJbnB1dCBlc3BlY2lhbGl6YWRvIHBhcmEgdXNlcm5hbWVzL2hhbmRsZXMgY29uOlxuICogLSBQcmVmaWpvICdAJyB2aXN1YWxcbiAqIC0gVmFsaWRhY2nDs24gZGUgZm9ybWF0byAoYWxmYW51bcOpcmljb3MgeSBfKVxuICogLSBOb3JtYWxpemFjacOzbiBhdXRvbcOhdGljYSAobG93ZXJjYXNlLCBzaW4gZXNwYWNpb3MpXG4gKiAtIFZlcmlmaWNhY2nDs24gZGUgZGlzcG9uaWJpbGlkYWQgY29uIGRlYm91bmNlXG4gKiAtIEVzdGFkb3MgdmlzdWFsZXM6IGF2YWlsYWJsZSwgdGFrZW4sIGNoZWNraW5nXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtdXNlcm5hbWUtaW5wdXRcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBjb250cm9sOiB1c2VybmFtZUNvbnRyb2wsXG4gKiAgICAgbGFiZWw6ICdOb21icmUgZGUgdXN1YXJpbycsXG4gKiAgICAgcGxhY2Vob2xkZXI6ICd0dV91c2VybmFtZScsXG4gKiAgICAgY2hlY2tBdmFpbGFiaWxpdHk6IGNoZWNrRm5cbiAqICAgfVwiXG4gKiAvPlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtdXNlcm5hbWUtaW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBJb25JbnB1dCwgSW9uU3Bpbm5lciwgSW9uSWNvbiwgSW9uVGV4dF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInVzZXJuYW1lLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgQGlmIChwcm9wcy5sYWJlbCkge1xuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ1c2VybmFtZS1sYWJlbFwiPnt7IHByb3BzLmxhYmVsIH19PC9sYWJlbD5cbiAgICAgIH1cblxuICAgICAgPGRpdiBjbGFzcz1cInVzZXJuYW1lLWlucHV0LXdyYXBwZXJcIiBbY2xhc3MuZm9jdXNlZF09XCJpc0ZvY3VzZWQoKVwiIFtjbGFzcy5lcnJvcl09XCJoYXNFcnJvcigpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidXNlcm5hbWUtcHJlZml4XCI+e3sgcHJvcHMucHJlZml4IHx8ICdAJyB9fTwvc3Bhbj5cbiAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJwcm9wcy5jb250cm9sXCJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInByb3BzLnBsYWNlaG9sZGVyIHx8ICd1c2VybmFtZSdcIlxuICAgICAgICAgIFttYXhsZW5ndGhdPVwicHJvcHMubWF4TGVuZ3RoIHx8IDMwXCJcbiAgICAgICAgICAoaW9uRm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAgICAgICAoaW9uQmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAgICAgKGlvbklucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgICAgY2xhc3M9XCJ1c2VybmFtZS1maWVsZFwiXG4gICAgICAgIC8+XG5cbiAgICAgICAgQGlmIChwcm9wcy5zaG93QXZhaWxhYmlsaXR5ICE9PSBmYWxzZSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmFpbGFiaWxpdHktaW5kaWNhdG9yXCI+XG4gICAgICAgICAgICBAc3dpdGNoIChhdmFpbGFiaWxpdHlTdGF0dXMoKSkge1xuICAgICAgICAgICAgICBAY2FzZSAoJ2NoZWNraW5nJykge1xuICAgICAgICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIiBjbGFzcz1cImNoZWNraW5nLXNwaW5uZXJcIiAvPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBjYXNlICgnYXZhaWxhYmxlJykge1xuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hlY2ttYXJrLWNpcmNsZVwiIGNsYXNzPVwic3RhdHVzLWljb24gYXZhaWxhYmxlXCIgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAY2FzZSAoJ3Rha2VuJykge1xuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2xvc2UtY2lyY2xlXCIgY2xhc3M9XCJzdGF0dXMtaWNvbiB0YWtlblwiIC8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGNhc2UgKCdpbnZhbGlkJykge1xuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiYWxlcnQtY2lyY2xlXCIgY2xhc3M9XCJzdGF0dXMtaWNvbiBpbnZhbGlkXCIgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmIChzaG93U3RhdHVzTWVzc2FnZSgpKSB7XG4gICAgICAgIDxpb24tdGV4dCBbY29sb3JdPVwic3RhdHVzQ29sb3IoKVwiIGNsYXNzPVwic3RhdHVzLW1lc3NhZ2VcIj5cbiAgICAgICAgICA8c21hbGw+e3sgc3RhdHVzTWVzc2FnZSgpIH19PC9zbWFsbD5cbiAgICAgICAgPC9pb24tdGV4dD5cbiAgICAgIH1cblxuICAgICAgQGlmIChoYXNFcnJvcigpICYmIGVycm9yTWVzc2FnZSgpKSB7XG4gICAgICAgIDxpb24tdGV4dCBjb2xvcj1cImRhbmdlclwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlxuICAgICAgICAgIDxzbWFsbD57eyBlcnJvck1lc3NhZ2UoKSB9fTwvc21hbGw+XG4gICAgICAgIDwvaW9uLXRleHQ+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW2BcbiAgICAudXNlcm5hbWUtaW5wdXQtY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuXG4gICAgLnVzZXJuYW1lLWxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgIH1cblxuICAgIC51c2VybmFtZS1pbnB1dC13cmFwcGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW9uLWJvcmRlci1jb2xvciwgI2UwZTBlMCk7XG4gICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICBwYWRkaW5nOiAwIDAuNzVyZW07XG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycywgYm94LXNoYWRvdyAwLjJzO1xuICAgIH1cblxuICAgIC51c2VybmFtZS1pbnB1dC13cmFwcGVyLmZvY3VzZWQge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0taW9uLWNvbG9yLXByaW1hcnktdGludCk7XG4gICAgfVxuXG4gICAgLnVzZXJuYW1lLWlucHV0LXdyYXBwZXIuZXJyb3Ige1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyKTtcbiAgICB9XG5cbiAgICAudXNlcm5hbWUtcHJlZml4IHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB9XG5cbiAgICAudXNlcm5hbWUtZmllbGQge1xuICAgICAgZmxleDogMTtcbiAgICAgIC0tcGFkZGluZy1zdGFydDogMC4yNXJlbTtcbiAgICAgIC0tcGFkZGluZy1lbmQ6IDA7XG4gICAgICAtLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgIH1cblxuICAgIC51c2VybmFtZS1maWVsZDo6cGFydChuYXRpdmUpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICB9XG5cbiAgICAuYXZhaWxhYmlsaXR5LWluZGljYXRvciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgIH1cblxuICAgIC5jaGVja2luZy1zcGlubmVyIHtcbiAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgLS1jb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgfVxuXG4gICAgLnN0YXR1cy1pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICB9XG5cbiAgICAuc3RhdHVzLWljb24uYXZhaWxhYmxlIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3Itc3VjY2Vzcyk7XG4gICAgfVxuXG4gICAgLnN0YXR1cy1pY29uLnRha2VuIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyKTtcbiAgICB9XG5cbiAgICAuc3RhdHVzLWljb24uaW52YWxpZCB7XG4gICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXdhcm5pbmcpO1xuICAgIH1cblxuICAgIC5zdGF0dXMtbWVzc2FnZSxcbiAgICAuZXJyb3ItbWVzc2FnZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi10b3A6IDAuMjVyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgfVxuXG4gICAgLyogRGFyayBtb2RlICovXG4gICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIHtcbiAgICAgIC51c2VybmFtZS1pbnB1dC13cmFwcGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLXN0ZXAtNTApO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWlvbi1jb2xvci1zdGVwLTE1MCk7XG4gICAgICB9XG5cbiAgICAgIC51c2VybmFtZS1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbGlnaHQpO1xuICAgICAgfVxuICAgIH1cbiAgYF0sXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJuYW1lSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHByb3BzITogVXNlcm5hbWVJbnB1dE1ldGFkYXRhO1xuXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIGNoZWNrQXZhaWxhYmlsaXR5JCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAvLyBTaWduYWxzXG4gIGlzRm9jdXNlZCA9IHNpZ25hbChmYWxzZSk7XG4gIGF2YWlsYWJpbGl0eVN0YXR1cyA9IHNpZ25hbDxVc2VybmFtZUF2YWlsYWJpbGl0eVN0YXR1cz4oJ2lkbGUnKTtcblxuICAvLyBDb21wdXRlZFxuICBoYXNFcnJvciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5wcm9wcz8uY29udHJvbDtcbiAgICByZXR1cm4gY29udHJvbD8udG91Y2hlZCAmJiBjb250cm9sPy5pbnZhbGlkO1xuICB9KTtcblxuICBzaG93U3RhdHVzTWVzc2FnZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzdGF0dXMgPSB0aGlzLmF2YWlsYWJpbGl0eVN0YXR1cygpO1xuICAgIHJldHVybiBzdGF0dXMgPT09ICdhdmFpbGFibGUnIHx8IHN0YXR1cyA9PT0gJ3Rha2VuJztcbiAgfSk7XG5cbiAgc3RhdHVzQ29sb3IgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYXZhaWxhYmlsaXR5U3RhdHVzKCkgPT09ICdhdmFpbGFibGUnID8gJ3N1Y2Nlc3MnIDogJ2Rhbmdlcic7XG4gIH0pO1xuXG4gIHN0YXR1c01lc3NhZ2UgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5hdmFpbGFiaWxpdHlTdGF0dXMoKTtcbiAgICBpZiAoc3RhdHVzID09PSAnYXZhaWxhYmxlJykgcmV0dXJuICdVc2VybmFtZSBkaXNwb25pYmxlJztcbiAgICBpZiAoc3RhdHVzID09PSAndGFrZW4nKSByZXR1cm4gJ1VzZXJuYW1lIHlhIGVzdMOhIGVuIHVzbyc7XG4gICAgcmV0dXJuICcnO1xuICB9KTtcblxuICBlcnJvck1lc3NhZ2UgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMucHJvcHM/LmNvbnRyb2w7XG4gICAgaWYgKCFjb250cm9sPy5lcnJvcnMpIHJldHVybiAnJztcblxuICAgIGNvbnN0IGVycm9ycyA9IHRoaXMucHJvcHM/LmVycm9ycyB8fCB7fTtcblxuICAgIGlmIChjb250cm9sLmVycm9yc1sncmVxdWlyZWQnXSkge1xuICAgICAgcmV0dXJuIGVycm9yc1sncmVxdWlyZWQnXSB8fCAnRWwgdXNlcm5hbWUgZXMgcmVxdWVyaWRvJztcbiAgICB9XG4gICAgaWYgKGNvbnRyb2wuZXJyb3JzWydtaW5sZW5ndGgnXSkge1xuICAgICAgY29uc3QgbWluID0gdGhpcy5wcm9wcz8ubWluTGVuZ3RoIHx8IDM7XG4gICAgICByZXR1cm4gZXJyb3JzWydtaW5sZW5ndGgnXSB8fCBgTcOtbmltbyAke21pbn0gY2FyYWN0ZXJlc2A7XG4gICAgfVxuICAgIGlmIChjb250cm9sLmVycm9yc1snbWF4bGVuZ3RoJ10pIHtcbiAgICAgIGNvbnN0IG1heCA9IHRoaXMucHJvcHM/Lm1heExlbmd0aCB8fCAzMDtcbiAgICAgIHJldHVybiBlcnJvcnNbJ21heGxlbmd0aCddIHx8IGBNw6F4aW1vICR7bWF4fSBjYXJhY3RlcmVzYDtcbiAgICB9XG4gICAgaWYgKGNvbnRyb2wuZXJyb3JzWydwYXR0ZXJuJ10pIHtcbiAgICAgIHJldHVybiBlcnJvcnNbJ3BhdHRlcm4nXSB8fCAnU29sbyBsZXRyYXMsIG7Dum1lcm9zIHkgZ3Vpw7NuIGJham8gKF8pJztcbiAgICB9XG5cbiAgICByZXR1cm4gJyc7XG4gIH0pO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0dXBBdmFpbGFiaWxpdHlDaGVjaygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmlzRm9jdXNlZC5zZXQodHJ1ZSk7XG4gIH1cblxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5pc0ZvY3VzZWQuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnByb3BzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICB9XG5cbiAgb25JbnB1dChldmVudDogQ3VzdG9tRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LmRldGFpbC52YWx1ZSB8fCAnJztcbiAgICAvLyBOb3JtYWxpemU6IGxvd2VyY2FzZSwgcmVtb3ZlIHNwYWNlcywgb25seSBhbGxvdyB2YWxpZCBjaGFyc1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB0aGlzLm5vcm1hbGl6ZVVzZXJuYW1lKGlucHV0KTtcblxuICAgIGlmIChub3JtYWxpemVkICE9PSBpbnB1dCkge1xuICAgICAgdGhpcy5wcm9wcy5jb250cm9sLnNldFZhbHVlKG5vcm1hbGl6ZWQsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9XG5cbiAgICAvLyBUcmlnZ2VyIGF2YWlsYWJpbGl0eSBjaGVja1xuICAgIGlmICh0aGlzLnByb3BzLmNoZWNrQXZhaWxhYmlsaXR5ICYmIHRoaXMuaXNWYWxpZEZvcm1hdChub3JtYWxpemVkKSkge1xuICAgICAgdGhpcy5jaGVja0F2YWlsYWJpbGl0eSQubmV4dChub3JtYWxpemVkKTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmlzVmFsaWRGb3JtYXQobm9ybWFsaXplZCkgJiYgbm9ybWFsaXplZC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmF2YWlsYWJpbGl0eVN0YXR1cy5zZXQoJ2ludmFsaWQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hdmFpbGFiaWxpdHlTdGF0dXMuc2V0KCdpZGxlJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cEF2YWlsYWJpbGl0eUNoZWNrKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wcm9wcz8uY2hlY2tBdmFpbGFiaWxpdHkpIHJldHVybjtcblxuICAgIHRoaXMuY2hlY2tBdmFpbGFiaWxpdHkkXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMucHJvcHMuZGVib3VuY2VUaW1lIHx8IDUwMCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHN3aXRjaE1hcCh1c2VybmFtZSA9PiB7XG4gICAgICAgICAgaWYgKCF1c2VybmFtZSB8fCB1c2VybmFtZS5sZW5ndGggPCAodGhpcy5wcm9wcy5taW5MZW5ndGggfHwgMykpIHtcbiAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmF2YWlsYWJpbGl0eVN0YXR1cy5zZXQoJ2NoZWNraW5nJyk7XG5cbiAgICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5jaGVja0F2YWlsYWJpbGl0eSEodXNlcm5hbWUpLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKG51bGwpKVxuICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoYXZhaWxhYmxlID0+IHtcbiAgICAgICAgaWYgKGF2YWlsYWJsZSA9PT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMuYXZhaWxhYmlsaXR5U3RhdHVzLnNldCgnaWRsZScpO1xuICAgICAgICB9IGVsc2UgaWYgKGF2YWlsYWJsZSkge1xuICAgICAgICAgIHRoaXMuYXZhaWxhYmlsaXR5U3RhdHVzLnNldCgnYXZhaWxhYmxlJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5hdmFpbGFiaWxpdHlTdGF0dXMuc2V0KCd0YWtlbicpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplVXNlcm5hbWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbHVlXG4gICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgLnJlcGxhY2UoL1xccy9nLCAnJylcbiAgICAgIC5yZXBsYWNlKC9bXmEtejAtOV9dL2csICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNWYWxpZEZvcm1hdCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IG1pbkxlbiA9IHRoaXMucHJvcHM/Lm1pbkxlbmd0aCB8fCAzO1xuICAgIGNvbnN0IG1heExlbiA9IHRoaXMucHJvcHM/Lm1heExlbmd0aCB8fCAzMDtcbiAgICBjb25zdCBwYXR0ZXJuID0gL15bYS16MC05X10rJC87XG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA+PSBtaW5MZW4gJiYgdmFsdWUubGVuZ3RoIDw9IG1heExlbiAmJiBwYXR0ZXJuLnRlc3QodmFsdWUpO1xuICB9XG59XG4iXX0=
|