@acorex/components 19.4.1 → 19.5.0-next.1
Sign up to get free protection for your applications and to get access to all the features.
- package/fesm2022/acorex-components-form.mjs +1 -1
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +6 -6
- package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +17 -5
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-qrcode.mjs +0 -2
- package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
- package/fesm2022/acorex-components-rail-navigation.mjs +9 -8
- package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-step-wizard.mjs +29 -61
- package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +16 -13
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/package.json +1 -1
- package/phone-box/lib/phone-box.component.d.ts +1 -0
- package/popover/lib/popover.component.d.ts +5 -3
- package/rail-navigation/index.d.ts +1 -0
- package/rail-navigation/lib/rail-navigation-item/rail-navigation-item.component.d.ts +2 -3
- package/rail-navigation/lib/rail-navigation.component.d.ts +1 -1
- package/step-wizard/lib/step-wizard-item/step-wizard-item.component.d.ts +11 -16
- package/step-wizard/lib/step-wizard.class.d.ts +2 -1
- package/step-wizard/lib/step-wizard.component.d.ts +5 -3
- package/tabs/lib/tabs.component.d.ts +1 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-popover.mjs","sources":["../../../../libs/components/popover/src/lib/popover.component.ts","../../../../libs/components/popover/src/lib/popover.component.html","../../../../libs/components/popover/src/lib/popover.module.ts","../../../../libs/components/popover/src/acorex-components-popover.ts"],"sourcesContent":["import {\n AXConnectedPosition,\n AXEvent,\n AXFocusableComponent,\n AXPlacementType,\n MXBaseComponent,\n convertToPlacement,\n} from '@acorex/components/common';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal, ComponentType, Portal, TemplatePortal } from '@angular/cdk/portal';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n PLATFORM_ID,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { Subscription, delay, fromEvent } from 'rxjs';\n\nexport type AXPopoverOpenTrigger = 'manual' | 'click' | 'hover' | 'toggle';\n\nexport type AXPopoverCloseTrigger = 'manual' | 'clickOut' | 'leave';\n\n/**\n * @category Components\n * A popover component with custom encapsulation and change detection settings.\n */\n@Component({\n selector: 'ax-popover',\n templateUrl: './popover.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXFocusableComponent, useExisting: AXPopoverComponent }],\n standalone: false\n})\nexport class AXPopoverComponent extends MXBaseComponent {\n #platform = inject(AXPlatform);\n private document = inject(DOCUMENT);\n private platformID = inject(PLATFORM_ID);\n\n /** @ignore */\n private _platform: AXPlatform = inject(AXPlatform);\n\n /** @ignore */\n private _overlay: Overlay = inject(Overlay);\n\n /** @ignore */\n private _overlayRef!: OverlayRef;\n\n /** @ignore */\n private _isMouseOverButton = false;\n\n /** @ignore */\n private _isMouseOverTooltip = false;\n\n /** @ignore */\n private _lastActiveElement: HTMLElement;\n\n /** @ignore */\n private _targetEvents: {\n mouseenter?: Subscription;\n mouseleave?: Subscription;\n click?: Subscription;\n } = {};\n\n /** @ignore */\n private _overlayEvents: {\n attach?: Subscription;\n detach?: Subscription;\n scroll?: Subscription;\n outside?: Subscription;\n } = {};\n\n //\n\n /** @ignore */\n private _offsetX = 0;\n\n /**\n * Gets or sets the horizontal offset and updates it accordingly.\n */\n @Input()\n\n /**\n * Gets the horizontal offset value.\n */\n public get offsetX(): number {\n return this._offsetX;\n }\n\n /**\n * Sets the horizontal offset and updates it with a callback.\n */\n public set offsetX(v: number) {\n this.setOption({\n name: 'offsetX',\n value: v,\n afterCallback: () => {\n this.updateOffset();\n },\n });\n }\n //\n\n /** @ignore */\n private _offsetY = 0;\n\n /**\n * Vertical offset with update callback.\n */\n @Input()\n\n /**\n * Gets the vertical offset of the component.\n */\n public get offsetY(): number {\n return this._offsetY;\n }\n\n /**\n * Sets the vertical offset and updates the component position.\n */\n public set offsetY(v: number) {\n this.setOption({\n name: 'offsetY',\n value: v,\n afterCallback: () => {\n this.updateOffset();\n },\n });\n }\n\n //\n\n /** @ignore */\n private _target!: HTMLElement;\n\n /**\n * Gets or sets the target element, supporting HTMLElement, ElementRef, or MXBaseComponent.\n */\n @Input()\n\n /**\n * Gets the current target element.\n */\n public get target(): HTMLElement | ElementRef | MXBaseComponent {\n return this._target;\n }\n\n /**\n * Sets the target element and updates event bindings.\n */\n public set target(v: HTMLElement | ElementRef | MXBaseComponent) {\n this.removeTargetEvents();\n if (v instanceof HTMLElement) this._target = v;\n else if (v instanceof ElementRef) this._target = v.nativeElement;\n else if (typeof v?.getHostElement == 'function') this._target = v.getHostElement();\n //\n this.bindTargetEvents();\n }\n //\n\n /** @ignore */\n private _defautPlacements: AXConnectedPosition[] = convertToPlacement('bottom-start');\n\n /** @ignore */\n private _placements: AXConnectedPosition[] = [...this._defautPlacements];\n\n /** @ignore */\n private _placement: AXPlacementType = this._placements;\n\n /**\n * Gets or sets the component's placement and updates position settings.\n */\n @Input()\n\n /**\n * Gets the current placement of the component.\n */\n public get placement(): AXPlacementType {\n return this._placement;\n }\n\n /**\n * Sets the component's placement and updates its position settings.\n */\n public set placement(v: AXPlacementType) {\n this.setOption({\n name: 'placement',\n value: v,\n afterCallback: (o, n) => {\n const converted = convertToPlacement(n);\n this._placements = converted.length ? converted : this._defautPlacements;\n this.updateOffset();\n this.updatePositionStrategy();\n },\n });\n }\n //\n\n /** @ignore */\n private _portal: Portal<unknown>;\n\n /** @ignore */\n private _componentRef: ComponentRef<unknown>;\n\n /**\n * Gets the reference to the component.\n */\n public get componentRef(): ComponentRef<unknown> {\n return this._componentRef;\n }\n\n /**\n * Holds the context data for the component.\n */\n public context: unknown;\n\n //\n\n /** @ignore */\n @ViewChild('baseTemplate', { static: true })\n _baseTemplate: TemplateRef<unknown>;\n //\n\n /**\n * Defines the content to be displayed, which can be a template or a component.\n */\n @Input()\n content: TemplateRef<unknown> | ComponentType<unknown>;\n //\n\n /** @ignore */\n private _openOn: AXPopoverOpenTrigger = 'toggle';\n\n /**\n * Gets or sets the trigger for opening the popover and updates target events.\n */\n @Input()\n\n /**\n * Gets the trigger for opening the popover.\n */\n public get openOn(): AXPopoverOpenTrigger {\n return this._openOn;\n }\n\n /**\n * Sets the trigger for opening the popover and updates target events.\n */\n public set openOn(v: AXPopoverOpenTrigger) {\n this.setOption({\n name: 'openOn',\n value: v,\n afterCallback: () => {\n this.bindTargetEvents();\n },\n });\n }\n //\n\n /** @ignore */\n private _closeOn: AXPopoverCloseTrigger = 'clickOut';\n\n /**\n * Gets or sets the trigger for closing the popover.\n */\n @Input()\n public get closeOn(): AXPopoverCloseTrigger {\n return this._closeOn;\n }\n\n /**\n * Sets the trigger for closing the popover and rebinds target events.\n * @param v\n */\n public set closeOn(v: AXPopoverCloseTrigger) {\n this.setOption({\n name: 'closeOn',\n value: v,\n afterCallback: () => {\n this.bindTargetEvents();\n },\n });\n }\n\n //\n\n /**\n * Determines if a backdrop should be displayed behind the popover.\n */\n @Input()\n hasBackdrop = false;\n //\n\n /**\n * Delay in milliseconds before the popover opens after a trigger event.\n */\n @Input()\n openAfter = 200;\n\n /**\n * Delay in milliseconds before the popover closes after a trigger event.\n */\n @Input()\n closeAfter = 200;\n\n /**\n * CSS class to apply to the backdrop element.\n */\n @Input()\n backdropClass: string;\n\n /**\n * CSS class to apply to the backdrop element.\n */\n @Input()\n panelClass: string;\n\n /**\n * Enables or disables adaptivity.\n */\n @Input()\n adaptivityEnabled = false;\n //\n\n /**\n * Emits when the component is opened.\n * @event\n */\n @Output()\n onOpened: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\n\n /**\n * Emits when the component is closed.\n * @event\n */\n @Output()\n onClosed: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\n\n /** @ignore */\n private _emitOnOpenedEvent() {\n this.onOpened.emit({\n component: this,\n htmlElement: this.getHostElement(),\n });\n }\n\n /** @ignore */\n private _emitOnClosedEvent() {\n this.onClosed.emit({\n component: this,\n htmlElement: this.getHostElement(),\n });\n }\n //\n\n /** @ignore */\n protected _handleMouseEnter(e: MouseEvent) {\n this._isMouseOverTooltip = true;\n }\n\n /** @ignore */\n protected _handleMouseLeave(e: MouseEvent) {\n this._isMouseOverTooltip = false;\n setTimeout(() => {\n if (!this._isMouseOverButton && this.closeOn == 'leave') {\n this.close();\n }\n }, 250);\n }\n\n /** @ignore */\n private removeTargetEvents(): void {\n Object.entries(this._targetEvents).forEach((e) => {\n e[1].unsubscribe();\n });\n }\n\n /** @ignore */\n private bindTargetEvents() {\n this.removeTargetEvents();\n if (!this._target) return;\n const targetMouseEnter$ = fromEvent(this._target, 'mouseenter');\n const targetMouseLeave$ = fromEvent(this._target, 'mouseleave');\n\n if (this.openOn == 'hover') {\n this._targetEvents.mouseenter = targetMouseEnter$.pipe(delay(this.openAfter)).subscribe(() => {\n this._isMouseOverButton = true;\n this.open();\n });\n }\n\n if (this.closeOn == 'leave') {\n this._targetEvents.mouseleave = targetMouseLeave$.pipe(delay(this.closeAfter)).subscribe(() => {\n this._isMouseOverButton = false;\n if (!this._isMouseOverTooltip) {\n this.close();\n }\n });\n }\n\n if (this.openOn === 'click' || this.openOn === 'toggle') {\n const click$ = fromEvent<MouseEvent>(this._target, 'click');\n this._targetEvents.click = click$.subscribe((e) => {\n this.openOn == 'toggle' ? this.toggle() : this.open();\n });\n }\n }\n //\n\n /** @ignore */\n private bindOverlayEvents() {\n this.removeOverlayEvents();\n this._overlayEvents.attach = this._overlayRef.attachments().subscribe(() => {\n if (this.openOn == 'hover') {\n this._overlayRef.overlayElement.addEventListener('mouseenter', this._handleMouseEnter.bind(this));\n }\n if (this.closeOn == 'leave') {\n this._overlayRef.overlayElement.addEventListener('mouseleave', this._handleMouseLeave.bind(this));\n }\n //\n this._overlayEvents.outside = this._overlayRef._outsidePointerEvents.subscribe((e: MouseEvent) => {\n const el = e.target as HTMLElement;\n if (\n this.closeOn == 'clickOut' &&\n this.isOpen &&\n !this._target.contains(el) &&\n !this._overlayRef?.overlayElement?.contains(el)\n ) {\n this.close();\n }\n });\n //\n\n this._overlayEvents.scroll = this._platform.scroll.subscribe((c) => {\n //__axContext__\n const el = c.nativeEvent.target as HTMLElement;\n if (!this.isActionsheetStyle && isPlatformBrowser(this.platformID)) {\n if (el == (this.document as any)) {\n this.close();\n return;\n }\n if (\n el?.closest &&\n !el.closest('.ax-overlay-pane') &&\n !this._target.contains(el) &&\n !this._overlayRef?.overlayElement?.contains(el)\n ) {\n this.close();\n }\n }\n });\n });\n }\n\n /** @ignore */\n private removeOverlayEvents() {\n this._overlayRef?.overlayElement.removeEventListener('mouseenter', this._handleMouseEnter.bind(this));\n this._overlayRef?.overlayElement.addEventListener('mouseleave', this._handleMouseLeave.bind(this));\n Object.entries(this._overlayEvents).forEach((e) => {\n e[1].unsubscribe();\n });\n }\n\n //\n /**\n * Toggles the component's open state.\n */\n toggle() {\n this.isOpen ? this.close() : this.open();\n }\n\n //\n /**\n * Closes the component if it's open, detaches the overlay, restores focus, and emits the closed event.\n */\n close() {\n if (!this.isOpen) {\n return;\n }\n this._overlayRef?.detach();\n this.restoreFocus();\n this._emitOnClosedEvent();\n }\n\n //\n /**\n * Opens the component if it's not already open, saves focus, opens the overlay, and emits the opened event.\n */\n open() {\n if (this.isOpen) {\n return;\n }\n this.saveFocus();\n this.openOverlayInternal();\n this._emitOnOpenedEvent();\n }\n\n /** @ignore */\n private saveFocus() {\n if (isPlatformBrowser(this.platformID)) {\n this._lastActiveElement = this.document.activeElement as HTMLElement;\n }\n }\n\n /** @ignore */\n private restoreFocus() {\n if (this._lastActiveElement?.focus) {\n this._lastActiveElement.focus();\n }\n }\n\n /** @ignore */\n private openOverlayInternal() {\n const targetRef = this._target;\n if (!targetRef) return;\n\n //if (!this._overlayRef) {\n if (this.isActionsheetStyle) {\n this._overlayRef = this._overlay.create({\n positionStrategy: this._overlay.position().global().bottom().centerHorizontally(),\n disposeOnNavigation: true,\n scrollStrategy: this._overlay.scrollStrategies.block(),\n panelClass: [\n 'ax-actionsheet-base',\n 'ax-animate-slideInUp',\n 'ax-animate-faster',\n this.panelClass ? this.panelClass : this.#platform.isDark() ? 'ax-dark' : '',\n ],\n hasBackdrop: true,\n width: '100%',\n });\n } else {\n this._overlayRef = this._overlay.create({\n positionStrategy: this._overlay\n .position()\n .flexibleConnectedTo(targetRef)\n .withPositions(this._placements)\n .withPush(false),\n scrollStrategy: this._overlay.scrollStrategies.noop(),\n disposeOnNavigation: true,\n panelClass: ['ax-animate-fadeIn', 'ax-animate-faster', this.#platform.isDark() ? 'ax-dark' : ''],\n maxHeight: 'unset',\n hasBackdrop: this.hasBackdrop,\n backdropClass: [this.backdropClass || 'cdk-overlay-transparent-backdrop'],\n direction: AXHtmlUtil.isRtl(this.getHostElement()) ? 'rtl' : 'ltr',\n });\n // this._overlayRef.setDirection()\n }\n\n //\n this.bindOverlayEvents();\n //}\n //\n if (this.content instanceof TemplateRef) {\n this._portal = new TemplatePortal(this.content, this.getViewContainer(), {\n $implicit: this.context,\n ref: this,\n });\n this._overlayRef?.attach(this._portal);\n } else if (typeof this.content === 'function') {\n this._portal = new ComponentPortal(this.content);\n this._componentRef = this._overlayRef?.attach(this._portal);\n Object.assign(this._componentRef.instance, this.context);\n } else {\n this._portal = new TemplatePortal(this._baseTemplate, this.getViewContainer(), {\n $implicit: this.context,\n ref: this,\n });\n this._overlayRef?.attach(this._portal);\n }\n }\n\n /**\n * Checks if the overlay is currently open.\n * @returns {boolean}\n */\n get isOpen(): boolean {\n return this._overlayRef ? this._overlayRef.hasAttached() : false;\n }\n\n /**\n * Determines if the actionsheet style should be applied.\n * @returns {boolean}\n */\n get isActionsheetStyle(): boolean {\n return this._platform.is('SM') && this.adaptivityEnabled;\n }\n\n /** @ignore */\n private updatePositionStrategy(): void {\n const targetRef = this._target;\n if (!targetRef) return;\n let strategy: PositionStrategy;\n if (this.isActionsheetStyle) {\n strategy = this._overlay.position().global().bottom().centerHorizontally();\n } else {\n strategy = this._overlay\n .position()\n .flexibleConnectedTo(targetRef)\n .withPositions(this._placements)\n .withPush(false);\n }\n this._overlayRef?.updatePositionStrategy(strategy);\n }\n\n /** @ignore */\n private updateOffset() {\n this._placements?.forEach((p) => {\n if (this.offsetY != null) p.offsetY = this.offsetY;\n if (this.offsetX != null) p.offsetX = this.offsetX;\n });\n }\n\n /**\n * Updates the position of the overlay and focuses on it.\n */\n public updatePosition(): void {\n this._overlayRef?.updatePosition();\n this.focus();\n }\n\n /**\n * Focuses the overlay element.\n */\n public focus(): void {\n //TODO: need this??\n }\n //\n\n protected override ngOnInit(): void {\n super.ngOnInit();\n // this.platformService.directionChange.subscribe((c) => {\n // this.isRtl = c.data == 'rtl';\n // });\n }\n\n /** @ignore */\n ngOnDestroy(): void {\n this.removeTargetEvents();\n this.removeOverlayEvents();\n this._overlayRef?.detach();\n this._overlayRef?.dispose();\n }\n}\n","<ng-template #baseTemplate>\n <ng-content></ng-content>\n</ng-template>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXPopoverComponent } from './popover.component';\n\n@NgModule({\n declarations: [AXPopoverComponent],\n imports: [CommonModule],\n exports: [AXPopoverComponent],\n providers: [],\n})\nexport class AXPopoverModule {}\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-popover.mjs","sources":["../../../../libs/components/popover/src/lib/popover.component.ts","../../../../libs/components/popover/src/lib/popover.component.html","../../../../libs/components/popover/src/lib/popover.module.ts","../../../../libs/components/popover/src/acorex-components-popover.ts"],"sourcesContent":["import {\n AXConnectedPosition,\n AXEvent,\n AXFocusableComponent,\n AXPlacementType,\n MXBaseComponent,\n convertToPlacement,\n} from '@acorex/components/common';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal, ComponentType, Portal, TemplatePortal } from '@angular/cdk/portal';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n PLATFORM_ID,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { Subscription, delay, fromEvent } from 'rxjs';\n\nexport type AXPopoverOpenTrigger = 'manual' | 'click' | 'hover' | 'toggle';\n\nexport type AXPopoverCloseTrigger = 'manual' | 'clickOut' | 'leave';\n\n/**\n * @category Components\n * A popover component with custom encapsulation and change detection settings.\n */\n@Component({\n selector: 'ax-popover',\n templateUrl: './popover.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXFocusableComponent, useExisting: AXPopoverComponent }],\n standalone: false,\n})\nexport class AXPopoverComponent extends MXBaseComponent {\n #platform = inject(AXPlatform);\n private document = inject(DOCUMENT);\n private platformID = inject(PLATFORM_ID);\n private renderer = inject(Renderer2);\n\n private onKeyDownListenerFn = () => undefined;\n\n /** @ignore */\n private _platform: AXPlatform = inject(AXPlatform);\n\n /** @ignore */\n private _overlay: Overlay = inject(Overlay);\n\n /** @ignore */\n private _overlayRef!: OverlayRef;\n\n /** @ignore */\n private _isMouseOverButton = false;\n\n /** @ignore */\n private _isMouseOverTooltip = false;\n\n /** @ignore */\n private _lastActiveElement: Element;\n\n /** @ignore */\n private _targetEvents: {\n mouseenter?: Subscription;\n mouseleave?: Subscription;\n click?: Subscription;\n } = {};\n\n /** @ignore */\n private _overlayEvents: {\n attach?: Subscription;\n detach?: Subscription;\n scroll?: Subscription;\n outside?: Subscription;\n } = {};\n\n //\n\n /** @ignore */\n private _offsetX = 0;\n\n /**\n * Gets or sets the horizontal offset and updates it accordingly.\n */\n @Input()\n\n /**\n * Gets the horizontal offset value.\n */\n public get offsetX(): number {\n return this._offsetX;\n }\n\n /**\n * Sets the horizontal offset and updates it with a callback.\n */\n public set offsetX(v: number) {\n this.setOption({\n name: 'offsetX',\n value: v,\n afterCallback: () => {\n this.updateOffset();\n },\n });\n }\n //\n\n /** @ignore */\n private _offsetY = 0;\n\n /**\n * Vertical offset with update callback.\n */\n @Input()\n\n /**\n * Gets the vertical offset of the component.\n */\n public get offsetY(): number {\n return this._offsetY;\n }\n\n /**\n * Sets the vertical offset and updates the component position.\n */\n public set offsetY(v: number) {\n this.setOption({\n name: 'offsetY',\n value: v,\n afterCallback: () => {\n this.updateOffset();\n },\n });\n }\n\n //\n\n /** @ignore */\n private _target!: Element;\n\n /**\n * Gets or sets the target element, supporting Element, ElementRef, or MXBaseComponent.\n */\n @Input()\n\n /**\n * Gets the current target element.\n */\n public get target(): Element | ElementRef | MXBaseComponent {\n return this._target;\n }\n\n /**\n * Sets the target element and updates event bindings.\n */\n public set target(v: Element | ElementRef | MXBaseComponent) {\n this.removeTargetEvents();\n if (v instanceof Element) this._target = v;\n else if (v instanceof ElementRef) this._target = v.nativeElement;\n else if (typeof v?.getHostElement == 'function') this._target = v.getHostElement();\n //\n this.bindTargetEvents();\n }\n //\n\n /** @ignore */\n private _defautPlacements: AXConnectedPosition[] = convertToPlacement('bottom-start');\n\n /** @ignore */\n private _placements: AXConnectedPosition[] = [...this._defautPlacements];\n\n /** @ignore */\n private _placement: AXPlacementType = this._placements;\n\n /**\n * Gets or sets the component's placement and updates position settings.\n */\n @Input()\n\n /**\n * Gets the current placement of the component.\n */\n public get placement(): AXPlacementType {\n return this._placement;\n }\n\n /**\n * Sets the component's placement and updates its position settings.\n */\n public set placement(v: AXPlacementType) {\n this.setOption({\n name: 'placement',\n value: v,\n afterCallback: (o, n) => {\n const converted = convertToPlacement(n);\n this._placements = converted.length ? converted : this._defautPlacements;\n this.updateOffset();\n this.updatePositionStrategy();\n },\n });\n }\n //\n\n /** @ignore */\n private _portal: Portal<unknown>;\n\n /** @ignore */\n private _componentRef: ComponentRef<unknown>;\n\n /**\n * Gets the reference to the component.\n */\n public get componentRef(): ComponentRef<unknown> {\n return this._componentRef;\n }\n\n /**\n * Holds the context data for the component.\n */\n public context: unknown;\n\n //\n\n /** @ignore */\n @ViewChild('baseTemplate', { static: true })\n _baseTemplate: TemplateRef<unknown>;\n //\n\n /**\n * Defines the content to be displayed, which can be a template or a component.\n */\n @Input()\n content: TemplateRef<unknown> | ComponentType<unknown>;\n //\n\n /** @ignore */\n private _openOn: AXPopoverOpenTrigger = 'toggle';\n\n /**\n * Gets or sets the trigger for opening the popover and updates target events.\n */\n @Input()\n\n /**\n * Gets the trigger for opening the popover.\n */\n public get openOn(): AXPopoverOpenTrigger {\n return this._openOn;\n }\n\n /**\n * Sets the trigger for opening the popover and updates target events.\n */\n public set openOn(v: AXPopoverOpenTrigger) {\n this.setOption({\n name: 'openOn',\n value: v,\n afterCallback: () => {\n this.bindTargetEvents();\n },\n });\n }\n //\n\n /** @ignore */\n private _closeOn: AXPopoverCloseTrigger = 'clickOut';\n\n /**\n * Gets or sets the trigger for closing the popover.\n */\n @Input()\n public get closeOn(): AXPopoverCloseTrigger {\n return this._closeOn;\n }\n\n /**\n * Sets the trigger for closing the popover and rebinds target events.\n * @param v\n */\n public set closeOn(v: AXPopoverCloseTrigger) {\n this.setOption({\n name: 'closeOn',\n value: v,\n afterCallback: () => {\n this.bindTargetEvents();\n },\n });\n }\n\n //\n\n /**\n * Determines if a backdrop should be displayed behind the popover.\n */\n @Input()\n hasBackdrop = false;\n //\n\n /**\n * Delay in milliseconds before the popover opens after a trigger event.\n */\n @Input()\n openAfter = 200;\n\n /**\n * Delay in milliseconds before the popover closes after a trigger event.\n */\n @Input()\n closeAfter = 200;\n\n /**\n * CSS class to apply to the backdrop element.\n */\n @Input()\n backdropClass: string;\n\n /**\n * CSS class to apply to the backdrop element.\n */\n @Input()\n panelClass: string;\n\n /**\n * Enables or disables adaptivity.\n */\n @Input()\n adaptivityEnabled = false;\n //\n\n /**\n * Emits when the component is opened.\n * @event\n */\n @Output()\n onOpened: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\n\n /**\n * Emits when the component is closed.\n * @event\n */\n @Output()\n onClosed: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\n\n /** @ignore */\n private _emitOnOpenedEvent() {\n this.onOpened.emit({\n component: this,\n htmlElement: this.getHostElement(),\n });\n }\n\n /** @ignore */\n private _emitOnClosedEvent() {\n this.onClosed.emit({\n component: this,\n htmlElement: this.getHostElement(),\n });\n }\n //\n\n /** @ignore */\n protected _handleMouseEnter(e: MouseEvent) {\n this._isMouseOverTooltip = true;\n }\n\n /** @ignore */\n protected _handleMouseLeave(e: MouseEvent) {\n this._isMouseOverTooltip = false;\n setTimeout(() => {\n if (!this._isMouseOverButton && this.closeOn == 'leave') {\n this.close();\n }\n }, 250);\n }\n\n /** @ignore */\n private removeTargetEvents(): void {\n Object.entries(this._targetEvents).forEach((e) => {\n e[1].unsubscribe();\n });\n }\n\n /** @ignore */\n private bindTargetEvents() {\n this.removeTargetEvents();\n if (!this._target) return;\n const targetMouseEnter$ = fromEvent(this._target, 'mouseenter');\n const targetMouseLeave$ = fromEvent(this._target, 'mouseleave');\n\n if (this.openOn == 'hover') {\n this._targetEvents.mouseenter = targetMouseEnter$.pipe(delay(this.openAfter)).subscribe(() => {\n this._isMouseOverButton = true;\n this.open();\n });\n }\n\n if (this.closeOn == 'leave') {\n this._targetEvents.mouseleave = targetMouseLeave$.pipe(delay(this.closeAfter)).subscribe(() => {\n this._isMouseOverButton = false;\n if (!this._isMouseOverTooltip) {\n this.close();\n }\n });\n }\n\n if (this.openOn === 'click' || this.openOn === 'toggle') {\n const click$ = fromEvent<MouseEvent>(this._target, 'click');\n this._targetEvents.click = click$.subscribe((e) => {\n this.openOn == 'toggle' ? this.toggle() : this.open();\n });\n }\n }\n //\n\n /** @ignore */\n private bindOverlayEvents() {\n this.removeOverlayEvents();\n this._overlayEvents.attach = this._overlayRef.attachments().subscribe(() => {\n if (this.openOn == 'hover') {\n this._overlayRef.overlayElement.addEventListener('mouseenter', this._handleMouseEnter.bind(this));\n }\n if (this.closeOn == 'leave') {\n this._overlayRef.overlayElement.addEventListener('mouseleave', this._handleMouseLeave.bind(this));\n }\n //\n this._overlayEvents.outside = this._overlayRef._outsidePointerEvents.subscribe((e: MouseEvent) => {\n const el = e.target as Element;\n if (\n this.closeOn == 'clickOut' &&\n this.isOpen &&\n !this._target.contains(el) &&\n !this._overlayRef?.overlayElement?.contains(el)\n ) {\n this.close();\n }\n });\n //\n\n this._overlayEvents.scroll = this._platform.scroll.subscribe((c) => {\n //__axContext__\n const el = c.nativeEvent.target as Element;\n if (!this.isActionsheetStyle && isPlatformBrowser(this.platformID)) {\n if (el == (this.document as any)) {\n this.close();\n return;\n }\n if (\n el?.closest &&\n !el.closest('.ax-overlay-pane') &&\n !this._target.contains(el) &&\n !this._overlayRef?.overlayElement?.contains(el)\n ) {\n this.close();\n }\n }\n });\n });\n }\n\n /** @ignore */\n private removeOverlayEvents() {\n this._overlayRef?.overlayElement.removeEventListener('mouseenter', this._handleMouseEnter.bind(this));\n this._overlayRef?.overlayElement.addEventListener('mouseleave', this._handleMouseLeave.bind(this));\n Object.entries(this._overlayEvents).forEach((e) => {\n e[1].unsubscribe();\n });\n }\n\n //\n /**\n * Toggles the component's open state.\n */\n toggle() {\n this.isOpen ? this.close() : this.open();\n }\n\n //\n /**\n * Closes the component if it's open, detaches the overlay, restores focus, and emits the closed event.\n */\n close() {\n if (!this.isOpen) {\n return;\n }\n this._overlayRef?.detach();\n this.restoreFocus();\n this._emitOnClosedEvent();\n this.onKeyDownListenerFn();\n }\n\n //\n /**\n * Opens the component if it's not already open, saves focus, opens the overlay, and emits the opened event.\n */\n open() {\n if (this.isOpen) {\n return;\n }\n if (isPlatformBrowser(this.platformID)) {\n this.onKeyDownListenerFn = this.renderer.listen(this.document.body, 'keydown', (e) => {\n if (e.key == 'Escape') {\n this.close();\n }\n });\n }\n this.saveFocus();\n this.openOverlayInternal();\n this._emitOnOpenedEvent();\n }\n\n /** @ignore */\n private saveFocus() {\n if (isPlatformBrowser(this.platformID)) {\n this._lastActiveElement = this.document.activeElement as Element;\n }\n }\n\n /** @ignore */\n private restoreFocus() {\n if (this._lastActiveElement instanceof HTMLElement) {\n if (this._lastActiveElement?.focus) {\n this._lastActiveElement.focus();\n }\n }\n }\n\n /** @ignore */\n private openOverlayInternal() {\n const targetRef = this._target;\n if (!targetRef) return;\n\n //if (!this._overlayRef) {\n if (this.isActionsheetStyle) {\n this._overlayRef = this._overlay.create({\n positionStrategy: this._overlay.position().global().bottom().centerHorizontally(),\n disposeOnNavigation: true,\n scrollStrategy: this._overlay.scrollStrategies.block(),\n panelClass: [\n 'ax-actionsheet-base',\n 'ax-animate-slideInUp',\n 'ax-animate-faster',\n this.panelClass ? this.panelClass : this.#platform.isDark() ? 'ax-dark' : '',\n ],\n hasBackdrop: true,\n width: '100%',\n });\n } else {\n this._overlayRef = this._overlay.create({\n positionStrategy: this._overlay\n .position()\n .flexibleConnectedTo(targetRef)\n .withPositions(this._placements)\n .withPush(false),\n scrollStrategy: this._overlay.scrollStrategies.noop(),\n disposeOnNavigation: true,\n panelClass: ['ax-animate-fadeIn', 'ax-animate-faster', this.#platform.isDark() ? 'ax-dark' : ''],\n maxHeight: 'unset',\n hasBackdrop: this.hasBackdrop,\n backdropClass: [this.backdropClass || 'cdk-overlay-transparent-backdrop'],\n direction: AXHtmlUtil.isRtl(this.getHostElement()) ? 'rtl' : 'ltr',\n });\n // this._overlayRef.setDirection()\n }\n\n //\n this.bindOverlayEvents();\n //}\n //\n if (this.content instanceof TemplateRef) {\n this._portal = new TemplatePortal(this.content, this.getViewContainer(), {\n $implicit: this.context,\n ref: this,\n });\n this._overlayRef?.attach(this._portal);\n } else if (typeof this.content === 'function') {\n this._portal = new ComponentPortal(this.content);\n this._componentRef = this._overlayRef?.attach(this._portal);\n Object.assign(this._componentRef.instance, this.context);\n } else {\n this._portal = new TemplatePortal(this._baseTemplate, this.getViewContainer(), {\n $implicit: this.context,\n ref: this,\n });\n this._overlayRef?.attach(this._portal);\n }\n }\n\n /**\n * Checks if the overlay is currently open.\n * @returns {boolean}\n */\n get isOpen(): boolean {\n return this._overlayRef ? this._overlayRef.hasAttached() : false;\n }\n\n /**\n * Determines if the actionsheet style should be applied.\n * @returns {boolean}\n */\n get isActionsheetStyle(): boolean {\n return this._platform.is('SM') && this.adaptivityEnabled;\n }\n\n /** @ignore */\n private updatePositionStrategy(): void {\n const targetRef = this._target;\n if (!targetRef) return;\n let strategy: PositionStrategy;\n if (this.isActionsheetStyle) {\n strategy = this._overlay.position().global().bottom().centerHorizontally();\n } else {\n strategy = this._overlay\n .position()\n .flexibleConnectedTo(targetRef)\n .withPositions(this._placements)\n .withPush(false);\n }\n this._overlayRef?.updatePositionStrategy(strategy);\n }\n\n /** @ignore */\n private updateOffset() {\n this._placements?.forEach((p) => {\n if (this.offsetY != null) p.offsetY = this.offsetY;\n if (this.offsetX != null) p.offsetX = this.offsetX;\n });\n }\n\n /**\n * Updates the position of the overlay and focuses on it.\n */\n public updatePosition(): void {\n this._overlayRef?.updatePosition();\n this.focus();\n }\n\n /**\n * Focuses the overlay element.\n */\n public focus(): void {\n //TODO: need this??\n }\n //\n\n protected override ngOnInit(): void {\n super.ngOnInit();\n // this.platformService.directionChange.subscribe((c) => {\n // this.isRtl = c.data == 'rtl';\n // });\n }\n\n /** @ignore */\n ngOnDestroy(): void {\n this.removeTargetEvents();\n this.removeOverlayEvents();\n this._overlayRef?.detach();\n this._overlayRef?.dispose();\n }\n}\n","<ng-template #baseTemplate>\n <ng-content></ng-content>\n</ng-template>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXPopoverComponent } from './popover.component';\n\n@NgModule({\n declarations: [AXPopoverComponent],\n imports: [CommonModule],\n exports: [AXPopoverComponent],\n providers: [],\n})\nexport class AXPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-qrcode.mjs","sources":["../../../../libs/components/qrcode/src/lib/qrcode.class.ts","../../../../libs/components/qrcode/src/lib/qrcode.component.ts","../../../../libs/components/qrcode/src/lib/qrcode.component.html","../../../../libs/components/qrcode/src/lib/qrcode.module.ts","../../../../libs/components/qrcode/src/acorex-components-qrcode.ts"],"sourcesContent":["export type AXQrcodeOutputType = 'canvas' | 'svg' | 'url';\nexport type AXQrcodeLevel = 'L' | 'M' | 'Q' | 'H';\n\nexport function debounce(func: (...args: any) => void, delayMS: number) {\n let timeoutId;\n\n return function (...args) {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n func(...args);\n }, delayMS);\n };\n}\n","import { generateQRCode } from '@acorex/cdk/qrcode';\nimport { AXValuableComponent } from '@acorex/components/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n forwardRef,\n input,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AXQrcodeLevel, AXQrcodeOutputType } from './qrcode.class';\n\n@Component({\n
|
1
|
+
{"version":3,"file":"acorex-components-qrcode.mjs","sources":["../../../../libs/components/qrcode/src/lib/qrcode.class.ts","../../../../libs/components/qrcode/src/lib/qrcode.component.ts","../../../../libs/components/qrcode/src/lib/qrcode.component.html","../../../../libs/components/qrcode/src/lib/qrcode.module.ts","../../../../libs/components/qrcode/src/acorex-components-qrcode.ts"],"sourcesContent":["export type AXQrcodeOutputType = 'canvas' | 'svg' | 'url';\nexport type AXQrcodeLevel = 'L' | 'M' | 'Q' | 'H';\n\nexport function debounce(func: (...args: any) => void, delayMS: number) {\n let timeoutId;\n\n return function (...args) {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n func(...args);\n }, delayMS);\n };\n}\n","import { generateQRCode } from '@acorex/cdk/qrcode';\nimport { AXValuableComponent } from '@acorex/components/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n forwardRef,\n input,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AXQrcodeLevel, AXQrcodeOutputType } from './qrcode.class';\n\n@Component({\n selector: 'ax-qrcode',\n templateUrl: './qrcode.component.html',\n styleUrls: ['./qrcode.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: AXValuableComponent, useExisting: AXQrcodeComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXQrcodeComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class AXQrcodeComponent implements AfterViewInit {\n /**\n * @description Value of QR code\n */\n content = input.required<string>();\n /**\n * @description Size of the QR code\n * @default 256\n */\n size = input(256);\n /**\n * @description Error correction level can be 'L' | 'M' | 'Q' | 'H'\n * @default 'M'\n */\n level = input<AXQrcodeLevel>('M');\n /**\n * @description QR code color, can be a hex code or CSS color name\n * @default '#000000'\n */\n color = input('#000000');\n /**\n * @description QR code Background color, can be a hex code or CSS color name\n * @default '#FFFFFF'\n */\n backgroundColor = input('#FFFFFF');\n /**\n * @description Type of output can be 'canvas' | 'svg' | 'url'\n * @default 'canvas'\n */\n outputType = input<AXQrcodeOutputType>('canvas'); //\n /**\n * @ignore\n */\n /**\n * @description // Holds base64 or URL if outputType is 'url' or 'base64'\n */\n protected qrCodeUrl = signal<string | undefined>(undefined);\n /**\n * @ignore\n */\n private canvas = viewChild<ElementRef<HTMLCanvasElement>>('canvas');\n /**\n * @ignore\n */\n private svg = viewChild<ElementRef<HTMLCanvasElement>>('svg');\n\n constructor() {\n effect(() => {\n this.generate();\n });\n }\n\n ngAfterViewInit() {\n this.generate();\n }\n generate() {\n generateQRCode(\n this.content(),\n this.size(),\n this.level(),\n this.color(),\n this.backgroundColor(),\n this.outputType(),\n this.canvas()?.nativeElement,\n this.svg()?.nativeElement,\n )\n .then((result) => {\n if (this.outputType() === 'url') {\n this.qrCodeUrl.set(result as string);\n }\n })\n .catch((error) => {\n console.error(error);\n });\n }\n}\n","<div class=\"qrcode\">\n @if (outputType() === 'canvas') {\n <canvas #canvas></canvas>\n } @else if (outputType() === 'svg') {\n <div #svg></div>\n } @else {\n <img [src]=\"qrCodeUrl()\" alt=\"QR Code\" />\n }\n <div class=\"logo-container\">\n <ng-content select=\"img\"></ng-content>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXQrcodeComponent } from './qrcode.component';\n\n@NgModule({\n declarations: [AXQrcodeComponent],\n imports: [CommonModule],\n exports: [AXQrcodeComponent],\n})\nexport class AXQrcodeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -29,9 +29,8 @@ class AXRailNavigationItemComponent extends MXBaseComponent {
|
|
29
29
|
this.railNavigationService = inject(AXRailNavigationService);
|
30
30
|
this.platformId = inject(PLATFORM_ID);
|
31
31
|
this.onClick = output();
|
32
|
-
this.isLoading = model(false);
|
33
|
-
this.disabled = model(false);
|
34
32
|
this.active = model(false);
|
33
|
+
this.disabled = model(false);
|
35
34
|
this.href = input();
|
36
35
|
this.routerLink = input();
|
37
36
|
this.routerLinkActive = input('ax-state-active');
|
@@ -64,6 +63,8 @@ class AXRailNavigationItemComponent extends MXBaseComponent {
|
|
64
63
|
}
|
65
64
|
}
|
66
65
|
handleClickEvent(e) {
|
66
|
+
if (this.disabled())
|
67
|
+
return;
|
67
68
|
this.onClick.emit({
|
68
69
|
component: this,
|
69
70
|
htmlElement: this.getHostElement(),
|
@@ -77,16 +78,16 @@ class AXRailNavigationItemComponent extends MXBaseComponent {
|
|
77
78
|
};
|
78
79
|
}
|
79
80
|
checkActive(item) {
|
80
|
-
if (item.classList.contains('ax-state-active')) {
|
81
|
+
if (item.classList.contains('ax-state-active') && !this.disabled()) {
|
81
82
|
this.railNavigationService.setActive(this);
|
82
83
|
}
|
83
84
|
}
|
84
85
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXRailNavigationItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
85
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXRailNavigationItemComponent, isStandalone: false, selector: "ax-rail-navigation-item", inputs: {
|
86
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXRailNavigationItemComponent, isStandalone: false, selector: "ax-rail-navigation-item", inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, routerLink: { classPropertyName: "routerLink", publicName: "routerLink", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActive: { classPropertyName: "routerLinkActive", publicName: "routerLinkActive", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActiveOptions: { classPropertyName: "routerLinkActiveOptions", publicName: "routerLinkActiveOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: "onClick", active: "activeChange", disabled: "disabledChange" }, viewQueries: [{ propertyName: "itemContainer", first: true, predicate: ["itemContainer"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (routerLink()) {\n <a\n #itemContainer\n [target]=\"target()\"\n [routerLink]=\"routerLink()\"\n class=\"ax-rail-navigation-item\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled()\"\n [routerLinkActive]=\"routerLinkActive()\"\n [routerLinkActiveOptions]=\"routerLinkActiveOptions()\"\n >\n <ng-container [ngTemplateOutlet]=\"railNavigationItemContent\"></ng-container>\n </a>\n} @else if (href()) {\n <a\n #itemContainer\n [href]=\"href()\"\n [target]=\"target()\"\n class=\"ax-rail-navigation-item\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-active]=\"active() && !disabled()\"\n [class.ax-state-disabled]=\"disabled()\"\n >\n <ng-container [ngTemplateOutlet]=\"railNavigationItemContent\"></ng-container>\n </a>\n} @else {\n <div\n #itemContainer\n class=\"ax-rail-navigation-item\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-active]=\"active() && !disabled()\"\n [class.ax-state-disabled]=\"disabled()\"\n >\n <ng-container [ngTemplateOutlet]=\"railNavigationItemContent\"></ng-container>\n </div>\n}\n\n<ng-template #railNavigationItemContent>\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-icon\"></ng-content>\n <ng-content select=\"ax-text\"></ng-content>\n <ng-content select=\"ng-container,ng-content\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
86
87
|
}
|
87
88
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXRailNavigationItemComponent, decorators: [{
|
88
89
|
type: Component,
|
89
|
-
args: [{ selector: 'ax-rail-navigation-item', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: false, template: "@if (routerLink()) {\n <a\n #itemContainer\n [target]=\"target()\"\n [routerLink]=\"routerLink()\"\n class=\"ax-rail-navigation-item\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled()\"\n [routerLinkActive]=\"routerLinkActive()\"\n [routerLinkActiveOptions]=\"routerLinkActiveOptions()\"\n >\n <ng-container [ngTemplateOutlet]=\"railNavigationItemContent\"></ng-container>\n </a>\n} @else if (href()) {\n <a\n #itemContainer\n [href]=\"href()\"\n [target]=\"target()\"\n class=\"ax-rail-navigation-item\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-active]=\"active()\"\n [class.ax-state-disabled]=\"disabled()\"\n >\n <ng-container [ngTemplateOutlet]=\"railNavigationItemContent\"></ng-container>\n </a>\n} @else {\n <div\n #itemContainer\n class=\"ax-rail-navigation-item\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-active]=\"active()\"\n [class.ax-state-disabled]=\"disabled()\"\n >\n <ng-container [ngTemplateOutlet]=\"railNavigationItemContent\"></ng-container>\n </div>\n}\n\n<ng-template #railNavigationItemContent>\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-icon\"></ng-content>\n <ng-content select=\"ax-text\"></ng-content>\n <ng-content select=\"ng-container,ng-content\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n</ng-template>\n" }]
|
90
|
+
args: [{ selector: 'ax-rail-navigation-item', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: false, template: "@if (routerLink()) {\n <a\n #itemContainer\n [target]=\"target()\"\n [routerLink]=\"routerLink()\"\n class=\"ax-rail-navigation-item\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled()\"\n [routerLinkActive]=\"routerLinkActive()\"\n [routerLinkActiveOptions]=\"routerLinkActiveOptions()\"\n >\n <ng-container [ngTemplateOutlet]=\"railNavigationItemContent\"></ng-container>\n </a>\n} @else if (href()) {\n <a\n #itemContainer\n [href]=\"href()\"\n [target]=\"target()\"\n class=\"ax-rail-navigation-item\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-active]=\"active() && !disabled()\"\n [class.ax-state-disabled]=\"disabled()\"\n >\n <ng-container [ngTemplateOutlet]=\"railNavigationItemContent\"></ng-container>\n </a>\n} @else {\n <div\n #itemContainer\n class=\"ax-rail-navigation-item\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-active]=\"active() && !disabled()\"\n [class.ax-state-disabled]=\"disabled()\"\n >\n <ng-container [ngTemplateOutlet]=\"railNavigationItemContent\"></ng-container>\n </div>\n}\n\n<ng-template #railNavigationItemContent>\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-icon\"></ng-content>\n <ng-content select=\"ax-text\"></ng-content>\n <ng-content select=\"ng-container,ng-content\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n</ng-template>\n" }]
|
90
91
|
}] });
|
91
92
|
|
92
93
|
class AXRailNavigationComponent extends MXBaseComponent {
|
@@ -138,11 +139,11 @@ class AXRailNavigationComponent extends MXBaseComponent {
|
|
138
139
|
return cssClasses;
|
139
140
|
}
|
140
141
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXRailNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
141
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXRailNavigationComponent, isStandalone: false, selector: "ax-rail-navigation", inputs: { location: { classPropertyName: "location", publicName: "location", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, queries: [{ propertyName: "railNavItems", predicate: AXRailNavigationItemComponent, isSignal: true }], viewQueries: [{ propertyName: "indicator", first: true, predicate: ["indicator"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content select=\"ax-rail-navigation-item,ng-container,ng-content\"></ng-content>\n<div class=\"ax-suffix-container\">\n <ng-content select=\"ax-suffix\"></ng-content>\n</div>\n<span class=\"ax-rail-indicator\" #indicator></span>\n", styles: [".ax-dark ax-rail-navigation.ax-look-with-line-color .ax-state-active{background-color:rgba(var(--ax-color-primary-100),.2)}:root{--ax-rail-width:
|
142
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXRailNavigationComponent, isStandalone: false, selector: "ax-rail-navigation", inputs: { location: { classPropertyName: "location", publicName: "location", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, queries: [{ propertyName: "railNavItems", predicate: AXRailNavigationItemComponent, isSignal: true }], viewQueries: [{ propertyName: "indicator", first: true, predicate: ["indicator"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix, ax-header\"></ng-content>\n<ng-content select=\"ax-rail-navigation-item, ng-container, ng-content\"></ng-content>\n<div class=\"ax-suffix-container\">\n <ng-content select=\"ax-suffix, ax-footer\"></ng-content>\n</div>\n<span class=\"ax-rail-indicator\" #indicator></span>\n", styles: [".ax-dark ax-rail-navigation.ax-look-with-line-color .ax-state-active{background-color:rgba(var(--ax-color-primary-100),.2)}:root{--ax-rail-width: 7rem;--ax-rail-indicator-size: 2px}ax-rail-navigation{height:100%;display:flex;overflow-y:auto;position:relative;align-items:center;font-size:.875rem;padding-block:1rem;flex-direction:column;width:var(--ax-rail-width);background:rgba(var(--ax-color-surface))}ax-rail-navigation .ax-suffix-container{height:100%;display:flex;align-items:end}ax-rail-navigation ax-rail-navigation-item{width:100%;-webkit-user-select:none;user-select:none}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item{gap:.25rem;display:flex;cursor:pointer;font-weight:500;align-items:center;padding-block:1.25rem;flex-direction:column;justify-content:center;transition:color .3s ease;color:rgba(var(--ax-color-text-default),.5);transition-property:background-color,font-weight;transition:.3s cubic-bezier(.4,0,.2,1)}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item ax-icon{display:flex;font-size:1.1rem;border-radius:1rem;padding:.4rem 1.2rem;justify-content:center;transition:background-color .3s cubic-bezier(.4,0,.2,1)}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item ax-text{font-weight:500}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item:hover{color:rgba(var(--ax-color-text-default))}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item.ax-state-disabled{cursor:not-allowed;color:rgba(var(--ax-color-text-default),.3)}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item.ax-state-disabled:hover{color:rgba(var(--ax-color-text-default),.3)}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item.ax-state-active{color:rgba(var(--ax-color-text-default))}ax-rail-navigation .ax-rail-indicator{display:none}ax-rail-navigation.ax-look-with-line .ax-rail-indicator,ax-rail-navigation.ax-look-with-line-color .ax-rail-indicator{display:block;position:absolute;transition-property:height,top;width:var(--ax-rail-indicator-size);transition:.3s cubic-bezier(.4,0,.2,1);background-color:rgba(var(--ax-color-text-default))}ax-rail-navigation.ax-look-with-line-color .ax-state-active{background-color:rgba(var(--ax-color-primary-100))}ax-rail-navigation.ax-look-pills .ax-rail-navigation-item,ax-rail-navigation.ax-look-pills-color .ax-rail-navigation-item{color:rgba(var(--ax-color-text-default),.7)}ax-rail-navigation.ax-look-pills .ax-rail-navigation-item:hover,ax-rail-navigation.ax-look-pills-color .ax-rail-navigation-item:hover{color:rgba(var(--ax-color-text-default),.85);font-weight:700}ax-rail-navigation.ax-look-pills .ax-rail-navigation-item:hover ax-icon,ax-rail-navigation.ax-look-pills-color .ax-rail-navigation-item:hover ax-icon{background-color:rgba(var(--ax-color-text-default),.1)}ax-rail-navigation.ax-look-pills .ax-rail-navigation-item.ax-state-active,ax-rail-navigation.ax-look-pills-color .ax-rail-navigation-item.ax-state-active{color:rgba(var(--ax-color-text-default));font-weight:bolder}ax-rail-navigation.ax-look-pills .ax-rail-navigation-item.ax-state-active ax-icon,ax-rail-navigation.ax-look-pills-color .ax-rail-navigation-item.ax-state-active ax-icon{background-color:rgba(var(--ax-color-text-default),.2)}ax-rail-navigation.ax-look-pills-color .ax-state-active ax-icon{background-color:rgba(var(--ax-color-primary-400),.2)!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
142
143
|
}
|
143
144
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXRailNavigationComponent, decorators: [{
|
144
145
|
type: Component,
|
145
|
-
args: [{ selector: 'ax-rail-navigation', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: false, template: "<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content select=\"ax-rail-navigation-item,ng-container,ng-content\"></ng-content>\n<div class=\"ax-suffix-container\">\n <ng-content select=\"ax-suffix\"></ng-content>\n</div>\n<span class=\"ax-rail-indicator\" #indicator></span>\n", styles: [".ax-dark ax-rail-navigation.ax-look-with-line-color .ax-state-active{background-color:rgba(var(--ax-color-primary-100),.2)}:root{--ax-rail-width:
|
146
|
+
args: [{ selector: 'ax-rail-navigation', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: false, template: "<ng-content select=\"ax-prefix, ax-header\"></ng-content>\n<ng-content select=\"ax-rail-navigation-item, ng-container, ng-content\"></ng-content>\n<div class=\"ax-suffix-container\">\n <ng-content select=\"ax-suffix, ax-footer\"></ng-content>\n</div>\n<span class=\"ax-rail-indicator\" #indicator></span>\n", styles: [".ax-dark ax-rail-navigation.ax-look-with-line-color .ax-state-active{background-color:rgba(var(--ax-color-primary-100),.2)}:root{--ax-rail-width: 7rem;--ax-rail-indicator-size: 2px}ax-rail-navigation{height:100%;display:flex;overflow-y:auto;position:relative;align-items:center;font-size:.875rem;padding-block:1rem;flex-direction:column;width:var(--ax-rail-width);background:rgba(var(--ax-color-surface))}ax-rail-navigation .ax-suffix-container{height:100%;display:flex;align-items:end}ax-rail-navigation ax-rail-navigation-item{width:100%;-webkit-user-select:none;user-select:none}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item{gap:.25rem;display:flex;cursor:pointer;font-weight:500;align-items:center;padding-block:1.25rem;flex-direction:column;justify-content:center;transition:color .3s ease;color:rgba(var(--ax-color-text-default),.5);transition-property:background-color,font-weight;transition:.3s cubic-bezier(.4,0,.2,1)}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item ax-icon{display:flex;font-size:1.1rem;border-radius:1rem;padding:.4rem 1.2rem;justify-content:center;transition:background-color .3s cubic-bezier(.4,0,.2,1)}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item ax-text{font-weight:500}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item:hover{color:rgba(var(--ax-color-text-default))}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item.ax-state-disabled{cursor:not-allowed;color:rgba(var(--ax-color-text-default),.3)}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item.ax-state-disabled:hover{color:rgba(var(--ax-color-text-default),.3)}ax-rail-navigation ax-rail-navigation-item .ax-rail-navigation-item.ax-state-active{color:rgba(var(--ax-color-text-default))}ax-rail-navigation .ax-rail-indicator{display:none}ax-rail-navigation.ax-look-with-line .ax-rail-indicator,ax-rail-navigation.ax-look-with-line-color .ax-rail-indicator{display:block;position:absolute;transition-property:height,top;width:var(--ax-rail-indicator-size);transition:.3s cubic-bezier(.4,0,.2,1);background-color:rgba(var(--ax-color-text-default))}ax-rail-navigation.ax-look-with-line-color .ax-state-active{background-color:rgba(var(--ax-color-primary-100))}ax-rail-navigation.ax-look-pills .ax-rail-navigation-item,ax-rail-navigation.ax-look-pills-color .ax-rail-navigation-item{color:rgba(var(--ax-color-text-default),.7)}ax-rail-navigation.ax-look-pills .ax-rail-navigation-item:hover,ax-rail-navigation.ax-look-pills-color .ax-rail-navigation-item:hover{color:rgba(var(--ax-color-text-default),.85);font-weight:700}ax-rail-navigation.ax-look-pills .ax-rail-navigation-item:hover ax-icon,ax-rail-navigation.ax-look-pills-color .ax-rail-navigation-item:hover ax-icon{background-color:rgba(var(--ax-color-text-default),.1)}ax-rail-navigation.ax-look-pills .ax-rail-navigation-item.ax-state-active,ax-rail-navigation.ax-look-pills-color .ax-rail-navigation-item.ax-state-active{color:rgba(var(--ax-color-text-default));font-weight:bolder}ax-rail-navigation.ax-look-pills .ax-rail-navigation-item.ax-state-active ax-icon,ax-rail-navigation.ax-look-pills-color .ax-rail-navigation-item.ax-state-active ax-icon{background-color:rgba(var(--ax-color-text-default),.2)}ax-rail-navigation.ax-look-pills-color .ax-state-active ax-icon{background-color:rgba(var(--ax-color-primary-400),.2)!important}\n"] }]
|
146
147
|
}], ctorParameters: () => [], propDecorators: { __hostClass: [{
|
147
148
|
type: HostBinding,
|
148
149
|
args: ['class']
|
@@ -167,5 +168,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
167
168
|
* Generated bundle index. Do not edit.
|
168
169
|
*/
|
169
170
|
|
170
|
-
export { AXRailNavigationComponent, AXRailNavigationItemComponent, AXRailNavigationModule };
|
171
|
+
export { AXRailNavigationComponent, AXRailNavigationItemComponent, AXRailNavigationModule, AXRailNavigationService };
|
171
172
|
//# sourceMappingURL=acorex-components-rail-navigation.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-rail-navigation.mjs","sources":["../../../../libs/components/rail-navigation/src/lib/rail-navigation.service.ts","../../../../libs/components/rail-navigation/src/lib/rail-navigation-item/rail-navigation-item.component.ts","../../../../libs/components/rail-navigation/src/lib/rail-navigation-item/rail-navigation-item.component.html","../../../../libs/components/rail-navigation/src/lib/rail-navigation.component.ts","../../../../libs/components/rail-navigation/src/lib/rail-navigation.component.html","../../../../libs/components/rail-navigation/src/lib/rail-navigation.module.ts","../../../../libs/components/rail-navigation/src/acorex-components-rail-navigation.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXRailNavigationItemComponent } from './rail-navigation-item/rail-navigation-item.component';\n\n@Injectable({ providedIn: 'root' })\nexport class AXRailNavigationService {\n private activeItem = new Subject<AXRailNavigationItemComponent>();\n activeItem$ = this.activeItem.asObservable();\n\n setActive(item: AXRailNavigationItemComponent) {\n this.activeItem.next(item);\n }\n}\n","import { MXBaseComponent } from '@acorex/components/common';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n model,\n OnDestroy,\n output,\n PLATFORM_ID,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IsActiveMatchOptions, UrlTree } from '@angular/router';\nimport { AXRailClickEvent } from '../rail-navigation.class';\nimport { AXRailNavigationService } from '../rail-navigation.service';\n\n@Component({\n selector: 'ax-rail-navigation-item',\n templateUrl: './rail-navigation-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class AXRailNavigationItemComponent extends MXBaseComponent implements AfterViewInit, OnDestroy {\n private railNavigationService = inject(AXRailNavigationService);\n private platformId = inject(PLATFORM_ID);\n\n onClick = output<AXRailClickEvent>();\n\n isLoading = model(false);\n disabled = model(false);\n active = model(false);\n\n href = input<string | null>();\n routerLink = input<string | any[] | UrlTree | null>();\n routerLinkActive = input<string | string[]>('ax-state-active');\n target = input<'_blank' | '_self' | '_parent' | '_top'>('_self');\n routerLinkActiveOptions = input<{ exact: boolean } | IsActiveMatchOptions>({ exact: false });\n\n itemContainer = viewChild<ElementRef<HTMLElement>>('itemContainer');\n\n private observer: MutationObserver | null = null;\n\n ngAfterViewInit(): void {\n this.checkActive(this.itemContainer().nativeElement);\n if (isPlatformBrowser(this.platformId)) {\n this.observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.attributeName === 'class') {\n this.checkActive(mutation.target as HTMLElement);\n }\n });\n });\n this.observer.observe(this.itemContainer().nativeElement, {\n attributes: true,\n childList: false,\n characterData: false,\n });\n }\n }\n\n ngOnDestroy(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.observer.disconnect();\n this.observer = null;\n }\n }\n\n handleClickEvent(e: MouseEvent) {\n this.onClick.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n });\n }\n\n getStats() {\n return {\n height: this.getHostElement().clientHeight,\n top: this.getHostElement().offsetTop,\n };\n }\n\n private checkActive(item: HTMLElement) {\n if (item.classList.contains('ax-state-active')) {\n this.railNavigationService.setActive(this);\n }\n }\n}\n","@if (routerLink()) {\n <a\n #itemContainer\n [target]=\"target()\"\n [routerLink]=\"routerLink()\"\n class=\"ax-rail-navigation-item\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled()\"\n [routerLinkActive]=\"routerLinkActive()\"\n [routerLinkActiveOptions]=\"routerLinkActiveOptions()\"\n >\n <ng-container [ngTemplateOutlet]=\"railNavigationItemContent\"></ng-container>\n </a>\n} @else if (href()) {\n <a\n #itemContainer\n [href]=\"href()\"\n [target]=\"target()\"\n class=\"ax-rail-navigation-item\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-active]=\"active()\"\n [class.ax-state-disabled]=\"disabled()\"\n >\n <ng-container [ngTemplateOutlet]=\"railNavigationItemContent\"></ng-container>\n </a>\n} @else {\n <div\n #itemContainer\n class=\"ax-rail-navigation-item\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-active]=\"active()\"\n [class.ax-state-disabled]=\"disabled()\"\n >\n <ng-container [ngTemplateOutlet]=\"railNavigationItemContent\"></ng-container>\n </div>\n}\n\n<ng-template #railNavigationItemContent>\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-icon\"></ng-content>\n <ng-content select=\"ax-text\"></ng-content>\n <ng-content select=\"ng-container,ng-content\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n</ng-template>\n","import { MXBaseComponent } from '@acorex/components/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n effect,\n ElementRef,\n HostBinding,\n inject,\n input,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXRailNavigationItemComponent } from './rail-navigation-item/rail-navigation-item.component';\nimport { AXRailLocation, AXRailLook } from './rail-navigation.class';\nimport { AXRailNavigationService } from './rail-navigation.service';\n\n@Component({\n selector: 'ax-rail-navigation',\n templateUrl: './rail-navigation.component.html',\n styleUrls: ['./rail-navigation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class AXRailNavigationComponent extends MXBaseComponent {\n private railNavigationService = inject(AXRailNavigationService);\n\n private indicator = viewChild<ElementRef<HTMLSpanElement>>('indicator');\n railNavItems = contentChildren(AXRailNavigationItemComponent);\n\n location = input<AXRailLocation>('start');\n look = input<AXRailLook>('with-line-color');\n\n private activeTab = signal<AXRailNavigationItemComponent | null>(null);\n\n #lookLocationChange = effect(() => {\n if (this.location()) {\n if (this.look() === 'with-line-color' || this.look() === 'with-line') {\n setTimeout(() => {\n this.setIndicatorPosition(this.activeTab());\n });\n }\n }\n });\n\n constructor() {\n super();\n this.railNavigationService.activeItem$.subscribe((item) => {\n this.activeTab.set(item);\n if (this.look() === 'with-line-color' || this.look() === 'with-line') {\n this.setIndicatorPosition(item);\n }\n });\n }\n\n private setIndicatorPosition(tabItem: AXRailNavigationItemComponent) {\n const indicatorStyle = this.indicator().nativeElement.style;\n const itemStats = tabItem.getStats();\n indicatorStyle.width = ` var(--ax-rail-indicator-size)`;\n indicatorStyle.height = `${itemStats.height}px`;\n indicatorStyle.top = `${itemStats.top}px`;\n indicatorStyle.bottom = `unset`;\n if (this.location() === 'start') {\n indicatorStyle.insetInlineStart = `0px`;\n indicatorStyle.insetInlineEnd = `unset`;\n }\n if (this.location() === 'end') {\n indicatorStyle.insetInlineStart = `unset`;\n indicatorStyle.insetInlineEnd = `0px`;\n }\n }\n\n @HostBinding('class')\n private get __hostClass(): string[] {\n const cssClasses: string[] = [];\n cssClasses.push(`ax-${this.location()}`);\n cssClasses.push(`ax-look-${this.look()}`);\n return cssClasses;\n }\n}\n","<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content select=\"ax-rail-navigation-item,ng-container,ng-content\"></ng-content>\n<div class=\"ax-suffix-container\">\n <ng-content select=\"ax-suffix\"></ng-content>\n</div>\n<span class=\"ax-rail-indicator\" #indicator></span>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { AXRailNavigationItemComponent } from './rail-navigation-item/rail-navigation-item.component';\nimport { AXRailNavigationComponent } from './rail-navigation.component';\n\n@NgModule({\n declarations: [AXRailNavigationComponent, AXRailNavigationItemComponent],\n imports: [CommonModule, RouterLink, RouterLinkActive],\n exports: [AXRailNavigationComponent, AXRailNavigationItemComponent],\n providers: [],\n})\nexport class AXRailNavigationModule {}\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-rail-navigation.mjs","sources":["../../../../libs/components/rail-navigation/src/lib/rail-navigation.service.ts","../../../../libs/components/rail-navigation/src/lib/rail-navigation-item/rail-navigation-item.component.ts","../../../../libs/components/rail-navigation/src/lib/rail-navigation-item/rail-navigation-item.component.html","../../../../libs/components/rail-navigation/src/lib/rail-navigation.component.ts","../../../../libs/components/rail-navigation/src/lib/rail-navigation.component.html","../../../../libs/components/rail-navigation/src/lib/rail-navigation.module.ts","../../../../libs/components/rail-navigation/src/acorex-components-rail-navigation.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXRailNavigationItemComponent } from './rail-navigation-item/rail-navigation-item.component';\n\n@Injectable({ providedIn: 'root' })\nexport class AXRailNavigationService {\n private activeItem = new Subject<AXRailNavigationItemComponent>();\n activeItem$ = this.activeItem.asObservable();\n\n setActive(item: AXRailNavigationItemComponent) {\n this.activeItem.next(item);\n }\n}\n","import { MXBaseComponent } from '@acorex/components/common';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n model,\n OnDestroy,\n output,\n PLATFORM_ID,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IsActiveMatchOptions, UrlTree } from '@angular/router';\nimport { AXRailClickEvent } from '../rail-navigation.class';\nimport { AXRailNavigationService } from '../rail-navigation.service';\n\n@Component({\n selector: 'ax-rail-navigation-item',\n templateUrl: './rail-navigation-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class AXRailNavigationItemComponent extends MXBaseComponent implements AfterViewInit, OnDestroy {\n private railNavigationService = inject(AXRailNavigationService);\n private platformId = inject(PLATFORM_ID);\n\n onClick = output<AXRailClickEvent>();\n\n active = model(false);\n disabled = model(false);\n\n href = input<string | null>();\n routerLink = input<string | any[] | UrlTree | null>();\n routerLinkActive = input<string | string[]>('ax-state-active');\n target = input<'_blank' | '_self' | '_parent' | '_top'>('_self');\n routerLinkActiveOptions = input<{ exact: boolean } | IsActiveMatchOptions>({ exact: false });\n\n itemContainer = viewChild<ElementRef<HTMLElement>>('itemContainer');\n\n private observer: MutationObserver | null = null;\n\n ngAfterViewInit(): void {\n this.checkActive(this.itemContainer().nativeElement);\n if (isPlatformBrowser(this.platformId)) {\n this.observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.attributeName === 'class') {\n this.checkActive(mutation.target as HTMLElement);\n }\n });\n });\n this.observer.observe(this.itemContainer().nativeElement, {\n attributes: true,\n childList: false,\n characterData: false,\n });\n }\n }\n\n ngOnDestroy(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.observer.disconnect();\n this.observer = null;\n }\n }\n\n handleClickEvent(e: MouseEvent) {\n if (this.disabled()) return;\n this.onClick.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n });\n }\n\n getStats() {\n return {\n height: this.getHostElement().clientHeight,\n top: this.getHostElement().offsetTop,\n };\n }\n\n private checkActive(item: HTMLElement) {\n if (item.classList.contains('ax-state-active') && !this.disabled()) {\n this.railNavigationService.setActive(this);\n }\n }\n}\n","@if (routerLink()) {\n <a\n #itemContainer\n [target]=\"target()\"\n [routerLink]=\"routerLink()\"\n class=\"ax-rail-navigation-item\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled()\"\n [routerLinkActive]=\"routerLinkActive()\"\n [routerLinkActiveOptions]=\"routerLinkActiveOptions()\"\n >\n <ng-container [ngTemplateOutlet]=\"railNavigationItemContent\"></ng-container>\n </a>\n} @else if (href()) {\n <a\n #itemContainer\n [href]=\"href()\"\n [target]=\"target()\"\n class=\"ax-rail-navigation-item\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-active]=\"active() && !disabled()\"\n [class.ax-state-disabled]=\"disabled()\"\n >\n <ng-container [ngTemplateOutlet]=\"railNavigationItemContent\"></ng-container>\n </a>\n} @else {\n <div\n #itemContainer\n class=\"ax-rail-navigation-item\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-active]=\"active() && !disabled()\"\n [class.ax-state-disabled]=\"disabled()\"\n >\n <ng-container [ngTemplateOutlet]=\"railNavigationItemContent\"></ng-container>\n </div>\n}\n\n<ng-template #railNavigationItemContent>\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-icon\"></ng-content>\n <ng-content select=\"ax-text\"></ng-content>\n <ng-content select=\"ng-container,ng-content\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n</ng-template>\n","import { MXBaseComponent } from '@acorex/components/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n effect,\n ElementRef,\n HostBinding,\n inject,\n input,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXRailNavigationItemComponent } from './rail-navigation-item/rail-navigation-item.component';\nimport { AXRailLocation, AXRailLook } from './rail-navigation.class';\nimport { AXRailNavigationService } from './rail-navigation.service';\n\n@Component({\n selector: 'ax-rail-navigation',\n templateUrl: './rail-navigation.component.html',\n styleUrls: ['./rail-navigation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class AXRailNavigationComponent extends MXBaseComponent {\n private railNavigationService = inject(AXRailNavigationService);\n\n private indicator = viewChild<ElementRef<HTMLSpanElement>>('indicator');\n railNavItems = contentChildren(AXRailNavigationItemComponent);\n\n location = input<AXRailLocation>('start');\n look = input<AXRailLook>('with-line-color');\n\n private activeTab = signal<AXRailNavigationItemComponent | null>(null);\n\n #lookLocationChange = effect(() => {\n if (this.location()) {\n if (this.look() === 'with-line-color' || this.look() === 'with-line') {\n setTimeout(() => {\n this.setIndicatorPosition(this.activeTab());\n });\n }\n }\n });\n\n constructor() {\n super();\n this.railNavigationService.activeItem$.subscribe((item) => {\n this.activeTab.set(item);\n if (this.look() === 'with-line-color' || this.look() === 'with-line') {\n this.setIndicatorPosition(item);\n }\n });\n }\n\n private setIndicatorPosition(tabItem: AXRailNavigationItemComponent) {\n const indicatorStyle = this.indicator().nativeElement.style;\n const itemStats = tabItem.getStats();\n indicatorStyle.width = ` var(--ax-rail-indicator-size)`;\n indicatorStyle.height = `${itemStats.height}px`;\n indicatorStyle.top = `${itemStats.top}px`;\n indicatorStyle.bottom = `unset`;\n if (this.location() === 'start') {\n indicatorStyle.insetInlineStart = `0px`;\n indicatorStyle.insetInlineEnd = `unset`;\n }\n if (this.location() === 'end') {\n indicatorStyle.insetInlineStart = `unset`;\n indicatorStyle.insetInlineEnd = `0px`;\n }\n }\n\n @HostBinding('class')\n private get __hostClass(): string[] {\n const cssClasses: string[] = [];\n cssClasses.push(`ax-${this.location()}`);\n cssClasses.push(`ax-look-${this.look()}`);\n return cssClasses;\n }\n}\n","<ng-content select=\"ax-prefix, ax-header\"></ng-content>\n<ng-content select=\"ax-rail-navigation-item, ng-container, ng-content\"></ng-content>\n<div class=\"ax-suffix-container\">\n <ng-content select=\"ax-suffix, ax-footer\"></ng-content>\n</div>\n<span class=\"ax-rail-indicator\" #indicator></span>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { AXRailNavigationItemComponent } from './rail-navigation-item/rail-navigation-item.component';\nimport { AXRailNavigationComponent } from './rail-navigation.component';\n\n@NgModule({\n declarations: [AXRailNavigationComponent, AXRailNavigationItemComponent],\n imports: [CommonModule, RouterLink, RouterLinkActive],\n exports: [AXRailNavigationComponent, AXRailNavigationItemComponent],\n providers: [],\n})\nexport class AXRailNavigationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;MAKa,uBAAuB,CAAA;AADpC,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAiC;AACjE,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;AAK7C;AAHC,IAAA,SAAS,CAAC,IAAmC,EAAA;AAC3C,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;8GALjB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cADV,MAAM,EAAA,CAAA,CAAA;;2FACnB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACuB5B,MAAO,6BAA8B,SAAQ,eAAe,CAAA;AAPlE,IAAA,WAAA,GAAA;;AAQU,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AACvD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;QAExC,IAAO,CAAA,OAAA,GAAG,MAAM,EAAoB;AAEpC,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;AACrB,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;QAEvB,IAAI,CAAA,IAAA,GAAG,KAAK,EAAiB;QAC7B,IAAU,CAAA,UAAA,GAAG,KAAK,EAAmC;AACrD,QAAA,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAoB,iBAAiB,CAAC;AAC9D,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAA0C,OAAO,CAAC;QAChE,IAAuB,CAAA,uBAAA,GAAG,KAAK,CAA4C,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAE5F,QAAA,IAAA,CAAA,aAAa,GAAG,SAAS,CAA0B,eAAe,CAAC;QAE3D,IAAQ,CAAA,QAAA,GAA4B,IAAI;AAgDjD;IA9CC,eAAe,GAAA;QACb,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC;AACpD,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,SAAS,KAAI;AACjD,gBAAA,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AAC7B,oBAAA,IAAI,QAAQ,CAAC,aAAa,KAAK,OAAO,EAAE;AACtC,wBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAqB,CAAC;;AAEpD,iBAAC,CAAC;AACJ,aAAC,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,EAAE;AACxD,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,aAAa,EAAE,KAAK;AACrB,aAAA,CAAC;;;IAIN,WAAW,GAAA;AACT,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AAC1B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;;;AAIxB,IAAA,gBAAgB,CAAC,CAAa,EAAA;QAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAChB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE;AAClC,YAAA,WAAW,EAAE,CAAC;AACf,SAAA,CAAC;;IAGJ,QAAQ,GAAA;QACN,OAAO;AACL,YAAA,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,YAAY;AAC1C,YAAA,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,SAAS;SACrC;;AAGK,IAAA,WAAW,CAAC,IAAiB,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AAClE,YAAA,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC;;;8GA9DnC,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,swCC3B1C,67CA4CA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDjBa,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAPzC,SAAS;+BACE,yBAAyB,EAAA,eAAA,EAElB,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,KAAK,EAAA,QAAA,EAAA,67CAAA,EAAA;;;AECb,MAAO,yBAA0B,SAAQ,eAAe,CAAA;AAW5D,IAAA,mBAAmB;AAUnB,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AArBD,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAEvD,QAAA,IAAA,CAAA,SAAS,GAAG,SAAS,CAA8B,WAAW,CAAC;AACvE,QAAA,IAAA,CAAA,YAAY,GAAG,eAAe,CAAC,6BAA6B,CAAC;AAE7D,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAiB,OAAO,CAAC;AACzC,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAa,iBAAiB,CAAC;AAEnC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAuC,IAAI,CAAC;AAEtE,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,MAAK;AAChC,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,gBAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,iBAAiB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,WAAW,EAAE;oBACpE,UAAU,CAAC,MAAK;wBACd,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AAC7C,qBAAC,CAAC;;;AAGR,SAAC,CAAC;QAIA,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AACxD,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AACxB,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,iBAAiB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,WAAW,EAAE;AACpE,gBAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;;AAEnC,SAAC,CAAC;;AAGI,IAAA,oBAAoB,CAAC,OAAsC,EAAA;QACjE,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,KAAK;AAC3D,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE;AACpC,QAAA,cAAc,CAAC,KAAK,GAAG,CAAA,8BAAA,CAAgC;QACvD,cAAc,CAAC,MAAM,GAAG,CAAA,EAAG,SAAS,CAAC,MAAM,IAAI;QAC/C,cAAc,CAAC,GAAG,GAAG,CAAA,EAAG,SAAS,CAAC,GAAG,IAAI;AACzC,QAAA,cAAc,CAAC,MAAM,GAAG,CAAA,KAAA,CAAO;AAC/B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE;AAC/B,YAAA,cAAc,CAAC,gBAAgB,GAAG,CAAA,GAAA,CAAK;AACvC,YAAA,cAAc,CAAC,cAAc,GAAG,CAAA,KAAA,CAAO;;AAEzC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE;AAC7B,YAAA,cAAc,CAAC,gBAAgB,GAAG,CAAA,KAAA,CAAO;AACzC,YAAA,cAAc,CAAC,cAAc,GAAG,CAAA,GAAA,CAAK;;;AAIzC,IAAA,IACY,WAAW,GAAA;QACrB,MAAM,UAAU,GAAa,EAAE;QAC/B,UAAU,CAAC,IAAI,CAAC,CAAM,GAAA,EAAA,IAAI,CAAC,QAAQ,EAAE,CAAE,CAAA,CAAC;QACxC,UAAU,CAAC,IAAI,CAAC,CAAW,QAAA,EAAA,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA,CAAC;AACzC,QAAA,OAAO,UAAU;;8GArDR,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAIL,6BAA6B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9B9D,qTAMA,EAAA,MAAA,EAAA,CAAA,s0GAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDoBa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBARrC,SAAS;+BACE,oBAAoB,EAAA,eAAA,EAGb,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,KAAK,EAAA,QAAA,EAAA,qTAAA,EAAA,MAAA,EAAA,CAAA,s0GAAA,CAAA,EAAA;wDAmDL,WAAW,EAAA,CAAA;sBADtB,WAAW;uBAAC,OAAO;;;ME9DT,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EALlB,YAAA,EAAA,CAAA,yBAAyB,EAAE,6BAA6B,CAC7D,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,UAAU,EAAE,gBAAgB,CAC1C,EAAA,OAAA,EAAA,CAAA,yBAAyB,EAAE,6BAA6B,CAAA,EAAA,CAAA,CAAA;AAGvD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAJvB,YAAY,CAAA,EAAA,CAAA,CAAA;;2FAIX,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,yBAAyB,EAAE,6BAA6B,CAAC;AACxE,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,gBAAgB,CAAC;AACrD,oBAAA,OAAO,EAAE,CAAC,yBAAyB,EAAE,6BAA6B,CAAC;AACnE,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;;;ACXD;;AAEG;;;;"}
|