@seniorsistemas/angular-components 19.9.3 → 19.9.4
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/checkbox/lib/checkbox/checkbox.component.d.ts +1 -6
- package/checkbox-list/lib/checkbox-list/checkbox-list.component.d.ts +8 -0
- package/content-generator/lib/content-generator/content-generator.component.d.ts +2 -2
- package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +2 -0
- package/drawer/README.md +9 -2
- package/drawer/lib/drawer/drawer.component.d.ts +12 -1
- package/editor/lib/editor/editor.component.d.ts +1 -1
- package/esm2022/button/lib/button/button.component.mjs +3 -3
- package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +3 -9
- package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.component.mjs +17 -5
- package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +9 -8
- package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +18 -3
- package/esm2022/drawer/lib/drawer/drawer.component.mjs +33 -11
- package/esm2022/drawer/lib/drawer/drawer.module.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/checkbox/checkbox-field.component.mjs +4 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +3 -3
- package/esm2022/editor/lib/editor/editor.component.mjs +8 -8
- package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +4 -4
- package/esm2022/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.mjs +4 -4
- package/esm2022/global-search/lib/global-search/global-search.module.mjs +2 -2
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +3 -3
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.mjs +2 -3
- package/esm2022/paginator/lib/models/paginator.models.mjs +1 -1
- package/esm2022/paginator/lib/paginator/paginator.component.mjs +19 -13
- package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +19 -8
- package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.mjs +3 -4
- package/esm2022/select/lib/select/select.component.mjs +3 -3
- package/esm2022/side-sheet/lib/side-sheet/side-sheet.component.mjs +6 -5
- package/esm2022/slider/lib/slider/slider.component.mjs +3 -3
- package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +54 -8
- package/esm2022/star-rating/star-rating/star-rating.component.mjs +3 -3
- package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +14 -21
- package/esm2022/text-area/lib/text-area/text-area.component.mjs +3 -3
- package/esm2022/tooltip/lib/tooltip/tooltip.directive.mjs +3 -2
- package/esm2022/utils/lib/utils/utils.mjs +49 -3
- package/fesm2022/seniorsistemas-angular-components-button.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +16 -4
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +2 -8
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +8 -6
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +17 -2
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-drawer.mjs +32 -9
- package/fesm2022/seniorsistemas-angular-components-drawer.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +16 -16
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-editor.mjs +7 -7
- package/fesm2022/seniorsistemas-angular-components-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +3 -3
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs +3 -3
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +3 -4
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs +18 -12
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +20 -9
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-side-sheet.mjs +5 -4
- package/fesm2022/seniorsistemas-angular-components-side-sheet.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-slider.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +53 -7
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs +13 -20
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +2 -1
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-utils.mjs +49 -3
- package/fesm2022/seniorsistemas-angular-components-utils.mjs.map +1 -1
- package/global-search/lib/global-search/global-search.module.d.ts +1 -1
- package/package.json +7 -9
- package/paginator/lib/models/paginator.models.d.ts +1 -0
- package/paginator/lib/paginator/paginator.component.d.ts +3 -1
- package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +3 -1
- package/side-sheet/README.md +4 -4
- package/side-sheet/lib/side-sheet/side-sheet.component.d.ts +1 -0
- package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +2 -1
- package/table-header/lib/table-header/table-header-checkbox.component.d.ts +1 -4
- package/utils/lib/utils/utils.d.ts +21 -0
|
@@ -1,10 +1,31 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Component, EventEmitter, Input, Output, inject, input } from '@angular/core';
|
|
2
3
|
import { TranslateService, TranslatePipe } from '@ngx-translate/core';
|
|
3
4
|
import { Subject } from 'rxjs';
|
|
4
5
|
import { takeUntil } from 'rxjs/operators';
|
|
5
6
|
import { SpeechRecognitionService } from '../speech-recognition.service';
|
|
6
7
|
import { TextToSpeechService } from '../text-to-speech.service';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
9
|
+
function SkipIf(...propNames) {
|
|
10
|
+
return function (_target, _propertyKey, descriptor) {
|
|
11
|
+
const original = descriptor.value;
|
|
12
|
+
if (original) {
|
|
13
|
+
descriptor.value = function (...args) {
|
|
14
|
+
const shouldSkip = propNames.some((propName) => {
|
|
15
|
+
const targetProp = this[propName];
|
|
16
|
+
return typeof targetProp === 'function'
|
|
17
|
+
? Boolean(targetProp())
|
|
18
|
+
: Boolean(targetProp);
|
|
19
|
+
});
|
|
20
|
+
if (shouldSkip) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
return original.apply(this, args);
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
return descriptor;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
8
29
|
/**
|
|
9
30
|
* @description Componente de reconhecimento de voz que integra a Web Speech API para
|
|
10
31
|
* transcrever a fala do usuário em texto, inserída diretamente em um `<textarea>` fornecido.
|
|
@@ -40,6 +61,7 @@ export class SpeechRecognitionComponent {
|
|
|
40
61
|
event.preventDefault();
|
|
41
62
|
}
|
|
42
63
|
};
|
|
64
|
+
disabledSpeechRecognition = input(false);
|
|
43
65
|
disabled = false;
|
|
44
66
|
isListeningUserVoice = false;
|
|
45
67
|
voiceSpeed = 1;
|
|
@@ -71,9 +93,6 @@ export class SpeechRecognitionComponent {
|
|
|
71
93
|
});
|
|
72
94
|
}
|
|
73
95
|
onListen() {
|
|
74
|
-
if (this.isDisabledMicrophone || this.isListening) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
96
|
this.disabled = true;
|
|
78
97
|
this.canRenderMicrophone = false;
|
|
79
98
|
this.canRenderListeningText = true;
|
|
@@ -215,11 +234,38 @@ export class SpeechRecognitionComponent {
|
|
|
215
234
|
return this.textAreaElement.value;
|
|
216
235
|
}
|
|
217
236
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SpeechRecognitionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
218
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SpeechRecognitionComponent, isStandalone: true, selector: "s-speech-recognition", inputs: { textAreaElement: "textAreaElement", keepContext: "keepContext", speechRecognitionPlaceholder: "speechRecognitionPlaceholder" }, outputs: { recognizedText: "recognizedText" }, ngImport: i0, template: "@if(hasSpeechRecognitionBrowserApi) {\n <section class=\"speech-recognition\">\n <div class=\"speech-recognition-text\">\n @if(canRenderMicrophone) {\n {{ 'platform.angular_components.text_area_before_speech' | translate }}\n }\n\n @if(isListeningUserVoice) {\n {{ 'platform.angular_components.text_area_while_speech' | translate }}\n }\n\n @if(canRenderAprove && canRenderDiscard) {\n {{ 'platform.angular_components.text_area_end_speech' | translate }}\n }\n </div>\n <div class=\"speech-recognition-buttons\">\n @if(canRenderListeningText) {\n <span\n (click)=\"stopListening()\"\n class=\"speech-recognition-item speech-recognition-item-regular\">\n <i class=\"far fa-ellipsis-h\"></i>\n </span>\n }\n\n @if(canRenderMicrophone) {\n <span\n (click)=\"onListen()\"\n class=\"speech-recognition-item speech-recognition-item-microphone\"\n [class.speech-recognition-item-disabled]=\"isDisabledMicrophone || isListening || disabled\">\n <i class=\"fas fa-microphone\"></i>\n </span>\n }\n\n\n @if(canRenderAprove) {\n <span\n (click)=\"onAprove()\"\n class=\"speech-recognition-item speech-recognition-item-aprove\">\n <i class=\"fas fa-check\"></i>\n </span>\n }\n\n @if(canRenderDiscard) {\n <span\n (click)=\"onDiscard()\"\n class=\"speech-recognition-item speech-recognition-item-discard\">\n <i class=\"fas fa-times\"></i>\n </span>\n }\n\n @if(canRenderTextToSpeech) {\n <span\n (click)=\"onOpenToolbar()\"\n class=\"speech-recognition-item speech-recognition-item-regular\"\n [class.speech-recognition-item-disabled]=\"isDisabledTextToSpeech\">\n <i class=\"fas fa-volume-down\"></i>\n </span>\n }\n\n @if(canRenderTextToSpeechToolbar) {\n <span\n class=\"speech-recognition-item-toolbar\">\n <i class=\"fas\" [class.fa-pause]=\"isPlayingTextToSpeech\" [class.fa-play]=\"!isPlayingTextToSpeech\"\n (click)=\"toggleTextToSpeech()\"></i>\n <i class=\"fas fa-backward\" (click)=\"restartTextToSpeech()\"></i>\n <span (click)=\"updateVoiceSpeed()\">\n {{ voiceSpeed }}x\n </span>\n <i class=\"fas fa-times\" (click)=\"onCloseToolbar()\"></i>\n </span>\n }\n </div>\n </section>\n}\n", styles: [".speech-recognition{display:flex;gap:10px;justify-content:space-between;width:100%}.speech-recognition-buttons{display:flex;gap:10px;position:relative;bottom:15px;margin-right:16px}.speech-recognition-item{display:inline-flex;height:25px;padding:4px 12px;justify-content:center;align-items:center;gap:8px;border-radius:15px;cursor:pointer;transition:background .1s ease-in}.speech-recognition-item i,.speech-recognition-item span{color:#fff}.speech-recognition-item-disabled{cursor:default!important}.speech-recognition-item-disabled *{opacity:.5}.speech-recognition-item-microphone{background:#428bca}.speech-recognition-item-microphone:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-regular{background:#7892a1}.speech-recognition-item-regular:not(.speech-recognition-item-disabled):hover{background:#697882}.speech-recognition-item-aprove{background:#0c9348}.speech-recognition-item-aprove:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-discard{background:#c13018}.speech-recognition-item-discard:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-toolbar{background:#7892a1;display:flex;border-radius:15px;align-items:center;color:#fff;height:25px}.speech-recognition-item-toolbar i,.speech-recognition-item-toolbar span{cursor:pointer}.speech-recognition-item-toolbar i:not(:first-child),.speech-recognition-item-toolbar i:not(:last-child){padding:6px}.speech-recognition-item-toolbar i:first-child{padding-left:10px}.speech-recognition-item-toolbar i:last-child{padding-right:10px}.speech-recognition-text{color:#212533;font-size:12px;font-style:normal;font-weight:400;word-break:break-word}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
237
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SpeechRecognitionComponent, isStandalone: true, selector: "s-speech-recognition", inputs: { textAreaElement: { classPropertyName: "textAreaElement", publicName: "textAreaElement", isSignal: false, isRequired: true, transformFunction: null }, keepContext: { classPropertyName: "keepContext", publicName: "keepContext", isSignal: false, isRequired: false, transformFunction: null }, speechRecognitionPlaceholder: { classPropertyName: "speechRecognitionPlaceholder", publicName: "speechRecognitionPlaceholder", isSignal: false, isRequired: false, transformFunction: null }, disabledSpeechRecognition: { classPropertyName: "disabledSpeechRecognition", publicName: "disabledSpeechRecognition", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { recognizedText: "recognizedText" }, ngImport: i0, template: "@if(hasSpeechRecognitionBrowserApi) {\n <section class=\"speech-recognition\">\n <div class=\"speech-recognition-text\">\n @if(canRenderMicrophone) {\n {{ 'platform.angular_components.text_area_before_speech' | translate }}\n }\n\n @if(isListeningUserVoice) {\n {{ 'platform.angular_components.text_area_while_speech' | translate }}\n }\n\n @if(canRenderAprove && canRenderDiscard) {\n {{ 'platform.angular_components.text_area_end_speech' | translate }}\n }\n </div>\n <div class=\"speech-recognition-buttons\">\n @if(canRenderListeningText) {\n <span\n (click)=\"stopListening()\"\n class=\"speech-recognition-item speech-recognition-item-regular\"\n [class.speech-recognition-item-disabled]=\"disabledSpeechRecognition()\">\n <i class=\"far fa-ellipsis-h\"></i>\n </span>\n }\n\n @if(canRenderMicrophone) {\n <span\n (click)=\"onListen()\"\n class=\"speech-recognition-item speech-recognition-item-microphone\"\n [class.speech-recognition-item-disabled]=\"isDisabledMicrophone || isListening || disabled || disabledSpeechRecognition()\">\n <i class=\"fas fa-microphone\"></i>\n </span>\n }\n\n\n @if(canRenderAprove) {\n <span\n (click)=\"onAprove()\"\n class=\"speech-recognition-item speech-recognition-item-aprove\">\n <i class=\"fas fa-check\"></i>\n </span>\n }\n\n @if(canRenderDiscard) {\n <span\n (click)=\"onDiscard()\"\n class=\"speech-recognition-item speech-recognition-item-discard\">\n <i class=\"fas fa-times\"></i>\n </span>\n }\n\n @if(canRenderTextToSpeech) {\n <span\n (click)=\"onOpenToolbar()\"\n class=\"speech-recognition-item speech-recognition-item-regular\"\n [class.speech-recognition-item-disabled]=\"isDisabledTextToSpeech\">\n <i class=\"fas fa-volume-down\"></i>\n </span>\n }\n\n @if(canRenderTextToSpeechToolbar) {\n <span\n class=\"speech-recognition-item-toolbar\">\n <i class=\"fas\" [class.fa-pause]=\"isPlayingTextToSpeech\" [class.fa-play]=\"!isPlayingTextToSpeech\"\n (click)=\"toggleTextToSpeech()\"></i>\n <i class=\"fas fa-backward\" (click)=\"restartTextToSpeech()\"></i>\n <span (click)=\"updateVoiceSpeed()\">\n {{ voiceSpeed }}x\n </span>\n <i class=\"fas fa-times\" (click)=\"onCloseToolbar()\"></i>\n </span>\n }\n </div>\n </section>\n}\n", styles: [".speech-recognition{display:flex;gap:10px;justify-content:space-between;width:100%}.speech-recognition-buttons{display:flex;gap:10px;position:relative;bottom:15px;margin-right:16px}.speech-recognition-item{display:inline-flex;height:25px;padding:4px 12px;justify-content:center;align-items:center;gap:8px;border-radius:15px;cursor:pointer;transition:background .1s ease-in}.speech-recognition-item i,.speech-recognition-item span{color:#fff}.speech-recognition-item-disabled{cursor:default!important}.speech-recognition-item-disabled *{opacity:.5}.speech-recognition-item-microphone{background:#428bca}.speech-recognition-item-microphone:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-regular{background:#7892a1}.speech-recognition-item-regular:not(.speech-recognition-item-disabled):hover{background:#697882}.speech-recognition-item-aprove{background:#0c9348}.speech-recognition-item-aprove:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-discard{background:#c13018}.speech-recognition-item-discard:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-toolbar{background:#7892a1;display:flex;border-radius:15px;align-items:center;color:#fff;height:25px}.speech-recognition-item-toolbar i,.speech-recognition-item-toolbar span{cursor:pointer}.speech-recognition-item-toolbar i:not(:first-child),.speech-recognition-item-toolbar i:not(:last-child){padding:6px}.speech-recognition-item-toolbar i:first-child{padding-left:10px}.speech-recognition-item-toolbar i:last-child{padding-right:10px}.speech-recognition-text{color:#212533;font-size:12px;font-style:normal;font-weight:400;word-break:break-word}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
219
238
|
}
|
|
239
|
+
__decorate([
|
|
240
|
+
SkipIf('disabledSpeechRecognition', 'isDisabledMicrophone', 'isListening')
|
|
241
|
+
], SpeechRecognitionComponent.prototype, "onListen", null);
|
|
242
|
+
__decorate([
|
|
243
|
+
SkipIf('disabledSpeechRecognition')
|
|
244
|
+
], SpeechRecognitionComponent.prototype, "onOpenToolbar", null);
|
|
245
|
+
__decorate([
|
|
246
|
+
SkipIf('disabledSpeechRecognition')
|
|
247
|
+
], SpeechRecognitionComponent.prototype, "onCloseToolbar", null);
|
|
248
|
+
__decorate([
|
|
249
|
+
SkipIf('disabledSpeechRecognition')
|
|
250
|
+
], SpeechRecognitionComponent.prototype, "onDiscard", null);
|
|
251
|
+
__decorate([
|
|
252
|
+
SkipIf('disabledSpeechRecognition')
|
|
253
|
+
], SpeechRecognitionComponent.prototype, "onAprove", null);
|
|
254
|
+
__decorate([
|
|
255
|
+
SkipIf('disabledSpeechRecognition')
|
|
256
|
+
], SpeechRecognitionComponent.prototype, "toggleTextToSpeech", null);
|
|
257
|
+
__decorate([
|
|
258
|
+
SkipIf('disabledSpeechRecognition')
|
|
259
|
+
], SpeechRecognitionComponent.prototype, "restartTextToSpeech", null);
|
|
260
|
+
__decorate([
|
|
261
|
+
SkipIf('disabledSpeechRecognition')
|
|
262
|
+
], SpeechRecognitionComponent.prototype, "updateVoiceSpeed", null);
|
|
263
|
+
__decorate([
|
|
264
|
+
SkipIf('disabledSpeechRecognition')
|
|
265
|
+
], SpeechRecognitionComponent.prototype, "stopListening", null);
|
|
220
266
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SpeechRecognitionComponent, decorators: [{
|
|
221
267
|
type: Component,
|
|
222
|
-
args: [{ selector: 's-speech-recognition', standalone: true, imports: [TranslatePipe], template: "@if(hasSpeechRecognitionBrowserApi) {\n <section class=\"speech-recognition\">\n <div class=\"speech-recognition-text\">\n @if(canRenderMicrophone) {\n {{ 'platform.angular_components.text_area_before_speech' | translate }}\n }\n\n @if(isListeningUserVoice) {\n {{ 'platform.angular_components.text_area_while_speech' | translate }}\n }\n\n @if(canRenderAprove && canRenderDiscard) {\n {{ 'platform.angular_components.text_area_end_speech' | translate }}\n }\n </div>\n <div class=\"speech-recognition-buttons\">\n @if(canRenderListeningText) {\n <span\n (click)=\"stopListening()\"\n class=\"speech-recognition-item speech-recognition-item-regular\">\n <i class=\"far fa-ellipsis-h\"></i>\n </span>\n }\n\n @if(canRenderMicrophone) {\n <span\n (click)=\"onListen()\"\n class=\"speech-recognition-item speech-recognition-item-microphone\"\n [class.speech-recognition-item-disabled]=\"isDisabledMicrophone || isListening || disabled\">\n <i class=\"fas fa-microphone\"></i>\n </span>\n }\n\n\n @if(canRenderAprove) {\n <span\n (click)=\"onAprove()\"\n class=\"speech-recognition-item speech-recognition-item-aprove\">\n <i class=\"fas fa-check\"></i>\n </span>\n }\n\n @if(canRenderDiscard) {\n <span\n (click)=\"onDiscard()\"\n class=\"speech-recognition-item speech-recognition-item-discard\">\n <i class=\"fas fa-times\"></i>\n </span>\n }\n\n @if(canRenderTextToSpeech) {\n <span\n (click)=\"onOpenToolbar()\"\n class=\"speech-recognition-item speech-recognition-item-regular\"\n [class.speech-recognition-item-disabled]=\"isDisabledTextToSpeech\">\n <i class=\"fas fa-volume-down\"></i>\n </span>\n }\n\n @if(canRenderTextToSpeechToolbar) {\n <span\n class=\"speech-recognition-item-toolbar\">\n <i class=\"fas\" [class.fa-pause]=\"isPlayingTextToSpeech\" [class.fa-play]=\"!isPlayingTextToSpeech\"\n (click)=\"toggleTextToSpeech()\"></i>\n <i class=\"fas fa-backward\" (click)=\"restartTextToSpeech()\"></i>\n <span (click)=\"updateVoiceSpeed()\">\n {{ voiceSpeed }}x\n </span>\n <i class=\"fas fa-times\" (click)=\"onCloseToolbar()\"></i>\n </span>\n }\n </div>\n </section>\n}\n", styles: [".speech-recognition{display:flex;gap:10px;justify-content:space-between;width:100%}.speech-recognition-buttons{display:flex;gap:10px;position:relative;bottom:15px;margin-right:16px}.speech-recognition-item{display:inline-flex;height:25px;padding:4px 12px;justify-content:center;align-items:center;gap:8px;border-radius:15px;cursor:pointer;transition:background .1s ease-in}.speech-recognition-item i,.speech-recognition-item span{color:#fff}.speech-recognition-item-disabled{cursor:default!important}.speech-recognition-item-disabled *{opacity:.5}.speech-recognition-item-microphone{background:#428bca}.speech-recognition-item-microphone:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-regular{background:#7892a1}.speech-recognition-item-regular:not(.speech-recognition-item-disabled):hover{background:#697882}.speech-recognition-item-aprove{background:#0c9348}.speech-recognition-item-aprove:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-discard{background:#c13018}.speech-recognition-item-discard:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-toolbar{background:#7892a1;display:flex;border-radius:15px;align-items:center;color:#fff;height:25px}.speech-recognition-item-toolbar i,.speech-recognition-item-toolbar span{cursor:pointer}.speech-recognition-item-toolbar i:not(:first-child),.speech-recognition-item-toolbar i:not(:last-child){padding:6px}.speech-recognition-item-toolbar i:first-child{padding-left:10px}.speech-recognition-item-toolbar i:last-child{padding-right:10px}.speech-recognition-text{color:#212533;font-size:12px;font-style:normal;font-weight:400;word-break:break-word}\n"] }]
|
|
268
|
+
args: [{ selector: 's-speech-recognition', standalone: true, imports: [TranslatePipe], template: "@if(hasSpeechRecognitionBrowserApi) {\n <section class=\"speech-recognition\">\n <div class=\"speech-recognition-text\">\n @if(canRenderMicrophone) {\n {{ 'platform.angular_components.text_area_before_speech' | translate }}\n }\n\n @if(isListeningUserVoice) {\n {{ 'platform.angular_components.text_area_while_speech' | translate }}\n }\n\n @if(canRenderAprove && canRenderDiscard) {\n {{ 'platform.angular_components.text_area_end_speech' | translate }}\n }\n </div>\n <div class=\"speech-recognition-buttons\">\n @if(canRenderListeningText) {\n <span\n (click)=\"stopListening()\"\n class=\"speech-recognition-item speech-recognition-item-regular\"\n [class.speech-recognition-item-disabled]=\"disabledSpeechRecognition()\">\n <i class=\"far fa-ellipsis-h\"></i>\n </span>\n }\n\n @if(canRenderMicrophone) {\n <span\n (click)=\"onListen()\"\n class=\"speech-recognition-item speech-recognition-item-microphone\"\n [class.speech-recognition-item-disabled]=\"isDisabledMicrophone || isListening || disabled || disabledSpeechRecognition()\">\n <i class=\"fas fa-microphone\"></i>\n </span>\n }\n\n\n @if(canRenderAprove) {\n <span\n (click)=\"onAprove()\"\n class=\"speech-recognition-item speech-recognition-item-aprove\">\n <i class=\"fas fa-check\"></i>\n </span>\n }\n\n @if(canRenderDiscard) {\n <span\n (click)=\"onDiscard()\"\n class=\"speech-recognition-item speech-recognition-item-discard\">\n <i class=\"fas fa-times\"></i>\n </span>\n }\n\n @if(canRenderTextToSpeech) {\n <span\n (click)=\"onOpenToolbar()\"\n class=\"speech-recognition-item speech-recognition-item-regular\"\n [class.speech-recognition-item-disabled]=\"isDisabledTextToSpeech\">\n <i class=\"fas fa-volume-down\"></i>\n </span>\n }\n\n @if(canRenderTextToSpeechToolbar) {\n <span\n class=\"speech-recognition-item-toolbar\">\n <i class=\"fas\" [class.fa-pause]=\"isPlayingTextToSpeech\" [class.fa-play]=\"!isPlayingTextToSpeech\"\n (click)=\"toggleTextToSpeech()\"></i>\n <i class=\"fas fa-backward\" (click)=\"restartTextToSpeech()\"></i>\n <span (click)=\"updateVoiceSpeed()\">\n {{ voiceSpeed }}x\n </span>\n <i class=\"fas fa-times\" (click)=\"onCloseToolbar()\"></i>\n </span>\n }\n </div>\n </section>\n}\n", styles: [".speech-recognition{display:flex;gap:10px;justify-content:space-between;width:100%}.speech-recognition-buttons{display:flex;gap:10px;position:relative;bottom:15px;margin-right:16px}.speech-recognition-item{display:inline-flex;height:25px;padding:4px 12px;justify-content:center;align-items:center;gap:8px;border-radius:15px;cursor:pointer;transition:background .1s ease-in}.speech-recognition-item i,.speech-recognition-item span{color:#fff}.speech-recognition-item-disabled{cursor:default!important}.speech-recognition-item-disabled *{opacity:.5}.speech-recognition-item-microphone{background:#428bca}.speech-recognition-item-microphone:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-regular{background:#7892a1}.speech-recognition-item-regular:not(.speech-recognition-item-disabled):hover{background:#697882}.speech-recognition-item-aprove{background:#0c9348}.speech-recognition-item-aprove:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-discard{background:#c13018}.speech-recognition-item-discard:not(.speech-recognition-item-disabled):hover{background:#063951}.speech-recognition-item-toolbar{background:#7892a1;display:flex;border-radius:15px;align-items:center;color:#fff;height:25px}.speech-recognition-item-toolbar i,.speech-recognition-item-toolbar span{cursor:pointer}.speech-recognition-item-toolbar i:not(:first-child),.speech-recognition-item-toolbar i:not(:last-child){padding:6px}.speech-recognition-item-toolbar i:first-child{padding-left:10px}.speech-recognition-item-toolbar i:last-child{padding-right:10px}.speech-recognition-text{color:#212533;font-size:12px;font-style:normal;font-weight:400;word-break:break-word}\n"] }]
|
|
223
269
|
}], propDecorators: { textAreaElement: [{
|
|
224
270
|
type: Input,
|
|
225
271
|
args: [{ required: true }]
|
|
@@ -229,5 +275,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
229
275
|
type: Input
|
|
230
276
|
}], recognizedText: [{
|
|
231
277
|
type: Output
|
|
232
|
-
}] } });
|
|
233
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXJlY29nbml0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcGVlY2gtcmVjb2duaXRpb24vc3JjL2xpYi9zcGVlY2gtcmVjb2duaXRpb24vc3BlZWNoLXJlY29nbml0aW9uL3NwZWVjaC1yZWNvZ25pdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3BlZWNoLXJlY29nbml0aW9uL3NyYy9saWIvc3BlZWNoLXJlY29nbml0aW9uL3NwZWVjaC1yZWNvZ25pdGlvbi9zcGVlY2gtcmVjb2duaXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFFaEU7Ozs7Ozs7Ozs7Ozs7R0FhRztBQVFILE1BQU0sT0FBTywwQkFBMEI7SUFDbEIsd0JBQXdCLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDNUQsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDbEQsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFckQsTUFBTSxD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TUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UsIFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFNwZWVjaFJlY29nbml0aW9uU2VydmljZSB9IGZyb20gJy4uL3NwZWVjaC1yZWNvZ25pdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGV4dFRvU3BlZWNoU2VydmljZSB9IGZyb20gJy4uL3RleHQtdG8tc3BlZWNoLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvbiBDb21wb25lbnRlIGRlIHJlY29uaGVjaW1lbnRvIGRlIHZveiBxdWUgaW50ZWdyYSBhIFdlYiBTcGVlY2ggQVBJIHBhcmFcclxuICogdHJhbnNjcmV2ZXIgYSBmYWxhIGRvIHVzdcOhcmlvIGVtIHRleHRvLCBpbnNlcsOtZGEgZGlyZXRhbWVudGUgZW0gdW0gYDx0ZXh0YXJlYT5gIGZvcm5lY2lkby5cclxuICogU3Vwb3J0YSB0YW1iw6ltIHRleHQtdG8tc3BlZWNoIHBhcmEgbGVpdHVyYSBlbSB2b3ogYWx0YSBkbyBjb250ZcO6ZG8gZG8gY2FtcG8uXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYGh0bWxcclxuICogPHMtc3BlZWNoLXJlY29nbml0aW9uXHJcbiAqICAgW3RleHRBcmVhRWxlbWVudF09XCJ0ZXh0QXJlYVJlZi5uYXRpdmVFbGVtZW50XCJcclxuICogICAocmVjb2duaXplZFRleHQpPVwib25UZXh0b1JlY29uaGVjaWRvKCRldmVudClcIiAvPlxyXG4gKiBgYGBcclxuICpcclxuICogQGNhdGVnb3J5IElucHV0c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Mtc3BlZWNoLXJlY29nbml0aW9uJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9zcGVlY2gtcmVjb2duaXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vc3BlZWNoLXJlY29nbml0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1RyYW5zbGF0ZVBpcGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3BlZWNoUmVjb2duaXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNwZWVjaFJlY29nbml0aW9uU2VydmljZSA9IGluamVjdChTcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0VG9TcGVlY2hTZXJ2aWNlID0gaW5qZWN0KFRleHRUb1NwZWVjaFNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIFRPT0xCQVJfQUNUSVZFID0gZmFsc2U7XHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlZmVyw6puY2lhIGFvIGVsZW1lbnRvIGA8dGV4dGFyZWE+YCBuYXRpdm8gcXVlIHJlY2ViZXLDoSBvIHRleHRvIHRyYW5zY3JpdG8uIENhbXBvIG9icmlnYXTDs3Jpby4gKi9cclxuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHRleHRBcmVhRWxlbWVudCE6IEhUTUxUZXh0QXJlYUVsZW1lbnQ7XHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFF1YW5kbyBgdHJ1ZWAsIG1hbnTDqW0gbyB0ZXh0byBleGlzdGVudGUgbm8gY2FtcG8gYW8gaW5pY2lhciBub3ZvIHJlY29uaGVjaW1lbnRvLiBAZGVmYXVsdCBmYWxzZSAqL1xyXG4gICAgQElucHV0KCkga2VlcENvbnRleHQgPSBmYWxzZTtcclxuICAgIC8qKiBAZGVzY3JpcHRpb24gUGxhY2Vob2xkZXIgZXhpYmlkbyBubyB0ZXh0YXJlYSBkdXJhbnRlIG8gcmVjb25oZWNpbWVudG8gZGUgdm96LiBAZGVmYXVsdCAnJyAqL1xyXG4gICAgQElucHV0KCkgc3BlZWNoUmVjb2duaXRpb25QbGFjZWhvbGRlciA9ICcnO1xyXG4gICAgcHJpdmF0ZSBfcmVjb2duaXplZFRleHQgPSAnJztcclxuICAgIHByaXZhdGUgb3JpZ2luYWxUZXh0QXJlYUVsZW1lbnRUZXh0ID0gJyc7XHJcbiAgICBwcml2YXRlIGlzRG9uZVRleHRUb1NwZWVjaCA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgVk9JQ0VfU1BFRURTID0gWzAuNSwgMSwgMS41LCAyXTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkga2V5ZG93bkV2ZW50TGlzdGVuZXIgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgIGlzTGlzdGVuaW5nVXNlclZvaWNlID0gZmFsc2U7XHJcbiAgICB2b2ljZVNwZWVkID0gMTtcclxuICAgIGlzRGlzYWJsZWRNaWNyb3Bob25lID0gZmFsc2U7XHJcblxyXG4gICAgY2FuUmVuZGVyTWljcm9waG9uZSA9IHRydWU7XHJcbiAgICBjYW5SZW5kZXJUZXh0VG9TcGVlY2ggPSB0cnVlO1xyXG4gICAgY2FuUmVuZGVyTGlzdGVuaW5nVGV4dCA9IGZhbHNlO1xyXG4gICAgY2FuUmVuZGVyRGlzY2FyZCA9IGZhbHNlO1xyXG4gICAgY2FuUmVuZGVyQXByb3ZlID0gZmFsc2U7XHJcbiAgICBjYW5SZW5kZXJUZXh0VG9TcGVlY2hUb29sYmFyID0gZmFsc2U7XHJcblxyXG4gICAgaXNQbGF5aW5nVGV4dFRvU3BlZWNoID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIHF1YW5kbyBvIHJlY29uaGVjaW1lbnRvIGRlIHZveiDDqSBjb25jbHXDrWRvLCBjb20gbyB0ZXh0byB0cmFuc2NyaXRvLiAqL1xyXG4gICAgQE91dHB1dCgpIHJlY29nbml6ZWRUZXh0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmhhc1NwZWVjaFJlY29nbml0aW9uQnJvd3NlckFwaSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy50ZXh0QXJlYUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0ZXh0QXJlYUVsZW1lbnQgaXMgcmVxdWlyZWQnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy50ZXh0QXJlYUVsZW1lbnQucGxhY2Vob2xkZXIgPSB0aGlzLnNwZWVjaFJlY29nbml0aW9uUGxhY2Vob2xkZXJcclxuICAgICAgICAgICAgPyB0aGlzLnNwZWVjaFJlY29nbml0aW9uUGxhY2Vob2xkZXJcclxuICAgICAgICAgICAgOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnRleHRfYXJlYV9zcGVlY2hfcmVjb2duaXRpb25fcGxhY2Vob2xkZXInKTtcclxuICAgICAgICB0aGlzLnRleHRBcmVhRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5rZXlkb3duRXZlbnRMaXN0ZW5lcik7XHJcbiAgICAgICAgdGhpcy5zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UubWljcm9waG9uZVN0YXR1cyQucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcclxuICAgICAgICAgICAgaWYgKHN0YXR1cyA9PT0gJ2FjdGl2ZScpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25DbG9zZVRvb2xiYXIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTGlzdGVuKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWRNaWNyb3Bob25lIHx8IHRoaXMuaXNMaXN0ZW5pbmcpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNhblJlbmRlck1pY3JvcGhvbmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNhblJlbmRlckxpc3RlbmluZ1RleHQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMub3JpZ2luYWxUZXh0QXJlYUVsZW1lbnRUZXh0ID0gdGhpcy50ZXh0QXJlYUVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgdGhpcy50ZXh0QXJlYUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICB0aGlzLmlzTGlzdGVuaW5nVXNlclZvaWNlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNwZWVjaFJlY29nbml0aW9uU2VydmljZVxyXG4gICAgICAgICAgICAubGlzdGVuKClcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoeyB0ZXh0LCBpc0ZpbmFsIH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZWNvZ25pemVkVGV4dCA9IHRleHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRUZXh0QXJlYVZhbHVlKHRleHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVGV4dEFyZWFCb3R0b20oKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNGaW5hbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhblJlbmRlckFwcm92ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuUmVuZGVyRGlzY2FyZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuUmVuZGVyTGlzdGVuaW5nVGV4dCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTGlzdGVuaW5nVXNlclZvaWNlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTGlzdGVuaW5nVXNlclZvaWNlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYW5SZW5kZXJNaWNyb3Bob25lID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRGlzYWJsZWRNaWNyb3Bob25lID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYW5SZW5kZXJMaXN0ZW5pbmdUZXh0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNjcm9sbFRleHRBcmVhQm90dG9tKCkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRleHRBcmVhRWxlbWVudC5zY3JvbGxUb3AgPSB0aGlzLnRleHRBcmVhRWxlbWVudC5zY3JvbGxIZWlnaHQ7XHJcbiAgICAgICAgfSwgMTIwKTtcclxuICAgIH1cclxuXHJcbiAgICBvbk9wZW5Ub29sYmFyKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWRUZXh0VG9TcGVlY2gpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaFRvb2xiYXIgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2FuUmVuZGVyVGV4dFRvU3BlZWNoID0gZmFsc2U7XHJcbiAgICAgICAgU3BlZWNoUmVjb2duaXRpb25Db21wb25lbnQuVE9PTEJBUl9BQ1RJVkUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc3BlYWsoKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNsb3NlVG9vbGJhcigpIHtcclxuICAgICAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaFRvb2xiYXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zdG9wVGV4dFRvU3BlZWNoKCk7XHJcbiAgICAgICAgdGhpcy52b2ljZVNwZWVkID0gMTtcclxuICAgICAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbXBvbmVudC5UT09MQkFSX0FDVElWRSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgb25EaXNjYXJkKCkge1xyXG4gICAgICAgIHRoaXMuY2FuUmVuZGVyQXByb3ZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jYW5SZW5kZXJEaXNjYXJkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jYW5SZW5kZXJNaWNyb3Bob25lID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaFRvb2xiYXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fcmVjb2duaXplZFRleHQgPSAnJztcclxuICAgICAgICB0aGlzLnNldFRleHRBcmVhVmFsdWUodGhpcy5vcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQpO1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnN0b3BUZXh0VG9TcGVlY2goKTtcclxuICAgICAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbXBvbmVudC5UT09MQkFSX0FDVElWRSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQXByb3ZlKCkge1xyXG4gICAgICAgIHRoaXMuY2FuUmVuZGVyQXByb3ZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jYW5SZW5kZXJEaXNjYXJkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jYW5SZW5kZXJNaWNyb3Bob25lID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaFRvb2xiYXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaCA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMua2VlcENvbnRleHQpIHtcclxuICAgICAgICAgICAgY29uc3QgYnJlYWtMaW5lID0gdGhpcy5vcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQubGVuZ3RoID4gMCA/ICdcXG4nIDogJyc7XHJcbiAgICAgICAgICAgIHRoaXMub3JpZ2luYWxUZXh0QXJlYUVsZW1lbnRUZXh0ICs9IGAke2JyZWFrTGluZX0ke3RoaXMuX3JlY29nbml6ZWRUZXh0fWA7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5vcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQgPSB0aGlzLl9yZWNvZ25pemVkVGV4dDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZWNvZ25pemVkVGV4dC5lbWl0KHRoaXMua2VlcENvbnRleHQgPyB0aGlzLm9yaWdpbmFsVGV4dEFyZWFFbGVtZW50VGV4dCA6IHRoaXMuX3JlY29nbml6ZWRUZXh0KTtcclxuICAgICAgICB0aGlzLnNjcm9sbFRleHRBcmVhQm90dG9tKCk7XHJcbiAgICAgICAgdGhpcy5fcmVjb2duaXplZFRleHQgPSAnJztcclxuICAgICAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLmNhbmNlbCgpO1xyXG4gICAgICAgIFNwZWVjaFJlY29nbml0aW9uQ29tcG9uZW50LlRPT0xCQVJfQUNUSVZFID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQoKTtcclxuICAgICAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICB0b2dnbGVUZXh0VG9TcGVlY2goKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNQbGF5aW5nVGV4dFRvU3BlZWNoKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5wYXVzZSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRG9uZVRleHRUb1NwZWVjaCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zcGVhaygpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLnJlc3VtZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaXNQbGF5aW5nVGV4dFRvU3BlZWNoID0gIXRoaXMuaXNQbGF5aW5nVGV4dFRvU3BlZWNoO1xyXG4gICAgfVxyXG5cclxuICAgIHJlc3RhcnRUZXh0VG9TcGVlY2goKSB7XHJcbiAgICAgICAgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLmNhbmNlbCgpO1xyXG4gICAgICAgIHRoaXMuc3BlYWsoKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVWb2ljZVNwZWVkKCkge1xyXG4gICAgICAgIGNvbnN0IHZvaWNlU3BlZWRJbmRleCA9IHRoaXMuVk9JQ0VfU1BFRURTLmluZGV4T2YodGhpcy52b2ljZVNwZWVkKTtcclxuICAgICAgICBjb25zdCBuZXh0Vm9pY2VTcGVlZEluZGV4ID0gdGhpcy5WT0lDRV9TUEVFRFNbdm9pY2VTcGVlZEluZGV4ICsgMV0gPyB2b2ljZVNwZWVkSW5kZXggKyAxIDogMDtcclxuICAgICAgICB0aGlzLnZvaWNlU3BlZWQgPSB0aGlzLlZPSUNFX1NQRUVEU1tuZXh0Vm9pY2VTcGVlZEluZGV4XTtcclxuICAgICAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UuY2FuY2VsKCk7XHJcbiAgICAgICAgdGhpcy5zcGVhaygpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0b3BMaXN0ZW5pbmcoKSB7XHJcbiAgICAgICAgdGhpcy5zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2Uuc3RvcCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc0xpc3RlbmluZygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UuaXNMaXN0ZW5pbmc7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGhhc1NwZWVjaFJlY29nbml0aW9uQnJvd3NlckFwaSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UuaGFzU3VwcG9ydFNwZWVjaFJlY29nbml0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc0Rpc2FibGVkVGV4dFRvU3BlZWNoKCkge1xyXG4gICAgICAgIGNvbnN0IGhhc1RleHRUb1NwZWVjaFZvaWNlID0gdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLmhhc1ZvaWNlO1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICF0aGlzLnRleHRUb1NwZWVjaCB8fCAhaGFzVGV4dFRvU3BlZWNoVm9pY2UgfHwgdGhpcy5pc0xpc3RlbmluZyB8fCBTcGVlY2hSZWNvZ25pdGlvbkNvbXBvbmVudC5UT09MQkFSX0FDVElWRVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRUZXh0QXJlYVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnRleHRBcmVhRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RvcFRleHRUb1NwZWVjaCgpIHtcclxuICAgICAgICB0aGlzLmlzUGxheWluZ1RleHRUb1NwZWVjaCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5jYW5jZWwoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNwZWFrKCkge1xyXG4gICAgICAgIHRoaXMuaXNEb25lVGV4dFRvU3BlZWNoID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1BsYXlpbmdUZXh0VG9TcGVlY2ggPSB0cnVlO1xyXG4gICAgICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5zcGVhayh0aGlzLnRleHRUb1NwZWVjaCwgdGhpcy52b2ljZVNwZWVkKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pc1BsYXlpbmdUZXh0VG9TcGVlY2ggPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5pc0RvbmVUZXh0VG9TcGVlY2ggPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0IHRleHRUb1NwZWVjaCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy50ZXh0QXJlYUVsZW1lbnQudmFsdWU7XHJcbiAgICB9XHJcbn1cclxuIiwiQGlmKGhhc1NwZWVjaFJlY29nbml0aW9uQnJvd3NlckFwaSkge1xuICAgIDxzZWN0aW9uIGNsYXNzPVwic3BlZWNoLXJlY29nbml0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzcGVlY2gtcmVjb2duaXRpb24tdGV4dFwiPlxuICAgICAgICAgICAgQGlmKGNhblJlbmRlck1pY3JvcGhvbmUpIHtcbiAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnRleHRfYXJlYV9iZWZvcmVfc3BlZWNoJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYoaXNMaXN0ZW5pbmdVc2VyVm9pY2UpIHtcbiAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnRleHRfYXJlYV93aGlsZV9zcGVlY2gnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZihjYW5SZW5kZXJBcHJvdmUgJiYgY2FuUmVuZGVyRGlzY2FyZCkge1xuICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMudGV4dF9hcmVhX2VuZF9zcGVlY2gnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3BlZWNoLXJlY29nbml0aW9uLWJ1dHRvbnNcIj5cbiAgICAgICAgICAgIEBpZihjYW5SZW5kZXJMaXN0ZW5pbmdUZXh0KSB7XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInN0b3BMaXN0ZW5pbmcoKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3BlZWNoLXJlY29nbml0aW9uLWl0ZW0gc3BlZWNoLXJlY29nbml0aW9uLWl0ZW0tcmVndWxhclwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1lbGxpcHNpcy1oXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmKGNhblJlbmRlck1pY3JvcGhvbmUpIHtcbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25MaXN0ZW4oKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3BlZWNoLXJlY29nbml0aW9uLWl0ZW0gc3BlZWNoLXJlY29nbml0aW9uLWl0ZW0tbWljcm9waG9uZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zcGVlY2gtcmVjb2duaXRpb24taXRlbS1kaXNhYmxlZF09XCJpc0Rpc2FibGVkTWljcm9waG9uZSB8fCBpc0xpc3RlbmluZyB8fCBkaXNhYmxlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1taWNyb3Bob25lXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICBAaWYoY2FuUmVuZGVyQXByb3ZlKSB7XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQXByb3ZlKClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNwZWVjaC1yZWNvZ25pdGlvbi1pdGVtIHNwZWVjaC1yZWNvZ25pdGlvbi1pdGVtLWFwcm92ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGVja1wiPjwvaT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZihjYW5SZW5kZXJEaXNjYXJkKSB7XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGlzY2FyZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzcGVlY2gtcmVjb2duaXRpb24taXRlbSBzcGVlY2gtcmVjb2duaXRpb24taXRlbS1kaXNjYXJkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmKGNhblJlbmRlclRleHRUb1NwZWVjaCkge1xuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk9wZW5Ub29sYmFyKClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNwZWVjaC1yZWNvZ25pdGlvbi1pdGVtIHNwZWVjaC1yZWNvZ25pdGlvbi1pdGVtLXJlZ3VsYXJcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc3BlZWNoLXJlY29nbml0aW9uLWl0ZW0tZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFRleHRUb1NwZWVjaFwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS12b2x1bWUtZG93blwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZihjYW5SZW5kZXJUZXh0VG9TcGVlY2hUb29sYmFyKSB7XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzcGVlY2gtcmVjb2duaXRpb24taXRlbS10b29sYmFyXCI+XG4gICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhc1wiIFtjbGFzcy5mYS1wYXVzZV09XCJpc1BsYXlpbmdUZXh0VG9TcGVlY2hcIiBbY2xhc3MuZmEtcGxheV09XCIhaXNQbGF5aW5nVGV4dFRvU3BlZWNoXCJcbiAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVUZXh0VG9TcGVlY2goKVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWJhY2t3YXJkXCIgKGNsaWNrKT1cInJlc3RhcnRUZXh0VG9TcGVlY2goKVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJ1cGRhdGVWb2ljZVNwZWVkKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2b2ljZVNwZWVkIH19eFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIiAoY2xpY2spPVwib25DbG9zZVRvb2xiYXIoKVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvc2VjdGlvbj5cbn1cbiJdfQ==
|
|
278
|
+
}], onListen: [], onOpenToolbar: [], onCloseToolbar: [], onDiscard: [], onAprove: [], toggleTextToSpeech: [], restartTextToSpeech: [], updateVoiceSpeed: [], stopListening: [] } });
|
|
279
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXJlY29nbml0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcGVlY2gtcmVjb2duaXRpb24vc3JjL2xpYi9zcGVlY2gtcmVjb2duaXRpb24vc3BlZWNoLXJlY29nbml0aW9uL3NwZWVjaC1yZWNvZ25pdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3BlZWNoLXJlY29nbml0aW9uL3NyYy9saWIvc3BlZWNoLXJlY29nbml0aW9uL3NwZWVjaC1yZWNvZ25pdGlvbi9zcGVlY2gtcmVjb2duaXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUVoRSxTQUFTLE1BQU0sQ0FBQyxHQUFHLFNBQWtEO0lBQ25FLE9BQU8sVUFDTCxPQUFnQixFQUNoQixZQUFvQixFQUNwQixVQUE0RDtRQUU1RCxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBRWxDLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixVQUFVLENBQUMsS0FBSyxHQUFHLFVBQXFDLEdBQUcs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QixXQUFXO3NCQUFuQixLQUFLO2dCQUVHLDRCQUE0QjtzQkFBcEMsS0FBSztnQkE2QkksY0FBYztzQkFBdkIsTUFBTTtnQkFxQlAsUUFBUSxNQXVDUixhQUFhLE1BV2IsY0FBYyxNQVNkLFNBQVMsTUFjVCxRQUFRLE1BMEJSLGtCQUFrQixNQWNsQixtQkFBbUIsTUFNbkIsZ0JBQWdCLE1BU2hCLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIGluamVjdCwgaW5wdXQsIGlzU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UsIFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFNwZWVjaFJlY29nbml0aW9uU2VydmljZSB9IGZyb20gJy4uL3NwZWVjaC1yZWNvZ25pdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGV4dFRvU3BlZWNoU2VydmljZSB9IGZyb20gJy4uL3RleHQtdG8tc3BlZWNoLnNlcnZpY2UnO1xyXG5cclxuZnVuY3Rpb24gU2tpcElmKC4uLnByb3BOYW1lczogQXJyYXk8a2V5b2YgU3BlZWNoUmVjb2duaXRpb25Db21wb25lbnQ+KSB7XHJcbiAgcmV0dXJuIGZ1bmN0aW9uIChcclxuICAgIF90YXJnZXQ6IHVua25vd24sXHJcbiAgICBfcHJvcGVydHlLZXk6IHN0cmluZyxcclxuICAgIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPCguLi5hcmdzOiBhbnlbXSkgPT4gYW55PlxyXG4gICkge1xyXG4gICAgY29uc3Qgb3JpZ2luYWwgPSBkZXNjcmlwdG9yLnZhbHVlO1xyXG5cclxuICAgIGlmIChvcmlnaW5hbCkge1xyXG4gICAgICBkZXNjcmlwdG9yLnZhbHVlID0gZnVuY3Rpb24gKHRoaXM6IFJlY29yZDxzdHJpbmcsIGFueT4sIC4uLmFyZ3M6IGFueVtdKSB7XHJcblxyXG4gICAgICAgIGNvbnN0IHNob3VsZFNraXAgPSBwcm9wTmFtZXMuc29tZSgocHJvcE5hbWUpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHRhcmdldFByb3AgPSB0aGlzW3Byb3BOYW1lXTtcclxuXHJcblxyXG4gICAgICAgICAgcmV0dXJuIHR5cGVvZiB0YXJnZXRQcm9wID09PSAnZnVuY3Rpb24nXHJcbiAgICAgICAgICAgID8gQm9vbGVhbih0YXJnZXRQcm9wKCkpXHJcbiAgICAgICAgICAgIDogQm9vbGVhbih0YXJnZXRQcm9wKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKHNob3VsZFNraXApIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBvcmlnaW5hbC5hcHBseSh0aGlzLCBhcmdzKTtcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGVzY3JpcHRvcjtcclxuICB9O1xyXG59XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudGUgZGUgcmVjb25oZWNpbWVudG8gZGUgdm96IHF1ZSBpbnRlZ3JhIGEgV2ViIFNwZWVjaCBBUEkgcGFyYVxyXG4gKiB0cmFuc2NyZXZlciBhIGZhbGEgZG8gdXN1w6FyaW8gZW0gdGV4dG8sIGluc2Vyw61kYSBkaXJldGFtZW50ZSBlbSB1bSBgPHRleHRhcmVhPmAgZm9ybmVjaWRvLlxyXG4gKiBTdXBvcnRhIHRhbWLDqW0gdGV4dC10by1zcGVlY2ggcGFyYSBsZWl0dXJhIGVtIHZveiBhbHRhIGRvIGNvbnRlw7pkbyBkbyBjYW1wby5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgaHRtbFxyXG4gKiA8cy1zcGVlY2gtcmVjb2duaXRpb25cclxuICogICBbdGV4dEFyZWFFbGVtZW50XT1cInRleHRBcmVhUmVmLm5hdGl2ZUVsZW1lbnRcIlxyXG4gKiAgIChyZWNvZ25pemVkVGV4dCk9XCJvblRleHRvUmVjb25oZWNpZG8oJGV2ZW50KVwiIC8+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAY2F0ZWdvcnkgSW5wdXRzXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncy1zcGVlY2gtcmVjb2duaXRpb24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwZWVjaC1yZWNvZ25pdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9zcGVlY2gtcmVjb2duaXRpb24uY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbVHJhbnNsYXRlUGlwZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlID0gaW5qZWN0KFNwZWVjaFJlY29nbml0aW9uU2VydmljZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRUb1NwZWVjaFNlcnZpY2UgPSBpbmplY3QoVGV4dFRvU3BlZWNoU2VydmljZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgVE9PTEJBUl9BQ1RJVkUgPSBmYWxzZTtcclxuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVmZXLDqm5jaWEgYW8gZWxlbWVudG8gYDx0ZXh0YXJlYT5gIG5hdGl2byBxdWUgcmVjZWJlcsOhIG8gdGV4dG8gdHJhbnNjcml0by4gQ2FtcG8gb2JyaWdhdMOzcmlvLiAqL1xyXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgdGV4dEFyZWFFbGVtZW50ITogSFRNTFRleHRBcmVhRWxlbWVudDtcclxuICAgIC8qKiBAZGVzY3JpcHRpb24gUXVhbmRvIGB0cnVlYCwgbWFudMOpbSBvIHRleHRvIGV4aXN0ZW50ZSBubyBjYW1wbyBhbyBpbmljaWFyIG5vdm8gcmVjb25oZWNpbWVudG8uIEBkZWZhdWx0IGZhbHNlICovXHJcbiAgICBASW5wdXQoKSBrZWVwQ29udGV4dCA9IGZhbHNlO1xyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQbGFjZWhvbGRlciBleGliaWRvIG5vIHRleHRhcmVhIGR1cmFudGUgbyByZWNvbmhlY2ltZW50byBkZSB2b3ouIEBkZWZhdWx0ICcnICovXHJcbiAgICBASW5wdXQoKSBzcGVlY2hSZWNvZ25pdGlvblBsYWNlaG9sZGVyID0gJyc7XHJcbiAgICBwcml2YXRlIF9yZWNvZ25pemVkVGV4dCA9ICcnO1xyXG4gICAgcHJpdmF0ZSBvcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQgPSAnJztcclxuICAgIHByaXZhdGUgaXNEb25lVGV4dFRvU3BlZWNoID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBWT0lDRV9TUEVFRFMgPSBbMC41LCAxLCAxLjUsIDJdO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBrZXlkb3duRXZlbnRMaXN0ZW5lciA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBkaXNhYmxlZFNwZWVjaFJlY29nbml0aW9uID0gaW5wdXQoZmFsc2UpO1xyXG5cclxuICAgIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgICBpc0xpc3RlbmluZ1VzZXJWb2ljZSA9IGZhbHNlO1xyXG4gICAgdm9pY2VTcGVlZCA9IDE7XHJcbiAgICBpc0Rpc2FibGVkTWljcm9waG9uZSA9IGZhbHNlO1xyXG5cclxuICAgIGNhblJlbmRlck1pY3JvcGhvbmUgPSB0cnVlO1xyXG4gICAgY2FuUmVuZGVyVGV4dFRvU3BlZWNoID0gdHJ1ZTtcclxuICAgIGNhblJlbmRlckxpc3RlbmluZ1RleHQgPSBmYWxzZTtcclxuICAgIGNhblJlbmRlckRpc2NhcmQgPSBmYWxzZTtcclxuICAgIGNhblJlbmRlckFwcm92ZSA9IGZhbHNlO1xyXG4gICAgY2FuUmVuZGVyVGV4dFRvU3BlZWNoVG9vbGJhciA9IGZhbHNlO1xyXG5cclxuICAgIGlzUGxheWluZ1RleHRUb1NwZWVjaCA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBxdWFuZG8gbyByZWNvbmhlY2ltZW50byBkZSB2b3ogw6kgY29uY2x1w61kbywgY29tIG8gdGV4dG8gdHJhbnNjcml0by4gKi9cclxuICAgIEBPdXRwdXQoKSByZWNvZ25pemVkVGV4dCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5oYXNTcGVlY2hSZWNvZ25pdGlvbkJyb3dzZXJBcGkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXRoaXMudGV4dEFyZWFFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndGV4dEFyZWFFbGVtZW50IGlzIHJlcXVpcmVkJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudGV4dEFyZWFFbGVtZW50LnBsYWNlaG9sZGVyID0gdGhpcy5zcGVlY2hSZWNvZ25pdGlvblBsYWNlaG9sZGVyXHJcbiAgICAgICAgICAgID8gdGhpcy5zcGVlY2hSZWNvZ25pdGlvblBsYWNlaG9sZGVyXHJcbiAgICAgICAgICAgIDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy50ZXh0X2FyZWFfc3BlZWNoX3JlY29nbml0aW9uX3BsYWNlaG9sZGVyJyk7XHJcbiAgICAgICAgdGhpcy50ZXh0QXJlYUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMua2V5ZG93bkV2ZW50TGlzdGVuZXIpO1xyXG4gICAgICAgIHRoaXMuc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlLm1pY3JvcGhvbmVTdGF0dXMkLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZSgoc3RhdHVzKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChzdGF0dXMgPT09ICdhY3RpdmUnKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2xvc2VUb29sYmFyKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgQFNraXBJZignZGlzYWJsZWRTcGVlY2hSZWNvZ25pdGlvbicsICdpc0Rpc2FibGVkTWljcm9waG9uZScsICdpc0xpc3RlbmluZycpXHJcbiAgICBvbkxpc3RlbigpIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNhblJlbmRlck1pY3JvcGhvbmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNhblJlbmRlckxpc3RlbmluZ1RleHQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMub3JpZ2luYWxUZXh0QXJlYUVsZW1lbnRUZXh0ID0gdGhpcy50ZXh0QXJlYUVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgdGhpcy50ZXh0QXJlYUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICB0aGlzLmlzTGlzdGVuaW5nVXNlclZvaWNlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNwZWVjaFJlY29nbml0aW9uU2VydmljZVxyXG4gICAgICAgICAgICAubGlzdGVuKClcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoeyB0ZXh0LCBpc0ZpbmFsIH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZWNvZ25pemVkVGV4dCA9IHRleHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRUZXh0QXJlYVZhbHVlKHRleHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVGV4dEFyZWFCb3R0b20oKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNGaW5hbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhblJlbmRlckFwcm92ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuUmVuZGVyRGlzY2FyZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuUmVuZGVyTGlzdGVuaW5nVGV4dCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTGlzdGVuaW5nVXNlclZvaWNlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTGlzdGVuaW5nVXNlclZvaWNlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYW5SZW5kZXJNaWNyb3Bob25lID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRGlzYWJsZWRNaWNyb3Bob25lID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYW5SZW5kZXJMaXN0ZW5pbmdUZXh0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNjcm9sbFRleHRBcmVhQm90dG9tKCkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRleHRBcmVhRWxlbWVudC5zY3JvbGxUb3AgPSB0aGlzLnRleHRBcmVhRWxlbWVudC5zY3JvbGxIZWlnaHQ7XHJcbiAgICAgICAgfSwgMTIwKTtcclxuICAgIH1cclxuXHJcbiAgQFNraXBJZignZGlzYWJsZWRTcGVlY2hSZWNvZ25pdGlvbicpXHJcbiAgICBvbk9wZW5Ub29sYmFyKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWRUZXh0VG9TcGVlY2gpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaFRvb2xiYXIgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2FuUmVuZGVyVGV4dFRvU3BlZWNoID0gZmFsc2U7XHJcbiAgICAgICAgU3BlZWNoUmVjb2duaXRpb25Db21wb25lbnQuVE9PTEJBUl9BQ1RJVkUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc3BlYWsoKTtcclxuICAgIH1cclxuXHJcbiAgQFNraXBJZignZGlzYWJsZWRTcGVlY2hSZWNvZ25pdGlvbicpXHJcbiAgICBvbkNsb3NlVG9vbGJhcigpIHtcclxuICAgICAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaFRvb2xiYXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNhblJlbmRlclRleHRUb1NwZWVjaCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zdG9wVGV4dFRvU3BlZWNoKCk7XHJcbiAgICAgICAgdGhpcy52b2ljZVNwZWVkID0gMTtcclxuICAgICAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbXBvbmVudC5UT09MQkFSX0FDVElWRSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICBAU2tpcElmKCdkaXNhYmxlZFNwZWVjaFJlY29nbml0aW9uJylcclxuICAgIG9uRGlzY2FyZCgpIHtcclxuICAgICAgICB0aGlzLmNhblJlbmRlckFwcm92ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2FuUmVuZGVyRGlzY2FyZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2FuUmVuZGVyTWljcm9waG9uZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2hUb29sYmFyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2ggPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX3JlY29nbml6ZWRUZXh0ID0gJyc7XHJcbiAgICAgICAgdGhpcy5zZXRUZXh0QXJlYVZhbHVlKHRoaXMub3JpZ2luYWxUZXh0QXJlYUVsZW1lbnRUZXh0KTtcclxuICAgICAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdG9wVGV4dFRvU3BlZWNoKCk7XHJcbiAgICAgICAgU3BlZWNoUmVjb2duaXRpb25Db21wb25lbnQuVE9PTEJBUl9BQ1RJVkUgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgQFNraXBJZignZGlzYWJsZWRTcGVlY2hSZWNvZ25pdGlvbicpXHJcbiAgICBvbkFwcm92ZSgpIHtcclxuICAgICAgICB0aGlzLmNhblJlbmRlckFwcm92ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2FuUmVuZGVyRGlzY2FyZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2FuUmVuZGVyTWljcm9waG9uZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2hUb29sYmFyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jYW5SZW5kZXJUZXh0VG9TcGVlY2ggPSB0cnVlO1xyXG4gICAgICAgIGlmICh0aGlzLmtlZXBDb250ZXh0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGJyZWFrTGluZSA9IHRoaXMub3JpZ2luYWxUZXh0QXJlYUVsZW1lbnRUZXh0Lmxlbmd0aCA+IDAgPyAnXFxuJyA6ICcnO1xyXG4gICAgICAgICAgICB0aGlzLm9yaWdpbmFsVGV4dEFyZWFFbGVtZW50VGV4dCArPSBgJHticmVha0xpbmV9JHt0aGlzLl9yZWNvZ25pemVkVGV4dH1gO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMub3JpZ2luYWxUZXh0QXJlYUVsZW1lbnRUZXh0ID0gdGhpcy5fcmVjb2duaXplZFRleHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucmVjb2duaXplZFRleHQuZW1pdCh0aGlzLmtlZXBDb250ZXh0ID8gdGhpcy5vcmlnaW5hbFRleHRBcmVhRWxlbWVudFRleHQgOiB0aGlzLl9yZWNvZ25pemVkVGV4dCk7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxUZXh0QXJlYUJvdHRvbSgpO1xyXG4gICAgICAgIHRoaXMuX3JlY29nbml6ZWRUZXh0ID0gJyc7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5jYW5jZWwoKTtcclxuICAgICAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbXBvbmVudC5UT09MQkFSX0FDVElWRSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25EZXN0cm95JC5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gIEBTa2lwSWYoJ2Rpc2FibGVkU3BlZWNoUmVjb2duaXRpb24nKVxyXG4gICAgdG9nZ2xlVGV4dFRvU3BlZWNoKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmlzUGxheWluZ1RleHRUb1NwZWVjaCkge1xyXG4gICAgICAgICAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UucGF1c2UoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pc0RvbmVUZXh0VG9TcGVlY2gpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3BlYWsoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5yZXN1bWUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlzUGxheWluZ1RleHRUb1NwZWVjaCA9ICF0aGlzLmlzUGxheWluZ1RleHRUb1NwZWVjaDtcclxuICAgIH1cclxuXHJcbiAgQFNraXBJZignZGlzYWJsZWRTcGVlY2hSZWNvZ25pdGlvbicpXHJcbiAgICByZXN0YXJ0VGV4dFRvU3BlZWNoKCkge1xyXG4gICAgICAgIHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5jYW5jZWwoKTtcclxuICAgICAgICB0aGlzLnNwZWFrKCk7XHJcbiAgICB9XHJcblxyXG4gIEBTa2lwSWYoJ2Rpc2FibGVkU3BlZWNoUmVjb2duaXRpb24nKVxyXG4gICAgdXBkYXRlVm9pY2VTcGVlZCgpIHtcclxuICAgICAgICBjb25zdCB2b2ljZVNwZWVkSW5kZXggPSB0aGlzLlZPSUNFX1NQRUVEUy5pbmRleE9mKHRoaXMudm9pY2VTcGVlZCk7XHJcbiAgICAgICAgY29uc3QgbmV4dFZvaWNlU3BlZWRJbmRleCA9IHRoaXMuVk9JQ0VfU1BFRURTW3ZvaWNlU3BlZWRJbmRleCArIDFdID8gdm9pY2VTcGVlZEluZGV4ICsgMSA6IDA7XHJcbiAgICAgICAgdGhpcy52b2ljZVNwZWVkID0gdGhpcy5WT0lDRV9TUEVFRFNbbmV4dFZvaWNlU3BlZWRJbmRleF07XHJcbiAgICAgICAgdGhpcy50ZXh0VG9TcGVlY2hTZXJ2aWNlLmNhbmNlbCgpO1xyXG4gICAgICAgIHRoaXMuc3BlYWsoKTtcclxuICAgIH1cclxuXHJcbiAgICBAU2tpcElmKCdkaXNhYmxlZFNwZWVjaFJlY29nbml0aW9uJylcclxuICAgIHN0b3BMaXN0ZW5pbmcoKSB7XHJcbiAgICAgICAgdGhpcy5zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2Uuc3RvcCgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBnZXQgaXNMaXN0ZW5pbmcoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlLmlzTGlzdGVuaW5nO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBoYXNTcGVlY2hSZWNvZ25pdGlvbkJyb3dzZXJBcGkoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlLmhhc1N1cHBvcnRTcGVlY2hSZWNvZ25pdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNEaXNhYmxlZFRleHRUb1NwZWVjaCgpIHtcclxuICAgICAgICBjb25zdCBoYXNUZXh0VG9TcGVlY2hWb2ljZSA9IHRoaXMudGV4dFRvU3BlZWNoU2VydmljZS5oYXNWb2ljZTtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAhdGhpcy50ZXh0VG9TcGVlY2ggfHwgIWhhc1RleHRUb1NwZWVjaFZvaWNlIHx8IHRoaXMuaXNMaXN0ZW5pbmcgfHwgU3BlZWNoUmVjb2duaXRpb25Db21wb25lbnQuVE9PTEJBUl9BQ1RJVkVcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0VGV4dEFyZWFWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy50ZXh0QXJlYUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0b3BUZXh0VG9TcGVlY2goKSB7XHJcbiAgICAgICAgdGhpcy5pc1BsYXlpbmdUZXh0VG9TcGVlY2ggPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2UuY2FuY2VsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzcGVhaygpIHtcclxuICAgICAgICB0aGlzLmlzRG9uZVRleHRUb1NwZWVjaCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNQbGF5aW5nVGV4dFRvU3BlZWNoID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnRleHRUb1NwZWVjaFNlcnZpY2Uuc3BlYWsodGhpcy50ZXh0VG9TcGVlY2gsIHRoaXMudm9pY2VTcGVlZCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNQbGF5aW5nVGV4dFRvU3BlZWNoID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuaXNEb25lVGV4dFRvU3BlZWNoID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldCB0ZXh0VG9TcGVlY2goKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dEFyZWFFbGVtZW50LnZhbHVlO1xyXG4gICAgfVxyXG59XHJcbiIsIkBpZihoYXNTcGVlY2hSZWNvZ25pdGlvbkJyb3dzZXJBcGkpIHtcbiAgICA8c2VjdGlvbiBjbGFzcz1cInNwZWVjaC1yZWNvZ25pdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3BlZWNoLXJlY29nbml0aW9uLXRleHRcIj5cbiAgICAgICAgICAgIEBpZihjYW5SZW5kZXJNaWNyb3Bob25lKSB7XG4gICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy50ZXh0X2FyZWFfYmVmb3JlX3NwZWVjaCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmKGlzTGlzdGVuaW5nVXNlclZvaWNlKSB7XG4gICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy50ZXh0X2FyZWFfd2hpbGVfc3BlZWNoJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYoY2FuUmVuZGVyQXByb3ZlICYmIGNhblJlbmRlckRpc2NhcmQpIHtcbiAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnRleHRfYXJlYV9lbmRfc3BlZWNoJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNwZWVjaC1yZWNvZ25pdGlvbi1idXR0b25zXCI+XG4gICAgICAgICAgICBAaWYoY2FuUmVuZGVyTGlzdGVuaW5nVGV4dCkge1xuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzdG9wTGlzdGVuaW5nKClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNwZWVjaC1yZWNvZ25pdGlvbi1pdGVtIHNwZWVjaC1yZWNvZ25pdGlvbi1pdGVtLXJlZ3VsYXJcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc3BlZWNoLXJlY29nbml0aW9uLWl0ZW0tZGlzYWJsZWRdPVwiZGlzYWJsZWRTcGVlY2hSZWNvZ25pdGlvbigpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWVsbGlwc2lzLWhcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYoY2FuUmVuZGVyTWljcm9waG9uZSkge1xuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkxpc3RlbigpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzcGVlY2gtcmVjb2duaXRpb24taXRlbSBzcGVlY2gtcmVjb2duaXRpb24taXRlbS1taWNyb3Bob25lXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnNwZWVjaC1yZWNvZ25pdGlvbi1pdGVtLWRpc2FibGVkXT1cImlzRGlzYWJsZWRNaWNyb3Bob25lIHx8IGlzTGlzdGVuaW5nIHx8IGRpc2FibGVkIHx8IGRpc2FibGVkU3BlZWNoUmVjb2duaXRpb24oKVwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1taWNyb3Bob25lXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICBAaWYoY2FuUmVuZGVyQXByb3ZlKSB7XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQXByb3ZlKClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNwZWVjaC1yZWNvZ25pdGlvbi1pdGVtIHNwZWVjaC1yZWNvZ25pdGlvbi1pdGVtLWFwcm92ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGVja1wiPjwvaT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZihjYW5SZW5kZXJEaXNjYXJkKSB7XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGlzY2FyZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzcGVlY2gtcmVjb2duaXRpb24taXRlbSBzcGVlY2gtcmVjb2duaXRpb24taXRlbS1kaXNjYXJkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmKGNhblJlbmRlclRleHRUb1NwZWVjaCkge1xuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk9wZW5Ub29sYmFyKClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNwZWVjaC1yZWNvZ25pdGlvbi1pdGVtIHNwZWVjaC1yZWNvZ25pdGlvbi1pdGVtLXJlZ3VsYXJcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc3BlZWNoLXJlY29nbml0aW9uLWl0ZW0tZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFRleHRUb1NwZWVjaFwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS12b2x1bWUtZG93blwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZihjYW5SZW5kZXJUZXh0VG9TcGVlY2hUb29sYmFyKSB7XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzcGVlY2gtcmVjb2duaXRpb24taXRlbS10b29sYmFyXCI+XG4gICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhc1wiIFtjbGFzcy5mYS1wYXVzZV09XCJpc1BsYXlpbmdUZXh0VG9TcGVlY2hcIiBbY2xhc3MuZmEtcGxheV09XCIhaXNQbGF5aW5nVGV4dFRvU3BlZWNoXCJcbiAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVUZXh0VG9TcGVlY2goKVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWJhY2t3YXJkXCIgKGNsaWNrKT1cInJlc3RhcnRUZXh0VG9TcGVlY2goKVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJ1cGRhdGVWb2ljZVNwZWVkKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2b2ljZVNwZWVkIH19eFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIiAoY2xpY2spPVwib25DbG9zZVRvb2xiYXIoKVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvc2VjdGlvbj5cbn1cbiJdfQ==
|
|
@@ -64,7 +64,7 @@ export class StarRatingComponent {
|
|
|
64
64
|
useExisting: StarRatingComponent,
|
|
65
65
|
multi: true,
|
|
66
66
|
},
|
|
67
|
-
], ngImport: i0, template: "@let justifyContentClassName = 'justify-' + justifyContent();\n<section [class]=\"justifyContentClassName\" class=\"flex gap-2\" [class.opacity-50]=\"disabled()\">\n @for(item of elementsRender(); track item) {\n @let isActivated = selectedStar() <= item;\n <i\n [class.fas]=\"!isActivated\"\n [class.far]=\"isActivated\"\n [class.cursor-pointer]=\"!disabled()\"\n class=\"fa-star text-buttercup-500 cursor-pointer\"\n (sInteractiveContent)=\"onSelectStar(item + 1)\">\n </i>\n }\n</section>\n", dependencies: [{ kind: "directive", type: InteractiveContentDirective, selector: "[sInteractiveContent]", inputs: ["focusable", "disabled", "stopPropagation"], outputs: ["sInteractiveContent"] }] });
|
|
67
|
+
], ngImport: i0, template: "@let justifyContentClassName = 'justify-' + justifyContent();\n<section [class]=\"justifyContentClassName\" class=\"flex gap-2\" [class.opacity-50]=\"disabled()\">\n @for(item of elementsRender(); track item) {\n @let isActivated = selectedStar() <= item;\n <i\n [class.fas]=\"!isActivated\"\n [class.far]=\"isActivated\"\n [class.cursor-pointer]=\"!disabled()\"\n class=\"fa-star text-buttercup-500 cursor-pointer\"\n [disabled]=\"disabled()\"\n (sInteractiveContent)=\"onSelectStar(item + 1)\">\n </i>\n }\n</section>\n", dependencies: [{ kind: "directive", type: InteractiveContentDirective, selector: "[sInteractiveContent]", inputs: ["focusable", "disabled", "stopPropagation"], outputs: ["sInteractiveContent"] }] });
|
|
68
68
|
}
|
|
69
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StarRatingComponent, decorators: [{
|
|
70
70
|
type: Component,
|
|
@@ -74,6 +74,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
74
74
|
useExisting: StarRatingComponent,
|
|
75
75
|
multi: true,
|
|
76
76
|
},
|
|
77
|
-
], template: "@let justifyContentClassName = 'justify-' + justifyContent();\n<section [class]=\"justifyContentClassName\" class=\"flex gap-2\" [class.opacity-50]=\"disabled()\">\n @for(item of elementsRender(); track item) {\n @let isActivated = selectedStar() <= item;\n <i\n [class.fas]=\"!isActivated\"\n [class.far]=\"isActivated\"\n [class.cursor-pointer]=\"!disabled()\"\n class=\"fa-star text-buttercup-500 cursor-pointer\"\n (sInteractiveContent)=\"onSelectStar(item + 1)\">\n </i>\n }\n</section>\n" }]
|
|
77
|
+
], template: "@let justifyContentClassName = 'justify-' + justifyContent();\n<section [class]=\"justifyContentClassName\" class=\"flex gap-2\" [class.opacity-50]=\"disabled()\">\n @for(item of elementsRender(); track item) {\n @let isActivated = selectedStar() <= item;\n <i\n [class.fas]=\"!isActivated\"\n [class.far]=\"isActivated\"\n [class.cursor-pointer]=\"!disabled()\"\n class=\"fa-star text-buttercup-500 cursor-pointer\"\n [disabled]=\"disabled()\"\n (sInteractiveContent)=\"onSelectStar(item + 1)\">\n </i>\n }\n</section>\n" }]
|
|
78
78
|
}] });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rhci1yYXRpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3N0YXItcmF0aW5nL3NyYy9zdGFyLXJhdGluZy9zdGFyLXJhdGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3Rhci1yYXRpbmcvc3JjL3N0YXItcmF0aW5nL3N0YXItcmF0aW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDOztBQUdyRzs7Ozs7Ozs7Ozs7R0FXRztBQWNILE1BQU0sT0FBTyxtQkFBbUI7SUFDNUIsUUFBUSxHQUE0QixHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDN0MsU0FBUyxHQUE0QixHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFFOUMsa0ZBQWtGO0lBQ2xGLFlBQVksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsaUVBQWlFO0lBQ2pFLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIsMEVBQTBFO0lBQzFFLGNBQWMsR0FBRyxLQUFLLENBQWUsUUFBUSxDQUFDLENBQUM7SUFDL0Msb0VBQW9FO0lBQ3BFLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFTCxjQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUM5QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEUsQ0FBQyxDQUFDLENBQUM7SUFFSCxVQUFVLENBQUMsR0FBVztRQUNsQixJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBMkI7UUFDeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQWM7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxZQUFZLENBQUMsYUFBcUI7UUFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU8sVUFBVSxDQUFDLGFBQXFCO1FBQ3BDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDbEIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLGFBQWEsS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztZQUN4QyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNsQyxDQUFDO3dHQWxEUSxtQkFBbUI7NEZBQW5CLG1CQUFtQiw2ckJBUmpCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLG1CQUFtQjtnQkFDaEMsS0FBSyxFQUFFLElBQUk7YUFDZDtTQUNKLDBCQzVCTCx3bUJBY0EsNENETWMsMkJBQTJCOzs0RkFVNUIsbUJBQW1CO2tCQWIvQixTQUFTOytCQUNJLGVBQWUsY0FDYixJQUFJLFdBQ1AsQ0FBQywyQkFBMkIsQ0FBQyxhQUUzQjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLHFCQUFxQjs0QkFDaEMsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgbW9kZWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEludGVyYWN0aXZlQ29udGVudERpcmVjdGl2ZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvaW50ZXJhY3RpdmUtY29udGVudCc7XG5pbXBvcnQgeyBKdXN0aWZ5VHlwZXMgfSBmcm9tICcuL3N0YXItcmF0aW5nLW1vZGVscyc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudGUgZGUgYXZhbGlhw6fDo28gcG9yIGVzdHJlbGFzIGNvbSBzdXBvcnRlIGEgYENvbnRyb2xWYWx1ZUFjY2Vzc29yYFxuICogcGFyYSBpbnRlZ3Jhw6fDo28gY29tIGZvcm11bMOhcmlvcyBBbmd1bGFyLiBQZXJtaXRlIGNvbmZpZ3VyYXIgbyBuw7ptZXJvIGRlIGVzdHJlbGFzLFxuICogYWxpbmhhbWVudG8gZSBlc3RhZG8gZGVzYWJpbGl0YWRvLiBDbGljYXIgbmEgZXN0cmVsYSBqw6Egc2VsZWNpb25hZGEgYSBkZXNlbGVjaW9uYS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHMtc3Rhci1yYXRpbmcgW3N0YXJzUmFuZ2VdPVwiNVwiIGZvcm1Db250cm9sTmFtZT1cImF2YWxpYWNhb1wiIC8+XG4gKiBgYGBcbiAqXG4gKiBAY2F0ZWdvcnkgSW5wdXRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncy1zdGFyLXJhdGluZycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbSW50ZXJhY3RpdmVDb250ZW50RGlyZWN0aXZlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3Rhci1yYXRpbmcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBTdGFyUmF0aW5nQ29tcG9uZW50LFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU3RhclJhdGluZ0NvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICBvbkNoYW5nZTogKHZhbHVlOiBudW1iZXIpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgICBvblRvdWNoZWQ6ICh2YWx1ZTogbnVtYmVyKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIMONbmRpY2UgZGEgZXN0cmVsYSBhdHVhbG1lbnRlIHNlbGVjaW9uYWRhICgxLWJhc2VkKS4gQGRlZmF1bHQgMCAqL1xuICAgIHNlbGVjdGVkU3RhciA9IG1vZGVsKDApO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gTsO6bWVybyB0b3RhbCBkZSBlc3RyZWxhcyBleGliaWRhcy4gQGRlZmF1bHQgNSAqL1xuICAgIHN0YXJzUmFuZ2UgPSBpbnB1dCg1KTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEFsaW5oYW1lbnRvIGhvcml6b250YWwgZGFzIGVzdHJlbGFzLiBAZGVmYXVsdCAnY2VudGVyJyAqL1xuICAgIGp1c3RpZnlDb250ZW50ID0gaW5wdXQ8SnVzdGlmeVR5cGVzPignY2VudGVyJyk7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBEZXNhYmlsaXRhIGEgc2VsZcOnw6NvIGRlIGVzdHJlbGFzLiBAZGVmYXVsdCBmYWxzZSAqL1xuICAgIGRpc2FibGVkID0gbW9kZWwoZmFsc2UpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVsZW1lbnRzUmVuZGVyID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuc3RhcnNSYW5nZSgpO1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogZWxlbWVudHMgfSkubWFwKChfeCwgJGluZGV4KSA9PiAkaW5kZXgpO1xuICAgIH0pO1xuXG4gICAgd3JpdGVWYWx1ZShvYmo6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAob2JqICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkU3Rhci5zZXQob2JqKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogbnVtYmVyKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkLnNldChpc0Rpc2FibGVkKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdFN0YXIoc2VsZWN0ZWRJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc3RvcmVWYWx1ZShzZWxlY3RlZEluZGV4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0b3JlVmFsdWUoc2VsZWN0ZWRJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA9PT0gdGhpcy5zZWxlY3RlZFN0YXIoKSkge1xuICAgICAgICAgICAgc2VsZWN0ZWRJbmRleCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKHNlbGVjdGVkSW5kZXgpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHNlbGVjdGVkSW5kZXgpO1xuICAgICAgICB0aGlzLm9uVG91Y2hlZChzZWxlY3RlZEluZGV4KTtcbiAgICB9XG59XG5cbiIsIkBsZXQganVzdGlmeUNvbnRlbnRDbGFzc05hbWUgPSAnanVzdGlmeS0nICsganVzdGlmeUNvbnRlbnQoKTtcbjxzZWN0aW9uIFtjbGFzc109XCJqdXN0aWZ5Q29udGVudENsYXNzTmFtZVwiIGNsYXNzPVwiZmxleCBnYXAtMlwiIFtjbGFzcy5vcGFjaXR5LTUwXT1cImRpc2FibGVkKClcIj5cbiAgICBAZm9yKGl0ZW0gb2YgZWxlbWVudHNSZW5kZXIoKTsgdHJhY2sgaXRlbSkge1xuICAgICAgICBAbGV0IGlzQWN0aXZhdGVkID0gc2VsZWN0ZWRTdGFyKCkgPD0gaXRlbTtcbiAgICAgICAgPGlcbiAgICAgICAgICAgIFtjbGFzcy5mYXNdPVwiIWlzQWN0aXZhdGVkXCJcbiAgICAgICAgICAgIFtjbGFzcy5mYXJdPVwiaXNBY3RpdmF0ZWRcIlxuICAgICAgICAgICAgW2NsYXNzLmN1cnNvci1wb2ludGVyXT1cIiFkaXNhYmxlZCgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmEtc3RhciB0ZXh0LWJ1dHRlcmN1cC01MDAgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICAgICAgKHNJbnRlcmFjdGl2ZUNvbnRlbnQpPVwib25TZWxlY3RTdGFyKGl0ZW0gKyAxKVwiPlxuICAgICAgICA8L2k+XG4gICAgfVxuPC9zZWN0aW9uPlxuIl19
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { Component, Input, inject } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { CheckboxComponent } from '@seniorsistemas/angular-components/checkbox';
|
|
3
3
|
import { Table, TableService } from 'primeng/table';
|
|
4
4
|
import { Subject } from 'rxjs';
|
|
5
5
|
import { takeUntil } from 'rxjs/operators';
|
|
6
|
-
import { FormsModule } from '@angular/forms';
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/forms";
|
|
9
7
|
/**
|
|
10
8
|
* @description Componente de checkbox de cabeçalho para tabelas PrimeNG.
|
|
11
9
|
* Integra-se automaticamente ao `TableService` para sincronizar o estado
|
|
@@ -32,12 +30,8 @@ export class TableHeaderCheckboxComponent {
|
|
|
32
30
|
rowProps;
|
|
33
31
|
/** @description Quando `true`, usa o objeto completo da linha em vez de propriedades específicas. */
|
|
34
32
|
useAllObject;
|
|
35
|
-
checkboxItems = {
|
|
36
|
-
label: '',
|
|
37
|
-
};
|
|
38
33
|
checked = false;
|
|
39
34
|
hasFocus = false;
|
|
40
|
-
checkboxState = { checked: false };
|
|
41
35
|
_ngUnsubscribe = new Subject();
|
|
42
36
|
constructor() {
|
|
43
37
|
this.table.tableService.valueSource$.pipe(takeUntil(this._ngUnsubscribe)).subscribe(() => {
|
|
@@ -62,10 +56,11 @@ export class TableHeaderCheckboxComponent {
|
|
|
62
56
|
isDisabled() {
|
|
63
57
|
return this.disabled || !this.table.value || !this.table.value.length;
|
|
64
58
|
}
|
|
65
|
-
onClick() {
|
|
59
|
+
onClick(checked) {
|
|
66
60
|
if (!this.disabled) {
|
|
67
|
-
if (this.table.value && this.table.value.length > 0)
|
|
68
|
-
this.onToggleCheckbox(
|
|
61
|
+
if (this.table.value && this.table.value.length > 0) {
|
|
62
|
+
this.onToggleCheckbox(checked);
|
|
63
|
+
}
|
|
69
64
|
}
|
|
70
65
|
}
|
|
71
66
|
updateCheckedState() {
|
|
@@ -145,26 +140,24 @@ export class TableHeaderCheckboxComponent {
|
|
|
145
140
|
}
|
|
146
141
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableHeaderCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
147
142
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TableHeaderCheckboxComponent, isStandalone: true, selector: "s-table-header-checkbox", inputs: { id: "id", disabled: "disabled", rowProps: "rowProps", useAllObject: "useAllObject" }, ngImport: i0, template: `
|
|
148
|
-
<s-checkbox
|
|
149
|
-
[
|
|
150
|
-
(
|
|
151
|
-
[data]="checkboxItems"
|
|
143
|
+
<s-checkbox
|
|
144
|
+
[checked]="checked"
|
|
145
|
+
(checkedChange)="onClick($event)"
|
|
152
146
|
/>
|
|
153
|
-
`, isInline: true, dependencies: [{ kind: "component", type:
|
|
147
|
+
`, isInline: true, dependencies: [{ kind: "component", type: CheckboxComponent, selector: "s-checkbox", inputs: ["disabled", "checked", "indeterminate", "label", "ariaLabel", "ariaLabelledBy"], outputs: ["disabledChange", "checkedChange"] }] });
|
|
154
148
|
}
|
|
155
149
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TableHeaderCheckboxComponent, decorators: [{
|
|
156
150
|
type: Component,
|
|
157
151
|
args: [{
|
|
158
152
|
selector: 's-table-header-checkbox',
|
|
159
153
|
template: `
|
|
160
|
-
<s-checkbox
|
|
161
|
-
[
|
|
162
|
-
(
|
|
163
|
-
[data]="checkboxItems"
|
|
154
|
+
<s-checkbox
|
|
155
|
+
[checked]="checked"
|
|
156
|
+
(checkedChange)="onClick($event)"
|
|
164
157
|
/>
|
|
165
158
|
`,
|
|
166
159
|
standalone: true,
|
|
167
|
-
imports: [
|
|
160
|
+
imports: [CheckboxComponent],
|
|
168
161
|
}]
|
|
169
162
|
}], ctorParameters: () => [], propDecorators: { id: [{
|
|
170
163
|
type: Input
|
|
@@ -175,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
175
168
|
}], useAllObject: [{
|
|
176
169
|
type: Input
|
|
177
170
|
}] } });
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZGVyLWNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy90YWJsZS1oZWFkZXIvc3JjL2xpYi90YWJsZS1oZWFkZXIvdGFibGUtaGVhZGVyLWNoZWNrYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVFLE9BQU8sRUFHSCxxQkFBcUIsR0FDeEIsTUFBTSxrREFBa0QsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUU3Qzs7Ozs7Ozs7Ozs7OztHQWFHO0FBYUgsTUFBTSxPQUFPLDRCQUE0QjtJQUM1QixLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFdEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFFekIsc0dBQXNHO0lBRS9GLEVBQUUsR0FBRywyQkFBMkIsNEJBQTRCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUUvRSxzRUFBc0U7SUFFL0QsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUV4Qix1RkFBdUY7SUFFaEYsUUFBUSxDQUFZO0lBRTNCLHFHQUFxRztJQUU5RixZQUFZLENBQVc7SUFFdkIsYUFBYSxHQUFxQjtRQUNyQyxLQUFLLEVBQUUsRUFBRTtLQUNaLENBQUM7SUFFSyxPQUFPLEdBQUcs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LEVBQUUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0JBQ2xDLE9BQU8sS0FBSyxDQUFDO2dCQUNqQixDQUFDO1lBQ0wsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7SUFDTCxDQUFDO3dHQXJKUSw0QkFBNEI7NEZBQTVCLDRCQUE0QixtTEFWM0I7Ozs7OztLQU1ULDREQUVTLHFCQUFxQiw2RUFBRSxXQUFXOzs0RkFFbkMsNEJBQTRCO2tCQVp4QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRTs7Ozs7O0tBTVQ7b0JBQ0QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixFQUFFLFdBQVcsQ0FBQztpQkFDaEQ7d0RBU1UsRUFBRTtzQkFEUixLQUFLO2dCQUtDLFFBQVE7c0JBRGQsS0FBSztnQkFLQyxRQUFRO3NCQURkLEtBQUs7Z0JBS0MsWUFBWTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBDaGVja2JveExpc3REYXRhLFxyXG4gICAgQ2hlY2tib3hMaXN0U3RhdGUsXHJcbiAgICBDaGVja2JveExpc3RDb21wb25lbnQsXHJcbn0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9jaGVja2JveC1saXN0JztcclxuaW1wb3J0IHsgVGFibGUsIFRhYmxlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudGUgZGUgY2hlY2tib3ggZGUgY2FiZcOnYWxobyBwYXJhIHRhYmVsYXMgUHJpbWVORy5cclxuICogSW50ZWdyYS1zZSBhdXRvbWF0aWNhbWVudGUgYW8gYFRhYmxlU2VydmljZWAgcGFyYSBzaW5jcm9uaXphciBvIGVzdGFkb1xyXG4gKiBkZSBzZWxlw6fDo28gdG90YWwvcGFyY2lhbCBjb20gYXMgbGluaGFzIGRhIHRhYmVsYS5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgaHRtbFxyXG4gKiA8dGg+XHJcbiAqICAgPHMtdGFibGUtaGVhZGVyLWNoZWNrYm94IFtyb3dQcm9wc109XCJbJ2lkJywgJ25hbWUnXVwiIC8+XHJcbiAqIDwvdGg+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAY2F0ZWdvcnkgRGF0YVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3MtdGFibGUtaGVhZGVyLWNoZWNrYm94JyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPHMtY2hlY2tib3gtbGlzdFxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNoZWNrYm94U3RhdGVcIlxyXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkNsaWNrKClcIlxyXG4gICAgICAgICAgICBbZGF0YV09XCJjaGVja2JveEl0ZW1zXCJcclxuICAgICAgICAvPlxyXG4gICAgYCxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbQ2hlY2tib3hMaXN0Q29tcG9uZW50LCBGb3Jtc01vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUhlYWRlckNoZWNrYm94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgcmVhZG9ubHkgdGFibGUgPSBpbmplY3QoVGFibGUpO1xyXG4gICAgcmVhZG9ubHkgdGFibGVTZXJ2aWNlID0gaW5qZWN0KFRhYmxlU2VydmljZSk7XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gSWRlbnRpZmljYWRvciDDum5pY28gZG8gY29tcG9uZW50ZSBubyBET00uIEdlcmFkbyBhdXRvbWF0aWNhbWVudGUgc2UgbsOjbyBpbmZvcm1hZG8uICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGlkID0gYHMtdGFibGUtaGVhZGVyLWNoZWNrYm94LSR7VGFibGVIZWFkZXJDaGVja2JveENvbXBvbmVudC5uZXh0SWQrK31gO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRGVzYWJpbGl0YSBvIGNoZWNrYm94IGRlIGNhYmXDp2FsaG8uIEBkZWZhdWx0IGZhbHNlICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBMaXN0YSBkZSBwcm9wcmllZGFkZXMgZG9zIGl0ZW5zIGRhIGxpbmhhIHVzYWRhcyBwYXJhIGlkZW50aWZpY2HDp8Ojby4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcm93UHJvcHM/OiBzdHJpbmdbXTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFF1YW5kbyBgdHJ1ZWAsIHVzYSBvIG9iamV0byBjb21wbGV0byBkYSBsaW5oYSBlbSB2ZXogZGUgcHJvcHJpZWRhZGVzIGVzcGVjw61maWNhcy4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdXNlQWxsT2JqZWN0PzogYm9vbGVhbjtcclxuXHJcbiAgICBwdWJsaWMgY2hlY2tib3hJdGVtczogQ2hlY2tib3hMaXN0RGF0YSA9IHtcclxuICAgICAgICBsYWJlbDogJycsXHJcbiAgICB9O1xyXG5cclxuICAgIHB1YmxpYyBjaGVja2VkID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaGFzRm9jdXMgPSBmYWxzZTtcclxuICAgIHB1YmxpYyBjaGVja2JveFN0YXRlOiBDaGVja2JveExpc3RTdGF0ZSA9IHsgY2hlY2tlZDogZmFsc2UgfTtcclxuXHJcbiAgICBwcml2YXRlIF9uZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLnRhYmxlLnRhYmxlU2VydmljZS52YWx1ZVNvdXJjZSQucGlwZSh0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZCA9IHRoaXMudXBkYXRlQ2hlY2tlZFN0YXRlKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMudGFibGUudGFibGVTZXJ2aWNlLnNlbGVjdGlvblNvdXJjZSQucGlwZSh0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZCA9IHRoaXMudXBkYXRlQ2hlY2tlZFN0YXRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2hlY2tlZCA9IHRoaXMudXBkYXRlQ2hlY2tlZFN0YXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX25nVW5zdWJzY3JpYmUubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkZvY3VzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkJsdXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5oYXNGb2N1cyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkIHx8ICF0aGlzLnRhYmxlLnZhbHVlIHx8ICF0aGlzLnRhYmxlLnZhbHVlLmxlbmd0aDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25DbGljaygpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGFibGUudmFsdWUgJiYgdGhpcy50YWJsZS52YWx1ZS5sZW5ndGggPiAwKSB0aGlzLm9uVG9nZ2xlQ2hlY2tib3goIXRoaXMuY2hlY2tlZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB1cGRhdGVDaGVja2VkU3RhdGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudGFibGUuZmlsdGVyZWRWYWx1ZSkge1xyXG4gICAgICAgICAgICBjb25zdCB2YWwgPSB0aGlzLnRhYmxlLmZpbHRlcmVkVmFsdWU7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICB2YWwgJiZcclxuICAgICAgICAgICAgICAgIHZhbC5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLnNlbGVjdGlvbiAmJlxyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5zZWxlY3Rpb24ubGVuZ3RoID4gMCAmJlxyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0FsbEZpbHRlcmVkVmFsdWVzQ2hlY2tlZCgpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsID0gdGhpcy50YWJsZS52YWx1ZTtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIHZhbCAmJlxyXG4gICAgICAgICAgICAgICAgdmFsLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgICAgIHRoaXMudGFibGUuc2VsZWN0aW9uICYmXHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLnNlbGVjdGlvbi5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzQWxsVmFsdWVzQ2hlY2tlZCgpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvblRvZ2dsZUNoZWNrYm94KGNoZWNrZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB7IGZpbHRlcmVkVmFsdWUsIHZhbHVlLCBkYXRhS2V5IH0gPSB0aGlzLnRhYmxlO1xyXG4gICAgICAgIGNvbnN0IGdyaWREYXRhID0gY2hlY2tlZCA/IChmaWx0ZXJlZFZhbHVlID8gZmlsdGVyZWRWYWx1ZS5zbGljZSgpIDogdmFsdWUuc2xpY2UoKSkgOiBbXTtcclxuXHJcbiAgICAgICAgaWYgKCFkYXRhS2V5KSByZXR1cm47XHJcblxyXG4gICAgICAgIGlmIChjaGVja2VkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHVuc2VsZWN0ZWRzID0gZ3JpZERhdGFcclxuICAgICAgICAgICAgICAgIC5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlY29yZCkgPT4gIXRoaXMudGFibGUuX3NlbGVjdGlvbi5maW5kKChzZWxlY3RlZDogYW55KSA9PiByZWNvcmRbZGF0YUtleV0gPT09IHNlbGVjdGVkW2RhdGFLZXldKSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIC5tYXAoKHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudXNlQWxsT2JqZWN0KSByZXR1cm4gcmVjb3JkO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdSZWNvcmQ6IGFueSA9IHt9O1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJvd1Byb3BzKSB0aGlzLnJvd1Byb3BzLmZvckVhY2goKHByb3A6IHN0cmluZykgPT4gKG5ld1JlY29yZFtwcm9wXSA9IHJlY29yZFtwcm9wXSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgbmV3UmVjb3JkW2RhdGFLZXldID0gcmVjb3JkW2RhdGFLZXldO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdSZWNvcmQ7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy50YWJsZS5fc2VsZWN0aW9uID0gWy4uLnRoaXMudGFibGUuX3NlbGVjdGlvbiwgLi4udW5zZWxlY3RlZHNdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhbHVlLmZvckVhY2goKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5fc2VsZWN0aW9uID0gdGhpcy50YWJsZS5fc2VsZWN0aW9uLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgICAocmVjb3JkOiBhbnkpID0+IHJlY29yZFtkYXRhS2V5XSAhPT0gZGF0YVtkYXRhS2V5XSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy50YWJsZS51cGRhdGVTZWxlY3Rpb25LZXlzKCk7XHJcbiAgICAgICAgdGhpcy50YWJsZS5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLnRhYmxlLl9zZWxlY3Rpb24pO1xyXG4gICAgICAgIHRoaXMudGFibGVTZXJ2aWNlLm9uU2VsZWN0aW9uQ2hhbmdlKCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnRhYmxlLmlzU3RhdGVmdWwoKSkgdGhpcy50YWJsZS5zYXZlU3RhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNBbGxGaWx0ZXJlZFZhbHVlc0NoZWNrZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnRhYmxlLmZpbHRlcmVkVmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3Qgcm93RGF0YSBvZiB0aGlzLnRhYmxlLmZpbHRlcmVkVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy50YWJsZS5pc1NlbGVjdGVkKHJvd0RhdGEpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNBbGxWYWx1ZXNDaGVja2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghdGhpcy50YWJsZS52YWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCByb3dEYXRhIG9mIHRoaXMudGFibGUudmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy50YWJsZS5pc1NlbGVjdGVkKHJvd0RhdGEpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZGVyLWNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy90YWJsZS1oZWFkZXIvc3JjL2xpYi90YWJsZS1oZWFkZXIvdGFibGUtaGVhZGVyLWNoZWNrYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUUzQzs7Ozs7Ozs7Ozs7OztHQWFHO0FBWUgsTUFBTSxPQUFPLDRCQUE0QjtJQUM1QixLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFdEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFFekIsc0dBQXNHO0lBRS9GLEVBQUUsR0FBRywyQkFBMkIsNEJBQTRCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUUvRSxzRUFBc0U7SUFFL0QsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUV4Qix1RkFBdUY7SUFFaEYsUUFBUSxDQUFZO0lBRTNCLHFHQUFxRztJQUU5RixZQUFZLENBQVc7SUFFdkIsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBRWhCLGNBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRTdDO1FBQ0ksSUFBSSxDQUFD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O1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNMLENBQUM7d0dBbEpRLDRCQUE0Qjs0RkFBNUIsNEJBQTRCLG1MQVQzQjs7Ozs7S0FLVCw0REFFUyxpQkFBaUI7OzRGQUVsQiw0QkFBNEI7a0JBWHhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFOzs7OztLQUtUO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztpQkFDL0I7d0RBU1UsRUFBRTtzQkFEUixLQUFLO2dCQUtDLFFBQVE7c0JBRGQsS0FBSztnQkFLQyxRQUFRO3NCQURkLEtBQUs7Z0JBS0MsWUFBWTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9jaGVja2JveCc7XHJcbmltcG9ydCB7IFRhYmxlLCBUYWJsZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudGUgZGUgY2hlY2tib3ggZGUgY2FiZcOnYWxobyBwYXJhIHRhYmVsYXMgUHJpbWVORy5cclxuICogSW50ZWdyYS1zZSBhdXRvbWF0aWNhbWVudGUgYW8gYFRhYmxlU2VydmljZWAgcGFyYSBzaW5jcm9uaXphciBvIGVzdGFkb1xyXG4gKiBkZSBzZWxlw6fDo28gdG90YWwvcGFyY2lhbCBjb20gYXMgbGluaGFzIGRhIHRhYmVsYS5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgaHRtbFxyXG4gKiA8dGg+XHJcbiAqICAgPHMtdGFibGUtaGVhZGVyLWNoZWNrYm94IFtyb3dQcm9wc109XCJbJ2lkJywgJ25hbWUnXVwiIC8+XHJcbiAqIDwvdGg+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAY2F0ZWdvcnkgRGF0YVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3MtdGFibGUtaGVhZGVyLWNoZWNrYm94JyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPHMtY2hlY2tib3hcclxuICAgICAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXHJcbiAgICAgICAgICAgIChjaGVja2VkQ2hhbmdlKT1cIm9uQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgLz5cclxuICAgIGAsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW0NoZWNrYm94Q29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlSGVhZGVyQ2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICByZWFkb25seSB0YWJsZSA9IGluamVjdChUYWJsZSk7XHJcbiAgICByZWFkb25seSB0YWJsZVNlcnZpY2UgPSBpbmplY3QoVGFibGVTZXJ2aWNlKTtcclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIG5leHRJZCA9IDA7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBJZGVudGlmaWNhZG9yIMO6bmljbyBkbyBjb21wb25lbnRlIG5vIERPTS4gR2VyYWRvIGF1dG9tYXRpY2FtZW50ZSBzZSBuw6NvIGluZm9ybWFkby4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaWQgPSBgcy10YWJsZS1oZWFkZXItY2hlY2tib3gtJHtUYWJsZUhlYWRlckNoZWNrYm94Q29tcG9uZW50Lm5leHRJZCsrfWA7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBEZXNhYmlsaXRhIG8gY2hlY2tib3ggZGUgY2FiZcOnYWxoby4gQGRlZmF1bHQgZmFsc2UgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIExpc3RhIGRlIHByb3ByaWVkYWRlcyBkb3MgaXRlbnMgZGEgbGluaGEgdXNhZGFzIHBhcmEgaWRlbnRpZmljYcOnw6NvLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyByb3dQcm9wcz86IHN0cmluZ1tdO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gUXVhbmRvIGB0cnVlYCwgdXNhIG8gb2JqZXRvIGNvbXBsZXRvIGRhIGxpbmhhIGVtIHZleiBkZSBwcm9wcmllZGFkZXMgZXNwZWPDrWZpY2FzLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB1c2VBbGxPYmplY3Q/OiBib29sZWFuO1xyXG5cclxuICAgIHB1YmxpYyBjaGVja2VkID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaGFzRm9jdXMgPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIF9uZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLnRhYmxlLnRhYmxlU2VydmljZS52YWx1ZVNvdXJjZSQucGlwZSh0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZCA9IHRoaXMudXBkYXRlQ2hlY2tlZFN0YXRlKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMudGFibGUudGFibGVTZXJ2aWNlLnNlbGVjdGlvblNvdXJjZSQucGlwZSh0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZCA9IHRoaXMudXBkYXRlQ2hlY2tlZFN0YXRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2hlY2tlZCA9IHRoaXMudXBkYXRlQ2hlY2tlZFN0YXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX25nVW5zdWJzY3JpYmUubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkZvY3VzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkJsdXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5oYXNGb2N1cyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkIHx8ICF0aGlzLnRhYmxlLnZhbHVlIHx8ICF0aGlzLnRhYmxlLnZhbHVlLmxlbmd0aDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25DbGljayhjaGVja2VkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRhYmxlLnZhbHVlICYmIHRoaXMudGFibGUudmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vblRvZ2dsZUNoZWNrYm94KGNoZWNrZWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB1cGRhdGVDaGVja2VkU3RhdGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudGFibGUuZmlsdGVyZWRWYWx1ZSkge1xyXG4gICAgICAgICAgICBjb25zdCB2YWwgPSB0aGlzLnRhYmxlLmZpbHRlcmVkVmFsdWU7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICB2YWwgJiZcclxuICAgICAgICAgICAgICAgIHZhbC5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLnNlbGVjdGlvbiAmJlxyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5zZWxlY3Rpb24ubGVuZ3RoID4gMCAmJlxyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0FsbEZpbHRlcmVkVmFsdWVzQ2hlY2tlZCgpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsID0gdGhpcy50YWJsZS52YWx1ZTtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIHZhbCAmJlxyXG4gICAgICAgICAgICAgICAgdmFsLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgICAgIHRoaXMudGFibGUuc2VsZWN0aW9uICYmXHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLnNlbGVjdGlvbi5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzQWxsVmFsdWVzQ2hlY2tlZCgpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvblRvZ2dsZUNoZWNrYm94KGNoZWNrZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB7IGZpbHRlcmVkVmFsdWUsIHZhbHVlLCBkYXRhS2V5IH0gPSB0aGlzLnRhYmxlO1xyXG4gICAgICAgIGNvbnN0IGdyaWREYXRhID0gY2hlY2tlZCA/IChmaWx0ZXJlZFZhbHVlID8gZmlsdGVyZWRWYWx1ZS5zbGljZSgpIDogdmFsdWUuc2xpY2UoKSkgOiBbXTtcclxuXHJcbiAgICAgICAgaWYgKCFkYXRhS2V5KSByZXR1cm47XHJcblxyXG4gICAgICAgIGlmIChjaGVja2VkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHVuc2VsZWN0ZWRzID0gZ3JpZERhdGFcclxuICAgICAgICAgICAgICAgIC5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlY29yZCkgPT4gIXRoaXMudGFibGUuX3NlbGVjdGlvbi5maW5kKChzZWxlY3RlZDogYW55KSA9PiByZWNvcmRbZGF0YUtleV0gPT09IHNlbGVjdGVkW2RhdGFLZXldKSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIC5tYXAoKHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudXNlQWxsT2JqZWN0KSByZXR1cm4gcmVjb3JkO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdSZWNvcmQ6IGFueSA9IHt9O1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJvd1Byb3BzKSB0aGlzLnJvd1Byb3BzLmZvckVhY2goKHByb3A6IHN0cmluZykgPT4gKG5ld1JlY29yZFtwcm9wXSA9IHJlY29yZFtwcm9wXSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgbmV3UmVjb3JkW2RhdGFLZXldID0gcmVjb3JkW2RhdGFLZXldO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdSZWNvcmQ7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy50YWJsZS5fc2VsZWN0aW9uID0gWy4uLnRoaXMudGFibGUuX3NlbGVjdGlvbiwgLi4udW5zZWxlY3RlZHNdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhbHVlLmZvckVhY2goKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5fc2VsZWN0aW9uID0gdGhpcy50YWJsZS5fc2VsZWN0aW9uLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgICAocmVjb3JkOiBhbnkpID0+IHJlY29yZFtkYXRhS2V5XSAhPT0gZGF0YVtkYXRhS2V5XSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy50YWJsZS51cGRhdGVTZWxlY3Rpb25LZXlzKCk7XHJcbiAgICAgICAgdGhpcy50YWJsZS5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLnRhYmxlLl9zZWxlY3Rpb24pO1xyXG4gICAgICAgIHRoaXMudGFibGVTZXJ2aWNlLm9uU2VsZWN0aW9uQ2hhbmdlKCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnRhYmxlLmlzU3RhdGVmdWwoKSkgdGhpcy50YWJsZS5zYXZlU3RhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNBbGxGaWx0ZXJlZFZhbHVlc0NoZWNrZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnRhYmxlLmZpbHRlcmVkVmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3Qgcm93RGF0YSBvZiB0aGlzLnRhYmxlLmZpbHRlcmVkVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy50YWJsZS5pc1NlbGVjdGVkKHJvd0RhdGEpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNBbGxWYWx1ZXNDaGVja2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghdGhpcy50YWJsZS52YWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCByb3dEYXRhIG9mIHRoaXMudGFibGUudmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy50YWJsZS5pc1NlbGVjdGVkKHJvd0RhdGEpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -102,7 +102,7 @@ export class TextAreaComponent {
|
|
|
102
102
|
useExisting: forwardRef(() => TextAreaComponent),
|
|
103
103
|
multi: true,
|
|
104
104
|
},
|
|
105
|
-
], viewQueries: [{ propertyName: "textAreaElement", first: true, predicate: ["textArea"], descendants: true, read: ElementRef }], ngImport: i0, template: "@if (keyFilter) {\r\n <textarea\r\n #textArea\r\n class=\"textarea\"\r\n [pKeyFilter]=\"keyFilter\"\r\n [id]=\"inputId\"\r\n [rows]=\"rows\"\r\n [ngModel]=\"value\"\r\n (ngModelChange)=\"setValue($event)\"\r\n [disabled]=\"disabled\"\r\n [ngStyle]=\"inputStyle\"\r\n [readOnly]=\"readOnly\"\r\n [maxlength]=\"maxLength\"\r\n [placeholder]=\"placeholder ? placeholder : ''\"\r\n ></textarea>\r\n}\r\n\r\n@if (!keyFilter) {\r\n <textarea\r\n #textArea\r\n class=\"textarea\"\r\n [id]=\"inputId\"\r\n [rows]=\"rows\"\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n [ngStyle]=\"inputStyle\"\r\n [readOnly]=\"readOnly\"\r\n [maxlength]=\"maxLength\"\r\n [placeholder]=\"placeholder ? placeholder : ''\"\r\n (ngModelChange)=\"setValue($event)\"\r\n ></textarea>\r\n}\r\n\r\n@if (speechRecognition && renderTextArea) {\r\n <s-speech-recognition\r\n [textAreaElement]=\"textAreaElement.nativeElement\"\r\n [keepContext]=\"keepContext\"\r\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\r\n (recognizedText)=\"handleRecognizedText($event)\"\r\n
|
|
105
|
+
], viewQueries: [{ propertyName: "textAreaElement", first: true, predicate: ["textArea"], descendants: true, read: ElementRef }], ngImport: i0, template: "@if (keyFilter) {\r\n <textarea\r\n #textArea\r\n class=\"textarea\"\r\n [pKeyFilter]=\"keyFilter\"\r\n [id]=\"inputId\"\r\n [rows]=\"rows\"\r\n [ngModel]=\"value\"\r\n (ngModelChange)=\"setValue($event)\"\r\n [disabled]=\"disabled\"\r\n [ngStyle]=\"inputStyle\"\r\n [readOnly]=\"readOnly\"\r\n [maxlength]=\"maxLength\"\r\n [placeholder]=\"placeholder ? placeholder : ''\"\r\n ></textarea>\r\n}\r\n\r\n@if (!keyFilter) {\r\n <textarea\r\n #textArea\r\n class=\"textarea\"\r\n [id]=\"inputId\"\r\n [rows]=\"rows\"\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n [ngStyle]=\"inputStyle\"\r\n [readOnly]=\"readOnly\"\r\n [maxlength]=\"maxLength\"\r\n [placeholder]=\"placeholder ? placeholder : ''\"\r\n (ngModelChange)=\"setValue($event)\"\r\n ></textarea>\r\n}\r\n\r\n@if (speechRecognition && renderTextArea) {\r\n <s-speech-recognition\r\n [textAreaElement]=\"textAreaElement.nativeElement\"\r\n [keepContext]=\"keepContext\"\r\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\r\n [disabledSpeechRecognition]=\"disabled\"\r\n (recognizedText)=\"handleRecognizedText($event)\"\r\n />\r\n\r\n}\r\n", styles: [".textarea{border-radius:3px;border:1px solid #c1c1cc;background:#fff;width:100%;max-width:100%;min-height:4em;min-width:10em;outline:none;padding:8px;display:block}.textarea:disabled{opacity:.5}.textarea:focus{transition:border-color .2s ease-out;border:1px solid #428bca}:host.ng-invalid.ng-dirty .textarea{border-color:#c13018}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: KeyFilter, selector: "[pKeyFilter]", inputs: ["pValidateOnly", "pKeyFilter"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SpeechRecognitionComponent, selector: "s-speech-recognition", inputs: ["textAreaElement", "keepContext", "speechRecognitionPlaceholder", "disabledSpeechRecognition"], outputs: ["recognizedText"] }] });
|
|
106
106
|
}
|
|
107
107
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextAreaComponent, decorators: [{
|
|
108
108
|
type: Component,
|
|
@@ -112,7 +112,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
112
112
|
useExisting: forwardRef(() => TextAreaComponent),
|
|
113
113
|
multi: true,
|
|
114
114
|
},
|
|
115
|
-
], standalone: true, imports: [FormsModule, KeyFilter, NgStyle, SpeechRecognitionComponent], template: "@if (keyFilter) {\r\n <textarea\r\n #textArea\r\n class=\"textarea\"\r\n [pKeyFilter]=\"keyFilter\"\r\n [id]=\"inputId\"\r\n [rows]=\"rows\"\r\n [ngModel]=\"value\"\r\n (ngModelChange)=\"setValue($event)\"\r\n [disabled]=\"disabled\"\r\n [ngStyle]=\"inputStyle\"\r\n [readOnly]=\"readOnly\"\r\n [maxlength]=\"maxLength\"\r\n [placeholder]=\"placeholder ? placeholder : ''\"\r\n ></textarea>\r\n}\r\n\r\n@if (!keyFilter) {\r\n <textarea\r\n #textArea\r\n class=\"textarea\"\r\n [id]=\"inputId\"\r\n [rows]=\"rows\"\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n [ngStyle]=\"inputStyle\"\r\n [readOnly]=\"readOnly\"\r\n [maxlength]=\"maxLength\"\r\n [placeholder]=\"placeholder ? placeholder : ''\"\r\n (ngModelChange)=\"setValue($event)\"\r\n ></textarea>\r\n}\r\n\r\n@if (speechRecognition && renderTextArea) {\r\n <s-speech-recognition\r\n [textAreaElement]=\"textAreaElement.nativeElement\"\r\n [keepContext]=\"keepContext\"\r\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\r\n (recognizedText)=\"handleRecognizedText($event)\"\r\n
|
|
115
|
+
], standalone: true, imports: [FormsModule, KeyFilter, NgStyle, SpeechRecognitionComponent], template: "@if (keyFilter) {\r\n <textarea\r\n #textArea\r\n class=\"textarea\"\r\n [pKeyFilter]=\"keyFilter\"\r\n [id]=\"inputId\"\r\n [rows]=\"rows\"\r\n [ngModel]=\"value\"\r\n (ngModelChange)=\"setValue($event)\"\r\n [disabled]=\"disabled\"\r\n [ngStyle]=\"inputStyle\"\r\n [readOnly]=\"readOnly\"\r\n [maxlength]=\"maxLength\"\r\n [placeholder]=\"placeholder ? placeholder : ''\"\r\n ></textarea>\r\n}\r\n\r\n@if (!keyFilter) {\r\n <textarea\r\n #textArea\r\n class=\"textarea\"\r\n [id]=\"inputId\"\r\n [rows]=\"rows\"\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n [ngStyle]=\"inputStyle\"\r\n [readOnly]=\"readOnly\"\r\n [maxlength]=\"maxLength\"\r\n [placeholder]=\"placeholder ? placeholder : ''\"\r\n (ngModelChange)=\"setValue($event)\"\r\n ></textarea>\r\n}\r\n\r\n@if (speechRecognition && renderTextArea) {\r\n <s-speech-recognition\r\n [textAreaElement]=\"textAreaElement.nativeElement\"\r\n [keepContext]=\"keepContext\"\r\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\r\n [disabledSpeechRecognition]=\"disabled\"\r\n (recognizedText)=\"handleRecognizedText($event)\"\r\n />\r\n\r\n}\r\n", styles: [".textarea{border-radius:3px;border:1px solid #c1c1cc;background:#fff;width:100%;max-width:100%;min-height:4em;min-width:10em;outline:none;padding:8px;display:block}.textarea:disabled{opacity:.5}.textarea:focus{transition:border-color .2s ease-out;border:1px solid #428bca}:host.ng-invalid.ng-dirty .textarea{border-color:#c13018}\n"] }]
|
|
116
116
|
}], propDecorators: { textAreaElement: [{
|
|
117
117
|
type: ViewChild,
|
|
118
118
|
args: ['textArea', { read: ElementRef }]
|
|
@@ -137,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
137
137
|
}], readOnly: [{
|
|
138
138
|
type: Input
|
|
139
139
|
}] } });
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy90ZXh0LWFyZWEvc3JjL2xpYi90ZXh0LWFyZWEvdGV4dC1hcmVhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy90ZXh0LWFyZWEvc3JjL2xpYi90ZXh0LWFyZWEvdGV4dC1hcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBb0IsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOzs7QUFFbkc7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFlSCxNQUFNLE9BQU8saUJBQWlCO0lBQ1QsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRWpELFFBQVEsR0FBNEIsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQzdDLFNBQVMsR0FBNEIsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQzlDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNILGdCQUFnQixDQUE4QztJQUV0RSxJQUNXLGVBQWU7UUFDdEIsT0FBTyxJQUFJLENBQUMsZ0JBQW1ELENBQUM7SUFDcEUsQ0FBQztJQUVELElBQVcsZUFB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QUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKLGNBQ1csSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsMEJBQTBCLENBQUM7OEJBWTNELGVBQWU7c0JBRHpCLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFjbEMsT0FBTztzQkFBZixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLDRCQUE0QjtzQkFBcEMsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBTU8sVUFBVTtzQkFBdEIsS0FBSztnQkFVRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSW5wdXQsIFZpZXdDaGlsZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEtleUZpbHRlclBhdHRlcm4sIEtleUZpbHRlciB9IGZyb20gJ3ByaW1lbmcva2V5ZmlsdGVyJztcclxuaW1wb3J0IHsgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNwZWVjaFJlY29nbml0aW9uQ29tcG9uZW50IH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9zcGVlY2gtcmVjb2duaXRpb24nO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvbiBDb21wb25lbnRlIGRlIMOhcmVhIGRlIHRleHRvIGNvbSBzdXBvcnRlIGEgcmVjb25oZWNpbWVudG8gZGUgdm96LFxyXG4gKiBmaWx0cm8gZGUgdGVjbGFzLCBjb21wcmltZW50byBtw6F4aW1vIGUgaW50ZWdyYcOnw6NvIGNvbSBgQ29udHJvbFZhbHVlQWNjZXNzb3JgLlxyXG4gKiBSZW5kZXJpemEgY29uZGljaW9uYWxtZW50ZSBvIGNvbXBvbmVudGUgYFNwZWVjaFJlY29nbml0aW9uQ29tcG9uZW50YCBxdWFuZG9cclxuICogYSBmbGFnIGBzcGVlY2hSZWNvZ25pdGlvbmAgZXN0w6EgYXRpdmEuXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYGh0bWxcclxuICogPHMtdGV4dGFyZWFcclxuICogICBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmljYW9cIlxyXG4gKiAgIFtyb3dzXT1cIjZcIlxyXG4gKiAgIFttYXhMZW5ndGhdPVwiNTAwXCJcclxuICogICBwbGFjZWhvbGRlcj1cIkRpZ2l0ZSBhcXVpLi4uXCIgLz5cclxuICogYGBgXHJcbiAqXHJcbiAqIEBjYXRlZ29yeSBJbnB1dHNcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzLXRleHRhcmVhJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi90ZXh0LWFyZWEuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdGV4dC1hcmVhLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZXh0QXJlYUNvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgS2V5RmlsdGVyLCBOZ1N0eWxlLCBTcGVlY2hSZWNvZ25pdGlvbkNvbXBvbmVudF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXh0QXJlYUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuXHJcbiAgICBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuICAgIG9uVG91Y2hlZDogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuICAgIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgICB2YWx1ZSA9ICcnO1xyXG4gICAgcHJpdmF0ZSBfdGV4dEFyZWFFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+IHwgdW5kZWZpbmVkO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ3RleHRBcmVhJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXHJcbiAgICBwdWJsaWMgZ2V0IHRleHRBcmVhRWxlbWVudCgpOiBFbGVtZW50UmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdGV4dEFyZWFFbGVtZW50IGFzIEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD47XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCB0ZXh0QXJlYUVsZW1lbnQodmFsdWU6IEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4pIHtcclxuICAgICAgICB0aGlzLl90ZXh0QXJlYUVsZW1lbnQgPSB2YWx1ZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJUZXh0QXJlYSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIElkZW50aWZpY2Fkb3IgZG8gZWxlbWVudG8gYDx0ZXh0YXJlYT5gIG5vIERPTS4gQGRlZmF1bHQgJ3RleHRhcmVhLXtyYW5kb219JyAqL1xyXG4gICAgQElucHV0KCkgaW5wdXRJZCA9IGB0ZXh0YXJlYS0ke01hdGgucmFuZG9tKCl9YDtcclxuICAgIC8qKiBAZGVzY3JpcHRpb24gTsO6bWVybyBkZSBsaW5oYXMgdmlzw612ZWlzIG5vIHRleHRhcmVhLiBAZGVmYXVsdCA1ICovXHJcbiAgICBASW5wdXQoKSByb3dzID0gNTtcclxuICAgIC8qKiBAZGVzY3JpcHRpb24gSGFiaWxpdGEgbyBib3TDo28gZGUgcmVjb25oZWNpbWVudG8gZGUgdm96LiBAZGVmYXVsdCBmYWxzZSAqL1xyXG4gICAgQElucHV0KCkgc3BlZWNoUmVjb2duaXRpb24gPSBmYWxzZTtcclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRmlsdHJvIGRlIHRlY2xhcyBhY2VpdGFzLCB1c2FuZG8gcGFkcsOjbyBvdSBleHByZXNzw6NvIHJlZ3VsYXIuICovXHJcbiAgICBASW5wdXQoKSBrZXlGaWx0ZXI6IFJlZ0V4cCB8IEtleUZpbHRlclBhdHRlcm4gfCBudWxsIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBRdWFuZG8gYHRydWVgLCBtYW50w6ltIG8gY29udGV4dG8gYW8gcmVpbmljaWFyIG8gcmVjb25oZWNpbWVudG8gZGUgdm96LiBAZGVmYXVsdCBmYWxzZSAqL1xyXG4gICAgQElucHV0KCkga2VlcENvbnRleHQgPSBmYWxzZTtcclxuICAgIC8qKiBAZGVzY3JpcHRpb24gUGxhY2Vob2xkZXIgZXhpYmlkbyBkdXJhbnRlIG8gcmVjb25oZWNpbWVudG8gZGUgdm96LiBAZGVmYXVsdCAnJyAqL1xyXG4gICAgQElucHV0KCkgc3BlZWNoUmVjb2duaXRpb25QbGFjZWhvbGRlciA9ICcnO1xyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBOw7ptZXJvIG3DoXhpbW8gZGUgY2FyYWN0ZXJlcyBhY2VpdG9zLiBAZGVmYXVsdCBudWxsIChpbGltaXRhZG8pICovXHJcbiAgICBASW5wdXQoKSBtYXhMZW5ndGg6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUZXh0byBleGliaWRvIHF1YW5kbyBvIGNhbXBvIGVzdMOhIHZhemlvLiAqL1xyXG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgICBwcml2YXRlIF9pbnB1dFN0eWxlOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+ID0ge1xyXG4gICAgICAgIHJlc2l6ZTogJ3ZlcnRpY2FsJyxcclxuICAgIH07XHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEVzdGlsb3MgaW5saW5lIGFwbGljYWRvcyBhbyBlbGVtZW50byBgPHRleHRhcmVhPmAgaW50ZXJuby4gQGRlZmF1bHQgYHsgcmVzaXplOiAndmVydGljYWwnIH1gICovXHJcbiAgICBASW5wdXQoKSBnZXQgaW5wdXRTdHlsZSgpOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXRTdHlsZTtcclxuICAgIH1cclxuICAgIHNldCBpbnB1dFN0eWxlKHZhbHVlOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+KSB7XHJcbiAgICAgICAgdGhpcy5faW5wdXRTdHlsZSA9IHtcclxuICAgICAgICAgICAgLi4udmFsdWUsXHJcbiAgICAgICAgICAgIC4uLnRoaXMuX2lucHV0U3R5bGUsXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gQ29sb2NhIG8gdGV4dGFyZWEgZW0gbW9kbyBzb21lbnRlIGxlaXR1cmEuIEBkZWZhdWx0IGZhbHNlICovXHJcbiAgICBASW5wdXQoKSByZWFkT25seSA9IGZhbHNlO1xyXG5cclxuICAgIHJlbmRlclRleHRBcmVhID0gZmFsc2U7XHJcblxyXG4gICAgd3JpdGVWYWx1ZShvYmo6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBvYmo7XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcclxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLnZhbHVlKTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkKHRoaXMudmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVJlY29nbml6ZWRUZXh0KHJlY29nbml6ZWRUZXh0OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnNldFZhbHVlKHJlY29nbml6ZWRUZXh0KTtcclxuICAgIH1cclxufVxyXG4iLCJAaWYgKGtleUZpbHRlcikge1xyXG4gICAgPHRleHRhcmVhXHJcbiAgICAgICAgI3RleHRBcmVhXHJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0YXJlYVwiXHJcbiAgICAgICAgW3BLZXlGaWx0ZXJdPVwia2V5RmlsdGVyXCJcclxuICAgICAgICBbaWRdPVwiaW5wdXRJZFwiXHJcbiAgICAgICAgW3Jvd3NdPVwicm93c1wiXHJcbiAgICAgICAgW25nTW9kZWxdPVwidmFsdWVcIlxyXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldFZhbHVlKCRldmVudClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgW25nU3R5bGVdPVwiaW5wdXRTdHlsZVwiXHJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcclxuICAgICAgICBbbWF4bGVuZ3RoXT1cIm1heExlbmd0aFwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyID8gcGxhY2Vob2xkZXIgOiAnJ1wiXHJcbiAgICA+PC90ZXh0YXJlYT5cclxufVxyXG5cclxuQGlmICgha2V5RmlsdGVyKSB7XHJcbiAgICA8dGV4dGFyZWFcclxuICAgICAgICAjdGV4dEFyZWFcclxuICAgICAgICBjbGFzcz1cInRleHRhcmVhXCJcclxuICAgICAgICBbaWRdPVwiaW5wdXRJZFwiXHJcbiAgICAgICAgW3Jvd3NdPVwicm93c1wiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBbbmdTdHlsZV09XCJpbnB1dFN0eWxlXCJcclxuICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxyXG4gICAgICAgIFttYXhsZW5ndGhdPVwibWF4TGVuZ3RoXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgPyBwbGFjZWhvbGRlciA6ICcnXCJcclxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZXRWYWx1ZSgkZXZlbnQpXCJcclxuICAgID48L3RleHRhcmVhPlxyXG59XHJcblxyXG5AaWYgKHNwZWVjaFJlY29nbml0aW9uICYmIHJlbmRlclRleHRBcmVhKSB7XHJcbiAgICA8cy1zcGVlY2gtcmVjb2duaXRpb25cclxuICAgICAgICBbdGV4dEFyZWFFbGVtZW50XT1cInRleHRBcmVhRWxlbWVudC5uYXRpdmVFbGVtZW50XCJcclxuICAgICAgICBba2VlcENvbnRleHRdPVwia2VlcENvbnRleHRcIlxyXG4gICAgICAgIFtzcGVlY2hSZWNvZ25pdGlvblBsYWNlaG9sZGVyXT1cInNwZWVjaFJlY29nbml0aW9uUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIChyZWNvZ25pemVkVGV4dCk9XCJoYW5kbGVSZWNvZ25pemVkVGV4dCgkZXZlbnQpXCJcclxuICAgID5cclxuICAgIDwvcy1zcGVlY2gtcmVjb2duaXRpb24+XHJcbn1cclxuIl19
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy90ZXh0LWFyZWEvc3JjL2xpYi90ZXh0LWFyZWEvdGV4dC1hcmVhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy90ZXh0LWFyZWEvc3JjL2xpYi90ZXh0LWFyZWEvdGV4dC1hcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBb0IsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOzs7QUFFbkc7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFlSCxNQUFNLE9BQU8saUJBQWlCO0lBQ1QsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRWpELFFBQVEsR0FBNEIsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQzdDLFNBQVMsR0FBNEIsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQzlDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNILGdCQUFnQixDQUE4QztJQUV0RSxJQUNXLGVBQWU7UUFDdEIsT0FBTyxJQUFJLENBQUMsZ0JBQW1ELENBQUM7SUFDcEUsQ0FBQztJQUVELElBQVcsZUFB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QUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKLGNBQ1csSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsMEJBQTBCLENBQUM7OEJBWTNELGVBQWU7c0JBRHpCLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFjbEMsT0FBTztzQkFBZixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLDRCQUE0QjtzQkFBcEMsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBTU8sVUFBVTtzQkFBdEIsS0FBSztnQkFVRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSW5wdXQsIFZpZXdDaGlsZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEtleUZpbHRlclBhdHRlcm4sIEtleUZpbHRlciB9IGZyb20gJ3ByaW1lbmcva2V5ZmlsdGVyJztcclxuaW1wb3J0IHsgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNwZWVjaFJlY29nbml0aW9uQ29tcG9uZW50IH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9zcGVlY2gtcmVjb2duaXRpb24nO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvbiBDb21wb25lbnRlIGRlIMOhcmVhIGRlIHRleHRvIGNvbSBzdXBvcnRlIGEgcmVjb25oZWNpbWVudG8gZGUgdm96LFxyXG4gKiBmaWx0cm8gZGUgdGVjbGFzLCBjb21wcmltZW50byBtw6F4aW1vIGUgaW50ZWdyYcOnw6NvIGNvbSBgQ29udHJvbFZhbHVlQWNjZXNzb3JgLlxyXG4gKiBSZW5kZXJpemEgY29uZGljaW9uYWxtZW50ZSBvIGNvbXBvbmVudGUgYFNwZWVjaFJlY29nbml0aW9uQ29tcG9uZW50YCBxdWFuZG9cclxuICogYSBmbGFnIGBzcGVlY2hSZWNvZ25pdGlvbmAgZXN0w6EgYXRpdmEuXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYGh0bWxcclxuICogPHMtdGV4dGFyZWFcclxuICogICBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmljYW9cIlxyXG4gKiAgIFtyb3dzXT1cIjZcIlxyXG4gKiAgIFttYXhMZW5ndGhdPVwiNTAwXCJcclxuICogICBwbGFjZWhvbGRlcj1cIkRpZ2l0ZSBhcXVpLi4uXCIgLz5cclxuICogYGBgXHJcbiAqXHJcbiAqIEBjYXRlZ29yeSBJbnB1dHNcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzLXRleHRhcmVhJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi90ZXh0LWFyZWEuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdGV4dC1hcmVhLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZXh0QXJlYUNvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgS2V5RmlsdGVyLCBOZ1N0eWxlLCBTcGVlY2hSZWNvZ25pdGlvbkNvbXBvbmVudF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXh0QXJlYUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuXHJcbiAgICBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuICAgIG9uVG91Y2hlZDogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuICAgIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgICB2YWx1ZSA9ICcnO1xyXG4gICAgcHJpdmF0ZSBfdGV4dEFyZWFFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+IHwgdW5kZWZpbmVkO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ3RleHRBcmVhJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXHJcbiAgICBwdWJsaWMgZ2V0IHRleHRBcmVhRWxlbWVudCgpOiBFbGVtZW50UmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdGV4dEFyZWFFbGVtZW50IGFzIEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD47XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCB0ZXh0QXJlYUVsZW1lbnQodmFsdWU6IEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4pIHtcclxuICAgICAgICB0aGlzLl90ZXh0QXJlYUVsZW1lbnQgPSB2YWx1ZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJUZXh0QXJlYSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIElkZW50aWZpY2Fkb3IgZG8gZWxlbWVudG8gYDx0ZXh0YXJlYT5gIG5vIERPTS4gQGRlZmF1bHQgJ3RleHRhcmVhLXtyYW5kb219JyAqL1xyXG4gICAgQElucHV0KCkgaW5wdXRJZCA9IGB0ZXh0YXJlYS0ke01hdGgucmFuZG9tKCl9YDtcclxuICAgIC8qKiBAZGVzY3JpcHRpb24gTsO6bWVybyBkZSBsaW5oYXMgdmlzw612ZWlzIG5vIHRleHRhcmVhLiBAZGVmYXVsdCA1ICovXHJcbiAgICBASW5wdXQoKSByb3dzID0gNTtcclxuICAgIC8qKiBAZGVzY3JpcHRpb24gSGFiaWxpdGEgbyBib3TDo28gZGUgcmVjb25oZWNpbWVudG8gZGUgdm96LiBAZGVmYXVsdCBmYWxzZSAqL1xyXG4gICAgQElucHV0KCkgc3BlZWNoUmVjb2duaXRpb24gPSBmYWxzZTtcclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRmlsdHJvIGRlIHRlY2xhcyBhY2VpdGFzLCB1c2FuZG8gcGFkcsOjbyBvdSBleHByZXNzw6NvIHJlZ3VsYXIuICovXHJcbiAgICBASW5wdXQoKSBrZXlGaWx0ZXI6IFJlZ0V4cCB8IEtleUZpbHRlclBhdHRlcm4gfCBudWxsIHwgdW5kZWZpbmVkO1xyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBRdWFuZG8gYHRydWVgLCBtYW50w6ltIG8gY29udGV4dG8gYW8gcmVpbmljaWFyIG8gcmVjb25oZWNpbWVudG8gZGUgdm96LiBAZGVmYXVsdCBmYWxzZSAqL1xyXG4gICAgQElucHV0KCkga2VlcENvbnRleHQgPSBmYWxzZTtcclxuICAgIC8qKiBAZGVzY3JpcHRpb24gUGxhY2Vob2xkZXIgZXhpYmlkbyBkdXJhbnRlIG8gcmVjb25oZWNpbWVudG8gZGUgdm96LiBAZGVmYXVsdCAnJyAqL1xyXG4gICAgQElucHV0KCkgc3BlZWNoUmVjb2duaXRpb25QbGFjZWhvbGRlciA9ICcnO1xyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBOw7ptZXJvIG3DoXhpbW8gZGUgY2FyYWN0ZXJlcyBhY2VpdG9zLiBAZGVmYXVsdCBudWxsIChpbGltaXRhZG8pICovXHJcbiAgICBASW5wdXQoKSBtYXhMZW5ndGg6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUZXh0byBleGliaWRvIHF1YW5kbyBvIGNhbXBvIGVzdMOhIHZhemlvLiAqL1xyXG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgICBwcml2YXRlIF9pbnB1dFN0eWxlOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+ID0ge1xyXG4gICAgICAgIHJlc2l6ZTogJ3ZlcnRpY2FsJyxcclxuICAgIH07XHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEVzdGlsb3MgaW5saW5lIGFwbGljYWRvcyBhbyBlbGVtZW50byBgPHRleHRhcmVhPmAgaW50ZXJuby4gQGRlZmF1bHQgYHsgcmVzaXplOiAndmVydGljYWwnIH1gICovXHJcbiAgICBASW5wdXQoKSBnZXQgaW5wdXRTdHlsZSgpOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXRTdHlsZTtcclxuICAgIH1cclxuICAgIHNldCBpbnB1dFN0eWxlKHZhbHVlOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+KSB7XHJcbiAgICAgICAgdGhpcy5faW5wdXRTdHlsZSA9IHtcclxuICAgICAgICAgICAgLi4udmFsdWUsXHJcbiAgICAgICAgICAgIC4uLnRoaXMuX2lucHV0U3R5bGUsXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gQ29sb2NhIG8gdGV4dGFyZWEgZW0gbW9kbyBzb21lbnRlIGxlaXR1cmEuIEBkZWZhdWx0IGZhbHNlICovXHJcbiAgICBASW5wdXQoKSByZWFkT25seSA9IGZhbHNlO1xyXG5cclxuICAgIHJlbmRlclRleHRBcmVhID0gZmFsc2U7XHJcblxyXG4gICAgd3JpdGVWYWx1ZShvYmo6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBvYmo7XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcclxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLnZhbHVlKTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkKHRoaXMudmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVJlY29nbml6ZWRUZXh0KHJlY29nbml6ZWRUZXh0OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnNldFZhbHVlKHJlY29nbml6ZWRUZXh0KTtcclxuICAgIH1cclxufVxyXG4iLCJAaWYgKGtleUZpbHRlcikge1xyXG4gICAgPHRleHRhcmVhXHJcbiAgICAgICAgI3RleHRBcmVhXHJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0YXJlYVwiXHJcbiAgICAgICAgW3BLZXlGaWx0ZXJdPVwia2V5RmlsdGVyXCJcclxuICAgICAgICBbaWRdPVwiaW5wdXRJZFwiXHJcbiAgICAgICAgW3Jvd3NdPVwicm93c1wiXHJcbiAgICAgICAgW25nTW9kZWxdPVwidmFsdWVcIlxyXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldFZhbHVlKCRldmVudClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgW25nU3R5bGVdPVwiaW5wdXRTdHlsZVwiXHJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcclxuICAgICAgICBbbWF4bGVuZ3RoXT1cIm1heExlbmd0aFwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyID8gcGxhY2Vob2xkZXIgOiAnJ1wiXHJcbiAgICA+PC90ZXh0YXJlYT5cclxufVxyXG5cclxuQGlmICgha2V5RmlsdGVyKSB7XHJcbiAgICA8dGV4dGFyZWFcclxuICAgICAgICAjdGV4dEFyZWFcclxuICAgICAgICBjbGFzcz1cInRleHRhcmVhXCJcclxuICAgICAgICBbaWRdPVwiaW5wdXRJZFwiXHJcbiAgICAgICAgW3Jvd3NdPVwicm93c1wiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBbbmdTdHlsZV09XCJpbnB1dFN0eWxlXCJcclxuICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxyXG4gICAgICAgIFttYXhsZW5ndGhdPVwibWF4TGVuZ3RoXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgPyBwbGFjZWhvbGRlciA6ICcnXCJcclxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZXRWYWx1ZSgkZXZlbnQpXCJcclxuICAgID48L3RleHRhcmVhPlxyXG59XHJcblxyXG5AaWYgKHNwZWVjaFJlY29nbml0aW9uICYmIHJlbmRlclRleHRBcmVhKSB7XHJcbiAgICA8cy1zcGVlY2gtcmVjb2duaXRpb25cclxuICAgICAgICBbdGV4dEFyZWFFbGVtZW50XT1cInRleHRBcmVhRWxlbWVudC5uYXRpdmVFbGVtZW50XCJcclxuICAgICAgICBba2VlcENvbnRleHRdPVwia2VlcENvbnRleHRcIlxyXG4gICAgICAgIFtzcGVlY2hSZWNvZ25pdGlvblBsYWNlaG9sZGVyXT1cInNwZWVjaFJlY29nbml0aW9uUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIFtkaXNhYmxlZFNwZWVjaFJlY29nbml0aW9uXT1cImRpc2FibGVkXCJcclxuICAgICAgICAocmVjb2duaXplZFRleHQpPVwiaGFuZGxlUmVjb2duaXplZFRleHQoJGV2ZW50KVwiXHJcbiAgICAvPlxyXG5cclxufVxyXG4iXX0=
|