@tilde-nlp/ngx-common 5.0.2 → 5.0.3

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.
Files changed (111) hide show
  1. package/esm2022/lib/close-button/close-button.component.mjs +37 -18
  2. package/esm2022/lib/close-button/close-button.module.mjs +25 -24
  3. package/esm2022/lib/company-product/company-product.component.mjs +25 -11
  4. package/esm2022/lib/company-product/company-product.module.mjs +17 -16
  5. package/esm2022/lib/confirmation-modal/confirmation-modal.component.mjs +63 -10
  6. package/esm2022/lib/confirmation-modal/confirmation-modal.module.mjs +13 -12
  7. package/esm2022/lib/confirmation-modal/services/confirmation.service.mjs +9 -9
  8. package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +17 -15
  9. package/esm2022/lib/directives/click-outside/click-outside.module.mjs +19 -18
  10. package/esm2022/lib/directives/drag-and-drop/drag-and-drop.directive.mjs +28 -24
  11. package/esm2022/lib/directives/drag-and-drop/drag-and-drop.module.mjs +19 -18
  12. package/esm2022/lib/directives/mat-button-loading/mat-button-loading.directive.mjs +12 -12
  13. package/esm2022/lib/directives/mat-button-loading/mat-button-loading.module.mjs +15 -14
  14. package/esm2022/lib/extension-dialog/components/open-extension-dialog/open-extension-dialog.component.mjs +19 -9
  15. package/esm2022/lib/extension-dialog/extension-dialog.component.mjs +99 -10
  16. package/esm2022/lib/extension-dialog/extension-dialog.module.mjs +33 -32
  17. package/esm2022/lib/extension-dialog/services/extension-dialog.service.mjs +9 -9
  18. package/esm2022/lib/file-upload/file-upload.component.mjs +83 -33
  19. package/esm2022/lib/file-upload/file-upload.module.mjs +27 -26
  20. package/esm2022/lib/filter-bar/filter-bar.component.mjs +187 -20
  21. package/esm2022/lib/filter-bar/filter-bar.module.mjs +43 -42
  22. package/esm2022/lib/filter-bar/models/filter-bar-settings.model.mjs +1 -1
  23. package/esm2022/lib/footer/footer.component.mjs +121 -15
  24. package/esm2022/lib/footer/footer.module.mjs +23 -22
  25. package/esm2022/lib/inline-message/inline-message.component.mjs +59 -11
  26. package/esm2022/lib/inline-message/inline-message.module.mjs +23 -22
  27. package/esm2022/lib/multi-functional-table/models/filter-config.model.mjs +1 -1
  28. package/esm2022/lib/multi-functional-table/multi-functional-table.component.mjs +248 -44
  29. package/esm2022/lib/multi-functional-table/multi-functional-table.module.mjs +43 -42
  30. package/esm2022/lib/notification-message/notification-message.component.mjs +130 -17
  31. package/esm2022/lib/notification-message/notification-message.module.mjs +29 -28
  32. package/esm2022/lib/open-close-button/open-close-button.component.mjs +68 -25
  33. package/esm2022/lib/open-close-button/open-close-button.module.mjs +13 -12
  34. package/esm2022/lib/pipes/date-ago/date-ago.module.mjs +21 -20
  35. package/esm2022/lib/pipes/date-ago/date-ago.pipe.mjs +15 -15
  36. package/esm2022/lib/pipes/filter-with-highlight/filter-with-highlight.module.mjs +19 -18
  37. package/esm2022/lib/pipes/filter-with-highlight/filter-with-highlight.pipe.mjs +9 -9
  38. package/esm2022/lib/pipes/index.mjs +2 -1
  39. package/esm2022/lib/pipes/language-translate/language-translate.module.mjs +13 -12
  40. package/esm2022/lib/pipes/language-translate/language-translate.pipe.mjs +10 -10
  41. package/esm2022/lib/pipes/object-length/index.mjs +3 -0
  42. package/esm2022/lib/pipes/object-length/object-length.module.mjs +19 -0
  43. package/esm2022/lib/pipes/object-length/object-length.pipe.mjs +23 -0
  44. package/esm2022/lib/pipes/sort-translations/sort-translations.module.mjs +17 -16
  45. package/esm2022/lib/pipes/sort-translations/sort-translations.pipe.mjs +9 -9
  46. package/esm2022/lib/pipes/sort-translations-by-property/sort-translations-by-property.module.mjs +13 -12
  47. package/esm2022/lib/pipes/sort-translations-by-property/sort-translations-by-property.pipe.mjs +9 -9
  48. package/esm2022/lib/plausible/plausible-event.directive.mjs +16 -14
  49. package/esm2022/lib/plausible/plausible.module.mjs +19 -18
  50. package/esm2022/lib/services/alert/alert.service.mjs +12 -12
  51. package/esm2022/lib/services/dom/dom.service.mjs +9 -9
  52. package/esm2022/lib/services/icon/icon.service.mjs +9 -9
  53. package/esm2022/lib/services/language-translate/language-translate.service.mjs +9 -9
  54. package/esm2022/lib/services/notification/notification.service.mjs +9 -9
  55. package/esm2022/lib/services/system/system.service.mjs +12 -12
  56. package/esm2022/lib/status-display/status-display.component.mjs +55 -10
  57. package/esm2022/lib/status-display/status-display.module.mjs +13 -12
  58. package/esm2022/lib/terminology/components/terminology-panel/terminology-collection-list/terminology-collection-card/terminology-collection-card.component.mjs +196 -25
  59. package/esm2022/lib/terminology/components/terminology-panel/terminology-collection-list/terminology-collection-list.component.mjs +107 -14
  60. package/esm2022/lib/terminology/components/terminology-panel/terminology-create-collection/terminology-create-collection-dialog/terminology-create-collection-dialog.component.mjs +71 -10
  61. package/esm2022/lib/terminology/components/terminology-panel/terminology-create-collection/terminology-create-collection.component.mjs +29 -13
  62. package/esm2022/lib/terminology/components/terminology-panel/terminology-panel.component.mjs +83 -14
  63. package/esm2022/lib/terminology/config/services/terminology-config/terminology-config.service.mjs +27 -25
  64. package/esm2022/lib/terminology/factories/terminology-api.factory.mjs +4 -4
  65. package/esm2022/lib/terminology/factories/terminology-system.factory.mjs +4 -4
  66. package/esm2022/lib/terminology/models/active-data.model.mjs +1 -1
  67. package/esm2022/lib/terminology/models/system.model.mjs +1 -1
  68. package/esm2022/lib/terminology/services/engine-term-api/engine-term-api.service.mjs +9 -9
  69. package/esm2022/lib/terminology/services/system-api-v1/system-api-v1.service.mjs +9 -9
  70. package/esm2022/lib/terminology/services/system-api-v2/system-api-v2.service.mjs +9 -9
  71. package/esm2022/lib/terminology/services/terminology/terminology.service.mjs +15 -13
  72. package/esm2022/lib/terminology/services/terminology-api-v1/terminology-api-v1.service.mjs +9 -9
  73. package/esm2022/lib/terminology/services/terminology-api-v2/terminology-api-v2.service.mjs +9 -9
  74. package/esm2022/lib/terminology/services/terminology-collection/terminology-collection.service.mjs +9 -9
  75. package/esm2022/lib/terminology/terminology.component.mjs +109 -22
  76. package/esm2022/lib/terminology/terminology.module.mjs +73 -72
  77. package/esm2022/lib/text-to-speech/index.mjs +2 -0
  78. package/esm2022/lib/text-to-speech/services/text-play.service.mjs +22 -0
  79. package/esm2022/lib/text-to-speech/text-to-speech.component.mjs +171 -0
  80. package/esm2022/lib/text-to-speech/translations/tts-i18n.mjs +26 -0
  81. package/esm2022/lib/tld-loader/tld-loader.component.mjs +12 -7
  82. package/esm2022/lib/tld-loader/tld-loader.module.mjs +16 -15
  83. package/esm2022/public-api.mjs +2 -1
  84. package/fesm2022/tilde-nlp-ngx-common.mjs +2828 -1098
  85. package/fesm2022/tilde-nlp-ngx-common.mjs.map +1 -1
  86. package/lib/filter-bar/filter-bar.component.d.ts +1 -0
  87. package/lib/filter-bar/models/filter-bar-settings.model.d.ts +3 -1
  88. package/lib/multi-functional-table/models/filter-config.model.d.ts +1 -0
  89. package/lib/multi-functional-table/multi-functional-table.component.d.ts +4 -1
  90. package/lib/pipes/index.d.ts +1 -0
  91. package/lib/pipes/object-length/index.d.ts +2 -0
  92. package/lib/pipes/object-length/object-length.module.d.ts +8 -0
  93. package/lib/pipes/object-length/object-length.pipe.d.ts +7 -0
  94. package/lib/terminology/config/services/terminology-config/terminology-config.service.d.ts +1 -0
  95. package/lib/terminology/models/active-data.model.d.ts +1 -0
  96. package/lib/terminology/models/system.model.d.ts +1 -0
  97. package/lib/text-to-speech/index.d.ts +1 -0
  98. package/lib/text-to-speech/services/text-play.service.d.ts +8 -0
  99. package/lib/text-to-speech/text-to-speech.component.d.ts +23 -0
  100. package/lib/text-to-speech/translations/tts-i18n.d.ts +1 -0
  101. package/package.json +7 -4
  102. package/public-api.d.ts +1 -0
  103. package/styles/material-overrides.scss +33 -0
  104. package/web-components/3rdpartylicenses.txt +333 -0
  105. package/web-components/index.html +17 -0
  106. package/web-components/main.js +11 -0
  107. package/web-components/media/material-icons-outlined.woff2 +0 -0
  108. package/web-components/media/material-icons.woff2 +0 -0
  109. package/web-components/polyfills.js +3 -0
  110. package/web-components/styles.css +1 -0
  111. package/web-components/web-components.js +1 -0
@@ -0,0 +1,171 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, inject, Input } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { MatButton, MatIconButton } from '@angular/material/button';
5
+ import { MatIcon } from '@angular/material/icon';
6
+ import { TextPlayService } from './services/text-play.service';
7
+ import { finalize } from 'rxjs';
8
+ import { MatProgressSpinner } from '@angular/material/progress-spinner';
9
+ import { TTS_I18N } from './translations/tts-i18n';
10
+ import { MatTooltipModule } from '@angular/material/tooltip';
11
+ import { MatSelectModule } from '@angular/material/select';
12
+ import { MatFormFieldModule } from '@angular/material/form-field';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@angular/common";
15
+ import * as i2 from "@angular/forms";
16
+ import * as i3 from "@angular/material/tooltip";
17
+ import * as i4 from "@angular/material/form-field";
18
+ import * as i5 from "@angular/material/select";
19
+ import * as i6 from "@angular/material/core";
20
+ function TextToSpeechComponent_mat_option_5_Template(rf, ctx) { if (rf & 1) {
21
+ i0.ɵɵelementStart(0, "mat-option", 11);
22
+ i0.ɵɵtext(1);
23
+ i0.ɵɵelementEnd();
24
+ } if (rf & 2) {
25
+ const voice_r1 = ctx.$implicit;
26
+ const ctx_r1 = i0.ɵɵnextContext();
27
+ i0.ɵɵproperty("value", voice_r1);
28
+ i0.ɵɵadvance();
29
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.translations.voiceList[voice_r1], " ");
30
+ } }
31
+ function TextToSpeechComponent_mat_icon_11_Template(rf, ctx) { if (rf & 1) {
32
+ i0.ɵɵelementStart(0, "mat-icon");
33
+ i0.ɵɵtext(1);
34
+ i0.ɵɵelementEnd();
35
+ } if (rf & 2) {
36
+ const ctx_r1 = i0.ɵɵnextContext();
37
+ i0.ɵɵadvance();
38
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.isPlaying ? "stop" : "volume_up", " ");
39
+ } }
40
+ function TextToSpeechComponent_mat_spinner_12_Template(rf, ctx) { if (rf & 1) {
41
+ i0.ɵɵelement(0, "mat-spinner", 12);
42
+ } if (rf & 2) {
43
+ i0.ɵɵproperty("diameter", 20);
44
+ } }
45
+ export class TextToSpeechComponent {
46
+ constructor() {
47
+ this.langAttributeKey = 'lang';
48
+ this.defaultLanguage = 'lv';
49
+ this.voiceList = ['sandra4', 'lv-LV-general'];
50
+ this.selectedVoice = this.voiceList[0];
51
+ this.#textPlayService = inject(TextPlayService);
52
+ }
53
+ get translations() {
54
+ if (TTS_I18N[this.language]) {
55
+ return TTS_I18N[this.language];
56
+ }
57
+ return TTS_I18N[this.defaultLanguage];
58
+ }
59
+ #textPlayService;
60
+ ngOnInit() {
61
+ this.watchHtmlLangAttributeChanges();
62
+ }
63
+ playText() {
64
+ if (this.isPlaying) {
65
+ this.stop();
66
+ return;
67
+ }
68
+ this.isLoading = true;
69
+ this.#textPlayService
70
+ .play(this.text, this.selectedVoice, this.xApiKey)
71
+ .pipe(finalize(() => { this.isLoading = false; }))
72
+ .subscribe({
73
+ next: (res) => {
74
+ const audioUrl = URL.createObjectURL(res);
75
+ this.audio = new Audio(audioUrl);
76
+ this.audio.play();
77
+ this.isPlaying = true;
78
+ this.audio.onended = () => {
79
+ URL.revokeObjectURL(audioUrl);
80
+ this.isPlaying = false;
81
+ };
82
+ },
83
+ });
84
+ }
85
+ stop() {
86
+ if (this.audio) {
87
+ this.audio.pause();
88
+ this.isPlaying = false;
89
+ }
90
+ }
91
+ watchHtmlLangAttributeChanges() {
92
+ const language = this.getHtmlLangAttribute();
93
+ if (!this.language && (language !== this.defaultLanguage)) {
94
+ this.language = language;
95
+ }
96
+ const onLangAttributeChange = (mutationsList) => {
97
+ for (const mutation of mutationsList) {
98
+ if (mutation.type === 'attributes' && mutation.attributeName === this.langAttributeKey) {
99
+ const lang = this.getHtmlLangAttribute();
100
+ this.language = lang;
101
+ }
102
+ }
103
+ };
104
+ const observer = new MutationObserver(onLangAttributeChange);
105
+ const htmlElement = document.querySelector('html');
106
+ const config = { attributes: true, attributeFilter: [this.langAttributeKey] };
107
+ observer.observe(htmlElement, config);
108
+ }
109
+ getHtmlLangAttribute() {
110
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
111
+ return document.querySelector('html').getAttribute(this.langAttributeKey).split('-')[0];
112
+ }
113
+ static { this.ɵfac = function TextToSpeechComponent_Factory(t) { return new (t || TextToSpeechComponent)(); }; }
114
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TextToSpeechComponent, selectors: [["lib-text-to-speech"]], inputs: { xApiKey: "xApiKey", language: "language" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 13, vars: 10, consts: [[1, "text-to-speech-wrapper"], ["appearance", "outline", "color", "accent"], [3, "valueChange", "value"], [3, "value", 4, "ngFor", "ngForOf"], [1, "text-to-speech-textarea-wrapper"], [1, "text-to-speech-textarea", 3, "ngModelChange", "ngModel", "placeholder"], [1, "text-to-speech-actions"], [3, "matTooltip"], ["mat-icon-button", "", 3, "click", "matTooltip", "disabled"], [4, "ngIf"], [3, "diameter", 4, "ngIf"], [3, "value"], [3, "diameter"]], template: function TextToSpeechComponent_Template(rf, ctx) { if (rf & 1) {
115
+ i0.ɵɵelementStart(0, "div", 0)(1, "mat-form-field", 1)(2, "mat-label");
116
+ i0.ɵɵtext(3);
117
+ i0.ɵɵelementEnd();
118
+ i0.ɵɵelementStart(4, "mat-select", 2);
119
+ i0.ɵɵtwoWayListener("valueChange", function TextToSpeechComponent_Template_mat_select_valueChange_4_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.selectedVoice, $event) || (ctx.selectedVoice = $event); return $event; });
120
+ i0.ɵɵtemplate(5, TextToSpeechComponent_mat_option_5_Template, 2, 2, "mat-option", 3);
121
+ i0.ɵɵelementEnd()();
122
+ i0.ɵɵelementStart(6, "div", 4)(7, "textarea", 5);
123
+ i0.ɵɵtwoWayListener("ngModelChange", function TextToSpeechComponent_Template_textarea_ngModelChange_7_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.text, $event) || (ctx.text = $event); return $event; });
124
+ i0.ɵɵelementEnd()();
125
+ i0.ɵɵelementStart(8, "div", 6)(9, "div", 7)(10, "button", 8);
126
+ i0.ɵɵlistener("click", function TextToSpeechComponent_Template_button_click_10_listener() { return ctx.playText(); });
127
+ i0.ɵɵtemplate(11, TextToSpeechComponent_mat_icon_11_Template, 2, 1, "mat-icon", 9)(12, TextToSpeechComponent_mat_spinner_12_Template, 1, 1, "mat-spinner", 10);
128
+ i0.ɵɵelementEnd()()()();
129
+ } if (rf & 2) {
130
+ i0.ɵɵadvance(3);
131
+ i0.ɵɵtextInterpolate(ctx.translations.selectVoice);
132
+ i0.ɵɵadvance();
133
+ i0.ɵɵtwoWayProperty("value", ctx.selectedVoice);
134
+ i0.ɵɵadvance();
135
+ i0.ɵɵproperty("ngForOf", ctx.voiceList);
136
+ i0.ɵɵadvance(2);
137
+ i0.ɵɵtwoWayProperty("ngModel", ctx.text);
138
+ i0.ɵɵproperty("placeholder", ctx.translations.placeholder);
139
+ i0.ɵɵadvance(2);
140
+ i0.ɵɵproperty("matTooltip", !ctx.text ? ctx.translations.playDisabled : "");
141
+ i0.ɵɵadvance();
142
+ i0.ɵɵproperty("matTooltip", ctx.isPlaying ? ctx.translations.stop : ctx.translations.play)("disabled", !ctx.text || ctx.isLoading);
143
+ i0.ɵɵadvance();
144
+ i0.ɵɵproperty("ngIf", !ctx.isLoading);
145
+ i0.ɵɵadvance();
146
+ i0.ɵɵproperty("ngIf", ctx.isLoading);
147
+ } }, dependencies: [CommonModule, i1.NgForOf, i1.NgIf, MatIconButton,
148
+ MatIcon,
149
+ FormsModule, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgModel, MatProgressSpinner,
150
+ MatTooltipModule, i3.MatTooltip, MatFormFieldModule, i4.MatFormField, i4.MatLabel, MatSelectModule, i5.MatSelect, i6.MatOption], styles: [".text-to-speech-wrapper[_ngcontent-%COMP%]{margin-top:5px;position:relative;display:flex;flex-direction:column;align-items:center}.text-to-speech-wrapper[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{max-width:900px!important;width:100%}.text-to-speech-textarea-wrapper[_ngcontent-%COMP%], .text-to-speech-textarea[_ngcontent-%COMP%]{width:100%;max-width:900px}.text-to-speech-textarea-wrapper[_ngcontent-%COMP%]{border:1px solid var(--base-70);padding:5px;border-radius:8px;box-shadow:0 0 16px #0000001a}.text-to-speech-textarea[_ngcontent-%COMP%]{margin:15px 0;padding:0 10px;min-height:120px;resize:none;outline:none;border:none}.text-to-speech-actions[_ngcontent-%COMP%]{position:absolute;bottom:-25px}.text-to-speech-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{color:#fff;background-color:var(--accent)}.text-to-speech-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:disabled{background-color:var(--base-70)}"] }); }
151
+ }
152
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TextToSpeechComponent, [{
153
+ type: Component,
154
+ args: [{ selector: 'lib-text-to-speech', standalone: true, imports: [
155
+ CommonModule,
156
+ MatButton,
157
+ MatIconButton,
158
+ MatIcon,
159
+ FormsModule,
160
+ MatProgressSpinner,
161
+ MatTooltipModule,
162
+ MatFormFieldModule,
163
+ MatSelectModule
164
+ ], template: "<div class=\"text-to-speech-wrapper\">\r\n <mat-form-field appearance=\"outline\" color=\"accent\">\r\n <mat-label>{{translations.selectVoice}}</mat-label>\r\n <mat-select [(value)]=\"selectedVoice\">\r\n <mat-option *ngFor=\"let voice of voiceList\" [value]=\"voice\">\r\n {{ translations.voiceList[voice] }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <div class=\"text-to-speech-textarea-wrapper\">\r\n <textarea [(ngModel)]=\"text\" class=\"text-to-speech-textarea\" [placeholder]=\"translations.placeholder\"></textarea>\r\n </div>\r\n\r\n <div class=\"text-to-speech-actions\">\r\n <div [matTooltip]=\"!text ? translations.playDisabled : ''\">\r\n <button [matTooltip]=\"isPlaying ? translations.stop : translations.play\" [disabled]=\"!text || isLoading\" (click)=\"playText()\" mat-icon-button>\r\n <mat-icon *ngIf=\"!isLoading\"> {{ isPlaying ? 'stop' : 'volume_up' }} </mat-icon>\r\n <mat-spinner *ngIf=\"isLoading\" [diameter]=\"20\"></mat-spinner>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".text-to-speech-wrapper{margin-top:5px;position:relative;display:flex;flex-direction:column;align-items:center}.text-to-speech-wrapper mat-form-field{max-width:900px!important;width:100%}.text-to-speech-textarea-wrapper,.text-to-speech-textarea{width:100%;max-width:900px}.text-to-speech-textarea-wrapper{border:1px solid var(--base-70);padding:5px;border-radius:8px;box-shadow:0 0 16px #0000001a}.text-to-speech-textarea{margin:15px 0;padding:0 10px;min-height:120px;resize:none;outline:none;border:none}.text-to-speech-actions{position:absolute;bottom:-25px}.text-to-speech-actions button{color:#fff;background-color:var(--accent)}.text-to-speech-actions button:disabled{background-color:var(--base-70)}\n"] }]
165
+ }], null, { xApiKey: [{
166
+ type: Input
167
+ }], language: [{
168
+ type: Input
169
+ }] }); })();
170
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TextToSpeechComponent, { className: "TextToSpeechComponent", filePath: "lib\\text-to-speech\\text-to-speech.component.ts", lineNumber: 31 }); })();
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC10by1zcGVlY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL3RleHQtdG8tc3BlZWNoL3RleHQtdG8tc3BlZWNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi90ZXh0LXRvLXNwZWVjaC90ZXh0LXRvLXNwZWVjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7SUNQNUQsc0NBQTREO0lBQzFELFlBQ0Y7SUFBQSxpQkFBYTs7OztJQUYrQixnQ0FBZTtJQUN6RCxjQUNGO0lBREUs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RUFDRixFQUNGOztZQXBCUyxlQUE0QjtZQUE1QixrREFBNEI7WUFDM0IsY0FBeUI7WUFBekIsK0NBQXlCO1lBQ0wsY0FBWTtZQUFaLHVDQUFZO1lBT2xDLGVBQWtCO1lBQWxCLHdDQUFrQjtZQUFpQywwREFBd0M7WUFJaEcsZUFBcUQ7WUFBckQsMkVBQXFEO1lBQ2hELGNBQWdFO1lBQUMsQUFBakUsMEZBQWdFLHdDQUFnQztZQUMzRixjQUFnQjtZQUFoQixxQ0FBZ0I7WUFDYixjQUFlO1lBQWYsb0NBQWU7NEJERGpDLFlBQVksdUJBRVosYUFBYTtZQUNiLE9BQU87WUFDUCxXQUFXLDJEQUNYLGtCQUFrQjtZQUNsQixnQkFBZ0IsaUJBQ2hCLGtCQUFrQixnQ0FDbEIsZUFBZTs7aUZBS04scUJBQXFCO2NBakJqQyxTQUFTOzJCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1A7b0JBQ1AsWUFBWTtvQkFDWixTQUFTO29CQUNULGFBQWE7b0JBQ2IsT0FBTztvQkFDUCxXQUFXO29CQUNYLGtCQUFrQjtvQkFDbEIsZ0JBQWdCO29CQUNoQixrQkFBa0I7b0JBQ2xCLGVBQWU7aUJBQ2hCO2dCQUtRLE9BQU87a0JBQWYsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7O2tGQUZLLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b24sIE1hdEljb25CdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IFRleHRQbGF5U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdGV4dC1wbGF5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcclxuaW1wb3J0IHsgVFRTX0kxOE4gfSBmcm9tICcuL3RyYW5zbGF0aW9ucy90dHMtaTE4bic7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi10ZXh0LXRvLXNwZWVjaCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b24sXHJcbiAgICBNYXRJY29uQnV0dG9uLFxyXG4gICAgTWF0SWNvbixcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdFNlbGVjdE1vZHVsZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtdG8tc3BlZWNoLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdGV4dC10by1zcGVlY2guY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGV4dFRvU3BlZWNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSB4QXBpS2V5ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGxhbmd1YWdlITogc3RyaW5nO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGxhbmdBdHRyaWJ1dGVLZXkgPSAnbGFuZyc7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0TGFuZ3VhZ2UgPSAnbHYnO1xyXG5cclxuICByZWFkb25seSB2b2ljZUxpc3QgPSBbJ3NhbmRyYTQnLCAnbHYtTFYtZ2VuZXJhbCddO1xyXG5cclxuICB0ZXh0ITogc3RyaW5nO1xyXG4gIHNlbGVjdGVkVm9pY2UgPSB0aGlzLnZvaWNlTGlzdFswXTtcclxuICBhdWRpbyE6IEhUTUxBdWRpb0VsZW1lbnQ7XHJcbiAgaXNMb2FkaW5nITogYm9vbGVhbjtcclxuICBpc1BsYXlpbmchOiBib29sZWFuO1xyXG5cclxuICBnZXQgdHJhbnNsYXRpb25zKCkge1xyXG4gICAgaWYgKFRUU19JMThOW3RoaXMubGFuZ3VhZ2VdKSB7XHJcbiAgICAgIHJldHVybiBUVFNfSTE4Tlt0aGlzLmxhbmd1YWdlXTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gVFRTX0kxOE5bdGhpcy5kZWZhdWx0TGFuZ3VhZ2VdO1xyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgI3RleHRQbGF5U2VydmljZSA9IGluamVjdChUZXh0UGxheVNlcnZpY2UpO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMud2F0Y2hIdG1sTGFuZ0F0dHJpYnV0ZUNoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHBsYXlUZXh0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNQbGF5aW5nKSB7XHJcbiAgICAgIHRoaXMuc3RvcCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMuI3RleHRQbGF5U2VydmljZVxyXG4gICAgICAucGxheSh0aGlzLnRleHQsIHRoaXMuc2VsZWN0ZWRWb2ljZSwgdGhpcy54QXBpS2V5KVxyXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiB7IHRoaXMuaXNMb2FkaW5nID0gZmFsc2UgfSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXMpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGF1ZGlvVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChyZXMpO1xyXG4gICAgICAgICAgdGhpcy5hdWRpbyA9IG5ldyBBdWRpbyhhdWRpb1VybCk7XHJcbiAgICAgICAgICB0aGlzLmF1ZGlvLnBsYXkoKTtcclxuXHJcbiAgICAgICAgICB0aGlzLmlzUGxheWluZyA9IHRydWU7XHJcblxyXG4gICAgICAgICAgdGhpcy5hdWRpby5vbmVuZGVkID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKGF1ZGlvVXJsKTtcclxuICAgICAgICAgICAgdGhpcy5pc1BsYXlpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdG9wKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYXVkaW8pIHtcclxuICAgICAgdGhpcy5hdWRpby5wYXVzZSgpO1xyXG4gICAgICB0aGlzLmlzUGxheWluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB3YXRjaEh0bWxMYW5nQXR0cmlidXRlQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGxhbmd1YWdlID0gdGhpcy5nZXRIdG1sTGFuZ0F0dHJpYnV0ZSgpO1xyXG4gICAgXHJcbiAgICBpZiAoIXRoaXMubGFuZ3VhZ2UgJiYgKGxhbmd1YWdlICE9PSB0aGlzLmRlZmF1bHRMYW5ndWFnZSkpIHtcclxuICAgICAgdGhpcy5sYW5ndWFnZSA9IGxhbmd1YWdlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9uTGFuZ0F0dHJpYnV0ZUNoYW5nZSA9IChtdXRhdGlvbnNMaXN0OiBNdXRhdGlvblJlY29yZFtdKSA9PiB7XHJcbiAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zTGlzdCkge1xyXG4gICAgICAgIGlmIChtdXRhdGlvbi50eXBlID09PSAnYXR0cmlidXRlcycgJiYgbXV0YXRpb24uYXR0cmlidXRlTmFtZSA9PT0gdGhpcy5sYW5nQXR0cmlidXRlS2V5KSB7XHJcbiAgICAgICAgICBjb25zdCBsYW5nID0gdGhpcy5nZXRIdG1sTGFuZ0F0dHJpYnV0ZSgpO1xyXG4gICAgICAgICAgdGhpcy5sYW5ndWFnZSA9IGxhbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIFxyXG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihvbkxhbmdBdHRyaWJ1dGVDaGFuZ2UpO1xyXG4gICAgY29uc3QgaHRtbEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdodG1sJykgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBjb25zdCBjb25maWcgPSB7IGF0dHJpYnV0ZXM6IHRydWUsIGF0dHJpYnV0ZUZpbHRlcjogW3RoaXMubGFuZ0F0dHJpYnV0ZUtleV0gfTtcclxuICAgIG9ic2VydmVyLm9ic2VydmUoaHRtbEVsZW1lbnQsIGNvbmZpZyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEh0bWxMYW5nQXR0cmlidXRlKCk6IHN0cmluZyB7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgcmV0dXJuIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdodG1sJykgYXMgYW55KS5nZXRBdHRyaWJ1dGUodGhpcy5sYW5nQXR0cmlidXRlS2V5KS5zcGxpdCgnLScpWzBdO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidGV4dC10by1zcGVlY2gtd3JhcHBlclwiPlxyXG4gIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNvbG9yPVwiYWNjZW50XCI+XHJcbiAgICA8bWF0LWxhYmVsPnt7dHJhbnNsYXRpb25zLnNlbGVjdFZvaWNlfX08L21hdC1sYWJlbD5cclxuICAgIDxtYXQtc2VsZWN0IFsodmFsdWUpXT1cInNlbGVjdGVkVm9pY2VcIj5cclxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHZvaWNlIG9mIHZvaWNlTGlzdFwiIFt2YWx1ZV09XCJ2b2ljZVwiPlxyXG4gICAgICAgIHt7IHRyYW5zbGF0aW9ucy52b2ljZUxpc3Rbdm9pY2VdIH19XHJcbiAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgIDwvbWF0LXNlbGVjdD5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwidGV4dC10by1zcGVlY2gtdGV4dGFyZWEtd3JhcHBlclwiPlxyXG4gICAgPHRleHRhcmVhIFsobmdNb2RlbCldPVwidGV4dFwiIGNsYXNzPVwidGV4dC10by1zcGVlY2gtdGV4dGFyZWFcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zLnBsYWNlaG9sZGVyXCI+PC90ZXh0YXJlYT5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInRleHQtdG8tc3BlZWNoLWFjdGlvbnNcIj5cclxuICAgIDxkaXYgW21hdFRvb2x0aXBdPVwiIXRleHQgPyB0cmFuc2xhdGlvbnMucGxheURpc2FibGVkIDogJydcIj5cclxuICAgICAgPGJ1dHRvbiBbbWF0VG9vbHRpcF09XCJpc1BsYXlpbmcgPyB0cmFuc2xhdGlvbnMuc3RvcCA6IHRyYW5zbGF0aW9ucy5wbGF5XCIgW2Rpc2FibGVkXT1cIiF0ZXh0IHx8IGlzTG9hZGluZ1wiIChjbGljayk9XCJwbGF5VGV4dCgpXCIgbWF0LWljb24tYnV0dG9uPlxyXG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIiFpc0xvYWRpbmdcIj4ge3sgaXNQbGF5aW5nID8gJ3N0b3AnIDogJ3ZvbHVtZV91cCcgfX0gIDwvbWF0LWljb24+XHJcbiAgICAgICAgPG1hdC1zcGlubmVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgW2RpYW1ldGVyXT1cIjIwXCI+PC9tYXQtc3Bpbm5lcj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,26 @@
1
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2
+ export const TTS_I18N = {
3
+ en: {
4
+ selectVoice: 'Voice',
5
+ placeholder: 'Enter text to listen to a demonstration of the text-to-speech technology. Remember, this service can only be used in accordance with its terms of use (see the "Terms of Use" section). It is not permitted to use this service for texts that contain offensive, indecent, defamatory, misleading, hateful, or discriminatory statements. Violation of the terms of use may result in liability as stipulated by the laws of the Republic of Latvia.',
6
+ playDisabled: 'Enter text to play',
7
+ play: 'Play',
8
+ stop: 'Stop',
9
+ voiceList: {
10
+ sandra4: 'Sandra',
11
+ 'lv-LV-general': 'Aleksandrs'
12
+ }
13
+ },
14
+ lv: {
15
+ selectVoice: 'Balss',
16
+ placeholder: 'Ievadi tekstu, lai noklausītos balss sintēzes tehnoloģijas demonstrāciju. Atceries, ka šo pakalpojumu var lietot tikai atbilstoši tā lietošanas noteikumiem (skatīt sadaļu “Lietošanas noteikumi”)! To nav atļauts izmantot tekstiem, kas satur aizskarošus, nepieklājīgus, apmelojošus, maldinošus, naidu vai diskrimināciju veicinošus apgalvojumus. Par lietošanas noteikumu pārkāpumu var iestāties LR likumos noteiktā atbildība.',
17
+ playDisabled: 'Ievadi tekstu, lai atskaņot to',
18
+ play: 'Atskaņot',
19
+ stop: 'Apstādināt',
20
+ voiceList: {
21
+ sandra4: 'Sandra',
22
+ 'lv-LV-general': 'Aleksandrs'
23
+ }
24
+ }
25
+ };
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHRzLWkxOG4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvdGV4dC10by1zcGVlY2gvdHJhbnNsYXRpb25zL3R0cy1pMThuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhEQUE4RDtBQUM5RCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQVE7SUFDM0IsRUFBRSxFQUFFO1FBQ0YsV0FBVyxFQUFFLE9BQU87UUFDcEIsV0FBVyxFQUFFLHViQUF1YjtRQUNwYyxZQUFZLEVBQUUsb0JBQW9CO1FBQ2xDLElBQUksRUFBRSxNQUFNO1FBQ1osSUFBSSxFQUFFLE1BQU07UUFDWixTQUFTLEVBQUU7WUFDVCxPQUFPLEVBQUUsUUFBUTtZQUNqQixlQUFlLEVBQUUsWUFBWTtTQUM5QjtLQUNGO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsV0FBVyxFQUFFLE9BQU87UUFDcEIsV0FBVyxFQUFFLHdhQUF3YTtRQUNyYixZQUFZLEVBQUUsZ0NBQWdDO1FBQzlDLElBQUksRUFBRSxVQUFVO1FBQ2hCLElBQUksRUFBRSxZQUFZO1FBQ2xCLFNBQVMsRUFBRTtZQUNULE9BQU8sRUFBRSxRQUFRO1lBQ2pCLGVBQWUsRUFBRSxZQUFZO1NBQzlCO0tBQ0Y7Q0FDRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuZXhwb3J0IGNvbnN0IFRUU19JMThOOiBhbnkgPSB7XHJcbiAgZW46IHtcclxuICAgIHNlbGVjdFZvaWNlOiAnVm9pY2UnLFxyXG4gICAgcGxhY2Vob2xkZXI6ICdFbnRlciB0ZXh0IHRvIGxpc3RlbiB0byBhIGRlbW9uc3RyYXRpb24gb2YgdGhlIHRleHQtdG8tc3BlZWNoIHRlY2hub2xvZ3kuIFJlbWVtYmVyLCB0aGlzIHNlcnZpY2UgY2FuIG9ubHkgYmUgdXNlZCBpbiBhY2NvcmRhbmNlIHdpdGggaXRzIHRlcm1zIG9mIHVzZSAoc2VlIHRoZSBcIlRlcm1zIG9mIFVzZVwiIHNlY3Rpb24pLiBJdCBpcyBub3QgcGVybWl0dGVkIHRvIHVzZSB0aGlzIHNlcnZpY2UgZm9yIHRleHRzIHRoYXQgY29udGFpbiBvZmZlbnNpdmUsIGluZGVjZW50LCBkZWZhbWF0b3J5LCBtaXNsZWFkaW5nLCBoYXRlZnVsLCBvciBkaXNjcmltaW5hdG9yeSBzdGF0ZW1lbnRzLiBWaW9sYXRpb24gb2YgdGhlIHRlcm1zIG9mIHVzZSBtYXkgcmVzdWx0IGluIGxpYWJpbGl0eSBhcyBzdGlwdWxhdGVkIGJ5IHRoZSBsYXdzIG9mIHRoZSBSZXB1YmxpYyBvZiBMYXR2aWEuJyxcclxuICAgIHBsYXlEaXNhYmxlZDogJ0VudGVyIHRleHQgdG8gcGxheScsXHJcbiAgICBwbGF5OiAnUGxheScsXHJcbiAgICBzdG9wOiAnU3RvcCcsXHJcbiAgICB2b2ljZUxpc3Q6IHtcclxuICAgICAgc2FuZHJhNDogJ1NhbmRyYScsXHJcbiAgICAgICdsdi1MVi1nZW5lcmFsJzogJ0FsZWtzYW5kcnMnXHJcbiAgICB9XHJcbiAgfSxcclxuICBsdjoge1xyXG4gICAgc2VsZWN0Vm9pY2U6ICdCYWxzcycsXHJcbiAgICBwbGFjZWhvbGRlcjogJ0lldmFkaSB0ZWtzdHUsIGxhaSBub2tsYXVzxKt0b3MgYmFsc3Mgc2ludMSTemVzIHRlaG5vbG/Eo2lqYXMgZGVtb25zdHLEgWNpanUuIEF0Y2VyaWVzLCBrYSDFoW8gcGFrYWxwb2p1bXUgdmFyIGxpZXRvdCB0aWthaSBhdGJpbHN0b8WhaSB0xIEgbGlldG/FoWFuYXMgbm90ZWlrdW1pZW0gKHNrYXTEq3Qgc2FkYcS8dSDigJxMaWV0b8WhYW5hcyBub3RlaWt1bWnigJ0pISBUbyBuYXYgYXTEvGF1dHMgaXptYW50b3QgdGVrc3RpZW0sIGthcyBzYXR1ciBhaXpza2Fyb8WhdXMsIG5lcGlla2zEgWrEq2d1cywgYXBtZWxvam/FoXVzLCBtYWxkaW5vxaF1cywgbmFpZHUgdmFpIGRpc2tyaW1pbsSBY2lqdSB2ZWljaW5vxaF1cyBhcGdhbHZvanVtdXMuIFBhciBsaWV0b8WhYW5hcyBub3RlaWt1bXUgcMSBcmvEgXB1bXUgdmFyIGllc3TEgXRpZXMgTFIgbGlrdW1vcyBub3RlaWt0xIEgYXRiaWxkxKtiYS4nLFxyXG4gICAgcGxheURpc2FibGVkOiAnSWV2YWRpIHRla3N0dSwgbGFpIGF0c2thxYZvdCB0bycsXHJcbiAgICBwbGF5OiAnQXRza2HFhm90JyxcclxuICAgIHN0b3A6ICdBcHN0xIFkaW7EgXQnLFxyXG4gICAgdm9pY2VMaXN0OiB7XHJcbiAgICAgIHNhbmRyYTQ6ICdTYW5kcmEnLFxyXG4gICAgICAnbHYtTFYtZ2VuZXJhbCc6ICdBbGVrc2FuZHJzJ1xyXG4gICAgfVxyXG4gIH1cclxufSJdfQ==
@@ -1,11 +1,16 @@
1
1
  import { Component } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class TldLoaderComponent {
4
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: TldLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: TldLoaderComponent, selector: "lib-tld-loader", ngImport: i0, template: "<div class=\"tld-loader accent-color\" fxLayout=\"row\" fxLayoutGap=\"10px\">\r\n <div class=\"accent-bg-color tld-loader-element element-1\"></div>\r\n <div class=\"accent-bg-color tld-loader-element element-2\"></div>\r\n <div class=\"accent-bg-color tld-loader-element element-3\"></div>\r\n</div>\r\n", styles: [".tld-loader .tld-loader-element{will-change:transform;border-radius:50%;animation:grow .6s ease-in-out infinite alternate;width:24px;height:24px}.tld-loader .tld-loader-element.element-2{animation-delay:.2s}.tld-loader .tld-loader-element.element-3{animation-delay:.4s}@keyframes grow{to{transform:translate(-50%) scale(0)}}\n"] }); }
4
+ static { this.ɵfac = function TldLoaderComponent_Factory(t) { return new (t || TldLoaderComponent)(); }; }
5
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TldLoaderComponent, selectors: [["lib-tld-loader"]], decls: 4, vars: 0, consts: [["fxLayout", "row", "fxLayoutGap", "10px", 1, "tld-loader", "accent-color"], [1, "accent-bg-color", "tld-loader-element", "element-1"], [1, "accent-bg-color", "tld-loader-element", "element-2"], [1, "accent-bg-color", "tld-loader-element", "element-3"]], template: function TldLoaderComponent_Template(rf, ctx) { if (rf & 1) {
6
+ i0.ɵɵelementStart(0, "div", 0);
7
+ i0.ɵɵelement(1, "div", 1)(2, "div", 2)(3, "div", 3);
8
+ i0.ɵɵelementEnd();
9
+ } }, styles: [".tld-loader[_ngcontent-%COMP%] .tld-loader-element[_ngcontent-%COMP%]{will-change:transform;border-radius:50%;animation:_ngcontent-%COMP%_grow .6s ease-in-out infinite alternate;width:24px;height:24px}.tld-loader[_ngcontent-%COMP%] .tld-loader-element.element-2[_ngcontent-%COMP%]{animation-delay:.2s}.tld-loader[_ngcontent-%COMP%] .tld-loader-element.element-3[_ngcontent-%COMP%]{animation-delay:.4s}@keyframes _ngcontent-%COMP%_grow{to{transform:translate(-50%) scale(0)}}"] }); }
6
10
  }
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: TldLoaderComponent, decorators: [{
8
- type: Component,
9
- args: [{ selector: 'lib-tld-loader', template: "<div class=\"tld-loader accent-color\" fxLayout=\"row\" fxLayoutGap=\"10px\">\r\n <div class=\"accent-bg-color tld-loader-element element-1\"></div>\r\n <div class=\"accent-bg-color tld-loader-element element-2\"></div>\r\n <div class=\"accent-bg-color tld-loader-element element-3\"></div>\r\n</div>\r\n", styles: [".tld-loader .tld-loader-element{will-change:transform;border-radius:50%;animation:grow .6s ease-in-out infinite alternate;width:24px;height:24px}.tld-loader .tld-loader-element.element-2{animation-delay:.2s}.tld-loader .tld-loader-element.element-3{animation-delay:.4s}@keyframes grow{to{transform:translate(-50%) scale(0)}}\n"] }]
10
- }] });
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLWxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvdGxkLWxvYWRlci90bGQtbG9hZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi90bGQtbG9hZGVyL3RsZC1sb2FkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPMUMsTUFBTSxPQUFPLGtCQUFrQjs4R0FBbEIsa0JBQWtCO2tHQUFsQixrQkFBa0Isc0RDUC9CLHFUQUtBOzsyRkRFYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi10bGQtbG9hZGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGxkLWxvYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGxkLWxvYWRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRMb2FkZXJDb21wb25lbnQge1xyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0bGQtbG9hZGVyIGFjY2VudC1jb2xvclwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCI+XHJcbiAgPGRpdiBjbGFzcz1cImFjY2VudC1iZy1jb2xvciB0bGQtbG9hZGVyLWVsZW1lbnQgZWxlbWVudC0xXCI+PC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImFjY2VudC1iZy1jb2xvciB0bGQtbG9hZGVyLWVsZW1lbnQgZWxlbWVudC0yXCI+PC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImFjY2VudC1iZy1jb2xvciB0bGQtbG9hZGVyLWVsZW1lbnQgZWxlbWVudC0zXCI+PC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
11
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TldLoaderComponent, [{
12
+ type: Component,
13
+ args: [{ selector: 'lib-tld-loader', template: "<div class=\"tld-loader accent-color\" fxLayout=\"row\" fxLayoutGap=\"10px\">\r\n <div class=\"accent-bg-color tld-loader-element element-1\"></div>\r\n <div class=\"accent-bg-color tld-loader-element element-2\"></div>\r\n <div class=\"accent-bg-color tld-loader-element element-3\"></div>\r\n</div>\r\n", styles: [".tld-loader .tld-loader-element{will-change:transform;border-radius:50%;animation:grow .6s ease-in-out infinite alternate;width:24px;height:24px}.tld-loader .tld-loader-element.element-2{animation-delay:.2s}.tld-loader .tld-loader-element.element-3{animation-delay:.4s}@keyframes grow{to{transform:translate(-50%) scale(0)}}\n"] }]
14
+ }], null, null); })();
15
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TldLoaderComponent, { className: "TldLoaderComponent", filePath: "lib\\tld-loader\\tld-loader.component.ts", lineNumber: 8 }); })();
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLWxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvdGxkLWxvYWRlci90bGQtbG9hZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi90bGQtbG9hZGVyL3RsZC1sb2FkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPMUMsTUFBTSxPQUFPLGtCQUFrQjttRkFBbEIsa0JBQWtCO29FQUFsQixrQkFBa0I7WUNQL0IsOEJBQXVFO1lBR3JFLEFBREEsQUFEQSx5QkFBZ0UsYUFDQSxhQUNBO1lBQ2xFLGlCQUFNOzs7aUZER08sa0JBQWtCO2NBTDlCLFNBQVM7MkJBQ0UsZ0JBQWdCOztrRkFJZixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRsZC1sb2FkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90bGQtbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90bGQtbG9hZGVyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZExvYWRlckNvbXBvbmVudCB7XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRsZC1sb2FkZXIgYWNjZW50LWNvbG9yXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjEwcHhcIj5cclxuICA8ZGl2IGNsYXNzPVwiYWNjZW50LWJnLWNvbG9yIHRsZC1sb2FkZXItZWxlbWVudCBlbGVtZW50LTFcIj48L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYWNjZW50LWJnLWNvbG9yIHRsZC1sb2FkZXItZWxlbWVudCBlbGVtZW50LTJcIj48L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYWNjZW50LWJnLWNvbG9yIHRsZC1sb2FkZXItZWxlbWVudCBlbGVtZW50LTNcIj48L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -2,19 +2,20 @@ import { NgModule } from '@angular/core';
2
2
  import { TldLoaderComponent } from './tld-loader.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export class TldLoaderModule {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: TldLoaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: TldLoaderModule, declarations: [TldLoaderComponent], exports: [TldLoaderComponent] }); }
7
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: TldLoaderModule }); }
5
+ static { this.ɵfac = function TldLoaderModule_Factory(t) { return new (t || TldLoaderModule)(); }; }
6
+ static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: TldLoaderModule }); }
7
+ static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({}); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: TldLoaderModule, decorators: [{
10
- type: NgModule,
11
- args: [{
12
- declarations: [
13
- TldLoaderComponent
14
- ],
15
- exports: [
16
- TldLoaderComponent
17
- ]
18
- }]
19
- }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLWxvYWRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvdGxkLWxvYWRlci90bGQtbG9hZGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQVU1RCxNQUFNLE9BQU8sZUFBZTs4R0FBZixlQUFlOytHQUFmLGVBQWUsaUJBTnBCLGtCQUFrQixhQUdsQixrQkFBa0I7K0dBR2IsZUFBZTs7MkZBQWYsZUFBZTtrQkFSM0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1Ysa0JBQWtCO3FCQUNyQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsa0JBQWtCO3FCQUNyQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRsZExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vdGxkLWxvYWRlci5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIFRsZExvYWRlckNvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICBUbGRMb2FkZXJDb21wb25lbnRcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZExvYWRlck1vZHVsZSB7IH1cclxuIl19
9
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TldLoaderModule, [{
10
+ type: NgModule,
11
+ args: [{
12
+ declarations: [
13
+ TldLoaderComponent
14
+ ],
15
+ exports: [
16
+ TldLoaderComponent
17
+ ]
18
+ }]
19
+ }], null, null); })();
20
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(TldLoaderModule, { declarations: [TldLoaderComponent], exports: [TldLoaderComponent] }); })();
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLWxvYWRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvdGxkLWxvYWRlci90bGQtbG9hZGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQVU1RCxNQUFNLE9BQU8sZUFBZTtnRkFBZixlQUFlO21FQUFmLGVBQWU7OztpRkFBZixlQUFlO2NBUjNCLFFBQVE7ZUFBQztnQkFDTixZQUFZLEVBQUU7b0JBQ1Ysa0JBQWtCO2lCQUNyQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsa0JBQWtCO2lCQUNyQjthQUNKOzt3RkFDWSxlQUFlLG1CQU5wQixrQkFBa0IsYUFHbEIsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGxkTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi90bGQtbG9hZGVyLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAgICAgVGxkTG9hZGVyQ29tcG9uZW50XHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIFRsZExvYWRlckNvbXBvbmVudFxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGxkTG9hZGVyTW9kdWxlIHsgfVxyXG4iXX0=
@@ -21,4 +21,5 @@ export * from './lib/open-close-button';
21
21
  export * from './lib/constants';
22
22
  export * from './lib/extension-dialog';
23
23
  export * from './lib/status-display';
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGtCQUFrQixDQUFBO0FBQ2hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWNvbW1vblxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGxhdXNpYmxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaW5saW5lLW1lc3NhZ2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbG9zZS1idXR0b24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9ub3RpZmljYXRpb24tbWVzc2FnZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RsZC1sb2FkZXInXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2hlbHBlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wYW55LXByb2R1Y3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb290ZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWxlLXVwbG9hZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbHRlci1iYXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tdWx0aS1mdW5jdGlvbmFsLXRhYmxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uZmlybWF0aW9uLW1vZGFsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVybWlub2xvZ3knO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9vcGVuLWNsb3NlLWJ1dHRvbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnN0YW50cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2V4dGVuc2lvbi1kaWFsb2cnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGF0dXMtZGlzcGxheSc7XHJcbiJdfQ==
24
+ export * from './lib/text-to-speech';
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGtCQUFrQixDQUFBO0FBQ2hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3gtY29tbW9uXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wbGF1c2libGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbmxpbmUtbWVzc2FnZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Nsb3NlLWJ1dHRvbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL25vdGlmaWNhdGlvbi1tZXNzYWdlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGxkLWxvYWRlcidcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVscGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBhbnktcHJvZHVjdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvb3Rlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGUtdXBsb2FkJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZmlsdGVyLWJhcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL211bHRpLWZ1bmN0aW9uYWwtdGFibGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25maXJtYXRpb24tbW9kYWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZXJtaW5vbG9neSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL29wZW4tY2xvc2UtYnV0dG9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZXh0ZW5zaW9uLWRpYWxvZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0YXR1cy1kaXNwbGF5JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGV4dC10by1zcGVlY2gnO1xyXG4iXX0=