@acorex/components 18.5.14 → 18.5.15
Sign up to get free protection for your applications and to get access to all the features.
- package/button/index.d.ts +1 -0
- package/button/lib/button.class.d.ts +1 -0
- package/button/lib/button.component.d.ts +3 -1
- package/dialog/lib/dialog.class.d.ts +1 -0
- package/dialog/lib/dialog.service.d.ts +2 -2
- package/esm2022/button/index.mjs +2 -1
- package/esm2022/button/lib/button.class.mjs +2 -0
- package/esm2022/button/lib/button.component.mjs +5 -4
- package/esm2022/conversation/lib/conversation-input/conversation-input.component.mjs +1 -1
- package/esm2022/conversation/lib/conversation-message/conversation-message.component.mjs +1 -1
- package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +1 -1
- package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +1 -1
- package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +1 -1
- package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +1 -1
- package/esm2022/data-table/lib/data-table/data-table.component.mjs +1 -1
- package/esm2022/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.mjs +1 -1
- package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +1 -1
- package/esm2022/dialog/lib/dialog.class.mjs +1 -1
- package/esm2022/dialog/lib/dialog.component.mjs +1 -1
- package/esm2022/dialog/lib/dialog.service.mjs +5 -3
- package/esm2022/form/lib/validation-summary.component.mjs +1 -1
- package/esm2022/loading-dialog/lib/loading-dialog.component.mjs +1 -1
- package/esm2022/notification/lib/notification.component.mjs +1 -1
- package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +1 -1
- package/esm2022/scheduler/lib/scheduler.component.mjs +1 -1
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.mjs +3 -3
- package/fesm2022/acorex-components-button.mjs +4 -3
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +2 -2
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +4 -4
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +2 -2
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +5 -3
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +1 -1
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +1 -1
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +2 -2
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +2 -2
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/package.json +70 -70
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-conversation.mjs","sources":["../../../../libs/components/conversation/src/lib/classes/events.interface.ts","../../../../libs/components/conversation/src/lib/conversation-container/conversation-container.component.ts","../../../../libs/components/conversation/src/lib/conversation-container/conversation-container.component.html","../../../../libs/components/conversation/src/lib/services/conversation.service.ts","../../../../libs/components/conversation/src/lib/services/recording.service.ts","../../../../libs/components/conversation/src/lib/conversation-input/conversation-input.component.ts","../../../../libs/components/conversation/src/lib/conversation-input/conversation-input.component.html","../../../../libs/components/conversation/src/lib/services/conversation-message-type-registry.service.ts","../../../../libs/components/conversation/src/lib/conversation-message/conversation-message.component.ts","../../../../libs/components/conversation/src/lib/conversation-message/conversation-message.component.html","../../../../libs/components/conversation/src/lib/conversation.types.ts","../../../../libs/components/conversation/src/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.ts","../../../../libs/components/conversation/src/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.html","../../../../libs/components/conversation/src/lib/conversation-view/conversation-view.component.ts","../../../../libs/components/conversation/src/lib/conversation-view/conversation-view.component.html","../../../../libs/components/conversation/src/lib/conversation-messages/conversation-message-file/conversation-message-file.component.ts","../../../../libs/components/conversation/src/lib/conversation-messages/conversation-message-file/conversation-message-file.component.html","../../../../libs/components/conversation/src/lib/conversation-messages/conversation-message-image-popup/conversation-message-image-popup.component.ts","../../../../libs/components/conversation/src/lib/conversation-messages/conversation-message-image/conversation-message-image.component.ts","../../../../libs/components/conversation/src/lib/conversation-messages/conversation-message-text/conversation-message-text.component.ts","../../../../libs/components/conversation/src/lib/conversation-messages/conversation-message-video/conversation-message-video.component.ts","../../../../libs/components/conversation/src/lib/conversation-messages/conversation-message-voice/conversation-message-voice.component.ts","../../../../libs/components/conversation/src/lib/conversation-messages/conversation-message-voice/conversation-message-voice.component.html","../../../../libs/components/conversation/src/lib/conversation.module.ts","../../../../libs/components/conversation/src/acorex-components-conversation.ts"],"sourcesContent":["import { AXEvent, AXHtmlEvent } from '@acorex/components/common';\n\nexport interface AXInputFileChange extends AXHtmlEvent<MouseEvent> {\n data?: any;\n}\nexport class AXConversationActionEvent extends AXEvent {\n data: any;\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ax-conversation-container',\n templateUrl: './conversation-container.component.html',\n styles: `\n ax-conversation-container {\n width: 100%;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXConversationContainerComponent {}\n","<div class=\"ax-conversation-container\">\n <ng-content> </ng-content>\n</div>\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class AXConversationService {\n replyId = signal('');\n\n chats = signal([]);\n}\n","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(new Error('mediaDevices API or getUserMedia method is not supported in this browser.'));\n } else {\n return navigator.mediaDevices.getUserMedia({ audio: true }).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 endRecording() {\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 Signal,\n ViewChild,\n ViewEncapsulation,\n WritableSignal,\n computed,\n forwardRef,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXConversationMessage } from '../conversation.types';\nimport { AXConversationService } from '../services/conversation.service';\nimport { AXRecordingService } from '../services/recording.service';\n\n@Component({\n selector: 'ax-conversation-input',\n templateUrl: './conversation-input.component.html',\n styleUrls: ['./conversation-input.component.scss'],\n inputs: ['look'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXComponent, useExisting: AXConversationInputComponent },\n { provide: AXFocusableComponent, useExisting: AXConversationInputComponent },\n { provide: AXValuableComponent, useExisting: AXConversationInputComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXConversationInputComponent),\n multi: true,\n },\n ],\n})\nexport class AXConversationInputComponent extends classes(MXInputBaseValueComponent<string>, MXLookComponent) {\n @ViewChild('inputFile') inputFile: ElementRef<HTMLInputElement>;\n\n conversationService = inject(AXConversationService);\n\n protected chats: Signal<AXConversationMessage<any>[]> = computed(() => {\n return this.conversationService.chats();\n });\n\n protected replyChat: Signal<AXConversationMessage<any>> = computed(() => {\n const findMessage = this.chats().find((item) => item.id === this.conversationService.replyId());\n return findMessage;\n });\n\n maxLength = input<number>();\n hasAttachment = input<boolean>();\n haVoice = input<boolean>();\n acceptFileType = input<string>('*');\n\n onSendClick = output<AXClickEvent>();\n onStartRecording = output<AXClickEvent>();\n onCancelRecording = output<AXClickEvent>();\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\n handleRecordClick() {\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 throw e;\n });\n }\n\n handleCancelRecordingClick() {\n this.recording.set(false);\n\n this.onCancelRecording.emit({\n component: this,\n data: { value: null },\n });\n }\n\n handleAttachClick() {\n this.inputFile.nativeElement.click();\n }\n\n handleChangeFile(event: Event) {\n this.onSendClick.emit({\n component: this,\n data: { value: (event.target as HTMLInputElement).files, type: 'file' },\n });\n }\n\n handleSendClick() {\n this.onSendClick.emit({\n component: this,\n data: { value: this.value, replyChat: this.replyChat() || null, type: 'text' },\n isUserInteraction: true,\n });\n this.conversationService.replyId.set('');\n }\n\n handleSendVoiceClick() {\n this.recordingService.endRecording().then((c) => {\n this.recording.set(false);\n this.onSendClick.emit({\n component: this,\n data: { value: c, type: 'voice' },\n isUserInteraction: true,\n });\n });\n }\n\n closeReplyHandler() {\n this.conversationService.replyId.set('');\n }\n}\n","@if (replyChat()) {\n <div class=\"ax-editor-reply-container ax-editor-container ax-look-{{ look }}\">\n <div class=\"ax-reply-start\">\n <i class=\"fa-solid fa-reply\"></i>\n @switch (replyChat().type) {\n @case ('text') {\n <p>\n {{ replyChat().content }}\n </p>\n }\n @case ('image') {\n <div class=\"ax-reply-types\">\n <img src=\"{{ replyChat().content }}\" alt=\"\" />\n {{ replyChat().type }}\n </div>\n }\n @case ('video') {\n <div class=\"ax-reply-types\">\n <video src=\"{{ replyChat().content }}\" alt=\"\"></video>\n {{ replyChat().type }}\n </div>\n }\n @case ('file') {\n <div class=\"ax-reply-types\">\n <i class=\"fa-regular fa-folder-open\"></i>\n {{ replyChat().name }}\n </div>\n }\n @default {\n <p>\n {{ replyChat().type }}\n </p>\n }\n }\n </div>\n <i (click)=\"closeReplyHandler()\" class=\"fa-solid fa-xmark ax-cursor-pointer\"></i>\n </div>\n}\n\n<div class=\"ax-conversation-input ax-editor-container ax-look-{{ look }}\" [class.ax-state-recording]=\"recording()\">\n @if (recording()) {\n <div class=\"ax-conversation-input-start-side\">\n <span class=\"ax-record-dot\"></span>\n <span>{{ recordingService.timer() }}</span>\n </div>\n <div class=\"ax-conversation-input-main-side\">\n <ax-button\n class=\"ax-sm\"\n look=\"blank\"\n color=\"primary\"\n [text]=\"'cancel' | translate | async\"\n (onClick)=\"handleCancelRecordingClick()\"\n ></ax-button>\n </div>\n <div class=\"ax-conversation-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-conversation-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\n <textarea\n class=\"ax-conversation-input-main-side\"\n oninput='this.style.height = \"\";this.style.height = this.scrollHeight + \"px\"'\n type=\"text\"\n rows=\"1\"\n [id]=\"id\"\n [name]=\"name\"\n [attr.placeholder]=\"placeholder\"\n [attr.maxlength]=\"maxLength()\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [ngModelOptions]=\"{ updateOn: _updateOn }\"\n (keydown)=\"emitOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n >\n </textarea>\n\n <div class=\"ax-conversation-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 multiple #inputFile [accept]=\"acceptFileType()\" type=\"file\" class=\"ax-attach-input\" (change)=\"handleChangeFile($event)\" />\n } @else {\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>\n","import { Injectable } from '@angular/core';\nimport { AXConversationMessageType } from '../conversation.types';\n\n@Injectable({ providedIn: 'root' })\nexport class AXConversationMessageTypeRegistryService {\n private plugins: Map<string, AXConversationMessageType> = new Map<string, AXConversationMessageType>();\n\n register(...plugins: AXConversationMessageType[]) {\n plugins.forEach((p) => this.plugins.set(p.name, p));\n }\n\n public resolve(name: string): AXConversationMessageType | undefined {\n return this.plugins.get(name);\n }\n}\n","import { MXBaseComponent } from '@acorex/components/common';\nimport { AXPopoverComponent } from '@acorex/components/popover';\nimport { isBrowser } from '@acorex/core/platform';\nimport { CdkPortalOutletAttachedRef, ComponentPortal } from '@angular/cdk/portal';\nimport { Component, ComponentRef, HostBinding, ViewEncapsulation, inject, input, viewChild } from '@angular/core';\nimport { AXConversationMessage } from '../conversation.types';\nimport { AXConversationMessageTypeRegistryService } from '../services/conversation-message-type-registry.service';\nimport { AXConversationService } from '../services/conversation.service';\n\n@Component({\n selector: 'ax-conversation-message',\n templateUrl: './conversation-message.component.html',\n styleUrls: ['./conversation-message.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXConversationMessageComponent extends MXBaseComponent {\n popover = viewChild<AXPopoverComponent>('popover');\n\n conversationService = inject(AXConversationService);\n chatMessage = input<AXConversationMessage<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(AXConversationMessageTypeRegistryService);\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 protected _handleAttached(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 protected handleResendClick() {\n this.popover()?.close();\n this.chatMessage().onResendClick();\n }\n\n protected handleDeleteClick() {\n this.popover()?.close();\n this.chatMessage().onDeleteClick();\n }\n\n protected replyHandler(e) {\n this.conversationService.replyId.set(e);\n }\n}\n","@if (chatMessage().fromId) {\n <ax-avatar [size]=\"36\"></ax-avatar>\n}\n\n@if (isOwn) {\n <i (click)=\"replyHandler(chatMessage().id)\" class=\"fa-solid fa-reply ax-cursor-pointer\"></i>\n}\n\n<div class=\"ax-message-content\" [class.ax-state-own]=\"!chatMessage().fromId\" [class.ax-state-other]=\"chatMessage().fromId\">\n <ng-template [cdkPortalOutlet]=\"_portal\" (attached)=\"_handleAttached($event)\"></ng-template>\n\n <div class=\"ax-chat-message-status\">\n <div class=\"ax-message-prefix\"></div>\n <div>\n <div class=\"ax-message-suffix\"></div>\n <span>\n {{ chatMessage().sendTime | format: 'datetime' : 'HH:mm' | async }}\n </span>\n <span>\n @if (isOwn) {\n @if (chatMessage().deliverTime && chatMessage().sendTime) {\n <i class=\"ax-icon ax-icon-check ax-message-status\"></i>\n }\n @if (chatMessage().readTime && chatMessage().sendTime) {\n <i class=\"ax-icon ax-icon-dobble-check ax-message-status\"></i>\n }\n }\n </span>\n </div>\n </div>\n</div>\n\n@if (!chatMessage().sendTime) {\n <ax-button class=\"ax-resend-button ax-xs\" color=\"danger\" #b>\n <ax-icon class=\"ax-icon ax-icon-error\"></ax-icon>\n\n <ax-popover [target]=\"b\" placement=\"bottom-end\" #popover>\n <div class=\"ax-overlay-pane\">\n <ax-content> </ax-content>\n <ax-button-item-list>\n @if (chatMessage().onResendClick) {\n <ax-button-item text=\"Resend\" (onClick)=\"handleResendClick()\">\n <ax-icon class=\"ax-icon ax-icon-reload ax-bold\"></ax-icon>\n </ax-button-item>\n }\n @if (chatMessage().onDeleteClick) {\n <ax-button-item text=\"Delete\" color=\"danger\" (onClick)=\"handleDeleteClick()\">\n <ax-icon class=\"ax-icon ax-icon-clear ax-bold\"></ax-icon>\n </ax-button-item>\n }\n </ax-button-item-list>\n </div>\n </ax-popover>\n </ax-button>\n}\n","import { Injectable, Type } from '@angular/core';\n\nexport interface AXConversationMessageType {\n name: string;\n component: Type<any>;\n}\n\nexport interface AXConversationMessage<T> {\n id: string;\n type: string;\n sendTime: Date | null;\n deliverTime?: Date;\n readTime?: Date;\n replyTo?: AXConversationMessage<T>;\n content: any;\n fromId?: string;\n name: string;\n onResendClick?: () => void;\n onDeleteClick?: () => void;\n onDownloadClick?: () => void;\n onCancelClick?: () => void;\n}\n\n@Injectable()\nexport class AXConversationMessageBaseComponent<T> {\n message: AXConversationMessage<T>;\n}\n","import {\n Component,\n ElementRef,\n Renderer2,\n ViewEncapsulation,\n WritableSignal,\n afterNextRender,\n inject,\n signal,\n viewChild,\n} from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\n\n@Component({\n selector: 'ax-conversation-message-audio',\n templateUrl: './conversation-message-audio.component.html',\n styleUrls: ['./conversation-message-audio.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXConversationMessageAudioComponent extends AXConversationMessageBaseComponent<string> {\n audioState: WritableSignal<'playing' | 'paused'> = signal('paused');\n\n audioTag = viewChild<ElementRef<HTMLAudioElement>>('a');\n renderer = inject(Renderer2);\n\n audioRate = signal(1);\n\n protected currentTime = signal(0);\n protected duration = signal(0);\n\n protected currentTimeFormat = signal(0);\n protected durationFormat = signal(0);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.renderer.setAttribute(this.audioTag().nativeElement, 'src', this.message.content);\n this.eventListeners();\n });\n }\n\n eventListeners() {\n this.ended();\n this.durationChange();\n this.timeUpdate();\n }\n\n clickHandler(e: any) {\n this.audioTag().nativeElement.pause();\n this.audioTag().nativeElement.currentTime = e;\n this.audioTag().nativeElement.play();\n }\n\n handlePauseClick() {\n this.audioState.set('paused');\n this.audioTag().nativeElement.pause();\n }\n\n handlePlayClick() {\n this.audioState.set('playing');\n this.audioTag().nativeElement.play();\n }\n\n handleRateClick() {\n if (this.audioRate() === 1) {\n this.audioRate.set(1.5);\n this.audioTag().nativeElement.playbackRate = 1.5;\n } else if (this.audioRate() === 1.5) {\n this.audioRate.set(2);\n this.audioTag().nativeElement.playbackRate = 2;\n } else if (this.audioRate() === 2) {\n this.audioRate.set(1);\n this.audioTag().nativeElement.playbackRate = 1;\n }\n }\n\n ended() {\n fromEvent(this.audioTag().nativeElement, 'ended').subscribe((e) => {\n this.audioState.set('paused');\n this.audioTag().nativeElement.pause();\n this.audioTag().nativeElement.currentTime = 0;\n });\n }\n durationChange() {\n fromEvent(this.audioTag().nativeElement, 'durationchange').subscribe((e) => {\n if (this.audioTag().nativeElement.duration === Infinity) return;\n this.duration.set(this.audioTag().nativeElement.duration);\n this.durationFormat.set(Math.ceil(this.audioTag().nativeElement.duration) * 1000);\n });\n }\n timeUpdate() {\n fromEvent(this.audioTag().nativeElement, 'timeupdate').subscribe((e) => {\n this.currentTime.set(this.audioTag().nativeElement.currentTime);\n this.currentTimeFormat.set(Math.ceil(this.audioTag().nativeElement.currentTime * 1000));\n });\n }\n}\n","<audio #a></audio>\n<ax-prefix>\n <div class=\"ax-time-rate\">\n @switch (audioState()) {\n @case ('paused') {\n {{ currentTimeFormat() | format: 'time-duration' | async }}\n }\n @case ('playing') {\n {{ currentTimeFormat() | format: 'time-duration' | async }}\n }\n @default {\n {{ durationFormat() | format: 'time-duration' | async }}\n }\n }\n <button class=\"ax-audio-speed\" (click)=\"handleRateClick()\">{{ audioRate() }}X</button>\n </div>\n</ax-prefix>\n<div class=\"ax-conversation-controller\">\n @switch (audioState()) {\n @case ('playing') {\n <button (click)=\"handlePauseClick()\">\n <i class=\"ax-icon ax-icon-pause\"></i>\n </button>\n }\n @case ('paused') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n }\n</div>\n<ax-slider\n class=\"ax-modify-bgSlider\"\n (onClick)=\"clickHandler($event)\"\n [maxValue]=\"duration()\"\n [minValue]=\"0\"\n [ngModel]=\"currentTime()\"\n color=\"secondary\"\n>\n</ax-slider>\n","import { MXBaseComponent } from '@acorex/components/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Signal,\n ViewContainerRef,\n ViewEncapsulation,\n afterNextRender,\n computed,\n inject,\n output,\n} from '@angular/core';\nimport { AXConversationActionEvent } from '../classes/events.interface';\nimport { AXConversationMessage } from '../conversation.types';\nimport { AXConversationService } from '../services/conversation.service';\n\n@Component({\n selector: 'ax-conversation-view',\n templateUrl: './conversation-view.component.html',\n styleUrls: ['./conversation-view.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXConversationViewComponent extends MXBaseComponent {\n conversationService = inject(AXConversationService);\n\n onAction = output<AXConversationActionEvent>();\n protected conversations: Signal<AXConversationMessage<any>[]> = computed(() => {\n return this.conversationService.chats();\n });\n\n viewRef: ViewContainerRef = inject(ViewContainerRef);\n constructor() {\n super();\n afterNextRender(() => {\n this.scrollIntoEndOfView();\n });\n }\n scrollIntoEndOfView() {\n const el = this.viewRef.element.nativeElement as HTMLElement;\n el.scroll({ top: el.scrollHeight });\n }\n}\n","@for (item of conversations(); track $index) {\n <ax-conversation-message [chatMessage]=\"item\"></ax-conversation-message>\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { AXFileService } from '@acorex/core/file';\nimport { HttpClient } from '@angular/common/http';\nimport { Component, ViewEncapsulation, WritableSignal, afterNextRender, inject, signal } from '@angular/core';\nimport { AXConversationViewComponent } from '../../conversation-view/conversation-view.component';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\n\n@Component({\n selector: 'ax-conversation-message-file',\n templateUrl: './conversation-message-file.component.html',\n styleUrl: './conversation-message-file.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXConversationFileMessageComponent extends AXConversationMessageBaseComponent<string> {\n fileState: WritableSignal<'loading' | 'ready' | 'error'> = signal('ready');\n fileSize: WritableSignal<number> = signal(null);\n fileName: WritableSignal<string> = signal('');\n\n fileService = inject(AXFileService);\n http = inject(HttpClient);\n parent = inject(AXConversationViewComponent);\n\n constructor() {\n super();\n afterNextRender(() => {\n if (this.message.name) {\n this.fileName.set(this.message.name);\n this.fileSize.set(this.fileService.getSize(this.message.content) as number);\n } else {\n this.fileName.set(this.message.content[0].name);\n this.fileSize.set(this.message.content[0].size);\n }\n });\n }\n\n handleDownloadFile() {\n this.parent.onAction.emit({ component: this, data: this.message, isUserInteraction: true });\n }\n\n handleCancelLoading() {\n this.parent.onAction.emit({ component: this, data: this.message, isUserInteraction: true });\n }\n}\n","<ax-prefix>\n {{ fileSize() | format: 'filesize' | async }}\n</ax-prefix>\n<div class=\"ax-file-container\">\n <div class=\"ax-conversation-controller\">\n @switch (fileState()) {\n @case ('ready') {\n <button (click)=\"handleDownloadFile()\">\n <i class=\"ax-icon ax-icon-download\"></i>\n </button>\n }\n\n @default {\n <button (click)=\"handleCancelLoading()\">\n <ax-loading-spinner\n [size]=\"24\"\n [stroke]=\"2\"\n [color]=\"message.fromId ? 'var(--ax-other-color)' : 'var(--ax-own-color)'\"\n ></ax-loading-spinner>\n </button>\n }\n }\n </div>\n\n <div class=\"ax-file-name\">{{ fileName() }}</div>\n</div>\n","import { afterNextRender, Component } from '@angular/core';\n\n@Component({\n selector: 'ax-conversation-message-image-popup',\n template: ` <div class=\"ax-image-popup-container\"><img class=\"ax-image-popup\" [src]=\"url\" alt=\"\" /></div>`,\n styleUrl: './conversation-message-image-popup.component.scss',\n})\nexport class ConversationMessageImagePopupComponent {\n protected url: string;\n\n constructor() {\n afterNextRender(() => {\n console.log(this.url);\n });\n }\n}\n","import { AXPopupService, AXPopupSizeType } from '@acorex/components/popup';\nimport { Component, afterNextRender, inject, signal } from '@angular/core';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\nimport { ConversationMessageImagePopupComponent } from '../conversation-message-image-popup/conversation-message-image-popup.component';\n\n@Component({\n selector: 'ax-conversation-message-image',\n template: `<img (click)=\"openPopup()\" [src]=\"_imageUrl()\" alt=\"\" /> `,\n styles: `\n img {\n cursor: pointer;\n margin-bottom: 0.5rem;\n width: 100%;\n border-radius: 0.75rem;\n }\n `,\n inputs: ['message'],\n})\nexport class AXConversationMessageImageComponent extends AXConversationMessageBaseComponent<string> {\n protected _imageUrl = signal('');\n private popup: AXPopupService = inject(AXPopupService);\n\n protected _options = {\n header: true,\n footer: false,\n size: 'md',\n draggable: true,\n hasBackdrop: true,\n closeButton: true,\n closeOnBackdropClick: false,\n };\n\n constructor() {\n super();\n afterNextRender(() => {\n this._imageUrl.set(this.message?.content);\n });\n }\n\n openPopup() {\n this.popup\n .open(ConversationMessageImagePopupComponent, {\n draggable: this._options.draggable,\n header: this._options.header,\n size: this._options.size as AXPopupSizeType,\n hasBackdrop: this._options.hasBackdrop,\n closeButton: this._options.closeButton,\n closeOnBackdropClick: this._options.closeOnBackdropClick,\n data: {\n url: this._imageUrl(),\n },\n })\n .then((c) => {\n console.log(c);\n });\n }\n}\n","import { Component, OnInit, ViewEncapsulation, signal } from '@angular/core';\nimport { AXConversationMessage, AXConversationMessageBaseComponent } from '../../conversation.types';\n\n@Component({\n template: `\n @if (replyText()) {\n <div class=\"ax-message-reply-container\">{{ replyText().content }}</div>\n }\n\n @if (replyImage()) {\n <div class=\"ax-message-reply-container\"><img [src]=\"replyImage()\" alt=\"\" /></div>\n }\n\n @if (replyVideo()) {\n <div class=\"ax-message-reply-container\"><video [src]=\"replyVideo()\"></video></div>\n }\n\n @if (replyFile()) {\n <div class=\"ax-message-reply-container\">\n <div class=\"file\">\n <i class=\"fa-regular fa-folder-open\"></i>\n {{ replyFile().name }}\n </div>\n </div>\n }\n\n @if (replyAudio() || replyVoice()) {\n <div class=\"ax-message-reply-container\">{{ replyAudio().type }}</div>\n }\n\n <div class=\"ax-text-message\" [innerHtml]=\"_text()\"></div>\n `,\n styleUrl: './conversation-message-text.component.scss',\n encapsulation: ViewEncapsulation.None,\n inputs: ['message'],\n})\nexport class AXConversationTextMessageComponent extends AXConversationMessageBaseComponent<string> implements OnInit {\n protected _text = signal('');\n protected replyText = signal<AXConversationMessage<string> | null>(null);\n protected replyImage = signal<AXConversationMessage<string> | null>(null);\n protected replyVideo = signal<AXConversationMessage<string> | null>(null);\n protected replyAudio = signal<AXConversationMessage<string> | null>(null);\n protected replyVoice = signal<AXConversationMessage<string> | null>(null);\n protected replyFile = signal<AXConversationMessage<string> | null>(null);\n\n ngOnInit(): void {\n this._text.set(this.message?.content);\n\n if (!this.message?.replyTo) return;\n\n switch (this.message.replyTo.type) {\n case 'text':\n this.replyText.set(this.message?.replyTo);\n break;\n case 'image':\n this.replyImage.set(this.message?.replyTo);\n break;\n case 'video':\n this.replyVideo.set(this.message?.replyTo);\n break;\n case 'audio':\n this.replyAudio.set(this.message?.replyTo);\n break;\n case 'voice':\n this.replyVoice.set(this.message?.replyTo);\n break;\n case 'file':\n this.replyFile.set(this.message?.replyTo);\n break;\n }\n }\n}\n","import { Component, OnInit, signal } from '@angular/core';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\n\n@Component({\n selector: 'ax-conversation-message-video',\n template: `<video controls [src]=\"_videoUrl()\"></video>`,\n styles: `\n video {\n margin-bottom: 0.5rem;\n width: 100%;\n border-radius: 0.75rem;\n }\n `,\n})\nexport class AXConversationMessageVideoComponent extends AXConversationMessageBaseComponent<string> implements OnInit {\n protected _videoUrl = signal('');\n\n ngOnInit(): void {\n this._videoUrl.set(this.message?.content);\n console.log(this._videoUrl());\n }\n}\n","import { AXAudioWaveChangeEvent, AXAudioWaveComponent, AXWaveConfig } from '@acorex/components/audio-wave';\nimport { Component, HostBinding, ViewChild, ViewEncapsulation, WritableSignal, afterNextRender, inject, signal } from '@angular/core';\nimport { AXConversationViewComponent } from '../../conversation-view/conversation-view.component';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\n\n@Component({\n selector: 'ax-conversation-message-audio',\n templateUrl: './conversation-message-voice.component.html',\n styleUrl: `./conversation-message-voice.component.scss`,\n encapsulation: ViewEncapsulation.None,\n inputs: ['message'],\n})\nexport class AXConversationVoiceMessageComponent extends AXConversationMessageBaseComponent<string> {\n @ViewChild('a') audio: AXAudioWaveComponent;\n\n config: AXWaveConfig = { url: '' };\n\n audioState: WritableSignal<'playing' | 'paused' | 'loading' | 'ready' | 'error'> = signal('paused');\n\n parent = inject(AXConversationViewComponent);\n\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 this.setWaveColor();\n this.audio.onStatusChanged.subscribe((c) => {\n this.parent.onAction.emit(c);\n });\n this.handleLoadingProgress();\n });\n }\n\n setWaveColor() {\n let waveColor = '';\n let progressColor = '';\n if (this.message.fromId) {\n waveColor = getComputedStyle(document.body).getPropertyValue('--ax-message-other-bar-color');\n progressColor = getComputedStyle(document.body).getPropertyValue('--ax-message-other-progress-color');\n } else {\n waveColor = getComputedStyle(document.body).getPropertyValue('--ax-message-own-bar-color');\n progressColor = getComputedStyle(document.body).getPropertyValue('--ax-message-own-progress-color');\n }\n this.config.waveColor = waveColor;\n this.config.progressColor = progressColor;\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 @HostBinding('class')\n get __hostClass(): string {\n return `${this.message.fromId ? 'ax-state-other' : 'ax-state-own'}`;\n }\n}\n","<ax-prefix>\n @switch (audioState()) {\n @case ('paused') {\n {{ currentTime() | format: 'time-duration' | async }}\n }\n @case ('playing') {\n {{ currentTime() | format: 'time-duration' | async }}\n }\n @default {\n {{ duration() | format: 'time-duration' | async }}\n }\n }\n <button class=\"ax-audio-speed\" (click)=\"handleRateClick()\"></button>\n</ax-prefix>\n<div class=\"ax-conversation-controller\">\n @switch (audioState()) {\n @case ('playing') {\n <button (click)=\"handlePauseClick()\">\n <i class=\"ax-icon ax-icon-pause\"></i>\n </button>\n }\n\n @case ('ready') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n\n @case ('paused') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n\n @case ('error') {\n <button class=\"ax-state-error\" (click)=\"handleReloadClick()\">\n <i class=\"ax-icon ax-icon-reload\"></i>\n </button>\n }\n\n @default {\n <button (click)=\"handleCancelLoading()\">\n <ax-loading-spinner\n [size]=\"24\"\n [stroke]=\"2\"\n [color]=\"message.fromId ? 'var(--ax-other-color)' : 'var(--ax-own-color)'\"\n ></ax-loading-spinner>\n </button>\n }\n }\n</div>\n<ax-audio-wave #a [config]=\"config\" (onStatusChanged)=\"handleOnStatusChanged($event)\"></ax-audio-wave>\n<ax-suffix>\n <div class=\"ax-audio-rate-button\" [class.ax-state-own]=\"!message?.fromId\" (click)=\"handleRateClick()\">{{ selectedRate() }}X</div>\n</ax-suffix>\n","import { AXAudioWaveModule } from '@acorex/components/audio-wave';\nimport { AXAvatarModule } from '@acorex/components/avatar';\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 { AXPopoverModule } from '@acorex/components/popover';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXSliderModule } from '@acorex/components/slider';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXFileModule } from '@acorex/core/file';\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 { AXConversationContainerComponent } from './conversation-container/conversation-container.component';\nimport { AXConversationInputComponent } from './conversation-input/conversation-input.component';\nimport { AXConversationMessageComponent } from './conversation-message/conversation-message.component';\nimport { AXConversationMessageAudioComponent } from './conversation-messages/conversation-message-audio/conversation-message-audio.component';\nimport { AXConversationFileMessageComponent } from './conversation-messages/conversation-message-file/conversation-message-file.component';\nimport { AXConversationMessageImageComponent } from './conversation-messages/conversation-message-image/conversation-message-image.component';\nimport { AXConversationTextMessageComponent } from './conversation-messages/conversation-message-text/conversation-message-text.component';\nimport { AXConversationMessageVideoComponent } from './conversation-messages/conversation-message-video/conversation-message-video.component';\nimport { AXConversationVoiceMessageComponent } from './conversation-messages/conversation-message-voice/conversation-message-voice.component';\nimport { AXConversationViewComponent } from './conversation-view/conversation-view.component';\nimport { AXConversationMessageType } from './conversation.types';\nimport { AXConversationMessageTypeRegistryService } from './services/conversation-message-type-registry.service';\nimport { AXConversationService } from './services/conversation.service';\nimport { AXRecordingService } from './services/recording.service';\n\nexport interface AXChatModuleConfig {\n types: AXConversationMessageType[];\n}\n\nconst COMPONENT = [\n AXConversationViewComponent,\n AXConversationInputComponent,\n AXConversationMessageComponent,\n AXConversationTextMessageComponent,\n AXConversationVoiceMessageComponent,\n AXConversationFileMessageComponent,\n AXConversationContainerComponent,\n AXConversationMessageAudioComponent,\n AXConversationMessageImageComponent,\n AXConversationMessageVideoComponent,\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 AXAvatarModule,\n AXPopoverModule,\n AXFileModule,\n AXSliderModule,\n];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [AXRecordingService, AXConversationService, AXPopupService],\n})\nexport class AXConversationModule {\n static forRoot(config?: AXChatModuleConfig): ModuleWithProviders<AXConversationModule> {\n return {\n ngModule: AXConversationModule,\n providers: [\n {\n provide: 'AXChatModuleFactory',\n useFactory: (registry: AXConversationMessageTypeRegistryService) => () => {\n if (config?.types?.length) {\n registry.register(...config.types);\n }\n registry.register({\n name: 'text',\n component: AXConversationTextMessageComponent,\n });\n registry.register({\n name: 'voice',\n component: AXConversationVoiceMessageComponent,\n });\n registry.register({\n name: 'file',\n component: AXConversationFileMessageComponent,\n });\n registry.register({\n name: 'audio',\n component: AXConversationMessageAudioComponent,\n });\n registry.register({\n name: 'image',\n component: AXConversationMessageImageComponent,\n });\n registry.register({\n name: 'video',\n component: AXConversationMessageVideoComponent,\n });\n },\n deps: [AXConversationMessageTypeRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n static forChild(config?: AXChatModuleConfig): ModuleWithProviders<AXConversationModule> {\n return {\n ngModule: AXConversationModule,\n providers: [\n {\n provide: 'AXPWorkflowModuleFactory',\n useFactory: (registry: AXConversationMessageTypeRegistryService) => () => {\n if (config?.types?.length) {\n registry.register(...config.types);\n }\n },\n deps: [AXConversationMessageTypeRegistryService],\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i3","i5","i1","i4","i6","i7","i1.AXConversationMessageComponent"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-components-conversation.mjs","sources":["../../../../libs/components/conversation/src/lib/classes/events.interface.ts","../../../../libs/components/conversation/src/lib/conversation-container/conversation-container.component.ts","../../../../libs/components/conversation/src/lib/conversation-container/conversation-container.component.html","../../../../libs/components/conversation/src/lib/services/conversation.service.ts","../../../../libs/components/conversation/src/lib/services/recording.service.ts","../../../../libs/components/conversation/src/lib/conversation-input/conversation-input.component.ts","../../../../libs/components/conversation/src/lib/conversation-input/conversation-input.component.html","../../../../libs/components/conversation/src/lib/services/conversation-message-type-registry.service.ts","../../../../libs/components/conversation/src/lib/conversation-message/conversation-message.component.ts","../../../../libs/components/conversation/src/lib/conversation-message/conversation-message.component.html","../../../../libs/components/conversation/src/lib/conversation.types.ts","../../../../libs/components/conversation/src/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.ts","../../../../libs/components/conversation/src/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.html","../../../../libs/components/conversation/src/lib/conversation-view/conversation-view.component.ts","../../../../libs/components/conversation/src/lib/conversation-view/conversation-view.component.html","../../../../libs/components/conversation/src/lib/conversation-messages/conversation-message-file/conversation-message-file.component.ts","../../../../libs/components/conversation/src/lib/conversation-messages/conversation-message-file/conversation-message-file.component.html","../../../../libs/components/conversation/src/lib/conversation-messages/conversation-message-image-popup/conversation-message-image-popup.component.ts","../../../../libs/components/conversation/src/lib/conversation-messages/conversation-message-image/conversation-message-image.component.ts","../../../../libs/components/conversation/src/lib/conversation-messages/conversation-message-text/conversation-message-text.component.ts","../../../../libs/components/conversation/src/lib/conversation-messages/conversation-message-video/conversation-message-video.component.ts","../../../../libs/components/conversation/src/lib/conversation-messages/conversation-message-voice/conversation-message-voice.component.ts","../../../../libs/components/conversation/src/lib/conversation-messages/conversation-message-voice/conversation-message-voice.component.html","../../../../libs/components/conversation/src/lib/conversation.module.ts","../../../../libs/components/conversation/src/acorex-components-conversation.ts"],"sourcesContent":["import { AXEvent, AXHtmlEvent } from '@acorex/components/common';\n\nexport interface AXInputFileChange extends AXHtmlEvent<MouseEvent> {\n data?: any;\n}\nexport class AXConversationActionEvent extends AXEvent {\n data: any;\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ax-conversation-container',\n templateUrl: './conversation-container.component.html',\n styles: `\n ax-conversation-container {\n width: 100%;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXConversationContainerComponent {}\n","<div class=\"ax-conversation-container\">\n <ng-content> </ng-content>\n</div>\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class AXConversationService {\n replyId = signal('');\n\n chats = signal([]);\n}\n","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(new Error('mediaDevices API or getUserMedia method is not supported in this browser.'));\n } else {\n return navigator.mediaDevices.getUserMedia({ audio: true }).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 endRecording() {\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 Signal,\n ViewChild,\n ViewEncapsulation,\n WritableSignal,\n computed,\n forwardRef,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXConversationMessage } from '../conversation.types';\nimport { AXConversationService } from '../services/conversation.service';\nimport { AXRecordingService } from '../services/recording.service';\n\n@Component({\n selector: 'ax-conversation-input',\n templateUrl: './conversation-input.component.html',\n styleUrls: ['./conversation-input.component.scss'],\n inputs: ['look'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXComponent, useExisting: AXConversationInputComponent },\n { provide: AXFocusableComponent, useExisting: AXConversationInputComponent },\n { provide: AXValuableComponent, useExisting: AXConversationInputComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXConversationInputComponent),\n multi: true,\n },\n ],\n})\nexport class AXConversationInputComponent extends classes(MXInputBaseValueComponent<string>, MXLookComponent) {\n @ViewChild('inputFile') inputFile: ElementRef<HTMLInputElement>;\n\n conversationService = inject(AXConversationService);\n\n protected chats: Signal<AXConversationMessage<any>[]> = computed(() => {\n return this.conversationService.chats();\n });\n\n protected replyChat: Signal<AXConversationMessage<any>> = computed(() => {\n const findMessage = this.chats().find((item) => item.id === this.conversationService.replyId());\n return findMessage;\n });\n\n maxLength = input<number>();\n hasAttachment = input<boolean>();\n haVoice = input<boolean>();\n acceptFileType = input<string>('*');\n\n onSendClick = output<AXClickEvent>();\n onStartRecording = output<AXClickEvent>();\n onCancelRecording = output<AXClickEvent>();\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\n handleRecordClick() {\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 throw e;\n });\n }\n\n handleCancelRecordingClick() {\n this.recording.set(false);\n\n this.onCancelRecording.emit({\n component: this,\n data: { value: null },\n });\n }\n\n handleAttachClick() {\n this.inputFile.nativeElement.click();\n }\n\n handleChangeFile(event: Event) {\n this.onSendClick.emit({\n component: this,\n data: { value: (event.target as HTMLInputElement).files, type: 'file' },\n });\n }\n\n handleSendClick() {\n this.onSendClick.emit({\n component: this,\n data: { value: this.value, replyChat: this.replyChat() || null, type: 'text' },\n isUserInteraction: true,\n });\n this.conversationService.replyId.set('');\n }\n\n handleSendVoiceClick() {\n this.recordingService.endRecording().then((c) => {\n this.recording.set(false);\n this.onSendClick.emit({\n component: this,\n data: { value: c, type: 'voice' },\n isUserInteraction: true,\n });\n });\n }\n\n closeReplyHandler() {\n this.conversationService.replyId.set('');\n }\n}\n","@if (replyChat()) {\n <div class=\"ax-editor-reply-container ax-editor-container ax-look-{{ look }}\">\n <div class=\"ax-reply-start\">\n <i class=\"fa-solid fa-reply\"></i>\n @switch (replyChat().type) {\n @case ('text') {\n <p>\n {{ replyChat().content }}\n </p>\n }\n @case ('image') {\n <div class=\"ax-reply-types\">\n <img src=\"{{ replyChat().content }}\" alt=\"\" />\n {{ replyChat().type }}\n </div>\n }\n @case ('video') {\n <div class=\"ax-reply-types\">\n <video src=\"{{ replyChat().content }}\" alt=\"\"></video>\n {{ replyChat().type }}\n </div>\n }\n @case ('file') {\n <div class=\"ax-reply-types\">\n <i class=\"fa-regular fa-folder-open\"></i>\n {{ replyChat().name }}\n </div>\n }\n @default {\n <p>\n {{ replyChat().type }}\n </p>\n }\n }\n </div>\n <i (click)=\"closeReplyHandler()\" class=\"fa-solid fa-xmark ax-cursor-pointer\"></i>\n </div>\n}\n\n<div class=\"ax-conversation-input ax-editor-container ax-look-{{ look }}\" [class.ax-state-recording]=\"recording()\">\n @if (recording()) {\n <div class=\"ax-conversation-input-start-side\">\n <span class=\"ax-record-dot\"></span>\n <span>{{ recordingService.timer() }}</span>\n </div>\n <div class=\"ax-conversation-input-main-side\">\n <ax-button\n class=\"ax-sm\"\n look=\"blank\"\n color=\"primary\"\n [text]=\"'cancel' | translate | async\"\n (onClick)=\"handleCancelRecordingClick()\"\n ></ax-button>\n </div>\n <div class=\"ax-conversation-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-conversation-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\n <textarea\n class=\"ax-conversation-input-main-side\"\n oninput='this.style.height = \"\";this.style.height = this.scrollHeight + \"px\"'\n type=\"text\"\n rows=\"1\"\n [id]=\"id\"\n [name]=\"name\"\n [attr.placeholder]=\"placeholder\"\n [attr.maxlength]=\"maxLength()\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [ngModelOptions]=\"{ updateOn: _updateOn }\"\n (keydown)=\"emitOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n >\n </textarea>\n\n <div class=\"ax-conversation-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 multiple #inputFile [accept]=\"acceptFileType()\" type=\"file\" class=\"ax-attach-input\" (change)=\"handleChangeFile($event)\" />\n } @else {\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>\n","import { Injectable } from '@angular/core';\nimport { AXConversationMessageType } from '../conversation.types';\n\n@Injectable({ providedIn: 'root' })\nexport class AXConversationMessageTypeRegistryService {\n private plugins: Map<string, AXConversationMessageType> = new Map<string, AXConversationMessageType>();\n\n register(...plugins: AXConversationMessageType[]) {\n plugins.forEach((p) => this.plugins.set(p.name, p));\n }\n\n public resolve(name: string): AXConversationMessageType | undefined {\n return this.plugins.get(name);\n }\n}\n","import { MXBaseComponent } from '@acorex/components/common';\nimport { AXPopoverComponent } from '@acorex/components/popover';\nimport { isBrowser } from '@acorex/core/platform';\nimport { CdkPortalOutletAttachedRef, ComponentPortal } from '@angular/cdk/portal';\nimport { Component, ComponentRef, HostBinding, ViewEncapsulation, inject, input, viewChild } from '@angular/core';\nimport { AXConversationMessage } from '../conversation.types';\nimport { AXConversationMessageTypeRegistryService } from '../services/conversation-message-type-registry.service';\nimport { AXConversationService } from '../services/conversation.service';\n\n@Component({\n selector: 'ax-conversation-message',\n templateUrl: './conversation-message.component.html',\n styleUrls: ['./conversation-message.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXConversationMessageComponent extends MXBaseComponent {\n popover = viewChild<AXPopoverComponent>('popover');\n\n conversationService = inject(AXConversationService);\n chatMessage = input<AXConversationMessage<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(AXConversationMessageTypeRegistryService);\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 protected _handleAttached(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 protected handleResendClick() {\n this.popover()?.close();\n this.chatMessage().onResendClick();\n }\n\n protected handleDeleteClick() {\n this.popover()?.close();\n this.chatMessage().onDeleteClick();\n }\n\n protected replyHandler(e) {\n this.conversationService.replyId.set(e);\n }\n}\n","@if (chatMessage().fromId) {\n <ax-avatar [size]=\"36\"></ax-avatar>\n}\n\n@if (isOwn) {\n <i (click)=\"replyHandler(chatMessage().id)\" class=\"fa-solid fa-reply ax-cursor-pointer\"></i>\n}\n\n<div class=\"ax-message-content\" [class.ax-state-own]=\"!chatMessage().fromId\" [class.ax-state-other]=\"chatMessage().fromId\">\n <ng-template [cdkPortalOutlet]=\"_portal\" (attached)=\"_handleAttached($event)\"></ng-template>\n\n <div class=\"ax-chat-message-status\">\n <div class=\"ax-message-prefix\"></div>\n <div>\n <div class=\"ax-message-suffix\"></div>\n <span>\n {{ chatMessage().sendTime | format: 'datetime' : 'HH:mm' | async }}\n </span>\n <span>\n @if (isOwn) {\n @if (chatMessage().deliverTime && chatMessage().sendTime) {\n <i class=\"ax-icon ax-icon-check ax-message-status\"></i>\n }\n @if (chatMessage().readTime && chatMessage().sendTime) {\n <i class=\"ax-icon ax-icon-dobble-check ax-message-status\"></i>\n }\n }\n </span>\n </div>\n </div>\n</div>\n\n@if (!chatMessage().sendTime) {\n <ax-button class=\"ax-resend-button ax-xs\" color=\"danger\" #b>\n <ax-icon class=\"ax-icon ax-icon-error\"></ax-icon>\n\n <ax-popover [target]=\"b\" placement=\"bottom-end\" #popover>\n <div class=\"ax-overlay-pane\">\n <ax-content> </ax-content>\n <ax-button-item-list>\n @if (chatMessage().onResendClick) {\n <ax-button-item text=\"Resend\" (onClick)=\"handleResendClick()\">\n <ax-icon class=\"ax-icon ax-icon-reload ax-bold\"></ax-icon>\n </ax-button-item>\n }\n @if (chatMessage().onDeleteClick) {\n <ax-button-item text=\"Delete\" color=\"danger\" (onClick)=\"handleDeleteClick()\">\n <ax-icon class=\"ax-icon ax-icon-clear ax-bold\"></ax-icon>\n </ax-button-item>\n }\n </ax-button-item-list>\n </div>\n </ax-popover>\n </ax-button>\n}\n","import { Injectable, Type } from '@angular/core';\n\nexport interface AXConversationMessageType {\n name: string;\n component: Type<any>;\n}\n\nexport interface AXConversationMessage<T> {\n id: string;\n type: string;\n sendTime: Date | null;\n deliverTime?: Date;\n readTime?: Date;\n replyTo?: AXConversationMessage<T>;\n content: any;\n fromId?: string;\n name: string;\n onResendClick?: () => void;\n onDeleteClick?: () => void;\n onDownloadClick?: () => void;\n onCancelClick?: () => void;\n}\n\n@Injectable()\nexport class AXConversationMessageBaseComponent<T> {\n message: AXConversationMessage<T>;\n}\n","import {\n Component,\n ElementRef,\n Renderer2,\n ViewEncapsulation,\n WritableSignal,\n afterNextRender,\n inject,\n signal,\n viewChild,\n} from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\n\n@Component({\n selector: 'ax-conversation-message-audio',\n templateUrl: './conversation-message-audio.component.html',\n styleUrls: ['./conversation-message-audio.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXConversationMessageAudioComponent extends AXConversationMessageBaseComponent<string> {\n audioState: WritableSignal<'playing' | 'paused'> = signal('paused');\n\n audioTag = viewChild<ElementRef<HTMLAudioElement>>('a');\n renderer = inject(Renderer2);\n\n audioRate = signal(1);\n\n protected currentTime = signal(0);\n protected duration = signal(0);\n\n protected currentTimeFormat = signal(0);\n protected durationFormat = signal(0);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.renderer.setAttribute(this.audioTag().nativeElement, 'src', this.message.content);\n this.eventListeners();\n });\n }\n\n eventListeners() {\n this.ended();\n this.durationChange();\n this.timeUpdate();\n }\n\n clickHandler(e: any) {\n this.audioTag().nativeElement.pause();\n this.audioTag().nativeElement.currentTime = e;\n this.audioTag().nativeElement.play();\n }\n\n handlePauseClick() {\n this.audioState.set('paused');\n this.audioTag().nativeElement.pause();\n }\n\n handlePlayClick() {\n this.audioState.set('playing');\n this.audioTag().nativeElement.play();\n }\n\n handleRateClick() {\n if (this.audioRate() === 1) {\n this.audioRate.set(1.5);\n this.audioTag().nativeElement.playbackRate = 1.5;\n } else if (this.audioRate() === 1.5) {\n this.audioRate.set(2);\n this.audioTag().nativeElement.playbackRate = 2;\n } else if (this.audioRate() === 2) {\n this.audioRate.set(1);\n this.audioTag().nativeElement.playbackRate = 1;\n }\n }\n\n ended() {\n fromEvent(this.audioTag().nativeElement, 'ended').subscribe((e) => {\n this.audioState.set('paused');\n this.audioTag().nativeElement.pause();\n this.audioTag().nativeElement.currentTime = 0;\n });\n }\n durationChange() {\n fromEvent(this.audioTag().nativeElement, 'durationchange').subscribe((e) => {\n if (this.audioTag().nativeElement.duration === Infinity) return;\n this.duration.set(this.audioTag().nativeElement.duration);\n this.durationFormat.set(Math.ceil(this.audioTag().nativeElement.duration) * 1000);\n });\n }\n timeUpdate() {\n fromEvent(this.audioTag().nativeElement, 'timeupdate').subscribe((e) => {\n this.currentTime.set(this.audioTag().nativeElement.currentTime);\n this.currentTimeFormat.set(Math.ceil(this.audioTag().nativeElement.currentTime * 1000));\n });\n }\n}\n","<audio #a></audio>\n<ax-prefix>\n <div class=\"ax-time-rate\">\n @switch (audioState()) {\n @case ('paused') {\n {{ currentTimeFormat() | format: 'time-duration' | async }}\n }\n @case ('playing') {\n {{ currentTimeFormat() | format: 'time-duration' | async }}\n }\n @default {\n {{ durationFormat() | format: 'time-duration' | async }}\n }\n }\n <button class=\"ax-audio-speed\" (click)=\"handleRateClick()\">{{ audioRate() }}X</button>\n </div>\n</ax-prefix>\n<div class=\"ax-conversation-controller\">\n @switch (audioState()) {\n @case ('playing') {\n <button (click)=\"handlePauseClick()\">\n <i class=\"ax-icon ax-icon-pause\"></i>\n </button>\n }\n @case ('paused') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n }\n</div>\n<ax-slider\n class=\"ax-modify-bgSlider\"\n (onClick)=\"clickHandler($event)\"\n [maxValue]=\"duration()\"\n [minValue]=\"0\"\n [ngModel]=\"currentTime()\"\n color=\"secondary\"\n>\n</ax-slider>\n","import { MXBaseComponent } from '@acorex/components/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Signal,\n ViewContainerRef,\n ViewEncapsulation,\n afterNextRender,\n computed,\n inject,\n output,\n} from '@angular/core';\nimport { AXConversationActionEvent } from '../classes/events.interface';\nimport { AXConversationMessage } from '../conversation.types';\nimport { AXConversationService } from '../services/conversation.service';\n\n@Component({\n selector: 'ax-conversation-view',\n templateUrl: './conversation-view.component.html',\n styleUrls: ['./conversation-view.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXConversationViewComponent extends MXBaseComponent {\n conversationService = inject(AXConversationService);\n\n onAction = output<AXConversationActionEvent>();\n protected conversations: Signal<AXConversationMessage<any>[]> = computed(() => {\n return this.conversationService.chats();\n });\n\n viewRef: ViewContainerRef = inject(ViewContainerRef);\n constructor() {\n super();\n afterNextRender(() => {\n this.scrollIntoEndOfView();\n });\n }\n scrollIntoEndOfView() {\n const el = this.viewRef.element.nativeElement as HTMLElement;\n el.scroll({ top: el.scrollHeight });\n }\n}\n","@for (item of conversations(); track $index) {\n <ax-conversation-message [chatMessage]=\"item\"></ax-conversation-message>\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { AXFileService } from '@acorex/core/file';\nimport { HttpClient } from '@angular/common/http';\nimport { Component, ViewEncapsulation, WritableSignal, afterNextRender, inject, signal } from '@angular/core';\nimport { AXConversationViewComponent } from '../../conversation-view/conversation-view.component';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\n\n@Component({\n selector: 'ax-conversation-message-file',\n templateUrl: './conversation-message-file.component.html',\n styleUrl: './conversation-message-file.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXConversationFileMessageComponent extends AXConversationMessageBaseComponent<string> {\n fileState: WritableSignal<'loading' | 'ready' | 'error'> = signal('ready');\n fileSize: WritableSignal<number> = signal(null);\n fileName: WritableSignal<string> = signal('');\n\n fileService = inject(AXFileService);\n http = inject(HttpClient);\n parent = inject(AXConversationViewComponent);\n\n constructor() {\n super();\n afterNextRender(() => {\n if (this.message.name) {\n this.fileName.set(this.message.name);\n this.fileSize.set(this.fileService.getSize(this.message.content) as number);\n } else {\n this.fileName.set(this.message.content[0].name);\n this.fileSize.set(this.message.content[0].size);\n }\n });\n }\n\n handleDownloadFile() {\n this.parent.onAction.emit({ component: this, data: this.message, isUserInteraction: true });\n }\n\n handleCancelLoading() {\n this.parent.onAction.emit({ component: this, data: this.message, isUserInteraction: true });\n }\n}\n","<ax-prefix>\n {{ fileSize() | format: 'filesize' | async }}\n</ax-prefix>\n<div class=\"ax-file-container\">\n <div class=\"ax-conversation-controller\">\n @switch (fileState()) {\n @case ('ready') {\n <button (click)=\"handleDownloadFile()\">\n <i class=\"ax-icon ax-icon-download\"></i>\n </button>\n }\n\n @default {\n <button (click)=\"handleCancelLoading()\">\n <ax-loading-spinner\n [size]=\"24\"\n [stroke]=\"2\"\n [color]=\"message.fromId ? 'var(--ax-other-color)' : 'var(--ax-own-color)'\"\n ></ax-loading-spinner>\n </button>\n }\n }\n </div>\n\n <div class=\"ax-file-name\">{{ fileName() }}</div>\n</div>\n","import { afterNextRender, Component } from '@angular/core';\n\n@Component({\n selector: 'ax-conversation-message-image-popup',\n template: ` <div class=\"ax-image-popup-container\"><img class=\"ax-image-popup\" [src]=\"url\" alt=\"\" /></div>`,\n styleUrl: './conversation-message-image-popup.component.scss',\n})\nexport class ConversationMessageImagePopupComponent {\n protected url: string;\n\n constructor() {\n afterNextRender(() => {\n console.log(this.url);\n });\n }\n}\n","import { AXPopupService, AXPopupSizeType } from '@acorex/components/popup';\nimport { Component, afterNextRender, inject, signal } from '@angular/core';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\nimport { ConversationMessageImagePopupComponent } from '../conversation-message-image-popup/conversation-message-image-popup.component';\n\n@Component({\n selector: 'ax-conversation-message-image',\n template: `<img (click)=\"openPopup()\" [src]=\"_imageUrl()\" alt=\"\" /> `,\n styles: `\n img {\n cursor: pointer;\n margin-bottom: 0.5rem;\n width: 100%;\n border-radius: 0.75rem;\n }\n `,\n inputs: ['message'],\n})\nexport class AXConversationMessageImageComponent extends AXConversationMessageBaseComponent<string> {\n protected _imageUrl = signal('');\n private popup: AXPopupService = inject(AXPopupService);\n\n protected _options = {\n header: true,\n footer: false,\n size: 'md',\n draggable: true,\n hasBackdrop: true,\n closeButton: true,\n closeOnBackdropClick: false,\n };\n\n constructor() {\n super();\n afterNextRender(() => {\n this._imageUrl.set(this.message?.content);\n });\n }\n\n openPopup() {\n this.popup\n .open(ConversationMessageImagePopupComponent, {\n draggable: this._options.draggable,\n header: this._options.header,\n size: this._options.size as AXPopupSizeType,\n hasBackdrop: this._options.hasBackdrop,\n closeButton: this._options.closeButton,\n closeOnBackdropClick: this._options.closeOnBackdropClick,\n data: {\n url: this._imageUrl(),\n },\n })\n .then((c) => {\n console.log(c);\n });\n }\n}\n","import { Component, OnInit, ViewEncapsulation, signal } from '@angular/core';\nimport { AXConversationMessage, AXConversationMessageBaseComponent } from '../../conversation.types';\n\n@Component({\n template: `\n @if (replyText()) {\n <div class=\"ax-message-reply-container\">{{ replyText().content }}</div>\n }\n\n @if (replyImage()) {\n <div class=\"ax-message-reply-container\"><img [src]=\"replyImage()\" alt=\"\" /></div>\n }\n\n @if (replyVideo()) {\n <div class=\"ax-message-reply-container\"><video [src]=\"replyVideo()\"></video></div>\n }\n\n @if (replyFile()) {\n <div class=\"ax-message-reply-container\">\n <div class=\"file\">\n <i class=\"fa-regular fa-folder-open\"></i>\n {{ replyFile().name }}\n </div>\n </div>\n }\n\n @if (replyAudio() || replyVoice()) {\n <div class=\"ax-message-reply-container\">{{ replyAudio().type }}</div>\n }\n\n <div class=\"ax-text-message\" [innerHtml]=\"_text()\"></div>\n `,\n styleUrl: './conversation-message-text.component.scss',\n encapsulation: ViewEncapsulation.None,\n inputs: ['message'],\n})\nexport class AXConversationTextMessageComponent extends AXConversationMessageBaseComponent<string> implements OnInit {\n protected _text = signal('');\n protected replyText = signal<AXConversationMessage<string> | null>(null);\n protected replyImage = signal<AXConversationMessage<string> | null>(null);\n protected replyVideo = signal<AXConversationMessage<string> | null>(null);\n protected replyAudio = signal<AXConversationMessage<string> | null>(null);\n protected replyVoice = signal<AXConversationMessage<string> | null>(null);\n protected replyFile = signal<AXConversationMessage<string> | null>(null);\n\n ngOnInit(): void {\n this._text.set(this.message?.content);\n\n if (!this.message?.replyTo) return;\n\n switch (this.message.replyTo.type) {\n case 'text':\n this.replyText.set(this.message?.replyTo);\n break;\n case 'image':\n this.replyImage.set(this.message?.replyTo);\n break;\n case 'video':\n this.replyVideo.set(this.message?.replyTo);\n break;\n case 'audio':\n this.replyAudio.set(this.message?.replyTo);\n break;\n case 'voice':\n this.replyVoice.set(this.message?.replyTo);\n break;\n case 'file':\n this.replyFile.set(this.message?.replyTo);\n break;\n }\n }\n}\n","import { Component, OnInit, signal } from '@angular/core';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\n\n@Component({\n selector: 'ax-conversation-message-video',\n template: `<video controls [src]=\"_videoUrl()\"></video>`,\n styles: `\n video {\n margin-bottom: 0.5rem;\n width: 100%;\n border-radius: 0.75rem;\n }\n `,\n})\nexport class AXConversationMessageVideoComponent extends AXConversationMessageBaseComponent<string> implements OnInit {\n protected _videoUrl = signal('');\n\n ngOnInit(): void {\n this._videoUrl.set(this.message?.content);\n console.log(this._videoUrl());\n }\n}\n","import { AXAudioWaveChangeEvent, AXAudioWaveComponent, AXWaveConfig } from '@acorex/components/audio-wave';\nimport { Component, HostBinding, ViewChild, ViewEncapsulation, WritableSignal, afterNextRender, inject, signal } from '@angular/core';\nimport { AXConversationViewComponent } from '../../conversation-view/conversation-view.component';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\n\n@Component({\n selector: 'ax-conversation-message-audio',\n templateUrl: './conversation-message-voice.component.html',\n styleUrl: `./conversation-message-voice.component.scss`,\n encapsulation: ViewEncapsulation.None,\n inputs: ['message'],\n})\nexport class AXConversationVoiceMessageComponent extends AXConversationMessageBaseComponent<string> {\n @ViewChild('a') audio: AXAudioWaveComponent;\n\n config: AXWaveConfig = { url: '' };\n\n audioState: WritableSignal<'playing' | 'paused' | 'loading' | 'ready' | 'error'> = signal('paused');\n\n parent = inject(AXConversationViewComponent);\n\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 this.setWaveColor();\n this.audio.onStatusChanged.subscribe((c) => {\n this.parent.onAction.emit(c);\n });\n this.handleLoadingProgress();\n });\n }\n\n setWaveColor() {\n let waveColor = '';\n let progressColor = '';\n if (this.message.fromId) {\n waveColor = getComputedStyle(document.body).getPropertyValue('--ax-message-other-bar-color');\n progressColor = getComputedStyle(document.body).getPropertyValue('--ax-message-other-progress-color');\n } else {\n waveColor = getComputedStyle(document.body).getPropertyValue('--ax-message-own-bar-color');\n progressColor = getComputedStyle(document.body).getPropertyValue('--ax-message-own-progress-color');\n }\n this.config.waveColor = waveColor;\n this.config.progressColor = progressColor;\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 @HostBinding('class')\n get __hostClass(): string {\n return `${this.message.fromId ? 'ax-state-other' : 'ax-state-own'}`;\n }\n}\n","<ax-prefix>\n @switch (audioState()) {\n @case ('paused') {\n {{ currentTime() | format: 'time-duration' | async }}\n }\n @case ('playing') {\n {{ currentTime() | format: 'time-duration' | async }}\n }\n @default {\n {{ duration() | format: 'time-duration' | async }}\n }\n }\n <button class=\"ax-audio-speed\" (click)=\"handleRateClick()\"></button>\n</ax-prefix>\n<div class=\"ax-conversation-controller\">\n @switch (audioState()) {\n @case ('playing') {\n <button (click)=\"handlePauseClick()\">\n <i class=\"ax-icon ax-icon-pause\"></i>\n </button>\n }\n\n @case ('ready') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n\n @case ('paused') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n\n @case ('error') {\n <button class=\"ax-state-error\" (click)=\"handleReloadClick()\">\n <i class=\"ax-icon ax-icon-reload\"></i>\n </button>\n }\n\n @default {\n <button (click)=\"handleCancelLoading()\">\n <ax-loading-spinner\n [size]=\"24\"\n [stroke]=\"2\"\n [color]=\"message.fromId ? 'var(--ax-other-color)' : 'var(--ax-own-color)'\"\n ></ax-loading-spinner>\n </button>\n }\n }\n</div>\n<ax-audio-wave #a [config]=\"config\" (onStatusChanged)=\"handleOnStatusChanged($event)\"></ax-audio-wave>\n<ax-suffix>\n <div class=\"ax-audio-rate-button\" [class.ax-state-own]=\"!message?.fromId\" (click)=\"handleRateClick()\">{{ selectedRate() }}X</div>\n</ax-suffix>\n","import { AXAudioWaveModule } from '@acorex/components/audio-wave';\nimport { AXAvatarModule } from '@acorex/components/avatar';\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 { AXPopoverModule } from '@acorex/components/popover';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXSliderModule } from '@acorex/components/slider';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXFileModule } from '@acorex/core/file';\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 { AXConversationContainerComponent } from './conversation-container/conversation-container.component';\nimport { AXConversationInputComponent } from './conversation-input/conversation-input.component';\nimport { AXConversationMessageComponent } from './conversation-message/conversation-message.component';\nimport { AXConversationMessageAudioComponent } from './conversation-messages/conversation-message-audio/conversation-message-audio.component';\nimport { AXConversationFileMessageComponent } from './conversation-messages/conversation-message-file/conversation-message-file.component';\nimport { AXConversationMessageImageComponent } from './conversation-messages/conversation-message-image/conversation-message-image.component';\nimport { AXConversationTextMessageComponent } from './conversation-messages/conversation-message-text/conversation-message-text.component';\nimport { AXConversationMessageVideoComponent } from './conversation-messages/conversation-message-video/conversation-message-video.component';\nimport { AXConversationVoiceMessageComponent } from './conversation-messages/conversation-message-voice/conversation-message-voice.component';\nimport { AXConversationViewComponent } from './conversation-view/conversation-view.component';\nimport { AXConversationMessageType } from './conversation.types';\nimport { AXConversationMessageTypeRegistryService } from './services/conversation-message-type-registry.service';\nimport { AXConversationService } from './services/conversation.service';\nimport { AXRecordingService } from './services/recording.service';\n\nexport interface AXChatModuleConfig {\n types: AXConversationMessageType[];\n}\n\nconst COMPONENT = [\n AXConversationViewComponent,\n AXConversationInputComponent,\n AXConversationMessageComponent,\n AXConversationTextMessageComponent,\n AXConversationVoiceMessageComponent,\n AXConversationFileMessageComponent,\n AXConversationContainerComponent,\n AXConversationMessageAudioComponent,\n AXConversationMessageImageComponent,\n AXConversationMessageVideoComponent,\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 AXAvatarModule,\n AXPopoverModule,\n AXFileModule,\n AXSliderModule,\n];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [AXRecordingService, AXConversationService, AXPopupService],\n})\nexport class AXConversationModule {\n static forRoot(config?: AXChatModuleConfig): ModuleWithProviders<AXConversationModule> {\n return {\n ngModule: AXConversationModule,\n providers: [\n {\n provide: 'AXChatModuleFactory',\n useFactory: (registry: AXConversationMessageTypeRegistryService) => () => {\n if (config?.types?.length) {\n registry.register(...config.types);\n }\n registry.register({\n name: 'text',\n component: AXConversationTextMessageComponent,\n });\n registry.register({\n name: 'voice',\n component: AXConversationVoiceMessageComponent,\n });\n registry.register({\n name: 'file',\n component: AXConversationFileMessageComponent,\n });\n registry.register({\n name: 'audio',\n component: AXConversationMessageAudioComponent,\n });\n registry.register({\n name: 'image',\n component: AXConversationMessageImageComponent,\n });\n registry.register({\n name: 'video',\n component: AXConversationMessageVideoComponent,\n });\n },\n deps: [AXConversationMessageTypeRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n static forChild(config?: AXChatModuleConfig): ModuleWithProviders<AXConversationModule> {\n return {\n ngModule: AXConversationModule,\n providers: [\n {\n provide: 'AXPWorkflowModuleFactory',\n useFactory: (registry: AXConversationMessageTypeRegistryService) => () => {\n if (config?.types?.length) {\n registry.register(...config.types);\n }\n },\n deps: [AXConversationMessageTypeRegistryService],\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i3","i5","i1","i4","i6","i7","i1.AXConversationMessageComponent"],"mappings":"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"}
|
@@ -197,7 +197,7 @@ class AXDataPagerNextButtonsComponent extends AXDataPagerChild {
|
|
197
197
|
<ax-button [disabled]="disabled" look="blank" class="ax-sm" title="Go to the last page" (onClick)="_emitOnLastPageClick($event)">
|
198
198
|
<ax-icon class="ax-icon ax-text-xl" [ngClass]="{ 'ax-icon-first-page': rtl, 'ax-icon-last-page': !rtl }"></ax-icon>
|
199
199
|
</ax-button>
|
200
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i1$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
200
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i1$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
201
201
|
}
|
202
202
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXDataPagerNextButtonsComponent, decorators: [{
|
203
203
|
type: Component,
|
@@ -305,7 +305,7 @@ class AXDataPagerNumericSelectorComponent extends AXDataPagerChild {
|
|
305
305
|
>
|
306
306
|
<ax-icon class="ax-icon ax-icon-last-page ax-text-xl"></ax-icon>
|
307
307
|
</ax-button>
|
308
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i1$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
308
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i1$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
309
309
|
}
|
310
310
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXDataPagerNumericSelectorComponent, decorators: [{
|
311
311
|
type: Component,
|
@@ -399,7 +399,7 @@ class AXDataPagerPageSizesComponent extends AXDataPagerChild {
|
|
399
399
|
</ax-suffix>
|
400
400
|
</ax-button>
|
401
401
|
<!-- <span >items per page</span> -->
|
402
|
-
`, isInline: true, dependencies: [{ kind: "component", type: i1$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i1$2.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i1$2.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "component", type: i2$2.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
402
|
+
`, isInline: true, dependencies: [{ kind: "component", type: i1$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i1$2.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i1$2.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "component", type: i2$2.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
403
403
|
}
|
404
404
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXDataPagerPageSizesComponent, decorators: [{
|
405
405
|
type: Component,
|
@@ -461,7 +461,7 @@ class AXDataPagerPrevButtonsComponent extends AXDataPagerChild {
|
|
461
461
|
}"
|
462
462
|
></ax-icon>
|
463
463
|
</ax-button>
|
464
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i1$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
464
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i1$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
465
465
|
}
|
466
466
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXDataPagerPrevButtonsComponent, decorators: [{
|
467
467
|
type: Component,
|