valtech-components 2.0.907 → 2.0.910
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 +3 -3
- package/esm2022/lib/components/organisms/attachment-uploader/attachment-uploader.component.mjs +19 -2
- package/esm2022/lib/components/organisms/attachment-uploader/types.mjs +1 -1
- package/esm2022/lib/components/organisms/avatar-upload/avatar-upload.component.mjs +59 -5
- package/esm2022/lib/components/organisms/avatar-upload/types.mjs +2 -1
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +79 -7
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/attachment-uploader/attachment-uploader.component.d.ts +1 -0
- package/lib/components/organisms/attachment-uploader/types.d.ts +2 -0
- package/lib/components/organisms/avatar-upload/avatar-upload.component.d.ts +4 -0
- package/lib/components/organisms/avatar-upload/types.d.ts +3 -0
- package/lib/version.d.ts +1 -1
- package/package.json +4 -3
|
@@ -205,11 +205,11 @@ export class ContentReactionComponent {
|
|
|
205
205
|
return this.i18n.t(key, 'ContentReaction') || translations[key] || key;
|
|
206
206
|
}
|
|
207
207
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentReactionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
208
|
-
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: "@if (isConfigured()) {\n<div class=\"content-reaction\" [class.disabled]=\"resolvedProps().disabled\" [class.readonly]=\"resolvedProps().readonly\">\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 activeReactionValues(); 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\"> {{ state().comment.length }}/{{ resolvedProps().maxCommentLength }} </span>\n </div>\n }\n\n <!-- Bot\u00F3n de env\u00EDo -->\n @if (state().selectedValue && !state().isSubmitted) {\n <ion-button expand=\"block\" [disabled]=\"!canSubmit()\" (click)=\"submitReaction()\" class=\"submit-button\">\n @if (state().isLoading) {\n <ion-spinner name=\"crescent\"></ion-spinner>\n } @else { {{ state().hadPreviousReaction ? t('update') : t('submit') }} }\n </ion-button>\n }\n\n <!-- Mensaje de confirmaci\u00F3n -->\n @if (state().isSubmitted) {\n <p class=\"submitted-message\">{{ t('thankYou') }}</p>\n }\n\n <!-- Error -->\n @if (state().error) {\n <p class=\"error-message\">{{ state().error }}</p>\n } }\n</div>\n}\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:
|
|
208
|
+
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: "@if (isConfigured()) {\n<div class=\"content-reaction\" [class.disabled]=\"resolvedProps().disabled\" [class.readonly]=\"resolvedProps().readonly\">\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 activeReactionValues(); 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\"> {{ state().comment.length }}/{{ resolvedProps().maxCommentLength }} </span>\n </div>\n }\n\n <!-- Bot\u00F3n de env\u00EDo -->\n @if (state().selectedValue && !state().isSubmitted) {\n <ion-button expand=\"block\" [disabled]=\"!canSubmit()\" (click)=\"submitReaction()\" class=\"submit-button\">\n @if (state().isLoading) {\n <ion-spinner name=\"crescent\"></ion-spinner>\n } @else { {{ state().hadPreviousReaction ? t('update') : t('submit') }} }\n </ion-button>\n }\n\n <!-- Mensaje de confirmaci\u00F3n -->\n @if (state().isSubmitted) {\n <p class=\"submitted-message\">{{ t('thankYou') }}</p>\n }\n\n <!-- Error -->\n @if (state().error) {\n <p class=\"error-message\">{{ state().error }}</p>\n } }\n</div>\n}\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:17px;font-weight:700;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:48px;height:48px;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:22px;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: transparent;--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"] }] }); }
|
|
209
209
|
}
|
|
210
210
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentReactionComponent, decorators: [{
|
|
211
211
|
type: Component,
|
|
212
|
-
args: [{ selector: 'val-content-reaction', standalone: true, imports: [CommonModule, FormsModule, IonButton, IonSpinner, IonTextarea], template: "@if (isConfigured()) {\n<div class=\"content-reaction\" [class.disabled]=\"resolvedProps().disabled\" [class.readonly]=\"resolvedProps().readonly\">\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 activeReactionValues(); 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\"> {{ state().comment.length }}/{{ resolvedProps().maxCommentLength }} </span>\n </div>\n }\n\n <!-- Bot\u00F3n de env\u00EDo -->\n @if (state().selectedValue && !state().isSubmitted) {\n <ion-button expand=\"block\" [disabled]=\"!canSubmit()\" (click)=\"submitReaction()\" class=\"submit-button\">\n @if (state().isLoading) {\n <ion-spinner name=\"crescent\"></ion-spinner>\n } @else { {{ state().hadPreviousReaction ? t('update') : t('submit') }} }\n </ion-button>\n }\n\n <!-- Mensaje de confirmaci\u00F3n -->\n @if (state().isSubmitted) {\n <p class=\"submitted-message\">{{ t('thankYou') }}</p>\n }\n\n <!-- Error -->\n @if (state().error) {\n <p class=\"error-message\">{{ state().error }}</p>\n } }\n</div>\n}\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:
|
|
212
|
+
args: [{ selector: 'val-content-reaction', standalone: true, imports: [CommonModule, FormsModule, IonButton, IonSpinner, IonTextarea], template: "@if (isConfigured()) {\n<div class=\"content-reaction\" [class.disabled]=\"resolvedProps().disabled\" [class.readonly]=\"resolvedProps().readonly\">\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 activeReactionValues(); 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\"> {{ state().comment.length }}/{{ resolvedProps().maxCommentLength }} </span>\n </div>\n }\n\n <!-- Bot\u00F3n de env\u00EDo -->\n @if (state().selectedValue && !state().isSubmitted) {\n <ion-button expand=\"block\" [disabled]=\"!canSubmit()\" (click)=\"submitReaction()\" class=\"submit-button\">\n @if (state().isLoading) {\n <ion-spinner name=\"crescent\"></ion-spinner>\n } @else { {{ state().hadPreviousReaction ? t('update') : t('submit') }} }\n </ion-button>\n }\n\n <!-- Mensaje de confirmaci\u00F3n -->\n @if (state().isSubmitted) {\n <p class=\"submitted-message\">{{ t('thankYou') }}</p>\n }\n\n <!-- Error -->\n @if (state().error) {\n <p class=\"error-message\">{{ state().error }}</p>\n } }\n</div>\n}\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:17px;font-weight:700;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:48px;height:48px;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:22px;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: transparent;--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"] }]
|
|
213
213
|
}], propDecorators: { props: [{
|
|
214
214
|
type: Input
|
|
215
215
|
}], reactionSubmit: [{
|
|
@@ -217,4 +217,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
217
217
|
}], reactionChange: [{
|
|
218
218
|
type: Output
|
|
219
219
|
}] } });
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1yZWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbnRlbnQtcmVhY3Rpb24vY29udGVudC1yZWFjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbnRlbnQtcmVhY3Rpb24vY29udGVudC1yZWFjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFJWixNQUFNLEVBQ04sUUFBUSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQUdsRTs7Ozs7Ozs7Ozs7OztHQWFHO0FBUUgsTUFBTSxPQUFPLHdCQUF3QjtJQVByQztRQVFVLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFDLFVBQUssR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0IsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztR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QUUsb0JBQW9CO1lBQzVCLFFBQVEsRUFBRSwwQkFBMEI7WUFDcEMsU0FBUyxFQUFFLCtCQUErQjtZQUMxQyxlQUFlLEVBQUUsb0NBQW9DO1NBQ3RELENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUM7SUFDekUsQ0FBQzsrR0ExTlUsd0JBQXdCO21HQUF4Qix3QkFBd0Isa05DNUNyQyxrM0VBbUVBLHF6RUQzQlksWUFBWSw4QkFBRSxXQUFXLCtCQUFFLFNBQVMsb1BBQUUsVUFBVSx5R0FBRSxXQUFXOzs0RkFJNUQsd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDOzhCQVkvRCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25Jbml0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIHNpZ25hbCxcbiAgY29tcHV0ZWQsXG4gIGlzRGV2TW9kZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvblNwaW5uZXIsIElvblRleHRhcmVhIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBGZWVkYmFja1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mZWVkYmFjay9mZWVkYmFjay5zZXJ2aWNlJztcbmltcG9ydCB7IFJlYWN0aW9uVmFsdWUgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mZWVkYmFjay90eXBlcyc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRlbnRSZWFjdGlvbk1ldGFkYXRhLCBDb250ZW50UmVhY3Rpb25TdGF0ZSwgUmVhY3Rpb25TdWJtaXRFdmVudCwgUmVhY3Rpb25DaGFuZ2VFdmVudCB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIENvbXBvbmVudGUgcGFyYSByZWFjY2lvbmVzIGRlIGNvbnRlbmlkbyBjb24gZW1vamlzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8dmFsLWNvbnRlbnQtcmVhY3Rpb25cbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBlbnRpdHlSZWY6IHsgZW50aXR5VHlwZTogJ2FydGljbGUnLCBlbnRpdHlJZDogJ2FydC0xMjMnIH0sXG4gKiAgICAgcXVlc3Rpb246ICfCv1RlIGZ1ZSDDunRpbCBlc3RlIGFydMOtY3Vsbz8nXG4gKiAgIH1cIlxuICogICAocmVhY3Rpb25TdWJtaXQpPVwib25SZWFjdGlvblN1Ym1pdCgkZXZlbnQpXCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWNvbnRlbnQtcmVhY3Rpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgSW9uQnV0dG9uLCBJb25TcGlubmVyLCBJb25UZXh0YXJlYV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LXJlYWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29udGVudC1yZWFjdGlvbi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb250ZW50UmVhY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgZmVlZGJhY2tTZXJ2aWNlID0gaW5qZWN0KEZlZWRiYWNrU2VydmljZSk7XG4gIHByaXZhdGUgdG9hc3QgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIHJlYWRvbmx5IGlzQ29uZmlndXJlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZmVlZGJhY2tTZXJ2aWNlLmlzQ29uZmlndXJlZCgpKTtcblxuICBASW5wdXQoKSBwcm9wczogUGFydGlhbDxDb250ZW50UmVhY3Rpb25NZXRhZGF0YT4gPSB7fTtcbiAgQE91dHB1dCgpIHJlYWN0aW9uU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWFjdGlvblN1Ym1pdEV2ZW50PigpO1xuICBAT3V0cHV0KCkgcmVhY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFJlYWN0aW9uQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgLy8gRXN0YWRvIHJlYWN0aXZvXG4gIHN0YXRlID0gc2lnbmFsPENvbnRlbnRSZWFjdGlvblN0YXRlPih7XG4gICAgc2VsZWN0ZWRWYWx1ZTogbnVsbCxcbiAgICBjb21tZW50OiAnJyxcbiAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgIGlzU3VibWl0dGVkOiBmYWxzZSxcbiAgICBoYWRQcmV2aW91c1JlYWN0aW9uOiBmYWxzZSxcbiAgICBlcnJvcjogbnVsbCxcbiAgfSk7XG5cbiAgLy8gVmFsb3JlcyBwb3IgZGVmZWN0b1xuICByZWFkb25seSBkZWZhdWx0RW1vamlzOiBbc3RyaW5nLCBzdHJpbmcsIHN0cmluZ10gPSBbJ/CfmJ4nLCAn8J+YkCcsICfwn5iKJ107XG4gIHJlYWRvbmx5IGRlZmF1bHRMYWJlbHM6IFtzdHJpbmcsIHN0cmluZywgc3RyaW5nXSA9IFsnTm8gbWUgYXl1ZMOzJywgJ1JlZ3VsYXInLCAnTXV5IMO6dGlsJ107XG5cbiAgLy8gQ29tcHV0ZWQgcHJvcGVydGllc1xuICByZXNvbHZlZFByb3BzID0gY29tcHV0ZWQoKCkgPT4gKHtcbiAgICBlbnRpdHlSZWY6IHRoaXMucHJvcHMuZW50aXR5UmVmISxcbiAgICBxdWVzdGlvbjogdGhpcy5wcm9wcy5xdWVzdGlvbiB8fCB0aGlzLnQoJ3F1ZXN0aW9uJyksXG4gICAgc2hvd0NvbW1lbnQ6IHRoaXMucHJvcHMuc2hvd0NvbW1lbnQgPz8gdHJ1ZSxcbiAgICBjb21tZW50T25WYWx1ZXM6IHRoaXMucHJvcHMuY29tbWVudE9uVmFsdWVzLFxuICAgIGNvbW1lbnRQbGFjZWhvbGRlcjogdGhpcy5wcm9wcy5jb21tZW50UGxhY2Vob2xkZXIgfHwgdGhpcy50KCdjb21tZW50UGxhY2Vob2xkZXInKSxcbiAgICBtYXhDb21tZW50TGVuZ3RoOiB0aGlzLnByb3BzLm1heENvbW1lbnRMZW5ndGggPz8gNTAwLFxuICAgIGVtb2ppczogdGhpcy5wcm9wcy5lbW9qaXMgfHwgdGhpcy5kZWZhdWx0RW1vamlzLFxuICAgIGVtb2ppTGFiZWxzOiB0aGlzLnByb3BzLmVtb2ppTGFiZWxzIHx8IHRoaXMuZGVmYXVsdExhYmVscyxcbiAgICBzaG93VGhhbmtZb3U6IHRoaXMucHJvcHMuc2hvd1RoYW5rWW91ID8/IHRydWUsXG4gICAgdGhhbmtZb3VNZXNzYWdlOiB0aGlzLnByb3BzLnRoYW5rWW91TWVzc2FnZSB8fCB0aGlzLnQoJ3RoYW5rWW91JyksXG4gICAgZGlzYWJsZWQ6IHRoaXMucHJvcHMuZGlzYWJsZWQgPz8gZmFsc2UsXG4gICAgcmVhZG9ubHk6IHRoaXMucHJvcHMucmVhZG9ubHkgPz8gZmFsc2UsXG4gIH0pKTtcblxuICByZWFkb25seSBhY3RpdmVSZWFjdGlvblZhbHVlcyA9IGNvbXB1dGVkPFJlYWN0aW9uVmFsdWVbXT4oKCkgPT5cbiAgICB0aGlzLnJlc29sdmVkUHJvcHMoKS5lbW9qaXMubGVuZ3RoID09PSAyID8gWyduZWdhdGl2ZScsICdwb3NpdGl2ZSddIDogWyduZWdhdGl2ZScsICduZXV0cmFsJywgJ3Bvc2l0aXZlJ11cbiAgKTtcblxuICBzaG93Q29tbWVudEZpZWxkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHNlbCA9IHRoaXMuc3RhdGUoKS5zZWxlY3RlZFZhbHVlO1xuICAgIGlmICghc2VsKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgY29tbWVudE9uID0gdGhpcy5yZXNvbHZlZFByb3BzKCkuY29tbWVudE9uVmFsdWVzO1xuICAgIGlmIChjb21tZW50T24gIT09IHVuZGVmaW5lZCkgcmV0dXJuIGNvbW1lbnRPbi5pbmNsdWRlcyhzZWwpO1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkUHJvcHMoKS5zaG93Q29tbWVudDtcbiAgfSk7XG5cbiAgY2FuU3VibWl0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zdGF0ZSgpLnNlbGVjdGVkVmFsdWUgIT09IG51bGwgJiYgIXRoaXMuc3RhdGUoKS5pc0xvYWRpbmcpO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubG9hZFByZXZpb3VzUmVhY3Rpb24oKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sncHJvcHMnXSAmJiAhY2hhbmdlc1sncHJvcHMnXS5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5sb2FkUHJldmlvdXNSZWFjdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZFByZXZpb3VzUmVhY3Rpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLnByb3BzLmVudGl0eVJlZikgcmV0dXJuO1xuXG4gICAgLy8gU2kgaGF5IGluaXRpYWxWYWx1ZSwgdXNhcmxvIGRpcmVjdGFtZW50ZSBzaW4gY29uc3VsdGFyXG4gICAgaWYgKHRoaXMucHJvcHMuaW5pdGlhbFZhbHVlKSB7XG4gICAgICB0aGlzLnN0YXRlLnVwZGF0ZShzID0+ICh7XG4gICAgICAgIC4uLnMsXG4gICAgICAgIHNlbGVjdGVkVmFsdWU6IHRoaXMucHJvcHMuaW5pdGlhbFZhbHVlISxcbiAgICAgICAgaGFkUHJldmlvdXNSZWFjdGlvbjogdHJ1ZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgaXNTdWJtaXR0ZWQ6IHRydWUsXG4gICAgICB9KSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gU2kgc2tpcEluaXRpYWxDaGVjayBlc3TDoSBhY3Rpdm8sIG5vIGNvbnN1bHRhclxuICAgIGlmICh0aGlzLnByb3BzLnNraXBJbml0aWFsQ2hlY2spIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlLnVwZGF0ZShzID0+ICh7IC4uLnMsIGlzTG9hZGluZzogdHJ1ZSwgZXJyb3I6IG51bGwgfSkpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNoZWNrID0gYXdhaXQgdGhpcy5mZWVkYmFja1NlcnZpY2UuY2hlY2tGZWVkYmFjayhcbiAgICAgICAgdGhpcy5wcm9wcy5lbnRpdHlSZWYuZW50aXR5VHlwZSxcbiAgICAgICAgdGhpcy5wcm9wcy5lbnRpdHlSZWYuZW50aXR5SWRcbiAgICAgICk7XG5cbiAgICAgIGlmIChjaGVjay5oYXNGZWVkYmFjayAmJiBjaGVjay5yZWFjdGlvblZhbHVlKSB7XG4gICAgICAgIHRoaXMuc3RhdGUudXBkYXRlKHMgPT4gKHtcbiAgICAgICAgICAuLi5zLFxuICAgICAgICAgIHNlbGVjdGVkVmFsdWU6IGNoZWNrLnJlYWN0aW9uVmFsdWUhLFxuICAgICAgICAgIGhhZFByZXZpb3VzUmVhY3Rpb246IHRydWUsXG4gICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICBpc1N1Ym1pdHRlZDogdHJ1ZSxcbiAgICAgICAgfSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdGF0ZS51cGRhdGUocyA9PiAoeyAuLi5zLCBpc0xvYWRpbmc6IGZhbHNlIH0pKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyBwcmV2aW91cyByZWFjdGlvbjonLCBlcnJvcik7XG4gICAgICB0aGlzLnN0YXRlLnVwZGF0ZShzID0+ICh7IC4uLnMsIGlzTG9hZGluZzogZmFsc2UgfSkpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdFJlYWN0aW9uKHZhbHVlOiBSZWFjdGlvblZhbHVlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVzb2x2ZWRQcm9wcygpLmRpc2FibGVkIHx8IHRoaXMucmVzb2x2ZWRQcm9wcygpLnJlYWRvbmx5KSByZXR1cm47XG5cbiAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gdGhpcy5zdGF0ZSgpLnNlbGVjdGVkVmFsdWU7XG5cbiAgICB0aGlzLnN0YXRlLnVwZGF0ZShzID0+ICh7XG4gICAgICAuLi5zLFxuICAgICAgc2VsZWN0ZWRWYWx1ZTogdmFsdWUsXG4gICAgICBpc1N1Ym1pdHRlZDogZmFsc2UsXG4gICAgICBlcnJvcjogbnVsbCxcbiAgICB9KSk7XG5cbiAgICB0aGlzLnJlYWN0aW9uQ2hhbmdlLmVtaXQoeyB2YWx1ZSwgcHJldmlvdXNWYWx1ZSB9KTtcbiAgfVxuXG4gIGFzeW5jIHN1Ym1pdFJlYWN0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMuc3RhdGUoKTtcbiAgICBjb25zdCBwcm9wcyA9IHRoaXMucmVzb2x2ZWRQcm9wcygpO1xuXG4gICAgaWYgKCFjdXJyZW50U3RhdGUuc2VsZWN0ZWRWYWx1ZSB8fCBwcm9wcy5kaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5zdGF0ZS51cGRhdGUocyA9PiAoeyAuLi5zLCBpc0xvYWRpbmc6IHRydWUsIGVycm9yOiBudWxsIH0pKTtcblxuICAgIHRyeSB7XG4gICAgICAvLyBEZXRlcm1pbmFyIHNpIHVzYXIgZW5kcG9pbnQgYW7Ds25pbW8gbyBhdXRlbnRpY2Fkb1xuICAgICAgY29uc3QgaXNBdXRoZW50aWNhdGVkID0gdGhpcy5hdXRoPy5pc0F1dGhlbnRpY2F0ZWQoKSA/PyBmYWxzZTtcbiAgICAgIGNvbnN0IHVzZUFub255bW91cyA9IHRoaXMucHJvcHMuYWxsb3dBbm9ueW1vdXMgJiYgIWlzQXV0aGVudGljYXRlZDtcblxuICAgICAgaWYgKHVzZUFub255bW91cykge1xuICAgICAgICAvLyBVc2FyIGVuZHBvaW50IGFuw7NuaW1vIChww7pibGljbylcbiAgICAgICAgYXdhaXQgdGhpcy5mZWVkYmFja1NlcnZpY2UuY3JlYXRlQW5vbnltb3VzUmVhY3Rpb24oXG4gICAgICAgICAgcHJvcHMuZW50aXR5UmVmLFxuICAgICAgICAgIGN1cnJlbnRTdGF0ZS5zZWxlY3RlZFZhbHVlLFxuICAgICAgICAgIGN1cnJlbnRTdGF0ZS5jb21tZW50IHx8IHVuZGVmaW5lZFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVXNhciBlbmRwb2ludCBhdXRlbnRpY2Fkb1xuICAgICAgICBhd2FpdCB0aGlzLmZlZWRiYWNrU2VydmljZS5jcmVhdGVSZWFjdGlvbihcbiAgICAgICAgICBwcm9wcy5lbnRpdHlSZWYsXG4gICAgICAgICAgY3VycmVudFN0YXRlLnNlbGVjdGVkVmFsdWUsXG4gICAgICAgICAgY3VycmVudFN0YXRlLmNvbW1lbnQgfHwgdW5kZWZpbmVkXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3RhdGUudXBkYXRlKHMgPT4gKHtcbiAgICAgICAgLi4ucyxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgaXNTdWJtaXR0ZWQ6IHRydWUsXG4gICAgICAgIGhhZFByZXZpb3VzUmVhY3Rpb246ICF1c2VBbm9ueW1vdXMsIC8vIFNvbG8gcGFyYSBhdXRlbnRpY2Fkb3NcbiAgICAgIH0pKTtcblxuICAgICAgdGhpcy5yZWFjdGlvblN1Ym1pdC5lbWl0KHtcbiAgICAgICAgdmFsdWU6IGN1cnJlbnRTdGF0ZS5zZWxlY3RlZFZhbHVlLFxuICAgICAgICBjb21tZW50OiBjdXJyZW50U3RhdGUuY29tbWVudCB8fCB1bmRlZmluZWQsXG4gICAgICAgIGVudGl0eVJlZjogcHJvcHMuZW50aXR5UmVmLFxuICAgICAgICBpc1VwZGF0ZTogY3VycmVudFN0YXRlLmhhZFByZXZpb3VzUmVhY3Rpb24sXG4gICAgICB9KTtcblxuICAgICAgaWYgKHByb3BzLnNob3dUaGFua1lvdSkge1xuICAgICAgICB0aGlzLnRvYXN0LnNob3coe1xuICAgICAgICAgIG1lc3NhZ2U6IHByb3BzLnRoYW5rWW91TWVzc2FnZSxcbiAgICAgICAgICBkdXJhdGlvbjogMjAwMCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHN1Ym1pdHRpbmcgcmVhY3Rpb246JywgZXJyb3IpO1xuICAgICAgdGhpcy5zdGF0ZS51cGRhdGUocyA9PiAoe1xuICAgICAgICAuLi5zLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogdGhpcy50KCdlcnJvclN1Ym1pdHRpbmcnKSxcbiAgICAgIH0pKTtcblxuICAgICAgdGhpcy50b2FzdC5zaG93KHtcbiAgICAgICAgbWVzc2FnZTogdGhpcy50KCdlcnJvclN1Ym1pdHRpbmcnKSxcbiAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVDb21tZW50KGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQuZGV0YWlsLnZhbHVlIHx8ICcnO1xuICAgIHRoaXMuc3RhdGUudXBkYXRlKHMgPT4gKHsgLi4ucywgY29tbWVudDogdmFsdWUgfSkpO1xuICB9XG5cbiAgZ2V0RW1vamkoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQcm9wcygpLmVtb2ppc1tpbmRleF07XG4gIH1cblxuICBnZXRFbW9qaUxhYmVsKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkUHJvcHMoKS5lbW9qaUxhYmVsc1tpbmRleF07XG4gIH1cblxuICBpc1NlbGVjdGVkKHZhbHVlOiBSZWFjdGlvblZhbHVlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUoKS5zZWxlY3RlZFZhbHVlID09PSB2YWx1ZTtcbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRyYW5zbGF0aW9uczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIHF1ZXN0aW9uOiAnwr9UZSByZXN1bHTDsyDDunRpbCBlc3RlIGNvbnRlbmlkbz8nLFxuICAgICAgY29tbWVudFBsYWNlaG9sZGVyOiAnQ3XDqW50YW5vcyBtw6FzIChvcGNpb25hbCkuLi4nLFxuICAgICAgc3VibWl0OiAnRW52aWFyIG9waW5pw7NuJyxcbiAgICAgIHVwZGF0ZTogJ0FjdHVhbGl6YXIgb3BpbmnDs24nLFxuICAgICAgdGhhbmtZb3U6ICfCoUdyYWNpYXMgcG9yIHR1IG9waW5pw7NuIScsXG4gICAgICBzdWJtaXR0ZWQ6ICdUdSBvcGluacOzbiBoYSBzaWRvIHJlZ2lzdHJhZGEnLFxuICAgICAgZXJyb3JTdWJtaXR0aW5nOiAnRXJyb3IgYWwgZW52aWFyLiBJbnRlbnRhIGRlIG51ZXZvLicsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCAnQ29udGVudFJlYWN0aW9uJykgfHwgdHJhbnNsYXRpb25zW2tleV0gfHwga2V5O1xuICB9XG59XG4iLCJAaWYgKGlzQ29uZmlndXJlZCgpKSB7XG48ZGl2IGNsYXNzPVwiY29udGVudC1yZWFjdGlvblwiIFtjbGFzcy5kaXNhYmxlZF09XCJyZXNvbHZlZFByb3BzKCkuZGlzYWJsZWRcIiBbY2xhc3MucmVhZG9ubHldPVwicmVzb2x2ZWRQcm9wcygpLnJlYWRvbmx5XCI+XG4gIDwhLS0gTG9hZGluZyBpbmljaWFsIC0tPlxuICBAaWYgKHN0YXRlKCkuaXNMb2FkaW5nICYmICFzdGF0ZSgpLnNlbGVjdGVkVmFsdWUpIHtcbiAgPGRpdiBjbGFzcz1cImxvYWRpbmctY29udGFpbmVyXCI+XG4gICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiPjwvaW9uLXNwaW5uZXI+XG4gIDwvZGl2PlxuICB9IEBlbHNlIHtcbiAgPCEtLSBQcmVndW50YSAtLT5cbiAgPHAgY2xhc3M9XCJxdWVzdGlvblwiPnt7IHJlc29sdmVkUHJvcHMoKS5xdWVzdGlvbiB9fTwvcD5cblxuICA8IS0tIEVtb2ppcyAtLT5cbiAgPGRpdiBjbGFzcz1cImVtb2ppLWNvbnRhaW5lclwiPlxuICAgIEBmb3IgKHZhbHVlIG9mIGFjdGl2ZVJlYWN0aW9uVmFsdWVzKCk7IHRyYWNrIHZhbHVlOyBsZXQgaSA9ICRpbmRleCkge1xuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJlbW9qaS1idXR0b25cIlxuICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImlzU2VsZWN0ZWQodmFsdWUpXCJcbiAgICAgIFtjbGFzcy5uZWdhdGl2ZV09XCJ2YWx1ZSA9PT0gJ25lZ2F0aXZlJyAmJiBpc1NlbGVjdGVkKHZhbHVlKVwiXG4gICAgICBbY2xhc3MubmV1dHJhbF09XCJ2YWx1ZSA9PT0gJ25ldXRyYWwnICYmIGlzU2VsZWN0ZWQodmFsdWUpXCJcbiAgICAgIFtjbGFzcy5wb3NpdGl2ZV09XCJ2YWx1ZSA9PT0gJ3Bvc2l0aXZlJyAmJiBpc1NlbGVjdGVkKHZhbHVlKVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldEVtb2ppTGFiZWwoaSlcIlxuICAgICAgW2F0dHIuYXJpYS1wcmVzc2VkXT1cImlzU2VsZWN0ZWQodmFsdWUpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJyZXNvbHZlZFByb3BzKCkuZGlzYWJsZWQgfHwgcmVzb2x2ZWRQcm9wcygpLnJlYWRvbmx5XCJcbiAgICAgIChjbGljayk9XCJzZWxlY3RSZWFjdGlvbih2YWx1ZSlcIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZW1vamlcIj57eyBnZXRFbW9qaShpKSB9fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICB9XG4gIDwvZGl2PlxuXG4gIDwhLS0gQ2FtcG8gZGUgY29tZW50YXJpbyAoc29sbyBzaSBoYXkgc2VsZWNjacOzbikgLS0+XG4gIEBpZiAoc2hvd0NvbW1lbnRGaWVsZCgpKSB7XG4gIDxkaXYgY2xhc3M9XCJjb21tZW50LXNlY3Rpb25cIj5cbiAgICA8aW9uLXRleHRhcmVhXG4gICAgICBbdmFsdWVdPVwic3RhdGUoKS5jb21tZW50XCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJyZXNvbHZlZFByb3BzKCkuY29tbWVudFBsYWNlaG9sZGVyXCJcbiAgICAgIFttYXhsZW5ndGhdPVwicmVzb2x2ZWRQcm9wcygpLm1heENvbW1lbnRMZW5ndGhcIlxuICAgICAgW2Rpc2FibGVkXT1cInJlc29sdmVkUHJvcHMoKS5kaXNhYmxlZFwiXG4gICAgICBbcm93c109XCIzXCJcbiAgICAgIGNsYXNzPVwiY29tbWVudC10ZXh0YXJlYVwiXG4gICAgICAoaW9uSW5wdXQpPVwidXBkYXRlQ29tbWVudCgkZXZlbnQpXCJcbiAgICA+PC9pb24tdGV4dGFyZWE+XG4gICAgPHNwYW4gY2xhc3M9XCJjaGFyLWNvdW50XCI+IHt7IHN0YXRlKCkuY29tbWVudC5sZW5ndGggfX0ve3sgcmVzb2x2ZWRQcm9wcygpLm1heENvbW1lbnRMZW5ndGggfX0gPC9zcGFuPlxuICA8L2Rpdj5cbiAgfVxuXG4gIDwhLS0gQm90w7NuIGRlIGVudsOtbyAtLT5cbiAgQGlmIChzdGF0ZSgpLnNlbGVjdGVkVmFsdWUgJiYgIXN0YXRlKCkuaXNTdWJtaXR0ZWQpIHtcbiAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBbZGlzYWJsZWRdPVwiIWNhblN1Ym1pdCgpXCIgKGNsaWNrKT1cInN1Ym1pdFJlYWN0aW9uKClcIiBjbGFzcz1cInN1Ym1pdC1idXR0b25cIj5cbiAgICBAaWYgKHN0YXRlKCkuaXNMb2FkaW5nKSB7XG4gICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiPjwvaW9uLXNwaW5uZXI+XG4gICAgfSBAZWxzZSB7IHt7IHN0YXRlKCkuaGFkUHJldmlvdXNSZWFjdGlvbiA/IHQoJ3VwZGF0ZScpIDogdCgnc3VibWl0JykgfX0gfVxuICA8L2lvbi1idXR0b24+XG4gIH1cblxuICA8IS0tIE1lbnNhamUgZGUgY29uZmlybWFjacOzbiAtLT5cbiAgQGlmIChzdGF0ZSgpLmlzU3VibWl0dGVkKSB7XG4gIDxwIGNsYXNzPVwic3VibWl0dGVkLW1lc3NhZ2VcIj57eyB0KCd0aGFua1lvdScpIH19PC9wPlxuICB9XG5cbiAgPCEtLSBFcnJvciAtLT5cbiAgQGlmIChzdGF0ZSgpLmVycm9yKSB7XG4gIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPnt7IHN0YXRlKCkuZXJyb3IgfX08L3A+XG4gIH0gfVxuPC9kaXY+XG59XG4iXX0=
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1yZWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbnRlbnQtcmVhY3Rpb24vY29udGVudC1yZWFjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbnRlbnQtcmVhY3Rpb24vY29udGVudC1yZWFjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFJWixNQUFNLEVBQ04sUUFBUSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQUdsRTs7Ozs7Ozs7Ozs7OztHQWFHO0FBUUgsTUFBTSxPQUFPLHdCQUF3QjtJQVByQztRQVFVLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFDLFVBQUssR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0IsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztR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QUUsb0JBQW9CO1lBQzVCLFFBQVEsRUFBRSwwQkFBMEI7WUFDcEMsU0FBUyxFQUFFLCtCQUErQjtZQUMxQyxlQUFlLEVBQUUsb0NBQW9DO1NBQ3RELENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUM7SUFDekUsQ0FBQzsrR0ExTlUsd0JBQXdCO21HQUF4Qix3QkFBd0Isa05DNUNyQyxrM0VBbUVBLDB5RUQzQlksWUFBWSw4QkFBRSxXQUFXLCtCQUFFLFNBQVMsb1BBQUUsVUFBVSx5R0FBRSxXQUFXOzs0RkFJNUQsd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDOzhCQVkvRCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25Jbml0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIHNpZ25hbCxcbiAgY29tcHV0ZWQsXG4gIGlzRGV2TW9kZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvblNwaW5uZXIsIElvblRleHRhcmVhIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBGZWVkYmFja1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mZWVkYmFjay9mZWVkYmFjay5zZXJ2aWNlJztcbmltcG9ydCB7IFJlYWN0aW9uVmFsdWUgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mZWVkYmFjay90eXBlcyc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRlbnRSZWFjdGlvbk1ldGFkYXRhLCBDb250ZW50UmVhY3Rpb25TdGF0ZSwgUmVhY3Rpb25TdWJtaXRFdmVudCwgUmVhY3Rpb25DaGFuZ2VFdmVudCB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIENvbXBvbmVudGUgcGFyYSByZWFjY2lvbmVzIGRlIGNvbnRlbmlkbyBjb24gZW1vamlzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8dmFsLWNvbnRlbnQtcmVhY3Rpb25cbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBlbnRpdHlSZWY6IHsgZW50aXR5VHlwZTogJ2FydGljbGUnLCBlbnRpdHlJZDogJ2FydC0xMjMnIH0sXG4gKiAgICAgcXVlc3Rpb246ICfCv1RlIGZ1ZSDDunRpbCBlc3RlIGFydMOtY3Vsbz8nXG4gKiAgIH1cIlxuICogICAocmVhY3Rpb25TdWJtaXQpPVwib25SZWFjdGlvblN1Ym1pdCgkZXZlbnQpXCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWNvbnRlbnQtcmVhY3Rpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgSW9uQnV0dG9uLCBJb25TcGlubmVyLCBJb25UZXh0YXJlYV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LXJlYWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29udGVudC1yZWFjdGlvbi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb250ZW50UmVhY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgZmVlZGJhY2tTZXJ2aWNlID0gaW5qZWN0KEZlZWRiYWNrU2VydmljZSk7XG4gIHByaXZhdGUgdG9hc3QgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIHJlYWRvbmx5IGlzQ29uZmlndXJlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZmVlZGJhY2tTZXJ2aWNlLmlzQ29uZmlndXJlZCgpKTtcblxuICBASW5wdXQoKSBwcm9wczogUGFydGlhbDxDb250ZW50UmVhY3Rpb25NZXRhZGF0YT4gPSB7fTtcbiAgQE91dHB1dCgpIHJlYWN0aW9uU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWFjdGlvblN1Ym1pdEV2ZW50PigpO1xuICBAT3V0cHV0KCkgcmVhY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFJlYWN0aW9uQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgLy8gRXN0YWRvIHJlYWN0aXZvXG4gIHN0YXRlID0gc2lnbmFsPENvbnRlbnRSZWFjdGlvblN0YXRlPih7XG4gICAgc2VsZWN0ZWRWYWx1ZTogbnVsbCxcbiAgICBjb21tZW50OiAnJyxcbiAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgIGlzU3VibWl0dGVkOiBmYWxzZSxcbiAgICBoYWRQcmV2aW91c1JlYWN0aW9uOiBmYWxzZSxcbiAgICBlcnJvcjogbnVsbCxcbiAgfSk7XG5cbiAgLy8gVmFsb3JlcyBwb3IgZGVmZWN0b1xuICByZWFkb25seSBkZWZhdWx0RW1vamlzOiBbc3RyaW5nLCBzdHJpbmcsIHN0cmluZ10gPSBbJ/CfmJ4nLCAn8J+YkCcsICfwn5iKJ107XG4gIHJlYWRvbmx5IGRlZmF1bHRMYWJlbHM6IFtzdHJpbmcsIHN0cmluZywgc3RyaW5nXSA9IFsnTm8gbWUgYXl1ZMOzJywgJ1JlZ3VsYXInLCAnTXV5IMO6dGlsJ107XG5cbiAgLy8gQ29tcHV0ZWQgcHJvcGVydGllc1xuICByZXNvbHZlZFByb3BzID0gY29tcHV0ZWQoKCkgPT4gKHtcbiAgICBlbnRpdHlSZWY6IHRoaXMucHJvcHMuZW50aXR5UmVmISxcbiAgICBxdWVzdGlvbjogdGhpcy5wcm9wcy5xdWVzdGlvbiB8fCB0aGlzLnQoJ3F1ZXN0aW9uJyksXG4gICAgc2hvd0NvbW1lbnQ6IHRoaXMucHJvcHMuc2hvd0NvbW1lbnQgPz8gdHJ1ZSxcbiAgICBjb21tZW50T25WYWx1ZXM6IHRoaXMucHJvcHMuY29tbWVudE9uVmFsdWVzLFxuICAgIGNvbW1lbnRQbGFjZWhvbGRlcjogdGhpcy5wcm9wcy5jb21tZW50UGxhY2Vob2xkZXIgfHwgdGhpcy50KCdjb21tZW50UGxhY2Vob2xkZXInKSxcbiAgICBtYXhDb21tZW50TGVuZ3RoOiB0aGlzLnByb3BzLm1heENvbW1lbnRMZW5ndGggPz8gNTAwLFxuICAgIGVtb2ppczogdGhpcy5wcm9wcy5lbW9qaXMgfHwgdGhpcy5kZWZhdWx0RW1vamlzLFxuICAgIGVtb2ppTGFiZWxzOiB0aGlzLnByb3BzLmVtb2ppTGFiZWxzIHx8IHRoaXMuZGVmYXVsdExhYmVscyxcbiAgICBzaG93VGhhbmtZb3U6IHRoaXMucHJvcHMuc2hvd1RoYW5rWW91ID8/IHRydWUsXG4gICAgdGhhbmtZb3VNZXNzYWdlOiB0aGlzLnByb3BzLnRoYW5rWW91TWVzc2FnZSB8fCB0aGlzLnQoJ3RoYW5rWW91JyksXG4gICAgZGlzYWJsZWQ6IHRoaXMucHJvcHMuZGlzYWJsZWQgPz8gZmFsc2UsXG4gICAgcmVhZG9ubHk6IHRoaXMucHJvcHMucmVhZG9ubHkgPz8gZmFsc2UsXG4gIH0pKTtcblxuICByZWFkb25seSBhY3RpdmVSZWFjdGlvblZhbHVlcyA9IGNvbXB1dGVkPFJlYWN0aW9uVmFsdWVbXT4oKCkgPT5cbiAgICB0aGlzLnJlc29sdmVkUHJvcHMoKS5lbW9qaXMubGVuZ3RoID09PSAyID8gWyduZWdhdGl2ZScsICdwb3NpdGl2ZSddIDogWyduZWdhdGl2ZScsICduZXV0cmFsJywgJ3Bvc2l0aXZlJ11cbiAgKTtcblxuICBzaG93Q29tbWVudEZpZWxkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHNlbCA9IHRoaXMuc3RhdGUoKS5zZWxlY3RlZFZhbHVlO1xuICAgIGlmICghc2VsKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgY29tbWVudE9uID0gdGhpcy5yZXNvbHZlZFByb3BzKCkuY29tbWVudE9uVmFsdWVzO1xuICAgIGlmIChjb21tZW50T24gIT09IHVuZGVmaW5lZCkgcmV0dXJuIGNvbW1lbnRPbi5pbmNsdWRlcyhzZWwpO1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkUHJvcHMoKS5zaG93Q29tbWVudDtcbiAgfSk7XG5cbiAgY2FuU3VibWl0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zdGF0ZSgpLnNlbGVjdGVkVmFsdWUgIT09IG51bGwgJiYgIXRoaXMuc3RhdGUoKS5pc0xvYWRpbmcpO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubG9hZFByZXZpb3VzUmVhY3Rpb24oKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sncHJvcHMnXSAmJiAhY2hhbmdlc1sncHJvcHMnXS5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5sb2FkUHJldmlvdXNSZWFjdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZFByZXZpb3VzUmVhY3Rpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLnByb3BzLmVudGl0eVJlZikgcmV0dXJuO1xuXG4gICAgLy8gU2kgaGF5IGluaXRpYWxWYWx1ZSwgdXNhcmxvIGRpcmVjdGFtZW50ZSBzaW4gY29uc3VsdGFyXG4gICAgaWYgKHRoaXMucHJvcHMuaW5pdGlhbFZhbHVlKSB7XG4gICAgICB0aGlzLnN0YXRlLnVwZGF0ZShzID0+ICh7XG4gICAgICAgIC4uLnMsXG4gICAgICAgIHNlbGVjdGVkVmFsdWU6IHRoaXMucHJvcHMuaW5pdGlhbFZhbHVlISxcbiAgICAgICAgaGFkUHJldmlvdXNSZWFjdGlvbjogdHJ1ZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgaXNTdWJtaXR0ZWQ6IHRydWUsXG4gICAgICB9KSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gU2kgc2tpcEluaXRpYWxDaGVjayBlc3TDoSBhY3Rpdm8sIG5vIGNvbnN1bHRhclxuICAgIGlmICh0aGlzLnByb3BzLnNraXBJbml0aWFsQ2hlY2spIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlLnVwZGF0ZShzID0+ICh7IC4uLnMsIGlzTG9hZGluZzogdHJ1ZSwgZXJyb3I6IG51bGwgfSkpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNoZWNrID0gYXdhaXQgdGhpcy5mZWVkYmFja1NlcnZpY2UuY2hlY2tGZWVkYmFjayhcbiAgICAgICAgdGhpcy5wcm9wcy5lbnRpdHlSZWYuZW50aXR5VHlwZSxcbiAgICAgICAgdGhpcy5wcm9wcy5lbnRpdHlSZWYuZW50aXR5SWRcbiAgICAgICk7XG5cbiAgICAgIGlmIChjaGVjay5oYXNGZWVkYmFjayAmJiBjaGVjay5yZWFjdGlvblZhbHVlKSB7XG4gICAgICAgIHRoaXMuc3RhdGUudXBkYXRlKHMgPT4gKHtcbiAgICAgICAgICAuLi5zLFxuICAgICAgICAgIHNlbGVjdGVkVmFsdWU6IGNoZWNrLnJlYWN0aW9uVmFsdWUhLFxuICAgICAgICAgIGhhZFByZXZpb3VzUmVhY3Rpb246IHRydWUsXG4gICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICBpc1N1Ym1pdHRlZDogdHJ1ZSxcbiAgICAgICAgfSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdGF0ZS51cGRhdGUocyA9PiAoeyAuLi5zLCBpc0xvYWRpbmc6IGZhbHNlIH0pKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyBwcmV2aW91cyByZWFjdGlvbjonLCBlcnJvcik7XG4gICAgICB0aGlzLnN0YXRlLnVwZGF0ZShzID0+ICh7IC4uLnMsIGlzTG9hZGluZzogZmFsc2UgfSkpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdFJlYWN0aW9uKHZhbHVlOiBSZWFjdGlvblZhbHVlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVzb2x2ZWRQcm9wcygpLmRpc2FibGVkIHx8IHRoaXMucmVzb2x2ZWRQcm9wcygpLnJlYWRvbmx5KSByZXR1cm47XG5cbiAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gdGhpcy5zdGF0ZSgpLnNlbGVjdGVkVmFsdWU7XG5cbiAgICB0aGlzLnN0YXRlLnVwZGF0ZShzID0+ICh7XG4gICAgICAuLi5zLFxuICAgICAgc2VsZWN0ZWRWYWx1ZTogdmFsdWUsXG4gICAgICBpc1N1Ym1pdHRlZDogZmFsc2UsXG4gICAgICBlcnJvcjogbnVsbCxcbiAgICB9KSk7XG5cbiAgICB0aGlzLnJlYWN0aW9uQ2hhbmdlLmVtaXQoeyB2YWx1ZSwgcHJldmlvdXNWYWx1ZSB9KTtcbiAgfVxuXG4gIGFzeW5jIHN1Ym1pdFJlYWN0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMuc3RhdGUoKTtcbiAgICBjb25zdCBwcm9wcyA9IHRoaXMucmVzb2x2ZWRQcm9wcygpO1xuXG4gICAgaWYgKCFjdXJyZW50U3RhdGUuc2VsZWN0ZWRWYWx1ZSB8fCBwcm9wcy5kaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5zdGF0ZS51cGRhdGUocyA9PiAoeyAuLi5zLCBpc0xvYWRpbmc6IHRydWUsIGVycm9yOiBudWxsIH0pKTtcblxuICAgIHRyeSB7XG4gICAgICAvLyBEZXRlcm1pbmFyIHNpIHVzYXIgZW5kcG9pbnQgYW7Ds25pbW8gbyBhdXRlbnRpY2Fkb1xuICAgICAgY29uc3QgaXNBdXRoZW50aWNhdGVkID0gdGhpcy5hdXRoPy5pc0F1dGhlbnRpY2F0ZWQoKSA/PyBmYWxzZTtcbiAgICAgIGNvbnN0IHVzZUFub255bW91cyA9IHRoaXMucHJvcHMuYWxsb3dBbm9ueW1vdXMgJiYgIWlzQXV0aGVudGljYXRlZDtcblxuICAgICAgaWYgKHVzZUFub255bW91cykge1xuICAgICAgICAvLyBVc2FyIGVuZHBvaW50IGFuw7NuaW1vIChww7pibGljbylcbiAgICAgICAgYXdhaXQgdGhpcy5mZWVkYmFja1NlcnZpY2UuY3JlYXRlQW5vbnltb3VzUmVhY3Rpb24oXG4gICAgICAgICAgcHJvcHMuZW50aXR5UmVmLFxuICAgICAgICAgIGN1cnJlbnRTdGF0ZS5zZWxlY3RlZFZhbHVlLFxuICAgICAgICAgIGN1cnJlbnRTdGF0ZS5jb21tZW50IHx8IHVuZGVmaW5lZFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVXNhciBlbmRwb2ludCBhdXRlbnRpY2Fkb1xuICAgICAgICBhd2FpdCB0aGlzLmZlZWRiYWNrU2VydmljZS5jcmVhdGVSZWFjdGlvbihcbiAgICAgICAgICBwcm9wcy5lbnRpdHlSZWYsXG4gICAgICAgICAgY3VycmVudFN0YXRlLnNlbGVjdGVkVmFsdWUsXG4gICAgICAgICAgY3VycmVudFN0YXRlLmNvbW1lbnQgfHwgdW5kZWZpbmVkXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3RhdGUudXBkYXRlKHMgPT4gKHtcbiAgICAgICAgLi4ucyxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgaXNTdWJtaXR0ZWQ6IHRydWUsXG4gICAgICAgIGhhZFByZXZpb3VzUmVhY3Rpb246ICF1c2VBbm9ueW1vdXMsIC8vIFNvbG8gcGFyYSBhdXRlbnRpY2Fkb3NcbiAgICAgIH0pKTtcblxuICAgICAgdGhpcy5yZWFjdGlvblN1Ym1pdC5lbWl0KHtcbiAgICAgICAgdmFsdWU6IGN1cnJlbnRTdGF0ZS5zZWxlY3RlZFZhbHVlLFxuICAgICAgICBjb21tZW50OiBjdXJyZW50U3RhdGUuY29tbWVudCB8fCB1bmRlZmluZWQsXG4gICAgICAgIGVudGl0eVJlZjogcHJvcHMuZW50aXR5UmVmLFxuICAgICAgICBpc1VwZGF0ZTogY3VycmVudFN0YXRlLmhhZFByZXZpb3VzUmVhY3Rpb24sXG4gICAgICB9KTtcblxuICAgICAgaWYgKHByb3BzLnNob3dUaGFua1lvdSkge1xuICAgICAgICB0aGlzLnRvYXN0LnNob3coe1xuICAgICAgICAgIG1lc3NhZ2U6IHByb3BzLnRoYW5rWW91TWVzc2FnZSxcbiAgICAgICAgICBkdXJhdGlvbjogMjAwMCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHN1Ym1pdHRpbmcgcmVhY3Rpb246JywgZXJyb3IpO1xuICAgICAgdGhpcy5zdGF0ZS51cGRhdGUocyA9PiAoe1xuICAgICAgICAuLi5zLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogdGhpcy50KCdlcnJvclN1Ym1pdHRpbmcnKSxcbiAgICAgIH0pKTtcblxuICAgICAgdGhpcy50b2FzdC5zaG93KHtcbiAgICAgICAgbWVzc2FnZTogdGhpcy50KCdlcnJvclN1Ym1pdHRpbmcnKSxcbiAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVDb21tZW50KGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQuZGV0YWlsLnZhbHVlIHx8ICcnO1xuICAgIHRoaXMuc3RhdGUudXBkYXRlKHMgPT4gKHsgLi4ucywgY29tbWVudDogdmFsdWUgfSkpO1xuICB9XG5cbiAgZ2V0RW1vamkoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQcm9wcygpLmVtb2ppc1tpbmRleF07XG4gIH1cblxuICBnZXRFbW9qaUxhYmVsKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkUHJvcHMoKS5lbW9qaUxhYmVsc1tpbmRleF07XG4gIH1cblxuICBpc1NlbGVjdGVkKHZhbHVlOiBSZWFjdGlvblZhbHVlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUoKS5zZWxlY3RlZFZhbHVlID09PSB2YWx1ZTtcbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRyYW5zbGF0aW9uczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIHF1ZXN0aW9uOiAnwr9UZSByZXN1bHTDsyDDunRpbCBlc3RlIGNvbnRlbmlkbz8nLFxuICAgICAgY29tbWVudFBsYWNlaG9sZGVyOiAnQ3XDqW50YW5vcyBtw6FzIChvcGNpb25hbCkuLi4nLFxuICAgICAgc3VibWl0OiAnRW52aWFyIG9waW5pw7NuJyxcbiAgICAgIHVwZGF0ZTogJ0FjdHVhbGl6YXIgb3BpbmnDs24nLFxuICAgICAgdGhhbmtZb3U6ICfCoUdyYWNpYXMgcG9yIHR1IG9waW5pw7NuIScsXG4gICAgICBzdWJtaXR0ZWQ6ICdUdSBvcGluacOzbiBoYSBzaWRvIHJlZ2lzdHJhZGEnLFxuICAgICAgZXJyb3JTdWJtaXR0aW5nOiAnRXJyb3IgYWwgZW52aWFyLiBJbnRlbnRhIGRlIG51ZXZvLicsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCAnQ29udGVudFJlYWN0aW9uJykgfHwgdHJhbnNsYXRpb25zW2tleV0gfHwga2V5O1xuICB9XG59XG4iLCJAaWYgKGlzQ29uZmlndXJlZCgpKSB7XG48ZGl2IGNsYXNzPVwiY29udGVudC1yZWFjdGlvblwiIFtjbGFzcy5kaXNhYmxlZF09XCJyZXNvbHZlZFByb3BzKCkuZGlzYWJsZWRcIiBbY2xhc3MucmVhZG9ubHldPVwicmVzb2x2ZWRQcm9wcygpLnJlYWRvbmx5XCI+XG4gIDwhLS0gTG9hZGluZyBpbmljaWFsIC0tPlxuICBAaWYgKHN0YXRlKCkuaXNMb2FkaW5nICYmICFzdGF0ZSgpLnNlbGVjdGVkVmFsdWUpIHtcbiAgPGRpdiBjbGFzcz1cImxvYWRpbmctY29udGFpbmVyXCI+XG4gICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiPjwvaW9uLXNwaW5uZXI+XG4gIDwvZGl2PlxuICB9IEBlbHNlIHtcbiAgPCEtLSBQcmVndW50YSAtLT5cbiAgPHAgY2xhc3M9XCJxdWVzdGlvblwiPnt7IHJlc29sdmVkUHJvcHMoKS5xdWVzdGlvbiB9fTwvcD5cblxuICA8IS0tIEVtb2ppcyAtLT5cbiAgPGRpdiBjbGFzcz1cImVtb2ppLWNvbnRhaW5lclwiPlxuICAgIEBmb3IgKHZhbHVlIG9mIGFjdGl2ZVJlYWN0aW9uVmFsdWVzKCk7IHRyYWNrIHZhbHVlOyBsZXQgaSA9ICRpbmRleCkge1xuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJlbW9qaS1idXR0b25cIlxuICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImlzU2VsZWN0ZWQodmFsdWUpXCJcbiAgICAgIFtjbGFzcy5uZWdhdGl2ZV09XCJ2YWx1ZSA9PT0gJ25lZ2F0aXZlJyAmJiBpc1NlbGVjdGVkKHZhbHVlKVwiXG4gICAgICBbY2xhc3MubmV1dHJhbF09XCJ2YWx1ZSA9PT0gJ25ldXRyYWwnICYmIGlzU2VsZWN0ZWQodmFsdWUpXCJcbiAgICAgIFtjbGFzcy5wb3NpdGl2ZV09XCJ2YWx1ZSA9PT0gJ3Bvc2l0aXZlJyAmJiBpc1NlbGVjdGVkKHZhbHVlKVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldEVtb2ppTGFiZWwoaSlcIlxuICAgICAgW2F0dHIuYXJpYS1wcmVzc2VkXT1cImlzU2VsZWN0ZWQodmFsdWUpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJyZXNvbHZlZFByb3BzKCkuZGlzYWJsZWQgfHwgcmVzb2x2ZWRQcm9wcygpLnJlYWRvbmx5XCJcbiAgICAgIChjbGljayk9XCJzZWxlY3RSZWFjdGlvbih2YWx1ZSlcIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZW1vamlcIj57eyBnZXRFbW9qaShpKSB9fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICB9XG4gIDwvZGl2PlxuXG4gIDwhLS0gQ2FtcG8gZGUgY29tZW50YXJpbyAoc29sbyBzaSBoYXkgc2VsZWNjacOzbikgLS0+XG4gIEBpZiAoc2hvd0NvbW1lbnRGaWVsZCgpKSB7XG4gIDxkaXYgY2xhc3M9XCJjb21tZW50LXNlY3Rpb25cIj5cbiAgICA8aW9uLXRleHRhcmVhXG4gICAgICBbdmFsdWVdPVwic3RhdGUoKS5jb21tZW50XCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJyZXNvbHZlZFByb3BzKCkuY29tbWVudFBsYWNlaG9sZGVyXCJcbiAgICAgIFttYXhsZW5ndGhdPVwicmVzb2x2ZWRQcm9wcygpLm1heENvbW1lbnRMZW5ndGhcIlxuICAgICAgW2Rpc2FibGVkXT1cInJlc29sdmVkUHJvcHMoKS5kaXNhYmxlZFwiXG4gICAgICBbcm93c109XCIzXCJcbiAgICAgIGNsYXNzPVwiY29tbWVudC10ZXh0YXJlYVwiXG4gICAgICAoaW9uSW5wdXQpPVwidXBkYXRlQ29tbWVudCgkZXZlbnQpXCJcbiAgICA+PC9pb24tdGV4dGFyZWE+XG4gICAgPHNwYW4gY2xhc3M9XCJjaGFyLWNvdW50XCI+IHt7IHN0YXRlKCkuY29tbWVudC5sZW5ndGggfX0ve3sgcmVzb2x2ZWRQcm9wcygpLm1heENvbW1lbnRMZW5ndGggfX0gPC9zcGFuPlxuICA8L2Rpdj5cbiAgfVxuXG4gIDwhLS0gQm90w7NuIGRlIGVudsOtbyAtLT5cbiAgQGlmIChzdGF0ZSgpLnNlbGVjdGVkVmFsdWUgJiYgIXN0YXRlKCkuaXNTdWJtaXR0ZWQpIHtcbiAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBbZGlzYWJsZWRdPVwiIWNhblN1Ym1pdCgpXCIgKGNsaWNrKT1cInN1Ym1pdFJlYWN0aW9uKClcIiBjbGFzcz1cInN1Ym1pdC1idXR0b25cIj5cbiAgICBAaWYgKHN0YXRlKCkuaXNMb2FkaW5nKSB7XG4gICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiPjwvaW9uLXNwaW5uZXI+XG4gICAgfSBAZWxzZSB7IHt7IHN0YXRlKCkuaGFkUHJldmlvdXNSZWFjdGlvbiA/IHQoJ3VwZGF0ZScpIDogdCgnc3VibWl0JykgfX0gfVxuICA8L2lvbi1idXR0b24+XG4gIH1cblxuICA8IS0tIE1lbnNhamUgZGUgY29uZmlybWFjacOzbiAtLT5cbiAgQGlmIChzdGF0ZSgpLmlzU3VibWl0dGVkKSB7XG4gIDxwIGNsYXNzPVwic3VibWl0dGVkLW1lc3NhZ2VcIj57eyB0KCd0aGFua1lvdScpIH19PC9wPlxuICB9XG5cbiAgPCEtLSBFcnJvciAtLT5cbiAgQGlmIChzdGF0ZSgpLmVycm9yKSB7XG4gIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPnt7IHN0YXRlKCkuZXJyb3IgfX08L3A+XG4gIH0gfVxuPC9kaXY+XG59XG4iXX0=
|
package/esm2022/lib/components/organisms/attachment-uploader/attachment-uploader.component.mjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import Compressor from 'compressorjs';
|
|
1
2
|
import { Component, computed, inject, input, output, signal } from '@angular/core';
|
|
2
3
|
import { IonButton, IonIcon, IonNote, IonSpinner } from '@ionic/angular/standalone';
|
|
3
4
|
import { addIcons } from 'ionicons';
|
|
@@ -45,9 +46,25 @@ export class AttachmentUploaderComponent {
|
|
|
45
46
|
this.uploadFile(id, file);
|
|
46
47
|
}
|
|
47
48
|
}
|
|
49
|
+
compressImage(file) {
|
|
50
|
+
return new Promise((resolve, reject) => {
|
|
51
|
+
new Compressor(file, {
|
|
52
|
+
quality: 0.8,
|
|
53
|
+
maxWidth: 1920,
|
|
54
|
+
maxHeight: 1920,
|
|
55
|
+
convertSize: 2 * 1024 * 1024, // PNG > 2 MB → JPEG
|
|
56
|
+
success(result) {
|
|
57
|
+
resolve(new File([result], file.name, { type: result.type }));
|
|
58
|
+
},
|
|
59
|
+
error: reject,
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
}
|
|
48
63
|
async uploadFile(id, file) {
|
|
49
64
|
try {
|
|
50
|
-
const
|
|
65
|
+
const shouldCompress = this.props().compressImages !== false && file.type.startsWith('image/');
|
|
66
|
+
const fileToUpload = shouldCompress ? await this.compressImage(file) : file;
|
|
67
|
+
const url = await this.feedbackService.uploadAttachment(fileToUpload);
|
|
51
68
|
this.attachments.update(list => list.map(a => (a.id === id ? { ...a, status: 'ready', url } : a)));
|
|
52
69
|
}
|
|
53
70
|
catch {
|
|
@@ -74,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
74
91
|
type: Component,
|
|
75
92
|
args: [{ selector: 'val-attachment-uploader', standalone: true, imports: [IonButton, IonIcon, IonNote, IonSpinner], template: "<div class=\"attachment-uploader\">\n <input #filePicker type=\"file\" [accept]=\"accept()\" multiple class=\"hidden-input\" (change)=\"onFilesSelected($event)\" />\n\n <div class=\"attachment-actions\">\n <ion-button fill=\"outline\" size=\"small\" [disabled]=\"isDisabled()\" (click)=\"filePicker.click()\">\n <ion-icon slot=\"start\" name=\"attach-outline\"></ion-icon>\n {{ i18n.t('attachAdd') }}\n </ion-button>\n <!-- label trick: native browser gesture forwarding \u2192 iOS/PWA no bloquea el picker -->\n <label class=\"camera-label\" [class.camera-label--disabled]=\"isDisabled()\">\n <input\n type=\"file\"\n accept=\"image/*\"\n capture=\"environment\"\n class=\"hidden-input\"\n [disabled]=\"isDisabled()\"\n (change)=\"onFilesSelected($event)\"\n />\n <ion-icon name=\"camera-outline\"></ion-icon>\n {{ i18n.t('attachCamera') }}\n </label>\n </div>\n\n @if (maxReached()) {\n <ion-note color=\"warning\" class=\"max-note\">\n {{ i18n.t('attachMaxCount', '_global', { count: maxFiles().toString() }) }}\n </ion-note>\n } @if (attachments().length > 0) {\n <div class=\"attachment-list\">\n @for (item of attachments(); track item.id) {\n <div class=\"attachment-item\" [class]=\"'status-' + item.status\">\n <ion-icon\n class=\"file-icon\"\n [name]=\"item.file.type.startsWith('image/') ? 'image-outline' : 'document-outline'\"\n ></ion-icon>\n <div class=\"file-info\">\n <span class=\"file-name\">{{ item.file.name }}</span>\n <span class=\"file-size\">{{ formatSize(item.file.size) }}</span>\n </div>\n\n @if (item.status === 'uploading') {\n <ion-spinner class=\"status-icon\" name=\"circular\"></ion-spinner>\n } @else if (item.status === 'ready') {\n <ion-icon class=\"status-icon\" name=\"checkmark-circle-outline\" color=\"success\"></ion-icon>\n } @else if (item.status === 'error') {\n <ion-icon class=\"status-icon\" name=\"close-circle-outline\" color=\"danger\"></ion-icon>\n } @if (item.status !== 'uploading') {\n <ion-button fill=\"clear\" size=\"small\" color=\"medium\" (click)=\"remove(item.id)\">\n <ion-icon slot=\"icon-only\" name=\"trash-outline\"></ion-icon>\n </ion-button>\n } @if (item.status === 'error' && item.error) {\n <ion-note color=\"danger\" class=\"error-note\">{{ item.error }}</ion-note>\n }\n </div>\n }\n </div>\n }\n</div>\n", styles: [".hidden-input{display:none}.camera-label{display:inline-flex;align-items:center;gap:6px;padding:0 12px;height:32px;font-size:14px;font-weight:500;border-radius:4px;border:1px solid currentColor;color:var(--ion-color-dark);background:transparent;cursor:pointer;-webkit-user-select:none;user-select:none;transition:opacity .15s}.camera-label ion-icon{font-size:16px;flex-shrink:0}.camera-label--disabled{opacity:.4;pointer-events:none}.attachment-uploader{display:flex;flex-direction:column;gap:8px}.attachment-actions{display:flex;gap:8px;flex-wrap:wrap}.attachment-list{display:flex;flex-direction:column;gap:4px}.attachment-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;background:var(--ion-color-light);flex-wrap:wrap}.attachment-item.status-error{background:var(--ion-color-danger-tint)}.attachment-item.status-ready{background:var(--ion-color-success-tint)}.file-icon{font-size:20px;flex-shrink:0}.file-info{flex:1;min-width:0;display:flex;flex-direction:column}.file-name{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{font-size:12px;color:var(--ion-color-medium)}.status-icon{font-size:20px;flex-shrink:0}.error-note{font-size:11px;width:100%}.max-note{font-size:12px}\n"] }]
|
|
76
93
|
}], ctorParameters: () => [] });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC11cGxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2F0dGFjaG1lbnQtdXBsb2FkZXIvYXR0YWNobWVudC11cGxvYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2F0dGFjaG1lbnQtdXBsb2FkZXIvYXR0YWNobWVudC11cGxvYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUNMLGFBQWEsRUFDYixhQUFhLEVBQ2Isc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsWUFBWSxFQUNaLFlBQVksR0FDYixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBVXJELE1BQU0sT0FBTywyQkFBMkI7SUFnQnRDLElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRTthQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQzthQUNqQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMs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SUFBSTtZQUFFLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2pFLE9BQU8sR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3BELENBQUM7K0dBcEVVLDJCQUEyQjttR0FBM0IsMkJBQTJCLDRRQ3ZCeEMsMjhFQTBEQSx5eUNEdkNZLFNBQVMsb1BBQUUsT0FBTywySkFBRSxPQUFPLGdGQUFFLFVBQVU7OzRGQUl0QywyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0UseUJBQXlCLGNBQ3ZCLElBQUksV0FDUCxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkljb24sIElvbk5vdGUsIElvblNwaW5uZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHtcbiAgYXR0YWNoT3V0bGluZSxcbiAgY2FtZXJhT3V0bGluZSxcbiAgY2hlY2ttYXJrQ2lyY2xlT3V0bGluZSxcbiAgY2xvc2VDaXJjbGVPdXRsaW5lLFxuICBkb2N1bWVudE91dGxpbmUsXG4gIGltYWdlT3V0bGluZSxcbiAgdHJhc2hPdXRsaW5lLFxufSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBGZWVkYmFja1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mZWVkYmFjayc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgQXR0YWNobWVudEl0ZW0sIEF0dGFjaG1lbnRVcGxvYWRlck1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1hdHRhY2htZW50LXVwbG9hZGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0lvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uTm90ZSwgSW9uU3Bpbm5lcl0sXG4gIHRlbXBsYXRlVXJsOiAnLi9hdHRhY2htZW50LXVwbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2F0dGFjaG1lbnQtdXBsb2FkZXIuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBBdHRhY2htZW50VXBsb2FkZXJDb21wb25lbnQge1xuICBwcm9wcyA9IGlucHV0PEF0dGFjaG1lbnRVcGxvYWRlck1ldGFkYXRhPih7fSk7XG5cbiAgYXR0YWNobWVudHNDaGFuZ2UgPSBvdXRwdXQ8QXR0YWNobWVudEl0ZW1bXT4oKTtcblxuICBwcm90ZWN0ZWQgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgZmVlZGJhY2tTZXJ2aWNlID0gaW5qZWN0KEZlZWRiYWNrU2VydmljZSk7XG5cbiAgYXR0YWNobWVudHMgPSBzaWduYWw8QXR0YWNobWVudEl0ZW1bXT4oW10pO1xuXG4gIG1heEZpbGVzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wcm9wcygpLm1heEZpbGVzID8/IDUpO1xuICBhY2NlcHQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByb3BzKCkuYWNjZXB0ID8/ICdpbWFnZS9qcGVnLGltYWdlL3BuZyxpbWFnZS93ZWJwLGFwcGxpY2F0aW9uL3BkZicpO1xuICBtYXhSZWFjaGVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5hdHRhY2htZW50cygpLmxlbmd0aCA+PSB0aGlzLm1heEZpbGVzKCkpO1xuICBpc0Rpc2FibGVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wcm9wcygpLmRpc2FibGVkID09PSB0cnVlIHx8IHRoaXMubWF4UmVhY2hlZCgpKTtcbiAgaXNVcGxvYWRpbmcgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmF0dGFjaG1lbnRzKCkuc29tZShhID0+IGEuc3RhdHVzID09PSAndXBsb2FkaW5nJykpO1xuXG4gIGdldCByZWFkeVVybHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmF0dGFjaG1lbnRzKClcbiAgICAgIC5maWx0ZXIoYSA9PiBhLnN0YXR1cyA9PT0gJ3JlYWR5JylcbiAgICAgIC5tYXAoYSA9PiBhLnVybCEpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgYWRkSWNvbnMoe1xuICAgICAgYXR0YWNoT3V0bGluZSxcbiAgICAgIGNhbWVyYU91dGxpbmUsXG4gICAgICBjaGVja21hcmtDaXJjbGVPdXRsaW5lLFxuICAgICAgY2xvc2VDaXJjbGVPdXRsaW5lLFxuICAgICAgZG9jdW1lbnRPdXRsaW5lLFxuICAgICAgaW1hZ2VPdXRsaW5lLFxuICAgICAgdHJhc2hPdXRsaW5lLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgb25GaWxlc1NlbGVjdGVkKGV2ZW50OiBFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgZmlsZXMgPSBBcnJheS5mcm9tKGlucHV0LmZpbGVzID8/IFtdKTtcbiAgICBpbnB1dC52YWx1ZSA9ICcnO1xuICAgIGNvbnN0IGF2YWlsYWJsZSA9IHRoaXMubWF4RmlsZXMoKSAtIHRoaXMuYXR0YWNobWVudHMoKS5sZW5ndGg7XG4gICAgY29uc3QgdG9Qcm9jZXNzID0gZmlsZXMuc2xpY2UoMCwgYXZhaWxhYmxlKTtcbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgdG9Qcm9jZXNzKSB7XG4gICAgICBjb25zdCBpZCA9IGNyeXB0by5yYW5kb21VVUlEKCk7XG4gICAgICB0aGlzLmF0dGFjaG1lbnRzLnVwZGF0ZShsaXN0ID0+IFsuLi5saXN0LCB7IGlkLCBmaWxlLCBzdGF0dXM6ICd1cGxvYWRpbmcnIH1dKTtcbiAgICAgIHRoaXMuYXR0YWNobWVudHNDaGFuZ2UuZW1pdCh0aGlzLmF0dGFjaG1lbnRzKCkpO1xuICAgICAgdGhpcy51cGxvYWRGaWxlKGlkLCBmaWxlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwbG9hZEZpbGUoaWQ6IHN0cmluZywgZmlsZTogRmlsZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1cmwgPSBhd2FpdCB0aGlzLmZlZWRiYWNrU2VydmljZS51cGxvYWRBdHRhY2htZW50KGZpbGUpO1xuICAgICAgdGhpcy5hdHRhY2htZW50cy51cGRhdGUobGlzdCA9PiBsaXN0Lm1hcChhID0+IChhLmlkID09PSBpZCA/IHsgLi4uYSwgc3RhdHVzOiAncmVhZHknLCB1cmwgfSA6IGEpKSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICBjb25zdCBlcnJvciA9IHRoaXMuaTE4bi50KCdhdHRhY2hVcGxvYWRGYWlsZWQnKTtcbiAgICAgIHRoaXMuYXR0YWNobWVudHMudXBkYXRlKGxpc3QgPT4gbGlzdC5tYXAoYSA9PiAoYS5pZCA9PT0gaWQgPyB7IC4uLmEsIHN0YXR1czogJ2Vycm9yJywgZXJyb3IgfSA6IGEpKSk7XG4gICAgfVxuICAgIHRoaXMuYXR0YWNobWVudHNDaGFuZ2UuZW1pdCh0aGlzLmF0dGFjaG1lbnRzKCkpO1xuICB9XG5cbiAgcmVtb3ZlKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmF0dGFjaG1lbnRzLnVwZGF0ZShsaXN0ID0+IGxpc3QuZmlsdGVyKGEgPT4gYS5pZCAhPT0gaWQpKTtcbiAgICB0aGlzLmF0dGFjaG1lbnRzQ2hhbmdlLmVtaXQodGhpcy5hdHRhY2htZW50cygpKTtcbiAgfVxuXG4gIGZvcm1hdFNpemUoYnl0ZXM6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKGJ5dGVzIDwgMTAyNCkgcmV0dXJuIGAke2J5dGVzfSBCYDtcbiAgICBpZiAoYnl0ZXMgPCAxMDI0ICogMTAyNCkgcmV0dXJuIGAke01hdGgucm91bmQoYnl0ZXMgLyAxMDI0KX0gS0JgO1xuICAgIHJldHVybiBgJHsoYnl0ZXMgLyAoMTAyNCAqIDEwMjQpKS50b0ZpeGVkKDEpfSBNQmA7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhdHRhY2htZW50LXVwbG9hZGVyXCI+XG4gIDxpbnB1dCAjZmlsZVBpY2tlciB0eXBlPVwiZmlsZVwiIFthY2NlcHRdPVwiYWNjZXB0KClcIiBtdWx0aXBsZSBjbGFzcz1cImhpZGRlbi1pbnB1dFwiIChjaGFuZ2UpPVwib25GaWxlc1NlbGVjdGVkKCRldmVudClcIiAvPlxuXG4gIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50LWFjdGlvbnNcIj5cbiAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIHNpemU9XCJzbWFsbFwiIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIiAoY2xpY2spPVwiZmlsZVBpY2tlci5jbGljaygpXCI+XG4gICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgbmFtZT1cImF0dGFjaC1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgIHt7IGkxOG4udCgnYXR0YWNoQWRkJykgfX1cbiAgICA8L2lvbi1idXR0b24+XG4gICAgPCEtLSBsYWJlbCB0cmljazogbmF0aXZlIGJyb3dzZXIgZ2VzdHVyZSBmb3J3YXJkaW5nIOKGkiBpT1MvUFdBIG5vIGJsb3F1ZWEgZWwgcGlja2VyIC0tPlxuICAgIDxsYWJlbCBjbGFzcz1cImNhbWVyYS1sYWJlbFwiIFtjbGFzcy5jYW1lcmEtbGFiZWwtLWRpc2FibGVkXT1cImlzRGlzYWJsZWQoKVwiPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgYWNjZXB0PVwiaW1hZ2UvKlwiXG4gICAgICAgIGNhcHR1cmU9XCJlbnZpcm9ubWVudFwiXG4gICAgICAgIGNsYXNzPVwiaGlkZGVuLWlucHV0XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWQoKVwiXG4gICAgICAgIChjaGFuZ2UpPVwib25GaWxlc1NlbGVjdGVkKCRldmVudClcIlxuICAgICAgLz5cbiAgICAgIDxpb24taWNvbiBuYW1lPVwiY2FtZXJhLW91dGxpbmVcIj48L2lvbi1pY29uPlxuICAgICAge3sgaTE4bi50KCdhdHRhY2hDYW1lcmEnKSB9fVxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuXG4gIEBpZiAobWF4UmVhY2hlZCgpKSB7XG4gIDxpb24tbm90ZSBjb2xvcj1cIndhcm5pbmdcIiBjbGFzcz1cIm1heC1ub3RlXCI+XG4gICAge3sgaTE4bi50KCdhdHRhY2hNYXhDb3VudCcsICdfZ2xvYmFsJywgeyBjb3VudDogbWF4RmlsZXMoKS50b1N0cmluZygpIH0pIH19XG4gIDwvaW9uLW5vdGU+XG4gIH0gQGlmIChhdHRhY2htZW50cygpLmxlbmd0aCA+IDApIHtcbiAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnQtbGlzdFwiPlxuICAgIEBmb3IgKGl0ZW0gb2YgYXR0YWNobWVudHMoKTsgdHJhY2sgaXRlbS5pZCkge1xuICAgIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50LWl0ZW1cIiBbY2xhc3NdPVwiJ3N0YXR1cy0nICsgaXRlbS5zdGF0dXNcIj5cbiAgICAgIDxpb24taWNvblxuICAgICAgICBjbGFzcz1cImZpbGUtaWNvblwiXG4gICAgICAgIFtuYW1lXT1cIml0ZW0uZmlsZS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpID8gJ2ltYWdlLW91dGxpbmUnIDogJ2RvY3VtZW50LW91dGxpbmUnXCJcbiAgICAgID48L2lvbi1pY29uPlxuICAgICAgPGRpdiBjbGFzcz1cImZpbGUtaW5mb1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGl0ZW0uZmlsZS5uYW1lIH19PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtc2l6ZVwiPnt7IGZvcm1hdFNpemUoaXRlbS5maWxlLnNpemUpIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAoaXRlbS5zdGF0dXMgPT09ICd1cGxvYWRpbmcnKSB7XG4gICAgICA8aW9uLXNwaW5uZXIgY2xhc3M9XCJzdGF0dXMtaWNvblwiIG5hbWU9XCJjaXJjdWxhclwiPjwvaW9uLXNwaW5uZXI+XG4gICAgICB9IEBlbHNlIGlmIChpdGVtLnN0YXR1cyA9PT0gJ3JlYWR5Jykge1xuICAgICAgPGlvbi1pY29uIGNsYXNzPVwic3RhdHVzLWljb25cIiBuYW1lPVwiY2hlY2ttYXJrLWNpcmNsZS1vdXRsaW5lXCIgY29sb3I9XCJzdWNjZXNzXCI+PC9pb24taWNvbj5cbiAgICAgIH0gQGVsc2UgaWYgKGl0ZW0uc3RhdHVzID09PSAnZXJyb3InKSB7XG4gICAgICA8aW9uLWljb24gY2xhc3M9XCJzdGF0dXMtaWNvblwiIG5hbWU9XCJjbG9zZS1jaXJjbGUtb3V0bGluZVwiIGNvbG9yPVwiZGFuZ2VyXCI+PC9pb24taWNvbj5cbiAgICAgIH0gQGlmIChpdGVtLnN0YXR1cyAhPT0gJ3VwbG9hZGluZycpIHtcbiAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiIHNpemU9XCJzbWFsbFwiIGNvbG9yPVwibWVkaXVtXCIgKGNsaWNrKT1cInJlbW92ZShpdGVtLmlkKVwiPlxuICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJ0cmFzaC1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIH0gQGlmIChpdGVtLnN0YXR1cyA9PT0gJ2Vycm9yJyAmJiBpdGVtLmVycm9yKSB7XG4gICAgICA8aW9uLW5vdGUgY29sb3I9XCJkYW5nZXJcIiBjbGFzcz1cImVycm9yLW5vdGVcIj57eyBpdGVtLmVycm9yIH19PC9pb24tbm90ZT5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC11cGxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2F0dGFjaG1lbnQtdXBsb2FkZXIvYXR0YWNobWVudC11cGxvYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2F0dGFjaG1lbnQtdXBsb2FkZXIvYXR0YWNobWVudC11cGxvYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFVBQVUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFDTCxhQUFhLEVBQ2IsYUFBYSxFQUNiLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLFlBQVksRUFDWixZQUFZLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQVVyRCxNQUFNLE9BQU8sMkJBQTJCO0lBZ0J0QyxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUU7YUFDdEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUM7YUFDakMsR0FBRyxDQUFD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LDI4RUEwREEseXlDRHRDWSxTQUFTLG9QQUFFLE9BQU8sMkpBQUUsT0FBTyxnRkFBRSxVQUFVOzs0RkFJdEMsMkJBQTJCO2tCQVB2QyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1AsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcHJlc3NvciBmcm9tICdjb21wcmVzc29yanMnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uTm90ZSwgSW9uU3Bpbm5lciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQge1xuICBhdHRhY2hPdXRsaW5lLFxuICBjYW1lcmFPdXRsaW5lLFxuICBjaGVja21hcmtDaXJjbGVPdXRsaW5lLFxuICBjbG9zZUNpcmNsZU91dGxpbmUsXG4gIGRvY3VtZW50T3V0bGluZSxcbiAgaW1hZ2VPdXRsaW5lLFxuICB0cmFzaE91dGxpbmUsXG59IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IEZlZWRiYWNrU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZlZWRiYWNrJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBBdHRhY2htZW50SXRlbSwgQXR0YWNobWVudFVwbG9hZGVyTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWF0dGFjaG1lbnQtdXBsb2FkZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbSW9uQnV0dG9uLCBJb25JY29uLCBJb25Ob3RlLCBJb25TcGlubmVyXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2F0dGFjaG1lbnQtdXBsb2FkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYXR0YWNobWVudC11cGxvYWRlci5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIEF0dGFjaG1lbnRVcGxvYWRlckNvbXBvbmVudCB7XG4gIHByb3BzID0gaW5wdXQ8QXR0YWNobWVudFVwbG9hZGVyTWV0YWRhdGE+KHt9KTtcblxuICBhdHRhY2htZW50c0NoYW5nZSA9IG91dHB1dDxBdHRhY2htZW50SXRlbVtdPigpO1xuXG4gIHByb3RlY3RlZCBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBmZWVkYmFja1NlcnZpY2UgPSBpbmplY3QoRmVlZGJhY2tTZXJ2aWNlKTtcblxuICBhdHRhY2htZW50cyA9IHNpZ25hbDxBdHRhY2htZW50SXRlbVtdPihbXSk7XG5cbiAgbWF4RmlsZXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByb3BzKCkubWF4RmlsZXMgPz8gNSk7XG4gIGFjY2VwdCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucHJvcHMoKS5hY2NlcHQgPz8gJ2ltYWdlL2pwZWcsaW1hZ2UvcG5nLGltYWdlL3dlYnAsYXBwbGljYXRpb24vcGRmJyk7XG4gIG1heFJlYWNoZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmF0dGFjaG1lbnRzKCkubGVuZ3RoID49IHRoaXMubWF4RmlsZXMoKSk7XG4gIGlzRGlzYWJsZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByb3BzKCkuZGlzYWJsZWQgPT09IHRydWUgfHwgdGhpcy5tYXhSZWFjaGVkKCkpO1xuICBpc1VwbG9hZGluZyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYXR0YWNobWVudHMoKS5zb21lKGEgPT4gYS5zdGF0dXMgPT09ICd1cGxvYWRpbmcnKSk7XG5cbiAgZ2V0IHJlYWR5VXJscygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuYXR0YWNobWVudHMoKVxuICAgICAgLmZpbHRlcihhID0+IGEuc3RhdHVzID09PSAncmVhZHknKVxuICAgICAgLm1hcChhID0+IGEudXJsISk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZGRJY29ucyh7XG4gICAgICBhdHRhY2hPdXRsaW5lLFxuICAgICAgY2FtZXJhT3V0bGluZSxcbiAgICAgIGNoZWNrbWFya0NpcmNsZU91dGxpbmUsXG4gICAgICBjbG9zZUNpcmNsZU91dGxpbmUsXG4gICAgICBkb2N1bWVudE91dGxpbmUsXG4gICAgICBpbWFnZU91dGxpbmUsXG4gICAgICB0cmFzaE91dGxpbmUsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBvbkZpbGVzU2VsZWN0ZWQoZXZlbnQ6IEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBjb25zdCBmaWxlcyA9IEFycmF5LmZyb20oaW5wdXQuZmlsZXMgPz8gW10pO1xuICAgIGlucHV0LnZhbHVlID0gJyc7XG4gICAgY29uc3QgYXZhaWxhYmxlID0gdGhpcy5tYXhGaWxlcygpIC0gdGhpcy5hdHRhY2htZW50cygpLmxlbmd0aDtcbiAgICBjb25zdCB0b1Byb2Nlc3MgPSBmaWxlcy5zbGljZSgwLCBhdmFpbGFibGUpO1xuICAgIGZvciAoY29uc3QgZmlsZSBvZiB0b1Byb2Nlc3MpIHtcbiAgICAgIGNvbnN0IGlkID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcbiAgICAgIHRoaXMuYXR0YWNobWVudHMudXBkYXRlKGxpc3QgPT4gWy4uLmxpc3QsIHsgaWQsIGZpbGUsIHN0YXR1czogJ3VwbG9hZGluZycgfV0pO1xuICAgICAgdGhpcy5hdHRhY2htZW50c0NoYW5nZS5lbWl0KHRoaXMuYXR0YWNobWVudHMoKSk7XG4gICAgICB0aGlzLnVwbG9hZEZpbGUoaWQsIGZpbGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29tcHJlc3NJbWFnZShmaWxlOiBGaWxlKTogUHJvbWlzZTxGaWxlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIG5ldyBDb21wcmVzc29yKGZpbGUsIHtcbiAgICAgICAgcXVhbGl0eTogMC44LFxuICAgICAgICBtYXhXaWR0aDogMTkyMCxcbiAgICAgICAgbWF4SGVpZ2h0OiAxOTIwLFxuICAgICAgICBjb252ZXJ0U2l6ZTogMiAqIDEwMjQgKiAxMDI0LCAvLyBQTkcgPiAyIE1CIOKGkiBKUEVHXG4gICAgICAgIHN1Y2Nlc3MocmVzdWx0KSB7XG4gICAgICAgICAgcmVzb2x2ZShuZXcgRmlsZShbcmVzdWx0XSwgZmlsZS5uYW1lLCB7IHR5cGU6IHJlc3VsdC50eXBlIH0pKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IHJlamVjdCxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGxvYWRGaWxlKGlkOiBzdHJpbmcsIGZpbGU6IEZpbGUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2hvdWxkQ29tcHJlc3MgPSB0aGlzLnByb3BzKCkuY29tcHJlc3NJbWFnZXMgIT09IGZhbHNlICYmIGZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKTtcbiAgICAgIGNvbnN0IGZpbGVUb1VwbG9hZCA9IHNob3VsZENvbXByZXNzID8gYXdhaXQgdGhpcy5jb21wcmVzc0ltYWdlKGZpbGUpIDogZmlsZTtcbiAgICAgIGNvbnN0IHVybCA9IGF3YWl0IHRoaXMuZmVlZGJhY2tTZXJ2aWNlLnVwbG9hZEF0dGFjaG1lbnQoZmlsZVRvVXBsb2FkKTtcbiAgICAgIHRoaXMuYXR0YWNobWVudHMudXBkYXRlKGxpc3QgPT4gbGlzdC5tYXAoYSA9PiAoYS5pZCA9PT0gaWQgPyB7IC4uLmEsIHN0YXR1czogJ3JlYWR5JywgdXJsIH0gOiBhKSkpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLmkxOG4udCgnYXR0YWNoVXBsb2FkRmFpbGVkJyk7XG4gICAgICB0aGlzLmF0dGFjaG1lbnRzLnVwZGF0ZShsaXN0ID0+IGxpc3QubWFwKGEgPT4gKGEuaWQgPT09IGlkID8geyAuLi5hLCBzdGF0dXM6ICdlcnJvcicsIGVycm9yIH0gOiBhKSkpO1xuICAgIH1cbiAgICB0aGlzLmF0dGFjaG1lbnRzQ2hhbmdlLmVtaXQodGhpcy5hdHRhY2htZW50cygpKTtcbiAgfVxuXG4gIHJlbW92ZShpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5hdHRhY2htZW50cy51cGRhdGUobGlzdCA9PiBsaXN0LmZpbHRlcihhID0+IGEuaWQgIT09IGlkKSk7XG4gICAgdGhpcy5hdHRhY2htZW50c0NoYW5nZS5lbWl0KHRoaXMuYXR0YWNobWVudHMoKSk7XG4gIH1cblxuICBmb3JtYXRTaXplKGJ5dGVzOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmIChieXRlcyA8IDEwMjQpIHJldHVybiBgJHtieXRlc30gQmA7XG4gICAgaWYgKGJ5dGVzIDwgMTAyNCAqIDEwMjQpIHJldHVybiBgJHtNYXRoLnJvdW5kKGJ5dGVzIC8gMTAyNCl9IEtCYDtcbiAgICByZXR1cm4gYCR7KGJ5dGVzIC8gKDEwMjQgKiAxMDI0KSkudG9GaXhlZCgxKX0gTUJgO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXR0YWNobWVudC11cGxvYWRlclwiPlxuICA8aW5wdXQgI2ZpbGVQaWNrZXIgdHlwZT1cImZpbGVcIiBbYWNjZXB0XT1cImFjY2VwdCgpXCIgbXVsdGlwbGUgY2xhc3M9XCJoaWRkZW4taW5wdXRcIiAoY2hhbmdlKT1cIm9uRmlsZXNTZWxlY3RlZCgkZXZlbnQpXCIgLz5cblxuICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudC1hY3Rpb25zXCI+XG4gICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiBzaXplPVwic21hbGxcIiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCgpXCIgKGNsaWNrKT1cImZpbGVQaWNrZXIuY2xpY2soKVwiPlxuICAgICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJhdHRhY2gtb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICB7eyBpMThuLnQoJ2F0dGFjaEFkZCcpIH19XG4gICAgPC9pb24tYnV0dG9uPlxuICAgIDwhLS0gbGFiZWwgdHJpY2s6IG5hdGl2ZSBicm93c2VyIGdlc3R1cmUgZm9yd2FyZGluZyDihpIgaU9TL1BXQSBubyBibG9xdWVhIGVsIHBpY2tlciAtLT5cbiAgICA8bGFiZWwgY2xhc3M9XCJjYW1lcmEtbGFiZWxcIiBbY2xhc3MuY2FtZXJhLWxhYmVsLS1kaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgIGFjY2VwdD1cImltYWdlLypcIlxuICAgICAgICBjYXB0dXJlPVwiZW52aXJvbm1lbnRcIlxuICAgICAgICBjbGFzcz1cImhpZGRlbi1pbnB1dFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIlxuICAgICAgICAoY2hhbmdlKT1cIm9uRmlsZXNTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgICA8aW9uLWljb24gbmFtZT1cImNhbWVyYS1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgIHt7IGkxOG4udCgnYXR0YWNoQ2FtZXJhJykgfX1cbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cblxuICBAaWYgKG1heFJlYWNoZWQoKSkge1xuICA8aW9uLW5vdGUgY29sb3I9XCJ3YXJuaW5nXCIgY2xhc3M9XCJtYXgtbm90ZVwiPlxuICAgIHt7IGkxOG4udCgnYXR0YWNoTWF4Q291bnQnLCAnX2dsb2JhbCcsIHsgY291bnQ6IG1heEZpbGVzKCkudG9TdHJpbmcoKSB9KSB9fVxuICA8L2lvbi1ub3RlPlxuICB9IEBpZiAoYXR0YWNobWVudHMoKS5sZW5ndGggPiAwKSB7XG4gIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50LWxpc3RcIj5cbiAgICBAZm9yIChpdGVtIG9mIGF0dGFjaG1lbnRzKCk7IHRyYWNrIGl0ZW0uaWQpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudC1pdGVtXCIgW2NsYXNzXT1cIidzdGF0dXMtJyArIGl0ZW0uc3RhdHVzXCI+XG4gICAgICA8aW9uLWljb25cbiAgICAgICAgY2xhc3M9XCJmaWxlLWljb25cIlxuICAgICAgICBbbmFtZV09XCJpdGVtLmZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKSA/ICdpbWFnZS1vdXRsaW5lJyA6ICdkb2N1bWVudC1vdXRsaW5lJ1wiXG4gICAgICA+PC9pb24taWNvbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWluZm9cIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyBpdGVtLmZpbGUubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLXNpemVcIj57eyBmb3JtYXRTaXplKGl0ZW0uZmlsZS5zaXplKSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICBAaWYgKGl0ZW0uc3RhdHVzID09PSAndXBsb2FkaW5nJykge1xuICAgICAgPGlvbi1zcGlubmVyIGNsYXNzPVwic3RhdHVzLWljb25cIiBuYW1lPVwiY2lyY3VsYXJcIj48L2lvbi1zcGlubmVyPlxuICAgICAgfSBAZWxzZSBpZiAoaXRlbS5zdGF0dXMgPT09ICdyZWFkeScpIHtcbiAgICAgIDxpb24taWNvbiBjbGFzcz1cInN0YXR1cy1pY29uXCIgbmFtZT1cImNoZWNrbWFyay1jaXJjbGUtb3V0bGluZVwiIGNvbG9yPVwic3VjY2Vzc1wiPjwvaW9uLWljb24+XG4gICAgICB9IEBlbHNlIGlmIChpdGVtLnN0YXR1cyA9PT0gJ2Vycm9yJykge1xuICAgICAgPGlvbi1pY29uIGNsYXNzPVwic3RhdHVzLWljb25cIiBuYW1lPVwiY2xvc2UtY2lyY2xlLW91dGxpbmVcIiBjb2xvcj1cImRhbmdlclwiPjwvaW9uLWljb24+XG4gICAgICB9IEBpZiAoaXRlbS5zdGF0dXMgIT09ICd1cGxvYWRpbmcnKSB7XG4gICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBzaXplPVwic21hbGxcIiBjb2xvcj1cIm1lZGl1bVwiIChjbGljayk9XCJyZW1vdmUoaXRlbS5pZClcIj5cbiAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwidHJhc2gtb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgICB9IEBpZiAoaXRlbS5zdGF0dXMgPT09ICdlcnJvcicgJiYgaXRlbS5lcnJvcikge1xuICAgICAgPGlvbi1ub3RlIGNvbG9yPVwiZGFuZ2VyXCIgY2xhc3M9XCJlcnJvci1ub3RlXCI+e3sgaXRlbS5lcnJvciB9fTwvaW9uLW5vdGU+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2F0dGFjaG1lbnQtdXBsb2FkZXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQXR0YWNobWVudEl0ZW0ge1xuICBpZDogc3RyaW5nO1xuICBmaWxlOiBGaWxlO1xuICBzdGF0dXM6ICd1cGxvYWRpbmcnIHwgJ3JlYWR5JyB8ICdlcnJvcic7XG4gIHVybD86IHN0cmluZztcbiAgZXJyb3I/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2F0dGFjaG1lbnQtdXBsb2FkZXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQXR0YWNobWVudEl0ZW0ge1xuICBpZDogc3RyaW5nO1xuICBmaWxlOiBGaWxlO1xuICBzdGF0dXM6ICd1cGxvYWRpbmcnIHwgJ3JlYWR5JyB8ICdlcnJvcic7XG4gIHVybD86IHN0cmluZztcbiAgZXJyb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXR0YWNobWVudFVwbG9hZGVyTWV0YWRhdGEge1xuICBtYXhGaWxlcz86IG51bWJlcjtcbiAgYWNjZXB0Pzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIC8qKiBDb21wcmVzcyBpbWFnZXMgYmVmb3JlIHVwbG9hZCAoZGVmYXVsdDogdHJ1ZSkuIFBERnMgYXJlIG5ldmVyIGNvbXByZXNzZWQuICovXG4gIGNvbXByZXNzSW1hZ2VzPzogYm9vbGVhbjtcbn1cbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { Component, computed, EventEmitter, inject, input, Output, signal, ViewChild } from '@angular/core';
|
|
3
|
-
import { IonIcon, IonModal, IonSpinner } from '@ionic/angular/standalone';
|
|
3
|
+
import { IonContent, IonIcon, IonModal, IonSpinner } from '@ionic/angular/standalone';
|
|
4
4
|
import { addIcons } from 'ionicons';
|
|
5
5
|
import { cameraOutline } from 'ionicons/icons';
|
|
6
6
|
import { firstValueFrom } from 'rxjs';
|
|
@@ -52,6 +52,7 @@ export class AvatarUploadComponent {
|
|
|
52
52
|
// Internal state
|
|
53
53
|
this.loading = signal(false);
|
|
54
54
|
this.showCropModal = signal(false);
|
|
55
|
+
this.showViewModal = signal(false);
|
|
55
56
|
this.selectedFile = signal(null);
|
|
56
57
|
this.previewUrl = signal(null);
|
|
57
58
|
this.imageLoadError = signal(false);
|
|
@@ -71,6 +72,11 @@ export class AvatarUploadComponent {
|
|
|
71
72
|
this.i18n.lang();
|
|
72
73
|
return this.i18n.t('changePhoto', this.config().i18nNamespace) || 'Cambiar foto';
|
|
73
74
|
});
|
|
75
|
+
/** Label for view photo button */
|
|
76
|
+
this.viewPhotoLabel = computed(() => {
|
|
77
|
+
this.i18n.lang();
|
|
78
|
+
return this.i18n.t('viewPhoto', this.config().i18nNamespace) || 'Ver foto';
|
|
79
|
+
});
|
|
74
80
|
}
|
|
75
81
|
/** Open file picker dialog */
|
|
76
82
|
openFilePicker() {
|
|
@@ -240,6 +246,13 @@ export class AvatarUploadComponent {
|
|
|
240
246
|
hidden
|
|
241
247
|
/>
|
|
242
248
|
|
|
249
|
+
<!-- View Photo Button -->
|
|
250
|
+
@if (config().showViewButton && displayUrl()) {
|
|
251
|
+
<button class="view-photo-btn" type="button" (click)="showViewModal.set(true)">
|
|
252
|
+
{{ viewPhotoLabel() }}
|
|
253
|
+
</button>
|
|
254
|
+
}
|
|
255
|
+
|
|
243
256
|
<!-- Crop Modal -->
|
|
244
257
|
<ion-modal
|
|
245
258
|
[isOpen]="showCropModal()"
|
|
@@ -261,12 +274,29 @@ export class AvatarUploadComponent {
|
|
|
261
274
|
}
|
|
262
275
|
</ng-template>
|
|
263
276
|
</ion-modal>
|
|
277
|
+
|
|
278
|
+
<!-- Photo Viewer Modal -->
|
|
279
|
+
<ion-modal
|
|
280
|
+
[isOpen]="showViewModal()"
|
|
281
|
+
(didDismiss)="showViewModal.set(false)"
|
|
282
|
+
[breakpoints]="[0, 0.92]"
|
|
283
|
+
[initialBreakpoint]="0.92"
|
|
284
|
+
[handle]="true"
|
|
285
|
+
>
|
|
286
|
+
<ng-template>
|
|
287
|
+
<ion-content class="ion-padding photo-viewer-content">
|
|
288
|
+
<div class="photo-viewer">
|
|
289
|
+
<img class="photo-viewer__img" [src]="displayUrl()" alt="Photo" />
|
|
290
|
+
</div>
|
|
291
|
+
</ion-content>
|
|
292
|
+
</ng-template>
|
|
293
|
+
</ion-modal>
|
|
264
294
|
</div>
|
|
265
|
-
`, isInline: true, styles: [".avatar-upload{--avatar-size: 100px;--edit-button-size: 32px;--edit-button-offset: 4px;display:inline-block}.avatar-container{position:relative;width:var(--avatar-size);height:var(--avatar-size);border-radius:50%;overflow:visible}.avatar-image{width:100%;height:100%;border-radius:50%;object-fit:cover;background-color:var(--ion-color-light)}.avatar-initials{width:100%;height:100%;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:calc(var(--avatar-size) * .4);font-weight:600;color:#fff;text-transform:uppercase;-webkit-user-select:none;user-select:none}.edit-button{position:absolute;bottom:var(--edit-button-offset);right:var(--edit-button-offset);width:var(--edit-button-size);height:var(--edit-button-size);border-radius:50%;border:2px solid white;background:var(--ion-color-primary);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s ease,background-color .2s ease;box-shadow:0 2px 8px #00000026}.edit-button ion-icon{font-size:calc(var(--edit-button-size) * .5)}.edit-button:hover{transform:scale(1.1);background:var(--ion-color-primary-shade)}.edit-button:active{transform:scale(.95)}.edit-button:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}.loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;background:#00000080;display:flex;align-items:center;justify-content:center}.loading-overlay ion-spinner{--color: white;width:calc(var(--avatar-size) * .4);height:calc(var(--avatar-size) * .4)}.avatar-upload--loading .edit-button{display:none}.avatar-upload--loading .avatar-image,.avatar-upload--loading .avatar-initials{filter:brightness(.7)}@container (max-width: 60px){.edit-button{--edit-button-size: 24px;--edit-button-offset: 0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonModal, selector: "ion-modal" }, { kind: "component", type: ImageCropComponent, selector: "val-image-crop", inputs: ["image", "aspectRatio", "roundCropper", "resizeToWidth", "i18nNamespace"], outputs: ["cropComplete", "cancel", "loadFailed"] }] }); }
|
|
295
|
+
`, isInline: true, styles: [".avatar-upload{--avatar-size: 100px;--edit-button-size: 32px;--edit-button-offset: 4px;display:inline-block}.avatar-container{position:relative;width:var(--avatar-size);height:var(--avatar-size);border-radius:50%;overflow:visible}.avatar-image{width:100%;height:100%;border-radius:50%;object-fit:cover;background-color:var(--ion-color-light)}.avatar-initials{width:100%;height:100%;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:calc(var(--avatar-size) * .4);font-weight:600;color:#fff;text-transform:uppercase;-webkit-user-select:none;user-select:none}.edit-button{position:absolute;bottom:var(--edit-button-offset);right:var(--edit-button-offset);width:var(--edit-button-size);height:var(--edit-button-size);border-radius:50%;border:2px solid white;background:var(--ion-color-primary);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s ease,background-color .2s ease;box-shadow:0 2px 8px #00000026}.edit-button ion-icon{font-size:calc(var(--edit-button-size) * .5)}.edit-button:hover{transform:scale(1.1);background:var(--ion-color-primary-shade)}.edit-button:active{transform:scale(.95)}.edit-button:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}.loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;background:#00000080;display:flex;align-items:center;justify-content:center}.loading-overlay ion-spinner{--color: white;width:calc(var(--avatar-size) * .4);height:calc(var(--avatar-size) * .4)}.avatar-upload--loading .edit-button{display:none}.avatar-upload--loading .avatar-image,.avatar-upload--loading .avatar-initials{filter:brightness(.7)}.view-photo-btn{display:block;background:none;border:none;padding:0;margin-top:6px;font-size:.8rem;color:var(--ion-color-primary);cursor:pointer;font-family:inherit;text-decoration:underline;text-underline-offset:2px;text-align:center;width:var(--avatar-size)}.view-photo-btn:active{opacity:.7}.photo-viewer-content{--background: transparent}.photo-viewer{display:flex;align-items:center;justify-content:center;padding:24px 16px 32px;min-height:200px}.photo-viewer__img{max-width:100%;max-height:65vh;border-radius:16px;object-fit:contain;box-shadow:0 8px 32px #0000002e}@container (max-width: 60px){.edit-button{--edit-button-size: 24px;--edit-button-offset: 0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonModal, selector: "ion-modal" }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: ImageCropComponent, selector: "val-image-crop", inputs: ["image", "aspectRatio", "roundCropper", "resizeToWidth", "i18nNamespace"], outputs: ["cropComplete", "cancel", "loadFailed"] }] }); }
|
|
266
296
|
}
|
|
267
297
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AvatarUploadComponent, decorators: [{
|
|
268
298
|
type: Component,
|
|
269
|
-
args: [{ selector: 'val-avatar-upload', standalone: true, imports: [CommonModule, IonIcon, IonSpinner, IonModal, ImageCropComponent], template: `
|
|
299
|
+
args: [{ selector: 'val-avatar-upload', standalone: true, imports: [CommonModule, IonIcon, IonSpinner, IonModal, IonContent, ImageCropComponent], template: `
|
|
270
300
|
<div class="avatar-upload" [style.--avatar-size.px]="config().size" [class.avatar-upload--loading]="loading()">
|
|
271
301
|
<div class="avatar-container">
|
|
272
302
|
<!-- Avatar Image or Initials -->
|
|
@@ -303,6 +333,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
303
333
|
hidden
|
|
304
334
|
/>
|
|
305
335
|
|
|
336
|
+
<!-- View Photo Button -->
|
|
337
|
+
@if (config().showViewButton && displayUrl()) {
|
|
338
|
+
<button class="view-photo-btn" type="button" (click)="showViewModal.set(true)">
|
|
339
|
+
{{ viewPhotoLabel() }}
|
|
340
|
+
</button>
|
|
341
|
+
}
|
|
342
|
+
|
|
306
343
|
<!-- Crop Modal -->
|
|
307
344
|
<ion-modal
|
|
308
345
|
[isOpen]="showCropModal()"
|
|
@@ -324,8 +361,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
324
361
|
}
|
|
325
362
|
</ng-template>
|
|
326
363
|
</ion-modal>
|
|
364
|
+
|
|
365
|
+
<!-- Photo Viewer Modal -->
|
|
366
|
+
<ion-modal
|
|
367
|
+
[isOpen]="showViewModal()"
|
|
368
|
+
(didDismiss)="showViewModal.set(false)"
|
|
369
|
+
[breakpoints]="[0, 0.92]"
|
|
370
|
+
[initialBreakpoint]="0.92"
|
|
371
|
+
[handle]="true"
|
|
372
|
+
>
|
|
373
|
+
<ng-template>
|
|
374
|
+
<ion-content class="ion-padding photo-viewer-content">
|
|
375
|
+
<div class="photo-viewer">
|
|
376
|
+
<img class="photo-viewer__img" [src]="displayUrl()" alt="Photo" />
|
|
377
|
+
</div>
|
|
378
|
+
</ion-content>
|
|
379
|
+
</ng-template>
|
|
380
|
+
</ion-modal>
|
|
327
381
|
</div>
|
|
328
|
-
`, styles: [".avatar-upload{--avatar-size: 100px;--edit-button-size: 32px;--edit-button-offset: 4px;display:inline-block}.avatar-container{position:relative;width:var(--avatar-size);height:var(--avatar-size);border-radius:50%;overflow:visible}.avatar-image{width:100%;height:100%;border-radius:50%;object-fit:cover;background-color:var(--ion-color-light)}.avatar-initials{width:100%;height:100%;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:calc(var(--avatar-size) * .4);font-weight:600;color:#fff;text-transform:uppercase;-webkit-user-select:none;user-select:none}.edit-button{position:absolute;bottom:var(--edit-button-offset);right:var(--edit-button-offset);width:var(--edit-button-size);height:var(--edit-button-size);border-radius:50%;border:2px solid white;background:var(--ion-color-primary);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s ease,background-color .2s ease;box-shadow:0 2px 8px #00000026}.edit-button ion-icon{font-size:calc(var(--edit-button-size) * .5)}.edit-button:hover{transform:scale(1.1);background:var(--ion-color-primary-shade)}.edit-button:active{transform:scale(.95)}.edit-button:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}.loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;background:#00000080;display:flex;align-items:center;justify-content:center}.loading-overlay ion-spinner{--color: white;width:calc(var(--avatar-size) * .4);height:calc(var(--avatar-size) * .4)}.avatar-upload--loading .edit-button{display:none}.avatar-upload--loading .avatar-image,.avatar-upload--loading .avatar-initials{filter:brightness(.7)}@container (max-width: 60px){.edit-button{--edit-button-size: 24px;--edit-button-offset: 0}}\n"] }]
|
|
382
|
+
`, styles: [".avatar-upload{--avatar-size: 100px;--edit-button-size: 32px;--edit-button-offset: 4px;display:inline-block}.avatar-container{position:relative;width:var(--avatar-size);height:var(--avatar-size);border-radius:50%;overflow:visible}.avatar-image{width:100%;height:100%;border-radius:50%;object-fit:cover;background-color:var(--ion-color-light)}.avatar-initials{width:100%;height:100%;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:calc(var(--avatar-size) * .4);font-weight:600;color:#fff;text-transform:uppercase;-webkit-user-select:none;user-select:none}.edit-button{position:absolute;bottom:var(--edit-button-offset);right:var(--edit-button-offset);width:var(--edit-button-size);height:var(--edit-button-size);border-radius:50%;border:2px solid white;background:var(--ion-color-primary);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s ease,background-color .2s ease;box-shadow:0 2px 8px #00000026}.edit-button ion-icon{font-size:calc(var(--edit-button-size) * .5)}.edit-button:hover{transform:scale(1.1);background:var(--ion-color-primary-shade)}.edit-button:active{transform:scale(.95)}.edit-button:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}.loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;background:#00000080;display:flex;align-items:center;justify-content:center}.loading-overlay ion-spinner{--color: white;width:calc(var(--avatar-size) * .4);height:calc(var(--avatar-size) * .4)}.avatar-upload--loading .edit-button{display:none}.avatar-upload--loading .avatar-image,.avatar-upload--loading .avatar-initials{filter:brightness(.7)}.view-photo-btn{display:block;background:none;border:none;padding:0;margin-top:6px;font-size:.8rem;color:var(--ion-color-primary);cursor:pointer;font-family:inherit;text-decoration:underline;text-underline-offset:2px;text-align:center;width:var(--avatar-size)}.view-photo-btn:active{opacity:.7}.photo-viewer-content{--background: transparent}.photo-viewer{display:flex;align-items:center;justify-content:center;padding:24px 16px 32px;min-height:200px}.photo-viewer__img{max-width:100%;max-height:65vh;border-radius:16px;object-fit:contain;box-shadow:0 8px 32px #0000002e}@container (max-width: 60px){.edit-button{--edit-button-size: 24px;--edit-button-offset: 0}}\n"] }]
|
|
329
383
|
}], propDecorators: { fileInput: [{
|
|
330
384
|
type: ViewChild,
|
|
331
385
|
args: ['fileInput']
|
|
@@ -336,4 +390,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
336
390
|
}], uploadStart: [{
|
|
337
391
|
type: Output
|
|
338
392
|
}] } });
|
|
339
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLXVwbG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2F2YXRhci11cGxvYWQvYXZhdGFyLXVwbG9hZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBK0QsTUFBTSxTQUFTLENBQUM7O0FBRTlHLFFBQVEsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7QUFFNUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFtRUgsTUFBTSxPQUFPLHFCQUFxQjtJQWxFbEM7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QUFPLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDOytHQTVNVSxxQkFBcUI7bUdBQXJCLHFCQUFxQix3WUE5RHRCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJEVCw4MERBNURTLFlBQVksK0JBQUUsT0FBTywySkFBRSxVQUFVLHlHQUFFLFFBQVEsc0RBQUUsa0JBQWtCOzs0RkErRDlELHFCQUFxQjtrQkFsRWpDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxZQUNoRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyRFQ7OEJBU3VCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFNWixRQUFRO3NCQUFqQixNQUFNO2dCQUdHLEtBQUs7c0JBQWQsTUFBTTtnQkFHRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBpbnB1dCwgT3V0cHV0LCBzaWduYWwsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uSWNvbiwgSW9uTW9kYWwsIElvblNwaW5uZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgY2FtZXJhT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgnO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maXJlYmFzZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgSW1hZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW1hZ2UnO1xuaW1wb3J0IHsgSW1hZ2VDcm9wQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2ltYWdlLWNyb3AnO1xuaW1wb3J0IHsgQVZBVEFSX1VQTE9BRF9ERUZBVUxUUywgQXZhdGFyVXBsb2FkRXJyb3IsIEF2YXRhclVwbG9hZE1ldGFkYXRhLCBBdmF0YXJVcGxvYWRSZXN1bHQgfSBmcm9tICcuL3R5cGVzJztcblxuYWRkSWNvbnMoeyBjYW1lcmFPdXRsaW5lIH0pO1xuXG4vKipcbiAqIEF2YXRhclVwbG9hZENvbXBvbmVudFxuICpcbiAqIEEgY29tcGxldGUgYXZhdGFyIHVwbG9hZCBzb2x1dGlvbiB3aXRoOlxuICogLSBJbWFnZSBzZWxlY3Rpb24gZnJvbSBkZXZpY2VcbiAqIC0gQ3JvcCBtb2RhbCB3aXRoIHJvdW5kIHByZXZpZXdcbiAqIC0gQXV0b21hdGljIGNvbXByZXNzaW9uIGFuZCB0aHVtYm5haWwgZ2VuZXJhdGlvblxuICogLSBVcGxvYWQgdG8gRmlyZWJhc2UgU3RvcmFnZVxuICogLSBCYWNrZW5kIHN5bmMgdmlhIEF1dGhTZXJ2aWNlXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2VcbiAqIGBgYGh0bWxcbiAqIDx2YWwtYXZhdGFyLXVwbG9hZFxuICogICBbcHJvcHNdPVwie1xuICogICAgIGN1cnJlbnRVcmw6IHVzZXIoKT8uYXZhdGFyVXJsLFxuICogICAgIGluaXRpYWxzOiAnSkQnLFxuICogICAgIHNpemU6IDEyMFxuICogICB9XCJcbiAqICAgKHVwbG9hZGVkKT1cIm9uQXZhdGFyVXBsb2FkZWQoJGV2ZW50KVwiXG4gKiAgIChlcnJvcik9XCJvbkVycm9yKCRldmVudClcIlxuICogLz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYXZhdGFyLXVwbG9hZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkljb24sIElvblNwaW5uZXIsIElvbk1vZGFsLCBJbWFnZUNyb3BDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItdXBsb2FkXCIgW3N0eWxlLi0tYXZhdGFyLXNpemUucHhdPVwiY29uZmlnKCkuc2l6ZVwiIFtjbGFzcy5hdmF0YXItdXBsb2FkLS1sb2FkaW5nXT1cImxvYWRpbmcoKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jb250YWluZXJcIj5cbiAgICAgICAgPCEtLSBBdmF0YXIgSW1hZ2Ugb3IgSW5pdGlhbHMgLS0+XG4gICAgICAgIEBpZiAoZGlzcGxheVVybCgpKSB7XG4gICAgICAgICAgPGltZyBjbGFzcz1cImF2YXRhci1pbWFnZVwiIFtzcmNdPVwiZGlzcGxheVVybCgpXCIgYWx0PVwiQXZhdGFyXCIgKGVycm9yKT1cIm9uSW1hZ2VFcnJvcigpXCIgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1pbml0aWFsc1wiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImNvbmZpZygpLmJhY2tncm91bmRDb2xvclwiPlxuICAgICAgICAgICAge3sgY29uZmlnKCkuaW5pdGlhbHMgfHwgJz8nIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIEVkaXQgQnV0dG9uIC0tPlxuICAgICAgICBAaWYgKGNvbmZpZygpLmVkaXRhYmxlICYmICFsb2FkaW5nKCkpIHtcbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZWRpdC1idXR0b25cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5GaWxlUGlja2VyKClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImVkaXRCdXR0b25MYWJlbCgpXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNhbWVyYS1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gTG9hZGluZyBPdmVybGF5IC0tPlxuICAgICAgICBAaWYgKGxvYWRpbmcoKSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nLW92ZXJsYXlcIj5cbiAgICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY2lyY3VsYXJcIj48L2lvbi1zcGlubmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBIaWRkZW4gRmlsZSBJbnB1dCAtLT5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjZmlsZUlucHV0XG4gICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgYWNjZXB0PVwiaW1hZ2UvanBlZyxpbWFnZS9wbmcsaW1hZ2Uvd2VicFwiXG4gICAgICAgIChjaGFuZ2UpPVwib25GaWxlU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgIGRhdGEtdGVzdGlkPVwiYXZhdGFyLXVwbG9hZC1pbnB1dFwiXG4gICAgICAgIGhpZGRlblxuICAgICAgLz5cblxuICAgICAgPCEtLSBDcm9wIE1vZGFsIC0tPlxuICAgICAgPGlvbi1tb2RhbFxuICAgICAgICBbaXNPcGVuXT1cInNob3dDcm9wTW9kYWwoKVwiXG4gICAgICAgIChkaWREaXNtaXNzKT1cIm9uQ3JvcENhbmNlbCgpXCJcbiAgICAgICAgW2JyZWFrcG9pbnRzXT1cIlswLCAxXVwiXG4gICAgICAgIFtpbml0aWFsQnJlYWtwb2ludF09XCIxXCJcbiAgICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICAgIEBpZiAoc2VsZWN0ZWRGaWxlKCkpIHtcbiAgICAgICAgICAgIDx2YWwtaW1hZ2UtY3JvcFxuICAgICAgICAgICAgICBbaW1hZ2VdPVwic2VsZWN0ZWRGaWxlKCkhXCJcbiAgICAgICAgICAgICAgW2FzcGVjdFJhdGlvXT1cIjFcIlxuICAgICAgICAgICAgICBbcm91bmRDcm9wcGVyXT1cInRydWVcIlxuICAgICAgICAgICAgICBbaTE4bk5hbWVzcGFjZV09XCJjb25maWcoKS5pMThuTmFtZXNwYWNlXCJcbiAgICAgICAgICAgICAgKGNyb3BDb21wbGV0ZSk9XCJvbkNyb3BDb21wbGV0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGNhbmNlbCk9XCJvbkNyb3BDYW5jZWwoKVwiXG4gICAgICAgICAgICAgIChsb2FkRmFpbGVkKT1cIm9uQ3JvcExvYWRGYWlsZWQoKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvaW9uLW1vZGFsPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9hdmF0YXItdXBsb2FkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEF2YXRhclVwbG9hZENvbXBvbmVudCB7XG4gIHByaXZhdGUgaW1hZ2VTZXJ2aWNlID0gaW5qZWN0KEltYWdlU2VydmljZSk7XG4gIHByaXZhdGUgc3RvcmFnZVNlcnZpY2UgPSBpbmplY3QoU3RvcmFnZVNlcnZpY2UpO1xuICBwcml2YXRlIGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcblxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKSBmaWxlSW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIC8qKiBDb21wb25lbnQgY29uZmlndXJhdGlvbiAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0PEF2YXRhclVwbG9hZE1ldGFkYXRhPih7fSk7XG5cbiAgLyoqIEVtaXR0ZWQgYWZ0ZXIgc3VjY2Vzc2Z1bCB1cGxvYWQgYW5kIGJhY2tlbmQgc3luYyAqL1xuICBAT3V0cHV0KCkgdXBsb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEF2YXRhclVwbG9hZFJlc3VsdD4oKTtcblxuICAvKiogRW1pdHRlZCBvbiBhbnkgZXJyb3IgZHVyaW5nIHRoZSBwcm9jZXNzICovXG4gIEBPdXRwdXQoKSBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8QXZhdGFyVXBsb2FkRXJyb3I+KCk7XG5cbiAgLyoqIEVtaXR0ZWQgd2hlbiB1cGxvYWQgc3RhcnRzICovXG4gIEBPdXRwdXQoKSB1cGxvYWRTdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvLyBJbnRlcm5hbCBzdGF0ZVxuICBwcm90ZWN0ZWQgbG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCBzaG93Q3JvcE1vZGFsID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkRmlsZSA9IHNpZ25hbDxGaWxlIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCBwcmV2aWV3VXJsID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgaW1hZ2VMb2FkRXJyb3IgPSBzaWduYWwoZmFsc2UpO1xuXG4gIC8qKiBNZXJnZWQgY29uZmlnIHdpdGggZGVmYXVsdHMgKi9cbiAgcHJvdGVjdGVkIGNvbmZpZyA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgLi4uQVZBVEFSX1VQTE9BRF9ERUZBVUxUUyxcbiAgICAuLi50aGlzLnByb3BzKCksXG4gIH0pKTtcblxuICAvKiogVVJMIHRvIGRpc3BsYXkgKHByZXZpZXcgdGFrZXMgcHJpb3JpdHkgb3ZlciBjdXJyZW50KSAqL1xuICBwcm90ZWN0ZWQgZGlzcGxheVVybCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5pbWFnZUxvYWRFcnJvcigpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdGhpcy5wcmV2aWV3VXJsKCkgfHwgdGhpcy5jb25maWcoKS5jdXJyZW50VXJsIHx8IG51bGw7XG4gIH0pO1xuXG4gIC8qKiBBcmlhIGxhYmVsIGZvciBlZGl0IGJ1dHRvbiAqL1xuICBwcm90ZWN0ZWQgZWRpdEJ1dHRvbkxhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCdjaGFuZ2VQaG90bycsIHRoaXMuY29uZmlnKCkuaTE4bk5hbWVzcGFjZSkgfHwgJ0NhbWJpYXIgZm90byc7XG4gIH0pO1xuXG4gIC8qKiBPcGVuIGZpbGUgcGlja2VyIGRpYWxvZyAqL1xuICBvcGVuRmlsZVBpY2tlcigpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gIH1cblxuICAvKiogSGFuZGxlIGZpbGUgc2VsZWN0aW9uICovXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgZmlsZSA9IGlucHV0LmZpbGVzPy5bMF07XG5cbiAgICBpZiAoIWZpbGUpIHJldHVybjtcblxuICAgIC8vIFJlc2V0IGlucHV0IGZvciBzYW1lIGZpbGUgc2VsZWN0aW9uXG4gICAgaW5wdXQudmFsdWUgPSAnJztcblxuICAgIC8vIFZhbGlkYXRlIGZpbGVcbiAgICBjb25zdCB2YWxpZGF0aW9uID0gdGhpcy5pbWFnZVNlcnZpY2UudmFsaWRhdGUoZmlsZSwge1xuICAgICAgbWF4U2l6ZTogdGhpcy5jb25maWcoKS5tYXhGaWxlU2l6ZSxcbiAgICAgIGFsbG93ZWRUeXBlczogWydpbWFnZS9qcGVnJywgJ2ltYWdlL3BuZycsICdpbWFnZS93ZWJwJ10sXG4gICAgfSk7XG5cbiAgICBpZiAoIXZhbGlkYXRpb24udmFsaWQpIHtcbiAgICAgIHRoaXMuZW1pdEVycm9yKHZhbGlkYXRpb24uZXJyb3IgYXMgQXZhdGFyVXBsb2FkRXJyb3JbJ3R5cGUnXSwgdmFsaWRhdGlvbi5tZXNzYWdlISk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gT3BlbiBjcm9wIG1vZGFsXG4gICAgdGhpcy5zZWxlY3RlZEZpbGUuc2V0KGZpbGUpO1xuICAgIHRoaXMuc2hvd0Nyb3BNb2RhbC5zZXQodHJ1ZSk7XG4gIH1cblxuICAvKiogSGFuZGxlIGNyb3AgY29tcGxldGlvbiAqL1xuICBhc3luYyBvbkNyb3BDb21wbGV0ZShjcm9wcGVkQmxvYjogQmxvYik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuc2hvd0Nyb3BNb2RhbC5zZXQoZmFsc2UpO1xuICAgIHRoaXMuc2VsZWN0ZWRGaWxlLnNldChudWxsKTtcblxuICAgIGF3YWl0IHRoaXMucHJvY2Vzc0FuZFVwbG9hZChjcm9wcGVkQmxvYik7XG4gIH1cblxuICAvKiogSGFuZGxlIGNyb3AgY2FuY2VsICovXG4gIG9uQ3JvcENhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dDcm9wTW9kYWwuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnNlbGVjdGVkRmlsZS5zZXQobnVsbCk7XG4gIH1cblxuICAvKiogSGFuZGxlIGNyb3AgbG9hZCBmYWlsdXJlICovXG4gIG9uQ3JvcExvYWRGYWlsZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93Q3JvcE1vZGFsLnNldChmYWxzZSk7XG4gICAgdGhpcy5zZWxlY3RlZEZpbGUuc2V0KG51bGwpO1xuICAgIHRoaXMuZW1pdEVycm9yKFxuICAgICAgJ2ludmFsaWRUeXBlJyxcbiAgICAgIHRoaXMuaTE4bi50KCdsb2FkRmFpbGVkJywgdGhpcy5jb25maWcoKS5pMThuTmFtZXNwYWNlKSB8fCAnTm8gc2UgcHVkbyBjYXJnYXIgbGEgaW1hZ2VuJ1xuICAgICk7XG4gIH1cblxuICAvKiogSGFuZGxlIGltYWdlIGxvYWQgZXJyb3IgKi9cbiAgb25JbWFnZUVycm9yKCk6IHZvaWQge1xuICAgIHRoaXMuaW1hZ2VMb2FkRXJyb3Iuc2V0KHRydWUpO1xuICB9XG5cbiAgLyoqIFRpbWVvdXQgZm9yIHVwbG9hZCBvcGVyYXRpb25zICgzMCBzZWNvbmRzKSAqL1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBVUExPQURfVElNRU9VVF9NUyA9IDMwMDAwO1xuXG4gIC8qKiBQcm9jZXNzIGNyb3BwZWQgaW1hZ2UgYW5kIHVwbG9hZCAqL1xuICBwcml2YXRlIGFzeW5jIHByb2Nlc3NBbmRVcGxvYWQoY3JvcHBlZEJsb2I6IEJsb2IpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvYWRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMudXBsb2FkU3RhcnQuZW1pdCgpO1xuXG4gICAgLy8gVGltZW91dCBwcm9taXNlIHRvIHByZXZlbnQgaW5maW5pdGUgbG9hZGluZ1xuICAgIGNvbnN0IHVwbG9hZFRpbWVvdXQgPSBuZXcgUHJvbWlzZTxuZXZlcj4oKF8sIHJlamVjdCkgPT5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KG5ldyBFcnJvcignVXBsb2FkIHRpbWVvdXQnKSksIEF2YXRhclVwbG9hZENvbXBvbmVudC5VUExPQURfVElNRU9VVF9NUylcbiAgICApO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnKCk7XG5cbiAgICAgIC8vIDEuIENvbXByZXNzIGltYWdlXG4gICAgICBjb25zdCBjb21wcmVzc2VkID0gYXdhaXQgdGhpcy5pbWFnZVNlcnZpY2UuY29tcHJlc3MoY3JvcHBlZEJsb2IsIHtcbiAgICAgICAgbWF4V2lkdGg6IGNvbmZpZy5tYXhXaWR0aCxcbiAgICAgICAgbWF4SGVpZ2h0OiBjb25maWcubWF4V2lkdGgsXG4gICAgICAgIHF1YWxpdHk6IGNvbmZpZy5jb21wcmVzc1F1YWxpdHksXG4gICAgICB9KTtcblxuICAgICAgLy8gMi4gR2VuZXJhdGUgdGh1bWJuYWlsXG4gICAgICBjb25zdCB0aHVtYm5haWwgPSBhd2FpdCB0aGlzLmltYWdlU2VydmljZS50aHVtYm5haWwoY29tcHJlc3NlZC5ibG9iLCBjb25maWcudGh1bWJuYWlsU2l6ZSk7XG5cbiAgICAgIC8vIDMuIFNldCBwcmV2aWV3IGltbWVkaWF0ZWx5XG4gICAgICB0aGlzLnByZXZpZXdVcmwuc2V0KGNvbXByZXNzZWQuZGF0YVVybCk7XG4gICAgICB0aGlzLmltYWdlTG9hZEVycm9yLnNldChmYWxzZSk7XG5cbiAgICAgIC8vIDQuIEdldCB1c2VyIElEIGZvciBzdG9yYWdlIHBhdGhcbiAgICAgIGNvbnN0IHVzZXJJZCA9IHRoaXMuYXV0aFNlcnZpY2UudXNlcigpPy51c2VySWQ7XG4gICAgICBpZiAoIXVzZXJJZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VzZXIgbm90IGF1dGhlbnRpY2F0ZWQnKTtcbiAgICAgIH1cblxuICAgICAgLy8gNS4gVXBsb2FkIHRvIEZpcmViYXNlIFN0b3JhZ2Ugd2l0aCBwcmVkaWN0YWJsZSBwYXRoc1xuICAgICAgLy8gUGF0aDogdXNlcnMve3VzZXJJZH0vYXZhdGFyLmpwZyAtIGFsbG93cyBhbnkgYXBwIHRvIGNvbnN0cnVjdCBVUkwgd2l0aCBqdXN0IHVzZXJJZFxuICAgICAgLy8gc2tpcFByZWZpeDogdHJ1ZSAtIGJ5cGFzc2VzIGFwcElkIHByZWZpeCBmb3Igc2hhcmVkL2Nyb3NzLWFwcCBwYXRoc1xuICAgICAgY29uc3QgYXZhdGFyUGF0aCA9IGB1c2Vycy8ke3VzZXJJZH0vYXZhdGFyLmpwZ2A7XG4gICAgICBjb25zdCB0aHVtYlBhdGggPSBgdXNlcnMvJHt1c2VySWR9L3RodW1iLmpwZ2A7XG4gICAgICBjb25zdCB1cGxvYWRNZXRhZGF0YSA9IHsgc2tpcFByZWZpeDogdHJ1ZSwgY29udGVudFR5cGU6ICdpbWFnZS9qcGVnJyB9O1xuXG4gICAgICAvLyBSYWNlIGFnYWluc3QgdGltZW91dCB0byBwcmV2ZW50IGluZmluaXRlIGxvYWRpbmdcbiAgICAgIGNvbnN0IFthdmF0YXJSZXN1bHQsIHRodW1iUmVzdWx0XSA9IGF3YWl0IFByb21pc2UucmFjZShbXG4gICAgICAgIFByb21pc2UuYWxsKFtcbiAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnVwbG9hZEFuZEdldFVybChhdmF0YXJQYXRoLCBjb21wcmVzc2VkLmJsb2IsIHVwbG9hZE1ldGFkYXRhKSxcbiAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnVwbG9hZEFuZEdldFVybCh0aHVtYlBhdGgsIHRodW1ibmFpbC5ibG9iLCB1cGxvYWRNZXRhZGF0YSksXG4gICAgICAgIF0pLFxuICAgICAgICB1cGxvYWRUaW1lb3V0LFxuICAgICAgXSk7XG5cbiAgICAgIC8vIDYuIFVwZGF0ZSBiYWNrZW5kIHdpdGggVVJMc1xuICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UudXBkYXRlQXZhdGFyKHtcbiAgICAgICAgICBhdmF0YXJVcmw6IGF2YXRhclJlc3VsdC5kb3dubG9hZFVybCxcbiAgICAgICAgICBhdmF0YXJUaHVtYm5haWw6IHRodW1iUmVzdWx0LmRvd25sb2FkVXJsLFxuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgLy8gNy4gVXBkYXRlIHByZXZpZXcgd2l0aCBjYWNoZS1idXN0aW5nIHRvIGZvcmNlIHJlZnJlc2hcbiAgICAgIGNvbnN0IGNhY2hlQnVzdGVyID0gYD90PSR7RGF0ZS5ub3coKX1gO1xuICAgICAgdGhpcy5wcmV2aWV3VXJsLnNldChhdmF0YXJSZXN1bHQuZG93bmxvYWRVcmwgKyBjYWNoZUJ1c3Rlcik7XG5cbiAgICAgIC8vIDguIEVtaXQgc3VjY2Vzc1xuICAgICAgY29uc3QgcmVzdWx0OiBBdmF0YXJVcGxvYWRSZXN1bHQgPSB7XG4gICAgICAgIGF2YXRhclVybDogYXZhdGFyUmVzdWx0LmRvd25sb2FkVXJsLFxuICAgICAgICB0aHVtYm5haWxVcmw6IHRodW1iUmVzdWx0LmRvd25sb2FkVXJsLFxuICAgICAgfTtcblxuICAgICAgdGhpcy51cGxvYWRlZC5lbWl0KHJlc3VsdCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbQXZhdGFyVXBsb2FkXSBwcm9jZXNzQW5kVXBsb2FkIGZhaWxlZDonLCBlcnIpO1xuICAgICAgLy8gUmV2ZXJ0IHByZXZpZXcgb24gZXJyb3JcbiAgICAgIHRoaXMucHJldmlld1VybC5zZXQobnVsbCk7XG5cbiAgICAgIC8vIERldGVybWluZSBlcnJvciBtZXNzYWdlIGJhc2VkIG9uIGVycm9yIHR5cGVcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmc7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgaWYgKGVyci5tZXNzYWdlID09PSAnVXBsb2FkIHRpbWVvdXQnKSB7XG4gICAgICAgICAgbWVzc2FnZSA9XG4gICAgICAgICAgICB0aGlzLmkxOG4udCgndXBsb2FkVGltZW91dCcsIHRoaXMuY29uZmlnKCkuaTE4bk5hbWVzcGFjZSkgfHxcbiAgICAgICAgICAgICdMYSBzdWJpZGEgdGFyZMOzIGRlbWFzaWFkby4gVmVyaWZpY2EgdHUgY29uZXhpw7NuLic7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbWVzc2FnZSA9IGVyci5tZXNzYWdlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlID0gdGhpcy5pMThuLnQoJ3VwbG9hZEVycm9yJywgdGhpcy5jb25maWcoKS5pMThuTmFtZXNwYWNlKSB8fCAnRXJyb3IgYWwgc3ViaXIgbGEgaW1hZ2VuJztcbiAgICAgIH1cblxuICAgICAgdGhpcy5lbWl0RXJyb3IoJ3VwbG9hZEZhaWxlZCcsIG1lc3NhZ2UsIGVycik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBFbWl0IGVycm9yIGV2ZW50ICovXG4gIHByaXZhdGUgZW1pdEVycm9yKHR5cGU6IEF2YXRhclVwbG9hZEVycm9yWyd0eXBlJ10sIG1lc3NhZ2U6IHN0cmluZywgb3JpZ2luYWxFcnJvcj86IHVua25vd24pOiB2b2lkIHtcbiAgICB0aGlzLmVycm9yLmVtaXQoeyB0eXBlLCBtZXNzYWdlLCBvcmlnaW5hbEVycm9yIH0pO1xuICB9XG59XG4iXX0=
|
|
393
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLXVwbG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2F2YXRhci11cGxvYWQvYXZhdGFyLXVwbG9hZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsc0JBQXNCLEVBQStELE1BQU0sU0FBUyxDQUFDOztBQUU5RyxRQUFRLENBQUMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0FBRTVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBMkZILE1BQU0sT0FBTyxxQkFB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Q0FBQztZQUVELElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvQyxDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVELHVCQUF1QjtJQUNmLFNBQVMsQ0FBQyxJQUErQixFQUFFLE9BQWUsRUFBRSxhQUF1QjtRQUN6RixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDOytHQW5OVSxxQkFBcUI7bUdBQXJCLHFCQUFxQix3WUF0RnRCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1GVCx5NEVBcEZTLFlBQVksK0JBQUUsT0FBTywySkFBRSxVQUFVLHlHQUFFLFFBQVEsc0RBQUUsVUFBVSx3S0FBRSxrQkFBa0I7OzRGQXVGMUUscUJBQXFCO2tCQTFGakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxZQUM1RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtRlQ7OEJBU3VCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFNWixRQUFRO3NCQUFqQixNQUFNO2dCQUdHLEtBQUs7c0JBQWQsTUFBTTtnQkFHRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBpbnB1dCwgT3V0cHV0LCBzaWduYWwsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uQ29udGVudCwgSW9uSWNvbiwgSW9uTW9kYWwsIElvblNwaW5uZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgY2FtZXJhT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgnO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maXJlYmFzZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgSW1hZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW1hZ2UnO1xuaW1wb3J0IHsgSW1hZ2VDcm9wQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2ltYWdlLWNyb3AnO1xuaW1wb3J0IHsgQVZBVEFSX1VQTE9BRF9ERUZBVUxUUywgQXZhdGFyVXBsb2FkRXJyb3IsIEF2YXRhclVwbG9hZE1ldGFkYXRhLCBBdmF0YXJVcGxvYWRSZXN1bHQgfSBmcm9tICcuL3R5cGVzJztcblxuYWRkSWNvbnMoeyBjYW1lcmFPdXRsaW5lIH0pO1xuXG4vKipcbiAqIEF2YXRhclVwbG9hZENvbXBvbmVudFxuICpcbiAqIEEgY29tcGxldGUgYXZhdGFyIHVwbG9hZCBzb2x1dGlvbiB3aXRoOlxuICogLSBJbWFnZSBzZWxlY3Rpb24gZnJvbSBkZXZpY2VcbiAqIC0gQ3JvcCBtb2RhbCB3aXRoIHJvdW5kIHByZXZpZXdcbiAqIC0gQXV0b21hdGljIGNvbXByZXNzaW9uIGFuZCB0aHVtYm5haWwgZ2VuZXJhdGlvblxuICogLSBVcGxvYWQgdG8gRmlyZWJhc2UgU3RvcmFnZVxuICogLSBCYWNrZW5kIHN5bmMgdmlhIEF1dGhTZXJ2aWNlXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2VcbiAqIGBgYGh0bWxcbiAqIDx2YWwtYXZhdGFyLXVwbG9hZFxuICogICBbcHJvcHNdPVwie1xuICogICAgIGN1cnJlbnRVcmw6IHVzZXIoKT8uYXZhdGFyVXJsLFxuICogICAgIGluaXRpYWxzOiAnSkQnLFxuICogICAgIHNpemU6IDEyMFxuICogICB9XCJcbiAqICAgKHVwbG9hZGVkKT1cIm9uQXZhdGFyVXBsb2FkZWQoJGV2ZW50KVwiXG4gKiAgIChlcnJvcik9XCJvbkVycm9yKCRldmVudClcIlxuICogLz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYXZhdGFyLXVwbG9hZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkljb24sIElvblNwaW5uZXIsIElvbk1vZGFsLCBJb25Db250ZW50LCBJbWFnZUNyb3BDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItdXBsb2FkXCIgW3N0eWxlLi0tYXZhdGFyLXNpemUucHhdPVwiY29uZmlnKCkuc2l6ZVwiIFtjbGFzcy5hdmF0YXItdXBsb2FkLS1sb2FkaW5nXT1cImxvYWRpbmcoKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jb250YWluZXJcIj5cbiAgICAgICAgPCEtLSBBdmF0YXIgSW1hZ2Ugb3IgSW5pdGlhbHMgLS0+XG4gICAgICAgIEBpZiAoZGlzcGxheVVybCgpKSB7XG4gICAgICAgICAgPGltZyBjbGFzcz1cImF2YXRhci1pbWFnZVwiIFtzcmNdPVwiZGlzcGxheVVybCgpXCIgYWx0PVwiQXZhdGFyXCIgKGVycm9yKT1cIm9uSW1hZ2VFcnJvcigpXCIgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1pbml0aWFsc1wiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImNvbmZpZygpLmJhY2tncm91bmRDb2xvclwiPlxuICAgICAgICAgICAge3sgY29uZmlnKCkuaW5pdGlhbHMgfHwgJz8nIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIEVkaXQgQnV0dG9uIC0tPlxuICAgICAgICBAaWYgKGNvbmZpZygpLmVkaXRhYmxlICYmICFsb2FkaW5nKCkpIHtcbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZWRpdC1idXR0b25cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5GaWxlUGlja2VyKClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImVkaXRCdXR0b25MYWJlbCgpXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNhbWVyYS1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gTG9hZGluZyBPdmVybGF5IC0tPlxuICAgICAgICBAaWYgKGxvYWRpbmcoKSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nLW92ZXJsYXlcIj5cbiAgICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY2lyY3VsYXJcIj48L2lvbi1zcGlubmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBIaWRkZW4gRmlsZSBJbnB1dCAtLT5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjZmlsZUlucHV0XG4gICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgYWNjZXB0PVwiaW1hZ2UvanBlZyxpbWFnZS9wbmcsaW1hZ2Uvd2VicFwiXG4gICAgICAgIChjaGFuZ2UpPVwib25GaWxlU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgIGRhdGEtdGVzdGlkPVwiYXZhdGFyLXVwbG9hZC1pbnB1dFwiXG4gICAgICAgIGhpZGRlblxuICAgICAgLz5cblxuICAgICAgPCEtLSBWaWV3IFBob3RvIEJ1dHRvbiAtLT5cbiAgICAgIEBpZiAoY29uZmlnKCkuc2hvd1ZpZXdCdXR0b24gJiYgZGlzcGxheVVybCgpKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJ2aWV3LXBob3RvLWJ0blwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2hvd1ZpZXdNb2RhbC5zZXQodHJ1ZSlcIj5cbiAgICAgICAgICB7eyB2aWV3UGhvdG9MYWJlbCgpIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgfVxuXG4gICAgICA8IS0tIENyb3AgTW9kYWwgLS0+XG4gICAgICA8aW9uLW1vZGFsXG4gICAgICAgIFtpc09wZW5dPVwic2hvd0Nyb3BNb2RhbCgpXCJcbiAgICAgICAgKGRpZERpc21pc3MpPVwib25Dcm9wQ2FuY2VsKClcIlxuICAgICAgICBbYnJlYWtwb2ludHNdPVwiWzAsIDFdXCJcbiAgICAgICAgW2luaXRpYWxCcmVha3BvaW50XT1cIjFcIlxuICAgICAgPlxuICAgICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgICAgQGlmIChzZWxlY3RlZEZpbGUoKSkge1xuICAgICAgICAgICAgPHZhbC1pbWFnZS1jcm9wXG4gICAgICAgICAgICAgIFtpbWFnZV09XCJzZWxlY3RlZEZpbGUoKSFcIlxuICAgICAgICAgICAgICBbYXNwZWN0UmF0aW9dPVwiMVwiXG4gICAgICAgICAgICAgIFtyb3VuZENyb3BwZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFtpMThuTmFtZXNwYWNlXT1cImNvbmZpZygpLmkxOG5OYW1lc3BhY2VcIlxuICAgICAgICAgICAgICAoY3JvcENvbXBsZXRlKT1cIm9uQ3JvcENvbXBsZXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAoY2FuY2VsKT1cIm9uQ3JvcENhbmNlbCgpXCJcbiAgICAgICAgICAgICAgKGxvYWRGYWlsZWQpPVwib25Dcm9wTG9hZEZhaWxlZCgpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfVxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9pb24tbW9kYWw+XG5cbiAgICAgIDwhLS0gUGhvdG8gVmlld2VyIE1vZGFsIC0tPlxuICAgICAgPGlvbi1tb2RhbFxuICAgICAgICBbaXNPcGVuXT1cInNob3dWaWV3TW9kYWwoKVwiXG4gICAgICAgIChkaWREaXNtaXNzKT1cInNob3dWaWV3TW9kYWwuc2V0KGZhbHNlKVwiXG4gICAgICAgIFticmVha3BvaW50c109XCJbMCwgMC45Ml1cIlxuICAgICAgICBbaW5pdGlhbEJyZWFrcG9pbnRdPVwiMC45MlwiXG4gICAgICAgIFtoYW5kbGVdPVwidHJ1ZVwiXG4gICAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZyBwaG90by12aWV3ZXItY29udGVudFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBob3RvLXZpZXdlclwiPlxuICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwicGhvdG8tdmlld2VyX19pbWdcIiBbc3JjXT1cImRpc3BsYXlVcmwoKVwiIGFsdD1cIlBob3RvXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvaW9uLWNvbnRlbnQ+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2lvbi1tb2RhbD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vYXZhdGFyLXVwbG9hZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBdmF0YXJVcGxvYWRDb21wb25lbnQge1xuICBwcml2YXRlIGltYWdlU2VydmljZSA9IGluamVjdChJbWFnZVNlcnZpY2UpO1xuICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlID0gaW5qZWN0KFN0b3JhZ2VTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAvKiogQ29tcG9uZW50IGNvbmZpZ3VyYXRpb24gKi9cbiAgcmVhZG9ubHkgcHJvcHMgPSBpbnB1dDxBdmF0YXJVcGxvYWRNZXRhZGF0YT4oe30pO1xuXG4gIC8qKiBFbWl0dGVkIGFmdGVyIHN1Y2Nlc3NmdWwgdXBsb2FkIGFuZCBiYWNrZW5kIHN5bmMgKi9cbiAgQE91dHB1dCgpIHVwbG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxBdmF0YXJVcGxvYWRSZXN1bHQ+KCk7XG5cbiAgLyoqIEVtaXR0ZWQgb24gYW55IGVycm9yIGR1cmluZyB0aGUgcHJvY2VzcyAqL1xuICBAT3V0cHV0KCkgZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPEF2YXRhclVwbG9hZEVycm9yPigpO1xuXG4gIC8qKiBFbWl0dGVkIHdoZW4gdXBsb2FkIHN0YXJ0cyAqL1xuICBAT3V0cHV0KCkgdXBsb2FkU3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLy8gSW50ZXJuYWwgc3RhdGVcbiAgcHJvdGVjdGVkIGxvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgc2hvd0Nyb3BNb2RhbCA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCBzaG93Vmlld01vZGFsID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkRmlsZSA9IHNpZ25hbDxGaWxlIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCBwcmV2aWV3VXJsID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgaW1hZ2VMb2FkRXJyb3IgPSBzaWduYWwoZmFsc2UpO1xuXG4gIC8qKiBNZXJnZWQgY29uZmlnIHdpdGggZGVmYXVsdHMgKi9cbiAgcHJvdGVjdGVkIGNvbmZpZyA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgLi4uQVZBVEFSX1VQTE9BRF9ERUZBVUxUUyxcbiAgICAuLi50aGlzLnByb3BzKCksXG4gIH0pKTtcblxuICAvKiogVVJMIHRvIGRpc3BsYXkgKHByZXZpZXcgdGFrZXMgcHJpb3JpdHkgb3ZlciBjdXJyZW50KSAqL1xuICBwcm90ZWN0ZWQgZGlzcGxheVVybCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5pbWFnZUxvYWRFcnJvcigpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdGhpcy5wcmV2aWV3VXJsKCkgfHwgdGhpcy5jb25maWcoKS5jdXJyZW50VXJsIHx8IG51bGw7XG4gIH0pO1xuXG4gIC8qKiBBcmlhIGxhYmVsIGZvciBlZGl0IGJ1dHRvbiAqL1xuICBwcm90ZWN0ZWQgZWRpdEJ1dHRvbkxhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCdjaGFuZ2VQaG90bycsIHRoaXMuY29uZmlnKCkuaTE4bk5hbWVzcGFjZSkgfHwgJ0NhbWJpYXIgZm90byc7XG4gIH0pO1xuXG4gIC8qKiBMYWJlbCBmb3IgdmlldyBwaG90byBidXR0b24gKi9cbiAgcHJvdGVjdGVkIHZpZXdQaG90b0xhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCd2aWV3UGhvdG8nLCB0aGlzLmNvbmZpZygpLmkxOG5OYW1lc3BhY2UpIHx8ICdWZXIgZm90byc7XG4gIH0pO1xuXG4gIC8qKiBPcGVuIGZpbGUgcGlja2VyIGRpYWxvZyAqL1xuICBvcGVuRmlsZVBpY2tlcigpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gIH1cblxuICAvKiogSGFuZGxlIGZpbGUgc2VsZWN0aW9uICovXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgZmlsZSA9IGlucHV0LmZpbGVzPy5bMF07XG5cbiAgICBpZiAoIWZpbGUpIHJldHVybjtcblxuICAgIC8vIFJlc2V0IGlucHV0IGZvciBzYW1lIGZpbGUgc2VsZWN0aW9uXG4gICAgaW5wdXQudmFsdWUgPSAnJztcblxuICAgIC8vIFZhbGlkYXRlIGZpbGVcbiAgICBjb25zdCB2YWxpZGF0aW9uID0gdGhpcy5pbWFnZVNlcnZpY2UudmFsaWRhdGUoZmlsZSwge1xuICAgICAgbWF4U2l6ZTogdGhpcy5jb25maWcoKS5tYXhGaWxlU2l6ZSxcbiAgICAgIGFsbG93ZWRUeXBlczogWydpbWFnZS9qcGVnJywgJ2ltYWdlL3BuZycsICdpbWFnZS93ZWJwJ10sXG4gICAgfSk7XG5cbiAgICBpZiAoIXZhbGlkYXRpb24udmFsaWQpIHtcbiAgICAgIHRoaXMuZW1pdEVycm9yKHZhbGlkYXRpb24uZXJyb3IgYXMgQXZhdGFyVXBsb2FkRXJyb3JbJ3R5cGUnXSwgdmFsaWRhdGlvbi5tZXNzYWdlISk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gT3BlbiBjcm9wIG1vZGFsXG4gICAgdGhpcy5zZWxlY3RlZEZpbGUuc2V0KGZpbGUpO1xuICAgIHRoaXMuc2hvd0Nyb3BNb2RhbC5zZXQodHJ1ZSk7XG4gIH1cblxuICAvKiogSGFuZGxlIGNyb3AgY29tcGxldGlvbiAqL1xuICBhc3luYyBvbkNyb3BDb21wbGV0ZShjcm9wcGVkQmxvYjogQmxvYik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuc2hvd0Nyb3BNb2RhbC5zZXQoZmFsc2UpO1xuICAgIHRoaXMuc2VsZWN0ZWRGaWxlLnNldChudWxsKTtcblxuICAgIGF3YWl0IHRoaXMucHJvY2Vzc0FuZFVwbG9hZChjcm9wcGVkQmxvYik7XG4gIH1cblxuICAvKiogSGFuZGxlIGNyb3AgY2FuY2VsICovXG4gIG9uQ3JvcENhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dDcm9wTW9kYWwuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnNlbGVjdGVkRmlsZS5zZXQobnVsbCk7XG4gIH1cblxuICAvKiogSGFuZGxlIGNyb3AgbG9hZCBmYWlsdXJlICovXG4gIG9uQ3JvcExvYWRGYWlsZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93Q3JvcE1vZGFsLnNldChmYWxzZSk7XG4gICAgdGhpcy5zZWxlY3RlZEZpbGUuc2V0KG51bGwpO1xuICAgIHRoaXMuZW1pdEVycm9yKFxuICAgICAgJ2ludmFsaWRUeXBlJyxcbiAgICAgIHRoaXMuaTE4bi50KCdsb2FkRmFpbGVkJywgdGhpcy5jb25maWcoKS5pMThuTmFtZXNwYWNlKSB8fCAnTm8gc2UgcHVkbyBjYXJnYXIgbGEgaW1hZ2VuJ1xuICAgICk7XG4gIH1cblxuICAvKiogSGFuZGxlIGltYWdlIGxvYWQgZXJyb3IgKi9cbiAgb25JbWFnZUVycm9yKCk6IHZvaWQge1xuICAgIHRoaXMuaW1hZ2VMb2FkRXJyb3Iuc2V0KHRydWUpO1xuICB9XG5cbiAgLyoqIFRpbWVvdXQgZm9yIHVwbG9hZCBvcGVyYXRpb25zICgzMCBzZWNvbmRzKSAqL1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBVUExPQURfVElNRU9VVF9NUyA9IDMwMDAwO1xuXG4gIC8qKiBQcm9jZXNzIGNyb3BwZWQgaW1hZ2UgYW5kIHVwbG9hZCAqL1xuICBwcml2YXRlIGFzeW5jIHByb2Nlc3NBbmRVcGxvYWQoY3JvcHBlZEJsb2I6IEJsb2IpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvYWRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMudXBsb2FkU3RhcnQuZW1pdCgpO1xuXG4gICAgLy8gVGltZW91dCBwcm9taXNlIHRvIHByZXZlbnQgaW5maW5pdGUgbG9hZGluZ1xuICAgIGNvbnN0IHVwbG9hZFRpbWVvdXQgPSBuZXcgUHJvbWlzZTxuZXZlcj4oKF8sIHJlamVjdCkgPT5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KG5ldyBFcnJvcignVXBsb2FkIHRpbWVvdXQnKSksIEF2YXRhclVwbG9hZENvbXBvbmVudC5VUExPQURfVElNRU9VVF9NUylcbiAgICApO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnKCk7XG5cbiAgICAgIC8vIDEuIENvbXByZXNzIGltYWdlXG4gICAgICBjb25zdCBjb21wcmVzc2VkID0gYXdhaXQgdGhpcy5pbWFnZVNlcnZpY2UuY29tcHJlc3MoY3JvcHBlZEJsb2IsIHtcbiAgICAgICAgbWF4V2lkdGg6IGNvbmZpZy5tYXhXaWR0aCxcbiAgICAgICAgbWF4SGVpZ2h0OiBjb25maWcubWF4V2lkdGgsXG4gICAgICAgIHF1YWxpdHk6IGNvbmZpZy5jb21wcmVzc1F1YWxpdHksXG4gICAgICB9KTtcblxuICAgICAgLy8gMi4gR2VuZXJhdGUgdGh1bWJuYWlsXG4gICAgICBjb25zdCB0aHVtYm5haWwgPSBhd2FpdCB0aGlzLmltYWdlU2VydmljZS50aHVtYm5haWwoY29tcHJlc3NlZC5ibG9iLCBjb25maWcudGh1bWJuYWlsU2l6ZSk7XG5cbiAgICAgIC8vIDMuIFNldCBwcmV2aWV3IGltbWVkaWF0ZWx5XG4gICAgICB0aGlzLnByZXZpZXdVcmwuc2V0KGNvbXByZXNzZWQuZGF0YVVybCk7XG4gICAgICB0aGlzLmltYWdlTG9hZEVycm9yLnNldChmYWxzZSk7XG5cbiAgICAgIC8vIDQuIEdldCB1c2VyIElEIGZvciBzdG9yYWdlIHBhdGhcbiAgICAgIGNvbnN0IHVzZXJJZCA9IHRoaXMuYXV0aFNlcnZpY2UudXNlcigpPy51c2VySWQ7XG4gICAgICBpZiAoIXVzZXJJZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VzZXIgbm90IGF1dGhlbnRpY2F0ZWQnKTtcbiAgICAgIH1cblxuICAgICAgLy8gNS4gVXBsb2FkIHRvIEZpcmViYXNlIFN0b3JhZ2Ugd2l0aCBwcmVkaWN0YWJsZSBwYXRoc1xuICAgICAgLy8gUGF0aDogdXNlcnMve3VzZXJJZH0vYXZhdGFyLmpwZyAtIGFsbG93cyBhbnkgYXBwIHRvIGNvbnN0cnVjdCBVUkwgd2l0aCBqdXN0IHVzZXJJZFxuICAgICAgLy8gc2tpcFByZWZpeDogdHJ1ZSAtIGJ5cGFzc2VzIGFwcElkIHByZWZpeCBmb3Igc2hhcmVkL2Nyb3NzLWFwcCBwYXRoc1xuICAgICAgY29uc3QgYXZhdGFyUGF0aCA9IGB1c2Vycy8ke3VzZXJJZH0vYXZhdGFyLmpwZ2A7XG4gICAgICBjb25zdCB0aHVtYlBhdGggPSBgdXNlcnMvJHt1c2VySWR9L3RodW1iLmpwZ2A7XG4gICAgICBjb25zdCB1cGxvYWRNZXRhZGF0YSA9IHsgc2tpcFByZWZpeDogdHJ1ZSwgY29udGVudFR5cGU6ICdpbWFnZS9qcGVnJyB9O1xuXG4gICAgICAvLyBSYWNlIGFnYWluc3QgdGltZW91dCB0byBwcmV2ZW50IGluZmluaXRlIGxvYWRpbmdcbiAgICAgIGNvbnN0IFthdmF0YXJSZXN1bHQsIHRodW1iUmVzdWx0XSA9IGF3YWl0IFByb21pc2UucmFjZShbXG4gICAgICAgIFByb21pc2UuYWxsKFtcbiAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnVwbG9hZEFuZEdldFVybChhdmF0YXJQYXRoLCBjb21wcmVzc2VkLmJsb2IsIHVwbG9hZE1ldGFkYXRhKSxcbiAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnVwbG9hZEFuZEdldFVybCh0aHVtYlBhdGgsIHRodW1ibmFpbC5ibG9iLCB1cGxvYWRNZXRhZGF0YSksXG4gICAgICAgIF0pLFxuICAgICAgICB1cGxvYWRUaW1lb3V0LFxuICAgICAgXSk7XG5cbiAgICAgIC8vIDYuIFVwZGF0ZSBiYWNrZW5kIHdpdGggVVJMc1xuICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UudXBkYXRlQXZhdGFyKHtcbiAgICAgICAgICBhdmF0YXJVcmw6IGF2YXRhclJlc3VsdC5kb3dubG9hZFVybCxcbiAgICAgICAgICBhdmF0YXJUaHVtYm5haWw6IHRodW1iUmVzdWx0LmRvd25sb2FkVXJsLFxuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgLy8gNy4gVXBkYXRlIHByZXZpZXcgd2l0aCBjYWNoZS1idXN0aW5nIHRvIGZvcmNlIHJlZnJlc2hcbiAgICAgIGNvbnN0IGNhY2hlQnVzdGVyID0gYD90PSR7RGF0ZS5ub3coKX1gO1xuICAgICAgdGhpcy5wcmV2aWV3VXJsLnNldChhdmF0YXJSZXN1bHQuZG93bmxvYWRVcmwgKyBjYWNoZUJ1c3Rlcik7XG5cbiAgICAgIC8vIDguIEVtaXQgc3VjY2Vzc1xuICAgICAgY29uc3QgcmVzdWx0OiBBdmF0YXJVcGxvYWRSZXN1bHQgPSB7XG4gICAgICAgIGF2YXRhclVybDogYXZhdGFyUmVzdWx0LmRvd25sb2FkVXJsLFxuICAgICAgICB0aHVtYm5haWxVcmw6IHRodW1iUmVzdWx0LmRvd25sb2FkVXJsLFxuICAgICAgfTtcblxuICAgICAgdGhpcy51cGxvYWRlZC5lbWl0KHJlc3VsdCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbQXZhdGFyVXBsb2FkXSBwcm9jZXNzQW5kVXBsb2FkIGZhaWxlZDonLCBlcnIpO1xuICAgICAgLy8gUmV2ZXJ0IHByZXZpZXcgb24gZXJyb3JcbiAgICAgIHRoaXMucHJldmlld1VybC5zZXQobnVsbCk7XG5cbiAgICAgIC8vIERldGVybWluZSBlcnJvciBtZXNzYWdlIGJhc2VkIG9uIGVycm9yIHR5cGVcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmc7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgaWYgKGVyci5tZXNzYWdlID09PSAnVXBsb2FkIHRpbWVvdXQnKSB7XG4gICAgICAgICAgbWVzc2FnZSA9XG4gICAgICAgICAgICB0aGlzLmkxOG4udCgndXBsb2FkVGltZW91dCcsIHRoaXMuY29uZmlnKCkuaTE4bk5hbWVzcGFjZSkgfHxcbiAgICAgICAgICAgICdMYSBzdWJpZGEgdGFyZMOzIGRlbWFzaWFkby4gVmVyaWZpY2EgdHUgY29uZXhpw7NuLic7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbWVzc2FnZSA9IGVyci5tZXNzYWdlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlID0gdGhpcy5pMThuLnQoJ3VwbG9hZEVycm9yJywgdGhpcy5jb25maWcoKS5pMThuTmFtZXNwYWNlKSB8fCAnRXJyb3IgYWwgc3ViaXIgbGEgaW1hZ2VuJztcbiAgICAgIH1cblxuICAgICAgdGhpcy5lbWl0RXJyb3IoJ3VwbG9hZEZhaWxlZCcsIG1lc3NhZ2UsIGVycik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBFbWl0IGVycm9yIGV2ZW50ICovXG4gIHByaXZhdGUgZW1pdEVycm9yKHR5cGU6IEF2YXRhclVwbG9hZEVycm9yWyd0eXBlJ10sIG1lc3NhZ2U6IHN0cmluZywgb3JpZ2luYWxFcnJvcj86IHVua25vd24pOiB2b2lkIHtcbiAgICB0aGlzLmVycm9yLmVtaXQoeyB0eXBlLCBtZXNzYWdlLCBvcmlnaW5hbEVycm9yIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -11,5 +11,6 @@ export const AVATAR_UPLOAD_DEFAULTS = {
|
|
|
11
11
|
maxWidth: 800,
|
|
12
12
|
thumbnailSize: 150,
|
|
13
13
|
backgroundColor: '#6366f1', // Indigo
|
|
14
|
+
showViewButton: false,
|
|
14
15
|
};
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2F2YXRhci11cGxvYWQvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkRBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDcEMsSUFBSSxFQUFFLEdBQUc7SUFDVCxRQUFRLEVBQUUsSUFBSTtJQUNkLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLGFBQWEsRUFBRSxjQUFjO0lBQzdCLFdBQVcsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksRUFBRSxPQUFPO0lBQ3RDLGVBQWUsRUFBRSxHQUFHO0lBQ3BCLFFBQVEsRUFBRSxHQUFHO0lBQ2IsYUFBYSxFQUFFLEdBQUc7SUFDbEIsZUFBZSxFQUFFLFNBQVMsRUFBRSxTQUFTO0lBQ3JDLGNBQWMsRUFBRSxLQUFLO0NBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIEF2YXRhclVwbG9hZENvbXBvbmVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF2YXRhclVwbG9hZE1ldGFkYXRhIHtcbiAgLyoqIEN1cnJlbnQgYXZhdGFyIFVSTCAqL1xuICBjdXJyZW50VXJsPzogc3RyaW5nO1xuICAvKiogSW5pdGlhbHMgdG8gc2hvdyB3aGVuIG5vIGF2YXRhciAoZS5nLiwgXCJKRFwiIGZvciBKb2huIERvZSkgKi9cbiAgaW5pdGlhbHM/OiBzdHJpbmc7XG4gIC8qKiBCYWNrZ3JvdW5kIGNvbG9yIGZvciBpbml0aWFscyBhdmF0YXIgKi9cbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAvKiogQXZhdGFyIHNpemUgaW4gcGl4ZWxzIChkZWZhdWx0OiAxMDApICovXG4gIHNpemU/OiBudW1iZXI7XG4gIC8qKiBTaG93IGVkaXQgYnV0dG9uIChkZWZhdWx0OiB0cnVlKSAqL1xuICBlZGl0YWJsZT86IGJvb2xlYW47XG4gIC8qKiBTdG9yYWdlIHBhdGggcHJlZml4IHdpdGhvdXQgdXNlcklkIChkZWZhdWx0OiAnYXZhdGFycycpICovXG4gIHN0b3JhZ2VQYXRoPzogc3RyaW5nO1xuICAvKiogaTE4biBuYW1lc3BhY2UgZm9yIGxhYmVscyAoZGVmYXVsdDogJ0F2YXRhclVwbG9hZCcpICovXG4gIGkxOG5OYW1lc3BhY2U/OiBzdHJpbmc7XG4gIC8qKiBNYXggZmlsZSBzaXplIGluIGJ5dGVzIChkZWZhdWx0OiAxME1CKSAqL1xuICBtYXhGaWxlU2l6ZT86IG51bWJlcjtcbiAgLyoqIFF1YWxpdHkgZm9yIGNvbXByZXNzZWQgaW1hZ2UgMC0xIChkZWZhdWx0OiAwLjgpICovXG4gIGNvbXByZXNzUXVhbGl0eT86IG51bWJlcjtcbiAgLyoqIE1heCB3aWR0aCBmb3IgYXZhdGFyIChkZWZhdWx0OiA4MDApICovXG4gIG1heFdpZHRoPzogbnVtYmVyO1xuICAvKiogVGh1bWJuYWlsIHNpemUgKGRlZmF1bHQ6IDE1MCkgKi9cbiAgdGh1bWJuYWlsU2l6ZT86IG51bWJlcjtcbiAgLyoqIFNob3cgXCJ2ZXIgZm90b1wiIGJ1dHRvbiB0byBvcGVuIHBob3RvIHZpZXdlciBtb2RhbCAoZGVmYXVsdDogZmFsc2UpICovXG4gIHNob3dWaWV3QnV0dG9uPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXN1bHQgZW1pdHRlZCBhZnRlciBzdWNjZXNzZnVsIHVwbG9hZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF2YXRhclVwbG9hZFJlc3VsdCB7XG4gIC8qKiBGdWxsLXNpemUgYXZhdGFyIFVSTCAqL1xuICBhdmF0YXJVcmw6IHN0cmluZztcbiAgLyoqIFRodW1ibmFpbCBVUkwgKi9cbiAgdGh1bWJuYWlsVXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRXJyb3IgdHlwZXMgdGhhdCBjYW4gb2NjdXIgZHVyaW5nIHVwbG9hZFxuICovXG5leHBvcnQgdHlwZSBBdmF0YXJVcGxvYWRFcnJvclR5cGUgPVxuICB8ICdpbnZhbGlkVHlwZSdcbiAgfCAnZmlsZVRvb0xhcmdlJ1xuICB8ICd1cGxvYWRGYWlsZWQnXG4gIHwgJ2JhY2tlbmRGYWlsZWQnXG4gIHwgJ2NhbmNlbGxlZCc7XG5cbi8qKlxuICogRXJyb3Igb2JqZWN0IGVtaXR0ZWQgb24gZmFpbHVyZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF2YXRhclVwbG9hZEVycm9yIHtcbiAgdHlwZTogQXZhdGFyVXBsb2FkRXJyb3JUeXBlO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIG9yaWdpbmFsRXJyb3I/OiB1bmtub3duO1xufVxuXG4vKipcbiAqIERlZmF1bHQgdmFsdWVzXG4gKi9cbmV4cG9ydCBjb25zdCBBVkFUQVJfVVBMT0FEX0RFRkFVTFRTID0ge1xuICBzaXplOiAxMDAsXG4gIGVkaXRhYmxlOiB0cnVlLFxuICBzdG9yYWdlUGF0aDogJ2F2YXRhcnMnLFxuICBpMThuTmFtZXNwYWNlOiAnQXZhdGFyVXBsb2FkJyxcbiAgbWF4RmlsZVNpemU6IDEwICogMTAyNCAqIDEwMjQsIC8vIDEwTUJcbiAgY29tcHJlc3NRdWFsaXR5OiAwLjgsXG4gIG1heFdpZHRoOiA4MDAsXG4gIHRodW1ibmFpbFNpemU6IDE1MCxcbiAgYmFja2dyb3VuZENvbG9yOiAnIzYzNjZmMScsIC8vIEluZGlnb1xuICBzaG93Vmlld0J1dHRvbjogZmFsc2UsXG59O1xuIl19
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Current version of valtech-components.
|
|
3
3
|
* This is automatically updated during the publish process.
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = '2.0.
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const VERSION = '2.0.910';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC45MTAnO1xuIl19
|