@acorex/components 18.9.8 → 18.10.2
Sign up to get free protection for your applications and to get access to all the features.
- package/calendar/lib/calendar-range.component.d.ts +2 -1
- package/drawer/lib/drawer/drawer-item/drawer.component.d.ts +2 -2
- package/esm2022/calendar/lib/calendar-range.component.mjs +8 -4
- package/esm2022/drawer/lib/drawer/drawer-item/drawer.component.mjs +5 -5
- package/esm2022/media-viewer/lib/media-viewer-slider/media-viewer-slider.component.mjs +4 -2
- package/esm2022/menu/lib/menu-item/menu-item.component.mjs +46 -38
- package/esm2022/menu/lib/menu.component.mjs +109 -9
- package/esm2022/menu/lib/menu.module.mjs +5 -4
- package/esm2022/menu/lib/menu.service.mjs +7 -2
- package/esm2022/qrcode/lib/qrcode.class.mjs +3 -5
- package/esm2022/qrcode/lib/qrcode.component.mjs +32 -53
- package/esm2022/qrcode/lib/qrcode.module.mjs +6 -6
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.mjs +3 -6
- package/fesm2022/acorex-components-calendar.mjs +6 -2
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +4 -4
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +3 -1
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +161 -47
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-qrcode.mjs +39 -62
- package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +2 -5
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/menu/lib/menu-item/menu-item.component.d.ts +29 -28
- package/menu/lib/menu.component.d.ts +8 -1
- package/menu/lib/menu.module.d.ts +2 -1
- package/menu/lib/menu.service.d.ts +5 -0
- package/package.json +54 -54
- package/qrcode/lib/qrcode.class.d.ts +1 -1
- package/qrcode/lib/qrcode.component.d.ts +3 -2
- package/qrcode/lib/qrcode.module.d.ts +4 -4
- package/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.d.ts +1 -2
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-media-viewer.mjs","sources":["../../../../libs/components/media-viewer/src/lib/media-viewer.service.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-type-registry.service.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-slider/media-viewer-slider.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-slider/media-viewer-slider.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-container/media-viewer-container.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-container/media-viewer-container.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-thumbnail/media-viewer-thumbnail.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-thumbnail/media-viewer-thumbnail.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-types.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/audio-player/audio-player.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/audio-player/audio-player.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/image-viewer/image-viewer.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/image-viewer/image-viewer.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/pdf-reader/pdf-reader.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/pdf-reader/pdf-reader.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/video-player/video-player.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/video-player/video-player.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer.module.ts","../../../../libs/components/media-viewer/src/acorex-components-media-viewer.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\nimport { AXMediaViewerData } from './media-viewer-types';\n\n@Injectable()\nexport class AXMediaViewerService {\n dataArray = signal<AXMediaViewerData[]>([]);\n selectedIndex = signal(0);\n}\n","import { Injectable } from '@angular/core';\nimport { AXMediaViewerType } from './media-viewer-types';\n\n@Injectable({ providedIn: 'root' })\nexport class AXMediaViewerTypeRegistryService {\n private plugins: Map<string, AXMediaViewerType> = new Map<string, AXMediaViewerType>();\n\n register(...plugins: AXMediaViewerType[]) {\n plugins.forEach((p) => this.plugins.set(p.name, p));\n }\n\n public resolve(name: string): AXMediaViewerType | undefined {\n return this.plugins.get(name);\n }\n}\n","import { isBrowser } from '@acorex/core/platform';\nimport { CdkPortalOutletAttachedRef, ComponentPortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n effect,\n inject,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { AXMediaViewerTypeRegistryService } from '../media-viewer-type-registry.service';\nimport { AXMediaViewerData } from '../media-viewer-types';\nimport { AXMediaViewerService } from '../media-viewer.service';\n\n@Component({\n selector: 'ax-media-viewer-slider',\n templateUrl: './media-viewer-slider.component.html',\n styleUrls: ['./media-viewer-slider.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMediaViewerSliderComponent {\n protected service = inject(AXMediaViewerService);\n\n dataObject = input<AXMediaViewerData>();\n\n /** @ignore */\n protected portal = signal<ComponentPortal<any> | null>(null);\n\n /** @ignore */\n protected registryService = inject(AXMediaViewerTypeRegistryService);\n\n /** @ignore */\n constructor() {\n effect(\n () => {\n this.portal.set(new ComponentPortal(this.registryService.resolve(this.dataObject()?.type).component));\n },\n { allowSignalWrites: true },\n );\n }\n\n /** @ignore */\n protected _handleAttached(ref: CdkPortalOutletAttachedRef) {\n ref = ref as ComponentRef<unknown>;\n if (ref.instance && isBrowser()) {\n Object.assign(ref.instance, { message: this.dataObject() });\n }\n }\n}\n","<ng-template [cdkPortalOutlet]=\"portal()\" (attached)=\"_handleAttached($event)\"></ng-template>\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { AXMediaViewerData } from '../media-viewer-types';\nimport { AXMediaViewerService } from '../media-viewer.service';\n\n@Component({\n selector: 'ax-media-viewer-container',\n templateUrl: './media-viewer-container.component.html',\n styleUrls: ['./media-viewer-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMediaViewerContainerComponent {\n dataArray = input<AXMediaViewerData[]>();\n\n protected service = inject(AXMediaViewerService);\n\n protected arrayLength = computed(() => this.dataArray().length);\n protected arrayIndex = computed(() => this.service.selectedIndex());\n protected showComponent = computed(() => this.dataArray()[this.arrayIndex()]);\n\n constructor() {\n afterNextRender(() => {\n this.service.dataArray.set(this.dataArray());\n });\n }\n\n protected nextHandler() {\n if (this.arrayIndex() === this.arrayLength() - 1) return;\n this.service.selectedIndex.update((prev) => prev + 1);\n }\n\n protected backHandler() {\n if (this.arrayIndex() === 0) return;\n this.service.selectedIndex.update((prev) => prev - 1);\n }\n}\n","<ng-content select=\"ax-prefix\"> </ng-content>\n\n<div class=\"ax-media-viewer-slider-container ax-sm\">\n <ax-button (click)=\"backHandler()\">\n <ax-icon class=\"ax-icon ax-icon-arrow-left button-slider-media\"> </ax-icon>\n </ax-button>\n\n <ax-media-viewer-slider [dataObject]=\"showComponent()\"></ax-media-viewer-slider>\n\n <ax-button (click)=\"nextHandler()\">\n <ax-icon class=\"ax-icon ax-icon-arrow-right\"> </ax-icon>\n </ax-button>\n</div>\n\n<ng-content select=\"ax-suffix\"> </ng-content>\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { AXMediaViewerData } from '../media-viewer-types';\nimport { AXMediaViewerService } from '../media-viewer.service';\n\n@Component({\n selector: 'ax-media-viewer-thumbnail',\n templateUrl: './media-viewer-thumbnail.component.html',\n styleUrls: ['./media-viewer-thumbnail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMediaViewerThumbnailComponent {\n protected service = inject(AXMediaViewerService);\n protected data = signal<AXMediaViewerData[]>([]);\n\n constructor() {\n afterNextRender(() => {\n this.data.set(this.service.dataArray());\n });\n }\n\n protected clickHandler(i: number) {\n this.service.selectedIndex.set(i);\n }\n}\n","@for (item of data(); track $index) {\n <div\n class=\"ax-thumbnail\"\n (click)=\"clickHandler($index)\"\n [ngClass]=\"$index === service.selectedIndex() && 'active'\"\n >\n <img [src]=\"item.thumbnail\" alt=\"thumbnail\" />\n </div>\n}\n","import { Injectable, Type } from '@angular/core';\n\nexport interface AXMediaViewerType {\n name: string;\n component: Type<any>;\n}\n\nexport type AXMediaViewerData = {\n id: string;\n type: 'image' | 'audio' | 'pdf' | 'video';\n url: string;\n thumbnail: string;\n};\n\n@Injectable()\nexport class AXMediaViewerBaseComponent {\n message: AXMediaViewerData;\n}\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMediaViewerBaseComponent, AXMediaViewerData } from '../../media-viewer-types';\n\n@Component({\n selector: 'ax-audio-player',\n templateUrl: './audio-player.component.html',\n styleUrls: ['./audio-player.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXAudioPlayerComponent extends AXMediaViewerBaseComponent {\n dataObject = signal<AXMediaViewerData>(null);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.dataObject.set(this.message);\n });\n }\n}\n","<audio class=\"ax-audio-player-tag\" controls [src]=\"dataObject()?.url\"></audio>\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMediaViewerBaseComponent, AXMediaViewerData } from '../../media-viewer-types';\n\n@Component({\n selector: 'ax-image-viewer',\n templateUrl: './image-viewer.component.html',\n styleUrls: ['./image-viewer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXImageViewerComponent extends AXMediaViewerBaseComponent {\n dataObject = signal<AXMediaViewerData>(null);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.dataObject.set(this.message);\n });\n }\n}\n","<img [src]=\"dataObject()?.url\" />\n","import { afterNextRender, ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXMediaViewerBaseComponent } from '../../media-viewer-types';\n\n@Component({\n selector: 'ax-pdf-reader',\n templateUrl: './pdf-reader.component.html',\n styleUrls: ['./pdf-reader.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXPdfReaderComponent extends AXMediaViewerBaseComponent {\n constructor() {\n super();\n afterNextRender(() => {\n const obj = document.createElement('object');\n obj.type = 'application/pdf';\n obj.data = this.message.url;\n obj.classList.add('pdfObj');\n const container = document.querySelector('ax-pdf-reader');\n container.appendChild(obj);\n });\n }\n}\n","\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMediaViewerBaseComponent, AXMediaViewerData } from '../../media-viewer-types';\n\n@Component({\n selector: 'ax-video-player',\n templateUrl: './video-player.component.html',\n styleUrls: ['./video-player.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXVideoPlayerComponent extends AXMediaViewerBaseComponent {\n dataObject = signal<AXMediaViewerData>(null);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.dataObject.set(this.message);\n });\n }\n}\n","<video controls [src]=\"dataObject()?.url\"></video>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { Inject, ModuleWithProviders, NgModule, Optional } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXMediaViewerContainerComponent } from './media-viewer-container/media-viewer-container.component';\nimport { AXMediaViewerSliderComponent } from './media-viewer-slider/media-viewer-slider.component';\nimport { AXMediaViewerThumbnailComponent } from './media-viewer-thumbnail/media-viewer-thumbnail.component';\nimport { AXAudioPlayerComponent } from './media-viewer-tools/audio-player/audio-player.component';\nimport { AXImageViewerComponent } from './media-viewer-tools/image-viewer/image-viewer.component';\nimport { AXPdfReaderComponent } from './media-viewer-tools/pdf-reader/pdf-reader.component';\nimport { AXVideoPlayerComponent } from './media-viewer-tools/video-player/video-player.component';\nimport { AXMediaViewerTypeRegistryService } from './media-viewer-type-registry.service';\nimport { AXMediaViewerType } from './media-viewer-types';\nimport { AXMediaViewerService } from './media-viewer.service';\n\nexport interface AXMediaViewerModuleConfig {\n types: AXMediaViewerType[];\n}\n\nconst COMPONENT = [\n AXMediaViewerContainerComponent,\n AXMediaViewerSliderComponent,\n AXMediaViewerThumbnailComponent,\n AXAudioPlayerComponent,\n AXImageViewerComponent,\n AXPdfReaderComponent,\n AXVideoPlayerComponent,\n];\nconst MODULES = [CommonModule, AXButtonModule, AXDecoratorModule, CdkPortalOutlet, FormsModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [AXMediaViewerService],\n})\nexport class AXMediaViewerModule {\n constructor(@Optional() @Inject('AXMediaViewerFactory') instances: any[]) {\n instances?.forEach((f) => {\n f();\n });\n }\n\n static forRoot(config?: AXMediaViewerModuleConfig): ModuleWithProviders<AXMediaViewerModule> {\n return {\n ngModule: AXMediaViewerModule,\n providers: [\n {\n provide: 'AXMediaViewerFactory',\n useFactory: (registry: AXMediaViewerTypeRegistryService) => () => {\n if (config?.types?.length) {\n registry.register(...config.types);\n }\n registry.register({\n name: 'audio',\n component: AXAudioPlayerComponent,\n });\n registry.register({\n name: 'image',\n component: AXImageViewerComponent,\n });\n registry.register({\n name: 'pdf',\n component: AXPdfReaderComponent,\n });\n registry.register({\n name: 'video',\n component: AXVideoPlayerComponent,\n });\n },\n deps: [AXMediaViewerTypeRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n static forChild(config?: AXMediaViewerModuleConfig): ModuleWithProviders<AXMediaViewerModule> {\n return {\n ngModule: AXMediaViewerModule,\n providers: [\n {\n provide: 'AXMediaViewerFactory',\n useFactory: (registry: AXMediaViewerTypeRegistryService) => () => {\n if (config?.types?.length) {\n registry.register(...config.types);\n }\n },\n deps: [AXMediaViewerTypeRegistryService],\n multi: true,\n },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i3.AXMediaViewerSliderComponent"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-components-media-viewer.mjs","sources":["../../../../libs/components/media-viewer/src/lib/media-viewer.service.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-type-registry.service.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-slider/media-viewer-slider.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-slider/media-viewer-slider.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-container/media-viewer-container.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-container/media-viewer-container.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-thumbnail/media-viewer-thumbnail.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-thumbnail/media-viewer-thumbnail.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-types.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/audio-player/audio-player.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/audio-player/audio-player.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/image-viewer/image-viewer.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/image-viewer/image-viewer.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/pdf-reader/pdf-reader.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/pdf-reader/pdf-reader.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/video-player/video-player.component.ts","../../../../libs/components/media-viewer/src/lib/media-viewer-tools/video-player/video-player.component.html","../../../../libs/components/media-viewer/src/lib/media-viewer.module.ts","../../../../libs/components/media-viewer/src/acorex-components-media-viewer.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\nimport { AXMediaViewerData } from './media-viewer-types';\n\n@Injectable()\nexport class AXMediaViewerService {\n dataArray = signal<AXMediaViewerData[]>([]);\n selectedIndex = signal(0);\n}\n","import { Injectable } from '@angular/core';\nimport { AXMediaViewerType } from './media-viewer-types';\n\n@Injectable({ providedIn: 'root' })\nexport class AXMediaViewerTypeRegistryService {\n private plugins: Map<string, AXMediaViewerType> = new Map<string, AXMediaViewerType>();\n\n register(...plugins: AXMediaViewerType[]) {\n plugins.forEach((p) => this.plugins.set(p.name, p));\n }\n\n public resolve(name: string): AXMediaViewerType | undefined {\n return this.plugins.get(name);\n }\n}\n","import { isBrowser } from '@acorex/core/platform';\nimport { CdkPortalOutletAttachedRef, ComponentPortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n effect,\n inject,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { AXMediaViewerTypeRegistryService } from '../media-viewer-type-registry.service';\nimport { AXMediaViewerData } from '../media-viewer-types';\nimport { AXMediaViewerService } from '../media-viewer.service';\n\n@Component({\n selector: 'ax-media-viewer-slider',\n templateUrl: './media-viewer-slider.component.html',\n styleUrls: ['./media-viewer-slider.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMediaViewerSliderComponent {\n protected service = inject(AXMediaViewerService);\n\n dataObject = input<AXMediaViewerData>();\n\n /** @ignore */\n protected portal = signal<ComponentPortal<any> | null>(null);\n\n /** @ignore */\n protected registryService = inject(AXMediaViewerTypeRegistryService);\n\n /** @ignore */\n constructor() {\n effect(\n () => {\n if (this.dataObject()) {\n this.portal.set(\n new ComponentPortal(this.registryService.resolve(this.dataObject().type).component),\n );\n }\n },\n { allowSignalWrites: true },\n );\n }\n\n /** @ignore */\n protected _handleAttached(ref: CdkPortalOutletAttachedRef) {\n ref = ref as ComponentRef<unknown>;\n if (ref.instance && isBrowser()) {\n Object.assign(ref.instance, { message: this.dataObject() });\n }\n }\n}\n","<ng-template [cdkPortalOutlet]=\"portal()\" (attached)=\"_handleAttached($event)\"></ng-template>\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { AXMediaViewerData } from '../media-viewer-types';\nimport { AXMediaViewerService } from '../media-viewer.service';\n\n@Component({\n selector: 'ax-media-viewer-container',\n templateUrl: './media-viewer-container.component.html',\n styleUrls: ['./media-viewer-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMediaViewerContainerComponent {\n dataArray = input<AXMediaViewerData[]>();\n\n protected service = inject(AXMediaViewerService);\n\n protected arrayLength = computed(() => this.dataArray().length);\n protected arrayIndex = computed(() => this.service.selectedIndex());\n protected showComponent = computed(() => this.dataArray()[this.arrayIndex()]);\n\n constructor() {\n afterNextRender(() => {\n this.service.dataArray.set(this.dataArray());\n });\n }\n\n protected nextHandler() {\n if (this.arrayIndex() === this.arrayLength() - 1) return;\n this.service.selectedIndex.update((prev) => prev + 1);\n }\n\n protected backHandler() {\n if (this.arrayIndex() === 0) return;\n this.service.selectedIndex.update((prev) => prev - 1);\n }\n}\n","<ng-content select=\"ax-prefix\"> </ng-content>\n\n<div class=\"ax-media-viewer-slider-container ax-sm\">\n <ax-button (click)=\"backHandler()\">\n <ax-icon class=\"ax-icon ax-icon-arrow-left button-slider-media\"> </ax-icon>\n </ax-button>\n\n <ax-media-viewer-slider [dataObject]=\"showComponent()\"></ax-media-viewer-slider>\n\n <ax-button (click)=\"nextHandler()\">\n <ax-icon class=\"ax-icon ax-icon-arrow-right\"> </ax-icon>\n </ax-button>\n</div>\n\n<ng-content select=\"ax-suffix\"> </ng-content>\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { AXMediaViewerData } from '../media-viewer-types';\nimport { AXMediaViewerService } from '../media-viewer.service';\n\n@Component({\n selector: 'ax-media-viewer-thumbnail',\n templateUrl: './media-viewer-thumbnail.component.html',\n styleUrls: ['./media-viewer-thumbnail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMediaViewerThumbnailComponent {\n protected service = inject(AXMediaViewerService);\n protected data = signal<AXMediaViewerData[]>([]);\n\n constructor() {\n afterNextRender(() => {\n this.data.set(this.service.dataArray());\n });\n }\n\n protected clickHandler(i: number) {\n this.service.selectedIndex.set(i);\n }\n}\n","@for (item of data(); track $index) {\n <div\n class=\"ax-thumbnail\"\n (click)=\"clickHandler($index)\"\n [ngClass]=\"$index === service.selectedIndex() && 'active'\"\n >\n <img [src]=\"item.thumbnail\" alt=\"thumbnail\" />\n </div>\n}\n","import { Injectable, Type } from '@angular/core';\n\nexport interface AXMediaViewerType {\n name: string;\n component: Type<any>;\n}\n\nexport type AXMediaViewerData = {\n id: string;\n type: 'image' | 'audio' | 'pdf' | 'video';\n url: string;\n thumbnail: string;\n};\n\n@Injectable()\nexport class AXMediaViewerBaseComponent {\n message: AXMediaViewerData;\n}\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMediaViewerBaseComponent, AXMediaViewerData } from '../../media-viewer-types';\n\n@Component({\n selector: 'ax-audio-player',\n templateUrl: './audio-player.component.html',\n styleUrls: ['./audio-player.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXAudioPlayerComponent extends AXMediaViewerBaseComponent {\n dataObject = signal<AXMediaViewerData>(null);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.dataObject.set(this.message);\n });\n }\n}\n","<audio class=\"ax-audio-player-tag\" controls [src]=\"dataObject()?.url\"></audio>\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMediaViewerBaseComponent, AXMediaViewerData } from '../../media-viewer-types';\n\n@Component({\n selector: 'ax-image-viewer',\n templateUrl: './image-viewer.component.html',\n styleUrls: ['./image-viewer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXImageViewerComponent extends AXMediaViewerBaseComponent {\n dataObject = signal<AXMediaViewerData>(null);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.dataObject.set(this.message);\n });\n }\n}\n","<img [src]=\"dataObject()?.url\" />\n","import { afterNextRender, ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AXMediaViewerBaseComponent } from '../../media-viewer-types';\n\n@Component({\n selector: 'ax-pdf-reader',\n templateUrl: './pdf-reader.component.html',\n styleUrls: ['./pdf-reader.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXPdfReaderComponent extends AXMediaViewerBaseComponent {\n constructor() {\n super();\n afterNextRender(() => {\n const obj = document.createElement('object');\n obj.type = 'application/pdf';\n obj.data = this.message.url;\n obj.classList.add('pdfObj');\n const container = document.querySelector('ax-pdf-reader');\n container.appendChild(obj);\n });\n }\n}\n","\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMediaViewerBaseComponent, AXMediaViewerData } from '../../media-viewer-types';\n\n@Component({\n selector: 'ax-video-player',\n templateUrl: './video-player.component.html',\n styleUrls: ['./video-player.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXVideoPlayerComponent extends AXMediaViewerBaseComponent {\n dataObject = signal<AXMediaViewerData>(null);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.dataObject.set(this.message);\n });\n }\n}\n","<video controls [src]=\"dataObject()?.url\"></video>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { Inject, ModuleWithProviders, NgModule, Optional } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXMediaViewerContainerComponent } from './media-viewer-container/media-viewer-container.component';\nimport { AXMediaViewerSliderComponent } from './media-viewer-slider/media-viewer-slider.component';\nimport { AXMediaViewerThumbnailComponent } from './media-viewer-thumbnail/media-viewer-thumbnail.component';\nimport { AXAudioPlayerComponent } from './media-viewer-tools/audio-player/audio-player.component';\nimport { AXImageViewerComponent } from './media-viewer-tools/image-viewer/image-viewer.component';\nimport { AXPdfReaderComponent } from './media-viewer-tools/pdf-reader/pdf-reader.component';\nimport { AXVideoPlayerComponent } from './media-viewer-tools/video-player/video-player.component';\nimport { AXMediaViewerTypeRegistryService } from './media-viewer-type-registry.service';\nimport { AXMediaViewerType } from './media-viewer-types';\nimport { AXMediaViewerService } from './media-viewer.service';\n\nexport interface AXMediaViewerModuleConfig {\n types: AXMediaViewerType[];\n}\n\nconst COMPONENT = [\n AXMediaViewerContainerComponent,\n AXMediaViewerSliderComponent,\n AXMediaViewerThumbnailComponent,\n AXAudioPlayerComponent,\n AXImageViewerComponent,\n AXPdfReaderComponent,\n AXVideoPlayerComponent,\n];\nconst MODULES = [CommonModule, AXButtonModule, AXDecoratorModule, CdkPortalOutlet, FormsModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [AXMediaViewerService],\n})\nexport class AXMediaViewerModule {\n constructor(@Optional() @Inject('AXMediaViewerFactory') instances: any[]) {\n instances?.forEach((f) => {\n f();\n });\n }\n\n static forRoot(config?: AXMediaViewerModuleConfig): ModuleWithProviders<AXMediaViewerModule> {\n return {\n ngModule: AXMediaViewerModule,\n providers: [\n {\n provide: 'AXMediaViewerFactory',\n useFactory: (registry: AXMediaViewerTypeRegistryService) => () => {\n if (config?.types?.length) {\n registry.register(...config.types);\n }\n registry.register({\n name: 'audio',\n component: AXAudioPlayerComponent,\n });\n registry.register({\n name: 'image',\n component: AXImageViewerComponent,\n });\n registry.register({\n name: 'pdf',\n component: AXPdfReaderComponent,\n });\n registry.register({\n name: 'video',\n component: AXVideoPlayerComponent,\n });\n },\n deps: [AXMediaViewerTypeRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n static forChild(config?: AXMediaViewerModuleConfig): ModuleWithProviders<AXMediaViewerModule> {\n return {\n ngModule: AXMediaViewerModule,\n providers: [\n {\n provide: 'AXMediaViewerFactory',\n useFactory: (registry: AXMediaViewerTypeRegistryService) => () => {\n if (config?.types?.length) {\n registry.register(...config.types);\n }\n },\n deps: [AXMediaViewerTypeRegistryService],\n multi: true,\n },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i3.AXMediaViewerSliderComponent"],"mappings":"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"}
|
@@ -1,10 +1,12 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
|
-
import { signal, Injectable, inject, input, output, afterNextRender, Component, ViewChild, ContentChildren, HostBinding, HostListener,
|
2
|
+
import { signal, Injectable, inject, input, output, afterNextRender, effect, Component, ViewEncapsulation, ViewChild, ContentChildren, HostBinding, HostListener, NgModule } from '@angular/core';
|
3
3
|
import { MXInteractiveComponent, MXBaseComponent } from '@acorex/components/common';
|
4
4
|
import * as i1 from '@acorex/components/popover';
|
5
5
|
import { AXPopoverComponent, AXPopoverModule } from '@acorex/components/popover';
|
6
6
|
import { BehaviorSubject } from 'rxjs';
|
7
|
+
import * as i1$1 from '@acorex/components/decorators';
|
7
8
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
9
|
+
import { AXButtonModule } from '@acorex/components/button';
|
8
10
|
import { AXLoadingModule } from '@acorex/components/loading';
|
9
11
|
import { AXTranslationModule } from '@acorex/core/translation';
|
10
12
|
import { OverlayModule } from '@angular/cdk/overlay';
|
@@ -20,6 +22,11 @@ class AXRootMenu {
|
|
20
22
|
class AXMenuService {
|
21
23
|
constructor() {
|
22
24
|
this.activeMenus$ = new BehaviorSubject([]);
|
25
|
+
this.rightOverflow = signal(0);
|
26
|
+
this.leftOverflow = signal(0);
|
27
|
+
this.overflowElements = signal([]);
|
28
|
+
this.notOverflowElements = signal([]);
|
29
|
+
this.isOverflowExist = signal(false);
|
23
30
|
}
|
24
31
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
25
32
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMenuService, providedIn: 'root' }); }
|
@@ -39,42 +46,43 @@ class AXMenuItemComponent extends MXInteractiveComponent {
|
|
39
46
|
/** @ignore */
|
40
47
|
constructor() {
|
41
48
|
super();
|
49
|
+
this.service = inject(AXMenuService);
|
42
50
|
/**
|
43
|
-
|
44
|
-
|
51
|
+
* Injects the `AXMenuService` for managing menu interactions.
|
52
|
+
*/
|
45
53
|
this.menuService = inject(AXMenuService);
|
46
54
|
/**
|
47
|
-
|
48
|
-
|
55
|
+
* The vertical offset for positioning, initialized to 0.
|
56
|
+
*/
|
49
57
|
this.offsetY = signal(0);
|
50
58
|
/**
|
51
|
-
|
52
|
-
|
59
|
+
* The horizontal offset for positioning, initialized to 0.
|
60
|
+
*/
|
53
61
|
this.offsetX = signal(0);
|
54
62
|
/**
|
55
|
-
|
56
|
-
|
63
|
+
* The text content, initialized to an empty string.
|
64
|
+
*/
|
57
65
|
this.text = input();
|
58
66
|
/**
|
59
|
-
|
60
|
-
|
67
|
+
* Indicates whether the item is active.
|
68
|
+
*/
|
61
69
|
this.active = input();
|
62
70
|
/**
|
63
|
-
|
64
|
-
|
71
|
+
* Emitted when the active state changes.
|
72
|
+
*/
|
65
73
|
this.activeChange = output();
|
66
74
|
/**
|
67
|
-
|
68
|
-
|
75
|
+
* Emitted when the element is clicked.
|
76
|
+
*/
|
69
77
|
this.onClick = output();
|
70
78
|
/**
|
71
|
-
|
72
|
-
|
73
|
-
|
79
|
+
* Indicates whether the component is a root menu item.
|
80
|
+
* @defaultValue false
|
81
|
+
*/
|
74
82
|
this.isRoot = false;
|
75
83
|
/**
|
76
|
-
|
77
|
-
|
84
|
+
* Injects the root menu service.
|
85
|
+
*/
|
78
86
|
this.rootMenu = inject(AXRootMenu);
|
79
87
|
afterNextRender(() => {
|
80
88
|
this.children.forEach((c) => {
|
@@ -84,19 +92,26 @@ class AXMenuItemComponent extends MXInteractiveComponent {
|
|
84
92
|
this.offsetX.set(this.isRoot ? 0 : 4);
|
85
93
|
this.getPlacement();
|
86
94
|
});
|
95
|
+
effect(() => {
|
96
|
+
if (!this.getHostElement().getClientRects()[0]?.right)
|
97
|
+
return;
|
98
|
+
//add overflow items to array
|
99
|
+
if (this.getHostElement().getClientRects()[0]?.right > this.service.rightOverflow() ||
|
100
|
+
this.getHostElement().getClientRects()[0]?.left < this.service.leftOverflow()) {
|
101
|
+
this.service.overflowElements.update((prev) => [...prev, this.getHostElement()]);
|
102
|
+
this.service.isOverflowExist.set(true);
|
103
|
+
}
|
104
|
+
else {
|
105
|
+
this.service.notOverflowElements.update((prev) => [...prev, this.getHostElement()]);
|
106
|
+
}
|
107
|
+
}, { allowSignalWrites: true });
|
87
108
|
}
|
88
109
|
/**
|
89
|
-
|
90
|
-
|
110
|
+
* Closes the popover if it is open.
|
111
|
+
*/
|
91
112
|
close() {
|
92
113
|
this.popover?.close();
|
93
114
|
}
|
94
|
-
// @HostListener('mouseleave', ['$event'])
|
95
|
-
// private onMouseHover(e: MouseEvent) {
|
96
|
-
// this.children.forEach((c) => {
|
97
|
-
// c.close();
|
98
|
-
// });
|
99
|
-
// }
|
100
115
|
/** @ignore */
|
101
116
|
_handleOnOpened() {
|
102
117
|
this.parent.children.forEach((c) => {
|
@@ -115,19 +130,19 @@ class AXMenuItemComponent extends MXInteractiveComponent {
|
|
115
130
|
});
|
116
131
|
}
|
117
132
|
/**
|
118
|
-
|
119
|
-
|
133
|
+
* Returns the icon based on the orientation of the root menu.
|
134
|
+
*/
|
120
135
|
getIcon() {
|
121
|
-
if (this.rootMenu.orientation()
|
122
|
-
return 'ax-icon-
|
136
|
+
if (this.rootMenu.orientation() === 'vertical') {
|
137
|
+
return 'ax-icon-chevron-right';
|
123
138
|
}
|
124
139
|
else {
|
125
|
-
return 'ax-icon-
|
140
|
+
return 'ax-icon-chevron-down';
|
126
141
|
}
|
127
142
|
}
|
128
143
|
/**
|
129
|
-
|
130
|
-
|
144
|
+
* Determines the placement based on the root menu's orientation: 'bottom-start' for horizontal root, 'end-top' otherwise.
|
145
|
+
*/
|
131
146
|
getPlacement() {
|
132
147
|
switch (this.rootMenu.orientation()) {
|
133
148
|
case 'horizontal':
|
@@ -169,11 +184,11 @@ class AXMenuItemComponent extends MXInteractiveComponent {
|
|
169
184
|
}
|
170
185
|
}
|
171
186
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
172
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXMenuItemComponent, selector: "ax-menu-item", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeChange: "activeChange", onClick: "onClick" }, host: { attributes: { "ngSkipHydration": "true" }, listeners: { "click": "__hostClick($event)" }, properties: { "class": "this.__hostClass" } }, queries: [{ propertyName: "children", predicate: AXMenuItemComponent }], viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-menu-item-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <
|
187
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXMenuItemComponent, selector: "ax-menu-item", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeChange: "activeChange", onClick: "onClick" }, host: { attributes: { "ngSkipHydration": "true" }, listeners: { "click": "__hostClick($event)" }, properties: { "class": "this.__hostClass" } }, queries: [{ propertyName: "children", predicate: AXMenuItemComponent }], viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-menu-item-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <p class=\"ax-menu-item-text\">{{ text() }}</p>\n</div>\n<ng-content select=\"ax-suffix\"></ng-content>\n@if (children.length) {\n <i class=\"ax-icon ax-icon-solid {{ getIcon() }} ax-menu-item-child-icon\"></i>\n}\n\n<ax-popover\n #popover\n [closeOn]=\"'clickOut'\"\n [openOn]=\"rootMenu.openOn()\"\n [target]=\"getHostElement()\"\n [offsetY]=\"offsetY()\"\n [offsetX]=\"offsetX()\"\n [placement]=\"getPlacement()\"\n (onOpened)=\"_handleOnOpened()\"\n (onClosed)=\"_handleOnClosed()\"\n>\n <div class=\"ax-menu-item-children ax-parent-{{ this.rootMenu.orientation() }}\">\n <ng-content select=\"ax-menu-item\"></ng-content>\n </div>\n</ax-popover>\n", styles: [".ax-menu-item-text{white-space:nowrap}\n"], dependencies: [{ kind: "component", type: i1.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
173
188
|
}
|
174
189
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMenuItemComponent, decorators: [{
|
175
190
|
type: Component,
|
176
|
-
args: [{ selector: 'ax-menu-item', inputs: ['disabled'], host: { ngSkipHydration: 'true' }, template: "<div class=\"ax-menu-item-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <
|
191
|
+
args: [{ selector: 'ax-menu-item', inputs: ['disabled'], host: { ngSkipHydration: 'true' }, encapsulation: ViewEncapsulation.None, template: "<div class=\"ax-menu-item-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <p class=\"ax-menu-item-text\">{{ text() }}</p>\n</div>\n<ng-content select=\"ax-suffix\"></ng-content>\n@if (children.length) {\n <i class=\"ax-icon ax-icon-solid {{ getIcon() }} ax-menu-item-child-icon\"></i>\n}\n\n<ax-popover\n #popover\n [closeOn]=\"'clickOut'\"\n [openOn]=\"rootMenu.openOn()\"\n [target]=\"getHostElement()\"\n [offsetY]=\"offsetY()\"\n [offsetX]=\"offsetX()\"\n [placement]=\"getPlacement()\"\n (onOpened)=\"_handleOnOpened()\"\n (onClosed)=\"_handleOnClosed()\"\n>\n <div class=\"ax-menu-item-children ax-parent-{{ this.rootMenu.orientation() }}\">\n <ng-content select=\"ax-menu-item\"></ng-content>\n </div>\n</ax-popover>\n", styles: [".ax-menu-item-text{white-space:nowrap}\n"] }]
|
177
192
|
}], ctorParameters: () => [], propDecorators: { popover: [{
|
178
193
|
type: ViewChild,
|
179
194
|
args: [AXPopoverComponent]
|
@@ -194,9 +209,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
194
209
|
*/
|
195
210
|
class AXMenuComponent extends MXBaseComponent {
|
196
211
|
constructor() {
|
197
|
-
super(
|
212
|
+
super();
|
198
213
|
this.orientation = input('horizontal');
|
199
214
|
this.openOn = input('toggle');
|
215
|
+
this.service = inject(AXMenuService);
|
216
|
+
this.menuHeight = signal('');
|
217
|
+
this.isMenuOpen = signal(false);
|
218
|
+
this.truncateMenu = input(false);
|
219
|
+
afterNextRender(() => {
|
220
|
+
if (!this.truncateMenu())
|
221
|
+
return;
|
222
|
+
//add menu container border for detect overflow happen
|
223
|
+
this.menuHeight.set(`${this.getHostElement()?.getClientRects()[0]?.height + 10}px`);
|
224
|
+
this.service.rightOverflow.set(this.getHostElement().querySelector('.ax-menu-item-container')?.getClientRects()[0]?.right);
|
225
|
+
this.service.leftOverflow.set(this.getHostElement().querySelector('.ax-menu-item-container')?.getClientRects()[0]?.left);
|
226
|
+
let resizeTimer;
|
227
|
+
window.addEventListener('resize', () => {
|
228
|
+
//add menu container border for detect overflow happen
|
229
|
+
clearTimeout(resizeTimer);
|
230
|
+
if (!this.getHostElement())
|
231
|
+
return;
|
232
|
+
resizeTimer = setTimeout(() => {
|
233
|
+
this.service.rightOverflow.set(this.getHostElement().querySelector('.ax-menu-item-container').getClientRects()[0].right);
|
234
|
+
this.service.leftOverflow.set(this.getHostElement().querySelector('.ax-menu-item-container').getClientRects()[0].left);
|
235
|
+
if (this.isMenuOpen())
|
236
|
+
this.showMenuHandler();
|
237
|
+
this.service.notOverflowElements.set([]);
|
238
|
+
this.service.overflowElements.set([]);
|
239
|
+
}, 200);
|
240
|
+
});
|
241
|
+
});
|
242
|
+
}
|
243
|
+
showMenuHandler() {
|
244
|
+
this.isMenuOpen.update((prev) => !prev);
|
245
|
+
const injectContainer = this.getHostElement().querySelector('.ax-overflow-menu-container');
|
246
|
+
const injectContainer2 = this.getHostElement().querySelector('.ax-menu-item-container');
|
247
|
+
if (this.isMenuOpen()) {
|
248
|
+
this.service.overflowElements().forEach((item) => {
|
249
|
+
item.classList.add('overflowMenuOverride');
|
250
|
+
injectContainer.appendChild(item);
|
251
|
+
});
|
252
|
+
this.service.notOverflowElements().forEach((item) => {
|
253
|
+
item.classList.remove('overflowMenuOverride');
|
254
|
+
injectContainer2.appendChild(item);
|
255
|
+
});
|
256
|
+
}
|
257
|
+
else {
|
258
|
+
const allItems = [...this.service.notOverflowElements(), ...this.service.overflowElements()];
|
259
|
+
allItems.forEach((item) => {
|
260
|
+
item.classList.remove('overflowMenuOverride');
|
261
|
+
injectContainer2.appendChild(item);
|
262
|
+
});
|
263
|
+
}
|
200
264
|
}
|
201
265
|
/** @ignore */
|
202
266
|
ngAfterViewInit() {
|
@@ -209,8 +273,8 @@ class AXMenuComponent extends MXBaseComponent {
|
|
209
273
|
get __hostClass() {
|
210
274
|
return `ax-orientation-${this.orientation()}`;
|
211
275
|
}
|
212
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMenuComponent, deps:
|
213
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
276
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
277
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXMenuComponent, selector: "ax-menu", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, openOn: { classPropertyName: "openOn", publicName: "openOn", isSignal: true, isRequired: false, transformFunction: null }, truncateMenu: { classPropertyName: "truncateMenu", publicName: "truncateMenu", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, providers: [
|
214
278
|
{
|
215
279
|
provide: AXRootMenu,
|
216
280
|
useExisting: AXMenuComponent,
|
@@ -218,11 +282,61 @@ class AXMenuComponent extends MXBaseComponent {
|
|
218
282
|
{
|
219
283
|
provide: AXMenuService,
|
220
284
|
},
|
221
|
-
], queries: [{ propertyName: "children", predicate: AXMenuItemComponent }], usesInheritance: true, ngImport: i0, template:
|
285
|
+
], queries: [{ propertyName: "children", predicate: AXMenuItemComponent }], usesInheritance: true, ngImport: i0, template: `
|
286
|
+
<div class="ax-main-menu-container">
|
287
|
+
<div
|
288
|
+
[style]="{ width: this.service.isOverflowExist() && this.truncateMenu() && '90%' }"
|
289
|
+
class="ax-menu-item-container"
|
290
|
+
>
|
291
|
+
<ng-content select="ax-menu-item,ng-container"></ng-content>
|
292
|
+
</div>
|
293
|
+
|
294
|
+
@if (this.service.overflowElements().length !== 0 && this.truncateMenu()) {
|
295
|
+
<button
|
296
|
+
class="ax-general-button ax-button-icon ax-show-truncate-menu"
|
297
|
+
(click)="showMenuHandler()"
|
298
|
+
tabindex="0"
|
299
|
+
type="button"
|
300
|
+
>
|
301
|
+
<ax-icon class="ax-icon ax-icon-more-horizontal ng-star-inserted ax-text-xl"></ax-icon>
|
302
|
+
</button>
|
303
|
+
}
|
304
|
+
</div>
|
305
|
+
|
306
|
+
<div
|
307
|
+
[style]="{ top: menuHeight(), display: this.isMenuOpen() ? 'block' : 'none' }"
|
308
|
+
class="ax-overflow-menu-container ax-menu-item-children"
|
309
|
+
></div>
|
310
|
+
`, isInline: true, styles: ["ax-menu{width:100%;font-size:.875rem;line-height:1.25rem;color:inherit;position:relative}ax-menu .ax-main-menu-container{display:flex;align-items:center;width:100%;overflow:hidden}ax-menu .ax-menu-item-container{display:flex;overflow:hidden;width:100%}ax-menu .ax-show-truncate-menu{position:absolute;right:0;width:10%}ax-menu .ax-overflow-menu-container{position:absolute;right:0}ax-menu.ax-orientation-horizontal{display:flex}ax-menu.ax-orientation-horizontal ax-menu-item:not(ax-menu.ax-orientation-horizontal ax-menu-item:last-child){margin-inline-end:1rem}ax-menu.ax-orientation-vertical{display:flex;flex-direction:column}ax-menu.ax-orientation-vertical ax-menu-item{justify-content:space-between}ax-menu.ax-orientation-vertical ax-menu-item:not(ax-menu.ax-orientation-vertical ax-menu-item:last-child){margin-bottom:1rem}ax-menu ax-menu-item:hover:not(ax-menu ax-menu-item:hover.ax-state-disabled){color:rgba(var(--ax-color-primary-500))}ax-menu-item{position:relative;display:flex;align-items:center;gap:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;justify-content:space-between;color:rgba(var(--ax-color-text-default))}ax-menu-item:not(ax-menu-item.ax-state-disabled){cursor:pointer}ax-menu-item .ax-menu-item-start-side{display:flex;align-items:center;gap:.5rem}ax-menu-item.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-menu-item.ax-state-selected{color:rgba(var(--ax-color-primary-500))}ax-menu-item .ax-menu-item-child-icon{width:fit-content;line-height:1;font-size:12px}ax-menu-item ax-popover{position:absolute}.overflowMenuOverride{margin-inline-end:0!important}.overflowMenuOverride:hover:not(.overflowMenuOverride:hover.ax-state-disabled){color:rgba(var(--ax-color-text-default))!important}.ax-menu-item-children{padding-top:.5rem;padding-bottom:.5rem}.ax-menu-item-children:not(.ax-menu-item-children:empty){display:flex;min-width:12rem;flex-direction:column;border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface))}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item{padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled){background-color:rgba(var(--ax-color-on-surface))}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-suffix{opacity:1}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-suffix{opacity:.75}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item .ax-menu-item-text{flex:1 1 0%}html[dir=rtl] .ax-parent-horizontal .ax-menu-item-child-icon{transform:rotate(-90deg)}html[dir=rtl] .ax-parent-horizontal .ax-menu-item-child-icon:before{-moz-transform:scale(1,-1);-webkit-transform:scale(1,-1);-o-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scaleY(-1)}.ax-parent-horizontal .ax-menu-item-child-icon{transform:rotate(-90deg)}\n"], dependencies: [{ kind: "component", type: i1$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
222
311
|
}
|
223
312
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMenuComponent, decorators: [{
|
224
313
|
type: Component,
|
225
|
-
args: [{ selector: 'ax-menu', template:
|
314
|
+
args: [{ selector: 'ax-menu', template: `
|
315
|
+
<div class="ax-main-menu-container">
|
316
|
+
<div
|
317
|
+
[style]="{ width: this.service.isOverflowExist() && this.truncateMenu() && '90%' }"
|
318
|
+
class="ax-menu-item-container"
|
319
|
+
>
|
320
|
+
<ng-content select="ax-menu-item,ng-container"></ng-content>
|
321
|
+
</div>
|
322
|
+
|
323
|
+
@if (this.service.overflowElements().length !== 0 && this.truncateMenu()) {
|
324
|
+
<button
|
325
|
+
class="ax-general-button ax-button-icon ax-show-truncate-menu"
|
326
|
+
(click)="showMenuHandler()"
|
327
|
+
tabindex="0"
|
328
|
+
type="button"
|
329
|
+
>
|
330
|
+
<ax-icon class="ax-icon ax-icon-more-horizontal ng-star-inserted ax-text-xl"></ax-icon>
|
331
|
+
</button>
|
332
|
+
}
|
333
|
+
</div>
|
334
|
+
|
335
|
+
<div
|
336
|
+
[style]="{ top: menuHeight(), display: this.isMenuOpen() ? 'block' : 'none' }"
|
337
|
+
class="ax-overflow-menu-container ax-menu-item-children"
|
338
|
+
></div>
|
339
|
+
`, encapsulation: ViewEncapsulation.None, providers: [
|
226
340
|
{
|
227
341
|
provide: AXRootMenu,
|
228
342
|
useExisting: AXMenuComponent,
|
@@ -230,8 +344,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
230
344
|
{
|
231
345
|
provide: AXMenuService,
|
232
346
|
},
|
233
|
-
], styles: ["ax-menu{width:100%;font-size:.875rem;line-height:1.25rem;color:inherit}ax-menu.ax-orientation-horizontal{display:flex}ax-menu.ax-orientation-horizontal ax-menu-item:not(ax-menu.ax-orientation-horizontal ax-menu-item:last-child){margin-inline-end:1rem}ax-menu.ax-orientation-vertical{display:flex;flex-direction:column}ax-menu.ax-orientation-vertical ax-menu-item{justify-content:space-between}ax-menu.ax-orientation-vertical ax-menu-item:not(ax-menu.ax-orientation-vertical ax-menu-item:last-child){margin-bottom:1rem}ax-menu ax-menu-item:hover:not(ax-menu ax-menu-item:hover.ax-state-disabled){color:rgba(var(--ax-color-primary-500))}ax-menu-item{position:relative;display:flex;align-items:center;gap:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;justify-content:space-between;color:rgba(var(--ax-color-text-default))}ax-menu-item:not(ax-menu-item.ax-state-disabled){cursor:pointer}ax-menu-item .ax-menu-item-start-side{display:flex;align-items:center;gap:.5rem}ax-menu-item.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-menu-item.ax-state-selected{color:rgba(var(--ax-color-primary-500))}ax-menu-item .ax-menu-item-child-icon{width:fit-content;line-height:1}ax-menu-item ax-popover{position:absolute}.ax-menu-item-children{padding-top:.5rem;padding-bottom:.5rem}.ax-menu-item-children:not(.ax-menu-item-children:empty){display:flex;min-width:12rem;flex-direction:column;border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface))}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item{padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled){background-color:rgba(var(--ax-color-on-surface))}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-suffix{opacity:1}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-suffix{opacity:.75}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item .ax-menu-item-text{flex:1 1 0%}html[dir=rtl] .ax-parent-horizontal .ax-menu-item-child-icon{transform:rotate(-90deg)}html[dir=rtl] .ax-parent-horizontal .ax-menu-item-child-icon:before{-moz-transform:scale(1,-1);-webkit-transform:scale(1,-1);-o-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scaleY(-1)}.ax-parent-horizontal .ax-menu-item-child-icon{transform:rotate(-90deg)}\n"] }]
|
234
|
-
}], propDecorators: { children: [{
|
347
|
+
], styles: ["ax-menu{width:100%;font-size:.875rem;line-height:1.25rem;color:inherit;position:relative}ax-menu .ax-main-menu-container{display:flex;align-items:center;width:100%;overflow:hidden}ax-menu .ax-menu-item-container{display:flex;overflow:hidden;width:100%}ax-menu .ax-show-truncate-menu{position:absolute;right:0;width:10%}ax-menu .ax-overflow-menu-container{position:absolute;right:0}ax-menu.ax-orientation-horizontal{display:flex}ax-menu.ax-orientation-horizontal ax-menu-item:not(ax-menu.ax-orientation-horizontal ax-menu-item:last-child){margin-inline-end:1rem}ax-menu.ax-orientation-vertical{display:flex;flex-direction:column}ax-menu.ax-orientation-vertical ax-menu-item{justify-content:space-between}ax-menu.ax-orientation-vertical ax-menu-item:not(ax-menu.ax-orientation-vertical ax-menu-item:last-child){margin-bottom:1rem}ax-menu ax-menu-item:hover:not(ax-menu ax-menu-item:hover.ax-state-disabled){color:rgba(var(--ax-color-primary-500))}ax-menu-item{position:relative;display:flex;align-items:center;gap:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;justify-content:space-between;color:rgba(var(--ax-color-text-default))}ax-menu-item:not(ax-menu-item.ax-state-disabled){cursor:pointer}ax-menu-item .ax-menu-item-start-side{display:flex;align-items:center;gap:.5rem}ax-menu-item.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-menu-item.ax-state-selected{color:rgba(var(--ax-color-primary-500))}ax-menu-item .ax-menu-item-child-icon{width:fit-content;line-height:1;font-size:12px}ax-menu-item ax-popover{position:absolute}.overflowMenuOverride{margin-inline-end:0!important}.overflowMenuOverride:hover:not(.overflowMenuOverride:hover.ax-state-disabled){color:rgba(var(--ax-color-text-default))!important}.ax-menu-item-children{padding-top:.5rem;padding-bottom:.5rem}.ax-menu-item-children:not(.ax-menu-item-children:empty){display:flex;min-width:12rem;flex-direction:column;border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface))}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item{padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled){background-color:rgba(var(--ax-color-on-surface))}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-suffix{opacity:1}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-suffix{opacity:.75}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item .ax-menu-item-text{flex:1 1 0%}html[dir=rtl] .ax-parent-horizontal .ax-menu-item-child-icon{transform:rotate(-90deg)}html[dir=rtl] .ax-parent-horizontal .ax-menu-item-child-icon:before{-moz-transform:scale(1,-1);-webkit-transform:scale(1,-1);-o-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scaleY(-1)}.ax-parent-horizontal .ax-menu-item-child-icon{transform:rotate(-90deg)}\n"] }]
|
348
|
+
}], ctorParameters: () => [], propDecorators: { children: [{
|
235
349
|
type: ContentChildren,
|
236
350
|
args: [AXMenuItemComponent]
|
237
351
|
}], __hostClass: [{
|
@@ -243,14 +357,14 @@ const COMPONENT = [AXMenuItemComponent, AXMenuComponent];
|
|
243
357
|
const MODULES = [AXDecoratorModule, AXLoadingModule, AXTranslationModule, OverlayModule, AXPopoverModule];
|
244
358
|
class AXMenuModule {
|
245
359
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
246
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXMenuModule, declarations: [AXMenuItemComponent, AXMenuComponent], imports: [CommonModule, AXDecoratorModule, AXLoadingModule, AXTranslationModule, OverlayModule, AXPopoverModule], exports: [AXMenuItemComponent, AXMenuComponent] }); }
|
247
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMenuModule, imports: [CommonModule, MODULES] }); }
|
360
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXMenuModule, declarations: [AXMenuItemComponent, AXMenuComponent], imports: [CommonModule, AXDecoratorModule, AXLoadingModule, AXTranslationModule, OverlayModule, AXPopoverModule, AXButtonModule], exports: [AXMenuItemComponent, AXMenuComponent] }); }
|
361
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMenuModule, imports: [CommonModule, MODULES, AXButtonModule] }); }
|
248
362
|
}
|
249
363
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMenuModule, decorators: [{
|
250
364
|
type: NgModule,
|
251
365
|
args: [{
|
252
366
|
declarations: [...COMPONENT],
|
253
|
-
imports: [CommonModule, ...MODULES],
|
367
|
+
imports: [CommonModule, ...MODULES, AXButtonModule],
|
254
368
|
exports: [...COMPONENT],
|
255
369
|
providers: [],
|
256
370
|
}]
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-menu.mjs","sources":["../../../../libs/components/menu/src/lib/class/root-menu.class.ts","../../../../libs/components/menu/src/lib/menu.service.ts","../../../../libs/components/menu/src/lib/menu-item/menu-item.component.ts","../../../../libs/components/menu/src/lib/menu-item/menu-item.component.html","../../../../libs/components/menu/src/lib/menu.component.ts","../../../../libs/components/menu/src/lib/menu.module.ts","../../../../libs/components/menu/src/acorex-components-menu.ts"],"sourcesContent":["import { AXOrientation } from '@acorex/components/common';\nimport { WritableSignal, signal } from '@angular/core';\nimport { AXMenuPopoverTrigger } from './popover.class';\nexport class AXRootMenu {\n orientation: WritableSignal<AXOrientation> = signal('horizontal');\n openOn: WritableSignal<AXMenuPopoverTrigger> = signal('toggle');\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { AXMenuItemComponent } from './menu-item/menu-item.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMenuService {\n activeMenus$: BehaviorSubject<AXMenuItemComponent[]> = new BehaviorSubject<AXMenuItemComponent[]>([]);\n}\n","import { AXClickEvent, MXInteractiveComponent } from '@acorex/components/common';\nimport { AXPopoverComponent } from '@acorex/components/popover';\nimport {\n Component,\n ContentChildren,\n HostBinding,\n HostListener,\n QueryList,\n ViewChild,\n afterNextRender,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { AXRootMenu } from '../class/root-menu.class';\nimport { AXMenuService } from '../menu.service';\n\n/**\n * Represents a menu item component used within an `ax-menu`.\n * @category Components\n */\n@Component({\n selector: 'ax-menu-item',\n inputs: ['disabled'],\n templateUrl: './menu-item.component.html',\n host: { ngSkipHydration: 'true' },\n})\nexport class AXMenuItemComponent extends MXInteractiveComponent {\n\n /** @ignore */\n @ViewChild(AXPopoverComponent)\n\n /** @ignore */\n private popover: AXPopoverComponent;\n\n /**\n * Injects the `AXMenuService` for managing menu interactions.\n */\n menuService = inject(AXMenuService);\n\n /**\n * The vertical offset for positioning, initialized to 0.\n */\n offsetY = signal(0);\n\n /**\n * The horizontal offset for positioning, initialized to 0.\n */\n offsetX = signal(0);\n\n /**\n * The text content, initialized to an empty string.\n */\n text = input<string>();\n\n /**\n * Indicates whether the item is active.\n */\n active = input<boolean>();\n\n /**\n * Emitted when the active state changes.\n */\n activeChange = output<boolean>();\n\n /**\n * Emitted when the element is clicked.\n */\n onClick = output<AXClickEvent>();\n\n /**\n * Indicates whether the component is a root menu item.\n * @defaultValue false\n */\n isRoot = false;\n\n /**\n * The parent menu item component, if any.\n */\n parent?: AXMenuItemComponent;\n\n /**\n * Injects the root menu service.\n */\n rootMenu = inject(AXRootMenu);\n\n /** @ignore */\n @ContentChildren(AXMenuItemComponent)\n children: QueryList<AXMenuItemComponent>;\n\n /** @ignore */\n constructor() {\n super();\n afterNextRender(() => {\n this.children.forEach((c) => {\n c.parent = this;\n });\n\n this.offsetY.set(this.isRoot ? 8 : 0);\n this.offsetX.set(this.isRoot ? 0 : 4);\n\n this.getPlacement();\n });\n }\n\n /**\n * Closes the popover if it is open.\n */\n close() {\n this.popover?.close();\n }\n\n // @HostListener('mouseleave', ['$event'])\n // private onMouseHover(e: MouseEvent) {\n // this.children.forEach((c) => {\n // c.close();\n // });\n // }\n\n /** @ignore */\n _handleOnOpened() {\n this.parent.children.forEach((c) => {\n if (c != this) {\n c.close();\n }\n });\n if (this.children.length) {\n this.menuService.activeMenus$.next(this.menuService.activeMenus$.getValue().concat(this));\n }\n }\n\n /** @ignore */\n _handleOnClosed() {\n this.children.forEach((c) => {\n c.close();\n });\n }\n\n /**\n * Returns the icon based on the orientation of the root menu.\n */\n getIcon() {\n if (this.rootMenu.orientation() == 'vertical') {\n return 'ax-icon-arrow-right';\n } else {\n return 'ax-icon-arrow-down';\n }\n }\n\n /**\n * Determines the placement based on the root menu's orientation: 'bottom-start' for horizontal root, 'end-top' otherwise.\n */\n getPlacement() {\n switch (this.rootMenu.orientation()) {\n case 'horizontal':\n if (this.isRoot) {\n return 'bottom-start';\n } else {\n return 'end-top';\n }\n break;\n case 'vertical':\n if (this.isRoot) {\n return 'end-top';\n } else {\n return 'end-top';\n }\n break;\n default:\n return 'bottom-start';\n }\n }\n\n /** @ignore */\n @HostBinding('class')\n get __hostClass(): string[] {\n return [`${this.disabled ? 'ax-state-disabled' : ''}`, `${this.active() ? 'ax-state-active' : ''}`];\n }\n\n /** @ignore */\n @HostListener('click', ['$event'])\n private __hostClick(e: MouseEvent) {\n if (!this.disabled) {\n this.onClick.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n });\n if (!this.children.length) {\n this.menuService.activeMenus$.subscribe((c) => c.forEach((x) => x.close())).unsubscribe();\n this.menuService.activeMenus$.next([]);\n }\n }\n }\n}\n","<div class=\"ax-menu-item-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <div class=\"ax-menu-item-text\">{{ text() }}</div>\n</div>\n<ng-content select=\"ax-suffix\"></ng-content>\n@if(children.length){\n<i class=\"ax-icon ax-icon-solid {{ getIcon() }} ax-menu-item-child-icon\"></i>\n}\n<ax-popover #popover [closeOn]=\"'clickOut'\" [openOn]=\"rootMenu.openOn()\" [target]=\"getHostElement()\"\n [offsetY]=\"offsetY()\" [offsetX]=\"offsetX()\" [placement]=\"getPlacement()\" (onOpened)=\"_handleOnOpened()\"\n (onClosed)=\"_handleOnClosed()\">\n <div class=\"ax-menu-item-children ax-parent-{{ this.rootMenu.orientation() }}\">\n <ng-content select=\"ax-menu-item\"></ng-content>\n </div>\n</ax-popover>","import { AXOrientation, MXBaseComponent } from '@acorex/components/common';\nimport { AfterViewInit, Component, ContentChildren, HostBinding, QueryList, ViewEncapsulation, input } from '@angular/core';\nimport { AXMenuPopoverTrigger } from './class/popover.class';\nimport { AXRootMenu } from './class/root-menu.class';\nimport { AXMenuItemComponent } from './menu-item/menu-item.component';\nimport { AXMenuService } from './menu.service';\n\n/**\n * Represents a menu component that displays menu items.\n * @category Components\n */\n@Component({\n selector: 'ax-menu',\n template: `<ng-content select=\"ax-menu-item,ng-container\"></ng-content>`,\n styleUrls: ['./menu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: AXRootMenu,\n useExisting: AXMenuComponent,\n },\n {\n provide: AXMenuService,\n },\n ],\n})\nexport class AXMenuComponent extends MXBaseComponent implements AfterViewInit {\n orientation = input<AXOrientation>('horizontal');\n openOn = input<AXMenuPopoverTrigger>('toggle');\n\n /** @ignore */\n @ContentChildren(AXMenuItemComponent)\n children: QueryList<AXMenuItemComponent>;\n\n /** @ignore */\n ngAfterViewInit() {\n this.children.forEach((c) => {\n c.isRoot = true;\n c.parent = this as unknown as AXMenuItemComponent;\n });\n }\n\n /** @ignore */\n @HostBinding('class')\n get __hostClass(): string {\n return `ax-orientation-${this.orientation()}`;\n }\n}\n","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXMenuItemComponent } from './menu-item/menu-item.component';\nimport { AXMenuComponent } from './menu.component';\n\nconst COMPONENT = [AXMenuItemComponent, AXMenuComponent];\nconst MODULES = [AXDecoratorModule, AXLoadingModule, AXTranslationModule, OverlayModule, AXPopoverModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [CommonModule, ...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXMenuModule {}\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-menu.mjs","sources":["../../../../libs/components/menu/src/lib/class/root-menu.class.ts","../../../../libs/components/menu/src/lib/menu.service.ts","../../../../libs/components/menu/src/lib/menu-item/menu-item.component.ts","../../../../libs/components/menu/src/lib/menu-item/menu-item.component.html","../../../../libs/components/menu/src/lib/menu.component.ts","../../../../libs/components/menu/src/lib/menu.module.ts","../../../../libs/components/menu/src/acorex-components-menu.ts"],"sourcesContent":["import { AXOrientation } from '@acorex/components/common';\nimport { WritableSignal, signal } from '@angular/core';\nimport { AXMenuPopoverTrigger } from './popover.class';\nexport class AXRootMenu {\n orientation: WritableSignal<AXOrientation> = signal('horizontal');\n openOn: WritableSignal<AXMenuPopoverTrigger> = signal('toggle');\n}\n","import { Injectable, signal } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { AXMenuItemComponent } from './menu-item/menu-item.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMenuService {\n activeMenus$: BehaviorSubject<AXMenuItemComponent[]> = new BehaviorSubject<AXMenuItemComponent[]>([]);\n\n rightOverflow = signal<number>(0);\n leftOverflow = signal<number>(0);\n overflowElements = signal<HTMLElement[]>([]);\n notOverflowElements = signal<HTMLElement[]>([]);\n isOverflowExist = signal(false);\n}\n","import { AXClickEvent, MXInteractiveComponent } from '@acorex/components/common';\nimport { AXPopoverComponent } from '@acorex/components/popover';\nimport {\n Component,\n ContentChildren,\n HostBinding,\n HostListener,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n afterNextRender,\n effect,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { AXRootMenu } from '../class/root-menu.class';\nimport { AXMenuService } from '../menu.service';\n\n/**\n * Represents a menu item component used within an `ax-menu`.\n * @category Components\n */\n@Component({\n selector: 'ax-menu-item',\n inputs: ['disabled'],\n templateUrl: './menu-item.component.html',\n host: { ngSkipHydration: 'true' },\n styles: `\n .ax-menu-item-text {\n white-space: nowrap;\n }\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMenuItemComponent extends MXInteractiveComponent {\n service = inject(AXMenuService);\n\n /** @ignore */\n @ViewChild(AXPopoverComponent)\n\n /** @ignore */\n private popover: AXPopoverComponent;\n\n /**\n * Injects the `AXMenuService` for managing menu interactions.\n */\n menuService = inject(AXMenuService);\n\n /**\n * The vertical offset for positioning, initialized to 0.\n */\n offsetY = signal(0);\n\n /**\n * The horizontal offset for positioning, initialized to 0.\n */\n offsetX = signal(0);\n\n /**\n * The text content, initialized to an empty string.\n */\n text = input<string>();\n\n /**\n * Indicates whether the item is active.\n */\n active = input<boolean>();\n\n /**\n * Emitted when the active state changes.\n */\n activeChange = output<boolean>();\n\n /**\n * Emitted when the element is clicked.\n */\n onClick = output<AXClickEvent>();\n\n /**\n * Indicates whether the component is a root menu item.\n * @defaultValue false\n */\n isRoot = false;\n\n /**\n * The parent menu item component, if any.\n */\n parent?: AXMenuItemComponent;\n\n /**\n * Injects the root menu service.\n */\n rootMenu = inject(AXRootMenu);\n\n /** @ignore */\n @ContentChildren(AXMenuItemComponent)\n children: QueryList<AXMenuItemComponent>;\n\n /** @ignore */\n constructor() {\n super();\n\n afterNextRender(() => {\n this.children.forEach((c) => {\n c.parent = this;\n });\n\n this.offsetY.set(this.isRoot ? 8 : 0);\n this.offsetX.set(this.isRoot ? 0 : 4);\n\n this.getPlacement();\n });\n\n effect(\n () => {\n if (!this.getHostElement().getClientRects()[0]?.right) return;\n //add overflow items to array\n if (\n this.getHostElement().getClientRects()[0]?.right > this.service.rightOverflow() ||\n this.getHostElement().getClientRects()[0]?.left < this.service.leftOverflow()\n ) {\n this.service.overflowElements.update((prev) => [...prev, this.getHostElement()]);\n this.service.isOverflowExist.set(true);\n } else {\n this.service.notOverflowElements.update((prev) => [...prev, this.getHostElement()]);\n }\n },\n { allowSignalWrites: true },\n );\n }\n\n /**\n * Closes the popover if it is open.\n */\n close() {\n this.popover?.close();\n }\n\n /** @ignore */\n _handleOnOpened() {\n this.parent.children.forEach((c) => {\n if (c != this) {\n c.close();\n }\n });\n if (this.children.length) {\n this.menuService.activeMenus$.next(this.menuService.activeMenus$.getValue().concat(this));\n }\n }\n\n /** @ignore */\n _handleOnClosed() {\n this.children.forEach((c) => {\n c.close();\n });\n }\n\n /**\n * Returns the icon based on the orientation of the root menu.\n */\n getIcon() {\n if (this.rootMenu.orientation() === 'vertical') {\n return 'ax-icon-chevron-right';\n } else {\n return 'ax-icon-chevron-down';\n }\n }\n\n /**\n * Determines the placement based on the root menu's orientation: 'bottom-start' for horizontal root, 'end-top' otherwise.\n */\n getPlacement() {\n switch (this.rootMenu.orientation()) {\n case 'horizontal':\n if (this.isRoot) {\n return 'bottom-start';\n } else {\n return 'end-top';\n }\n break;\n case 'vertical':\n if (this.isRoot) {\n return 'end-top';\n } else {\n return 'end-top';\n }\n break;\n default:\n return 'bottom-start';\n }\n }\n\n /** @ignore */\n @HostBinding('class')\n get __hostClass(): string[] {\n return [`${this.disabled ? 'ax-state-disabled' : ''}`, `${this.active() ? 'ax-state-active' : ''}`];\n }\n\n /** @ignore */\n @HostListener('click', ['$event'])\n private __hostClick(e: MouseEvent) {\n if (!this.disabled) {\n this.onClick.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n });\n if (!this.children.length) {\n this.menuService.activeMenus$.subscribe((c) => c.forEach((x) => x.close())).unsubscribe();\n this.menuService.activeMenus$.next([]);\n }\n }\n }\n}\n","<div class=\"ax-menu-item-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <p class=\"ax-menu-item-text\">{{ text() }}</p>\n</div>\n<ng-content select=\"ax-suffix\"></ng-content>\n@if (children.length) {\n <i class=\"ax-icon ax-icon-solid {{ getIcon() }} ax-menu-item-child-icon\"></i>\n}\n\n<ax-popover\n #popover\n [closeOn]=\"'clickOut'\"\n [openOn]=\"rootMenu.openOn()\"\n [target]=\"getHostElement()\"\n [offsetY]=\"offsetY()\"\n [offsetX]=\"offsetX()\"\n [placement]=\"getPlacement()\"\n (onOpened)=\"_handleOnOpened()\"\n (onClosed)=\"_handleOnClosed()\"\n>\n <div class=\"ax-menu-item-children ax-parent-{{ this.rootMenu.orientation() }}\">\n <ng-content select=\"ax-menu-item\"></ng-content>\n </div>\n</ax-popover>\n","import { AXOrientation, MXBaseComponent } from '@acorex/components/common';\nimport {\n afterNextRender,\n AfterViewInit,\n Component,\n ContentChildren,\n HostBinding,\n inject,\n input,\n QueryList,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMenuPopoverTrigger } from './class/popover.class';\nimport { AXRootMenu } from './class/root-menu.class';\nimport { AXMenuItemComponent } from './menu-item/menu-item.component';\nimport { AXMenuService } from './menu.service';\n\n/**\n * Represents a menu component that displays menu items.\n * @category Components\n */\n@Component({\n selector: 'ax-menu',\n template: `\n <div class=\"ax-main-menu-container\">\n <div\n [style]=\"{ width: this.service.isOverflowExist() && this.truncateMenu() && '90%' }\"\n class=\"ax-menu-item-container\"\n >\n <ng-content select=\"ax-menu-item,ng-container\"></ng-content>\n </div>\n\n @if (this.service.overflowElements().length !== 0 && this.truncateMenu()) {\n <button\n class=\"ax-general-button ax-button-icon ax-show-truncate-menu\"\n (click)=\"showMenuHandler()\"\n tabindex=\"0\"\n type=\"button\"\n >\n <ax-icon class=\"ax-icon ax-icon-more-horizontal ng-star-inserted ax-text-xl\"></ax-icon>\n </button>\n }\n </div>\n\n <div\n [style]=\"{ top: menuHeight(), display: this.isMenuOpen() ? 'block' : 'none' }\"\n class=\"ax-overflow-menu-container ax-menu-item-children\"\n ></div>\n `,\n styleUrls: ['./menu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: AXRootMenu,\n useExisting: AXMenuComponent,\n },\n {\n provide: AXMenuService,\n },\n ],\n})\nexport class AXMenuComponent extends MXBaseComponent implements AfterViewInit {\n orientation = input<AXOrientation>('horizontal');\n openOn = input<AXMenuPopoverTrigger>('toggle');\n service = inject(AXMenuService);\n menuHeight = signal<string>('');\n isMenuOpen = signal(false);\n truncateMenu = input(false);\n\n /** @ignore */\n @ContentChildren(AXMenuItemComponent)\n children: QueryList<AXMenuItemComponent>;\n\n constructor() {\n super();\n afterNextRender(() => {\n if (!this.truncateMenu()) return;\n\n //add menu container border for detect overflow happen\n this.menuHeight.set(`${this.getHostElement()?.getClientRects()[0]?.height + 10}px`);\n this.service.rightOverflow.set(\n this.getHostElement().querySelector('.ax-menu-item-container')?.getClientRects()[0]?.right,\n );\n this.service.leftOverflow.set(\n this.getHostElement().querySelector('.ax-menu-item-container')?.getClientRects()[0]?.left,\n );\n\n let resizeTimer;\n\n window.addEventListener('resize', () => {\n //add menu container border for detect overflow happen\n clearTimeout(resizeTimer);\n if (!this.getHostElement()) return;\n resizeTimer = setTimeout(() => {\n this.service.rightOverflow.set(\n this.getHostElement().querySelector('.ax-menu-item-container').getClientRects()[0].right,\n );\n this.service.leftOverflow.set(\n this.getHostElement().querySelector('.ax-menu-item-container').getClientRects()[0].left,\n );\n if (this.isMenuOpen()) this.showMenuHandler();\n this.service.notOverflowElements.set([]);\n this.service.overflowElements.set([]);\n }, 200);\n });\n });\n }\n\n showMenuHandler() {\n this.isMenuOpen.update((prev) => !prev);\n\n const injectContainer = this.getHostElement().querySelector('.ax-overflow-menu-container');\n const injectContainer2 = this.getHostElement().querySelector('.ax-menu-item-container');\n\n if (this.isMenuOpen()) {\n this.service.overflowElements().forEach((item) => {\n item.classList.add('overflowMenuOverride');\n injectContainer.appendChild(item);\n });\n this.service.notOverflowElements().forEach((item) => {\n item.classList.remove('overflowMenuOverride');\n injectContainer2.appendChild(item);\n });\n } else {\n const allItems = [...this.service.notOverflowElements(), ...this.service.overflowElements()];\n allItems.forEach((item) => {\n item.classList.remove('overflowMenuOverride');\n injectContainer2.appendChild(item);\n });\n }\n }\n\n /** @ignore */\n ngAfterViewInit() {\n this.children.forEach((c) => {\n c.isRoot = true;\n c.parent = this as unknown as AXMenuItemComponent;\n });\n }\n\n /** @ignore */\n @HostBinding('class')\n get __hostClass(): string {\n return `ax-orientation-${this.orientation()}`;\n }\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXMenuItemComponent } from './menu-item/menu-item.component';\nimport { AXMenuComponent } from './menu.component';\n\nconst COMPONENT = [AXMenuItemComponent, AXMenuComponent];\nconst MODULES = [AXDecoratorModule, AXLoadingModule, AXTranslationModule, OverlayModule, AXPopoverModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [CommonModule, ...MODULES, AXButtonModule],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|