@acorex/components 19.8.0-next.1 → 19.8.0-next.11

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 (155) hide show
  1. package/color-box/lib/color-box.component.d.ts +5 -1
  2. package/color-palette/lib/color-palette-picker.component.d.ts +19 -14
  3. package/color-palette/lib/color-palette.module.d.ts +2 -1
  4. package/common/lib/classes/styles.class.d.ts +1 -1
  5. package/conversation/lib/conversation-input/conversation-input.component.d.ts +3 -2
  6. package/conversation/lib/conversation-message/conversation-message.component.d.ts +2 -1
  7. package/conversation/lib/conversation-view/conversation-view.component.d.ts +3 -1
  8. package/datetime-picker/lib/datetime-picker.component.d.ts +0 -10
  9. package/datetime-picker/lib/datetime-picker.module.d.ts +2 -1
  10. package/fesm2022/acorex-components-action-sheet.mjs +2 -2
  11. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  12. package/fesm2022/acorex-components-alert.mjs +2 -2
  13. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  14. package/fesm2022/acorex-components-audio-wave.mjs +2 -2
  15. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  16. package/fesm2022/acorex-components-avatar.mjs +2 -2
  17. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  18. package/fesm2022/acorex-components-badge.mjs +2 -2
  19. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  20. package/fesm2022/acorex-components-bottom-navigation.mjs +2 -2
  21. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  22. package/fesm2022/acorex-components-button.mjs +4 -4
  23. package/fesm2022/acorex-components-button.mjs.map +1 -1
  24. package/fesm2022/acorex-components-calendar.mjs +4 -4
  25. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  26. package/fesm2022/acorex-components-check-box.mjs +2 -2
  27. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  28. package/fesm2022/acorex-components-chips.mjs +2 -2
  29. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  30. package/fesm2022/acorex-components-circular-progress.mjs +2 -2
  31. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  32. package/fesm2022/acorex-components-collapse.mjs +2 -2
  33. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  34. package/fesm2022/acorex-components-color-box.mjs +11 -4
  35. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  36. package/fesm2022/acorex-components-color-palette.mjs +342 -326
  37. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  38. package/fesm2022/acorex-components-comment.mjs +4 -4
  39. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  40. package/fesm2022/acorex-components-common.mjs +1 -1
  41. package/fesm2022/acorex-components-common.mjs.map +1 -1
  42. package/fesm2022/acorex-components-conversation.mjs +15 -11
  43. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  44. package/fesm2022/acorex-components-cron-job.mjs +2 -2
  45. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  46. package/fesm2022/acorex-components-data-pager.mjs +2 -2
  47. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  48. package/fesm2022/acorex-components-data-table.mjs +4 -4
  49. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  50. package/fesm2022/acorex-components-datetime-box.mjs +0 -1
  51. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  52. package/fesm2022/acorex-components-datetime-picker.mjs +17 -23
  53. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  54. package/fesm2022/acorex-components-dialog.mjs +2 -2
  55. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  56. package/fesm2022/acorex-components-dropdown-button.mjs +2 -2
  57. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  58. package/fesm2022/acorex-components-form.mjs +2 -2
  59. package/fesm2022/acorex-components-form.mjs.map +1 -1
  60. package/fesm2022/acorex-components-grid-layout-builder.mjs +111 -71
  61. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  62. package/fesm2022/acorex-components-image-editor.mjs +2 -2
  63. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  64. package/fesm2022/acorex-components-json-viewer.mjs +2 -2
  65. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  66. package/fesm2022/acorex-components-list.mjs +2 -2
  67. package/fesm2022/acorex-components-list.mjs.map +1 -1
  68. package/fesm2022/acorex-components-loading.mjs +2 -2
  69. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  70. package/fesm2022/acorex-components-map.mjs +11 -5
  71. package/fesm2022/acorex-components-map.mjs.map +1 -1
  72. package/fesm2022/acorex-components-media-viewer.mjs +4 -4
  73. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  74. package/fesm2022/acorex-components-menu.mjs +4 -4
  75. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  76. package/fesm2022/acorex-components-navbar.mjs +3 -3
  77. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  78. package/fesm2022/acorex-components-notification.mjs +2 -2
  79. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  80. package/fesm2022/acorex-components-number-box.mjs +4 -15
  81. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  82. package/fesm2022/acorex-components-otp.mjs +2 -2
  83. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  84. package/fesm2022/acorex-components-paint.mjs +4 -4
  85. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  86. package/fesm2022/acorex-components-password-box.mjs +4 -10
  87. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  88. package/fesm2022/acorex-components-phone-box.mjs +2 -2
  89. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  90. package/fesm2022/acorex-components-picker.mjs +128 -233
  91. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  92. package/fesm2022/acorex-components-popup.mjs +2 -2
  93. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  94. package/fesm2022/acorex-components-progress-bar.mjs +2 -2
  95. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  96. package/fesm2022/acorex-components-rail-navigation.mjs +2 -2
  97. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  98. package/fesm2022/acorex-components-range-slider.mjs +2 -2
  99. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  100. package/fesm2022/acorex-components-rate-picker.mjs +2 -2
  101. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  102. package/fesm2022/acorex-components-scheduler.mjs +11 -11
  103. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  104. package/fesm2022/acorex-components-search-box.mjs +2 -2
  105. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  106. package/fesm2022/acorex-components-select-box.mjs +2 -2
  107. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  108. package/fesm2022/acorex-components-selection-list.mjs +2 -2
  109. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  110. package/fesm2022/acorex-components-side-menu.mjs +2 -2
  111. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  112. package/fesm2022/acorex-components-skeleton.mjs +2 -2
  113. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  114. package/fesm2022/acorex-components-slider.mjs +2 -2
  115. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  116. package/fesm2022/acorex-components-step-wizard.mjs +2 -2
  117. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  118. package/fesm2022/acorex-components-switch.mjs +2 -2
  119. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  120. package/fesm2022/acorex-components-tabs.mjs +2 -2
  121. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  122. package/fesm2022/acorex-components-tag.mjs +2 -2
  123. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  124. package/fesm2022/acorex-components-text-area.mjs +4 -15
  125. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  126. package/fesm2022/acorex-components-text-box.mjs +4 -18
  127. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  128. package/fesm2022/acorex-components-time-line.mjs +2 -2
  129. package/fesm2022/acorex-components-toast.mjs +4 -4
  130. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  131. package/fesm2022/acorex-components-toolbar.mjs +2 -2
  132. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  133. package/fesm2022/acorex-components-tree-view.mjs +2 -2
  134. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  135. package/fesm2022/acorex-components-uploader.mjs +4 -4
  136. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  137. package/fesm2022/acorex-components-wysiwyg.mjs +6 -6
  138. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  139. package/grid-layout-builder/lib/grid-layout-container.component.d.ts +78 -50
  140. package/number-box/lib/number-box.component.d.ts +0 -1
  141. package/package.json +1 -1
  142. package/paint/lib/paint/paint-view/paint-view.component.d.ts +1 -1
  143. package/password-box/lib/password-box.component.d.ts +0 -1
  144. package/picker/index.d.ts +3 -2
  145. package/picker/lib/picker-container/picker-container.component.d.ts +7 -0
  146. package/picker/lib/picker-items/picker-items.component.d.ts +20 -0
  147. package/picker/lib/picker-title/picker-title.component.d.ts +5 -0
  148. package/picker/lib/picker.module.d.ts +6 -4
  149. package/range-slider/lib/range-slider.component.d.ts +1 -1
  150. package/scheduler/lib/scheduler-month-view.component.d.ts +6 -6
  151. package/text-area/lib/text-area.component.d.ts +0 -1
  152. package/text-box/lib/text-box.component.d.ts +0 -4
  153. package/toast/lib/toast.service.d.ts +1 -1
  154. package/picker/lib/picker-column.directive.d.ts +0 -16
  155. package/picker/lib/picker.component.d.ts +0 -61
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-loading.mjs","sources":["../../../../libs/components/loading/src/lib/loading-spinner.component.ts","../../../../libs/components/loading/src/lib/loading.config.ts","../../../../libs/components/loading/src/lib/loading.component.ts","../../../../libs/components/loading/src/lib/loading.service.ts","../../../../libs/components/loading/src/lib/loading.directive.ts","../../../../libs/components/loading/src/lib/loading.module.ts","../../../../libs/components/loading/src/acorex-components-loading.ts"],"sourcesContent":["import { AXStyleColorType } from '@acorex/components/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\n\n/**\n * A loading spinner component that displays a rotating spinner icon.\n * @category Components\n */\n@Component({\n selector: 'ax-loading-spinner',\n template: `\n <span\n class=\"ax-loader ax-{{ color }}\"\n [style.width.px]=\"size\"\n [style.height.px]=\"size\"\n [style.border-width.px]=\"stroke\"\n [style.border-color]=\"color\"\n ></span>\n @if (text) {\n <span> {{ text }} </span>\n }\n `,\n styleUrls: ['./loading-spinner.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class AXLoadingSpinnerComponent {\n /**\n * The text to display alongside the spinner.\n * @ignore\n */\n @Input()\n text: string;\n\n /**\n * Color of the spinner. Can be a predefined style color or a custom color.\n * @defaultValue 'ghost'\n */\n @Input()\n color: AXStyleColorType | 'white' | 'black' = 'ghost';\n\n /**\n * Size of the spinner, in pixels. This determines both the width and height of the spinner.\n * @defaultValue 16\n */\n @Input() size = 16;\n\n /**\n * Thickness of the spinner's border, in pixels. This affects the visual weight of the spinner's outline.\n * @defaultValue 3\n */\n @Input() stroke = 3;\n}\n","import { InjectionToken } from '@angular/core';\nimport { AXLoadingSpinnerComponent } from './loading-spinner.component';\n\nexport interface AXLoadingConfig {\n spinner: unknown;\n}\n\nexport const AX_LOADING_CONFIG = new InjectionToken<AXLoadingConfig>('AX_LOADING_CONFIG', {\n providedIn: 'root',\n factory: () => AXLoadingDefaultConfig,\n});\n\nexport const AXLoadingDefaultConfig: AXLoadingConfig = {\n spinner: AXLoadingSpinnerComponent,\n};\n\nexport type PartialLoadingConfig = Partial<AXLoadingConfig>;\n\nexport function loadingConfig(config: PartialLoadingConfig = {}): AXLoadingConfig {\n const result = {\n ...AXLoadingDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { MXBaseComponent } from '@acorex/components/common';\nimport { CdkPortalOutletAttachedRef, ComponentPortal, ComponentType, Portal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { AXLoadingConfig, AX_LOADING_CONFIG } from './loading.config';\n\n/**\n * A component that displays a loading indicator.\n * @category Components\n */\n@Component({\n selector: 'ax-loading',\n template: `\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template>\n `,\n styleUrls: ['./loading.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class AXLoadingComponent extends MXBaseComponent implements OnInit {\n private config: AXLoadingConfig = inject(AX_LOADING_CONFIG);\n\n /**\n * @ignore\n */\n protected _selectedPortal: Portal<unknown>;\n\n /**\n * Emits an event when the visibility state of the component changes.\n * @event\n */\n @Output()\n visibleChange: EventEmitter<boolean> = new EventEmitter();\n\n /**\n * @ignore\n */\n private _visible: boolean;\n\n /**\n * Determines whether the component is visible or not.\n */\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n\n /**\n * Sets the visibility of the component and emits a visibility change event.\n *\n * @param v - A boolean value indicating whether the component should be visible.\n */\n public set visible(v: boolean) {\n if (v != this._visible) {\n this._visible = v;\n v ? this.getHostElement().classList.remove('ax-hide') : this.getHostElement().classList.add('ax-hide');\n this.visibleChange.emit(v);\n }\n }\n\n /**\n * Specifies the type of loading indicator to display.\n * @defaultValue 'spinner'\n */\n @Input()\n type = 'spinner';\n\n /**\n * Provides additional context or data that may be used by the component.\n */\n @Input()\n context?: unknown;\n\n /**\n * @ignore\n */\n override ngOnInit() {\n super.ngOnInit();\n this._selectedPortal = new ComponentPortal(this.config.spinner as ComponentType<unknown>);\n this.cdr.markForCheck();\n }\n\n /**\n * @ignore\n */\n protected _handleAttched(ref: CdkPortalOutletAttachedRef) {\n ref = ref as ComponentRef<unknown>;\n if (ref.instance && this.context) {\n Object.assign(ref.instance, this.context);\n }\n }\n}\n","import { Dialog } from '@angular/cdk/dialog';\nimport { Injectable, inject } from '@angular/core';\nimport { BehaviorSubject, Observable, asyncScheduler } from 'rxjs';\nimport { finalize, observeOn } from 'rxjs/operators';\nimport { AXLoadingComponent } from './loading.component';\n\ntype LoadingContext = object;\ntype LoaderId = string | number; // expected enum values\nconst DEFAULT_LOADER_ID: LoaderId = '_DEFAULT';\n\n@Injectable()\nexport class AXLoadingService {\n // WeakMap will remove components from itself upon\n // their garbage collection by JS runtime.\n protected loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\n // Both loading state maps are kept in-sync such that\n // they can be used by both sync and async methods.\n protected loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\n\n private dialog = inject(Dialog);\n\n show(config?: { location?: Element; type?: string; context?: unknown }): number {\n const ce = (config?.location ?? document.body) as HTMLDivElement;\n const dialogRef = this.dialog.open(AXLoadingComponent, {\n hasBackdrop: true,\n disableClose: true,\n restoreFocus: true,\n closeOnDestroy: true,\n closeOnNavigation: true,\n ariaModal: true,\n role: 'alertdialog',\n panelClass: ['ax-loading-pane', 'ax-animate-fadeIn'],\n backdropClass: ['ax-loading-overlay-backdrop', 'ax-animate-fadeIn'],\n });\n const id = new Date().getTime();\n dialogRef.componentInstance.visible = true;\n dialogRef.componentInstance.id = id.toString();\n if (ce != document.body) {\n const bg = dialogRef.overlayRef.backdropElement;\n const ov = dialogRef.overlayRef.overlayElement;\n ce.style.position = 'relative';\n ov.style.position = 'absolute';\n\n ce.appendChild(bg);\n ce.appendChild(ov);\n setTimeout(() => {\n ov.style.position = 'absolute';\n });\n }\n return id;\n // TODO: diabled focus and click, maybe we need a service and directive for it\n }\n\n hide(id: number): void {\n const f = this.dialog.openDialogs.find((c) => c.componentInstance.id === id.toString());\n if (f) {\n f.close();\n }\n }\n\n doLoading<V>(source$: Observable<V>, context: LoadingContext, loaderId?: LoaderId): Observable<V> {\n this.startLoading(context, loaderId);\n return source$.pipe(\n observeOn(asyncScheduler),\n finalize(() => this.endLoading(context, loaderId)),\n );\n }\n\n isLoading(context: LoadingContext, loaderId?: LoaderId): boolean {\n const loaderStates = this.loadingStates.get(context);\n\n if (!loaderStates) {\n return false;\n } else {\n if (loaderId !== undefined) {\n return loaderStates.get(this.getLoaderId(loaderId)) ?? false;\n } else {\n return [...loaderStates.values()].filter((state) => state).length > 0;\n }\n }\n }\n\n isLoading$(context: LoadingContext, loaderId?: LoaderId | any): Observable<boolean> {\n const coalescedLoaderId = this.getLoaderId(loaderId);\n\n if (!this.hasLoadingStates(context, coalescedLoaderId)) {\n this.setLoadingState(context, false, loaderId);\n }\n\n return this.loadingStates$.get(context).get(coalescedLoaderId);\n }\n\n startLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, true, this.getLoaderId(loaderId));\n }\n\n endLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, false, this.getLoaderId(loaderId));\n }\n\n clearLoadings(): void {\n this.loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\n this.loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\n }\n\n protected setLoadingState(context: LoadingContext, state: boolean, loaderId: LoaderId): void {\n if (!this.hasLoadingStates(context, loaderId)) {\n if (this.hasContextLoadingState(context)) {\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$.get(context).set(loaderId, new BehaviorSubject<boolean>(state));\n } else {\n this.loadingStates.set(context, new Map<LoaderId, boolean>([[loaderId, state]]));\n this.loadingStates$.set(\n context,\n new Map<LoaderId, BehaviorSubject<boolean>>([[loaderId, new BehaviorSubject<boolean>(state)]]),\n );\n }\n } else {\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$.get(context).get(loaderId).next(state);\n }\n }\n\n protected hasLoadingStates(context: LoadingContext, loaderId: LoaderId) {\n return this.hasContextLoadingState(context) && this.hasLoaderLoadingState(context, loaderId);\n }\n\n protected hasContextLoadingState(context: LoadingContext) {\n return this.loadingStates.has(context) && this.loadingStates$.has(context);\n }\n\n protected hasLoaderLoadingState(context: LoadingContext, loaderId: LoaderId) {\n return this.loadingStates.get(context).has(loaderId) && this.loadingStates$.get(context).has(loaderId);\n }\n\n protected getLoaderId(loaderId?: LoaderId): LoaderId {\n return loaderId ?? DEFAULT_LOADER_ID;\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { AXLoadingService } from './loading.service';\n\n// This directive places an overlay with a loading spinner over its host element\n// if isLoading equals to true and hides the overlay when isLoading becomes false.\n@Directive({\n selector: '[axIsLoading]',\n standalone: false\n})\nexport class AXLoadingDirective {\n private _hostElement!: HTMLDivElement;\n private _loadingRef!: number;\n\n private _isLoading: boolean;\n\n @Input('axIsLoading')\n public get isLoading(): boolean {\n return this._isLoading;\n }\n public set isLoading(v: boolean) {\n this._isLoading = v;\n if (v) {\n this._loadingRef = this.loadingService.show({\n location: this._hostElement,\n });\n } else {\n this.loadingService.hide(this._loadingRef);\n }\n }\n\n constructor(\n protected readonly elementRef: ElementRef,\n protected readonly loadingService: AXLoadingService,\n ) {\n this._hostElement = this.elementRef.nativeElement;\n }\n}\n","import { DialogModule } from '@angular/cdk/dialog';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXLoadingSpinnerComponent } from './loading-spinner.component';\nimport { AXLoadingComponent } from './loading.component';\nimport { AXLoadingDirective } from './loading.directive';\nimport { AXLoadingService } from './loading.service';\n\nconst COMPONENT = [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent];\nconst MODULES = [CommonModule, OverlayModule, DialogModule, PortalModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [AXLoadingService],\n})\nexport class AXLoadingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXLoadingService"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-loading.mjs","sources":["../../../../libs/components/loading/src/lib/loading-spinner.component.ts","../../../../libs/components/loading/src/lib/loading.config.ts","../../../../libs/components/loading/src/lib/loading.component.ts","../../../../libs/components/loading/src/lib/loading.service.ts","../../../../libs/components/loading/src/lib/loading.directive.ts","../../../../libs/components/loading/src/lib/loading.module.ts","../../../../libs/components/loading/src/acorex-components-loading.ts"],"sourcesContent":["import { AXStyleColorType } from '@acorex/components/common';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\n\n/**\n * A loading spinner component that displays a rotating spinner icon.\n * @category Components\n */\n@Component({\n selector: 'ax-loading-spinner',\n template: `\n <span\n class=\"ax-loader ax-{{ color }}\"\n [style.width.px]=\"size\"\n [style.height.px]=\"size\"\n [style.border-width.px]=\"stroke\"\n [style.border-color]=\"color\"\n ></span>\n @if (text) {\n <span> {{ text }} </span>\n }\n `,\n styleUrls: ['./loading-spinner.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class AXLoadingSpinnerComponent {\n /**\n * The text to display alongside the spinner.\n * @ignore\n */\n @Input()\n text: string;\n\n /**\n * Color of the spinner. Can be a predefined style color or a custom color.\n * @defaultValue 'ghost'\n */\n @Input()\n color: AXStyleColorType | 'white' | 'black' = 'ghost';\n\n /**\n * Size of the spinner, in pixels. This determines both the width and height of the spinner.\n * @defaultValue 16\n */\n @Input() size = 16;\n\n /**\n * Thickness of the spinner's border, in pixels. This affects the visual weight of the spinner's outline.\n * @defaultValue 3\n */\n @Input() stroke = 3;\n}\n","import { InjectionToken } from '@angular/core';\nimport { AXLoadingSpinnerComponent } from './loading-spinner.component';\n\nexport interface AXLoadingConfig {\n spinner: unknown;\n}\n\nexport const AX_LOADING_CONFIG = new InjectionToken<AXLoadingConfig>('AX_LOADING_CONFIG', {\n providedIn: 'root',\n factory: () => AXLoadingDefaultConfig,\n});\n\nexport const AXLoadingDefaultConfig: AXLoadingConfig = {\n spinner: AXLoadingSpinnerComponent,\n};\n\nexport type PartialLoadingConfig = Partial<AXLoadingConfig>;\n\nexport function loadingConfig(config: PartialLoadingConfig = {}): AXLoadingConfig {\n const result = {\n ...AXLoadingDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { MXBaseComponent } from '@acorex/components/common';\nimport { CdkPortalOutletAttachedRef, ComponentPortal, ComponentType, Portal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { AXLoadingConfig, AX_LOADING_CONFIG } from './loading.config';\n\n/**\n * A component that displays a loading indicator.\n * @category Components\n */\n@Component({\n selector: 'ax-loading',\n template: `\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template>\n `,\n styleUrls: ['./loading.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class AXLoadingComponent extends MXBaseComponent implements OnInit {\n private config: AXLoadingConfig = inject(AX_LOADING_CONFIG);\n\n /**\n * @ignore\n */\n protected _selectedPortal: Portal<unknown>;\n\n /**\n * Emits an event when the visibility state of the component changes.\n * @event\n */\n @Output()\n visibleChange: EventEmitter<boolean> = new EventEmitter();\n\n /**\n * @ignore\n */\n private _visible: boolean;\n\n /**\n * Determines whether the component is visible or not.\n */\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n\n /**\n * Sets the visibility of the component and emits a visibility change event.\n *\n * @param v - A boolean value indicating whether the component should be visible.\n */\n public set visible(v: boolean) {\n if (v != this._visible) {\n this._visible = v;\n v ? this.getHostElement().classList.remove('ax-hide') : this.getHostElement().classList.add('ax-hide');\n this.visibleChange.emit(v);\n }\n }\n\n /**\n * Specifies the type of loading indicator to display.\n * @defaultValue 'spinner'\n */\n @Input()\n type = 'spinner';\n\n /**\n * Provides additional context or data that may be used by the component.\n */\n @Input()\n context?: unknown;\n\n /**\n * @ignore\n */\n override ngOnInit() {\n super.ngOnInit();\n this._selectedPortal = new ComponentPortal(this.config.spinner as ComponentType<unknown>);\n this.cdr.markForCheck();\n }\n\n /**\n * @ignore\n */\n protected _handleAttched(ref: CdkPortalOutletAttachedRef) {\n ref = ref as ComponentRef<unknown>;\n if (ref.instance && this.context) {\n Object.assign(ref.instance, this.context);\n }\n }\n}\n","import { Dialog } from '@angular/cdk/dialog';\nimport { Injectable, inject } from '@angular/core';\nimport { BehaviorSubject, Observable, asyncScheduler } from 'rxjs';\nimport { finalize, observeOn } from 'rxjs/operators';\nimport { AXLoadingComponent } from './loading.component';\n\ntype LoadingContext = object;\ntype LoaderId = string | number; // expected enum values\nconst DEFAULT_LOADER_ID: LoaderId = '_DEFAULT';\n\n@Injectable()\nexport class AXLoadingService {\n // WeakMap will remove components from itself upon\n // their garbage collection by JS runtime.\n protected loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\n // Both loading state maps are kept in-sync such that\n // they can be used by both sync and async methods.\n protected loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\n\n private dialog = inject(Dialog);\n\n show(config?: { location?: Element; type?: string; context?: unknown }): number {\n const ce = (config?.location ?? document.body) as HTMLDivElement;\n const dialogRef = this.dialog.open(AXLoadingComponent, {\n hasBackdrop: true,\n disableClose: true,\n restoreFocus: true,\n closeOnDestroy: true,\n closeOnNavigation: true,\n ariaModal: true,\n role: 'alertdialog',\n panelClass: ['ax-loading-pane', 'ax-animate-fadeIn'],\n backdropClass: ['ax-loading-overlay-backdrop', 'ax-animate-fadeIn'],\n });\n const id = new Date().getTime();\n dialogRef.componentInstance.visible = true;\n dialogRef.componentInstance.id = id.toString();\n if (ce != document.body) {\n const bg = dialogRef.overlayRef.backdropElement;\n const ov = dialogRef.overlayRef.overlayElement;\n ce.style.position = 'relative';\n ov.style.position = 'absolute';\n\n ce.appendChild(bg);\n ce.appendChild(ov);\n setTimeout(() => {\n ov.style.position = 'absolute';\n });\n }\n return id;\n // TODO: diabled focus and click, maybe we need a service and directive for it\n }\n\n hide(id: number): void {\n const f = this.dialog.openDialogs.find((c) => c.componentInstance.id === id.toString());\n if (f) {\n f.close();\n }\n }\n\n doLoading<V>(source$: Observable<V>, context: LoadingContext, loaderId?: LoaderId): Observable<V> {\n this.startLoading(context, loaderId);\n return source$.pipe(\n observeOn(asyncScheduler),\n finalize(() => this.endLoading(context, loaderId)),\n );\n }\n\n isLoading(context: LoadingContext, loaderId?: LoaderId): boolean {\n const loaderStates = this.loadingStates.get(context);\n\n if (!loaderStates) {\n return false;\n } else {\n if (loaderId !== undefined) {\n return loaderStates.get(this.getLoaderId(loaderId)) ?? false;\n } else {\n return [...loaderStates.values()].filter((state) => state).length > 0;\n }\n }\n }\n\n isLoading$(context: LoadingContext, loaderId?: LoaderId | any): Observable<boolean> {\n const coalescedLoaderId = this.getLoaderId(loaderId);\n\n if (!this.hasLoadingStates(context, coalescedLoaderId)) {\n this.setLoadingState(context, false, loaderId);\n }\n\n return this.loadingStates$.get(context).get(coalescedLoaderId);\n }\n\n startLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, true, this.getLoaderId(loaderId));\n }\n\n endLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, false, this.getLoaderId(loaderId));\n }\n\n clearLoadings(): void {\n this.loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\n this.loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\n }\n\n protected setLoadingState(context: LoadingContext, state: boolean, loaderId: LoaderId): void {\n if (!this.hasLoadingStates(context, loaderId)) {\n if (this.hasContextLoadingState(context)) {\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$.get(context).set(loaderId, new BehaviorSubject<boolean>(state));\n } else {\n this.loadingStates.set(context, new Map<LoaderId, boolean>([[loaderId, state]]));\n this.loadingStates$.set(\n context,\n new Map<LoaderId, BehaviorSubject<boolean>>([[loaderId, new BehaviorSubject<boolean>(state)]]),\n );\n }\n } else {\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$.get(context).get(loaderId).next(state);\n }\n }\n\n protected hasLoadingStates(context: LoadingContext, loaderId: LoaderId) {\n return this.hasContextLoadingState(context) && this.hasLoaderLoadingState(context, loaderId);\n }\n\n protected hasContextLoadingState(context: LoadingContext) {\n return this.loadingStates.has(context) && this.loadingStates$.has(context);\n }\n\n protected hasLoaderLoadingState(context: LoadingContext, loaderId: LoaderId) {\n return this.loadingStates.get(context).has(loaderId) && this.loadingStates$.get(context).has(loaderId);\n }\n\n protected getLoaderId(loaderId?: LoaderId): LoaderId {\n return loaderId ?? DEFAULT_LOADER_ID;\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { AXLoadingService } from './loading.service';\n\n// This directive places an overlay with a loading spinner over its host element\n// if isLoading equals to true and hides the overlay when isLoading becomes false.\n@Directive({\n selector: '[axIsLoading]',\n standalone: false\n})\nexport class AXLoadingDirective {\n private _hostElement!: HTMLDivElement;\n private _loadingRef!: number;\n\n private _isLoading: boolean;\n\n @Input('axIsLoading')\n public get isLoading(): boolean {\n return this._isLoading;\n }\n public set isLoading(v: boolean) {\n this._isLoading = v;\n if (v) {\n this._loadingRef = this.loadingService.show({\n location: this._hostElement,\n });\n } else {\n this.loadingService.hide(this._loadingRef);\n }\n }\n\n constructor(\n protected readonly elementRef: ElementRef,\n protected readonly loadingService: AXLoadingService,\n ) {\n this._hostElement = this.elementRef.nativeElement;\n }\n}\n","import { DialogModule } from '@angular/cdk/dialog';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXLoadingSpinnerComponent } from './loading-spinner.component';\nimport { AXLoadingComponent } from './loading.component';\nimport { AXLoadingDirective } from './loading.directive';\nimport { AXLoadingService } from './loading.service';\n\nconst COMPONENT = [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent];\nconst MODULES = [CommonModule, OverlayModule, DialogModule, PortalModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [AXLoadingService],\n})\nexport class AXLoadingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXLoadingService"],"mappings":"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"}
@@ -205,7 +205,6 @@ class AXLeafletService {
205
205
  if (this.getPolygons().length === this.maxPolygons) {
206
206
  this.addDrawControl(this.position, this.maxMarkers, this.maxPolygons);
207
207
  }
208
- this.fitBoundsToDrawItems();
209
208
  }
210
209
  /**
211
210
  * Gets all markers currently on the map.
@@ -423,13 +422,11 @@ class AXLeafletService {
423
422
  * Adjusts the map view to fit all markers and polygons currently on the map.
424
423
  */
425
424
  fitBoundsToDrawItems() {
426
- debugger;
427
425
  if (!this.map || !this.drawnItems) {
428
426
  console.warn('Map or drawn items not initialized.');
429
427
  return;
430
428
  }
431
429
  const bounds = this.L.latLngBounds([]);
432
- // Include all markers in the bounds
433
430
  this.drawnItems.getLayers().forEach((layer) => {
434
431
  if (layer instanceof this.L.Marker) {
435
432
  bounds.extend(layer.getLatLng());
@@ -444,7 +441,11 @@ class AXLeafletService {
444
441
  }
445
442
  });
446
443
  if (bounds.isValid()) {
447
- this.map.fitBounds(bounds, { padding: [20, 20] }); // Add padding for better view
444
+ const maxZoom = 18;
445
+ this.map.fitBounds(bounds, {
446
+ padding: [20, 20],
447
+ maxZoom: maxZoom,
448
+ });
448
449
  }
449
450
  else {
450
451
  console.warn('No valid bounds found for markers or polygons.');
@@ -580,7 +581,12 @@ class AXMapComponent {
580
581
  if (this.polygons()) {
581
582
  this.leafletService.addPolygon(this.polygons());
582
583
  }
583
- this.leafletService.fitBoundsToDrawItems();
584
+ if (this.latitude() === null &&
585
+ this.longitude() === null &&
586
+ this.zoomLevel() === null &&
587
+ (this.polygons() || this.markers())) {
588
+ this.leafletService.fitBoundsToDrawItems();
589
+ }
584
590
  this.rendered.set(true);
585
591
  });
586
592
  this.#locatorEffect = effect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-map.mjs","sources":["../../../../libs/components/map/src/lib/map.config.ts","../../../../libs/components/map/src/lib/map.service.ts","../../../../libs/components/map/src/lib/map.component.ts","../../../../libs/components/map/src/lib/map.component.html","../../../../libs/components/map/src/lib/map.module.ts","../../../../libs/components/map/src/acorex-components-map.ts"],"sourcesContent":["import { AX_GLOBAL_CONFIG } from '@acorex/core/config';\nimport { InjectionToken, inject } from '@angular/core';\nimport { set } from 'lodash-es';\n\nexport interface AXMapConfig {\n layers: string;\n layers2x: string;\n markerIcon: string;\n markerIcon2x: string;\n markerShadow: string;\n}\n\nexport const AX_MAP_CONFIG = new InjectionToken<AXMapConfig>('AX_MAP_CONFIG', {\n providedIn: 'root',\n factory: () => {\n const global = inject(AX_GLOBAL_CONFIG);\n set(global, 'layout.map', AX_MAP_CONFIG);\n return AXMapDefaultConfig;\n },\n});\n\nexport const baseUrl = '/assets/images/leaflet/';\n\nexport const AXMapDefaultConfig: AXMapConfig = {\n layers: `${baseUrl}layers.png`,\n layers2x: `${baseUrl}layers-2x.png`,\n markerIcon: `${baseUrl}marker-icon.png`,\n markerIcon2x: `${baseUrl}marker-icon-2x.png`,\n markerShadow: `${baseUrl}marker-shadow.png`,\n};\n\nexport type PartialMapConfig = Partial<AXMapConfig>;\n\nexport function mapConfig(config: PartialMapConfig = {}): AXMapConfig {\n const result = {\n ...AXMapDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { EventEmitter, inject, Injectable } from '@angular/core';\nimport { AX_MAP_CONFIG } from './map.config';\nimport {\n AXMapControlPlace,\n AXMapData,\n AXMapLatLng,\n AXMapLocation,\n AXMapMarker,\n AXMapPolygon,\n} from './map.type';\n\n/**\n * Service for managing Leaflet maps and related functionalities.\n */\n@Injectable()\nexport class AXLeafletService {\n private mapConfig = inject(AX_MAP_CONFIG);\n private icon: any;\n private position: AXMapControlPlace = 'topleft';\n private maxMarkers: number | null = null;\n private maxPolygons: number | null = null;\n private polygonColor = 'blue';\n\n protected L: typeof import('leaflet');\n private map?: L.Map;\n private drawControl?: L.Control.Draw;\n private locateControl?: L.Control.Locate;\n private drawnItems: L.FeatureGroup;\n\n /**\n * Emits when marker data changes.\n */\n public onMarkerChanged = new EventEmitter<AXMapMarker[]>();\n /**\n * Emits when a marker is added.\n */\n public onMarkerAdded = new EventEmitter<AXMapMarker>();\n /**\n * Emits when the user's location is found.\n */\n public onLocationFound = new EventEmitter<AXMapLocation>();\n /**\n * Emits when polygon data changes.\n */\n public onPolygonChanged = new EventEmitter<AXMapPolygon[]>();\n /**\n * Emits when a polygon is added.\n */\n public onPolygonAdded = new EventEmitter<AXMapPolygon>();\n\n /**\n * Loads the Leaflet library and its plugins.\n */\n public async loadLeaflet(): Promise<void> {\n try {\n this.L = await import('leaflet');\n await import('leaflet-draw');\n await import('leaflet.locatecontrol');\n this.icon = this.L.icon({\n iconUrl: this.mapConfig.markerIcon,\n shadowUrl: this.mapConfig.markerShadow,\n iconSize: [25, 41],\n iconAnchor: [12, 41],\n shadowSize: [41, 41],\n });\n } catch (error) {\n console.error('Error Loading Leaflet,', error);\n }\n }\n\n /**\n * Initializes the Leaflet map.\n * @param mapElement The HTML element to render the map in.\n * @param location The initial map center.\n * @param zoom The initial zoom level. Defaults to 13.\n */\n public async initMap(mapElement: HTMLElement, location: AXMapLatLng, zoom = 13) {\n await this.loadLeaflet();\n const map = this.L.map(mapElement).setView([location.latitude, location.longitude], zoom);\n this.L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {\n maxZoom: 20,\n attribution: '© ACoreX',\n }).addTo(map);\n this.drawnItems = new this.L.FeatureGroup();\n this.drawnItems.addTo(map);\n this.map = map;\n }\n\n /**\n * Gets the Leaflet map instance.\n * @returns The Leaflet map instance, or undefined if not initialized.\n */\n public getMap(): L.Map | undefined {\n return this.map;\n }\n\n /**\n * Gets the Leaflet package.\n * @returns The Leaflet package.\n */\n public getLeafletPackage(): typeof import('leaflet') {\n return this.L;\n }\n\n /**\n * Sets the zoom level of the map.\n * @param zoom The desired zoom level.\n */\n public setZoomLevel(zoom: number): void {\n this.map?.setZoom(zoom);\n }\n\n /**\n * Sets the center of the map.\n * @param location The new center location.\n */\n public setCenter(location: AXMapLatLng): void {\n if (this.map && location) {\n this.map.setView([location.latitude, location.longitude], this.map.getZoom());\n }\n }\n\n /**\n * Flies to a specific location on the map.\n * @param location The target location.\n * @param zoom The target zoom level (optional).\n * @param setMarker Whether to add a marker at the destination after flying.\n * @param duration The duration of the fly animation in seconds.\n */\n public flyTo(location: AXMapLatLng, zoom?: number, setMarker = false, duration = 1.0): void {\n if (this.map && location) {\n this.map.flyTo([location.latitude, location.longitude], zoom || this.map.getZoom(), {\n animate: true,\n duration: duration,\n });\n if (setMarker) {\n this.map.once('moveend', () => this.addMarker(location));\n }\n }\n }\n\n /**\n * Adds a marker or markers to the map.\n * @param locations The marker or markers to add.\n */\n public addMarker(locations: AXMapMarker | AXMapMarker[]): void {\n if (\n this.maxMarkers !== null &&\n this.getMarkers().length + (Array.isArray(locations) ? locations.length : 1) > this.maxMarkers\n ) {\n console.warn('Markers Reached max count.');\n } else {\n const locationsArray = Array.isArray(locations) ? locations : [locations];\n locationsArray.forEach((location) => {\n this.L.marker([location.latitude, location.longitude], {\n icon: this.icon,\n title: location.title,\n }).addTo(this.drawnItems);\n this.onMarkerAdded.emit(location);\n this.onMarkerChanged.emit(this.getMarkers());\n });\n if (this.getMarkers().length === this.maxMarkers) {\n this.addDrawControl(this.position, this.maxMarkers, this.maxPolygons);\n }\n }\n }\n\n /**\n * Adds a polygon or polygons to the map.\n * @param polygons The polygon or polygons to add.\n * @param clickCallback Optional callback function to be executed on polygon click.\n */\n public addPolygon(\n polygons: AXMapPolygon | AXMapPolygon[],\n clickCallback?: (event: L.LeafletMouseEvent) => void,\n ): void {\n const polygonsToAdd = Array.isArray(polygons) ? polygons : [polygons];\n\n for (const polygon of polygonsToAdd) {\n if (polygon.points.length < 3) {\n console.warn('Polygon needs 3 or more points.');\n continue;\n }\n\n if (this.maxPolygons !== null && this.getPolygons().length >= this.maxPolygons) {\n console.warn('Polygon reached max count.');\n break;\n }\n\n const latLngs = polygon.points.map(\n (location) => new this.L.LatLng(location.latitude, location.longitude),\n );\n const newPolygon = new this.L.Polygon(latLngs, { color: polygon.color || 'blue' });\n\n if (polygon.title) {\n newPolygon.bindPopup(polygon.title);\n }\n\n if (clickCallback) {\n newPolygon.on('click', clickCallback);\n }\n\n this.drawnItems.addLayer(newPolygon);\n this.onPolygonAdded.emit(polygon);\n this.onPolygonChanged.emit(this.getPolygons());\n }\n\n if (this.getPolygons().length === this.maxPolygons) {\n this.addDrawControl(this.position, this.maxMarkers, this.maxPolygons);\n }\n this.fitBoundsToDrawItems();\n }\n\n /**\n * Gets all markers currently on the map.\n * @returns An array of AXMapMarker objects.\n */\n public getMarkers(): AXMapMarker[] {\n return this.drawnItems\n .getLayers()\n .filter((layer) => layer instanceof this.L.Marker)\n .map((marker) => {\n const latLng = (marker as L.Marker).getLatLng();\n const title = marker.options.title;\n return {\n latitude: latLng.lat,\n longitude: latLng.lng,\n title,\n } as AXMapMarker;\n });\n }\n /**\n * Gets all polygons currently on the map.\n * @returns An array of AXMapPolygon objects.\n */\n public getPolygons(): AXMapPolygon[] {\n return this.drawnItems\n .getLayers()\n .filter((layer) => layer instanceof this.L.Polygon)\n .map((polygon) => {\n const latLngs = polygon.getLatLngs()[0]; // Access the outer boundary\n\n const points: AXMapLatLng[] = (latLngs as any).map((latLng) => ({\n latitude: latLng.lat,\n longitude: latLng.lng,\n }));\n\n return {\n points,\n color: polygon.options?.color,\n };\n });\n }\n\n /**\n * Adds a draw control to the map for creating markers and polygons.\n * @param position The position of the control on the map. Defaults to 'topleft'.\n * @param maxMarkers The maximum number of markers allowed. Defaults to 1.\n * @param maxPolygons The maximum number of polygons allowed. Defaults to 1.\n * @param PolygonColor The default color for polygons.\n */\n public addDrawControl(\n position: AXMapControlPlace = 'topleft',\n maxMarkers = 1,\n maxPolygons = 1,\n PolygonColor?: string,\n ): void {\n this.position = position;\n this.maxMarkers = maxMarkers;\n this.maxPolygons = maxPolygons;\n this.polygonColor = PolygonColor || 'blue'; // Use provided color or default to blue\n\n if (this.drawControl) {\n this.map?.removeControl(this.drawControl);\n this.drawControl = undefined;\n }\n\n if (this.map) {\n this.drawControl = new this.L.Control.Draw({\n position: this.position,\n edit: {\n featureGroup: this.drawnItems,\n },\n draw: {\n marker: this.getMarkers().length < this.maxMarkers ? { icon: this.icon } : false,\n polygon: this.getPolygons().length < this.maxPolygons ? {} : false,\n polyline: false,\n rectangle: false,\n circle: false,\n circlemarker: false,\n },\n });\n this.map.addControl(this.drawControl);\n\n const onCreated = (event: any) => {\n const layer = event.layer;\n if (layer instanceof this.L.Marker) {\n const markerData = { latitude: layer.getLatLng().lat, longitude: layer.getLatLng().lng };\n this.addMarker(markerData);\n } else if (layer instanceof this.L.Polygon) {\n const latLngs = layer.getLatLngs();\n const polygonData: AXMapPolygon = {\n points: (latLngs[0] as Array<any>).map((latLng) => ({\n latitude: latLng.lat,\n longitude: latLng.lng,\n })),\n color: this.polygonColor || this.getRandomColorName(), // Use configured color or random\n };\n this.addPolygon(polygonData);\n } else {\n console.warn('Unsupported layer type drawn:', layer);\n }\n };\n\n const onDeleted = (event: any) => {\n const deletedLayers = event.layers;\n deletedLayers.eachLayer((layer: L.Layer) => {\n if (layer instanceof this.L.Marker) {\n this.onMarkerChanged.emit(this.getMarkers());\n } else if (layer instanceof this.L.Polygon) {\n this.onPolygonChanged.emit(this.getPolygons());\n } else {\n console.warn('Unsupported layer type deleted:', layer);\n }\n });\n this.addDrawControl(this.position, this.maxMarkers, this.maxPolygons);\n };\n\n const onEdited = (event: any) => {\n const layers = event.layers;\n layers.eachLayer((layer: L.Layer) => {\n if (layer instanceof this.L.Marker) {\n this.onMarkerChanged.emit(this.getMarkers());\n } else if (layer instanceof this.L.Polygon) {\n this.onPolygonChanged.emit(this.getPolygons());\n } else {\n console.warn('Unsupported layer type drawn:', layer);\n }\n });\n };\n\n this.map.off('draw:created');\n this.map.off('draw:deleted');\n this.map.off('draw:edited');\n\n this.map.on('draw:created', onCreated);\n this.map.on('draw:deleted', onDeleted);\n this.map.on('draw:edited', onEdited);\n }\n }\n\n /**\n * Adds a locate control to the map.\n * @param position The position of the control on the map. Defaults to 'bottomright'.\n */\n public addLocateControl(position: AXMapControlPlace = 'bottomright'): void {\n if (this.locateControl) {\n this.map?.removeControl(this.locateControl);\n this.locateControl = undefined;\n }\n if (this.map) {\n const locateControl = this.L.control\n .locate({\n position: position,\n flyTo: true,\n setView: 'untilPanOrZoom',\n showPopup: true,\n onLocationError: (e) => alert(e.message),\n onLocationOutsideMapBounds: (control) => control.stop(),\n locateOptions: {\n enableHighAccuracy: true,\n },\n strings: {\n title: 'Show my location',\n popup: 'You are within {distance} meters from this point',\n outsideMapBoundsMsg: 'You seem to be outside the map bounds',\n },\n })\n .addTo(this.map);\n\n this.locateControl = locateControl;\n\n const onLocationFound = (event: any) => {\n const location: AXMapLocation = {\n latitude: event.latitude,\n longitude: event.longitude,\n precision: event.accuracy,\n };\n this.onLocationFound.emit(location);\n };\n\n this.map.on('locationfound', onLocationFound);\n }\n }\n\n private availableColors = ['red', 'blue', 'green', 'orange', 'purple', 'brown', 'black'];\n\n private getRandomColorName = () => {\n const randomIndex = Math.floor(Math.random() * this.availableColors.length);\n return this.availableColors[randomIndex];\n };\n\n /**\n * Removes the draw control from the map.\n */\n public removeDrawControl(): void {\n if (this.drawControl) {\n this.map?.removeControl(this.drawControl);\n this.drawControl = undefined;\n }\n }\n\n /**\n * Removes the locate control from the map.\n */\n public removeLocateControl(): void {\n if (this.map && this.locateControl) {\n this.map.removeControl(this.locateControl);\n this.locateControl = undefined;\n }\n }\n\n /**\n * Clears all drawn items (markers and polygons) from the map.\n */\n public clearDrawItems(): void {\n if (this.drawnItems) {\n this.drawnItems.clearLayers();\n }\n }\n\n /**\n * Gets the current drawn items (markers and polygons).\n * @returns An object containing arrays of markers and polygons.\n */\n public getDrawItem(): AXMapData {\n return {\n markers: this.getMarkers(),\n polygons: this.getPolygons(),\n };\n }\n\n /**\n * Sets the drawn items (markers and polygons) on the map.\n * @param data An object containing arrays of markers and polygons.\n */\n public setDrawItem(data: AXMapData) {\n this.addMarker(data.markers);\n this.addPolygon(data.polygons);\n }\n\n /**\n * Adjusts the map view to fit all markers and polygons currently on the map.\n */\n public fitBoundsToDrawItems(): void {\n debugger;\n if (!this.map || !this.drawnItems) {\n console.warn('Map or drawn items not initialized.');\n return;\n }\n\n const bounds = this.L.latLngBounds([]);\n\n // Include all markers in the bounds\n this.drawnItems.getLayers().forEach((layer) => {\n if (layer instanceof this.L.Marker) {\n bounds.extend((layer as L.Marker).getLatLng());\n } else if (layer instanceof this.L.Polygon) {\n const latLngs = (layer as L.Polygon).getLatLngs();\n (latLngs as any[]).forEach((latLngArray) => {\n latLngArray.forEach((latLng) => {\n bounds.extend(latLng);\n });\n });\n }\n });\n\n if (bounds.isValid()) {\n this.map.fitBounds(bounds, { padding: [20, 20] }); // Add padding for better view\n } else {\n console.warn('No valid bounds found for markers or polygons.');\n }\n }\n\n /**\n * Destroys the map instance and removes all event listeners.\n */\n public destroyMap(): void {\n if (this.map) {\n this.map.off();\n this.map.remove();\n this.map = undefined;\n this.drawControl = undefined; // Important: Clear references to prevent memory leaks\n this.locateControl = undefined;\n this.drawnItems = undefined;\n }\n }\n}\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n inject,\n input,\n OnDestroy,\n output,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { AXLeafletService } from './map.service';\nimport { AXMapControlPlace, AXMapData, AXMapMarker, AXMapPolygon } from './map.type';\n\n/**\n * @description\n * The `AXMapComponent` provides an interactive map powered by Leaflet. It supports markers, location tracking,\n * and configurable zoom, latitude, longitude, and marker behavior. The component allows easy integration and\n * manipulation of map features.\n *\n * @example\n * <ax-map [latitude]=\"51.505\" [longitude]=\"-0.09\" [zoomLevel]=\"13\" [hasMarker]=\"true\"></ax-map>\n */\n@Component({\n selector: 'ax-map',\n templateUrl: './map.component.html',\n styleUrls: ['./map.component.scss'],\n providers: [AXLeafletService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class AXMapComponent implements OnDestroy {\n /**\n * @description\n * Zoom level of the map.\n */\n zoomLevel = input<number | null>(null);\n\n /**\n * @description\n * Latitude of the map center.\n */\n latitude = input<number | null>(null);\n\n /**\n * @description\n * Longitude of the map center.\n */\n longitude = input<number | null>(null);\n\n /**\n * @description\n * Maximum number of markers allowed on the map.\n * @default 0\n */\n maxMarker = input(0);\n\n /**\n * @description\n * Maximum number of polygons allowed on the map.\n * @default 0\n */\n maxPolygon = input(0);\n\n /**\n * @description\n * Whether the map should have a marker control.\n * @default false\n */\n hasDraw = input(false);\n\n /**\n * @description\n * Whether the map should have a location control.\n * @default false\n */\n hasLocator = input(false);\n\n /**\n * @description\n * Position of the marker control on the map.\n * @default 'topleft'\n */\n markerPlace = input<AXMapControlPlace>('topleft');\n\n /**\n * @description\n * Position of the locate control on the map.\n * @default 'bottomright'\n */\n locatePlace = input<AXMapControlPlace>('bottomright');\n\n /**\n * @description\n * Array or single marker location(s) to be placed on the map.\n * @default undefined\n */\n markers = input<AXMapMarker | AXMapMarker[] | undefined>(undefined);\n\n /**\n * @description\n * Array or single polygon location(s) to be placed on the map.\n * @default undefined\n */\n polygons = input<AXMapPolygon | AXMapPolygon[] | undefined>(undefined);\n\n /**\n * @description\n * Event triggered when a new marker is added to the map.\n */\n onMarkerAdded = output<AXMapMarker>();\n\n /**\n * @description\n * Event triggered when marker positions are changed on the map.\n */\n onMarkerChanged = output<AXMapMarker[]>();\n\n /**\n * @description\n * Event triggered when a new polygon is added to the map.\n */\n onPolygonAdded = output<AXMapPolygon>();\n\n /**\n * @description\n * Event triggered when polygon positions are changed on the map.\n */\n onPolygonChanged = output<AXMapPolygon[]>();\n\n /**\n * @description\n * Event triggered when a location is found via the location control.\n */\n onLocationFound = output<AXMapMarker>();\n\n private mapContainer = viewChild<ElementRef>('mapContainer');\n private leafletService = inject(AXLeafletService);\n private rendered = signal(false);\n\n /**\n * @description\n * Adds a marker to the specified location on the map.\n * @param location - The location where the marker should be placed.\n */\n addMarker(location: AXMapMarker | AXMapMarker[]) {\n this.leafletService.addMarker(location);\n }\n\n addPolygon(location: AXMapPolygon | AXMapPolygon[], clickCallback?: (event: L.LeafletMouseEvent) => void) {\n this.leafletService.addPolygon(location, clickCallback);\n }\n\n /**\n * @description\n * Retrieves all markers currently placed on the map.\n * @returns An array of `AXMapMarker` representing all markers.\n */\n getMarkers(): AXMapMarker[] {\n return this.leafletService.getMarkers();\n }\n\n /**\n * @description\n * Retrieves all polygons currently placed on the map.\n * @returns An array of `AXMapPolygon` representing all polygons.\n */\n getPolygons(): AXMapPolygon[] {\n return this.leafletService.getPolygons();\n }\n\n /**\n * @description\n * Clear all markers and polygons\n */\n clearDrawItems() {\n this.leafletService.clearDrawItems();\n }\n\n /**\n * @description\n * Get all markers and polygons\n */\n getDrawItem() {\n return this.leafletService.getDrawItem();\n }\n\n /**\n * @description\n * set markers and polygons\n */\n setDrawItem(data: AXMapData) {\n return this.leafletService.setDrawItem(data);\n }\n\n /**\n * Adjusts the map view to fit all markers and polygons currently on the map.\n */\n public fitBoundsToDrawItems() {\n return this.leafletService.fitBoundsToDrawItems();\n }\n\n /**\n * @description\n * Flies the map to a specific location with optional zoom, marker placement, and animation duration.\n *\n * @param location - The target location to fly to.\n * @param zoom - Optional zoom level for the map.\n * @param setMarker - Whether to set a marker at the destination.\n * @param duration - Optional duration for the fly animation.\n */\n flyTo(location: AXMapMarker, zoom?: number, setMarker?: boolean, duration?: number) {\n this.leafletService.flyTo(location, zoom, setMarker, duration);\n }\n #initMap = afterNextRender(async () => {\n await this.leafletService.initMap(\n this.mapContainer().nativeElement,\n { latitude: this.latitude() ?? 31, longitude: this.longitude() ?? 51 },\n this.zoomLevel() ?? 5,\n );\n if (this.markers()) {\n this.leafletService.addMarker(this.markers());\n }\n if (this.polygons()) {\n this.leafletService.addPolygon(this.polygons());\n }\n this.leafletService.fitBoundsToDrawItems();\n this.rendered.set(true);\n });\n\n onLocationFoundSubscription?: Subscription;\n\n #locatorEffect = effect(() => {\n if (this.rendered()) {\n if (!this.hasLocator()) {\n this.leafletService.removeLocateControl();\n if (this.onLocationFoundSubscription) {\n this.onLocationFoundSubscription.unsubscribe();\n this.onLocationFoundSubscription = null;\n }\n } else {\n this.leafletService.addLocateControl(this.locatePlace());\n\n if (!this.onLocationFoundSubscription) {\n this.onLocationFoundSubscription = this.leafletService.onLocationFound\n .pipe(\n distinctUntilChanged(\n (prev: AXMapMarker, curr: AXMapMarker) =>\n prev.latitude === curr.latitude && prev.longitude === curr.longitude,\n ),\n )\n .subscribe((location: AXMapMarker) => {\n this.onLocationFound.emit(location);\n });\n }\n }\n }\n });\n\n onMarkerChangedSubscription?: Subscription;\n onMarkerAddedSubscription?: Subscription;\n onPolygonChangedSubscription?: Subscription;\n onPolygonAddedSubscription?: Subscription;\n\n #drawEffect = effect(() => {\n if (this.rendered()) {\n if (!this.hasDraw()) {\n this.leafletService.removeDrawControl();\n this.unsubscribeFromEvents();\n } else {\n this.leafletService.addDrawControl(this.markerPlace(), this.maxMarker() || 1, this.maxPolygon());\n if (!this.onMarkerChangedSubscription) {\n this.onMarkerChangedSubscription = this.leafletService.onMarkerChanged.subscribe((location) => {\n this.onMarkerChanged.emit(location);\n });\n }\n if (!this.onMarkerAddedSubscription) {\n this.onMarkerAddedSubscription = this.leafletService.onMarkerAdded.subscribe((location) => {\n this.onMarkerAdded.emit(location);\n });\n }\n if (!this.onPolygonChangedSubscription) {\n this.onPolygonChangedSubscription = this.leafletService.onPolygonChanged.subscribe((location) => {\n this.onPolygonChanged.emit(location);\n });\n }\n if (!this.onPolygonAddedSubscription) {\n this.onPolygonAddedSubscription = this.leafletService.onPolygonAdded.subscribe((location) => {\n this.onPolygonAdded.emit(location);\n });\n }\n }\n }\n });\n\n unsubscribeFromEvents() {\n if (this.onMarkerChangedSubscription) {\n this.onMarkerChangedSubscription.unsubscribe();\n this.onMarkerChangedSubscription = null;\n }\n if (this.onMarkerAddedSubscription) {\n this.onMarkerAddedSubscription.unsubscribe();\n this.onMarkerAddedSubscription = null;\n }\n if (this.onPolygonChangedSubscription) {\n this.onPolygonChangedSubscription.unsubscribe();\n this.onPolygonChangedSubscription = null;\n }\n if (this.onPolygonAddedSubscription) {\n this.onPolygonAddedSubscription.unsubscribe();\n this.onPolygonAddedSubscription = null;\n }\n }\n\n #zoomEffect = effect(() => {\n if (this.rendered() && this.zoomLevel() !== null) {\n this.leafletService.setZoomLevel(this.zoomLevel());\n }\n });\n\n #centerEffect = effect(() => {\n if (this.rendered() && this.latitude() !== null && this.longitude() !== null) {\n this.leafletService.setCenter({\n latitude: this.latitude(),\n longitude: this.longitude(),\n } as AXMapMarker);\n }\n });\n\n /**\n * @description\n * Cleanup function that destroys the map when the component is destroyed.\n */\n ngOnDestroy(): void {\n this.leafletService.destroyMap();\n }\n}\n","<div #mapContainer class=\"ax-map-container\"></div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXMapComponent } from './map.component';\n\n@NgModule({\n declarations: [AXMapComponent],\n imports: [CommonModule],\n exports: [AXMapComponent],\n})\nexport class AXMapModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-map.mjs","sources":["../../../../libs/components/map/src/lib/map.config.ts","../../../../libs/components/map/src/lib/map.service.ts","../../../../libs/components/map/src/lib/map.component.ts","../../../../libs/components/map/src/lib/map.component.html","../../../../libs/components/map/src/lib/map.module.ts","../../../../libs/components/map/src/acorex-components-map.ts"],"sourcesContent":["import { AX_GLOBAL_CONFIG } from '@acorex/core/config';\nimport { InjectionToken, inject } from '@angular/core';\nimport { set } from 'lodash-es';\n\nexport interface AXMapConfig {\n layers: string;\n layers2x: string;\n markerIcon: string;\n markerIcon2x: string;\n markerShadow: string;\n}\n\nexport const AX_MAP_CONFIG = new InjectionToken<AXMapConfig>('AX_MAP_CONFIG', {\n providedIn: 'root',\n factory: () => {\n const global = inject(AX_GLOBAL_CONFIG);\n set(global, 'layout.map', AX_MAP_CONFIG);\n return AXMapDefaultConfig;\n },\n});\n\nexport const baseUrl = '/assets/images/leaflet/';\n\nexport const AXMapDefaultConfig: AXMapConfig = {\n layers: `${baseUrl}layers.png`,\n layers2x: `${baseUrl}layers-2x.png`,\n markerIcon: `${baseUrl}marker-icon.png`,\n markerIcon2x: `${baseUrl}marker-icon-2x.png`,\n markerShadow: `${baseUrl}marker-shadow.png`,\n};\n\nexport type PartialMapConfig = Partial<AXMapConfig>;\n\nexport function mapConfig(config: PartialMapConfig = {}): AXMapConfig {\n const result = {\n ...AXMapDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { EventEmitter, inject, Injectable } from '@angular/core';\nimport { AX_MAP_CONFIG } from './map.config';\nimport {\n AXMapControlPlace,\n AXMapData,\n AXMapLatLng,\n AXMapLocation,\n AXMapMarker,\n AXMapPolygon,\n} from './map.type';\n\n/**\n * Service for managing Leaflet maps and related functionalities.\n */\n@Injectable()\nexport class AXLeafletService {\n private mapConfig = inject(AX_MAP_CONFIG);\n private icon: any;\n private position: AXMapControlPlace = 'topleft';\n private maxMarkers: number | null = null;\n private maxPolygons: number | null = null;\n private polygonColor = 'blue';\n\n protected L: typeof import('leaflet');\n private map?: L.Map;\n private drawControl?: L.Control.Draw;\n private locateControl?: L.Control.Locate;\n private drawnItems: L.FeatureGroup;\n\n /**\n * Emits when marker data changes.\n */\n public onMarkerChanged = new EventEmitter<AXMapMarker[]>();\n /**\n * Emits when a marker is added.\n */\n public onMarkerAdded = new EventEmitter<AXMapMarker>();\n /**\n * Emits when the user's location is found.\n */\n public onLocationFound = new EventEmitter<AXMapLocation>();\n /**\n * Emits when polygon data changes.\n */\n public onPolygonChanged = new EventEmitter<AXMapPolygon[]>();\n /**\n * Emits when a polygon is added.\n */\n public onPolygonAdded = new EventEmitter<AXMapPolygon>();\n\n /**\n * Loads the Leaflet library and its plugins.\n */\n public async loadLeaflet(): Promise<void> {\n try {\n this.L = await import('leaflet');\n await import('leaflet-draw');\n await import('leaflet.locatecontrol');\n this.icon = this.L.icon({\n iconUrl: this.mapConfig.markerIcon,\n shadowUrl: this.mapConfig.markerShadow,\n iconSize: [25, 41],\n iconAnchor: [12, 41],\n shadowSize: [41, 41],\n });\n } catch (error) {\n console.error('Error Loading Leaflet,', error);\n }\n }\n\n /**\n * Initializes the Leaflet map.\n * @param mapElement The HTML element to render the map in.\n * @param location The initial map center.\n * @param zoom The initial zoom level. Defaults to 13.\n */\n public async initMap(mapElement: HTMLElement, location: AXMapLatLng, zoom = 13) {\n await this.loadLeaflet();\n const map = this.L.map(mapElement).setView([location.latitude, location.longitude], zoom);\n this.L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {\n maxZoom: 20,\n attribution: '© ACoreX',\n }).addTo(map);\n this.drawnItems = new this.L.FeatureGroup();\n this.drawnItems.addTo(map);\n this.map = map;\n }\n\n /**\n * Gets the Leaflet map instance.\n * @returns The Leaflet map instance, or undefined if not initialized.\n */\n public getMap(): L.Map | undefined {\n return this.map;\n }\n\n /**\n * Gets the Leaflet package.\n * @returns The Leaflet package.\n */\n public getLeafletPackage(): typeof import('leaflet') {\n return this.L;\n }\n\n /**\n * Sets the zoom level of the map.\n * @param zoom The desired zoom level.\n */\n public setZoomLevel(zoom: number): void {\n this.map?.setZoom(zoom);\n }\n\n /**\n * Sets the center of the map.\n * @param location The new center location.\n */\n public setCenter(location: AXMapLatLng): void {\n if (this.map && location) {\n this.map.setView([location.latitude, location.longitude], this.map.getZoom());\n }\n }\n\n /**\n * Flies to a specific location on the map.\n * @param location The target location.\n * @param zoom The target zoom level (optional).\n * @param setMarker Whether to add a marker at the destination after flying.\n * @param duration The duration of the fly animation in seconds.\n */\n public flyTo(location: AXMapLatLng, zoom?: number, setMarker = false, duration = 1.0): void {\n if (this.map && location) {\n this.map.flyTo([location.latitude, location.longitude], zoom || this.map.getZoom(), {\n animate: true,\n duration: duration,\n });\n if (setMarker) {\n this.map.once('moveend', () => this.addMarker(location));\n }\n }\n }\n\n /**\n * Adds a marker or markers to the map.\n * @param locations The marker or markers to add.\n */\n public addMarker(locations: AXMapMarker | AXMapMarker[]): void {\n if (\n this.maxMarkers !== null &&\n this.getMarkers().length + (Array.isArray(locations) ? locations.length : 1) > this.maxMarkers\n ) {\n console.warn('Markers Reached max count.');\n } else {\n const locationsArray = Array.isArray(locations) ? locations : [locations];\n locationsArray.forEach((location) => {\n this.L.marker([location.latitude, location.longitude], {\n icon: this.icon,\n title: location.title,\n }).addTo(this.drawnItems);\n this.onMarkerAdded.emit(location);\n this.onMarkerChanged.emit(this.getMarkers());\n });\n if (this.getMarkers().length === this.maxMarkers) {\n this.addDrawControl(this.position, this.maxMarkers, this.maxPolygons);\n }\n }\n }\n\n /**\n * Adds a polygon or polygons to the map.\n * @param polygons The polygon or polygons to add.\n * @param clickCallback Optional callback function to be executed on polygon click.\n */\n public addPolygon(\n polygons: AXMapPolygon | AXMapPolygon[],\n clickCallback?: (event: L.LeafletMouseEvent) => void,\n ): void {\n const polygonsToAdd = Array.isArray(polygons) ? polygons : [polygons];\n\n for (const polygon of polygonsToAdd) {\n if (polygon.points.length < 3) {\n console.warn('Polygon needs 3 or more points.');\n continue;\n }\n\n if (this.maxPolygons !== null && this.getPolygons().length >= this.maxPolygons) {\n console.warn('Polygon reached max count.');\n break;\n }\n\n const latLngs = polygon.points.map(\n (location) => new this.L.LatLng(location.latitude, location.longitude),\n );\n const newPolygon = new this.L.Polygon(latLngs, { color: polygon.color || 'blue' });\n\n if (polygon.title) {\n newPolygon.bindPopup(polygon.title);\n }\n\n if (clickCallback) {\n newPolygon.on('click', clickCallback);\n }\n\n this.drawnItems.addLayer(newPolygon);\n this.onPolygonAdded.emit(polygon);\n this.onPolygonChanged.emit(this.getPolygons());\n }\n\n if (this.getPolygons().length === this.maxPolygons) {\n this.addDrawControl(this.position, this.maxMarkers, this.maxPolygons);\n }\n }\n\n /**\n * Gets all markers currently on the map.\n * @returns An array of AXMapMarker objects.\n */\n public getMarkers(): AXMapMarker[] {\n return this.drawnItems\n .getLayers()\n .filter((layer) => layer instanceof this.L.Marker)\n .map((marker) => {\n const latLng = (marker as L.Marker).getLatLng();\n const title = marker.options.title;\n return {\n latitude: latLng.lat,\n longitude: latLng.lng,\n title,\n } as AXMapMarker;\n });\n }\n /**\n * Gets all polygons currently on the map.\n * @returns An array of AXMapPolygon objects.\n */\n public getPolygons(): AXMapPolygon[] {\n return this.drawnItems\n .getLayers()\n .filter((layer) => layer instanceof this.L.Polygon)\n .map((polygon) => {\n const latLngs = polygon.getLatLngs()[0]; // Access the outer boundary\n\n const points: AXMapLatLng[] = (latLngs as any).map((latLng) => ({\n latitude: latLng.lat,\n longitude: latLng.lng,\n }));\n\n return {\n points,\n color: polygon.options?.color,\n };\n });\n }\n\n /**\n * Adds a draw control to the map for creating markers and polygons.\n * @param position The position of the control on the map. Defaults to 'topleft'.\n * @param maxMarkers The maximum number of markers allowed. Defaults to 1.\n * @param maxPolygons The maximum number of polygons allowed. Defaults to 1.\n * @param PolygonColor The default color for polygons.\n */\n public addDrawControl(\n position: AXMapControlPlace = 'topleft',\n maxMarkers = 1,\n maxPolygons = 1,\n PolygonColor?: string,\n ): void {\n this.position = position;\n this.maxMarkers = maxMarkers;\n this.maxPolygons = maxPolygons;\n this.polygonColor = PolygonColor || 'blue'; // Use provided color or default to blue\n\n if (this.drawControl) {\n this.map?.removeControl(this.drawControl);\n this.drawControl = undefined;\n }\n\n if (this.map) {\n this.drawControl = new this.L.Control.Draw({\n position: this.position,\n edit: {\n featureGroup: this.drawnItems,\n },\n draw: {\n marker: this.getMarkers().length < this.maxMarkers ? { icon: this.icon } : false,\n polygon: this.getPolygons().length < this.maxPolygons ? {} : false,\n polyline: false,\n rectangle: false,\n circle: false,\n circlemarker: false,\n },\n });\n this.map.addControl(this.drawControl);\n\n const onCreated = (event: any) => {\n const layer = event.layer;\n if (layer instanceof this.L.Marker) {\n const markerData = { latitude: layer.getLatLng().lat, longitude: layer.getLatLng().lng };\n this.addMarker(markerData);\n } else if (layer instanceof this.L.Polygon) {\n const latLngs = layer.getLatLngs();\n const polygonData: AXMapPolygon = {\n points: (latLngs[0] as Array<any>).map((latLng) => ({\n latitude: latLng.lat,\n longitude: latLng.lng,\n })),\n color: this.polygonColor || this.getRandomColorName(), // Use configured color or random\n };\n this.addPolygon(polygonData);\n } else {\n console.warn('Unsupported layer type drawn:', layer);\n }\n };\n\n const onDeleted = (event: any) => {\n const deletedLayers = event.layers;\n deletedLayers.eachLayer((layer: L.Layer) => {\n if (layer instanceof this.L.Marker) {\n this.onMarkerChanged.emit(this.getMarkers());\n } else if (layer instanceof this.L.Polygon) {\n this.onPolygonChanged.emit(this.getPolygons());\n } else {\n console.warn('Unsupported layer type deleted:', layer);\n }\n });\n this.addDrawControl(this.position, this.maxMarkers, this.maxPolygons);\n };\n\n const onEdited = (event: any) => {\n const layers = event.layers;\n layers.eachLayer((layer: L.Layer) => {\n if (layer instanceof this.L.Marker) {\n this.onMarkerChanged.emit(this.getMarkers());\n } else if (layer instanceof this.L.Polygon) {\n this.onPolygonChanged.emit(this.getPolygons());\n } else {\n console.warn('Unsupported layer type drawn:', layer);\n }\n });\n };\n\n this.map.off('draw:created');\n this.map.off('draw:deleted');\n this.map.off('draw:edited');\n\n this.map.on('draw:created', onCreated);\n this.map.on('draw:deleted', onDeleted);\n this.map.on('draw:edited', onEdited);\n }\n }\n\n /**\n * Adds a locate control to the map.\n * @param position The position of the control on the map. Defaults to 'bottomright'.\n */\n public addLocateControl(position: AXMapControlPlace = 'bottomright'): void {\n if (this.locateControl) {\n this.map?.removeControl(this.locateControl);\n this.locateControl = undefined;\n }\n if (this.map) {\n const locateControl = this.L.control\n .locate({\n position: position,\n flyTo: true,\n setView: 'untilPanOrZoom',\n showPopup: true,\n onLocationError: (e) => alert(e.message),\n onLocationOutsideMapBounds: (control) => control.stop(),\n locateOptions: {\n enableHighAccuracy: true,\n },\n strings: {\n title: 'Show my location',\n popup: 'You are within {distance} meters from this point',\n outsideMapBoundsMsg: 'You seem to be outside the map bounds',\n },\n })\n .addTo(this.map);\n\n this.locateControl = locateControl;\n\n const onLocationFound = (event: any) => {\n const location: AXMapLocation = {\n latitude: event.latitude,\n longitude: event.longitude,\n precision: event.accuracy,\n };\n this.onLocationFound.emit(location);\n };\n\n this.map.on('locationfound', onLocationFound);\n }\n }\n\n private availableColors = ['red', 'blue', 'green', 'orange', 'purple', 'brown', 'black'];\n\n private getRandomColorName = () => {\n const randomIndex = Math.floor(Math.random() * this.availableColors.length);\n return this.availableColors[randomIndex];\n };\n\n /**\n * Removes the draw control from the map.\n */\n public removeDrawControl(): void {\n if (this.drawControl) {\n this.map?.removeControl(this.drawControl);\n this.drawControl = undefined;\n }\n }\n\n /**\n * Removes the locate control from the map.\n */\n public removeLocateControl(): void {\n if (this.map && this.locateControl) {\n this.map.removeControl(this.locateControl);\n this.locateControl = undefined;\n }\n }\n\n /**\n * Clears all drawn items (markers and polygons) from the map.\n */\n public clearDrawItems(): void {\n if (this.drawnItems) {\n this.drawnItems.clearLayers();\n }\n }\n\n /**\n * Gets the current drawn items (markers and polygons).\n * @returns An object containing arrays of markers and polygons.\n */\n public getDrawItem(): AXMapData {\n return {\n markers: this.getMarkers(),\n polygons: this.getPolygons(),\n };\n }\n\n /**\n * Sets the drawn items (markers and polygons) on the map.\n * @param data An object containing arrays of markers and polygons.\n */\n public setDrawItem(data: AXMapData) {\n this.addMarker(data.markers);\n this.addPolygon(data.polygons);\n }\n\n /**\n * Adjusts the map view to fit all markers and polygons currently on the map.\n */\n public fitBoundsToDrawItems(): void {\n if (!this.map || !this.drawnItems) {\n console.warn('Map or drawn items not initialized.');\n return;\n }\n\n const bounds = this.L.latLngBounds([]);\n\n this.drawnItems.getLayers().forEach((layer) => {\n if (layer instanceof this.L.Marker) {\n bounds.extend((layer as L.Marker).getLatLng());\n } else if (layer instanceof this.L.Polygon) {\n const latLngs = (layer as L.Polygon).getLatLngs();\n (latLngs as any[]).forEach((latLngArray) => {\n latLngArray.forEach((latLng) => {\n bounds.extend(latLng);\n });\n });\n }\n });\n\n if (bounds.isValid()) {\n const maxZoom = 18;\n this.map.fitBounds(bounds, {\n padding: [20, 20],\n maxZoom: maxZoom,\n });\n } else {\n console.warn('No valid bounds found for markers or polygons.');\n }\n }\n\n /**\n * Destroys the map instance and removes all event listeners.\n */\n public destroyMap(): void {\n if (this.map) {\n this.map.off();\n this.map.remove();\n this.map = undefined;\n this.drawControl = undefined; // Important: Clear references to prevent memory leaks\n this.locateControl = undefined;\n this.drawnItems = undefined;\n }\n }\n}\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n inject,\n input,\n OnDestroy,\n output,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { AXLeafletService } from './map.service';\nimport { AXMapControlPlace, AXMapData, AXMapMarker, AXMapPolygon } from './map.type';\n\n/**\n * @description\n * The `AXMapComponent` provides an interactive map powered by Leaflet. It supports markers, location tracking,\n * and configurable zoom, latitude, longitude, and marker behavior. The component allows easy integration and\n * manipulation of map features.\n *\n * @example\n * <ax-map [latitude]=\"51.505\" [longitude]=\"-0.09\" [zoomLevel]=\"13\" [hasMarker]=\"true\"></ax-map>\n */\n@Component({\n selector: 'ax-map',\n templateUrl: './map.component.html',\n styleUrls: ['./map.component.scss'],\n providers: [AXLeafletService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class AXMapComponent implements OnDestroy {\n /**\n * @description\n * Zoom level of the map.\n */\n zoomLevel = input<number | null>(null);\n\n /**\n * @description\n * Latitude of the map center.\n */\n latitude = input<number | null>(null);\n\n /**\n * @description\n * Longitude of the map center.\n */\n longitude = input<number | null>(null);\n\n /**\n * @description\n * Maximum number of markers allowed on the map.\n * @default 0\n */\n maxMarker = input(0);\n\n /**\n * @description\n * Maximum number of polygons allowed on the map.\n * @default 0\n */\n maxPolygon = input(0);\n\n /**\n * @description\n * Whether the map should have a marker control.\n * @default false\n */\n hasDraw = input(false);\n\n /**\n * @description\n * Whether the map should have a location control.\n * @default false\n */\n hasLocator = input(false);\n\n /**\n * @description\n * Position of the marker control on the map.\n * @default 'topleft'\n */\n markerPlace = input<AXMapControlPlace>('topleft');\n\n /**\n * @description\n * Position of the locate control on the map.\n * @default 'bottomright'\n */\n locatePlace = input<AXMapControlPlace>('bottomright');\n\n /**\n * @description\n * Array or single marker location(s) to be placed on the map.\n * @default undefined\n */\n markers = input<AXMapMarker | AXMapMarker[] | undefined>(undefined);\n\n /**\n * @description\n * Array or single polygon location(s) to be placed on the map.\n * @default undefined\n */\n polygons = input<AXMapPolygon | AXMapPolygon[] | undefined>(undefined);\n\n /**\n * @description\n * Event triggered when a new marker is added to the map.\n */\n onMarkerAdded = output<AXMapMarker>();\n\n /**\n * @description\n * Event triggered when marker positions are changed on the map.\n */\n onMarkerChanged = output<AXMapMarker[]>();\n\n /**\n * @description\n * Event triggered when a new polygon is added to the map.\n */\n onPolygonAdded = output<AXMapPolygon>();\n\n /**\n * @description\n * Event triggered when polygon positions are changed on the map.\n */\n onPolygonChanged = output<AXMapPolygon[]>();\n\n /**\n * @description\n * Event triggered when a location is found via the location control.\n */\n onLocationFound = output<AXMapMarker>();\n\n private mapContainer = viewChild<ElementRef>('mapContainer');\n private leafletService = inject(AXLeafletService);\n private rendered = signal(false);\n\n /**\n * @description\n * Adds a marker to the specified location on the map.\n * @param location - The location where the marker should be placed.\n */\n addMarker(location: AXMapMarker | AXMapMarker[]) {\n this.leafletService.addMarker(location);\n }\n\n addPolygon(location: AXMapPolygon | AXMapPolygon[], clickCallback?: (event: L.LeafletMouseEvent) => void) {\n this.leafletService.addPolygon(location, clickCallback);\n }\n\n /**\n * @description\n * Retrieves all markers currently placed on the map.\n * @returns An array of `AXMapMarker` representing all markers.\n */\n getMarkers(): AXMapMarker[] {\n return this.leafletService.getMarkers();\n }\n\n /**\n * @description\n * Retrieves all polygons currently placed on the map.\n * @returns An array of `AXMapPolygon` representing all polygons.\n */\n getPolygons(): AXMapPolygon[] {\n return this.leafletService.getPolygons();\n }\n\n /**\n * @description\n * Clear all markers and polygons\n */\n clearDrawItems() {\n this.leafletService.clearDrawItems();\n }\n\n /**\n * @description\n * Get all markers and polygons\n */\n getDrawItem() {\n return this.leafletService.getDrawItem();\n }\n\n /**\n * @description\n * set markers and polygons\n */\n setDrawItem(data: AXMapData) {\n return this.leafletService.setDrawItem(data);\n }\n\n /**\n * Adjusts the map view to fit all markers and polygons currently on the map.\n */\n public fitBoundsToDrawItems() {\n return this.leafletService.fitBoundsToDrawItems();\n }\n\n /**\n * @description\n * Flies the map to a specific location with optional zoom, marker placement, and animation duration.\n *\n * @param location - The target location to fly to.\n * @param zoom - Optional zoom level for the map.\n * @param setMarker - Whether to set a marker at the destination.\n * @param duration - Optional duration for the fly animation.\n */\n flyTo(location: AXMapMarker, zoom?: number, setMarker?: boolean, duration?: number) {\n this.leafletService.flyTo(location, zoom, setMarker, duration);\n }\n #initMap = afterNextRender(async () => {\n await this.leafletService.initMap(\n this.mapContainer().nativeElement,\n { latitude: this.latitude() ?? 31, longitude: this.longitude() ?? 51 },\n this.zoomLevel() ?? 5,\n );\n if (this.markers()) {\n this.leafletService.addMarker(this.markers());\n }\n if (this.polygons()) {\n this.leafletService.addPolygon(this.polygons());\n }\n if (\n this.latitude() === null &&\n this.longitude() === null &&\n this.zoomLevel() === null &&\n (this.polygons() || this.markers())\n ) {\n this.leafletService.fitBoundsToDrawItems();\n }\n this.rendered.set(true);\n });\n\n onLocationFoundSubscription?: Subscription;\n\n #locatorEffect = effect(() => {\n if (this.rendered()) {\n if (!this.hasLocator()) {\n this.leafletService.removeLocateControl();\n if (this.onLocationFoundSubscription) {\n this.onLocationFoundSubscription.unsubscribe();\n this.onLocationFoundSubscription = null;\n }\n } else {\n this.leafletService.addLocateControl(this.locatePlace());\n\n if (!this.onLocationFoundSubscription) {\n this.onLocationFoundSubscription = this.leafletService.onLocationFound\n .pipe(\n distinctUntilChanged(\n (prev: AXMapMarker, curr: AXMapMarker) =>\n prev.latitude === curr.latitude && prev.longitude === curr.longitude,\n ),\n )\n .subscribe((location: AXMapMarker) => {\n this.onLocationFound.emit(location);\n });\n }\n }\n }\n });\n\n onMarkerChangedSubscription?: Subscription;\n onMarkerAddedSubscription?: Subscription;\n onPolygonChangedSubscription?: Subscription;\n onPolygonAddedSubscription?: Subscription;\n\n #drawEffect = effect(() => {\n if (this.rendered()) {\n if (!this.hasDraw()) {\n this.leafletService.removeDrawControl();\n this.unsubscribeFromEvents();\n } else {\n this.leafletService.addDrawControl(this.markerPlace(), this.maxMarker() || 1, this.maxPolygon());\n if (!this.onMarkerChangedSubscription) {\n this.onMarkerChangedSubscription = this.leafletService.onMarkerChanged.subscribe((location) => {\n this.onMarkerChanged.emit(location);\n });\n }\n if (!this.onMarkerAddedSubscription) {\n this.onMarkerAddedSubscription = this.leafletService.onMarkerAdded.subscribe((location) => {\n this.onMarkerAdded.emit(location);\n });\n }\n if (!this.onPolygonChangedSubscription) {\n this.onPolygonChangedSubscription = this.leafletService.onPolygonChanged.subscribe((location) => {\n this.onPolygonChanged.emit(location);\n });\n }\n if (!this.onPolygonAddedSubscription) {\n this.onPolygonAddedSubscription = this.leafletService.onPolygonAdded.subscribe((location) => {\n this.onPolygonAdded.emit(location);\n });\n }\n }\n }\n });\n\n unsubscribeFromEvents() {\n if (this.onMarkerChangedSubscription) {\n this.onMarkerChangedSubscription.unsubscribe();\n this.onMarkerChangedSubscription = null;\n }\n if (this.onMarkerAddedSubscription) {\n this.onMarkerAddedSubscription.unsubscribe();\n this.onMarkerAddedSubscription = null;\n }\n if (this.onPolygonChangedSubscription) {\n this.onPolygonChangedSubscription.unsubscribe();\n this.onPolygonChangedSubscription = null;\n }\n if (this.onPolygonAddedSubscription) {\n this.onPolygonAddedSubscription.unsubscribe();\n this.onPolygonAddedSubscription = null;\n }\n }\n\n #zoomEffect = effect(() => {\n if (this.rendered() && this.zoomLevel() !== null) {\n this.leafletService.setZoomLevel(this.zoomLevel());\n }\n });\n\n #centerEffect = effect(() => {\n if (this.rendered() && this.latitude() !== null && this.longitude() !== null) {\n this.leafletService.setCenter({\n latitude: this.latitude(),\n longitude: this.longitude(),\n } as AXMapMarker);\n }\n });\n\n /**\n * @description\n * Cleanup function that destroys the map when the component is destroyed.\n */\n ngOnDestroy(): void {\n this.leafletService.destroyMap();\n }\n}\n","<div #mapContainer class=\"ax-map-container\"></div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXMapComponent } from './map.component';\n\n@NgModule({\n declarations: [AXMapComponent],\n imports: [CommonModule],\n exports: [AXMapComponent],\n})\nexport class AXMapModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}