@acorex/cdk 21.0.1-next.7 → 21.0.1-next.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-cdk-uploader.mjs","sources":["../../../../packages/cdk/uploader/src/lib/uploader.models.ts","../../../../packages/cdk/uploader/src/lib/uploader.service.ts","../../../../packages/cdk/uploader/src/lib/uploader-zone.directive.ts","../../../../packages/cdk/uploader/src/lib/uploader-browse-handle.directive.ts","../../../../packages/cdk/uploader/src/acorex-cdk-uploader.ts"],"sourcesContent":["import { AXEvent } from '@acorex/cdk/common';\nimport { computed, signal } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\nexport type AXUploadStatus = 'new' | 'inprogress' | 'completed' | 'failed' | 'canceled';\n\nexport interface AXUploaderChangedEvent extends AXEvent {\n requests: AXUploadRequest[];\n}\n\nexport interface AXUploaderFileStartEvent extends AXEvent {\n uploadedFile: AXUploadRequest;\n}\nexport interface AXUploaderFileCompleteEvent extends AXEvent {\n uploadedFile: AXUploadRequest;\n}\n\nexport interface AXUploaderFilesCompleteEvent extends AXEvent {\n uploadedFiles: AXUploadRequest[];\n data?: any;\n}\n\nexport interface AXUploaderFileCancelEvent extends AXEvent {\n uploadedFile: AXUploadRequest;\n}\n\nexport class AXUploadRequest {\n get name(): string {\n return this.file.name;\n }\n\n get ext(): string {\n const parts = this.name.split('.');\n if (parts.length > 1) {\n return parts[parts.length - 1];\n } else {\n // No extension found\n return '';\n }\n }\n\n get size(): number {\n return this.file.size;\n }\n\n get file(): File {\n return this.uploadFile;\n }\n\n private readonly _progress = signal(0);\n progress = computed(() => this._progress());\n\n private readonly _estimateTime = signal(0);\n estimateTime = computed(() => this._estimateTime());\n\n private readonly _status = signal<AXUploadStatus>('new');\n status = computed(() => this._status());\n\n private readonly _message = signal<string | null>(null);\n message = computed(() => this._message());\n\n private readonly _isDetermined = signal<boolean>(false);\n isDetermined = computed(() => this._isDetermined());\n\n private startTime: number;\n private bytesTransferred = 0;\n\n public metaData: any;\n\n public onCancel = new Subject<void>();\n public onStart = new Subject<void>();\n public onFailed = new Subject<void>();\n public onComplete = new BehaviorSubject<void>(null);\n\n constructor(private uploadFile: File) {}\n\n private estimateTimeRemaining(bytesTransferred: number): number | null {\n const now = Date.now();\n const elapsed = now - this.startTime; // Time in milliseconds\n\n if (isNaN(elapsed) || elapsed === 0) {\n return null; // Avoid division by zero\n }\n\n const speed = (bytesTransferred || 1) / elapsed; // Bytes per millisecond\n const remainingBytes = this.size - bytesTransferred;\n const estimatedTime = Math.ceil(remainingBytes / speed); // Time in milliseconds\n return estimatedTime; // Return the estimated time in milliseconds\n }\n\n public setTransferredBytes(value: number) {\n this.bytesTransferred = value;\n if (value > 0 && !this._isDetermined() && (this.status() == 'new' || this.status() == 'inprogress')) {\n this._isDetermined.set(true);\n }\n this.updateEstimateTime();\n }\n\n private updateEstimateTime() {\n this._estimateTime.set(this.estimateTimeRemaining(this.bytesTransferred));\n const progress = Math.floor((this.bytesTransferred / this.size) * 100);\n this._progress.set(progress);\n }\n\n public async upload(): Promise<void> {\n this.startTime = Date.now();\n this._progress.set(0);\n this._status.set('inprogress');\n this.onStart.next();\n }\n\n public cancel(): void {\n this._status.set('canceled');\n this.bytesTransferred = 0;\n this._estimateTime.set(0);\n this._progress.set(0);\n this.onCancel.next();\n }\n\n public redo(): void {\n // this.startTime = Date.now();\n this._progress.set(0);\n this._status.set('inprogress');\n this._message.set(null);\n this.onStart.next();\n }\n\n public error(message: string): void {\n this._status.set('failed');\n this.bytesTransferred = 0;\n this._estimateTime.set(0);\n this._progress.set(0);\n this._message.set(message);\n this.onFailed.next();\n }\n\n public finish(data?: any): void {\n this._status.set('completed');\n this.bytesTransferred = this.size;\n this._estimateTime.set(0);\n this._progress.set(100);\n this.onComplete.next(data);\n }\n}\n","import { AXFileService } from '@acorex/core/file';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Injectable, computed, inject } from '@angular/core';\nimport { sumBy } from 'lodash-es';\nimport { BehaviorSubject, Subject, map } from 'rxjs';\nimport {\n AXUploadRequest,\n AXUploaderFileCancelEvent,\n AXUploaderFileCompleteEvent,\n AXUploaderFileStartEvent,\n AXUploaderFilesCompleteEvent,\n} from './uploader.models';\n\n/**\n * Service for managing file uploads with drag-and-drop support, progress tracking, and dialog management.\n * @category Services\n */\n@Injectable({ providedIn: 'root' })\nexport class AXUploaderService {\n /**\n * Translation service for localized text.\n * @ignore\n */\n private translateService = inject(AXTranslationService);\n\n /**\n * File service for file operations.\n * @ignore\n */\n private fileService: AXFileService = inject(AXFileService);\n\n /**\n * Behavior subject for managing upload requests.\n * @ignore\n */\n private readonly _files$ = new BehaviorSubject<AXUploadRequest[]>([]);\n\n /**\n * Gets the files behavior subject for observing upload requests.\n */\n public readonly files = this._files$.asObservable();\n\n /**\n * Subject for file upload start events.\n */\n public readonly onFileUploadStart = new Subject<AXUploaderFileStartEvent>();\n\n /**\n * Subject for file upload complete events.\n */\n public readonly onFileUploadComplete = new Subject<AXUploaderFileCompleteEvent>();\n\n /**\n * Subject for all files upload complete events.\n */\n public readonly onFilesUploadComplete = new Subject<AXUploaderFilesCompleteEvent>();\n\n /**\n * Subject for file upload canceled events.\n */\n public readonly onFileUploadCanceled = new Subject<AXUploaderFileCancelEvent>();\n\n /**\n * Signal indicating if any upload has determined progress.\n */\n public readonly isAnyDetermined = computed(() => this._files$.value.some((file) => file.isDetermined()));\n\n /**\n * Observable for total estimated upload time.\n */\n public readonly totalEstimateTime = this._files$.pipe(\n map((files) => sumBy(files, (file) => (file.status() === 'inprogress' ? file.estimateTime() : 0))),\n );\n\n /**\n * Converts a File object to an AXUploadRequest.\n * @private\n */\n private convertFileToRequest(file: File): AXUploadRequest {\n return new AXUploadRequest(file);\n }\n\n /**\n * Starts uploading files that are in 'new' status.\n * @private\n */\n private async startUpload() {\n const newFiles = this._files$.value.filter((c) => c.status() === 'new');\n for (const file of newFiles) {\n await this.bindEvents(file);\n }\n }\n\n /**\n * Binds event handlers to an upload request.\n * @private\n */\n private async bindEvents(c: AXUploadRequest) {\n c.onStart.subscribe(() => {\n this.onFileUploadStart.next({\n component: this,\n uploadedFile: c,\n isUserInteraction: false,\n });\n });\n\n c.onComplete.subscribe((data) => {\n Object.assign(c, { metaData: data });\n this.onFileUploadComplete.next({\n component: this,\n uploadedFile: c,\n isUserInteraction: false,\n });\n\n const isAllDone = this._files$.value.every(\n (f) => f.status() === 'completed' || f.status() === 'canceled' || f.status() === 'failed',\n );\n\n if (isAllDone) {\n this.onFilesUploadComplete.next({\n component: this,\n uploadedFiles: this._files$.value,\n isUserInteraction: false,\n });\n }\n });\n\n c.onCancel.subscribe(() => {\n this.onFileUploadCanceled.next({\n component: this,\n uploadedFile: c,\n isUserInteraction: false,\n });\n });\n }\n\n /**\n * Opens the file browser dialog and returns selected files as upload requests.\n * @param options - Configuration options for file selection\n * @returns Promise that resolves to an array of upload requests\n */\n async browse(options: { multiple?: boolean; accept?: string } = { multiple: false }): Promise<AXUploadRequest[]> {\n try {\n const files = await this.fileService.choose({ multiple: options?.multiple || false, accept: options.accept });\n if (files.length) {\n return this.add(files);\n }\n return [];\n } catch (error) {\n // It's good practice to log the error.\n console.error('File browse failed:', error);\n return [];\n }\n }\n\n /**\n * Adds files to the upload queue and starts the upload process.\n * @param files - Files to add to the upload queue\n * @returns Promise that resolves to an array of upload requests\n */\n async add(files: FileList | File[]): Promise<AXUploadRequest[]> {\n const list = Array.from(files).map((f) => this.convertFileToRequest(f));\n const newFiles = [...this._files$.value, ...list];\n this._files$.next(newFiles);\n this.startUpload();\n return list;\n }\n\n /**\n * Cancels all pending and in-progress uploads.\n */\n async cancelAll() {\n await Promise.all(this._files$.value.filter((c) => c.status() !== 'completed').map((c) => c.cancel()));\n }\n\n /**\n * Clears all completed uploads from the queue.\n */\n clearAll() {\n const remainingFiles = this._files$.value.filter((c) => c.status() === 'inprogress');\n this._files$.next(remainingFiles);\n }\n\n /**\n * Removes a specific upload request from the queue.\n * @param item - The upload request to remove\n */\n remove(item: AXUploadRequest) {\n const updatedFiles = this._files$.value.filter((c) => c !== item);\n this._files$.next(updatedFiles);\n }\n}\n","import { AXTranslationService } from '@acorex/core/translation';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectorRef,\n DOCUMENT,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n OnDestroy,\n PLATFORM_ID,\n TemplateRef,\n ViewContainerRef,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { AXUploaderChangedEvent, AXUploaderFileCompleteEvent, AXUploaderFilesCompleteEvent } from './uploader.models';\nimport { AXUploaderService } from './uploader.service';\n\n/**\n * A directive that provides drag-and-drop and file upload functionality.\n * When applied to an element, it enables drag-and-drop file uploads and file browsing.\n * @category Directives\n */\n@Directive({\n selector: '[axUploaderZone]',\n providers: [AXUnsubscriber],\n host: {\n class: 'ax-drop-zone',\n },\n})\nexport class AXUploaderZoneDirective implements OnDestroy {\n /**\n * The element reference for the directive host.\n * @ignore\n */\n private elementRef = inject(ElementRef);\n\n /**\n * View container reference for rendering custom templates.\n * @ignore\n */\n private viewContainerRef = inject(ViewContainerRef);\n\n /**\n * Whether multiple files can be selected.\n * @defaultValue true\n */\n multiple = input(true);\n\n /**\n * File types that are accepted for upload.\n * @defaultValue null\n */\n accept = input<string | null>(null);\n\n /**\n * Custom template for the drag overlay. If provided, this will be used instead of the default overlay.\n */\n overlayTemplate = input<TemplateRef<unknown>>();\n\n /**\n * Whether browsing files by clicking on the container is disabled.\n * @defaultValue false\n */\n disableBrowse = input(false);\n\n /**\n * Whether drag and drop functionality is disabled.\n * @defaultValue false\n */\n disableDragDrop = input(false);\n\n /**\n * Change detector reference.\n * @ignore\n */\n private cdr = inject(ChangeDetectorRef);\n\n /**\n * Document reference.\n * @ignore\n */\n private document = inject(DOCUMENT);\n\n /**\n * Platform ID for browser detection.\n * @ignore\n */\n private platformID = inject(PLATFORM_ID);\n\n /**\n * Upload service instance.\n * @ignore\n */\n private uploadService = inject(AXUploaderService);\n\n /**\n * Unsubscriber service instance.\n * @ignore\n */\n private unsubscriber = inject(AXUnsubscriber);\n\n /**\n * Translation service instance.\n * @ignore\n */\n private translateService = inject(AXTranslationService);\n\n /**\n * The host element.\n * @ignore\n */\n private element: HTMLElement;\n\n /**\n * Embedded view reference for custom template.\n * @ignore\n */\n private templateViewRef: EmbeddedViewRef<unknown> | null = null;\n\n /**\n * Emitted when files are selected or dropped (like HTML file input).\n * Emits an event with files property containing the selected files.\n */\n fileChange = output<{ event: Event; files: File[] }>();\n\n /**\n * Emitted when files are changed (added, removed, etc.).\n * @deprecated Use fileChange instead for simpler file input-like behavior\n */\n onChanged = output<AXUploaderChangedEvent>();\n\n /**\n * Emitted on drag enter event.\n */\n dragEnter = output<DragEvent>();\n\n /**\n * Emitted on drag leave event.\n */\n dragLeave = output<DragEvent>();\n\n /**\n * Emitted on drag over event.\n */\n dragOver = output<DragEvent>();\n\n /**\n * Emitted when a single file upload is completed.\n */\n onFileUploadComplete = output<AXUploaderFileCompleteEvent>();\n\n /**\n * Emitted when all files upload is completed.\n */\n onFilesUploadComplete = output<AXUploaderFilesCompleteEvent>();\n\n /**\n * CSS class for the overlay state.\n * @ignore\n */\n stateClass = 'ax-uploader-overlay-state';\n\n /**\n * The overlay element for drag and drop visual feedback.\n * @ignore\n */\n overlayElement: HTMLDivElement | null = null;\n\n /**\n * Flag to track if dragOver has been emitted for the current drag session.\n * @ignore\n */\n private dragOverEmitted = signal(false);\n\n /**\n * Counter to track drag enter/leave depth to prevent false dragleave events.\n * When moving from parent to child, dragleave fires even though we're still inside.\n * @ignore\n */\n private dragDepth = signal(0);\n\n /**\n * Animation end handler for cleanup.\n * @ignore\n */\n private animationEndHandler: ((e: AnimationEvent) => void) | null = null;\n\n /**\n * Initializes the directive with event listeners and service subscriptions.\n */\n constructor() {\n this.element = this.elementRef.nativeElement as HTMLElement;\n this.element.style.position = 'relative';\n\n //\n this.uploadService.onFileUploadComplete.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onFileUploadComplete.emit(c);\n });\n\n this.uploadService.onFilesUploadComplete.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onFilesUploadComplete.emit(c);\n });\n //\n setTimeout(() => {\n const browseHandlers = this.element.querySelectorAll('[data-ax-uploader-browse-handle=\"true\"]');\n if (browseHandlers.length <= 0 && !this.disableBrowse()) {\n this.element.addEventListener('click', this.browser.bind(this), true);\n }\n });\n\n if (!this.disableDragDrop()) {\n this.element.addEventListener('dragenter', this.handleDragEnter.bind(this), true);\n this.element.addEventListener('dragover', this.handleDragOver.bind(this), true);\n this.element.addEventListener('drop', this.handleOnDrop.bind(this), true);\n this.element.addEventListener('dragleave', (e) => this.removeZone(e as DragEvent), true);\n }\n }\n\n /**\n * Cleans up event listeners when the directive is destroyed.\n */\n ngOnDestroy(): void {\n this.element.removeEventListener('click', this.browser.bind(this));\n\n this.element.removeEventListener('dragenter', this.handleDragEnter.bind(this));\n this.element.removeEventListener('drop', this.handleOnDrop.bind(this));\n this.element.removeEventListener('dragover', this.handleDragOver.bind(this));\n this.element.removeEventListener('dragleave', this.removeZone.bind(this));\n }\n\n /**\n * Handles drag enter events to show the upload overlay.\n * @private\n */\n private async handleDragEnter(event: DragEvent) {\n if (this.disableDragDrop()) return;\n this.dragOverEmitted.set(false); // Reset flag when entering\n this.dragDepth.update((depth) => depth + 1); // Increment depth counter\n\n // Only create overlay on first enter (when depth is 1)\n if (this.dragDepth() === 1) {\n // Cancel any pending exit animation\n this.cancelExitAnimation();\n await this.createZone();\n this.dragEnter.emit(event);\n }\n\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n /**\n * Handles drop events to process dropped files.\n * @private\n */\n private async handleOnDrop(event: DragEvent) {\n if (this.disableDragDrop()) return;\n event.preventDefault();\n event.stopImmediatePropagation();\n\n // Reset drag depth on drop\n this.dragDepth.set(0);\n\n if (event.dataTransfer?.files && event.dataTransfer.files.length > 0) {\n const files = Array.from(event.dataTransfer.files);\n\n // Emit simple file change event (like HTML input)\n this.fileChange.emit({ event, files });\n\n // Also emit the old onChanged event for backward compatibility\n const requests = await this.uploadService.add(event.dataTransfer.files);\n this.onChanged.emit({\n component: this,\n requests,\n isUserInteraction: true,\n });\n }\n\n this.removeZone();\n this.cdr.detectChanges();\n }\n\n /**\n * Handles drag over events to allow dropping.\n * @private\n */\n private handleDragOver(event: DragEvent) {\n if (this.disableDragDrop()) return;\n // Only emit dragOver once per drag session to avoid spam\n if (!this.dragOverEmitted()) {\n this.dragOverEmitted.set(true);\n this.dragOver.emit(event);\n }\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n /**\n * Creates the visual overlay for drag and drop feedback.\n * @private\n */\n private async createZone() {\n if (isPlatformBrowser(this.platformID)) {\n // Check if overlay already exists (might be exiting)\n let existingOverlay = this.document.getElementById('ax-uploader-overlay-state') || this.overlayElement;\n\n // Verify the overlay is actually in the DOM (not removed after animation)\n if (existingOverlay && existingOverlay.parentNode === this.element) {\n // Remove exiting class to cancel exit animation and show overlay again\n existingOverlay.classList.remove('ax-uploader-overlay-exiting');\n // Clean up any pending animation handler\n if (this.animationEndHandler) {\n existingOverlay.removeEventListener('animationend', this.animationEndHandler);\n this.animationEndHandler = null;\n }\n // Reset overlayElement reference if it was cleared\n if (!this.overlayElement && existingOverlay) {\n this.overlayElement = existingOverlay as HTMLDivElement;\n }\n return;\n } else if (existingOverlay && existingOverlay.parentNode !== this.element) {\n // Overlay exists but is not in the DOM, clear the reference\n this.overlayElement = null;\n existingOverlay = null;\n }\n\n // Check if custom template is provided\n const template = this.overlayTemplate();\n if (template) {\n // Create container for template\n this.overlayElement = this.document.createElement('div');\n this.overlayElement.classList.add('ax-uploader-overlay-state', '-ax-z-1');\n this.overlayElement.id = 'ax-uploader-overlay-state';\n\n // Create embedded view from template (will be inserted at directive anchor)\n this.viewContainerRef.clear();\n this.templateViewRef = this.viewContainerRef.createEmbeddedView(template);\n this.templateViewRef.detectChanges();\n\n // Get root nodes and move them to overlay element\n const rootNodes = this.templateViewRef.rootNodes;\n for (const node of rootNodes) {\n // Remove from current location if it has a parent\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n this.overlayElement.appendChild(node);\n }\n\n // Detach the view since we've moved the nodes\n this.templateViewRef.detach();\n\n this.element.appendChild(this.overlayElement);\n this.cdr.detectChanges();\n return;\n }\n\n // Use default overlay\n this.overlayElement = this.document.createElement('div');\n this.overlayElement.classList.add('ax-uploader-overlay-state', '-ax-z-1');\n this.overlayElement.id = 'ax-uploader-overlay-state';\n\n const icon: HTMLSpanElement = this.document.createElement('span');\n icon.classList.add('ax-icon', 'ax-icon-upload');\n\n const text = this.document.createElement('span');\n text.innerText = await this.translateService.translateAsync('@acorex:uploader.zone.text');\n\n this.overlayElement.appendChild(icon);\n this.overlayElement.appendChild(text);\n\n this.element.appendChild(this.overlayElement);\n }\n }\n\n /**\n * Cancels any pending exit animation and cleans up handlers.\n * @private\n */\n private cancelExitAnimation() {\n if (isPlatformBrowser(this.platformID)) {\n const overlay = this.document.getElementById('ax-uploader-overlay-state') || this.overlayElement;\n\n if (overlay && this.animationEndHandler) {\n // Remove exiting class to cancel animation\n overlay.classList.remove('ax-uploader-overlay-exiting');\n // Clean up the handler\n overlay.removeEventListener('animationend', this.animationEndHandler);\n this.animationEndHandler = null;\n }\n }\n }\n\n /**\n * Removes the visual overlay for drag and drop feedback.\n * @private\n */\n private removeZone(event?: DragEvent) {\n if (this.disableDragDrop()) return;\n this.dragDepth.update((depth) => Math.max(0, depth - 1)); // Decrement depth counter, ensure non-negative\n\n // Only remove overlay when we've truly left the drop zone (depth reaches 0)\n if (this.dragDepth() <= 0) {\n this.dragDepth.set(0); // Ensure it's exactly 0\n this.dragOverEmitted.set(false); // Reset flag when leaving\n\n if (event) {\n this.dragLeave.emit(event);\n }\n\n if (isPlatformBrowser(this.platformID)) {\n const overlay = this.document.getElementById('ax-uploader-overlay-state') || this.overlayElement;\n\n if (overlay) {\n // Clean up any existing handler first\n if (this.animationEndHandler) {\n overlay.removeEventListener('animationend', this.animationEndHandler);\n }\n\n // Add exiting class to trigger CSS animation\n overlay.classList.add('ax-uploader-overlay-exiting');\n\n // Wait for CSS animation to complete\n this.animationEndHandler = (e: AnimationEvent) => {\n if (e.target === overlay && e.animationName === 'fadeOutScale') {\n overlay.removeEventListener('animationend', this.animationEndHandler);\n this.animationEndHandler = null;\n\n if (overlay.parentNode === this.element) {\n this.element.removeChild(overlay);\n }\n if (this.overlayElement && this.overlayElement.parentNode) {\n this.overlayElement.remove();\n }\n\n // Clear the overlay element reference\n this.overlayElement = null;\n\n // Remove custom template view if it exists\n if (this.templateViewRef) {\n this.viewContainerRef.clear();\n this.templateViewRef = null;\n }\n }\n };\n\n overlay.addEventListener('animationend', this.animationEndHandler);\n } else {\n // If overlay doesn't exist, just clean up template view\n if (this.templateViewRef) {\n this.viewContainerRef.clear();\n this.templateViewRef = null;\n }\n }\n }\n }\n }\n\n /**\n * Opens the file browser dialog and processes selected files.\n * @returns Promise that resolves when files are processed\n */\n public async browser(): Promise<void> {\n if (this.disableBrowse()) return;\n const files = await this.uploadService.browse({ accept: this.accept() ?? undefined, multiple: this.multiple() });\n\n if (files.length > 0) {\n // Create a synthetic event for consistency\n const syntheticEvent = new Event('change');\n const target = Object.create(EventTarget.prototype) as EventTarget & { files: File[] };\n target.files = files.map((r) => r.file);\n Object.defineProperty(syntheticEvent, 'target', { value: target, writable: false });\n\n // Emit simple file change event (like HTML input)\n this.fileChange.emit({\n event: syntheticEvent,\n files: files.map((r) => r.file),\n });\n\n // Also emit the old onChanged event for backward compatibility\n this.onChanged.emit({\n component: this,\n requests: files,\n isUserInteraction: true,\n });\n }\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, OnDestroy, OnInit, PLATFORM_ID, inject } from '@angular/core';\nimport { AXUploaderZoneDirective } from './uploader-zone.directive';\n\n/**\n * A directive that provides browse functionality for file uploads.\n * When applied to an element, clicking it will trigger the file browser dialog.\n * @category Directives\n */\n@Directive({ selector: '[axUploaderBrowseHandle]' })\nexport class AXUploaderBrowseDirective implements OnInit, OnDestroy {\n /**\n * The uploader zone directive instance.\n * @ignore\n */\n private uploaderZone = inject(AXUploaderZoneDirective);\n\n /**\n * The element reference for the directive host.\n * @ignore\n */\n private elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n\n /**\n * Platform ID for browser detection.\n * @ignore\n */\n private platformID = inject(PLATFORM_ID);\n\n /**\n * Initializes the directive by adding click event listener and data attribute.\n */\n ngOnInit() {\n if (isPlatformBrowser(this.platformID) && this.elementRef?.nativeElement) {\n const element = this.elementRef.nativeElement;\n element.addEventListener('click', this.handleClick.bind(this));\n // Use setAttribute for SSR compatibility\n if (element.dataset) {\n element.dataset['axUploaderBrowseHandle'] = 'true';\n } else {\n element.setAttribute('data-ax-uploader-browse-handle', 'true');\n }\n }\n }\n\n /**\n * Cleans up the directive by removing event listeners.\n */\n ngOnDestroy(): void {\n if (isPlatformBrowser(this.platformID) && this.elementRef.nativeElement) {\n this.elementRef.nativeElement.removeEventListener('click', this.handleClick.bind(this));\n }\n }\n\n /**\n * Handles the click event to trigger file browser.\n * @private\n */\n private async handleClick() {\n await this.uploaderZone.browser();\n }\n}\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-cdk-uploader.mjs","sources":["../tmp-esm2022/uploader/lib/uploader.models.js","../tmp-esm2022/uploader/lib/uploader.service.js","../tmp-esm2022/uploader/lib/uploader-zone.directive.js","../tmp-esm2022/uploader/lib/uploader-browse-handle.directive.js","../tmp-esm2022/uploader/acorex-cdk-uploader.js"],"sourcesContent":["import { computed, signal } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nexport class AXUploadRequest {\n get name() {\n return this.file.name;\n }\n get ext() {\n const parts = this.name.split('.');\n if (parts.length > 1) {\n return parts[parts.length - 1];\n }\n else {\n // No extension found\n return '';\n }\n }\n get size() {\n return this.file.size;\n }\n get file() {\n return this.uploadFile;\n }\n constructor(uploadFile) {\n this.uploadFile = uploadFile;\n this._progress = signal(0, ...(ngDevMode ? [{ debugName: \"_progress\" }] : []));\n this.progress = computed(() => this._progress(), ...(ngDevMode ? [{ debugName: \"progress\" }] : []));\n this._estimateTime = signal(0, ...(ngDevMode ? [{ debugName: \"_estimateTime\" }] : []));\n this.estimateTime = computed(() => this._estimateTime(), ...(ngDevMode ? [{ debugName: \"estimateTime\" }] : []));\n this._status = signal('new', ...(ngDevMode ? [{ debugName: \"_status\" }] : []));\n this.status = computed(() => this._status(), ...(ngDevMode ? [{ debugName: \"status\" }] : []));\n this._message = signal(null, ...(ngDevMode ? [{ debugName: \"_message\" }] : []));\n this.message = computed(() => this._message(), ...(ngDevMode ? [{ debugName: \"message\" }] : []));\n this._isDetermined = signal(false, ...(ngDevMode ? [{ debugName: \"_isDetermined\" }] : []));\n this.isDetermined = computed(() => this._isDetermined(), ...(ngDevMode ? [{ debugName: \"isDetermined\" }] : []));\n this.bytesTransferred = 0;\n this.onCancel = new Subject();\n this.onStart = new Subject();\n this.onFailed = new Subject();\n this.onComplete = new BehaviorSubject(null);\n }\n estimateTimeRemaining(bytesTransferred) {\n const now = Date.now();\n const elapsed = now - this.startTime; // Time in milliseconds\n if (isNaN(elapsed) || elapsed === 0) {\n return null; // Avoid division by zero\n }\n const speed = (bytesTransferred || 1) / elapsed; // Bytes per millisecond\n const remainingBytes = this.size - bytesTransferred;\n const estimatedTime = Math.ceil(remainingBytes / speed); // Time in milliseconds\n return estimatedTime; // Return the estimated time in milliseconds\n }\n setTransferredBytes(value) {\n this.bytesTransferred = value;\n if (value > 0 && !this._isDetermined() && (this.status() == 'new' || this.status() == 'inprogress')) {\n this._isDetermined.set(true);\n }\n this.updateEstimateTime();\n }\n updateEstimateTime() {\n this._estimateTime.set(this.estimateTimeRemaining(this.bytesTransferred));\n const progress = Math.floor((this.bytesTransferred / this.size) * 100);\n this._progress.set(progress);\n }\n async upload() {\n this.startTime = Date.now();\n this._progress.set(0);\n this._status.set('inprogress');\n this.onStart.next();\n }\n cancel() {\n this._status.set('canceled');\n this.bytesTransferred = 0;\n this._estimateTime.set(0);\n this._progress.set(0);\n this.onCancel.next();\n }\n redo() {\n // this.startTime = Date.now();\n this._progress.set(0);\n this._status.set('inprogress');\n this._message.set(null);\n this.onStart.next();\n }\n error(message) {\n this._status.set('failed');\n this.bytesTransferred = 0;\n this._estimateTime.set(0);\n this._progress.set(0);\n this._message.set(message);\n this.onFailed.next();\n }\n finish(data) {\n this._status.set('completed');\n this.bytesTransferred = this.size;\n this._estimateTime.set(0);\n this._progress.set(100);\n this.onComplete.next(data);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXIubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL3VwbG9hZGVyL3NyYy9saWIvdXBsb2FkZXIubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBd0JoRCxNQUFNLE9BQU8sZUFBZTtJQUMxQixJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckIsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqQyxDQUFDO2FBQU0sQ0FBQztZQUNOLHFCQUFxQjtZQUNyQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUEyQkQsWUFBb0IsVUFBZ0I7UUFBaEIsZUFBVSxHQUFWLFVBQVUsQ0FBTTtRQXpCbkIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFDLHFEQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLG9EQUFDLENBQUM7UUFFM0Isa0JBQWEs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Q0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sTUFBTSxDQUFDLElBQVU7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhFdmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBjb21wdXRlZCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IHR5cGUgQVhVcGxvYWRTdGF0dXMgPSAnbmV3JyB8ICdpbnByb2dyZXNzJyB8ICdjb21wbGV0ZWQnIHwgJ2ZhaWxlZCcgfCAnY2FuY2VsZWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYVXBsb2FkZXJDaGFuZ2VkRXZlbnQgZXh0ZW5kcyBBWEV2ZW50IHtcbiAgcmVxdWVzdHM6IEFYVXBsb2FkUmVxdWVzdFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYVXBsb2FkZXJGaWxlU3RhcnRFdmVudCBleHRlbmRzIEFYRXZlbnQge1xuICB1cGxvYWRlZEZpbGU6IEFYVXBsb2FkUmVxdWVzdDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQVhVcGxvYWRlckZpbGVDb21wbGV0ZUV2ZW50IGV4dGVuZHMgQVhFdmVudCB7XG4gIHVwbG9hZGVkRmlsZTogQVhVcGxvYWRSZXF1ZXN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYVXBsb2FkZXJGaWxlc0NvbXBsZXRlRXZlbnQgZXh0ZW5kcyBBWEV2ZW50IHtcbiAgdXBsb2FkZWRGaWxlczogQVhVcGxvYWRSZXF1ZXN0W107XG4gIGRhdGE/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhVcGxvYWRlckZpbGVDYW5jZWxFdmVudCBleHRlbmRzIEFYRXZlbnQge1xuICB1cGxvYWRlZEZpbGU6IEFYVXBsb2FkUmVxdWVzdDtcbn1cblxuZXhwb3J0IGNsYXNzIEFYVXBsb2FkUmVxdWVzdCB7XG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZS5uYW1lO1xuICB9XG5cbiAgZ2V0IGV4dCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcnRzID0gdGhpcy5uYW1lLnNwbGl0KCcuJyk7XG4gICAgaWYgKHBhcnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHJldHVybiBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm8gZXh0ZW5zaW9uIGZvdW5kXG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5maWxlLnNpemU7XG4gIH1cblxuICBnZXQgZmlsZSgpOiBGaWxlIHtcbiAgICByZXR1cm4gdGhpcy51cGxvYWRGaWxlO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcHJvZ3Jlc3MgPSBzaWduYWwoMCk7XG4gIHByb2dyZXNzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fcHJvZ3Jlc3MoKSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZXN0aW1hdGVUaW1lID0gc2lnbmFsKDApO1xuICBlc3RpbWF0ZVRpbWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9lc3RpbWF0ZVRpbWUoKSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdHVzID0gc2lnbmFsPEFYVXBsb2FkU3RhdHVzPignbmV3Jyk7XG4gIHN0YXR1cyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3N0YXR1cygpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9tZXNzYWdlID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBtZXNzYWdlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fbWVzc2FnZSgpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9pc0RldGVybWluZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBpc0RldGVybWluZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9pc0RldGVybWluZWQoKSk7XG5cbiAgcHJpdmF0ZSBzdGFydFRpbWU6IG51bWJlcjtcbiAgcHJpdmF0ZSBieXRlc1RyYW5zZmVycmVkID0gMDtcblxuICBwdWJsaWMgbWV0YURhdGE6IGFueTtcblxuICBwdWJsaWMgb25DYW5jZWwgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgb25TdGFydCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyBvbkZhaWxlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyBvbkNvbXBsZXRlID0gbmV3IEJlaGF2aW9yU3ViamVjdDx2b2lkPihudWxsKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHVwbG9hZEZpbGU6IEZpbGUpIHt9XG5cbiAgcHJpdmF0ZSBlc3RpbWF0ZVRpbWVSZW1haW5pbmcoYnl0ZXNUcmFuc2ZlcnJlZDogbnVtYmVyKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBjb25zdCBlbGFwc2VkID0gbm93IC0gdGhpcy5zdGFydFRpbWU7IC8vIFRpbWUgaW4gbWlsbGlzZWNvbmRzXG5cbiAgICBpZiAoaXNOYU4oZWxhcHNlZCkgfHwgZWxhcHNlZCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7IC8vIEF2b2lkIGRpdmlzaW9uIGJ5IHplcm9cbiAgICB9XG5cbiAgICBjb25zdCBzcGVlZCA9IChieXRlc1RyYW5zZmVycmVkIHx8IDEpIC8gZWxhcHNlZDsgLy8gQnl0ZXMgcGVyIG1pbGxpc2Vjb25kXG4gICAgY29uc3QgcmVtYWluaW5nQnl0ZXMgPSB0aGlzLnNpemUgLSBieXRlc1RyYW5zZmVycmVkO1xuICAgIGNvbnN0IGVzdGltYXRlZFRpbWUgPSBNYXRoLmNlaWwocmVtYWluaW5nQnl0ZXMgLyBzcGVlZCk7IC8vIFRpbWUgaW4gbWlsbGlzZWNvbmRzXG4gICAgcmV0dXJuIGVzdGltYXRlZFRpbWU7IC8vIFJldHVybiB0aGUgZXN0aW1hdGVkIHRpbWUgaW4gbWlsbGlzZWNvbmRzXG4gIH1cblxuICBwdWJsaWMgc2V0VHJhbnNmZXJyZWRCeXRlcyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5ieXRlc1RyYW5zZmVycmVkID0gdmFsdWU7XG4gICAgaWYgKHZhbHVlID4gMCAmJiAhdGhpcy5faXNEZXRlcm1pbmVkKCkgJiYgKHRoaXMuc3RhdHVzKCkgPT0gJ25ldycgfHwgdGhpcy5zdGF0dXMoKSA9PSAnaW5wcm9ncmVzcycpKSB7XG4gICAgICB0aGlzLl9pc0RldGVybWluZWQuc2V0KHRydWUpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUVzdGltYXRlVGltZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVFc3RpbWF0ZVRpbWUoKSB7XG4gICAgdGhpcy5fZXN0aW1hdGVUaW1lLnNldCh0aGlzLmVzdGltYXRlVGltZVJlbWFpbmluZyh0aGlzLmJ5dGVzVHJhbnNmZXJyZWQpKTtcbiAgICBjb25zdCBwcm9ncmVzcyA9IE1hdGguZmxvb3IoKHRoaXMuYnl0ZXNUcmFuc2ZlcnJlZCAvIHRoaXMuc2l6ZSkgKiAxMDApO1xuICAgIHRoaXMuX3Byb2dyZXNzLnNldChwcm9ncmVzcyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdXBsb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICB0aGlzLl9wcm9ncmVzcy5zZXQoMCk7XG4gICAgdGhpcy5fc3RhdHVzLnNldCgnaW5wcm9ncmVzcycpO1xuICAgIHRoaXMub25TdGFydC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgY2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXR1cy5zZXQoJ2NhbmNlbGVkJyk7XG4gICAgdGhpcy5ieXRlc1RyYW5zZmVycmVkID0gMDtcbiAgICB0aGlzLl9lc3RpbWF0ZVRpbWUuc2V0KDApO1xuICAgIHRoaXMuX3Byb2dyZXNzLnNldCgwKTtcbiAgICB0aGlzLm9uQ2FuY2VsLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWRvKCk6IHZvaWQge1xuICAgIC8vIHRoaXMuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICB0aGlzLl9wcm9ncmVzcy5zZXQoMCk7XG4gICAgdGhpcy5fc3RhdHVzLnNldCgnaW5wcm9ncmVzcycpO1xuICAgIHRoaXMuX21lc3NhZ2Uuc2V0KG51bGwpO1xuICAgIHRoaXMub25TdGFydC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgZXJyb3IobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdHVzLnNldCgnZmFpbGVkJyk7XG4gICAgdGhpcy5ieXRlc1RyYW5zZmVycmVkID0gMDtcbiAgICB0aGlzLl9lc3RpbWF0ZVRpbWUuc2V0KDApO1xuICAgIHRoaXMuX3Byb2dyZXNzLnNldCgwKTtcbiAgICB0aGlzLl9tZXNzYWdlLnNldChtZXNzYWdlKTtcbiAgICB0aGlzLm9uRmFpbGVkLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5pc2goZGF0YT86IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXR1cy5zZXQoJ2NvbXBsZXRlZCcpO1xuICAgIHRoaXMuYnl0ZXNUcmFuc2ZlcnJlZCA9IHRoaXMuc2l6ZTtcbiAgICB0aGlzLl9lc3RpbWF0ZVRpbWUuc2V0KDApO1xuICAgIHRoaXMuX3Byb2dyZXNzLnNldCgxMDApO1xuICAgIHRoaXMub25Db21wbGV0ZS5uZXh0KGRhdGEpO1xuICB9XG59XG4iXX0=","import { AXFileService } from '@acorex/core/file';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Injectable, computed, inject } from '@angular/core';\nimport { sumBy } from 'lodash-es';\nimport { BehaviorSubject, Subject, map } from 'rxjs';\nimport { AXUploadRequest, } from './uploader.models';\nimport * as i0 from \"@angular/core\";\n/**\n * Service for managing file uploads with drag-and-drop support, progress tracking, and dialog management.\n * @category Services\n */\nexport class AXUploaderService {\n constructor() {\n /**\n * Translation service for localized text.\n * @ignore\n */\n this.translateService = inject(AXTranslationService);\n /**\n * File service for file operations.\n * @ignore\n */\n this.fileService = inject(AXFileService);\n /**\n * Behavior subject for managing upload requests.\n * @ignore\n */\n this._files$ = new BehaviorSubject([]);\n /**\n * Gets the files behavior subject for observing upload requests.\n */\n this.files = this._files$.asObservable();\n /**\n * Subject for file upload start events.\n */\n this.onFileUploadStart = new Subject();\n /**\n * Subject for file upload complete events.\n */\n this.onFileUploadComplete = new Subject();\n /**\n * Subject for all files upload complete events.\n */\n this.onFilesUploadComplete = new Subject();\n /**\n * Subject for file upload canceled events.\n */\n this.onFileUploadCanceled = new Subject();\n /**\n * Signal indicating if any upload has determined progress.\n */\n this.isAnyDetermined = computed(() => this._files$.value.some((file) => file.isDetermined()), ...(ngDevMode ? [{ debugName: \"isAnyDetermined\" }] : []));\n /**\n * Observable for total estimated upload time.\n */\n this.totalEstimateTime = this._files$.pipe(map((files) => sumBy(files, (file) => (file.status() === 'inprogress' ? file.estimateTime() : 0))));\n }\n /**\n * Converts a File object to an AXUploadRequest.\n * @private\n */\n convertFileToRequest(file) {\n return new AXUploadRequest(file);\n }\n /**\n * Starts uploading files that are in 'new' status.\n * @private\n */\n async startUpload() {\n const newFiles = this._files$.value.filter((c) => c.status() === 'new');\n for (const file of newFiles) {\n await this.bindEvents(file);\n }\n }\n /**\n * Binds event handlers to an upload request.\n * @private\n */\n async bindEvents(c) {\n c.onStart.subscribe(() => {\n this.onFileUploadStart.next({\n component: this,\n uploadedFile: c,\n isUserInteraction: false,\n });\n });\n c.onComplete.subscribe((data) => {\n Object.assign(c, { metaData: data });\n this.onFileUploadComplete.next({\n component: this,\n uploadedFile: c,\n isUserInteraction: false,\n });\n const isAllDone = this._files$.value.every((f) => f.status() === 'completed' || f.status() === 'canceled' || f.status() === 'failed');\n if (isAllDone) {\n this.onFilesUploadComplete.next({\n component: this,\n uploadedFiles: this._files$.value,\n isUserInteraction: false,\n });\n }\n });\n c.onCancel.subscribe(() => {\n this.onFileUploadCanceled.next({\n component: this,\n uploadedFile: c,\n isUserInteraction: false,\n });\n });\n }\n /**\n * Opens the file browser dialog and returns selected files as upload requests.\n * @param options - Configuration options for file selection\n * @returns Promise that resolves to an array of upload requests\n */\n async browse(options = { multiple: false }) {\n try {\n const files = await this.fileService.choose({ multiple: options?.multiple || false, accept: options.accept });\n if (files.length) {\n return this.add(files);\n }\n return [];\n }\n catch (error) {\n // It's good practice to log the error.\n console.error('File browse failed:', error);\n return [];\n }\n }\n /**\n * Adds files to the upload queue and starts the upload process.\n * @param files - Files to add to the upload queue\n * @returns Promise that resolves to an array of upload requests\n */\n async add(files) {\n const list = Array.from(files).map((f) => this.convertFileToRequest(f));\n const newFiles = [...this._files$.value, ...list];\n this._files$.next(newFiles);\n this.startUpload();\n return list;\n }\n /**\n * Cancels all pending and in-progress uploads.\n */\n async cancelAll() {\n await Promise.all(this._files$.value.filter((c) => c.status() !== 'completed').map((c) => c.cancel()));\n }\n /**\n * Clears all completed uploads from the queue.\n */\n clearAll() {\n const remainingFiles = this._files$.value.filter((c) => c.status() === 'inprogress');\n this._files$.next(remainingFiles);\n }\n /**\n * Removes a specific upload request from the queue.\n * @param item - The upload request to remove\n */\n remove(item) {\n const updatedFiles = this._files$.value.filter((c) => c !== item);\n this._files$.next(updatedFiles);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXUploaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXUploaderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXUploaderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay91cGxvYWRlci9zcmMvbGliL3VwbG9hZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQ0wsZUFBZSxHQUtoQixNQUFNLG1CQUFtQixDQUFDOztBQUUzQjs7O0dBR0c7QUFFSCxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBRUU7OztXQUdHO1FBQ0sscUJBQWdCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFeEQ7OztXQUdHO1FBQ0ssZ0JBQVcsR0FBa0IsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTNEOzs7V0FHRztRQUNjLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBb0IsRUFBRSxDQUFDLENBQUM7UUFFdEU7O1dBRUc7UUFDYSxVQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVwRDs7V0FFRztRQUNhLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUE0QixDQUFDO1FBRTVFOztXQUVHO1FBQ2EseUJBQW9CLEdBQUcsSUFBSSxPQUFPLEVBQStCLENBQUM7UUFFbEY7O1dBRUc7UUFDYSwwQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBZ0MsQ0FBQztRQUVwRjs7V0FFRztRQUNhLHlC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Q0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxTQUFTO1FBQ2IsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssWUFBWSxDQUFDLENBQUM7UUFDckYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxJQUFxQjtRQUMxQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsQyxDQUFDOytHQTVLVSxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQURKLE1BQU07OzRGQUNuQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhGaWxlU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9maWxlJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEluamVjdGFibGUsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHN1bUJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBBWFVwbG9hZFJlcXVlc3QsXG4gIEFYVXBsb2FkZXJGaWxlQ2FuY2VsRXZlbnQsXG4gIEFYVXBsb2FkZXJGaWxlQ29tcGxldGVFdmVudCxcbiAgQVhVcGxvYWRlckZpbGVTdGFydEV2ZW50LFxuICBBWFVwbG9hZGVyRmlsZXNDb21wbGV0ZUV2ZW50LFxufSBmcm9tICcuL3VwbG9hZGVyLm1vZGVscyc7XG5cbi8qKlxuICogU2VydmljZSBmb3IgbWFuYWdpbmcgZmlsZSB1cGxvYWRzIHdpdGggZHJhZy1hbmQtZHJvcCBzdXBwb3J0LCBwcm9ncmVzcyB0cmFja2luZywgYW5kIGRpYWxvZyBtYW5hZ2VtZW50LlxuICogQGNhdGVnb3J5IFNlcnZpY2VzXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhVcGxvYWRlclNlcnZpY2Uge1xuICAvKipcbiAgICogVHJhbnNsYXRpb24gc2VydmljZSBmb3IgbG9jYWxpemVkIHRleHQuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIEZpbGUgc2VydmljZSBmb3IgZmlsZSBvcGVyYXRpb25zLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIGZpbGVTZXJ2aWNlOiBBWEZpbGVTZXJ2aWNlID0gaW5qZWN0KEFYRmlsZVNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBCZWhhdmlvciBzdWJqZWN0IGZvciBtYW5hZ2luZyB1cGxvYWQgcmVxdWVzdHMuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbGVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QVhVcGxvYWRSZXF1ZXN0W10+KFtdKTtcblxuICAvKipcbiAgICogR2V0cyB0aGUgZmlsZXMgYmVoYXZpb3Igc3ViamVjdCBmb3Igb2JzZXJ2aW5nIHVwbG9hZCByZXF1ZXN0cy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmaWxlcyA9IHRoaXMuX2ZpbGVzJC5hc09ic2VydmFibGUoKTtcblxuICAvKipcbiAgICogU3ViamVjdCBmb3IgZmlsZSB1cGxvYWQgc3RhcnQgZXZlbnRzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9uRmlsZVVwbG9hZFN0YXJ0ID0gbmV3IFN1YmplY3Q8QVhVcGxvYWRlckZpbGVTdGFydEV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBTdWJqZWN0IGZvciBmaWxlIHVwbG9hZCBjb21wbGV0ZSBldmVudHMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb25GaWxlVXBsb2FkQ29tcGxldGUgPSBuZXcgU3ViamVjdDxBWFVwbG9hZGVyRmlsZUNvbXBsZXRlRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIFN1YmplY3QgZm9yIGFsbCBmaWxlcyB1cGxvYWQgY29tcGxldGUgZXZlbnRzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9uRmlsZXNVcGxvYWRDb21wbGV0ZSA9IG5ldyBTdWJqZWN0PEFYVXBsb2FkZXJGaWxlc0NvbXBsZXRlRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIFN1YmplY3QgZm9yIGZpbGUgdXBsb2FkIGNhbmNlbGVkIGV2ZW50cy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvbkZpbGVVcGxvYWRDYW5jZWxlZCA9IG5ldyBTdWJqZWN0PEFYVXBsb2FkZXJGaWxlQ2FuY2VsRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIFNpZ25hbCBpbmRpY2F0aW5nIGlmIGFueSB1cGxvYWQgaGFzIGRldGVybWluZWQgcHJvZ3Jlc3MuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaXNBbnlEZXRlcm1pbmVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fZmlsZXMkLnZhbHVlLnNvbWUoKGZpbGUpID0+IGZpbGUuaXNEZXRlcm1pbmVkKCkpKTtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSBmb3IgdG90YWwgZXN0aW1hdGVkIHVwbG9hZCB0aW1lLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRvdGFsRXN0aW1hdGVUaW1lID0gdGhpcy5fZmlsZXMkLnBpcGUoXG4gICAgbWFwKChmaWxlcykgPT4gc3VtQnkoZmlsZXMsIChmaWxlKSA9PiAoZmlsZS5zdGF0dXMoKSA9PT0gJ2lucHJvZ3Jlc3MnID8gZmlsZS5lc3RpbWF0ZVRpbWUoKSA6IDApKSksXG4gICk7XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgRmlsZSBvYmplY3QgdG8gYW4gQVhVcGxvYWRSZXF1ZXN0LlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBjb252ZXJ0RmlsZVRvUmVxdWVzdChmaWxlOiBGaWxlKTogQVhVcGxvYWRSZXF1ZXN0IHtcbiAgICByZXR1cm4gbmV3IEFYVXBsb2FkUmVxdWVzdChmaWxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydHMgdXBsb2FkaW5nIGZpbGVzIHRoYXQgYXJlIGluICduZXcnIHN0YXR1cy5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgc3RhcnRVcGxvYWQoKSB7XG4gICAgY29uc3QgbmV3RmlsZXMgPSB0aGlzLl9maWxlcyQudmFsdWUuZmlsdGVyKChjKSA9PiBjLnN0YXR1cygpID09PSAnbmV3Jyk7XG4gICAgZm9yIChjb25zdCBmaWxlIG9mIG5ld0ZpbGVzKSB7XG4gICAgICBhd2FpdCB0aGlzLmJpbmRFdmVudHMoZmlsZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEJpbmRzIGV2ZW50IGhhbmRsZXJzIHRvIGFuIHVwbG9hZCByZXF1ZXN0LlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBiaW5kRXZlbnRzKGM6IEFYVXBsb2FkUmVxdWVzdCkge1xuICAgIGMub25TdGFydC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5vbkZpbGVVcGxvYWRTdGFydC5uZXh0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICB1cGxvYWRlZEZpbGU6IGMsXG4gICAgICAgIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgYy5vbkNvbXBsZXRlLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgT2JqZWN0LmFzc2lnbihjLCB7IG1ldGFEYXRhOiBkYXRhIH0pO1xuICAgICAgdGhpcy5vbkZpbGVVcGxvYWRDb21wbGV0ZS5uZXh0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICB1cGxvYWRlZEZpbGU6IGMsXG4gICAgICAgIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBpc0FsbERvbmUgPSB0aGlzLl9maWxlcyQudmFsdWUuZXZlcnkoXG4gICAgICAgIChmKSA9PiBmLnN0YXR1cygpID09PSAnY29tcGxldGVkJyB8fCBmLnN0YXR1cygpID09PSAnY2FuY2VsZWQnIHx8IGYuc3RhdHVzKCkgPT09ICdmYWlsZWQnLFxuICAgICAgKTtcblxuICAgICAgaWYgKGlzQWxsRG9uZSkge1xuICAgICAgICB0aGlzLm9uRmlsZXNVcGxvYWRDb21wbGV0ZS5uZXh0KHtcbiAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgICAgdXBsb2FkZWRGaWxlczogdGhpcy5fZmlsZXMkLnZhbHVlLFxuICAgICAgICAgIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjLm9uQ2FuY2VsLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLm9uRmlsZVVwbG9hZENhbmNlbGVkLm5leHQoe1xuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgIHVwbG9hZGVkRmlsZTogYyxcbiAgICAgICAgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgdGhlIGZpbGUgYnJvd3NlciBkaWFsb2cgYW5kIHJldHVybnMgc2VsZWN0ZWQgZmlsZXMgYXMgdXBsb2FkIHJlcXVlc3RzLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgZmlsZSBzZWxlY3Rpb25cbiAgICogQHJldHVybnMgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGFuIGFycmF5IG9mIHVwbG9hZCByZXF1ZXN0c1xuICAgKi9cbiAgYXN5bmMgYnJvd3NlKG9wdGlvbnM6IHsgbXVsdGlwbGU/OiBib29sZWFuOyBhY2NlcHQ/OiBzdHJpbmcgfSA9IHsgbXVsdGlwbGU6IGZhbHNlIH0pOiBQcm9taXNlPEFYVXBsb2FkUmVxdWVzdFtdPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgdGhpcy5maWxlU2VydmljZS5jaG9vc2UoeyBtdWx0aXBsZTogb3B0aW9ucz8ubXVsdGlwbGUgfHwgZmFsc2UsIGFjY2VwdDogb3B0aW9ucy5hY2NlcHQgfSk7XG4gICAgICBpZiAoZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkZChmaWxlcyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gW107XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIEl0J3MgZ29vZCBwcmFjdGljZSB0byBsb2cgdGhlIGVycm9yLlxuICAgICAgY29uc29sZS5lcnJvcignRmlsZSBicm93c2UgZmFpbGVkOicsIGVycm9yKTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBmaWxlcyB0byB0aGUgdXBsb2FkIHF1ZXVlIGFuZCBzdGFydHMgdGhlIHVwbG9hZCBwcm9jZXNzLlxuICAgKiBAcGFyYW0gZmlsZXMgLSBGaWxlcyB0byBhZGQgdG8gdGhlIHVwbG9hZCBxdWV1ZVxuICAgKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYW4gYXJyYXkgb2YgdXBsb2FkIHJlcXVlc3RzXG4gICAqL1xuICBhc3luYyBhZGQoZmlsZXM6IEZpbGVMaXN0IHwgRmlsZVtdKTogUHJvbWlzZTxBWFVwbG9hZFJlcXVlc3RbXT4ge1xuICAgIGNvbnN0IGxpc3QgPSBBcnJheS5mcm9tKGZpbGVzKS5tYXAoKGYpID0+IHRoaXMuY29udmVydEZpbGVUb1JlcXVlc3QoZikpO1xuICAgIGNvbnN0IG5ld0ZpbGVzID0gWy4uLnRoaXMuX2ZpbGVzJC52YWx1ZSwgLi4ubGlzdF07XG4gICAgdGhpcy5fZmlsZXMkLm5leHQobmV3RmlsZXMpO1xuICAgIHRoaXMuc3RhcnRVcGxvYWQoKTtcbiAgICByZXR1cm4gbGlzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYW5jZWxzIGFsbCBwZW5kaW5nIGFuZCBpbi1wcm9ncmVzcyB1cGxvYWRzLlxuICAgKi9cbiAgYXN5bmMgY2FuY2VsQWxsKCkge1xuICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXMuX2ZpbGVzJC52YWx1ZS5maWx0ZXIoKGMpID0+IGMuc3RhdHVzKCkgIT09ICdjb21wbGV0ZWQnKS5tYXAoKGMpID0+IGMuY2FuY2VsKCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgYWxsIGNvbXBsZXRlZCB1cGxvYWRzIGZyb20gdGhlIHF1ZXVlLlxuICAgKi9cbiAgY2xlYXJBbGwoKSB7XG4gICAgY29uc3QgcmVtYWluaW5nRmlsZXMgPSB0aGlzLl9maWxlcyQudmFsdWUuZmlsdGVyKChjKSA9PiBjLnN0YXR1cygpID09PSAnaW5wcm9ncmVzcycpO1xuICAgIHRoaXMuX2ZpbGVzJC5uZXh0KHJlbWFpbmluZ0ZpbGVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgc3BlY2lmaWMgdXBsb2FkIHJlcXVlc3QgZnJvbSB0aGUgcXVldWUuXG4gICAqIEBwYXJhbSBpdGVtIC0gVGhlIHVwbG9hZCByZXF1ZXN0IHRvIHJlbW92ZVxuICAgKi9cbiAgcmVtb3ZlKGl0ZW06IEFYVXBsb2FkUmVxdWVzdCkge1xuICAgIGNvbnN0IHVwZGF0ZWRGaWxlcyA9IHRoaXMuX2ZpbGVzJC52YWx1ZS5maWx0ZXIoKGMpID0+IGMgIT09IGl0ZW0pO1xuICAgIHRoaXMuX2ZpbGVzJC5uZXh0KHVwZGF0ZWRGaWxlcyk7XG4gIH1cbn1cbiJdfQ==","import { AXTranslationService } from '@acorex/core/translation';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { isPlatformBrowser } from '@angular/common';\nimport { ChangeDetectorRef, DOCUMENT, Directive, ElementRef, PLATFORM_ID, ViewContainerRef, inject, input, output, signal, } from '@angular/core';\nimport { AXUploaderService } from './uploader.service';\nimport * as i0 from \"@angular/core\";\n/**\n * A directive that provides drag-and-drop and file upload functionality.\n * When applied to an element, it enables drag-and-drop file uploads and file browsing.\n * @category Directives\n */\nexport class AXUploaderZoneDirective {\n /**\n * Initializes the directive with event listeners and service subscriptions.\n */\n constructor() {\n /**\n * The element reference for the directive host.\n * @ignore\n */\n this.elementRef = inject(ElementRef);\n /**\n * View container reference for rendering custom templates.\n * @ignore\n */\n this.viewContainerRef = inject(ViewContainerRef);\n /**\n * Whether multiple files can be selected.\n * @defaultValue true\n */\n this.multiple = input(true, ...(ngDevMode ? [{ debugName: \"multiple\" }] : []));\n /**\n * File types that are accepted for upload.\n * @defaultValue null\n */\n this.accept = input(null, ...(ngDevMode ? [{ debugName: \"accept\" }] : []));\n /**\n * Custom template for the drag overlay. If provided, this will be used instead of the default overlay.\n */\n this.overlayTemplate = input(...(ngDevMode ? [undefined, { debugName: \"overlayTemplate\" }] : []));\n /**\n * Whether browsing files by clicking on the container is disabled.\n * @defaultValue false\n */\n this.disableBrowse = input(false, ...(ngDevMode ? [{ debugName: \"disableBrowse\" }] : []));\n /**\n * Whether drag and drop functionality is disabled.\n * @defaultValue false\n */\n this.disableDragDrop = input(false, ...(ngDevMode ? [{ debugName: \"disableDragDrop\" }] : []));\n /**\n * Change detector reference.\n * @ignore\n */\n this.cdr = inject(ChangeDetectorRef);\n /**\n * Document reference.\n * @ignore\n */\n this.document = inject(DOCUMENT);\n /**\n * Platform ID for browser detection.\n * @ignore\n */\n this.platformID = inject(PLATFORM_ID);\n /**\n * Upload service instance.\n * @ignore\n */\n this.uploadService = inject(AXUploaderService);\n /**\n * Unsubscriber service instance.\n * @ignore\n */\n this.unsubscriber = inject(AXUnsubscriber);\n /**\n * Translation service instance.\n * @ignore\n */\n this.translateService = inject(AXTranslationService);\n /**\n * Embedded view reference for custom template.\n * @ignore\n */\n this.templateViewRef = null;\n /**\n * Emitted when files are selected or dropped (like HTML file input).\n * Emits an event with files property containing the selected files.\n */\n this.fileChange = output();\n /**\n * Emitted when files are changed (added, removed, etc.).\n * @deprecated Use fileChange instead for simpler file input-like behavior\n */\n this.onChanged = output();\n /**\n * Emitted on drag enter event.\n */\n this.dragEnter = output();\n /**\n * Emitted on drag leave event.\n */\n this.dragLeave = output();\n /**\n * Emitted on drag over event.\n */\n this.dragOver = output();\n /**\n * Emitted when a single file upload is completed.\n */\n this.onFileUploadComplete = output();\n /**\n * Emitted when all files upload is completed.\n */\n this.onFilesUploadComplete = output();\n /**\n * CSS class for the overlay state.\n * @ignore\n */\n this.stateClass = 'ax-uploader-overlay-state';\n /**\n * The overlay element for drag and drop visual feedback.\n * @ignore\n */\n this.overlayElement = null;\n /**\n * Flag to track if dragOver has been emitted for the current drag session.\n * @ignore\n */\n this.dragOverEmitted = signal(false, ...(ngDevMode ? [{ debugName: \"dragOverEmitted\" }] : []));\n /**\n * Counter to track drag enter/leave depth to prevent false dragleave events.\n * When moving from parent to child, dragleave fires even though we're still inside.\n * @ignore\n */\n this.dragDepth = signal(0, ...(ngDevMode ? [{ debugName: \"dragDepth\" }] : []));\n /**\n * Animation end handler for cleanup.\n * @ignore\n */\n this.animationEndHandler = null;\n this.element = this.elementRef.nativeElement;\n this.element.style.position = 'relative';\n //\n this.uploadService.onFileUploadComplete.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onFileUploadComplete.emit(c);\n });\n this.uploadService.onFilesUploadComplete.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onFilesUploadComplete.emit(c);\n });\n //\n setTimeout(() => {\n const browseHandlers = this.element.querySelectorAll('[data-ax-uploader-browse-handle=\"true\"]');\n if (browseHandlers.length <= 0 && !this.disableBrowse()) {\n this.element.addEventListener('click', this.browser.bind(this), true);\n }\n });\n if (!this.disableDragDrop()) {\n this.element.addEventListener('dragenter', this.handleDragEnter.bind(this), true);\n this.element.addEventListener('dragover', this.handleDragOver.bind(this), true);\n this.element.addEventListener('drop', this.handleOnDrop.bind(this), true);\n this.element.addEventListener('dragleave', (e) => this.removeZone(e), true);\n }\n }\n /**\n * Cleans up event listeners when the directive is destroyed.\n */\n ngOnDestroy() {\n this.element.removeEventListener('click', this.browser.bind(this));\n this.element.removeEventListener('dragenter', this.handleDragEnter.bind(this));\n this.element.removeEventListener('drop', this.handleOnDrop.bind(this));\n this.element.removeEventListener('dragover', this.handleDragOver.bind(this));\n this.element.removeEventListener('dragleave', this.removeZone.bind(this));\n }\n /**\n * Handles drag enter events to show the upload overlay.\n * @private\n */\n async handleDragEnter(event) {\n if (this.disableDragDrop())\n return;\n this.dragOverEmitted.set(false); // Reset flag when entering\n this.dragDepth.update((depth) => depth + 1); // Increment depth counter\n // Only create overlay on first enter (when depth is 1)\n if (this.dragDepth() === 1) {\n // Cancel any pending exit animation\n this.cancelExitAnimation();\n await this.createZone();\n this.dragEnter.emit(event);\n }\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n /**\n * Handles drop events to process dropped files.\n * @private\n */\n async handleOnDrop(event) {\n if (this.disableDragDrop())\n return;\n event.preventDefault();\n event.stopImmediatePropagation();\n // Reset drag depth on drop\n this.dragDepth.set(0);\n if (event.dataTransfer?.files && event.dataTransfer.files.length > 0) {\n const files = Array.from(event.dataTransfer.files);\n // Emit simple file change event (like HTML input)\n this.fileChange.emit({ event, files });\n // Also emit the old onChanged event for backward compatibility\n const requests = await this.uploadService.add(event.dataTransfer.files);\n this.onChanged.emit({\n component: this,\n requests,\n isUserInteraction: true,\n });\n }\n this.removeZone();\n this.cdr.detectChanges();\n }\n /**\n * Handles drag over events to allow dropping.\n * @private\n */\n handleDragOver(event) {\n if (this.disableDragDrop())\n return;\n // Only emit dragOver once per drag session to avoid spam\n if (!this.dragOverEmitted()) {\n this.dragOverEmitted.set(true);\n this.dragOver.emit(event);\n }\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n /**\n * Creates the visual overlay for drag and drop feedback.\n * @private\n */\n async createZone() {\n if (isPlatformBrowser(this.platformID)) {\n // Check if overlay already exists (might be exiting)\n let existingOverlay = this.document.getElementById('ax-uploader-overlay-state') || this.overlayElement;\n // Verify the overlay is actually in the DOM (not removed after animation)\n if (existingOverlay && existingOverlay.parentNode === this.element) {\n // Remove exiting class to cancel exit animation and show overlay again\n existingOverlay.classList.remove('ax-uploader-overlay-exiting');\n // Clean up any pending animation handler\n if (this.animationEndHandler) {\n existingOverlay.removeEventListener('animationend', this.animationEndHandler);\n this.animationEndHandler = null;\n }\n // Reset overlayElement reference if it was cleared\n if (!this.overlayElement && existingOverlay) {\n this.overlayElement = existingOverlay;\n }\n return;\n }\n else if (existingOverlay && existingOverlay.parentNode !== this.element) {\n // Overlay exists but is not in the DOM, clear the reference\n this.overlayElement = null;\n existingOverlay = null;\n }\n // Check if custom template is provided\n const template = this.overlayTemplate();\n if (template) {\n // Create container for template\n this.overlayElement = this.document.createElement('div');\n this.overlayElement.classList.add('ax-uploader-overlay-state', '-ax-z-1');\n this.overlayElement.id = 'ax-uploader-overlay-state';\n // Create embedded view from template (will be inserted at directive anchor)\n this.viewContainerRef.clear();\n this.templateViewRef = this.viewContainerRef.createEmbeddedView(template);\n this.templateViewRef.detectChanges();\n // Get root nodes and move them to overlay element\n const rootNodes = this.templateViewRef.rootNodes;\n for (const node of rootNodes) {\n // Remove from current location if it has a parent\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n this.overlayElement.appendChild(node);\n }\n // Detach the view since we've moved the nodes\n this.templateViewRef.detach();\n this.element.appendChild(this.overlayElement);\n this.cdr.detectChanges();\n return;\n }\n // Use default overlay\n this.overlayElement = this.document.createElement('div');\n this.overlayElement.classList.add('ax-uploader-overlay-state', '-ax-z-1');\n this.overlayElement.id = 'ax-uploader-overlay-state';\n const icon = this.document.createElement('span');\n icon.classList.add('ax-icon', 'ax-icon-upload');\n const text = this.document.createElement('span');\n text.innerText = await this.translateService.translateAsync('@acorex:uploader.zone.text');\n this.overlayElement.appendChild(icon);\n this.overlayElement.appendChild(text);\n this.element.appendChild(this.overlayElement);\n }\n }\n /**\n * Cancels any pending exit animation and cleans up handlers.\n * @private\n */\n cancelExitAnimation() {\n if (isPlatformBrowser(this.platformID)) {\n const overlay = this.document.getElementById('ax-uploader-overlay-state') || this.overlayElement;\n if (overlay && this.animationEndHandler) {\n // Remove exiting class to cancel animation\n overlay.classList.remove('ax-uploader-overlay-exiting');\n // Clean up the handler\n overlay.removeEventListener('animationend', this.animationEndHandler);\n this.animationEndHandler = null;\n }\n }\n }\n /**\n * Removes the visual overlay for drag and drop feedback.\n * @private\n */\n removeZone(event) {\n if (this.disableDragDrop())\n return;\n this.dragDepth.update((depth) => Math.max(0, depth - 1)); // Decrement depth counter, ensure non-negative\n // Only remove overlay when we've truly left the drop zone (depth reaches 0)\n if (this.dragDepth() <= 0) {\n this.dragDepth.set(0); // Ensure it's exactly 0\n this.dragOverEmitted.set(false); // Reset flag when leaving\n if (event) {\n this.dragLeave.emit(event);\n }\n if (isPlatformBrowser(this.platformID)) {\n const overlay = this.document.getElementById('ax-uploader-overlay-state') || this.overlayElement;\n if (overlay) {\n // Clean up any existing handler first\n if (this.animationEndHandler) {\n overlay.removeEventListener('animationend', this.animationEndHandler);\n }\n // Add exiting class to trigger CSS animation\n overlay.classList.add('ax-uploader-overlay-exiting');\n // Wait for CSS animation to complete\n this.animationEndHandler = (e) => {\n if (e.target === overlay && e.animationName === 'fadeOutScale') {\n overlay.removeEventListener('animationend', this.animationEndHandler);\n this.animationEndHandler = null;\n if (overlay.parentNode === this.element) {\n this.element.removeChild(overlay);\n }\n if (this.overlayElement && this.overlayElement.parentNode) {\n this.overlayElement.remove();\n }\n // Clear the overlay element reference\n this.overlayElement = null;\n // Remove custom template view if it exists\n if (this.templateViewRef) {\n this.viewContainerRef.clear();\n this.templateViewRef = null;\n }\n }\n };\n overlay.addEventListener('animationend', this.animationEndHandler);\n }\n else {\n // If overlay doesn't exist, just clean up template view\n if (this.templateViewRef) {\n this.viewContainerRef.clear();\n this.templateViewRef = null;\n }\n }\n }\n }\n }\n /**\n * Opens the file browser dialog and processes selected files.\n * @returns Promise that resolves when files are processed\n */\n async browser() {\n if (this.disableBrowse())\n return;\n const files = await this.uploadService.browse({ accept: this.accept() ?? undefined, multiple: this.multiple() });\n if (files.length > 0) {\n // Create a synthetic event for consistency\n const syntheticEvent = new Event('change');\n const target = Object.create(EventTarget.prototype);\n target.files = files.map((r) => r.file);\n Object.defineProperty(syntheticEvent, 'target', { value: target, writable: false });\n // Emit simple file change event (like HTML input)\n this.fileChange.emit({\n event: syntheticEvent,\n files: files.map((r) => r.file),\n });\n // Also emit the old onChanged event for backward compatibility\n this.onChanged.emit({\n component: this,\n requests: files,\n isUserInteraction: true,\n });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXUploaderZoneDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.15\", type: AXUploaderZoneDirective, isStandalone: true, selector: \"[axUploaderZone]\", inputs: { multiple: { classPropertyName: \"multiple\", publicName: \"multiple\", isSignal: true, isRequired: false, transformFunction: null }, accept: { classPropertyName: \"accept\", publicName: \"accept\", isSignal: true, isRequired: false, transformFunction: null }, overlayTemplate: { classPropertyName: \"overlayTemplate\", publicName: \"overlayTemplate\", isSignal: true, isRequired: false, transformFunction: null }, disableBrowse: { classPropertyName: \"disableBrowse\", publicName: \"disableBrowse\", isSignal: true, isRequired: false, transformFunction: null }, disableDragDrop: { classPropertyName: \"disableDragDrop\", publicName: \"disableDragDrop\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileChange: \"fileChange\", onChanged: \"onChanged\", dragEnter: \"dragEnter\", dragLeave: \"dragLeave\", dragOver: \"dragOver\", onFileUploadComplete: \"onFileUploadComplete\", onFilesUploadComplete: \"onFilesUploadComplete\" }, host: { classAttribute: \"ax-drop-zone\" }, providers: [AXUnsubscriber], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXUploaderZoneDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axUploaderZone]',\n providers: [AXUnsubscriber],\n host: {\n class: 'ax-drop-zone',\n },\n }]\n }], ctorParameters: () => [], propDecorators: { multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: \"multiple\", required: false }] }], accept: [{ type: i0.Input, args: [{ isSignal: true, alias: \"accept\", required: false }] }], overlayTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: \"overlayTemplate\", required: false }] }], disableBrowse: [{ type: i0.Input, args: [{ isSignal: true, alias: \"disableBrowse\", required: false }] }], disableDragDrop: [{ type: i0.Input, args: [{ isSignal: true, alias: \"disableDragDrop\", required: false }] }], fileChange: [{ type: i0.Output, args: [\"fileChange\"] }], onChanged: [{ type: i0.Output, args: [\"onChanged\"] }], dragEnter: [{ type: i0.Output, args: [\"dragEnter\"] }], dragLeave: [{ type: i0.Output, args: [\"dragLeave\"] }], dragOver: [{ type: i0.Output, args: [\"dragOver\"] }], onFileUploadComplete: [{ type: i0.Output, args: [\"onFileUploadComplete\"] }], onFilesUploadComplete: [{ type: i0.Output, args: [\"onFilesUploadComplete\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXItem9uZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvdXBsb2FkZXIvc3JjL2xpYi91cGxvYWRlci16b25lLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsU0FBUyxFQUNULFVBQVUsRUFHVixXQUFXLEVBRVgsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFdkQ7Ozs7R0FJRztBQVFILE1BQU0sT0FBTyx1QkFBdUI7SUE4SmxDOztPQUVHO0lBQ0g7UUFoS0E7OztXQUdHO1FBQ0ssZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV4Qzs7O1dBR0c7UUFDSyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVwRDs7O1dBR0c7UUFDSCxhQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksb0RBQUMsQ0FBQztRQUV2Qjs7O1dBR0c7UUFDSCxXQUFNLEdBQUcsS0FBSyxDQUFnQixJQUFJLGtEQUFDLENBQUM7UUFFcEM7O1dBRUc7UUFDSCxvQkFBZSxHQUFHLEtBQUsscUVBQXdCLENBQUM7UUFFaEQ7OztXQUdHO1FBQ0gsa0JBQWEsR0FBRyxLQUFLLENBQUMsS0FBSyx5REFBQyxDQUFDO1FBRTdCOzs7V0FHRztRQUNILG9CQUFlLEdBQUcsS0FBSyxD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QUUsS0FBSztnQkFDZixpQkFBaUIsRUFBRSxJQUFJO2FBQ3hCLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOytHQXpjVSx1QkFBdUI7bUdBQXZCLHVCQUF1QixnaENBTHZCLENBQUMsY0FBYyxDQUFDOzs0RkFLaEIsdUJBQXVCO2tCQVBuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDM0IsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxjQUFjO3FCQUN0QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYVW5zdWJzY3JpYmVyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBET0NVTUVOVCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFbWJlZGRlZFZpZXdSZWYsXG4gIE9uRGVzdHJveSxcbiAgUExBVEZPUk1fSUQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFVwbG9hZGVyQ2hhbmdlZEV2ZW50LCBBWFVwbG9hZGVyRmlsZUNvbXBsZXRlRXZlbnQsIEFYVXBsb2FkZXJGaWxlc0NvbXBsZXRlRXZlbnQgfSBmcm9tICcuL3VwbG9hZGVyLm1vZGVscyc7XG5pbXBvcnQgeyBBWFVwbG9hZGVyU2VydmljZSB9IGZyb20gJy4vdXBsb2FkZXIuc2VydmljZSc7XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgdGhhdCBwcm92aWRlcyBkcmFnLWFuZC1kcm9wIGFuZCBmaWxlIHVwbG9hZCBmdW5jdGlvbmFsaXR5LlxuICogV2hlbiBhcHBsaWVkIHRvIGFuIGVsZW1lbnQsIGl0IGVuYWJsZXMgZHJhZy1hbmQtZHJvcCBmaWxlIHVwbG9hZHMgYW5kIGZpbGUgYnJvd3NpbmcuXG4gKiBAY2F0ZWdvcnkgRGlyZWN0aXZlc1xuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhVcGxvYWRlclpvbmVdJyxcbiAgcHJvdmlkZXJzOiBbQVhVbnN1YnNjcmliZXJdLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdheC1kcm9wLXpvbmUnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBBWFVwbG9hZGVyWm9uZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCByZWZlcmVuY2UgZm9yIHRoZSBkaXJlY3RpdmUgaG9zdC5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIC8qKlxuICAgKiBWaWV3IGNvbnRhaW5lciByZWZlcmVuY2UgZm9yIHJlbmRlcmluZyBjdXN0b20gdGVtcGxhdGVzLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgbXVsdGlwbGUgZmlsZXMgY2FuIGJlIHNlbGVjdGVkLlxuICAgKiBAZGVmYXVsdFZhbHVlIHRydWVcbiAgICovXG4gIG11bHRpcGxlID0gaW5wdXQodHJ1ZSk7XG5cbiAgLyoqXG4gICAqIEZpbGUgdHlwZXMgdGhhdCBhcmUgYWNjZXB0ZWQgZm9yIHVwbG9hZC5cbiAgICogQGRlZmF1bHRWYWx1ZSBudWxsXG4gICAqL1xuICBhY2NlcHQgPSBpbnB1dDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICAvKipcbiAgICogQ3VzdG9tIHRlbXBsYXRlIGZvciB0aGUgZHJhZyBvdmVybGF5LiBJZiBwcm92aWRlZCwgdGhpcyB3aWxsIGJlIHVzZWQgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBvdmVybGF5LlxuICAgKi9cbiAgb3ZlcmxheVRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8dW5rbm93bj4+KCk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYnJvd3NpbmcgZmlsZXMgYnkgY2xpY2tpbmcgb24gdGhlIGNvbnRhaW5lciBpcyBkaXNhYmxlZC5cbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgZGlzYWJsZUJyb3dzZSA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogV2hldGhlciBkcmFnIGFuZCBkcm9wIGZ1bmN0aW9uYWxpdHkgaXMgZGlzYWJsZWQuXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIGRpc2FibGVEcmFnRHJvcCA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogQ2hhbmdlIGRldGVjdG9yIHJlZmVyZW5jZS5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIC8qKlxuICAgKiBEb2N1bWVudCByZWZlcmVuY2UuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gIC8qKlxuICAgKiBQbGF0Zm9ybSBJRCBmb3IgYnJvd3NlciBkZXRlY3Rpb24uXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgcGxhdGZvcm1JRCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgLyoqXG4gICAqIFVwbG9hZCBzZXJ2aWNlIGluc3RhbmNlLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIHVwbG9hZFNlcnZpY2UgPSBpbmplY3QoQVhVcGxvYWRlclNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBVbnN1YnNjcmliZXIgc2VydmljZSBpbnN0YW5jZS5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZXIgPSBpbmplY3QoQVhVbnN1YnNjcmliZXIpO1xuXG4gIC8qKlxuICAgKiBUcmFuc2xhdGlvbiBzZXJ2aWNlIGluc3RhbmNlLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBUaGUgaG9zdCBlbGVtZW50LlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBFbWJlZGRlZCB2aWV3IHJlZmVyZW5jZSBmb3IgY3VzdG9tIHRlbXBsYXRlLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIHRlbXBsYXRlVmlld1JlZjogRW1iZWRkZWRWaWV3UmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBmaWxlcyBhcmUgc2VsZWN0ZWQgb3IgZHJvcHBlZCAobGlrZSBIVE1MIGZpbGUgaW5wdXQpLlxuICAgKiBFbWl0cyBhbiBldmVudCB3aXRoIGZpbGVzIHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlIHNlbGVjdGVkIGZpbGVzLlxuICAgKi9cbiAgZmlsZUNoYW5nZSA9IG91dHB1dDx7IGV2ZW50OiBFdmVudDsgZmlsZXM6IEZpbGVbXSB9PigpO1xuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gZmlsZXMgYXJlIGNoYW5nZWQgKGFkZGVkLCByZW1vdmVkLCBldGMuKS5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGZpbGVDaGFuZ2UgaW5zdGVhZCBmb3Igc2ltcGxlciBmaWxlIGlucHV0LWxpa2UgYmVoYXZpb3JcbiAgICovXG4gIG9uQ2hhbmdlZCA9IG91dHB1dDxBWFVwbG9hZGVyQ2hhbmdlZEV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBFbWl0dGVkIG9uIGRyYWcgZW50ZXIgZXZlbnQuXG4gICAqL1xuICBkcmFnRW50ZXIgPSBvdXRwdXQ8RHJhZ0V2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBFbWl0dGVkIG9uIGRyYWcgbGVhdmUgZXZlbnQuXG4gICAqL1xuICBkcmFnTGVhdmUgPSBvdXRwdXQ8RHJhZ0V2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBFbWl0dGVkIG9uIGRyYWcgb3ZlciBldmVudC5cbiAgICovXG4gIGRyYWdPdmVyID0gb3V0cHV0PERyYWdFdmVudD4oKTtcblxuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGEgc2luZ2xlIGZpbGUgdXBsb2FkIGlzIGNvbXBsZXRlZC5cbiAgICovXG4gIG9uRmlsZVVwbG9hZENvbXBsZXRlID0gb3V0cHV0PEFYVXBsb2FkZXJGaWxlQ29tcGxldGVFdmVudD4oKTtcblxuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGFsbCBmaWxlcyB1cGxvYWQgaXMgY29tcGxldGVkLlxuICAgKi9cbiAgb25GaWxlc1VwbG9hZENvbXBsZXRlID0gb3V0cHV0PEFYVXBsb2FkZXJGaWxlc0NvbXBsZXRlRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIENTUyBjbGFzcyBmb3IgdGhlIG92ZXJsYXkgc3RhdGUuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHN0YXRlQ2xhc3MgPSAnYXgtdXBsb2FkZXItb3ZlcmxheS1zdGF0ZSc7XG5cbiAgLyoqXG4gICAqIFRoZSBvdmVybGF5IGVsZW1lbnQgZm9yIGRyYWcgYW5kIGRyb3AgdmlzdWFsIGZlZWRiYWNrLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBvdmVybGF5RWxlbWVudDogSFRNTERpdkVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogRmxhZyB0byB0cmFjayBpZiBkcmFnT3ZlciBoYXMgYmVlbiBlbWl0dGVkIGZvciB0aGUgY3VycmVudCBkcmFnIHNlc3Npb24uXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgZHJhZ092ZXJFbWl0dGVkID0gc2lnbmFsKGZhbHNlKTtcblxuICAvKipcbiAgICogQ291bnRlciB0byB0cmFjayBkcmFnIGVudGVyL2xlYXZlIGRlcHRoIHRvIHByZXZlbnQgZmFsc2UgZHJhZ2xlYXZlIGV2ZW50cy5cbiAgICogV2hlbiBtb3ZpbmcgZnJvbSBwYXJlbnQgdG8gY2hpbGQsIGRyYWdsZWF2ZSBmaXJlcyBldmVuIHRob3VnaCB3ZSdyZSBzdGlsbCBpbnNpZGUuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgZHJhZ0RlcHRoID0gc2lnbmFsKDApO1xuXG4gIC8qKlxuICAgKiBBbmltYXRpb24gZW5kIGhhbmRsZXIgZm9yIGNsZWFudXAuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgYW5pbWF0aW9uRW5kSGFuZGxlcjogKChlOiBBbmltYXRpb25FdmVudCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGRpcmVjdGl2ZSB3aXRoIGV2ZW50IGxpc3RlbmVycyBhbmQgc2VydmljZSBzdWJzY3JpcHRpb25zLlxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5lbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgdGhpcy5lbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcblxuICAgIC8vXG4gICAgdGhpcy51cGxvYWRTZXJ2aWNlLm9uRmlsZVVwbG9hZENvbXBsZXRlLnBpcGUodGhpcy51bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICB0aGlzLm9uRmlsZVVwbG9hZENvbXBsZXRlLmVtaXQoYyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVwbG9hZFNlcnZpY2Uub25GaWxlc1VwbG9hZENvbXBsZXRlLnBpcGUodGhpcy51bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICB0aGlzLm9uRmlsZXNVcGxvYWRDb21wbGV0ZS5lbWl0KGMpO1xuICAgIH0pO1xuICAgIC8vXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBicm93c2VIYW5kbGVycyA9IHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1heC11cGxvYWRlci1icm93c2UtaGFuZGxlPVwidHJ1ZVwiXScpO1xuICAgICAgaWYgKGJyb3dzZUhhbmRsZXJzLmxlbmd0aCA8PSAwICYmICF0aGlzLmRpc2FibGVCcm93c2UoKSkge1xuICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmJyb3dzZXIuYmluZCh0aGlzKSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoIXRoaXMuZGlzYWJsZURyYWdEcm9wKCkpIHtcbiAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdkcmFnZW50ZXInLCB0aGlzLmhhbmRsZURyYWdFbnRlci5iaW5kKHRoaXMpLCB0cnVlKTtcbiAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIHRoaXMuaGFuZGxlRHJhZ092ZXIuYmluZCh0aGlzKSwgdHJ1ZSk7XG4gICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJvcCcsIHRoaXMuaGFuZGxlT25Ecm9wLmJpbmQodGhpcyksIHRydWUpO1xuICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIChlKSA9PiB0aGlzLnJlbW92ZVpvbmUoZSBhcyBEcmFnRXZlbnQpLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xlYW5zIHVwIGV2ZW50IGxpc3RlbmVycyB3aGVuIHRoZSBkaXJlY3RpdmUgaXMgZGVzdHJveWVkLlxuICAgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5icm93c2VyLmJpbmQodGhpcykpO1xuXG4gICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RyYWdlbnRlcicsIHRoaXMuaGFuZGxlRHJhZ0VudGVyLmJpbmQodGhpcykpO1xuICAgIHRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdkcm9wJywgdGhpcy5oYW5kbGVPbkRyb3AuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgdGhpcy5oYW5kbGVEcmFnT3Zlci5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJhZ2xlYXZlJywgdGhpcy5yZW1vdmVab25lLmJpbmQodGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgZHJhZyBlbnRlciBldmVudHMgdG8gc2hvdyB0aGUgdXBsb2FkIG92ZXJsYXkuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGhhbmRsZURyYWdFbnRlcihldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZURyYWdEcm9wKCkpIHJldHVybjtcbiAgICB0aGlzLmRyYWdPdmVyRW1pdHRlZC5zZXQoZmFsc2UpOyAvLyBSZXNldCBmbGFnIHdoZW4gZW50ZXJpbmdcbiAgICB0aGlzLmRyYWdEZXB0aC51cGRhdGUoKGRlcHRoKSA9PiBkZXB0aCArIDEpOyAvLyBJbmNyZW1lbnQgZGVwdGggY291bnRlclxuXG4gICAgLy8gT25seSBjcmVhdGUgb3ZlcmxheSBvbiBmaXJzdCBlbnRlciAod2hlbiBkZXB0aCBpcyAxKVxuICAgIGlmICh0aGlzLmRyYWdEZXB0aCgpID09PSAxKSB7XG4gICAgICAvLyBDYW5jZWwgYW55IHBlbmRpbmcgZXhpdCBhbmltYXRpb25cbiAgICAgIHRoaXMuY2FuY2VsRXhpdEFuaW1hdGlvbigpO1xuICAgICAgYXdhaXQgdGhpcy5jcmVhdGVab25lKCk7XG4gICAgICB0aGlzLmRyYWdFbnRlci5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgZHJvcCBldmVudHMgdG8gcHJvY2VzcyBkcm9wcGVkIGZpbGVzLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVPbkRyb3AoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVEcmFnRHJvcCgpKSByZXR1cm47XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcblxuICAgIC8vIFJlc2V0IGRyYWcgZGVwdGggb24gZHJvcFxuICAgIHRoaXMuZHJhZ0RlcHRoLnNldCgwKTtcblxuICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXI/LmZpbGVzICYmIGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBmaWxlcyA9IEFycmF5LmZyb20oZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTtcblxuICAgICAgLy8gRW1pdCBzaW1wbGUgZmlsZSBjaGFuZ2UgZXZlbnQgKGxpa2UgSFRNTCBpbnB1dClcbiAgICAgIHRoaXMuZmlsZUNoYW5nZS5lbWl0KHsgZXZlbnQsIGZpbGVzIH0pO1xuXG4gICAgICAvLyBBbHNvIGVtaXQgdGhlIG9sZCBvbkNoYW5nZWQgZXZlbnQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAgICAgIGNvbnN0IHJlcXVlc3RzID0gYXdhaXQgdGhpcy51cGxvYWRTZXJ2aWNlLmFkZChldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMpO1xuICAgICAgdGhpcy5vbkNoYW5nZWQuZW1pdCh7XG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgcmVxdWVzdHMsXG4gICAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5yZW1vdmVab25lKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgZHJhZyBvdmVyIGV2ZW50cyB0byBhbGxvdyBkcm9wcGluZy5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgaGFuZGxlRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVEcmFnRHJvcCgpKSByZXR1cm47XG4gICAgLy8gT25seSBlbWl0IGRyYWdPdmVyIG9uY2UgcGVyIGRyYWcgc2Vzc2lvbiB0byBhdm9pZCBzcGFtXG4gICAgaWYgKCF0aGlzLmRyYWdPdmVyRW1pdHRlZCgpKSB7XG4gICAgICB0aGlzLmRyYWdPdmVyRW1pdHRlZC5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLmRyYWdPdmVyLmVtaXQoZXZlbnQpO1xuICAgIH1cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIHZpc3VhbCBvdmVybGF5IGZvciBkcmFnIGFuZCBkcm9wIGZlZWRiYWNrLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVab25lKCkge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpKSB7XG4gICAgICAvLyBDaGVjayBpZiBvdmVybGF5IGFscmVhZHkgZXhpc3RzIChtaWdodCBiZSBleGl0aW5nKVxuICAgICAgbGV0IGV4aXN0aW5nT3ZlcmxheSA9IHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F4LXVwbG9hZGVyLW92ZXJsYXktc3RhdGUnKSB8fCB0aGlzLm92ZXJsYXlFbGVtZW50O1xuXG4gICAgICAvLyBWZXJpZnkgdGhlIG92ZXJsYXkgaXMgYWN0dWFsbHkgaW4gdGhlIERPTSAobm90IHJlbW92ZWQgYWZ0ZXIgYW5pbWF0aW9uKVxuICAgICAgaWYgKGV4aXN0aW5nT3ZlcmxheSAmJiBleGlzdGluZ092ZXJsYXkucGFyZW50Tm9kZSA9PT0gdGhpcy5lbGVtZW50KSB7XG4gICAgICAgIC8vIFJlbW92ZSBleGl0aW5nIGNsYXNzIHRvIGNhbmNlbCBleGl0IGFuaW1hdGlvbiBhbmQgc2hvdyBvdmVybGF5IGFnYWluXG4gICAgICAgIGV4aXN0aW5nT3ZlcmxheS5jbGFzc0xpc3QucmVtb3ZlKCdheC11cGxvYWRlci1vdmVybGF5LWV4aXRpbmcnKTtcbiAgICAgICAgLy8gQ2xlYW4gdXAgYW55IHBlbmRpbmcgYW5pbWF0aW9uIGhhbmRsZXJcbiAgICAgICAgaWYgKHRoaXMuYW5pbWF0aW9uRW5kSGFuZGxlcikge1xuICAgICAgICAgIGV4aXN0aW5nT3ZlcmxheS5yZW1vdmVFdmVudExpc3RlbmVyKCdhbmltYXRpb25lbmQnLCB0aGlzLmFuaW1hdGlvbkVuZEhhbmRsZXIpO1xuICAgICAgICAgIHRoaXMuYW5pbWF0aW9uRW5kSGFuZGxlciA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUmVzZXQgb3ZlcmxheUVsZW1lbnQgcmVmZXJlbmNlIGlmIGl0IHdhcyBjbGVhcmVkXG4gICAgICAgIGlmICghdGhpcy5vdmVybGF5RWxlbWVudCAmJiBleGlzdGluZ092ZXJsYXkpIHtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlFbGVtZW50ID0gZXhpc3RpbmdPdmVybGF5IGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSBpZiAoZXhpc3RpbmdPdmVybGF5ICYmIGV4aXN0aW5nT3ZlcmxheS5wYXJlbnROb2RlICE9PSB0aGlzLmVsZW1lbnQpIHtcbiAgICAgICAgLy8gT3ZlcmxheSBleGlzdHMgYnV0IGlzIG5vdCBpbiB0aGUgRE9NLCBjbGVhciB0aGUgcmVmZXJlbmNlXG4gICAgICAgIHRoaXMub3ZlcmxheUVsZW1lbnQgPSBudWxsO1xuICAgICAgICBleGlzdGluZ092ZXJsYXkgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBpZiBjdXN0b20gdGVtcGxhdGUgaXMgcHJvdmlkZWRcbiAgICAgIGNvbnN0IHRlbXBsYXRlID0gdGhpcy5vdmVybGF5VGVtcGxhdGUoKTtcbiAgICAgIGlmICh0ZW1wbGF0ZSkge1xuICAgICAgICAvLyBDcmVhdGUgY29udGFpbmVyIGZvciB0ZW1wbGF0ZVxuICAgICAgICB0aGlzLm92ZXJsYXlFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5vdmVybGF5RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdheC11cGxvYWRlci1vdmVybGF5LXN0YXRlJywgJy1heC16LTEnKTtcbiAgICAgICAgdGhpcy5vdmVybGF5RWxlbWVudC5pZCA9ICdheC11cGxvYWRlci1vdmVybGF5LXN0YXRlJztcblxuICAgICAgICAvLyBDcmVhdGUgZW1iZWRkZWQgdmlldyBmcm9tIHRlbXBsYXRlICh3aWxsIGJlIGluc2VydGVkIGF0IGRpcmVjdGl2ZSBhbmNob3IpXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgICAgICB0aGlzLnRlbXBsYXRlVmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGVtcGxhdGUpO1xuICAgICAgICB0aGlzLnRlbXBsYXRlVmlld1JlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgLy8gR2V0IHJvb3Qgbm9kZXMgYW5kIG1vdmUgdGhlbSB0byBvdmVybGF5IGVsZW1lbnRcbiAgICAgICAgY29uc3Qgcm9vdE5vZGVzID0gdGhpcy50ZW1wbGF0ZVZpZXdSZWYucm9vdE5vZGVzO1xuICAgICAgICBmb3IgKGNvbnN0IG5vZGUgb2Ygcm9vdE5vZGVzKSB7XG4gICAgICAgICAgLy8gUmVtb3ZlIGZyb20gY3VycmVudCBsb2NhdGlvbiBpZiBpdCBoYXMgYSBwYXJlbnRcbiAgICAgICAgICBpZiAobm9kZS5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICBub2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMub3ZlcmxheUVsZW1lbnQuYXBwZW5kQ2hpbGQobm9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZXRhY2ggdGhlIHZpZXcgc2luY2Ugd2UndmUgbW92ZWQgdGhlIG5vZGVzXG4gICAgICAgIHRoaXMudGVtcGxhdGVWaWV3UmVmLmRldGFjaCgpO1xuXG4gICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLm92ZXJsYXlFbGVtZW50KTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIFVzZSBkZWZhdWx0IG92ZXJsYXlcbiAgICAgIHRoaXMub3ZlcmxheUVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgdGhpcy5vdmVybGF5RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdheC11cGxvYWRlci1vdmVybGF5LXN0YXRlJywgJy1heC16LTEnKTtcbiAgICAgIHRoaXMub3ZlcmxheUVsZW1lbnQuaWQgPSAnYXgtdXBsb2FkZXItb3ZlcmxheS1zdGF0ZSc7XG5cbiAgICAgIGNvbnN0IGljb246IEhUTUxTcGFuRWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgaWNvbi5jbGFzc0xpc3QuYWRkKCdheC1pY29uJywgJ2F4LWljb24tdXBsb2FkJyk7XG5cbiAgICAgIGNvbnN0IHRleHQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgIHRleHQuaW5uZXJUZXh0ID0gYXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdAYWNvcmV4OnVwbG9hZGVyLnpvbmUudGV4dCcpO1xuXG4gICAgICB0aGlzLm92ZXJsYXlFbGVtZW50LmFwcGVuZENoaWxkKGljb24pO1xuICAgICAgdGhpcy5vdmVybGF5RWxlbWVudC5hcHBlbmRDaGlsZCh0ZXh0KTtcblxuICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMub3ZlcmxheUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYW5jZWxzIGFueSBwZW5kaW5nIGV4aXQgYW5pbWF0aW9uIGFuZCBjbGVhbnMgdXAgaGFuZGxlcnMuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGNhbmNlbEV4aXRBbmltYXRpb24oKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JRCkpIHtcbiAgICAgIGNvbnN0IG92ZXJsYXkgPSB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdheC11cGxvYWRlci1vdmVybGF5LXN0YXRlJykgfHwgdGhpcy5vdmVybGF5RWxlbWVudDtcblxuICAgICAgaWYgKG92ZXJsYXkgJiYgdGhpcy5hbmltYXRpb25FbmRIYW5kbGVyKSB7XG4gICAgICAgIC8vIFJlbW92ZSBleGl0aW5nIGNsYXNzIHRvIGNhbmNlbCBhbmltYXRpb25cbiAgICAgICAgb3ZlcmxheS5jbGFzc0xpc3QucmVtb3ZlKCdheC11cGxvYWRlci1vdmVybGF5LWV4aXRpbmcnKTtcbiAgICAgICAgLy8gQ2xlYW4gdXAgdGhlIGhhbmRsZXJcbiAgICAgICAgb3ZlcmxheS5yZW1vdmVFdmVudExpc3RlbmVyKCdhbmltYXRpb25lbmQnLCB0aGlzLmFuaW1hdGlvbkVuZEhhbmRsZXIpO1xuICAgICAgICB0aGlzLmFuaW1hdGlvbkVuZEhhbmRsZXIgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSB2aXN1YWwgb3ZlcmxheSBmb3IgZHJhZyBhbmQgZHJvcCBmZWVkYmFjay5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlWm9uZShldmVudD86IERyYWdFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVEcmFnRHJvcCgpKSByZXR1cm47XG4gICAgdGhpcy5kcmFnRGVwdGgudXBkYXRlKChkZXB0aCkgPT4gTWF0aC5tYXgoMCwgZGVwdGggLSAxKSk7IC8vIERlY3JlbWVudCBkZXB0aCBjb3VudGVyLCBlbnN1cmUgbm9uLW5lZ2F0aXZlXG5cbiAgICAvLyBPbmx5IHJlbW92ZSBvdmVybGF5IHdoZW4gd2UndmUgdHJ1bHkgbGVmdCB0aGUgZHJvcCB6b25lIChkZXB0aCByZWFjaGVzIDApXG4gICAgaWYgKHRoaXMuZHJhZ0RlcHRoKCkgPD0gMCkge1xuICAgICAgdGhpcy5kcmFnRGVwdGguc2V0KDApOyAvLyBFbnN1cmUgaXQncyBleGFjdGx5IDBcbiAgICAgIHRoaXMuZHJhZ092ZXJFbWl0dGVkLnNldChmYWxzZSk7IC8vIFJlc2V0IGZsYWcgd2hlbiBsZWF2aW5nXG5cbiAgICAgIGlmIChldmVudCkge1xuICAgICAgICB0aGlzLmRyYWdMZWF2ZS5lbWl0KGV2ZW50KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JRCkpIHtcbiAgICAgICAgY29uc3Qgb3ZlcmxheSA9IHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F4LXVwbG9hZGVyLW92ZXJsYXktc3RhdGUnKSB8fCB0aGlzLm92ZXJsYXlFbGVtZW50O1xuXG4gICAgICAgIGlmIChvdmVybGF5KSB7XG4gICAgICAgICAgLy8gQ2xlYW4gdXAgYW55IGV4aXN0aW5nIGhhbmRsZXIgZmlyc3RcbiAgICAgICAgICBpZiAodGhpcy5hbmltYXRpb25FbmRIYW5kbGVyKSB7XG4gICAgICAgICAgICBvdmVybGF5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmVuZCcsIHRoaXMuYW5pbWF0aW9uRW5kSGFuZGxlcik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQWRkIGV4aXRpbmcgY2xhc3MgdG8gdHJpZ2dlciBDU1MgYW5pbWF0aW9uXG4gICAgICAgICAgb3ZlcmxheS5jbGFzc0xpc3QuYWRkKCdheC11cGxvYWRlci1vdmVybGF5LWV4aXRpbmcnKTtcblxuICAgICAgICAgIC8vIFdhaXQgZm9yIENTUyBhbmltYXRpb24gdG8gY29tcGxldGVcbiAgICAgICAgICB0aGlzLmFuaW1hdGlvbkVuZEhhbmRsZXIgPSAoZTogQW5pbWF0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChlLnRhcmdldCA9PT0gb3ZlcmxheSAmJiBlLmFuaW1hdGlvbk5hbWUgPT09ICdmYWRlT3V0U2NhbGUnKSB7XG4gICAgICAgICAgICAgIG92ZXJsYXkucmVtb3ZlRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uZW5kJywgdGhpcy5hbmltYXRpb25FbmRIYW5kbGVyKTtcbiAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25FbmRIYW5kbGVyID0gbnVsbDtcblxuICAgICAgICAgICAgICBpZiAob3ZlcmxheS5wYXJlbnROb2RlID09PSB0aGlzLmVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlQ2hpbGQob3ZlcmxheSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHRoaXMub3ZlcmxheUVsZW1lbnQgJiYgdGhpcy5vdmVybGF5RWxlbWVudC5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vdmVybGF5RWxlbWVudC5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIC8vIENsZWFyIHRoZSBvdmVybGF5IGVsZW1lbnQgcmVmZXJlbmNlXG4gICAgICAgICAgICAgIHRoaXMub3ZlcmxheUVsZW1lbnQgPSBudWxsO1xuXG4gICAgICAgICAgICAgIC8vIFJlbW92ZSBjdXN0b20gdGVtcGxhdGUgdmlldyBpZiBpdCBleGlzdHNcbiAgICAgICAgICAgICAgaWYgKHRoaXMudGVtcGxhdGVWaWV3UmVmKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZVZpZXdSZWYgPSBudWxsO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIG92ZXJsYXkuYWRkRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uZW5kJywgdGhpcy5hbmltYXRpb25FbmRIYW5kbGVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBJZiBvdmVybGF5IGRvZXNuJ3QgZXhpc3QsIGp1c3QgY2xlYW4gdXAgdGVtcGxhdGUgdmlld1xuICAgICAgICAgIGlmICh0aGlzLnRlbXBsYXRlVmlld1JlZikge1xuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAgICAgICB0aGlzLnRlbXBsYXRlVmlld1JlZiA9IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBmaWxlIGJyb3dzZXIgZGlhbG9nIGFuZCBwcm9jZXNzZXMgc2VsZWN0ZWQgZmlsZXMuXG4gICAqIEByZXR1cm5zIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGZpbGVzIGFyZSBwcm9jZXNzZWRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBicm93c2VyKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmRpc2FibGVCcm93c2UoKSkgcmV0dXJuO1xuICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgdGhpcy51cGxvYWRTZXJ2aWNlLmJyb3dzZSh7IGFjY2VwdDogdGhpcy5hY2NlcHQoKSA/PyB1bmRlZmluZWQsIG11bHRpcGxlOiB0aGlzLm11bHRpcGxlKCkgfSk7XG5cbiAgICBpZiAoZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgLy8gQ3JlYXRlIGEgc3ludGhldGljIGV2ZW50IGZvciBjb25zaXN0ZW5jeVxuICAgICAgY29uc3Qgc3ludGhldGljRXZlbnQgPSBuZXcgRXZlbnQoJ2NoYW5nZScpO1xuICAgICAgY29uc3QgdGFyZ2V0ID0gT2JqZWN0LmNyZWF0ZShFdmVudFRhcmdldC5wcm90b3R5cGUpIGFzIEV2ZW50VGFyZ2V0ICYgeyBmaWxlczogRmlsZVtdIH07XG4gICAgICB0YXJnZXQuZmlsZXMgPSBmaWxlcy5tYXAoKHIpID0+IHIuZmlsZSk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc3ludGhldGljRXZlbnQsICd0YXJnZXQnLCB7IHZhbHVlOiB0YXJnZXQsIHdyaXRhYmxlOiBmYWxzZSB9KTtcblxuICAgICAgLy8gRW1pdCBzaW1wbGUgZmlsZSBjaGFuZ2UgZXZlbnQgKGxpa2UgSFRNTCBpbnB1dClcbiAgICAgIHRoaXMuZmlsZUNoYW5nZS5lbWl0KHtcbiAgICAgICAgZXZlbnQ6IHN5bnRoZXRpY0V2ZW50LFxuICAgICAgICBmaWxlczogZmlsZXMubWFwKChyKSA9PiByLmZpbGUpLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIEFsc28gZW1pdCB0aGUgb2xkIG9uQ2hhbmdlZCBldmVudCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgICAgdGhpcy5vbkNoYW5nZWQuZW1pdCh7XG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgcmVxdWVzdHM6IGZpbGVzLFxuICAgICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, PLATFORM_ID, inject } from '@angular/core';\nimport { AXUploaderZoneDirective } from './uploader-zone.directive';\nimport * as i0 from \"@angular/core\";\n/**\n * A directive that provides browse functionality for file uploads.\n * When applied to an element, clicking it will trigger the file browser dialog.\n * @category Directives\n */\nexport class AXUploaderBrowseDirective {\n constructor() {\n /**\n * The uploader zone directive instance.\n * @ignore\n */\n this.uploaderZone = inject(AXUploaderZoneDirective);\n /**\n * The element reference for the directive host.\n * @ignore\n */\n this.elementRef = inject((ElementRef));\n /**\n * Platform ID for browser detection.\n * @ignore\n */\n this.platformID = inject(PLATFORM_ID);\n }\n /**\n * Initializes the directive by adding click event listener and data attribute.\n */\n ngOnInit() {\n if (isPlatformBrowser(this.platformID) && this.elementRef?.nativeElement) {\n const element = this.elementRef.nativeElement;\n element.addEventListener('click', this.handleClick.bind(this));\n // Use setAttribute for SSR compatibility\n if (element.dataset) {\n element.dataset['axUploaderBrowseHandle'] = 'true';\n }\n else {\n element.setAttribute('data-ax-uploader-browse-handle', 'true');\n }\n }\n }\n /**\n * Cleans up the directive by removing event listeners.\n */\n ngOnDestroy() {\n if (isPlatformBrowser(this.platformID) && this.elementRef.nativeElement) {\n this.elementRef.nativeElement.removeEventListener('click', this.handleClick.bind(this));\n }\n }\n /**\n * Handles the click event to trigger file browser.\n * @private\n */\n async handleClick() {\n await this.uploaderZone.browser();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXUploaderBrowseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.15\", type: AXUploaderBrowseDirective, isStandalone: true, selector: \"[axUploaderBrowseHandle]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXUploaderBrowseDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[axUploaderBrowseHandle]' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXItYnJvd3NlLWhhbmRsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvdXBsb2FkZXIvc3JjL2xpYi91cGxvYWRlci1icm93c2UtaGFuZGxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFFcEU7Ozs7R0FJRztBQUVILE1BQU0sT0FBTyx5QkFBeUI7SUFEdEM7UUFFRTs7O1dBR0c7UUFDSyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRXZEOzs7V0FHRztRQUNLLGVBQVUsR0FBNEIsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUM7UUFFOUU7OztXQUdHO1FBQ0ssZUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztLQWtDMUM7SUFoQ0M7O09BRUc7SUFDSCxRQUFRO1FBQ04sSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsQ0FBQztZQUN6RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztZQUM5QyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDL0QseUNBQXlDO1lBQ3pDLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNwQixPQUFPLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLEdBQUcsTUFBTSxDQUFDO1lBQ3JELENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLENBQUMsWUFBWSxDQUFDLGdDQUFnQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2pFLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDeEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUYsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxLQUFLLENBQUMsV0FBVztRQUN2QixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEMsQ0FBQzsrR0FsRFUseUJBQXlCO21HQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBRHJDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsMEJBQTBCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBQTEFURk9STV9JRCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFVwbG9hZGVyWm9uZURpcmVjdGl2ZSB9IGZyb20gJy4vdXBsb2FkZXItem9uZS5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIEEgZGlyZWN0aXZlIHRoYXQgcHJvdmlkZXMgYnJvd3NlIGZ1bmN0aW9uYWxpdHkgZm9yIGZpbGUgdXBsb2Fkcy5cbiAqIFdoZW4gYXBwbGllZCB0byBhbiBlbGVtZW50LCBjbGlja2luZyBpdCB3aWxsIHRyaWdnZXIgdGhlIGZpbGUgYnJvd3NlciBkaWFsb2cuXG4gKiBAY2F0ZWdvcnkgRGlyZWN0aXZlc1xuICovXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbYXhVcGxvYWRlckJyb3dzZUhhbmRsZV0nIH0pXG5leHBvcnQgY2xhc3MgQVhVcGxvYWRlckJyb3dzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFRoZSB1cGxvYWRlciB6b25lIGRpcmVjdGl2ZSBpbnN0YW5jZS5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSB1cGxvYWRlclpvbmUgPSBpbmplY3QoQVhVcGxvYWRlclpvbmVEaXJlY3RpdmUpO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCByZWZlcmVuY2UgZm9yIHRoZSBkaXJlY3RpdmUgaG9zdC5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG5cbiAgLyoqXG4gICAqIFBsYXRmb3JtIElEIGZvciBicm93c2VyIGRldGVjdGlvbi5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBwbGF0Zm9ybUlEID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGRpcmVjdGl2ZSBieSBhZGRpbmcgY2xpY2sgZXZlbnQgbGlzdGVuZXIgYW5kIGRhdGEgYXR0cmlidXRlLlxuICAgKi9cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JRCkgJiYgdGhpcy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5oYW5kbGVDbGljay5iaW5kKHRoaXMpKTtcbiAgICAgIC8vIFVzZSBzZXRBdHRyaWJ1dGUgZm9yIFNTUiBjb21wYXRpYmlsaXR5XG4gICAgICBpZiAoZWxlbWVudC5kYXRhc2V0KSB7XG4gICAgICAgIGVsZW1lbnQuZGF0YXNldFsnYXhVcGxvYWRlckJyb3dzZUhhbmRsZSddID0gJ3RydWUnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtYXgtdXBsb2FkZXItYnJvd3NlLWhhbmRsZScsICd0cnVlJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsZWFucyB1cCB0aGUgZGlyZWN0aXZlIGJ5IHJlbW92aW5nIGV2ZW50IGxpc3RlbmVycy5cbiAgICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpICYmIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuaGFuZGxlQ2xpY2suYmluZCh0aGlzKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGNsaWNrIGV2ZW50IHRvIHRyaWdnZXIgZmlsZSBicm93c2VyLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVDbGljaygpIHtcbiAgICBhd2FpdCB0aGlzLnVwbG9hZGVyWm9uZS5icm93c2VyKCk7XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay11cGxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay91cGxvYWRlci9zcmMvYWNvcmV4LWNkay11cGxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;;;;;;;AAEO,MAAM,eAAe,CAAC;AAC7B,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI;AAC7B,IAAI;AACJ,IAAI,IAAI,GAAG,GAAG;AACd,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC1C,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,YAAY,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1C,QAAQ;AACR,aAAa;AACb;AACA,YAAY,OAAO,EAAE;AACrB,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI;AAC7B,IAAI;AACJ,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,UAAU;AAC9B,IAAI;AACJ,IAAI,WAAW,CAAC,UAAU,EAAE;AAC5B,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtF,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3G,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9F,QAAQ,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvH,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtF,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrG,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvF,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxG,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClG,QAAQ,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvH,QAAQ,IAAI,CAAC,gBAAgB,GAAG,CAAC;AACjC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE;AACrC,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,EAAE;AACpC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE;AACrC,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC;AACnD,IAAI;AACJ,IAAI,qBAAqB,CAAC,gBAAgB,EAAE;AAC5C,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AAC9B,QAAQ,MAAM,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;AAC7C,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE;AAC7C,YAAY,OAAO,IAAI,CAAC;AACxB,QAAQ;AACR,QAAQ,MAAM,KAAK,GAAG,CAAC,gBAAgB,IAAI,CAAC,IAAI,OAAO,CAAC;AACxD,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,GAAG,gBAAgB;AAC3D,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,CAAC;AAChE,QAAQ,OAAO,aAAa,CAAC;AAC7B,IAAI;AACJ,IAAI,mBAAmB,CAAC,KAAK,EAAE;AAC/B,QAAQ,IAAI,CAAC,gBAAgB,GAAG,KAAK;AACrC,QAAQ,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,YAAY,CAAC,EAAE;AAC7G,YAAY,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AACxC,QAAQ;AACR,QAAQ,IAAI,CAAC,kBAAkB,EAAE;AACjC,IAAI;AACJ,IAAI,kBAAkB,GAAG;AACzB,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACjF,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;AAC9E,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;AACpC,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG;AACnB,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;AACnC,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7B,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AACtC,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC3B,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;AACpC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,CAAC;AACjC,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7B,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC5B,IAAI;AACJ,IAAI,IAAI,GAAG;AACX;AACA,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7B,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AACtC,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC3B,IAAI;AACJ,IAAI,KAAK,CAAC,OAAO,EAAE;AACnB,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;AAClC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,CAAC;AACjC,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7B,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAClC,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC5B,IAAI;AACJ,IAAI,MAAM,CAAC,IAAI,EAAE;AACjB,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;AACrC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI;AACzC,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;AAC/B,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AAClC,IAAI;AACJ;;AC3FA;AACA;AACA;AACA;AACO,MAAM,iBAAiB,CAAC;AAC/B,IAAI,WAAW,GAAG;AAClB;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAC5D;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC;AAChD;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC;AAC9C;AACA;AACA;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AAChD;AACA;AACA;AACA,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,OAAO,EAAE;AAC9C;AACA;AACA;AACA,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI,OAAO,EAAE;AACjD;AACA;AACA;AACA,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,OAAO,EAAE;AAClD;AACA;AACA;AACA,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI,OAAO,EAAE;AACjD;AACA;AACA;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/J;AACA;AACA;AACA,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACtJ,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,oBAAoB,CAAC,IAAI,EAAE;AAC/B,QAAQ,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC;AACxC,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,WAAW,GAAG;AACxB,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,KAAK,KAAK,CAAC;AAC/E,QAAQ,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;AACrC,YAAY,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACvC,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,UAAU,CAAC,CAAC,EAAE;AACxB,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;AAClC,YAAY,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AACxC,gBAAgB,SAAS,EAAE,IAAI;AAC/B,gBAAgB,YAAY,EAAE,CAAC;AAC/B,gBAAgB,iBAAiB,EAAE,KAAK;AACxC,aAAa,CAAC;AACd,QAAQ,CAAC,CAAC;AACV,QAAQ,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK;AACzC,YAAY,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAChD,YAAY,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;AAC3C,gBAAgB,SAAS,EAAE,IAAI;AAC/B,gBAAgB,YAAY,EAAE,CAAC;AAC/B,gBAAgB,iBAAiB,EAAE,KAAK;AACxC,aAAa,CAAC;AACd,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,QAAQ,CAAC;AACjJ,YAAY,IAAI,SAAS,EAAE;AAC3B,gBAAgB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;AAChD,oBAAoB,SAAS,EAAE,IAAI;AACnC,oBAAoB,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AACrD,oBAAoB,iBAAiB,EAAE,KAAK;AAC5C,iBAAiB,CAAC;AAClB,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM;AACnC,YAAY,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;AAC3C,gBAAgB,SAAS,EAAE,IAAI;AAC/B,gBAAgB,YAAY,EAAE,CAAC;AAC/B,gBAAgB,iBAAiB,EAAE,KAAK;AACxC,aAAa,CAAC;AACd,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,MAAM,CAAC,OAAO,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;AAChD,QAAQ,IAAI;AACZ,YAAY,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AACzH,YAAY,IAAI,KAAK,CAAC,MAAM,EAAE;AAC9B,gBAAgB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACtC,YAAY;AACZ,YAAY,OAAO,EAAE;AACrB,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB;AACA,YAAY,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC;AACvD,YAAY,OAAO,EAAE;AACrB,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,CAAC,KAAK,EAAE;AACrB,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAC/E,QAAQ,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC;AACzD,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AACnC,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,SAAS,GAAG;AACtB,QAAQ,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,KAAK,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9G,IAAI;AACJ;AACA;AACA;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,KAAK,YAAY,CAAC;AAC5F,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;AACzC,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE;AACjB,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;AACzE,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;AACvC,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACrL,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAC5J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;AAC5H,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,CAAC;;AClKb;AACA;AACA;AACA;AACA;AACO,MAAM,uBAAuB,CAAC;AACrC;AACA;AACA;AACA,IAAI,WAAW,GAAG;AAClB;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5C;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxD;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtF;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF;AACA;AACA;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzG;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjG;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrG;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC5C;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACxC;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAC7C;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACtD;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AAClD;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAC5D;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI;AACnC;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE;AAClC;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE;AACjC;AACA;AACA;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE;AACjC;AACA;AACA;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE;AACjC;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,EAAE;AAChC;AACA;AACA;AACA,QAAQ,IAAI,CAAC,oBAAoB,GAAG,MAAM,EAAE;AAC5C;AACA;AACA;AACA,QAAQ,IAAI,CAAC,qBAAqB,GAAG,MAAM,EAAE;AAC7C;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,2BAA2B;AACrD;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI;AAClC;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtG;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtF;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI;AACvC,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;AACpD,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AAChD;AACA,QAAQ,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;AAC1G,YAAY,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;AAC3G,YAAY,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,UAAU,CAAC,MAAM;AACzB,YAAY,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,yCAAyC,CAAC;AAC3G,YAAY,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;AACrE,gBAAgB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;AACrF,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE;AACrC,YAAY,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;AAC7F,YAAY,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;AAC3F,YAAY,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;AACrF,YAAY,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AACvF,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1E,QAAQ,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtF,QAAQ,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,QAAQ,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpF,QAAQ,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjF,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,eAAe,CAAC,KAAK,EAAE;AACjC,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;AAClC,YAAY;AACZ,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACxC,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC;AACpD;AACA,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;AACpC;AACA,YAAY,IAAI,CAAC,mBAAmB,EAAE;AACtC,YAAY,MAAM,IAAI,CAAC,UAAU,EAAE;AACnC,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AACtC,QAAQ;AACR,QAAQ,KAAK,CAAC,cAAc,EAAE;AAC9B,QAAQ,KAAK,CAAC,wBAAwB,EAAE;AACxC,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,YAAY,CAAC,KAAK,EAAE;AAC9B,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;AAClC,YAAY;AACZ,QAAQ,KAAK,CAAC,cAAc,EAAE;AAC9B,QAAQ,KAAK,CAAC,wBAAwB,EAAE;AACxC;AACA,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7B,QAAQ,IAAI,KAAK,CAAC,YAAY,EAAE,KAAK,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9E,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC;AAC9D;AACA,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAClD;AACA,YAAY,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC;AACnF,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAChC,gBAAgB,SAAS,EAAE,IAAI;AAC/B,gBAAgB,QAAQ;AACxB,gBAAgB,iBAAiB,EAAE,IAAI;AACvC,aAAa,CAAC;AACd,QAAQ;AACR,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;AAChC,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,KAAK,EAAE;AAC1B,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;AAClC,YAAY;AACZ;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE;AACrC,YAAY,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1C,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACrC,QAAQ;AACR,QAAQ,KAAK,CAAC,cAAc,EAAE;AAC9B,QAAQ,KAAK,CAAC,wBAAwB,EAAE;AACxC,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAChD;AACA,YAAY,IAAI,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,IAAI,IAAI,CAAC,cAAc;AAClH;AACA,YAAY,IAAI,eAAe,IAAI,eAAe,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,EAAE;AAChF;AACA,gBAAgB,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,6BAA6B,CAAC;AAC/E;AACA,gBAAgB,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC9C,oBAAoB,eAAe,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,mBAAmB,CAAC;AACjG,oBAAoB,IAAI,CAAC,mBAAmB,GAAG,IAAI;AACnD,gBAAgB;AAChB;AACA,gBAAgB,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,eAAe,EAAE;AAC7D,oBAAoB,IAAI,CAAC,cAAc,GAAG,eAAe;AACzD,gBAAgB;AAChB,gBAAgB;AAChB,YAAY;AACZ,iBAAiB,IAAI,eAAe,IAAI,eAAe,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,EAAE;AACrF;AACA,gBAAgB,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1C,gBAAgB,eAAe,GAAG,IAAI;AACtC,YAAY;AACZ;AACA,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE;AACnD,YAAY,IAAI,QAAQ,EAAE;AAC1B;AACA,gBAAgB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACxE,gBAAgB,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,EAAE,SAAS,CAAC;AACzF,gBAAgB,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,2BAA2B;AACpE;AACA,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AAC7C,gBAAgB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,QAAQ,CAAC;AACzF,gBAAgB,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE;AACpD;AACA,gBAAgB,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS;AAChE,gBAAgB,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;AAC9C;AACA,oBAAoB,IAAI,IAAI,CAAC,UAAU,EAAE;AACzC,wBAAwB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC;AACzD,oBAAoB;AACpB,oBAAoB,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC;AACzD,gBAAgB;AAChB;AACA,gBAAgB,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;AAC7C,gBAAgB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC;AAC7D,gBAAgB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;AACxC,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACpE,YAAY,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,EAAE,SAAS,CAAC;AACrF,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,2BAA2B;AAChE,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAC5D,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC;AAC3D,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAC5D,YAAY,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,4BAA4B,CAAC;AACrG,YAAY,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC;AACjD,YAAY,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC;AACzD,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,mBAAmB,GAAG;AAC1B,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAChD,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,IAAI,IAAI,CAAC,cAAc;AAC5G,YAAY,IAAI,OAAO,IAAI,IAAI,CAAC,mBAAmB,EAAE;AACrD;AACA,gBAAgB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,6BAA6B,CAAC;AACvE;AACA,gBAAgB,OAAO,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,mBAAmB,CAAC;AACrF,gBAAgB,IAAI,CAAC,mBAAmB,GAAG,IAAI;AAC/C,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;AAClC,YAAY;AACZ,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACjE;AACA,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE;AACnC,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClC,YAAY,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC5C,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1C,YAAY;AACZ,YAAY,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACpD,gBAAgB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,IAAI,IAAI,CAAC,cAAc;AAChH,gBAAgB,IAAI,OAAO,EAAE;AAC7B;AACA,oBAAoB,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAClD,wBAAwB,OAAO,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,mBAAmB,CAAC;AAC7F,oBAAoB;AACpB;AACA,oBAAoB,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,6BAA6B,CAAC;AACxE;AACA,oBAAoB,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,KAAK;AACtD,wBAAwB,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,aAAa,KAAK,cAAc,EAAE;AACxF,4BAA4B,OAAO,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,mBAAmB,CAAC;AACjG,4BAA4B,IAAI,CAAC,mBAAmB,GAAG,IAAI;AAC3D,4BAA4B,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,EAAE;AACrE,gCAAgC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;AACjE,4BAA4B;AAC5B,4BAA4B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;AACvF,gCAAgC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;AAC5D,4BAA4B;AAC5B;AACA,4BAA4B,IAAI,CAAC,cAAc,GAAG,IAAI;AACtD;AACA,4BAA4B,IAAI,IAAI,CAAC,eAAe,EAAE;AACtD,gCAAgC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AAC7D,gCAAgC,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3D,4BAA4B;AAC5B,wBAAwB;AACxB,oBAAoB,CAAC;AACrB,oBAAoB,OAAO,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,mBAAmB,CAAC;AACtF,gBAAgB;AAChB,qBAAqB;AACrB;AACA,oBAAoB,IAAI,IAAI,CAAC,eAAe,EAAE;AAC9C,wBAAwB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACrD,wBAAwB,IAAI,CAAC,eAAe,GAAG,IAAI;AACnD,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;AAChC,YAAY;AACZ,QAAQ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;AACxH,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B;AACA,YAAY,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC;AACtD,YAAY,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;AAC/D,YAAY,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AACnD,YAAY,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC/F;AACA,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACjC,gBAAgB,KAAK,EAAE,cAAc;AACrC,gBAAgB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AAC/C,aAAa,CAAC;AACd;AACA,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAChC,gBAAgB,SAAS,EAAE,IAAI;AAC/B,gBAAgB,QAAQ,EAAE,KAAK;AAC/B,gBAAgB,iBAAiB,EAAE,IAAI;AACvC,aAAa,CAAC;AACd,QAAQ;AACR,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC1L,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,uBAAuB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5qC;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,kBAAkB;AAChD,oBAAoB,SAAS,EAAE,CAAC,cAAc,CAAC;AAC/C,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,KAAK,EAAE,cAAc;AAC7C,qBAAqB;AACrB,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,sBAAsB,CAAC,EAAE,CAAC,EAAE,qBAAqB,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,uBAAuB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;;ACxZ5+B;AACA;AACA;AACA;AACA;AACO,MAAM,yBAAyB,CAAC;AACvC,IAAI,WAAW,GAAG;AAClB;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC3D;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,UAAU,EAAE;AAC9C;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAC7C,IAAI;AACJ;AACA;AACA;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE;AAClF,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;AACzD,YAAY,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1E;AACA,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE;AACjC,gBAAgB,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,GAAG,MAAM;AAClE,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,OAAO,CAAC,YAAY,CAAC,gCAAgC,EAAE,MAAM,CAAC;AAC9E,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AACjF,YAAY,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnG,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,WAAW,GAAG;AACxB,QAAQ,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACzC,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC5L,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,yBAAyB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,0BAA0B,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AACxM;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC;AACpI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,0BAA0B,EAAE;AAC3D,SAAS,CAAC,EAAE,CAAC;;AChEb;AACA;AACA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-cdk-virtual-scroll.mjs","sources":["../../../../packages/cdk/virtual-scroll/src/lib/virtual-scrolling-item/virtual-scrolling-item.directive.ts","../../../../packages/cdk/virtual-scroll/src/lib/virtual-scrolling-contianer/virtual-scrolling-contianer.directive.ts","../../../../packages/cdk/virtual-scroll/src/lib/virtual-scroll.module.ts","../../../../packages/cdk/virtual-scroll/src/acorex-cdk-virtual-scroll.ts"],"sourcesContent":["import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({ selector: '[axVirtualScrollingItem]' })\nexport class AXVirtualScrollingItemDirective {\n private elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n\n public get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n","import {\n afterNextRender,\n computed,\n contentChildren,\n Directive,\n effect,\n ElementRef,\n HostBinding,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { AXVirtualScrollingItemDirective } from '../virtual-scrolling-item/virtual-scrolling-item.directive';\n\n@Directive({ selector: '[axVirtualScrollingContainer]' })\nexport class AXVirtualScrollingContainerDirective {\n height = input.required<string>();\n\n /** @ignore */\n protected observer = new IntersectionObserver(this.callBack.bind(this));\n\n ScrollEnd = output();\n\n /** @ignore */\n loading = false;\n\n container = inject(ElementRef);\n\n /** @ignore */\n protected children = contentChildren(AXVirtualScrollingItemDirective);\n\n /** @ignore */\n protected firstCall = signal(false);\n\n /** @ignore */\n protected lastChildElem = computed<Element | null>(() => {\n return this.children()[0]?.nativeElement;\n });\n\n /** @ignore */\n protected firstChildElem = computed<Element | null>(() => {\n return this.children()[this.children().length - 1]?.nativeElement;\n });\n\n /** @ignore */\n #eff2 = effect(() => {\n if (this.lastChildElem()) {\n this.observer.observe(this.lastChildElem());\n }\n });\n\n /** @ignore */\n #eff3 = effect(() => {\n if (this.firstChildElem() && !this.loading) {\n setTimeout(() => {\n this.container.nativeElement.scrollTo({\n top: this.container.nativeElement.scrollHeight,\n behavior: 'instant',\n });\n });\n }\n });\n\n #init = afterNextRender(() => {\n (this.container.nativeElement as HTMLElement).style.overflowY = 'auto';\n (this.container.nativeElement as HTMLElement).style.display = 'block';\n });\n\n /** @ignore */\n protected callBack(entries: IntersectionObserverEntry[]) {\n if (entries[0].isIntersecting && this.firstCall()) {\n this.ScrollEnd.emit();\n this.loading = true;\n }\n this.loading = false;\n this.firstCall.set(true);\n }\n\n @HostBinding('style.height')\n get __hostClass(): string {\n return `${this.height()}`;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXVirtualScrollingContainerDirective } from './virtual-scrolling-contianer/virtual-scrolling-contianer.directive';\nimport { AXVirtualScrollingItemDirective } from './virtual-scrolling-item/virtual-scrolling-item.directive';\n\nconst COMPONENT = [AXVirtualScrollingContainerDirective, AXVirtualScrollingItemDirective];\n\nconst MODULES = [];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXVirtualScrollModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAGa,+BAA+B,CAAA;AAD5C,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,UAAU,GAA4B,MAAM,CAAC,UAAU,CAAC;AAKjE,IAAA;AAHC,IAAA,IAAW,aAAa,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa;IACtC;+GALW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAD3C,SAAS;mBAAC,EAAE,QAAQ,EAAE,0BAA0B,EAAE;;;MCctC,oCAAoC,CAAA;AADjD,IAAA,WAAA,GAAA;AAEE,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,iDAAU;;AAGvB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvE,IAAA,CAAA,SAAS,GAAG,MAAM,EAAE;;QAGpB,IAAA,CAAA,OAAO,GAAG,KAAK;AAEf,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;;AAGpB,QAAA,IAAA,CAAA,QAAQ,GAAG,eAAe,CAAC,+BAA+B,oDAAC;;AAG3D,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,KAAK,qDAAC;;AAGzB,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAiB,MAAK;YACtD,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa;AAC1C,QAAA,CAAC,yDAAC;;AAGQ,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAiB,MAAK;AACvD,YAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,aAAa;AACnE,QAAA,CAAC,0DAAC;;AAGF,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,MAAK;AAClB,YAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;gBACxB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC7C;AACF,QAAA,CAAC,iDAAC;;AAGF,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,MAAK;YAClB,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAC1C,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC;AACpC,wBAAA,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY;AAC9C,wBAAA,QAAQ,EAAE,SAAS;AACpB,qBAAA,CAAC;AACJ,gBAAA,CAAC,CAAC;YACJ;AACF,QAAA,CAAC,iDAAC;AAEF,QAAA,IAAA,CAAA,KAAK,GAAG,eAAe,CAAC,MAAK;YAC1B,IAAI,CAAC,SAAS,CAAC,aAA6B,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM;YACrE,IAAI,CAAC,SAAS,CAAC,aAA6B,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO;AACvE,QAAA,CAAC,CAAC;AAgBH,IAAA;;AArCC,IAAA,KAAK;;AAOL,IAAA,KAAK;AAWL,IAAA,KAAK;;AAMK,IAAA,QAAQ,CAAC,OAAoC,EAAA;AACrD,QAAA,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AACjD,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACrB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;QACrB;AACA,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1B;AAEA,IAAA,IACI,WAAW,GAAA;AACb,QAAA,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE;IAC3B;+GAlEW,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oCAAoC,2VAcV,+BAA+B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAdzD,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBADhD,SAAS;mBAAC,EAAE,QAAQ,EAAE,+BAA+B,EAAE;kPAejB,+BAA+B,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA;sBAiDnE,WAAW;uBAAC,cAAc;;;AC3E7B,MAAM,SAAS,GAAG,CAAC,oCAAoC,EAAE,+BAA+B,CAAC;AAEzF,MAAM,OAAO,GAAG,EAAE;MAOL,qBAAqB,CAAA;+GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YATf,oCAAoC,EAAE,+BAA+B,CAAA,EAAA,OAAA,EAAA,CAArE,oCAAoC,EAAE,+BAA+B,CAAA,EAAA,CAAA,CAAA;AAS3E,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAJnB,OAAO,CAAA,EAAA,CAAA,CAAA;;4FAIT,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC;AACnC,oBAAA,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;AACvB,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;;;ACZD;;AAEG;;;;"}
1
+ {"version":3,"file":"acorex-cdk-virtual-scroll.mjs","sources":["../tmp-esm2022/virtual-scroll/lib/virtual-scrolling-item/virtual-scrolling-item.directive.js","../tmp-esm2022/virtual-scroll/lib/virtual-scrolling-contianer/virtual-scrolling-contianer.directive.js","../tmp-esm2022/virtual-scroll/lib/virtual-scroll.module.js","../tmp-esm2022/virtual-scroll/acorex-cdk-virtual-scroll.js"],"sourcesContent":["import { Directive, ElementRef, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXVirtualScrollingItemDirective {\n constructor() {\n this.elementRef = inject(ElementRef);\n }\n get nativeElement() {\n return this.elementRef.nativeElement;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXVirtualScrollingItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.15\", type: AXVirtualScrollingItemDirective, isStandalone: true, selector: \"[axVirtualScrollingItem]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXVirtualScrollingItemDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[axVirtualScrollingItem]' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1zY3JvbGxpbmctaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvdmlydHVhbC1zY3JvbGwvc3JjL2xpYi92aXJ0dWFsLXNjcm9sbGluZy1pdGVtL3ZpcnR1YWwtc2Nyb2xsaW5nLWl0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHOUQsTUFBTSxPQUFPLCtCQUErQjtJQUQ1QztRQUVVLGVBQVUsR0FBNEIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBS2xFO0lBSEMsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDdkMsQ0FBQzsrR0FMVSwrQkFBK0I7bUdBQS9CLCtCQUErQjs7NEZBQS9CLCtCQUErQjtrQkFEM0MsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSwwQkFBMEIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1theFZpcnR1YWxTY3JvbGxpbmdJdGVtXScgfSlcbmV4cG9ydCBjbGFzcyBBWFZpcnR1YWxTY3JvbGxpbmdJdGVtRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICBwdWJsaWMgZ2V0IG5hdGl2ZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuIl19","import { afterNextRender, computed, contentChildren, Directive, effect, ElementRef, HostBinding, inject, input, output, signal, } from '@angular/core';\nimport { AXVirtualScrollingItemDirective } from '../virtual-scrolling-item/virtual-scrolling-item.directive';\nimport * as i0 from \"@angular/core\";\nexport class AXVirtualScrollingContainerDirective {\n constructor() {\n this.height = input.required(...(ngDevMode ? [{ debugName: \"height\" }] : []));\n /** @ignore */\n this.observer = new IntersectionObserver(this.callBack.bind(this));\n this.ScrollEnd = output();\n /** @ignore */\n this.loading = false;\n this.container = inject(ElementRef);\n /** @ignore */\n this.children = contentChildren(AXVirtualScrollingItemDirective, ...(ngDevMode ? [{ debugName: \"children\" }] : []));\n /** @ignore */\n this.firstCall = signal(false, ...(ngDevMode ? [{ debugName: \"firstCall\" }] : []));\n /** @ignore */\n this.lastChildElem = computed(() => {\n return this.children()[0]?.nativeElement;\n }, ...(ngDevMode ? [{ debugName: \"lastChildElem\" }] : []));\n /** @ignore */\n this.firstChildElem = computed(() => {\n return this.children()[this.children().length - 1]?.nativeElement;\n }, ...(ngDevMode ? [{ debugName: \"firstChildElem\" }] : []));\n /** @ignore */\n this.#eff2 = effect(() => {\n if (this.lastChildElem()) {\n this.observer.observe(this.lastChildElem());\n }\n }, ...(ngDevMode ? [{ debugName: \"#eff2\" }] : []));\n /** @ignore */\n this.#eff3 = effect(() => {\n if (this.firstChildElem() && !this.loading) {\n setTimeout(() => {\n this.container.nativeElement.scrollTo({\n top: this.container.nativeElement.scrollHeight,\n behavior: 'instant',\n });\n });\n }\n }, ...(ngDevMode ? [{ debugName: \"#eff3\" }] : []));\n this.#init = afterNextRender(() => {\n this.container.nativeElement.style.overflowY = 'auto';\n this.container.nativeElement.style.display = 'block';\n });\n }\n /** @ignore */\n #eff2;\n /** @ignore */\n #eff3;\n #init;\n /** @ignore */\n callBack(entries) {\n if (entries[0].isIntersecting && this.firstCall()) {\n this.ScrollEnd.emit();\n this.loading = true;\n }\n this.loading = false;\n this.firstCall.set(true);\n }\n get __hostClass() {\n return `${this.height()}`;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXVirtualScrollingContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.3.15\", type: AXVirtualScrollingContainerDirective, isStandalone: true, selector: \"[axVirtualScrollingContainer]\", inputs: { height: { classPropertyName: \"height\", publicName: \"height\", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { ScrollEnd: \"ScrollEnd\" }, host: { properties: { \"style.height\": \"this.__hostClass\" } }, queries: [{ propertyName: \"children\", predicate: AXVirtualScrollingItemDirective, isSignal: true }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXVirtualScrollingContainerDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[axVirtualScrollingContainer]' }]\n }], propDecorators: { height: [{ type: i0.Input, args: [{ isSignal: true, alias: \"height\", required: true }] }], ScrollEnd: [{ type: i0.Output, args: [\"ScrollEnd\"] }], children: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => AXVirtualScrollingItemDirective), { isSignal: true }] }], __hostClass: [{\n type: HostBinding,\n args: ['style.height']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1zY3JvbGxpbmctY29udGlhbmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay92aXJ0dWFsLXNjcm9sbC9zcmMvbGliL3ZpcnR1YWwtc2Nyb2xsaW5nLWNvbnRpYW5lci92aXJ0dWFsLXNjcm9sbGluZy1jb250aWFuZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsUUFBUSxFQUNSLGVBQWUsRUFDZixTQUFTLEVBQ1QsTUFBTSxFQUNOLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDOztBQUc3RyxNQUFNLE9BQU8sb0NBQW9DO0lBRGpEO1FBRUUsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLGlEQUFVLENBQUM7UUFFbEMsY0FBYztRQUNKLGFBQVEsR0FBRyxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFeEUsY0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBRXJCLGNBQWM7UUFDZCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGNBQVMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFL0IsY0FBYztRQUNKLGFBQVEsR0FBRyxlQUFlLENBQUMsK0JBQStCLG9EQUFDLENBQUM7UUFFdEUsY0FBYztRQUNKLGNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxxREFBQyxDQUFDO1FBRXBDLGNBQWM7UUFDSixrQkFBYSxHQUFHLFFBQVEsQ0FBaUIsR0FBRyxFQUFFO1lBQ3RELE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQztRQUMzQyxDQUFDLHlEQUFDLENBQUM7UUFFSCxjQUFjO1FBQ0osbUJBQWMsR0FBRyxRQUFRLENBQWlCLEdBQUcsRUFBRTtZQUN2RCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQztRQUNwRSxDQUFDLDBEQUFDLENBQUM7UUFFSCxjQUFjO1FBQ2QsVUFBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDbEIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFDOUMsQ0FBQztRQUNILENBQUMsaURBQUMsQ0FBQztRQUVILGNBQWM7UUFDZCxVQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNsQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDM0MsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7d0JBQ3BDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxZQUFZO3dCQUM5QyxRQUFRLEVBQUUsU0FBUztxQkFDcEIsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUMsaURBQUMsQ0FBQztRQUVILFVBQUssR0FBRyxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBNkIsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztZQUN0RSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQTZCLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDeEUsQ0FBQyxDQUFDLENBQUM7S0FnQko7SUF0Q0MsY0FBYztJQUNkLEtBQUssQ0FJRjtJQUVILGNBQWM7SUFDZCxLQUFLLENBU0Y7SUFFSCxLQUFLLENBR0Y7SUFFSCxjQUFjO0lBQ0osUUFBUSxDQUFDLE9BQW9DO1FBQ3JELElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFDSSxXQUFXO1FBQ2IsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO0lBQzVCLENBQUM7K0dBbEVVLG9DQUFvQzttR0FBcEMsb0NBQW9DLDJWQWNWLCtCQUErQjs7NEZBZHpELG9DQUFvQztrQkFEaEQsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSwrQkFBK0IsRUFBRTtrUEFlakIsK0JBQStCO3NCQWlEbkUsV0FBVzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBjb21wdXRlZCxcbiAgY29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYVmlydHVhbFNjcm9sbGluZ0l0ZW1EaXJlY3RpdmUgfSBmcm9tICcuLi92aXJ0dWFsLXNjcm9sbGluZy1pdGVtL3ZpcnR1YWwtc2Nyb2xsaW5nLWl0ZW0uZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2F4VmlydHVhbFNjcm9sbGluZ0NvbnRhaW5lcl0nIH0pXG5leHBvcnQgY2xhc3MgQVhWaXJ0dWFsU2Nyb2xsaW5nQ29udGFpbmVyRGlyZWN0aXZlIHtcbiAgaGVpZ2h0ID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcih0aGlzLmNhbGxCYWNrLmJpbmQodGhpcykpO1xuXG4gIFNjcm9sbEVuZCA9IG91dHB1dCgpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIGxvYWRpbmcgPSBmYWxzZTtcblxuICBjb250YWluZXIgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGNoaWxkcmVuID0gY29udGVudENoaWxkcmVuKEFYVmlydHVhbFNjcm9sbGluZ0l0ZW1EaXJlY3RpdmUpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBmaXJzdENhbGwgPSBzaWduYWwoZmFsc2UpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBsYXN0Q2hpbGRFbGVtID0gY29tcHV0ZWQ8RWxlbWVudCB8IG51bGw+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5jaGlsZHJlbigpWzBdPy5uYXRpdmVFbGVtZW50O1xuICB9KTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgZmlyc3RDaGlsZEVsZW0gPSBjb21wdXRlZDxFbGVtZW50IHwgbnVsbD4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmNoaWxkcmVuKClbdGhpcy5jaGlsZHJlbigpLmxlbmd0aCAtIDFdPy5uYXRpdmVFbGVtZW50O1xuICB9KTtcblxuICAvKiogQGlnbm9yZSAqL1xuICAjZWZmMiA9IGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHRoaXMubGFzdENoaWxkRWxlbSgpKSB7XG4gICAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy5sYXN0Q2hpbGRFbGVtKCkpO1xuICAgIH1cbiAgfSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgI2VmZjMgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0aGlzLmZpcnN0Q2hpbGRFbGVtKCkgJiYgIXRoaXMubG9hZGluZykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG8oe1xuICAgICAgICAgIHRvcDogdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQsXG4gICAgICAgICAgYmVoYXZpb3I6ICdpbnN0YW50JyxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xuXG4gICNpbml0ID0gYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICAodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUub3ZlcmZsb3dZID0gJ2F1dG8nO1xuICAgICh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgfSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGNhbGxCYWNrKGVudHJpZXM6IEludGVyc2VjdGlvbk9ic2VydmVyRW50cnlbXSkge1xuICAgIGlmIChlbnRyaWVzWzBdLmlzSW50ZXJzZWN0aW5nICYmIHRoaXMuZmlyc3RDYWxsKCkpIHtcbiAgICAgIHRoaXMuU2Nyb2xsRW5kLmVtaXQoKTtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuZmlyc3RDYWxsLnNldCh0cnVlKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUuaGVpZ2h0JylcbiAgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuaGVpZ2h0KCl9YDtcbiAgfVxufVxuIl19","import { NgModule } from '@angular/core';\nimport { AXVirtualScrollingContainerDirective } from './virtual-scrolling-contianer/virtual-scrolling-contianer.directive';\nimport { AXVirtualScrollingItemDirective } from './virtual-scrolling-item/virtual-scrolling-item.directive';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [AXVirtualScrollingContainerDirective, AXVirtualScrollingItemDirective];\nconst MODULES = [];\nexport class AXVirtualScrollModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXVirtualScrollModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: AXVirtualScrollModule, imports: [AXVirtualScrollingContainerDirective, AXVirtualScrollingItemDirective], exports: [AXVirtualScrollingContainerDirective, AXVirtualScrollingItemDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXVirtualScrollModule, imports: [MODULES] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXVirtualScrollModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1zY3JvbGwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL3ZpcnR1YWwtc2Nyb2xsL3NyYy9saWIvdmlydHVhbC1zY3JvbGwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDM0gsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMkRBQTJELENBQUM7O0FBRTVHLE1BQU0sU0FBUyxHQUFHLENBQUMsb0NBQW9DLEVBQUUsK0JBQStCLENBQUMsQ0FBQztBQUUxRixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7QUFPbkIsTUFBTSxPQUFPLHFCQUFxQjsrR0FBckIscUJBQXFCO2dIQUFyQixxQkFBcUIsWUFUZixvQ0FBb0MsRUFBRSwrQkFBK0IsYUFBckUsb0NBQW9DLEVBQUUsK0JBQStCO2dIQVMzRSxxQkFBcUIsWUFKbkIsT0FBTzs7NEZBSVQscUJBQXFCO2tCQUxqQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDdkIsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhWaXJ0dWFsU2Nyb2xsaW5nQ29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi92aXJ0dWFsLXNjcm9sbGluZy1jb250aWFuZXIvdmlydHVhbC1zY3JvbGxpbmctY29udGlhbmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBWFZpcnR1YWxTY3JvbGxpbmdJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi92aXJ0dWFsLXNjcm9sbGluZy1pdGVtL3ZpcnR1YWwtc2Nyb2xsaW5nLWl0ZW0uZGlyZWN0aXZlJztcblxuY29uc3QgQ09NUE9ORU5UID0gW0FYVmlydHVhbFNjcm9sbGluZ0NvbnRhaW5lckRpcmVjdGl2ZSwgQVhWaXJ0dWFsU2Nyb2xsaW5nSXRlbURpcmVjdGl2ZV07XG5cbmNvbnN0IE1PRFVMRVMgPSBbXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogWy4uLk1PRFVMRVMsIC4uLkNPTVBPTkVOVF0sXG4gIGV4cG9ydHM6IFsuLi5DT01QT05FTlRdLFxuICBwcm92aWRlcnM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFZpcnR1YWxTY3JvbGxNb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay12aXJ0dWFsLXNjcm9sbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay92aXJ0dWFsLXNjcm9sbC9zcmMvYWNvcmV4LWNkay12aXJ0dWFsLXNjcm9sbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-cdk-wysiwyg.mjs","sources":["../../../../packages/cdk/wysiwyg/src/wysiwyg.class.ts","../../../../packages/cdk/wysiwyg/src/acorex-cdk-wysiwyg.ts"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport { inject, PLATFORM_ID, signal } from '@angular/core';\nimport type Quill from 'quill/quill.d.ts';\nimport type { QuillOptions, Range } from 'quill/quill.d.ts';\n\nexport type Wysiwyg = Quill;\nexport type WysiwygOptions = QuillOptions;\n\nexport class AXWysiwyg {\n quillObj = signal<Wysiwyg | null>(null);\n\n private platformId = inject(PLATFORM_ID);\n\n async init(container: HTMLElement | string, option?: WysiwygOptions) {\n if (!isPlatformBrowser(this.platformId)) return;\n await import('quill').then((e) => {\n const wysiwygObject = new e.default(container, option);\n this.quillObj.set(wysiwygObject);\n });\n }\n\n bold(value: boolean) {\n this.quillObj().format('bold', value);\n }\n\n italic(value: boolean) {\n this.quillObj().format('italic', value);\n }\n\n underLine(value: boolean) {\n this.quillObj().format('underline', value);\n }\n\n strike(value: boolean) {\n this.quillObj().format('strike', value);\n }\n\n color(value: string) {\n this.quillObj().format('color', value);\n }\n\n header(value: number) {\n this.quillObj().format('header', value);\n }\n\n list(value: 'ordered' | 'bullet' | '') {\n this.quillObj().format('list', value);\n }\n\n align(value: 'center' | 'right' | 'left' | 'justify') {\n if (value === 'left') {\n this.quillObj().format('align', '');\n } else {\n this.quillObj().format('align', value);\n }\n }\n\n direction(value: 'rtl' | 'ltr') {\n this.quillObj().format('direction', value);\n }\n\n fontSize(value: 'small' | false | 'large' | 'huge', range: Range) {\n this.quillObj().formatText(range.index, range.length, 'size', value);\n }\n\n get HTMLoutput() {\n return this.quillObj().root.innerHTML;\n }\n\n undo() {\n this.quillObj().history.undo();\n }\n\n redo() {\n this.quillObj().history.redo();\n }\n\n background(value: string) {\n this.quillObj().format('background', value);\n }\n\n addImage(value: string) {\n const range = this.quillObj().getSelection();\n const currentIndex = range?.index;\n this.quillObj().insertEmbed(currentIndex, 'image', value);\n }\n\n focus() {\n this.quillObj().focus();\n }\n\n blur() {\n this.quillObj().blur();\n }\n\n codeBlock(range: Range, status: boolean) {\n if (!range) return;\n this.quillObj().formatLine(range.index, range.length, 'code-block', status);\n }\n}\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-cdk-wysiwyg.mjs","sources":["../tmp-esm2022/wysiwyg/wysiwyg.class.js","../tmp-esm2022/wysiwyg/acorex-cdk-wysiwyg.js"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport { inject, PLATFORM_ID, signal } from '@angular/core';\nexport class AXWysiwyg {\n constructor() {\n this.quillObj = signal(null, ...(ngDevMode ? [{ debugName: \"quillObj\" }] : []));\n this.platformId = inject(PLATFORM_ID);\n }\n async init(container, option) {\n if (!isPlatformBrowser(this.platformId))\n return;\n await import('quill').then((e) => {\n const wysiwygObject = new e.default(container, option);\n this.quillObj.set(wysiwygObject);\n });\n }\n bold(value) {\n this.quillObj().format('bold', value);\n }\n italic(value) {\n this.quillObj().format('italic', value);\n }\n underLine(value) {\n this.quillObj().format('underline', value);\n }\n strike(value) {\n this.quillObj().format('strike', value);\n }\n color(value) {\n this.quillObj().format('color', value);\n }\n header(value) {\n this.quillObj().format('header', value);\n }\n list(value) {\n this.quillObj().format('list', value);\n }\n align(value) {\n if (value === 'left') {\n this.quillObj().format('align', '');\n }\n else {\n this.quillObj().format('align', value);\n }\n }\n direction(value) {\n this.quillObj().format('direction', value);\n }\n fontSize(value, range) {\n this.quillObj().formatText(range.index, range.length, 'size', value);\n }\n get HTMLoutput() {\n return this.quillObj().root.innerHTML;\n }\n undo() {\n this.quillObj().history.undo();\n }\n redo() {\n this.quillObj().history.redo();\n }\n background(value) {\n this.quillObj().format('background', value);\n }\n addImage(value) {\n const range = this.quillObj().getSelection();\n const currentIndex = range?.index;\n this.quillObj().insertEmbed(currentIndex, 'image', value);\n }\n focus() {\n this.quillObj().focus();\n }\n blur() {\n this.quillObj().blur();\n }\n codeBlock(range, status) {\n if (!range)\n return;\n this.quillObj().formatLine(range.index, range.length, 'code-block', status);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3lzaXd5Zy5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay93eXNpd3lnL3NyYy93eXNpd3lnLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU81RCxNQUFNLE9BQU8sU0FBUztJQUF0QjtRQUNFLGFBQVEsR0FBRyxNQUFNLENBQWlCLElBQUksb0RBQUMsQ0FBQztRQUVoQyxlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBd0YzQyxDQUFDO0lBdEZDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBK0IsRUFBRSxNQUF1QjtRQUNqRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU87UUFDaEQsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDL0IsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBYztRQUNqQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELFNBQVMs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O0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QsIFBMQVRGT1JNX0lELCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIFF1aWxsIGZyb20gJ3F1aWxsL3F1aWxsLmQudHMnO1xuaW1wb3J0IHR5cGUgeyBRdWlsbE9wdGlvbnMsIFJhbmdlIH0gZnJvbSAncXVpbGwvcXVpbGwuZC50cyc7XG5cbmV4cG9ydCB0eXBlIFd5c2l3eWcgPSBRdWlsbDtcbmV4cG9ydCB0eXBlIFd5c2l3eWdPcHRpb25zID0gUXVpbGxPcHRpb25zO1xuXG5leHBvcnQgY2xhc3MgQVhXeXNpd3lnIHtcbiAgcXVpbGxPYmogPSBzaWduYWw8V3lzaXd5ZyB8IG51bGw+KG51bGwpO1xuXG4gIHByaXZhdGUgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgYXN5bmMgaW5pdChjb250YWluZXI6IEhUTUxFbGVtZW50IHwgc3RyaW5nLCBvcHRpb24/OiBXeXNpd3lnT3B0aW9ucykge1xuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgIGF3YWl0IGltcG9ydCgncXVpbGwnKS50aGVuKChlKSA9PiB7XG4gICAgICBjb25zdCB3eXNpd3lnT2JqZWN0ID0gbmV3IGUuZGVmYXVsdChjb250YWluZXIsIG9wdGlvbik7XG4gICAgICB0aGlzLnF1aWxsT2JqLnNldCh3eXNpd3lnT2JqZWN0KTtcbiAgICB9KTtcbiAgfVxuXG4gIGJvbGQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnF1aWxsT2JqKCkuZm9ybWF0KCdib2xkJywgdmFsdWUpO1xuICB9XG5cbiAgaXRhbGljKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5xdWlsbE9iaigpLmZvcm1hdCgnaXRhbGljJywgdmFsdWUpO1xuICB9XG5cbiAgdW5kZXJMaW5lKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5xdWlsbE9iaigpLmZvcm1hdCgndW5kZXJsaW5lJywgdmFsdWUpO1xuICB9XG5cbiAgc3RyaWtlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5xdWlsbE9iaigpLmZvcm1hdCgnc3RyaWtlJywgdmFsdWUpO1xuICB9XG5cbiAgY29sb3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMucXVpbGxPYmooKS5mb3JtYXQoJ2NvbG9yJywgdmFsdWUpO1xuICB9XG5cbiAgaGVhZGVyKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLnF1aWxsT2JqKCkuZm9ybWF0KCdoZWFkZXInLCB2YWx1ZSk7XG4gIH1cblxuICBsaXN0KHZhbHVlOiAnb3JkZXJlZCcgfCAnYnVsbGV0JyB8ICcnKSB7XG4gICAgdGhpcy5xdWlsbE9iaigpLmZvcm1hdCgnbGlzdCcsIHZhbHVlKTtcbiAgfVxuXG4gIGFsaWduKHZhbHVlOiAnY2VudGVyJyB8ICdyaWdodCcgfCAnbGVmdCcgfCAnanVzdGlmeScpIHtcbiAgICBpZiAodmFsdWUgPT09ICdsZWZ0Jykge1xuICAgICAgdGhpcy5xdWlsbE9iaigpLmZvcm1hdCgnYWxpZ24nLCAnJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucXVpbGxPYmooKS5mb3JtYXQoJ2FsaWduJywgdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGRpcmVjdGlvbih2YWx1ZTogJ3J0bCcgfCAnbHRyJykge1xuICAgIHRoaXMucXVpbGxPYmooKS5mb3JtYXQoJ2RpcmVjdGlvbicsIHZhbHVlKTtcbiAgfVxuXG4gIGZvbnRTaXplKHZhbHVlOiAnc21hbGwnIHwgZmFsc2UgfCAnbGFyZ2UnIHwgJ2h1Z2UnLCByYW5nZTogUmFuZ2UpIHtcbiAgICB0aGlzLnF1aWxsT2JqKCkuZm9ybWF0VGV4dChyYW5nZS5pbmRleCwgcmFuZ2UubGVuZ3RoLCAnc2l6ZScsIHZhbHVlKTtcbiAgfVxuXG4gIGdldCBIVE1Mb3V0cHV0KCkge1xuICAgIHJldHVybiB0aGlzLnF1aWxsT2JqKCkucm9vdC5pbm5lckhUTUw7XG4gIH1cblxuICB1bmRvKCkge1xuICAgIHRoaXMucXVpbGxPYmooKS5oaXN0b3J5LnVuZG8oKTtcbiAgfVxuXG4gIHJlZG8oKSB7XG4gICAgdGhpcy5xdWlsbE9iaigpLmhpc3RvcnkucmVkbygpO1xuICB9XG5cbiAgYmFja2dyb3VuZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5xdWlsbE9iaigpLmZvcm1hdCgnYmFja2dyb3VuZCcsIHZhbHVlKTtcbiAgfVxuXG4gIGFkZEltYWdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCByYW5nZSA9IHRoaXMucXVpbGxPYmooKS5nZXRTZWxlY3Rpb24oKTtcbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSByYW5nZT8uaW5kZXg7XG4gICAgdGhpcy5xdWlsbE9iaigpLmluc2VydEVtYmVkKGN1cnJlbnRJbmRleCwgJ2ltYWdlJywgdmFsdWUpO1xuICB9XG5cbiAgZm9jdXMoKSB7XG4gICAgdGhpcy5xdWlsbE9iaigpLmZvY3VzKCk7XG4gIH1cblxuICBibHVyKCkge1xuICAgIHRoaXMucXVpbGxPYmooKS5ibHVyKCk7XG4gIH1cblxuICBjb2RlQmxvY2socmFuZ2U6IFJhbmdlLCBzdGF0dXM6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXJhbmdlKSByZXR1cm47XG4gICAgdGhpcy5xdWlsbE9iaigpLmZvcm1hdExpbmUocmFuZ2UuaW5kZXgsIHJhbmdlLmxlbmd0aCwgJ2NvZGUtYmxvY2snLCBzdGF0dXMpO1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay13eXNpd3lnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL3d5c2l3eWcvc3JjL2Fjb3JleC1jZGstd3lzaXd5Zy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-cdk.mjs","sources":["../../../../packages/cdk/src/index.ts","../../../../packages/cdk/src/acorex-cdk.ts"],"sourcesContent":["export const ACOREX_CDK = 'ACorex CDK';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAO,MAAM,UAAU,GAAG;;ACA1B;;AAEG;;;;"}
1
+ {"version":3,"file":"acorex-cdk.mjs","sources":["../tmp-esm2022/index.js","../tmp-esm2022/acorex-cdk.js"],"sourcesContent":["export const ACOREX_CDK = 'ACorex CDK';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQUNPUkVYX0NESyA9ICdBQ29yZXggQ0RLJztcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9zcmMvYWNvcmV4LWNkay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"AAAY,MAAC,UAAU,GAAG;;ACA1B;AACA;AACA;;;;"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@acorex/cdk",
3
- "version": "21.0.1-next.7",
3
+ "version": "21.0.1-next.8",
4
4
  "peerDependencies": {
5
- "@acorex/core": "21.0.1-next.7",
5
+ "@acorex/core": "21.0.1-next.8",
6
6
  "@angular/common": "^20.0.0",
7
7
  "@angular/core": "^20.0.0",
8
8
  "quill": ">=2.0.2",
@@ -25,22 +25,22 @@
25
25
  "types": "./accordion/index.d.ts",
26
26
  "default": "./fesm2022/acorex-cdk-accordion.mjs"
27
27
  },
28
- "./carousel": {
29
- "types": "./carousel/index.d.ts",
30
- "default": "./fesm2022/acorex-cdk-carousel.mjs"
31
- },
32
28
  "./clipboard": {
33
29
  "types": "./clipboard/index.d.ts",
34
30
  "default": "./fesm2022/acorex-cdk-clipboard.mjs"
35
31
  },
36
- "./common": {
37
- "types": "./common/index.d.ts",
38
- "default": "./fesm2022/acorex-cdk-common.mjs"
32
+ "./carousel": {
33
+ "types": "./carousel/index.d.ts",
34
+ "default": "./fesm2022/acorex-cdk-carousel.mjs"
39
35
  },
40
36
  "./dom": {
41
37
  "types": "./dom/index.d.ts",
42
38
  "default": "./fesm2022/acorex-cdk-dom.mjs"
43
39
  },
40
+ "./common": {
41
+ "types": "./common/index.d.ts",
42
+ "default": "./fesm2022/acorex-cdk-common.mjs"
43
+ },
44
44
  "./double-click": {
45
45
  "types": "./double-click/index.d.ts",
46
46
  "default": "./fesm2022/acorex-cdk-double-click.mjs"