@acorex/components 17.0.15 → 17.0.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. package/conversation/index.d.ts +12 -0
  2. package/{chat/lib/chat-input/chat-input.component.d.ts → conversation/lib/conversation-input/conversation-input.component.d.ts} +4 -4
  3. package/conversation/lib/conversation-message/conversation-message.component.d.ts +16 -0
  4. package/conversation/lib/conversation-messages/conversation-message-text.component.d.ts +9 -0
  5. package/{chat/lib/chat-messages/chat-messages-voice/chat-message-voice.component.d.ts → conversation/lib/conversation-messages/conversation-messages-voice/conversation-message-voice.component.d.ts} +6 -4
  6. package/conversation/lib/conversation-view/conversation-view.component.d.ts +10 -0
  7. package/conversation/lib/conversation.module.d.ts +36 -0
  8. package/conversation/lib/conversation.types.d.ts +21 -0
  9. package/conversation/lib/services/conversation-message-type-registry.service.d.ts +9 -0
  10. package/conversation/lib/services/conversation.service.d.ts +5 -0
  11. package/esm2022/audio-wave/lib/audio-wave.component.mjs +4 -4
  12. package/esm2022/conversation/acorex-components-conversation.mjs +5 -0
  13. package/esm2022/conversation/index.mjs +14 -0
  14. package/esm2022/conversation/lib/classes/events.interface.mjs +2 -0
  15. package/esm2022/{chat/lib/chat-input/chat-input.component.mjs → conversation/lib/conversation-input/conversation-input.component.mjs} +14 -14
  16. package/esm2022/conversation/lib/conversation-input/conversation-input.interface.mjs +2 -0
  17. package/esm2022/conversation/lib/conversation-message/conversation-message.component.mjs +55 -0
  18. package/esm2022/conversation/lib/conversation-messages/conversation-message-text.component.mjs +23 -0
  19. package/esm2022/conversation/lib/conversation-messages/conversation-messages-voice/conversation-message-voice.component.mjs +112 -0
  20. package/esm2022/conversation/lib/conversation-view/conversation-view.component.mjs +22 -0
  21. package/esm2022/conversation/lib/conversation.module.mjs +150 -0
  22. package/esm2022/conversation/lib/conversation.types.mjs +10 -0
  23. package/esm2022/conversation/lib/services/conversation-message-type-registry.service.mjs +20 -0
  24. package/esm2022/conversation/lib/services/conversation.service.mjs +10 -0
  25. package/esm2022/conversation/lib/services/recording.service.mjs +78 -0
  26. package/fesm2022/acorex-components-audio-wave.mjs +3 -3
  27. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  28. package/fesm2022/{acorex-components-chat.mjs → acorex-components-conversation.mjs} +106 -86
  29. package/fesm2022/acorex-components-conversation.mjs.map +1 -0
  30. package/package.json +13 -13
  31. package/chat/index.d.ts +0 -12
  32. package/chat/lib/chat-message/chat-message.component.d.ts +0 -16
  33. package/chat/lib/chat-messages/chat-message-text.component.d.ts +0 -8
  34. package/chat/lib/chat-view/chat-view.component.d.ts +0 -10
  35. package/chat/lib/chat.module.d.ts +0 -35
  36. package/chat/lib/chat.types.d.ts +0 -21
  37. package/chat/lib/services/chat-message-type-registry.service.d.ts +0 -9
  38. package/chat/lib/services/chat.service.d.ts +0 -5
  39. package/esm2022/chat/acorex-components-chat.mjs +0 -5
  40. package/esm2022/chat/index.mjs +0 -14
  41. package/esm2022/chat/lib/chat-input/chat-input.interface.mjs +0 -2
  42. package/esm2022/chat/lib/chat-message/chat-message.component.mjs +0 -54
  43. package/esm2022/chat/lib/chat-messages/chat-message-text.component.mjs +0 -23
  44. package/esm2022/chat/lib/chat-messages/chat-messages-voice/chat-message-voice.component.mjs +0 -97
  45. package/esm2022/chat/lib/chat-view/chat-view.component.mjs +0 -22
  46. package/esm2022/chat/lib/chat.module.mjs +0 -146
  47. package/esm2022/chat/lib/chat.types.mjs +0 -10
  48. package/esm2022/chat/lib/classes/events.interface.mjs +0 -2
  49. package/esm2022/chat/lib/services/chat-message-type-registry.service.mjs +0 -20
  50. package/esm2022/chat/lib/services/chat.service.mjs +0 -10
  51. package/esm2022/chat/lib/services/recording.service.mjs +0 -78
  52. package/fesm2022/acorex-components-chat.mjs.map +0 -1
  53. /package/{chat → conversation}/README.md +0 -0
  54. /package/{chat → conversation}/lib/classes/events.interface.d.ts +0 -0
  55. /package/{chat/lib/chat-input/chat-input.interface.d.ts → conversation/lib/conversation-input/conversation-input.interface.d.ts} +0 -0
  56. /package/{chat → conversation}/lib/services/recording.service.d.ts +0 -0
@@ -0,0 +1,12 @@
1
+ export * from './lib/classes/events.interface';
2
+ export * from './lib/conversation-input/conversation-input.component';
3
+ export * from './lib/conversation-input/conversation-input.interface';
4
+ export * from './lib/conversation-message/conversation-message.component';
5
+ export * from './lib/conversation-view/conversation-view.component';
6
+ export * from './lib/conversation.module';
7
+ export * from './lib/conversation.types';
8
+ export * from './lib/services/conversation-message-type-registry.service';
9
+ export * from './lib/services/conversation.service';
10
+ export * from './lib/services/recording.service';
11
+ export * from './lib/conversation-messages/conversation-message-text.component';
12
+ export * from './lib/conversation-messages/conversation-messages-voice/conversation-message-voice.component';
@@ -3,12 +3,12 @@ import { ElementRef, EventEmitter, WritableSignal } from '@angular/core';
3
3
  import { AXInputFileChange } from '../classes/events.interface';
4
4
  import { AXRecordingService } from '../services/recording.service';
5
5
  import * as i0 from "@angular/core";
6
- declare const AXChatInputComponent_base: import("polytype").Polytype.ClusteredConstructor<[{
6
+ declare const AXConversationInputComponent_base: import("polytype").Polytype.ClusteredConstructor<[{
7
7
  new (): MXInputBaseValueComponent<string>;
8
8
  ɵfac: unknown;
9
9
  ɵprov: import("@angular/core").ɵɵInjectableDeclaration<MXInputBaseValueComponent<any>>;
10
10
  }, typeof MXLookComponent]>;
11
- export declare class AXChatInputComponent extends AXChatInputComponent_base {
11
+ export declare class AXConversationInputComponent extends AXConversationInputComponent_base {
12
12
  inputFile: ElementRef<HTMLInputElement>;
13
13
  maxLength: number;
14
14
  hasAttachment: boolean;
@@ -29,7 +29,7 @@ export declare class AXChatInputComponent extends AXChatInputComponent_base {
29
29
  handleChangeFile(event: Event): void;
30
30
  handleSendClick(): void;
31
31
  handleSendVoiceClick(): void;
32
- static ɵfac: i0.ɵɵFactoryDeclaration<AXChatInputComponent, never>;
33
- static ɵcmp: i0.ɵɵComponentDeclaration<AXChatInputComponent, "ax-chat-input", never, { "maxLength": { "alias": "maxLength"; "required": false; }; "hasAttachment": { "alias": "hasAttachment"; "required": false; }; "haVoice": { "alias": "haVoice"; "required": false; }; "acceptFileType": { "alias": "acceptFileType"; "required": false; }; }, { "onSendClick": "onSendClick"; "onStartRecording": "onStartRecording"; "onStopRecording": "onStopRecording"; "onFileChange": "onFileChange"; }, never, never, false, never>;
32
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXConversationInputComponent, never>;
33
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXConversationInputComponent, "ax-conversation-input", never, { "maxLength": { "alias": "maxLength"; "required": false; }; "hasAttachment": { "alias": "hasAttachment"; "required": false; }; "haVoice": { "alias": "haVoice"; "required": false; }; "acceptFileType": { "alias": "acceptFileType"; "required": false; }; }, { "onSendClick": "onSendClick"; "onStartRecording": "onStartRecording"; "onStopRecording": "onStopRecording"; "onFileChange": "onFileChange"; }, never, never, false, never>;
34
34
  }
35
35
  export {};
@@ -0,0 +1,16 @@
1
+ import { MXBaseComponent } from '@acorex/components/common';
2
+ import { CdkPortalOutletAttachedRef, ComponentPortal } from '@angular/cdk/portal';
3
+ import { AXConversationMessage } from '../conversation.types';
4
+ import { AXConversationMessageTypeRegistryService } from '../services/conversation-message-type-registry.service';
5
+ import * as i0 from "@angular/core";
6
+ export declare class AXConversationMessageComponent extends MXBaseComponent {
7
+ chatMessage: import("@angular/core").InputSignal<AXConversationMessage<any>>;
8
+ protected _portal: ComponentPortal<any> | null;
9
+ protected get isOwn(): boolean;
10
+ protected registryService: AXConversationMessageTypeRegistryService;
11
+ get __hostClass(): string;
12
+ protected ngOnInit(): void;
13
+ protected _handleAttched(ref: CdkPortalOutletAttachedRef): void;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXConversationMessageComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXConversationMessageComponent, "ax-conversation-message", never, { "chatMessage": { "alias": "chatMessage"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
16
+ }
@@ -0,0 +1,9 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { AXConversationMessageBaseComponent } from '../conversation.types';
3
+ import * as i0 from "@angular/core";
4
+ export declare class AXConversationTextMessageComponent extends AXConversationMessageBaseComponent<string> implements OnInit {
5
+ protected _text: import("@angular/core").WritableSignal<string>;
6
+ ngOnInit(): void;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXConversationTextMessageComponent, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXConversationTextMessageComponent, "ng-component", never, { "message": { "alias": "message"; "required": false; }; }, {}, never, never, false, never>;
9
+ }
@@ -1,8 +1,8 @@
1
1
  import { AXAudioWaveChangeEvent, AXAudioWaveComponent, AXWaveConfig } from '@acorex/components/audio-wave';
2
2
  import { WritableSignal } from '@angular/core';
3
- import { AXChatMessageBaseComponent } from '../../chat.types';
3
+ import { AXConversationMessageBaseComponent } from '../../conversation.types';
4
4
  import * as i0 from "@angular/core";
5
- export declare class AXChatAudioMessageComponent extends AXChatMessageBaseComponent<string> {
5
+ export declare class AXConversationAudioMessageComponent extends AXConversationMessageBaseComponent<string> {
6
6
  audio: AXAudioWaveComponent;
7
7
  config: AXWaveConfig;
8
8
  audioState: WritableSignal<'playing' | 'paused' | 'loading' | 'ready' | 'error'>;
@@ -13,6 +13,7 @@ export declare class AXChatAudioMessageComponent extends AXChatMessageBaseCompon
13
13
  protected currentTime: WritableSignal<number>;
14
14
  protected duration: WritableSignal<number>;
15
15
  constructor();
16
+ setWaveColor(): void;
16
17
  handlePauseClick(): void;
17
18
  handlePlayClick(): void;
18
19
  handleOnStatusChanged(e: AXAudioWaveChangeEvent): void;
@@ -20,6 +21,7 @@ export declare class AXChatAudioMessageComponent extends AXChatMessageBaseCompon
20
21
  handleCancelLoading(): void;
21
22
  handleReloadClick(): void;
22
23
  handleRateClick(): void;
23
- static ɵfac: i0.ɵɵFactoryDeclaration<AXChatAudioMessageComponent, never>;
24
- static ɵcmp: i0.ɵɵComponentDeclaration<AXChatAudioMessageComponent, "ax-chat-message-audio", never, { "message": { "alias": "message"; "required": false; }; }, {}, never, never, false, never>;
24
+ get __hostClass(): string;
25
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXConversationAudioMessageComponent, never>;
26
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXConversationAudioMessageComponent, "ax-conversation-message-audio", never, { "message": { "alias": "message"; "required": false; }; }, {}, never, never, false, never>;
25
27
  }
@@ -0,0 +1,10 @@
1
+ import { MXBaseComponent } from '@acorex/components/common';
2
+ import { WritableSignal } from '@angular/core';
3
+ import { AXConversationMessage } from '../conversation.types';
4
+ import * as i0 from "@angular/core";
5
+ export declare class AXConversationViewComponent extends MXBaseComponent {
6
+ set conversations(items: AXConversationMessage<any>[]);
7
+ protected _conversations: WritableSignal<AXConversationMessage<any>[]>;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXConversationViewComponent, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXConversationViewComponent, "ax-conversation-view", never, { "conversations": { "alias": "conversations"; "required": false; }; }, {}, never, never, false, never>;
10
+ }
@@ -0,0 +1,36 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import { AXConversationMessageType } from './conversation.types';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./conversation-view/conversation-view.component";
5
+ import * as i2 from "./conversation-input/conversation-input.component";
6
+ import * as i3 from "./conversation-message/conversation-message.component";
7
+ import * as i4 from "./conversation-messages/conversation-message-text.component";
8
+ import * as i5 from "./conversation-messages/conversation-messages-voice/conversation-message-voice.component";
9
+ import * as i6 from "@angular/common";
10
+ import * as i7 from "@angular/forms";
11
+ import * as i8 from "@acorex/components/common";
12
+ import * as i9 from "@acorex/components/button";
13
+ import * as i10 from "@acorex/components/decorators";
14
+ import * as i11 from "@acorex/core/translation";
15
+ import * as i12 from "@acorex/components/dropdown";
16
+ import * as i13 from "@acorex/core/format";
17
+ import * as i14 from "@acorex/components/audio-wave";
18
+ import * as i15 from "@acorex/components/circular-progress";
19
+ import * as i16 from "@acorex/core/date-time";
20
+ import * as i17 from "@angular/cdk/portal";
21
+ import * as i18 from "@acorex/components/loading";
22
+ import * as i19 from "@acorex/components/avatar";
23
+ export interface AXChatModuleConfig {
24
+ types: AXConversationMessageType[];
25
+ }
26
+ export declare class AXConversationModule {
27
+ static forRoot(config?: AXChatModuleConfig): ModuleWithProviders<AXConversationModule>;
28
+ static forChild(config?: AXChatModuleConfig): ModuleWithProviders<AXConversationModule>;
29
+ /**
30
+ * @ignore
31
+ */
32
+ constructor(instances: any[]);
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXConversationModule, [{ optional: true; }]>;
34
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXConversationModule, [typeof i1.AXConversationViewComponent, typeof i2.AXConversationInputComponent, typeof i3.AXConversationMessageComponent, typeof i4.AXConversationTextMessageComponent, typeof i5.AXConversationAudioMessageComponent], [typeof i6.CommonModule, typeof i7.FormsModule, typeof i6.AsyncPipe, typeof i8.AXRippleDirective, typeof i9.AXButtonModule, typeof i10.AXDecoratorModule, typeof i11.AXTranslationModule, typeof i12.AXDropdownModule, typeof i13.AXFormatModule, typeof i14.AXAudioWaveModule, typeof i15.AXCircularProgressModule, typeof i16.AXDateTimeModule, typeof i17.CdkPortalOutlet, typeof i18.AXLoadingModule, typeof i19.AXAvatarModule], [typeof i1.AXConversationViewComponent, typeof i2.AXConversationInputComponent, typeof i3.AXConversationMessageComponent, typeof i4.AXConversationTextMessageComponent, typeof i5.AXConversationAudioMessageComponent]>;
35
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXConversationModule>;
36
+ }
@@ -0,0 +1,21 @@
1
+ import { Type } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export interface AXConversationMessageType {
4
+ name: string;
5
+ component: Type<any>;
6
+ }
7
+ export interface AXConversationMessage<T> {
8
+ id: string;
9
+ type: string;
10
+ sendTime: Date;
11
+ deliverTime?: Date;
12
+ readTime?: Date;
13
+ replyTo?: string;
14
+ content: T;
15
+ fromId?: string;
16
+ }
17
+ export declare class AXConversationMessageBaseComponent<T> {
18
+ message: AXConversationMessage<T>;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXConversationMessageBaseComponent<any>, never>;
20
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXConversationMessageBaseComponent<any>>;
21
+ }
@@ -0,0 +1,9 @@
1
+ import { AXConversationMessageType } from '../conversation.types';
2
+ import * as i0 from "@angular/core";
3
+ export declare class AXConversationMessageTypeRegistryService {
4
+ private plugins;
5
+ register(...plugins: AXConversationMessageType[]): void;
6
+ resolve(name: string): AXConversationMessageType | undefined;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXConversationMessageTypeRegistryService, never>;
8
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXConversationMessageTypeRegistryService>;
9
+ }
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class AXConversationService {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXConversationService, never>;
4
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXConversationService>;
5
+ }
@@ -11,11 +11,11 @@ export class AXAudioWaveComponent {
11
11
  this.errorMessage = signal('');
12
12
  this.ngZone = inject(NgZone);
13
13
  afterNextRender(() => {
14
- const primary500 = getComputedStyle(document.body).getPropertyValue('--ax-color-primary-200');
15
- const primary700 = getComputedStyle(document.body).getPropertyValue('--ax-color-primary-500');
14
+ const primary200 = getComputedStyle(document.body).getPropertyValue('--ax-color-primary-200');
15
+ const primary700 = getComputedStyle(document.body).getPropertyValue('--ax-color-primary-700');
16
16
  this.audio = WaveSurfer.create({
17
17
  container: this.div.nativeElement,
18
- waveColor: this.config()?.waveColor || `rgba(${primary500})`,
18
+ waveColor: this.config()?.waveColor || `rgba(${primary200})`,
19
19
  progressColor: this.config()?.progressColor || `rgba(${primary700})`,
20
20
  url: this.config()?.url || '',
21
21
  barWidth: this.config()?.barWidth || 2,
@@ -226,4 +226,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
226
226
  type: ViewChild,
227
227
  args: ['d', { static: false }]
228
228
  }] } });
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW8td2F2ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYXVkaW8td2F2ZS9zcmMvbGliL2F1ZGlvLXdhdmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2F1ZGlvLXdhdmUvc3JjL2xpYi9hdWRpby13YXZlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUVWLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBRWpCLGVBQWUsRUFDZixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxVQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBU3ZDLE1BQU0sT0FBTyxvQkFBb0I7SUFhL0I7UUFYQSxXQUFNLEdBQThCLEtBQUssRUFBZ0IsQ0FBQztRQUUxRCxvQkFBZSxHQUFHLE1BQU0sRUFBMEIsQ0FBQztRQUVuRCxlQUFVLEdBQXlFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwRyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUdsQixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRzlCLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDOUYsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFFOUYsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO2dCQUM3QixTQUFT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QUMsR0FBRyxFQUFFO2dCQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDMUcsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCw0RUFBNEU7SUFDbEUsV0FBVztRQUNuQixJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNyRyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FuUFUsb0JBQW9CO2tHQUFwQixvQkFBb0IsdVVDdkJqQyxvV0FXQzs7MkZEWVksb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGVBQWUsaUJBR1YsaUJBQWlCLENBQUMsSUFBSTt3REFHUSxHQUFHO3NCQUEvQyxTQUFTO3VCQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0U2lnbmFsLFxuICBOZ1pvbmUsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIFdyaXRhYmxlU2lnbmFsLFxuICBhZnRlck5leHRSZW5kZXIsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBXYXZlU3VyZmVyIGZyb20gJ3dhdmVzdXJmZXIuanMnO1xuaW1wb3J0IHsgQVhBdWRpb1dhdmVDaGFuZ2VFdmVudCwgQVhXYXZlQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2F1ZGlvLXdhdmUuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtYXVkaW8td2F2ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdWRpby13YXZlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXVkaW8td2F2ZS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBWEF1ZGlvV2F2ZUNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoJ2QnLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJvdGVjdGVkIGRpdjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gIGNvbmZpZzogSW5wdXRTaWduYWw8QVhXYXZlQ29uZmlnPiA9IGlucHV0PEFYV2F2ZUNvbmZpZz4oKTtcblxuICBvblN0YXR1c0NoYW5nZWQgPSBvdXRwdXQ8QVhBdWRpb1dhdmVDaGFuZ2VFdmVudD4oKTtcblxuICBhdWRpb1N0YXRlOiBXcml0YWJsZVNpZ25hbDwncGxheWluZycgfCAncGF1c2VkJyB8ICdsb2FkaW5nJyB8ICdyZWFkeScgfCAnZXJyb3InPiA9IHNpZ25hbCgncGF1c2VkJyk7XG5cbiAgZXJyb3JNZXNzYWdlID0gc2lnbmFsKCcnKTtcblxuICBwcm90ZWN0ZWQgYXVkaW86IFdhdmVTdXJmZXI7XG4gIHByaXZhdGUgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICAgIGNvbnN0IHByaW1hcnk1MDAgPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmdldFByb3BlcnR5VmFsdWUoJy0tYXgtY29sb3ItcHJpbWFyeS0yMDAnKTtcbiAgICAgIGNvbnN0IHByaW1hcnk3MDAgPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmdldFByb3BlcnR5VmFsdWUoJy0tYXgtY29sb3ItcHJpbWFyeS01MDAnKTtcblxuICAgICAgdGhpcy5hdWRpbyA9IFdhdmVTdXJmZXIuY3JlYXRlKHtcbiAgICAgICAgY29udGFpbmVyOiB0aGlzLmRpdi5uYXRpdmVFbGVtZW50LFxuICAgICAgICB3YXZlQ29sb3I6IHRoaXMuY29uZmlnKCk/LndhdmVDb2xvciB8fCBgcmdiYSgke3ByaW1hcnk1MDB9KWAsXG4gICAgICAgIHByb2dyZXNzQ29sb3I6IHRoaXMuY29uZmlnKCk/LnByb2dyZXNzQ29sb3IgfHwgYHJnYmEoJHtwcmltYXJ5NzAwfSlgLFxuICAgICAgICB1cmw6IHRoaXMuY29uZmlnKCk/LnVybCB8fCAnJyxcbiAgICAgICAgYmFyV2lkdGg6IHRoaXMuY29uZmlnKCk/LmJhcldpZHRoIHx8IDIsXG4gICAgICAgIGJhclJhZGl1czogdGhpcy5jb25maWcoKT8uYmFyUmFkaXVzIHx8IDIsXG4gICAgICAgIGJhckdhcDogdGhpcy5jb25maWcoKT8uYmFyR2FwIHx8IDIsXG4gICAgICAgIGhlaWdodDogdGhpcy5jb25maWcoKT8uaGVpZ2h0IHx8IDE4LFxuICAgICAgfSk7XG4gICAgICB0aGlzLmxvYWQoKTtcbiAgICAgIHRoaXMuYXVkaW8/Lm9uKCdsb2FkaW5nJywgKCkgPT4ge1xuICAgICAgICB0aGlzLmF1ZGlvU3RhdGUuc2V0KCdsb2FkaW5nJyk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuYXVkaW8/Lm9uKCdyZWFkeScsICgpID0+IHtcbiAgICAgICAgdGhpcy5hdWRpb1N0YXRlLnNldCgncmVhZHknKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5hdWRpbz8ub24oJ2Vycm9yJywgKGUpID0+IHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2Uuc2V0KGUubWVzc2FnZSk7XG4gICAgICAgIHRoaXMuYXVkaW9TdGF0ZS5zZXQoJ2Vycm9yJyk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuYmluZEV2ZW50cygpO1xuICAgIH0pO1xuICB9XG5cbiAgbG9hZCh1cmwgPSB0aGlzLmNvbmZpZygpLnVybCkge1xuICAgIHRoaXMuYXVkaW8ubG9hZCh1cmwpO1xuICB9XG5cbiAgcGxheSgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmF1ZGlvPy5wbGF5KCk7XG4gIH1cblxuICBwYXVzZSgpOiB2b2lkIHtcbiAgICB0aGlzLmF1ZGlvPy5wYXVzZSgpO1xuICB9XG5cbiAgZ2V0RHVyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuYXVkaW8/LmdldER1cmF0aW9uKCkgPz8gMDtcbiAgfVxuXG4gIGdldE1lZGlhRWxlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5hdWRpbz8uZ2V0TWVkaWFFbGVtZW50KCk7XG4gIH1cblxuICBzZXRSYXRlKHJhdGU6IG51bWJlcikge1xuICAgIHRoaXMuYXVkaW8uc2V0UGxheWJhY2tSYXRlKHJhdGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJpbmRFdmVudHMoKSB7XG4gICAgY29uc29sZS5sb2coJ2JpbmQgRXZlbnRzJyk7XG5cbiAgICB0aGlzLmhhbmRsZUxvYWQoKTtcbiAgICB0aGlzLmhhbmRsZUxvYWRpbmcoKTtcbiAgICB0aGlzLmhhbmRsZURlY29kZSgpO1xuICAgIHRoaXMuaGFuZGxlUmVhZHkoKTtcbiAgICB0aGlzLmhhbmRsZVJlZFJhd0NvbXBsZXRlKCk7XG4gICAgdGhpcy5oYW5kbGVQbGF5KCk7XG4gICAgdGhpcy5oYW5kbGVQYXVzZSgpO1xuICAgIHRoaXMuaGFuZGxlRmluaXNoKCk7XG4gICAgdGhpcy5oYW5kbGVUaW1lVXBkYXRlKCk7XG4gICAgdGhpcy5oYW5kbGVTZWVraW5nKCk7XG4gICAgdGhpcy5oYW5kbGVJbnRlcmFjdGlvbigpO1xuICAgIHRoaXMuaGFuZGxlQ2xpY2soKTtcbiAgICB0aGlzLmhhbmRsZURyYWcoKTtcbiAgICB0aGlzLmhhbmRsZVNjcm9sbCgpO1xuICAgIHRoaXMuaGFuZGxlWm9vbSgpO1xuICAgIHRoaXMuaGFuZGxlRGVzdHJveSgpO1xuICAgIHRoaXMuaGFuZGxlRXJyb3IoKTtcbiAgfVxuICAvKiogV2hlbiBhdWRpbyBzdGFydHMgbG9hZGluZyAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlTG9hZCgpIHtcbiAgICB0aGlzLmF1ZGlvPy5vbignbG9hZCcsICh1cmwpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHsgdXJsOiB1cmwgfSwgc3RhdHVzOiAnbG9hZCcsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIER1cmluZyBhdWRpbyBsb2FkaW5nICovXG4gIHByb3RlY3RlZCBoYW5kbGVMb2FkaW5nKCkge1xuICAgIHRoaXMuYXVkaW8/Lm9uKCdsb2FkaW5nJywgKHBlcmNlbnQpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHsgcGVyY2VudDogcGVyY2VudCB9LCBzdGF0dXM6ICdsb2FkaW5nJywgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogV2hlbiB0aGUgYXVkaW8gaGFzIGJlZW4gZGVjb2RlZCAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlRGVjb2RlKCkge1xuICAgIHRoaXMuYXVkaW8/Lm9uKCdkZWNvZGUnLCAoZHVyYXRpb24pID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHsgZHVyYXRpb246IGR1cmF0aW9uIH0sIHN0YXR1czogJ2RlY29kZScsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIGF1ZGlvIGlzIGJvdGggZGVjb2RlZCBhbmQgY2FuIHBsYXkgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVJlYWR5KCkge1xuICAgIHRoaXMuYXVkaW8/Lm9uKCdyZWFkeScsIChkdXJhdGlvbikgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblN0YXR1c0NoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogeyBkdXJhdGlvbjogZHVyYXRpb24gfSwgc3RhdHVzOiAncmVhZHknLCBpc1VzZXJJbnRlcmFjdGlvbjogZmFsc2UgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBXaGVuIGFsbCBhdWRpbyBjaGFubmVsIGNodW5rcyBvZiB0aGUgd2F2ZWZvcm0gaGF2ZSBkcmF3biAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlUmVkUmF3Q29tcGxldGUoKSB7XG4gICAgdGhpcy5hdWRpbz8ub24oJ3JlZHJhd2NvbXBsZXRlJywgKCkgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblN0YXR1c0NoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogbnVsbCwgc3RhdHVzOiAncmVkcmF3Y29tcGxldGUnLCBpc1VzZXJJbnRlcmFjdGlvbjogZmFsc2UgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBXaGVuIHRoZSBhdWRpbyBzdGFydHMgcGxheWluZyAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlUGxheSgpIHtcbiAgICB0aGlzLmF1ZGlvPy5vbigncGxheScsICgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IG51bGwsIHN0YXR1czogJ3BsYXknLCBpc1VzZXJJbnRlcmFjdGlvbjogZmFsc2UgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBXaGVuIHRoZSBhdWRpbyBwYXVzZXMgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVBhdXNlKCkge1xuICAgIHRoaXMuYXVkaW8/Lm9uKCdwYXVzZScsICgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IG51bGwsIHN0YXR1czogJ3BhdXNlJywgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogV2hlbiB0aGUgYXVkaW8gZmluaXNoZXMgcGxheWluZyAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlRmluaXNoKCkge1xuICAgIHRoaXMuYXVkaW8/Lm9uKCdmaW5pc2gnLCAoKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiBudWxsLCBzdGF0dXM6ICdmaW5pc2gnLCBpc1VzZXJJbnRlcmFjdGlvbjogZmFsc2UgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBPbiBhdWRpbyBwb3NpdGlvbiBjaGFuZ2UsIGZpcmVzIGNvbnRpbnVvdXNseSBkdXJpbmcgcGxheWJhY2sgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVRpbWVVcGRhdGUoKSB7XG4gICAgdGhpcy5hdWRpbz8ub24oJ3RpbWV1cGRhdGUnLCAoY3VycmVudFRpbWUpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHsgY3VycmVudFRpbWU6IGN1cnJlbnRUaW1lIH0sIHN0YXR1czogJ3RpbWV1cGRhdGUnLCBpc1VzZXJJbnRlcmFjdGlvbjogZmFsc2UgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBXaGVuIHRoZSB1c2VyIHNlZWtzIHRvIGEgbmV3IHBvc2l0aW9uICovXG4gIHByb3RlY3RlZCBoYW5kbGVTZWVraW5nKCkge1xuICAgIHRoaXMuYXVkaW8/Lm9uKCdzZWVraW5nJywgKGN1cnJlbnRUaW1lKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiB7IGN1cnJlbnRUaW1lOiBjdXJyZW50VGltZSB9LCBzdGF0dXM6ICdzZWVraW5nJywgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogV2hlbiB0aGUgdXNlciBpbnRlcmFjdHMgd2l0aCB0aGUgd2F2ZWZvcm0gKGkuZy4gY2xpY2tzIG9yIGRyYWdzIG9uIGl0KSAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlSW50ZXJhY3Rpb24oKSB7XG4gICAgdGhpcy5hdWRpbz8ub24oJ2ludGVyYWN0aW9uJywgKG5ld1RpbWUpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHsgbmV3VGltZTogbmV3VGltZSB9LCBzdGF0dXM6ICdpbnRlcmFjdGlvbicsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIHVzZXIgY2xpY2tzIG9uIHRoZSB3YXZlZm9ybSAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlQ2xpY2soKSB7XG4gICAgdGhpcy5hdWRpbz8ub24oJ2NsaWNrJywgKHJlbGF0aXZlWCkgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblN0YXR1c0NoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogeyByZWxhdGl2ZVg6IHJlbGF0aXZlWCB9LCBzdGF0dXM6ICdjbGljaycsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIHVzZXIgZHJhZ3MgdGhlIGN1cnNvciAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlRHJhZygpIHtcbiAgICB0aGlzLmF1ZGlvPy5vbignZHJhZycsIChyZWxhdGl2ZVgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHsgcmVsYXRpdmVYOiByZWxhdGl2ZVggfSwgc3RhdHVzOiAnZHJhZycsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIHdhdmVmb3JtIGlzIHNjcm9sbGVkIChwYW5uZWQpICovXG4gIHByb3RlY3RlZCBoYW5kbGVTY3JvbGwoKSB7XG4gICAgdGhpcy5hdWRpbz8ub24oJ3Njcm9sbCcsICh2aXNpYmxlU3RhcnRUaW1lLCB2aXNpYmxlRW5kVGltZSkgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblN0YXR1c0NoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICAgIGRhdGE6IHsgdmlzaWJsZVN0YXJ0VGltZSwgdmlzaWJsZUVuZFRpbWUgfSxcbiAgICAgICAgICBzdGF0dXM6ICdzY3JvbGwnLFxuICAgICAgICAgIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBXaGVuIHRoZSB6b29tIGxldmVsIGNoYW5nZXMgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVpvb20oKSB7XG4gICAgdGhpcy5hdWRpbz8ub24oJ3pvb20nLCAobWluUHhQZXJTZWMpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHsgbWluUHhQZXJTZWM6IG1pblB4UGVyU2VjIH0sIHN0YXR1czogJ3pvb20nLCBpc1VzZXJJbnRlcmFjdGlvbjogZmFsc2UgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBKdXN0IGJlZm9yZSB0aGUgd2F2ZWZvcm0gaXMgZGVzdHJveWVkIHNvIHlvdSBjYW4gY2xlYW4gdXAgeW91ciBldmVudHMgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZURlc3Ryb3koKSB7XG4gICAgdGhpcy5hdWRpbz8ub24oJ2Rlc3Ryb3knLCAoKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiBudWxsLCBzdGF0dXM6ICdkZXN0cm95JywgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgLyoqIEp1c3QgYmVmb3JlIHRoZSB3YXZlZm9ybSBpcyBkZXN0cm95ZWQgc28geW91IGNhbiBjbGVhbiB1cCB5b3VyIGV2ZW50cyAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlRXJyb3IoKSB7XG4gICAgdGhpcy5hdWRpbz8ub24oJ2Vycm9yJywgKGUpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IGUsIHN0YXR1czogJ2Vycm9yJywgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1hdWRpby13YXZlXCIgI2QgW25nU3R5bGVdPVwieydkaXNwbGF5JzogYXVkaW9TdGF0ZSgpID09PSAncmVhZHknID8gJ2Jsb2NrJyA6ICdub25lJyB9XCI+PC9kaXY+XG5cbkBzd2l0Y2ggKGF1ZGlvU3RhdGUoKSkge1xuQGNhc2UgKCdsb2FkaW5nJykge1xuPGRpdiBjbGFzcz1cImF4LWF1ZGlvLXNrZWxldG9uXCI+PC9kaXY+XG59XG5AY2FzZSAoJ2Vycm9yJykge1xuPGRpdiBjbGFzcz1cImF4LXdhdmUtbWVzc2FnZVwiPlxuICAgIHt7J2Vycm9yLm1lc3NhZ2UnIHwgdHJhbnNsYXRlOnsgcGFyYW1zOnsgbWVzc2FnZTogZXJyb3JNZXNzYWdlKCkgfSB9IHwgYXN5bmMgfX1cbjwvZGl2PlxufVxufSJdfQ==
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW8td2F2ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYXVkaW8td2F2ZS9zcmMvbGliL2F1ZGlvLXdhdmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2F1ZGlvLXdhdmUvc3JjL2xpYi9hdWRpby13YXZlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUVWLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBRWpCLGVBQWUsRUFDZixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxVQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBU3ZDLE1BQU0sT0FBTyxvQkFBb0I7SUFhL0I7UUFYQSxXQUFNLEdBQThCLEtBQUssRUFBZ0IsQ0FBQztRQUUxRCxvQkFBZSxHQUFHLE1BQU0sRUFBMEIsQ0FBQztRQUVuRCxlQUFVLEdBQXlFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwRyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUdsQixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRzlCLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDOUYsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFFOUYsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO2dCQUM3QixTQUFT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QUMsR0FBRyxFQUFFO2dCQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDMUcsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCw0RUFBNEU7SUFDbEUsV0FBVztRQUNuQixJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNyRyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FuUFUsb0JBQW9CO2tHQUFwQixvQkFBb0IsdVVDdkJqQyxvV0FXQzs7MkZEWVksb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGVBQWUsaUJBR1YsaUJBQWlCLENBQUMsSUFBSTt3REFHUSxHQUFHO3NCQUEvQyxTQUFTO3VCQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0U2lnbmFsLFxuICBOZ1pvbmUsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIFdyaXRhYmxlU2lnbmFsLFxuICBhZnRlck5leHRSZW5kZXIsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBXYXZlU3VyZmVyIGZyb20gJ3dhdmVzdXJmZXIuanMnO1xuaW1wb3J0IHsgQVhBdWRpb1dhdmVDaGFuZ2VFdmVudCwgQVhXYXZlQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2F1ZGlvLXdhdmUuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtYXVkaW8td2F2ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdWRpby13YXZlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXVkaW8td2F2ZS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBWEF1ZGlvV2F2ZUNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoJ2QnLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJvdGVjdGVkIGRpdjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gIGNvbmZpZzogSW5wdXRTaWduYWw8QVhXYXZlQ29uZmlnPiA9IGlucHV0PEFYV2F2ZUNvbmZpZz4oKTtcblxuICBvblN0YXR1c0NoYW5nZWQgPSBvdXRwdXQ8QVhBdWRpb1dhdmVDaGFuZ2VFdmVudD4oKTtcblxuICBhdWRpb1N0YXRlOiBXcml0YWJsZVNpZ25hbDwncGxheWluZycgfCAncGF1c2VkJyB8ICdsb2FkaW5nJyB8ICdyZWFkeScgfCAnZXJyb3InPiA9IHNpZ25hbCgncGF1c2VkJyk7XG5cbiAgZXJyb3JNZXNzYWdlID0gc2lnbmFsKCcnKTtcblxuICBwcm90ZWN0ZWQgYXVkaW86IFdhdmVTdXJmZXI7XG4gIHByaXZhdGUgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICAgIGNvbnN0IHByaW1hcnkyMDAgPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmdldFByb3BlcnR5VmFsdWUoJy0tYXgtY29sb3ItcHJpbWFyeS0yMDAnKTtcbiAgICAgIGNvbnN0IHByaW1hcnk3MDAgPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmdldFByb3BlcnR5VmFsdWUoJy0tYXgtY29sb3ItcHJpbWFyeS03MDAnKTtcblxuICAgICAgdGhpcy5hdWRpbyA9IFdhdmVTdXJmZXIuY3JlYXRlKHtcbiAgICAgICAgY29udGFpbmVyOiB0aGlzLmRpdi5uYXRpdmVFbGVtZW50LFxuICAgICAgICB3YXZlQ29sb3I6IHRoaXMuY29uZmlnKCk/LndhdmVDb2xvciB8fCBgcmdiYSgke3ByaW1hcnkyMDB9KWAsXG4gICAgICAgIHByb2dyZXNzQ29sb3I6IHRoaXMuY29uZmlnKCk/LnByb2dyZXNzQ29sb3IgfHwgYHJnYmEoJHtwcmltYXJ5NzAwfSlgLFxuICAgICAgICB1cmw6IHRoaXMuY29uZmlnKCk/LnVybCB8fCAnJyxcbiAgICAgICAgYmFyV2lkdGg6IHRoaXMuY29uZmlnKCk/LmJhcldpZHRoIHx8IDIsXG4gICAgICAgIGJhclJhZGl1czogdGhpcy5jb25maWcoKT8uYmFyUmFkaXVzIHx8IDIsXG4gICAgICAgIGJhckdhcDogdGhpcy5jb25maWcoKT8uYmFyR2FwIHx8IDIsXG4gICAgICAgIGhlaWdodDogdGhpcy5jb25maWcoKT8uaGVpZ2h0IHx8IDE4LFxuICAgICAgfSk7XG4gICAgICB0aGlzLmxvYWQoKTtcbiAgICAgIHRoaXMuYXVkaW8/Lm9uKCdsb2FkaW5nJywgKCkgPT4ge1xuICAgICAgICB0aGlzLmF1ZGlvU3RhdGUuc2V0KCdsb2FkaW5nJyk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuYXVkaW8/Lm9uKCdyZWFkeScsICgpID0+IHtcbiAgICAgICAgdGhpcy5hdWRpb1N0YXRlLnNldCgncmVhZHknKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5hdWRpbz8ub24oJ2Vycm9yJywgKGUpID0+IHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2Uuc2V0KGUubWVzc2FnZSk7XG4gICAgICAgIHRoaXMuYXVkaW9TdGF0ZS5zZXQoJ2Vycm9yJyk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuYmluZEV2ZW50cygpO1xuICAgIH0pO1xuICB9XG5cbiAgbG9hZCh1cmwgPSB0aGlzLmNvbmZpZygpLnVybCkge1xuICAgIHRoaXMuYXVkaW8ubG9hZCh1cmwpO1xuICB9XG5cbiAgcGxheSgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmF1ZGlvPy5wbGF5KCk7XG4gIH1cblxuICBwYXVzZSgpOiB2b2lkIHtcbiAgICB0aGlzLmF1ZGlvPy5wYXVzZSgpO1xuICB9XG5cbiAgZ2V0RHVyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuYXVkaW8/LmdldER1cmF0aW9uKCkgPz8gMDtcbiAgfVxuXG4gIGdldE1lZGlhRWxlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5hdWRpbz8uZ2V0TWVkaWFFbGVtZW50KCk7XG4gIH1cblxuICBzZXRSYXRlKHJhdGU6IG51bWJlcikge1xuICAgIHRoaXMuYXVkaW8uc2V0UGxheWJhY2tSYXRlKHJhdGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJpbmRFdmVudHMoKSB7XG4gICAgY29uc29sZS5sb2coJ2JpbmQgRXZlbnRzJyk7XG5cbiAgICB0aGlzLmhhbmRsZUxvYWQoKTtcbiAgICB0aGlzLmhhbmRsZUxvYWRpbmcoKTtcbiAgICB0aGlzLmhhbmRsZURlY29kZSgpO1xuICAgIHRoaXMuaGFuZGxlUmVhZHkoKTtcbiAgICB0aGlzLmhhbmRsZVJlZFJhd0NvbXBsZXRlKCk7XG4gICAgdGhpcy5oYW5kbGVQbGF5KCk7XG4gICAgdGhpcy5oYW5kbGVQYXVzZSgpO1xuICAgIHRoaXMuaGFuZGxlRmluaXNoKCk7XG4gICAgdGhpcy5oYW5kbGVUaW1lVXBkYXRlKCk7XG4gICAgdGhpcy5oYW5kbGVTZWVraW5nKCk7XG4gICAgdGhpcy5oYW5kbGVJbnRlcmFjdGlvbigpO1xuICAgIHRoaXMuaGFuZGxlQ2xpY2soKTtcbiAgICB0aGlzLmhhbmRsZURyYWcoKTtcbiAgICB0aGlzLmhhbmRsZVNjcm9sbCgpO1xuICAgIHRoaXMuaGFuZGxlWm9vbSgpO1xuICAgIHRoaXMuaGFuZGxlRGVzdHJveSgpO1xuICAgIHRoaXMuaGFuZGxlRXJyb3IoKTtcbiAgfVxuICAvKiogV2hlbiBhdWRpbyBzdGFydHMgbG9hZGluZyAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlTG9hZCgpIHtcbiAgICB0aGlzLmF1ZGlvPy5vbignbG9hZCcsICh1cmwpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHsgdXJsOiB1cmwgfSwgc3RhdHVzOiAnbG9hZCcsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIER1cmluZyBhdWRpbyBsb2FkaW5nICovXG4gIHByb3RlY3RlZCBoYW5kbGVMb2FkaW5nKCkge1xuICAgIHRoaXMuYXVkaW8/Lm9uKCdsb2FkaW5nJywgKHBlcmNlbnQpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHsgcGVyY2VudDogcGVyY2VudCB9LCBzdGF0dXM6ICdsb2FkaW5nJywgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogV2hlbiB0aGUgYXVkaW8gaGFzIGJlZW4gZGVjb2RlZCAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlRGVjb2RlKCkge1xuICAgIHRoaXMuYXVkaW8/Lm9uKCdkZWNvZGUnLCAoZHVyYXRpb24pID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHsgZHVyYXRpb246IGR1cmF0aW9uIH0sIHN0YXR1czogJ2RlY29kZScsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIGF1ZGlvIGlzIGJvdGggZGVjb2RlZCBhbmQgY2FuIHBsYXkgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVJlYWR5KCkge1xuICAgIHRoaXMuYXVkaW8/Lm9uKCdyZWFkeScsIChkdXJhdGlvbikgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblN0YXR1c0NoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogeyBkdXJhdGlvbjogZHVyYXRpb24gfSwgc3RhdHVzOiAncmVhZHknLCBpc1VzZXJJbnRlcmFjdGlvbjogZmFsc2UgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBXaGVuIGFsbCBhdWRpbyBjaGFubmVsIGNodW5rcyBvZiB0aGUgd2F2ZWZvcm0gaGF2ZSBkcmF3biAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlUmVkUmF3Q29tcGxldGUoKSB7XG4gICAgdGhpcy5hdWRpbz8ub24oJ3JlZHJhd2NvbXBsZXRlJywgKCkgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblN0YXR1c0NoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogbnVsbCwgc3RhdHVzOiAncmVkcmF3Y29tcGxldGUnLCBpc1VzZXJJbnRlcmFjdGlvbjogZmFsc2UgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBXaGVuIHRoZSBhdWRpbyBzdGFydHMgcGxheWluZyAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlUGxheSgpIHtcbiAgICB0aGlzLmF1ZGlvPy5vbigncGxheScsICgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IG51bGwsIHN0YXR1czogJ3BsYXknLCBpc1VzZXJJbnRlcmFjdGlvbjogZmFsc2UgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBXaGVuIHRoZSBhdWRpbyBwYXVzZXMgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVBhdXNlKCkge1xuICAgIHRoaXMuYXVkaW8/Lm9uKCdwYXVzZScsICgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IG51bGwsIHN0YXR1czogJ3BhdXNlJywgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogV2hlbiB0aGUgYXVkaW8gZmluaXNoZXMgcGxheWluZyAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlRmluaXNoKCkge1xuICAgIHRoaXMuYXVkaW8/Lm9uKCdmaW5pc2gnLCAoKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiBudWxsLCBzdGF0dXM6ICdmaW5pc2gnLCBpc1VzZXJJbnRlcmFjdGlvbjogZmFsc2UgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBPbiBhdWRpbyBwb3NpdGlvbiBjaGFuZ2UsIGZpcmVzIGNvbnRpbnVvdXNseSBkdXJpbmcgcGxheWJhY2sgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVRpbWVVcGRhdGUoKSB7XG4gICAgdGhpcy5hdWRpbz8ub24oJ3RpbWV1cGRhdGUnLCAoY3VycmVudFRpbWUpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHsgY3VycmVudFRpbWU6IGN1cnJlbnRUaW1lIH0sIHN0YXR1czogJ3RpbWV1cGRhdGUnLCBpc1VzZXJJbnRlcmFjdGlvbjogZmFsc2UgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBXaGVuIHRoZSB1c2VyIHNlZWtzIHRvIGEgbmV3IHBvc2l0aW9uICovXG4gIHByb3RlY3RlZCBoYW5kbGVTZWVraW5nKCkge1xuICAgIHRoaXMuYXVkaW8/Lm9uKCdzZWVraW5nJywgKGN1cnJlbnRUaW1lKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiB7IGN1cnJlbnRUaW1lOiBjdXJyZW50VGltZSB9LCBzdGF0dXM6ICdzZWVraW5nJywgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogV2hlbiB0aGUgdXNlciBpbnRlcmFjdHMgd2l0aCB0aGUgd2F2ZWZvcm0gKGkuZy4gY2xpY2tzIG9yIGRyYWdzIG9uIGl0KSAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlSW50ZXJhY3Rpb24oKSB7XG4gICAgdGhpcy5hdWRpbz8ub24oJ2ludGVyYWN0aW9uJywgKG5ld1RpbWUpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHsgbmV3VGltZTogbmV3VGltZSB9LCBzdGF0dXM6ICdpbnRlcmFjdGlvbicsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIHVzZXIgY2xpY2tzIG9uIHRoZSB3YXZlZm9ybSAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlQ2xpY2soKSB7XG4gICAgdGhpcy5hdWRpbz8ub24oJ2NsaWNrJywgKHJlbGF0aXZlWCkgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblN0YXR1c0NoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogeyByZWxhdGl2ZVg6IHJlbGF0aXZlWCB9LCBzdGF0dXM6ICdjbGljaycsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIHVzZXIgZHJhZ3MgdGhlIGN1cnNvciAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlRHJhZygpIHtcbiAgICB0aGlzLmF1ZGlvPy5vbignZHJhZycsIChyZWxhdGl2ZVgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHsgcmVsYXRpdmVYOiByZWxhdGl2ZVggfSwgc3RhdHVzOiAnZHJhZycsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIHdhdmVmb3JtIGlzIHNjcm9sbGVkIChwYW5uZWQpICovXG4gIHByb3RlY3RlZCBoYW5kbGVTY3JvbGwoKSB7XG4gICAgdGhpcy5hdWRpbz8ub24oJ3Njcm9sbCcsICh2aXNpYmxlU3RhcnRUaW1lLCB2aXNpYmxlRW5kVGltZSkgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblN0YXR1c0NoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICAgIGRhdGE6IHsgdmlzaWJsZVN0YXJ0VGltZSwgdmlzaWJsZUVuZFRpbWUgfSxcbiAgICAgICAgICBzdGF0dXM6ICdzY3JvbGwnLFxuICAgICAgICAgIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBXaGVuIHRoZSB6b29tIGxldmVsIGNoYW5nZXMgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVpvb20oKSB7XG4gICAgdGhpcy5hdWRpbz8ub24oJ3pvb20nLCAobWluUHhQZXJTZWMpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHsgbWluUHhQZXJTZWM6IG1pblB4UGVyU2VjIH0sIHN0YXR1czogJ3pvb20nLCBpc1VzZXJJbnRlcmFjdGlvbjogZmFsc2UgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBKdXN0IGJlZm9yZSB0aGUgd2F2ZWZvcm0gaXMgZGVzdHJveWVkIHNvIHlvdSBjYW4gY2xlYW4gdXAgeW91ciBldmVudHMgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZURlc3Ryb3koKSB7XG4gICAgdGhpcy5hdWRpbz8ub24oJ2Rlc3Ryb3knLCAoKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiBudWxsLCBzdGF0dXM6ICdkZXN0cm95JywgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgLyoqIEp1c3QgYmVmb3JlIHRoZSB3YXZlZm9ybSBpcyBkZXN0cm95ZWQgc28geW91IGNhbiBjbGVhbiB1cCB5b3VyIGV2ZW50cyAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlRXJyb3IoKSB7XG4gICAgdGhpcy5hdWRpbz8ub24oJ2Vycm9yJywgKGUpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IGUsIHN0YXR1czogJ2Vycm9yJywgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1hdWRpby13YXZlXCIgI2QgW25nU3R5bGVdPVwieydkaXNwbGF5JzogYXVkaW9TdGF0ZSgpID09PSAncmVhZHknID8gJ2Jsb2NrJyA6ICdub25lJyB9XCI+PC9kaXY+XG5cbkBzd2l0Y2ggKGF1ZGlvU3RhdGUoKSkge1xuQGNhc2UgKCdsb2FkaW5nJykge1xuPGRpdiBjbGFzcz1cImF4LWF1ZGlvLXNrZWxldG9uXCI+PC9kaXY+XG59XG5AY2FzZSAoJ2Vycm9yJykge1xuPGRpdiBjbGFzcz1cImF4LXdhdmUtbWVzc2FnZVwiPlxuICAgIHt7J2Vycm9yLm1lc3NhZ2UnIHwgdHJhbnNsYXRlOnsgcGFyYW1zOnsgbWVzc2FnZTogZXJyb3JNZXNzYWdlKCkgfSB9IHwgYXN5bmMgfX1cbjwvZGl2PlxufVxufSJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtY29udmVyc2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvYWNvcmV4LWNvbXBvbmVudHMtY29udmVyc2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,14 @@
1
+ export * from './lib/classes/events.interface';
2
+ export * from './lib/conversation-input/conversation-input.component';
3
+ export * from './lib/conversation-input/conversation-input.interface';
4
+ export * from './lib/conversation-message/conversation-message.component';
5
+ export * from './lib/conversation-view/conversation-view.component';
6
+ export * from './lib/conversation.module';
7
+ export * from './lib/conversation.types';
8
+ export * from './lib/services/conversation-message-type-registry.service';
9
+ export * from './lib/services/conversation.service';
10
+ export * from './lib/services/recording.service';
11
+ //
12
+ export * from './lib/conversation-messages/conversation-message-text.component';
13
+ export * from './lib/conversation-messages/conversation-messages-voice/conversation-message-voice.component';
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29udmVyc2F0aW9uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMkRBQTJELENBQUM7QUFDMUUsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELEVBQUU7QUFDRixjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsOEZBQThGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL2V2ZW50cy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udmVyc2F0aW9uLWlucHV0L2NvbnZlcnNhdGlvbi1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udmVyc2F0aW9uLWlucHV0L2NvbnZlcnNhdGlvbi1pbnB1dC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udmVyc2F0aW9uLW1lc3NhZ2UvY29udmVyc2F0aW9uLW1lc3NhZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnZlcnNhdGlvbi12aWV3L2NvbnZlcnNhdGlvbi12aWV3LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb252ZXJzYXRpb24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnZlcnNhdGlvbi50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9jb252ZXJzYXRpb24tbWVzc2FnZS10eXBlLXJlZ2lzdHJ5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvY29udmVyc2F0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcmVjb3JkaW5nLnNlcnZpY2UnO1xuLy9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS10ZXh0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb252ZXJzYXRpb24tbWVzc2FnZXMvY29udmVyc2F0aW9uLW1lc3NhZ2VzLXZvaWNlL2NvbnZlcnNhdGlvbi1tZXNzYWdlLXZvaWNlLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jbGFzc2VzL2V2ZW50cy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYSHRtbEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhJbnB1dEZpbGVDaGFuZ2UgZXh0ZW5kcyBBWEh0bWxFdmVudDxNb3VzZUV2ZW50PiB7XG4gIGRhdGE/OiBhbnk7XG59XG4iXX0=
@@ -10,7 +10,7 @@ import * as i3 from "@acorex/components/decorators";
10
10
  import * as i4 from "@acorex/components/dropdown";
11
11
  import * as i5 from "@angular/common";
12
12
  import * as i6 from "@acorex/core/translation";
13
- export class AXChatInputComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {
13
+ export class AXConversationInputComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {
14
14
  constructor() {
15
15
  super(...arguments);
16
16
  this.hasAttachment = true;
@@ -78,27 +78,27 @@ export class AXChatInputComponent extends classes((MXInputBaseValueComponent), M
78
78
  isUserInteraction: true,
79
79
  });
80
80
  }
81
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXChatInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
82
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: AXChatInputComponent, selector: "ax-chat-input", inputs: { maxLength: "maxLength", hasAttachment: "hasAttachment", haVoice: "haVoice", acceptFileType: "acceptFileType" }, outputs: { onSendClick: "onSendClick", onStartRecording: "onStartRecording", onStopRecording: "onStopRecording", onFileChange: "onFileChange" }, providers: [
83
- { provide: AXComponent, useExisting: AXChatInputComponent },
84
- { provide: AXFocusableComponent, useExisting: AXChatInputComponent },
85
- { provide: AXValuableComponent, useExisting: AXChatInputComponent },
81
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXConversationInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
82
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: AXConversationInputComponent, selector: "ax-conversation-input", inputs: { maxLength: "maxLength", hasAttachment: "hasAttachment", haVoice: "haVoice", acceptFileType: "acceptFileType" }, outputs: { onSendClick: "onSendClick", onStartRecording: "onStartRecording", onStopRecording: "onStopRecording", onFileChange: "onFileChange" }, providers: [
83
+ { provide: AXComponent, useExisting: AXConversationInputComponent },
84
+ { provide: AXFocusableComponent, useExisting: AXConversationInputComponent },
85
+ { provide: AXValuableComponent, useExisting: AXConversationInputComponent },
86
86
  {
87
87
  provide: NG_VALUE_ACCESSOR,
88
- useExisting: forwardRef(() => AXChatInputComponent),
88
+ useExisting: forwardRef(() => AXConversationInputComponent),
89
89
  multi: true,
90
90
  },
91
91
  ], viewQueries: [{ propertyName: "inputFile", first: true, predicate: ["inputFile"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-chat-input\" [class.ax-state-recording]=\"recording()\">\n @if (recording()) {\n <div class=\"ax-chat-input-start-side\">\n <span class=\"ax-record-dot\"></span>\n <span>{{ recordingService.timer() }}</span>\n </div>\n <div class=\"ax-chat-input-main-side\">\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"primary\" [text]=\"'cancel' | translate | async\"\n (onClick)=\"handleStopClick()\"></ax-button>\n </div>\n <div class=\"ax-chat-input-end-side\">\n <ax-button look=\"solid\" color=\"danger\" class=\"ax-blob ax-sm\" (onClick)=\"handleSendVoiceClick()\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-send\"></i>\n </ax-icon>\n </ax-button>\n </div>\n } @else {\n <div class=\"ax-chat-input-start-side\">\n <ax-button look=\"blank\" class=\"ax-sm\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-emoji\"></i>\n </ax-icon>\n <ax-dropdown-panel>\n <ng-container>\n <div class=\"ax-emoji-container\">\n <div>\u26A0\uFE0F</div>\n <div>\u27A1\uFE0F</div>\n <div>\uD83D\uDD03</div>\n <div>\uD83D\uDD37</div>\n <div>\uD83E\uDD1A</div>\n <div>\uD83D\uDE02</div>\n <div>\uD83D\uDE0A</div>\n </div>\n </ng-container>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n <textarea class=\"ax-chat-input-main-side\"\n oninput='this.style.height = \"\";this.style.height = this.scrollHeight + \"px\"' type=\"text\" rows=\"1\" [id]=\"id\"\n [name]=\"name\" [attr.placeholder]=\"placeholder\" [attr.maxlength]=\"maxLength\" [disabled]=\"disabled\"\n [readonly]=\"readonly\" [tabindex]=\"tabIndex\" [ngModel]=\"value\" (ngModelChange)=\"_handleModelChange($event)\"\n [ngModelOptions]=\"{ updateOn: _updateOn }\" (keydown)=\"emitOnKeydownEvent($event)\" (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\" (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"></textarea>\n <div class=\"ax-chat-input-end-side\">\n @if (!value) {\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"handleAttachClick()\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-attach\"></i>\n </ax-icon>\n </ax-button>\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"handleRecordClick()\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-mic\"></i>\n </ax-icon>\n </ax-button>\n <input #inputFile [accept]=\"acceptFileType\" type=\"file\" class=\"ax-attach-input\" (change)=\"handleChangeFile($event)\">\n }\n\n @if (value) {\n <ax-button look=\"solid\" color=\"primary\" class=\"ax-sm\" (onClick)=\"handleSendClick()\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-send\"></i>\n </ax-icon>\n </ax-button>\n }\n </div>\n }\n</div>", styles: [".ax-dark .ax-chat-input:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-primary-200));border-color:rgba(var(--ax-color-primary-200))}.ax-chat-input{border:1px solid;border-color:rgba(var(--ax-color-border-default));display:flex;align-items:flex-end;border-radius:var(--ax-rounded-border-default);position:relative;resize:vertical;height:auto;padding:.5rem;font-size:.875rem}.ax-chat-input.ax-state-recording{align-items:center;display:grid;grid-template-columns:repeat(3,1fr)}.ax-chat-input.ax-state-recording .ax-chat-input-start-side{justify-content:flex-start}.ax-chat-input.ax-state-recording .ax-chat-input-end-side{justify-content:flex-end}.ax-chat-input:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-primary-500));border-color:rgba(var(--ax-color-primary-500))}.ax-chat-input>textarea{font-size:.875rem;background-color:transparent;max-height:10rem;min-height:1.5rem;line-height:2rem;flex:1 1 auto;height:auto;resize:none}.ax-chat-input>textarea:focus,.ax-chat-input>textarea:focus-visible{outline:unset}.ax-chat-input .ax-chat-input-start-side,.ax-chat-input .ax-chat-input-end-side{display:flex;align-items:center;justify-content:center}.ax-chat-input .ax-chat-input-start-side{padding-inline-end:.75rem}.ax-chat-input .ax-chat-input-main-side{flex:1 1 auto;display:flex;align-items:center;justify-content:center}.ax-chat-input .ax-chat-input-end-side{padding-inline-start:.75rem;gap:.5rem}.ax-chat-input .ax-record-dot{display:inline-flex;width:.5rem;height:.5rem;background-color:rgba(var(--ax-color-danger-500));border-radius:999rem;margin-inline-end:.5rem}.ax-chat-input .ax-blob{animation:pulse .75s infinite}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 rgba(var(--ax-color-danger-500),.7)}70%{transform:scale(1);box-shadow:0 0 0 10px rgba(var(--ax-color-danger-500),0)}to{transform:scale(1);box-shadow:0 0 rgba(var(--ax-color-danger-500),0)}}.ax-chat-input .ax-attach-input{opacity:0;width:0;height:0;position:absolute}.ax-emoji-container{padding:.75rem;gap:.5rem;display:grid;grid-template-columns:repeat(7,1fr)}.ax-emoji-container>div{padding:.25rem;cursor:pointer;border-radius:var(--ax-rounded-border-default)}.ax-emoji-container>div:hover{background-color:rgba(var(--ax-color-on-surface))}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
92
92
  }
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXChatInputComponent, decorators: [{
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXConversationInputComponent, decorators: [{
94
94
  type: Component,
95
- args: [{ selector: 'ax-chat-input', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
96
- { provide: AXComponent, useExisting: AXChatInputComponent },
97
- { provide: AXFocusableComponent, useExisting: AXChatInputComponent },
98
- { provide: AXValuableComponent, useExisting: AXChatInputComponent },
95
+ args: [{ selector: 'ax-conversation-input', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
96
+ { provide: AXComponent, useExisting: AXConversationInputComponent },
97
+ { provide: AXFocusableComponent, useExisting: AXConversationInputComponent },
98
+ { provide: AXValuableComponent, useExisting: AXConversationInputComponent },
99
99
  {
100
100
  provide: NG_VALUE_ACCESSOR,
101
- useExisting: forwardRef(() => AXChatInputComponent),
101
+ useExisting: forwardRef(() => AXConversationInputComponent),
102
102
  multi: true,
103
103
  },
104
104
  ], template: "<div class=\"ax-chat-input\" [class.ax-state-recording]=\"recording()\">\n @if (recording()) {\n <div class=\"ax-chat-input-start-side\">\n <span class=\"ax-record-dot\"></span>\n <span>{{ recordingService.timer() }}</span>\n </div>\n <div class=\"ax-chat-input-main-side\">\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"primary\" [text]=\"'cancel' | translate | async\"\n (onClick)=\"handleStopClick()\"></ax-button>\n </div>\n <div class=\"ax-chat-input-end-side\">\n <ax-button look=\"solid\" color=\"danger\" class=\"ax-blob ax-sm\" (onClick)=\"handleSendVoiceClick()\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-send\"></i>\n </ax-icon>\n </ax-button>\n </div>\n } @else {\n <div class=\"ax-chat-input-start-side\">\n <ax-button look=\"blank\" class=\"ax-sm\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-emoji\"></i>\n </ax-icon>\n <ax-dropdown-panel>\n <ng-container>\n <div class=\"ax-emoji-container\">\n <div>\u26A0\uFE0F</div>\n <div>\u27A1\uFE0F</div>\n <div>\uD83D\uDD03</div>\n <div>\uD83D\uDD37</div>\n <div>\uD83E\uDD1A</div>\n <div>\uD83D\uDE02</div>\n <div>\uD83D\uDE0A</div>\n </div>\n </ng-container>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n <textarea class=\"ax-chat-input-main-side\"\n oninput='this.style.height = \"\";this.style.height = this.scrollHeight + \"px\"' type=\"text\" rows=\"1\" [id]=\"id\"\n [name]=\"name\" [attr.placeholder]=\"placeholder\" [attr.maxlength]=\"maxLength\" [disabled]=\"disabled\"\n [readonly]=\"readonly\" [tabindex]=\"tabIndex\" [ngModel]=\"value\" (ngModelChange)=\"_handleModelChange($event)\"\n [ngModelOptions]=\"{ updateOn: _updateOn }\" (keydown)=\"emitOnKeydownEvent($event)\" (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\" (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"></textarea>\n <div class=\"ax-chat-input-end-side\">\n @if (!value) {\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"handleAttachClick()\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-attach\"></i>\n </ax-icon>\n </ax-button>\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"handleRecordClick()\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-mic\"></i>\n </ax-icon>\n </ax-button>\n <input #inputFile [accept]=\"acceptFileType\" type=\"file\" class=\"ax-attach-input\" (change)=\"handleChangeFile($event)\">\n }\n\n @if (value) {\n <ax-button look=\"solid\" color=\"primary\" class=\"ax-sm\" (onClick)=\"handleSendClick()\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-send\"></i>\n </ax-icon>\n </ax-button>\n }\n </div>\n }\n</div>", styles: [".ax-dark .ax-chat-input:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-primary-200));border-color:rgba(var(--ax-color-primary-200))}.ax-chat-input{border:1px solid;border-color:rgba(var(--ax-color-border-default));display:flex;align-items:flex-end;border-radius:var(--ax-rounded-border-default);position:relative;resize:vertical;height:auto;padding:.5rem;font-size:.875rem}.ax-chat-input.ax-state-recording{align-items:center;display:grid;grid-template-columns:repeat(3,1fr)}.ax-chat-input.ax-state-recording .ax-chat-input-start-side{justify-content:flex-start}.ax-chat-input.ax-state-recording .ax-chat-input-end-side{justify-content:flex-end}.ax-chat-input:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-primary-500));border-color:rgba(var(--ax-color-primary-500))}.ax-chat-input>textarea{font-size:.875rem;background-color:transparent;max-height:10rem;min-height:1.5rem;line-height:2rem;flex:1 1 auto;height:auto;resize:none}.ax-chat-input>textarea:focus,.ax-chat-input>textarea:focus-visible{outline:unset}.ax-chat-input .ax-chat-input-start-side,.ax-chat-input .ax-chat-input-end-side{display:flex;align-items:center;justify-content:center}.ax-chat-input .ax-chat-input-start-side{padding-inline-end:.75rem}.ax-chat-input .ax-chat-input-main-side{flex:1 1 auto;display:flex;align-items:center;justify-content:center}.ax-chat-input .ax-chat-input-end-side{padding-inline-start:.75rem;gap:.5rem}.ax-chat-input .ax-record-dot{display:inline-flex;width:.5rem;height:.5rem;background-color:rgba(var(--ax-color-danger-500));border-radius:999rem;margin-inline-end:.5rem}.ax-chat-input .ax-blob{animation:pulse .75s infinite}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 rgba(var(--ax-color-danger-500),.7)}70%{transform:scale(1);box-shadow:0 0 0 10px rgba(var(--ax-color-danger-500),0)}to{transform:scale(1);box-shadow:0 0 rgba(var(--ax-color-danger-500),0)}}.ax-chat-input .ax-attach-input{opacity:0;width:0;height:0;position:absolute}.ax-emoji-container{padding:.75rem;gap:.5rem;display:grid;grid-template-columns:repeat(7,1fr)}.ax-emoji-container>div{padding:.25rem;cursor:pointer;border-radius:var(--ax-rounded-border-default)}.ax-emoji-container>div:hover{background-color:rgba(var(--ax-color-on-surface))}\n"] }]
@@ -122,4 +122,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
122
122
  }], onFileChange: [{
123
123
  type: Output
124
124
  }] } });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY2hhdC9zcmMvbGliL2NoYXQtaW5wdXQvY2hhdC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY2hhdC9zcmMvbGliL2NoYXQtaW5wdXQvY2hhdC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsV0FBVyxFQUNYLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLGVBQWUsR0FDaEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUVqQixVQUFVLEVBQ1YsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRW5DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7OztBQW1CbkUsTUFBTSxPQUFPLG9CQUFxQixTQUFRLE9BQU8sQ0FDL0MsQ0FBQSx5QkFBaUMsQ0FBQSxFQUNqQyxlQUFlLENBQ2hCO0lBcEJEOztRQXlCVyxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUVyQixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBRWYsbUJBQWMsR0FBVyxHQUFHLENBQUM7UUFHdEMsZ0JBQVcsR0FBK0IsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFHM0UscUJBQWdCLEdBQ2QsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFHbkMsb0JBQWUs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cEUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFO1lBQ25FO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQ25ELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRix5SkMxQ0gsMnhGQXFFTTs7MkZEekJPLG9CQUFvQjtrQkFqQmhDLFNBQVM7K0JBQ0UsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLHNCQUFzQixFQUFFO3dCQUMzRCxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLHNCQUFzQixFQUFFO3dCQUNwRSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLHNCQUFzQixFQUFFO3dCQUNuRTs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBTXVCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFFdEIsU0FBUztzQkFEUixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR04sV0FBVztzQkFEVixNQUFNO2dCQUlQLGdCQUFnQjtzQkFEZixNQUFNO2dCQUtQLGVBQWU7c0JBRGQsTUFBTTtnQkFLUCxZQUFZO3NCQURYLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWENsaWNrRXZlbnQsXG4gIEFYQ29tcG9uZW50LFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcbiAgTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudCxcbiAgTVhMb29rQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgV3JpdGFibGVTaWduYWwsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcbmltcG9ydCB7IEFYSW5wdXRGaWxlQ2hhbmdlIH0gZnJvbSAnLi4vY2xhc3Nlcy9ldmVudHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFYUmVjb3JkaW5nU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3JlY29yZGluZy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtY2hhdC1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGF0LWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hhdC1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYQ2hhdElucHV0Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWEZvY3VzYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYQ2hhdElucHV0Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFZhbHVhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhDaGF0SW5wdXRDb21wb25lbnQgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFYQ2hhdElucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ2hhdElucHV0Q29tcG9uZW50IGV4dGVuZHMgY2xhc3NlcyhcbiAgTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudDxzdHJpbmc+LFxuICBNWExvb2tDb21wb25lbnRcbikge1xuICBAVmlld0NoaWxkKCdpbnB1dEZpbGUnKSBpbnB1dEZpbGU6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIEBJbnB1dCgpXG4gIG1heExlbmd0aDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIGhhc0F0dGFjaG1lbnQgPSB0cnVlO1xuXG4gIEBJbnB1dCgpIGhhVm9pY2UgPSB0cnVlO1xuXG4gIEBJbnB1dCgpIGFjY2VwdEZpbGVUeXBlOiBzdHJpbmcgPSAnKic7XG5cbiAgQE91dHB1dCgpXG4gIG9uU2VuZENsaWNrOiBFdmVudEVtaXR0ZXI8QVhDbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhDbGlja0V2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBvblN0YXJ0UmVjb3JkaW5nOiBFdmVudEVtaXR0ZXI8QVhDbGlja0V2ZW50PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxBWENsaWNrRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uU3RvcFJlY29yZGluZzogRXZlbnRFbWl0dGVyPEFYQ2xpY2tFdmVudD4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8QVhDbGlja0V2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkZpbGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxBWElucHV0RmlsZUNoYW5nZT4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8QVhJbnB1dEZpbGVDaGFuZ2U+KCk7XG5cbiAgcmVjb3JkaW5nOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcmVjb3JkaW5nU2VydmljZTogQVhSZWNvcmRpbmdTZXJ2aWNlID0gaW5qZWN0KEFYUmVjb3JkaW5nU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIF91cGRhdGVPbjogJ2NoYW5nZScgfCAnYmx1cicgfCAnc3VibWl0JyA9ICdjaGFuZ2UnO1xuXG4gIHByb3RlY3RlZCBfaGFuZGxlTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuY29tbWl0VmFsdWUodmFsdWUsIHRydWUpO1xuICB9XG4gIHByb3RlY3RlZCByZWNvcmRlZEF1ZGlvOiB1bmtub3duIHwgbnVsbCA9IG51bGw7XG5cbiAgaGFuZGxlUmVjb3JkQ2xpY2soKSB7XG4gICAgdGhpcy5yZWNvcmRlZEF1ZGlvID0gbnVsbDtcbiAgICB0aGlzLnJlY29yZGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5yZWNvcmRpbmdTZXJ2aWNlXG4gICAgICA/LnN0YXJ0UmVjb3JkaW5nKClcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblN0YXJ0UmVjb3JkaW5nLmVtaXQoe1xuICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgICBkYXRhOiB7IHJlY29yZGluZzogdHJ1ZSB9LFxuICAgICAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlU3RvcENsaWNrKCkge1xuICAgIHRoaXMucmVjb3JkaW5nU2VydmljZS5zdG9wUmVjb3JkaW5nKCkudGhlbigoYykgPT4ge1xuICAgICAgdGhpcy5yZWNvcmRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIHRoaXMucmVjb3JkZWRBdWRpbyA9IGM7XG4gICAgICB0aGlzLm9uU3RvcFJlY29yZGluZy5lbWl0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICBkYXRhOiB7IHZhbHVlOiB0aGlzLnJlY29yZGVkQXVkaW8gfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIGhhbmRsZUF0dGFjaENsaWNrKCkge1xuICAgIHRoaXMuaW5wdXRGaWxlLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgfVxuXG4gIGhhbmRsZUNoYW5nZUZpbGUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5vbkZpbGVDaGFuZ2UuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBkYXRhOiB7IHZhbHVlOiAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmZpbGVzIH0sXG4gICAgfSk7XG4gIH1cblxuICBoYW5kbGVTZW5kQ2xpY2soKSB7XG4gICAgdGhpcy5vblNlbmRDbGljay5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGRhdGE6IHsgdmFsdWU6IHRoaXMudmFsdWUgfSxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlU2VuZFZvaWNlQ2xpY2soKSB7XG4gICAgdGhpcy5oYW5kbGVTdG9wQ2xpY2soKTtcbiAgICB0aGlzLm9uU2VuZENsaWNrLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgZGF0YTogeyB2YWx1ZTogdGhpcy52YWx1ZSB9LFxuICAgICAgaXNVc2VySW50ZXJhY3Rpb246IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1jaGF0LWlucHV0XCIgW2NsYXNzLmF4LXN0YXRlLXJlY29yZGluZ109XCJyZWNvcmRpbmcoKVwiPlxuICBAaWYgKHJlY29yZGluZygpKSB7XG4gIDxkaXYgY2xhc3M9XCJheC1jaGF0LWlucHV0LXN0YXJ0LXNpZGVcIj5cbiAgICA8c3BhbiBjbGFzcz1cImF4LXJlY29yZC1kb3RcIj48L3NwYW4+XG4gICAgPHNwYW4+e3sgcmVjb3JkaW5nU2VydmljZS50aW1lcigpIH19PC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImF4LWNoYXQtaW5wdXQtbWFpbi1zaWRlXCI+XG4gICAgPGF4LWJ1dHRvbiBjbGFzcz1cImF4LXNtXCIgbG9vaz1cImJsYW5rXCIgY29sb3I9XCJwcmltYXJ5XCIgW3RleHRdPVwiJ2NhbmNlbCcgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAob25DbGljayk9XCJoYW5kbGVTdG9wQ2xpY2soKVwiPjwvYXgtYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImF4LWNoYXQtaW5wdXQtZW5kLXNpZGVcIj5cbiAgICA8YXgtYnV0dG9uIGxvb2s9XCJzb2xpZFwiIGNvbG9yPVwiZGFuZ2VyXCIgY2xhc3M9XCJheC1ibG9iIGF4LXNtXCIgKG9uQ2xpY2spPVwiaGFuZGxlU2VuZFZvaWNlQ2xpY2soKVwiPlxuICAgICAgPGF4LWljb24+XG4gICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLXNlbmRcIj48L2k+XG4gICAgICA8L2F4LWljb24+XG4gICAgPC9heC1idXR0b24+XG4gIDwvZGl2PlxuICB9IEBlbHNlIHtcbiAgPGRpdiBjbGFzcz1cImF4LWNoYXQtaW5wdXQtc3RhcnQtc2lkZVwiPlxuICAgIDxheC1idXR0b24gbG9vaz1cImJsYW5rXCIgY2xhc3M9XCJheC1zbVwiPlxuICAgICAgPGF4LWljb24+XG4gICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWVtb2ppXCI+PC9pPlxuICAgICAgPC9heC1pY29uPlxuICAgICAgPGF4LWRyb3Bkb3duLXBhbmVsPlxuICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1lbW9qaS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXY+4pqg77iPPC9kaXY+XG4gICAgICAgICAgICA8ZGl2PuKeoe+4jzwvZGl2PlxuICAgICAgICAgICAgPGRpdj7wn5SDPC9kaXY+XG4gICAgICAgICAgICA8ZGl2PvCflLc8L2Rpdj5cbiAgICAgICAgICAgIDxkaXY+8J+kmjwvZGl2PlxuICAgICAgICAgICAgPGRpdj7wn5iCPC9kaXY+XG4gICAgICAgICAgICA8ZGl2PvCfmIo8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2F4LWRyb3Bkb3duLXBhbmVsPlxuICAgIDwvYXgtYnV0dG9uPlxuICA8L2Rpdj5cbiAgPHRleHRhcmVhIGNsYXNzPVwiYXgtY2hhdC1pbnB1dC1tYWluLXNpZGVcIlxuICAgIG9uaW5wdXQ9J3RoaXMuc3R5bGUuaGVpZ2h0ID0gXCJcIjt0aGlzLnN0eWxlLmhlaWdodCA9IHRoaXMuc2Nyb2xsSGVpZ2h0ICsgXCJweFwiJyB0eXBlPVwidGV4dFwiIHJvd3M9XCIxXCIgW2lkXT1cImlkXCJcbiAgICBbbmFtZV09XCJuYW1lXCIgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbYXR0ci5tYXhsZW5ndGhdPVwibWF4TGVuZ3RoXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIiBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIiBbbmdNb2RlbF09XCJ2YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIl9oYW5kbGVNb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyB1cGRhdGVPbjogX3VwZGF0ZU9uIH1cIiAoa2V5ZG93bik9XCJlbWl0T25LZXlkb3duRXZlbnQoJGV2ZW50KVwiIChrZXl1cCk9XCJlbWl0T25LZXl1cEV2ZW50KCRldmVudClcIlxuICAgIChrZXlwcmVzcyk9XCJlbWl0T25LZXlwcmVzc0V2ZW50KCRldmVudClcIiAoZm9jdXMpPVwiZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQpXCJcbiAgICAoYmx1cik9XCJlbWl0T25CbHVyRXZlbnQoJGV2ZW50KVwiPjwvdGV4dGFyZWE+XG4gIDxkaXYgY2xhc3M9XCJheC1jaGF0LWlucHV0LWVuZC1zaWRlXCI+XG4gICAgQGlmICghdmFsdWUpIHtcbiAgICA8YXgtYnV0dG9uIGxvb2s9XCJibGFua1wiIGNsYXNzPVwiYXgtc21cIiAob25DbGljayk9XCJoYW5kbGVBdHRhY2hDbGljaygpXCI+XG4gICAgICA8YXgtaWNvbj5cbiAgICAgICAgPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tYXR0YWNoXCI+PC9pPlxuICAgICAgPC9heC1pY29uPlxuICAgIDwvYXgtYnV0dG9uPlxuICAgIDxheC1idXR0b24gbG9vaz1cImJsYW5rXCIgY2xhc3M9XCJheC1zbVwiIChvbkNsaWNrKT1cImhhbmRsZVJlY29yZENsaWNrKClcIj5cbiAgICAgIDxheC1pY29uPlxuICAgICAgICA8aSBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1taWNcIj48L2k+XG4gICAgICA8L2F4LWljb24+XG4gICAgPC9heC1idXR0b24+XG4gICAgPGlucHV0ICNpbnB1dEZpbGUgW2FjY2VwdF09XCJhY2NlcHRGaWxlVHlwZVwiIHR5cGU9XCJmaWxlXCIgY2xhc3M9XCJheC1hdHRhY2gtaW5wdXRcIiAoY2hhbmdlKT1cImhhbmRsZUNoYW5nZUZpbGUoJGV2ZW50KVwiPlxuICAgIH1cblxuICAgIEBpZiAodmFsdWUpIHtcbiAgICA8YXgtYnV0dG9uIGxvb2s9XCJzb2xpZFwiIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwiYXgtc21cIiAob25DbGljayk9XCJoYW5kbGVTZW5kQ2xpY2soKVwiPlxuICAgICAgPGF4LWljb24+XG4gICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLXNlbmRcIj48L2k+XG4gICAgICA8L2F4LWljb24+XG4gICAgPC9heC1idXR0b24+XG4gICAgfVxuICA8L2Rpdj5cbiAgfVxuPC9kaXY+Il19
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24taW5wdXQvY29udmVyc2F0aW9uLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24taW5wdXQvY29udmVyc2F0aW9uLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxXQUFXLEVBQ1gsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQix5QkFBeUIsRUFDekIsZUFBZSxHQUNoQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBRWpCLFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7O0FBbUJuRSxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsT0FBTyxDQUFDLENBQUEseUJBQWlDLENBQUEsRUFBRSxlQUFlLENBQUM7SUFqQjdHOztRQXNCVyxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUVyQixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBRWYsbUJBQWMsR0FBRyxHQUFHLENBQUM7UUFHOUIsZ0JBQVcsR0FBK0IsSUFBSSxZQUFZLEVBQWdCLENB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QUNuRSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsNEJBQTRCLEVBQUU7WUFDNUUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLDRCQUE0QixFQUFFO1lBQzNFO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUM7Z0JBQzNELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRix5SkMxQ0gsMnhGQXFFTTs7MkZEekJPLDRCQUE0QjtrQkFqQnhDLFNBQVM7K0JBQ0UsdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLDhCQUE4QixFQUFFO3dCQUNuRSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLDhCQUE4QixFQUFFO3dCQUM1RSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLDhCQUE4QixFQUFFO3dCQUMzRTs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw2QkFBNkIsQ0FBQzs0QkFDM0QsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBR3VCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFFdEIsU0FBUztzQkFEUixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR04sV0FBVztzQkFEVixNQUFNO2dCQUlQLGdCQUFnQjtzQkFEZixNQUFNO2dCQUlQLGVBQWU7c0JBRGQsTUFBTTtnQkFJUCxZQUFZO3NCQURYLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWENsaWNrRXZlbnQsXG4gIEFYQ29tcG9uZW50LFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcbiAgTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudCxcbiAgTVhMb29rQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgV3JpdGFibGVTaWduYWwsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcbmltcG9ydCB7IEFYSW5wdXRGaWxlQ2hhbmdlIH0gZnJvbSAnLi4vY2xhc3Nlcy9ldmVudHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFYUmVjb3JkaW5nU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3JlY29yZGluZy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtY29udmVyc2F0aW9uLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnZlcnNhdGlvbi1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbnZlcnNhdGlvbi1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYQ29udmVyc2F0aW9uSW5wdXRDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhDb252ZXJzYXRpb25JbnB1dENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhWYWx1YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYQ29udmVyc2F0aW9uSW5wdXRDb21wb25lbnQgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFYQ29udmVyc2F0aW9uSW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhDb252ZXJzYXRpb25JbnB1dENvbXBvbmVudCBleHRlbmRzIGNsYXNzZXMoTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudDxzdHJpbmc+LCBNWExvb2tDb21wb25lbnQpIHtcbiAgQFZpZXdDaGlsZCgnaW5wdXRGaWxlJykgaW5wdXRGaWxlOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBASW5wdXQoKVxuICBtYXhMZW5ndGg6IG51bWJlcjtcblxuICBASW5wdXQoKSBoYXNBdHRhY2htZW50ID0gdHJ1ZTtcblxuICBASW5wdXQoKSBoYVZvaWNlID0gdHJ1ZTtcblxuICBASW5wdXQoKSBhY2NlcHRGaWxlVHlwZSA9ICcqJztcblxuICBAT3V0cHV0KClcbiAgb25TZW5kQ2xpY2s6IEV2ZW50RW1pdHRlcjxBWENsaWNrRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWENsaWNrRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uU3RhcnRSZWNvcmRpbmc6IEV2ZW50RW1pdHRlcjxBWENsaWNrRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWENsaWNrRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uU3RvcFJlY29yZGluZzogRXZlbnRFbWl0dGVyPEFYQ2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYQ2xpY2tFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgb25GaWxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QVhJbnB1dEZpbGVDaGFuZ2U+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWElucHV0RmlsZUNoYW5nZT4oKTtcblxuICByZWNvcmRpbmc6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcblxuICByZWNvcmRpbmdTZXJ2aWNlOiBBWFJlY29yZGluZ1NlcnZpY2UgPSBpbmplY3QoQVhSZWNvcmRpbmdTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgX3VwZGF0ZU9uOiAnY2hhbmdlJyB8ICdibHVyJyB8ICdzdWJtaXQnID0gJ2NoYW5nZSc7XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVNb2RlbENoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jb21taXRWYWx1ZSh2YWx1ZSwgdHJ1ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIHJlY29yZGVkQXVkaW86IHVua25vd24gfCBudWxsID0gbnVsbDtcblxuICBoYW5kbGVSZWNvcmRDbGljaygpIHtcbiAgICB0aGlzLnJlY29yZGVkQXVkaW8gPSBudWxsO1xuICAgIHRoaXMucmVjb3JkaW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLnJlY29yZGluZ1NlcnZpY2VcbiAgICAgID8uc3RhcnRSZWNvcmRpbmcoKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU3RhcnRSZWNvcmRpbmcuZW1pdCh7XG4gICAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICAgIGRhdGE6IHsgcmVjb3JkaW5nOiB0cnVlIH0sXG4gICAgICAgICAgaXNVc2VySW50ZXJhY3Rpb246IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgfSk7XG4gIH1cblxuICBoYW5kbGVTdG9wQ2xpY2soKSB7XG4gICAgdGhpcy5yZWNvcmRpbmdTZXJ2aWNlLnN0b3BSZWNvcmRpbmcoKS50aGVuKChjKSA9PiB7XG4gICAgICB0aGlzLnJlY29yZGluZy5zZXQoZmFsc2UpO1xuICAgICAgdGhpcy5yZWNvcmRlZEF1ZGlvID0gYztcbiAgICAgIHRoaXMub25TdG9wUmVjb3JkaW5nLmVtaXQoe1xuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgIGRhdGE6IHsgdmFsdWU6IHRoaXMucmVjb3JkZWRBdWRpbyB9LFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgaGFuZGxlQXR0YWNoQ2xpY2soKSB7XG4gICAgdGhpcy5pbnB1dEZpbGUubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG5cbiAgaGFuZGxlQ2hhbmdlRmlsZShldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLm9uRmlsZUNoYW5nZS5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGRhdGE6IHsgdmFsdWU6IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuZmlsZXMgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGhhbmRsZVNlbmRDbGljaygpIHtcbiAgICB0aGlzLm9uU2VuZENsaWNrLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgZGF0YTogeyB2YWx1ZTogdGhpcy52YWx1ZSB9LFxuICAgICAgaXNVc2VySW50ZXJhY3Rpb246IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBoYW5kbGVTZW5kVm9pY2VDbGljaygpIHtcbiAgICB0aGlzLmhhbmRsZVN0b3BDbGljaygpO1xuICAgIHRoaXMub25TZW5kQ2xpY2suZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBkYXRhOiB7IHZhbHVlOiB0aGlzLnZhbHVlIH0sXG4gICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF4LWNoYXQtaW5wdXRcIiBbY2xhc3MuYXgtc3RhdGUtcmVjb3JkaW5nXT1cInJlY29yZGluZygpXCI+XG4gIEBpZiAocmVjb3JkaW5nKCkpIHtcbiAgPGRpdiBjbGFzcz1cImF4LWNoYXQtaW5wdXQtc3RhcnQtc2lkZVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiYXgtcmVjb3JkLWRvdFwiPjwvc3Bhbj5cbiAgICA8c3Bhbj57eyByZWNvcmRpbmdTZXJ2aWNlLnRpbWVyKCkgfX08L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYXgtY2hhdC1pbnB1dC1tYWluLXNpZGVcIj5cbiAgICA8YXgtYnV0dG9uIGNsYXNzPVwiYXgtc21cIiBsb29rPVwiYmxhbmtcIiBjb2xvcj1cInByaW1hcnlcIiBbdGV4dF09XCInY2FuY2VsJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgIChvbkNsaWNrKT1cImhhbmRsZVN0b3BDbGljaygpXCI+PC9heC1idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYXgtY2hhdC1pbnB1dC1lbmQtc2lkZVwiPlxuICAgIDxheC1idXR0b24gbG9vaz1cInNvbGlkXCIgY29sb3I9XCJkYW5nZXJcIiBjbGFzcz1cImF4LWJsb2IgYXgtc21cIiAob25DbGljayk9XCJoYW5kbGVTZW5kVm9pY2VDbGljaygpXCI+XG4gICAgICA8YXgtaWNvbj5cbiAgICAgICAgPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tc2VuZFwiPjwvaT5cbiAgICAgIDwvYXgtaWNvbj5cbiAgICA8L2F4LWJ1dHRvbj5cbiAgPC9kaXY+XG4gIH0gQGVsc2Uge1xuICA8ZGl2IGNsYXNzPVwiYXgtY2hhdC1pbnB1dC1zdGFydC1zaWRlXCI+XG4gICAgPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiBjbGFzcz1cImF4LXNtXCI+XG4gICAgICA8YXgtaWNvbj5cbiAgICAgICAgPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tZW1vamlcIj48L2k+XG4gICAgICA8L2F4LWljb24+XG4gICAgICA8YXgtZHJvcGRvd24tcGFuZWw+XG4gICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWVtb2ppLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdj7imqDvuI88L2Rpdj5cbiAgICAgICAgICAgIDxkaXY+4p6h77iPPC9kaXY+XG4gICAgICAgICAgICA8ZGl2PvCflIM8L2Rpdj5cbiAgICAgICAgICAgIDxkaXY+8J+UtzwvZGl2PlxuICAgICAgICAgICAgPGRpdj7wn6SaPC9kaXY+XG4gICAgICAgICAgICA8ZGl2PvCfmII8L2Rpdj5cbiAgICAgICAgICAgIDxkaXY+8J+YijwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvYXgtZHJvcGRvd24tcGFuZWw+XG4gICAgPC9heC1idXR0b24+XG4gIDwvZGl2PlxuICA8dGV4dGFyZWEgY2xhc3M9XCJheC1jaGF0LWlucHV0LW1haW4tc2lkZVwiXG4gICAgb25pbnB1dD0ndGhpcy5zdHlsZS5oZWlnaHQgPSBcIlwiO3RoaXMuc3R5bGUuaGVpZ2h0ID0gdGhpcy5zY3JvbGxIZWlnaHQgKyBcInB4XCInIHR5cGU9XCJ0ZXh0XCIgcm93cz1cIjFcIiBbaWRdPVwiaWRcIlxuICAgIFtuYW1lXT1cIm5hbWVcIiBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFthdHRyLm1heGxlbmd0aF09XCJtYXhMZW5ndGhcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiIFtuZ01vZGVsXT1cInZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwiX2hhbmRsZU1vZGVsQ2hhbmdlKCRldmVudClcIlxuICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHVwZGF0ZU9uOiBfdXBkYXRlT24gfVwiIChrZXlkb3duKT1cImVtaXRPbktleWRvd25FdmVudCgkZXZlbnQpXCIgKGtleXVwKT1cImVtaXRPbktleXVwRXZlbnQoJGV2ZW50KVwiXG4gICAgKGtleXByZXNzKT1cImVtaXRPbktleXByZXNzRXZlbnQoJGV2ZW50KVwiIChmb2N1cyk9XCJlbWl0T25Gb2N1c0V2ZW50KCRldmVudClcIlxuICAgIChibHVyKT1cImVtaXRPbkJsdXJFdmVudCgkZXZlbnQpXCI+PC90ZXh0YXJlYT5cbiAgPGRpdiBjbGFzcz1cImF4LWNoYXQtaW5wdXQtZW5kLXNpZGVcIj5cbiAgICBAaWYgKCF2YWx1ZSkge1xuICAgIDxheC1idXR0b24gbG9vaz1cImJsYW5rXCIgY2xhc3M9XCJheC1zbVwiIChvbkNsaWNrKT1cImhhbmRsZUF0dGFjaENsaWNrKClcIj5cbiAgICAgIDxheC1pY29uPlxuICAgICAgICA8aSBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1hdHRhY2hcIj48L2k+XG4gICAgICA8L2F4LWljb24+XG4gICAgPC9heC1idXR0b24+XG4gICAgPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiBjbGFzcz1cImF4LXNtXCIgKG9uQ2xpY2spPVwiaGFuZGxlUmVjb3JkQ2xpY2soKVwiPlxuICAgICAgPGF4LWljb24+XG4gICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLW1pY1wiPjwvaT5cbiAgICAgIDwvYXgtaWNvbj5cbiAgICA8L2F4LWJ1dHRvbj5cbiAgICA8aW5wdXQgI2lucHV0RmlsZSBbYWNjZXB0XT1cImFjY2VwdEZpbGVUeXBlXCIgdHlwZT1cImZpbGVcIiBjbGFzcz1cImF4LWF0dGFjaC1pbnB1dFwiIChjaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlRmlsZSgkZXZlbnQpXCI+XG4gICAgfVxuXG4gICAgQGlmICh2YWx1ZSkge1xuICAgIDxheC1idXR0b24gbG9vaz1cInNvbGlkXCIgY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJheC1zbVwiIChvbkNsaWNrKT1cImhhbmRsZVNlbmRDbGljaygpXCI+XG4gICAgICA8YXgtaWNvbj5cbiAgICAgICAgPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tc2VuZFwiPjwvaT5cbiAgICAgIDwvYXgtaWNvbj5cbiAgICA8L2F4LWJ1dHRvbj5cbiAgICB9XG4gIDwvZGl2PlxuICB9XG48L2Rpdj4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLWlucHV0LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24taW5wdXQvY29udmVyc2F0aW9uLWlucHV0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBWEF1ZGlvUmVjb3JkZXIge1xuICBhdWRpb0Jsb2JzOiBhbnlbXTtcbiAgbWVkaWFSZWNvcmRlcjogYW55O1xuICBzdHJlYW1CZWluZ0NhcHR1cmVkOiBhbnk7XG4gIHN0YXJ0PygpOiBhbnk7XG4gIHN0b3A/KCk6IGFueTtcbiAgY2FuY2VsPygpOiBhbnk7XG4gIHN0b3BTdHJlYW0/KCk6IGFueTtcbiAgcmVzZXRSZWNvcmRpbmdQcm9wZXJ0aWVzPygpOiBhbnk7XG59XG4iXX0=
@@ -0,0 +1,55 @@
1
+ import { MXBaseComponent } from '@acorex/components/common';
2
+ import { isBrowser } from '@acorex/core/platform';
3
+ import { ComponentPortal } from '@angular/cdk/portal';
4
+ import { Component, HostBinding, ViewEncapsulation, inject, input } from '@angular/core';
5
+ import { AXConversationMessageTypeRegistryService } from '../services/conversation-message-type-registry.service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/cdk/portal";
8
+ import * as i2 from "@acorex/components/avatar";
9
+ import * as i3 from "@angular/common";
10
+ import * as i4 from "@acorex/core/format";
11
+ export class AXConversationMessageComponent extends MXBaseComponent {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.chatMessage = input();
15
+ this.registryService = inject(AXConversationMessageTypeRegistryService);
16
+ }
17
+ get isOwn() {
18
+ return !this.chatMessage().fromId;
19
+ }
20
+ get __hostClass() {
21
+ return `${this.isOwn ? 'ax-state-own' : ''} ${!this.isOwn ? 'ax-state-other' : ''}`;
22
+ }
23
+ ngOnInit() {
24
+ this._portal = new ComponentPortal(this.registryService.resolve(this.chatMessage().type).component);
25
+ }
26
+ _handleAttched(ref) {
27
+ ref = ref;
28
+ if (ref.instance && isBrowser()) {
29
+ Object.assign(ref.instance, { message: this.chatMessage() });
30
+ this.cdr.markForCheck();
31
+ const prefix = this.getHostElement().querySelector('ax-prefix');
32
+ const suffix = this.getHostElement().querySelector('ax-suffix');
33
+ const prefixContainer = this.getHostElement().querySelector('.ax-message-prefix');
34
+ const suffixContainer = this.getHostElement().querySelector('.ax-message-suffix');
35
+ if (prefix && prefixContainer) {
36
+ prefix.style.display = 'flex';
37
+ prefixContainer.append(prefix);
38
+ }
39
+ if (suffix && suffixContainer) {
40
+ suffix.style.display = 'flex';
41
+ suffixContainer.append(suffix);
42
+ }
43
+ }
44
+ }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXConversationMessageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
46
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: AXConversationMessageComponent, selector: "ax-conversation-message", inputs: { chatMessage: { classPropertyName: "chatMessage", publicName: "chatMessage", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, usesInheritance: true, ngImport: i0, template: "@if(chatMessage().fromId){\n<ax-avatar [size]=\"36\"></ax-avatar>\n}\n<div class=\"ax-message-content\" [class.ax-state-own]=\"!chatMessage().fromId\"\n [class.ax-state-other]=\"chatMessage().fromId\">\n <ng-template [cdkPortalOutlet]=\"_portal\" (attached)=\"_handleAttched($event)\"></ng-template>\n\n <div class=\"ax-chat-message-status\">\n <div class=\"ax-message-prefix\">\n </div>\n <div>\n <div class=\"ax-message-suffix\"></div>\n <span>{{ chatMessage().sendTime | format:'datetime':'HH:mm' | async }}</span>\n <span>\n @if(isOwn)\n {\n @if(chatMessage().deliverTime){\n <i class=\"ax-icon ax-icon-check ax-message-status\"></i>\n }\n @if(chatMessage().readTime){\n <i class=\"ax-icon ax-icon-dobble-check ax-message-status\"></i>\n }\n }\n </span>\n </div>\n </div>\n</div>\n\n@if(!chatMessage().fromId){\n<ax-avatar [size]=\"36\"></ax-avatar>\n}", styles: [":root{--ax-message-other-color: rgba(var(--ax-color-primary-500));--ax-message-other-color-fore: rgba(var(--ax-color-primary-fore));--ax-message-status-color: rgba(var(--ax-color-primary-700));--ax-message-other-bar-color: rgba(var(--ax-color-primary-400));--ax-message-other-progress-color: rgba(var(--ax-color-primary-fore));--ax-message-own-color: rgba(var(--ax-color-primary-100));--ax-message-own-color-fore: rgba(var(--ax-color-primary-700));--ax-message-own-bar-color: rgba(var(--ax-color-primary-200));--ax-message-own-progress-color: rgba(var(--ax-color-primary-700))}ax-conversation-message{display:flex;gap:.5rem;align-items:flex-end}ax-conversation-message.ax-state-own{justify-content:flex-end}ax-conversation-message .ax-message-content{display:block;padding:.5rem;font-size:.875rem;line-height:1.25rem;border-radius:1rem;width:fit-content}ax-conversation-message .ax-message-content.ax-state-own{border-end-end-radius:0!important;background-color:var(--ax-message-own-color);color:var(--ax-message-own-color-fore);justify-content:flex-end}ax-conversation-message .ax-message-content.ax-state-own .ax-chat-message-status{color:var(--ax-message-own-color-fore)}ax-conversation-message .ax-message-content.ax-state-other{border-end-start-radius:0!important;background-color:var(--ax-message-other-color);color:var(--ax-message-other-color-fore)}ax-conversation-message .ax-message-content.ax-state-other .ax-chat-message-status{color:var(--ax-message-other-color-fore)}ax-conversation-message .ax-message-content .ax-chat-message-status{display:flex;justify-content:space-between;align-items:center;font-size:.75rem}ax-conversation-message .ax-message-content .ax-chat-message-status>div{display:flex;gap:.125rem;align-items:center}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-message-status{color:var(--ax-message-status-color);font-weight:700}ax-conversation-message .ax-message-content ax-prefix,ax-conversation-message .ax-message-content ax-suffix{display:none}.ax-dark ax-conversation-message{--ax-message-other-color: rgba(var(--ax-color-primary-900));--ax-message-other-color-fore: rgba(var(--ax-color-primary-fore));--ax-message-own-color: rgba(var(--ax-color-primary-700));--ax-message-own-color-fore: rgba(var(--ax-color-primary-fore));--ax-message-status-color: rgba(var(--ax-color-primary-100))}\n"], dependencies: [{ kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i2.AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "look"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXFormatPipe, name: "format" }], encapsulation: i0.ViewEncapsulation.None }); }
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXConversationMessageComponent, decorators: [{
49
+ type: Component,
50
+ args: [{ selector: 'ax-conversation-message', encapsulation: ViewEncapsulation.None, template: "@if(chatMessage().fromId){\n<ax-avatar [size]=\"36\"></ax-avatar>\n}\n<div class=\"ax-message-content\" [class.ax-state-own]=\"!chatMessage().fromId\"\n [class.ax-state-other]=\"chatMessage().fromId\">\n <ng-template [cdkPortalOutlet]=\"_portal\" (attached)=\"_handleAttched($event)\"></ng-template>\n\n <div class=\"ax-chat-message-status\">\n <div class=\"ax-message-prefix\">\n </div>\n <div>\n <div class=\"ax-message-suffix\"></div>\n <span>{{ chatMessage().sendTime | format:'datetime':'HH:mm' | async }}</span>\n <span>\n @if(isOwn)\n {\n @if(chatMessage().deliverTime){\n <i class=\"ax-icon ax-icon-check ax-message-status\"></i>\n }\n @if(chatMessage().readTime){\n <i class=\"ax-icon ax-icon-dobble-check ax-message-status\"></i>\n }\n }\n </span>\n </div>\n </div>\n</div>\n\n@if(!chatMessage().fromId){\n<ax-avatar [size]=\"36\"></ax-avatar>\n}", styles: [":root{--ax-message-other-color: rgba(var(--ax-color-primary-500));--ax-message-other-color-fore: rgba(var(--ax-color-primary-fore));--ax-message-status-color: rgba(var(--ax-color-primary-700));--ax-message-other-bar-color: rgba(var(--ax-color-primary-400));--ax-message-other-progress-color: rgba(var(--ax-color-primary-fore));--ax-message-own-color: rgba(var(--ax-color-primary-100));--ax-message-own-color-fore: rgba(var(--ax-color-primary-700));--ax-message-own-bar-color: rgba(var(--ax-color-primary-200));--ax-message-own-progress-color: rgba(var(--ax-color-primary-700))}ax-conversation-message{display:flex;gap:.5rem;align-items:flex-end}ax-conversation-message.ax-state-own{justify-content:flex-end}ax-conversation-message .ax-message-content{display:block;padding:.5rem;font-size:.875rem;line-height:1.25rem;border-radius:1rem;width:fit-content}ax-conversation-message .ax-message-content.ax-state-own{border-end-end-radius:0!important;background-color:var(--ax-message-own-color);color:var(--ax-message-own-color-fore);justify-content:flex-end}ax-conversation-message .ax-message-content.ax-state-own .ax-chat-message-status{color:var(--ax-message-own-color-fore)}ax-conversation-message .ax-message-content.ax-state-other{border-end-start-radius:0!important;background-color:var(--ax-message-other-color);color:var(--ax-message-other-color-fore)}ax-conversation-message .ax-message-content.ax-state-other .ax-chat-message-status{color:var(--ax-message-other-color-fore)}ax-conversation-message .ax-message-content .ax-chat-message-status{display:flex;justify-content:space-between;align-items:center;font-size:.75rem}ax-conversation-message .ax-message-content .ax-chat-message-status>div{display:flex;gap:.125rem;align-items:center}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-message-status{color:var(--ax-message-status-color);font-weight:700}ax-conversation-message .ax-message-content ax-prefix,ax-conversation-message .ax-message-content ax-suffix{display:none}.ax-dark ax-conversation-message{--ax-message-other-color: rgba(var(--ax-color-primary-900));--ax-message-other-color-fore: rgba(var(--ax-color-primary-fore));--ax-message-own-color: rgba(var(--ax-color-primary-700));--ax-message-own-color-fore: rgba(var(--ax-color-primary-fore));--ax-message-status-color: rgba(var(--ax-color-primary-100))}\n"] }]
51
+ }], propDecorators: { __hostClass: [{
52
+ type: HostBinding,
53
+ args: ['class']
54
+ }] } });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi1tZXNzYWdlL2NvbnZlcnNhdGlvbi1tZXNzYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24tbWVzc2FnZS9jb252ZXJzYXRpb24tbWVzc2FnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sRUFBOEIsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkcsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sd0RBQXdELENBQUM7Ozs7OztBQVFsSCxNQUFNLE9BQU8sOEJBQStCLFNBQVEsZUFBZTtJQU5uRTs7UUFPRSxnQkFBVyxHQUFHLEtBQUssRUFBOEIsQ0FBQztRQVF4QyxvQkFBZSxHQUFHLE1BQU0sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO0tBOEI5RTtJQWxDQyxJQUFjLEtBQUs7UUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUM7SUFDcEMsQ0FBQztJQUlELElBQ0ksV0FBVztRQUNiLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUN0RixDQUFDO0lBRWtCLFFBQVE7UUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVTLGNBQWMsQ0FBQyxHQUErQjtRQUN0RCxHQUFHLEdBQUcsR0FBNEIsQ0FBQztRQUNuQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFtQixDQUFDO1lBQ2xGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFtQixDQUFDO1lBQ2xGLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNsRixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDbEYsSUFBSSxNQUFNLElBQUksZUFBZSxFQUFFLENBQUM7Z0JBQzlCLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztnQkFDOUIsZUFBZSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqQyxDQUFDO1lBQ0QsSUFBSSxNQUFNLElBQUksZUFBZSxFQUFFLENBQUM7Z0JBQzlCLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztnQkFDOUIsZUFBZSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7OEdBdENVLDhCQUE4QjtrR0FBOUIsOEJBQThCLG1TQ2IzQyxxakNBOEJDOzsyRkRqQlksOEJBQThCO2tCQU4xQyxTQUFTOytCQUNFLHlCQUF5QixpQkFHcEIsaUJBQWlCLENBQUMsSUFBSTs4QkFjakMsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNWEJhc2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IGlzQnJvd3NlciB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZiwgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudFJlZiwgSG9zdEJpbmRpbmcsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbk1lc3NhZ2UgfSBmcm9tICcuLi9jb252ZXJzYXRpb24udHlwZXMnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25NZXNzYWdlVHlwZVJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbnZlcnNhdGlvbi1tZXNzYWdlLXR5cGUtcmVnaXN0cnkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnZlcnNhdGlvbi1tZXNzYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnZlcnNhdGlvbi1tZXNzYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29udmVyc2F0aW9uLW1lc3NhZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhDb252ZXJzYXRpb25NZXNzYWdlQ29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IHtcbiAgY2hhdE1lc3NhZ2UgPSBpbnB1dDxBWENvbnZlcnNhdGlvbk1lc3NhZ2U8YW55Pj4oKTtcblxuICBwcm90ZWN0ZWQgX3BvcnRhbDogQ29tcG9uZW50UG9ydGFsPGFueT4gfCBudWxsO1xuXG4gIHByb3RlY3RlZCBnZXQgaXNPd24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmNoYXRNZXNzYWdlKCkuZnJvbUlkO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlZ2lzdHJ5U2VydmljZSA9IGluamVjdChBWENvbnZlcnNhdGlvbk1lc3NhZ2VUeXBlUmVnaXN0cnlTZXJ2aWNlKTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuaXNPd24gPyAnYXgtc3RhdGUtb3duJyA6ICcnfSAkeyF0aGlzLmlzT3duID8gJ2F4LXN0YXRlLW90aGVyJyA6ICcnfWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fcG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbCh0aGlzLnJlZ2lzdHJ5U2VydmljZS5yZXNvbHZlKHRoaXMuY2hhdE1lc3NhZ2UoKS50eXBlKS5jb21wb25lbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVBdHRjaGVkKHJlZjogQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYpIHtcbiAgICByZWYgPSByZWYgYXMgQ29tcG9uZW50UmVmPHVua25vd24+O1xuICAgIGlmIChyZWYuaW5zdGFuY2UgJiYgaXNCcm93c2VyKCkpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmVmLmluc3RhbmNlLCB7IG1lc3NhZ2U6IHRoaXMuY2hhdE1lc3NhZ2UoKSB9KTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgY29uc3QgcHJlZml4ID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJ2F4LXByZWZpeCcpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgY29uc3Qgc3VmZml4ID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJ2F4LXN1ZmZpeCcpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgY29uc3QgcHJlZml4Q29udGFpbmVyID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJy5heC1tZXNzYWdlLXByZWZpeCcpO1xuICAgICAgY29uc3Qgc3VmZml4Q29udGFpbmVyID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJy5heC1tZXNzYWdlLXN1ZmZpeCcpO1xuICAgICAgaWYgKHByZWZpeCAmJiBwcmVmaXhDb250YWluZXIpIHtcbiAgICAgICAgcHJlZml4LnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XG4gICAgICAgIHByZWZpeENvbnRhaW5lci5hcHBlbmQocHJlZml4KTtcbiAgICAgIH1cbiAgICAgIGlmIChzdWZmaXggJiYgc3VmZml4Q29udGFpbmVyKSB7XG4gICAgICAgIHN1ZmZpeC5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xuICAgICAgICBzdWZmaXhDb250YWluZXIuYXBwZW5kKHN1ZmZpeCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaWYoY2hhdE1lc3NhZ2UoKS5mcm9tSWQpe1xuPGF4LWF2YXRhciBbc2l6ZV09XCIzNlwiPjwvYXgtYXZhdGFyPlxufVxuPGRpdiBjbGFzcz1cImF4LW1lc3NhZ2UtY29udGVudFwiIFtjbGFzcy5heC1zdGF0ZS1vd25dPVwiIWNoYXRNZXNzYWdlKCkuZnJvbUlkXCJcbiAgICBbY2xhc3MuYXgtc3RhdGUtb3RoZXJdPVwiY2hhdE1lc3NhZ2UoKS5mcm9tSWRcIj5cbiAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJfcG9ydGFsXCIgKGF0dGFjaGVkKT1cIl9oYW5kbGVBdHRjaGVkKCRldmVudClcIj48L25nLXRlbXBsYXRlPlxuXG4gICAgPGRpdiBjbGFzcz1cImF4LWNoYXQtbWVzc2FnZS1zdGF0dXNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LW1lc3NhZ2UtcHJlZml4XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LW1lc3NhZ2Utc3VmZml4XCI+PC9kaXY+XG4gICAgICAgICAgICA8c3Bhbj57eyBjaGF0TWVzc2FnZSgpLnNlbmRUaW1lIHwgZm9ybWF0OidkYXRldGltZSc6J0hIOm1tJyB8IGFzeW5jIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgQGlmKGlzT3duKVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBAaWYoY2hhdE1lc3NhZ2UoKS5kZWxpdmVyVGltZSl7XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2hlY2sgYXgtbWVzc2FnZS1zdGF0dXNcIj48L2k+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZihjaGF0TWVzc2FnZSgpLnJlYWRUaW1lKXtcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1kb2JibGUtY2hlY2sgYXgtbWVzc2FnZS1zdGF0dXNcIj48L2k+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuQGlmKCFjaGF0TWVzc2FnZSgpLmZyb21JZCl7XG48YXgtYXZhdGFyIFtzaXplXT1cIjM2XCI+PC9heC1hdmF0YXI+XG59Il19