valtech-components 2.0.594 → 2.0.596
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/content-reaction/content-reaction.component.mjs +191 -0
- package/esm2022/lib/components/molecules/content-reaction/types.mjs +2 -0
- package/esm2022/lib/components/molecules/docs-section/docs-section.component.mjs +85 -0
- package/esm2022/lib/components/molecules/docs-section/types.mjs +2 -0
- package/esm2022/lib/components/molecules/feedback-form/feedback-form.component.mjs +354 -0
- package/esm2022/lib/components/molecules/feedback-form/types.mjs +2 -0
- package/esm2022/lib/components/organisms/terminal-404/terminal-404.component.mjs +9 -8
- package/esm2022/lib/components/templates/docs-page/docs-page.component.mjs +188 -0
- package/esm2022/lib/components/templates/docs-page/types.mjs +2 -0
- package/esm2022/lib/services/ads/types.mjs +1 -1
- package/esm2022/lib/services/feedback/config.mjs +49 -0
- package/esm2022/lib/services/feedback/feedback.service.mjs +228 -0
- package/esm2022/lib/services/feedback/index.mjs +44 -0
- package/esm2022/lib/services/feedback/types.mjs +30 -0
- package/esm2022/public-api.mjs +10 -5
- package/fesm2022/valtech-components.mjs +1143 -11
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/molecules/content-reaction/content-reaction.component.d.ts +57 -0
- package/lib/components/molecules/content-reaction/types.d.ts +61 -0
- package/lib/components/molecules/docs-section/docs-section.component.d.ts +29 -0
- package/lib/components/molecules/docs-section/types.d.ts +27 -0
- package/lib/components/molecules/feedback-form/feedback-form.component.d.ts +58 -0
- package/lib/components/molecules/feedback-form/types.d.ts +54 -0
- package/lib/components/organisms/terminal-404/terminal-404.component.d.ts +1 -0
- package/lib/components/templates/docs-page/docs-page.component.d.ts +54 -0
- package/lib/components/templates/docs-page/types.d.ts +69 -0
- package/lib/services/ads/types.d.ts +10 -0
- package/lib/services/feedback/config.d.ts +35 -0
- package/lib/services/feedback/feedback.service.d.ts +110 -0
- package/lib/services/feedback/index.d.ts +40 -0
- package/lib/services/feedback/types.d.ts +159 -0
- package/package.json +1 -1
- package/public-api.d.ts +9 -0
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { Component, inject, Input, Output, EventEmitter, signal, computed, } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { IonButton, IonSpinner, IonTextarea, } from '@ionic/angular/standalone';
|
|
5
|
+
import { FeedbackService } from '../../../services/feedback/feedback.service';
|
|
6
|
+
import { ToastService } from '../../../services/toast.service';
|
|
7
|
+
import { I18nService } from '../../../services/i18n';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
/**
|
|
10
|
+
* Componente para reacciones de contenido con emojis.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```html
|
|
14
|
+
* <val-content-reaction
|
|
15
|
+
* [props]="{
|
|
16
|
+
* entityRef: { entityType: 'article', entityId: 'art-123' },
|
|
17
|
+
* question: '¿Te fue útil este artículo?'
|
|
18
|
+
* }"
|
|
19
|
+
* (reactionSubmit)="onReactionSubmit($event)"
|
|
20
|
+
* />
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export class ContentReactionComponent {
|
|
24
|
+
constructor() {
|
|
25
|
+
this.feedbackService = inject(FeedbackService);
|
|
26
|
+
this.toast = inject(ToastService);
|
|
27
|
+
this.i18n = inject(I18nService);
|
|
28
|
+
this.props = {};
|
|
29
|
+
this.reactionSubmit = new EventEmitter();
|
|
30
|
+
this.reactionChange = new EventEmitter();
|
|
31
|
+
// Estado reactivo
|
|
32
|
+
this.state = signal({
|
|
33
|
+
selectedValue: null,
|
|
34
|
+
comment: '',
|
|
35
|
+
isLoading: false,
|
|
36
|
+
isSubmitted: false,
|
|
37
|
+
hadPreviousReaction: false,
|
|
38
|
+
error: null,
|
|
39
|
+
});
|
|
40
|
+
// Valores por defecto
|
|
41
|
+
this.defaultEmojis = ['😞', '😐', '😊'];
|
|
42
|
+
this.defaultLabels = [
|
|
43
|
+
'No me ayudó',
|
|
44
|
+
'Regular',
|
|
45
|
+
'Muy útil',
|
|
46
|
+
];
|
|
47
|
+
this.reactionValues = ['negative', 'neutral', 'positive'];
|
|
48
|
+
// Computed properties
|
|
49
|
+
this.resolvedProps = computed(() => ({
|
|
50
|
+
entityRef: this.props.entityRef,
|
|
51
|
+
question: this.props.question || this.t('question'),
|
|
52
|
+
showComment: this.props.showComment ?? true,
|
|
53
|
+
commentPlaceholder: this.props.commentPlaceholder || this.t('commentPlaceholder'),
|
|
54
|
+
maxCommentLength: this.props.maxCommentLength ?? 500,
|
|
55
|
+
emojis: this.props.emojis || this.defaultEmojis,
|
|
56
|
+
emojiLabels: this.props.emojiLabels || this.defaultLabels,
|
|
57
|
+
showThankYou: this.props.showThankYou ?? true,
|
|
58
|
+
thankYouMessage: this.props.thankYouMessage || this.t('thankYou'),
|
|
59
|
+
disabled: this.props.disabled ?? false,
|
|
60
|
+
readonly: this.props.readonly ?? false,
|
|
61
|
+
}));
|
|
62
|
+
this.showCommentField = computed(() => this.state().selectedValue !== null && this.resolvedProps().showComment);
|
|
63
|
+
this.canSubmit = computed(() => this.state().selectedValue !== null && !this.state().isLoading);
|
|
64
|
+
}
|
|
65
|
+
ngOnInit() {
|
|
66
|
+
this.loadPreviousReaction();
|
|
67
|
+
}
|
|
68
|
+
ngOnChanges(changes) {
|
|
69
|
+
if (changes['props'] && !changes['props'].firstChange) {
|
|
70
|
+
this.loadPreviousReaction();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
async loadPreviousReaction() {
|
|
74
|
+
if (!this.props.entityRef)
|
|
75
|
+
return;
|
|
76
|
+
this.state.update((s) => ({ ...s, isLoading: true, error: null }));
|
|
77
|
+
try {
|
|
78
|
+
const check = await this.feedbackService.checkFeedback(this.props.entityRef.entityType, this.props.entityRef.entityId);
|
|
79
|
+
if (check.hasFeedback && check.reactionValue) {
|
|
80
|
+
this.state.update((s) => ({
|
|
81
|
+
...s,
|
|
82
|
+
selectedValue: check.reactionValue,
|
|
83
|
+
hadPreviousReaction: true,
|
|
84
|
+
isLoading: false,
|
|
85
|
+
isSubmitted: true,
|
|
86
|
+
}));
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
this.state.update((s) => ({ ...s, isLoading: false }));
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
console.error('Error loading previous reaction:', error);
|
|
94
|
+
this.state.update((s) => ({ ...s, isLoading: false }));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
selectReaction(value) {
|
|
98
|
+
if (this.resolvedProps().disabled || this.resolvedProps().readonly)
|
|
99
|
+
return;
|
|
100
|
+
const previousValue = this.state().selectedValue;
|
|
101
|
+
this.state.update((s) => ({
|
|
102
|
+
...s,
|
|
103
|
+
selectedValue: value,
|
|
104
|
+
isSubmitted: false,
|
|
105
|
+
error: null,
|
|
106
|
+
}));
|
|
107
|
+
this.reactionChange.emit({ value, previousValue });
|
|
108
|
+
}
|
|
109
|
+
async submitReaction() {
|
|
110
|
+
const currentState = this.state();
|
|
111
|
+
const props = this.resolvedProps();
|
|
112
|
+
if (!currentState.selectedValue || props.disabled)
|
|
113
|
+
return;
|
|
114
|
+
this.state.update((s) => ({ ...s, isLoading: true, error: null }));
|
|
115
|
+
try {
|
|
116
|
+
await this.feedbackService.createReaction(props.entityRef, currentState.selectedValue, currentState.comment || undefined);
|
|
117
|
+
this.state.update((s) => ({
|
|
118
|
+
...s,
|
|
119
|
+
isLoading: false,
|
|
120
|
+
isSubmitted: true,
|
|
121
|
+
hadPreviousReaction: true,
|
|
122
|
+
}));
|
|
123
|
+
this.reactionSubmit.emit({
|
|
124
|
+
value: currentState.selectedValue,
|
|
125
|
+
comment: currentState.comment || undefined,
|
|
126
|
+
entityRef: props.entityRef,
|
|
127
|
+
isUpdate: currentState.hadPreviousReaction,
|
|
128
|
+
});
|
|
129
|
+
if (props.showThankYou) {
|
|
130
|
+
this.toast.show({
|
|
131
|
+
message: props.thankYouMessage,
|
|
132
|
+
duration: 2000,
|
|
133
|
+
position: 'bottom',
|
|
134
|
+
color: 'success',
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
console.error('Error submitting reaction:', error);
|
|
140
|
+
this.state.update((s) => ({
|
|
141
|
+
...s,
|
|
142
|
+
isLoading: false,
|
|
143
|
+
error: this.t('errorSubmitting'),
|
|
144
|
+
}));
|
|
145
|
+
this.toast.show({
|
|
146
|
+
message: this.t('errorSubmitting'),
|
|
147
|
+
duration: 3000,
|
|
148
|
+
position: 'bottom',
|
|
149
|
+
color: 'danger',
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
updateComment(event) {
|
|
154
|
+
const value = event.detail.value || '';
|
|
155
|
+
this.state.update((s) => ({ ...s, comment: value }));
|
|
156
|
+
}
|
|
157
|
+
getEmoji(index) {
|
|
158
|
+
return this.resolvedProps().emojis[index];
|
|
159
|
+
}
|
|
160
|
+
getEmojiLabel(index) {
|
|
161
|
+
return this.resolvedProps().emojiLabels[index];
|
|
162
|
+
}
|
|
163
|
+
isSelected(value) {
|
|
164
|
+
return this.state().selectedValue === value;
|
|
165
|
+
}
|
|
166
|
+
t(key) {
|
|
167
|
+
const translations = {
|
|
168
|
+
question: '¿Te resultó útil este contenido?',
|
|
169
|
+
commentPlaceholder: 'Cuéntanos más (opcional)...',
|
|
170
|
+
submit: 'Enviar opinión',
|
|
171
|
+
update: 'Actualizar opinión',
|
|
172
|
+
thankYou: '¡Gracias por tu opinión!',
|
|
173
|
+
submitted: 'Tu opinión ha sido registrada',
|
|
174
|
+
errorSubmitting: 'Error al enviar. Intenta de nuevo.',
|
|
175
|
+
};
|
|
176
|
+
return this.i18n.t(key, 'ContentReaction') || translations[key] || key;
|
|
177
|
+
}
|
|
178
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentReactionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
179
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ContentReactionComponent, isStandalone: true, selector: "val-content-reaction", inputs: { props: "props" }, outputs: { reactionSubmit: "reactionSubmit", reactionChange: "reactionChange" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"content-reaction\"\n [class.disabled]=\"resolvedProps().disabled\"\n [class.readonly]=\"resolvedProps().readonly\"\n>\n <!-- Loading inicial -->\n @if (state().isLoading && !state().selectedValue) {\n <div class=\"loading-container\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n </div>\n } @else {\n <!-- Pregunta -->\n <p class=\"question\">{{ resolvedProps().question }}</p>\n\n <!-- Emojis -->\n <div class=\"emoji-container\">\n @for (value of reactionValues; track value; let i = $index) {\n <button\n type=\"button\"\n class=\"emoji-button\"\n [class.selected]=\"isSelected(value)\"\n [class.negative]=\"value === 'negative' && isSelected(value)\"\n [class.neutral]=\"value === 'neutral' && isSelected(value)\"\n [class.positive]=\"value === 'positive' && isSelected(value)\"\n [attr.aria-label]=\"getEmojiLabel(i)\"\n [attr.aria-pressed]=\"isSelected(value)\"\n [disabled]=\"resolvedProps().disabled || resolvedProps().readonly\"\n (click)=\"selectReaction(value)\"\n >\n <span class=\"emoji\">{{ getEmoji(i) }}</span>\n </button>\n }\n </div>\n\n <!-- Campo de comentario (solo si hay selecci\u00F3n) -->\n @if (showCommentField()) {\n <div class=\"comment-section\">\n <ion-textarea\n [value]=\"state().comment\"\n [placeholder]=\"resolvedProps().commentPlaceholder\"\n [maxlength]=\"resolvedProps().maxCommentLength\"\n [disabled]=\"resolvedProps().disabled\"\n [rows]=\"3\"\n class=\"comment-textarea\"\n (ionInput)=\"updateComment($event)\"\n ></ion-textarea>\n <span class=\"char-count\">\n {{ state().comment.length }}/{{ resolvedProps().maxCommentLength }}\n </span>\n </div>\n }\n\n <!-- Bot\u00F3n de env\u00EDo -->\n @if (state().selectedValue && !state().isSubmitted) {\n <ion-button\n expand=\"block\"\n [disabled]=\"!canSubmit()\"\n (click)=\"submitReaction()\"\n class=\"submit-button\"\n >\n @if (state().isLoading) {\n <ion-spinner name=\"crescent\"></ion-spinner>\n } @else {\n {{ state().hadPreviousReaction ? t('update') : t('submit') }}\n }\n </ion-button>\n }\n\n <!-- Mensaje de confirmaci\u00F3n -->\n @if (state().isSubmitted) {\n <p class=\"submitted-message\">\n {{ t('submitted') }}\n </p>\n }\n\n <!-- Error -->\n @if (state().error) {\n <p class=\"error-message\">{{ state().error }}</p>\n }\n }\n</div>\n", styles: [":host{display:block}.content-reaction{padding:16px;text-align:center}.content-reaction.disabled{opacity:.6;pointer-events:none}.content-reaction.readonly{pointer-events:none}.question{font-size:16px;font-weight:500;color:var(--ion-color-dark);margin:0 0 16px}.emoji-container{display:flex;justify-content:center;gap:24px;margin-bottom:20px}.emoji-button{background:transparent;border:2px solid var(--ion-color-light-shade);border-radius:50%;width:64px;height:64px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;padding:0}.emoji-button .emoji{font-size:32px;transition:transform .3s cubic-bezier(.4,0,.2,1);line-height:1}.emoji-button:hover:not(:disabled){transform:scale(1.1);border-color:var(--ion-color-medium)}.emoji-button:focus{outline:2px solid var(--ion-color-primary);outline-offset:2px}.emoji-button.selected{transform:scale(1.2)}.emoji-button.selected .emoji{transform:scale(1.1)}.emoji-button.selected.negative{border-color:var(--ion-color-danger);background:var(--ion-color-danger-tint);box-shadow:0 4px 12px rgba(var(--ion-color-danger-rgb),.3)}.emoji-button.selected.neutral{border-color:var(--ion-color-warning);background:var(--ion-color-warning-tint);box-shadow:0 4px 12px rgba(var(--ion-color-warning-rgb),.3)}.emoji-button.selected.positive{border-color:var(--ion-color-success);background:var(--ion-color-success-tint);box-shadow:0 4px 12px rgba(var(--ion-color-success-rgb),.3)}.emoji-button:disabled{cursor:not-allowed;opacity:.5}.comment-section{margin-top:16px;animation:slideIn .3s ease-out}.comment-section .comment-textarea{--background: var(--ion-color-light);--border-radius: 8px;--padding-start: 12px;--padding-end: 12px;width:100%}.comment-section .char-count{display:block;text-align:right;font-size:12px;color:var(--ion-color-medium);margin-top:4px}.submit-button{margin-top:16px;--border-radius: 8px}.submitted-message{margin-top:16px;color:var(--ion-color-success);font-weight:500;animation:fadeIn .3s ease-out}.error-message{margin-top:8px;color:var(--ion-color-danger);font-size:14px}.loading-container{display:flex;justify-content:center;padding:20px}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "shape", "spellcheck", "value", "wrap"] }] }); }
|
|
180
|
+
}
|
|
181
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentReactionComponent, decorators: [{
|
|
182
|
+
type: Component,
|
|
183
|
+
args: [{ selector: 'val-content-reaction', standalone: true, imports: [CommonModule, FormsModule, IonButton, IonSpinner, IonTextarea], template: "<div\n class=\"content-reaction\"\n [class.disabled]=\"resolvedProps().disabled\"\n [class.readonly]=\"resolvedProps().readonly\"\n>\n <!-- Loading inicial -->\n @if (state().isLoading && !state().selectedValue) {\n <div class=\"loading-container\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n </div>\n } @else {\n <!-- Pregunta -->\n <p class=\"question\">{{ resolvedProps().question }}</p>\n\n <!-- Emojis -->\n <div class=\"emoji-container\">\n @for (value of reactionValues; track value; let i = $index) {\n <button\n type=\"button\"\n class=\"emoji-button\"\n [class.selected]=\"isSelected(value)\"\n [class.negative]=\"value === 'negative' && isSelected(value)\"\n [class.neutral]=\"value === 'neutral' && isSelected(value)\"\n [class.positive]=\"value === 'positive' && isSelected(value)\"\n [attr.aria-label]=\"getEmojiLabel(i)\"\n [attr.aria-pressed]=\"isSelected(value)\"\n [disabled]=\"resolvedProps().disabled || resolvedProps().readonly\"\n (click)=\"selectReaction(value)\"\n >\n <span class=\"emoji\">{{ getEmoji(i) }}</span>\n </button>\n }\n </div>\n\n <!-- Campo de comentario (solo si hay selecci\u00F3n) -->\n @if (showCommentField()) {\n <div class=\"comment-section\">\n <ion-textarea\n [value]=\"state().comment\"\n [placeholder]=\"resolvedProps().commentPlaceholder\"\n [maxlength]=\"resolvedProps().maxCommentLength\"\n [disabled]=\"resolvedProps().disabled\"\n [rows]=\"3\"\n class=\"comment-textarea\"\n (ionInput)=\"updateComment($event)\"\n ></ion-textarea>\n <span class=\"char-count\">\n {{ state().comment.length }}/{{ resolvedProps().maxCommentLength }}\n </span>\n </div>\n }\n\n <!-- Bot\u00F3n de env\u00EDo -->\n @if (state().selectedValue && !state().isSubmitted) {\n <ion-button\n expand=\"block\"\n [disabled]=\"!canSubmit()\"\n (click)=\"submitReaction()\"\n class=\"submit-button\"\n >\n @if (state().isLoading) {\n <ion-spinner name=\"crescent\"></ion-spinner>\n } @else {\n {{ state().hadPreviousReaction ? t('update') : t('submit') }}\n }\n </ion-button>\n }\n\n <!-- Mensaje de confirmaci\u00F3n -->\n @if (state().isSubmitted) {\n <p class=\"submitted-message\">\n {{ t('submitted') }}\n </p>\n }\n\n <!-- Error -->\n @if (state().error) {\n <p class=\"error-message\">{{ state().error }}</p>\n }\n }\n</div>\n", styles: [":host{display:block}.content-reaction{padding:16px;text-align:center}.content-reaction.disabled{opacity:.6;pointer-events:none}.content-reaction.readonly{pointer-events:none}.question{font-size:16px;font-weight:500;color:var(--ion-color-dark);margin:0 0 16px}.emoji-container{display:flex;justify-content:center;gap:24px;margin-bottom:20px}.emoji-button{background:transparent;border:2px solid var(--ion-color-light-shade);border-radius:50%;width:64px;height:64px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;padding:0}.emoji-button .emoji{font-size:32px;transition:transform .3s cubic-bezier(.4,0,.2,1);line-height:1}.emoji-button:hover:not(:disabled){transform:scale(1.1);border-color:var(--ion-color-medium)}.emoji-button:focus{outline:2px solid var(--ion-color-primary);outline-offset:2px}.emoji-button.selected{transform:scale(1.2)}.emoji-button.selected .emoji{transform:scale(1.1)}.emoji-button.selected.negative{border-color:var(--ion-color-danger);background:var(--ion-color-danger-tint);box-shadow:0 4px 12px rgba(var(--ion-color-danger-rgb),.3)}.emoji-button.selected.neutral{border-color:var(--ion-color-warning);background:var(--ion-color-warning-tint);box-shadow:0 4px 12px rgba(var(--ion-color-warning-rgb),.3)}.emoji-button.selected.positive{border-color:var(--ion-color-success);background:var(--ion-color-success-tint);box-shadow:0 4px 12px rgba(var(--ion-color-success-rgb),.3)}.emoji-button:disabled{cursor:not-allowed;opacity:.5}.comment-section{margin-top:16px;animation:slideIn .3s ease-out}.comment-section .comment-textarea{--background: var(--ion-color-light);--border-radius: 8px;--padding-start: 12px;--padding-end: 12px;width:100%}.comment-section .char-count{display:block;text-align:right;font-size:12px;color:var(--ion-color-medium);margin-top:4px}.submit-button{margin-top:16px;--border-radius: 8px}.submitted-message{margin-top:16px;color:var(--ion-color-success);font-weight:500;animation:fadeIn .3s ease-out}.error-message{margin-top:8px;color:var(--ion-color-danger);font-size:14px}.loading-container{display:flex;justify-content:center;padding:20px}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"] }]
|
|
184
|
+
}], propDecorators: { props: [{
|
|
185
|
+
type: Input
|
|
186
|
+
}], reactionSubmit: [{
|
|
187
|
+
type: Output
|
|
188
|
+
}], reactionChange: [{
|
|
189
|
+
type: Output
|
|
190
|
+
}] } });
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1yZWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbnRlbnQtcmVhY3Rpb24vY29udGVudC1yZWFjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbnRlbnQtcmVhY3Rpb24vY29udGVudC1yZWFjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFJWixNQUFNLEVBQ04sUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxHQUNaLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBUXJEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFRSCxNQUFNLE9BQU8sd0JBQXdCO0lBUHJDO1FBUVUsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUMsVUFBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3QixTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTFCLFVBQUssR0FBcUMsRUFBRSxDQUFDO1FBQzVDLG1CQUFjLEdBQUcs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U0FBUyxvUEFBRSxVQUFVLHlHQUFFLFdBQVc7OzRGQUk1RCx3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUM7OEJBUy9ELEtBQUs7c0JBQWIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBPbkluaXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgc2lnbmFsLFxuICBjb21wdXRlZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBJb25CdXR0b24sXG4gIElvblNwaW5uZXIsXG4gIElvblRleHRhcmVhLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEZlZWRiYWNrU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZlZWRiYWNrL2ZlZWRiYWNrLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVhY3Rpb25WYWx1ZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZlZWRiYWNrL3R5cGVzJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7XG4gIENvbnRlbnRSZWFjdGlvbk1ldGFkYXRhLFxuICBDb250ZW50UmVhY3Rpb25TdGF0ZSxcbiAgUmVhY3Rpb25TdWJtaXRFdmVudCxcbiAgUmVhY3Rpb25DaGFuZ2VFdmVudCxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQ29tcG9uZW50ZSBwYXJhIHJlYWNjaW9uZXMgZGUgY29udGVuaWRvIGNvbiBlbW9qaXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDx2YWwtY29udGVudC1yZWFjdGlvblxuICogICBbcHJvcHNdPVwie1xuICogICAgIGVudGl0eVJlZjogeyBlbnRpdHlUeXBlOiAnYXJ0aWNsZScsIGVudGl0eUlkOiAnYXJ0LTEyMycgfSxcbiAqICAgICBxdWVzdGlvbjogJ8K/VGUgZnVlIMO6dGlsIGVzdGUgYXJ0w61jdWxvPydcbiAqICAgfVwiXG4gKiAgIChyZWFjdGlvblN1Ym1pdCk9XCJvblJlYWN0aW9uU3VibWl0KCRldmVudClcIlxuICogLz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtY29udGVudC1yZWFjdGlvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBJb25CdXR0b24sIElvblNwaW5uZXIsIElvblRleHRhcmVhXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRlbnQtcmVhY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb250ZW50LXJlYWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvbnRlbnRSZWFjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBmZWVkYmFja1NlcnZpY2UgPSBpbmplY3QoRmVlZGJhY2tTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB0b2FzdCA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuXG4gIEBJbnB1dCgpIHByb3BzOiBQYXJ0aWFsPENvbnRlbnRSZWFjdGlvbk1ldGFkYXRhPiA9IHt9O1xuICBAT3V0cHV0KCkgcmVhY3Rpb25TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPFJlYWN0aW9uU3VibWl0RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSByZWFjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UmVhY3Rpb25DaGFuZ2VFdmVudD4oKTtcblxuICAvLyBFc3RhZG8gcmVhY3Rpdm9cbiAgc3RhdGUgPSBzaWduYWw8Q29udGVudFJlYWN0aW9uU3RhdGU+KHtcbiAgICBzZWxlY3RlZFZhbHVlOiBudWxsLFxuICAgIGNvbW1lbnQ6ICcnLFxuICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgaXNTdWJtaXR0ZWQ6IGZhbHNlLFxuICAgIGhhZFByZXZpb3VzUmVhY3Rpb246IGZhbHNlLFxuICAgIGVycm9yOiBudWxsLFxuICB9KTtcblxuICAvLyBWYWxvcmVzIHBvciBkZWZlY3RvXG4gIHJlYWRvbmx5IGRlZmF1bHRFbW9qaXM6IFtzdHJpbmcsIHN0cmluZywgc3RyaW5nXSA9IFsn8J+YnicsICfwn5iQJywgJ/CfmIonXTtcbiAgcmVhZG9ubHkgZGVmYXVsdExhYmVsczogW3N0cmluZywgc3RyaW5nLCBzdHJpbmddID0gW1xuICAgICdObyBtZSBheXVkw7MnLFxuICAgICdSZWd1bGFyJyxcbiAgICAnTXV5IMO6dGlsJyxcbiAgXTtcbiAgcmVhZG9ubHkgcmVhY3Rpb25WYWx1ZXM6IFJlYWN0aW9uVmFsdWVbXSA9IFsnbmVnYXRpdmUnLCAnbmV1dHJhbCcsICdwb3NpdGl2ZSddO1xuXG4gIC8vIENvbXB1dGVkIHByb3BlcnRpZXNcbiAgcmVzb2x2ZWRQcm9wcyA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgZW50aXR5UmVmOiB0aGlzLnByb3BzLmVudGl0eVJlZiEsXG4gICAgcXVlc3Rpb246IHRoaXMucHJvcHMucXVlc3Rpb24gfHwgdGhpcy50KCdxdWVzdGlvbicpLFxuICAgIHNob3dDb21tZW50OiB0aGlzLnByb3BzLnNob3dDb21tZW50ID8/IHRydWUsXG4gICAgY29tbWVudFBsYWNlaG9sZGVyOiB0aGlzLnByb3BzLmNvbW1lbnRQbGFjZWhvbGRlciB8fCB0aGlzLnQoJ2NvbW1lbnRQbGFjZWhvbGRlcicpLFxuICAgIG1heENvbW1lbnRMZW5ndGg6IHRoaXMucHJvcHMubWF4Q29tbWVudExlbmd0aCA/PyA1MDAsXG4gICAgZW1vamlzOiB0aGlzLnByb3BzLmVtb2ppcyB8fCB0aGlzLmRlZmF1bHRFbW9qaXMsXG4gICAgZW1vamlMYWJlbHM6IHRoaXMucHJvcHMuZW1vamlMYWJlbHMgfHwgdGhpcy5kZWZhdWx0TGFiZWxzLFxuICAgIHNob3dUaGFua1lvdTogdGhpcy5wcm9wcy5zaG93VGhhbmtZb3UgPz8gdHJ1ZSxcbiAgICB0aGFua1lvdU1lc3NhZ2U6IHRoaXMucHJvcHMudGhhbmtZb3VNZXNzYWdlIHx8IHRoaXMudCgndGhhbmtZb3UnKSxcbiAgICBkaXNhYmxlZDogdGhpcy5wcm9wcy5kaXNhYmxlZCA/PyBmYWxzZSxcbiAgICByZWFkb25seTogdGhpcy5wcm9wcy5yZWFkb25seSA/PyBmYWxzZSxcbiAgfSkpO1xuXG4gIHNob3dDb21tZW50RmllbGQgPSBjb21wdXRlZChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5zdGF0ZSgpLnNlbGVjdGVkVmFsdWUgIT09IG51bGwgJiYgdGhpcy5yZXNvbHZlZFByb3BzKCkuc2hvd0NvbW1lbnRcbiAgKTtcblxuICBjYW5TdWJtaXQgPSBjb21wdXRlZChcbiAgICAoKSA9PiB0aGlzLnN0YXRlKCkuc2VsZWN0ZWRWYWx1ZSAhPT0gbnVsbCAmJiAhdGhpcy5zdGF0ZSgpLmlzTG9hZGluZ1xuICApO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubG9hZFByZXZpb3VzUmVhY3Rpb24oKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sncHJvcHMnXSAmJiAhY2hhbmdlc1sncHJvcHMnXS5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5sb2FkUHJldmlvdXNSZWFjdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZFByZXZpb3VzUmVhY3Rpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLnByb3BzLmVudGl0eVJlZikgcmV0dXJuO1xuXG4gICAgdGhpcy5zdGF0ZS51cGRhdGUoKHMpID0+ICh7IC4uLnMsIGlzTG9hZGluZzogdHJ1ZSwgZXJyb3I6IG51bGwgfSkpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNoZWNrID0gYXdhaXQgdGhpcy5mZWVkYmFja1NlcnZpY2UuY2hlY2tGZWVkYmFjayhcbiAgICAgICAgdGhpcy5wcm9wcy5lbnRpdHlSZWYuZW50aXR5VHlwZSxcbiAgICAgICAgdGhpcy5wcm9wcy5lbnRpdHlSZWYuZW50aXR5SWRcbiAgICAgICk7XG5cbiAgICAgIGlmIChjaGVjay5oYXNGZWVkYmFjayAmJiBjaGVjay5yZWFjdGlvblZhbHVlKSB7XG4gICAgICAgIHRoaXMuc3RhdGUudXBkYXRlKChzKSA9PiAoe1xuICAgICAgICAgIC4uLnMsXG4gICAgICAgICAgc2VsZWN0ZWRWYWx1ZTogY2hlY2sucmVhY3Rpb25WYWx1ZSEsXG4gICAgICAgICAgaGFkUHJldmlvdXNSZWFjdGlvbjogdHJ1ZSxcbiAgICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgIGlzU3VibWl0dGVkOiB0cnVlLFxuICAgICAgICB9KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN0YXRlLnVwZGF0ZSgocykgPT4gKHsgLi4ucywgaXNMb2FkaW5nOiBmYWxzZSB9KSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvYWRpbmcgcHJldmlvdXMgcmVhY3Rpb246JywgZXJyb3IpO1xuICAgICAgdGhpcy5zdGF0ZS51cGRhdGUoKHMpID0+ICh7IC4uLnMsIGlzTG9hZGluZzogZmFsc2UgfSkpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdFJlYWN0aW9uKHZhbHVlOiBSZWFjdGlvblZhbHVlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVzb2x2ZWRQcm9wcygpLmRpc2FibGVkIHx8IHRoaXMucmVzb2x2ZWRQcm9wcygpLnJlYWRvbmx5KSByZXR1cm47XG5cbiAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gdGhpcy5zdGF0ZSgpLnNlbGVjdGVkVmFsdWU7XG5cbiAgICB0aGlzLnN0YXRlLnVwZGF0ZSgocykgPT4gKHtcbiAgICAgIC4uLnMsXG4gICAgICBzZWxlY3RlZFZhbHVlOiB2YWx1ZSxcbiAgICAgIGlzU3VibWl0dGVkOiBmYWxzZSxcbiAgICAgIGVycm9yOiBudWxsLFxuICAgIH0pKTtcblxuICAgIHRoaXMucmVhY3Rpb25DaGFuZ2UuZW1pdCh7IHZhbHVlLCBwcmV2aW91c1ZhbHVlIH0pO1xuICB9XG5cbiAgYXN5bmMgc3VibWl0UmVhY3Rpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy5zdGF0ZSgpO1xuICAgIGNvbnN0IHByb3BzID0gdGhpcy5yZXNvbHZlZFByb3BzKCk7XG5cbiAgICBpZiAoIWN1cnJlbnRTdGF0ZS5zZWxlY3RlZFZhbHVlIHx8IHByb3BzLmRpc2FibGVkKSByZXR1cm47XG5cbiAgICB0aGlzLnN0YXRlLnVwZGF0ZSgocykgPT4gKHsgLi4ucywgaXNMb2FkaW5nOiB0cnVlLCBlcnJvcjogbnVsbCB9KSk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5mZWVkYmFja1NlcnZpY2UuY3JlYXRlUmVhY3Rpb24oXG4gICAgICAgIHByb3BzLmVudGl0eVJlZixcbiAgICAgICAgY3VycmVudFN0YXRlLnNlbGVjdGVkVmFsdWUsXG4gICAgICAgIGN1cnJlbnRTdGF0ZS5jb21tZW50IHx8IHVuZGVmaW5lZFxuICAgICAgKTtcblxuICAgICAgdGhpcy5zdGF0ZS51cGRhdGUoKHMpID0+ICh7XG4gICAgICAgIC4uLnMsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGlzU3VibWl0dGVkOiB0cnVlLFxuICAgICAgICBoYWRQcmV2aW91c1JlYWN0aW9uOiB0cnVlLFxuICAgICAgfSkpO1xuXG4gICAgICB0aGlzLnJlYWN0aW9uU3VibWl0LmVtaXQoe1xuICAgICAgICB2YWx1ZTogY3VycmVudFN0YXRlLnNlbGVjdGVkVmFsdWUsXG4gICAgICAgIGNvbW1lbnQ6IGN1cnJlbnRTdGF0ZS5jb21tZW50IHx8IHVuZGVmaW5lZCxcbiAgICAgICAgZW50aXR5UmVmOiBwcm9wcy5lbnRpdHlSZWYsXG4gICAgICAgIGlzVXBkYXRlOiBjdXJyZW50U3RhdGUuaGFkUHJldmlvdXNSZWFjdGlvbixcbiAgICAgIH0pO1xuXG4gICAgICBpZiAocHJvcHMuc2hvd1RoYW5rWW91KSB7XG4gICAgICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICAgICAgbWVzc2FnZTogcHJvcHMudGhhbmtZb3VNZXNzYWdlLFxuICAgICAgICAgIGR1cmF0aW9uOiAyMDAwLFxuICAgICAgICAgIHBvc2l0aW9uOiAnYm90dG9tJyxcbiAgICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igc3VibWl0dGluZyByZWFjdGlvbjonLCBlcnJvcik7XG4gICAgICB0aGlzLnN0YXRlLnVwZGF0ZSgocykgPT4gKHtcbiAgICAgICAgLi4ucyxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IHRoaXMudCgnZXJyb3JTdWJtaXR0aW5nJyksXG4gICAgICB9KSk7XG5cbiAgICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICAgIG1lc3NhZ2U6IHRoaXMudCgnZXJyb3JTdWJtaXR0aW5nJyksXG4gICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICBwb3NpdGlvbjogJ2JvdHRvbScsXG4gICAgICAgIGNvbG9yOiAnZGFuZ2VyJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUNvbW1lbnQoZXZlbnQ6IEN1c3RvbUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC5kZXRhaWwudmFsdWUgfHwgJyc7XG4gICAgdGhpcy5zdGF0ZS51cGRhdGUoKHMpID0+ICh7IC4uLnMsIGNvbW1lbnQ6IHZhbHVlIH0pKTtcbiAgfVxuXG4gIGdldEVtb2ppKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkUHJvcHMoKS5lbW9qaXNbaW5kZXhdO1xuICB9XG5cbiAgZ2V0RW1vamlMYWJlbChpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZFByb3BzKCkuZW1vamlMYWJlbHNbaW5kZXhdO1xuICB9XG5cbiAgaXNTZWxlY3RlZCh2YWx1ZTogUmVhY3Rpb25WYWx1ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlKCkuc2VsZWN0ZWRWYWx1ZSA9PT0gdmFsdWU7XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0cmFuc2xhdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICBxdWVzdGlvbjogJ8K/VGUgcmVzdWx0w7Mgw7p0aWwgZXN0ZSBjb250ZW5pZG8/JyxcbiAgICAgIGNvbW1lbnRQbGFjZWhvbGRlcjogJ0N1w6ludGFub3MgbcOhcyAob3BjaW9uYWwpLi4uJyxcbiAgICAgIHN1Ym1pdDogJ0VudmlhciBvcGluacOzbicsXG4gICAgICB1cGRhdGU6ICdBY3R1YWxpemFyIG9waW5pw7NuJyxcbiAgICAgIHRoYW5rWW91OiAnwqFHcmFjaWFzIHBvciB0dSBvcGluacOzbiEnLFxuICAgICAgc3VibWl0dGVkOiAnVHUgb3BpbmnDs24gaGEgc2lkbyByZWdpc3RyYWRhJyxcbiAgICAgIGVycm9yU3VibWl0dGluZzogJ0Vycm9yIGFsIGVudmlhci4gSW50ZW50YSBkZSBudWV2by4nLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgJ0NvbnRlbnRSZWFjdGlvbicpIHx8IHRyYW5zbGF0aW9uc1trZXldIHx8IGtleTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImNvbnRlbnQtcmVhY3Rpb25cIlxuICBbY2xhc3MuZGlzYWJsZWRdPVwicmVzb2x2ZWRQcm9wcygpLmRpc2FibGVkXCJcbiAgW2NsYXNzLnJlYWRvbmx5XT1cInJlc29sdmVkUHJvcHMoKS5yZWFkb25seVwiXG4+XG4gIDwhLS0gTG9hZGluZyBpbmljaWFsIC0tPlxuICBAaWYgKHN0YXRlKCkuaXNMb2FkaW5nICYmICFzdGF0ZSgpLnNlbGVjdGVkVmFsdWUpIHtcbiAgICA8ZGl2IGNsYXNzPVwibG9hZGluZy1jb250YWluZXJcIj5cbiAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIj48L2lvbi1zcGlubmVyPlxuICAgIDwvZGl2PlxuICB9IEBlbHNlIHtcbiAgICA8IS0tIFByZWd1bnRhIC0tPlxuICAgIDxwIGNsYXNzPVwicXVlc3Rpb25cIj57eyByZXNvbHZlZFByb3BzKCkucXVlc3Rpb24gfX08L3A+XG5cbiAgICA8IS0tIEVtb2ppcyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZW1vamktY29udGFpbmVyXCI+XG4gICAgICBAZm9yICh2YWx1ZSBvZiByZWFjdGlvblZhbHVlczsgdHJhY2sgdmFsdWU7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImVtb2ppLWJ1dHRvblwiXG4gICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImlzU2VsZWN0ZWQodmFsdWUpXCJcbiAgICAgICAgICBbY2xhc3MubmVnYXRpdmVdPVwidmFsdWUgPT09ICduZWdhdGl2ZScgJiYgaXNTZWxlY3RlZCh2YWx1ZSlcIlxuICAgICAgICAgIFtjbGFzcy5uZXV0cmFsXT1cInZhbHVlID09PSAnbmV1dHJhbCcgJiYgaXNTZWxlY3RlZCh2YWx1ZSlcIlxuICAgICAgICAgIFtjbGFzcy5wb3NpdGl2ZV09XCJ2YWx1ZSA9PT0gJ3Bvc2l0aXZlJyAmJiBpc1NlbGVjdGVkKHZhbHVlKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRFbW9qaUxhYmVsKGkpXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLXByZXNzZWRdPVwiaXNTZWxlY3RlZCh2YWx1ZSlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJyZXNvbHZlZFByb3BzKCkuZGlzYWJsZWQgfHwgcmVzb2x2ZWRQcm9wcygpLnJlYWRvbmx5XCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UmVhY3Rpb24odmFsdWUpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZW1vamlcIj57eyBnZXRFbW9qaShpKSB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIENhbXBvIGRlIGNvbWVudGFyaW8gKHNvbG8gc2kgaGF5IHNlbGVjY2nDs24pIC0tPlxuICAgIEBpZiAoc2hvd0NvbW1lbnRGaWVsZCgpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiY29tbWVudC1zZWN0aW9uXCI+XG4gICAgICAgIDxpb24tdGV4dGFyZWFcbiAgICAgICAgICBbdmFsdWVdPVwic3RhdGUoKS5jb21tZW50XCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicmVzb2x2ZWRQcm9wcygpLmNvbW1lbnRQbGFjZWhvbGRlclwiXG4gICAgICAgICAgW21heGxlbmd0aF09XCJyZXNvbHZlZFByb3BzKCkubWF4Q29tbWVudExlbmd0aFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cInJlc29sdmVkUHJvcHMoKS5kaXNhYmxlZFwiXG4gICAgICAgICAgW3Jvd3NdPVwiM1wiXG4gICAgICAgICAgY2xhc3M9XCJjb21tZW50LXRleHRhcmVhXCJcbiAgICAgICAgICAoaW9uSW5wdXQpPVwidXBkYXRlQ29tbWVudCgkZXZlbnQpXCJcbiAgICAgICAgPjwvaW9uLXRleHRhcmVhPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNoYXItY291bnRcIj5cbiAgICAgICAgICB7eyBzdGF0ZSgpLmNvbW1lbnQubGVuZ3RoIH19L3t7IHJlc29sdmVkUHJvcHMoKS5tYXhDb21tZW50TGVuZ3RoIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDwhLS0gQm90w7NuIGRlIGVudsOtbyAtLT5cbiAgICBAaWYgKHN0YXRlKCkuc2VsZWN0ZWRWYWx1ZSAmJiAhc3RhdGUoKS5pc1N1Ym1pdHRlZCkge1xuICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgZXhwYW5kPVwiYmxvY2tcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIWNhblN1Ym1pdCgpXCJcbiAgICAgICAgKGNsaWNrKT1cInN1Ym1pdFJlYWN0aW9uKClcIlxuICAgICAgICBjbGFzcz1cInN1Ym1pdC1idXR0b25cIlxuICAgICAgPlxuICAgICAgICBAaWYgKHN0YXRlKCkuaXNMb2FkaW5nKSB7XG4gICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiPjwvaW9uLXNwaW5uZXI+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIHt7IHN0YXRlKCkuaGFkUHJldmlvdXNSZWFjdGlvbiA/IHQoJ3VwZGF0ZScpIDogdCgnc3VibWl0JykgfX1cbiAgICAgICAgfVxuICAgICAgPC9pb24tYnV0dG9uPlxuICAgIH1cblxuICAgIDwhLS0gTWVuc2FqZSBkZSBjb25maXJtYWNpw7NuIC0tPlxuICAgIEBpZiAoc3RhdGUoKS5pc1N1Ym1pdHRlZCkge1xuICAgICAgPHAgY2xhc3M9XCJzdWJtaXR0ZWQtbWVzc2FnZVwiPlxuICAgICAgICB7eyB0KCdzdWJtaXR0ZWQnKSB9fVxuICAgICAgPC9wPlxuICAgIH1cblxuICAgIDwhLS0gRXJyb3IgLS0+XG4gICAgQGlmIChzdGF0ZSgpLmVycm9yKSB7XG4gICAgICA8cCBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj57eyBzdGF0ZSgpLmVycm9yIH19PC9wPlxuICAgIH1cbiAgfVxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbnRlbnQtcmVhY3Rpb24vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eVJlZiwgUmVhY3Rpb25WYWx1ZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZlZWRiYWNrL3R5cGVzJztcblxuLyoqXG4gKiBDb25maWd1cmFjacOzbiBkZWwgY29tcG9uZW50ZSBjb250ZW50LXJlYWN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnRSZWFjdGlvbk1ldGFkYXRhIHtcbiAgLyoqIFJlZmVyZW5jaWEgYSBsYSBlbnRpZGFkIChyZXF1ZXJpZG8pICovXG4gIGVudGl0eVJlZjogRW50aXR5UmVmO1xuXG4gIC8qKiBQcmVndW50YSBhIG1vc3RyYXIgKGRlZmF1bHQ6IFwiwr9UZSByZXN1bHTDsyDDunRpbCBlc3RlIGNvbnRlbmlkbz9cIikgKi9cbiAgcXVlc3Rpb24/OiBzdHJpbmc7XG5cbiAgLyoqIE1vc3RyYXIgY2FtcG8gZGUgY29tZW50YXJpbyAoZGVmYXVsdDogdHJ1ZSkgKi9cbiAgc2hvd0NvbW1lbnQ/OiBib29sZWFuO1xuXG4gIC8qKiBQbGFjZWhvbGRlciBkZWwgY29tZW50YXJpbyAqL1xuICBjb21tZW50UGxhY2Vob2xkZXI/OiBzdHJpbmc7XG5cbiAgLyoqIE3DoXhpbW8gZGUgY2FyYWN0ZXJlcyBkZWwgY29tZW50YXJpbyAoZGVmYXVsdDogNTAwKSAqL1xuICBtYXhDb21tZW50TGVuZ3RoPzogbnVtYmVyO1xuXG4gIC8qKiBFbW9qaXMgcGVyc29uYWxpemFkb3MgW25lZ2F0aXZlLCBuZXV0cmFsLCBwb3NpdGl2ZV0gKi9cbiAgZW1vamlzPzogW3N0cmluZywgc3RyaW5nLCBzdHJpbmddO1xuXG4gIC8qKiBMYWJlbHMgcGFyYSBlbW9qaXMgKGFjY2VzaWJpbGlkYWQpICovXG4gIGVtb2ppTGFiZWxzPzogW3N0cmluZywgc3RyaW5nLCBzdHJpbmddO1xuXG4gIC8qKiBNb3N0cmFyIHRvYXN0IGRlIGFncmFkZWNpbWllbnRvIChkZWZhdWx0OiB0cnVlKSAqL1xuICBzaG93VGhhbmtZb3U/OiBib29sZWFuO1xuXG4gIC8qKiBNZW5zYWplIGRlIGFncmFkZWNpbWllbnRvIHBlcnNvbmFsaXphZG8gKi9cbiAgdGhhbmtZb3VNZXNzYWdlPzogc3RyaW5nO1xuXG4gIC8qKiBEZXNoYWJpbGl0YXIgaW50ZXJhY2Npw7NuICovXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcblxuICAvKiogTW9kbyByZWFkb25seSAoc29sbyBtb3N0cmFyIHNlbGVjY2nDs24gcHJldmlhKSAqL1xuICByZWFkb25seT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRXN0YWRvIGludGVybm8gZGVsIGNvbXBvbmVudGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudFJlYWN0aW9uU3RhdGUge1xuICAvKiogVmFsb3Igc2VsZWNjaW9uYWRvIGFjdHVhbG1lbnRlICovXG4gIHNlbGVjdGVkVmFsdWU6IFJlYWN0aW9uVmFsdWUgfCBudWxsO1xuXG4gIC8qKiBDb21lbnRhcmlvIGRlbCB1c3VhcmlvICovXG4gIGNvbW1lbnQ6IHN0cmluZztcblxuICAvKiogSW5kaWNhIHNpIGVzdMOhIGNhcmdhbmRvICovXG4gIGlzTG9hZGluZzogYm9vbGVhbjtcblxuICAvKiogSW5kaWNhIHNpIHlhIGVudmnDsyBsYSByZWFjY2nDs24gKi9cbiAgaXNTdWJtaXR0ZWQ6IGJvb2xlYW47XG5cbiAgLyoqIEluZGljYSBzaSB0ZW7DrWEgcmVhY2Npw7NuIHByZXZpYSAqL1xuICBoYWRQcmV2aW91c1JlYWN0aW9uOiBib29sZWFuO1xuXG4gIC8qKiBFcnJvciBtZXNzYWdlIGlmIGFueSAqL1xuICBlcnJvcjogc3RyaW5nIHwgbnVsbDtcbn1cblxuLyoqXG4gKiBFdmVudG8gZW1pdGlkbyBhbCBlbnZpYXIgcmVhY2Npw7NuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlYWN0aW9uU3VibWl0RXZlbnQge1xuICB2YWx1ZTogUmVhY3Rpb25WYWx1ZTtcbiAgY29tbWVudD86IHN0cmluZztcbiAgZW50aXR5UmVmOiBFbnRpdHlSZWY7XG4gIGlzVXBkYXRlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEV2ZW50byBlbWl0aWRvIGFsIGNhbWJpYXIgc2VsZWNjacOzbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWFjdGlvbkNoYW5nZUV2ZW50IHtcbiAgdmFsdWU6IFJlYWN0aW9uVmFsdWUgfCBudWxsO1xuICBwcmV2aW91c1ZhbHVlOiBSZWFjdGlvblZhbHVlIHwgbnVsbDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* val-docs-section
|
|
6
|
+
*
|
|
7
|
+
* A semantic section wrapper for documentation pages.
|
|
8
|
+
* Automatically creates headings with IDs for TOC linking.
|
|
9
|
+
*
|
|
10
|
+
* @example Basic usage
|
|
11
|
+
* ```html
|
|
12
|
+
* <val-docs-section [props]="{ id: 'installation', title: 'Installation' }">
|
|
13
|
+
* <p>Install the package using npm...</p>
|
|
14
|
+
* <val-docs-code-example [props]="codeExample"></val-docs-code-example>
|
|
15
|
+
* </val-docs-section>
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @example With level 3 heading
|
|
19
|
+
* ```html
|
|
20
|
+
* <val-docs-section [props]="{ id: 'npm', title: 'Using npm', level: 3 }">
|
|
21
|
+
* <val-docs-code-example [props]="npmExample"></val-docs-code-example>
|
|
22
|
+
* </val-docs-section>
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export class DocsSectionComponent {
|
|
26
|
+
constructor() {
|
|
27
|
+
this.props = { id: '', title: '' };
|
|
28
|
+
}
|
|
29
|
+
get level() {
|
|
30
|
+
return this.props.level ?? 2;
|
|
31
|
+
}
|
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DocsSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DocsSectionComponent, isStandalone: true, selector: "val-docs-section", inputs: { props: "props" }, ngImport: i0, template: `
|
|
34
|
+
<section
|
|
35
|
+
[id]="props.id"
|
|
36
|
+
class="docs-section"
|
|
37
|
+
[class]="props.cssClass"
|
|
38
|
+
[class.docs-section--level-2]="level === 2"
|
|
39
|
+
[class.docs-section--level-3]="level === 3"
|
|
40
|
+
>
|
|
41
|
+
@if (level === 2) {
|
|
42
|
+
<h2 class="docs-section__title">{{ props.title }}</h2>
|
|
43
|
+
} @else {
|
|
44
|
+
<h3 class="docs-section__title">{{ props.title }}</h3>
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@if (props.description) {
|
|
48
|
+
<p class="docs-section__description">{{ props.description }}</p>
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
<div class="docs-section__content">
|
|
52
|
+
<ng-content></ng-content>
|
|
53
|
+
</div>
|
|
54
|
+
</section>
|
|
55
|
+
`, isInline: true, styles: [".docs-section{margin-bottom:2.5rem}.docs-section__title{margin:0 0 1rem;font-weight:600;color:var(--ion-text-color);scroll-margin-top:80px}.docs-section--level-2 .docs-section__title{font-size:1.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--ion-border-color, #e0e0e0)}.docs-section--level-3 .docs-section__title{font-size:1.25rem}.docs-section__description{margin:0 0 1.25rem;color:var(--ion-color-medium);font-size:1rem;line-height:1.6}.docs-section__content>*:last-child{margin-bottom:0}:host-context(.dark) .docs-section--level-2 .docs-section__title,:host-context([color-scheme=\"dark\"]) .docs-section--level-2 .docs-section__title{border-bottom-color:var(--ion-border-color, #333)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
56
|
+
}
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DocsSectionComponent, decorators: [{
|
|
58
|
+
type: Component,
|
|
59
|
+
args: [{ selector: 'val-docs-section', standalone: true, imports: [CommonModule], template: `
|
|
60
|
+
<section
|
|
61
|
+
[id]="props.id"
|
|
62
|
+
class="docs-section"
|
|
63
|
+
[class]="props.cssClass"
|
|
64
|
+
[class.docs-section--level-2]="level === 2"
|
|
65
|
+
[class.docs-section--level-3]="level === 3"
|
|
66
|
+
>
|
|
67
|
+
@if (level === 2) {
|
|
68
|
+
<h2 class="docs-section__title">{{ props.title }}</h2>
|
|
69
|
+
} @else {
|
|
70
|
+
<h3 class="docs-section__title">{{ props.title }}</h3>
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
@if (props.description) {
|
|
74
|
+
<p class="docs-section__description">{{ props.description }}</p>
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
<div class="docs-section__content">
|
|
78
|
+
<ng-content></ng-content>
|
|
79
|
+
</div>
|
|
80
|
+
</section>
|
|
81
|
+
`, styles: [".docs-section{margin-bottom:2.5rem}.docs-section__title{margin:0 0 1rem;font-weight:600;color:var(--ion-text-color);scroll-margin-top:80px}.docs-section--level-2 .docs-section__title{font-size:1.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--ion-border-color, #e0e0e0)}.docs-section--level-3 .docs-section__title{font-size:1.25rem}.docs-section__description{margin:0 0 1.25rem;color:var(--ion-color-medium);font-size:1rem;line-height:1.6}.docs-section__content>*:last-child{margin-bottom:0}:host-context(.dark) .docs-section--level-2 .docs-section__title,:host-context([color-scheme=\"dark\"]) .docs-section--level-2 .docs-section__title{border-bottom-color:var(--ion-border-color, #333)}\n"] }]
|
|
82
|
+
}], propDecorators: { props: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}] } });
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZG9jcy1zZWN0aW9uL2RvY3Mtc2VjdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUcvQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFvRUgsTUFBTSxPQUFPLG9CQUFvQjtJQW5FakM7UUFvRVcsVUFBSyxHQUF3QixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO0tBSzdEO0lBSEMsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQzsrR0FMVSxvQkFBb0I7bUdBQXBCLG9CQUFvQix3R0EvRHJCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JULG93QkF2QlMsWUFBWTs7NEZBZ0VYLG9CQUFvQjtrQkFuRWhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JUOzhCQTBDUSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRG9jc1NlY3Rpb25NZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIHZhbC1kb2NzLXNlY3Rpb25cbiAqXG4gKiBBIHNlbWFudGljIHNlY3Rpb24gd3JhcHBlciBmb3IgZG9jdW1lbnRhdGlvbiBwYWdlcy5cbiAqIEF1dG9tYXRpY2FsbHkgY3JlYXRlcyBoZWFkaW5ncyB3aXRoIElEcyBmb3IgVE9DIGxpbmtpbmcuXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2VcbiAqIGBgYGh0bWxcbiAqIDx2YWwtZG9jcy1zZWN0aW9uIFtwcm9wc109XCJ7IGlkOiAnaW5zdGFsbGF0aW9uJywgdGl0bGU6ICdJbnN0YWxsYXRpb24nIH1cIj5cbiAqICAgPHA+SW5zdGFsbCB0aGUgcGFja2FnZSB1c2luZyBucG0uLi48L3A+XG4gKiAgIDx2YWwtZG9jcy1jb2RlLWV4YW1wbGUgW3Byb3BzXT1cImNvZGVFeGFtcGxlXCI+PC92YWwtZG9jcy1jb2RlLWV4YW1wbGU+XG4gKiA8L3ZhbC1kb2NzLXNlY3Rpb24+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBXaXRoIGxldmVsIDMgaGVhZGluZ1xuICogYGBgaHRtbFxuICogPHZhbC1kb2NzLXNlY3Rpb24gW3Byb3BzXT1cInsgaWQ6ICducG0nLCB0aXRsZTogJ1VzaW5nIG5wbScsIGxldmVsOiAzIH1cIj5cbiAqICAgPHZhbC1kb2NzLWNvZGUtZXhhbXBsZSBbcHJvcHNdPVwibnBtRXhhbXBsZVwiPjwvdmFsLWRvY3MtY29kZS1leGFtcGxlPlxuICogPC92YWwtZG9jcy1zZWN0aW9uPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1kb2NzLXNlY3Rpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8c2VjdGlvblxuICAgICAgW2lkXT1cInByb3BzLmlkXCJcbiAgICAgIGNsYXNzPVwiZG9jcy1zZWN0aW9uXCJcbiAgICAgIFtjbGFzc109XCJwcm9wcy5jc3NDbGFzc1wiXG4gICAgICBbY2xhc3MuZG9jcy1zZWN0aW9uLS1sZXZlbC0yXT1cImxldmVsID09PSAyXCJcbiAgICAgIFtjbGFzcy5kb2NzLXNlY3Rpb24tLWxldmVsLTNdPVwibGV2ZWwgPT09IDNcIlxuICAgID5cbiAgICAgIEBpZiAobGV2ZWwgPT09IDIpIHtcbiAgICAgICAgPGgyIGNsYXNzPVwiZG9jcy1zZWN0aW9uX190aXRsZVwiPnt7IHByb3BzLnRpdGxlIH19PC9oMj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8aDMgY2xhc3M9XCJkb2NzLXNlY3Rpb25fX3RpdGxlXCI+e3sgcHJvcHMudGl0bGUgfX08L2gzPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHByb3BzLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgIDxwIGNsYXNzPVwiZG9jcy1zZWN0aW9uX19kZXNjcmlwdGlvblwiPnt7IHByb3BzLmRlc2NyaXB0aW9uIH19PC9wPlxuICAgICAgfVxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZG9jcy1zZWN0aW9uX19jb250ZW50XCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvc2VjdGlvbj5cbiAgYCxcbiAgc3R5bGVzOiBbYFxuICAgIC5kb2NzLXNlY3Rpb24ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMi41cmVtO1xuICAgIH1cblxuICAgIC5kb2NzLXNlY3Rpb25fX3RpdGxlIHtcbiAgICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgY29sb3I6IHZhcigtLWlvbi10ZXh0LWNvbG9yKTtcbiAgICAgIHNjcm9sbC1tYXJnaW4tdG9wOiA4MHB4O1xuICAgIH1cblxuICAgIC5kb2NzLXNlY3Rpb24tLWxldmVsLTIgLmRvY3Mtc2VjdGlvbl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWlvbi1ib3JkZXItY29sb3IsICNlMGUwZTApO1xuICAgIH1cblxuICAgIC5kb2NzLXNlY3Rpb24tLWxldmVsLTMgLmRvY3Mtc2VjdGlvbl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIH1cblxuICAgIC5kb2NzLXNlY3Rpb25fX2Rlc2NyaXB0aW9uIHtcbiAgICAgIG1hcmdpbjogMCAwIDEuMjVyZW07XG4gICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIH1cblxuICAgIC5kb2NzLXNlY3Rpb25fX2NvbnRlbnQgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAvKiBEYXJrIG1vZGUgKi9cbiAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuZG9jcy1zZWN0aW9uLS1sZXZlbC0yIC5kb2NzLXNlY3Rpb25fX3RpdGxlLFxuICAgIDpob3N0LWNvbnRleHQoW2NvbG9yLXNjaGVtZT1cImRhcmtcIl0pIC5kb2NzLXNlY3Rpb24tLWxldmVsLTIgLmRvY3Mtc2VjdGlvbl9fdGl0bGUge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0taW9uLWJvcmRlci1jb2xvciwgIzMzMyk7XG4gICAgfVxuICBgXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9jc1NlY3Rpb25Db21wb25lbnQge1xuICBASW5wdXQoKSBwcm9wczogRG9jc1NlY3Rpb25NZXRhZGF0YSA9IHsgaWQ6ICcnLCB0aXRsZTogJycgfTtcblxuICBnZXQgbGV2ZWwoKTogMiB8IDMge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmxldmVsID8/IDI7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2RvY3Mtc2VjdGlvbi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciB0aGUgZG9jcy1zZWN0aW9uIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NzU2VjdGlvbk1ldGFkYXRhIHtcbiAgLyoqXG4gICAqIFVuaXF1ZSBJRCBmb3IgdGhlIHNlY3Rpb24gKHVzZWQgZm9yIFRPQyBsaW5raW5nKS5cbiAgICogV2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBzZWN0aW9uIGVsZW1lbnQgZm9yIGFuY2hvciBuYXZpZ2F0aW9uLlxuICAgKi9cbiAgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogU2VjdGlvbiB0aXRsZSBkaXNwbGF5ZWQgYXMgaGVhZGluZy5cbiAgICovXG4gIHRpdGxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEhlYWRpbmcgbGV2ZWwgZm9yIHRoZSBzZWN0aW9uLlxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICBsZXZlbD86IDIgfCAzO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBkZXNjcmlwdGlvbiBiZWxvdyB0aGUgdGl0bGUuXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIENTUyBjbGFzcy5cbiAgICovXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xufVxuIl19
|