@tilde-nlp/ngx-translate 7.0.40 → 7.0.41
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/assets/icons/icons.d.ts +1 -0
- package/esm2022/assets/icons/icons.mjs +7 -1
- package/esm2022/lib/components/shared/text-to-speech/text-to-speech.component.mjs +5 -4
- package/esm2022/lib/components/shared/text-to-speech/text-to-speech.module.mjs +8 -4
- package/esm2022/lib/modules/tld-audio/tld-dictate/tld-dictate.component.mjs +5 -43
- package/esm2022/lib/modules/tld-common/components/source-and-target-wrapper/source-and-target-wrapper.component.mjs +3 -3
- package/esm2022/lib/modules/tld-text/components/tld-translate-text/tld-translate-text.component.mjs +3 -3
- package/fesm2022/tilde-nlp-ngx-translate.mjs +33 -61
- package/fesm2022/tilde-nlp-ngx-translate.mjs.map +1 -1
- package/lib/components/shared/text-to-speech/text-to-speech.module.d.ts +2 -1
- package/lib/modules/tld-audio/tld-dictate/tld-dictate.component.d.ts +1 -8
- package/lib/modules/tld-common/components/source-and-target-wrapper/source-and-target-wrapper.component.d.ts +1 -1
- package/package.json +1 -1
- package/src/assets/webcomponent/tilde-translate-box.js +1 -1
package/assets/icons/icons.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export declare const SUMMARIZE = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M4 5H18.6286V6.82857H4V5ZM4 10.4857H18.6286V8.65714H4V10.4857ZM4 14.1429H10.4V12.3143H4V14.1429ZM4 17.8H10.4V15.9714H4V17.8Z\" fill=\"currentColor\"/>\n<path d=\"M17.4005 13.3093C17.0801 12.5922 16.0622 12.5922 15.7418 13.3093L15.1052 14.7341L13.6804 15.3707C12.9633 15.6911 12.9633 16.709 13.6804 17.0294L15.1052 17.666L15.7418 19.0908C16.0622 19.8079 17.0801 19.8079 17.4005 19.0908L18.0371 17.666L19.4619 17.0294C20.179 16.709 20.179 15.6911 19.4619 15.3707L18.0371 14.7341L17.4005 13.3093Z\" fill=\"currentColor\"/>\n<path d=\"M13.5612 12.0546C13.4438 11.7917 13.0705 11.7917 12.953 12.0546L12.7196 12.577L12.1972 12.8105C11.9343 12.9279 11.9343 13.3012 12.1972 13.4187L12.7196 13.6521L12.953 14.1745C13.0705 14.4374 13.4438 14.4374 13.5612 14.1745L13.7947 13.6521L14.3171 13.4187C14.58 13.3012 14.58 12.9279 14.3171 12.8105L13.7947 12.577L13.5612 12.0546Z\" fill=\"currentColor\"/>\n</svg>\n";
|
|
2
2
|
export declare const DOWNLOAD = "<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M17.9999 15V18H5.99988V15H3.99988V18C3.99988 19.1 4.89988 20 5.99988 20H17.9999C19.0999 20 19.9999 19.1 19.9999 18V15H17.9999ZM16.9999 11L15.5899 9.59L12.9999 12.17V4H10.9999V12.17L8.40988 9.59L6.99988 11L11.9999 16L16.9999 11Z\" fill=\"currentColor\"/>\n</svg>\n";
|
|
3
|
+
export declare const SOUND = "\n<svg width=\"25\" height=\"24\" viewBox=\"0 0 25 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M16.0996 20.101C19.2741 18.7086 21.499 15.6827 21.499 12.0006C21.499 8.31848 19.2741 5.29252 16.0996 3.90015V5.70024C18.248 6.94771 19.6989 9.34273 19.6989 12.0006C19.6989 14.6584 18.248 17.0534 16.0996 18.3009V20.101Z\" fill=\"#474D53\"/>\n<path d=\"M16.0997 7.5006V16.5011C17.2022 15.511 17.8998 13.5948 17.8998 12.0008C17.8998 10.4069 17.2022 8.49065 16.0997 7.5006ZM5.29912 16.5011H7.72654L12.9 19.9501C13.0356 20.0406 13.1932 20.0925 13.356 20.1005C13.5188 20.1084 13.6807 20.072 13.8244 19.9951C13.968 19.9181 14.0881 19.8037 14.1718 19.6639C14.2555 19.5241 14.2997 19.3642 14.2996 19.2012V4.80046C14.2995 4.63766 14.2553 4.47792 14.1716 4.33827C14.0879 4.19863 13.9679 4.08429 13.8244 4.00745C13.6808 3.9306 13.5192 3.89413 13.3565 3.90191C13.1939 3.90969 13.0365 3.96143 12.9009 4.05162L7.72654 7.5006H5.29912C4.30637 7.5006 3.49902 8.30795 3.49902 9.3007V14.701C3.49902 15.6937 4.30637 16.5011 5.29912 16.5011ZM5.29912 9.3007H7.99926C8.02896 9.3007 8.05416 9.2863 8.08296 9.2836C8.20281 9.27202 8.31911 9.23652 8.42498 9.17919C8.44838 9.16569 8.47628 9.16389 8.49879 9.14949L12.4995 6.48175V17.5199L8.49879 14.8522C8.47628 14.8369 8.44838 14.8342 8.42498 14.8225C8.31856 14.7649 8.20162 14.7294 8.08116 14.7181C8.05236 14.7154 8.02806 14.701 7.99926 14.701H5.29912V9.3007Z\" fill=\"#474D53\"/>\n</svg>\n";
|
|
@@ -8,4 +8,10 @@ export const DOWNLOAD = `<svg width="24" height="24" viewBox="0 0 24 24" fill="n
|
|
|
8
8
|
<path d="M17.9999 15V18H5.99988V15H3.99988V18C3.99988 19.1 4.89988 20 5.99988 20H17.9999C19.0999 20 19.9999 19.1 19.9999 18V15H17.9999ZM16.9999 11L15.5899 9.59L12.9999 12.17V4H10.9999V12.17L8.40988 9.59L6.99988 11L11.9999 16L16.9999 11Z" fill="currentColor"/>
|
|
9
9
|
</svg>
|
|
10
10
|
`;
|
|
11
|
-
|
|
11
|
+
export const SOUND = `
|
|
12
|
+
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
13
|
+
<path d="M16.0996 20.101C19.2741 18.7086 21.499 15.6827 21.499 12.0006C21.499 8.31848 19.2741 5.29252 16.0996 3.90015V5.70024C18.248 6.94771 19.6989 9.34273 19.6989 12.0006C19.6989 14.6584 18.248 17.0534 16.0996 18.3009V20.101Z" fill="#474D53"/>
|
|
14
|
+
<path d="M16.0997 7.5006V16.5011C17.2022 15.511 17.8998 13.5948 17.8998 12.0008C17.8998 10.4069 17.2022 8.49065 16.0997 7.5006ZM5.29912 16.5011H7.72654L12.9 19.9501C13.0356 20.0406 13.1932 20.0925 13.356 20.1005C13.5188 20.1084 13.6807 20.072 13.8244 19.9951C13.968 19.9181 14.0881 19.8037 14.1718 19.6639C14.2555 19.5241 14.2997 19.3642 14.2996 19.2012V4.80046C14.2995 4.63766 14.2553 4.47792 14.1716 4.33827C14.0879 4.19863 13.9679 4.08429 13.8244 4.00745C13.6808 3.9306 13.5192 3.89413 13.3565 3.90191C13.1939 3.90969 13.0365 3.96143 12.9009 4.05162L7.72654 7.5006H5.29912C4.30637 7.5006 3.49902 8.30795 3.49902 9.3007V14.701C3.49902 15.6937 4.30637 16.5011 5.29912 16.5011ZM5.29912 9.3007H7.99926C8.02896 9.3007 8.05416 9.2863 8.08296 9.2836C8.20281 9.27202 8.31911 9.23652 8.42498 9.17919C8.44838 9.16569 8.47628 9.16389 8.49879 9.14949L12.4995 6.48175V17.5199L8.49879 14.8522C8.47628 14.8369 8.44838 14.8342 8.42498 14.8225C8.31856 14.7649 8.20162 14.7294 8.08116 14.7181C8.05236 14.7154 8.02806 14.701 7.99926 14.701H5.29912V9.3007Z" fill="#474D53"/>
|
|
15
|
+
</svg>
|
|
16
|
+
`;
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9hc3NldHMvaWNvbnMvaWNvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHOzs7OztDQUt4QixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHOzs7Q0FHdkIsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRzs7Ozs7Q0FLcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBTVU1NQVJJWkUgPSBgPHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbjxwYXRoIGQ9XCJNNCA1SDE4LjYyODZWNi44Mjg1N0g0VjVaTTQgMTAuNDg1N0gxOC42Mjg2VjguNjU3MTRINFYxMC40ODU3Wk00IDE0LjE0MjlIMTAuNFYxMi4zMTQzSDRWMTQuMTQyOVpNNCAxNy44SDEwLjRWMTUuOTcxNEg0VjE3LjhaXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cclxuPHBhdGggZD1cIk0xNy40MDA1IDEzLjMwOTNDMTcuMDgwMSAxMi41OTIyIDE2LjA2MjIgMTIuNTkyMiAxNS43NDE4IDEzLjMwOTNMMTUuMTA1MiAxNC43MzQxTDEzLjY4MDQgMTUuMzcwN0MxMi45NjMzIDE1LjY5MTEgMTIuOTYzMyAxNi43MDkgMTMuNjgwNCAxNy4wMjk0TDE1LjEwNTIgMTcuNjY2TDE1Ljc0MTggMTkuMDkwOEMxNi4wNjIyIDE5LjgwNzkgMTcuMDgwMSAxOS44MDc5IDE3LjQwMDUgMTkuMDkwOEwxOC4wMzcxIDE3LjY2NkwxOS40NjE5IDE3LjAyOTRDMjAuMTc5IDE2LjcwOSAyMC4xNzkgMTUuNjkxMSAxOS40NjE5IDE1LjM3MDdMMTguMDM3MSAxNC43MzQxTDE3LjQwMDUgMTMuMzA5M1pcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxyXG48cGF0aCBkPVwiTTEzLjU2MTIgMTIuMDU0NkMxMy40NDM4IDExLjc5MTcgMTMuMDcwNSAxMS43OTE3IDEyLjk1MyAxMi4wNTQ2TDEyLjcxOTYgMTIuNTc3TDEyLjE5NzIgMTIuODEwNUMxMS45MzQzIDEyLjkyNzkgMTEuOTM0MyAxMy4zMDEyIDEyLjE5NzIgMTMuNDE4N0wxMi43MTk2IDEzLjY1MjFMMTIuOTUzIDE0LjE3NDVDMTMuMDcwNSAxNC40Mzc0IDEzLjQ0MzggMTQuNDM3NCAxMy41NjEyIDE0LjE3NDVMMTMuNzk0NyAxMy42NTIxTDE0LjMxNzEgMTMuNDE4N0MxNC41OCAxMy4zMDEyIDE0LjU4IDEyLjkyNzkgMTQuMzE3MSAxMi44MTA1TDEzLjc5NDcgMTIuNTc3TDEzLjU2MTIgMTIuMDU0NlpcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxyXG48L3N2Zz5cclxuYDtcclxuZXhwb3J0IGNvbnN0IERPV05MT0FEID0gYDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gIDxwYXRoIGQ9XCJNMTcuOTk5OSAxNVYxOEg1Ljk5OTg4VjE1SDMuOTk5ODhWMThDMy45OTk4OCAxOS4xIDQuODk5ODggMjAgNS45OTk4OCAyMEgxNy45OTk5QzE5LjA5OTkgMjAgMTkuOTk5OSAxOS4xIDE5Ljk5OTkgMThWMTVIMTcuOTk5OVpNMTYuOTk5OSAxMUwxNS41ODk5IDkuNTlMMTIuOTk5OSAxMi4xN1Y0SDEwLjk5OTlWMTIuMTdMOC40MDk4OCA5LjU5TDYuOTk5ODggMTFMMTEuOTk5OSAxNkwxNi45OTk5IDExWlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XHJcbjwvc3ZnPlxyXG5gO1xyXG5leHBvcnQgY29uc3QgU09VTkQgPSBgXHJcbjxzdmcgd2lkdGg9XCIyNVwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNSAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG48cGF0aCBkPVwiTTE2LjA5OTYgMjAuMTAxQzE5LjI3NDEgMTguNzA4NiAyMS40OTkgMTUuNjgyNyAyMS40OTkgMTIuMDAwNkMyMS40OTkgOC4zMTg0OCAxOS4yNzQxIDUuMjkyNTIgMTYuMDk5NiAzLjkwMDE1VjUuNzAwMjRDMTguMjQ4IDYuOTQ3NzEgMTkuNjk4OSA5LjM0MjczIDE5LjY5ODkgMTIuMDAwNkMxOS42OTg5IDE0LjY1ODQgMTguMjQ4IDE3LjA1MzQgMTYuMDk5NiAxOC4zMDA5VjIwLjEwMVpcIiBmaWxsPVwiIzQ3NEQ1M1wiLz5cclxuPHBhdGggZD1cIk0xNi4wOTk3IDcuNTAwNlYxNi41MDExQzE3LjIwMjIgMTUuNTExIDE3Ljg5OTggMTMuNTk0OCAxNy44OTk4IDEyLjAwMDhDMTcuODk5OCAxMC40MDY5IDE3LjIwMjIgOC40OTA2NSAxNi4wOTk3IDcuNTAwNlpNNS4yOTkxMiAxNi41MDExSDcuNzI2NTRMMTIuOSAxOS45NTAxQzEzLjAzNTYgMjAuMDQwNiAxMy4xOTMyIDIwLjA5MjUgMTMuMzU2IDIwLjEwMDVDMTMuNTE4OCAyMC4xMDg0IDEzLjY4MDcgMjAuMDcyIDEzLjgyNDQgMTkuOTk1MUMxMy45NjggMTkuOTE4MSAxNC4wODgxIDE5LjgwMzcgMTQuMTcxOCAxOS42NjM5QzE0LjI1NTUgMTkuNTI0MSAxNC4yOTk3IDE5LjM2NDIgMTQuMjk5NiAxOS4yMDEyVjQuODAwNDZDMTQuMjk5NSA0LjYzNzY2IDE0LjI1NTMgNC40Nzc5MiAxNC4xNzE2IDQuMzM4MjdDMTQuMDg3OSA0LjE5ODYzIDEzLjk2NzkgNC4wODQyOSAxMy44MjQ0IDQuMDA3NDVDMTMuNjgwOCAzLjkzMDYgMTMuNTE5MiAzLjg5NDEzIDEzLjM1NjUgMy45MDE5MUMxMy4xOTM5IDMuOTA5NjkgMTMuMDM2NSAzLjk2MTQzIDEyLjkwMDkgNC4wNTE2Mkw3LjcyNjU0IDcuNTAwNkg1LjI5OTEyQzQuMzA2MzcgNy41MDA2IDMuNDk5MDIgOC4zMDc5NSAzLjQ5OTAyIDkuMzAwN1YxNC43MDFDMy40OTkwMiAxNS42OTM3IDQuMzA2MzcgMTYuNTAxMSA1LjI5OTEyIDE2LjUwMTFaTTUuMjk5MTIgOS4zMDA3SDcuOTk5MjZDOC4wMjg5NiA5LjMwMDcgOC4wNTQxNiA5LjI4NjMgOC4wODI5NiA5LjI4MzZDOC4yMDI4MSA5LjI3MjAyIDguMzE5MTEgOS4yMzY1MiA4LjQyNDk4IDkuMTc5MTlDOC40NDgzOCA5LjE2NTY5IDguNDc2MjggOS4xNjM4OSA4LjQ5ODc5IDkuMTQ5NDlMMTIuNDk5NSA2LjQ4MTc1VjE3LjUxOTlMOC40OTg3OSAxNC44NTIyQzguNDc2MjggMTQuODM2OSA4LjQ0ODM4IDE0LjgzNDIgOC40MjQ5OCAxNC44MjI1QzguMzE4NTYgMTQuNzY0OSA4LjIwMTYyIDE0LjcyOTQgOC4wODExNiAxNC43MTgxQzguMDUyMzYgMTQuNzE1NCA4LjAyODA2IDE0LjcwMSA3Ljk5OTI2IDE0LjcwMUg1LjI5OTEyVjkuMzAwN1pcIiBmaWxsPVwiIzQ3NEQ1M1wiLz5cclxuPC9zdmc+XHJcbmA7XHJcbiJdfQ==
|
|
@@ -3,7 +3,8 @@ import { TextToSpeechService } from '@tilde-nlp/ngx-services';
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/material/button";
|
|
5
5
|
import * as i2 from "@angular/material/tooltip";
|
|
6
|
-
import * as i3 from "@
|
|
6
|
+
import * as i3 from "@angular/material/icon";
|
|
7
|
+
import * as i4 from "@ngx-translate/core";
|
|
7
8
|
export class TextToSpeechComponent {
|
|
8
9
|
#ttsService = inject(TextToSpeechService);
|
|
9
10
|
get isPaused() {
|
|
@@ -54,12 +55,12 @@ export class TextToSpeechComponent {
|
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
57
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextToSpeechComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
57
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
58
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TextToSpeechComponent, selector: "tld-text-to-speech", inputs: { settings: "settings" }, ngImport: i0, template: "<button \r\n mat-icon-button \r\n [matTooltip]=\"(isPaused? 'TEXT_TO_SPEECH.PLAY':'TEXT_TO_SPEECH.PAUSE') | translate\"\r\n (click)=\"clicked()\"\r\n>\r\n @if (isPaused) {\r\n <mat-icon [svgIcon]=\"'sound'\"></mat-icon>\r\n } @else {\r\n <span class=\"material-icons\">pause</span>\r\n }\r\n</button>", styles: [""], dependencies: [{ kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
|
|
58
59
|
}
|
|
59
60
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextToSpeechComponent, decorators: [{
|
|
60
61
|
type: Component,
|
|
61
|
-
args: [{ selector: 'tld-text-to-speech', template: "<button mat-icon-button
|
|
62
|
+
args: [{ selector: 'tld-text-to-speech', template: "<button \r\n mat-icon-button \r\n [matTooltip]=\"(isPaused? 'TEXT_TO_SPEECH.PLAY':'TEXT_TO_SPEECH.PAUSE') | translate\"\r\n (click)=\"clicked()\"\r\n>\r\n @if (isPaused) {\r\n <mat-icon [svgIcon]=\"'sound'\"></mat-icon>\r\n } @else {\r\n <span class=\"material-icons\">pause</span>\r\n }\r\n</button>" }]
|
|
62
63
|
}], ctorParameters: () => [], propDecorators: { settings: [{
|
|
63
64
|
type: Input
|
|
64
65
|
}] } });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC10by1zcGVlY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL3RleHQtdG8tc3BlZWNoL3RleHQtdG8tc3BlZWNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC90ZXh0LXRvLXNwZWVjaC90ZXh0LXRvLXNwZWVjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7OztBQU85RCxNQUFNLE9BQU8scUJBQXFCO0lBQ3ZCLFdBQVcsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNuRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQzVCLENBQUM7SUFDTyxLQUFLLENBQW1CO0lBRXhCLFNBQVMsQ0FBdUI7SUFDeEMsSUFBSSxRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN6QyxJQUFhLFFBQVEsQ0FBQyxLQUFLO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGdCQUFnQixDQUFDO0lBRWpCLE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDO2FBQ0ksQ0FBQztZQUNKLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRU8sS0FBSztRQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVPLElBQUk7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNwQixNQUFNLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsY0FBYyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2pNLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUN4RyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ3pCLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztnQkFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFDSSxDQUFDO1lBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7d0dBdkRVLHFCQUFxQjs0RkFBckIscUJBQXFCLDRGQ1RsQywwVEFVUzs7NEZEREkscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG9CQUFvQjt3REFhakIsUUFBUTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRleHRUb1NwZWVjaFNldHRpbmdzIH0gZnJvbSAnLi9tb2RlbHMvdGV4dC10by1zcGVlY2gtc2V0dGluZ3MubW9kZWwnO1xyXG5pbXBvcnQgeyBUZXh0VG9TcGVlY2hTZXJ2aWNlIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtc2VydmljZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0bGQtdGV4dC10by1zcGVlY2gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0LXRvLXNwZWVjaC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC10by1zcGVlY2guY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGV4dFRvU3BlZWNoQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICByZWFkb25seSAjdHRzU2VydmljZSA9IGluamVjdChUZXh0VG9TcGVlY2hTZXJ2aWNlKTtcclxuICBnZXQgaXNQYXVzZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hdWRpbz8ucGF1c2VkO1xyXG4gIH1cclxuICBwcml2YXRlIGF1ZGlvOiBIVE1MQXVkaW9FbGVtZW50O1xyXG5cclxuICBwcml2YXRlIF9zZXR0aW5nczogVGV4dFRvU3BlZWNoU2V0dGluZ3M7XHJcbiAgZ2V0IHNldHRpbmdzKCkgeyByZXR1cm4gdGhpcy5fc2V0dGluZ3M7IH1cclxuICBASW5wdXQoKSBzZXQgc2V0dGluZ3ModmFsdWUpIHtcclxuICAgIHRoaXMuX3NldHRpbmdzID0gdmFsdWU7XHJcbiAgICB0aGlzLmRpc3Bvc2VBdWRpbygpO1xyXG4gICAgdGhpcy5hdWRpbyA9IG5ldyBBdWRpbygpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgY2xpY2tlZCgpIHtcclxuICAgIGlmICh0aGlzLmlzUGF1c2VkKSB7XHJcbiAgICAgIHRoaXMucGxheSgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMucGF1c2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGF1c2UoKSB7XHJcbiAgICB0aGlzLmF1ZGlvLnBhdXNlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBsYXkoKSB7XHJcbiAgICBpZiAoIXRoaXMuYXVkaW8uc3JjKSB7XHJcbiAgICAgIGNvbnN0IHRyaW1tZWRUZXh0ID0gKHRoaXMuc2V0dGluZ3M/Lm1heENoYXJzSW5UZXh0ICYmIHRoaXMuc2V0dGluZ3MubWF4Q2hhcnNJblRleHQgPCB0aGlzLnNldHRpbmdzLnRleHQubGVuZ3RoKSA/IHRoaXMuc2V0dGluZ3MudGV4dC5zbGljZSgwLCB0aGlzLnNldHRpbmdzLm1heENoYXJzSW5UZXh0KSA6IHRoaXMuc2V0dGluZ3MudGV4dDtcclxuICAgICAgdGhpcy4jdHRzU2VydmljZS5nZW5lcmF0ZVNwZWVjaCh7IHRleHQ6IHRyaW1tZWRUZXh0LCBzeXN0ZW06IHRoaXMuc2V0dGluZ3Muc3lzdGVtSWQgfSkuc3Vic2NyaWJlKChibG9iKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hdWRpbyA9IG5ldyBBdWRpbygpO1xyXG4gICAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgICAgdGhpcy5hdWRpby5zcmMgPSB1cmw7XHJcbiAgICAgICAgdGhpcy5hdWRpby5sb2FkKCk7XHJcbiAgICAgICAgdGhpcy5hdWRpby5wbGF5KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuYXVkaW8ucGxheSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc3Bvc2VBdWRpbygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkaXNwb3NlQXVkaW8oKSB7XHJcbiAgICBpZiAodGhpcy5hdWRpbykge1xyXG4gICAgICB0aGlzLmF1ZGlvLnNyYyA9IG51bGw7XHJcbiAgICAgIHRoaXMuYXVkaW8gPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGJ1dHRvbiBcclxuICBtYXQtaWNvbi1idXR0b24gXHJcbiAgW21hdFRvb2x0aXBdPVwiKGlzUGF1c2VkPyAnVEVYVF9UT19TUEVFQ0guUExBWSc6J1RFWFRfVE9fU1BFRUNILlBBVVNFJykgfCB0cmFuc2xhdGVcIlxyXG4gIChjbGljayk9XCJjbGlja2VkKClcIlxyXG4+XHJcbiAgQGlmIChpc1BhdXNlZCkge1xyXG4gICAgPG1hdC1pY29uIFtzdmdJY29uXT1cIidzb3VuZCdcIj48L21hdC1pY29uPlxyXG4gIH0gQGVsc2Uge1xyXG4gICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPnBhdXNlPC9zcGFuPlxyXG4gIH1cclxuPC9idXR0b24+Il19
|
|
@@ -4,17 +4,20 @@ import { TextToSpeechComponent } from './text-to-speech.component';
|
|
|
4
4
|
import { MatButtonModule } from '@angular/material/button';
|
|
5
5
|
import { TranslateModule } from '@ngx-translate/core';
|
|
6
6
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
7
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
export class TextToSpeechModule {
|
|
9
10
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextToSpeechModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
11
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TextToSpeechModule, declarations: [TextToSpeechComponent], imports: [CommonModule,
|
|
11
12
|
MatButtonModule,
|
|
12
13
|
TranslateModule,
|
|
13
|
-
MatTooltipModule
|
|
14
|
+
MatTooltipModule,
|
|
15
|
+
MatIconModule], exports: [TextToSpeechComponent] });
|
|
14
16
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextToSpeechModule, imports: [CommonModule,
|
|
15
17
|
MatButtonModule,
|
|
16
18
|
TranslateModule,
|
|
17
|
-
MatTooltipModule
|
|
19
|
+
MatTooltipModule,
|
|
20
|
+
MatIconModule] });
|
|
18
21
|
}
|
|
19
22
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextToSpeechModule, decorators: [{
|
|
20
23
|
type: NgModule,
|
|
@@ -26,11 +29,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
26
29
|
CommonModule,
|
|
27
30
|
MatButtonModule,
|
|
28
31
|
TranslateModule,
|
|
29
|
-
MatTooltipModule
|
|
32
|
+
MatTooltipModule,
|
|
33
|
+
MatIconModule
|
|
30
34
|
],
|
|
31
35
|
exports: [
|
|
32
36
|
TextToSpeechComponent
|
|
33
37
|
]
|
|
34
38
|
}]
|
|
35
39
|
}] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC10by1zcGVlY2gubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL3RleHQtdG8tc3BlZWNoL3RleHQtdG8tc3BlZWNoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFtQnZELE1BQU0sT0FBTyxrQkFBa0I7d0dBQWxCLGtCQUFrQjt5R0FBbEIsa0JBQWtCLGlCQWIzQixxQkFBcUIsYUFHckIsWUFBWTtZQUNaLGVBQWU7WUFDZixlQUFlO1lBQ2YsZ0JBQWdCO1lBQ2hCLGFBQWEsYUFHYixxQkFBcUI7eUdBR1osa0JBQWtCLFlBVjNCLFlBQVk7WUFDWixlQUFlO1lBQ2YsZUFBZTtZQUNmLGdCQUFnQjtZQUNoQixhQUFhOzs0RkFNSixrQkFBa0I7a0JBZjlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHFCQUFxQjtxQkFDdEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsYUFBYTtxQkFDZDtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AscUJBQXFCO3FCQUN0QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFRleHRUb1NwZWVjaENvbXBvbmVudCB9IGZyb20gJy4vdGV4dC10by1zcGVlY2guY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5cclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgVGV4dFRvU3BlZWNoQ29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgVGV4dFRvU3BlZWNoQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGV4dFRvU3BlZWNoTW9kdWxlIHsgfVxyXG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, EventEmitter,
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
2
|
import { AsrClient, RecognitionStatus, SAMPLE_RATE_PLACEHOLDER } from '@tilde-nlp/asr-api-client';
|
|
3
3
|
import { AudioErrorCase } from '../models/audio-error-case.model';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -8,12 +8,7 @@ import * as i3 from "@ngbracket/ngx-layout/flex";
|
|
|
8
8
|
import * as i4 from "@angular/material/button";
|
|
9
9
|
import * as i5 from "@ngx-translate/core";
|
|
10
10
|
export class TldDictateComponent {
|
|
11
|
-
onResize() {
|
|
12
|
-
this.setCanvasWidth();
|
|
13
|
-
}
|
|
14
|
-
canvasWrapper;
|
|
15
11
|
recordLength = new Date(0, 0, 0, 0, 0, 0);
|
|
16
|
-
canvasWidth;
|
|
17
12
|
isProcessing;
|
|
18
13
|
hasAnyMicrophone;
|
|
19
14
|
// asrApiClient: ASRApiClient;
|
|
@@ -31,10 +26,6 @@ export class TldDictateComponent {
|
|
|
31
26
|
if (shouldClearSource) {
|
|
32
27
|
this.dictatedText = "";
|
|
33
28
|
}
|
|
34
|
-
if (!this.isRecording && this.interval) {
|
|
35
|
-
this.recordLength = new Date(0, 0, 0, 0, 0, 0);
|
|
36
|
-
clearInterval(this.interval);
|
|
37
|
-
}
|
|
38
29
|
}
|
|
39
30
|
_dictatedText;
|
|
40
31
|
set dictatedText(value) {
|
|
@@ -42,9 +33,6 @@ export class TldDictateComponent {
|
|
|
42
33
|
this.result.emit(this._dictatedText);
|
|
43
34
|
}
|
|
44
35
|
get dictatedText() { return this._dictatedText; }
|
|
45
|
-
audioVisualizationColor = '#0A70C2';
|
|
46
|
-
visualizataionId = "dictate-visualization";
|
|
47
|
-
interval;
|
|
48
36
|
/**
|
|
49
37
|
* Last recognized text
|
|
50
38
|
*/
|
|
@@ -66,23 +54,11 @@ export class TldDictateComponent {
|
|
|
66
54
|
startRecording() {
|
|
67
55
|
this.createClient();
|
|
68
56
|
this.asrClient.beginVoiceRecognition();
|
|
69
|
-
this.interval = setInterval(() => {
|
|
70
|
-
const recordTimeInSeconds = this.asrClient?.audioContext?.currentTime ?? 0;
|
|
71
|
-
if (this.maxLength && recordTimeInSeconds > this.maxLength) {
|
|
72
|
-
this.stopRecording();
|
|
73
|
-
this.emitError(AudioErrorCase.MAX_TIME_EXCEEDED);
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
this.recordLength = new Date(0, 0, 0, 0, 0, recordTimeInSeconds);
|
|
77
|
-
}, 1000);
|
|
78
57
|
}
|
|
79
58
|
stopRecording() {
|
|
80
59
|
this.asrClient?.endVoiceRecognition();
|
|
81
60
|
this.asrClient = null;
|
|
82
61
|
}
|
|
83
|
-
setCanvasWidth() {
|
|
84
|
-
this.canvasWidth = this.canvasWrapper?.nativeElement.offsetWidth;
|
|
85
|
-
}
|
|
86
62
|
hasAnyAudioInput() {
|
|
87
63
|
navigator.mediaDevices.enumerateDevices().then((devices) => {
|
|
88
64
|
this.hasAnyMicrophone = false;
|
|
@@ -112,17 +88,9 @@ export class TldDictateComponent {
|
|
|
112
88
|
const config = {
|
|
113
89
|
url: `${this.configuration.apiUrl}/${this._systemId}?contentType=audio/x-raw&sampleRate=${SAMPLE_RATE_PLACEHOLDER}&x-api-key=${this.configuration.apiKey}`,
|
|
114
90
|
replaceSampleRateInUrl: true,
|
|
115
|
-
visualizerConfig: {
|
|
116
|
-
visualizerId: this.visualizataionId,
|
|
117
|
-
strokeStyle: this.audioVisualizationColor
|
|
118
|
-
},
|
|
119
91
|
onResult: (result) => { this.handleResult(result); },
|
|
120
92
|
onRecordingStartStop: (isRecording) => {
|
|
121
93
|
this.isRecording = isRecording;
|
|
122
|
-
setTimeout(() => {
|
|
123
|
-
this.setCanvasWidth();
|
|
124
|
-
this.asrClient.audioVisualizer?.visualizeAudio();
|
|
125
|
-
}, 1);
|
|
126
94
|
},
|
|
127
95
|
onError: (error) => {
|
|
128
96
|
this.stopRecording();
|
|
@@ -141,18 +109,12 @@ export class TldDictateComponent {
|
|
|
141
109
|
this.asrClient = new AsrClient(config);
|
|
142
110
|
}
|
|
143
111
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TldDictateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
144
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TldDictateComponent, selector: "tld-dictate", inputs: { configuration: "configuration", systemId: "systemId" }, outputs: { result: "result", partialResult: "partialResult", isDictating: "isDictating", onError: "onError" },
|
|
112
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TldDictateComponent, selector: "tld-dictate", inputs: { configuration: "configuration", systemId: "systemId" }, outputs: { result: "result", partialResult: "partialResult", isDictating: "isDictating", onError: "onError" }, ngImport: i0, template: "<ng-container *ngIf=\"!isRecording\">\r\n\t<button\r\n\t\t[matTooltip]=\"'AUDIO.START' | translate\"\r\n\t\t[disabled]=\"!hasAnyMicrophone\"\r\n\t\tmat-icon-button\r\n\t\tfxLayoutAlign=\"center center\"\r\n\t\t(click)=\"startRecording()\"\r\n\t\t[attr.aria-label]=\"(hasAnyMicrophone ? 'AUDIO.START' : 'AUDIO.MIC_NOT_FOUND') | translate\"\r\n\t>\r\n\t\t<span class=\"material-icons\" *ngIf=\"hasAnyMicrophone\" [matTooltip]=\"'AUDIO.START' | translate\"> mic </span>\r\n\t\t<span class=\"material-icons\" [matTooltip]=\"'AUDIO.MIC_NOT_FOUND' | translate\" *ngIf=\"!hasAnyMicrophone\"> mic_off </span>\r\n\t</button>\r\n</ng-container>\r\n<ng-container *ngIf=\"isRecording\">\r\n\t<div fxLayout=\"row\" fxLayoutAlign=\"start end\">\r\n\t\t<div fxLayout=\"column\">\r\n\t\t\t<button\r\n\t\t\t\tmat-icon-button\r\n\t\t\t\tfxLayoutAlign=\"center center\"\r\n\t\t\t\t[disabled]=\"!isRecording\"\r\n\t\t\t\t(click)=\"stopRecording()\"\r\n\t\t\t\t[matTooltip]=\"'AUDIO.STOP' | translate\"\r\n\t\t\t\t[attr.aria-label]=\"'AUDIO.STOP' | translate\"\r\n\t\t\t>\r\n\t\t\t\t<span class=\"material-icons\"> stop </span>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t</div>\r\n</ng-container>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
|
|
145
113
|
}
|
|
146
114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TldDictateComponent, decorators: [{
|
|
147
115
|
type: Component,
|
|
148
|
-
args: [{ selector: 'tld-dictate', template: "<ng-container *ngIf=\"!isRecording\">\r\n
|
|
149
|
-
}], ctorParameters: () => [], propDecorators: {
|
|
150
|
-
type: HostListener,
|
|
151
|
-
args: ['window:resize', []]
|
|
152
|
-
}], canvasWrapper: [{
|
|
153
|
-
type: ViewChild,
|
|
154
|
-
args: ["canvasWrapper"]
|
|
155
|
-
}], result: [{
|
|
116
|
+
args: [{ selector: 'tld-dictate', template: "<ng-container *ngIf=\"!isRecording\">\r\n\t<button\r\n\t\t[matTooltip]=\"'AUDIO.START' | translate\"\r\n\t\t[disabled]=\"!hasAnyMicrophone\"\r\n\t\tmat-icon-button\r\n\t\tfxLayoutAlign=\"center center\"\r\n\t\t(click)=\"startRecording()\"\r\n\t\t[attr.aria-label]=\"(hasAnyMicrophone ? 'AUDIO.START' : 'AUDIO.MIC_NOT_FOUND') | translate\"\r\n\t>\r\n\t\t<span class=\"material-icons\" *ngIf=\"hasAnyMicrophone\" [matTooltip]=\"'AUDIO.START' | translate\"> mic </span>\r\n\t\t<span class=\"material-icons\" [matTooltip]=\"'AUDIO.MIC_NOT_FOUND' | translate\" *ngIf=\"!hasAnyMicrophone\"> mic_off </span>\r\n\t</button>\r\n</ng-container>\r\n<ng-container *ngIf=\"isRecording\">\r\n\t<div fxLayout=\"row\" fxLayoutAlign=\"start end\">\r\n\t\t<div fxLayout=\"column\">\r\n\t\t\t<button\r\n\t\t\t\tmat-icon-button\r\n\t\t\t\tfxLayoutAlign=\"center center\"\r\n\t\t\t\t[disabled]=\"!isRecording\"\r\n\t\t\t\t(click)=\"stopRecording()\"\r\n\t\t\t\t[matTooltip]=\"'AUDIO.STOP' | translate\"\r\n\t\t\t\t[attr.aria-label]=\"'AUDIO.STOP' | translate\"\r\n\t\t\t>\r\n\t\t\t\t<span class=\"material-icons\"> stop </span>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t</div>\r\n</ng-container>\r\n" }]
|
|
117
|
+
}], ctorParameters: () => [], propDecorators: { result: [{
|
|
156
118
|
type: Output
|
|
157
119
|
}], partialResult: [{
|
|
158
120
|
type: Output
|
|
@@ -165,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
165
127
|
}], systemId: [{
|
|
166
128
|
type: Input
|
|
167
129
|
}] } });
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLWRpY3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLWF1ZGlvL3RsZC1kaWN0YXRlL3RsZC1kaWN0YXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1hdWRpby90bGQtZGljdGF0ZS90bGQtZGljdGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLFNBQVMsRUFBMEIsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQTJCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkosT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7O0FBUWxFLE1BQU0sT0FBTyxtQkFBbUI7SUFHOUIsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRTJCLGFBQWEsQ0FBa0I7SUFDM0QsWUFBWSxHQUFTLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEQsV0FBVyxDQUFTO0lBQ3BCLFlBQVksQ0FBVTtJQUN0QixnQkFBZ0IsQ0FBVTtJQUMxQiw4QkFBOEI7SUFDOUIsU0FBUyxDQUFZO0lBQ0osbUJBQW1CLEdBQUcsaUJBQWlCLENBQUM7SUFFekQsSUFBSSxTQUFTLEtBQUssT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQSxDQUFDLENBQUM7SUFBQSxDQUFDO0lB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Z0JBQ0QsTUFBTSxLQUFLLENBQUM7WUFDZCxDQUFDO1lBQ0QsU0FBUyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3JCLElBQUksT0FBTyxLQUFLLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDM0MsQ0FBQztZQUNILENBQUM7U0FDRixDQUFBO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDO3dHQXZKVSxtQkFBbUI7NEZBQW5CLG1CQUFtQiw0WUNWaEMsK2hEQStCQTs7NEZEckJhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxhQUFhO3dEQU92QixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUU7Z0JBS0wsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQTJDaEIsTUFBTTtzQkFBZixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNFLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR08sUUFBUTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFzckNsaWVudCwgQXNyQ2xpZW50Q29uZmlndXJhdGlvbiwgUmVjb2duaXRpb25TdGF0dXMsIFNBTVBMRV9SQVRFX1BMQUNFSE9MREVSLCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCB9IGZyb20gJ0B0aWxkZS1ubHAvYXNyLWFwaS1jbGllbnQnO1xyXG5pbXBvcnQgeyBBdWRpb0Vycm9yQ2FzZSB9IGZyb20gJy4uL21vZGVscy9hdWRpby1lcnJvci1jYXNlLm1vZGVsJztcclxuaW1wb3J0IHsgSURpY3RhdGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2RpY3RhdGUtY29uZmlndXJhdGlvbmkubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0bGQtZGljdGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RsZC1kaWN0YXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90bGQtZGljdGF0ZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGREaWN0YXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFtdKVxyXG4gIG9uUmVzaXplKCkge1xyXG4gICAgdGhpcy5zZXRDYW52YXNXaWR0aCgpO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZChcImNhbnZhc1dyYXBwZXJcIikgY2FudmFzV3JhcHBlcjogRWxlbWVudFJlZjxhbnk+O1xyXG4gIHJlY29yZExlbmd0aDogRGF0ZSA9IG5ldyBEYXRlKDAsIDAsIDAsIDAsIDAsIDApO1xyXG4gIGNhbnZhc1dpZHRoOiBudW1iZXI7XHJcbiAgaXNQcm9jZXNzaW5nOiBib29sZWFuO1xyXG4gIGhhc0FueU1pY3JvcGhvbmU6IGJvb2xlYW47XHJcbiAgLy8gYXNyQXBpQ2xpZW50OiBBU1JBcGlDbGllbnQ7XHJcbiAgYXNyQ2xpZW50OiBBc3JDbGllbnQ7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBub3RBbGxvd2VkRXJyb3JOYW1lID0gXCJOb3RBbGxvd2VkRXJyb3JcIjtcclxuXHJcbiAgZ2V0IG1heExlbmd0aCgpIHsgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbj8ubWF4TGVuZ3RoIH07XHJcblxyXG4gIHByaXZhdGUgX2lzUmVjb3JkaW5nOiBib29sZWFuO1xyXG4gIGdldCBpc1JlY29yZGluZygpIHsgcmV0dXJuIHRoaXMuX2lzUmVjb3JkaW5nOyB9XHJcbiAgc2V0IGlzUmVjb3JkaW5nKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICBjb25zdCBzaG91bGRDbGVhclNvdXJjZSA9ICF0aGlzLmlzUmVjb3JkaW5nICYmIHZhbHVlO1xyXG4gICAgLy8gaWYgcmVjb3JkIGVuZGVkLCBkaWN0YXRlIHRleHQgZW1pdHRlZCBvbmUgbGFzdCB0aW1lLCBzbyBpdCB0cmFuc2xhdGVzIGF1dG9tYXRpY2FsbHkuXHJcbiAgICB0aGlzLl9pc1JlY29yZGluZyA9IHZhbHVlO1xyXG4gICAgdGhpcy5pc0RpY3RhdGluZy5lbWl0KHRoaXMuX2lzUmVjb3JkaW5nKTtcclxuICAgIGlmIChzaG91bGRDbGVhclNvdXJjZSkge1xyXG4gICAgICB0aGlzLmRpY3RhdGVkVGV4dCA9IFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLmlzUmVjb3JkaW5nICYmIHRoaXMuaW50ZXJ2YWwpIHtcclxuICAgICAgdGhpcy5yZWNvcmRMZW5ndGggPSBuZXcgRGF0ZSgwLCAwLCAwLCAwLCAwLCAwKTtcclxuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2RpY3RhdGVkVGV4dDogc3RyaW5nO1xyXG4gIHNldCBkaWN0YXRlZFRleHQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fZGljdGF0ZWRUZXh0ID0gdmFsdWU7XHJcbiAgICB0aGlzLnJlc3VsdC5lbWl0KHRoaXMuX2RpY3RhdGVkVGV4dCk7XHJcbiAgfVxyXG4gIGdldCBkaWN0YXRlZFRleHQoKSB7IHJldHVybiB0aGlzLl9kaWN0YXRlZFRleHQ7IH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBhdWRpb1Zpc3VhbGl6YXRpb25Db2xvciA9ICcjMEE3MEMyJztcclxuXHJcbiAgcmVhZG9ubHkgdmlzdWFsaXphdGFpb25JZCA9IFwiZGljdGF0ZS12aXN1YWxpemF0aW9uXCI7XHJcbiAgcHJpdmF0ZSBpbnRlcnZhbDogYW55O1xyXG5cclxuICAvKipcclxuICAgKiBMYXN0IHJlY29nbml6ZWQgdGV4dFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByZXN1bHQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIHBhcnRpYWxSZXN1bHQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIGlzRGljdGF0aW5nOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQE91dHB1dCgpIG9uRXJyb3I6IEV2ZW50RW1pdHRlcjxBdWRpb0Vycm9yQ2FzZT4gPSBuZXcgRXZlbnRFbWl0dGVyPEF1ZGlvRXJyb3JDYXNlPigpO1xyXG4gIEBJbnB1dCgpIGNvbmZpZ3VyYXRpb246IElEaWN0YXRlQ29uZmlndXJhdGlvbjtcclxuXHJcbiAgcHJpdmF0ZSBfc3lzdGVtSWQ6IHN0cmluZztcclxuICBASW5wdXQoKSBzZXQgc3lzdGVtSWQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fc3lzdGVtSWQgPSB2YWx1ZTtcclxuICAgIHRoaXMuc3RvcFJlY29yZGluZygpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaGFzQW55QXVkaW9JbnB1dCgpO1xyXG4gIH1cclxuXHJcbiAgc3RhcnRSZWNvcmRpbmcoKSB7XHJcbiAgICB0aGlzLmNyZWF0ZUNsaWVudCgpO1xyXG4gICAgdGhpcy5hc3JDbGllbnQuYmVnaW5Wb2ljZVJlY29nbml0aW9uKCk7XHJcbiAgICB0aGlzLmludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICBjb25zdCByZWNvcmRUaW1lSW5TZWNvbmRzID0gdGhpcy5hc3JDbGllbnQ/LmF1ZGlvQ29udGV4dD8uY3VycmVudFRpbWUgPz8gMDtcclxuICAgICAgaWYgKHRoaXMubWF4TGVuZ3RoICYmIHJlY29yZFRpbWVJblNlY29uZHMgPiB0aGlzLm1heExlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuc3RvcFJlY29yZGluZygpO1xyXG4gICAgICAgIHRoaXMuZW1pdEVycm9yKEF1ZGlvRXJyb3JDYXNlLk1BWF9USU1FX0VYQ0VFREVEKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yZWNvcmRMZW5ndGggPSBuZXcgRGF0ZSgwLCAwLCAwLCAwLCAwLCByZWNvcmRUaW1lSW5TZWNvbmRzKTtcclxuICAgIH0sIDEwMDApO1xyXG4gIH1cclxuXHJcbiAgc3RvcFJlY29yZGluZygpIHtcclxuICAgIHRoaXMuYXNyQ2xpZW50Py5lbmRWb2ljZVJlY29nbml0aW9uKCk7XHJcbiAgICB0aGlzLmFzckNsaWVudCA9IG51bGw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENhbnZhc1dpZHRoKCkge1xyXG4gICAgdGhpcy5jYW52YXNXaWR0aCA9IHRoaXMuY2FudmFzV3JhcHBlcj8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzQW55QXVkaW9JbnB1dCgpIHtcclxuICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpLnRoZW4oKGRldmljZXM6IE1lZGlhRGV2aWNlSW5mb1tdKSA9PiB7XHJcbiAgICAgIHRoaXMuaGFzQW55TWljcm9waG9uZSA9IGZhbHNlO1xyXG4gICAgICBmb3IgKGNvbnN0IGRldmljZSBvZiBkZXZpY2VzKSB7XHJcbiAgICAgICAgaWYgKGRldmljZS5raW5kID09PSBcImF1ZGlvaW5wdXRcIikge1xyXG4gICAgICAgICAgdGhpcy5oYXNBbnlNaWNyb3Bob25lID0gdHJ1ZTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVSZXN1bHQocmVzdWx0OiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCkge1xyXG4gICAgLy8gbm90IG5lY2Vzc2FyeSB0byBkaXNwbGF5IDx1bms+IHRhZ3NcclxuICAgIGNvbnN0IHJlc3VsdFRleHQgPSByZXN1bHQuaHlwb3RoZXNlc1swXS50cmFuc2NyaXB0Py5yZXBsYWNlKFwiPHVuaz5cIiwgXCJcIik7XHJcbiAgICBpZiAocmVzdWx0LmZpbmFsKSB7XHJcbiAgICAgIGxldCB0ZXh0ID0gKHRoaXMuZGljdGF0ZWRUZXh0Lmxlbmd0aCA+IDAgPyBcIiBcIiA6IFwiXCIpICsgcmVzdWx0VGV4dCArIChyZXN1bHRUZXh0LmVuZHNXaXRoKFwiLlwiKSA/IFwiXCIgOiBcIi5cIik7XHJcbiAgICAgIHRoaXMuZGljdGF0ZWRUZXh0ICs9IHRleHQ7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5wYXJ0aWFsUmVzdWx0LmVtaXQocmVzdWx0VGV4dCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGVtaXRFcnJvcihlcnJvcjogQXVkaW9FcnJvckNhc2UpIHtcclxuICAgIHRoaXMub25FcnJvci5lbWl0KGVycm9yKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ2xpZW50KCkge1xyXG4gICAgY29uc3QgY29uZmlnOiBBc3JDbGllbnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICB1cmw6IGAke3RoaXMuY29uZmlndXJhdGlvbi5hcGlVcmx9LyR7dGhpcy5fc3lzdGVtSWR9P2NvbnRlbnRUeXBlPWF1ZGlvL3gtcmF3JnNhbXBsZVJhdGU9JHtTQU1QTEVfUkFURV9QTEFDRUhPTERFUn0meC1hcGkta2V5PSR7dGhpcy5jb25maWd1cmF0aW9uLmFwaUtleX1gLFxyXG4gICAgICByZXBsYWNlU2FtcGxlUmF0ZUluVXJsOiB0cnVlLFxyXG4gICAgICB2aXN1YWxpemVyQ29uZmlnOiB7XHJcbiAgICAgICAgdmlzdWFsaXplcklkOiB0aGlzLnZpc3VhbGl6YXRhaW9uSWQsXHJcbiAgICAgICAgc3Ryb2tlU3R5bGU6IHRoaXMuYXVkaW9WaXN1YWxpemF0aW9uQ29sb3JcclxuICAgICAgfSxcclxuICAgICAgb25SZXN1bHQ6IChyZXN1bHQpID0+IHsgdGhpcy5oYW5kbGVSZXN1bHQocmVzdWx0IGFzIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0KSB9LFxyXG4gICAgICBvblJlY29yZGluZ1N0YXJ0U3RvcDogKGlzUmVjb3JkaW5nKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1JlY29yZGluZyA9IGlzUmVjb3JkaW5nO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRDYW52YXNXaWR0aCgpO1xyXG4gICAgICAgICAgdGhpcy5hc3JDbGllbnQuYXVkaW9WaXN1YWxpemVyPy52aXN1YWxpemVBdWRpbygpO1xyXG4gICAgICAgIH0sIDEpO1xyXG4gICAgICB9LFxyXG4gICAgICBvbkVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICB0aGlzLnN0b3BSZWNvcmRpbmcoKTtcclxuICAgICAgICBpZiAoZXJyb3IubmFtZSA9PT0gdGhpcy5ub3RBbGxvd2VkRXJyb3JOYW1lKSB7XHJcbiAgICAgICAgICB0aGlzLmVtaXRFcnJvcihBdWRpb0Vycm9yQ2FzZS5NSUNfTk9UX0FMTE9XRUQpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgfSxcclxuICAgICAgb25NZXNzYWdlOiAobWVzc2FnZSkgPT4ge1xyXG4gICAgICAgIGlmIChtZXNzYWdlID09PSBSZWNvZ25pdGlvblN0YXR1cy5Ob1NwZWVjaCkge1xyXG4gICAgICAgICAgdGhpcy5lbWl0RXJyb3IoQXVkaW9FcnJvckNhc2UuTk9fU1BFRUNIKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuYXNyQ2xpZW50ID0gbmV3IEFzckNsaWVudChjb25maWcpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzUmVjb3JkaW5nXCI+XHJcbiAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCIhaGFzQW55TWljcm9waG9uZVwiIG1hdC1pY29uLWJ1dHRvbiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXHJcbiAgICAgICAgKGNsaWNrKT1cInN0YXJ0UmVjb3JkaW5nKClcIiBjb2xvcj1cImFjY2VudFwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIoaGFzQW55TWljcm9waG9uZT8nQVVESU8uU1RBUlQnOidBVURJTy5NSUNfTk9UX0ZPVU5EJykgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCIgKm5nSWY9XCJoYXNBbnlNaWNyb3Bob25lXCIgY29sb3I9XCJhY2NlbnRcIiBbbWF0VG9vbHRpcF09XCInQVVESU8uU1RBUlQnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgIG1pY1xyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCIgW21hdFRvb2x0aXBdPVwiJ0FVRElPLk1JQ19OT1RfRk9VTkQnIHwgdHJhbnNsYXRlXCIgKm5nSWY9XCIhaGFzQW55TWljcm9waG9uZVwiPlxyXG4gICAgICAgICAgICBtaWNfb2ZmXHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbjwvbmctY29udGFpbmVyPlxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiaXNSZWNvcmRpbmdcIj5cclxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgZW5kXCI+XHJcbiAgICAgICAgPGRpdiBmeExheW91dD1jb2x1bW4+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgW2Rpc2FibGVkXT1cIiFpc1JlY29yZGluZ1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic3RvcFJlY29yZGluZygpXCIgY29sb3I9XCJhY2NlbnRcIiBbbWF0VG9vbHRpcF09XCInQVVESU8uU1RPUCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQVVESU8uU1RPUCcgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICBzdG9wXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGxkLWF1ZGlvLXRpbWVyXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7cmVjb3JkTGVuZ3RoIHwgZGF0ZTogJ21tOnNzJ319XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgZnhGbGV4ICNjYW52YXNXcmFwcGVyPlxyXG4gICAgICAgICAgICA8Y2FudmFzIFthdHRyLndpZHRoXT1cImNhbnZhc1dpZHRoXCIgaGVpZ2h0PVwiNjBcIiBbYXR0ci5pZF09XCJ2aXN1YWxpemF0YWlvbklkXCI+PC9jYW52YXM+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLWRpY3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLWF1ZGlvL3RsZC1kaWN0YXRlL3RsZC1kaWN0YXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1hdWRpby90bGQtZGljdGF0ZS90bGQtZGljdGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQTBCLGlCQUFpQixFQUFFLHVCQUF1QixFQUEyQixNQUFNLDJCQUEyQixDQUFDO0FBQ25KLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7OztBQVFsRSxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQVksR0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hELFlBQVksQ0FBVTtJQUN0QixnQkFBZ0IsQ0FBVTtJQUMxQiw4QkFBOEI7SUFDOUIsU0FBUyxDQUFZO0lBQ0osbUJBQW1CLEdBQUcsaUJBQWlCLENBQUM7SUFFekQsSUFBSSxTQUFTLEtBQUssT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQSxDQUFDLENBQUM7SUFBQSxDQUFDO0lBRWpELFlBQVksQ0FBVTtJQUM5QixJQUFJLFdBQVcsS0FBSyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQy9DLElBQUksV0FBVyxDQUFDLEtBQWM7UUFDNUIsTUFB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LENBQUM7SUFDekMsQ0FBQzt3R0FoSFUsbUJBQW1COzRGQUFuQixtQkFBbUIsb09DVmhDLHdwQ0E2QkE7OzRGRG5CYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsYUFBYTt3REFvQ2IsTUFBTTtzQkFBZixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNFLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR08sUUFBUTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXNyQ2xpZW50LCBBc3JDbGllbnRDb25maWd1cmF0aW9uLCBSZWNvZ25pdGlvblN0YXR1cywgU0FNUExFX1JBVEVfUExBQ0VIT0xERVIsIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IH0gZnJvbSAnQHRpbGRlLW5scC9hc3ItYXBpLWNsaWVudCc7XHJcbmltcG9ydCB7IEF1ZGlvRXJyb3JDYXNlIH0gZnJvbSAnLi4vbW9kZWxzL2F1ZGlvLWVycm9yLWNhc2UubW9kZWwnO1xyXG5pbXBvcnQgeyBJRGljdGF0ZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9tb2RlbHMvZGljdGF0ZS1jb25maWd1cmF0aW9uaS5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RsZC1kaWN0YXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGxkLWRpY3RhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RsZC1kaWN0YXRlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZERpY3RhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHJlY29yZExlbmd0aDogRGF0ZSA9IG5ldyBEYXRlKDAsIDAsIDAsIDAsIDAsIDApO1xyXG4gIGlzUHJvY2Vzc2luZzogYm9vbGVhbjtcclxuICBoYXNBbnlNaWNyb3Bob25lOiBib29sZWFuO1xyXG4gIC8vIGFzckFwaUNsaWVudDogQVNSQXBpQ2xpZW50O1xyXG4gIGFzckNsaWVudDogQXNyQ2xpZW50O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbm90QWxsb3dlZEVycm9yTmFtZSA9IFwiTm90QWxsb3dlZEVycm9yXCI7XHJcblxyXG4gIGdldCBtYXhMZW5ndGgoKSB7IHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb24/Lm1heExlbmd0aCB9O1xyXG5cclxuICBwcml2YXRlIF9pc1JlY29yZGluZzogYm9vbGVhbjtcclxuICBnZXQgaXNSZWNvcmRpbmcoKSB7IHJldHVybiB0aGlzLl9pc1JlY29yZGluZzsgfVxyXG4gIHNldCBpc1JlY29yZGluZyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgY29uc3Qgc2hvdWxkQ2xlYXJTb3VyY2UgPSAhdGhpcy5pc1JlY29yZGluZyAmJiB2YWx1ZTtcclxuICAgIC8vIGlmIHJlY29yZCBlbmRlZCwgZGljdGF0ZSB0ZXh0IGVtaXR0ZWQgb25lIGxhc3QgdGltZSwgc28gaXQgdHJhbnNsYXRlcyBhdXRvbWF0aWNhbGx5LlxyXG4gICAgdGhpcy5faXNSZWNvcmRpbmcgPSB2YWx1ZTtcclxuICAgIHRoaXMuaXNEaWN0YXRpbmcuZW1pdCh0aGlzLl9pc1JlY29yZGluZyk7XHJcbiAgICBpZiAoc2hvdWxkQ2xlYXJTb3VyY2UpIHtcclxuICAgICAgdGhpcy5kaWN0YXRlZFRleHQgPSBcIlwiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZGljdGF0ZWRUZXh0OiBzdHJpbmc7XHJcbiAgc2V0IGRpY3RhdGVkVGV4dCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9kaWN0YXRlZFRleHQgPSB2YWx1ZTtcclxuICAgIHRoaXMucmVzdWx0LmVtaXQodGhpcy5fZGljdGF0ZWRUZXh0KTtcclxuICB9XHJcbiAgZ2V0IGRpY3RhdGVkVGV4dCgpIHsgcmV0dXJuIHRoaXMuX2RpY3RhdGVkVGV4dDsgfVxyXG5cclxuICAvKipcclxuICAgKiBMYXN0IHJlY29nbml6ZWQgdGV4dFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByZXN1bHQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIHBhcnRpYWxSZXN1bHQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIGlzRGljdGF0aW5nOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQE91dHB1dCgpIG9uRXJyb3I6IEV2ZW50RW1pdHRlcjxBdWRpb0Vycm9yQ2FzZT4gPSBuZXcgRXZlbnRFbWl0dGVyPEF1ZGlvRXJyb3JDYXNlPigpO1xyXG4gIEBJbnB1dCgpIGNvbmZpZ3VyYXRpb246IElEaWN0YXRlQ29uZmlndXJhdGlvbjtcclxuXHJcbiAgcHJpdmF0ZSBfc3lzdGVtSWQ6IHN0cmluZztcclxuICBASW5wdXQoKSBzZXQgc3lzdGVtSWQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fc3lzdGVtSWQgPSB2YWx1ZTtcclxuICAgIHRoaXMuc3RvcFJlY29yZGluZygpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaGFzQW55QXVkaW9JbnB1dCgpO1xyXG4gIH1cclxuXHJcbiAgc3RhcnRSZWNvcmRpbmcoKSB7XHJcbiAgICB0aGlzLmNyZWF0ZUNsaWVudCgpO1xyXG4gICAgdGhpcy5hc3JDbGllbnQuYmVnaW5Wb2ljZVJlY29nbml0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzdG9wUmVjb3JkaW5nKCkge1xyXG4gICAgdGhpcy5hc3JDbGllbnQ/LmVuZFZvaWNlUmVjb2duaXRpb24oKTtcclxuICAgIHRoaXMuYXNyQ2xpZW50ID0gbnVsbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzQW55QXVkaW9JbnB1dCgpIHtcclxuICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpLnRoZW4oKGRldmljZXM6IE1lZGlhRGV2aWNlSW5mb1tdKSA9PiB7XHJcbiAgICAgIHRoaXMuaGFzQW55TWljcm9waG9uZSA9IGZhbHNlO1xyXG4gICAgICBmb3IgKGNvbnN0IGRldmljZSBvZiBkZXZpY2VzKSB7XHJcbiAgICAgICAgaWYgKGRldmljZS5raW5kID09PSBcImF1ZGlvaW5wdXRcIikge1xyXG4gICAgICAgICAgdGhpcy5oYXNBbnlNaWNyb3Bob25lID0gdHJ1ZTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVSZXN1bHQocmVzdWx0OiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCkge1xyXG4gICAgLy8gbm90IG5lY2Vzc2FyeSB0byBkaXNwbGF5IDx1bms+IHRhZ3NcclxuICAgIGNvbnN0IHJlc3VsdFRleHQgPSByZXN1bHQuaHlwb3RoZXNlc1swXS50cmFuc2NyaXB0Py5yZXBsYWNlKFwiPHVuaz5cIiwgXCJcIik7XHJcbiAgICBpZiAocmVzdWx0LmZpbmFsKSB7XHJcbiAgICAgIGxldCB0ZXh0ID0gKHRoaXMuZGljdGF0ZWRUZXh0Lmxlbmd0aCA+IDAgPyBcIiBcIiA6IFwiXCIpICsgcmVzdWx0VGV4dCArIChyZXN1bHRUZXh0LmVuZHNXaXRoKFwiLlwiKSA/IFwiXCIgOiBcIi5cIik7XHJcbiAgICAgIHRoaXMuZGljdGF0ZWRUZXh0ICs9IHRleHQ7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5wYXJ0aWFsUmVzdWx0LmVtaXQocmVzdWx0VGV4dCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGVtaXRFcnJvcihlcnJvcjogQXVkaW9FcnJvckNhc2UpIHtcclxuICAgIHRoaXMub25FcnJvci5lbWl0KGVycm9yKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ2xpZW50KCkge1xyXG4gICAgY29uc3QgY29uZmlnOiBBc3JDbGllbnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICB1cmw6IGAke3RoaXMuY29uZmlndXJhdGlvbi5hcGlVcmx9LyR7dGhpcy5fc3lzdGVtSWR9P2NvbnRlbnRUeXBlPWF1ZGlvL3gtcmF3JnNhbXBsZVJhdGU9JHtTQU1QTEVfUkFURV9QTEFDRUhPTERFUn0meC1hcGkta2V5PSR7dGhpcy5jb25maWd1cmF0aW9uLmFwaUtleX1gLFxyXG4gICAgICByZXBsYWNlU2FtcGxlUmF0ZUluVXJsOiB0cnVlLFxyXG4gICAgICBvblJlc3VsdDogKHJlc3VsdCkgPT4geyB0aGlzLmhhbmRsZVJlc3VsdChyZXN1bHQgYXMgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQpIH0sXHJcbiAgICAgIG9uUmVjb3JkaW5nU3RhcnRTdG9wOiAoaXNSZWNvcmRpbmcpID0+IHtcclxuICAgICAgICB0aGlzLmlzUmVjb3JkaW5nID0gaXNSZWNvcmRpbmc7XHJcbiAgICAgIH0sXHJcbiAgICAgIG9uRXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMuc3RvcFJlY29yZGluZygpO1xyXG4gICAgICAgIGlmIChlcnJvci5uYW1lID09PSB0aGlzLm5vdEFsbG93ZWRFcnJvck5hbWUpIHtcclxuICAgICAgICAgIHRoaXMuZW1pdEVycm9yKEF1ZGlvRXJyb3JDYXNlLk1JQ19OT1RfQUxMT1dFRCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICB9LFxyXG4gICAgICBvbk1lc3NhZ2U6IChtZXNzYWdlKSA9PiB7XHJcbiAgICAgICAgaWYgKG1lc3NhZ2UgPT09IFJlY29nbml0aW9uU3RhdHVzLk5vU3BlZWNoKSB7XHJcbiAgICAgICAgICB0aGlzLmVtaXRFcnJvcihBdWRpb0Vycm9yQ2FzZS5OT19TUEVFQ0gpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5hc3JDbGllbnQgPSBuZXcgQXNyQ2xpZW50KGNvbmZpZyk7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNSZWNvcmRpbmdcIj5cclxuXHQ8YnV0dG9uXHJcblx0XHRbbWF0VG9vbHRpcF09XCInQVVESU8uU1RBUlQnIHwgdHJhbnNsYXRlXCJcclxuXHRcdFtkaXNhYmxlZF09XCIhaGFzQW55TWljcm9waG9uZVwiXHJcblx0XHRtYXQtaWNvbi1idXR0b25cclxuXHRcdGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcclxuXHRcdChjbGljayk9XCJzdGFydFJlY29yZGluZygpXCJcclxuXHRcdFthdHRyLmFyaWEtbGFiZWxdPVwiKGhhc0FueU1pY3JvcGhvbmUgPyAnQVVESU8uU1RBUlQnIDogJ0FVRElPLk1JQ19OT1RfRk9VTkQnKSB8IHRyYW5zbGF0ZVwiXHJcblx0PlxyXG5cdFx0PHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiICpuZ0lmPVwiaGFzQW55TWljcm9waG9uZVwiIFttYXRUb29sdGlwXT1cIidBVURJTy5TVEFSVCcgfCB0cmFuc2xhdGVcIj4gbWljIDwvc3Bhbj5cclxuXHRcdDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBbbWF0VG9vbHRpcF09XCInQVVESU8uTUlDX05PVF9GT1VORCcgfCB0cmFuc2xhdGVcIiAqbmdJZj1cIiFoYXNBbnlNaWNyb3Bob25lXCI+IG1pY19vZmYgPC9zcGFuPlxyXG5cdDwvYnV0dG9uPlxyXG48L25nLWNvbnRhaW5lcj5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUmVjb3JkaW5nXCI+XHJcblx0PGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBlbmRcIj5cclxuXHRcdDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIj5cclxuXHRcdFx0PGJ1dHRvblxyXG5cdFx0XHRcdG1hdC1pY29uLWJ1dHRvblxyXG5cdFx0XHRcdGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcclxuXHRcdFx0XHRbZGlzYWJsZWRdPVwiIWlzUmVjb3JkaW5nXCJcclxuXHRcdFx0XHQoY2xpY2spPVwic3RvcFJlY29yZGluZygpXCJcclxuXHRcdFx0XHRbbWF0VG9vbHRpcF09XCInQVVESU8uU1RPUCcgfCB0cmFuc2xhdGVcIlxyXG5cdFx0XHRcdFthdHRyLmFyaWEtbGFiZWxdPVwiJ0FVRElPLlNUT1AnIHwgdHJhbnNsYXRlXCJcclxuXHRcdFx0PlxyXG5cdFx0XHRcdDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj4gc3RvcCA8L3NwYW4+XHJcblx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
|
|
@@ -23,11 +23,11 @@ export class SourceAndTargetWrapperComponent {
|
|
|
23
23
|
this.clearButton?.clearButton.focus();
|
|
24
24
|
}
|
|
25
25
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SourceAndTargetWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SourceAndTargetWrapperComponent, selector: "tld-source-and-target-wrapper", inputs: { clearSourceVisible: "clearSourceVisible", clearSourceTooltip: "clearSourceTooltip", clearDisabled: "clearDisabled", textToSpeechSourceSettings: "textToSpeechSourceSettings" }, outputs: { onSourceClear: "onSourceClear" }, viewQueries: [{ propertyName: "clearButton", first: true, predicate: ["clearButton"], descendants: true }], ngImport: i0, template: "<div fxLayout=\"row\" class=\"source-target-wrapper\" fxLayout.lt-md=\"column\">\r\n <div class=\"source-wrapper\" [ngClass.gt-sm]=\"'tld-default-border-right'\" [ngClass.lt-md]=\"'tld-default-border-bottom'\"\r\n fxFlex fxLayout=\"column\">\r\n <div fxLayout=\"column\" class=\"source-wrapper-action-buttons\">\r\n <tld-close-button [tooltip]=\"clearSourceTooltip\" #clearButton (tldClick)=\"clearSource()\"\r\n *ngIf=\"clearSourceVisible\" [disabled]=\"clearDisabled\"></tld-close-button>\r\n <tld-text-to-speech *ngIf=\"textToSpeechSourceSettings\" [settings]=\"textToSpeechSourceSettings\">\r\n </tld-text-to-speech>\r\n </div>\r\n <div class=\"source-container\" fxFlex>\r\n <ng-content select=\"[sourceMain]\"></ng-content>\r\n </div>\r\n <div class=\"source-action-wrapper\">\r\n <ng-content select=\"[sourceActions]\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"target-wrapper\" fxLayout=\"column\" fxFlex=\"50\">\r\n <div class=\"target-container\" fxFlex cdkScrollable>\r\n <ng-content select=\"[targetMain]\"></ng-content>\r\n </div>\r\n <div class=\"target-action-wrapper\">\r\n <ng-content select=\"[targetActions]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["tld-text-to-speech,tld-close-button{margin:.2em}.source-wrapper{position:relative}.source-wrapper .source-wrapper-action-buttons{position:absolute;top:0;right:0;z-index:2}.target-container,.source-container{flex:1 1 0!important}.source-container-wrapper,.target-container-wrapper,.source-target-wrapper{height:100%}.source-container,.target-container{overflow-y:auto}.target-wrapper{background:#fff;position:relative}:host{height:100%;max-height:100%}:host.empty-target .target-wrapper{background:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CloseButtonComponent, selector: "tld-close-button", inputs: ["ariaCode", "disabled", "tooltip"], outputs: ["tldClick"] }, { kind: "component", type: i3.TextToSpeechComponent, selector: "tld-text-to-speech", inputs: ["settings"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i5.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i6.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }] });
|
|
26
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SourceAndTargetWrapperComponent, selector: "tld-source-and-target-wrapper", inputs: { clearSourceVisible: "clearSourceVisible", clearSourceTooltip: "clearSourceTooltip", clearDisabled: "clearDisabled", textToSpeechSourceSettings: "textToSpeechSourceSettings" }, outputs: { onSourceClear: "onSourceClear" }, viewQueries: [{ propertyName: "clearButton", first: true, predicate: ["clearButton"], descendants: true }], ngImport: i0, template: "<div fxLayout=\"row\" class=\"source-target-wrapper\" fxLayout.lt-md=\"column\">\r\n <div class=\"source-wrapper\" [ngClass.gt-sm]=\"'tld-default-border-right'\" [ngClass.lt-md]=\"'tld-default-border-bottom'\"\r\n fxFlex fxLayout=\"column\">\r\n <div fxLayout=\"column\" class=\"source-wrapper-action-buttons\">\r\n <tld-close-button [tooltip]=\"clearSourceTooltip\" #clearButton (tldClick)=\"clearSource()\"\r\n *ngIf=\"clearSourceVisible\" [disabled]=\"clearDisabled\"></tld-close-button>\r\n <ng-content select=\"[dictation]\"></ng-content>\r\n <tld-text-to-speech *ngIf=\"textToSpeechSourceSettings\" [settings]=\"textToSpeechSourceSettings\">\r\n </tld-text-to-speech>\r\n </div>\r\n <div class=\"source-container\" fxFlex>\r\n <ng-content select=\"[sourceMain]\"></ng-content>\r\n </div>\r\n <div class=\"source-action-wrapper\">\r\n <ng-content select=\"[sourceActions]\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"target-wrapper\" fxLayout=\"column\" fxFlex=\"50\">\r\n <div class=\"target-container\" fxFlex cdkScrollable>\r\n <ng-content select=\"[targetMain]\"></ng-content>\r\n </div>\r\n <div class=\"target-action-wrapper\">\r\n <ng-content select=\"[targetActions]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["tld-text-to-speech,tld-close-button{margin:.2em}.source-wrapper{position:relative}.source-wrapper .source-wrapper-action-buttons{position:absolute;top:0;right:0;z-index:2}.target-container,.source-container{flex:1 1 0!important}.source-container-wrapper,.target-container-wrapper,.source-target-wrapper{height:100%}.source-container,.target-container{overflow-y:auto}.target-wrapper{background:#fff;position:relative}:host{height:100%;max-height:100%}:host.empty-target .target-wrapper{background:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CloseButtonComponent, selector: "tld-close-button", inputs: ["ariaCode", "disabled", "tooltip"], outputs: ["tldClick"] }, { kind: "component", type: i3.TextToSpeechComponent, selector: "tld-text-to-speech", inputs: ["settings"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i5.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i6.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }] });
|
|
27
27
|
}
|
|
28
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SourceAndTargetWrapperComponent, decorators: [{
|
|
29
29
|
type: Component,
|
|
30
|
-
args: [{ selector: 'tld-source-and-target-wrapper', template: "<div fxLayout=\"row\" class=\"source-target-wrapper\" fxLayout.lt-md=\"column\">\r\n <div class=\"source-wrapper\" [ngClass.gt-sm]=\"'tld-default-border-right'\" [ngClass.lt-md]=\"'tld-default-border-bottom'\"\r\n fxFlex fxLayout=\"column\">\r\n <div fxLayout=\"column\" class=\"source-wrapper-action-buttons\">\r\n <tld-close-button [tooltip]=\"clearSourceTooltip\" #clearButton (tldClick)=\"clearSource()\"\r\n *ngIf=\"clearSourceVisible\" [disabled]=\"clearDisabled\"></tld-close-button>\r\n <tld-text-to-speech *ngIf=\"textToSpeechSourceSettings\" [settings]=\"textToSpeechSourceSettings\">\r\n </tld-text-to-speech>\r\n </div>\r\n <div class=\"source-container\" fxFlex>\r\n <ng-content select=\"[sourceMain]\"></ng-content>\r\n </div>\r\n <div class=\"source-action-wrapper\">\r\n <ng-content select=\"[sourceActions]\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"target-wrapper\" fxLayout=\"column\" fxFlex=\"50\">\r\n <div class=\"target-container\" fxFlex cdkScrollable>\r\n <ng-content select=\"[targetMain]\"></ng-content>\r\n </div>\r\n <div class=\"target-action-wrapper\">\r\n <ng-content select=\"[targetActions]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["tld-text-to-speech,tld-close-button{margin:.2em}.source-wrapper{position:relative}.source-wrapper .source-wrapper-action-buttons{position:absolute;top:0;right:0;z-index:2}.target-container,.source-container{flex:1 1 0!important}.source-container-wrapper,.target-container-wrapper,.source-target-wrapper{height:100%}.source-container,.target-container{overflow-y:auto}.target-wrapper{background:#fff;position:relative}:host{height:100%;max-height:100%}:host.empty-target .target-wrapper{background:#fff}\n"] }]
|
|
30
|
+
args: [{ selector: 'tld-source-and-target-wrapper', template: "<div fxLayout=\"row\" class=\"source-target-wrapper\" fxLayout.lt-md=\"column\">\r\n <div class=\"source-wrapper\" [ngClass.gt-sm]=\"'tld-default-border-right'\" [ngClass.lt-md]=\"'tld-default-border-bottom'\"\r\n fxFlex fxLayout=\"column\">\r\n <div fxLayout=\"column\" class=\"source-wrapper-action-buttons\">\r\n <tld-close-button [tooltip]=\"clearSourceTooltip\" #clearButton (tldClick)=\"clearSource()\"\r\n *ngIf=\"clearSourceVisible\" [disabled]=\"clearDisabled\"></tld-close-button>\r\n <ng-content select=\"[dictation]\"></ng-content>\r\n <tld-text-to-speech *ngIf=\"textToSpeechSourceSettings\" [settings]=\"textToSpeechSourceSettings\">\r\n </tld-text-to-speech>\r\n </div>\r\n <div class=\"source-container\" fxFlex>\r\n <ng-content select=\"[sourceMain]\"></ng-content>\r\n </div>\r\n <div class=\"source-action-wrapper\">\r\n <ng-content select=\"[sourceActions]\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"target-wrapper\" fxLayout=\"column\" fxFlex=\"50\">\r\n <div class=\"target-container\" fxFlex cdkScrollable>\r\n <ng-content select=\"[targetMain]\"></ng-content>\r\n </div>\r\n <div class=\"target-action-wrapper\">\r\n <ng-content select=\"[targetActions]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["tld-text-to-speech,tld-close-button{margin:.2em}.source-wrapper{position:relative}.source-wrapper .source-wrapper-action-buttons{position:absolute;top:0;right:0;z-index:2}.target-container,.source-container{flex:1 1 0!important}.source-container-wrapper,.target-container-wrapper,.source-target-wrapper{height:100%}.source-container,.target-container{overflow-y:auto}.target-wrapper{background:#fff;position:relative}:host{height:100%;max-height:100%}:host.empty-target .target-wrapper{background:#fff}\n"] }]
|
|
31
31
|
}], ctorParameters: () => [], propDecorators: { clearButton: [{
|
|
32
32
|
type: ViewChild,
|
|
33
33
|
args: ["clearButton"]
|
|
@@ -42,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
42
42
|
}], onSourceClear: [{
|
|
43
43
|
type: Output
|
|
44
44
|
}] } });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWFuZC10YXJnZXQtd3JhcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtY29tbW9uL2NvbXBvbmVudHMvc291cmNlLWFuZC10YXJnZXQtd3JhcHBlci9zb3VyY2UtYW5kLXRhcmdldC13cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC1jb21tb24vY29tcG9uZW50cy9zb3VyY2UtYW5kLXRhcmdldC13cmFwcGVyL3NvdXJjZS1hbmQtdGFyZ2V0LXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBUzFGLE1BQU0sT0FBTywrQkFBK0I7SUFFaEIsV0FBVyxDQUF1QjtJQUVuRCxrQkFBa0IsQ0FBVTtJQUM1QixrQkFBa0IsQ0FBUztJQUMzQixhQUFhLENBQVU7SUFDdkIsMEJBQTBCLENBQXVCO0lBRWhELGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ2xELGdCQUFnQixDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3hDLENBQUM7d0dBckJVLCtCQUErQjs0RkFBL0IsK0JBQStCLHdaQ1Q1Qyw2eUNBMEJBOzs0RkRqQmEsK0JBQStCO2tCQUwzQyxTQUFTOytCQUNFLCtCQUErQjt3REFNZixXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBRWYsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENsb3NlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtY29tbW9uJztcclxuaW1wb3J0IHsgVGV4dFRvU3BlZWNoU2V0dGluZ3MgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL3NoYXJlZC90ZXh0LXRvLXNwZWVjaC9tb2RlbHMvdGV4dC10by1zcGVlY2gtc2V0dGluZ3MubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0bGQtc291cmNlLWFuZC10YXJnZXQtd3JhcHBlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NvdXJjZS1hbmQtdGFyZ2V0LXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NvdXJjZS1hbmQtdGFyZ2V0LXdyYXBwZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU291cmNlQW5kVGFyZ2V0V3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJjbGVhckJ1dHRvblwiKSBjbGVhckJ1dHRvbjogQ2xvc2VCdXR0b25Db21wb25lbnQ7XHJcblxyXG4gIEBJbnB1dCgpIGNsZWFyU291cmNlVmlzaWJsZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBjbGVhclNvdXJjZVRvb2x0aXA6IHN0cmluZztcclxuICBASW5wdXQoKSBjbGVhckRpc2FibGVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHRleHRUb1NwZWVjaFNvdXJjZVNldHRpbmdzOiBUZXh0VG9TcGVlY2hTZXR0aW5ncztcclxuXHJcbiAgQE91dHB1dCgpIG9uU291cmNlQ2xlYXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIGNsZWFyU291cmNlKCl7XHJcbiAgICB0aGlzLm9uU291cmNlQ2xlYXIuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNDbGVhckJ1dHRvbigpe1xyXG4gICAgdGhpcy5jbGVhckJ1dHRvbj8uY2xlYXJCdXR0b24uZm9jdXMoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBmeExheW91dD1cInJvd1wiIGNsYXNzPVwic291cmNlLXRhcmdldC13cmFwcGVyXCIgZnhMYXlvdXQubHQtbWQ9XCJjb2x1bW5cIj5cclxuICA8ZGl2IGNsYXNzPVwic291cmNlLXdyYXBwZXJcIiBbbmdDbGFzcy5ndC1zbV09XCIndGxkLWRlZmF1bHQtYm9yZGVyLXJpZ2h0J1wiIFtuZ0NsYXNzLmx0LW1kXT1cIid0bGQtZGVmYXVsdC1ib3JkZXItYm90dG9tJ1wiXHJcbiAgICBmeEZsZXggZnhMYXlvdXQ9XCJjb2x1bW5cIj5cclxuICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBjbGFzcz1cInNvdXJjZS13cmFwcGVyLWFjdGlvbi1idXR0b25zXCI+XHJcbiAgICAgIDx0bGQtY2xvc2UtYnV0dG9uIFt0b29sdGlwXT1cImNsZWFyU291cmNlVG9vbHRpcFwiICNjbGVhckJ1dHRvbiAodGxkQ2xpY2spPVwiY2xlYXJTb3VyY2UoKVwiXHJcbiAgICAgICpuZ0lmPVwiY2xlYXJTb3VyY2VWaXNpYmxlXCIgW2Rpc2FibGVkXT1cImNsZWFyRGlzYWJsZWRcIj48L3RsZC1jbG9zZS1idXR0b24+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltkaWN0YXRpb25dXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICA8dGxkLXRleHQtdG8tc3BlZWNoICpuZ0lmPVwidGV4dFRvU3BlZWNoU291cmNlU2V0dGluZ3NcIiBbc2V0dGluZ3NdPVwidGV4dFRvU3BlZWNoU291cmNlU2V0dGluZ3NcIj5cclxuICAgICAgPC90bGQtdGV4dC10by1zcGVlY2g+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzb3VyY2UtY29udGFpbmVyXCIgZnhGbGV4PlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc291cmNlTWFpbl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzb3VyY2UtYWN0aW9uLXdyYXBwZXJcIj5cclxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NvdXJjZUFjdGlvbnNdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInRhcmdldC13cmFwcGVyXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeEZsZXg9XCI1MFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInRhcmdldC1jb250YWluZXJcIiBmeEZsZXggY2RrU2Nyb2xsYWJsZT5cclxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3RhcmdldE1haW5dXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGFyZ2V0LWFjdGlvbi13cmFwcGVyXCI+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt0YXJnZXRBY3Rpb25zXVwiPjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|