@acorex/components 17.0.15 → 17.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/conversation/index.d.ts +12 -0
 - package/{chat/lib/chat-input/chat-input.component.d.ts → conversation/lib/conversation-input/conversation-input.component.d.ts} +4 -4
 - package/conversation/lib/conversation-message/conversation-message.component.d.ts +16 -0
 - package/conversation/lib/conversation-messages/conversation-message-text.component.d.ts +9 -0
 - 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
 - package/conversation/lib/conversation-view/conversation-view.component.d.ts +10 -0
 - package/conversation/lib/conversation.module.d.ts +36 -0
 - package/conversation/lib/conversation.types.d.ts +21 -0
 - package/conversation/lib/services/conversation-message-type-registry.service.d.ts +9 -0
 - package/conversation/lib/services/conversation.service.d.ts +5 -0
 - package/esm2022/audio-wave/lib/audio-wave.component.mjs +4 -4
 - package/esm2022/conversation/acorex-components-conversation.mjs +5 -0
 - package/esm2022/conversation/index.mjs +14 -0
 - package/esm2022/conversation/lib/classes/events.interface.mjs +2 -0
 - package/esm2022/{chat/lib/chat-input/chat-input.component.mjs → conversation/lib/conversation-input/conversation-input.component.mjs} +14 -14
 - package/esm2022/conversation/lib/conversation-input/conversation-input.interface.mjs +2 -0
 - package/esm2022/conversation/lib/conversation-message/conversation-message.component.mjs +55 -0
 - package/esm2022/conversation/lib/conversation-messages/conversation-message-text.component.mjs +23 -0
 - package/esm2022/conversation/lib/conversation-messages/conversation-messages-voice/conversation-message-voice.component.mjs +112 -0
 - package/esm2022/conversation/lib/conversation-view/conversation-view.component.mjs +22 -0
 - package/esm2022/conversation/lib/conversation.module.mjs +150 -0
 - package/esm2022/conversation/lib/conversation.types.mjs +10 -0
 - package/esm2022/conversation/lib/services/conversation-message-type-registry.service.mjs +20 -0
 - package/esm2022/conversation/lib/services/conversation.service.mjs +10 -0
 - package/esm2022/conversation/lib/services/recording.service.mjs +78 -0
 - package/fesm2022/acorex-components-audio-wave.mjs +3 -3
 - package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
 - package/fesm2022/{acorex-components-chat.mjs → acorex-components-conversation.mjs} +106 -86
 - package/fesm2022/acorex-components-conversation.mjs.map +1 -0
 - package/package.json +13 -13
 - package/chat/index.d.ts +0 -12
 - package/chat/lib/chat-message/chat-message.component.d.ts +0 -16
 - package/chat/lib/chat-messages/chat-message-text.component.d.ts +0 -8
 - package/chat/lib/chat-view/chat-view.component.d.ts +0 -10
 - package/chat/lib/chat.module.d.ts +0 -35
 - package/chat/lib/chat.types.d.ts +0 -21
 - package/chat/lib/services/chat-message-type-registry.service.d.ts +0 -9
 - package/chat/lib/services/chat.service.d.ts +0 -5
 - package/esm2022/chat/acorex-components-chat.mjs +0 -5
 - package/esm2022/chat/index.mjs +0 -14
 - package/esm2022/chat/lib/chat-input/chat-input.interface.mjs +0 -2
 - package/esm2022/chat/lib/chat-message/chat-message.component.mjs +0 -54
 - package/esm2022/chat/lib/chat-messages/chat-message-text.component.mjs +0 -23
 - package/esm2022/chat/lib/chat-messages/chat-messages-voice/chat-message-voice.component.mjs +0 -97
 - package/esm2022/chat/lib/chat-view/chat-view.component.mjs +0 -22
 - package/esm2022/chat/lib/chat.module.mjs +0 -146
 - package/esm2022/chat/lib/chat.types.mjs +0 -10
 - package/esm2022/chat/lib/classes/events.interface.mjs +0 -2
 - package/esm2022/chat/lib/services/chat-message-type-registry.service.mjs +0 -20
 - package/esm2022/chat/lib/services/chat.service.mjs +0 -10
 - package/esm2022/chat/lib/services/recording.service.mjs +0 -78
 - package/fesm2022/acorex-components-chat.mjs.map +0 -1
 - /package/{chat → conversation}/README.md +0 -0
 - /package/{chat → conversation}/lib/classes/events.interface.d.ts +0 -0
 - /package/{chat/lib/chat-input/chat-input.interface.d.ts → conversation/lib/conversation-input/conversation-input.interface.d.ts} +0 -0
 - /package/{chat → conversation}/lib/services/recording.service.d.ts +0 -0
 
| 
         @@ -1,22 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import { MXBaseComponent } from '@acorex/components/common';
         
     | 
| 
       2 
     | 
    
         
            -
            import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, signal } from '@angular/core';
         
     | 
| 
       3 
     | 
    
         
            -
            import * as i0 from "@angular/core";
         
     | 
| 
       4 
     | 
    
         
            -
            import * as i1 from "../chat-message/chat-message.component";
         
     | 
| 
       5 
     | 
    
         
            -
            export class AXChatViewComponent extends MXBaseComponent {
         
     | 
| 
       6 
     | 
    
         
            -
                constructor() {
         
     | 
| 
       7 
     | 
    
         
            -
                    super(...arguments);
         
     | 
| 
       8 
     | 
    
         
            -
                    this._chats = signal([]);
         
     | 
| 
       9 
     | 
    
         
            -
                }
         
     | 
| 
       10 
     | 
    
         
            -
                set chats(items) {
         
     | 
| 
       11 
     | 
    
         
            -
                    this._chats.set(items);
         
     | 
| 
       12 
     | 
    
         
            -
                }
         
     | 
| 
       13 
     | 
    
         
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXChatViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
         
     | 
| 
       14 
     | 
    
         
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: AXChatViewComponent, selector: "ax-chat-view", inputs: { chats: "chats" }, usesInheritance: true, ngImport: i0, template: "@for (item of _chats(); track $index) {\n<ax-chat-message [chatMessage]=\"item\"></ax-chat-message>\n}", styles: ["ax-chat-view{display:flex;flex-direction:column;gap:1rem;height:100%;width:100%;overflow-y:auto;overflow-x:hidden}\n"], dependencies: [{ kind: "component", type: i1.AXChatMessageComponent, selector: "ax-chat-message", inputs: ["chatMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
         
     | 
| 
       15 
     | 
    
         
            -
            }
         
     | 
| 
       16 
     | 
    
         
            -
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXChatViewComponent, decorators: [{
         
     | 
| 
       17 
     | 
    
         
            -
                        type: Component,
         
     | 
| 
       18 
     | 
    
         
            -
                        args: [{ selector: 'ax-chat-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@for (item of _chats(); track $index) {\n<ax-chat-message [chatMessage]=\"item\"></ax-chat-message>\n}", styles: ["ax-chat-view{display:flex;flex-direction:column;gap:1rem;height:100%;width:100%;overflow-y:auto;overflow-x:hidden}\n"] }]
         
     | 
| 
       19 
     | 
    
         
            -
                    }], propDecorators: { chats: [{
         
     | 
| 
       20 
     | 
    
         
            -
                            type: Input
         
     | 
| 
       21 
     | 
    
         
            -
                        }] } });
         
     | 
| 
       22 
     | 
    
         
            -
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jaGF0L3NyYy9saWIvY2hhdC12aWV3L2NoYXQtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY2hhdC9zcmMvbGliL2NoYXQtdmlldy9jaGF0LXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFrQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVVySCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZUFBZTtJQVB4RDs7UUFhWSxXQUFNLEdBQXlDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNyRTtJQU5DLElBQ1csS0FBSyxDQUFDLEtBQTJCO1FBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7OEdBSlUsbUJBQW1CO2tHQUFuQixtQkFBbUIsdUdDWGhDLHdHQUVDOzsyRkRTWSxtQkFBbUI7a0JBUC9CLFNBQVM7K0JBQ0UsY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzhCQUkxQixLQUFLO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNWEJhc2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgV3JpdGFibGVTaWduYWwsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhDaGF0TWVzc2FnZSB9IGZyb20gJy4uL2NoYXQudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jaGF0LXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhdC12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hhdC12aWV3LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBWENoYXRWaWV3Q29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGF0cyhpdGVtczogQVhDaGF0TWVzc2FnZTxhbnk+W10pIHtcbiAgICB0aGlzLl9jaGF0cy5zZXQoaXRlbXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9jaGF0czogV3JpdGFibGVTaWduYWw8QVhDaGF0TWVzc2FnZTxhbnk+W10+ID0gc2lnbmFsKFtdKTtcbn1cbiIsIkBmb3IgKGl0ZW0gb2YgX2NoYXRzKCk7IHRyYWNrICRpbmRleCkge1xuPGF4LWNoYXQtbWVzc2FnZSBbY2hhdE1lc3NhZ2VdPVwiaXRlbVwiPjwvYXgtY2hhdC1tZXNzYWdlPlxufSJdfQ==
         
     | 
| 
         @@ -1,146 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import { AXAudioWaveModule } from '@acorex/components/audio-wave';
         
     | 
| 
       2 
     | 
    
         
            -
            import { AXButtonModule } from '@acorex/components/button';
         
     | 
| 
       3 
     | 
    
         
            -
            import { AXCircularProgressModule } from '@acorex/components/circular-progress';
         
     | 
| 
       4 
     | 
    
         
            -
            import { AXRippleDirective } from '@acorex/components/common';
         
     | 
| 
       5 
     | 
    
         
            -
            import { AXDecoratorModule } from '@acorex/components/decorators';
         
     | 
| 
       6 
     | 
    
         
            -
            import { AXDropdownModule } from '@acorex/components/dropdown';
         
     | 
| 
       7 
     | 
    
         
            -
            import { AXLoadingModule } from '@acorex/components/loading';
         
     | 
| 
       8 
     | 
    
         
            -
            import { AXDateTimeModule } from '@acorex/core/date-time';
         
     | 
| 
       9 
     | 
    
         
            -
            import { AXFormatModule } from '@acorex/core/format';
         
     | 
| 
       10 
     | 
    
         
            -
            import { AXTranslationModule } from '@acorex/core/translation';
         
     | 
| 
       11 
     | 
    
         
            -
            import { CdkPortalOutlet } from '@angular/cdk/portal';
         
     | 
| 
       12 
     | 
    
         
            -
            import { AsyncPipe, CommonModule } from '@angular/common';
         
     | 
| 
       13 
     | 
    
         
            -
            import { Inject, NgModule, Optional } from '@angular/core';
         
     | 
| 
       14 
     | 
    
         
            -
            import { FormsModule } from '@angular/forms';
         
     | 
| 
       15 
     | 
    
         
            -
            import { AXChatInputComponent } from './chat-input/chat-input.component';
         
     | 
| 
       16 
     | 
    
         
            -
            import { AXChatMessageComponent } from './chat-message/chat-message.component';
         
     | 
| 
       17 
     | 
    
         
            -
            import { AXChatTextMessageComponent } from './chat-messages/chat-message-text.component';
         
     | 
| 
       18 
     | 
    
         
            -
            import { AXChatAudioMessageComponent } from './chat-messages/chat-messages-voice/chat-message-voice.component';
         
     | 
| 
       19 
     | 
    
         
            -
            import { AXChatViewComponent } from './chat-view/chat-view.component';
         
     | 
| 
       20 
     | 
    
         
            -
            import { AXChatMessageTypeRegistryService } from './services/chat-message-type-registry.service';
         
     | 
| 
       21 
     | 
    
         
            -
            import { AXRecordingService } from './services/recording.service';
         
     | 
| 
       22 
     | 
    
         
            -
            import * as i0 from "@angular/core";
         
     | 
| 
       23 
     | 
    
         
            -
            const COMPONENT = [
         
     | 
| 
       24 
     | 
    
         
            -
                AXChatViewComponent,
         
     | 
| 
       25 
     | 
    
         
            -
                AXChatInputComponent,
         
     | 
| 
       26 
     | 
    
         
            -
                AXChatMessageComponent,
         
     | 
| 
       27 
     | 
    
         
            -
                AXChatTextMessageComponent,
         
     | 
| 
       28 
     | 
    
         
            -
                AXChatAudioMessageComponent,
         
     | 
| 
       29 
     | 
    
         
            -
            ];
         
     | 
| 
       30 
     | 
    
         
            -
            const MODULES = [
         
     | 
| 
       31 
     | 
    
         
            -
                CommonModule,
         
     | 
| 
       32 
     | 
    
         
            -
                FormsModule,
         
     | 
| 
       33 
     | 
    
         
            -
                AsyncPipe,
         
     | 
| 
       34 
     | 
    
         
            -
                AXRippleDirective,
         
     | 
| 
       35 
     | 
    
         
            -
                AXButtonModule,
         
     | 
| 
       36 
     | 
    
         
            -
                AXDecoratorModule,
         
     | 
| 
       37 
     | 
    
         
            -
                AXTranslationModule,
         
     | 
| 
       38 
     | 
    
         
            -
                AXDropdownModule,
         
     | 
| 
       39 
     | 
    
         
            -
                AXFormatModule,
         
     | 
| 
       40 
     | 
    
         
            -
                AXAudioWaveModule,
         
     | 
| 
       41 
     | 
    
         
            -
                AXCircularProgressModule,
         
     | 
| 
       42 
     | 
    
         
            -
                AXDateTimeModule,
         
     | 
| 
       43 
     | 
    
         
            -
                CdkPortalOutlet,
         
     | 
| 
       44 
     | 
    
         
            -
                AXLoadingModule,
         
     | 
| 
       45 
     | 
    
         
            -
            ];
         
     | 
| 
       46 
     | 
    
         
            -
            export class AXChatModule {
         
     | 
| 
       47 
     | 
    
         
            -
                static forRoot(config) {
         
     | 
| 
       48 
     | 
    
         
            -
                    return {
         
     | 
| 
       49 
     | 
    
         
            -
                        ngModule: AXChatModule,
         
     | 
| 
       50 
     | 
    
         
            -
                        providers: [
         
     | 
| 
       51 
     | 
    
         
            -
                            {
         
     | 
| 
       52 
     | 
    
         
            -
                                provide: 'AXChatModuleFactory',
         
     | 
| 
       53 
     | 
    
         
            -
                                useFactory: (registry) => () => {
         
     | 
| 
       54 
     | 
    
         
            -
                                    if (config?.types?.length) {
         
     | 
| 
       55 
     | 
    
         
            -
                                        registry.register(...config.types);
         
     | 
| 
       56 
     | 
    
         
            -
                                    }
         
     | 
| 
       57 
     | 
    
         
            -
                                    registry.register({
         
     | 
| 
       58 
     | 
    
         
            -
                                        name: 'text',
         
     | 
| 
       59 
     | 
    
         
            -
                                        component: AXChatTextMessageComponent,
         
     | 
| 
       60 
     | 
    
         
            -
                                    });
         
     | 
| 
       61 
     | 
    
         
            -
                                    registry.register({
         
     | 
| 
       62 
     | 
    
         
            -
                                        name: 'audio',
         
     | 
| 
       63 
     | 
    
         
            -
                                        component: AXChatAudioMessageComponent,
         
     | 
| 
       64 
     | 
    
         
            -
                                    });
         
     | 
| 
       65 
     | 
    
         
            -
                                },
         
     | 
| 
       66 
     | 
    
         
            -
                                deps: [AXChatMessageTypeRegistryService],
         
     | 
| 
       67 
     | 
    
         
            -
                                multi: true,
         
     | 
| 
       68 
     | 
    
         
            -
                            },
         
     | 
| 
       69 
     | 
    
         
            -
                        ],
         
     | 
| 
       70 
     | 
    
         
            -
                    };
         
     | 
| 
       71 
     | 
    
         
            -
                }
         
     | 
| 
       72 
     | 
    
         
            -
                static forChild(config) {
         
     | 
| 
       73 
     | 
    
         
            -
                    return {
         
     | 
| 
       74 
     | 
    
         
            -
                        ngModule: AXChatModule,
         
     | 
| 
       75 
     | 
    
         
            -
                        providers: [
         
     | 
| 
       76 
     | 
    
         
            -
                            {
         
     | 
| 
       77 
     | 
    
         
            -
                                provide: 'AXPWorkflowModuleFactory',
         
     | 
| 
       78 
     | 
    
         
            -
                                useFactory: (registry) => () => {
         
     | 
| 
       79 
     | 
    
         
            -
                                    if (config?.types?.length) {
         
     | 
| 
       80 
     | 
    
         
            -
                                        registry.register(...config.types);
         
     | 
| 
       81 
     | 
    
         
            -
                                    }
         
     | 
| 
       82 
     | 
    
         
            -
                                },
         
     | 
| 
       83 
     | 
    
         
            -
                                deps: [AXChatMessageTypeRegistryService],
         
     | 
| 
       84 
     | 
    
         
            -
                                multi: true,
         
     | 
| 
       85 
     | 
    
         
            -
                            },
         
     | 
| 
       86 
     | 
    
         
            -
                        ],
         
     | 
| 
       87 
     | 
    
         
            -
                    };
         
     | 
| 
       88 
     | 
    
         
            -
                }
         
     | 
| 
       89 
     | 
    
         
            -
                /**
         
     | 
| 
       90 
     | 
    
         
            -
                 * @ignore
         
     | 
| 
       91 
     | 
    
         
            -
                 */
         
     | 
| 
       92 
     | 
    
         
            -
                constructor(instances) {
         
     | 
| 
       93 
     | 
    
         
            -
                    instances?.forEach((f) => {
         
     | 
| 
       94 
     | 
    
         
            -
                        f();
         
     | 
| 
       95 
     | 
    
         
            -
                    });
         
     | 
| 
       96 
     | 
    
         
            -
                }
         
     | 
| 
       97 
     | 
    
         
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXChatModule, deps: [{ token: 'AXChatModuleFactory', optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
         
     | 
| 
       98 
     | 
    
         
            -
                static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: AXChatModule, declarations: [AXChatViewComponent,
         
     | 
| 
       99 
     | 
    
         
            -
                        AXChatInputComponent,
         
     | 
| 
       100 
     | 
    
         
            -
                        AXChatMessageComponent,
         
     | 
| 
       101 
     | 
    
         
            -
                        AXChatTextMessageComponent,
         
     | 
| 
       102 
     | 
    
         
            -
                        AXChatAudioMessageComponent], imports: [CommonModule,
         
     | 
| 
       103 
     | 
    
         
            -
                        FormsModule,
         
     | 
| 
       104 
     | 
    
         
            -
                        AsyncPipe,
         
     | 
| 
       105 
     | 
    
         
            -
                        AXRippleDirective,
         
     | 
| 
       106 
     | 
    
         
            -
                        AXButtonModule,
         
     | 
| 
       107 
     | 
    
         
            -
                        AXDecoratorModule,
         
     | 
| 
       108 
     | 
    
         
            -
                        AXTranslationModule,
         
     | 
| 
       109 
     | 
    
         
            -
                        AXDropdownModule,
         
     | 
| 
       110 
     | 
    
         
            -
                        AXFormatModule,
         
     | 
| 
       111 
     | 
    
         
            -
                        AXAudioWaveModule,
         
     | 
| 
       112 
     | 
    
         
            -
                        AXCircularProgressModule,
         
     | 
| 
       113 
     | 
    
         
            -
                        AXDateTimeModule,
         
     | 
| 
       114 
     | 
    
         
            -
                        CdkPortalOutlet,
         
     | 
| 
       115 
     | 
    
         
            -
                        AXLoadingModule], exports: [AXChatViewComponent,
         
     | 
| 
       116 
     | 
    
         
            -
                        AXChatInputComponent,
         
     | 
| 
       117 
     | 
    
         
            -
                        AXChatMessageComponent,
         
     | 
| 
       118 
     | 
    
         
            -
                        AXChatTextMessageComponent,
         
     | 
| 
       119 
     | 
    
         
            -
                        AXChatAudioMessageComponent] }); }
         
     | 
| 
       120 
     | 
    
         
            -
                static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXChatModule, providers: [AXRecordingService], imports: [CommonModule,
         
     | 
| 
       121 
     | 
    
         
            -
                        FormsModule,
         
     | 
| 
       122 
     | 
    
         
            -
                        AXButtonModule,
         
     | 
| 
       123 
     | 
    
         
            -
                        AXDecoratorModule,
         
     | 
| 
       124 
     | 
    
         
            -
                        AXTranslationModule,
         
     | 
| 
       125 
     | 
    
         
            -
                        AXDropdownModule,
         
     | 
| 
       126 
     | 
    
         
            -
                        AXFormatModule,
         
     | 
| 
       127 
     | 
    
         
            -
                        AXAudioWaveModule,
         
     | 
| 
       128 
     | 
    
         
            -
                        AXCircularProgressModule,
         
     | 
| 
       129 
     | 
    
         
            -
                        AXDateTimeModule,
         
     | 
| 
       130 
     | 
    
         
            -
                        AXLoadingModule] }); }
         
     | 
| 
       131 
     | 
    
         
            -
            }
         
     | 
| 
       132 
     | 
    
         
            -
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXChatModule, decorators: [{
         
     | 
| 
       133 
     | 
    
         
            -
                        type: NgModule,
         
     | 
| 
       134 
     | 
    
         
            -
                        args: [{
         
     | 
| 
       135 
     | 
    
         
            -
                                declarations: [...COMPONENT],
         
     | 
| 
       136 
     | 
    
         
            -
                                imports: [...MODULES],
         
     | 
| 
       137 
     | 
    
         
            -
                                exports: [...COMPONENT],
         
     | 
| 
       138 
     | 
    
         
            -
                                providers: [AXRecordingService],
         
     | 
| 
       139 
     | 
    
         
            -
                            }]
         
     | 
| 
       140 
     | 
    
         
            -
                    }], ctorParameters: () => [{ type: undefined, decorators: [{
         
     | 
| 
       141 
     | 
    
         
            -
                                type: Optional
         
     | 
| 
       142 
     | 
    
         
            -
                            }, {
         
     | 
| 
       143 
     | 
    
         
            -
                                type: Inject,
         
     | 
| 
       144 
     | 
    
         
            -
                                args: ['AXChatModuleFactory']
         
     | 
| 
       145 
     | 
    
         
            -
                            }] }] });
         
     | 
| 
       146 
     | 
    
         
            -
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY2hhdC9zcmMvbGliL2NoYXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFB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d0I7WUFDeEIsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixlQUFlLGFBcEJmLG1CQUFtQjtZQUNuQixvQkFBb0I7WUFDcEIsc0JBQXNCO1lBQ3RCLDBCQUEwQjtZQUMxQiwyQkFBMkI7K0dBeUJoQixZQUFZLGFBRlosQ0FBQyxrQkFBa0IsQ0FBQyxZQXBCL0IsWUFBWTtZQUNaLFdBQVc7WUFHWCxjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixnQkFBZ0I7WUFDaEIsY0FBYztZQUNkLGlCQUFpQjtZQUNqQix3QkFBd0I7WUFDeEIsZ0JBQWdCO1lBRWhCLGVBQWU7OzJGQVNKLFlBQVk7a0JBTnhCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7b0JBQzVCLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO29CQUNyQixPQUFPLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDdkIsU0FBUyxFQUFFLENBQUMsa0JBQWtCLENBQUM7aUJBQ2hDOzswQkFpRGMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEF1ZGlvV2F2ZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9hdWRpby13YXZlJztcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWENpcmN1bGFyUHJvZ3Jlc3NNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY2lyY3VsYXItcHJvZ3Jlc3MnO1xuaW1wb3J0IHsgQVhSaXBwbGVEaXJlY3RpdmUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWERhdGVUaW1lTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2RhdGUtdGltZSc7XG5pbXBvcnQgeyBBWEZvcm1hdE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBDZGtQb3J0YWxPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFYQ2hhdElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jaGF0LWlucHV0L2NoYXQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFYQ2hhdE1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2NoYXQtbWVzc2FnZS9jaGF0LW1lc3NhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEFYQ2hhdFRleHRNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9jaGF0LW1lc3NhZ2VzL2NoYXQtbWVzc2FnZS10ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWENoYXRBdWRpb01lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2NoYXQtbWVzc2FnZXMvY2hhdC1tZXNzYWdlcy12b2ljZS9jaGF0LW1lc3NhZ2Utdm9pY2UuY29tcG9uZW50JztcbmltcG9ydCB7IEFYQ2hhdFZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NoYXQtdmlldy9jaGF0LXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFYQ2hhdE1lc3NhZ2VUeXBlIH0gZnJvbSAnLi9jaGF0LnR5cGVzJztcbmltcG9ydCB7IEFYQ2hhdE1lc3NhZ2VUeXBlUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9jaGF0LW1lc3NhZ2UtdHlwZS1yZWdpc3RyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUmVjb3JkaW5nU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcmVjb3JkaW5nLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYQ2hhdE1vZHVsZUNvbmZpZyB7XG4gIHR5cGVzOiBBWENoYXRNZXNzYWdlVHlwZVtdO1xufVxuXG5jb25zdCBDT01QT05FTlQgPSBbXG4gIEFYQ2hhdFZpZXdDb21wb25lbnQsXG4gIEFYQ2hhdElucHV0Q29tcG9uZW50LFxuICBBWENoYXRNZXNzYWdlQ29tcG9uZW50LFxuICBBWENoYXRUZXh0TWVzc2FnZUNvbXBvbmVudCxcbiAgQVhDaGF0QXVkaW9NZXNzYWdlQ29tcG9uZW50LFxuXTtcbmNvbnN0IE1PRFVMRVMgPSBbXG4gIENvbW1vbk1vZHVsZSxcbiAgRm9ybXNNb2R1bGUsXG4gIEFzeW5jUGlwZSxcbiAgQVhSaXBwbGVEaXJlY3RpdmUsXG4gIEFYQnV0dG9uTW9kdWxlLFxuICBBWERlY29yYXRvck1vZHVsZSxcbiAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgQVhEcm9wZG93bk1vZHVsZSxcbiAgQVhGb3JtYXRNb2R1bGUsXG4gIEFYQXVkaW9XYXZlTW9kdWxlLFxuICBBWENpcmN1bGFyUHJvZ3Jlc3NNb2R1bGUsXG4gIEFYRGF0ZVRpbWVNb2R1bGUsXG4gIENka1BvcnRhbE91dGxldCxcbiAgQVhMb2FkaW5nTW9kdWxlLFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbLi4uQ09NUE9ORU5UXSxcbiAgaW1wb3J0czogWy4uLk1PRFVMRVNdLFxuICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UXSxcbiAgcHJvdmlkZXJzOiBbQVhSZWNvcmRpbmdTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhDaGF0TW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnPzogQVhDaGF0TW9kdWxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBWENoYXRNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFYQ2hhdE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogJ0FYQ2hhdE1vZHVsZUZhY3RvcnknLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IChyZWdpc3RyeTogQVhDaGF0TWVzc2FnZVR5cGVSZWdpc3RyeVNlcnZpY2UpID0+ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChjb25maWc/LnR5cGVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXIoLi4uY29uZmlnLnR5cGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgICAgICAgICAgICAgbmFtZTogJ3RleHQnLFxuICAgICAgICAgICAgICBjb21wb25lbnQ6IEFYQ2hhdFRleHRNZXNzYWdlQ29tcG9uZW50LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZWdpc3RyeS5yZWdpc3Rlcih7XG4gICAgICAgICAgICAgIG5hbWU6ICdhdWRpbycsXG4gICAgICAgICAgICAgIGNvbXBvbmVudDogQVhDaGF0QXVkaW9NZXNzYWdlQ29tcG9uZW50LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBkZXBzOiBbQVhDaGF0TWVzc2FnZVR5cGVSZWdpc3RyeVNlcnZpY2VdLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGZvckNoaWxkKGNvbmZpZz86IEFYQ2hhdE1vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QVhDaGF0TW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBWENoYXRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6ICdBWFBXb3JrZmxvd01vZHVsZUZhY3RvcnknLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IChyZWdpc3RyeTogQVhDaGF0TWVzc2FnZVR5cGVSZWdpc3RyeVNlcnZpY2UpID0+ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChjb25maWc/LnR5cGVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXIoLi4uY29uZmlnLnR5cGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGRlcHM6IFtBWENoYXRNZXNzYWdlVHlwZVJlZ2lzdHJ5U2VydmljZV0sXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdCgnQVhDaGF0TW9kdWxlRmFjdG9yeScpIGluc3RhbmNlczogYW55W10pIHtcbiAgICBpbnN0YW5jZXM/LmZvckVhY2goKGYpID0+IHtcbiAgICAgIGYoKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
         
     | 
| 
         @@ -1,10 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import { Injectable } from '@angular/core';
         
     | 
| 
       2 
     | 
    
         
            -
            import * as i0 from "@angular/core";
         
     | 
| 
       3 
     | 
    
         
            -
            export class AXChatMessageBaseComponent {
         
     | 
| 
       4 
     | 
    
         
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXChatMessageBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
         
     | 
| 
       5 
     | 
    
         
            -
                static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXChatMessageBaseComponent }); }
         
     | 
| 
       6 
     | 
    
         
            -
            }
         
     | 
| 
       7 
     | 
    
         
            -
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXChatMessageBaseComponent, decorators: [{
         
     | 
| 
       8 
     | 
    
         
            -
                        type: Injectable
         
     | 
| 
       9 
     | 
    
         
            -
                    }] });
         
     | 
| 
       10 
     | 
    
         
            -
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jaGF0L3NyYy9saWIvY2hhdC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDOztBQW1CakQsTUFBTSxPQUFPLDBCQUEwQjs4R0FBMUIsMEJBQTBCO2tIQUExQiwwQkFBMEI7OzJGQUExQiwwQkFBMEI7a0JBRHRDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhDaGF0TWVzc2FnZVR5cGUge1xuICBuYW1lOiBzdHJpbmc7XG4gIGNvbXBvbmVudDogVHlwZTxhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYQ2hhdE1lc3NhZ2U8VD4ge1xuICBpZDogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIHNlbmRUaW1lOiBEYXRlO1xuICBkZWxpdmVyVGltZT86IERhdGU7XG4gIHJlYWRUaW1lPzogRGF0ZTtcbiAgcmVwbHlUbz86IHN0cmluZztcbiAgY29udGVudDogVDtcbiAgZnJvbUlkPzogc3RyaW5nO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhDaGF0TWVzc2FnZUJhc2VDb21wb25lbnQ8VD4ge1xuICBtZXNzYWdlOiBBWENoYXRNZXNzYWdlPFQ+O1xufVxuIl19
         
     | 
| 
         @@ -1,2 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            export {};
         
     | 
| 
       2 
     | 
    
         
            -
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jaGF0L3NyYy9saWIvY2xhc3Nlcy9ldmVudHMuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEh0bWxFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYSW5wdXRGaWxlQ2hhbmdlIGV4dGVuZHMgQVhIdG1sRXZlbnQ8TW91c2VFdmVudD4ge1xuICBkYXRhPzogYW55O1xufVxuIl19
         
     | 
| 
         @@ -1,20 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import { Injectable } from '@angular/core';
         
     | 
| 
       2 
     | 
    
         
            -
            import * as i0 from "@angular/core";
         
     | 
| 
       3 
     | 
    
         
            -
            export class AXChatMessageTypeRegistryService {
         
     | 
| 
       4 
     | 
    
         
            -
                constructor() {
         
     | 
| 
       5 
     | 
    
         
            -
                    this.plugins = new Map();
         
     | 
| 
       6 
     | 
    
         
            -
                }
         
     | 
| 
       7 
     | 
    
         
            -
                register(...plugins) {
         
     | 
| 
       8 
     | 
    
         
            -
                    plugins.forEach((p) => this.plugins.set(p.name, p));
         
     | 
| 
       9 
     | 
    
         
            -
                }
         
     | 
| 
       10 
     | 
    
         
            -
                resolve(name) {
         
     | 
| 
       11 
     | 
    
         
            -
                    return this.plugins.get(name);
         
     | 
| 
       12 
     | 
    
         
            -
                }
         
     | 
| 
       13 
     | 
    
         
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXChatMessageTypeRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
         
     | 
| 
       14 
     | 
    
         
            -
                static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXChatMessageTypeRegistryService, providedIn: 'root' }); }
         
     | 
| 
       15 
     | 
    
         
            -
            }
         
     | 
| 
       16 
     | 
    
         
            -
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXChatMessageTypeRegistryService, decorators: [{
         
     | 
| 
       17 
     | 
    
         
            -
                        type: Injectable,
         
     | 
| 
       18 
     | 
    
         
            -
                        args: [{ providedIn: 'root' }]
         
     | 
| 
       19 
     | 
    
         
            -
                    }] });
         
     | 
| 
       20 
     | 
    
         
            -
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1tZXNzYWdlLXR5cGUtcmVnaXN0cnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jaGF0L3NyYy9saWIvc2VydmljZXMvY2hhdC1tZXNzYWdlLXR5cGUtcmVnaXN0cnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQyxNQUFNLE9BQU8sZ0NBQWdDO0lBRDdDO1FBRVUsWUFBTyxHQUFtQyxJQUFJLEdBQUcsRUFHdEQsQ0FBQztLQVNMO0lBUEMsUUFBUSxDQUFDLEdBQUcsT0FBNEI7UUFDdEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxPQUFPLENBQUMsSUFBWTtRQUN6QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OEdBWlUsZ0NBQWdDO2tIQUFoQyxnQ0FBZ0MsY0FEbkIsTUFBTTs7MkZBQ25CLGdDQUFnQztrQkFENUMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWENoYXRNZXNzYWdlVHlwZSB9IGZyb20gJy4uL2NoYXQudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYQ2hhdE1lc3NhZ2VUeXBlUmVnaXN0cnlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBwbHVnaW5zOiBNYXA8c3RyaW5nLCBBWENoYXRNZXNzYWdlVHlwZT4gPSBuZXcgTWFwPFxuICAgIHN0cmluZyxcbiAgICBBWENoYXRNZXNzYWdlVHlwZVxuICA+KCk7XG5cbiAgcmVnaXN0ZXIoLi4ucGx1Z2luczogQVhDaGF0TWVzc2FnZVR5cGVbXSkge1xuICAgIHBsdWdpbnMuZm9yRWFjaCgocCkgPT4gdGhpcy5wbHVnaW5zLnNldChwLm5hbWUsIHApKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNvbHZlKG5hbWU6IHN0cmluZyk6IEFYQ2hhdE1lc3NhZ2VUeXBlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5wbHVnaW5zLmdldChuYW1lKTtcbiAgfVxufVxuIl19
         
     | 
| 
         @@ -1,10 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import { Injectable } from '@angular/core';
         
     | 
| 
       2 
     | 
    
         
            -
            import * as i0 from "@angular/core";
         
     | 
| 
       3 
     | 
    
         
            -
            export class AXChatService {
         
     | 
| 
       4 
     | 
    
         
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXChatService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
         
     | 
| 
       5 
     | 
    
         
            -
                static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXChatService }); }
         
     | 
| 
       6 
     | 
    
         
            -
            }
         
     | 
| 
       7 
     | 
    
         
            -
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXChatService, decorators: [{
         
     | 
| 
       8 
     | 
    
         
            -
                        type: Injectable
         
     | 
| 
       9 
     | 
    
         
            -
                    }] });
         
     | 
| 
       10 
     | 
    
         
            -
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NoYXQvc3JjL2xpYi9zZXJ2aWNlcy9jaGF0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLGFBQWE7OEdBQWIsYUFBYTtrSEFBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhDaGF0U2VydmljZSB7fVxuIl19
         
     | 
| 
         @@ -1,78 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import { Injectable, signal } from '@angular/core';
         
     | 
| 
       2 
     | 
    
         
            -
            import * as i0 from "@angular/core";
         
     | 
| 
       3 
     | 
    
         
            -
            export class AXRecordingService {
         
     | 
| 
       4 
     | 
    
         
            -
                constructor() {
         
     | 
| 
       5 
     | 
    
         
            -
                    this.audioBlobs = [];
         
     | 
| 
       6 
     | 
    
         
            -
                    this.streamBeingCaptured = null;
         
     | 
| 
       7 
     | 
    
         
            -
                    this.timer = signal('00:0');
         
     | 
| 
       8 
     | 
    
         
            -
                    this.time = {
         
     | 
| 
       9 
     | 
    
         
            -
                        seconds: 0,
         
     | 
| 
       10 
     | 
    
         
            -
                        minutes: 0,
         
     | 
| 
       11 
     | 
    
         
            -
                        hours: 0,
         
     | 
| 
       12 
     | 
    
         
            -
                    };
         
     | 
| 
       13 
     | 
    
         
            -
                }
         
     | 
| 
       14 
     | 
    
         
            -
                startRecording() {
         
     | 
| 
       15 
     | 
    
         
            -
                    if (!(navigator.mediaDevices && navigator.mediaDevices.getUserMedia)) {
         
     | 
| 
       16 
     | 
    
         
            -
                        return Promise.reject(new Error('mediaDevices API or getUserMedia method is not supported in this browser.'));
         
     | 
| 
       17 
     | 
    
         
            -
                    }
         
     | 
| 
       18 
     | 
    
         
            -
                    else {
         
     | 
| 
       19 
     | 
    
         
            -
                        return navigator.mediaDevices
         
     | 
| 
       20 
     | 
    
         
            -
                            .getUserMedia({ audio: true })
         
     | 
| 
       21 
     | 
    
         
            -
                            .then((stream) => {
         
     | 
| 
       22 
     | 
    
         
            -
                            this.streamBeingCaptured = stream;
         
     | 
| 
       23 
     | 
    
         
            -
                            this.mediaRecorder = new MediaRecorder(stream);
         
     | 
| 
       24 
     | 
    
         
            -
                            this.audioBlobs = [];
         
     | 
| 
       25 
     | 
    
         
            -
                            this.mediaRecorder.addEventListener('dataavailable', (event) => {
         
     | 
| 
       26 
     | 
    
         
            -
                                this.audioBlobs.push(event.data);
         
     | 
| 
       27 
     | 
    
         
            -
                            });
         
     | 
| 
       28 
     | 
    
         
            -
                            this.mediaRecorder.start();
         
     | 
| 
       29 
     | 
    
         
            -
                            this.timerInterval = setInterval(() => {
         
     | 
| 
       30 
     | 
    
         
            -
                                this.calculateTime();
         
     | 
| 
       31 
     | 
    
         
            -
                            }, 1000);
         
     | 
| 
       32 
     | 
    
         
            -
                        });
         
     | 
| 
       33 
     | 
    
         
            -
                    }
         
     | 
| 
       34 
     | 
    
         
            -
                }
         
     | 
| 
       35 
     | 
    
         
            -
                stopRecording() {
         
     | 
| 
       36 
     | 
    
         
            -
                    return new Promise((resolve) => {
         
     | 
| 
       37 
     | 
    
         
            -
                        const mimeType = this.mediaRecorder?.mimeType;
         
     | 
| 
       38 
     | 
    
         
            -
                        this.mediaRecorder?.addEventListener('stop', () => {
         
     | 
| 
       39 
     | 
    
         
            -
                            const audioBlob = new Blob(this.audioBlobs, { type: mimeType });
         
     | 
| 
       40 
     | 
    
         
            -
                            resolve(audioBlob);
         
     | 
| 
       41 
     | 
    
         
            -
                        });
         
     | 
| 
       42 
     | 
    
         
            -
                        this.mediaRecorder?.stop();
         
     | 
| 
       43 
     | 
    
         
            -
                        this.streamBeingCaptured.getTracks().forEach((track) => track.stop());
         
     | 
| 
       44 
     | 
    
         
            -
                        this.mediaRecorder = null;
         
     | 
| 
       45 
     | 
    
         
            -
                        this.streamBeingCaptured = null;
         
     | 
| 
       46 
     | 
    
         
            -
                        this.resetTimer();
         
     | 
| 
       47 
     | 
    
         
            -
                    });
         
     | 
| 
       48 
     | 
    
         
            -
                }
         
     | 
| 
       49 
     | 
    
         
            -
                calculateTime() {
         
     | 
| 
       50 
     | 
    
         
            -
                    this.time.seconds++;
         
     | 
| 
       51 
     | 
    
         
            -
                    if (this.time.seconds >= 60) {
         
     | 
| 
       52 
     | 
    
         
            -
                        this.time.seconds = 0;
         
     | 
| 
       53 
     | 
    
         
            -
                        this.time.minutes++;
         
     | 
| 
       54 
     | 
    
         
            -
                        if (this.time.minutes >= 60) {
         
     | 
| 
       55 
     | 
    
         
            -
                            this.time.minutes = 0;
         
     | 
| 
       56 
     | 
    
         
            -
                            this.time.hours++;
         
     | 
| 
       57 
     | 
    
         
            -
                        }
         
     | 
| 
       58 
     | 
    
         
            -
                    }
         
     | 
| 
       59 
     | 
    
         
            -
                    const formattedTime = (this.time.hours > 0 ? this.time.hours + ':' : '') +
         
     | 
| 
       60 
     | 
    
         
            -
                        (this.time.minutes < 10 ? '0' + this.time.minutes : this.time.minutes) +
         
     | 
| 
       61 
     | 
    
         
            -
                        ':' +
         
     | 
| 
       62 
     | 
    
         
            -
                        (this.time.seconds < 10 ? '0' + this.time.seconds : this.time.seconds);
         
     | 
| 
       63 
     | 
    
         
            -
                    this.timer.set(formattedTime);
         
     | 
| 
       64 
     | 
    
         
            -
                }
         
     | 
| 
       65 
     | 
    
         
            -
                resetTimer() {
         
     | 
| 
       66 
     | 
    
         
            -
                    clearInterval(this.timerInterval);
         
     | 
| 
       67 
     | 
    
         
            -
                    this.time.seconds = 0;
         
     | 
| 
       68 
     | 
    
         
            -
                    this.time.minutes = 0;
         
     | 
| 
       69 
     | 
    
         
            -
                    this.time.hours = 0;
         
     | 
| 
       70 
     | 
    
         
            -
                    this.timer.set('00:0');
         
     | 
| 
       71 
     | 
    
         
            -
                }
         
     | 
| 
       72 
     | 
    
         
            -
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXRecordingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
         
     | 
| 
       73 
     | 
    
         
            -
                static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXRecordingService }); }
         
     | 
| 
       74 
     | 
    
         
            -
            }
         
     | 
| 
       75 
     | 
    
         
            -
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXRecordingService, decorators: [{
         
     | 
| 
       76 
     | 
    
         
            -
                        type: Injectable
         
     | 
| 
       77 
     | 
    
         
            -
                    }] });
         
     | 
| 
       78 
     | 
    
         
            -
            //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY2hhdC9zcmMvbGliL3NlcnZpY2VzL3JlY29yZGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWtCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHbkUsTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQUVFLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFFdkIsd0JBQW1CLEdBQVEsSUFBSSxDQUFDO1FBRWhDLFVBQUssR0FBMkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXJDLFNBQUksR0FBRztZQUNmLE9BQU8sRUFBRSxDQUFDO1lBQ1YsT0FBTyxFQUFFLENBQUM7WUFDVixLQUFLLEVBQUUsQ0FBQztTQUNULENBQUM7S0F1RUg7SUFuRUMsY0FBYztRQUNaLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLElBQUksU0FBUyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQ3JFLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FDbkIsSUFBSSxLQUFLLENBQ1AsMkVBQTJFLENBQzVFLENBQ0YsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxTQUFTLENBQUMsWUFBWTtpQkFDMUIsWUFBWSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO2lCQUM3QixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0Is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QUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QixDQUFDOzhHQWpGVSxrQkFBa0I7a0hBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFdyaXRhYmxlU2lnbmFsLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUmVjb3JkaW5nU2VydmljZSB7XG4gIGF1ZGlvQmxvYnM6IGFueVtdID0gW107XG4gIG1lZGlhUmVjb3JkZXI6IE1lZGlhUmVjb3JkZXIgfCBudWxsO1xuICBzdHJlYW1CZWluZ0NhcHR1cmVkOiBhbnkgPSBudWxsO1xuXG4gIHRpbWVyOiBXcml0YWJsZVNpZ25hbDxzdHJpbmc+ID0gc2lnbmFsKCcwMDowJyk7XG5cbiAgcHJvdGVjdGVkIHRpbWUgPSB7XG4gICAgc2Vjb25kczogMCxcbiAgICBtaW51dGVzOiAwLFxuICAgIGhvdXJzOiAwLFxuICB9O1xuXG4gIHByb3RlY3RlZCB0aW1lckludGVydmFsO1xuXG4gIHN0YXJ0UmVjb3JkaW5nKCkge1xuICAgIGlmICghKG5hdmlnYXRvci5tZWRpYURldmljZXMgJiYgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEpKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXG4gICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICAnbWVkaWFEZXZpY2VzIEFQSSBvciBnZXRVc2VyTWVkaWEgbWV0aG9kIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyLidcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXNcbiAgICAgICAgLmdldFVzZXJNZWRpYSh7IGF1ZGlvOiB0cnVlIH0pXG4gICAgICAgIC50aGVuKChzdHJlYW0pID0+IHtcbiAgICAgICAgICB0aGlzLnN0cmVhbUJlaW5nQ2FwdHVyZWQgPSBzdHJlYW07XG4gICAgICAgICAgdGhpcy5tZWRpYVJlY29yZGVyID0gbmV3IE1lZGlhUmVjb3JkZXIoc3RyZWFtKTtcbiAgICAgICAgICB0aGlzLmF1ZGlvQmxvYnMgPSBbXTtcbiAgICAgICAgICB0aGlzLm1lZGlhUmVjb3JkZXIuYWRkRXZlbnRMaXN0ZW5lcignZGF0YWF2YWlsYWJsZScsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hdWRpb0Jsb2JzLnB1c2goZXZlbnQuZGF0YSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5tZWRpYVJlY29yZGVyLnN0YXJ0KCk7XG4gICAgICAgICAgdGhpcy50aW1lckludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVUaW1lKCk7XG4gICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHN0b3BSZWNvcmRpbmcoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBjb25zdCBtaW1lVHlwZSA9IHRoaXMubWVkaWFSZWNvcmRlcj8ubWltZVR5cGU7XG4gICAgICB0aGlzLm1lZGlhUmVjb3JkZXI/LmFkZEV2ZW50TGlzdGVuZXIoJ3N0b3AnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGF1ZGlvQmxvYiA9IG5ldyBCbG9iKHRoaXMuYXVkaW9CbG9icywgeyB0eXBlOiBtaW1lVHlwZSB9KTtcbiAgICAgICAgcmVzb2x2ZShhdWRpb0Jsb2IpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm1lZGlhUmVjb3JkZXI/LnN0b3AoKTtcbiAgICAgIHRoaXMuc3RyZWFtQmVpbmdDYXB0dXJlZC5nZXRUcmFja3MoKS5mb3JFYWNoKCh0cmFjaykgPT4gdHJhY2suc3RvcCgpKTtcbiAgICAgIHRoaXMubWVkaWFSZWNvcmRlciA9IG51bGw7XG4gICAgICB0aGlzLnN0cmVhbUJlaW5nQ2FwdHVyZWQgPSBudWxsO1xuICAgICAgdGhpcy5yZXNldFRpbWVyKCk7XG4gICAgfSk7XG4gIH1cblxuICBjYWxjdWxhdGVUaW1lKCkge1xuICAgIHRoaXMudGltZS5zZWNvbmRzKys7XG4gICAgaWYgKHRoaXMudGltZS5zZWNvbmRzID49IDYwKSB7XG4gICAgICB0aGlzLnRpbWUuc2Vjb25kcyA9IDA7XG4gICAgICB0aGlzLnRpbWUubWludXRlcysrO1xuICAgICAgaWYgKHRoaXMudGltZS5taW51dGVzID49IDYwKSB7XG4gICAgICAgIHRoaXMudGltZS5taW51dGVzID0gMDtcbiAgICAgICAgdGhpcy50aW1lLmhvdXJzKys7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybWF0dGVkVGltZSA9XG4gICAgICAodGhpcy50aW1lLmhvdXJzID4gMCA/IHRoaXMudGltZS5ob3VycyArICc6JyA6ICcnKSArXG4gICAgICAodGhpcy50aW1lLm1pbnV0ZXMgPCAxMCA/ICcwJyArIHRoaXMudGltZS5taW51dGVzIDogdGhpcy50aW1lLm1pbnV0ZXMpICtcbiAgICAgICc6JyArXG4gICAgICAodGhpcy50aW1lLnNlY29uZHMgPCAxMCA/ICcwJyArIHRoaXMudGltZS5zZWNvbmRzIDogdGhpcy50aW1lLnNlY29uZHMpO1xuXG4gICAgdGhpcy50aW1lci5zZXQoZm9ybWF0dGVkVGltZSk7XG4gIH1cblxuICByZXNldFRpbWVyKCkge1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lckludGVydmFsKTtcbiAgICB0aGlzLnRpbWUuc2Vjb25kcyA9IDA7XG4gICAgdGhpcy50aW1lLm1pbnV0ZXMgPSAwO1xuICAgIHRoaXMudGltZS5ob3VycyA9IDA7XG4gICAgdGhpcy50aW1lci5zZXQoJzAwOjAnKTtcbiAgfVxufVxuIl19
         
     | 
| 
         @@ -1 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"acorex-components-chat.mjs","sources":["../../../../libs/components/chat/src/lib/services/recording.service.ts","../../../../libs/components/chat/src/lib/chat-input/chat-input.component.ts","../../../../libs/components/chat/src/lib/chat-input/chat-input.component.html","../../../../libs/components/chat/src/lib/services/chat-message-type-registry.service.ts","../../../../libs/components/chat/src/lib/chat-message/chat-message.component.ts","../../../../libs/components/chat/src/lib/chat-message/chat-message.component.html","../../../../libs/components/chat/src/lib/chat-view/chat-view.component.ts","../../../../libs/components/chat/src/lib/chat-view/chat-view.component.html","../../../../libs/components/chat/src/lib/chat.types.ts","../../../../libs/components/chat/src/lib/chat-messages/chat-message-text.component.ts","../../../../libs/components/chat/src/lib/chat-messages/chat-messages-voice/chat-message-voice.component.ts","../../../../libs/components/chat/src/lib/chat-messages/chat-messages-voice/chat-message-voice.component.html","../../../../libs/components/chat/src/lib/chat.module.ts","../../../../libs/components/chat/src/lib/services/chat.service.ts","../../../../libs/components/chat/src/acorex-components-chat.ts"],"sourcesContent":["import { Injectable, WritableSignal, signal } from '@angular/core';\n\n@Injectable()\nexport class AXRecordingService {\n  audioBlobs: any[] = [];\n  mediaRecorder: MediaRecorder | null;\n  streamBeingCaptured: any = null;\n\n  timer: WritableSignal<string> = signal('00:0');\n\n  protected time = {\n    seconds: 0,\n    minutes: 0,\n    hours: 0,\n  };\n\n  protected timerInterval;\n\n  startRecording() {\n    if (!(navigator.mediaDevices && navigator.mediaDevices.getUserMedia)) {\n      return Promise.reject(\n        new Error(\n          'mediaDevices API or getUserMedia method is not supported in this browser.'\n        )\n      );\n    } else {\n      return navigator.mediaDevices\n        .getUserMedia({ audio: true })\n        .then((stream) => {\n          this.streamBeingCaptured = stream;\n          this.mediaRecorder = new MediaRecorder(stream);\n          this.audioBlobs = [];\n          this.mediaRecorder.addEventListener('dataavailable', (event) => {\n            this.audioBlobs.push(event.data);\n          });\n          this.mediaRecorder.start();\n          this.timerInterval = setInterval(() => {\n            this.calculateTime();\n          }, 1000);\n        });\n    }\n  }\n\n  stopRecording() {\n    return new Promise((resolve) => {\n      const mimeType = this.mediaRecorder?.mimeType;\n      this.mediaRecorder?.addEventListener('stop', () => {\n        const audioBlob = new Blob(this.audioBlobs, { type: mimeType });\n        resolve(audioBlob);\n      });\n      this.mediaRecorder?.stop();\n      this.streamBeingCaptured.getTracks().forEach((track) => track.stop());\n      this.mediaRecorder = null;\n      this.streamBeingCaptured = null;\n      this.resetTimer();\n    });\n  }\n\n  calculateTime() {\n    this.time.seconds++;\n    if (this.time.seconds >= 60) {\n      this.time.seconds = 0;\n      this.time.minutes++;\n      if (this.time.minutes >= 60) {\n        this.time.minutes = 0;\n        this.time.hours++;\n      }\n    }\n\n    const formattedTime =\n      (this.time.hours > 0 ? this.time.hours + ':' : '') +\n      (this.time.minutes < 10 ? '0' + this.time.minutes : this.time.minutes) +\n      ':' +\n      (this.time.seconds < 10 ? '0' + this.time.seconds : this.time.seconds);\n\n    this.timer.set(formattedTime);\n  }\n\n  resetTimer() {\n    clearInterval(this.timerInterval);\n    this.time.seconds = 0;\n    this.time.minutes = 0;\n    this.time.hours = 0;\n    this.timer.set('00:0');\n  }\n}\n","import {\n  AXClickEvent,\n  AXComponent,\n  AXFocusableComponent,\n  AXValuableComponent,\n  MXInputBaseValueComponent,\n  MXLookComponent,\n} from '@acorex/components/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  Output,\n  ViewChild,\n  ViewEncapsulation,\n  WritableSignal,\n  forwardRef,\n  inject,\n  signal,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXInputFileChange } from '../classes/events.interface';\nimport { AXRecordingService } from '../services/recording.service';\n\n@Component({\n  selector: 'ax-chat-input',\n  templateUrl: './chat-input.component.html',\n  styleUrls: ['./chat-input.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  providers: [\n    { provide: AXComponent, useExisting: AXChatInputComponent },\n    { provide: AXFocusableComponent, useExisting: AXChatInputComponent },\n    { provide: AXValuableComponent, useExisting: AXChatInputComponent },\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => AXChatInputComponent),\n      multi: true,\n    },\n  ],\n})\nexport class AXChatInputComponent extends classes(\n  MXInputBaseValueComponent<string>,\n  MXLookComponent\n) {\n  @ViewChild('inputFile') inputFile: ElementRef<HTMLInputElement>;\n  @Input()\n  maxLength: number;\n\n  @Input() hasAttachment = true;\n\n  @Input() haVoice = true;\n\n  @Input() acceptFileType: string = '*';\n\n  @Output()\n  onSendClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\n\n  @Output()\n  onStartRecording: EventEmitter<AXClickEvent> =\n    new EventEmitter<AXClickEvent>();\n\n  @Output()\n  onStopRecording: EventEmitter<AXClickEvent> =\n    new EventEmitter<AXClickEvent>();\n\n  @Output()\n  onFileChange: EventEmitter<AXInputFileChange> =\n    new EventEmitter<AXInputFileChange>();\n\n  recording: WritableSignal<boolean> = signal(false);\n\n  recordingService: AXRecordingService = inject(AXRecordingService);\n\n  protected _updateOn: 'change' | 'blur' | 'submit' = 'change';\n\n  protected _handleModelChange(value: string) {\n    this.commitValue(value, true);\n  }\n  protected recordedAudio: unknown | null = null;\n\n  handleRecordClick() {\n    this.recordedAudio = null;\n    this.recording.set(true);\n    this.recordingService\n      ?.startRecording()\n      .then(() => {\n        this.onStartRecording.emit({\n          component: this,\n          data: { recording: true },\n          isUserInteraction: true,\n        });\n      })\n      .catch((e) => {\n        console.error(e);\n      });\n  }\n\n  handleStopClick() {\n    this.recordingService.stopRecording().then((c) => {\n      this.recording.set(false);\n      this.recordedAudio = c;\n      this.onStopRecording.emit({\n        component: this,\n        data: { value: this.recordedAudio },\n      });\n    });\n  }\n  handleAttachClick() {\n    this.inputFile.nativeElement.click();\n  }\n\n  handleChangeFile(event: Event) {\n    this.onFileChange.emit({\n      component: this,\n      data: { value: (event.target as HTMLInputElement).files },\n    });\n  }\n\n  handleSendClick() {\n    this.onSendClick.emit({\n      component: this,\n      data: { value: this.value },\n      isUserInteraction: true,\n    });\n  }\n\n  handleSendVoiceClick() {\n    this.handleStopClick();\n    this.onSendClick.emit({\n      component: this,\n      data: { value: this.value },\n      isUserInteraction: true,\n    });\n  }\n}\n","<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>⚠️</div>\n            <div>➡️</div>\n            <div>🔃</div>\n            <div>🔷</div>\n            <div>🤚</div>\n            <div>😂</div>\n            <div>😊</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>","import { Injectable } from '@angular/core';\nimport { AXChatMessageType } from '../chat.types';\n\n@Injectable({ providedIn: 'root' })\nexport class AXChatMessageTypeRegistryService {\n  private plugins: Map<string, AXChatMessageType> = new Map<\n    string,\n    AXChatMessageType\n  >();\n\n  register(...plugins: AXChatMessageType[]) {\n    plugins.forEach((p) => this.plugins.set(p.name, p));\n  }\n\n  public resolve(name: string): AXChatMessageType | undefined {\n    return this.plugins.get(name);\n  }\n}\n","import { MXBaseComponent } from '@acorex/components/common';\nimport { isBrowser } from '@acorex/core/platform';\nimport { CdkPortalOutletAttachedRef, ComponentPortal } from '@angular/cdk/portal';\nimport { Component, ComponentRef, HostBinding, ViewEncapsulation, inject, input } from '@angular/core';\nimport { AXChatMessage } from '../chat.types';\nimport { AXChatMessageTypeRegistryService } from '../services/chat-message-type-registry.service';\n\n@Component({\n  selector: 'ax-chat-message',\n  templateUrl: './chat-message.component.html',\n  styleUrls: ['./chat-message.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class AXChatMessageComponent extends MXBaseComponent {\n  chatMessage = input<AXChatMessage<any>>();\n\n  protected _portal: ComponentPortal<any> | null;\n\n  protected get isOwn(): boolean {\n    return !this.chatMessage().fromId;\n  }\n\n  protected registryService = inject(AXChatMessageTypeRegistryService);\n\n  @HostBinding('class')\n  get __hostClass(): string {\n    return `${this.isOwn ? 'ax-state-own' : ''} ${!this.isOwn ? 'ax-state-other' : ''}`;\n  }\n\n  protected override ngOnInit(): void {\n    this._portal = new ComponentPortal(this.registryService.resolve(this.chatMessage().type).component);\n  }\n\n  protected _handleAttched(ref: CdkPortalOutletAttachedRef) {\n    ref = ref as ComponentRef<unknown>;\n    if (ref.instance && isBrowser()) {\n      Object.assign(ref.instance, { message: this.chatMessage() });\n      this.cdr.markForCheck();\n      const prefix = this.getHostElement().querySelector('ax-prefix') as HTMLDivElement;\n      const suffix = this.getHostElement().querySelector('ax-suffix') as HTMLDivElement;\n      const prefixContainer = this.getHostElement().querySelector('.ax-message-prefix');\n      const suffixContainer = this.getHostElement().querySelector('.ax-message-suffix');\n      if (prefix && prefixContainer) {\n        prefix.style.display = 'flex';\n        prefixContainer.append(prefix);\n      }\n      if (suffix && suffixContainer) {\n        suffix.style.display = 'flex';\n        suffixContainer.append(suffix);\n      }\n    }\n  }\n}\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>","import { MXBaseComponent } from '@acorex/components/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, WritableSignal, signal } from '@angular/core';\nimport { AXChatMessage } from '../chat.types';\n\n@Component({\n  selector: 'ax-chat-view',\n  templateUrl: './chat-view.component.html',\n  styleUrls: ['./chat-view.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class AXChatViewComponent extends MXBaseComponent {\n  @Input()\n  public set chats(items: AXChatMessage<any>[]) {\n    this._chats.set(items);\n  }\n\n  protected _chats: WritableSignal<AXChatMessage<any>[]> = signal([]);\n}\n","@for (item of _chats(); track $index) {\n<ax-chat-message [chatMessage]=\"item\"></ax-chat-message>\n}","import { Injectable, Type } from '@angular/core';\n\nexport interface AXChatMessageType {\n  name: string;\n  component: Type<any>;\n}\n\nexport interface AXChatMessage<T> {\n  id: string;\n  type: string;\n  sendTime: Date;\n  deliverTime?: Date;\n  readTime?: Date;\n  replyTo?: string;\n  content: T;\n  fromId?: string;\n}\n\n@Injectable()\nexport class AXChatMessageBaseComponent<T> {\n  message: AXChatMessage<T>;\n}\n","import { Component, ViewEncapsulation, signal } from '@angular/core';\nimport { AXChatMessageBaseComponent } from '../chat.types';\n\n@Component({\n  template: `<div [innerHtml]=\"_text()\"></div>`,\n  encapsulation: ViewEncapsulation.None,\n  inputs: ['message'],\n})\nexport class AXChatTextMessageComponent extends AXChatMessageBaseComponent<string> {\n  protected _text = signal('');\n\n  ngOnInit(): void {\n    this._text.set(this.message?.content);\n  }\n}\n","import { AXAudioWaveChangeEvent, AXAudioWaveComponent, AXWaveConfig } from '@acorex/components/audio-wave';\nimport { Component, ViewChild, ViewEncapsulation, WritableSignal, afterNextRender, signal } from '@angular/core';\nimport { AXChatMessageBaseComponent } from '../../chat.types';\n\n@Component({\n  selector: 'ax-chat-message-audio',\n  templateUrl: './chat-message-voice.component.html',\n  styleUrl: `./chat-message-voice.component.scss`,\n  encapsulation: ViewEncapsulation.None,\n  inputs: ['message'],\n})\nexport class AXChatAudioMessageComponent extends AXChatMessageBaseComponent<string> {\n  @ViewChild('a') audio: AXAudioWaveComponent;\n\n  config: AXWaveConfig = { url: '' };\n\n  audioState: WritableSignal<'playing' | 'paused' | 'loading' | 'ready' | 'error'> = signal('paused');\n  selectedRate = signal(1);\n  selectedRateIndex = signal(1);\n\n  protected audioProgress = signal(0);\n  protected timeLeft = signal(0);\n  protected currentTime = signal(0);\n  protected duration = signal(0);\n\n  constructor() {\n    super();\n    afterNextRender(() => {\n      this.config.url = this.message?.content;\n      this.config.audioRate = 0.25;\n      if (this.message.fromId) {\n        const neutral300 = getComputedStyle(document.body).getPropertyValue('--ax-color-neutral-200');\n        const neutral500 = getComputedStyle(document.body).getPropertyValue('--ax-color-neutral-500');\n\n        this.config.waveColor = `rgba(${neutral300})`;\n        this.config.progressColor = `rgba(${neutral500})`;\n      }\n      this.handleLoadingProgress();\n    });\n  }\n\n  handlePauseClick() {\n    this.audio?.pause();\n    this.audioState.set('paused');\n  }\n\n  handlePlayClick() {\n    this.audio?.play()?.then(() => {\n      this.audioState.set('playing');\n    });\n  }\n\n  handleOnStatusChanged(e: AXAudioWaveChangeEvent) {\n    if (e.status === 'load' || e.status === 'loading') {\n      this.audioState.set('loading');\n    }\n    if (e.status === 'loading') {\n      this.audioProgress.set(e.data.percent);\n      this.duration.set(Math.ceil(e.data.duration * 1000));\n    }\n    if (e.status === 'ready') {\n      this.audioState.set('ready');\n      this.duration.set(Math.ceil(e.data.duration * 1000));\n    }\n    if (e.status === 'finish') {\n      this.audioState.set('paused');\n    }\n    if (e.status === 'timeupdate') {\n      this.timeLeft.set(this.duration() - e.data.currentTime * 1000);\n      this.currentTime.set(e.data.currentTime * 1000);\n    }\n    if (e.status === 'error') {\n      this.audioState.set('error');\n    }\n  }\n\n  handleLoadingProgress() {\n    // this.audioLoaderProgress?.nativeElement.style.cssText = `--ax-audio-progress: ${this.audioProgress()}`;\n  }\n\n  handleCancelLoading() {\n    //\n  }\n\n  handleReloadClick() {\n    //\n    this.audioState.set('loading');\n    this.audio.load();\n  }\n\n  handleRateClick() {\n    const rates = [0.5, 1, 2, 4];\n    if (this.selectedRateIndex() == rates.length - 1) {\n      this.selectedRateIndex.set(0);\n    } else {\n      this.selectedRateIndex.set(this.selectedRateIndex() + 1);\n    }\n    this.selectedRate.set(rates[this.selectedRateIndex()]);\n    this.audio.setRate(this.selectedRate());\n  }\n}\n","<ax-prefix>\n  @switch (audioState()) {\n  @case ('paused')\n  {\n  {{currentTime() | format:'time-duration' | async}}\n  }\n  @case ('playing')\n  {\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\n</ax-prefix>\n<div class=\"ax-audio-controller\">\n\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\" style=\"margin-inline-start: 0.25rem;\"></i>\n  </button>\n  }\n\n  @case ('paused')\n  {\n  <button (click)=\"handlePlayClick()\">\n    <i class=\"ax-icon ax-icon-play\" style=\"margin-inline-start: 0.25rem;\"></i>\n  </button>\n  }\n\n  @case ('error')\n  {\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()\" class=\"ax-audio-loader\" [style.--ax-audio-progress]=\"audioProgress()\"\n    [style.--ax-animation-duration]=\"audioProgress()*10+'ms'\">\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 40 40\">\n      <circle fill=\"none\" stroke-linecap=\"round\" cx=\"20\" cy=\"20\" r=\"15.915494309\" />\n    </svg>\n  </button> -->\n  <button (click)=\"handleCancelLoading()\">\n    <ax-loading-spinner [size]=\"24\" [stroke]=\"2\" color=\"white\"></ax-loading-spinner>\n  </button>\n  }\n  }\n\n</div>\n<ax-audio-wave #a [config]=\"config\" (onStatusChanged)=\"handleOnStatusChanged($event)\"></ax-audio-wave>\n<ax-suffix>\n  <div class=\"ax-audio-rate-button\" [class.ax-state-isOwn]=\"!message?.fromId\" (click)=\"handleRateClick()\">\n    {{selectedRate()}}X</div>\n</ax-suffix>","import { AXAudioWaveModule } from '@acorex/components/audio-wave';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCircularProgressModule } from '@acorex/components/circular-progress';\nimport { AXRippleDirective } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { AsyncPipe, CommonModule } from '@angular/common';\nimport { Inject, ModuleWithProviders, NgModule, Optional } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXChatInputComponent } from './chat-input/chat-input.component';\nimport { AXChatMessageComponent } from './chat-message/chat-message.component';\nimport { AXChatTextMessageComponent } from './chat-messages/chat-message-text.component';\nimport { AXChatAudioMessageComponent } from './chat-messages/chat-messages-voice/chat-message-voice.component';\nimport { AXChatViewComponent } from './chat-view/chat-view.component';\nimport { AXChatMessageType } from './chat.types';\nimport { AXChatMessageTypeRegistryService } from './services/chat-message-type-registry.service';\nimport { AXRecordingService } from './services/recording.service';\n\nexport interface AXChatModuleConfig {\n  types: AXChatMessageType[];\n}\n\nconst COMPONENT = [\n  AXChatViewComponent,\n  AXChatInputComponent,\n  AXChatMessageComponent,\n  AXChatTextMessageComponent,\n  AXChatAudioMessageComponent,\n];\nconst MODULES = [\n  CommonModule,\n  FormsModule,\n  AsyncPipe,\n  AXRippleDirective,\n  AXButtonModule,\n  AXDecoratorModule,\n  AXTranslationModule,\n  AXDropdownModule,\n  AXFormatModule,\n  AXAudioWaveModule,\n  AXCircularProgressModule,\n  AXDateTimeModule,\n  CdkPortalOutlet,\n  AXLoadingModule,\n];\n\n@NgModule({\n  declarations: [...COMPONENT],\n  imports: [...MODULES],\n  exports: [...COMPONENT],\n  providers: [AXRecordingService],\n})\nexport class AXChatModule {\n  static forRoot(config?: AXChatModuleConfig): ModuleWithProviders<AXChatModule> {\n    return {\n      ngModule: AXChatModule,\n      providers: [\n        {\n          provide: 'AXChatModuleFactory',\n          useFactory: (registry: AXChatMessageTypeRegistryService) => () => {\n            if (config?.types?.length) {\n              registry.register(...config.types);\n            }\n            registry.register({\n              name: 'text',\n              component: AXChatTextMessageComponent,\n            });\n            registry.register({\n              name: 'audio',\n              component: AXChatAudioMessageComponent,\n            });\n          },\n          deps: [AXChatMessageTypeRegistryService],\n          multi: true,\n        },\n      ],\n    };\n  }\n\n  static forChild(config?: AXChatModuleConfig): ModuleWithProviders<AXChatModule> {\n    return {\n      ngModule: AXChatModule,\n      providers: [\n        {\n          provide: 'AXPWorkflowModuleFactory',\n          useFactory: (registry: AXChatMessageTypeRegistryService) => () => {\n            if (config?.types?.length) {\n              registry.register(...config.types);\n            }\n          },\n          deps: [AXChatMessageTypeRegistryService],\n          multi: true,\n        },\n      ],\n    };\n  }\n\n  /**\n   * @ignore\n   */\n  constructor(@Optional() @Inject('AXChatModuleFactory') instances: any[]) {\n    instances?.forEach((f) => {\n      f();\n    });\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class AXChatService {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i1.AXChatMessageComponent","i4","i5"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;MAGa,kBAAkB,CAAA;AAD/B,IAAA,WAAA,GAAA;QAEE,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QAEvB,IAAmB,CAAA,mBAAA,GAAQ,IAAI,CAAC;AAEhC,QAAA,IAAA,CAAA,KAAK,GAA2B,MAAM,CAAC,MAAM,CAAC,CAAC;AAErC,QAAA,IAAA,CAAA,IAAI,GAAG;AACf,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,KAAK,EAAE,CAAC;SACT,CAAC;AAuEH,KAAA;IAnEC,cAAc,GAAA;AACZ,QAAA,IAAI,EAAE,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;YACpE,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CACP,2EAA2E,CAC5E,CACF,CAAC;SACH;aAAM;YACL,OAAO,SAAS,CAAC,YAAY;AAC1B,iBAAA,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7B,iBAAA,IAAI,CAAC,CAAC,MAAM,KAAI;AACf,gBAAA,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC;gBAClC,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/C,gBAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;gBACrB,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,KAAK,KAAI;oBAC7D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnC,iBAAC,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC3B,gBAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,MAAK;oBACpC,IAAI,CAAC,aAAa,EAAE,CAAC;iBACtB,EAAE,IAAI,CAAC,CAAC;AACX,aAAC,CAAC,CAAC;SACN;KACF;IAED,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC7B,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;YAC9C,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,MAAM,EAAE,MAAK;AAChD,gBAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAChE,OAAO,CAAC,SAAS,CAAC,CAAC;AACrB,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACtE,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,UAAU,EAAE,CAAC;AACpB,SAAC,CAAC,CAAC;KACJ;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE;AAC3B,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACtB,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE;AAC3B,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACtB,gBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;aACnB;SACF;QAED,MAAM,aAAa,GACjB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,EAAE;aAChD,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACtE,GAAG;aACF,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAEzE,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;KAC/B;IAED,UAAU,GAAA;AACR,QAAA,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACpB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KACxB;8GAjFU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAlB,kBAAkB,EAAA,CAAA,CAAA,EAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;;;AC0CL,MAAO,oBAAqB,SAAQ,OAAO,EAC/C,yBAAiC,GACjC,eAAe,CAChB,CAAA;AApBD,IAAA,WAAA,GAAA;;QAyBW,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;QAErB,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;QAEf,IAAc,CAAA,cAAA,GAAW,GAAG,CAAC;AAGtC,QAAA,IAAA,CAAA,WAAW,GAA+B,IAAI,YAAY,EAAgB,CAAC;AAG3E,QAAA,IAAA,CAAA,gBAAgB,GACd,IAAI,YAAY,EAAgB,CAAC;AAGnC,QAAA,IAAA,CAAA,eAAe,GACb,IAAI,YAAY,EAAgB,CAAC;AAGnC,QAAA,IAAA,CAAA,YAAY,GACV,IAAI,YAAY,EAAqB,CAAC;AAExC,QAAA,IAAA,CAAA,SAAS,GAA4B,MAAM,CAAC,KAAK,CAAC,CAAC;AAEnD,QAAA,IAAA,CAAA,gBAAgB,GAAuB,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAExD,IAAS,CAAA,SAAA,GAAiC,QAAQ,CAAC;QAKnD,IAAa,CAAA,aAAA,GAAmB,IAAI,CAAC;AAwDhD,KAAA;AA3DW,IAAA,kBAAkB,CAAC,KAAa,EAAA;AACxC,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KAC/B;IAGD,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,gBAAgB;AACnB,cAAE,cAAc,EAAE;aACjB,IAAI,CAAC,MAAK;AACT,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AACzB,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;AACzB,gBAAA,iBAAiB,EAAE,IAAI;AACxB,aAAA,CAAC,CAAC;AACL,SAAC,CAAC;AACD,aAAA,KAAK,CAAC,CAAC,CAAC,KAAI;AACX,YAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnB,SAAC,CAAC,CAAC;KACN;IAED,eAAe,GAAA;QACb,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAI;AAC/C,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACvB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AACxB,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE;AACpC,aAAA,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;IACD,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KACtC;AAED,IAAA,gBAAgB,CAAC,KAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACrB,YAAA,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,EAAE,KAAK,EAAG,KAAK,CAAC,MAA2B,CAAC,KAAK,EAAE;AAC1D,SAAA,CAAC,CAAC;KACJ;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACpB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AAC3B,YAAA,iBAAiB,EAAE,IAAI;AACxB,SAAA,CAAC,CAAC;KACJ;IAED,oBAAoB,GAAA;QAClB,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACpB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AAC3B,YAAA,iBAAiB,EAAE,IAAI;AACxB,SAAA,CAAC,CAAC;KACJ;8GA7FU,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAXpB,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE;AAC3D,YAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,oBAAoB,EAAE;AACpE,YAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,oBAAoB,EAAE;AACnE,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACnD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1CH,2xFAqEM,EAAA,MAAA,EAAA,CAAA,4rEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FDzBO,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAjBhC,SAAS;+BACE,eAAe,EAAA,eAAA,EAGR,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAC1B,SAAA,EAAA;AACT,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,sBAAsB,EAAE;AAC3D,wBAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,sBAAsB,EAAE;AACpE,wBAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,sBAAsB,EAAE;AACnE,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,0BAA0B,CAAC;AACnD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,2xFAAA,EAAA,MAAA,EAAA,CAAA,4rEAAA,CAAA,EAAA,CAAA;8BAMuB,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW,CAAA;gBAEtB,SAAS,EAAA,CAAA;sBADR,KAAK;gBAGG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAGN,WAAW,EAAA,CAAA;sBADV,MAAM;gBAIP,gBAAgB,EAAA,CAAA;sBADf,MAAM;gBAKP,eAAe,EAAA,CAAA;sBADd,MAAM;gBAKP,YAAY,EAAA,CAAA;sBADX,MAAM;;;MEjEI,gCAAgC,CAAA;AAD7C,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,OAAO,GAAmC,IAAI,GAAG,EAGtD,CAAC;AASL,KAAA;IAPC,QAAQ,CAAC,GAAG,OAA4B,EAAA;QACtC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;KACrD;AAEM,IAAA,OAAO,CAAC,IAAY,EAAA;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KAC/B;8GAZU,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gCAAgC,cADnB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FACnB,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAD5C,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACU5B,MAAO,sBAAuB,SAAQ,eAAe,CAAA;AAN3D,IAAA,WAAA,GAAA;;QAOE,IAAW,CAAA,WAAA,GAAG,KAAK,EAAsB,CAAC;AAQhC,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,gCAAgC,CAAC,CAAC;AA8BtE,KAAA;AAlCC,IAAA,IAAc,KAAK,GAAA;AACjB,QAAA,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;KACnC;AAID,IAAA,IACI,WAAW,GAAA;QACb,OAAO,CAAA,EAAG,IAAI,CAAC,KAAK,GAAG,cAAc,GAAG,EAAE,CAAA,CAAA,EAAI,CAAC,IAAI,CAAC,KAAK,GAAG,gBAAgB,GAAG,EAAE,CAAA,CAAE,CAAC;KACrF;IAEkB,QAAQ,GAAA;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;KACrG;AAES,IAAA,cAAc,CAAC,GAA+B,EAAA;QACtD,GAAG,GAAG,GAA4B,CAAC;AACnC,QAAA,IAAI,GAAG,CAAC,QAAQ,IAAI,SAAS,EAAE,EAAE;AAC/B,YAAA,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC7D,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,WAAW,CAAmB,CAAC;YAClF,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,WAAW,CAAmB,CAAC;YAClF,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;YAClF,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;AAClF,YAAA,IAAI,MAAM,IAAI,eAAe,EAAE;AAC7B,gBAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AAC9B,gBAAA,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;aAChC;AACD,YAAA,IAAI,MAAM,IAAI,eAAe,EAAE;AAC7B,gBAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AAC9B,gBAAA,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;aAChC;SACF;KACF;8GAtCU,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,2RCbnC,ssBAoBM,EAAA,MAAA,EAAA,CAAA,knDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FDPO,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BACE,iBAAiB,EAAA,aAAA,EAGZ,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,ssBAAA,EAAA,MAAA,EAAA,CAAA,knDAAA,CAAA,EAAA,CAAA;8BAcjC,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,OAAO,CAAA;;;AEbhB,MAAO,mBAAoB,SAAQ,eAAe,CAAA;AAPxD,IAAA,WAAA,GAAA;;AAaY,QAAA,IAAA,CAAA,MAAM,GAAyC,MAAM,CAAC,EAAE,CAAC,CAAC;AACrE,KAAA;IANC,IACW,KAAK,CAAC,KAA2B,EAAA;AAC1C,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACxB;8GAJU,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,uGCXhC,wGAEC,EAAA,MAAA,EAAA,CAAA,sHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FDSY,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,mBAGP,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,wGAAA,EAAA,MAAA,EAAA,CAAA,sHAAA,CAAA,EAAA,CAAA;8BAI1B,KAAK,EAAA,CAAA;sBADf,KAAK;;;MEOK,0BAA0B,CAAA;8GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAA1B,0BAA0B,EAAA,CAAA,CAAA,EAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;;;ACVL,MAAO,0BAA2B,SAAQ,0BAAkC,CAAA;AALlF,IAAA,WAAA,GAAA;;AAMY,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAK9B,KAAA;IAHC,QAAQ,GAAA;QACN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KACvC;8GALU,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,2GAJ3B,CAAmC,iCAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAIlC,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,CAAmC,iCAAA,CAAA;oBAC7C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,MAAM,EAAE,CAAC,SAAS,CAAC;AACpB,iBAAA,CAAA;;;ACIK,MAAO,2BAA4B,SAAQ,0BAAkC,CAAA;AAcjF,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;AAZV,QAAA,IAAA,CAAA,MAAM,GAAiB,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AAEnC,QAAA,IAAA,CAAA,UAAU,GAAyE,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpG,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACzB,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAEpB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACrB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACxB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAI7B,eAAe,CAAC,MAAK;YACnB,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;AACxC,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;AAC7B,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACvB,gBAAA,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;AAC9F,gBAAA,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;gBAE9F,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAQ,KAAA,EAAA,UAAU,GAAG,CAAC;gBAC9C,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,CAAQ,KAAA,EAAA,UAAU,GAAG,CAAC;aACnD;YACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC/B,SAAC,CAAC,CAAC;KACJ;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KAC/B;IAED,eAAe,GAAA;QACb,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,MAAK;AAC5B,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACjC,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,qBAAqB,CAAC,CAAyB,EAAA;AAC7C,QAAA,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE;AACjD,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SAChC;AACD,QAAA,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE;YAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;SACtD;AACD,QAAA,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;SACtD;AACD,QAAA,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SAC/B;AACD,QAAA,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,EAAE;AAC7B,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;AAC/D,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;SACjD;AACD,QAAA,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAC9B;KACF;IAED,qBAAqB,GAAA;;KAEpB;IAED,mBAAmB,GAAA;;KAElB;IAED,iBAAiB,GAAA;;AAEf,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACnB;IAED,eAAe,GAAA;QACb,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,iBAAiB,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAChD,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC/B;aAAM;AACL,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC;SAC1D;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;KACzC;8GAxFU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,gNCXxC,k4DAgEY,EAAA,MAAA,EAAA,CAAA,qqDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,gJAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FDrDC,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,iBAGlB,iBAAiB,CAAC,IAAI,EAC7B,MAAA,EAAA,CAAC,SAAS,CAAC,EAAA,QAAA,EAAA,k4DAAA,EAAA,MAAA,EAAA,CAAA,qqDAAA,CAAA,EAAA,CAAA;wDAGH,KAAK,EAAA,CAAA;sBAApB,SAAS;uBAAC,GAAG,CAAA;;;AEehB,MAAM,SAAS,GAAG;IAChB,mBAAmB;IACnB,oBAAoB;IACpB,sBAAsB;IACtB,0BAA0B;IAC1B,2BAA2B;CAC5B,CAAC;AACF,MAAM,OAAO,GAAG;IACd,YAAY;IACZ,WAAW;IACX,SAAS;IACT,iBAAiB;IACjB,cAAc;IACd,iBAAiB;IACjB,mBAAmB;IACnB,gBAAgB;IAChB,cAAc;IACd,iBAAiB;IACjB,wBAAwB;IACxB,gBAAgB;IAChB,eAAe;IACf,eAAe;CAChB,CAAC;MAQW,YAAY,CAAA;IACvB,OAAO,OAAO,CAAC,MAA2B,EAAA;QACxC,OAAO;AACL,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,qBAAqB;AAC9B,oBAAA,UAAU,EAAE,CAAC,QAA0C,KAAK,MAAK;AAC/D,wBAAA,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;4BACzB,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;yBACpC;wBACD,QAAQ,CAAC,QAAQ,CAAC;AAChB,4BAAA,IAAI,EAAE,MAAM;AACZ,4BAAA,SAAS,EAAE,0BAA0B;AACtC,yBAAA,CAAC,CAAC;wBACH,QAAQ,CAAC,QAAQ,CAAC;AAChB,4BAAA,IAAI,EAAE,OAAO;AACb,4BAAA,SAAS,EAAE,2BAA2B;AACvC,yBAAA,CAAC,CAAC;qBACJ;oBACD,IAAI,EAAE,CAAC,gCAAgC,CAAC;AACxC,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACF,aAAA;SACF,CAAC;KACH;IAED,OAAO,QAAQ,CAAC,MAA2B,EAAA;QACzC,OAAO;AACL,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,0BAA0B;AACnC,oBAAA,UAAU,EAAE,CAAC,QAA0C,KAAK,MAAK;AAC/D,wBAAA,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;4BACzB,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;yBACpC;qBACF;oBACD,IAAI,EAAE,CAAC,gCAAgC,CAAC;AACxC,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACF,aAAA;SACF,CAAC;KACH;AAED;;AAEG;AACH,IAAA,WAAA,CAAuD,SAAgB,EAAA;AACrE,QAAA,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,KAAI;AACvB,YAAA,CAAC,EAAE,CAAC;AACN,SAAC,CAAC,CAAC;KACJ;AApDU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,kBAgDS,qBAAqB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAhD1C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,iBA7BvB,mBAAmB;YACnB,oBAAoB;YACpB,sBAAsB;YACtB,0BAA0B;AAC1B,YAAA,2BAA2B,aAG3B,YAAY;YACZ,WAAW;YACX,SAAS;YACT,iBAAiB;YACjB,cAAc;YACd,iBAAiB;YACjB,mBAAmB;YACnB,gBAAgB;YAChB,cAAc;YACd,iBAAiB;YACjB,wBAAwB;YACxB,gBAAgB;YAChB,eAAe;AACf,YAAA,eAAe,aApBf,mBAAmB;YACnB,oBAAoB;YACpB,sBAAsB;YACtB,0BAA0B;YAC1B,2BAA2B,CAAA,EAAA,CAAA,CAAA,EAAA;AAyBhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EAFZ,SAAA,EAAA,CAAC,kBAAkB,CAAC,YApB/B,YAAY;YACZ,WAAW;YAGX,cAAc;YACd,iBAAiB;YACjB,mBAAmB;YACnB,gBAAgB;YAChB,cAAc;YACd,iBAAiB;YACjB,wBAAwB;YACxB,gBAAgB;YAEhB,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;2FASJ,YAAY,EAAA,UAAA,EAAA,CAAA;kBANxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC;AAC5B,oBAAA,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;AACrB,oBAAA,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;oBACvB,SAAS,EAAE,CAAC,kBAAkB,CAAC;AAChC,iBAAA,CAAA;;0BAiDc,QAAQ;;0BAAI,MAAM;2BAAC,qBAAqB,CAAA;;;MCtG1C,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAb,aAAa,EAAA,CAAA,CAAA,EAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;;;ACFX;;AAEG;;;;"}
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     |