@acorex/components 21.0.1-next.2 → 21.0.1-next.3

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.
Files changed (47) hide show
  1. package/action-sheet/index.d.ts +19 -41
  2. package/dialog/index.d.ts +14 -18
  3. package/dropdown/index.d.ts +4 -3
  4. package/fesm2022/acorex-components-action-sheet.mjs +93 -141
  5. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  6. package/fesm2022/acorex-components-conversation2.mjs +2 -2
  7. package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
  8. package/fesm2022/acorex-components-dialog.mjs +45 -66
  9. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  10. package/fesm2022/acorex-components-dropdown.mjs +4 -0
  11. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  12. package/fesm2022/acorex-components-grid-layout-builder.mjs +2 -2
  13. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  14. package/fesm2022/acorex-components-loading-dialog.mjs +36 -73
  15. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  16. package/fesm2022/acorex-components-menu.mjs +5 -26
  17. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  18. package/fesm2022/{acorex-components-modal-acorex-components-modal-Bmoz9DL5.mjs → acorex-components-modal-acorex-components-modal-CXXcFToK.mjs} +3 -27
  19. package/fesm2022/acorex-components-modal-acorex-components-modal-CXXcFToK.mjs.map +1 -0
  20. package/fesm2022/{acorex-components-modal-modal-content.component-CSJU1vRi.mjs → acorex-components-modal-modal-content.component-B4rhHeEz.mjs} +2 -2
  21. package/fesm2022/{acorex-components-modal-modal-content.component-CSJU1vRi.mjs.map → acorex-components-modal-modal-content.component-B4rhHeEz.mjs.map} +1 -1
  22. package/fesm2022/acorex-components-modal.mjs +1 -1
  23. package/fesm2022/acorex-components-notification.mjs +257 -374
  24. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  25. package/fesm2022/acorex-components-popover.mjs +175 -136
  26. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  27. package/fesm2022/acorex-components-popup.mjs +105 -308
  28. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  29. package/fesm2022/acorex-components-routing-progress.mjs +2 -2
  30. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  31. package/fesm2022/acorex-components-scheduler.mjs +1195 -136
  32. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  33. package/fesm2022/acorex-components-toast.mjs +123 -231
  34. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  35. package/fesm2022/acorex-components-tooltip.mjs +3 -2
  36. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  37. package/loading-dialog/index.d.ts +15 -31
  38. package/menu/index.d.ts +0 -4
  39. package/modal/index.d.ts +0 -7
  40. package/notification/index.d.ts +32 -47
  41. package/package.json +7 -7
  42. package/popover/index.d.ts +27 -20
  43. package/popup/index.d.ts +27 -103
  44. package/scheduler/index.d.ts +281 -27
  45. package/toast/index.d.ts +18 -24
  46. package/tooltip/index.d.ts +2 -1
  47. package/fesm2022/acorex-components-modal-acorex-components-modal-Bmoz9DL5.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-notification.mjs","sources":["../tmp-esm2022/notification/lib/notification.config.js","../tmp-esm2022/notification/lib/notification.service.js","../tmp-esm2022/notification/lib/notification.component.js","../tmp-esm2022/notification/lib/notification.module.js","../tmp-esm2022/notification/acorex-components-notification.js"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nexport const AX_NOTIFICATION_CONFIG = new InjectionToken('AX_NOTIFICATION_CONFIG', {\n providedIn: 'root',\n factory: () => AXNotificationDefaultConfig,\n});\nexport const AXNotificationDefaultConfig = {\n gap: 5,\n timeOut: 2500,\n timeOutProgress: true,\n closeButton: true,\n location: 'top-end',\n limit: 3,\n pauseOnHover: true,\n};\nexport function notificationConfig(config = {}) {\n const result = {\n ...AXNotificationDefaultConfig,\n ...config,\n };\n return result;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL3NyYy9saWIvbm90aWZpY2F0aW9uLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBWS9DLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUF1Qix3QkFBd0IsRUFBRTtJQUN2RyxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsMkJBQTJCO0NBQzNDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUF5QjtJQUMvRCxHQUFHLEVBQUUsQ0FBQztJQUNOLE9BQU8sRUFBRSxJQUFJO0lBQ2IsZUFBZSxFQUFFLElBQUk7SUFDckIsV0FBVyxFQUFFLElBQUk7SUFDakIsUUFBUSxFQUFFLFNBQVM7SUFDbkIsS0FBSyxFQUFFLENBQUM7SUFDUixZQUFZLEVBQUUsSUFBSTtDQUNuQixDQUFDO0FBSUYsTUFBTSxVQUFVLGtCQUFrQixDQUFDLFNBQW9DLEVBQUU7SUFDdkUsTUFBTSxNQUFNLEdBQUc7UUFDYixHQUFHLDJCQUEyQjtRQUM5QixHQUFHLE1BQU07S0FDVixDQUFDO0lBQ0YsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYTG9jYXRpb24gfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWE5vdGlmaWNhdGlvbkNvbmZpZyB7XG4gIGdhcDogbnVtYmVyO1xuICB0aW1lT3V0OiBudW1iZXI7XG4gIHRpbWVPdXRQcm9ncmVzczogYm9vbGVhbjtcbiAgbG9jYXRpb246IEFYTG9jYXRpb247XG4gIGNsb3NlQnV0dG9uOiBib29sZWFuO1xuICBsaW1pdDogbnVtYmVyO1xuICBwYXVzZU9uSG92ZXI6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBBWF9OT1RJRklDQVRJT05fQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPEFYTm90aWZpY2F0aW9uQ29uZmlnPignQVhfTk9USUZJQ0FUSU9OX0NPTkZJRycsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiBBWE5vdGlmaWNhdGlvbkRlZmF1bHRDb25maWcsXG59KTtcblxuZXhwb3J0IGNvbnN0IEFYTm90aWZpY2F0aW9uRGVmYXVsdENvbmZpZzogQVhOb3RpZmljYXRpb25Db25maWcgPSB7XG4gIGdhcDogNSxcbiAgdGltZU91dDogMjUwMCxcbiAgdGltZU91dFByb2dyZXNzOiB0cnVlLFxuICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgbG9jYXRpb246ICd0b3AtZW5kJyxcbiAgbGltaXQ6IDMsXG4gIHBhdXNlT25Ib3ZlcjogdHJ1ZSxcbn07XG5cbmV4cG9ydCB0eXBlIFBhcnRpYWxOb3RpZmljYXRpb25Db25maWcgPSBQYXJ0aWFsPEFYTm90aWZpY2F0aW9uQ29uZmlnPjtcblxuZXhwb3J0IGZ1bmN0aW9uIG5vdGlmaWNhdGlvbkNvbmZpZyhjb25maWc6IFBhcnRpYWxOb3RpZmljYXRpb25Db25maWcgPSB7fSk6IEFYTm90aWZpY2F0aW9uQ29uZmlnIHtcbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIC4uLkFYTm90aWZpY2F0aW9uRGVmYXVsdENvbmZpZyxcbiAgICAuLi5jb25maWcsXG4gIH07XG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=","import { AXOverlayService } from '@acorex/cdk/overlay';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Injectable, inject, signal } from '@angular/core';\nimport { AXNotificationComponent } from './notification.component';\nimport { AX_NOTIFICATION_CONFIG } from './notification.config';\nimport * as i0 from \"@angular/core\";\nlet notificationIdCounter = 0;\nexport class AXNotificationService {\n constructor() {\n this.overlayService = inject(AXOverlayService);\n this.translationService = inject(AXTranslationService);\n this.defaultConfig = inject(AX_NOTIFICATION_CONFIG);\n this.activeNotifications = signal([], ...(ngDevMode ? [{ debugName: \"activeNotifications\" }] : []));\n this.reservedNotifications = signal([], ...(ngDevMode ? [{ debugName: \"reservedNotifications\" }] : []));\n this.notificationCounterRef = signal(null, ...(ngDevMode ? [{ debugName: \"notificationCounterRef\" }] : []));\n this.moreNotificationsColor = signal('primary', ...(ngDevMode ? [{ debugName: \"moreNotificationsColor\" }] : []));\n this.moreNotificationsLocation = signal('bottom-center', ...(ngDevMode ? [{ debugName: \"moreNotificationsLocation\" }] : []));\n this.reserveCounter = signal(0, ...(ngDevMode ? [{ debugName: \"reserveCounter\" }] : []));\n }\n show(config) {\n config = { ...this.defaultConfig, ...config };\n this.moreNotificationsColor.set(config.color);\n this.moreNotificationsLocation.set(config.location);\n if (this.defaultConfig.limit > 0 && this.activeNotifications().length >= this.defaultConfig.limit) {\n const reservedRef = {\n close: () => {\n console.warn('Reserved notification cannot be closed until it is displayed.');\n },\n };\n this.reservedNotifications.update((prev) => [...prev, { config, reservedRef }]);\n this.handleReservedNotificationCounter();\n return reservedRef;\n }\n return this.displayNotification(config);\n }\n displayNotification(config) {\n const gap = this.defaultConfig.gap;\n const notificationData = {\n buttons: config.buttons,\n icon: config.icon,\n title: config.title,\n content: config.content,\n location: config.location,\n closeButton: config.closeButton ?? true,\n color: config.color,\n timeOut: config.timeOut,\n timeOutProgress: config.timeOutProgress ?? true,\n pauseOnHover: config.pauseOnHover,\n };\n const notificationId = `notification-${++notificationIdCounter}`;\n let internalRef;\n const closeNotification = () => {\n if (internalRef) {\n internalRef.overlayRef.dispose();\n this.activeNotifications.set(this.activeNotifications().filter((n) => n.id !== internalRef.id));\n this.handleShowReservedNotification();\n this.handleReservedNotificationCounter();\n setTimeout(() => {\n this.reposition(config.location, gap);\n });\n }\n };\n this.overlayService\n .create(AXNotificationComponent, {\n inputs: {\n config: notificationData,\n onClose: closeNotification,\n },\n centered: false,\n panelClass: ['ax-animate-animated', 'ax-animate-fadeIn', 'ax-animate-faster'],\n onDispose: () => {\n // Clean up when disposed externally\n const currentNotifications = this.activeNotifications();\n if (internalRef && currentNotifications.find((n) => n.id === internalRef.id)) {\n this.activeNotifications.set(currentNotifications.filter((n) => n.id !== internalRef.id));\n this.handleShowReservedNotification();\n this.handleReservedNotificationCounter();\n }\n },\n })\n .then((overlayRef) => {\n internalRef = {\n id: notificationId,\n overlayRef,\n config: notificationData,\n close: closeNotification,\n };\n // Position the notification BEFORE adding to activeNotifications\n this.positionNotification(overlayRef.overlayElement, config.location, gap);\n this.activeNotifications.update((prev) => [...prev, internalRef]);\n this.handleReservedNotificationCounter();\n });\n return {\n close: () => {\n closeNotification();\n },\n };\n }\n hideAll() {\n this.reserveCounter.set(0);\n this.reservedNotifications.set([]);\n // Close all active notifications\n this.activeNotifications().forEach((notification) => {\n notification.overlayRef.dispose();\n });\n this.activeNotifications.set([]);\n // Close counter notification if exists\n const counterRef = this.notificationCounterRef();\n if (counterRef) {\n counterRef.overlayRef.dispose();\n this.notificationCounterRef.set(null);\n }\n this.handleReservedNotificationCounter();\n }\n handleShowReservedNotification() {\n if (this.activeNotifications().length > this.defaultConfig.limit - 1)\n return;\n if (!this.reservedNotifications().length)\n return;\n const reserved = this.reservedNotifications()[0];\n this.reservedNotifications.update((prev) => prev.slice(1));\n const displayedRef = this.displayNotification(reserved.config);\n this.handleReservedNotificationCounter();\n reserved.reservedRef.close = displayedRef.close;\n }\n handleReservedNotificationCounter() {\n const reservedCount = this.reservedNotifications().length;\n if (reservedCount === this.reserveCounter())\n return;\n this.reserveCounter.set(reservedCount);\n if (reservedCount === 0 && this.notificationCounterRef() !== null) {\n this.notificationCounterRef().close();\n this.notificationCounterRef.set(null);\n return;\n }\n if (reservedCount > 0) {\n if (this.notificationCounterRef() !== null) {\n this.notificationCounterRef().close();\n this.notificationCounterRef.set(null);\n }\n this.createReservedCounterNotification();\n }\n }\n async createReservedCounterNotification() {\n const gap = this.defaultConfig.gap;\n const opt = {\n closeButton: false,\n color: this.moreNotificationsColor(),\n location: this.moreNotificationsLocation(),\n title: await this.translationService.translateAsync('@acorex:common.notifications.more', {\n params: { number: this.reserveCounter() },\n }),\n timeOutProgress: false,\n };\n const notificationId = `notification-counter-${++notificationIdCounter}`;\n let counterInternalRef;\n const closeCounter = () => {\n if (counterInternalRef) {\n counterInternalRef.overlayRef.dispose();\n if (this.notificationCounterRef()?.id === counterInternalRef.id) {\n this.notificationCounterRef.set(null);\n }\n }\n };\n const overlayRef = await this.overlayService.create(AXNotificationComponent, {\n inputs: {\n config: opt,\n onClose: closeCounter,\n },\n centered: false,\n panelClass: ['ax-animate-animated', 'ax-animate-fadeIn', 'ax-animate-faster'],\n });\n counterInternalRef = {\n id: notificationId,\n overlayRef,\n config: opt,\n close: closeCounter,\n };\n this.notificationCounterRef.set(counterInternalRef);\n // Position the counter notification\n this.positionNotification(overlayRef.overlayElement, opt.location, gap);\n }\n positionNotification(element, location, gap) {\n if (!element)\n return;\n const pos = this.getPosition(location) + gap;\n // Override the centered overlay container styles for notification positioning\n element.style.width = 'max-content';\n element.style.height = 'auto';\n element.style.display = 'block';\n element.style.alignItems = '';\n element.style.justifyContent = '';\n // Reset all positioning styles\n element.style.top = '';\n element.style.bottom = '';\n element.style.left = '';\n element.style.right = '';\n element.style.transform = '';\n // Apply position based on location\n switch (location) {\n case 'bottom-center':\n element.style.bottom = pos + 'px';\n element.style.left = '50%';\n element.style.transform = 'translateX(-50%)';\n break;\n case 'bottom-end':\n element.style.bottom = pos + 'px';\n element.style.right = gap + 'px';\n break;\n case 'bottom-start':\n element.style.bottom = pos + 'px';\n element.style.left = gap + 'px';\n break;\n case 'top-center':\n element.style.top = pos + 'px';\n element.style.left = '50%';\n element.style.transform = 'translateX(-50%)';\n break;\n case 'top-end':\n element.style.top = pos + 'px';\n element.style.right = gap + 'px';\n break;\n case 'top-start':\n element.style.top = pos + 'px';\n element.style.left = gap + 'px';\n break;\n case 'center-start':\n element.style.top = '50%';\n element.style.left = gap + 'px';\n element.style.transform = 'translateY(-50%)';\n break;\n case 'center-end':\n element.style.top = '50%';\n element.style.right = gap + 'px';\n element.style.transform = 'translateY(-50%)';\n break;\n }\n }\n reposition(notificationLocation, gap) {\n const list = this.activeNotifications().filter((n) => n.config?.location === notificationLocation);\n list.forEach((notification, index) => {\n const element = notification.overlayRef.overlayElement;\n if (!element)\n return;\n const pos = this.getRepositionPosition(index, gap, list, notificationLocation);\n this.applyRepositionPosition(element, notificationLocation, pos, gap);\n });\n }\n getRepositionPosition(index, gap, list, notificationLocation) {\n if (index === 0)\n return gap;\n const previousNotification = list[index - 1];\n const previousElement = previousNotification.overlayRef.overlayElement;\n if (!previousElement)\n return gap;\n if (notificationLocation.split('-')[0] === 'bottom') {\n return window.innerHeight - previousElement.offsetTop + gap;\n }\n return previousElement.offsetTop + previousElement.offsetHeight + gap;\n }\n applyRepositionPosition(element, location, pos, gap) {\n // Reset transform if needed, then apply position\n const isVerticalCenter = location === 'center-start' || location === 'center-end';\n const isHorizontalCenter = location === 'bottom-center' || location === 'top-center';\n if (location.startsWith('bottom')) {\n element.style.bottom = pos + 'px';\n element.style.top = '';\n if (isHorizontalCenter) {\n element.style.transform = 'translateX(-50%)';\n }\n }\n else if (location.startsWith('top')) {\n element.style.top = pos + 'px';\n element.style.bottom = '';\n if (isHorizontalCenter) {\n element.style.transform = 'translateX(-50%)';\n }\n }\n else if (isVerticalCenter) {\n element.style.top = pos + 'px';\n element.style.bottom = '';\n element.style.transform = '';\n }\n }\n getPosition(location) {\n const list = this.activeNotifications().filter((n) => n.config?.location === location);\n if (list.length === 0)\n return 0;\n const lastNotification = list[list.length - 1];\n const element = lastNotification.overlayRef.overlayElement;\n if (!element)\n return 0;\n if (location.split('-')[0] === 'bottom') {\n return window.innerHeight - element.offsetTop;\n }\n return element.offsetTop + element.offsetHeight;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXNotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXNotificationService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXNotificationService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9zcmMvbGliL25vdGlmaWNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBZ0IsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPekUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkUsT0FBTyxFQUF3QixzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQVNyRixJQUFJLHFCQUFxQixHQUFHLENBQUMsQ0FBQztBQUs5QixNQUFNLE9BQU8scUJBQXFCO0lBSGxDO1FBSVUsbUJBQWMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMxQyx1QkFBa0IsR0FBeUIsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDeEUsa0JBQWEsR0FBeUIsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFckUsd0JBQW1CLEdBQUcsTUFBTSxDQUE4QixFQUFFLCtEQUFDLENBQUM7UUFDOUQsMEJBQXFCLEdBQUcsTUFBTSxDQUE0QixFQUFFLGlFQUFDLENBQUM7UUFDOUQsMkJBQXNCLEdBQUcsTUFBTSxDQUFtQyxJQUFJLGtFQUFDLENBQUM7UUFDeEUsMkJBQXNCLEdBQUcsTUFBTSxDQUFtQixTQUFTLGtFQUFDLENBQUM7UUFDN0QsOEJBQXlCLEdBQUcsTUFBTSxDQUFhLGVBQWUscUVBQUMsQ0FBQztRQUNoRSxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxDQUFDLDBEQUFDLENBQUM7S0E4VHBDO0lBNVRD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QUFNLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDaEQsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO0lBQ2xELENBQUM7K0dBdlVVLHFCQUFxQjttSEFBckIscUJBQXFCLGNBRnBCLE1BQU07OzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWExvY2F0aW9uLCBBWFN0eWxlQ29sb3JUeXBlIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYT3ZlcmxheVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IENvbXBvbmVudFJlZiwgSW5qZWN0YWJsZSwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFYTm90aWZpY2F0aW9uRGF0YSxcbiAgQVhOb3RpZmljYXRpb25JbnRlcm5hbFJlZixcbiAgQVhOb3RpZmljYXRpb25PcHRpb25zIGFzIEFYTm90aWZpY2F0aW9uRGlzcGxheUNvbmZpZyxcbiAgQVhOb3RpZmljYXRpb25SZWYsXG59IGZyb20gJy4vbm90aWZpY2F0aW9uLmNsYXNzJztcbmltcG9ydCB7IEFYTm90aWZpY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9ub3RpZmljYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEFYTm90aWZpY2F0aW9uQ29uZmlnLCBBWF9OT1RJRklDQVRJT05fQ09ORklHIH0gZnJvbSAnLi9ub3RpZmljYXRpb24uY29uZmlnJztcblxudHlwZSBBWFJlc2VydmVkTm90aWZpY2F0aW9ucyA9IHtcbiAgY29uZmlnOiBBWE5vdGlmaWNhdGlvbkRpc3BsYXlDb25maWc7XG4gIHJlc2VydmVkUmVmOiB7XG4gICAgY2xvc2U6ICgpID0+IHZvaWQ7XG4gIH07XG59O1xuXG5sZXQgbm90aWZpY2F0aW9uSWRDb3VudGVyID0gMDtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYTm90aWZpY2F0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgb3ZlcmxheVNlcnZpY2UgPSBpbmplY3QoQVhPdmVybGF5U2VydmljZSk7XG4gIHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlOiBBWFRyYW5zbGF0aW9uU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgZGVmYXVsdENvbmZpZzogQVhOb3RpZmljYXRpb25Db25maWcgPSBpbmplY3QoQVhfTk9USUZJQ0FUSU9OX0NPTkZJRyk7XG5cbiAgcHJpdmF0ZSBhY3RpdmVOb3RpZmljYXRpb25zID0gc2lnbmFsPEFYTm90aWZpY2F0aW9uSW50ZXJuYWxSZWZbXT4oW10pO1xuICBwcml2YXRlIHJlc2VydmVkTm90aWZpY2F0aW9ucyA9IHNpZ25hbDxBWFJlc2VydmVkTm90aWZpY2F0aW9uc1tdPihbXSk7XG4gIHByaXZhdGUgbm90aWZpY2F0aW9uQ291bnRlclJlZiA9IHNpZ25hbDxBWE5vdGlmaWNhdGlvbkludGVybmFsUmVmIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgbW9yZU5vdGlmaWNhdGlvbnNDb2xvciA9IHNpZ25hbDxBWFN0eWxlQ29sb3JUeXBlPigncHJpbWFyeScpO1xuICBwcml2YXRlIG1vcmVOb3RpZmljYXRpb25zTG9jYXRpb24gPSBzaWduYWw8QVhMb2NhdGlvbj4oJ2JvdHRvbS1jZW50ZXInKTtcbiAgcHJpdmF0ZSByZXNlcnZlQ291bnRlciA9IHNpZ25hbCgwKTtcblxuICBzaG93KGNvbmZpZzogQVhOb3RpZmljYXRpb25EaXNwbGF5Q29uZmlnKTogQVhOb3RpZmljYXRpb25SZWYge1xuICAgIGNvbmZpZyA9IHsgLi4udGhpcy5kZWZhdWx0Q29uZmlnLCAuLi5jb25maWcgfTtcblxuICAgIHRoaXMubW9yZU5vdGlmaWNhdGlvbnNDb2xvci5zZXQoY29uZmlnLmNvbG9yKTtcbiAgICB0aGlzLm1vcmVOb3RpZmljYXRpb25zTG9jYXRpb24uc2V0KGNvbmZpZy5sb2NhdGlvbik7XG5cbiAgICBpZiAodGhpcy5kZWZhdWx0Q29uZmlnLmxpbWl0ID4gMCAmJiB0aGlzLmFjdGl2ZU5vdGlmaWNhdGlvbnMoKS5sZW5ndGggPj0gdGhpcy5kZWZhdWx0Q29uZmlnLmxpbWl0KSB7XG4gICAgICBjb25zdCByZXNlcnZlZFJlZiA9IHtcbiAgICAgICAgY2xvc2U6ICgpID0+IHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ1Jlc2VydmVkIG5vdGlmaWNhdGlvbiBjYW5ub3QgYmUgY2xvc2VkIHVudGlsIGl0IGlzIGRpc3BsYXllZC4nKTtcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICB0aGlzLnJlc2VydmVkTm90aWZpY2F0aW9ucy51cGRhdGUoKHByZXYpID0+IFsuLi5wcmV2LCB7IGNvbmZpZywgcmVzZXJ2ZWRSZWYgfV0pO1xuICAgICAgdGhpcy5oYW5kbGVSZXNlcnZlZE5vdGlmaWNhdGlvbkNvdW50ZXIoKTtcbiAgICAgIHJldHVybiByZXNlcnZlZFJlZjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5Tm90aWZpY2F0aW9uKGNvbmZpZyk7XG4gIH1cblxuICBwcml2YXRlIGRpc3BsYXlOb3RpZmljYXRpb24oY29uZmlnOiBBWE5vdGlmaWNhdGlvbkRpc3BsYXlDb25maWcpOiBBWE5vdGlmaWNhdGlvblJlZiB7XG4gICAgY29uc3QgZ2FwID0gdGhpcy5kZWZhdWx0Q29uZmlnLmdhcDtcbiAgICBjb25zdCBub3RpZmljYXRpb25EYXRhOiBBWE5vdGlmaWNhdGlvbkRhdGEgPSB7XG4gICAgICBidXR0b25zOiBjb25maWcuYnV0dG9ucyxcbiAgICAgIGljb246IGNvbmZpZy5pY29uLFxuICAgICAgdGl0bGU6IGNvbmZpZy50aXRsZSxcbiAgICAgIGNvbnRlbnQ6IGNvbmZpZy5jb250ZW50LFxuICAgICAgbG9jYXRpb246IGNvbmZpZy5sb2NhdGlvbixcbiAgICAgIGNsb3NlQnV0dG9uOiBjb25maWcuY2xvc2VCdXR0b24gPz8gdHJ1ZSxcbiAgICAgIGNvbG9yOiBjb25maWcuY29sb3IsXG4gICAgICB0aW1lT3V0OiBjb25maWcudGltZU91dCxcbiAgICAgIHRpbWVPdXRQcm9ncmVzczogY29uZmlnLnRpbWVPdXRQcm9ncmVzcyA/PyB0cnVlLFxuICAgICAgcGF1c2VPbkhvdmVyOiBjb25maWcucGF1c2VPbkhvdmVyLFxuICAgIH07XG5cbiAgICBjb25zdCBub3RpZmljYXRpb25JZCA9IGBub3RpZmljYXRpb24tJHsrK25vdGlmaWNhdGlvbklkQ291bnRlcn1gO1xuICAgIGxldCBpbnRlcm5hbFJlZjogQVhOb3RpZmljYXRpb25JbnRlcm5hbFJlZjtcblxuICAgIGNvbnN0IGNsb3NlTm90aWZpY2F0aW9uID0gKCkgPT4ge1xuICAgICAgaWYgKGludGVybmFsUmVmKSB7XG4gICAgICAgIGludGVybmFsUmVmLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgICB0aGlzLmFjdGl2ZU5vdGlmaWNhdGlvbnMuc2V0KHRoaXMuYWN0aXZlTm90aWZpY2F0aW9ucygpLmZpbHRlcigobikgPT4gbi5pZCAhPT0gaW50ZXJuYWxSZWYuaWQpKTtcbiAgICAgICAgdGhpcy5oYW5kbGVTaG93UmVzZXJ2ZWROb3RpZmljYXRpb24oKTtcbiAgICAgICAgdGhpcy5oYW5kbGVSZXNlcnZlZE5vdGlmaWNhdGlvbkNvdW50ZXIoKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZXBvc2l0aW9uKGNvbmZpZy5sb2NhdGlvbiwgZ2FwKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMub3ZlcmxheVNlcnZpY2VcbiAgICAgIC5jcmVhdGU8QVhOb3RpZmljYXRpb25Db21wb25lbnQ+KEFYTm90aWZpY2F0aW9uQ29tcG9uZW50LCB7XG4gICAgICAgIGlucHV0czoge1xuICAgICAgICAgIGNvbmZpZzogbm90aWZpY2F0aW9uRGF0YSxcbiAgICAgICAgICBvbkNsb3NlOiBjbG9zZU5vdGlmaWNhdGlvbixcbiAgICAgICAgfSxcbiAgICAgICAgY2VudGVyZWQ6IGZhbHNlLFxuICAgICAgICBwYW5lbENsYXNzOiBbJ2F4LWFuaW1hdGUtYW5pbWF0ZWQnLCAnYXgtYW5pbWF0ZS1mYWRlSW4nLCAnYXgtYW5pbWF0ZS1mYXN0ZXInXSxcbiAgICAgICAgb25EaXNwb3NlOiAoKSA9PiB7XG4gICAgICAgICAgLy8gQ2xlYW4gdXAgd2hlbiBkaXNwb3NlZCBleHRlcm5hbGx5XG4gICAgICAgICAgY29uc3QgY3VycmVudE5vdGlmaWNhdGlvbnMgPSB0aGlzLmFjdGl2ZU5vdGlmaWNhdGlvbnMoKTtcbiAgICAgICAgICBpZiAoaW50ZXJuYWxSZWYgJiYgY3VycmVudE5vdGlmaWNhdGlvbnMuZmluZCgobikgPT4gbi5pZCA9PT0gaW50ZXJuYWxSZWYuaWQpKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZU5vdGlmaWNhdGlvbnMuc2V0KGN1cnJlbnROb3RpZmljYXRpb25zLmZpbHRlcigobikgPT4gbi5pZCAhPT0gaW50ZXJuYWxSZWYuaWQpKTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlU2hvd1Jlc2VydmVkTm90aWZpY2F0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc2VydmVkTm90aWZpY2F0aW9uQ291bnRlcigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICAudGhlbigob3ZlcmxheVJlZikgPT4ge1xuICAgICAgICBpbnRlcm5hbFJlZiA9IHtcbiAgICAgICAgICBpZDogbm90aWZpY2F0aW9uSWQsXG4gICAgICAgICAgb3ZlcmxheVJlZixcbiAgICAgICAgICBjb25maWc6IG5vdGlmaWNhdGlvbkRhdGEsXG4gICAgICAgICAgY2xvc2U6IGNsb3NlTm90aWZpY2F0aW9uLFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIFBvc2l0aW9uIHRoZSBub3RpZmljYXRpb24gQkVGT1JFIGFkZGluZyB0byBhY3RpdmVOb3RpZmljYXRpb25zXG4gICAgICAgIHRoaXMucG9zaXRpb25Ob3RpZmljYXRpb24ob3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudCwgY29uZmlnLmxvY2F0aW9uLCBnYXApO1xuXG4gICAgICAgIHRoaXMuYWN0aXZlTm90aWZpY2F0aW9ucy51cGRhdGUoKHByZXYpID0+IFsuLi5wcmV2LCBpbnRlcm5hbFJlZl0pO1xuICAgICAgICB0aGlzLmhhbmRsZVJlc2VydmVkTm90aWZpY2F0aW9uQ291bnRlcigpO1xuICAgICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY2xvc2U6ICgpID0+IHtcbiAgICAgICAgY2xvc2VOb3RpZmljYXRpb24oKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGhpZGVBbGwoKSB7XG4gICAgdGhpcy5yZXNlcnZlQ291bnRlci5zZXQoMCk7XG4gICAgdGhpcy5yZXNlcnZlZE5vdGlmaWNhdGlvbnMuc2V0KFtdKTtcblxuICAgIC8vIENsb3NlIGFsbCBhY3RpdmUgbm90aWZpY2F0aW9uc1xuICAgIHRoaXMuYWN0aXZlTm90aWZpY2F0aW9ucygpLmZvckVhY2goKG5vdGlmaWNhdGlvbikgPT4ge1xuICAgICAgbm90aWZpY2F0aW9uLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgIH0pO1xuICAgIHRoaXMuYWN0aXZlTm90aWZpY2F0aW9ucy5zZXQoW10pO1xuXG4gICAgLy8gQ2xvc2UgY291bnRlciBub3RpZmljYXRpb24gaWYgZXhpc3RzXG4gICAgY29uc3QgY291bnRlclJlZiA9IHRoaXMubm90aWZpY2F0aW9uQ291bnRlclJlZigpO1xuICAgIGlmIChjb3VudGVyUmVmKSB7XG4gICAgICBjb3VudGVyUmVmLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5ub3RpZmljYXRpb25Db3VudGVyUmVmLnNldChudWxsKTtcbiAgICB9XG5cbiAgICB0aGlzLmhhbmRsZVJlc2VydmVkTm90aWZpY2F0aW9uQ291bnRlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTaG93UmVzZXJ2ZWROb3RpZmljYXRpb24oKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZlTm90aWZpY2F0aW9ucygpLmxlbmd0aCA+IHRoaXMuZGVmYXVsdENvbmZpZy5saW1pdCAtIDEpIHJldHVybjtcbiAgICBpZiAoIXRoaXMucmVzZXJ2ZWROb3RpZmljYXRpb25zKCkubGVuZ3RoKSByZXR1cm47XG5cbiAgICBjb25zdCByZXNlcnZlZCA9IHRoaXMucmVzZXJ2ZWROb3RpZmljYXRpb25zKClbMF07XG4gICAgdGhpcy5yZXNlcnZlZE5vdGlmaWNhdGlvbnMudXBkYXRlKChwcmV2KSA9PiBwcmV2LnNsaWNlKDEpKTtcblxuICAgIGNvbnN0IGRpc3BsYXllZFJlZiA9IHRoaXMuZGlzcGxheU5vdGlmaWNhdGlvbihyZXNlcnZlZC5jb25maWcpO1xuICAgIHRoaXMuaGFuZGxlUmVzZXJ2ZWROb3RpZmljYXRpb25Db3VudGVyKCk7XG4gICAgcmVzZXJ2ZWQucmVzZXJ2ZWRSZWYuY2xvc2UgPSBkaXNwbGF5ZWRSZWYuY2xvc2U7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVJlc2VydmVkTm90aWZpY2F0aW9uQ291bnRlcigpIHtcbiAgICBjb25zdCByZXNlcnZlZENvdW50ID0gdGhpcy5yZXNlcnZlZE5vdGlmaWNhdGlvbnMoKS5sZW5ndGg7XG5cbiAgICBpZiAocmVzZXJ2ZWRDb3VudCA9PT0gdGhpcy5yZXNlcnZlQ291bnRlcigpKSByZXR1cm47XG5cbiAgICB0aGlzLnJlc2VydmVDb3VudGVyLnNldChyZXNlcnZlZENvdW50KTtcblxuICAgIGlmIChyZXNlcnZlZENvdW50ID09PSAwICYmIHRoaXMubm90aWZpY2F0aW9uQ291bnRlclJlZigpICE9PSBudWxsKSB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbkNvdW50ZXJSZWYoKS5jbG9zZSgpO1xuICAgICAgdGhpcy5ub3RpZmljYXRpb25Db3VudGVyUmVmLnNldChudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocmVzZXJ2ZWRDb3VudCA+IDApIHtcbiAgICAgIGlmICh0aGlzLm5vdGlmaWNhdGlvbkNvdW50ZXJSZWYoKSAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkNvdW50ZXJSZWYoKS5jbG9zZSgpO1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkNvdW50ZXJSZWYuc2V0KG51bGwpO1xuICAgICAgfVxuICAgICAgdGhpcy5jcmVhdGVSZXNlcnZlZENvdW50ZXJOb3RpZmljYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZVJlc2VydmVkQ291bnRlck5vdGlmaWNhdGlvbigpIHtcbiAgICBjb25zdCBnYXAgPSB0aGlzLmRlZmF1bHRDb25maWcuZ2FwO1xuICAgIGNvbnN0IG9wdDogQVhOb3RpZmljYXRpb25EYXRhID0ge1xuICAgICAgY2xvc2VCdXR0b246IGZhbHNlLFxuICAgICAgY29sb3I6IHRoaXMubW9yZU5vdGlmaWNhdGlvbnNDb2xvcigpLFxuICAgICAgbG9jYXRpb246IHRoaXMubW9yZU5vdGlmaWNhdGlvbnNMb2NhdGlvbigpLFxuICAgICAgdGl0bGU6IGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdAYWNvcmV4OmNvbW1vbi5ub3RpZmljYXRpb25zLm1vcmUnLCB7XG4gICAgICAgIHBhcmFtczogeyBudW1iZXI6IHRoaXMucmVzZXJ2ZUNvdW50ZXIoKSB9LFxuICAgICAgfSksXG4gICAgICB0aW1lT3V0UHJvZ3Jlc3M6IGZhbHNlLFxuICAgIH07XG5cbiAgICBjb25zdCBub3RpZmljYXRpb25JZCA9IGBub3RpZmljYXRpb24tY291bnRlci0keysrbm90aWZpY2F0aW9uSWRDb3VudGVyfWA7XG4gICAgbGV0IGNvdW50ZXJJbnRlcm5hbFJlZjogQVhOb3RpZmljYXRpb25JbnRlcm5hbFJlZjtcblxuICAgIGNvbnN0IGNsb3NlQ291bnRlciA9ICgpID0+IHtcbiAgICAgIGlmIChjb3VudGVySW50ZXJuYWxSZWYpIHtcbiAgICAgICAgY291bnRlckludGVybmFsUmVmLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgICBpZiAodGhpcy5ub3RpZmljYXRpb25Db3VudGVyUmVmKCk/LmlkID09PSBjb3VudGVySW50ZXJuYWxSZWYuaWQpIHtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkNvdW50ZXJSZWYuc2V0KG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSBhd2FpdCB0aGlzLm92ZXJsYXlTZXJ2aWNlLmNyZWF0ZTxBWE5vdGlmaWNhdGlvbkNvbXBvbmVudD4oQVhOb3RpZmljYXRpb25Db21wb25lbnQsIHtcbiAgICAgIGlucHV0czoge1xuICAgICAgICBjb25maWc6IG9wdCxcbiAgICAgICAgb25DbG9zZTogY2xvc2VDb3VudGVyLFxuICAgICAgfSxcbiAgICAgIGNlbnRlcmVkOiBmYWxzZSxcbiAgICAgIHBhbmVsQ2xhc3M6IFsnYXgtYW5pbWF0ZS1hbmltYXRlZCcsICdheC1hbmltYXRlLWZhZGVJbicsICdheC1hbmltYXRlLWZhc3RlciddLFxuICAgIH0pO1xuXG4gICAgY291bnRlckludGVybmFsUmVmID0ge1xuICAgICAgaWQ6IG5vdGlmaWNhdGlvbklkLFxuICAgICAgb3ZlcmxheVJlZixcbiAgICAgIGNvbmZpZzogb3B0LFxuICAgICAgY2xvc2U6IGNsb3NlQ291bnRlcixcbiAgICB9O1xuXG4gICAgdGhpcy5ub3RpZmljYXRpb25Db3VudGVyUmVmLnNldChjb3VudGVySW50ZXJuYWxSZWYpO1xuXG4gICAgLy8gUG9zaXRpb24gdGhlIGNvdW50ZXIgbm90aWZpY2F0aW9uXG4gICAgdGhpcy5wb3NpdGlvbk5vdGlmaWNhdGlvbihvdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LCBvcHQubG9jYXRpb24sIGdhcCk7XG4gIH1cblxuICBwcml2YXRlIHBvc2l0aW9uTm90aWZpY2F0aW9uKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBsb2NhdGlvbjogQVhMb2NhdGlvbiwgZ2FwOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIWVsZW1lbnQpIHJldHVybjtcblxuICAgIGNvbnN0IHBvcyA9IHRoaXMuZ2V0UG9zaXRpb24obG9jYXRpb24pICsgZ2FwO1xuXG4gICAgLy8gT3ZlcnJpZGUgdGhlIGNlbnRlcmVkIG92ZXJsYXkgY29udGFpbmVyIHN0eWxlcyBmb3Igbm90aWZpY2F0aW9uIHBvc2l0aW9uaW5nXG4gICAgZWxlbWVudC5zdHlsZS53aWR0aCA9ICdtYXgtY29udGVudCc7XG4gICAgZWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnYXV0byc7XG4gICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICBlbGVtZW50LnN0eWxlLmFsaWduSXRlbXMgPSAnJztcbiAgICBlbGVtZW50LnN0eWxlLmp1c3RpZnlDb250ZW50ID0gJyc7XG5cbiAgICAvLyBSZXNldCBhbGwgcG9zaXRpb25pbmcgc3R5bGVzXG4gICAgZWxlbWVudC5zdHlsZS50b3AgPSAnJztcbiAgICBlbGVtZW50LnN0eWxlLmJvdHRvbSA9ICcnO1xuICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9ICcnO1xuICAgIGVsZW1lbnQuc3R5bGUucmlnaHQgPSAnJztcbiAgICBlbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9ICcnO1xuXG4gICAgLy8gQXBwbHkgcG9zaXRpb24gYmFzZWQgb24gbG9jYXRpb25cbiAgICBzd2l0Y2ggKGxvY2F0aW9uKSB7XG4gICAgICBjYXNlICdib3R0b20tY2VudGVyJzpcbiAgICAgICAgZWxlbWVudC5zdHlsZS5ib3R0b20gPSBwb3MgKyAncHgnO1xuICAgICAgICBlbGVtZW50LnN0eWxlLmxlZnQgPSAnNTAlJztcbiAgICAgICAgZWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlWCgtNTAlKSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYm90dG9tLWVuZCc6XG4gICAgICAgIGVsZW1lbnQuc3R5bGUuYm90dG9tID0gcG9zICsgJ3B4JztcbiAgICAgICAgZWxlbWVudC5zdHlsZS5yaWdodCA9IGdhcCArICdweCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYm90dG9tLXN0YXJ0JzpcbiAgICAgICAgZWxlbWVudC5zdHlsZS5ib3R0b20gPSBwb3MgKyAncHgnO1xuICAgICAgICBlbGVtZW50LnN0eWxlLmxlZnQgPSBnYXAgKyAncHgnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RvcC1jZW50ZXInOlxuICAgICAgICBlbGVtZW50LnN0eWxlLnRvcCA9IHBvcyArICdweCc7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9ICc1MCUnO1xuICAgICAgICBlbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGVYKC01MCUpJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b3AtZW5kJzpcbiAgICAgICAgZWxlbWVudC5zdHlsZS50b3AgPSBwb3MgKyAncHgnO1xuICAgICAgICBlbGVtZW50LnN0eWxlLnJpZ2h0ID0gZ2FwICsgJ3B4JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b3Atc3RhcnQnOlxuICAgICAgICBlbGVtZW50LnN0eWxlLnRvcCA9IHBvcyArICdweCc7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9IGdhcCArICdweCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2VudGVyLXN0YXJ0JzpcbiAgICAgICAgZWxlbWVudC5zdHlsZS50b3AgPSAnNTAlJztcbiAgICAgICAgZWxlbWVudC5zdHlsZS5sZWZ0ID0gZ2FwICsgJ3B4JztcbiAgICAgICAgZWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlWSgtNTAlKSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2VudGVyLWVuZCc6XG4gICAgICAgIGVsZW1lbnQuc3R5bGUudG9wID0gJzUwJSc7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUucmlnaHQgPSBnYXAgKyAncHgnO1xuICAgICAgICBlbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGVZKC01MCUpJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXBvc2l0aW9uKG5vdGlmaWNhdGlvbkxvY2F0aW9uOiBBWExvY2F0aW9uLCBnYXA6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmFjdGl2ZU5vdGlmaWNhdGlvbnMoKS5maWx0ZXIoKG4pID0+IG4uY29uZmlnPy5sb2NhdGlvbiA9PT0gbm90aWZpY2F0aW9uTG9jYXRpb24pO1xuXG4gICAgbGlzdC5mb3JFYWNoKChub3RpZmljYXRpb24sIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gbm90aWZpY2F0aW9uLm92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQ7XG4gICAgICBpZiAoIWVsZW1lbnQpIHJldHVybjtcblxuICAgICAgY29uc3QgcG9zID0gdGhpcy5nZXRSZXBvc2l0aW9uUG9zaXRpb24oaW5kZXgsIGdhcCwgbGlzdCwgbm90aWZpY2F0aW9uTG9jYXRpb24pO1xuICAgICAgdGhpcy5hcHBseVJlcG9zaXRpb25Qb3NpdGlvbihlbGVtZW50LCBub3RpZmljYXRpb25Mb2NhdGlvbiwgcG9zLCBnYXApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZXBvc2l0aW9uUG9zaXRpb24oXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBnYXA6IG51bWJlcixcbiAgICBsaXN0OiBBWE5vdGlmaWNhdGlvbkludGVybmFsUmVmW10sXG4gICAgbm90aWZpY2F0aW9uTG9jYXRpb246IHN0cmluZyxcbiAgKTogbnVtYmVyIHtcbiAgICBpZiAoaW5kZXggPT09IDApIHJldHVybiBnYXA7XG4gICAgY29uc3QgcHJldmlvdXNOb3RpZmljYXRpb24gPSBsaXN0W2luZGV4IC0gMV07XG4gICAgY29uc3QgcHJldmlvdXNFbGVtZW50ID0gcHJldmlvdXNOb3RpZmljYXRpb24ub3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudDtcbiAgICBpZiAoIXByZXZpb3VzRWxlbWVudCkgcmV0dXJuIGdhcDtcblxuICAgIGlmIChub3RpZmljYXRpb25Mb2NhdGlvbi5zcGxpdCgnLScpWzBdID09PSAnYm90dG9tJykge1xuICAgICAgcmV0dXJuIHdpbmRvdy5pbm5lckhlaWdodCAtIHByZXZpb3VzRWxlbWVudC5vZmZzZXRUb3AgKyBnYXA7XG4gICAgfVxuICAgIHJldHVybiBwcmV2aW91c0VsZW1lbnQub2Zmc2V0VG9wICsgcHJldmlvdXNFbGVtZW50Lm9mZnNldEhlaWdodCArIGdhcDtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlSZXBvc2l0aW9uUG9zaXRpb24oZWxlbWVudDogSFRNTEVsZW1lbnQsIGxvY2F0aW9uOiBBWExvY2F0aW9uLCBwb3M6IG51bWJlciwgZ2FwOiBudW1iZXIpOiB2b2lkIHtcbiAgICAvLyBSZXNldCB0cmFuc2Zvcm0gaWYgbmVlZGVkLCB0aGVuIGFwcGx5IHBvc2l0aW9uXG4gICAgY29uc3QgaXNWZXJ0aWNhbENlbnRlciA9IGxvY2F0aW9uID09PSAnY2VudGVyLXN0YXJ0JyB8fCBsb2NhdGlvbiA9PT0gJ2NlbnRlci1lbmQnO1xuICAgIGNvbnN0IGlzSG9yaXpvbnRhbENlbnRlciA9IGxvY2F0aW9uID09PSAnYm90dG9tLWNlbnRlcicgfHwgbG9jYXRpb24gPT09ICd0b3AtY2VudGVyJztcblxuICAgIGlmIChsb2NhdGlvbi5zdGFydHNXaXRoKCdib3R0b20nKSkge1xuICAgICAgZWxlbWVudC5zdHlsZS5ib3R0b20gPSBwb3MgKyAncHgnO1xuICAgICAgZWxlbWVudC5zdHlsZS50b3AgPSAnJztcbiAgICAgIGlmIChpc0hvcml6b250YWxDZW50ZXIpIHtcbiAgICAgICAgZWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlWCgtNTAlKSc7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChsb2NhdGlvbi5zdGFydHNXaXRoKCd0b3AnKSkge1xuICAgICAgZWxlbWVudC5zdHlsZS50b3AgPSBwb3MgKyAncHgnO1xuICAgICAgZWxlbWVudC5zdHlsZS5ib3R0b20gPSAnJztcbiAgICAgIGlmIChpc0hvcml6b250YWxDZW50ZXIpIHtcbiAgICAgICAgZWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlWCgtNTAlKSc7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpc1ZlcnRpY2FsQ2VudGVyKSB7XG4gICAgICBlbGVtZW50LnN0eWxlLnRvcCA9IHBvcyArICdweCc7XG4gICAgICBlbGVtZW50LnN0eWxlLmJvdHRvbSA9ICcnO1xuICAgICAgZWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSAnJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFBvc2l0aW9uKGxvY2F0aW9uOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmFjdGl2ZU5vdGlmaWNhdGlvbnMoKS5maWx0ZXIoKG4pID0+IG4uY29uZmlnPy5sb2NhdGlvbiA9PT0gbG9jYXRpb24pO1xuICAgIGlmIChsaXN0Lmxlbmd0aCA9PT0gMCkgcmV0dXJuIDA7XG5cbiAgICBjb25zdCBsYXN0Tm90aWZpY2F0aW9uID0gbGlzdFtsaXN0Lmxlbmd0aCAtIDFdO1xuICAgIGNvbnN0IGVsZW1lbnQgPSBsYXN0Tm90aWZpY2F0aW9uLm92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQ7XG4gICAgaWYgKCFlbGVtZW50KSByZXR1cm4gMDtcblxuICAgIGlmIChsb2NhdGlvbi5zcGxpdCgnLScpWzBdID09PSAnYm90dG9tJykge1xuICAgICAgcmV0dXJuIHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnQub2Zmc2V0VG9wO1xuICAgIH1cbiAgICByZXR1cm4gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgfVxufVxuIl19","import { AXClosableComponent, AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorCloseButtonComponent } from '@acorex/components/decorators';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input, signal, TemplateRef, ViewEncapsulation, } from '@angular/core';\nimport { AXNotificationService } from './notification.service';\nimport * as i0 from \"@angular/core\";\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\nexport class AXNotificationComponent extends MXBaseComponent {\n constructor() {\n super(...arguments);\n /** Notification configuration data */\n this.config = input.required(...(ngDevMode ? [{ debugName: \"config\" }] : []));\n /** @internal Callback function to close the notification */\n this.onClose = input(...(ngDevMode ? [undefined, { debugName: \"onClose\" }] : []));\n this.notificationService = inject(AXNotificationService);\n this.isPaused = signal(false, ...(ngDevMode ? [{ debugName: \"isPaused\" }] : []));\n this.remainingTime = signal(0, ...(ngDevMode ? [{ debugName: \"remainingTime\" }] : []));\n this.transitionDuration = signal(150, ...(ngDevMode ? [{ debugName: \"transitionDuration\" }] : []));\n /** Template content if config.content is a TemplateRef */\n this.templateContent = computed(() => {\n const content = this.config().content;\n return content instanceof TemplateRef ? content : null;\n }, ...(ngDevMode ? [{ debugName: \"templateContent\" }] : []));\n /** Component content if config.content is a component Type */\n this.componentContent = computed(() => {\n const content = this.config().content;\n return typeof content === 'function' ? content : null;\n }, ...(ngDevMode ? [{ debugName: \"componentContent\" }] : []));\n /** String content if config.content is a string */\n this.stringContent = computed(() => {\n const content = this.config().content;\n return typeof content === 'string' ? content : '';\n }, ...(ngDevMode ? [{ debugName: \"stringContent\" }] : []));\n }\n ngOnInit() {\n super.ngOnInit();\n this._initIcon();\n this.remainingTime.set(this.config().timeOut);\n this._handleTimeOut();\n this.getHostElement().addEventListener('pointerenter', () => {\n if (!this.config().pauseOnHover)\n return;\n if (this.isPaused())\n return;\n // Only pause if not already paused\n this.isPaused.set(true);\n this.pauseAnimation();\n });\n this.getHostElement().addEventListener('pointerleave', () => {\n if (!this.config().pauseOnHover)\n return;\n if (!this.isPaused())\n return;\n // Only resume if paused\n this.isPaused.set(false);\n this._handleTimeOut();\n });\n }\n pauseAnimation() {\n clearInterval(this.intervalId);\n }\n _handleTimeOut() {\n if (this.config().timeOut) {\n this.intervalId = setInterval(() => {\n this.remainingTime.update((prev) => prev - this.transitionDuration());\n if (this.remainingTime() <= 0) {\n clearInterval(this.intervalId);\n this.close();\n }\n }, this.transitionDuration());\n }\n }\n /** @ignore */\n _initIcon() {\n if (!this.config().icon) {\n switch (this.config().color) {\n case 'success':\n this._icon = 'ax-icon ax-icon-check-circle';\n break;\n case 'danger':\n this._icon = 'ax-icon ax-icon-error';\n break;\n case 'warning':\n this._icon = 'ax-icon ax-icon-warning';\n break;\n default:\n this._icon = this.config().icon || 'ax-icon ax-icon-info';\n break;\n }\n }\n else {\n this._icon = this.config().icon;\n }\n }\n /** @ignore */\n _handleButtonClick(button) {\n if (button.onClick) {\n button.onClick({ source: button });\n }\n }\n /**\n * Closes the notification.\n */\n close() {\n const closeCallback = this.onClose();\n if (closeCallback) {\n closeCallback();\n }\n }\n /**\n * Closes all notifications.\n */\n closeAll() {\n this.notificationService.hideAll();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXNotificationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", type: AXNotificationComponent, isStandalone: true, selector: \"ax-notification\", inputs: { config: { classPropertyName: \"config\", publicName: \"config\", isSignal: true, isRequired: true, transformFunction: null }, onClose: { classPropertyName: \"onClose\", publicName: \"onClose\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"class\": \"\\\"ax-\\\" + config().color\" } }, providers: [\n { provide: AXClosableComponent, useExisting: AXNotificationComponent },\n { provide: AXComponent, useExisting: AXNotificationComponent },\n ], usesInheritance: true, ngImport: i0, template: \"<span class=\\\"ax-notification-icon ax-icon-solid {{ _icon }}\\\"></span>\\n<div class=\\\"ax-notification-content\\\">\\n <div class=\\\"ax-notification-title\\\">{{ config().title | translate | async }}</div>\\n @if (templateContent()) {\\n <ng-container *ngTemplateOutlet=\\\"templateContent()\\\"></ng-container>\\n } @else if (componentContent()) {\\n <ng-container *ngComponentOutlet=\\\"componentContent()\\\"></ng-container>\\n } @else {\\n <div>{{ stringContent() | translate | async }}</div>\\n }\\n\\n @if (config().buttons?.length) {\\n <div class=\\\"ax-notification-buttons\\\">\\n @for (button of config().buttons; track $index) {\\n <ax-button\\n class=\\\"ax-xs\\\"\\n [text]=\\\"button.text | translate | async\\\"\\n [color]=\\\"button.color\\\"\\n [look]=\\\"button.look\\\"\\n [disabled]=\\\"button.disabled\\\"\\n (onClick)=\\\"_handleButtonClick(button)\\\"\\n >\\n @if (button.loading) {\\n <ax-loading></ax-loading>\\n }\\n </ax-button>\\n }\\n </div>\\n }\\n</div>\\n@if (config().closeButton) {\\n <ax-close-button></ax-close-button>\\n}\\n@if (config().timeOutProgress && config().timeOut && remainingTime()) {\\n <div\\n class=\\\"ax-notification-progress\\\"\\n [style.transition-duration]=\\\"transitionDuration()\\\"\\n [style.width]=\\\"(remainingTime() * 100) / config().timeOut + '%'\\\"\\n ></div>\\n}\\n\", styles: [\"ax-notification.ax-default{--ax-comp-notification-icon-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-surface)}.ax-dark ax-notification.ax-default{--ax-comp-notification-icon-text-color: var(--ax-sys-color-on-darkest-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-lightest-surface)}ax-notification.ax-primary{--ax-comp-notification-icon-text-color: var(--ax-sys-color-primary-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-primary-surface)}ax-notification.ax-secondary{--ax-comp-notification-icon-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-secondary-surface)}ax-notification.ax-success{--ax-comp-notification-icon-text-color: var(--ax-sys-color-success-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-success-surface)}ax-notification.ax-warning{--ax-comp-notification-icon-text-color: var(--ax-sys-color-warning-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-warning-surface)}ax-notification.ax-danger{--ax-comp-notification-icon-text-color: var(--ax-sys-color-danger-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-danger-surface)}ax-notification.ax-accent1{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent1-surface)}ax-notification.ax-accent2{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent2-surface)}ax-notification.ax-accent3{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent3-surface)}ax-notification.ax-accent4{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent4-surface)}ax-notification.ax-accent5{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent5-surface)}ax-notification.ax-accent6{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent6-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent6-surface)}ax-notification.ax-accent7{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent7-surface)}ax-notification{position:relative;display:flex;width:98vw;overflow:hidden;padding:1rem;--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);background-color:rgba(var(--ax-comp-notification-bg-color, var(--ax-sys-color-lightest-surface)));font-size:var(--ax-comp-notification-font-size, .875rem);line-height:var(--ax-comp-notification-line-height, 1.25rem);border-width:var(--ax-comp-notification-border-width, 1px);border-color:rgba(var(--ax-comp-notification-border-color, var(--ax-sys-color-border-lightest-surface)));border-radius:var(--ax-comp-notification-border-radius, var(--ax-sys-border-radius))}@media (min-width: 768px){ax-notification{width:24rem}}ax-notification .ax-notification-icon,ax-notification .ax-icon-close{font-size:1.25rem;line-height:1.75rem;max-width:fit-content;align-items:flex-start}ax-notification .ax-notification-icon{color:rgba(var(--ax-comp-notification-icon-text-color));padding-inline-end:.75rem}ax-notification .ax-notification-content{display:flex;flex:1 1 0%;flex-direction:column;font-weight:400;justify-content:center;color:rgba(var(--ax-comp-notification-text-color, var(--ax-sys-color-on-surface)))}ax-notification .ax-notification-content .ax-notification-title{font-weight:500;line-height:1.5}ax-notification .ax-notification-content .ax-notification-buttons{margin-top:.75rem;display:flex;gap:.75rem}ax-notification .ax-notification-progress{width:100%;bottom:0;height:.25rem;position:absolute;inset-inline-end:0px;inset-inline-start:0px;transition-property:width;transition-timing-function:linear;transition-duration:var(--ax-sys-transition-duration);background-color:rgba(var(--ax-comp-notification-progress-bg-color, 255, 255, 255, .46))}.ax-dark ax-notification{--ax-comp-notification-bg-color: var(--ax-sys-color-darkest-surface);--ax-comp-notification-border-color: var(--ax-sys-color-border-darkest-surface)}\\n\"], dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: NgComponentOutlet, selector: \"[ngComponentOutlet]\", inputs: [\"ngComponentOutlet\", \"ngComponentOutletInputs\", \"ngComponentOutletInjector\", \"ngComponentOutletEnvironmentInjector\", \"ngComponentOutletContent\", \"ngComponentOutletNgModule\", \"ngComponentOutletNgModuleFactory\"], exportAs: [\"ngComponentOutlet\"] }, { kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"component\", type: AXDecoratorCloseButtonComponent, selector: \"ax-close-button\", inputs: [\"closeAll\", \"icon\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXNotificationComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-notification', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n '[class]': '\"ax-\" + config().color',\n }, providers: [\n { provide: AXClosableComponent, useExisting: AXNotificationComponent },\n { provide: AXComponent, useExisting: AXNotificationComponent },\n ], imports: [\n NgTemplateOutlet,\n NgComponentOutlet,\n AXButtonComponent,\n AXLoadingComponent,\n AXDecoratorCloseButtonComponent,\n AsyncPipe,\n AXTranslatorPipe,\n ], template: \"<span class=\\\"ax-notification-icon ax-icon-solid {{ _icon }}\\\"></span>\\n<div class=\\\"ax-notification-content\\\">\\n <div class=\\\"ax-notification-title\\\">{{ config().title | translate | async }}</div>\\n @if (templateContent()) {\\n <ng-container *ngTemplateOutlet=\\\"templateContent()\\\"></ng-container>\\n } @else if (componentContent()) {\\n <ng-container *ngComponentOutlet=\\\"componentContent()\\\"></ng-container>\\n } @else {\\n <div>{{ stringContent() | translate | async }}</div>\\n }\\n\\n @if (config().buttons?.length) {\\n <div class=\\\"ax-notification-buttons\\\">\\n @for (button of config().buttons; track $index) {\\n <ax-button\\n class=\\\"ax-xs\\\"\\n [text]=\\\"button.text | translate | async\\\"\\n [color]=\\\"button.color\\\"\\n [look]=\\\"button.look\\\"\\n [disabled]=\\\"button.disabled\\\"\\n (onClick)=\\\"_handleButtonClick(button)\\\"\\n >\\n @if (button.loading) {\\n <ax-loading></ax-loading>\\n }\\n </ax-button>\\n }\\n </div>\\n }\\n</div>\\n@if (config().closeButton) {\\n <ax-close-button></ax-close-button>\\n}\\n@if (config().timeOutProgress && config().timeOut && remainingTime()) {\\n <div\\n class=\\\"ax-notification-progress\\\"\\n [style.transition-duration]=\\\"transitionDuration()\\\"\\n [style.width]=\\\"(remainingTime() * 100) / config().timeOut + '%'\\\"\\n ></div>\\n}\\n\", styles: [\"ax-notification.ax-default{--ax-comp-notification-icon-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-surface)}.ax-dark ax-notification.ax-default{--ax-comp-notification-icon-text-color: var(--ax-sys-color-on-darkest-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-lightest-surface)}ax-notification.ax-primary{--ax-comp-notification-icon-text-color: var(--ax-sys-color-primary-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-primary-surface)}ax-notification.ax-secondary{--ax-comp-notification-icon-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-secondary-surface)}ax-notification.ax-success{--ax-comp-notification-icon-text-color: var(--ax-sys-color-success-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-success-surface)}ax-notification.ax-warning{--ax-comp-notification-icon-text-color: var(--ax-sys-color-warning-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-warning-surface)}ax-notification.ax-danger{--ax-comp-notification-icon-text-color: var(--ax-sys-color-danger-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-danger-surface)}ax-notification.ax-accent1{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent1-surface)}ax-notification.ax-accent2{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent2-surface)}ax-notification.ax-accent3{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent3-surface)}ax-notification.ax-accent4{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent4-surface)}ax-notification.ax-accent5{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent5-surface)}ax-notification.ax-accent6{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent6-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent6-surface)}ax-notification.ax-accent7{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent7-surface)}ax-notification{position:relative;display:flex;width:98vw;overflow:hidden;padding:1rem;--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);background-color:rgba(var(--ax-comp-notification-bg-color, var(--ax-sys-color-lightest-surface)));font-size:var(--ax-comp-notification-font-size, .875rem);line-height:var(--ax-comp-notification-line-height, 1.25rem);border-width:var(--ax-comp-notification-border-width, 1px);border-color:rgba(var(--ax-comp-notification-border-color, var(--ax-sys-color-border-lightest-surface)));border-radius:var(--ax-comp-notification-border-radius, var(--ax-sys-border-radius))}@media (min-width: 768px){ax-notification{width:24rem}}ax-notification .ax-notification-icon,ax-notification .ax-icon-close{font-size:1.25rem;line-height:1.75rem;max-width:fit-content;align-items:flex-start}ax-notification .ax-notification-icon{color:rgba(var(--ax-comp-notification-icon-text-color));padding-inline-end:.75rem}ax-notification .ax-notification-content{display:flex;flex:1 1 0%;flex-direction:column;font-weight:400;justify-content:center;color:rgba(var(--ax-comp-notification-text-color, var(--ax-sys-color-on-surface)))}ax-notification .ax-notification-content .ax-notification-title{font-weight:500;line-height:1.5}ax-notification .ax-notification-content .ax-notification-buttons{margin-top:.75rem;display:flex;gap:.75rem}ax-notification .ax-notification-progress{width:100%;bottom:0;height:.25rem;position:absolute;inset-inline-end:0px;inset-inline-start:0px;transition-property:width;transition-timing-function:linear;transition-duration:var(--ax-sys-transition-duration);background-color:rgba(var(--ax-comp-notification-progress-bg-color, 255, 255, 255, .46))}.ax-dark ax-notification{--ax-comp-notification-bg-color: var(--ax-sys-color-darkest-surface);--ax-comp-notification-border-color: var(--ax-sys-color-border-darkest-surface)}\\n\"] }]\n }], propDecorators: { config: [{ type: i0.Input, args: [{ isSignal: true, alias: \"config\", required: true }] }], onClose: [{ type: i0.Input, args: [{ isSignal: true, alias: \"onClose\", required: false }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL3NyYy9saWIvbm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL3NyYy9saWIvbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pGLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFDTixXQUFXLEVBRVgsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUUvRDs7OztHQUlHO0FBd0JILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxlQUFlO0lBdkI1RDs7UUF3QkUsc0NBQXNDO1FBQ3RDLFdBQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxpREFBc0IsQ0FBQztRQUU5Qyw0REFBNEQ7UUFDNUQsWUFBTyxHQUFHLEtBQUssNkRBQWMs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RUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0gsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3JDLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsYUFBYSxFQUFFLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDckMsQ0FBQzsrR0F0SFUsdUJBQXVCO21HQUF2Qix1QkFBdUIsaVlBZHZCO1lBQ1QsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFO1lBQ3RFLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUU7U0FDL0QsaURDdENILCsyQ0F3Q0EsMm1KREFJLGdCQUFnQixvSkFDaEIsaUJBQWlCLDZUQUNqQixpQkFBaUIsMlVBQ2pCLGtCQUFrQiwySEFDbEIsK0JBQStCLHFGQUMvQixTQUFTLHlDQUNULGdCQUFnQjs7NEZBR1AsdUJBQXVCO2tCQXZCbkMsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixTQUFTLEVBQUUsd0JBQXdCO3FCQUNwQyxhQUNVO3dCQUNULEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcseUJBQXlCLEVBQUU7d0JBQ3RFLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLHlCQUF5QixFQUFFO3FCQUMvRCxXQUNRO3dCQUNQLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsK0JBQStCO3dCQUMvQixTQUFTO3dCQUNULGdCQUFnQjtxQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENsb3NhYmxlQ29tcG9uZW50LCBBWENvbXBvbmVudCwgTVhCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvckNsb3NlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yUGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBc3luY1BpcGUsIE5nQ29tcG9uZW50T3V0bGV0LCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBPbkluaXQsXG4gIHNpZ25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIFR5cGUsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYTm90aWZpY2F0aW9uQnV0dG9uSXRlbSwgQVhOb3RpZmljYXRpb25EYXRhIH0gZnJvbSAnLi9ub3RpZmljYXRpb24uY2xhc3MnO1xuaW1wb3J0IHsgQVhOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9ub3RpZmljYXRpb24uc2VydmljZSc7XG5cbi8qKlxuICogVGhlIEJ1dHRvbiBpcyBhIGNvbXBvbmVudCB3aGljaCBkZXRlY3RzIHVzZXIgaW50ZXJhY3Rpb24gYW5kIHRyaWdnZXJzIGEgY29ycmVzcG9uZGluZyBldmVudFxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LW5vdGlmaWNhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ub3RpZmljYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzXSc6ICdcImF4LVwiICsgY29uZmlnKCkuY29sb3InLFxuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ2xvc2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWE5vdGlmaWNhdGlvbkNvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWE5vdGlmaWNhdGlvbkNvbXBvbmVudCB9LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBOZ0NvbXBvbmVudE91dGxldCxcbiAgICBBWEJ1dHRvbkNvbXBvbmVudCxcbiAgICBBWExvYWRpbmdDb21wb25lbnQsXG4gICAgQVhEZWNvcmF0b3JDbG9zZUJ1dHRvbkNvbXBvbmVudCxcbiAgICBBc3luY1BpcGUsXG4gICAgQVhUcmFuc2xhdG9yUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhOb3RpZmljYXRpb25Db21wb25lbnQgZXh0ZW5kcyBNWEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKiogTm90aWZpY2F0aW9uIGNvbmZpZ3VyYXRpb24gZGF0YSAqL1xuICBjb25maWcgPSBpbnB1dC5yZXF1aXJlZDxBWE5vdGlmaWNhdGlvbkRhdGE+KCk7XG5cbiAgLyoqIEBpbnRlcm5hbCBDYWxsYmFjayBmdW5jdGlvbiB0byBjbG9zZSB0aGUgbm90aWZpY2F0aW9uICovXG4gIG9uQ2xvc2UgPSBpbnB1dDwoKSA9PiB2b2lkPigpO1xuXG4gIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZSA9IGluamVjdChBWE5vdGlmaWNhdGlvblNlcnZpY2UpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBfaWNvbjogc3RyaW5nO1xuXG4gIHByaXZhdGUgaW50ZXJ2YWxJZDogbnVtYmVyO1xuICBwcml2YXRlIGlzUGF1c2VkID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlbWFpbmluZ1RpbWUgPSBzaWduYWwoMCk7XG4gIHByb3RlY3RlZCB0cmFuc2l0aW9uRHVyYXRpb24gPSBzaWduYWwoMTUwKTtcblxuICAvKiogVGVtcGxhdGUgY29udGVudCBpZiBjb25maWcuY29udGVudCBpcyBhIFRlbXBsYXRlUmVmICovXG4gIHByb3RlY3RlZCB0ZW1wbGF0ZUNvbnRlbnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuY29uZmlnKCkuY29udGVudDtcbiAgICByZXR1cm4gY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmID8gY29udGVudCA6IG51bGw7XG4gIH0pO1xuXG4gIC8qKiBDb21wb25lbnQgY29udGVudCBpZiBjb25maWcuY29udGVudCBpcyBhIGNvbXBvbmVudCBUeXBlICovXG4gIHByb3RlY3RlZCBjb21wb25lbnRDb250ZW50ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmNvbmZpZygpLmNvbnRlbnQ7XG4gICAgcmV0dXJuIHR5cGVvZiBjb250ZW50ID09PSAnZnVuY3Rpb24nID8gKGNvbnRlbnQgYXMgVHlwZTx1bmtub3duPikgOiBudWxsO1xuICB9KTtcblxuICAvKiogU3RyaW5nIGNvbnRlbnQgaWYgY29uZmlnLmNvbnRlbnQgaXMgYSBzdHJpbmcgKi9cbiAgcHJvdGVjdGVkIHN0cmluZ0NvbnRlbnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuY29uZmlnKCkuY29udGVudDtcbiAgICByZXR1cm4gdHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnID8gY29udGVudCA6ICcnO1xuICB9KTtcblxuICBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuX2luaXRJY29uKCk7XG4gICAgdGhpcy5yZW1haW5pbmdUaW1lLnNldCh0aGlzLmNvbmZpZygpLnRpbWVPdXQpO1xuICAgIHRoaXMuX2hhbmRsZVRpbWVPdXQoKTtcblxuICAgIHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZW50ZXInLCAoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuY29uZmlnKCkucGF1c2VPbkhvdmVyKSByZXR1cm47XG4gICAgICBpZiAodGhpcy5pc1BhdXNlZCgpKSByZXR1cm47XG4gICAgICAvLyBPbmx5IHBhdXNlIGlmIG5vdCBhbHJlYWR5IHBhdXNlZFxuICAgICAgdGhpcy5pc1BhdXNlZC5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLnBhdXNlQW5pbWF0aW9uKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmdldEhvc3RFbGVtZW50KCkuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmxlYXZlJywgKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmNvbmZpZygpLnBhdXNlT25Ib3ZlcikgcmV0dXJuO1xuICAgICAgaWYgKCF0aGlzLmlzUGF1c2VkKCkpIHJldHVybjtcbiAgICAgIC8vIE9ubHkgcmVzdW1lIGlmIHBhdXNlZFxuICAgICAgdGhpcy5pc1BhdXNlZC5zZXQoZmFsc2UpO1xuICAgICAgdGhpcy5faGFuZGxlVGltZU91dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXVzZUFuaW1hdGlvbigpIHtcbiAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxJZCk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVUaW1lT3V0KCkge1xuICAgIGlmICh0aGlzLmNvbmZpZygpLnRpbWVPdXQpIHtcbiAgICAgIHRoaXMuaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgdGhpcy5yZW1haW5pbmdUaW1lLnVwZGF0ZSgocHJldikgPT4gcHJldiAtIHRoaXMudHJhbnNpdGlvbkR1cmF0aW9uKCkpO1xuICAgICAgICBpZiAodGhpcy5yZW1haW5pbmdUaW1lKCkgPD0gMCkge1xuICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElkKTtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0sIHRoaXMudHJhbnNpdGlvbkR1cmF0aW9uKCkpIGFzIHVua25vd24gYXMgbnVtYmVyO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2luaXRJY29uKCkge1xuICAgIGlmICghdGhpcy5jb25maWcoKS5pY29uKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuY29uZmlnKCkuY29sb3IpIHtcbiAgICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgICAgdGhpcy5faWNvbiA9ICdheC1pY29uIGF4LWljb24tY2hlY2stY2lyY2xlJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZGFuZ2VyJzpcbiAgICAgICAgICB0aGlzLl9pY29uID0gJ2F4LWljb24gYXgtaWNvbi1lcnJvcic7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3dhcm5pbmcnOlxuICAgICAgICAgIHRoaXMuX2ljb24gPSAnYXgtaWNvbiBheC1pY29uLXdhcm5pbmcnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRoaXMuX2ljb24gPSB0aGlzLmNvbmZpZygpLmljb24gfHwgJ2F4LWljb24gYXgtaWNvbi1pbmZvJztcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5faWNvbiA9IHRoaXMuY29uZmlnKCkuaWNvbjtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZUJ1dHRvbkNsaWNrKGJ1dHRvbjogQVhOb3RpZmljYXRpb25CdXR0b25JdGVtKSB7XG4gICAgaWYgKGJ1dHRvbi5vbkNsaWNrKSB7XG4gICAgICBidXR0b24ub25DbGljayh7IHNvdXJjZTogYnV0dG9uIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG5vdGlmaWNhdGlvbi5cbiAgICovXG4gIGNsb3NlKCkge1xuICAgIGNvbnN0IGNsb3NlQ2FsbGJhY2sgPSB0aGlzLm9uQ2xvc2UoKTtcbiAgICBpZiAoY2xvc2VDYWxsYmFjaykge1xuICAgICAgY2xvc2VDYWxsYmFjaygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgYWxsIG5vdGlmaWNhdGlvbnMuXG4gICAqL1xuICBjbG9zZUFsbCgpIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuaGlkZUFsbCgpO1xuICB9XG59XG4iLCI8c3BhbiBjbGFzcz1cImF4LW5vdGlmaWNhdGlvbi1pY29uIGF4LWljb24tc29saWQge3sgX2ljb24gfX1cIj48L3NwYW4+XG48ZGl2IGNsYXNzPVwiYXgtbm90aWZpY2F0aW9uLWNvbnRlbnRcIj5cbiAgPGRpdiBjbGFzcz1cImF4LW5vdGlmaWNhdGlvbi10aXRsZVwiPnt7IGNvbmZpZygpLnRpdGxlIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2Rpdj5cbiAgQGlmICh0ZW1wbGF0ZUNvbnRlbnQoKSkge1xuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZUNvbnRlbnQoKVwiPjwvbmctY29udGFpbmVyPlxuICB9IEBlbHNlIGlmIChjb21wb25lbnRDb250ZW50KCkpIHtcbiAgICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cImNvbXBvbmVudENvbnRlbnQoKVwiPjwvbmctY29udGFpbmVyPlxuICB9IEBlbHNlIHtcbiAgICA8ZGl2Pnt7IHN0cmluZ0NvbnRlbnQoKSB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9kaXY+XG4gIH1cblxuICBAaWYgKGNvbmZpZygpLmJ1dHRvbnM/Lmxlbmd0aCkge1xuICAgIDxkaXYgY2xhc3M9XCJheC1ub3RpZmljYXRpb24tYnV0dG9uc1wiPlxuICAgICAgQGZvciAoYnV0dG9uIG9mIGNvbmZpZygpLmJ1dHRvbnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8YXgtYnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJheC14c1wiXG4gICAgICAgICAgW3RleHRdPVwiYnV0dG9uLnRleHQgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgW2NvbG9yXT1cImJ1dHRvbi5jb2xvclwiXG4gICAgICAgICAgW2xvb2tdPVwiYnV0dG9uLmxvb2tcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJidXR0b24uZGlzYWJsZWRcIlxuICAgICAgICAgIChvbkNsaWNrKT1cIl9oYW5kbGVCdXR0b25DbGljayhidXR0b24pXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZiAoYnV0dG9uLmxvYWRpbmcpIHtcbiAgICAgICAgICAgIDxheC1sb2FkaW5nPjwvYXgtbG9hZGluZz5cbiAgICAgICAgICB9XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbkBpZiAoY29uZmlnKCkuY2xvc2VCdXR0b24pIHtcbiAgPGF4LWNsb3NlLWJ1dHRvbj48L2F4LWNsb3NlLWJ1dHRvbj5cbn1cbkBpZiAoY29uZmlnKCkudGltZU91dFByb2dyZXNzICYmIGNvbmZpZygpLnRpbWVPdXQgJiYgcmVtYWluaW5nVGltZSgpKSB7XG4gIDxkaXZcbiAgICBjbGFzcz1cImF4LW5vdGlmaWNhdGlvbi1wcm9ncmVzc1wiXG4gICAgW3N0eWxlLnRyYW5zaXRpb24tZHVyYXRpb25dPVwidHJhbnNpdGlvbkR1cmF0aW9uKClcIlxuICAgIFtzdHlsZS53aWR0aF09XCIocmVtYWluaW5nVGltZSgpICogMTAwKSAvIGNvbmZpZygpLnRpbWVPdXQgKyAnJSdcIlxuICA+PC9kaXY+XG59XG4iXX0=","import { NgModule } from '@angular/core';\nimport { AXNotificationComponent } from './notification.component';\nimport * as i0 from \"@angular/core\";\nexport class AXNotificationModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXNotificationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: AXNotificationModule, imports: [AXNotificationComponent], exports: [AXNotificationComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXNotificationModule, imports: [AXNotificationComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXNotificationModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [AXNotificationComponent],\n exports: [AXNotificationComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL3NyYy9saWIvbm90aWZpY2F0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU1uRSxNQUFNLE9BQU8sb0JBQW9COytHQUFwQixvQkFBb0I7Z0hBQXBCLG9CQUFvQixZQUhyQix1QkFBdUIsYUFDdkIsdUJBQXVCO2dIQUV0QixvQkFBb0IsWUFIckIsdUJBQXVCOzs0RkFHdEIsb0JBQW9CO2tCQUpoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUNsQyxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhOb3RpZmljYXRpb25Db21wb25lbnQgfSBmcm9tICcuL25vdGlmaWNhdGlvbi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQVhOb3RpZmljYXRpb25Db21wb25lbnRdLFxuICBleHBvcnRzOiBbQVhOb3RpZmljYXRpb25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE5vdGlmaWNhdGlvbk1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtbm90aWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9ub3RpZmljYXRpb24vc3JjL2Fjb3JleC1jb21wb25lbnRzLW5vdGlmaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-notification.mjs","sources":["../tmp-esm2022/notification/lib/notification.component.js","../tmp-esm2022/notification/lib/notification.config.js","../tmp-esm2022/notification/lib/notification.module.js","../tmp-esm2022/notification/lib/notification.service.js","../tmp-esm2022/notification/acorex-components-notification.js"],"sourcesContent":["import { AXClosableComponent, AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorCloseButtonComponent } from '@acorex/components/decorators';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport { CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, inject, signal, TemplateRef, ViewEncapsulation, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\nexport class AXNotificationComponent extends MXBaseComponent {\n constructor() {\n super(...arguments);\n this.config = inject(DIALOG_DATA);\n this.dialogRef = inject(DialogRef);\n this.isPaused = signal(false, ...(ngDevMode ? [{ debugName: \"isPaused\" }] : []));\n this.remainingTime = signal(0, ...(ngDevMode ? [{ debugName: \"remainingTime\" }] : []));\n this.transitionDuration = signal(150, ...(ngDevMode ? [{ debugName: \"transitionDuration\" }] : []));\n }\n ngOnInit() {\n super.ngOnInit();\n this._initContent();\n this._initIcon();\n this.remainingTime.set(this.config.timeOut);\n this._handleTimeOut();\n this.getHostElement().addEventListener('pointerenter', () => {\n if (!this.config.pauseOnHover)\n return;\n if (this.isPaused())\n return;\n // Only pause if not already paused\n this.isPaused.set(true);\n this.pauseAnimation();\n });\n this.getHostElement().addEventListener('pointerleave', () => {\n if (!this.config.pauseOnHover)\n return;\n if (!this.isPaused())\n return;\n // Only resume if paused\n this.isPaused.set(false);\n this._handleTimeOut();\n });\n }\n pauseAnimation() {\n clearInterval(this.intervalId);\n }\n _handleTimeOut() {\n if (this.config.timeOut) {\n this.intervalId = setInterval(() => {\n this.remainingTime.update((prev) => prev - this.transitionDuration());\n if (this.remainingTime() <= 0) {\n clearInterval(this.intervalId);\n this.close();\n }\n }, this.transitionDuration());\n }\n }\n /** @ignore */\n _initContent() {\n if (this.config.content instanceof TemplateRef) {\n this._selectedPortal = new TemplatePortal(this.config.content, this.getViewContainer());\n }\n else if (typeof this.config.content === 'function') {\n this._selectedPortal = new ComponentPortal(this.config.content);\n }\n }\n /** @ignore */\n _initIcon() {\n if (!this.config.icon) {\n switch (this.config.color) {\n case 'success':\n this._icon = 'ax-icon ax-icon-check-circle';\n break;\n case 'danger':\n this._icon = 'ax-icon ax-icon-error';\n break;\n case 'warning':\n this._icon = 'ax-icon ax-icon-warning';\n break;\n default:\n this._icon = this.config.icon || 'ax-icon ax-icon-info';\n break;\n }\n }\n else {\n this._icon = this.config.icon;\n }\n }\n /** @ignore */\n get _stringContent() {\n return typeof this.config.content === 'string' ? this.config.content : '';\n }\n /** @ignore */\n _handleButtonClick(button) {\n if (button.onClick) {\n button.onClick({ source: button });\n }\n }\n /** @ignore */\n get __hostClass() {\n return `ax-${this.config.color}`;\n }\n /**\n * Closes the dialog and provides the component and HTML element for reference.\n */\n close() {\n this.dialogRef.close({\n component: this,\n htmlElement: this.getHostElement(),\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXNotificationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", type: AXNotificationComponent, isStandalone: true, selector: \"ax-notification\", host: { properties: { \"class\": \"this.__hostClass\" } }, providers: [\n { provide: AXClosableComponent, useExisting: AXNotificationComponent },\n { provide: AXComponent, useExisting: AXNotificationComponent },\n ], usesInheritance: true, ngImport: i0, template: \"<span class=\\\"ax-notification-icon ax-icon-solid {{ _icon }}\\\"></span>\\n<div class=\\\"ax-notification-content\\\">\\n <div class=\\\"ax-notification-title\\\">{{ config.title | translate | async }}</div>\\n @if (_selectedPortal) {\\n <ng-template [cdkPortalOutlet]=\\\"_selectedPortal\\\"></ng-template>\\n } @else {\\n <div>{{ _stringContent | translate | async }}</div>\\n }\\n\\n @if (config.buttons?.length) {\\n <div class=\\\"ax-notification-buttons\\\">\\n @for (button of config.buttons; track $index) {\\n <ax-button\\n class=\\\"ax-xs\\\"\\n [text]=\\\"button.text | translate | async\\\"\\n [color]=\\\"button.color\\\"\\n [look]=\\\"button.look\\\"\\n [disabled]=\\\"button.disabled\\\"\\n (onClick)=\\\"_handleButtonClick(button)\\\"\\n >\\n @if (button.loading) {\\n <ax-loading></ax-loading>\\n }\\n </ax-button>\\n }\\n </div>\\n }\\n</div>\\n@if (config.closeButton) {\\n <ax-close-button></ax-close-button>\\n}\\n@if (config.timeOutProgress && config.timeOut && remainingTime()) {\\n <div\\n class=\\\"ax-notification-progress\\\"\\n [style.transition-duration]=\\\"transitionDuration()\\\"\\n [style.width]=\\\"(remainingTime() * 100) / config.timeOut + '%'\\\"\\n ></div>\\n}\\n\", styles: [\"ax-notification.ax-default{--ax-comp-notification-icon-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-surface)}.ax-dark ax-notification.ax-default{--ax-comp-notification-icon-text-color: var(--ax-sys-color-on-darkest-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-lightest-surface)}ax-notification.ax-primary{--ax-comp-notification-icon-text-color: var(--ax-sys-color-primary-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-primary-surface)}ax-notification.ax-secondary{--ax-comp-notification-icon-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-secondary-surface)}ax-notification.ax-success{--ax-comp-notification-icon-text-color: var(--ax-sys-color-success-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-success-surface)}ax-notification.ax-warning{--ax-comp-notification-icon-text-color: var(--ax-sys-color-warning-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-warning-surface)}ax-notification.ax-danger{--ax-comp-notification-icon-text-color: var(--ax-sys-color-danger-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-danger-surface)}ax-notification.ax-accent1{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent1-surface)}ax-notification.ax-accent2{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent2-surface)}ax-notification.ax-accent3{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent3-surface)}ax-notification.ax-accent4{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent4-surface)}ax-notification.ax-accent5{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent5-surface)}ax-notification.ax-accent6{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent6-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent6-surface)}ax-notification.ax-accent7{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent7-surface)}ax-notification{position:relative;display:flex;width:98vw;overflow:hidden;padding:1rem;--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);background-color:rgba(var(--ax-comp-notification-bg-color, var(--ax-sys-color-lightest-surface)));font-size:var(--ax-comp-notification-font-size, .875rem);line-height:var(--ax-comp-notification-line-height, 1.25rem);border-width:var(--ax-comp-notification-border-width, 1px);border-color:rgba(var(--ax-comp-notification-border-color, var(--ax-sys-color-border-lightest-surface)));border-radius:var(--ax-comp-notification-border-radius, var(--ax-sys-border-radius))}@media (min-width: 768px){ax-notification{width:24rem}}ax-notification .ax-notification-icon,ax-notification .ax-icon-close{font-size:1.25rem;line-height:1.75rem;max-width:fit-content;align-items:flex-start}ax-notification .ax-notification-icon{color:rgba(var(--ax-comp-notification-icon-text-color));padding-inline-end:.75rem}ax-notification .ax-notification-content{display:flex;flex:1 1 0%;flex-direction:column;font-weight:400;justify-content:center;color:rgba(var(--ax-comp-notification-text-color, var(--ax-sys-color-on-surface)))}ax-notification .ax-notification-content .ax-notification-title{font-weight:500;line-height:1.5}ax-notification .ax-notification-content .ax-notification-buttons{margin-top:.75rem;display:flex;gap:.75rem}ax-notification .ax-notification-progress{width:100%;bottom:0;height:.25rem;position:absolute;inset-inline-end:0px;inset-inline-start:0px;transition-property:width;transition-timing-function:linear;transition-duration:var(--ax-sys-transition-duration);background-color:rgba(var(--ax-comp-notification-progress-bg-color, 255, 255, 255, .46))}.ax-dark ax-notification{--ax-comp-notification-bg-color: var(--ax-sys-color-darkest-surface);--ax-comp-notification-border-color: var(--ax-sys-color-border-darkest-surface)}\\n\"], dependencies: [{ kind: \"directive\", type: CdkPortalOutlet, selector: \"[cdkPortalOutlet]\", inputs: [\"cdkPortalOutlet\"], outputs: [\"attached\"], exportAs: [\"cdkPortalOutlet\"] }, { kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"component\", type: AXDecoratorCloseButtonComponent, selector: \"ax-close-button\", inputs: [\"closeAll\", \"icon\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXNotificationComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-notification', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n { provide: AXClosableComponent, useExisting: AXNotificationComponent },\n { provide: AXComponent, useExisting: AXNotificationComponent },\n ], imports: [\n CdkPortalOutlet,\n AXButtonComponent,\n AXLoadingComponent,\n AXDecoratorCloseButtonComponent,\n AsyncPipe,\n AXTranslatorPipe,\n ], template: \"<span class=\\\"ax-notification-icon ax-icon-solid {{ _icon }}\\\"></span>\\n<div class=\\\"ax-notification-content\\\">\\n <div class=\\\"ax-notification-title\\\">{{ config.title | translate | async }}</div>\\n @if (_selectedPortal) {\\n <ng-template [cdkPortalOutlet]=\\\"_selectedPortal\\\"></ng-template>\\n } @else {\\n <div>{{ _stringContent | translate | async }}</div>\\n }\\n\\n @if (config.buttons?.length) {\\n <div class=\\\"ax-notification-buttons\\\">\\n @for (button of config.buttons; track $index) {\\n <ax-button\\n class=\\\"ax-xs\\\"\\n [text]=\\\"button.text | translate | async\\\"\\n [color]=\\\"button.color\\\"\\n [look]=\\\"button.look\\\"\\n [disabled]=\\\"button.disabled\\\"\\n (onClick)=\\\"_handleButtonClick(button)\\\"\\n >\\n @if (button.loading) {\\n <ax-loading></ax-loading>\\n }\\n </ax-button>\\n }\\n </div>\\n }\\n</div>\\n@if (config.closeButton) {\\n <ax-close-button></ax-close-button>\\n}\\n@if (config.timeOutProgress && config.timeOut && remainingTime()) {\\n <div\\n class=\\\"ax-notification-progress\\\"\\n [style.transition-duration]=\\\"transitionDuration()\\\"\\n [style.width]=\\\"(remainingTime() * 100) / config.timeOut + '%'\\\"\\n ></div>\\n}\\n\", styles: [\"ax-notification.ax-default{--ax-comp-notification-icon-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-surface)}.ax-dark ax-notification.ax-default{--ax-comp-notification-icon-text-color: var(--ax-sys-color-on-darkest-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-lightest-surface)}ax-notification.ax-primary{--ax-comp-notification-icon-text-color: var(--ax-sys-color-primary-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-primary-surface)}ax-notification.ax-secondary{--ax-comp-notification-icon-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-secondary-surface)}ax-notification.ax-success{--ax-comp-notification-icon-text-color: var(--ax-sys-color-success-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-success-surface)}ax-notification.ax-warning{--ax-comp-notification-icon-text-color: var(--ax-sys-color-warning-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-warning-surface)}ax-notification.ax-danger{--ax-comp-notification-icon-text-color: var(--ax-sys-color-danger-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-danger-surface)}ax-notification.ax-accent1{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent1-surface)}ax-notification.ax-accent2{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent2-surface)}ax-notification.ax-accent3{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent3-surface)}ax-notification.ax-accent4{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent4-surface)}ax-notification.ax-accent5{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent5-surface)}ax-notification.ax-accent6{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent6-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent6-surface)}ax-notification.ax-accent7{--ax-comp-notification-icon-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-notification-progress-bg-color: var(--ax-sys-color-accent7-surface)}ax-notification{position:relative;display:flex;width:98vw;overflow:hidden;padding:1rem;--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);background-color:rgba(var(--ax-comp-notification-bg-color, var(--ax-sys-color-lightest-surface)));font-size:var(--ax-comp-notification-font-size, .875rem);line-height:var(--ax-comp-notification-line-height, 1.25rem);border-width:var(--ax-comp-notification-border-width, 1px);border-color:rgba(var(--ax-comp-notification-border-color, var(--ax-sys-color-border-lightest-surface)));border-radius:var(--ax-comp-notification-border-radius, var(--ax-sys-border-radius))}@media (min-width: 768px){ax-notification{width:24rem}}ax-notification .ax-notification-icon,ax-notification .ax-icon-close{font-size:1.25rem;line-height:1.75rem;max-width:fit-content;align-items:flex-start}ax-notification .ax-notification-icon{color:rgba(var(--ax-comp-notification-icon-text-color));padding-inline-end:.75rem}ax-notification .ax-notification-content{display:flex;flex:1 1 0%;flex-direction:column;font-weight:400;justify-content:center;color:rgba(var(--ax-comp-notification-text-color, var(--ax-sys-color-on-surface)))}ax-notification .ax-notification-content .ax-notification-title{font-weight:500;line-height:1.5}ax-notification .ax-notification-content .ax-notification-buttons{margin-top:.75rem;display:flex;gap:.75rem}ax-notification .ax-notification-progress{width:100%;bottom:0;height:.25rem;position:absolute;inset-inline-end:0px;inset-inline-start:0px;transition-property:width;transition-timing-function:linear;transition-duration:var(--ax-sys-transition-duration);background-color:rgba(var(--ax-comp-notification-progress-bg-color, 255, 255, 255, .46))}.ax-dark ax-notification{--ax-comp-notification-bg-color: var(--ax-sys-color-darkest-surface);--ax-comp-notification-border-color: var(--ax-sys-color-border-darkest-surface)}\\n\"] }]\n }], propDecorators: { __hostClass: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL3NyYy9saWIvbm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL3NyYy9saWIvbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQXlCLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQXlCLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUVOLE1BQU0sRUFDTixXQUFXLEVBQ1gsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOztBQUd2Qjs7OztHQUlHO0FBb0JILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxlQUFlO0lBbkI1RDs7UUFvQkUsV0FBTSxHQUFHLE1BQU0sQ0FBcUIsV0FBVyxDQUFDLENBQUM7UUFDakQsY0FBUyxHQUFH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QUFDO1lBQ25CLFNBQVMsRUFBRSxJQUFJO1lBQ2YsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUU7U0FDbkMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FoSFUsdUJBQXVCO21HQUF2Qix1QkFBdUIscUhBYnZCO1lBQ1QsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFO1lBQ3RFLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUU7U0FDL0QsaURDbENILHd1Q0FzQ0EsMm1KREZJLGVBQWUsaUpBQ2YsaUJBQWlCLDJVQUNqQixrQkFBa0IsMkhBQ2xCLCtCQUErQixxRkFDL0IsU0FBUyx5Q0FDVCxnQkFBZ0I7OzRGQUdQLHVCQUF1QjtrQkFuQm5DLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyx5QkFBeUIsRUFBRTt3QkFDdEUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcseUJBQXlCLEVBQUU7cUJBQy9ELFdBQ1E7d0JBQ1AsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsK0JBQStCO3dCQUMvQixTQUFTO3dCQUNULGdCQUFnQjtxQkFDakI7O3NCQXFHQSxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENsb3NhYmxlQ29tcG9uZW50LCBBWENvbXBvbmVudCwgQVhDb21wb25lbnRDbG9zZUV2ZW50LCBNWEJhc2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yQ2xvc2VCdXR0b25Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWExvYWRpbmdDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3JQaXBlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IERJQUxPR19EQVRBLCBEaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IENka1BvcnRhbE91dGxldCwgQ29tcG9uZW50UG9ydGFsLCBDb21wb25lbnRUeXBlLCBQb3J0YWwsIFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIGluamVjdCxcbiAgT25Jbml0LFxuICBzaWduYWwsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE5vdGlmaWNhdGlvbkJ1dHRvbkl0ZW0sIEFYTm90aWZpY2F0aW9uRGF0YSB9IGZyb20gJy4vbm90aWZpY2F0aW9uLmNsYXNzJztcblxuLyoqXG4gKiBUaGUgQnV0dG9uIGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtbm90aWZpY2F0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWENsb3NhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhOb3RpZmljYXRpb25Db21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhOb3RpZmljYXRpb25Db21wb25lbnQgfSxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENka1BvcnRhbE91dGxldCxcbiAgICBBWEJ1dHRvbkNvbXBvbmVudCxcbiAgICBBWExvYWRpbmdDb21wb25lbnQsXG4gICAgQVhEZWNvcmF0b3JDbG9zZUJ1dHRvbkNvbXBvbmVudCxcbiAgICBBc3luY1BpcGUsXG4gICAgQVhUcmFuc2xhdG9yUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhOb3RpZmljYXRpb25Db21wb25lbnQgZXh0ZW5kcyBNWEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25maWcgPSBpbmplY3Q8QVhOb3RpZmljYXRpb25EYXRhPihESUFMT0dfREFUQSk7XG4gIGRpYWxvZ1JlZiA9IGluamVjdDxEaWFsb2dSZWY8QVhDb21wb25lbnRDbG9zZUV2ZW50Pj4oRGlhbG9nUmVmKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBfc2VsZWN0ZWRQb3J0YWw6IFBvcnRhbDx1bmtub3duPjtcblxuICAvKiogQGlnbm9yZSAqL1xuICBfaWNvbjogc3RyaW5nO1xuXG4gIHByaXZhdGUgaW50ZXJ2YWxJZDogbnVtYmVyO1xuICBwcml2YXRlIGlzUGF1c2VkID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlbWFpbmluZ1RpbWUgPSBzaWduYWwoMCk7XG4gIHByb3RlY3RlZCB0cmFuc2l0aW9uRHVyYXRpb24gPSBzaWduYWwoMTUwKTtcblxuICBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuX2luaXRDb250ZW50KCk7XG4gICAgdGhpcy5faW5pdEljb24oKTtcbiAgICB0aGlzLnJlbWFpbmluZ1RpbWUuc2V0KHRoaXMuY29uZmlnLnRpbWVPdXQpO1xuICAgIHRoaXMuX2hhbmRsZVRpbWVPdXQoKTtcblxuICAgIHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZW50ZXInLCAoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuY29uZmlnLnBhdXNlT25Ib3ZlcikgcmV0dXJuO1xuICAgICAgaWYgKHRoaXMuaXNQYXVzZWQoKSkgcmV0dXJuO1xuICAgICAgLy8gT25seSBwYXVzZSBpZiBub3QgYWxyZWFkeSBwYXVzZWRcbiAgICAgIHRoaXMuaXNQYXVzZWQuc2V0KHRydWUpO1xuICAgICAgdGhpcy5wYXVzZUFuaW1hdGlvbigpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5nZXRIb3N0RWxlbWVudCgpLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJsZWF2ZScsICgpID0+IHtcbiAgICAgIGlmICghdGhpcy5jb25maWcucGF1c2VPbkhvdmVyKSByZXR1cm47XG4gICAgICBpZiAoIXRoaXMuaXNQYXVzZWQoKSkgcmV0dXJuO1xuICAgICAgLy8gT25seSByZXN1bWUgaWYgcGF1c2VkXG4gICAgICB0aGlzLmlzUGF1c2VkLnNldChmYWxzZSk7XG4gICAgICB0aGlzLl9oYW5kbGVUaW1lT3V0KCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHBhdXNlQW5pbWF0aW9uKCkge1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElkKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVRpbWVPdXQoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLnRpbWVPdXQpIHtcbiAgICAgIHRoaXMuaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgdGhpcy5yZW1haW5pbmdUaW1lLnVwZGF0ZSgocHJldikgPT4gcHJldiAtIHRoaXMudHJhbnNpdGlvbkR1cmF0aW9uKCkpO1xuICAgICAgICBpZiAodGhpcy5yZW1haW5pbmdUaW1lKCkgPD0gMCkge1xuICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElkKTtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0sIHRoaXMudHJhbnNpdGlvbkR1cmF0aW9uKCkpIGFzIHVua25vd24gYXMgbnVtYmVyO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2luaXRDb250ZW50KCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5jb250ZW50IGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkUG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuY29uZmlnLmNvbnRlbnQgYXMgVGVtcGxhdGVSZWY8dW5rbm93bj4sIHRoaXMuZ2V0Vmlld0NvbnRhaW5lcigpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZy5jb250ZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLl9zZWxlY3RlZFBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwodGhpcy5jb25maWcuY29udGVudCBhcyBDb21wb25lbnRUeXBlPHVua25vd24+KTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9pbml0SWNvbigpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnLmljb24pIHtcbiAgICAgIHN3aXRjaCAodGhpcy5jb25maWcuY29sb3IpIHtcbiAgICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgICAgdGhpcy5faWNvbiA9ICdheC1pY29uIGF4LWljb24tY2hlY2stY2lyY2xlJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZGFuZ2VyJzpcbiAgICAgICAgICB0aGlzLl9pY29uID0gJ2F4LWljb24gYXgtaWNvbi1lcnJvcic7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3dhcm5pbmcnOlxuICAgICAgICAgIHRoaXMuX2ljb24gPSAnYXgtaWNvbiBheC1pY29uLXdhcm5pbmcnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRoaXMuX2ljb24gPSB0aGlzLmNvbmZpZy5pY29uIHx8ICdheC1pY29uIGF4LWljb24taW5mbyc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2ljb24gPSB0aGlzLmNvbmZpZy5pY29uO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBnZXQgX3N0cmluZ0NvbnRlbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMuY29uZmlnLmNvbnRlbnQgPT09ICdzdHJpbmcnID8gdGhpcy5jb25maWcuY29udGVudCA6ICcnO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVCdXR0b25DbGljayhidXR0b246IEFYTm90aWZpY2F0aW9uQnV0dG9uSXRlbSkge1xuICAgIGlmIChidXR0b24ub25DbGljaykge1xuICAgICAgYnV0dG9uLm9uQ2xpY2soeyBzb3VyY2U6IGJ1dHRvbiB9KTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGF4LSR7dGhpcy5jb25maWcuY29sb3J9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGRpYWxvZyBhbmQgcHJvdmlkZXMgdGhlIGNvbXBvbmVudCBhbmQgSFRNTCBlbGVtZW50IGZvciByZWZlcmVuY2UuXG4gICAqL1xuICBjbG9zZSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5nZXRIb3N0RWxlbWVudCgpLFxuICAgIH0pO1xuICB9XG59XG4iLCI8c3BhbiBjbGFzcz1cImF4LW5vdGlmaWNhdGlvbi1pY29uIGF4LWljb24tc29saWQge3sgX2ljb24gfX1cIj48L3NwYW4+XG48ZGl2IGNsYXNzPVwiYXgtbm90aWZpY2F0aW9uLWNvbnRlbnRcIj5cbiAgPGRpdiBjbGFzcz1cImF4LW5vdGlmaWNhdGlvbi10aXRsZVwiPnt7IGNvbmZpZy50aXRsZSB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9kaXY+XG4gIEBpZiAoX3NlbGVjdGVkUG9ydGFsKSB7XG4gICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiX3NlbGVjdGVkUG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgfSBAZWxzZSB7XG4gICAgPGRpdj57eyBfc3RyaW5nQ29udGVudCB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9kaXY+XG4gIH1cblxuICBAaWYgKGNvbmZpZy5idXR0b25zPy5sZW5ndGgpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtbm90aWZpY2F0aW9uLWJ1dHRvbnNcIj5cbiAgICAgIEBmb3IgKGJ1dHRvbiBvZiBjb25maWcuYnV0dG9uczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxheC1idXR0b25cbiAgICAgICAgICBjbGFzcz1cImF4LXhzXCJcbiAgICAgICAgICBbdGV4dF09XCJidXR0b24udGV4dCB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICBbY29sb3JdPVwiYnV0dG9uLmNvbG9yXCJcbiAgICAgICAgICBbbG9va109XCJidXR0b24ubG9va1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImJ1dHRvbi5kaXNhYmxlZFwiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiX2hhbmRsZUJ1dHRvbkNsaWNrKGJ1dHRvbilcIlxuICAgICAgICA+XG4gICAgICAgICAgQGlmIChidXR0b24ubG9hZGluZykge1xuICAgICAgICAgICAgPGF4LWxvYWRpbmc+PC9heC1sb2FkaW5nPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuQGlmIChjb25maWcuY2xvc2VCdXR0b24pIHtcbiAgPGF4LWNsb3NlLWJ1dHRvbj48L2F4LWNsb3NlLWJ1dHRvbj5cbn1cbkBpZiAoY29uZmlnLnRpbWVPdXRQcm9ncmVzcyAmJiBjb25maWcudGltZU91dCAmJiByZW1haW5pbmdUaW1lKCkpIHtcbiAgPGRpdlxuICAgIGNsYXNzPVwiYXgtbm90aWZpY2F0aW9uLXByb2dyZXNzXCJcbiAgICBbc3R5bGUudHJhbnNpdGlvbi1kdXJhdGlvbl09XCJ0cmFuc2l0aW9uRHVyYXRpb24oKVwiXG4gICAgW3N0eWxlLndpZHRoXT1cIihyZW1haW5pbmdUaW1lKCkgKiAxMDApIC8gY29uZmlnLnRpbWVPdXQgKyAnJSdcIlxuICA+PC9kaXY+XG59XG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const AX_NOTIFICATION_CONFIG = new InjectionToken('AX_NOTIFICATION_CONFIG', {\n providedIn: 'root',\n factory: () => AXNotificationDefaultConfig,\n});\nexport const AXNotificationDefaultConfig = {\n gap: 5,\n timeOut: 2500,\n timeOutProgress: true,\n closeButton: true,\n location: 'top-end',\n limit: 3,\n pauseOnHover: true,\n};\nexport function notificationConfig(config = {}) {\n const result = {\n ...AXNotificationDefaultConfig,\n ...config,\n };\n return result;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL3NyYy9saWIvbm90aWZpY2F0aW9uLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBWS9DLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUF1Qix3QkFBd0IsRUFBRTtJQUN2RyxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsMkJBQTJCO0NBQzNDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUF5QjtJQUMvRCxHQUFHLEVBQUUsQ0FBQztJQUNOLE9BQU8sRUFBRSxJQUFJO0lBQ2IsZUFBZSxFQUFFLElBQUk7SUFDckIsV0FBVyxFQUFFLElBQUk7SUFDakIsUUFBUSxFQUFFLFNBQVM7SUFDbkIsS0FBSyxFQUFFLENBQUM7SUFDUixZQUFZLEVBQUUsSUFBSTtDQUNuQixDQUFDO0FBSUYsTUFBTSxVQUFVLGtCQUFrQixDQUFDLFNBQW9DLEVBQUU7SUFDdkUsTUFBTSxNQUFNLEdBQUc7UUFDYixHQUFHLDJCQUEyQjtRQUM5QixHQUFHLE1BQU07S0FDVixDQUFDO0lBQ0YsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYTG9jYXRpb24gfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWE5vdGlmaWNhdGlvbkNvbmZpZyB7XG4gIGdhcDogbnVtYmVyO1xuICB0aW1lT3V0OiBudW1iZXI7XG4gIHRpbWVPdXRQcm9ncmVzczogYm9vbGVhbjtcbiAgbG9jYXRpb246IEFYTG9jYXRpb247XG4gIGNsb3NlQnV0dG9uOiBib29sZWFuO1xuICBsaW1pdDogbnVtYmVyO1xuICBwYXVzZU9uSG92ZXI6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBBWF9OT1RJRklDQVRJT05fQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPEFYTm90aWZpY2F0aW9uQ29uZmlnPignQVhfTk9USUZJQ0FUSU9OX0NPTkZJRycsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiBBWE5vdGlmaWNhdGlvbkRlZmF1bHRDb25maWcsXG59KTtcblxuZXhwb3J0IGNvbnN0IEFYTm90aWZpY2F0aW9uRGVmYXVsdENvbmZpZzogQVhOb3RpZmljYXRpb25Db25maWcgPSB7XG4gIGdhcDogNSxcbiAgdGltZU91dDogMjUwMCxcbiAgdGltZU91dFByb2dyZXNzOiB0cnVlLFxuICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgbG9jYXRpb246ICd0b3AtZW5kJyxcbiAgbGltaXQ6IDMsXG4gIHBhdXNlT25Ib3ZlcjogdHJ1ZSxcbn07XG5cbmV4cG9ydCB0eXBlIFBhcnRpYWxOb3RpZmljYXRpb25Db25maWcgPSBQYXJ0aWFsPEFYTm90aWZpY2F0aW9uQ29uZmlnPjtcblxuZXhwb3J0IGZ1bmN0aW9uIG5vdGlmaWNhdGlvbkNvbmZpZyhjb25maWc6IFBhcnRpYWxOb3RpZmljYXRpb25Db25maWcgPSB7fSk6IEFYTm90aWZpY2F0aW9uQ29uZmlnIHtcbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIC4uLkFYTm90aWZpY2F0aW9uRGVmYXVsdENvbmZpZyxcbiAgICAuLi5jb25maWcsXG4gIH07XG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=","import { NgModule } from '@angular/core';\nimport { AXNotificationComponent } from './notification.component';\nimport * as i0 from \"@angular/core\";\nexport class AXNotificationModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXNotificationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: AXNotificationModule, imports: [AXNotificationComponent], exports: [AXNotificationComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXNotificationModule, imports: [AXNotificationComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXNotificationModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [AXNotificationComponent],\n exports: [AXNotificationComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL3NyYy9saWIvbm90aWZpY2F0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU1uRSxNQUFNLE9BQU8sb0JBQW9COytHQUFwQixvQkFBb0I7Z0hBQXBCLG9CQUFvQixZQUhyQix1QkFBdUIsYUFDdkIsdUJBQXVCO2dIQUV0QixvQkFBb0IsWUFIckIsdUJBQXVCOzs0RkFHdEIsb0JBQW9CO2tCQUpoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUNsQyxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhOb3RpZmljYXRpb25Db21wb25lbnQgfSBmcm9tICcuL25vdGlmaWNhdGlvbi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQVhOb3RpZmljYXRpb25Db21wb25lbnRdLFxuICBleHBvcnRzOiBbQVhOb3RpZmljYXRpb25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE5vdGlmaWNhdGlvbk1vZHVsZSB7fVxuIl19","import { AXTranslationService } from '@acorex/core/translation';\nimport { Dialog } from '@angular/cdk/dialog';\nimport { GlobalPositionStrategy } from '@angular/cdk/overlay';\nimport { Injectable, inject } from '@angular/core';\nimport { AXNotificationComponent } from './notification.component';\nimport { AX_NOTIFICATION_CONFIG } from './notification.config';\nimport * as i0 from \"@angular/core\";\nexport class AXNotificationService {\n constructor() {\n this.dialog = inject(Dialog);\n this.translationService = inject(AXTranslationService);\n this.defaultConfig = inject(AX_NOTIFICATION_CONFIG);\n this.activeNotifications = [];\n this.reservedNotifications = [];\n this.notificationCounterElement = null;\n this.moreNotificationsColor = 'primary';\n this.moreNotificationsLocation = 'bottom-center';\n this.reserveCounter = 0;\n }\n show(config) {\n config = { ...this.defaultConfig, ...config };\n this.moreNotificationsColor = config.color;\n this.moreNotificationsLocation = config.location;\n if (this.defaultConfig.limit > 0 && this.activeNotifications.length >= this.defaultConfig.limit) {\n const reservedRef = {\n close: () => {\n console.warn('Reserved notification cannot be closed until it is displayed.');\n },\n };\n this.reservedNotifications.push({ config, reservedRef });\n this.handleReservedNotificationCounter();\n return reservedRef;\n }\n return this.displayNotification(config);\n }\n displayNotification(config) {\n const gap = this.defaultConfig.gap;\n const pos = this.getPosition(config.location) + gap + 'px';\n const positionStrategy = this.getPositionStrategy(new GlobalPositionStrategy(), config.location, pos, gap);\n const dialogRef = this.dialog.open(AXNotificationComponent, {\n data: config,\n autoFocus: '__no_element__',\n restoreFocus: false,\n role: 'dialog',\n ariaModal: true,\n closeOnNavigation: true,\n closeOnDestroy: true,\n hasBackdrop: false,\n panelClass: ['ax-animate-animated', 'ax-animate-fadeIn', 'ax-animate-faster'],\n positionStrategy,\n });\n this.activeNotifications.push(dialogRef.id);\n this.handleReservedNotificationCounter();\n const notificationRef = dialogRef.componentInstance;\n dialogRef.closed.subscribe(() => {\n this.activeNotifications = this.activeNotifications.filter((id) => id !== dialogRef.id);\n this.handleShowReservedNotification();\n this.handleReservedNotificationCounter();\n setTimeout(() => {\n this.reposition(config.location, gap);\n }, 0);\n });\n return {\n close: () => {\n notificationRef.close();\n },\n };\n }\n hideAll() {\n this.dialog.closeAll();\n this.reserveCounter = 0;\n this.reservedNotifications = [];\n this.activeNotifications = [];\n this.handleReservedNotificationCounter();\n }\n handleShowReservedNotification() {\n if (this.activeNotifications.length > this.defaultConfig.limit - 1)\n return;\n if (!this.reservedNotifications.length)\n return;\n const { config, reservedRef } = this.reservedNotifications.shift();\n const displayedRef = this.displayNotification(config);\n this.handleReservedNotificationCounter();\n reservedRef.close = displayedRef.close;\n }\n handleReservedNotificationCounter() {\n const reservedCount = this.reservedNotifications.length;\n if (reservedCount === this.reserveCounter)\n return;\n this.reserveCounter = reservedCount;\n if (reservedCount === 0 && this.notificationCounterElement !== null) {\n this.notificationCounterElement.close();\n return;\n }\n if (reservedCount > 0) {\n if (this.notificationCounterElement !== null) {\n this.notificationCounterElement.close();\n }\n this.createReservedCounternotification();\n }\n }\n async createReservedCounternotification() {\n const opt = {\n closeButton: false,\n color: this.moreNotificationsColor,\n location: this.moreNotificationsLocation,\n title: await this.translationService.translateAsync('@acorex:common.notifications.more', {\n params: { number: this.reserveCounter },\n }),\n timeOutProgress: false,\n };\n const gap = this.defaultConfig.gap;\n const pos = this.getPosition(opt.location) + gap + 'px';\n const positionStrategy = this.getPositionStrategy(new GlobalPositionStrategy(), opt.location, pos, gap);\n const dialogRef = this.dialog.open(AXNotificationComponent, {\n data: opt,\n autoFocus: '__no_element__',\n restoreFocus: true,\n role: 'dialog',\n ariaModal: true,\n closeOnNavigation: true,\n closeOnDestroy: true,\n hasBackdrop: false,\n panelClass: ['ax-animate-animated', 'ax-animate-fadeIn', 'ax-animate-faster'],\n positionStrategy,\n });\n this.notificationCounterElement = dialogRef.componentInstance;\n }\n reposition(notificationLocation, gap) {\n const list = this.dialog.openDialogs\n .map((c) => c.componentInstance)\n .filter((c) => c.config?.location == notificationLocation);\n list.forEach((element, index) => {\n const pos = this.getRepositionPosition(index, gap, list, notificationLocation);\n this.getPositionStrategy(element.dialogRef.config.positionStrategy, notificationLocation, pos, gap).apply();\n });\n }\n getRepositionPosition(index, gap, list, notificationLocation) {\n if (index === 0)\n return gap + 'px';\n const previouseElement = list[index - 1];\n if (notificationLocation.split('-')[0] == 'bottom') {\n return window.innerHeight - previouseElement.getHostElement().offsetTop + gap + 'px';\n }\n return previouseElement.getHostElement().offsetTop + previouseElement.getHostElement().offsetHeight + gap + 'px';\n }\n getPosition(location) {\n const list = this.dialog.openDialogs\n .map((c) => c.componentInstance)\n .filter((c) => c.config.location == location);\n if (list.length == 0)\n return 0;\n if (location.split('-')[0] == 'bottom') {\n return window.innerHeight - list[list.length - 1].getHostElement().offsetTop;\n }\n return list[list.length - 1].getHostElement().offsetTop + list[list.length - 1].getHostElement().offsetHeight;\n }\n getPositionStrategy(positionStrategy, location, pos, gap) {\n switch (location) {\n case 'bottom-center':\n return positionStrategy.bottom(pos).centerHorizontally();\n break;\n case 'bottom-end':\n return positionStrategy.bottom(pos).right(gap + 'px');\n break;\n case 'bottom-start':\n return positionStrategy.bottom(pos).left(gap + 'px');\n break;\n case 'top-center':\n return positionStrategy.top(pos).centerHorizontally();\n break;\n case 'top-end':\n return positionStrategy.top(pos).right(gap + 'px');\n break;\n case 'top-start':\n return positionStrategy.top(pos).left(gap + 'px');\n break;\n case 'center-start':\n return positionStrategy.centerVertically().left(gap + 'px');\n break;\n case 'center-end':\n return positionStrategy.centerVertically().right(gap + 'px');\n break;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXNotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXNotificationService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXNotificationService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9zcmMvbGliL25vdGlmaWNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQXdCLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBWXJGLE1BQU0sT0FBTyxxQkFBcUI7SUFIbEM7UUFJVSxXQUFNLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLHVCQUFrQixHQUF5QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4RSxrQkFBYSxHQUF5QixNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNyRSx3QkFBbUIsR0FBYSxFQUFFLENBQUM7UUFDbkMsMEJBQXFCLEdBQThCLEVBQUUsQ0FBQztRQUN0RCwrQkFBMEIsR0FBbUMsSUFBSSxDQUFDO1FBQ2xFLDJCQUFzQixHQUFxQixTQUFTLENBQUM7UUFDckQsOEJBQXlCLEdBQWUsZUFBZSxDQUFDO1FBQ3hELG1CQUFjLEdBQUcsQ0FBQyxDQUFDO0tBMk01QjtJQXpNQyxJQUFJLENBQUMsTUFBbUM7UUFDdEMsTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFFOUMsSUFBSSxDQUFDLHNC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LEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWExvY2F0aW9uLCBBWFN0eWxlQ29sb3JUeXBlIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kaWFsb2cnO1xuaW1wb3J0IHsgR2xvYmFsUG9zaXRpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhOb3RpZmljYXRpb25PcHRpb25zIGFzIEFYTm90aWZpY2F0aW9uRGlzcGxheUNvbmZpZywgQVhOb3RpZmljYXRpb25SZWYgfSBmcm9tICcuL25vdGlmaWNhdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBBWE5vdGlmaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbm90aWZpY2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWE5vdGlmaWNhdGlvbkNvbmZpZywgQVhfTk9USUZJQ0FUSU9OX0NPTkZJRyB9IGZyb20gJy4vbm90aWZpY2F0aW9uLmNvbmZpZyc7XG5cbnR5cGUgQVhSZXNlcnZlZE5vdGlmaWNhdGlvbnMgPSB7XG4gIGNvbmZpZzogQVhOb3RpZmljYXRpb25EaXNwbGF5Q29uZmlnO1xuICByZXNlcnZlZFJlZjoge1xuICAgIGNsb3NlOiAoKSA9PiB2b2lkO1xuICB9O1xufTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYTm90aWZpY2F0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgZGlhbG9nOiBEaWFsb2cgPSBpbmplY3QoRGlhbG9nKTtcbiAgcHJpdmF0ZSB0cmFuc2xhdGlvblNlcnZpY2U6IEFYVHJhbnNsYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBkZWZhdWx0Q29uZmlnOiBBWE5vdGlmaWNhdGlvbkNvbmZpZyA9IGluamVjdChBWF9OT1RJRklDQVRJT05fQ09ORklHKTtcbiAgcHJpdmF0ZSBhY3RpdmVOb3RpZmljYXRpb25zOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIHJlc2VydmVkTm90aWZpY2F0aW9uczogQVhSZXNlcnZlZE5vdGlmaWNhdGlvbnNbXSA9IFtdO1xuICBwcml2YXRlIG5vdGlmaWNhdGlvbkNvdW50ZXJFbGVtZW50OiBBWE5vdGlmaWNhdGlvbkNvbXBvbmVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG1vcmVOb3RpZmljYXRpb25zQ29sb3I6IEFYU3R5bGVDb2xvclR5cGUgPSAncHJpbWFyeSc7XG4gIHByaXZhdGUgbW9yZU5vdGlmaWNhdGlvbnNMb2NhdGlvbjogQVhMb2NhdGlvbiA9ICdib3R0b20tY2VudGVyJztcbiAgcHJpdmF0ZSByZXNlcnZlQ291bnRlciA9IDA7XG5cbiAgc2hvdyhjb25maWc6IEFYTm90aWZpY2F0aW9uRGlzcGxheUNvbmZpZyk6IEFYTm90aWZpY2F0aW9uUmVmIHtcbiAgICBjb25maWcgPSB7IC4uLnRoaXMuZGVmYXVsdENvbmZpZywgLi4uY29uZmlnIH07XG5cbiAgICB0aGlzLm1vcmVOb3RpZmljYXRpb25zQ29sb3IgPSBjb25maWcuY29sb3I7XG4gICAgdGhpcy5tb3JlTm90aWZpY2F0aW9uc0xvY2F0aW9uID0gY29uZmlnLmxvY2F0aW9uO1xuXG4gICAgaWYgKHRoaXMuZGVmYXVsdENvbmZpZy5saW1pdCA+IDAgJiYgdGhpcy5hY3RpdmVOb3RpZmljYXRpb25zLmxlbmd0aCA+PSB0aGlzLmRlZmF1bHRDb25maWcubGltaXQpIHtcbiAgICAgIGNvbnN0IHJlc2VydmVkUmVmID0ge1xuICAgICAgICBjbG9zZTogKCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUud2FybignUmVzZXJ2ZWQgbm90aWZpY2F0aW9uIGNhbm5vdCBiZSBjbG9zZWQgdW50aWwgaXQgaXMgZGlzcGxheWVkLicpO1xuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHRoaXMucmVzZXJ2ZWROb3RpZmljYXRpb25zLnB1c2goeyBjb25maWcsIHJlc2VydmVkUmVmIH0pO1xuICAgICAgdGhpcy5oYW5kbGVSZXNlcnZlZE5vdGlmaWNhdGlvbkNvdW50ZXIoKTtcbiAgICAgIHJldHVybiByZXNlcnZlZFJlZjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5Tm90aWZpY2F0aW9uKGNvbmZpZyk7XG4gIH1cblxuICBwcml2YXRlIGRpc3BsYXlOb3RpZmljYXRpb24oY29uZmlnOiBBWE5vdGlmaWNhdGlvbkRpc3BsYXlDb25maWcpOiBBWE5vdGlmaWNhdGlvblJlZiB7XG4gICAgY29uc3QgZ2FwID0gdGhpcy5kZWZhdWx0Q29uZmlnLmdhcDtcbiAgICBjb25zdCBwb3MgPSB0aGlzLmdldFBvc2l0aW9uKGNvbmZpZy5sb2NhdGlvbikgKyBnYXAgKyAncHgnO1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLmdldFBvc2l0aW9uU3RyYXRlZ3kobmV3IEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3koKSwgY29uZmlnLmxvY2F0aW9uLCBwb3MsIGdhcCk7XG5cbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFYTm90aWZpY2F0aW9uQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiBjb25maWcsXG4gICAgICBhdXRvRm9jdXM6ICdfX25vX2VsZW1lbnRfXycsXG4gICAgICByZXN0b3JlRm9jdXM6IGZhbHNlLFxuICAgICAgcm9sZTogJ2RpYWxvZycsXG4gICAgICBhcmlhTW9kYWw6IHRydWUsXG4gICAgICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgIGNsb3NlT25EZXN0cm95OiB0cnVlLFxuICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgcGFuZWxDbGFzczogWydheC1hbmltYXRlLWFuaW1hdGVkJywgJ2F4LWFuaW1hdGUtZmFkZUluJywgJ2F4LWFuaW1hdGUtZmFzdGVyJ10sXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgIH0pO1xuXG4gICAgdGhpcy5hY3RpdmVOb3RpZmljYXRpb25zLnB1c2goZGlhbG9nUmVmLmlkKTtcbiAgICB0aGlzLmhhbmRsZVJlc2VydmVkTm90aWZpY2F0aW9uQ291bnRlcigpO1xuXG4gICAgY29uc3Qgbm90aWZpY2F0aW9uUmVmID0gZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlIGFzIEFYTm90aWZpY2F0aW9uQ29tcG9uZW50O1xuICAgIGRpYWxvZ1JlZi5jbG9zZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuYWN0aXZlTm90aWZpY2F0aW9ucyA9IHRoaXMuYWN0aXZlTm90aWZpY2F0aW9ucy5maWx0ZXIoKGlkKSA9PiBpZCAhPT0gZGlhbG9nUmVmLmlkKTtcblxuICAgICAgdGhpcy5oYW5kbGVTaG93UmVzZXJ2ZWROb3RpZmljYXRpb24oKTtcbiAgICAgIHRoaXMuaGFuZGxlUmVzZXJ2ZWROb3RpZmljYXRpb25Db3VudGVyKCk7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlcG9zaXRpb24oY29uZmlnLmxvY2F0aW9uLCBnYXApO1xuICAgICAgfSwgMCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY2xvc2U6ICgpID0+IHtcbiAgICAgICAgbm90aWZpY2F0aW9uUmVmLmNsb3NlKCk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBoaWRlQWxsKCkge1xuICAgIHRoaXMuZGlhbG9nLmNsb3NlQWxsKCk7XG4gICAgdGhpcy5yZXNlcnZlQ291bnRlciA9IDA7XG4gICAgdGhpcy5yZXNlcnZlZE5vdGlmaWNhdGlvbnMgPSBbXTtcbiAgICB0aGlzLmFjdGl2ZU5vdGlmaWNhdGlvbnMgPSBbXTtcbiAgICB0aGlzLmhhbmRsZVJlc2VydmVkTm90aWZpY2F0aW9uQ291bnRlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTaG93UmVzZXJ2ZWROb3RpZmljYXRpb24oKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZlTm90aWZpY2F0aW9ucy5sZW5ndGggPiB0aGlzLmRlZmF1bHRDb25maWcubGltaXQgLSAxKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLnJlc2VydmVkTm90aWZpY2F0aW9ucy5sZW5ndGgpIHJldHVybjtcblxuICAgIGNvbnN0IHsgY29uZmlnLCByZXNlcnZlZFJlZiB9ID0gdGhpcy5yZXNlcnZlZE5vdGlmaWNhdGlvbnMuc2hpZnQoKTtcblxuICAgIGNvbnN0IGRpc3BsYXllZFJlZiA9IHRoaXMuZGlzcGxheU5vdGlmaWNhdGlvbihjb25maWcpO1xuICAgIHRoaXMuaGFuZGxlUmVzZXJ2ZWROb3RpZmljYXRpb25Db3VudGVyKCk7XG4gICAgcmVzZXJ2ZWRSZWYuY2xvc2UgPSBkaXNwbGF5ZWRSZWYuY2xvc2U7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVJlc2VydmVkTm90aWZpY2F0aW9uQ291bnRlcigpIHtcbiAgICBjb25zdCByZXNlcnZlZENvdW50ID0gdGhpcy5yZXNlcnZlZE5vdGlmaWNhdGlvbnMubGVuZ3RoO1xuXG4gICAgaWYgKHJlc2VydmVkQ291bnQgPT09IHRoaXMucmVzZXJ2ZUNvdW50ZXIpIHJldHVybjtcblxuICAgIHRoaXMucmVzZXJ2ZUNvdW50ZXIgPSByZXNlcnZlZENvdW50O1xuXG4gICAgaWYgKHJlc2VydmVkQ291bnQgPT09IDAgJiYgdGhpcy5ub3RpZmljYXRpb25Db3VudGVyRWxlbWVudCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5ub3RpZmljYXRpb25Db3VudGVyRWxlbWVudC5jbG9zZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChyZXNlcnZlZENvdW50ID4gMCkge1xuICAgICAgaWYgKHRoaXMubm90aWZpY2F0aW9uQ291bnRlckVsZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25Db3VudGVyRWxlbWVudC5jbG9zZSgpO1xuICAgICAgfVxuICAgICAgdGhpcy5jcmVhdGVSZXNlcnZlZENvdW50ZXJub3RpZmljYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZVJlc2VydmVkQ291bnRlcm5vdGlmaWNhdGlvbigpIHtcbiAgICBjb25zdCBvcHQ6IEFYTm90aWZpY2F0aW9uRGlzcGxheUNvbmZpZyA9IHtcbiAgICAgIGNsb3NlQnV0dG9uOiBmYWxzZSxcbiAgICAgIGNvbG9yOiB0aGlzLm1vcmVOb3RpZmljYXRpb25zQ29sb3IsXG4gICAgICBsb2NhdGlvbjogdGhpcy5tb3JlTm90aWZpY2F0aW9uc0xvY2F0aW9uLFxuICAgICAgdGl0bGU6IGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdAYWNvcmV4OmNvbW1vbi5ub3RpZmljYXRpb25zLm1vcmUnLCB7XG4gICAgICAgIHBhcmFtczogeyBudW1iZXI6IHRoaXMucmVzZXJ2ZUNvdW50ZXIgfSxcbiAgICAgIH0pLFxuICAgICAgdGltZU91dFByb2dyZXNzOiBmYWxzZSxcbiAgICB9O1xuICAgIGNvbnN0IGdhcCA9IHRoaXMuZGVmYXVsdENvbmZpZy5nYXA7XG4gICAgY29uc3QgcG9zID0gdGhpcy5nZXRQb3NpdGlvbihvcHQubG9jYXRpb24pICsgZ2FwICsgJ3B4JztcbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5nZXRQb3NpdGlvblN0cmF0ZWd5KG5ldyBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5KCksIG9wdC5sb2NhdGlvbiwgcG9zLCBnYXApO1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQVhOb3RpZmljYXRpb25Db21wb25lbnQsIHtcbiAgICAgIGRhdGE6IG9wdCxcbiAgICAgIGF1dG9Gb2N1czogJ19fbm9fZWxlbWVudF9fJyxcbiAgICAgIHJlc3RvcmVGb2N1czogdHJ1ZSxcbiAgICAgIHJvbGU6ICdkaWFsb2cnLFxuICAgICAgYXJpYU1vZGFsOiB0cnVlLFxuICAgICAgY2xvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICBjbG9zZU9uRGVzdHJveTogdHJ1ZSxcbiAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgIHBhbmVsQ2xhc3M6IFsnYXgtYW5pbWF0ZS1hbmltYXRlZCcsICdheC1hbmltYXRlLWZhZGVJbicsICdheC1hbmltYXRlLWZhc3RlciddLFxuICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICB9KTtcbiAgICB0aGlzLm5vdGlmaWNhdGlvbkNvdW50ZXJFbGVtZW50ID0gZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlIGFzIEFYTm90aWZpY2F0aW9uQ29tcG9uZW50O1xuICB9XG5cbiAgcHJpdmF0ZSByZXBvc2l0aW9uKG5vdGlmaWNhdGlvbkxvY2F0aW9uOiBBWExvY2F0aW9uLCBnYXA6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmRpYWxvZy5vcGVuRGlhbG9nc1xuICAgICAgLm1hcCgoYykgPT4gYy5jb21wb25lbnRJbnN0YW5jZSBhcyBBWE5vdGlmaWNhdGlvbkNvbXBvbmVudClcbiAgICAgIC5maWx0ZXIoKGMpID0+IGMuY29uZmlnPy5sb2NhdGlvbiA9PSBub3RpZmljYXRpb25Mb2NhdGlvbik7XG4gICAgbGlzdC5mb3JFYWNoKChlbGVtZW50LCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgcG9zID0gdGhpcy5nZXRSZXBvc2l0aW9uUG9zaXRpb24oaW5kZXgsIGdhcCwgbGlzdCwgbm90aWZpY2F0aW9uTG9jYXRpb24pO1xuXG4gICAgICB0aGlzLmdldFBvc2l0aW9uU3RyYXRlZ3koXG4gICAgICAgIGVsZW1lbnQuZGlhbG9nUmVmLmNvbmZpZy5wb3NpdGlvblN0cmF0ZWd5IGFzIEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICAgIG5vdGlmaWNhdGlvbkxvY2F0aW9uLFxuICAgICAgICBwb3MsXG4gICAgICAgIGdhcCxcbiAgICAgICkuYXBwbHkoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVwb3NpdGlvblBvc2l0aW9uKFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgZ2FwOiBudW1iZXIsXG4gICAgbGlzdDogQVhOb3RpZmljYXRpb25Db21wb25lbnRbXSxcbiAgICBub3RpZmljYXRpb25Mb2NhdGlvbjogc3RyaW5nLFxuICApIHtcbiAgICBpZiAoaW5kZXggPT09IDApIHJldHVybiBnYXAgKyAncHgnO1xuICAgIGNvbnN0IHByZXZpb3VzZUVsZW1lbnQgPSBsaXN0W2luZGV4IC0gMV07XG4gICAgaWYgKG5vdGlmaWNhdGlvbkxvY2F0aW9uLnNwbGl0KCctJylbMF0gPT0gJ2JvdHRvbScpIHtcbiAgICAgIHJldHVybiB3aW5kb3cuaW5uZXJIZWlnaHQgLSBwcmV2aW91c2VFbGVtZW50LmdldEhvc3RFbGVtZW50KCkub2Zmc2V0VG9wICsgZ2FwICsgJ3B4JztcbiAgICB9XG4gICAgcmV0dXJuIHByZXZpb3VzZUVsZW1lbnQuZ2V0SG9zdEVsZW1lbnQoKS5vZmZzZXRUb3AgKyBwcmV2aW91c2VFbGVtZW50LmdldEhvc3RFbGVtZW50KCkub2Zmc2V0SGVpZ2h0ICsgZ2FwICsgJ3B4JztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UG9zaXRpb24obG9jYXRpb246IHN0cmluZykge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmRpYWxvZy5vcGVuRGlhbG9nc1xuICAgICAgLm1hcCgoYykgPT4gYy5jb21wb25lbnRJbnN0YW5jZSBhcyBBWE5vdGlmaWNhdGlvbkNvbXBvbmVudClcbiAgICAgIC5maWx0ZXIoKGMpID0+IGMuY29uZmlnLmxvY2F0aW9uID09IGxvY2F0aW9uKTtcbiAgICBpZiAobGlzdC5sZW5ndGggPT0gMCkgcmV0dXJuIDA7XG4gICAgaWYgKGxvY2F0aW9uLnNwbGl0KCctJylbMF0gPT0gJ2JvdHRvbScpIHtcbiAgICAgIHJldHVybiB3aW5kb3cuaW5uZXJIZWlnaHQgLSBsaXN0W2xpc3QubGVuZ3RoIC0gMV0uZ2V0SG9zdEVsZW1lbnQoKS5vZmZzZXRUb3A7XG4gICAgfVxuICAgIHJldHVybiBsaXN0W2xpc3QubGVuZ3RoIC0gMV0uZ2V0SG9zdEVsZW1lbnQoKS5vZmZzZXRUb3AgKyBsaXN0W2xpc3QubGVuZ3RoIC0gMV0uZ2V0SG9zdEVsZW1lbnQoKS5vZmZzZXRIZWlnaHQ7XG4gIH1cblxuICBwcml2YXRlIGdldFBvc2l0aW9uU3RyYXRlZ3koXG4gICAgcG9zaXRpb25TdHJhdGVneTogR2xvYmFsUG9zaXRpb25TdHJhdGVneSxcbiAgICBsb2NhdGlvbjogQVhMb2NhdGlvbixcbiAgICBwb3M6IHN0cmluZyxcbiAgICBnYXA6IG51bWJlcixcbiAgKSB7XG4gICAgc3dpdGNoIChsb2NhdGlvbikge1xuICAgICAgY2FzZSAnYm90dG9tLWNlbnRlcic6XG4gICAgICAgIHJldHVybiBwb3NpdGlvblN0cmF0ZWd5LmJvdHRvbShwb3MpLmNlbnRlckhvcml6b250YWxseSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JvdHRvbS1lbmQnOlxuICAgICAgICByZXR1cm4gcG9zaXRpb25TdHJhdGVneS5ib3R0b20ocG9zKS5yaWdodChnYXAgKyAncHgnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib3R0b20tc3RhcnQnOlxuICAgICAgICByZXR1cm4gcG9zaXRpb25TdHJhdGVneS5ib3R0b20ocG9zKS5sZWZ0KGdhcCArICdweCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RvcC1jZW50ZXInOlxuICAgICAgICByZXR1cm4gcG9zaXRpb25TdHJhdGVneS50b3AocG9zKS5jZW50ZXJIb3Jpem9udGFsbHkoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b3AtZW5kJzpcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uU3RyYXRlZ3kudG9wKHBvcykucmlnaHQoZ2FwICsgJ3B4Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndG9wLXN0YXJ0JzpcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uU3RyYXRlZ3kudG9wKHBvcykubGVmdChnYXAgKyAncHgnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjZW50ZXItc3RhcnQnOlxuICAgICAgICByZXR1cm4gcG9zaXRpb25TdHJhdGVneS5jZW50ZXJWZXJ0aWNhbGx5KCkubGVmdChnYXAgKyAncHgnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjZW50ZXItZW5kJzpcbiAgICAgICAgcmV0dXJuIHBvc2l0aW9uU3RyYXRlZ3kuY2VudGVyVmVydGljYWxseSgpLnJpZ2h0KGdhcCArICdweCcpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtbm90aWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9ub3RpZmljYXRpb24vc3JjL2Fjb3JleC1jb21wb25lbnRzLW5vdGlmaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}