@acorex/components 21.0.1-next.40 → 21.0.1-next.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-components-kbd.mjs +4 -4
- package/fesm2022/acorex-components-kbd.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +57 -22
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +2 -2
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/media-viewer/index.d.ts +62 -55
- package/package.json +8 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-notification.mjs","sources":["../../../../packages/components/notification/src/lib/notification.config.ts","../../../../packages/components/notification/src/lib/notification.service.ts","../../../../packages/components/notification/src/lib/notification.component.ts","../../../../packages/components/notification/src/lib/notification.component.html","../../../../packages/components/notification/src/lib/notification.module.ts","../../../../packages/components/notification/src/acorex-components-notification.ts"],"sourcesContent":["import { AXLocation } from '@acorex/cdk/common';\nimport { InjectionToken } from '@angular/core';\n\nexport interface AXNotificationConfig {\n gap: number;\n timeOut: number;\n timeOutProgress: boolean;\n location: AXLocation;\n closeButton: boolean;\n limit: number;\n pauseOnHover: boolean;\n}\n\nexport const AX_NOTIFICATION_CONFIG = new InjectionToken<AXNotificationConfig>('AX_NOTIFICATION_CONFIG', {\n providedIn: 'root',\n factory: () => AXNotificationDefaultConfig,\n});\n\nexport const AXNotificationDefaultConfig: AXNotificationConfig = {\n gap: 5,\n timeOut: 2500,\n timeOutProgress: true,\n closeButton: true,\n location: 'top-end',\n limit: 3,\n pauseOnHover: true,\n};\n\nexport type PartialNotificationConfig = Partial<AXNotificationConfig>;\n\nexport function notificationConfig(config: PartialNotificationConfig = {}): AXNotificationConfig {\n const result = {\n ...AXNotificationDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { AXLocation, AXStyleColorType } from '@acorex/cdk/common';\nimport { AXOverlayService } from '@acorex/cdk/overlay';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Injectable, inject, signal } from '@angular/core';\nimport {\n AXNotificationData,\n AXNotificationOptions as AXNotificationDisplayConfig,\n AXNotificationInternalRef,\n AXNotificationRef,\n} from './notification.class';\nimport { AXNotificationComponent } from './notification.component';\nimport { AXNotificationConfig, AX_NOTIFICATION_CONFIG } from './notification.config';\n\ntype AXReservedNotifications = {\n config: AXNotificationDisplayConfig;\n reservedRef: {\n close: () => void;\n };\n};\n\nlet notificationIdCounter = 0;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXNotificationService {\n private overlayService = inject(AXOverlayService);\n private translationService: AXTranslationService = inject(AXTranslationService);\n private defaultConfig: AXNotificationConfig = inject(AX_NOTIFICATION_CONFIG);\n\n private activeNotifications = signal<AXNotificationInternalRef[]>([]);\n private reservedNotifications = signal<AXReservedNotifications[]>([]);\n private notificationCounterRef = signal<AXNotificationInternalRef | null>(null);\n private moreNotificationsColor = signal<AXStyleColorType>('primary');\n private moreNotificationsLocation = signal<AXLocation>('bottom-center');\n private reserveCounter = signal(0);\n\n show(config: AXNotificationDisplayConfig): AXNotificationRef {\n config = { ...this.defaultConfig, ...config };\n\n this.moreNotificationsColor.set(config.color);\n this.moreNotificationsLocation.set(config.location);\n\n if (this.defaultConfig.limit > 0 && this.activeNotifications().length >= this.defaultConfig.limit) {\n const reservedRef = {\n close: () => {\n console.warn('Reserved notification cannot be closed until it is displayed.');\n },\n };\n this.reservedNotifications.update((prev) => [...prev, { config, reservedRef }]);\n\n this.handleReservedNotificationCounter();\n return reservedRef;\n }\n\n return this.displayNotification(config);\n }\n\n private displayNotification(config: AXNotificationDisplayConfig): AXNotificationRef {\n const gap = this.defaultConfig.gap;\n const notificationData: AXNotificationData = {\n buttons: config.buttons,\n icon: config.icon,\n title: config.title,\n content: config.content,\n location: config.location,\n closeButton: config.closeButton ?? true,\n color: config.color,\n timeOut: config.timeOut,\n timeOutProgress: config.timeOutProgress ?? true,\n pauseOnHover: config.pauseOnHover,\n };\n\n const notificationId = `notification-${++notificationIdCounter}`;\n let internalRef: AXNotificationInternalRef;\n\n const closeNotification = () => {\n if (internalRef) {\n internalRef.overlayRef.dispose();\n this.activeNotifications.set(this.activeNotifications().filter((n) => n.id !== internalRef.id));\n this.handleShowReservedNotification();\n this.handleReservedNotificationCounter();\n setTimeout(() => {\n this.reposition(config.location, gap);\n });\n }\n };\n\n this.overlayService\n .create<AXNotificationComponent>(AXNotificationComponent, {\n inputs: {\n config: notificationData,\n onClose: closeNotification,\n },\n centered: false,\n panelClass: ['ax-animate-animated', 'ax-animate-fadeIn', 'ax-animate-faster'],\n onDispose: () => {\n // Clean up when disposed externally\n const currentNotifications = this.activeNotifications();\n if (internalRef && currentNotifications.find((n) => n.id === internalRef.id)) {\n this.activeNotifications.set(currentNotifications.filter((n) => n.id !== internalRef.id));\n this.handleShowReservedNotification();\n this.handleReservedNotificationCounter();\n }\n },\n })\n .then((overlayRef) => {\n internalRef = {\n id: notificationId,\n overlayRef,\n config: notificationData,\n close: closeNotification,\n };\n\n // Position the notification BEFORE adding to activeNotifications\n this.positionNotification(overlayRef.overlayElement, config.location, gap);\n\n this.activeNotifications.update((prev) => [...prev, internalRef]);\n this.handleReservedNotificationCounter();\n });\n\n return {\n close: () => {\n closeNotification();\n },\n };\n }\n\n hideAll() {\n this.reserveCounter.set(0);\n this.reservedNotifications.set([]);\n\n // Close all active notifications\n this.activeNotifications().forEach((notification) => {\n notification.overlayRef.dispose();\n });\n this.activeNotifications.set([]);\n\n // Close counter notification if exists\n const counterRef = this.notificationCounterRef();\n if (counterRef) {\n counterRef.overlayRef.dispose();\n this.notificationCounterRef.set(null);\n }\n\n this.handleReservedNotificationCounter();\n }\n\n private handleShowReservedNotification() {\n if (this.activeNotifications().length > this.defaultConfig.limit - 1) return;\n if (!this.reservedNotifications().length) return;\n\n const reserved = this.reservedNotifications()[0];\n this.reservedNotifications.update((prev) => prev.slice(1));\n\n const displayedRef = this.displayNotification(reserved.config);\n this.handleReservedNotificationCounter();\n reserved.reservedRef.close = displayedRef.close;\n }\n\n private handleReservedNotificationCounter() {\n const reservedCount = this.reservedNotifications().length;\n\n if (reservedCount === this.reserveCounter()) return;\n\n this.reserveCounter.set(reservedCount);\n\n if (reservedCount === 0 && this.notificationCounterRef() !== null) {\n this.notificationCounterRef().close();\n this.notificationCounterRef.set(null);\n return;\n }\n\n if (reservedCount > 0) {\n if (this.notificationCounterRef() !== null) {\n this.notificationCounterRef().close();\n this.notificationCounterRef.set(null);\n }\n this.createReservedCounterNotification();\n }\n }\n\n private async createReservedCounterNotification() {\n const gap = this.defaultConfig.gap;\n const opt: AXNotificationData = {\n closeButton: false,\n color: this.moreNotificationsColor(),\n location: this.moreNotificationsLocation(),\n title: await this.translationService.translateAsync('@acorex:common.notifications.more', {\n params: { number: this.reserveCounter() },\n }),\n timeOutProgress: false,\n };\n\n const notificationId = `notification-counter-${++notificationIdCounter}`;\n\n const overlayRef = await this.overlayService.create<AXNotificationComponent>(AXNotificationComponent, {\n inputs: {\n config: opt,\n onClose: () => {\n const currentCounterRef = this.notificationCounterRef();\n if (currentCounterRef) {\n currentCounterRef.overlayRef.dispose();\n if (currentCounterRef.id === notificationId) {\n this.notificationCounterRef.set(null);\n }\n }\n },\n },\n centered: false,\n panelClass: ['ax-animate-animated', 'ax-animate-fadeIn', 'ax-animate-faster'],\n });\n\n const counterInternalRef: AXNotificationInternalRef = {\n id: notificationId,\n overlayRef,\n config: opt,\n close: () => {\n counterInternalRef.overlayRef.dispose();\n if (this.notificationCounterRef()?.id === counterInternalRef.id) {\n this.notificationCounterRef.set(null);\n }\n },\n };\n\n this.notificationCounterRef.set(counterInternalRef);\n\n // Position the counter notification\n this.positionNotification(overlayRef.overlayElement, opt.location, gap);\n }\n\n private positionNotification(element: HTMLElement, location: AXLocation, gap: number): void {\n if (!element) return;\n\n const pos = this.getPosition(location) + gap;\n\n // Override the centered overlay container styles for notification positioning\n element.style.width = 'max-content';\n element.style.height = 'auto';\n element.style.display = 'block';\n element.style.alignItems = '';\n element.style.justifyContent = '';\n\n // Reset all positioning styles\n element.style.top = '';\n element.style.bottom = '';\n element.style.left = '';\n element.style.right = '';\n element.style.transform = '';\n\n // Apply position based on location\n switch (location) {\n case 'bottom-center':\n element.style.bottom = pos + 'px';\n element.style.left = '50%';\n element.style.transform = 'translateX(-50%)';\n break;\n case 'bottom-end':\n element.style.bottom = pos + 'px';\n element.style.right = gap + 'px';\n break;\n case 'bottom-start':\n element.style.bottom = pos + 'px';\n element.style.left = gap + 'px';\n break;\n case 'top-center':\n element.style.top = pos + 'px';\n element.style.left = '50%';\n element.style.transform = 'translateX(-50%)';\n break;\n case 'top-end':\n element.style.top = pos + 'px';\n element.style.right = gap + 'px';\n break;\n case 'top-start':\n element.style.top = pos + 'px';\n element.style.left = gap + 'px';\n break;\n case 'center-start':\n element.style.top = '50%';\n element.style.left = gap + 'px';\n element.style.transform = 'translateY(-50%)';\n break;\n case 'center-end':\n element.style.top = '50%';\n element.style.right = gap + 'px';\n element.style.transform = 'translateY(-50%)';\n break;\n }\n }\n\n private reposition(notificationLocation: AXLocation, gap: number): void {\n const list = this.activeNotifications().filter((n) => n.config?.location === notificationLocation);\n\n list.forEach((notification, index) => {\n const element = notification.overlayRef.overlayElement;\n if (!element) return;\n\n const pos = this.getRepositionPosition(index, gap, list, notificationLocation);\n this.applyRepositionPosition(element, notificationLocation, pos, gap);\n });\n }\n\n private getRepositionPosition(\n index: number,\n gap: number,\n list: AXNotificationInternalRef[],\n notificationLocation: string,\n ): number {\n if (index === 0) return gap;\n const previousNotification = list[index - 1];\n const previousElement = previousNotification.overlayRef.overlayElement;\n if (!previousElement) return gap;\n\n if (notificationLocation.split('-')[0] === 'bottom') {\n return window.innerHeight - previousElement.offsetTop + gap;\n }\n return previousElement.offsetTop + previousElement.offsetHeight + gap;\n }\n\n private applyRepositionPosition(element: HTMLElement, location: AXLocation, pos: number, gap: number): void {\n // Reset transform if needed, then apply position\n const isVerticalCenter = location === 'center-start' || location === 'center-end';\n const isHorizontalCenter = location === 'bottom-center' || location === 'top-center';\n\n if (location.startsWith('bottom')) {\n element.style.bottom = pos + 'px';\n element.style.top = '';\n if (isHorizontalCenter) {\n element.style.transform = 'translateX(-50%)';\n }\n } else if (location.startsWith('top')) {\n element.style.top = pos + 'px';\n element.style.bottom = '';\n if (isHorizontalCenter) {\n element.style.transform = 'translateX(-50%)';\n }\n } else if (isVerticalCenter) {\n element.style.top = pos + 'px';\n element.style.bottom = '';\n element.style.transform = '';\n }\n }\n\n private getPosition(location: string): number {\n const list = this.activeNotifications().filter((n) => n.config?.location === location);\n if (list.length === 0) return 0;\n\n const lastNotification = list[list.length - 1];\n const element = lastNotification.overlayRef.overlayElement;\n if (!element) return 0;\n\n if (location.split('-')[0] === 'bottom') {\n return window.innerHeight - element.offsetTop;\n }\n return element.offsetTop + element.offsetHeight;\n }\n}\n","import { AXClosableComponent, AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorCloseButtonComponent } from '@acorex/components/decorators';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n OnInit,\n signal,\n TemplateRef,\n Type,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXNotificationButtonItem, AXNotificationData } from './notification.class';\nimport { AXNotificationService } from './notification.service';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-notification',\n templateUrl: './notification.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': '\"ax-\" + config().color',\n },\n providers: [\n { provide: AXClosableComponent, useExisting: AXNotificationComponent },\n { provide: AXComponent, useExisting: AXNotificationComponent },\n ],\n imports: [\n NgTemplateOutlet,\n NgComponentOutlet,\n AXButtonComponent,\n AXLoadingComponent,\n AXDecoratorCloseButtonComponent,\n AsyncPipe,\n AXTranslatorPipe,\n ],\n})\nexport class AXNotificationComponent extends MXBaseComponent implements OnInit {\n /** Notification configuration data */\n config = input.required<AXNotificationData>();\n\n /** @internal Callback function to close the notification */\n onClose = input<() => void>();\n\n private notificationService = inject(AXNotificationService);\n\n /** @ignore */\n protected _icon: string;\n\n private intervalId: number;\n private isPaused = signal(false);\n protected remainingTime = signal(0);\n protected transitionDuration = signal(150);\n\n /** Template content if config.content is a TemplateRef */\n protected templateContent = computed(() => {\n const content = this.config().content;\n return content instanceof TemplateRef ? content : null;\n });\n\n /** Component content if config.content is a component Type */\n protected componentContent = computed(() => {\n const content = this.config().content;\n return typeof content === 'function' ? (content as Type<unknown>) : null;\n });\n\n /** String content if config.content is a string */\n protected stringContent = computed(() => {\n const content = this.config().content;\n return typeof content === 'string' ? content : '';\n });\n\n override ngOnInit() {\n super.ngOnInit();\n this._initIcon();\n this.remainingTime.set(this.config().timeOut);\n this._handleTimeOut();\n\n this.getHostElement().addEventListener('pointerenter', () => {\n if (!this.config().pauseOnHover) return;\n if (this.isPaused()) return;\n // Only pause if not already paused\n this.isPaused.set(true);\n this.pauseAnimation();\n });\n\n this.getHostElement().addEventListener('pointerleave', () => {\n if (!this.config().pauseOnHover) return;\n if (!this.isPaused()) return;\n // Only resume if paused\n this.isPaused.set(false);\n this._handleTimeOut();\n });\n }\n\n private pauseAnimation() {\n clearInterval(this.intervalId);\n }\n\n private _handleTimeOut() {\n if (this.config().timeOut) {\n this.intervalId = setInterval(() => {\n this.remainingTime.update((prev) => prev - this.transitionDuration());\n if (this.remainingTime() <= 0) {\n clearInterval(this.intervalId);\n this.close();\n }\n }, this.transitionDuration()) as unknown as number;\n }\n }\n\n /** @ignore */\n private _initIcon() {\n if (!this.config().icon) {\n switch (this.config().color) {\n case 'success':\n this._icon = 'ax-icon ax-icon-check-circle';\n break;\n case 'danger':\n this._icon = 'ax-icon ax-icon-error';\n break;\n case 'warning':\n this._icon = 'ax-icon ax-icon-warning';\n break;\n default:\n this._icon = this.config().icon || 'ax-icon ax-icon-info';\n break;\n }\n } else {\n this._icon = this.config().icon;\n }\n }\n\n /** @ignore */\n protected _handleButtonClick(button: AXNotificationButtonItem) {\n if (button.onClick) {\n button.onClick({ source: button });\n }\n }\n\n /**\n * Closes the notification.\n */\n close() {\n const closeCallback = this.onClose();\n if (closeCallback) {\n closeCallback();\n }\n }\n\n /**\n * Closes all notifications.\n */\n closeAll() {\n this.notificationService.hideAll();\n }\n}\n","<span class=\"ax-notification-icon ax-icon-solid {{ _icon }} ax-{{ this.config().color }}\"></span>\n<div class=\"ax-notification-content\">\n <div class=\"ax-notification-title\">{{ config().title | translate | async }}</div>\n @if (templateContent()) {\n <ng-container *ngTemplateOutlet=\"templateContent()\"></ng-container>\n } @else if (componentContent()) {\n <ng-container *ngComponentOutlet=\"componentContent()\"></ng-container>\n } @else {\n <div>{{ stringContent() | translate | async }}</div>\n }\n\n @if (config().buttons?.length) {\n <div class=\"ax-notification-buttons\">\n @for (button of config().buttons; track $index) {\n <ax-button\n class=\"ax-xs\"\n [text]=\"button.text | translate | async\"\n [color]=\"'ax-' + button.color\"\n [look]=\"'ax-' + button.look\"\n [disabled]=\"button.disabled\"\n (onClick)=\"_handleButtonClick(button)\"\n >\n @if (button.loading) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n </div>\n }\n</div>\n@if (config().closeButton) {\n <ax-close-button></ax-close-button>\n}\n@if (config().timeOutProgress && config().timeOut && remainingTime()) {\n <div\n [class]=\"'ax-notification-progress ax-' + this.config().color\"\n [style.transition-duration]=\"transitionDuration()\"\n [style.width]=\"(remainingTime() * 100) / config().timeOut + '%'\"\n ></div>\n}\n","import { NgModule } from '@angular/core';\nimport { AXNotificationComponent } from './notification.component';\n\n@NgModule({\n imports: [AXNotificationComponent],\n exports: [AXNotificationComponent],\n})\nexport class AXNotificationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-components-notification.mjs","sources":["../../../../packages/components/notification/src/lib/notification.config.ts","../../../../packages/components/notification/src/lib/notification.service.ts","../../../../packages/components/notification/src/lib/notification.component.ts","../../../../packages/components/notification/src/lib/notification.component.html","../../../../packages/components/notification/src/lib/notification.module.ts","../../../../packages/components/notification/src/acorex-components-notification.ts"],"sourcesContent":["import { AXLocation } from '@acorex/cdk/common';\nimport { InjectionToken } from '@angular/core';\n\nexport interface AXNotificationConfig {\n gap: number;\n timeOut: number;\n timeOutProgress: boolean;\n location: AXLocation;\n closeButton: boolean;\n limit: number;\n pauseOnHover: boolean;\n}\n\nexport const AX_NOTIFICATION_CONFIG = new InjectionToken<AXNotificationConfig>('AX_NOTIFICATION_CONFIG', {\n providedIn: 'root',\n factory: () => AXNotificationDefaultConfig,\n});\n\nexport const AXNotificationDefaultConfig: AXNotificationConfig = {\n gap: 5,\n timeOut: 2500,\n timeOutProgress: true,\n closeButton: true,\n location: 'top-end',\n limit: 3,\n pauseOnHover: true,\n};\n\nexport type PartialNotificationConfig = Partial<AXNotificationConfig>;\n\nexport function notificationConfig(config: PartialNotificationConfig = {}): AXNotificationConfig {\n const result = {\n ...AXNotificationDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { AXLocation, AXStyleColorType } from '@acorex/cdk/common';\nimport { AXOverlayService } from '@acorex/cdk/overlay';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Injectable, inject, signal } from '@angular/core';\nimport {\n AXNotificationData,\n AXNotificationOptions as AXNotificationDisplayConfig,\n AXNotificationInternalRef,\n AXNotificationRef,\n} from './notification.class';\nimport { AXNotificationComponent } from './notification.component';\nimport { AXNotificationConfig, AX_NOTIFICATION_CONFIG } from './notification.config';\n\ntype AXReservedNotifications = {\n config: AXNotificationDisplayConfig;\n reservedRef: {\n close: () => void;\n };\n};\n\nlet notificationIdCounter = 0;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXNotificationService {\n private overlayService = inject(AXOverlayService);\n private translationService: AXTranslationService = inject(AXTranslationService);\n private defaultConfig: AXNotificationConfig = inject(AX_NOTIFICATION_CONFIG);\n\n private activeNotifications = signal<AXNotificationInternalRef[]>([]);\n private reservedNotifications = signal<AXReservedNotifications[]>([]);\n private notificationCounterRef = signal<AXNotificationInternalRef | null>(null);\n private moreNotificationsColor = signal<AXStyleColorType>('primary');\n private moreNotificationsLocation = signal<AXLocation>('bottom-center');\n private reserveCounter = signal(0);\n\n show(config: AXNotificationDisplayConfig): AXNotificationRef {\n config = { ...this.defaultConfig, ...config };\n\n this.moreNotificationsColor.set(config.color);\n this.moreNotificationsLocation.set(config.location);\n\n if (this.defaultConfig.limit > 0 && this.activeNotifications().length >= this.defaultConfig.limit) {\n const reservedRef = {\n close: () => {\n console.warn('Reserved notification cannot be closed until it is displayed.');\n },\n };\n this.reservedNotifications.update((prev) => [...prev, { config, reservedRef }]);\n\n this.handleReservedNotificationCounter();\n return reservedRef;\n }\n\n return this.displayNotification(config);\n }\n\n private displayNotification(config: AXNotificationDisplayConfig): AXNotificationRef {\n const gap = this.defaultConfig.gap;\n const notificationData: AXNotificationData = {\n buttons: config.buttons,\n icon: config.icon,\n title: config.title,\n content: config.content,\n location: config.location,\n closeButton: config.closeButton ?? true,\n color: config.color,\n timeOut: config.timeOut,\n timeOutProgress: config.timeOutProgress ?? true,\n pauseOnHover: config.pauseOnHover,\n };\n\n const notificationId = `notification-${++notificationIdCounter}`;\n let internalRef: AXNotificationInternalRef;\n\n const closeNotification = () => {\n if (internalRef) {\n internalRef.overlayRef.dispose();\n this.activeNotifications.set(this.activeNotifications().filter((n) => n.id !== internalRef.id));\n this.handleShowReservedNotification();\n this.handleReservedNotificationCounter();\n setTimeout(() => {\n this.reposition(config.location, gap);\n });\n }\n };\n\n this.overlayService\n .create<AXNotificationComponent>(AXNotificationComponent, {\n inputs: {\n config: notificationData,\n onClose: closeNotification,\n },\n centered: false,\n panelClass: ['ax-animate-animated', 'ax-animate-fadeIn', 'ax-animate-faster'],\n onDispose: () => {\n // Clean up when disposed externally\n const currentNotifications = this.activeNotifications();\n if (internalRef && currentNotifications.find((n) => n.id === internalRef.id)) {\n this.activeNotifications.set(currentNotifications.filter((n) => n.id !== internalRef.id));\n this.handleShowReservedNotification();\n this.handleReservedNotificationCounter();\n }\n },\n })\n .then((overlayRef) => {\n internalRef = {\n id: notificationId,\n overlayRef,\n config: notificationData,\n close: closeNotification,\n };\n\n // Position the notification BEFORE adding to activeNotifications\n this.positionNotification(overlayRef.overlayElement, config.location, gap);\n\n this.activeNotifications.update((prev) => [...prev, internalRef]);\n this.handleReservedNotificationCounter();\n });\n\n return {\n close: () => {\n closeNotification();\n },\n };\n }\n\n hideAll() {\n this.reserveCounter.set(0);\n this.reservedNotifications.set([]);\n\n // Close all active notifications\n this.activeNotifications().forEach((notification) => {\n notification.overlayRef.dispose();\n });\n this.activeNotifications.set([]);\n\n // Close counter notification if exists\n const counterRef = this.notificationCounterRef();\n if (counterRef) {\n counterRef.overlayRef.dispose();\n this.notificationCounterRef.set(null);\n }\n\n this.handleReservedNotificationCounter();\n }\n\n private handleShowReservedNotification() {\n if (this.activeNotifications().length > this.defaultConfig.limit - 1) return;\n if (!this.reservedNotifications().length) return;\n\n const reserved = this.reservedNotifications()[0];\n this.reservedNotifications.update((prev) => prev.slice(1));\n\n const displayedRef = this.displayNotification(reserved.config);\n this.handleReservedNotificationCounter();\n reserved.reservedRef.close = displayedRef.close;\n }\n\n private handleReservedNotificationCounter() {\n const reservedCount = this.reservedNotifications().length;\n\n if (reservedCount === this.reserveCounter()) return;\n\n this.reserveCounter.set(reservedCount);\n\n if (reservedCount === 0 && this.notificationCounterRef() !== null) {\n this.notificationCounterRef().close();\n this.notificationCounterRef.set(null);\n return;\n }\n\n if (reservedCount > 0) {\n if (this.notificationCounterRef() !== null) {\n this.notificationCounterRef().close();\n this.notificationCounterRef.set(null);\n }\n this.createReservedCounterNotification();\n }\n }\n\n private async createReservedCounterNotification() {\n const gap = this.defaultConfig.gap;\n const opt: AXNotificationData = {\n closeButton: false,\n color: this.moreNotificationsColor(),\n location: this.moreNotificationsLocation(),\n title: await this.translationService.translateAsync('@acorex:common.notifications.more', {\n params: { number: this.reserveCounter() },\n }),\n timeOutProgress: false,\n };\n\n const notificationId = `notification-counter-${++notificationIdCounter}`;\n\n const overlayRef = await this.overlayService.create<AXNotificationComponent>(AXNotificationComponent, {\n inputs: {\n config: opt,\n onClose: () => {\n const currentCounterRef = this.notificationCounterRef();\n if (currentCounterRef) {\n currentCounterRef.overlayRef.dispose();\n if (currentCounterRef.id === notificationId) {\n this.notificationCounterRef.set(null);\n }\n }\n },\n },\n centered: false,\n panelClass: ['ax-animate-animated', 'ax-animate-fadeIn', 'ax-animate-faster'],\n });\n\n const counterInternalRef: AXNotificationInternalRef = {\n id: notificationId,\n overlayRef,\n config: opt,\n close: () => {\n counterInternalRef.overlayRef.dispose();\n if (this.notificationCounterRef()?.id === counterInternalRef.id) {\n this.notificationCounterRef.set(null);\n }\n },\n };\n\n this.notificationCounterRef.set(counterInternalRef);\n\n // Position the counter notification\n this.positionNotification(overlayRef.overlayElement, opt.location, gap);\n }\n\n private positionNotification(element: HTMLElement, location: AXLocation, gap: number): void {\n if (!element) return;\n\n const pos = this.getPosition(location) + gap;\n\n // Override the centered overlay container styles for notification positioning\n element.style.width = 'max-content';\n element.style.height = 'auto';\n element.style.display = 'block';\n element.style.alignItems = '';\n element.style.justifyContent = '';\n\n // Reset all positioning styles\n element.style.top = '';\n element.style.bottom = '';\n element.style.left = '';\n element.style.right = '';\n element.style.transform = '';\n\n // Apply position based on location\n switch (location) {\n case 'bottom-center':\n element.style.bottom = pos + 'px';\n element.style.left = '50%';\n element.style.transform = 'translateX(-50%)';\n break;\n case 'bottom-end':\n element.style.bottom = pos + 'px';\n element.style.right = gap + 'px';\n break;\n case 'bottom-start':\n element.style.bottom = pos + 'px';\n element.style.left = gap + 'px';\n break;\n case 'top-center':\n element.style.top = pos + 'px';\n element.style.left = '50%';\n element.style.transform = 'translateX(-50%)';\n break;\n case 'top-end':\n element.style.top = pos + 'px';\n element.style.right = gap + 'px';\n break;\n case 'top-start':\n element.style.top = pos + 'px';\n element.style.left = gap + 'px';\n break;\n case 'center-start':\n element.style.top = '50%';\n element.style.left = gap + 'px';\n element.style.transform = 'translateY(-50%)';\n break;\n case 'center-end':\n element.style.top = '50%';\n element.style.right = gap + 'px';\n element.style.transform = 'translateY(-50%)';\n break;\n }\n }\n\n private reposition(notificationLocation: AXLocation, gap: number): void {\n const list = this.activeNotifications().filter((n) => n.config?.location === notificationLocation);\n\n list.forEach((notification, index) => {\n const element = notification.overlayRef.overlayElement;\n if (!element) return;\n\n const pos = this.getRepositionPosition(index, gap, list, notificationLocation);\n this.applyRepositionPosition(element, notificationLocation, pos, gap);\n });\n }\n\n private getRepositionPosition(\n index: number,\n gap: number,\n list: AXNotificationInternalRef[],\n notificationLocation: string,\n ): number {\n if (index === 0) return gap;\n const previousNotification = list[index - 1];\n const previousElement = previousNotification.overlayRef.overlayElement;\n if (!previousElement) return gap;\n\n if (notificationLocation.split('-')[0] === 'bottom') {\n return window.innerHeight - previousElement.offsetTop + gap;\n }\n return previousElement.offsetTop + previousElement.offsetHeight + gap;\n }\n\n private applyRepositionPosition(element: HTMLElement, location: AXLocation, pos: number, gap: number): void {\n // Reset transform if needed, then apply position\n const isVerticalCenter = location === 'center-start' || location === 'center-end';\n const isHorizontalCenter = location === 'bottom-center' || location === 'top-center';\n\n if (location.startsWith('bottom')) {\n element.style.bottom = pos + 'px';\n element.style.top = '';\n if (isHorizontalCenter) {\n element.style.transform = 'translateX(-50%)';\n }\n } else if (location.startsWith('top')) {\n element.style.top = pos + 'px';\n element.style.bottom = '';\n if (isHorizontalCenter) {\n element.style.transform = 'translateX(-50%)';\n }\n } else if (isVerticalCenter) {\n element.style.top = pos + 'px';\n element.style.bottom = '';\n element.style.transform = '';\n }\n }\n\n private getPosition(location: string): number {\n const list = this.activeNotifications().filter((n) => n.config?.location === location);\n if (list.length === 0) return 0;\n\n const lastNotification = list[list.length - 1];\n const element = lastNotification.overlayRef.overlayElement;\n if (!element) return 0;\n\n if (location.split('-')[0] === 'bottom') {\n return window.innerHeight - element.offsetTop;\n }\n return element.offsetTop + element.offsetHeight;\n }\n}\n","import { AXClosableComponent, AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorCloseButtonComponent } from '@acorex/components/decorators';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n OnInit,\n signal,\n TemplateRef,\n Type,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXNotificationButtonItem, AXNotificationData } from './notification.class';\nimport { AXNotificationService } from './notification.service';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-notification',\n templateUrl: './notification.component.html',\n styleUrl: './notification.component.compiled.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': '\"ax-\" + config().color',\n },\n providers: [\n { provide: AXClosableComponent, useExisting: AXNotificationComponent },\n { provide: AXComponent, useExisting: AXNotificationComponent },\n ],\n imports: [\n NgTemplateOutlet,\n NgComponentOutlet,\n AXButtonComponent,\n AXLoadingComponent,\n AXDecoratorCloseButtonComponent,\n AsyncPipe,\n AXTranslatorPipe,\n ],\n})\nexport class AXNotificationComponent extends MXBaseComponent implements OnInit {\n /** Notification configuration data */\n config = input.required<AXNotificationData>();\n\n /** @internal Callback function to close the notification */\n onClose = input<() => void>();\n\n private notificationService = inject(AXNotificationService);\n\n /** @ignore */\n protected _icon: string;\n\n private intervalId: number;\n private isPaused = signal(false);\n protected remainingTime = signal(0);\n protected transitionDuration = signal(150);\n\n /** Template content if config.content is a TemplateRef */\n protected templateContent = computed(() => {\n const content = this.config().content;\n return content instanceof TemplateRef ? content : null;\n });\n\n /** Component content if config.content is a component Type */\n protected componentContent = computed(() => {\n const content = this.config().content;\n return typeof content === 'function' ? (content as Type<unknown>) : null;\n });\n\n /** String content if config.content is a string */\n protected stringContent = computed(() => {\n const content = this.config().content;\n return typeof content === 'string' ? content : '';\n });\n\n override ngOnInit() {\n super.ngOnInit();\n this._initIcon();\n this.remainingTime.set(this.config().timeOut);\n this._handleTimeOut();\n\n this.getHostElement().addEventListener('pointerenter', () => {\n if (!this.config().pauseOnHover) return;\n if (this.isPaused()) return;\n // Only pause if not already paused\n this.isPaused.set(true);\n this.pauseAnimation();\n });\n\n this.getHostElement().addEventListener('pointerleave', () => {\n if (!this.config().pauseOnHover) return;\n if (!this.isPaused()) return;\n // Only resume if paused\n this.isPaused.set(false);\n this._handleTimeOut();\n });\n }\n\n private pauseAnimation() {\n clearInterval(this.intervalId);\n }\n\n private _handleTimeOut() {\n if (this.config().timeOut) {\n this.intervalId = setInterval(() => {\n this.remainingTime.update((prev) => prev - this.transitionDuration());\n if (this.remainingTime() <= 0) {\n clearInterval(this.intervalId);\n this.close();\n }\n }, this.transitionDuration()) as unknown as number;\n }\n }\n\n /** @ignore */\n private _initIcon() {\n if (!this.config().icon) {\n switch (this.config().color) {\n case 'success':\n this._icon = 'ax-icon ax-icon-check-circle';\n break;\n case 'danger':\n this._icon = 'ax-icon ax-icon-error';\n break;\n case 'warning':\n this._icon = 'ax-icon ax-icon-warning';\n break;\n default:\n this._icon = this.config().icon || 'ax-icon ax-icon-info';\n break;\n }\n } else {\n this._icon = this.config().icon;\n }\n }\n\n /** @ignore */\n protected _handleButtonClick(button: AXNotificationButtonItem) {\n if (button.onClick) {\n button.onClick({ source: button });\n }\n }\n\n /**\n * Closes the notification.\n */\n close() {\n const closeCallback = this.onClose();\n if (closeCallback) {\n closeCallback();\n }\n }\n\n /**\n * Closes all notifications.\n */\n closeAll() {\n this.notificationService.hideAll();\n }\n}\n","<span class=\"ax-notification-icon ax-icon-solid {{ _icon }} ax-{{ this.config().color }}\"></span>\n<div class=\"ax-notification-content\">\n <div class=\"ax-notification-title\">{{ config().title | translate | async }}</div>\n @if (templateContent()) {\n <ng-container *ngTemplateOutlet=\"templateContent()\"></ng-container>\n } @else if (componentContent()) {\n <ng-container *ngComponentOutlet=\"componentContent()\"></ng-container>\n } @else {\n <div>{{ stringContent() | translate | async }}</div>\n }\n\n @if (config().buttons?.length) {\n <div class=\"ax-notification-buttons\">\n @for (button of config().buttons; track $index) {\n <ax-button\n class=\"ax-xs\"\n [text]=\"button.text | translate | async\"\n [color]=\"'ax-' + button.color\"\n [look]=\"'ax-' + button.look\"\n [disabled]=\"button.disabled\"\n (onClick)=\"_handleButtonClick(button)\"\n >\n @if (button.loading) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n </div>\n }\n</div>\n@if (config().closeButton) {\n <ax-close-button></ax-close-button>\n}\n@if (config().timeOutProgress && config().timeOut && remainingTime()) {\n <div\n [class]=\"'ax-notification-progress ax-' + this.config().color\"\n [style.transition-duration]=\"transitionDuration()\"\n [style.width]=\"(remainingTime() * 100) / config().timeOut + '%'\"\n ></div>\n}\n","import { NgModule } from '@angular/core';\nimport { AXNotificationComponent } from './notification.component';\n\n@NgModule({\n imports: [AXNotificationComponent],\n exports: [AXNotificationComponent],\n})\nexport class AXNotificationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/media-viewer/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as swiper_types from 'swiper/types';
|
|
2
|
-
import * as
|
|
2
|
+
import * as _angular_core from '@angular/core';
|
|
3
3
|
import { Type, OnDestroy, ModuleWithProviders } from '@angular/core';
|
|
4
4
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
5
5
|
import * as i4 from '@angular/cdk/portal';
|
|
@@ -27,43 +27,44 @@ type AXMediaViewerData = {
|
|
|
27
27
|
thumbnailUrl?: string | (() => Promise<string>);
|
|
28
28
|
tooltip?: string;
|
|
29
29
|
};
|
|
30
|
+
type AXThumbnail = {
|
|
31
|
+
thumbnailImage: string | (() => Promise<string>);
|
|
32
|
+
svg: string;
|
|
33
|
+
type: string;
|
|
34
|
+
id: string;
|
|
35
|
+
tooltip?: string;
|
|
36
|
+
index: number;
|
|
37
|
+
};
|
|
30
38
|
declare class AXMediaViewerBaseComponent {
|
|
31
39
|
message: {
|
|
32
40
|
data: AXMediaViewerData;
|
|
33
41
|
index: number;
|
|
34
42
|
};
|
|
35
|
-
static ɵfac:
|
|
36
|
-
static ɵprov:
|
|
43
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMediaViewerBaseComponent, never>;
|
|
44
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMediaViewerBaseComponent>;
|
|
37
45
|
}
|
|
38
46
|
|
|
39
47
|
declare class AXMediaViewerService {
|
|
40
|
-
dataArray:
|
|
41
|
-
selectedIndex:
|
|
48
|
+
dataArray: _angular_core.WritableSignal<AXMediaViewerData[]>;
|
|
49
|
+
selectedIndex: _angular_core.WritableSignal<number>;
|
|
42
50
|
dirtyItems: Map<any, any>;
|
|
43
|
-
static ɵfac:
|
|
44
|
-
static ɵprov:
|
|
51
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMediaViewerService, never>;
|
|
52
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMediaViewerService>;
|
|
45
53
|
}
|
|
46
54
|
|
|
47
|
-
type Thumbnail = {
|
|
48
|
-
thumbnailImage: string | (() => Promise<string>);
|
|
49
|
-
svg: string;
|
|
50
|
-
type: string;
|
|
51
|
-
id: string;
|
|
52
|
-
tooltip?: string;
|
|
53
|
-
};
|
|
54
55
|
declare class AXMediaViewerContainerComponent implements OnDestroy {
|
|
55
56
|
#private;
|
|
56
|
-
dataArray:
|
|
57
|
-
thumbnail:
|
|
58
|
-
pagination:
|
|
57
|
+
dataArray: _angular_core.InputSignal<AXMediaViewerData[]>;
|
|
58
|
+
thumbnail: _angular_core.InputSignal<boolean>;
|
|
59
|
+
pagination: _angular_core.InputSignal<boolean>;
|
|
59
60
|
protected service: AXMediaViewerService;
|
|
60
61
|
protected sanitizer: DomSanitizer;
|
|
61
62
|
protected isMobile: boolean;
|
|
62
63
|
private readonly elementRef;
|
|
63
|
-
protected thumbnailArray:
|
|
64
|
-
protected option:
|
|
65
|
-
protected thumbnailOption:
|
|
66
|
-
protected isFullScreen:
|
|
64
|
+
protected thumbnailArray: _angular_core.WritableSignal<AXThumbnail[]>;
|
|
65
|
+
protected option: _angular_core.WritableSignal<swiper_types.SwiperOptions>;
|
|
66
|
+
protected thumbnailOption: _angular_core.WritableSignal<swiper_types.SwiperOptions>;
|
|
67
|
+
protected isFullScreen: _angular_core.WritableSignal<boolean>;
|
|
67
68
|
private swiperRef;
|
|
68
69
|
private swiperRef2;
|
|
69
70
|
private fullScreenButton;
|
|
@@ -76,83 +77,89 @@ declare class AXMediaViewerContainerComponent implements OnDestroy {
|
|
|
76
77
|
private interVal?;
|
|
77
78
|
goToIndex(index: number, speed?: number): void;
|
|
78
79
|
private init;
|
|
79
|
-
static ɵfac:
|
|
80
|
-
static ɵcmp:
|
|
80
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMediaViewerContainerComponent, never>;
|
|
81
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMediaViewerContainerComponent, "ax-media-viewer-container", never, { "dataArray": { "alias": "dataArray"; "required": false; "isSignal": true; }; "thumbnail": { "alias": "thumbnail"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; }, {}, ["fullScreenButton"], ["ax-header", "ax-suffix", "ax-prefix"], true, never>;
|
|
81
82
|
}
|
|
82
83
|
|
|
83
84
|
declare class AXMediaViewerTypeRegistryService {
|
|
84
85
|
private plugins;
|
|
85
86
|
register(...plugins: AXMediaViewerType[]): void;
|
|
86
87
|
resolve(name: string): AXMediaViewerType | undefined;
|
|
87
|
-
static ɵfac:
|
|
88
|
-
static ɵprov:
|
|
88
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMediaViewerTypeRegistryService, never>;
|
|
89
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMediaViewerTypeRegistryService>;
|
|
89
90
|
}
|
|
90
91
|
|
|
91
92
|
declare class AXMediaViewerSliderComponent {
|
|
92
93
|
#private;
|
|
93
94
|
protected service: AXMediaViewerService;
|
|
94
|
-
dataObject:
|
|
95
|
-
index:
|
|
95
|
+
dataObject: _angular_core.InputSignal<AXMediaViewerData>;
|
|
96
|
+
index: _angular_core.InputSignal<unknown>;
|
|
96
97
|
/** @ignore */
|
|
97
|
-
protected portal:
|
|
98
|
+
protected portal: _angular_core.WritableSignal<ComponentPortal<any>>;
|
|
98
99
|
/** @ignore */
|
|
99
100
|
protected registryService: AXMediaViewerTypeRegistryService;
|
|
100
101
|
/** @ignore */
|
|
101
102
|
protected _handleAttached(ref: CdkPortalOutletAttachedRef): void;
|
|
102
|
-
static ɵfac:
|
|
103
|
-
static ɵcmp:
|
|
103
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMediaViewerSliderComponent, never>;
|
|
104
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMediaViewerSliderComponent, "ax-media-viewer-slider", never, { "dataObject": { "alias": "dataObject"; "required": false; "isSignal": true; }; "index": { "alias": "index"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
104
105
|
}
|
|
105
106
|
|
|
106
107
|
declare class AXAudioPlayerComponent extends AXMediaViewerBaseComponent {
|
|
107
108
|
#private;
|
|
108
|
-
protected src:
|
|
109
|
+
protected src: _angular_core.WritableSignal<any>;
|
|
109
110
|
protected service: AXMediaViewerService;
|
|
110
|
-
static ɵfac:
|
|
111
|
-
static ɵcmp:
|
|
111
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXAudioPlayerComponent, never>;
|
|
112
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXAudioPlayerComponent, "ax-audio-player", never, {}, {}, never, never, true, never>;
|
|
112
113
|
}
|
|
113
114
|
|
|
114
115
|
declare class AXFileInfoComponent {
|
|
115
116
|
protected service: AXMediaViewerService;
|
|
116
|
-
protected infoData:
|
|
117
|
-
static ɵfac:
|
|
118
|
-
static ɵcmp:
|
|
117
|
+
protected infoData: _angular_core.Signal<AXMediaViewerData>;
|
|
118
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXFileInfoComponent, never>;
|
|
119
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXFileInfoComponent, "ax-file-info", never, {}, {}, never, never, true, never>;
|
|
119
120
|
}
|
|
120
121
|
|
|
121
122
|
declare class AXImageViewerComponent extends AXMediaViewerBaseComponent {
|
|
122
123
|
#private;
|
|
123
|
-
protected hasError:
|
|
124
|
-
protected src:
|
|
124
|
+
protected hasError: _angular_core.WritableSignal<boolean>;
|
|
125
|
+
protected src: _angular_core.WritableSignal<any>;
|
|
125
126
|
protected service: AXMediaViewerService;
|
|
127
|
+
protected loading: _angular_core.WritableSignal<boolean>;
|
|
126
128
|
protected handleImageError(): void;
|
|
127
|
-
static ɵfac:
|
|
128
|
-
static ɵcmp:
|
|
129
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXImageViewerComponent, never>;
|
|
130
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXImageViewerComponent, "ax-image-viewer", never, {}, {}, never, never, true, never>;
|
|
129
131
|
}
|
|
130
132
|
|
|
131
133
|
declare class PdfComponent extends AXMediaViewerBaseComponent {
|
|
132
134
|
#private;
|
|
133
135
|
sanitizer: DomSanitizer;
|
|
134
|
-
protected src:
|
|
136
|
+
protected src: _angular_core.WritableSignal<any>;
|
|
135
137
|
protected service: AXMediaViewerService;
|
|
136
|
-
|
|
137
|
-
static
|
|
138
|
+
protected loading: _angular_core.WritableSignal<boolean>;
|
|
139
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PdfComponent, never>;
|
|
140
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PdfComponent, "ax-pdf", never, {}, {}, never, never, true, never>;
|
|
138
141
|
}
|
|
139
142
|
|
|
140
143
|
declare class AXThumbnailViewerComponent extends AXMediaViewerBaseComponent {
|
|
141
144
|
#private;
|
|
142
|
-
protected hasError:
|
|
143
|
-
protected src:
|
|
144
|
-
item:
|
|
145
|
+
protected hasError: _angular_core.WritableSignal<boolean>;
|
|
146
|
+
protected src: _angular_core.WritableSignal<any>;
|
|
147
|
+
item: _angular_core.InputSignal<string | (() => Promise<string>)>;
|
|
148
|
+
index: _angular_core.InputSignal<number>;
|
|
149
|
+
protected service: AXMediaViewerService;
|
|
150
|
+
protected loading: _angular_core.WritableSignal<boolean>;
|
|
145
151
|
protected handleImageError(): void;
|
|
146
|
-
static ɵfac:
|
|
147
|
-
static ɵcmp:
|
|
152
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXThumbnailViewerComponent, never>;
|
|
153
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXThumbnailViewerComponent, "ax-thumbnail-viewer", never, { "item": { "alias": "item"; "required": false; "isSignal": true; }; "index": { "alias": "index"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
148
154
|
}
|
|
149
155
|
|
|
150
156
|
declare class VideoPlayerComponent extends AXMediaViewerBaseComponent {
|
|
151
157
|
#private;
|
|
152
|
-
protected src:
|
|
158
|
+
protected src: _angular_core.WritableSignal<any>;
|
|
153
159
|
protected service: AXMediaViewerService;
|
|
154
|
-
|
|
155
|
-
static
|
|
160
|
+
protected loading: _angular_core.WritableSignal<boolean>;
|
|
161
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<VideoPlayerComponent, never>;
|
|
162
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<VideoPlayerComponent, "ax-video", never, {}, {}, never, never, true, never>;
|
|
156
163
|
}
|
|
157
164
|
|
|
158
165
|
interface AXMediaViewerModuleConfig {
|
|
@@ -162,10 +169,10 @@ declare class AXMediaViewerModule {
|
|
|
162
169
|
constructor();
|
|
163
170
|
static forRoot(config?: AXMediaViewerModuleConfig): ModuleWithProviders<AXMediaViewerModule>;
|
|
164
171
|
static forChild(config?: AXMediaViewerModuleConfig): ModuleWithProviders<AXMediaViewerModule>;
|
|
165
|
-
static ɵfac:
|
|
166
|
-
static ɵmod:
|
|
167
|
-
static ɵinj:
|
|
172
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMediaViewerModule, never>;
|
|
173
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXMediaViewerModule, never, [typeof i1.CommonModule, typeof i2.AXButtonModule, typeof i3.AXDecoratorModule, typeof i4.CdkPortalOutlet, typeof i5.FormsModule, typeof i6.AXImageModule, typeof i7.AXLoadingModule, typeof i8.AXCarouselDirective, typeof i9.AXPdfReaderModule, typeof i10.AXVideoPlayerModule, typeof AXMediaViewerContainerComponent, typeof AXMediaViewerSliderComponent, typeof AXAudioPlayerComponent, typeof AXImageViewerComponent, typeof PdfComponent, typeof VideoPlayerComponent, typeof AXFileInfoComponent, typeof AXThumbnailViewerComponent], [typeof AXMediaViewerContainerComponent, typeof AXMediaViewerSliderComponent, typeof AXAudioPlayerComponent, typeof AXImageViewerComponent, typeof PdfComponent, typeof VideoPlayerComponent, typeof AXFileInfoComponent, typeof AXThumbnailViewerComponent]>;
|
|
174
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXMediaViewerModule>;
|
|
168
175
|
}
|
|
169
176
|
|
|
170
177
|
export { AXAudioPlayerComponent, AXFileInfoComponent, AXImageViewerComponent, AXMediaViewerBaseComponent, AXMediaViewerContainerComponent, AXMediaViewerModule, AXMediaViewerSliderComponent, AXThumbnailViewerComponent, PdfComponent, VideoPlayerComponent };
|
|
171
|
-
export type { AXMediaViewerData, AXMediaViewerModuleConfig, AXMediaViewerType };
|
|
178
|
+
export type { AXMediaViewerData, AXMediaViewerModuleConfig, AXMediaViewerType, AXThumbnail };
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acorex/components",
|
|
3
|
-
"version": "21.0.1-next.
|
|
3
|
+
"version": "21.0.1-next.41",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@acorex/core": "21.0.1-next.
|
|
6
|
-
"@acorex/cdk": "21.0.1-next.
|
|
5
|
+
"@acorex/core": "21.0.1-next.41",
|
|
6
|
+
"@acorex/cdk": "21.0.1-next.41",
|
|
7
7
|
"@angular/common": "^20.0.0",
|
|
8
8
|
"@angular/core": "^20.0.0",
|
|
9
9
|
"@angular/cdk": "^20.0.0",
|
|
@@ -34,7 +34,6 @@
|
|
|
34
34
|
"@codemirror/lang-sass": "^6.0.2",
|
|
35
35
|
"@codemirror/theme-one-dark": "^6.1.0",
|
|
36
36
|
"@uiw/codemirror-theme-github": "^4.21.0",
|
|
37
|
-
"prettier": ">=3.0.0",
|
|
38
37
|
"@bomdi/codebox": "^2.0.0",
|
|
39
38
|
"@editorjs/editorjs": "2.28.2",
|
|
40
39
|
"@editorjs/header": "^2.8.8",
|
|
@@ -45,11 +44,7 @@
|
|
|
45
44
|
"@editorjs/underline": "^1.2.1",
|
|
46
45
|
"editorjs-text-color-plugin": "^2.0.3"
|
|
47
46
|
},
|
|
48
|
-
"peerDependenciesMeta": {
|
|
49
|
-
"prettier": {
|
|
50
|
-
"optional": true
|
|
51
|
-
}
|
|
52
|
-
},
|
|
47
|
+
"peerDependenciesMeta": {},
|
|
53
48
|
"dependencies": {
|
|
54
49
|
"tslib": "^2.3.0"
|
|
55
50
|
},
|
|
@@ -352,14 +347,14 @@
|
|
|
352
347
|
"types": "./radio/index.d.ts",
|
|
353
348
|
"default": "./fesm2022/acorex-components-radio.mjs"
|
|
354
349
|
},
|
|
355
|
-
"./rail-navigation": {
|
|
356
|
-
"types": "./rail-navigation/index.d.ts",
|
|
357
|
-
"default": "./fesm2022/acorex-components-rail-navigation.mjs"
|
|
358
|
-
},
|
|
359
350
|
"./range-slider": {
|
|
360
351
|
"types": "./range-slider/index.d.ts",
|
|
361
352
|
"default": "./fesm2022/acorex-components-range-slider.mjs"
|
|
362
353
|
},
|
|
354
|
+
"./rail-navigation": {
|
|
355
|
+
"types": "./rail-navigation/index.d.ts",
|
|
356
|
+
"default": "./fesm2022/acorex-components-rail-navigation.mjs"
|
|
357
|
+
},
|
|
363
358
|
"./rate-picker": {
|
|
364
359
|
"types": "./rate-picker/index.d.ts",
|
|
365
360
|
"default": "./fesm2022/acorex-components-rate-picker.mjs"
|