@matechat/ng 20.0.1-alpha.0 → 20.1.0-alpha.1

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 (80) hide show
  1. package/README.md +206 -41
  2. package/fesm2022/matechat-ng.mjs +71 -70
  3. package/fesm2022/matechat-ng.mjs.map +1 -1
  4. package/index.d.ts +612 -3
  5. package/package.json +14 -3
  6. package/Base/base.component.d.ts +0 -11
  7. package/Bubble/avatar/avatar.component.d.ts +0 -23
  8. package/Bubble/avatar-body-icon/avatar-body-icon.component.d.ts +0 -7
  9. package/Bubble/avatar-no-body-icon/avatar-no-body-icon.component.d.ts +0 -7
  10. package/Bubble/bubble-loading/bubble-loading.component.d.ts +0 -5
  11. package/Bubble/bubble.component.d.ts +0 -26
  12. package/Bubble/bubble.module.d.ts +0 -10
  13. package/Bubble/index.d.ts +0 -6
  14. package/Input/button/button.component.d.ts +0 -32
  15. package/Input/index.d.ts +0 -2
  16. package/Input/input.component.d.ts +0 -65
  17. package/Input/input.module.d.ts +0 -11
  18. package/Input/send-icon/send-icon.component.d.ts +0 -5
  19. package/Locale/index.d.ts +0 -5
  20. package/Locale/locale.module.d.ts +0 -17
  21. package/Locale/locale.service.d.ts +0 -50
  22. package/Locale/translate.pipe.d.ts +0 -23
  23. package/MarkdownCard/code-block.component.d.ts +0 -49
  24. package/MarkdownCard/index.d.ts +0 -3
  25. package/MarkdownCard/markdown-card.component.d.ts +0 -200
  26. package/MarkdownCard/markdown-card.module.d.ts +0 -13
  27. package/components-common/Base/foundation.d.ts +0 -45
  28. package/components-common/Bubble/common/bubble-constants.d.ts +0 -4
  29. package/components-common/Bubble/common/bubble-types.d.ts +0 -12
  30. package/components-common/Bubble/foundation.d.ts +0 -9
  31. package/components-common/Input/button-foundation.d.ts +0 -15
  32. package/components-common/Input/common/types.d.ts +0 -16
  33. package/components-common/Input/foundation.d.ts +0 -20
  34. package/components-common/Locale/lang/en-us.d.ts +0 -26
  35. package/components-common/Locale/lang/zh-cn.d.ts +0 -26
  36. package/components-common/MarkdownCard/codeblock-foundation.d.ts +0 -21
  37. package/components-common/MarkdownCard/common/MDCardService.d.ts +0 -14
  38. package/components-common/MarkdownCard/common/MermaidService.d.ts +0 -23
  39. package/components-common/MarkdownCard/common/mdCard.types.d.ts +0 -56
  40. package/components-common/MarkdownCard/common/parser.d.ts +0 -150
  41. package/components-common/MarkdownCard/foundation.d.ts +0 -38
  42. package/esm2022/Base/base.component.mjs +0 -46
  43. package/esm2022/Bubble/avatar/avatar.component.mjs +0 -121
  44. package/esm2022/Bubble/avatar-body-icon/avatar-body-icon.component.mjs +0 -19
  45. package/esm2022/Bubble/avatar-no-body-icon/avatar-no-body-icon.component.mjs +0 -19
  46. package/esm2022/Bubble/bubble-loading/bubble-loading.component.mjs +0 -11
  47. package/esm2022/Bubble/bubble.component.mjs +0 -89
  48. package/esm2022/Bubble/bubble.module.mjs +0 -36
  49. package/esm2022/Bubble/index.mjs +0 -7
  50. package/esm2022/Input/button/button.component.mjs +0 -83
  51. package/esm2022/Input/index.mjs +0 -3
  52. package/esm2022/Input/input.component.mjs +0 -285
  53. package/esm2022/Input/input.module.mjs +0 -34
  54. package/esm2022/Input/send-icon/send-icon.component.mjs +0 -11
  55. package/esm2022/Locale/index.mjs +0 -6
  56. package/esm2022/Locale/locale.module.mjs +0 -39
  57. package/esm2022/Locale/locale.service.mjs +0 -140
  58. package/esm2022/Locale/translate.pipe.mjs +0 -38
  59. package/esm2022/MarkdownCard/code-block.component.mjs +0 -175
  60. package/esm2022/MarkdownCard/index.mjs +0 -4
  61. package/esm2022/MarkdownCard/markdown-card.component.mjs +0 -436
  62. package/esm2022/MarkdownCard/markdown-card.module.mjs +0 -44
  63. package/esm2022/components-common/Base/foundation.mjs +0 -66
  64. package/esm2022/components-common/Bubble/common/bubble-constants.mjs +0 -5
  65. package/esm2022/components-common/Bubble/common/bubble-types.mjs +0 -2
  66. package/esm2022/components-common/Bubble/foundation.mjs +0 -30
  67. package/esm2022/components-common/Input/button-foundation.mjs +0 -33
  68. package/esm2022/components-common/Input/common/types.mjs +0 -21
  69. package/esm2022/components-common/Input/foundation.mjs +0 -71
  70. package/esm2022/components-common/Locale/lang/en-us.mjs +0 -26
  71. package/esm2022/components-common/Locale/lang/zh-cn.mjs +0 -26
  72. package/esm2022/components-common/MarkdownCard/codeblock-foundation.mjs +0 -132
  73. package/esm2022/components-common/MarkdownCard/common/MDCardService.mjs +0 -69
  74. package/esm2022/components-common/MarkdownCard/common/MermaidService.mjs +0 -222
  75. package/esm2022/components-common/MarkdownCard/common/mdCard.types.mjs +0 -6
  76. package/esm2022/components-common/MarkdownCard/common/parser.mjs +0 -194
  77. package/esm2022/components-common/MarkdownCard/foundation.mjs +0 -84
  78. package/esm2022/matechat-ng.mjs +0 -5
  79. package/esm2022/public-api.mjs +0 -8
  80. package/public-api.d.ts +0 -4
@@ -1,285 +0,0 @@
1
- import { Component, Input, Output, EventEmitter, ViewChild, ContentChild, } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { FormsModule } from '@angular/forms';
4
- import { ButtonComponent } from './button/button.component';
5
- import { DisplayType, InputVariant, SendBtnVariant, SubmitShortKey, } from '../components-common/Input/common/types';
6
- import BaseComponent from '../Base/base.component';
7
- import { InputFoundation, } from '../components-common/Input/foundation';
8
- import { TranslatePipe } from '../Locale/translate.pipe';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "../Locale/locale.service";
11
- import * as i2 from "@angular/common";
12
- import * as i3 from "@angular/forms";
13
- // 默认的autosize配置
14
- const DEFAULT_AUTOSIZE = {
15
- minRows: 1,
16
- maxRows: 5
17
- };
18
- // 创建一个token用于组件间通信
19
- export const inputContextToken = 'input-context';
20
- export class InputComponent extends BaseComponent {
21
- constructor(localeService) {
22
- super();
23
- this.localeService = localeService;
24
- this.value = '';
25
- this.placeholder = '';
26
- this.disabled = false;
27
- this.displayType = DisplayType.Full;
28
- this.variant = InputVariant.Bordered;
29
- this.sendBtnVariant = SendBtnVariant.Full;
30
- this.loading = false;
31
- this.showCount = false;
32
- this.maxLength = null;
33
- this.submitShortKey = SubmitShortKey.Enter;
34
- this.autofocus = false;
35
- this.autosize = false;
36
- // textarea样式
37
- this.textareaStyle = {};
38
- this.change = new EventEmitter();
39
- this.submit = new EventEmitter();
40
- this.cancel = new EventEmitter();
41
- this.focus = new EventEmitter();
42
- this.blur = new EventEmitter();
43
- this.headTemplate = null;
44
- this.prefixTemplate = null;
45
- this.suffixTemplate = null;
46
- this.buttonTemplate = null;
47
- this.extraTemplate = null;
48
- this.inputValue = '';
49
- this.lock = false;
50
- }
51
- ngOnInit() {
52
- this.foundation = new InputFoundation(this.adapter);
53
- this.foundation.init();
54
- this.inputValue = this.value;
55
- }
56
- get adapter() {
57
- return {
58
- ...super.adapter,
59
- locale: (key, params) => this.localeService.translate(key, params),
60
- emitChange: () => {
61
- this.change.emit(this.inputValue);
62
- },
63
- submit: (inputValue) => {
64
- this.submit.emit(inputValue);
65
- },
66
- };
67
- }
68
- onChange(e) {
69
- e.stopPropagation();
70
- this.foundation.emitChange();
71
- }
72
- ngOnChanges(changes) {
73
- if (changes['value']) {
74
- this.inputValue = changes['value']?.currentValue || '';
75
- // 值变化时更新textarea样式
76
- this.updateTextareaStyle();
77
- }
78
- if (changes['autosize']) {
79
- // autosize配置变化时更新textarea样式
80
- this.updateTextareaStyle();
81
- }
82
- }
83
- get inputClasses() {
84
- return this.foundation.getInputClasses();
85
- }
86
- get maxlengthValue() {
87
- return this.maxLength !== undefined ? this.maxLength : null;
88
- }
89
- onInput() {
90
- if (!this.lock) {
91
- this.foundation.emitChange();
92
- // 输入时更新textarea样式
93
- this.updateTextareaStyle();
94
- }
95
- }
96
- onCompositionStart() {
97
- this.lock = true;
98
- }
99
- onCompositionEnd() {
100
- this.lock = false;
101
- this.foundation.emitChange();
102
- }
103
- onKeydown(event) {
104
- this.foundation.onKeydown(event);
105
- }
106
- clearInput() {
107
- this.foundation.clearInput();
108
- }
109
- getInput() {
110
- return this.inputValue;
111
- }
112
- // 处理button组件的事件
113
- onButtonSubmit(value) {
114
- this.submit.emit(value);
115
- }
116
- onButtonCancel() {
117
- this.cancel.emit();
118
- }
119
- onButtonChange(value) {
120
- this.inputValue = value;
121
- this.foundation.emitChange();
122
- }
123
- ngAfterViewInit() {
124
- if (this.autofocus && this.textareaElement && !this.disabled) {
125
- // 在下一个变更检测周期中聚焦,以确保视图已经完全初始化
126
- setTimeout(() => {
127
- this.textareaElement.nativeElement.focus();
128
- });
129
- }
130
- // 初始化时更新textarea样式
131
- this.updateTextareaStyle();
132
- }
133
- // 更新textarea样式
134
- updateTextareaStyle() {
135
- if (!this.textareaElement || this.autosize === false) {
136
- this.textareaStyle = {};
137
- return;
138
- }
139
- const config = this.getAutosizeConfig();
140
- const result = this.computeTextareaHeight(this.textareaElement.nativeElement, config.minRows, config.maxRows);
141
- this.textareaStyle = {
142
- ...result,
143
- resize: 'none'
144
- };
145
- }
146
- // 获取autosize配置
147
- getAutosizeConfig() {
148
- return typeof this.autosize === 'boolean'
149
- ? DEFAULT_AUTOSIZE
150
- : this.autosize;
151
- }
152
- // 计算textarea高度
153
- computeTextareaHeight(targetElement, minRows = 1, maxRows) {
154
- const style = window.getComputedStyle(targetElement);
155
- const boxSizing = style.getPropertyValue('box-sizing');
156
- const paddingSize = Number.parseFloat(style.getPropertyValue('padding-top')) +
157
- Number.parseFloat(style.getPropertyValue('padding-bottom'));
158
- const borderSize = Number.parseFloat(style.getPropertyValue('border-top-width')) +
159
- Number.parseFloat(style.getPropertyValue('border-bottom-width'));
160
- // 创建临时textarea元素
161
- const tempTextarea = document.createElement('textarea');
162
- const sizingStyle = [
163
- 'letter-spacing', 'line-height', 'padding-top', 'padding-bottom',
164
- 'font-family', 'font-weight', 'font-size', 'font-variant',
165
- 'text-rendering', 'text-transform', 'width', 'text-indent',
166
- 'padding-left', 'padding-right', 'border-width', 'box-sizing',
167
- 'word-break', 'white-space'
168
- ];
169
- const contextStyle = sizingStyle
170
- .map(name => `${name}:${style.getPropertyValue(name)}`)
171
- .join(';');
172
- const hiddenStyle = `
173
- min-height:0 !important;
174
- max-height:none !important;
175
- height:0 !important;
176
- visibility:hidden !important;
177
- overflow:hidden !important;
178
- position:absolute !important;
179
- z-index:-1000 !important;
180
- top:0 !important;
181
- right:0 !important;
182
- pointer-events:none !important;
183
- `;
184
- tempTextarea.setAttribute('style', `${contextStyle};${hiddenStyle}`);
185
- tempTextarea.value = targetElement.value || targetElement.placeholder || '';
186
- document.body.appendChild(tempTextarea);
187
- let height = tempTextarea.scrollHeight;
188
- const result = {
189
- height: `${height}px`
190
- };
191
- if (minRows !== undefined || maxRows !== undefined) {
192
- tempTextarea.value = ' ';
193
- const singleRowHeight = tempTextarea.scrollHeight - paddingSize;
194
- if (minRows !== undefined) {
195
- let minHeight = singleRowHeight * minRows;
196
- if (boxSizing === 'border-box') {
197
- minHeight = minHeight + paddingSize + borderSize;
198
- }
199
- height = Math.max(minHeight, height);
200
- result['minHeight'] = `${minHeight}px`;
201
- }
202
- if (maxRows !== undefined) {
203
- let maxHeight = singleRowHeight * maxRows;
204
- if (boxSizing === 'border-box') {
205
- maxHeight = maxHeight + paddingSize + borderSize;
206
- }
207
- if (height > maxHeight) {
208
- height = maxHeight;
209
- result['overflowY'] = 'auto';
210
- }
211
- }
212
- }
213
- document.body.removeChild(tempTextarea);
214
- result['height'] = `${height}px`;
215
- return result;
216
- }
217
- get placeholderText() {
218
- return this.foundation.getPlaceholderText();
219
- }
220
- onFocus(event) {
221
- this.focus.emit(event);
222
- }
223
- onBlur(event) {
224
- this.blur.emit(event);
225
- }
226
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: InputComponent, deps: [{ token: i1.LocaleService }], target: i0.ɵɵFactoryTarget.Component }); }
227
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: InputComponent, isStandalone: true, selector: "mc-input", inputs: { value: "value", placeholder: "placeholder", disabled: "disabled", displayType: "displayType", variant: "variant", sendBtnVariant: "sendBtnVariant", loading: "loading", showCount: "showCount", maxLength: "maxLength", submitShortKey: "submitShortKey", autofocus: "autofocus", autosize: "autosize" }, outputs: { change: "change", submit: "submit", cancel: "cancel", focus: "focus", blur: "blur" }, providers: [{ provide: inputContextToken, useExisting: InputComponent }], queries: [{ propertyName: "headTemplate", first: true, predicate: ["head"], descendants: true }, { propertyName: "prefixTemplate", first: true, predicate: ["prefix"], descendants: true }, { propertyName: "suffixTemplate", first: true, predicate: ["suffix"], descendants: true }, { propertyName: "buttonTemplate", first: true, predicate: ["button"], descendants: true }, { propertyName: "extraTemplate", first: true, predicate: ["extra"], descendants: true }], viewQueries: [{ propertyName: "textareaElement", first: true, predicate: ["textarea"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div [ngClass]=\"inputClasses\">\n <ng-container *ngIf=\"headTemplate; then headTemplate\"></ng-container>\n\n <div class=\"mc-input-content\">\n <ng-container *ngIf=\"prefixTemplate; then prefixTemplate\"></ng-container>\n\n <textarea\n #textarea\n [(ngModel)]=\"inputValue\"\n [placeholder]=\"placeholderText\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxLength\"\n class=\"mc-textarea\"\n [ngClass]=\"{\n 'mc-textarea-simple': displayType === 'simple',\n 'mc-textarea-disabled': disabled\n }\"\n [ngStyle]=\"textareaStyle\"\n [attr.aria-label]=\"'Input.ariaLabel' | translate\"\n [attr.aria-disabled]=\"disabled\"\n (input)=\"onInput()\"\n (change)=\"onChange($event)\"\n (compositionstart)=\"onCompositionStart()\"\n (compositionend)=\"onCompositionEnd()\"\n (keydown)=\"onKeydown($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n <ng-container *ngIf=\"suffixTemplate; then suffixTemplate\"></ng-container>\n\n <ng-container *ngIf=\"displayType === 'simple'\">\n <ng-container *ngIf=\"buttonTemplate; else defaultButton\">\n <ng-container\n *ngIf=\"buttonTemplate; then buttonTemplate\"\n ></ng-container>\n </ng-container>\n <ng-template #defaultButton>\n <mc-button\n [disabled]=\"disabled || (!loading && !inputValue)\"\n [loading]=\"loading\"\n [inputValue]=\"inputValue\"\n [sendBtnVariant]=\"sendBtnVariant\"\n (submit)=\"onButtonSubmit($event)\"\n (cancel)=\"onButtonCancel()\"\n (change)=\"onButtonChange($event)\"\n ></mc-button>\n </ng-template>\n </ng-container>\n </div>\n\n <div *ngIf=\"displayType === 'full'\" class=\"mc-input-foot\">\n <div class=\"mc-input-foot-left\">\n <ng-container *ngIf=\"extraTemplate; then extraTemplate\"></ng-container>\n <span *ngIf=\"showCount\" id=\"mc-input-count\" class=\"mc-input-foot-count\">\n {{ inputValue.length }}{{ !maxLength ? \"\" : \"/\" + maxLength }}\n </span>\n </div>\n\n <ng-container *ngIf=\"buttonTemplate; else defaultFooterButton\">\n <ng-container *ngIf=\"buttonTemplate; then buttonTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultFooterButton>\n <mc-button\n [disabled]=\"disabled || (!loading && !inputValue)\"\n [loading]=\"loading\"\n [inputValue]=\"inputValue\"\n [sendBtnVariant]=\"sendBtnVariant\"\n (submit)=\"onButtonSubmit($event)\"\n (cancel)=\"onButtonCancel()\"\n (change)=\"onButtonChange($event)\"\n ></mc-button>\n </ng-template>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";body[ui-theme=infinity-theme]{--mc-text: #aeaeae;--mc-box-shadow: rgba(25, 25, 25, .06)}body[ui-theme=galaxy-theme]{--mc-text: #4e5057;--mc-box-shadow: rgba(206, 209, 219, .06)}.mc-input{display:flex;flex-direction:column;width:100%;padding:12px 0;border:1px solid var(--devui-form-control-line, #d7d8da);border-radius:16px;box-sizing:border-box;background-color:var(--devui-base-bg, #ffffff)}.mc-input.mc-input-simple{border-radius:24px}.mc-input.mc-input-simple .mc-input-content{padding:0 20px}.mc-input.mc-input-borderless{border:none;box-shadow:0 1px 8px 0 var(--mc-box-shadow, rgba(25, 25, 25, .06))}.mc-input.mc-input-disabled{background-color:var(--devui-disabled-bg, #f5f5f5);cursor:not-allowed}.mc-input .mc-input-content{display:flex;align-items:flex-end;padding:0 16px}.mc-input .mc-input-foot{display:flex;justify-content:space-between;align-items:center;height:32px;padding:0 16px}.mc-input .mc-input-foot .mc-input-foot-left{flex:1;height:100%;display:flex;align-items:center}.mc-input .mc-input-foot .mc-input-foot-left .mc-input-foot-count{color:var(--mc-text, #aeaeae);font-size:var(--devui-font-size-sm, 12px)}.mc-textarea{width:100%;height:64px;padding:4px 0;color:var(--devui-text, #252b3a);font-size:var(--devui-font-size, 14px);background-color:var(--devui-form-control-bg, #ffffff);vertical-align:middle;outline:none;box-sizing:border-box;resize:none;border:none}.mc-textarea.mc-textarea-simple{height:32px}.mc-textarea.mc-textarea-disabled{color:var(--devui-disabled-text, #cfd0d3);background-color:var(--devui-disabled-bg, #f5f5f5);cursor:not-allowed}.mc-textarea::placeholder{color:var(--devui-placeholder, #babbc0)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ButtonComponent, selector: "mc-button", inputs: ["disabled", "loading", "inputValue", "sendBtnVariant"], outputs: ["submit", "cancel", "change"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
228
- }
229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: InputComponent, decorators: [{
230
- type: Component,
231
- args: [{ selector: 'mc-input', standalone: true, imports: [CommonModule, FormsModule, ButtonComponent, TranslatePipe], providers: [{ provide: inputContextToken, useExisting: InputComponent }], template: "<div [ngClass]=\"inputClasses\">\n <ng-container *ngIf=\"headTemplate; then headTemplate\"></ng-container>\n\n <div class=\"mc-input-content\">\n <ng-container *ngIf=\"prefixTemplate; then prefixTemplate\"></ng-container>\n\n <textarea\n #textarea\n [(ngModel)]=\"inputValue\"\n [placeholder]=\"placeholderText\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxLength\"\n class=\"mc-textarea\"\n [ngClass]=\"{\n 'mc-textarea-simple': displayType === 'simple',\n 'mc-textarea-disabled': disabled\n }\"\n [ngStyle]=\"textareaStyle\"\n [attr.aria-label]=\"'Input.ariaLabel' | translate\"\n [attr.aria-disabled]=\"disabled\"\n (input)=\"onInput()\"\n (change)=\"onChange($event)\"\n (compositionstart)=\"onCompositionStart()\"\n (compositionend)=\"onCompositionEnd()\"\n (keydown)=\"onKeydown($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n <ng-container *ngIf=\"suffixTemplate; then suffixTemplate\"></ng-container>\n\n <ng-container *ngIf=\"displayType === 'simple'\">\n <ng-container *ngIf=\"buttonTemplate; else defaultButton\">\n <ng-container\n *ngIf=\"buttonTemplate; then buttonTemplate\"\n ></ng-container>\n </ng-container>\n <ng-template #defaultButton>\n <mc-button\n [disabled]=\"disabled || (!loading && !inputValue)\"\n [loading]=\"loading\"\n [inputValue]=\"inputValue\"\n [sendBtnVariant]=\"sendBtnVariant\"\n (submit)=\"onButtonSubmit($event)\"\n (cancel)=\"onButtonCancel()\"\n (change)=\"onButtonChange($event)\"\n ></mc-button>\n </ng-template>\n </ng-container>\n </div>\n\n <div *ngIf=\"displayType === 'full'\" class=\"mc-input-foot\">\n <div class=\"mc-input-foot-left\">\n <ng-container *ngIf=\"extraTemplate; then extraTemplate\"></ng-container>\n <span *ngIf=\"showCount\" id=\"mc-input-count\" class=\"mc-input-foot-count\">\n {{ inputValue.length }}{{ !maxLength ? \"\" : \"/\" + maxLength }}\n </span>\n </div>\n\n <ng-container *ngIf=\"buttonTemplate; else defaultFooterButton\">\n <ng-container *ngIf=\"buttonTemplate; then buttonTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultFooterButton>\n <mc-button\n [disabled]=\"disabled || (!loading && !inputValue)\"\n [loading]=\"loading\"\n [inputValue]=\"inputValue\"\n [sendBtnVariant]=\"sendBtnVariant\"\n (submit)=\"onButtonSubmit($event)\"\n (cancel)=\"onButtonCancel()\"\n (change)=\"onButtonChange($event)\"\n ></mc-button>\n </ng-template>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";body[ui-theme=infinity-theme]{--mc-text: #aeaeae;--mc-box-shadow: rgba(25, 25, 25, .06)}body[ui-theme=galaxy-theme]{--mc-text: #4e5057;--mc-box-shadow: rgba(206, 209, 219, .06)}.mc-input{display:flex;flex-direction:column;width:100%;padding:12px 0;border:1px solid var(--devui-form-control-line, #d7d8da);border-radius:16px;box-sizing:border-box;background-color:var(--devui-base-bg, #ffffff)}.mc-input.mc-input-simple{border-radius:24px}.mc-input.mc-input-simple .mc-input-content{padding:0 20px}.mc-input.mc-input-borderless{border:none;box-shadow:0 1px 8px 0 var(--mc-box-shadow, rgba(25, 25, 25, .06))}.mc-input.mc-input-disabled{background-color:var(--devui-disabled-bg, #f5f5f5);cursor:not-allowed}.mc-input .mc-input-content{display:flex;align-items:flex-end;padding:0 16px}.mc-input .mc-input-foot{display:flex;justify-content:space-between;align-items:center;height:32px;padding:0 16px}.mc-input .mc-input-foot .mc-input-foot-left{flex:1;height:100%;display:flex;align-items:center}.mc-input .mc-input-foot .mc-input-foot-left .mc-input-foot-count{color:var(--mc-text, #aeaeae);font-size:var(--devui-font-size-sm, 12px)}.mc-textarea{width:100%;height:64px;padding:4px 0;color:var(--devui-text, #252b3a);font-size:var(--devui-font-size, 14px);background-color:var(--devui-form-control-bg, #ffffff);vertical-align:middle;outline:none;box-sizing:border-box;resize:none;border:none}.mc-textarea.mc-textarea-simple{height:32px}.mc-textarea.mc-textarea-disabled{color:var(--devui-disabled-text, #cfd0d3);background-color:var(--devui-disabled-bg, #f5f5f5);cursor:not-allowed}.mc-textarea::placeholder{color:var(--devui-placeholder, #babbc0)}\n"] }]
232
- }], ctorParameters: () => [{ type: i1.LocaleService }], propDecorators: { value: [{
233
- type: Input
234
- }], placeholder: [{
235
- type: Input
236
- }], disabled: [{
237
- type: Input
238
- }], displayType: [{
239
- type: Input
240
- }], variant: [{
241
- type: Input
242
- }], sendBtnVariant: [{
243
- type: Input
244
- }], loading: [{
245
- type: Input
246
- }], showCount: [{
247
- type: Input
248
- }], maxLength: [{
249
- type: Input
250
- }], submitShortKey: [{
251
- type: Input
252
- }], autofocus: [{
253
- type: Input
254
- }], autosize: [{
255
- type: Input
256
- }], change: [{
257
- type: Output
258
- }], submit: [{
259
- type: Output
260
- }], cancel: [{
261
- type: Output
262
- }], focus: [{
263
- type: Output
264
- }], blur: [{
265
- type: Output
266
- }], textareaElement: [{
267
- type: ViewChild,
268
- args: ['textarea']
269
- }], headTemplate: [{
270
- type: ContentChild,
271
- args: ['head']
272
- }], prefixTemplate: [{
273
- type: ContentChild,
274
- args: ['prefix']
275
- }], suffixTemplate: [{
276
- type: ContentChild,
277
- args: ['suffix']
278
- }], buttonTemplate: [{
279
- type: ContentChild,
280
- args: ['button']
281
- }], extraTemplate: [{
282
- type: ContentChild,
283
- args: ['extra']
284
- }] } });
285
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy1uZy9zcmMvSW5wdXQvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy1uZy9zcmMvSW5wdXQvaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFFWixTQUFTLEVBRVQsWUFBWSxHQUdiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFDTCxXQUFXLEVBQ1gsWUFBWSxFQUNaLGNBQWMsRUFDZCxjQUFjLEdBQ2YsTUFBTSx5Q0FBeUMsQ0FBQztBQVdqRCxPQUFPLGFBQWEsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBRUwsZUFBZSxHQUNoQixNQUFNLHVDQUF1QyxDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFaekQsZ0JBQWdCO0FBQ2hCLE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsT0FBTyxFQUFFLENBQUM7SUFDVixPQUFPLEVBQUUsQ0FBQztDQUNYLENBQUM7QUFVRixtQkFBbUI7QUFDbkIsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsZUFBZSxDQUFDO0FBVWpELE1BQU0sT0FBTyxjQUFlLFNBQVEsYUFBOEI7SUFtQ2hFLFlBQW9CLGFBQTRCO1FBQzlDLEtBQUssRUFBRSxDQUFDO1FBRFUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFsQ3ZDLFVBQUssR0FBVyxF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Q0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFLSSxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNO2dCQUVnQixlQUFlO3NCQUFyQyxTQUFTO3VCQUFDLFVBQVU7Z0JBRUMsWUFBWTtzQkFBakMsWUFBWTt1QkFBQyxNQUFNO2dCQUNJLGNBQWM7c0JBQXJDLFlBQVk7dUJBQUMsUUFBUTtnQkFDRSxjQUFjO3NCQUFyQyxZQUFZO3VCQUFDLFFBQVE7Z0JBQ0UsY0FBYztzQkFBckMsWUFBWTt1QkFBQyxRQUFRO2dCQUNDLGFBQWE7c0JBQW5DLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgQ29udGVudENoaWxkLFxuICBUZW1wbGF0ZVJlZixcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7XG4gIERpc3BsYXlUeXBlLFxuICBJbnB1dFZhcmlhbnQsXG4gIFNlbmRCdG5WYXJpYW50LFxuICBTdWJtaXRTaG9ydEtleSxcbn0gZnJvbSAnLi4vY29tcG9uZW50cy1jb21tb24vSW5wdXQvY29tbW9uL3R5cGVzJztcblxuLy8gVGV4dGFyZWFBdXRvU2l6Zeexu+Wei+WumuS5iVxuZXhwb3J0IHR5cGUgVGV4dGFyZWFBdXRvU2l6ZSA9IHsgbWluUm93cz86IG51bWJlcjsgbWF4Um93cz86IG51bWJlciB9IHwgYm9vbGVhbjtcblxuLy8g6buY6K6k55qEYXV0b3NpemXphY3nva5cbmNvbnN0IERFRkFVTFRfQVVUT1NJWkUgPSB7XG4gIG1pblJvd3M6IDEsXG4gIG1heFJvd3M6IDVcbn07XG5cbmltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gJy4uL0Jhc2UvYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgSW5wdXRBZGFwdGVyLFxuICBJbnB1dEZvdW5kYXRpb24sXG59IGZyb20gJy4uL2NvbXBvbmVudHMtY29tbW9uL0lucHV0L2ZvdW5kYXRpb24nO1xuaW1wb3J0IHsgTG9jYWxlU2VydmljZSB9IGZyb20gJy4uL0xvY2FsZS9sb2NhbGUuc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vTG9jYWxlL3RyYW5zbGF0ZS5waXBlJztcblxuLy8g5Yib5bu65LiA5LiqdG9rZW7nlKjkuo7nu4Tku7bpl7TpgJrkv6FcbmV4cG9ydCBjb25zdCBpbnB1dENvbnRleHRUb2tlbiA9ICdpbnB1dC1jb250ZXh0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWMtaW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgQnV0dG9uQ29tcG9uZW50LCBUcmFuc2xhdGVQaXBlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBpbnB1dENvbnRleHRUb2tlbiwgdXNlRXhpc3Rpbmc6IElucHV0Q29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQ8SW5wdXRGb3VuZGF0aW9uPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNwbGF5VHlwZTogRGlzcGxheVR5cGUgPSBEaXNwbGF5VHlwZS5GdWxsO1xuICBASW5wdXQoKSB2YXJpYW50OiBJbnB1dFZhcmlhbnQgPSBJbnB1dFZhcmlhbnQuQm9yZGVyZWQ7XG4gIEBJbnB1dCgpIHNlbmRCdG5WYXJpYW50OiBTZW5kQnRuVmFyaWFudCA9IFNlbmRCdG5WYXJpYW50LkZ1bGw7XG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd0NvdW50OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1heExlbmd0aDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHN1Ym1pdFNob3J0S2V5OiBTdWJtaXRTaG9ydEtleSB8IG51bGwgfCBzdHJpbmcgPVxuICAgIFN1Ym1pdFNob3J0S2V5LkVudGVyO1xuICBASW5wdXQoKSBhdXRvZm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgYXV0b3NpemU6IFRleHRhcmVhQXV0b1NpemUgPSBmYWxzZTtcbiAgXG4gIC8vIHRleHRhcmVh5qC35byPXG4gIHRleHRhcmVhU3R5bGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICBAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBzdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcblxuICBAVmlld0NoaWxkKCd0ZXh0YXJlYScpIHRleHRhcmVhRWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD47XG5cbiAgQENvbnRlbnRDaGlsZCgnaGVhZCcpIGhlYWRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuICBAQ29udGVudENoaWxkKCdwcmVmaXgnKSBwcmVmaXhUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuICBAQ29udGVudENoaWxkKCdzdWZmaXgnKSBzdWZmaXhUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuICBAQ29udGVudENoaWxkKCdidXR0b24nKSBidXR0b25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuICBAQ29udGVudENoaWxkKCdleHRyYScpIGV4dHJhVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcblxuICBpbnB1dFZhbHVlOiBzdHJpbmcgPSAnJztcbiAgbG9jazogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYWxlU2VydmljZTogTG9jYWxlU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZvdW5kYXRpb24gPSBuZXcgSW5wdXRGb3VuZGF0aW9uKHRoaXMuYWRhcHRlcik7XG4gICAgdGhpcy5mb3VuZGF0aW9uLmluaXQoKTtcbiAgICB0aGlzLmlucHV0VmFsdWUgPSB0aGlzLnZhbHVlO1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0IGFkYXB0ZXIoKTogSW5wdXRBZGFwdGVyIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3VwZXIuYWRhcHRlcixcbiAgICAgIGxvY2FsZTogKGtleSwgcGFyYW1zKSA9PiB0aGlzLmxvY2FsZVNlcnZpY2UudHJhbnNsYXRlKGtleSwgcGFyYW1zKSxcbiAgICAgIGVtaXRDaGFuZ2U6ICgpID0+IHtcbiAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLmlucHV0VmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHN1Ym1pdDogKGlucHV0VmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy5zdWJtaXQuZW1pdChpbnB1dFZhbHVlKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIG9uQ2hhbmdlKGUpOiB2b2lkIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZm91bmRhdGlvbi5lbWl0Q2hhbmdlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ3ZhbHVlJ10pIHtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IGNoYW5nZXNbJ3ZhbHVlJ10/LmN1cnJlbnRWYWx1ZSB8fCAnJztcbiAgICAgIC8vIOWAvOWPmOWMluaXtuabtOaWsHRleHRhcmVh5qC35byPXG4gICAgICB0aGlzLnVwZGF0ZVRleHRhcmVhU3R5bGUoKTtcbiAgICB9XG4gICAgXG4gICAgaWYgKGNoYW5nZXNbJ2F1dG9zaXplJ10pIHtcbiAgICAgIC8vIGF1dG9zaXpl6YWN572u5Y+Y5YyW5pe25pu05pawdGV4dGFyZWHmoLflvI9cbiAgICAgIHRoaXMudXBkYXRlVGV4dGFyZWFTdHlsZSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpbnB1dENsYXNzZXMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZm91bmRhdGlvbi5nZXRJbnB1dENsYXNzZXMoKTtcbiAgfVxuXG4gIGdldCBtYXhsZW5ndGhWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tYXhMZW5ndGggIT09IHVuZGVmaW5lZCA/IHRoaXMubWF4TGVuZ3RoIDogbnVsbDtcbiAgfVxuXG4gIG9uSW5wdXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmxvY2spIHtcbiAgICAgIHRoaXMuZm91bmRhdGlvbi5lbWl0Q2hhbmdlKCk7XG4gICAgICAvLyDovpPlhaXml7bmm7TmlrB0ZXh0YXJlYeagt+W8j1xuICAgICAgdGhpcy51cGRhdGVUZXh0YXJlYVN0eWxlKCk7XG4gICAgfVxuICB9XG5cbiAgb25Db21wb3NpdGlvblN0YXJ0KCk6IHZvaWQge1xuICAgIHRoaXMubG9jayA9IHRydWU7XG4gIH1cblxuICBvbkNvbXBvc2l0aW9uRW5kKCk6IHZvaWQge1xuICAgIHRoaXMubG9jayA9IGZhbHNlO1xuICAgIHRoaXMuZm91bmRhdGlvbi5lbWl0Q2hhbmdlKCk7XG4gIH1cblxuICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmZvdW5kYXRpb24ub25LZXlkb3duKGV2ZW50KTtcbiAgfVxuXG4gIGNsZWFySW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy5mb3VuZGF0aW9uLmNsZWFySW5wdXQoKTtcbiAgfVxuXG4gIGdldElucHV0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRWYWx1ZTtcbiAgfVxuXG4gIC8vIOWkhOeQhmJ1dHRvbue7hOS7tueahOS6i+S7tlxuICBvbkJ1dHRvblN1Ym1pdCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zdWJtaXQuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBvbkJ1dHRvbkNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XG4gIH1cblxuICBvbkJ1dHRvbkNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dFZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5mb3VuZGF0aW9uLmVtaXRDaGFuZ2UoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5hdXRvZm9jdXMgJiYgdGhpcy50ZXh0YXJlYUVsZW1lbnQgJiYgIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIC8vIOWcqOS4i+S4gOS4quWPmOabtOajgOa1i+WRqOacn+S4reiBmueEpu+8jOS7peehruS/neinhuWbvuW3sue7j+WujOWFqOWIneWni+WMllxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMudGV4dGFyZWFFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBcbiAgICAvLyDliJ3lp4vljJbml7bmm7TmlrB0ZXh0YXJlYeagt+W8j1xuICAgIHRoaXMudXBkYXRlVGV4dGFyZWFTdHlsZSgpO1xuICB9XG4gIFxuICAvLyDmm7TmlrB0ZXh0YXJlYeagt+W8j1xuICB1cGRhdGVUZXh0YXJlYVN0eWxlKCkge1xuICAgIGlmICghdGhpcy50ZXh0YXJlYUVsZW1lbnQgfHwgdGhpcy5hdXRvc2l6ZSA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMudGV4dGFyZWFTdHlsZSA9IHt9O1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmdldEF1dG9zaXplQ29uZmlnKCk7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5jb21wdXRlVGV4dGFyZWFIZWlnaHQoXG4gICAgICB0aGlzLnRleHRhcmVhRWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgY29uZmlnLm1pblJvd3MsXG4gICAgICBjb25maWcubWF4Um93c1xuICAgICk7XG4gICAgXG4gICAgdGhpcy50ZXh0YXJlYVN0eWxlID0ge1xuICAgICAgLi4ucmVzdWx0LFxuICAgICAgcmVzaXplOiAnbm9uZSdcbiAgICB9O1xuICB9XG4gIFxuICAvLyDojrflj5ZhdXRvc2l6ZemFjee9rlxuICBwcml2YXRlIGdldEF1dG9zaXplQ29uZmlnKCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5hdXRvc2l6ZSA9PT0gJ2Jvb2xlYW4nXG4gICAgICA/IERFRkFVTFRfQVVUT1NJWkVcbiAgICAgIDogdGhpcy5hdXRvc2l6ZTtcbiAgfVxuICBcbiAgLy8g6K6h566XdGV4dGFyZWHpq5jluqZcbiAgcHJpdmF0ZSBjb21wdXRlVGV4dGFyZWFIZWlnaHQoXG4gICAgdGFyZ2V0RWxlbWVudDogSFRNTFRleHRBcmVhRWxlbWVudCxcbiAgICBtaW5Sb3dzID0gMSxcbiAgICBtYXhSb3dzPzogbnVtYmVyXG4gICk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0RWxlbWVudCk7XG4gICAgY29uc3QgYm94U2l6aW5nID0gc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnYm94LXNpemluZycpO1xuICAgIFxuICAgIGNvbnN0IHBhZGRpbmdTaXplID0gXG4gICAgICBOdW1iZXIucGFyc2VGbG9hdChzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLXRvcCcpKSArXG4gICAgICBOdW1iZXIucGFyc2VGbG9hdChzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLWJvdHRvbScpKTtcbiAgICBcbiAgICBjb25zdCBib3JkZXJTaXplID0gXG4gICAgICBOdW1iZXIucGFyc2VGbG9hdChzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItdG9wLXdpZHRoJykpICtcbiAgICAgIE51bWJlci5wYXJzZUZsb2F0KHN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci1ib3R0b20td2lkdGgnKSk7XG4gICAgXG4gICAgLy8g5Yib5bu65Li05pe2dGV4dGFyZWHlhYPntKBcbiAgICBjb25zdCB0ZW1wVGV4dGFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpO1xuICAgIGNvbnN0IHNpemluZ1N0eWxlID0gW1xuICAgICAgJ2xldHRlci1zcGFjaW5nJywgJ2xpbmUtaGVpZ2h0JywgJ3BhZGRpbmctdG9wJywgJ3BhZGRpbmctYm90dG9tJyxcbiAgICAgICdmb250LWZhbWlseScsICdmb250LXdlaWdodCcsICdmb250LXNpemUnLCAnZm9udC12YXJpYW50JyxcbiAgICAgICd0ZXh0LXJlbmRlcmluZycsICd0ZXh0LXRyYW5zZm9ybScsICd3aWR0aCcsICd0ZXh0LWluZGVudCcsXG4gICAgICAncGFkZGluZy1sZWZ0JywgJ3BhZGRpbmctcmlnaHQnLCAnYm9yZGVyLXdpZHRoJywgJ2JveC1zaXppbmcnLFxuICAgICAgJ3dvcmQtYnJlYWsnLCAnd2hpdGUtc3BhY2UnXG4gICAgXTtcbiAgICBcbiAgICBjb25zdCBjb250ZXh0U3R5bGUgPSBzaXppbmdTdHlsZVxuICAgICAgLm1hcChuYW1lID0+IGAke25hbWV9OiR7c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShuYW1lKX1gKVxuICAgICAgLmpvaW4oJzsnKTtcbiAgICBcbiAgICBjb25zdCBoaWRkZW5TdHlsZSA9IGBcbiAgICAgIG1pbi1oZWlnaHQ6MCAhaW1wb3J0YW50O1xuICAgICAgbWF4LWhlaWdodDpub25lICFpbXBvcnRhbnQ7XG4gICAgICBoZWlnaHQ6MCAhaW1wb3J0YW50O1xuICAgICAgdmlzaWJpbGl0eTpoaWRkZW4gIWltcG9ydGFudDtcbiAgICAgIG92ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50O1xuICAgICAgcG9zaXRpb246YWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICAgIHotaW5kZXg6LTEwMDAgIWltcG9ydGFudDtcbiAgICAgIHRvcDowICFpbXBvcnRhbnQ7XG4gICAgICByaWdodDowICFpbXBvcnRhbnQ7XG4gICAgICBwb2ludGVyLWV2ZW50czpub25lICFpbXBvcnRhbnQ7XG4gICAgYDtcbiAgICBcbiAgICB0ZW1wVGV4dGFyZWEuc2V0QXR0cmlidXRlKCdzdHlsZScsIGAke2NvbnRleHRTdHlsZX07JHtoaWRkZW5TdHlsZX1gKTtcbiAgICB0ZW1wVGV4dGFyZWEudmFsdWUgPSB0YXJnZXRFbGVtZW50LnZhbHVlIHx8IHRhcmdldEVsZW1lbnQucGxhY2Vob2xkZXIgfHwgJyc7XG4gICAgXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZW1wVGV4dGFyZWEpO1xuICAgIFxuICAgIGxldCBoZWlnaHQgPSB0ZW1wVGV4dGFyZWEuc2Nyb2xsSGVpZ2h0O1xuICAgIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIGhlaWdodDogYCR7aGVpZ2h0fXB4YFxuICAgIH07XG4gICAgXG4gICAgaWYgKG1pblJvd3MgIT09IHVuZGVmaW5lZCB8fCBtYXhSb3dzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRlbXBUZXh0YXJlYS52YWx1ZSA9ICcgJztcbiAgICAgIGNvbnN0IHNpbmdsZVJvd0hlaWdodCA9IHRlbXBUZXh0YXJlYS5zY3JvbGxIZWlnaHQgLSBwYWRkaW5nU2l6ZTtcbiAgICAgIFxuICAgICAgaWYgKG1pblJvd3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBsZXQgbWluSGVpZ2h0ID0gc2luZ2xlUm93SGVpZ2h0ICogbWluUm93cztcbiAgICAgICAgaWYgKGJveFNpemluZyA9PT0gJ2JvcmRlci1ib3gnKSB7XG4gICAgICAgICAgbWluSGVpZ2h0ID0gbWluSGVpZ2h0ICsgcGFkZGluZ1NpemUgKyBib3JkZXJTaXplO1xuICAgICAgICB9XG4gICAgICAgIGhlaWdodCA9IE1hdGgubWF4KG1pbkhlaWdodCwgaGVpZ2h0KTtcbiAgICAgICAgcmVzdWx0WydtaW5IZWlnaHQnXSA9IGAke21pbkhlaWdodH1weGA7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGlmIChtYXhSb3dzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbGV0IG1heEhlaWdodCA9IHNpbmdsZVJvd0hlaWdodCAqIG1heFJvd3M7XG4gICAgICAgIGlmIChib3hTaXppbmcgPT09ICdib3JkZXItYm94Jykge1xuICAgICAgICAgIG1heEhlaWdodCA9IG1heEhlaWdodCArIHBhZGRpbmdTaXplICsgYm9yZGVyU2l6ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaGVpZ2h0ID4gbWF4SGVpZ2h0KSB7XG4gICAgICAgICAgaGVpZ2h0ID0gbWF4SGVpZ2h0O1xuICAgICAgICAgIHJlc3VsdFsnb3ZlcmZsb3dZJ10gPSAnYXV0byc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZW1wVGV4dGFyZWEpO1xuICAgIFxuICAgIHJlc3VsdFsnaGVpZ2h0J10gPSBgJHtoZWlnaHR9cHhgO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBnZXQgcGxhY2Vob2xkZXJUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZm91bmRhdGlvbi5nZXRQbGFjZWhvbGRlclRleHQoKTtcbiAgfVxuXG4gIG9uRm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICB0aGlzLmZvY3VzLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb25CbHVyKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgdGhpcy5ibHVyLmVtaXQoZXZlbnQpO1xuICB9XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cImlucHV0Q2xhc3Nlc1wiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZFRlbXBsYXRlOyB0aGVuIGhlYWRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXG4gIDxkaXYgY2xhc3M9XCJtYy1pbnB1dC1jb250ZW50XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByZWZpeFRlbXBsYXRlOyB0aGVuIHByZWZpeFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICA8dGV4dGFyZWFcbiAgICAgICN0ZXh0YXJlYVxuICAgICAgWyhuZ01vZGVsKV09XCJpbnB1dFZhbHVlXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclRleHRcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFttYXhsZW5ndGhdPVwibWF4TGVuZ3RoXCJcbiAgICAgIGNsYXNzPVwibWMtdGV4dGFyZWFcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnbWMtdGV4dGFyZWEtc2ltcGxlJzogZGlzcGxheVR5cGUgPT09ICdzaW1wbGUnLFxuICAgICAgICAnbWMtdGV4dGFyZWEtZGlzYWJsZWQnOiBkaXNhYmxlZFxuICAgICAgfVwiXG4gICAgICBbbmdTdHlsZV09XCJ0ZXh0YXJlYVN0eWxlXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0lucHV0LmFyaWFMYWJlbCcgfCB0cmFuc2xhdGVcIlxuICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAoaW5wdXQpPVwib25JbnB1dCgpXCJcbiAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAoY29tcG9zaXRpb25zdGFydCk9XCJvbkNvbXBvc2l0aW9uU3RhcnQoKVwiXG4gICAgICAoY29tcG9zaXRpb25lbmQpPVwib25Db21wb3NpdGlvbkVuZCgpXCJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICAgIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxuICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxuICAgID48L3RleHRhcmVhPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdWZmaXhUZW1wbGF0ZTsgdGhlbiBzdWZmaXhUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlUeXBlID09PSAnc2ltcGxlJ1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJ1dHRvblRlbXBsYXRlOyBlbHNlIGRlZmF1bHRCdXR0b25cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0lmPVwiYnV0dG9uVGVtcGxhdGU7IHRoZW4gYnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEJ1dHRvbj5cbiAgICAgICAgPG1jLWJ1dHRvblxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCAoIWxvYWRpbmcgJiYgIWlucHV0VmFsdWUpXCJcbiAgICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgICAgICAgICBbaW5wdXRWYWx1ZV09XCJpbnB1dFZhbHVlXCJcbiAgICAgICAgICBbc2VuZEJ0blZhcmlhbnRdPVwic2VuZEJ0blZhcmlhbnRcIlxuICAgICAgICAgIChzdWJtaXQpPVwib25CdXR0b25TdWJtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgKGNhbmNlbCk9XCJvbkJ1dHRvbkNhbmNlbCgpXCJcbiAgICAgICAgICAoY2hhbmdlKT1cIm9uQnV0dG9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9tYy1idXR0b24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiZGlzcGxheVR5cGUgPT09ICdmdWxsJ1wiIGNsYXNzPVwibWMtaW5wdXQtZm9vdFwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYy1pbnB1dC1mb290LWxlZnRcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJleHRyYVRlbXBsYXRlOyB0aGVuIGV4dHJhVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxzcGFuICpuZ0lmPVwic2hvd0NvdW50XCIgaWQ9XCJtYy1pbnB1dC1jb3VudFwiIGNsYXNzPVwibWMtaW5wdXQtZm9vdC1jb3VudFwiPlxuICAgICAgICB7eyBpbnB1dFZhbHVlLmxlbmd0aCB9fXt7ICFtYXhMZW5ndGggPyBcIlwiIDogXCIvXCIgKyBtYXhMZW5ndGggfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJidXR0b25UZW1wbGF0ZTsgZWxzZSBkZWZhdWx0Rm9vdGVyQnV0dG9uXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYnV0dG9uVGVtcGxhdGU7IHRoZW4gYnV0dG9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRGb290ZXJCdXR0b24+XG4gICAgICA8bWMtYnV0dG9uXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCAoIWxvYWRpbmcgJiYgIWlucHV0VmFsdWUpXCJcbiAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXG4gICAgICAgIFtpbnB1dFZhbHVlXT1cImlucHV0VmFsdWVcIlxuICAgICAgICBbc2VuZEJ0blZhcmlhbnRdPVwic2VuZEJ0blZhcmlhbnRcIlxuICAgICAgICAoc3VibWl0KT1cIm9uQnV0dG9uU3VibWl0KCRldmVudClcIlxuICAgICAgICAoY2FuY2VsKT1cIm9uQnV0dG9uQ2FuY2VsKClcIlxuICAgICAgICAoY2hhbmdlKT1cIm9uQnV0dG9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgPjwvbWMtYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,34 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { InputComponent } from './input.component';
3
- import { CommonModule } from '@angular/common';
4
- import { FormsModule } from '@angular/forms';
5
- import { ButtonComponent } from './button/button.component';
6
- import { SendIconComponent } from './send-icon/send-icon.component';
7
- import * as i0 from "@angular/core";
8
- export class InputModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: InputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: InputModule, imports: [CommonModule,
11
- FormsModule,
12
- ButtonComponent,
13
- SendIconComponent,
14
- InputComponent], exports: [InputComponent] }); }
15
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: InputModule, imports: [CommonModule,
16
- FormsModule,
17
- ButtonComponent,
18
- InputComponent] }); }
19
- }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: InputModule, decorators: [{
21
- type: NgModule,
22
- args: [{
23
- declarations: [],
24
- imports: [
25
- CommonModule,
26
- FormsModule,
27
- ButtonComponent,
28
- SendIconComponent,
29
- InputComponent
30
- ],
31
- exports: [InputComponent],
32
- }]
33
- }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy1uZy9zcmMvSW5wdXQvaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQWFwRSxNQUFNLE9BQU8sV0FBVzs4R0FBWCxXQUFXOytHQUFYLFdBQVcsWUFScEIsWUFBWTtZQUNaLFdBQVc7WUFDWCxlQUFlO1lBQ2YsaUJBQWlCO1lBQ2pCLGNBQWMsYUFFTixjQUFjOytHQUViLFdBQVcsWUFScEIsWUFBWTtZQUNaLFdBQVc7WUFDWCxlQUFlO1lBRWYsY0FBYzs7MkZBSUwsV0FBVztrQkFYdkIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsY0FBYztxQkFDZjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZW5kSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vc2VuZC1pY29uL3NlbmQtaWNvbi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBTZW5kSWNvbkNvbXBvbmVudCxcbiAgICBJbnB1dENvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbSW5wdXRDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dE1vZHVsZSB7fVxuIl19
@@ -1,11 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class SendIconComponent {
4
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SendIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: SendIconComponent, isStandalone: true, selector: "mc-send-icon", ngImport: i0, template: "<svg\n width=\"16px\"\n height=\"16px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <path\n d=\"M13.5105149,2.56164948 C14.1211149,2.35546948 14.7829149,2.68328948 14.9892149,3.29376948 C15.0349149,3.42925948 15.0552149,3.57159948 15.0495149,3.71368948 L15.0495149,3.71368948 L15.0351149,3.85546948 L13.6575149,12.2717195 C13.5237149,13.0892195 12.7524149,13.6435195 11.9348149,13.5097195 C11.8542149,13.4965195 11.7751149,13.4768195 11.6980149,13.4508195 L11.6980149,13.4508195 L11.5840149,13.4071195 L9.3049349,12.4260195 L8.4482449,13.5422195 C8.1958049,13.8708195 7.8205549,14.0786195 7.4128449,14.1207195 L7.4128449,14.1207195 L7.2585449,14.1286195 C6.4787649,14.1286195 5.8381349,13.5337195 5.7653849,12.7731195 L5.7653849,12.7731195 L5.7585449,12.6286195 L5.7602549,10.5258195 L5.7756349,10.4384195 L5.7944349,10.3824195 L5.8266649,10.3168995 L5.8735349,10.2503695 L5.9177249,10.2039195 L12.6909149,3.89392948 L2.3403349,7.38903948 C2.2329149,7.42529948 2.1418449,7.49676948 2.0808149,7.59063948 L2.0808149,7.59063948 L2.0412649,7.66497948 C1.9440949,7.89044948 2.0258749,8.14788948 2.2236349,8.27917948 L2.2236349,8.27917948 L2.3029749,8.32214948 L4.4799849,9.26177948 C4.7333949,9.37121948 4.8503449,9.66546948 4.7409649,9.91894948 C4.6435549,10.1443495 4.4003949,10.2616595 4.1694349,10.2081295 L4.1694349,10.2081295 L4.0837449,10.1798795 L1.9072249,9.24047948 C1.1462449,8.91284948 0.795166898,8.03039948 1.1225549,7.26953948 C1.2700249,6.92755948 1.5380849,6.65435948 1.8730449,6.50018948 L1.8730449,6.50018948 L2.0205049,6.44158948 Z M6.7578149,11.3299195 L6.7585449,12.6286195 L6.7666013,12.7185103 C6.80894095,12.9517898 7.0131049,13.1286195 7.2585449,13.1286195 C7.3828149,13.1286195 7.5014649,13.0824195 7.5925349,13.0008195 L7.5925349,13.0008195 L7.6550349,12.9332195 L8.3569349,12.0179195 L6.7578149,11.3299195 Z M13.9888149,4.05090948 L7.1599149,10.4129195 L11.9795149,12.4886195 C11.9980149,12.4966195 12.0173149,12.5035195 12.0369149,12.5093195 L12.0369149,12.5093195 L12.0964149,12.5228195 C12.3386149,12.5624195 12.5686149,12.4209195 12.6482149,12.1975195 L12.6482149,12.1975195 L12.6706149,12.1101195 L13.9888149,4.05090948 Z\"\n ></path>\n </g>\n</svg>\n", styles: [":host{display:contents}:host svg{margin-right:4px}\n"] }); }
6
- }
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SendIconComponent, decorators: [{
8
- type: Component,
9
- args: [{ selector: 'mc-send-icon', standalone: true, template: "<svg\n width=\"16px\"\n height=\"16px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <path\n d=\"M13.5105149,2.56164948 C14.1211149,2.35546948 14.7829149,2.68328948 14.9892149,3.29376948 C15.0349149,3.42925948 15.0552149,3.57159948 15.0495149,3.71368948 L15.0495149,3.71368948 L15.0351149,3.85546948 L13.6575149,12.2717195 C13.5237149,13.0892195 12.7524149,13.6435195 11.9348149,13.5097195 C11.8542149,13.4965195 11.7751149,13.4768195 11.6980149,13.4508195 L11.6980149,13.4508195 L11.5840149,13.4071195 L9.3049349,12.4260195 L8.4482449,13.5422195 C8.1958049,13.8708195 7.8205549,14.0786195 7.4128449,14.1207195 L7.4128449,14.1207195 L7.2585449,14.1286195 C6.4787649,14.1286195 5.8381349,13.5337195 5.7653849,12.7731195 L5.7653849,12.7731195 L5.7585449,12.6286195 L5.7602549,10.5258195 L5.7756349,10.4384195 L5.7944349,10.3824195 L5.8266649,10.3168995 L5.8735349,10.2503695 L5.9177249,10.2039195 L12.6909149,3.89392948 L2.3403349,7.38903948 C2.2329149,7.42529948 2.1418449,7.49676948 2.0808149,7.59063948 L2.0808149,7.59063948 L2.0412649,7.66497948 C1.9440949,7.89044948 2.0258749,8.14788948 2.2236349,8.27917948 L2.2236349,8.27917948 L2.3029749,8.32214948 L4.4799849,9.26177948 C4.7333949,9.37121948 4.8503449,9.66546948 4.7409649,9.91894948 C4.6435549,10.1443495 4.4003949,10.2616595 4.1694349,10.2081295 L4.1694349,10.2081295 L4.0837449,10.1798795 L1.9072249,9.24047948 C1.1462449,8.91284948 0.795166898,8.03039948 1.1225549,7.26953948 C1.2700249,6.92755948 1.5380849,6.65435948 1.8730449,6.50018948 L1.8730449,6.50018948 L2.0205049,6.44158948 Z M6.7578149,11.3299195 L6.7585449,12.6286195 L6.7666013,12.7185103 C6.80894095,12.9517898 7.0131049,13.1286195 7.2585449,13.1286195 C7.3828149,13.1286195 7.5014649,13.0824195 7.5925349,13.0008195 L7.5925349,13.0008195 L7.6550349,12.9332195 L8.3569349,12.0179195 L6.7578149,11.3299195 Z M13.9888149,4.05090948 L7.1599149,10.4129195 L11.9795149,12.4886195 C11.9980149,12.4966195 12.0173149,12.5035195 12.0369149,12.5093195 L12.0369149,12.5093195 L12.0964149,12.5228195 C12.3386149,12.5624195 12.5686149,12.4209195 12.6482149,12.1975195 L12.6482149,12.1975195 L12.6706149,12.1101195 L13.9888149,4.05090948 Z\"\n ></path>\n </g>\n</svg>\n", styles: [":host{display:contents}:host svg{margin-right:4px}\n"] }]
10
- }] });
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1pY29uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMtbmcvc3JjL0lucHV0L3NlbmQtaWNvbi9zZW5kLWljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy1uZy9zcmMvSW5wdXQvc2VuZC1pY29uL3NlbmQtaWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVExQyxNQUFNLE9BQU8saUJBQWlCOzhHQUFqQixpQkFBaUI7a0dBQWpCLGlCQUFpQix3RUNSOUIsK3dFQWFBOzsyRkRMYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0UsY0FBYyxjQUNaLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWMtc2VuZC1pY29uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbmQtaWNvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbmQtaWNvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlbmRJY29uQ29tcG9uZW50IHtcblxufSIsIjxzdmdcbiAgd2lkdGg9XCIxNnB4XCJcbiAgaGVpZ2h0PVwiMTZweFwiXG4gIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICB2ZXJzaW9uPVwiMS4xXCJcbiAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4+XG4gIDxnIHN0cm9rZT1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIxXCIgZmlsbD1cIm5vbmVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCI+XG4gICAgPHBhdGhcbiAgICAgIGQ9XCJNMTMuNTEwNTE0OSwyLjU2MTY0OTQ4IEMxNC4xMjExMTQ5LDIuMzU1NDY5NDggMTQuNzgyOTE0OSwyLjY4MzI4OTQ4IDE0Ljk4OTIxNDksMy4yOTM3Njk0OCBDMTUuMDM0OTE0OSwzLjQyOTI1OTQ4IDE1LjA1NTIxNDksMy41NzE1OTk0OCAxNS4wNDk1MTQ5LDMuNzEzNjg5NDggTDE1LjA0OTUxNDksMy43MTM2ODk0OCBMMTUuMDM1MTE0OSwzLjg1NTQ2OTQ4IEwxMy42NTc1MTQ5LDEyLjI3MTcxOTUgQzEzLjUyMzcxNDksMTMuMDg5MjE5NSAxMi43NTI0MTQ5LDEzLjY0MzUxOTUgMTEuOTM0ODE0OSwxMy41MDk3MTk1IEMxMS44NTQyMTQ5LDEzLjQ5NjUxOTUgMTEuNzc1MTE0OSwxMy40NzY4MTk1IDExLjY5ODAxNDksMTMuNDUwODE5NSBMMTEuNjk4MDE0OSwxMy40NTA4MTk1IEwxMS41ODQwMTQ5LDEzLjQwNzExOTUgTDkuMzA0OTM0OSwxMi40MjYwMTk1IEw4LjQ0ODI0NDksMTMuNTQyMjE5NSBDOC4xOTU4MDQ5LDEzLjg3MDgxOTUgNy44MjA1NTQ5LDE0LjA3ODYxOTUgNy40MTI4NDQ5LDE0LjEyMDcxOTUgTDcuNDEyODQ0OSwxNC4xMjA3MTk1IEw3LjI1ODU0NDksMTQuMTI4NjE5NSBDNi40Nzg3NjQ5LDE0LjEyODYxOTUgNS44MzgxMzQ5LDEzLjUzMzcxOTUgNS43NjUzODQ5LDEyLjc3MzExOTUgTDUuNzY1Mzg0OSwxMi43NzMxMTk1IEw1Ljc1ODU0NDksMTIuNjI4NjE5NSBMNS43NjAyNTQ5LDEwLjUyNTgxOTUgTDUuNzc1NjM0OSwxMC40Mzg0MTk1IEw1Ljc5NDQzNDksMTAuMzgyNDE5NSBMNS44MjY2NjQ5LDEwLjMxNjg5OTUgTDUuODczNTM0OSwxMC4yNTAzNjk1IEw1LjkxNzcyNDksMTAuMjAzOTE5NSBMMTIuNjkwOTE0OSwzLjg5MzkyOTQ4IEwyLjM0MDMzNDksNy4zODkwMzk0OCBDMi4yMzI5MTQ5LDcuNDI1Mjk5NDggMi4xNDE4NDQ5LDcuNDk2NzY5NDggMi4wODA4MTQ5LDcuNTkwNjM5NDggTDIuMDgwODE0OSw3LjU5MDYzOTQ4IEwyLjA0MTI2NDksNy42NjQ5Nzk0OCBDMS45NDQwOTQ5LDcuODkwNDQ5NDggMi4wMjU4NzQ5LDguMTQ3ODg5NDggMi4yMjM2MzQ5LDguMjc5MTc5NDggTDIuMjIzNjM0OSw4LjI3OTE3OTQ4IEwyLjMwMjk3NDksOC4zMjIxNDk0OCBMNC40Nzk5ODQ5LDkuMjYxNzc5NDggQzQuNzMzMzk0OSw5LjM3MTIxOTQ4IDQuODUwMzQ0OSw5LjY2NTQ2OTQ4IDQuNzQwOTY0OSw5LjkxODk0OTQ4IEM0LjY0MzU1NDksMTAuMTQ0MzQ5NSA0LjQwMDM5NDksMTAuMjYxNjU5NSA0LjE2OTQzNDksMTAuMjA4MTI5NSBMNC4xNjk0MzQ5LDEwLjIwODEyOTUgTDQuMDgzNzQ0OSwxMC4xNzk4Nzk1IEwxLjkwNzIyNDksOS4yNDA0Nzk0OCBDMS4xNDYyNDQ5LDguOTEyODQ5NDggMC43OTUxNjY4OTgsOC4wMzAzOTk0OCAxLjEyMjU1NDksNy4yNjk1Mzk0OCBDMS4yNzAwMjQ5LDYuOTI3NTU5NDggMS41MzgwODQ5LDYuNjU0MzU5NDggMS44NzMwNDQ5LDYuNTAwMTg5NDggTDEuODczMDQ0OSw2LjUwMDE4OTQ4IEwyLjAyMDUwNDksNi40NDE1ODk0OCBaIE02Ljc1NzgxNDksMTEuMzI5OTE5NSBMNi43NTg1NDQ5LDEyLjYyODYxOTUgTDYuNzY2NjAxMywxMi43MTg1MTAzIEM2LjgwODk0MDk1LDEyLjk1MTc4OTggNy4wMTMxMDQ5LDEzLjEyODYxOTUgNy4yNTg1NDQ5LDEzLjEyODYxOTUgQzcuMzgyODE0OSwxMy4xMjg2MTk1IDcuNTAxNDY0OSwxMy4wODI0MTk1IDcuNTkyNTM0OSwxMy4wMDA4MTk1IEw3LjU5MjUzNDksMTMuMDAwODE5NSBMNy42NTUwMzQ5LDEyLjkzMzIxOTUgTDguMzU2OTM0OSwxMi4wMTc5MTk1IEw2Ljc1NzgxNDksMTEuMzI5OTE5NSBaIE0xMy45ODg4MTQ5LDQuMDUwOTA5NDggTDcuMTU5OTE0OSwxMC40MTI5MTk1IEwxMS45Nzk1MTQ5LDEyLjQ4ODYxOTUgQzExLjk5ODAxNDksMTIuNDk2NjE5NSAxMi4wMTczMTQ5LDEyLjUwMzUxOTUgMTIuMDM2OTE0OSwxMi41MDkzMTk1IEwxMi4wMzY5MTQ5LDEyLjUwOTMxOTUgTDEyLjA5NjQxNDksMTIuNTIyODE5NSBDMTIuMzM4NjE0OSwxMi41NjI0MTk1IDEyLjU2ODYxNDksMTIuNDIwOTE5NSAxMi42NDgyMTQ5LDEyLjE5NzUxOTUgTDEyLjY0ODIxNDksMTIuMTk3NTE5NSBMMTIuNjcwNjE0OSwxMi4xMTAxMTk1IEwxMy45ODg4MTQ5LDQuMDUwOTA5NDggWlwiXG4gICAgPjwvcGF0aD5cbiAgPC9nPlxuPC9zdmc+XG4iXX0=
@@ -1,6 +0,0 @@
1
- // 导出Locale服务
2
- import { LocaleService } from './locale.service';
3
- import { LocaleModule } from './locale.module';
4
- import { TranslatePipe } from './translate.pipe';
5
- export { LocaleService, LocaleModule, TranslatePipe };
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLW5nL3NyYy9Mb2NhbGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsYUFBYTtBQUNiLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBS2pELE9BQU8sRUFDTCxhQUFhLEVBQ2IsWUFBWSxFQUNaLGFBQWEsRUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8g5a+85Ye6TG9jYWxl5pyN5YqhXG5pbXBvcnQgeyBMb2NhbGVTZXJ2aWNlIH0gZnJvbSAnLi9sb2NhbGUuc2VydmljZSc7XG5pbXBvcnQgeyBMb2NhbGVNb2R1bGUgfSBmcm9tICcuL2xvY2FsZS5tb2R1bGUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4vdHJhbnNsYXRlLnBpcGUnO1xuXG4vLyDph43mlrDlr7zlh7rnsbvlnotcbmV4cG9ydCB0eXBlIHsgTGFuZ3VhZ2VDb2RlLCBMb2NhbGVEYXRhIH0gZnJvbSAnLi9sb2NhbGUuc2VydmljZSc7XG5cbmV4cG9ydCB7XG4gIExvY2FsZVNlcnZpY2UsXG4gIExvY2FsZU1vZHVsZSxcbiAgVHJhbnNsYXRlUGlwZVxufTsiXX0=
@@ -1,39 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { LocaleService } from './locale.service';
3
- import * as i0 from "@angular/core";
4
- export class LocaleModule {
5
- /**
6
- * 静态方法,用于配置模块并提供服务
7
- * 可以在AppModule中使用LocaleModule.forRoot()来初始化
8
- */
9
- static forRoot() {
10
- return {
11
- ngModule: LocaleModule,
12
- providers: [
13
- LocaleService
14
- ]
15
- };
16
- }
17
- /**
18
- * 普通导入方法,用于特性模块中导入
19
- * 避免服务被多次实例化
20
- */
21
- static forChild() {
22
- return {
23
- ngModule: LocaleModule,
24
- providers: [] // 子模块不提供服务实例
25
- };
26
- }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LocaleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
28
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: LocaleModule }); }
29
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LocaleModule }); }
30
- }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LocaleModule, decorators: [{
32
- type: NgModule,
33
- args: [{
34
- declarations: [],
35
- imports: [],
36
- exports: []
37
- }]
38
- }] });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMtbmcvc3JjL0xvY2FsZS9sb2NhbGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFPakQsTUFBTSxPQUFPLFlBQVk7SUFDdkI7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLFlBQVk7WUFDdEIsU0FBUyxFQUFFO2dCQUNULGFBQWE7YUFDZDtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFFBQVE7UUFDYixPQUFPO1lBQ0wsUUFBUSxFQUFFLFlBQVk7WUFDdEIsU0FBUyxFQUFFLEVBQUUsQ0FBQyxhQUFhO1NBQzVCLENBQUM7SUFDSixDQUFDOzhHQXZCVSxZQUFZOytHQUFaLFlBQVk7K0dBQVosWUFBWTs7MkZBQVosWUFBWTtrQkFMeEIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLEVBQUU7aUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9jYWxlU2VydmljZSB9IGZyb20gJy4vbG9jYWxlLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBpbXBvcnRzOiBbXSxcbiAgZXhwb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgTG9jYWxlTW9kdWxlIHtcbiAgLyoqXG4gICAqIOmdmeaAgeaWueazle+8jOeUqOS6jumFjee9ruaooeWdl+W5tuaPkOS+m+acjeWKoVxuICAgKiDlj6/ku6XlnKhBcHBNb2R1bGXkuK3kvb/nlKhMb2NhbGVNb2R1bGUuZm9yUm9vdCgp5p2l5Yid5aeL5YyWXG4gICAqL1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPExvY2FsZU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTG9jYWxlTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIExvY2FsZVNlcnZpY2VcbiAgICAgIF1cbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIOaZrumAmuWvvOWFpeaWueazle+8jOeUqOS6jueJueaAp+aooeWdl+S4reWvvOWFpVxuICAgKiDpgb/lhY3mnI3liqHooqvlpJrmrKHlrp7kvovljJZcbiAgICovXG4gIHN0YXRpYyBmb3JDaGlsZCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPExvY2FsZU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTG9jYWxlTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXSAvLyDlrZDmqKHlnZfkuI3mj5DkvpvmnI3liqHlrp7kvotcbiAgICB9O1xuICB9XG59Il19
@@ -1,140 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import zhCN from '../components-common/Locale/lang/zh-cn';
4
- import enUS from '../components-common/Locale/lang/en-us';
5
- import * as i0 from "@angular/core";
6
- export class LocaleService {
7
- constructor() {
8
- // 当前语言
9
- this._currentLanguage = 'zh-cn';
10
- // 语言包存储
11
- this._localeData = new Map();
12
- // 语言变更通知
13
- this._languageChange = new Subject();
14
- // 公开语言变更Observable
15
- this.languageChange$ = this._languageChange.asObservable();
16
- // 首先尝试从localStorage获取语言设置
17
- const savedLang = localStorage.getItem('lang');
18
- if (savedLang) {
19
- this._currentLanguage = savedLang;
20
- }
21
- // 初始化默认语言包
22
- this.loadDefaultLocales();
23
- }
24
- /**
25
- * 加载默认语言包
26
- */
27
- async loadDefaultLocales() {
28
- try {
29
- // 动态导入默认语言包
30
- this._localeData.set('zh-cn', zhCN);
31
- this._localeData.set('en-us', enUS);
32
- }
33
- catch (error) {
34
- console.error('Failed to load default locales:', error);
35
- }
36
- }
37
- /**
38
- * 设置当前语言
39
- */
40
- setLanguage(language) {
41
- if (this._currentLanguage !== language) {
42
- this._currentLanguage = language;
43
- // 保存到localStorage
44
- localStorage.setItem('lang', language);
45
- this._languageChange.next(language);
46
- }
47
- }
48
- /**
49
- * 获取当前语言
50
- */
51
- getLanguage() {
52
- return this._currentLanguage;
53
- }
54
- /**
55
- * 翻译文本
56
- * @param key 翻译键,支持嵌套路径如 'Input.send'
57
- * @param params 替换参数
58
- */
59
- translate(key, params) {
60
- if (!key)
61
- return key;
62
- // 获取当前语言的语言包
63
- const localeData = this._localeData.get(this._currentLanguage) || {};
64
- // 解析嵌套键
65
- const keys = key.split('.');
66
- let value = localeData;
67
- for (const k of keys) {
68
- if (value && typeof value === 'object' && k in value) {
69
- value = value[k];
70
- }
71
- else {
72
- // 如果键不存在,返回原始键
73
- return key;
74
- }
75
- }
76
- // 处理替换参数
77
- if (typeof value === 'string' && params) {
78
- let result = value;
79
- for (const [paramKey, paramValue] of Object.entries(params)) {
80
- const regex = new RegExp(`\\{${paramKey}\\}`, 'g');
81
- result = result.replace(regex, String(paramValue));
82
- }
83
- return result;
84
- }
85
- return value;
86
- }
87
- /**
88
- * 添加新的语言
89
- */
90
- addLanguage(language, localeData) {
91
- this._localeData.set(language, localeData);
92
- }
93
- /**
94
- * 覆盖现有语言的部分翻译
95
- */
96
- overrideLocale(language, localeData) {
97
- if (this._localeData.has(language)) {
98
- const existingLocale = this._localeData.get(language) || {};
99
- // 深度合并语言包
100
- const mergedLocale = this.deepMerge(existingLocale, localeData);
101
- this._localeData.set(language, mergedLocale);
102
- }
103
- else {
104
- // 如果语言不存在,则添加新语言
105
- this.addLanguage(language, localeData);
106
- }
107
- }
108
- /**
109
- * 获取所有支持的语言
110
- */
111
- getSupportedLanguages() {
112
- return Array.from(this._localeData.keys());
113
- }
114
- /**
115
- * 深度合并对象
116
- */
117
- deepMerge(target, source) {
118
- const result = { ...target };
119
- for (const key in source) {
120
- if (source.hasOwnProperty(key)) {
121
- if (source[key] instanceof Object && key in target) {
122
- result[key] = this.deepMerge(target[key], source[key]);
123
- }
124
- else {
125
- result[key] = source[key];
126
- }
127
- }
128
- }
129
- return result;
130
- }
131
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LocaleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
132
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LocaleService, providedIn: 'root' }); }
133
- }
134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LocaleService, decorators: [{
135
- type: Injectable,
136
- args: [{
137
- providedIn: 'root'
138
- }]
139
- }], ctorParameters: () => [] });
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLW5nL3NyYy9Mb2NhbGUvbG9jYWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sSUFBSSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFELE9BQU8sSUFBSSxNQUFNLHdDQUF3QyxDQUFDOztBQWExRCxNQUFNLE9BQU8sYUFBYTtJQVV4QjtRQVRBLE9BQU87UUFDQyxxQkFBZ0IsR0FBaUIsT0FBTyxDQUFDO1FBQ2pELFFBQVE7UUFDQSxnQkFBVyxHQUFrQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQy9ELFNBQVM7UUFDRCxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFnQixDQUFDO1FBQ3RELG1CQUFtQjtRQUNuQixvQkFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFHcEQsMEJBQTBCO1FBQzFCLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0MsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7UUFDcEMsQ0FBQztRQUVELFdBQVc7UUFDWCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxLQUFLLENBQUMsa0JBQWtCO1FBQzlCLElBQUksQ0FBQztZQUNILFlBQVk7WUFFWixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FB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QkFBaUI7WUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILHFCQUFxQjtRQUNuQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNLLFNBQVMsQ0FBQyxNQUFXLEVBQUUsTUFBVztRQUN4QyxNQUFNLE1BQU0sR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFFN0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUN6QixJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksTUFBTSxJQUFJLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDbkQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN6RCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDNUIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs4R0F6SVUsYUFBYTtrSEFBYixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgemhDTiBmcm9tICcuLi9jb21wb25lbnRzLWNvbW1vbi9Mb2NhbGUvbGFuZy96aC1jbic7XG5pbXBvcnQgZW5VUyBmcm9tICcuLi9jb21wb25lbnRzLWNvbW1vbi9Mb2NhbGUvbGFuZy9lbi11cyc7XG5cbi8vIOWumuS5ieivreiogOWMheaOpeWPo1xuZXhwb3J0IGludGVyZmFjZSBMb2NhbGVEYXRhIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG4vLyDlrprkuYnmlK/mjIHnmoTor63oqIDnsbvlnotcbmV4cG9ydCB0eXBlIExhbmd1YWdlQ29kZSA9ICd6aC1jbicgfCAnZW4tdXMnIHwgc3RyaW5nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMb2NhbGVTZXJ2aWNlIHtcbiAgLy8g5b2T5YmN6K+t6KiAXG4gIHByaXZhdGUgX2N1cnJlbnRMYW5ndWFnZTogTGFuZ3VhZ2VDb2RlID0gJ3poLWNuJztcbiAgLy8g6K+t6KiA5YyF5a2Y5YKoXG4gIHByaXZhdGUgX2xvY2FsZURhdGE6IE1hcDxMYW5ndWFnZUNvZGUsIExvY2FsZURhdGE+ID0gbmV3IE1hcCgpO1xuICAvLyDor63oqIDlj5jmm7TpgJrnn6VcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2VDaGFuZ2UgPSBuZXcgU3ViamVjdDxMYW5ndWFnZUNvZGU+KCk7XG4gIC8vIOWFrOW8gOivreiogOWPmOabtE9ic2VydmFibGVcbiAgbGFuZ3VhZ2VDaGFuZ2UkID0gdGhpcy5fbGFuZ3VhZ2VDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8g6aaW5YWI5bCd6K+V5LuObG9jYWxTdG9yYWdl6I635Y+W6K+t6KiA6K6+572uXG4gICAgY29uc3Qgc2F2ZWRMYW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmcnKTtcbiAgICBpZiAoc2F2ZWRMYW5nKSB7XG4gICAgICB0aGlzLl9jdXJyZW50TGFuZ3VhZ2UgPSBzYXZlZExhbmc7XG4gICAgfVxuICAgIFxuICAgIC8vIOWIneWni+WMlum7mOiupOivreiogOWMhVxuICAgIHRoaXMubG9hZERlZmF1bHRMb2NhbGVzKCk7XG4gIH1cblxuICAvKipcbiAgICog5Yqg6L296buY6K6k6K+t6KiA5YyFXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGxvYWREZWZhdWx0TG9jYWxlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgLy8g5Yqo5oCB5a+85YWl6buY6K6k6K+t6KiA5YyFXG5cbiAgICAgIHRoaXMuX2xvY2FsZURhdGEuc2V0KCd6aC1jbicsIHpoQ04pO1xuICAgICAgdGhpcy5fbG9jYWxlRGF0YS5zZXQoJ2VuLXVzJywgZW5VUyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGRlZmF1bHQgbG9jYWxlczonLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIOiuvue9ruW9k+WJjeivreiogFxuICAgKi9cbiAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2U6IExhbmd1YWdlQ29kZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jdXJyZW50TGFuZ3VhZ2UgIT09IGxhbmd1YWdlKSB7XG4gICAgICB0aGlzLl9jdXJyZW50TGFuZ3VhZ2UgPSBsYW5ndWFnZTtcbiAgICAgIC8vIOS/neWtmOWIsGxvY2FsU3RvcmFnZVxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2xhbmcnLCBsYW5ndWFnZSk7XG4gICAgICB0aGlzLl9sYW5ndWFnZUNoYW5nZS5uZXh0KGxhbmd1YWdlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICog6I635Y+W5b2T5YmN6K+t6KiAXG4gICAqL1xuICBnZXRMYW5ndWFnZSgpOiBMYW5ndWFnZUNvZGUge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50TGFuZ3VhZ2U7XG4gIH1cblxuICAvKipcbiAgICog57+76K+R5paH5pysXG4gICAqIEBwYXJhbSBrZXkg57+76K+R6ZSu77yM5pSv5oyB5bWM5aWX6Lev5b6E5aaCICdJbnB1dC5zZW5kJ1xuICAgKiBAcGFyYW0gcGFyYW1zIOabv+aNouWPguaVsFxuICAgKi9cbiAgdHJhbnNsYXRlKGtleTogc3RyaW5nLCBwYXJhbXM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB9KTogc3RyaW5nIHtcbiAgICBpZiAoIWtleSkgcmV0dXJuIGtleTtcblxuICAgIC8vIOiOt+WPluW9k+WJjeivreiogOeahOivreiogOWMhVxuICAgIGNvbnN0IGxvY2FsZURhdGEgPSB0aGlzLl9sb2NhbGVEYXRhLmdldCh0aGlzLl9jdXJyZW50TGFuZ3VhZ2UpIHx8IHt9O1xuICAgIFxuICAgIC8vIOino+aekOW1jOWll+mUrlxuICAgIGNvbnN0IGtleXMgPSBrZXkuc3BsaXQoJy4nKTtcbiAgICBsZXQgdmFsdWU6IGFueSA9IGxvY2FsZURhdGE7XG4gICAgXG4gICAgZm9yIChjb25zdCBrIG9mIGtleXMpIHtcbiAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIGsgaW4gdmFsdWUpIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZVtrXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIOWmguaenOmUruS4jeWtmOWcqO+8jOi/lOWbnuWOn+Wni+mUrlxuICAgICAgICByZXR1cm4ga2V5O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIOWkhOeQhuabv+aNouWPguaVsFxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHBhcmFtcykge1xuICAgICAgbGV0IHJlc3VsdCA9IHZhbHVlO1xuICAgICAgZm9yIChjb25zdCBbcGFyYW1LZXksIHBhcmFtVmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHBhcmFtcykpIHtcbiAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBcXFxceyR7cGFyYW1LZXl9XFxcXH1gLCAnZycpO1xuICAgICAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZShyZWdleCwgU3RyaW5nKHBhcmFtVmFsdWUpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlIGFzIHN0cmluZztcbiAgfVxuXG4gIC8qKlxuICAgKiDmt7vliqDmlrDnmoTor63oqIBcbiAgICovXG4gIGFkZExhbmd1YWdlKGxhbmd1YWdlOiBMYW5ndWFnZUNvZGUsIGxvY2FsZURhdGE6IExvY2FsZURhdGEpOiB2b2lkIHtcbiAgICB0aGlzLl9sb2NhbGVEYXRhLnNldChsYW5ndWFnZSwgbG9jYWxlRGF0YSk7XG4gIH1cblxuICAvKipcbiAgICog6KaG55uW546w5pyJ6K+t6KiA55qE6YOo5YiG57+76K+RXG4gICAqL1xuICBvdmVycmlkZUxvY2FsZShsYW5ndWFnZTogTGFuZ3VhZ2VDb2RlLCBsb2NhbGVEYXRhOiBMb2NhbGVEYXRhKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2xvY2FsZURhdGEuaGFzKGxhbmd1YWdlKSkge1xuICAgICAgY29uc3QgZXhpc3RpbmdMb2NhbGUgPSB0aGlzLl9sb2NhbGVEYXRhLmdldChsYW5ndWFnZSkgfHwge307XG4gICAgICAvLyDmt7HluqblkIjlubbor63oqIDljIVcbiAgICAgIGNvbnN0IG1lcmdlZExvY2FsZSA9IHRoaXMuZGVlcE1lcmdlKGV4aXN0aW5nTG9jYWxlLCBsb2NhbGVEYXRhKTtcbiAgICAgIHRoaXMuX2xvY2FsZURhdGEuc2V0KGxhbmd1YWdlLCBtZXJnZWRMb2NhbGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyDlpoLmnpzor63oqIDkuI3lrZjlnKjvvIzliJnmt7vliqDmlrDor63oqIBcbiAgICAgIHRoaXMuYWRkTGFuZ3VhZ2UobGFuZ3VhZ2UsIGxvY2FsZURhdGEpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5bmiYDmnInmlK/mjIHnmoTor63oqIBcbiAgICovXG4gIGdldFN1cHBvcnRlZExhbmd1YWdlcygpOiBMYW5ndWFnZUNvZGVbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fbG9jYWxlRGF0YS5rZXlzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIOa3seW6puWQiOW5tuWvueixoVxuICAgKi9cbiAgcHJpdmF0ZSBkZWVwTWVyZ2UodGFyZ2V0OiBhbnksIHNvdXJjZTogYW55KTogYW55IHtcbiAgICBjb25zdCByZXN1bHQgPSB7IC4uLnRhcmdldCB9O1xuICAgIFxuICAgIGZvciAoY29uc3Qga2V5IGluIHNvdXJjZSkge1xuICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGlmIChzb3VyY2Vba2V5XSBpbnN0YW5jZW9mIE9iamVjdCAmJiBrZXkgaW4gdGFyZ2V0KSB7XG4gICAgICAgICAgcmVzdWx0W2tleV0gPSB0aGlzLmRlZXBNZXJnZSh0YXJnZXRba2V5XSwgc291cmNlW2tleV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufSJdfQ==