@acorex/components 18.3.1 → 18.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. package/button/lib/button.component.d.ts +2 -1
  2. package/conversation/index.d.ts +1 -0
  3. package/conversation/lib/conversation-container/conversation-container.component.d.ts +1 -1
  4. package/conversation/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.d.ts +13 -17
  5. package/conversation/lib/conversation-messages/conversation-message-image/conversation-message-image.component.d.ts +14 -4
  6. package/conversation/lib/conversation-messages/conversation-message-image-popup/conversation-message-image-popup.component.d.ts +7 -0
  7. package/conversation/lib/conversation-messages/conversation-message-video/conversation-message-video.component.d.ts +1 -1
  8. package/conversation/lib/conversation.module.d.ts +21 -17
  9. package/esm2022/button/lib/button.component.mjs +6 -5
  10. package/esm2022/color-palette/lib/color-palette-picker.component.mjs +1 -1
  11. package/esm2022/conversation/index.mjs +2 -1
  12. package/esm2022/conversation/lib/conversation-container/conversation-container.component.mjs +3 -3
  13. package/esm2022/conversation/lib/conversation-input/conversation-input.component.mjs +1 -1
  14. package/esm2022/conversation/lib/conversation-message/conversation-message.component.mjs +2 -2
  15. package/esm2022/conversation/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.mjs +59 -86
  16. package/esm2022/conversation/lib/conversation-messages/conversation-message-image/conversation-message-image.component.mjs +38 -11
  17. package/esm2022/conversation/lib/conversation-messages/conversation-message-image-popup/conversation-message-image-popup.component.mjs +16 -0
  18. package/esm2022/conversation/lib/conversation-messages/conversation-message-video/conversation-message-video.component.mjs +3 -4
  19. package/esm2022/conversation/lib/conversation.module.mjs +21 -7
  20. package/esm2022/conversation/lib/services/conversation.service.mjs +11 -3
  21. package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +1 -1
  22. package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +1 -1
  23. package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +1 -1
  24. package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +1 -1
  25. package/esm2022/data-table/lib/data-table/data-table.component.mjs +1 -1
  26. package/esm2022/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.mjs +1 -1
  27. package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +1 -1
  28. package/esm2022/dialog/lib/dialog.component.mjs +1 -1
  29. package/esm2022/form/lib/validation-summary.component.mjs +1 -1
  30. package/esm2022/loading-dialog/lib/loading-dialog.component.mjs +1 -1
  31. package/esm2022/notification/lib/notification.component.mjs +1 -1
  32. package/esm2022/otp/lib/otp.component.mjs +18 -7
  33. package/esm2022/phone-box/lib/phone-box.component.mjs +6 -3
  34. package/esm2022/range-slider/acorex-components-range-slider.mjs +5 -0
  35. package/esm2022/range-slider/index.mjs +2 -0
  36. package/esm2022/range-slider/lib/range-slider.component.mjs +11 -0
  37. package/esm2022/range-slider/lib/range-slider.module.mjs +17 -0
  38. package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +1 -1
  39. package/esm2022/scheduler/lib/scheduler.component.mjs +1 -1
  40. package/esm2022/slider/lib/slider.component.mjs +11 -15
  41. package/fesm2022/acorex-components-button.mjs +5 -4
  42. package/fesm2022/acorex-components-button.mjs.map +1 -1
  43. package/fesm2022/acorex-components-color-palette.mjs +1 -1
  44. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  45. package/fesm2022/acorex-components-conversation.mjs +172 -130
  46. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  47. package/fesm2022/acorex-components-data-pager.mjs +4 -4
  48. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  49. package/fesm2022/acorex-components-data-table.mjs +2 -2
  50. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  51. package/fesm2022/acorex-components-datetime-picker.mjs +1 -1
  52. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  53. package/fesm2022/acorex-components-dialog.mjs +1 -1
  54. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  55. package/fesm2022/acorex-components-form.mjs +1 -1
  56. package/fesm2022/acorex-components-form.mjs.map +1 -1
  57. package/fesm2022/acorex-components-loading-dialog.mjs +1 -1
  58. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  59. package/fesm2022/acorex-components-notification.mjs +1 -1
  60. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  61. package/fesm2022/acorex-components-otp.mjs +17 -6
  62. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  63. package/fesm2022/acorex-components-phone-box.mjs +5 -2
  64. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  65. package/fesm2022/acorex-components-range-slider.mjs +32 -0
  66. package/fesm2022/acorex-components-range-slider.mjs.map +1 -0
  67. package/fesm2022/acorex-components-scheduler.mjs +2 -2
  68. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  69. package/fesm2022/acorex-components-slider.mjs +10 -14
  70. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  71. package/otp/lib/otp.component.d.ts +4 -1
  72. package/package.json +7 -1
  73. package/phone-box/lib/phone-box.component.d.ts +1 -0
  74. package/range-slider/README.md +3 -0
  75. package/range-slider/index.d.ts +1 -0
  76. package/range-slider/lib/range-slider.component.d.ts +5 -0
  77. package/range-slider/lib/range-slider.module.d.ts +8 -0
  78. package/slider/lib/slider.component.d.ts +4 -2
@@ -1,113 +1,86 @@
1
- import { AXDecoratorModule } from '@acorex/components/decorators';
2
- import { AXLoadingModule } from '@acorex/components/loading';
3
- import { AXSliderModule } from '@acorex/components/slider';
4
- import { AXFormatModule } from '@acorex/core/format';
5
- import { CommonModule } from '@angular/common';
6
- import { Component, HostBinding, afterNextRender, inject, signal } from '@angular/core';
7
- import { FormsModule } from '@angular/forms';
8
- import { AXConversationViewComponent } from '../../conversation-view/conversation-view.component';
1
+ import { Component, Renderer2, afterNextRender, inject, signal, viewChild } from '@angular/core';
2
+ import { fromEvent } from 'rxjs';
9
3
  import { AXConversationMessageBaseComponent } from '../../conversation.types';
10
4
  import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/common";
12
- import * as i2 from "@acorex/components/loading";
13
- import * as i3 from "@acorex/core/format";
14
- import * as i4 from "@acorex/components/decorators";
15
- import * as i5 from "@acorex/components/slider";
16
- import * as i6 from "@angular/forms";
5
+ import * as i1 from "@angular/forms";
6
+ import * as i2 from "@acorex/components/decorators";
7
+ import * as i3 from "@acorex/components/slider";
8
+ import * as i4 from "@angular/common";
9
+ import * as i5 from "@acorex/core/format";
17
10
  export class ConversationMessageAudioComponent extends AXConversationMessageBaseComponent {
18
11
  constructor() {
19
12
  super();
20
- this.config = { url: '' };
21
13
  this.audioState = signal('paused');
22
- this.parent = inject(AXConversationViewComponent);
23
- this.selectedRate = signal(1);
24
- this.selectedRateIndex = signal(1);
25
- this.audioProgress = signal(0);
26
- this.timeLeft = signal(0);
14
+ this.audioTag = viewChild('a');
15
+ this.renderer = inject(Renderer2);
16
+ this.audioRate = signal(1);
27
17
  this.currentTime = signal(0);
28
18
  this.duration = signal(0);
19
+ this.currentTimeFormat = signal(0);
20
+ this.durationFormat = signal(0);
29
21
  afterNextRender(() => {
30
- console.log('1');
22
+ this.renderer.setAttribute(this.audioTag().nativeElement, 'src', this.message.content);
23
+ this.eventListeners();
31
24
  });
32
25
  }
33
- setWaveColor() {
34
- let waveColor = '';
35
- let progressColor = '';
36
- if (this.message.fromId) {
37
- waveColor = getComputedStyle(document.body).getPropertyValue('--ax-message-other-bar-color');
38
- progressColor = getComputedStyle(document.body).getPropertyValue('--ax-message-other-progress-color');
39
- }
40
- else {
41
- waveColor = getComputedStyle(document.body).getPropertyValue('--ax-message-own-bar-color');
42
- progressColor = getComputedStyle(document.body).getPropertyValue('--ax-message-own-progress-color');
43
- }
44
- this.config.waveColor = waveColor;
45
- this.config.progressColor = progressColor;
26
+ eventListeners() {
27
+ this.ended();
28
+ this.durationChange();
29
+ this.timeUpdate();
30
+ }
31
+ clickHandler(e) {
32
+ this.audioTag().nativeElement.pause();
33
+ this.audioTag().nativeElement.currentTime = e;
34
+ this.audioTag().nativeElement.play();
46
35
  }
47
36
  handlePauseClick() {
48
- // this.audio?.pause();
49
- // this.audioState.set('paused');
37
+ this.audioState.set('paused');
38
+ this.audioTag().nativeElement.pause();
50
39
  }
51
40
  handlePlayClick() {
52
- // this.audio?.play()?.then(() => {
53
- // this.audioState.set('playing');
54
- // });
41
+ this.audioState.set('playing');
42
+ this.audioTag().nativeElement.play();
55
43
  }
56
- handleOnStatusChanged(e) {
57
- if (e.status === 'load' || e.status === 'loading') {
58
- this.audioState.set('loading');
59
- }
60
- if (e.status === 'loading') {
61
- this.audioProgress.set(e.data.percent);
62
- this.duration.set(Math.ceil(e.data.duration * 1000));
63
- }
64
- if (e.status === 'ready') {
65
- this.audioState.set('ready');
66
- this.duration.set(Math.ceil(e.data.duration * 1000));
67
- }
68
- if (e.status === 'finish') {
69
- this.audioState.set('paused');
44
+ handleRateClick() {
45
+ if (this.audioRate() === 1) {
46
+ this.audioRate.set(1.5);
47
+ this.audioTag().nativeElement.playbackRate = 1.5;
70
48
  }
71
- if (e.status === 'timeupdate') {
72
- this.timeLeft.set(this.duration() - e.data.currentTime * 1000);
73
- this.currentTime.set(e.data.currentTime * 1000);
49
+ else if (this.audioRate() === 1.5) {
50
+ this.audioRate.set(2);
51
+ this.audioTag().nativeElement.playbackRate = 2;
74
52
  }
75
- if (e.status === 'error') {
76
- this.audioState.set('error');
53
+ else if (this.audioRate() === 2) {
54
+ this.audioRate.set(1);
55
+ this.audioTag().nativeElement.playbackRate = 1;
77
56
  }
78
57
  }
79
- handleLoadingProgress() {
80
- // this.audioLoaderProgress?.nativeElement.style.cssText = `--ax-audio-progress: ${this.audioProgress()}`;
81
- }
82
- handleCancelLoading() {
83
- //
84
- }
85
- handleReloadClick() {
86
- //
87
- // this.audioState.set('loading');
88
- // this.audio.load();
58
+ ended() {
59
+ fromEvent(this.audioTag().nativeElement, 'ended').subscribe((e) => {
60
+ this.audioState.set('paused');
61
+ this.audioTag().nativeElement.pause();
62
+ this.audioTag().nativeElement.currentTime = 0;
63
+ });
89
64
  }
90
- handleRateClick() {
91
- // const rates = [0.5, 1, 2, 4];
92
- // if (this.selectedRateIndex() == rates.length - 1) {
93
- // this.selectedRateIndex.set(0);
94
- // } else {
95
- // this.selectedRateIndex.set(this.selectedRateIndex() + 1);
96
- // }
97
- // this.selectedRate.set(rates[this.selectedRateIndex()]);
98
- // this.audio.setRate(this.selectedRate());
65
+ durationChange() {
66
+ fromEvent(this.audioTag().nativeElement, 'durationchange').subscribe((e) => {
67
+ if (this.audioTag().nativeElement.duration === Infinity)
68
+ return;
69
+ this.duration.set(this.audioTag().nativeElement.duration);
70
+ this.durationFormat.set(Math.ceil(this.audioTag().nativeElement.duration) * 1000);
71
+ });
99
72
  }
100
- get __hostClass() {
101
- return `${this.message.fromId ? 'ax-state-other' : 'ax-state-own'}`;
73
+ timeUpdate() {
74
+ fromEvent(this.audioTag().nativeElement, 'timeupdate').subscribe((e) => {
75
+ this.currentTime.set(this.audioTag().nativeElement.currentTime);
76
+ this.currentTimeFormat.set(Math.ceil(this.audioTag().nativeElement.currentTime * 1000));
77
+ });
102
78
  }
103
79
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ConversationMessageAudioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
104
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: ConversationMessageAudioComponent, isStandalone: true, selector: "ax-conversation-message-audio", host: { properties: { "class": "this.__hostClass" } }, usesInheritance: true, ngImport: i0, template: "<ax-prefix>\n @switch (audioState()) {\n @case ('paused') {\n {{ currentTime() | format: 'time-duration' | async }}\n }\n @case ('playing') {\n {{ currentTime() | format: 'time-duration' | async }}\n }\n @default {\n {{ duration() | format: 'time-duration' | async }}\n }\n }\n <button class=\"ax-audio-speed\" (click)=\"handleRateClick()\"></button>\n</ax-prefix>\n<div class=\"ax-conversation-controller\">\n @switch (audioState()) {\n @case ('playing') {\n <button (click)=\"handlePauseClick()\">\n <i class=\"ax-icon ax-icon-pause\"></i>\n </button>\n }\n\n @case ('ready') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n\n @case ('paused') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n\n @case ('error') {\n <button class=\"ax-state-error\" (click)=\"handleReloadClick()\">\n <i class=\"ax-icon ax-icon-reload\"></i>\n </button>\n }\n\n @default {\n <button (click)=\"handleCancelLoading()\">\n <ax-loading-spinner\n [size]=\"24\"\n [stroke]=\"2\"\n [color]=\"message.fromId ? 'var(--ax-other-color)' : 'var(--ax-own-color)'\"\n ></ax-loading-spinner>\n </button>\n }\n }\n</div>\n<ax-slider [ngModel]=\"75\" color=\"secondary\"> </ax-slider>\n", styles: ["ax-conversation-message-audio{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:18rem;max-width:100%}ax-conversation-message-audio .ax-audio-wave{flex:1}.ax-audio-rate-button{background-color:var(--ax-message-other-color-fore);color:var(--ax-message-other-color);border-radius:.5rem;padding:0 .5rem;font-weight:700;margin-inline-end:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.ax-audio-rate-button.ax-state-own{background-color:var(--ax-message-own-color-fore);color:var(--ax-message-own-color)}html[dir=rtl] ax-conversation-message-audio{flex-direction:row-reverse}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i2.AXLoadingSpinnerComponent, selector: "ax-loading-spinner", inputs: ["color", "size", "stroke"] }, { kind: "ngmodule", type: AXFormatModule }, { kind: "pipe", type: i3.AXFormatPipe, name: "format" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXSliderModule }, { kind: "component", type: i5.AXSliderComponent, selector: "ax-slider", inputs: ["readonly", "disabled", "value", "name", "color", "minValue", "maxValue", "step", "direction"], outputs: ["valueChange", "onValueChanged", "readonlyChange", "disabledChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
80
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: ConversationMessageAudioComponent, selector: "ax-conversation-message-audio", viewQueries: [{ propertyName: "audioTag", first: true, predicate: ["a"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<audio #a></audio>\n<ax-prefix>\n <div class=\"ax-time-rate\">\n @switch (audioState()) {\n @case ('paused') {\n {{ currentTimeFormat() | format: 'time-duration' | async }}\n }\n @case ('playing') {\n {{ currentTimeFormat() | format: 'time-duration' | async }}\n }\n @default {\n {{ durationFormat() | format: 'time-duration' | async }}\n }\n }\n <button class=\"ax-audio-speed\" (click)=\"handleRateClick()\">{{ audioRate() }}X</button>\n </div>\n</ax-prefix>\n<div class=\"ax-conversation-controller\">\n @switch (audioState()) {\n @case ('playing') {\n <button (click)=\"handlePauseClick()\">\n <i class=\"ax-icon ax-icon-pause\"></i>\n </button>\n }\n @case ('paused') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n }\n</div>\n<ax-slider (onClick)=\"clickHandler($event)\" [maxValue]=\"duration()\" [minValue]=\"0\" [ngModel]=\"currentTime()\" color=\"secondary\"> </ax-slider>\n", styles: [".ax-time-rate button{margin-inline-start:.3rem;background-color:rgba(var(--ax-color-primary-fore));color:rgba(var(--ax-color-neutral-950));border-radius:.2rem;min-width:2rem}\n"], dependencies: [{ 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.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i3.AXSliderComponent, selector: "ax-slider", inputs: ["readonly", "disabled", "value", "name", "color", "minValue", "maxValue", "step", "direction"], outputs: ["valueChange", "onValueChanged", "readonlyChange", "disabledChange", "onChange", "onClick"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXFormatPipe, name: "format" }] }); }
105
81
  }
106
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ConversationMessageAudioComponent, decorators: [{
107
83
  type: Component,
108
- args: [{ selector: 'ax-conversation-message-audio', standalone: true, imports: [CommonModule, AXLoadingModule, AXFormatModule, AXDecoratorModule, AXSliderModule, AXSliderModule, FormsModule], template: "<ax-prefix>\n @switch (audioState()) {\n @case ('paused') {\n {{ currentTime() | format: 'time-duration' | async }}\n }\n @case ('playing') {\n {{ currentTime() | format: 'time-duration' | async }}\n }\n @default {\n {{ duration() | format: 'time-duration' | async }}\n }\n }\n <button class=\"ax-audio-speed\" (click)=\"handleRateClick()\"></button>\n</ax-prefix>\n<div class=\"ax-conversation-controller\">\n @switch (audioState()) {\n @case ('playing') {\n <button (click)=\"handlePauseClick()\">\n <i class=\"ax-icon ax-icon-pause\"></i>\n </button>\n }\n\n @case ('ready') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n\n @case ('paused') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n\n @case ('error') {\n <button class=\"ax-state-error\" (click)=\"handleReloadClick()\">\n <i class=\"ax-icon ax-icon-reload\"></i>\n </button>\n }\n\n @default {\n <button (click)=\"handleCancelLoading()\">\n <ax-loading-spinner\n [size]=\"24\"\n [stroke]=\"2\"\n [color]=\"message.fromId ? 'var(--ax-other-color)' : 'var(--ax-own-color)'\"\n ></ax-loading-spinner>\n </button>\n }\n }\n</div>\n<ax-slider [ngModel]=\"75\" color=\"secondary\"> </ax-slider>\n", styles: ["ax-conversation-message-audio{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:18rem;max-width:100%}ax-conversation-message-audio .ax-audio-wave{flex:1}.ax-audio-rate-button{background-color:var(--ax-message-other-color-fore);color:var(--ax-message-other-color);border-radius:.5rem;padding:0 .5rem;font-weight:700;margin-inline-end:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.ax-audio-rate-button.ax-state-own{background-color:var(--ax-message-own-color-fore);color:var(--ax-message-own-color)}html[dir=rtl] ax-conversation-message-audio{flex-direction:row-reverse}\n"] }]
109
- }], ctorParameters: () => [], propDecorators: { __hostClass: [{
110
- type: HostBinding,
111
- args: ['class']
112
- }] } });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UtYXVkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS1hdWRpby9jb252ZXJzYXRpb24tbWVzc2FnZS1hdWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29udmVyc2F0aW9uL3NyYy9saWIvY29udmVyc2F0aW9uLW1lc3NhZ2VzL2NvbnZlcnNhdGlvbi1tZXNzYWdlLWF1ZGlvL2NvbnZlcnNhdGlvbi1tZXNzYWdlLWF1ZGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBa0IsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7OztBQVM5RSxNQUFNLE9BQU8saUNBQWtDLFNBQVEsa0NBQTBDO0lBZS9GO1FB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RSxpQkFBaUIsc1BBQUUsY0FBYyxpU0FBa0IsV0FBVzs7MkZBSTVHLGlDQUFpQztrQkFQN0MsU0FBUzsrQkFDRSwrQkFBK0IsY0FDN0IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxXQUFXLENBQUM7d0RBcUdwSCxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQXVkaW9XYXZlQ2hhbmdlRXZlbnQsIEFYV2F2ZUNvbmZpZyB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9hdWRpby13YXZlJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhTbGlkZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2xpZGVyJztcbmltcG9ydCB7IEFYRm9ybWF0TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgV3JpdGFibGVTaWduYWwsIGFmdGVyTmV4dFJlbmRlciwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25WaWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udmVyc2F0aW9uLXZpZXcvY29udmVyc2F0aW9uLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uTWVzc2FnZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb252ZXJzYXRpb24udHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jb252ZXJzYXRpb24tbWVzc2FnZS1hdWRpbycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFYTG9hZGluZ01vZHVsZSwgQVhGb3JtYXRNb2R1bGUsIEFYRGVjb3JhdG9yTW9kdWxlLCBBWFNsaWRlck1vZHVsZSwgQVhTbGlkZXJNb2R1bGUsIEZvcm1zTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnZlcnNhdGlvbi1tZXNzYWdlLWF1ZGlvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NvbnZlcnNhdGlvbi1tZXNzYWdlLWF1ZGlvLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQ29udmVyc2F0aW9uTWVzc2FnZUF1ZGlvQ29tcG9uZW50IGV4dGVuZHMgQVhDb252ZXJzYXRpb25NZXNzYWdlQmFzZUNvbXBvbmVudDxzdHJpbmc+IHtcbiAgY29uZmlnOiBBWFdhdmVDb25maWcgPSB7IHVybDogJycgfTtcblxuICBhdWRpb1N0YXRlOiBXcml0YWJsZVNpZ25hbDwncGxheWluZycgfCAncGF1c2VkJyB8ICdsb2FkaW5nJyB8ICdyZWFkeScgfCAnZXJyb3InPiA9IHNpZ25hbCgncGF1c2VkJyk7XG5cbiAgcGFyZW50ID0gaW5qZWN0KEFYQ29udmVyc2F0aW9uVmlld0NvbXBvbmVudCk7XG5cbiAgc2VsZWN0ZWRSYXRlID0gc2lnbmFsKDEpO1xuICBzZWxlY3RlZFJhdGVJbmRleCA9IHNpZ25hbCgxKTtcblxuICBwcm90ZWN0ZWQgYXVkaW9Qcm9ncmVzcyA9IHNpZ25hbCgwKTtcbiAgcHJvdGVjdGVkIHRpbWVMZWZ0ID0gc2lnbmFsKDApO1xuICBwcm90ZWN0ZWQgY3VycmVudFRpbWUgPSBzaWduYWwoMCk7XG4gIHByb3RlY3RlZCBkdXJhdGlvbiA9IHNpZ25hbCgwKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnMScpO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0V2F2ZUNvbG9yKCkge1xuICAgIGxldCB3YXZlQ29sb3IgPSAnJztcbiAgICBsZXQgcHJvZ3Jlc3NDb2xvciA9ICcnO1xuICAgIGlmICh0aGlzLm1lc3NhZ2UuZnJvbUlkKSB7XG4gICAgICB3YXZlQ29sb3IgPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmdldFByb3BlcnR5VmFsdWUoJy0tYXgtbWVzc2FnZS1vdGhlci1iYXItY29sb3InKTtcbiAgICAgIHByb2dyZXNzQ29sb3IgPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmdldFByb3BlcnR5VmFsdWUoJy0tYXgtbWVzc2FnZS1vdGhlci1wcm9ncmVzcy1jb2xvcicpO1xuICAgIH0gZWxzZSB7XG4gICAgICB3YXZlQ29sb3IgPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmdldFByb3BlcnR5VmFsdWUoJy0tYXgtbWVzc2FnZS1vd24tYmFyLWNvbG9yJyk7XG4gICAgICBwcm9ncmVzc0NvbG9yID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5nZXRQcm9wZXJ0eVZhbHVlKCctLWF4LW1lc3NhZ2Utb3duLXByb2dyZXNzLWNvbG9yJyk7XG4gICAgfVxuICAgIHRoaXMuY29uZmlnLndhdmVDb2xvciA9IHdhdmVDb2xvcjtcbiAgICB0aGlzLmNvbmZpZy5wcm9ncmVzc0NvbG9yID0gcHJvZ3Jlc3NDb2xvcjtcbiAgfVxuXG4gIGhhbmRsZVBhdXNlQ2xpY2soKSB7XG4gICAgLy8gdGhpcy5hdWRpbz8ucGF1c2UoKTtcbiAgICAvLyB0aGlzLmF1ZGlvU3RhdGUuc2V0KCdwYXVzZWQnKTtcbiAgfVxuXG4gIGhhbmRsZVBsYXlDbGljaygpIHtcbiAgICAvLyB0aGlzLmF1ZGlvPy5wbGF5KCk/LnRoZW4oKCkgPT4ge1xuICAgIC8vICAgdGhpcy5hdWRpb1N0YXRlLnNldCgncGxheWluZycpO1xuICAgIC8vIH0pO1xuICB9XG5cbiAgaGFuZGxlT25TdGF0dXNDaGFuZ2VkKGU6IEFYQXVkaW9XYXZlQ2hhbmdlRXZlbnQpIHtcbiAgICBpZiAoZS5zdGF0dXMgPT09ICdsb2FkJyB8fCBlLnN0YXR1cyA9PT0gJ2xvYWRpbmcnKSB7XG4gICAgICB0aGlzLmF1ZGlvU3RhdGUuc2V0KCdsb2FkaW5nJyk7XG4gICAgfVxuICAgIGlmIChlLnN0YXR1cyA9PT0gJ2xvYWRpbmcnKSB7XG4gICAgICB0aGlzLmF1ZGlvUHJvZ3Jlc3Muc2V0KGUuZGF0YS5wZXJjZW50KTtcbiAgICAgIHRoaXMuZHVyYXRpb24uc2V0KE1hdGguY2VpbChlLmRhdGEuZHVyYXRpb24gKiAxMDAwKSk7XG4gICAgfVxuICAgIGlmIChlLnN0YXR1cyA9PT0gJ3JlYWR5Jykge1xuICAgICAgdGhpcy5hdWRpb1N0YXRlLnNldCgncmVhZHknKTtcbiAgICAgIHRoaXMuZHVyYXRpb24uc2V0KE1hdGguY2VpbChlLmRhdGEuZHVyYXRpb24gKiAxMDAwKSk7XG4gICAgfVxuICAgIGlmIChlLnN0YXR1cyA9PT0gJ2ZpbmlzaCcpIHtcbiAgICAgIHRoaXMuYXVkaW9TdGF0ZS5zZXQoJ3BhdXNlZCcpO1xuICAgIH1cbiAgICBpZiAoZS5zdGF0dXMgPT09ICd0aW1ldXBkYXRlJykge1xuICAgICAgdGhpcy50aW1lTGVmdC5zZXQodGhpcy5kdXJhdGlvbigpIC0gZS5kYXRhLmN1cnJlbnRUaW1lICogMTAwMCk7XG4gICAgICB0aGlzLmN1cnJlbnRUaW1lLnNldChlLmRhdGEuY3VycmVudFRpbWUgKiAxMDAwKTtcbiAgICB9XG4gICAgaWYgKGUuc3RhdHVzID09PSAnZXJyb3InKSB7XG4gICAgICB0aGlzLmF1ZGlvU3RhdGUuc2V0KCdlcnJvcicpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUxvYWRpbmdQcm9ncmVzcygpIHtcbiAgICAvLyB0aGlzLmF1ZGlvTG9hZGVyUHJvZ3Jlc3M/Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY3NzVGV4dCA9IGAtLWF4LWF1ZGlvLXByb2dyZXNzOiAke3RoaXMuYXVkaW9Qcm9ncmVzcygpfWA7XG4gIH1cblxuICBoYW5kbGVDYW5jZWxMb2FkaW5nKCkge1xuICAgIC8vXG4gIH1cblxuICBoYW5kbGVSZWxvYWRDbGljaygpIHtcbiAgICAvL1xuICAgIC8vIHRoaXMuYXVkaW9TdGF0ZS5zZXQoJ2xvYWRpbmcnKTtcbiAgICAvLyB0aGlzLmF1ZGlvLmxvYWQoKTtcbiAgfVxuXG4gIGhhbmRsZVJhdGVDbGljaygpIHtcbiAgICAvLyBjb25zdCByYXRlcyA9IFswLjUsIDEsIDIsIDRdO1xuICAgIC8vIGlmICh0aGlzLnNlbGVjdGVkUmF0ZUluZGV4KCkgPT0gcmF0ZXMubGVuZ3RoIC0gMSkge1xuICAgIC8vICAgdGhpcy5zZWxlY3RlZFJhdGVJbmRleC5zZXQoMCk7XG4gICAgLy8gfSBlbHNlIHtcbiAgICAvLyAgIHRoaXMuc2VsZWN0ZWRSYXRlSW5kZXguc2V0KHRoaXMuc2VsZWN0ZWRSYXRlSW5kZXgoKSArIDEpO1xuICAgIC8vIH1cbiAgICAvLyB0aGlzLnNlbGVjdGVkUmF0ZS5zZXQocmF0ZXNbdGhpcy5zZWxlY3RlZFJhdGVJbmRleCgpXSk7XG4gICAgLy8gdGhpcy5hdWRpby5zZXRSYXRlKHRoaXMuc2VsZWN0ZWRSYXRlKCkpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLm1lc3NhZ2UuZnJvbUlkID8gJ2F4LXN0YXRlLW90aGVyJyA6ICdheC1zdGF0ZS1vd24nfWA7XG4gIH1cbn1cbiIsIjxheC1wcmVmaXg+XG4gIEBzd2l0Y2ggKGF1ZGlvU3RhdGUoKSkge1xuICAgIEBjYXNlICgncGF1c2VkJykge1xuICAgICAge3sgY3VycmVudFRpbWUoKSB8IGZvcm1hdDogJ3RpbWUtZHVyYXRpb24nIHwgYXN5bmMgfX1cbiAgICB9XG4gICAgQGNhc2UgKCdwbGF5aW5nJykge1xuICAgICAge3sgY3VycmVudFRpbWUoKSB8IGZvcm1hdDogJ3RpbWUtZHVyYXRpb24nIHwgYXN5bmMgfX1cbiAgICB9XG4gICAgQGRlZmF1bHQge1xuICAgICAge3sgZHVyYXRpb24oKSB8IGZvcm1hdDogJ3RpbWUtZHVyYXRpb24nIHwgYXN5bmMgfX1cbiAgICB9XG4gIH1cbiAgPGJ1dHRvbiBjbGFzcz1cImF4LWF1ZGlvLXNwZWVkXCIgKGNsaWNrKT1cImhhbmRsZVJhdGVDbGljaygpXCI+PC9idXR0b24+XG48L2F4LXByZWZpeD5cbjxkaXYgY2xhc3M9XCJheC1jb252ZXJzYXRpb24tY29udHJvbGxlclwiPlxuICBAc3dpdGNoIChhdWRpb1N0YXRlKCkpIHtcbiAgICBAY2FzZSAoJ3BsYXlpbmcnKSB7XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJoYW5kbGVQYXVzZUNsaWNrKClcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tcGF1c2VcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICB9XG5cbiAgICBAY2FzZSAoJ3JlYWR5Jykge1xuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiaGFuZGxlUGxheUNsaWNrKClcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tcGxheVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cblxuICAgIEBjYXNlICgncGF1c2VkJykge1xuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiaGFuZGxlUGxheUNsaWNrKClcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tcGxheVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cblxuICAgIEBjYXNlICgnZXJyb3InKSB7XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYXgtc3RhdGUtZXJyb3JcIiAoY2xpY2spPVwiaGFuZGxlUmVsb2FkQ2xpY2soKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1yZWxvYWRcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICB9XG5cbiAgICBAZGVmYXVsdCB7XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJoYW5kbGVDYW5jZWxMb2FkaW5nKClcIj5cbiAgICAgICAgPGF4LWxvYWRpbmctc3Bpbm5lclxuICAgICAgICAgIFtzaXplXT1cIjI0XCJcbiAgICAgICAgICBbc3Ryb2tlXT1cIjJcIlxuICAgICAgICAgIFtjb2xvcl09XCJtZXNzYWdlLmZyb21JZCA/ICd2YXIoLS1heC1vdGhlci1jb2xvciknIDogJ3ZhcigtLWF4LW93bi1jb2xvciknXCJcbiAgICAgICAgPjwvYXgtbG9hZGluZy1zcGlubmVyPlxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICB9XG48L2Rpdj5cbjxheC1zbGlkZXIgW25nTW9kZWxdPVwiNzVcIiBjb2xvcj1cInNlY29uZGFyeVwiPiA8L2F4LXNsaWRlcj5cbiJdfQ==
84
+ args: [{ selector: 'ax-conversation-message-audio', template: "<audio #a></audio>\n<ax-prefix>\n <div class=\"ax-time-rate\">\n @switch (audioState()) {\n @case ('paused') {\n {{ currentTimeFormat() | format: 'time-duration' | async }}\n }\n @case ('playing') {\n {{ currentTimeFormat() | format: 'time-duration' | async }}\n }\n @default {\n {{ durationFormat() | format: 'time-duration' | async }}\n }\n }\n <button class=\"ax-audio-speed\" (click)=\"handleRateClick()\">{{ audioRate() }}X</button>\n </div>\n</ax-prefix>\n<div class=\"ax-conversation-controller\">\n @switch (audioState()) {\n @case ('playing') {\n <button (click)=\"handlePauseClick()\">\n <i class=\"ax-icon ax-icon-pause\"></i>\n </button>\n }\n @case ('paused') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n }\n</div>\n<ax-slider (onClick)=\"clickHandler($event)\" [maxValue]=\"duration()\" [minValue]=\"0\" [ngModel]=\"currentTime()\" color=\"secondary\"> </ax-slider>\n", styles: [".ax-time-rate button{margin-inline-start:.3rem;background-color:rgba(var(--ax-color-primary-fore));color:rgba(var(--ax-color-neutral-950));border-radius:.2rem;min-width:2rem}\n"] }]
85
+ }], ctorParameters: () => [] });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UtYXVkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS1hdWRpby9jb252ZXJzYXRpb24tbWVzc2FnZS1hdWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29udmVyc2F0aW9uL3NyYy9saWIvY29udmVyc2F0aW9uLW1lc3NhZ2VzL2NvbnZlcnNhdGlvbi1tZXNzYWdlLWF1ZGlvL2NvbnZlcnNhdGlvbi1tZXNzYWdlLWF1ZGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsU0FBUyxFQUFrQixlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQU85RSxNQUFNLE9BQU8saUNBQWtDLFNBQVEsa0NBQTBDO0lBYy9GO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFkVixlQUFVLEdBQXlDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwRSxhQUFRLEdBQUcsU0FBUyxDQUErQixHQUFHLENBQUMsQ0FBQztRQUN4RCxhQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTdCLGNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFWixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixhQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMs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LENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDekUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsS0FBSyxRQUFRO2dCQUFFLE9BQU87WUFDaEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDcEYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsVUFBVTtRQUNSLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3JFLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQTVFVSxpQ0FBaUM7a0dBQWpDLGlDQUFpQywyTUNUOUMsMGhDQWdDQTs7MkZEdkJhLGlDQUFpQztrQkFMN0MsU0FBUzsrQkFDRSwrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiwgV3JpdGFibGVTaWduYWwsIGFmdGVyTmV4dFJlbmRlciwgaW5qZWN0LCBzaWduYWwsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbk1lc3NhZ2VCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udmVyc2F0aW9uLnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtY29udmVyc2F0aW9uLW1lc3NhZ2UtYXVkaW8nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29udmVyc2F0aW9uLW1lc3NhZ2UtYXVkaW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb252ZXJzYXRpb24tbWVzc2FnZS1hdWRpby5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb252ZXJzYXRpb25NZXNzYWdlQXVkaW9Db21wb25lbnQgZXh0ZW5kcyBBWENvbnZlcnNhdGlvbk1lc3NhZ2VCYXNlQ29tcG9uZW50PHN0cmluZz4ge1xuICBhdWRpb1N0YXRlOiBXcml0YWJsZVNpZ25hbDwncGxheWluZycgfCAncGF1c2VkJz4gPSBzaWduYWwoJ3BhdXNlZCcpO1xuXG4gIGF1ZGlvVGFnID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTEF1ZGlvRWxlbWVudD4+KCdhJyk7XG4gIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cbiAgYXVkaW9SYXRlID0gc2lnbmFsKDEpO1xuXG4gIHByb3RlY3RlZCBjdXJyZW50VGltZSA9IHNpZ25hbCgwKTtcbiAgcHJvdGVjdGVkIGR1cmF0aW9uID0gc2lnbmFsKDApO1xuXG4gIHByb3RlY3RlZCBjdXJyZW50VGltZUZvcm1hdCA9IHNpZ25hbCgwKTtcbiAgcHJvdGVjdGVkIGR1cmF0aW9uRm9ybWF0ID0gc2lnbmFsKDApO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuYXVkaW9UYWcoKS5uYXRpdmVFbGVtZW50LCAnc3JjJywgdGhpcy5tZXNzYWdlLmNvbnRlbnQpO1xuICAgICAgdGhpcy5ldmVudExpc3RlbmVycygpO1xuICAgIH0pO1xuICB9XG5cbiAgZXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5lbmRlZCgpO1xuICAgIHRoaXMuZHVyYXRpb25DaGFuZ2UoKTtcbiAgICB0aGlzLnRpbWVVcGRhdGUoKTtcbiAgfVxuXG4gIGNsaWNrSGFuZGxlcihlOiBhbnkpIHtcbiAgICB0aGlzLmF1ZGlvVGFnKCkubmF0aXZlRWxlbWVudC5wYXVzZSgpO1xuICAgIHRoaXMuYXVkaW9UYWcoKS5uYXRpdmVFbGVtZW50LmN1cnJlbnRUaW1lID0gZTtcbiAgICB0aGlzLmF1ZGlvVGFnKCkubmF0aXZlRWxlbWVudC5wbGF5KCk7XG4gIH1cblxuICBoYW5kbGVQYXVzZUNsaWNrKCkge1xuICAgIHRoaXMuYXVkaW9TdGF0ZS5zZXQoJ3BhdXNlZCcpO1xuICAgIHRoaXMuYXVkaW9UYWcoKS5uYXRpdmVFbGVtZW50LnBhdXNlKCk7XG4gIH1cblxuICBoYW5kbGVQbGF5Q2xpY2soKSB7XG4gICAgdGhpcy5hdWRpb1N0YXRlLnNldCgncGxheWluZycpO1xuICAgIHRoaXMuYXVkaW9UYWcoKS5uYXRpdmVFbGVtZW50LnBsYXkoKTtcbiAgfVxuXG4gIGhhbmRsZVJhdGVDbGljaygpIHtcbiAgICBpZiAodGhpcy5hdWRpb1JhdGUoKSA9PT0gMSkge1xuICAgICAgdGhpcy5hdWRpb1JhdGUuc2V0KDEuNSk7XG4gICAgICB0aGlzLmF1ZGlvVGFnKCkubmF0aXZlRWxlbWVudC5wbGF5YmFja1JhdGUgPSAxLjU7XG4gICAgfSBlbHNlIGlmICh0aGlzLmF1ZGlvUmF0ZSgpID09PSAxLjUpIHtcbiAgICAgIHRoaXMuYXVkaW9SYXRlLnNldCgyKTtcbiAgICAgIHRoaXMuYXVkaW9UYWcoKS5uYXRpdmVFbGVtZW50LnBsYXliYWNrUmF0ZSA9IDI7XG4gICAgfSBlbHNlIGlmICh0aGlzLmF1ZGlvUmF0ZSgpID09PSAyKSB7XG4gICAgICB0aGlzLmF1ZGlvUmF0ZS5zZXQoMSk7XG4gICAgICB0aGlzLmF1ZGlvVGFnKCkubmF0aXZlRWxlbWVudC5wbGF5YmFja1JhdGUgPSAxO1xuICAgIH1cbiAgfVxuXG4gIGVuZGVkKCkge1xuICAgIGZyb21FdmVudCh0aGlzLmF1ZGlvVGFnKCkubmF0aXZlRWxlbWVudCwgJ2VuZGVkJykuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICB0aGlzLmF1ZGlvU3RhdGUuc2V0KCdwYXVzZWQnKTtcbiAgICAgIHRoaXMuYXVkaW9UYWcoKS5uYXRpdmVFbGVtZW50LnBhdXNlKCk7XG4gICAgICB0aGlzLmF1ZGlvVGFnKCkubmF0aXZlRWxlbWVudC5jdXJyZW50VGltZSA9IDA7XG4gICAgfSk7XG4gIH1cbiAgZHVyYXRpb25DaGFuZ2UoKSB7XG4gICAgZnJvbUV2ZW50KHRoaXMuYXVkaW9UYWcoKS5uYXRpdmVFbGVtZW50LCAnZHVyYXRpb25jaGFuZ2UnKS5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgIGlmICh0aGlzLmF1ZGlvVGFnKCkubmF0aXZlRWxlbWVudC5kdXJhdGlvbiA9PT0gSW5maW5pdHkpIHJldHVybjtcbiAgICAgIHRoaXMuZHVyYXRpb24uc2V0KHRoaXMuYXVkaW9UYWcoKS5uYXRpdmVFbGVtZW50LmR1cmF0aW9uKTtcbiAgICAgIHRoaXMuZHVyYXRpb25Gb3JtYXQuc2V0KE1hdGguY2VpbCh0aGlzLmF1ZGlvVGFnKCkubmF0aXZlRWxlbWVudC5kdXJhdGlvbikgKiAxMDAwKTtcbiAgICB9KTtcbiAgfVxuICB0aW1lVXBkYXRlKCkge1xuICAgIGZyb21FdmVudCh0aGlzLmF1ZGlvVGFnKCkubmF0aXZlRWxlbWVudCwgJ3RpbWV1cGRhdGUnKS5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgIHRoaXMuY3VycmVudFRpbWUuc2V0KHRoaXMuYXVkaW9UYWcoKS5uYXRpdmVFbGVtZW50LmN1cnJlbnRUaW1lKTtcbiAgICAgIHRoaXMuY3VycmVudFRpbWVGb3JtYXQuc2V0KE1hdGguY2VpbCh0aGlzLmF1ZGlvVGFnKCkubmF0aXZlRWxlbWVudC5jdXJyZW50VGltZSAqIDEwMDApKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGF1ZGlvICNhPjwvYXVkaW8+XG48YXgtcHJlZml4PlxuICA8ZGl2IGNsYXNzPVwiYXgtdGltZS1yYXRlXCI+XG4gICAgQHN3aXRjaCAoYXVkaW9TdGF0ZSgpKSB7XG4gICAgICBAY2FzZSAoJ3BhdXNlZCcpIHtcbiAgICAgICAge3sgY3VycmVudFRpbWVGb3JtYXQoKSB8IGZvcm1hdDogJ3RpbWUtZHVyYXRpb24nIHwgYXN5bmMgfX1cbiAgICAgIH1cbiAgICAgIEBjYXNlICgncGxheWluZycpIHtcbiAgICAgICAge3sgY3VycmVudFRpbWVGb3JtYXQoKSB8IGZvcm1hdDogJ3RpbWUtZHVyYXRpb24nIHwgYXN5bmMgfX1cbiAgICAgIH1cbiAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAge3sgZHVyYXRpb25Gb3JtYXQoKSB8IGZvcm1hdDogJ3RpbWUtZHVyYXRpb24nIHwgYXN5bmMgfX1cbiAgICAgIH1cbiAgICB9XG4gICAgPGJ1dHRvbiBjbGFzcz1cImF4LWF1ZGlvLXNwZWVkXCIgKGNsaWNrKT1cImhhbmRsZVJhdGVDbGljaygpXCI+e3sgYXVkaW9SYXRlKCkgfX1YPC9idXR0b24+XG4gIDwvZGl2PlxuPC9heC1wcmVmaXg+XG48ZGl2IGNsYXNzPVwiYXgtY29udmVyc2F0aW9uLWNvbnRyb2xsZXJcIj5cbiAgQHN3aXRjaCAoYXVkaW9TdGF0ZSgpKSB7XG4gICAgQGNhc2UgKCdwbGF5aW5nJykge1xuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiaGFuZGxlUGF1c2VDbGljaygpXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLXBhdXNlXCI+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICAgIEBjYXNlICgncGF1c2VkJykge1xuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiaGFuZGxlUGxheUNsaWNrKClcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tcGxheVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgfVxuPC9kaXY+XG48YXgtc2xpZGVyIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcigkZXZlbnQpXCIgW21heFZhbHVlXT1cImR1cmF0aW9uKClcIiBbbWluVmFsdWVdPVwiMFwiIFtuZ01vZGVsXT1cImN1cnJlbnRUaW1lKClcIiBjb2xvcj1cInNlY29uZGFyeVwiPiA8L2F4LXNsaWRlcj5cbiJdfQ==
@@ -1,21 +1,48 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, signal } from '@angular/core';
1
+ import { AXPopupService } from '@acorex/components/popup';
2
+ import { Component, afterNextRender, inject, signal } from '@angular/core';
3
3
  import { AXConversationMessageBaseComponent } from '../../conversation.types';
4
+ import { ConversationMessageImagePopupComponent } from '../conversation-message-image-popup/conversation-message-image-popup.component';
4
5
  import * as i0 from "@angular/core";
5
6
  export class ConversationMessageImageComponent extends AXConversationMessageBaseComponent {
6
7
  constructor() {
7
- super(...arguments);
8
+ super();
8
9
  this._imageUrl = signal('');
10
+ this.popup = inject(AXPopupService);
11
+ this._options = {
12
+ header: true,
13
+ footer: false,
14
+ size: 'md',
15
+ draggable: true,
16
+ hasBackdrop: true,
17
+ closeButton: true,
18
+ closeOnBackdropClick: false,
19
+ };
20
+ afterNextRender(() => {
21
+ this._imageUrl.set(this.message?.content);
22
+ });
9
23
  }
10
- ngOnInit() {
11
- this._imageUrl.set(this.message?.content);
12
- console.log(this._imageUrl());
24
+ openPopup() {
25
+ this.popup
26
+ .open(ConversationMessageImagePopupComponent, {
27
+ draggable: this._options.draggable,
28
+ header: this._options.header,
29
+ size: this._options.size,
30
+ hasBackdrop: this._options.hasBackdrop,
31
+ closeButton: this._options.closeButton,
32
+ closeOnBackdropClick: this._options.closeOnBackdropClick,
33
+ data: {
34
+ url: this._imageUrl(),
35
+ },
36
+ })
37
+ .then((c) => {
38
+ console.log(c);
39
+ });
13
40
  }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ConversationMessageImageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: ConversationMessageImageComponent, isStandalone: true, selector: "ax-conversation-message-image", inputs: { message: "message" }, usesInheritance: true, ngImport: i0, template: `<img [src]="_imageUrl()" alt="" />`, isInline: true, styles: ["img{margin-bottom:.5rem;width:100%;border-radius:.75rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ConversationMessageImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
42
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: ConversationMessageImageComponent, selector: "ax-conversation-message-image", inputs: { message: "message" }, usesInheritance: true, ngImport: i0, template: `<img (click)="openPopup()" [src]="_imageUrl()" alt="" /> `, isInline: true, styles: ["img{cursor:pointer;margin-bottom:.5rem;width:100%;border-radius:.75rem}\n"] }); }
16
43
  }
17
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ConversationMessageImageComponent, decorators: [{
18
45
  type: Component,
19
- args: [{ selector: 'ax-conversation-message-image', standalone: true, imports: [CommonModule], template: `<img [src]="_imageUrl()" alt="" />`, inputs: ['message'], styles: ["img{margin-bottom:.5rem;width:100%;border-radius:.75rem}\n"] }]
20
- }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UtaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZS9jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQWdCOUUsTUFBTSxPQUFPLGlDQUFrQyxTQUFRLGtDQUEwQztJQWRqRzs7UUFlWSxjQUFTLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBTWxDO0lBSkMsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDOzhHQU5VLGlDQUFpQztrR0FBakMsaUNBQWlDLGdKQVZsQyxvQ0FBb0MsbUlBRHBDLFlBQVk7OzJGQVdYLGlDQUFpQztrQkFkN0MsU0FBUzsrQkFDRSwrQkFBK0IsY0FDN0IsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFlBQ2Isb0NBQW9DLFVBUXRDLENBQUMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uTWVzc2FnZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb252ZXJzYXRpb24udHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYDxpbWcgW3NyY109XCJfaW1hZ2VVcmwoKVwiIGFsdD1cIlwiIC8+YCxcbiAgc3R5bGVzOiBgXG4gICAgaW1nIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICB9XG4gIGAsXG4gIGlucHV0czogWydtZXNzYWdlJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvbnZlcnNhdGlvbk1lc3NhZ2VJbWFnZUNvbXBvbmVudCBleHRlbmRzIEFYQ29udmVyc2F0aW9uTWVzc2FnZUJhc2VDb21wb25lbnQ8c3RyaW5nPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3RlY3RlZCBfaW1hZ2VVcmwgPSBzaWduYWwoJycpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2ltYWdlVXJsLnNldCh0aGlzLm1lc3NhZ2U/LmNvbnRlbnQpO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuX2ltYWdlVXJsKCkpO1xuICB9XG59XG4iXX0=
46
+ args: [{ selector: 'ax-conversation-message-image', template: `<img (click)="openPopup()" [src]="_imageUrl()" alt="" /> `, inputs: ['message'], styles: ["img{cursor:pointer;margin-bottom:.5rem;width:100%;border-radius:.75rem}\n"] }]
47
+ }], ctorParameters: () => [] });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UtaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZS9jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBbUIsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLGdGQUFnRixDQUFDOztBQWV4SSxNQUFNLE9BQU8saUNBQWtDLFNBQVEsa0NBQTBDO0lBYy9GO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFkQSxjQUFTLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLFVBQUssR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTdDLGFBQVEsR0FBRztZQUNuQixNQUFNLEVBQUUsSUFBSTtZQUNaLE1BQU0sRUFBRSxLQUFLO1lBQ2IsSUFBSSxFQUFFLElBQUk7WUFDVixTQUFTLEVBQUUsSUFBSTtZQUNmLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLG9CQUFvQixFQUFFLEtBQUs7U0FDNUIsQ0FBQztRQUlBLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLEtBQUs7YUFDUCxJQUFJLENBQUMsc0NBQXNDLEVBQUU7WUFDNUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUztZQUNsQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO1lBQzVCLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQXVCO1lBQzNDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVc7WUFDdEMsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVztZQUN0QyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLG9CQUFvQjtZQUN4RCxJQUFJLEVBQUU7Z0JBQ0osR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUU7YUFDdEI7U0FDRixDQUFDO2FBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0FyQ1UsaUNBQWlDO2tHQUFqQyxpQ0FBaUMsNEhBWGxDLDJEQUEyRDs7MkZBVzFELGlDQUFpQztrQkFiN0MsU0FBUzsrQkFDRSwrQkFBK0IsWUFDL0IsMkRBQTJELFVBUzdELENBQUMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQb3B1cFNlcnZpY2UsIEFYUG9wdXBTaXplVHlwZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIGFmdGVyTmV4dFJlbmRlciwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uTWVzc2FnZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb252ZXJzYXRpb24udHlwZXMnO1xuaW1wb3J0IHsgQ29udmVyc2F0aW9uTWVzc2FnZUltYWdlUG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi9jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZS1wb3B1cC9jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZS1wb3B1cC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZScsXG4gIHRlbXBsYXRlOiBgPGltZyAoY2xpY2spPVwib3BlblBvcHVwKClcIiBbc3JjXT1cIl9pbWFnZVVybCgpXCIgYWx0PVwiXCIgLz4gYCxcbiAgc3R5bGVzOiBgXG4gICAgaW1nIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICB9XG4gIGAsXG4gIGlucHV0czogWydtZXNzYWdlJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvbnZlcnNhdGlvbk1lc3NhZ2VJbWFnZUNvbXBvbmVudCBleHRlbmRzIEFYQ29udmVyc2F0aW9uTWVzc2FnZUJhc2VDb21wb25lbnQ8c3RyaW5nPiB7XG4gIHByb3RlY3RlZCBfaW1hZ2VVcmwgPSBzaWduYWwoJycpO1xuICBwcml2YXRlIHBvcHVwOiBBWFBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIF9vcHRpb25zID0ge1xuICAgIGhlYWRlcjogdHJ1ZSxcbiAgICBmb290ZXI6IGZhbHNlLFxuICAgIHNpemU6ICdtZCcsXG4gICAgZHJhZ2dhYmxlOiB0cnVlLFxuICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgIGNsb3NlT25CYWNrZHJvcENsaWNrOiBmYWxzZSxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICB0aGlzLl9pbWFnZVVybC5zZXQodGhpcy5tZXNzYWdlPy5jb250ZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW5Qb3B1cCgpIHtcbiAgICB0aGlzLnBvcHVwXG4gICAgICAub3BlbihDb252ZXJzYXRpb25NZXNzYWdlSW1hZ2VQb3B1cENvbXBvbmVudCwge1xuICAgICAgICBkcmFnZ2FibGU6IHRoaXMuX29wdGlvbnMuZHJhZ2dhYmxlLFxuICAgICAgICBoZWFkZXI6IHRoaXMuX29wdGlvbnMuaGVhZGVyLFxuICAgICAgICBzaXplOiB0aGlzLl9vcHRpb25zLnNpemUgYXMgQVhQb3B1cFNpemVUeXBlLFxuICAgICAgICBoYXNCYWNrZHJvcDogdGhpcy5fb3B0aW9ucy5oYXNCYWNrZHJvcCxcbiAgICAgICAgY2xvc2VCdXR0b246IHRoaXMuX29wdGlvbnMuY2xvc2VCdXR0b24sXG4gICAgICAgIGNsb3NlT25CYWNrZHJvcENsaWNrOiB0aGlzLl9vcHRpb25zLmNsb3NlT25CYWNrZHJvcENsaWNrLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdXJsOiB0aGlzLl9pbWFnZVVybCgpLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC50aGVuKChjKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKGMpO1xuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { afterNextRender, Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ConversationMessageImagePopupComponent {
4
+ constructor() {
5
+ afterNextRender(() => {
6
+ console.log(this.url);
7
+ });
8
+ }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ConversationMessageImagePopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: ConversationMessageImagePopupComponent, selector: "ax-conversation-message-image-popup", ngImport: i0, template: ` <div class="ax-image-popup-container"><img class="ax-image-popup" [src]="url" alt="" /></div>`, isInline: true, styles: [".ax-image-popup-container{display:flex;justify-content:center;align-items:center}.ax-image-popup{width:100%;height:auto;object-fit:cover}\n"] }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ConversationMessageImagePopupComponent, decorators: [{
13
+ type: Component,
14
+ args: [{ selector: 'ax-conversation-message-image-popup', template: ` <div class="ax-image-popup-container"><img class="ax-image-popup" [src]="url" alt="" /></div>`, styles: [".ax-image-popup-container{display:flex;justify-content:center;align-items:center}.ax-image-popup{width:100%;height:auto;object-fit:cover}\n"] }]
15
+ }], ctorParameters: () => [] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UtaW1hZ2UtcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZS1wb3B1cC9jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZS1wb3B1cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTzNELE1BQU0sT0FBTyxzQ0FBc0M7SUFHakQ7UUFDRSxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FQVSxzQ0FBc0M7a0dBQXRDLHNDQUFzQywyRUFIdkMsZ0dBQWdHOzsyRkFHL0Ysc0NBQXNDO2tCQUxsRCxTQUFTOytCQUNFLHFDQUFxQyxZQUNyQyxnR0FBZ0ciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZS1wb3B1cCcsXG4gIHRlbXBsYXRlOiBgIDxkaXYgY2xhc3M9XCJheC1pbWFnZS1wb3B1cC1jb250YWluZXJcIj48aW1nIGNsYXNzPVwiYXgtaW1hZ2UtcG9wdXBcIiBbc3JjXT1cInVybFwiIGFsdD1cIlwiIC8+PC9kaXY+YCxcbiAgc3R5bGVVcmw6ICcuL2NvbnZlcnNhdGlvbi1tZXNzYWdlLWltYWdlLXBvcHVwLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQ29udmVyc2F0aW9uTWVzc2FnZUltYWdlUG9wdXBDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgdXJsOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMudXJsKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,4 +1,3 @@
1
- import { CommonModule } from '@angular/common';
2
1
  import { Component, signal } from '@angular/core';
3
2
  import { AXConversationMessageBaseComponent } from '../../conversation.types';
4
3
  import * as i0 from "@angular/core";
@@ -12,10 +11,10 @@ export class ConversationMessageVideoComponent extends AXConversationMessageBase
12
11
  console.log(this._videoUrl());
13
12
  }
14
13
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ConversationMessageVideoComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: ConversationMessageVideoComponent, isStandalone: true, selector: "ax-conversation-message-video", usesInheritance: true, ngImport: i0, template: `<video controls [src]="_videoUrl()"></video>`, isInline: true, styles: ["video{margin-bottom:.5rem;width:100%;border-radius:.75rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: ConversationMessageVideoComponent, selector: "ax-conversation-message-video", usesInheritance: true, ngImport: i0, template: `<video controls [src]="_videoUrl()"></video>`, isInline: true, styles: ["video{margin-bottom:.5rem;width:100%;border-radius:.75rem}\n"] }); }
16
15
  }
17
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ConversationMessageVideoComponent, decorators: [{
18
17
  type: Component,
19
- args: [{ selector: 'ax-conversation-message-video', standalone: true, imports: [CommonModule], template: `<video controls [src]="_videoUrl()"></video>`, styles: ["video{margin-bottom:.5rem;width:100%;border-radius:.75rem}\n"] }]
18
+ args: [{ selector: 'ax-conversation-message-video', template: `<video controls [src]="_videoUrl()"></video>`, styles: ["video{margin-bottom:.5rem;width:100%;border-radius:.75rem}\n"] }]
20
19
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UtdmlkZW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS12aWRlby9jb252ZXJzYXRpb24tbWVzc2FnZS12aWRlby5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQWU5RSxNQUFNLE9BQU8saUNBQWtDLFNBQVEsa0NBQTBDO0lBYmpHOztRQWNZLGNBQVMsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7S0FNbEM7SUFKQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMxQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OEdBTlUsaUNBQWlDO2tHQUFqQyxpQ0FBaUMsZ0hBVGxDLDhDQUE4QyxxSUFEOUMsWUFBWTs7MkZBVVgsaUNBQWlDO2tCQWI3QyxTQUFTOytCQUNFLCtCQUErQixjQUM3QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUFDYiw4Q0FBOEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25NZXNzYWdlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnZlcnNhdGlvbi50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnZlcnNhdGlvbi1tZXNzYWdlLXZpZGVvJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgPHZpZGVvIGNvbnRyb2xzIFtzcmNdPVwiX3ZpZGVvVXJsKClcIj48L3ZpZGVvPmAsXG4gIHN0eWxlczogYFxuICAgIHZpZGVvIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICB9XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIENvbnZlcnNhdGlvbk1lc3NhZ2VWaWRlb0NvbXBvbmVudCBleHRlbmRzIEFYQ29udmVyc2F0aW9uTWVzc2FnZUJhc2VDb21wb25lbnQ8c3RyaW5nPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3RlY3RlZCBfdmlkZW9VcmwgPSBzaWduYWwoJycpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZGVvVXJsLnNldCh0aGlzLm1lc3NhZ2U/LmNvbnRlbnQpO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuX3ZpZGVvVXJsKCkpO1xuICB9XG59XG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UtdmlkZW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS12aWRlby9jb252ZXJzYXRpb24tbWVzc2FnZS12aWRlby5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBYTlFLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxrQ0FBMEM7SUFYakc7O1FBWVksY0FBUyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztLQU1sQztJQUpDLFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQzs4R0FOVSxpQ0FBaUM7a0dBQWpDLGlDQUFpQyw0RkFUbEMsOENBQThDOzsyRkFTN0MsaUNBQWlDO2tCQVg3QyxTQUFTOytCQUNFLCtCQUErQixZQUMvQiw4Q0FBOEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbk1lc3NhZ2VCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udmVyc2F0aW9uLnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtY29udmVyc2F0aW9uLW1lc3NhZ2UtdmlkZW8nLFxuICB0ZW1wbGF0ZTogYDx2aWRlbyBjb250cm9scyBbc3JjXT1cIl92aWRlb1VybCgpXCI+PC92aWRlbz5gLFxuICBzdHlsZXM6IGBcbiAgICB2aWRlbyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgfVxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBDb252ZXJzYXRpb25NZXNzYWdlVmlkZW9Db21wb25lbnQgZXh0ZW5kcyBBWENvbnZlcnNhdGlvbk1lc3NhZ2VCYXNlQ29tcG9uZW50PHN0cmluZz4gaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm90ZWN0ZWQgX3ZpZGVvVXJsID0gc2lnbmFsKCcnKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl92aWRlb1VybC5zZXQodGhpcy5tZXNzYWdlPy5jb250ZW50KTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLl92aWRlb1VybCgpKTtcbiAgfVxufVxuIl19
@@ -7,6 +7,8 @@ import { AXDecoratorModule } from '@acorex/components/decorators';
7
7
  import { AXDropdownModule } from '@acorex/components/dropdown';
8
8
  import { AXLoadingModule } from '@acorex/components/loading';
9
9
  import { AXPopoverModule } from '@acorex/components/popover';
10
+ import { AXPopupService } from '@acorex/components/popup';
11
+ import { AXSliderModule } from '@acorex/components/slider';
10
12
  import { AXDateTimeModule } from '@acorex/core/date-time';
11
13
  import { AXFileModule } from '@acorex/core/file';
12
14
  import { AXFormatModule } from '@acorex/core/format';
@@ -37,6 +39,9 @@ const COMPONENT = [
37
39
  AXConversationAudioMessageComponent,
38
40
  AXConversationFileMessageComponent,
39
41
  AXConversationContainerComponent,
42
+ ConversationMessageAudioComponent,
43
+ ConversationMessageImageComponent,
44
+ ConversationMessageVideoComponent,
40
45
  ];
41
46
  const MODULES = [
42
47
  CommonModule,
@@ -56,6 +61,7 @@ const MODULES = [
56
61
  AXAvatarModule,
57
62
  AXPopoverModule,
58
63
  AXFileModule,
64
+ AXSliderModule,
59
65
  ];
60
66
  export class AXConversationModule {
61
67
  static forRoot(config) {
@@ -131,7 +137,10 @@ export class AXConversationModule {
131
137
  AXConversationTextMessageComponent,
132
138
  AXConversationAudioMessageComponent,
133
139
  AXConversationFileMessageComponent,
134
- AXConversationContainerComponent], imports: [CommonModule,
140
+ AXConversationContainerComponent,
141
+ ConversationMessageAudioComponent,
142
+ ConversationMessageImageComponent,
143
+ ConversationMessageVideoComponent], imports: [CommonModule,
135
144
  FormsModule,
136
145
  AsyncPipe,
137
146
  AXRippleDirective,
@@ -147,14 +156,18 @@ export class AXConversationModule {
147
156
  AXLoadingModule,
148
157
  AXAvatarModule,
149
158
  AXPopoverModule,
150
- AXFileModule], exports: [AXConversationViewComponent,
159
+ AXFileModule,
160
+ AXSliderModule], exports: [AXConversationViewComponent,
151
161
  AXConversationInputComponent,
152
162
  AXConversationMessageComponent,
153
163
  AXConversationTextMessageComponent,
154
164
  AXConversationAudioMessageComponent,
155
165
  AXConversationFileMessageComponent,
156
- AXConversationContainerComponent] }); }
157
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXConversationModule, providers: [AXRecordingService, AXConversationService], imports: [CommonModule,
166
+ AXConversationContainerComponent,
167
+ ConversationMessageAudioComponent,
168
+ ConversationMessageImageComponent,
169
+ ConversationMessageVideoComponent] }); }
170
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXConversationModule, providers: [AXRecordingService, AXConversationService, AXPopupService], imports: [CommonModule,
158
171
  FormsModule,
159
172
  AXButtonModule,
160
173
  AXDecoratorModule,
@@ -167,7 +180,8 @@ export class AXConversationModule {
167
180
  AXLoadingModule,
168
181
  AXAvatarModule,
169
182
  AXPopoverModule,
170
- AXFileModule] }); }
183
+ AXFileModule,
184
+ AXSliderModule] }); }
171
185
  }
172
186
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXConversationModule, decorators: [{
173
187
  type: NgModule,
@@ -175,7 +189,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
175
189
  declarations: [...COMPONENT],
176
190
  imports: [...MODULES],
177
191
  exports: [...COMPONENT],
178
- providers: [AXRecordingService, AXConversationService],
192
+ providers: [AXRecordingService, AXConversationService, AXPopupService],
179
193
  }]
180
194
  }], ctorParameters: () => [{ type: undefined, decorators: [{
181
195
  type: Optional
@@ -183,4 +197,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
183
197
  type: Inject,
184
198
  args: ['AXChatModuleFactory']
185
199
  }] }] });
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFl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QWU7WUFDZixjQUFjO1lBQ2QsZUFBZTtZQUNmLFlBQVksYUF6QlosMkJBQTJCO1lBQzNCLDRCQUE0QjtZQUM1Qiw4QkFBOEI7WUFDOUIsa0NBQWtDO1lBQ2xDLG1DQUFtQztZQUNuQyxrQ0FBa0M7WUFDbEMsZ0NBQWdDOytHQTRCckIsb0JBQW9CLGFBRnBCLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLENBQUMsWUF2QnRELFlBQVk7WUFDWixXQUFXO1lBR1gsY0FBYztZQUNkLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLGNBQWM7WUFDZCxpQkFBaUI7WUFDakIsd0JBQXdCO1lBQ3hCLGdCQUFnQjtZQUVoQixlQUFlO1lBQ2YsY0FBYztZQUNkLGVBQWU7WUFDZixZQUFZOzsyRkFTRCxvQkFBb0I7a0JBTmhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7b0JBQzVCLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO29CQUNyQixPQUFPLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDdkIsU0FBUyxFQUFFLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLENBQUM7aUJBQ3ZEOzswQkFpRWMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEF1ZGlvV2F2ZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9hdWRpby13YXZlJztcbmltcG9ydCB7IEFYQXZhdGFyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2F2YXRhcic7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhDaXJjdWxhclByb2dyZXNzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NpcmN1bGFyLXByb2dyZXNzJztcbmltcG9ydCB7IEFYUmlwcGxlRGlyZWN0aXZlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgQVhEYXRlVGltZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS9kYXRlLXRpbWUnO1xuaW1wb3J0IHsgQVhGaWxlTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2ZpbGUnO1xuaW1wb3J0IHsgQVhGb3JtYXRNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvZm9ybWF0JztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQ2RrUG9ydGFsT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbkNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vY29udmVyc2F0aW9uLWNvbnRhaW5lci9jb252ZXJzYXRpb24tY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb252ZXJzYXRpb24taW5wdXQvY29udmVyc2F0aW9uLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbk1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbnZlcnNhdGlvbi1tZXNzYWdlL2NvbnZlcnNhdGlvbi1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb252ZXJzYXRpb25NZXNzYWdlQXVkaW9Db21wb25lbnQgfSBmcm9tICcuL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS1hdWRpby9jb252ZXJzYXRpb24tbWVzc2FnZS1hdWRpby5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25GaWxlTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vY29udmVyc2F0aW9uLW1lc3NhZ2VzL2NvbnZlcnNhdGlvbi1tZXNzYWdlLWZpbGUvY29udmVyc2F0aW9uLW1lc3NhZ2UtZmlsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29udmVyc2F0aW9uTWVzc2FnZUltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb252ZXJzYXRpb24tbWVzc2FnZXMvY29udmVyc2F0aW9uLW1lc3NhZ2UtaW1hZ2UvY29udmVyc2F0aW9uLW1lc3NhZ2UtaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uVGV4dE1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS10ZXh0L2NvbnZlcnNhdGlvbi1tZXNzYWdlLXRleHQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbnZlcnNhdGlvbk1lc3NhZ2VWaWRlb0NvbXBvbmVudCB9IGZyb20gJy4vY29udmVyc2F0aW9uLW1lc3NhZ2VzL2NvbnZlcnNhdGlvbi1tZXNzYWdlLXZpZGVvL2NvbnZlcnNhdGlvbi1tZXNzYWdlLXZpZGVvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbkF1ZGlvTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vY29udmVyc2F0aW9uLW1lc3NhZ2VzL2NvbnZlcnNhdGlvbi1tZXNzYWdlLXZvaWNlL2NvbnZlcnNhdGlvbi1tZXNzYWdlLXZvaWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvblZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbnZlcnNhdGlvbi12aWV3L2NvbnZlcnNhdGlvbi12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbk1lc3NhZ2VUeXBlIH0gZnJvbSAnLi9jb252ZXJzYXRpb24udHlwZXMnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25NZXNzYWdlVHlwZVJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvY29udmVyc2F0aW9uLW1lc3NhZ2UtdHlwZS1yZWdpc3RyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvY29udmVyc2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhSZWNvcmRpbmdTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9yZWNvcmRpbmcuc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhDaGF0TW9kdWxlQ29uZmlnIHtcbiAgdHlwZXM6IEFYQ29udmVyc2F0aW9uTWVzc2FnZVR5cGVbXTtcbn1cblxuY29uc3QgQ09NUE9ORU5UID0gW1xuICBBWENvbnZlcnNhdGlvblZpZXdDb21wb25lbnQsXG4gIEFYQ29udmVyc2F0aW9uSW5wdXRDb21wb25lbnQsXG4gIEFYQ29udmVyc2F0aW9uTWVzc2FnZUNvbXBvbmVudCxcbiAgQVhDb252ZXJzYXRpb25UZXh0TWVzc2FnZUNvbXBvbmVudCxcbiAgQVhDb252ZXJzYXRpb25BdWRpb01lc3NhZ2VDb21wb25lbnQsXG4gIEFYQ29udmVyc2F0aW9uRmlsZU1lc3NhZ2VDb21wb25lbnQsXG4gIEFYQ29udmVyc2F0aW9uQ29udGFpbmVyQ29tcG9uZW50LFxuXTtcbmNvbnN0IE1PRFVMRVMgPSBbXG4gIENvbW1vbk1vZHVsZSxcbiAgRm9ybXNNb2R1bGUsXG4gIEFzeW5jUGlwZSxcbiAgQVhSaXBwbGVEaXJlY3RpdmUsXG4gIEFYQnV0dG9uTW9kdWxlLFxuICBBWERlY29yYXRvck1vZHVsZSxcbiAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgQVhEcm9wZG93bk1vZHVsZSxcbiAgQVhGb3JtYXRNb2R1bGUsXG4gIEFYQXVkaW9XYXZlTW9kdWxlLFxuICBBWENpcmN1bGFyUHJvZ3Jlc3NNb2R1bGUsXG4gIEFYRGF0ZVRpbWVNb2R1bGUsXG4gIENka1BvcnRhbE91dGxldCxcbiAgQVhMb2FkaW5nTW9kdWxlLFxuICBBWEF2YXRhck1vZHVsZSxcbiAgQVhQb3BvdmVyTW9kdWxlLFxuICBBWEZpbGVNb2R1bGUsXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFsuLi5DT01QT05FTlRdLFxuICBpbXBvcnRzOiBbLi4uTU9EVUxFU10sXG4gIGV4cG9ydHM6IFsuLi5DT01QT05FTlRdLFxuICBwcm92aWRlcnM6IFtBWFJlY29yZGluZ1NlcnZpY2UsIEFYQ29udmVyc2F0aW9uU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29udmVyc2F0aW9uTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnPzogQVhDaGF0TW9kdWxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBWENvbnZlcnNhdGlvbk1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQVhDb252ZXJzYXRpb25Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6ICdBWENoYXRNb2R1bGVGYWN0b3J5JyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiAocmVnaXN0cnk6IEFYQ29udmVyc2F0aW9uTWVzc2FnZVR5cGVSZWdpc3RyeVNlcnZpY2UpID0+ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChjb25maWc/LnR5cGVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXIoLi4uY29uZmlnLnR5cGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgICAgICAgICAgICAgbmFtZTogJ3RleHQnLFxuICAgICAgICAgICAgICBjb21wb25lbnQ6IEFYQ29udmVyc2F0aW9uVGV4dE1lc3NhZ2VDb21wb25lbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgICAgICAgICAgICAgbmFtZTogJ3ZvaWNlJyxcbiAgICAgICAgICAgICAgY29tcG9uZW50OiBBWENvbnZlcnNhdGlvbkF1ZGlvTWVzc2FnZUNvbXBvbmVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXIoe1xuICAgICAgICAgICAgICBuYW1lOiAnZmlsZScsXG4gICAgICAgICAgICAgIGNvbXBvbmVudDogQVhDb252ZXJzYXRpb25GaWxlTWVzc2FnZUNvbXBvbmVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXIoe1xuICAgICAgICAgICAgICBuYW1lOiAnYXVkaW8nLFxuICAgICAgICAgICAgICBjb21wb25lbnQ6IENvbnZlcnNhdGlvbk1lc3NhZ2VBdWRpb0NvbXBvbmVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXIoe1xuICAgICAgICAgICAgICBuYW1lOiAnaW1hZ2UnLFxuICAgICAgICAgICAgICBjb21wb25lbnQ6IENvbnZlcnNhdGlvbk1lc3NhZ2VJbWFnZUNvbXBvbmVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXIoe1xuICAgICAgICAgICAgICBuYW1lOiAndmlkZW8nLFxuICAgICAgICAgICAgICBjb21wb25lbnQ6IENvbnZlcnNhdGlvbk1lc3NhZ2VWaWRlb0NvbXBvbmVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVwczogW0FYQ29udmVyc2F0aW9uTWVzc2FnZVR5cGVSZWdpc3RyeVNlcnZpY2VdLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGZvckNoaWxkKGNvbmZpZz86IEFYQ2hhdE1vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QVhDb252ZXJzYXRpb25Nb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFYQ29udmVyc2F0aW9uTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiAnQVhQV29ya2Zsb3dNb2R1bGVGYWN0b3J5JyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiAocmVnaXN0cnk6IEFYQ29udmVyc2F0aW9uTWVzc2FnZVR5cGVSZWdpc3RyeVNlcnZpY2UpID0+ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChjb25maWc/LnR5cGVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXIoLi4uY29uZmlnLnR5cGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGRlcHM6IFtBWENvbnZlcnNhdGlvbk1lc3NhZ2VUeXBlUmVnaXN0cnlTZXJ2aWNlXSxcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KCdBWENoYXRNb2R1bGVGYWN0b3J5JykgaW5zdGFuY2VzOiBhbnlbXSkge1xuICAgIGluc3RhbmNlcz8uZm9yRWFjaCgoZikgPT4ge1xuICAgICAgZigpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVB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QztZQUNqQyxpQ0FBaUMsYUFHakMsWUFBWTtZQUNaLFdBQVc7WUFDWCxTQUFTO1lBQ1QsaUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLGdCQUFnQjtZQUNoQixjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLHdCQUF3QjtZQUN4QixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLGVBQWU7WUFDZixjQUFjO1lBQ2QsZUFBZTtZQUNmLFlBQVk7WUFDWixjQUFjLGFBN0JkLDJCQUEyQjtZQUMzQiw0QkFBNEI7WUFDNUIsOEJBQThCO1lBQzlCLGtDQUFrQztZQUNsQyxtQ0FBbUM7WUFDbkMsa0NBQWtDO1lBQ2xDLGdDQUFnQztZQUNoQyxpQ0FBaUM7WUFDakMsaUNBQWlDO1lBQ2pDLGlDQUFpQzsrR0E2QnRCLG9CQUFvQixhQUZwQixDQUFDLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLGNBQWMsQ0FBQyxZQXhCdEUsWUFBWTtZQUNaLFdBQVc7WUFHWCxjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixnQkFBZ0I7WUFDaEIsY0FBYztZQUNkLGlCQUFpQjtZQUNqQix3QkFBd0I7WUFDeEIsZ0JBQWdCO1lBRWhCLGVBQWU7WUFDZixjQUFjO1lBQ2QsZUFBZTtZQUNmLFlBQVk7WUFDWixjQUFjOzsyRkFTSCxvQkFBb0I7a0JBTmhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7b0JBQzVCLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO29CQUNyQixPQUFPLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDdkIsU0FBUyxFQUFFLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxDQUFDO2lCQUN2RTs7MEJBaUVjLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhBdWRpb1dhdmVNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYXVkaW8td2F2ZSc7XG5pbXBvcnQgeyBBWEF2YXRhck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9hdmF0YXInO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYQ2lyY3VsYXJQcm9ncmVzc01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jaXJjdWxhci1wcm9ncmVzcyc7XG5pbXBvcnQgeyBBWFJpcHBsZURpcmVjdGl2ZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFYTG9hZGluZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYUG9wb3Zlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3BvdmVyJztcbmltcG9ydCB7IEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYU2xpZGVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NsaWRlcic7XG5pbXBvcnQgeyBBWERhdGVUaW1lTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2RhdGUtdGltZSc7XG5pbXBvcnQgeyBBWEZpbGVNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvZmlsZSc7XG5pbXBvcnQgeyBBWEZvcm1hdE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBDZGtQb3J0YWxPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb252ZXJzYXRpb24tY29udGFpbmVyL2NvbnZlcnNhdGlvbi1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbnZlcnNhdGlvbi1pbnB1dC9jb252ZXJzYXRpb24taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vY29udmVyc2F0aW9uLW1lc3NhZ2UvY29udmVyc2F0aW9uLW1lc3NhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IENvbnZlcnNhdGlvbk1lc3NhZ2VBdWRpb0NvbXBvbmVudCB9IGZyb20gJy4vY29udmVyc2F0aW9uLW1lc3NhZ2VzL2NvbnZlcnNhdGlvbi1tZXNzYWdlLWF1ZGlvL2NvbnZlcnNhdGlvbi1tZXNzYWdlLWF1ZGlvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbkZpbGVNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb252ZXJzYXRpb24tbWVzc2FnZXMvY29udmVyc2F0aW9uLW1lc3NhZ2UtZmlsZS9jb252ZXJzYXRpb24tbWVzc2FnZS1maWxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb252ZXJzYXRpb25NZXNzYWdlSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZS9jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25UZXh0TWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vY29udmVyc2F0aW9uLW1lc3NhZ2VzL2NvbnZlcnNhdGlvbi1tZXNzYWdlLXRleHQvY29udmVyc2F0aW9uLW1lc3NhZ2UtdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29udmVyc2F0aW9uTWVzc2FnZVZpZGVvQ29tcG9uZW50IH0gZnJvbSAnLi9jb252ZXJzYXRpb24tbWVzc2FnZXMvY29udmVyc2F0aW9uLW1lc3NhZ2UtdmlkZW8vY29udmVyc2F0aW9uLW1lc3NhZ2UtdmlkZW8uY29tcG9uZW50JztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uQXVkaW9NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb252ZXJzYXRpb24tbWVzc2FnZXMvY29udmVyc2F0aW9uLW1lc3NhZ2Utdm9pY2UvY29udmVyc2F0aW9uLW1lc3NhZ2Utdm9pY2UuY29tcG9uZW50JztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29udmVyc2F0aW9uLXZpZXcvY29udmVyc2F0aW9uLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uTWVzc2FnZVR5cGUgfSBmcm9tICcuL2NvbnZlcnNhdGlvbi50eXBlcyc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbk1lc3NhZ2VUeXBlUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9jb252ZXJzYXRpb24tbWVzc2FnZS10eXBlLXJlZ2lzdHJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9jb252ZXJzYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBBWFJlY29yZGluZ1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3JlY29yZGluZy5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWENoYXRNb2R1bGVDb25maWcge1xuICB0eXBlczogQVhDb252ZXJzYXRpb25NZXNzYWdlVHlwZVtdO1xufVxuXG5jb25zdCBDT01QT05FTlQgPSBbXG4gIEFYQ29udmVyc2F0aW9uVmlld0NvbXBvbmVudCxcbiAgQVhDb252ZXJzYXRpb25JbnB1dENvbXBvbmVudCxcbiAgQVhDb252ZXJzYXRpb25NZXNzYWdlQ29tcG9uZW50LFxuICBBWENvbnZlcnNhdGlvblRleHRNZXNzYWdlQ29tcG9uZW50LFxuICBBWENvbnZlcnNhdGlvbkF1ZGlvTWVzc2FnZUNvbXBvbmVudCxcbiAgQVhDb252ZXJzYXRpb25GaWxlTWVzc2FnZUNvbXBvbmVudCxcbiAgQVhDb252ZXJzYXRpb25Db250YWluZXJDb21wb25lbnQsXG4gIENvbnZlcnNhdGlvbk1lc3NhZ2VBdWRpb0NvbXBvbmVudCxcbiAgQ29udmVyc2F0aW9uTWVzc2FnZUltYWdlQ29tcG9uZW50LFxuICBDb252ZXJzYXRpb25NZXNzYWdlVmlkZW9Db21wb25lbnQsXG5dO1xuY29uc3QgTU9EVUxFUyA9IFtcbiAgQ29tbW9uTW9kdWxlLFxuICBGb3Jtc01vZHVsZSxcbiAgQXN5bmNQaXBlLFxuICBBWFJpcHBsZURpcmVjdGl2ZSxcbiAgQVhCdXR0b25Nb2R1bGUsXG4gIEFYRGVjb3JhdG9yTW9kdWxlLFxuICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICBBWERyb3Bkb3duTW9kdWxlLFxuICBBWEZvcm1hdE1vZHVsZSxcbiAgQVhBdWRpb1dhdmVNb2R1bGUsXG4gIEFYQ2lyY3VsYXJQcm9ncmVzc01vZHVsZSxcbiAgQVhEYXRlVGltZU1vZHVsZSxcbiAgQ2RrUG9ydGFsT3V0bGV0LFxuICBBWExvYWRpbmdNb2R1bGUsXG4gIEFYQXZhdGFyTW9kdWxlLFxuICBBWFBvcG92ZXJNb2R1bGUsXG4gIEFYRmlsZU1vZHVsZSxcbiAgQVhTbGlkZXJNb2R1bGUsXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFsuLi5DT01QT05FTlRdLFxuICBpbXBvcnRzOiBbLi4uTU9EVUxFU10sXG4gIGV4cG9ydHM6IFsuLi5DT01QT05FTlRdLFxuICBwcm92aWRlcnM6IFtBWFJlY29yZGluZ1NlcnZpY2UsIEFYQ29udmVyc2F0aW9uU2VydmljZSwgQVhQb3B1cFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnZlcnNhdGlvbk1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZz86IEFYQ2hhdE1vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QVhDb252ZXJzYXRpb25Nb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFYQ29udmVyc2F0aW9uTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiAnQVhDaGF0TW9kdWxlRmFjdG9yeScsXG4gICAgICAgICAgdXNlRmFjdG9yeTogKHJlZ2lzdHJ5OiBBWENvbnZlcnNhdGlvbk1lc3NhZ2VUeXBlUmVnaXN0cnlTZXJ2aWNlKSA9PiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoY29uZmlnPy50eXBlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKC4uLmNvbmZpZy50eXBlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWdpc3RyeS5yZWdpc3Rlcih7XG4gICAgICAgICAgICAgIG5hbWU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgY29tcG9uZW50OiBBWENvbnZlcnNhdGlvblRleHRNZXNzYWdlQ29tcG9uZW50LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZWdpc3RyeS5yZWdpc3Rlcih7XG4gICAgICAgICAgICAgIG5hbWU6ICd2b2ljZScsXG4gICAgICAgICAgICAgIGNvbXBvbmVudDogQVhDb252ZXJzYXRpb25BdWRpb01lc3NhZ2VDb21wb25lbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgICAgICAgICAgICAgbmFtZTogJ2ZpbGUnLFxuICAgICAgICAgICAgICBjb21wb25lbnQ6IEFYQ29udmVyc2F0aW9uRmlsZU1lc3NhZ2VDb21wb25lbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgICAgICAgICAgICAgbmFtZTogJ2F1ZGlvJyxcbiAgICAgICAgICAgICAgY29tcG9uZW50OiBDb252ZXJzYXRpb25NZXNzYWdlQXVkaW9Db21wb25lbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgICAgICAgICAgICAgbmFtZTogJ2ltYWdlJyxcbiAgICAgICAgICAgICAgY29tcG9uZW50OiBDb252ZXJzYXRpb25NZXNzYWdlSW1hZ2VDb21wb25lbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgICAgICAgICAgICAgbmFtZTogJ3ZpZGVvJyxcbiAgICAgICAgICAgICAgY29tcG9uZW50OiBDb252ZXJzYXRpb25NZXNzYWdlVmlkZW9Db21wb25lbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRlcHM6IFtBWENvbnZlcnNhdGlvbk1lc3NhZ2VUeXBlUmVnaXN0cnlTZXJ2aWNlXSxcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBmb3JDaGlsZChjb25maWc/OiBBWENoYXRNb2R1bGVDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFYQ29udmVyc2F0aW9uTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBWENvbnZlcnNhdGlvbk1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogJ0FYUFdvcmtmbG93TW9kdWxlRmFjdG9yeScsXG4gICAgICAgICAgdXNlRmFjdG9yeTogKHJlZ2lzdHJ5OiBBWENvbnZlcnNhdGlvbk1lc3NhZ2VUeXBlUmVnaXN0cnlTZXJ2aWNlKSA9PiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoY29uZmlnPy50eXBlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKC4uLmNvbmZpZy50eXBlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBkZXBzOiBbQVhDb252ZXJzYXRpb25NZXNzYWdlVHlwZVJlZ2lzdHJ5U2VydmljZV0sXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdCgnQVhDaGF0TW9kdWxlRmFjdG9yeScpIGluc3RhbmNlczogYW55W10pIHtcbiAgICBpbnN0YW5jZXM/LmZvckVhY2goKGYpID0+IHtcbiAgICAgIGYoKTtcbiAgICB9KTtcbiAgfVxufVxuIl19