@acorex/cdk 21.0.0-next.63 → 21.0.0-next.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/common/index.d.ts
CHANGED
|
@@ -339,7 +339,6 @@ declare class MXInteractiveComponent extends MXBaseComponent {
|
|
|
339
339
|
*
|
|
340
340
|
* @param isDisabled - Whether the component should be disabled.
|
|
341
341
|
*/
|
|
342
|
-
setDisabledState(isDisabled: boolean): void;
|
|
343
342
|
_tabIndex: number;
|
|
344
343
|
/**
|
|
345
344
|
* Specifies the tabindex of the component.
|
|
@@ -419,6 +419,15 @@ class MXInteractiveComponent extends MXBaseComponent {
|
|
|
419
419
|
* @event
|
|
420
420
|
*/
|
|
421
421
|
this.disabledChange = new EventEmitter();
|
|
422
|
+
this._disabled = null;
|
|
423
|
+
/**
|
|
424
|
+
* Sets the disabled state of the component.
|
|
425
|
+
*
|
|
426
|
+
* @param isDisabled - Whether the component should be disabled.
|
|
427
|
+
*/
|
|
428
|
+
// setDisabledState(isDisabled: boolean): void {
|
|
429
|
+
// this.disabled = isDisabled;
|
|
430
|
+
// }
|
|
422
431
|
this._tabIndex = 0;
|
|
423
432
|
/**
|
|
424
433
|
* Fires each time the component gets focused.
|
|
@@ -478,14 +487,6 @@ class MXInteractiveComponent extends MXBaseComponent {
|
|
|
478
487
|
},
|
|
479
488
|
});
|
|
480
489
|
}
|
|
481
|
-
/**
|
|
482
|
-
* Sets the disabled state of the component.
|
|
483
|
-
*
|
|
484
|
-
* @param isDisabled - Whether the component should be disabled.
|
|
485
|
-
*/
|
|
486
|
-
setDisabledState(isDisabled) {
|
|
487
|
-
this.disabled = isDisabled;
|
|
488
|
-
}
|
|
489
490
|
/**
|
|
490
491
|
* Specifies the tabindex of the component.
|
|
491
492
|
*/
|
|
@@ -560,7 +561,7 @@ class MXValueComponent extends MXInteractiveComponent {
|
|
|
560
561
|
*/
|
|
561
562
|
this.valueChange = new EventEmitter();
|
|
562
563
|
this.readonlyChange = new EventEmitter();
|
|
563
|
-
this._readonly =
|
|
564
|
+
this._readonly = null;
|
|
564
565
|
this._dirty = false;
|
|
565
566
|
this._isUserInteraction = false;
|
|
566
567
|
this.stateChange = new EventEmitter();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-cdk-common.mjs","sources":["../../../../packages/cdk/common/src/lib/types/base/button.type.ts","../../../../packages/cdk/common/src/lib/types/base/color.type.ts","../../../../packages/cdk/common/src/lib/types/base/component.types.ts","../../../../packages/cdk/common/src/lib/types/base/events.types.ts","../../../../packages/cdk/common/src/lib/types/base/interactive.type.ts","../../../../packages/cdk/common/src/lib/types/base/look.type.ts","../../../../packages/cdk/common/src/lib/types/base/value.type.ts","../../../../packages/cdk/common/src/lib/types/placement.ts","../../../../packages/cdk/common/src/lib/types/selection-mode.ts","../../../../packages/cdk/common/src/lib/services/dom.service.ts","../../../../packages/cdk/common/src/lib/components/base-component.class.ts","../../../../packages/cdk/common/src/lib/components/interactive-component.class.ts","../../../../packages/cdk/common/src/lib/components/value-component.class.ts","../../../../packages/cdk/common/src/lib/classes/events.class.ts","../../../../packages/cdk/common/src/lib/classes/components.class.ts","../../../../packages/cdk/common/src/lib/classes/datalist.class.ts","../../../../packages/cdk/common/src/lib/classes/datasource.class.ts","../../../../packages/cdk/common/src/lib/classes/styles.class.ts","../../../../packages/cdk/common/src/lib/directives/auto-focus.directive.ts","../../../../packages/cdk/common/src/lib/services/hotkey.service.ts","../../../../packages/cdk/common/src/lib/directives/hotkey.directive.ts","../../../../packages/cdk/common/src/lib/directives/infinite-scroll.directive.ts","../../../../packages/cdk/common/src/lib/directives/responsive.directive.ts","../../../../packages/cdk/common/src/lib/common.module.ts","../../../../packages/cdk/common/src/lib/components/color-component.class.ts","../../../../packages/cdk/common/src/lib/components/look-component.class.ts","../../../../packages/cdk/common/src/lib/components/colorlook-component.class.ts","../../../../packages/cdk/common/src/lib/components/button-base-component.class.ts","../../../../packages/cdk/common/src/lib/components/input-base-value-component.class.ts","../../../../packages/cdk/common/src/lib/components/selection-base.component.class.ts","../../../../packages/cdk/common/src/lib/directives/delayed-value-changed.directive.ts","../../../../packages/cdk/common/src/lib/directives/inverted-color.directive.ts","../../../../packages/cdk/common/src/lib/directives/ripple.directive.ts","../../../../packages/cdk/common/src/acorex-cdk-common.ts"],"sourcesContent":["import { Component, model, output } from '@angular/core';\n\n@Component({\n template: '',\n})\nexport abstract class NXButtonComponent {\n text = model<string>();\n\n toggleableChange = output<boolean>();\n selectedChange = output<boolean>();\n}\n","import { Component, model } from '@angular/core';\nimport { AXStyleColorType } from '../../classes/styles.class';\n\n@Component({\n template: '',\n})\nexport abstract class NXColorComponent {\n color = model<AXStyleColorType>('default');\n}\n","import { afterNextRender, ElementRef, inject, Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport abstract class NXComponent {\n #elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n #isRendered = signal(false);\n\n protected isRendered = this.#isRendered.asReadonly();\n\n #afterNextRender = afterNextRender(() => {\n if (!this.isRendered()) {\n this.nativeElement['__axContext__'] = this;\n this.#isRendered.set(true);\n }\n });\n\n public get nativeElement(): HTMLElement {\n return this.#elementRef.nativeElement;\n }\n}\n","import { NXComponent } from './component.types';\n\n/**\n * Base event class\n * @category Events\n */\nexport class NXEvent<T extends NXComponent = NXComponent> {\n sender: T;\n}\n\n/**\n * Contains native event\n * @category Events\n */\nexport class NXNativeEvent<T extends NXComponent = NXComponent, E extends Event = Event> extends NXEvent<T> {\n nativeEvent: E;\n}\n\n/**\n * Fires each time the user click the element.\n * @category Events\n */\nexport class NXClickEvent<T extends NXComponent = NXComponent> extends NXNativeEvent<T, MouseEvent> {}\n","import { AXHtmlUtil } from '@acorex/core/utils';\nimport { Component, model, output } from '@angular/core';\nimport { NXComponent } from './component.types';\n\n@Component({\n template: '',\n})\nexport abstract class NXInteractiveComponent extends NXComponent {\n disabled = model<boolean>(false);\n tabIndex = model<number>(0);\n\n onFocus = output();\n onBlur = output();\n\n focus() {\n AXHtmlUtil.focusElement(this.nativeElement);\n }\n\n blur() {\n AXHtmlUtil.blurElement(this.nativeElement);\n }\n\n hasFocus(): boolean {\n return AXHtmlUtil.hasFocus(this.nativeElement);\n }\n}\n","import { Component, model } from '@angular/core';\nimport { AXStyleLookType } from '../../classes/styles.class';\n\n@Component({\n template: '',\n})\nexport abstract class NXLookComponent {\n look = model<AXStyleLookType>('solid');\n}\n","import { Component, model, output } from '@angular/core';\n\n@Component({\n template: '',\n})\nexport abstract class NXValueComponent {\n readonly = model<boolean>();\n name = model<string>();\n value = model();\n\n onValueChanged = output();\n}\n","import { clone, flatten } from 'lodash-es';\n\nconst defaultOffset = 3;\n\nexport type AXPlacement =\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'end'\n | 'end-top'\n | 'end-bottom'\n | 'start'\n | 'start-top'\n | 'start-bottom';\nexport type AXPlacementType = AXConnectedPosition | AXConnectedPosition[] | AXPlacement | AXPlacement[];\n\nexport function convertToPlacement(value: AXPlacementType): AXConnectedPosition[] {\n const result: AXConnectedPosition[] = [];\n if (value == null) return result;\n if (Array.isArray(value)) {\n const list = flatten(value.map((m) => convertToPlacement(m)).filter((m) => m != null)).map((m) => clone(m));\n result.push(...list);\n } else {\n if (typeof value === 'string') {\n const p = AX_PLACEMENT_MAP[value];\n if (p) {\n result.push(...[clone(p.origin), ...clone(p.alts)]);\n }\n } else {\n if ('originX' in value && 'originY' in value) {\n result.push(clone(value));\n }\n }\n }\n return result;\n}\n\nexport interface AXConnectedPosition {\n originX: 'start' | 'center' | 'end';\n originY: 'top' | 'center' | 'bottom';\n overlayX: 'start' | 'center' | 'end';\n overlayY: 'top' | 'center' | 'bottom';\n weight?: number;\n offsetX?: number;\n offsetY?: number;\n}\n\nexport const AX_PLACEMENT_TOP: AXConnectedPosition = {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_TOP_START: AXConnectedPosition = {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -defaultOffset,\n};\nexport const AX_PLACEMENT_TOP_END: AXConnectedPosition = {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_BOTTOM: AXConnectedPosition = {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: defaultOffset,\n};\n\nexport const AX_PLACEMENT_BOTTOM_START: AXConnectedPosition = {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: defaultOffset,\n};\n\nexport const AX_PLACEMENT_BOTTOM_END: AXConnectedPosition = {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: defaultOffset,\n};\n\nexport const AX_PLACEMENT_START: AXConnectedPosition = {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_START_TOP: AXConnectedPosition = {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_START_BOTTOM: AXConnectedPosition = {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_END: AXConnectedPosition = {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: defaultOffset,\n};\n\nexport const AX_PLACEMENT_END_TOP: AXConnectedPosition = {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: defaultOffset,\n};\n\nexport const AX_PLACEMENT_END_BOTTOM: AXConnectedPosition = {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: defaultOffset,\n};\n\nexport const AX_PLACEMENT_MAP: {\n [key: string]: { origin: AXConnectedPosition; alts?: AXConnectedPosition[] };\n} = {\n top: {\n origin: AX_PLACEMENT_TOP,\n alts: [AX_PLACEMENT_BOTTOM, AX_PLACEMENT_TOP_START, AX_PLACEMENT_TOP_END],\n },\n 'top-start': {\n origin: AX_PLACEMENT_TOP_START,\n alts: [AX_PLACEMENT_BOTTOM_START, AX_PLACEMENT_TOP_END, AX_PLACEMENT_BOTTOM_END],\n },\n 'top-end': {\n origin: AX_PLACEMENT_TOP_END,\n alts: [AX_PLACEMENT_BOTTOM_END, AX_PLACEMENT_TOP_START, AX_PLACEMENT_BOTTOM_START],\n },\n bottom: {\n origin: AX_PLACEMENT_BOTTOM,\n alts: [AX_PLACEMENT_TOP, AX_PLACEMENT_BOTTOM_START, AX_PLACEMENT_BOTTOM_END],\n },\n 'bottom-start': {\n origin: AX_PLACEMENT_BOTTOM_START,\n alts: [AX_PLACEMENT_TOP_START, AX_PLACEMENT_BOTTOM_END, AX_PLACEMENT_TOP_END],\n },\n 'bottom-end': {\n origin: AX_PLACEMENT_BOTTOM_END,\n alts: [AX_PLACEMENT_TOP_END, AX_PLACEMENT_BOTTOM_START, AX_PLACEMENT_TOP_START],\n },\n end: {\n origin: AX_PLACEMENT_END,\n alts: [AX_PLACEMENT_START, AX_PLACEMENT_END_TOP, AX_PLACEMENT_END_BOTTOM],\n },\n 'end-top': {\n origin: AX_PLACEMENT_END_TOP,\n alts: [AX_PLACEMENT_START_TOP, AX_PLACEMENT_END_BOTTOM, AX_PLACEMENT_START_BOTTOM],\n },\n 'end-bottom': {\n origin: AX_PLACEMENT_END_BOTTOM,\n alts: [AX_PLACEMENT_START_BOTTOM, AX_PLACEMENT_END_TOP, AX_PLACEMENT_START_TOP],\n },\n start: {\n origin: AX_PLACEMENT_START,\n alts: [AX_PLACEMENT_END, AX_PLACEMENT_START_TOP, AX_PLACEMENT_START_BOTTOM],\n },\n 'start-top': {\n origin: AX_PLACEMENT_START_TOP,\n alts: [AX_PLACEMENT_END_TOP, AX_PLACEMENT_START_BOTTOM, AX_PLACEMENT_END_BOTTOM],\n },\n 'start-bottom': {\n origin: AX_PLACEMENT_START_BOTTOM,\n alts: [AX_PLACEMENT_END_BOTTOM, AX_PLACEMENT_START_TOP, AX_PLACEMENT_END_TOP],\n },\n};\n","/**\n * A token that specifies the selection mode of component.\n */\n\nexport type AXSelectionMode = 'single' | 'multiple' | 'none';\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class AXDomService {\n generateElementId(): string {\n const dateString = Date.now().toString(36);\n const randomness = Math.random().toString(36).substr(2);\n return dateString + randomness;\n }\n}\n","import { ChangeDetectorRef, ElementRef, EventEmitter, Injectable, ViewContainerRef, inject } from '@angular/core';\nimport { AXOptionChangedEvent } from '../classes/events.class';\nimport { AXDomService } from '../services/dom.service';\n\nexport type MXComponentOptionChanging<T = any> = { name: string; value?: T };\nexport type MXComponentOptionChanged<T = any> = MXComponentOptionChanging<T>;\n\nexport type MXComponentSetOption<T> = {\n name: string;\n value?: T;\n afterCallback?: (oldValue?: T, newValue?: T) => void;\n beforeCallback?: (oldValue?: T, newValue?: T) => void;\n};\n\nexport type AXComponentState = 'clear' | 'success' | 'error';\n\n@Injectable()\nexport abstract class MXBaseComponent {\n private _cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\n private _elementRef: ElementRef = inject(ElementRef);\n private _viewRef: ViewContainerRef = inject(ViewContainerRef);\n private _domService = inject(AXDomService);\n\n private _id: string = this._domService.generateElementId();\n public get id(): string {\n return this._id;\n }\n public set id(v: string) {\n this._id = v;\n }\n\n protected get cdr(): ChangeDetectorRef {\n return this._cdr;\n }\n\n /**\n * Gets the host HTML element of the component.\n *\n * @returns T - The native DOM element associated with this component.\n */\n public getHostElement<T = HTMLElement>(): T {\n return this._elementRef?.nativeElement as T;\n }\n\n protected getViewContainer(): ViewContainerRef {\n return this._viewRef;\n }\n\n protected internalOptionChanging(option: MXComponentOptionChanging): any {\n return option?.value;\n }\n\n protected internalOptionChanged(option: MXComponentOptionChanged): void {}\n /**\n * @ignore\n */\n protected ngOnInit(): void {\n (this.getHostElement() as any).__axContext__ = this;\n }\n\n /**\n * Fired when an option related to the component changes.\n *\n * @event\n */\n public onOptionChanged: EventEmitter<AXOptionChangedEvent> = new EventEmitter<AXOptionChangedEvent>();\n\n /**\n * Sets a component option with optional lifecycle callbacks.\n *\n * @param option - The option configuration containing the name, value and optional before/after callbacks.\n */\n public setOption<T = any>(option: MXComponentSetOption<T>) {\n const oldValue = this[option.name];\n let newValue = this.internalOptionChanging({\n name: option.name,\n value: option.value,\n });\n if (option.beforeCallback) {\n newValue = option.beforeCallback(oldValue, newValue);\n }\n //TODO : check real changes if value is object\n if (oldValue != newValue) {\n this[`_${option.name}`] = option.value;\n this.onOptionChanged.emit({\n component: this,\n name: option.name,\n newValue,\n oldValue,\n });\n const emitter = this[`${option.name}Change`] as EventEmitter<any>;\n emitter?.emit(newValue);\n this.internalOptionChanged({ name: option.name, value: newValue });\n }\n if (option.afterCallback) option.afterCallback(oldValue, newValue);\n }\n}\n","import { AXHtmlUtil } from '@acorex/core/utils';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { EventEmitter } from '@angular/core';\nimport { noop } from 'rxjs';\nimport { AXFocusEvent } from '../classes/events.class';\nimport { MXBaseComponent } from './base-component.class';\n\nexport class MXInteractiveComponent extends MXBaseComponent {\n /**\n * @ignore\n */\n protected onTouchedCallback: () => void = noop;\n\n /**\n * Registers a touched callback function (ControlValueAccessor method).\n *\n * @param fn - The callback function to register.\n */\n registerOnTouched(fn: () => void): void {\n this.onTouchedCallback = fn;\n }\n\n private _touched = false;\n /**\n * Indicates whether the component has been touched.\n *\n */\n public get touched(): boolean {\n return this._touched;\n }\n\n /**\n * @ignore\n */\n\n protected markAsTouched() {\n if (!this.touched) {\n this.onTouchedCallback();\n this._touched = true;\n }\n }\n\n /**\n * Emits an event whenever the disabled state of the component changes.\n *\n * @event\n */\n disabledChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n private _disabled: boolean;\n /**\n * If set to true, it disables the component.\n */\n public get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n value = coerceBooleanProperty(value);\n this.setOption({\n name: 'disabled',\n value,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n\n /**\n * Sets the disabled state of the component.\n *\n * @param isDisabled - Whether the component should be disabled.\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n _tabIndex = 0;\n /**\n * Specifies the tabindex of the component.\n */\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n set tabIndex(value: number) {\n this.setOption({\n name: 'tabIndex',\n value: value != null ? coerceNumberProperty(value) : 0,\n });\n }\n\n /**\n * Fires each time the component gets focused.\n * @event\n */\n onFocus: EventEmitter<AXFocusEvent> = new EventEmitter<AXFocusEvent>();\n\n protected emitOnFocusEvent(e?: FocusEvent): void {\n this.onFocus.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n });\n }\n\n /**\n * Fires each time the component gets blurred.\n * @event\n */\n onBlur: EventEmitter<AXFocusEvent> = new EventEmitter<AXFocusEvent>();\n\n protected emitOnBlurEvent(e?: FocusEvent): void {\n this.markAsTouched();\n this.onBlur.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n });\n }\n\n // /**\n // * Fires each time the user clicks the button.\n // * @event\n // */\n // onClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\n\n // protected emitOnClickEvent(e: MouseEvent): void {\n // this.onClick.emit({\n // component: this,\n // htmlElement: this.getHostElement(),\n // nativeEvent: e,\n // });\n // }\n\n /**\n * Focuses the component.\n */\n focus(): void {\n AXHtmlUtil.focusElement(this.getHostElement());\n }\n\n /**\n * Removes focus from the component.\n */\n blur(): void {\n AXHtmlUtil.blurElement(this.getHostElement());\n }\n\n /**\n * Checks if the component is focused or has any focused element.\n *\n * @returns boolean - True if the component has focus.\n */\n hasFocus(): boolean {\n return AXHtmlUtil.hasFocus(this.getHostElement());\n }\n\n // private _focused = signal(false);\n\n // protected markAsFocused() {\n // this._focused.set(true);\n // }\n\n // protected markAsBlured() {\n // this._focused.set(false);\n // }\n}\n","import { isBrowser } from '@acorex/core/platform';\nimport { AXValidationService, AXValidationSummary } from '@acorex/core/validation';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { isPlatformBrowser } from '@angular/common';\nimport { DOCUMENT, EventEmitter, Injectable, PLATFORM_ID, inject } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { cloneDeep, isEqual, omit } from 'lodash-es';\nimport { noop } from 'rxjs';\nimport { AXFormValidationRule } from '../classes/components.class';\nimport { AXValueChangedEvent } from '../classes/events.class';\nimport { AXComponentState } from './base-component.class';\nimport { MXInteractiveComponent } from './interactive-component.class';\n\n@Injectable()\nexport class MXValueComponent<T = any> extends MXInteractiveComponent implements ControlValueAccessor {\n /**\n * Fires each time the user press a key.\n * @event\n */\n onValueChanged: EventEmitter<AXValueChangedEvent<any>> = new EventEmitter<AXValueChangedEvent<any>>();\n\n /**\n * @deprecated The event should not be used, use ngModelChange instead\n */\n valueChange: EventEmitter<any> = new EventEmitter<any>();\n\n readonlyChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n private _readonly = false;\n /**\n * If set to true, user cannot change the value of component.\n */\n get readonly() {\n return this._readonly;\n }\n set readonly(value: boolean) {\n value = coerceBooleanProperty(value);\n this.setOption({\n name: 'readonly',\n value,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n\n private _name: string;\n get name() {\n return this._name;\n }\n set name(value: string) {\n this._name = value;\n }\n\n private _dirty = false;\n public get dirty() {\n return this._dirty;\n }\n\n markAsDirty() {\n this._dirty = true;\n }\n\n private _isUserInteraction = false;\n\n initValue: T;\n defaultValue: T;\n\n private _value: T;\n /**\n * @deprecated The property should not be used, use ngModel instead\n */\n get value(): T {\n return this.internalGetValue(this._value) ?? this.defaultValue;\n }\n set value(v: T) {\n v = this.internalSetValue(v);\n const old = cloneDeep(this.value);\n\n if (v === null || v === undefined || v === '' || (Array.isArray(v) && v.length === 0)) {\n this.setState('clear');\n if (old === null || old === undefined || old === '' || (Array.isArray(old) && old.length === 0)) {\n return;\n }\n }\n\n if (!isEqual(old, v)) {\n this._value = v;\n this.emitOnValueChangedEvent(old, this.value);\n\n this.internalValueChanged(this.value);\n }\n }\n\n stateChange: EventEmitter<AXComponentState> = new EventEmitter<AXComponentState>();\n\n private _state: AXComponentState = 'clear';\n\n get state(): AXComponentState {\n return this._state;\n }\n\n set state(value: AXComponentState) {\n this.setState(value);\n this.stateChange.emit(value);\n }\n\n protected emitOnValueChangedEvent(oldValue?: any, newValue?: any) {\n this.valueChange.emit(newValue);\n this.onValueChanged.emit({\n component: this,\n value: newValue,\n oldValue: oldValue,\n name: this.name,\n isUserInteraction: this._isUserInteraction,\n });\n this.onChangeCallback(newValue);\n this.cdr.markForCheck();\n this._isUserInteraction = false;\n }\n\n protected internalSetValue(value: any): T {\n return value;\n }\n\n protected internalGetValue(value: any): T {\n return value;\n }\n\n protected internalValueChanged(value: any): void {}\n\n protected override ngOnInit(): void {\n super.ngOnInit();\n //\n this.registerValidation();\n }\n\n protected ngOnDestroy() {\n this.onValueChanged?.unsubscribe();\n this.onOptionChanged?.unsubscribe();\n }\n\n protected registerValidation() {\n const a = this.getHostElement().querySelectorAll('[ax-form-item=\"true\"]');\n a.forEach((c) => {\n c.removeAttribute('ax-form-item');\n });\n this.getHostElement().setAttribute('ax-form-item', 'true');\n }\n\n protected document = inject(DOCUMENT);\n protected platformID = inject(PLATFORM_ID);\n private validationService = inject(AXValidationService);\n\n public validationRulesChange: EventEmitter<AXFormValidationRule[]> = new EventEmitter<AXFormValidationRule[]>();\n private validationRules: AXFormValidationRule[] = [];\n\n public get isRequired(): boolean {\n return this.validationRules?.some((c) => c.rule == 'required');\n }\n\n /**\n * Adds a validation rule.\n *\n * @param rule - The validation rule to add.\n */\n addValidationRule(rule: AXFormValidationRule): void {\n this.validationRules.push(rule);\n this.validationRulesChange.emit(this.validationRules);\n }\n\n /**\n * Removes a validation rule.\n *\n * @param ruleToRemove - The validation rule to remove.\n */\n removeValidationRule(ruleToRemove: AXFormValidationRule): void {\n this.validationRules = this.validationRules.filter((r) => {\n if (r.rule !== ruleToRemove.rule) {\n return true;\n }\n // Create copies of options without the 'title' property\n const rOptionsSanitized = omit(r.options, ['title']);\n const ruleToRemoveOptionsSanitized = omit(ruleToRemove.options, ['title']);\n\n return !isEqual(rOptionsSanitized, ruleToRemoveOptionsSanitized);\n });\n this.validationRulesChange.emit(this.validationRules);\n this.setState('clear');\n }\n\n /**\n * Validates the component.\n *\n * @returns Promise<AXValidationSummary> - Validation result.\n */\n async validate(): Promise<AXValidationSummary> {\n const container_classes = ['ax-editor-container', 'ax-checkbox', 'ax-radio'];\n const container = container_classes.some((c) => this.getHostElement().classList.contains(c))\n ? this.getHostElement()\n : this.getHostElement().querySelector('.ax-editor-container');\n const formField = container?.closest('ax-form-field') || container?.closest('ax-checkbox');\n const label = formField?.querySelector('ax-label') || formField?.querySelector('label');\n //\n const rules = this.validationService.ruleFor(this.value);\n this.validationRules.forEach((r) => {\n r.options['title'] = (label?.firstChild?.textContent ?? this.name)?.replace('*', '').trim();\n rules.addRule(r.rule as any, r.options);\n });\n const result = await rules.validate();\n if (result.result) {\n this.setState('clear');\n } else {\n const message = result.rules.find((c) => !c.result).message;\n this.setState('error', message);\n }\n return result;\n }\n\n protected setState(state: AXComponentState, ...args) {\n //TODO: find a better solution\n if (isBrowser()) {\n const container = this.getHostElement().classList.contains('ax-editor-container')\n ? this.getHostElement()\n : this.getHostElement().querySelector('.ax-editor-container');\n const formField = container?.closest('ax-form-field');\n const label = formField?.querySelector('ax-label') || formField?.querySelector('label');\n let target = container || this.getHostElement().firstElementChild;\n if (target?.querySelector('.ax-error-container')) {\n target = target.querySelector('.ax-error-container');\n }\n const parent = target?.parentElement;\n if (!target || !parent) return;\n\n switch (state) {\n case 'clear':\n this._state = 'clear';\n if (parent.querySelector('span.ax-error-message')) {\n parent.removeChild(parent.querySelector('span.ax-error-message')!);\n }\n label?.classList.remove('ax-state-error');\n target.classList.remove('ax-state-error', 'ax-state-success');\n break;\n case 'success':\n this.setState('clear');\n target.classList.add('ax-state-success');\n this._state = 'success';\n break;\n case 'error':\n this.setState('clear');\n if (args[0] && isPlatformBrowser(this.platformID)) {\n const span = this.document.createElement('span');\n span.innerHTML = args[0];\n span.classList.add('ax-error-message');\n parent.appendChild(span);\n }\n label?.classList.add('ax-state-error');\n target.classList.add('ax-state-error');\n\n this._state = 'error';\n break;\n }\n this.cdr.markForCheck();\n }\n }\n\n protected onChangeCallback: (value: T) => void = noop;\n\n /**\n * Registers a change callback function (ControlValueAccessor method).\n *\n * @param fn - The callback function to register.\n */\n registerOnChange(fn: (value: T) => void): void {\n this.onChangeCallback = fn;\n }\n\n /**\n * Writes a value to the component (ControlValueAccessor method).\n *\n * @param value - The value to write.\n */\n writeValue(value: T): void {\n this.value = value;\n }\n\n /**\n * Commits a value with optional user interaction flag.\n *\n * @param value - The value to commit.\n * @param u - Optional flag indicating if this is a user interaction.\n */\n public commitValue(value: T, u = false): void {\n if (u) {\n this.markAsTouched();\n this.markAsDirty();\n this._isUserInteraction = true;\n }\n this.writeValue(value);\n }\n\n /**\n * Resets the component value.\n *\n * @param e - Optional flag indicating if this is a user interaction.\n */\n reset(e = false): void {\n this.commitValue(null, e);\n }\n\n /**\n * Resets validation errors.\n */\n resetErrors(): void {\n this.setState('clear');\n }\n}\n","/**\n * Contains native event\n * @category Events\n */\nexport class AXEvent {\n /**\n * The sender component\n */\n component: any;\n /**\n * The root native element\n */\n htmlElement?: HTMLElement;\n\n isUserInteraction?: boolean = false;\n}\n\n/**\n * Contains native event\n * @category Events\n */\nexport class AXHtmlEvent<E extends Event = Event> extends AXEvent {\n nativeEvent?: E;\n}\n\n/**\n * Contains native event\n * @category Events\n */\nexport class AXValueChangedEvent<T = any> extends AXEvent {\n name?: string;\n value?: T;\n oldValue?: T;\n}\n\n/**\n * Contains native event\n * @category Events\n */\nexport class AXOptionChangedEvent<T = any> extends AXEvent {\n name?: string;\n newValue?: T;\n oldValue?: T;\n}\n\n/**\n * Fires each time the user click the element.\n * @category Events\n */\nexport class AXClickEvent extends AXHtmlEvent<MouseEvent> {\n /**\n * uses for extra data\n */\n data?: any = null;\n\n override nativeEvent?: any = null;\n}\n\n/**\n * Fires each time the user click the element.\n * @category Events\n */\nexport class AXButtonClickEvent extends AXClickEvent {\n name: string;\n}\n\n/**\n * Fires each time the user click the element.\n * @category Events\n */\nexport class AXItemClickEvent<T = any> extends AXClickEvent {\n name?: string;\n item: T;\n}\n\n/**\n * Fires each time the user select the element.\n * @category Events\n */\nexport class AXItemSelectedEvent<T = any> extends AXEvent {\n item: T;\n}\n\n/**\n * Fires each time the component gets focused.\n * @category Events\n */\nexport class AXFocusEvent extends AXHtmlEvent<FocusEvent> { }\n\n/**\n * Fires each time an item or multiple items selected by the user or value.\n * @category Events\n */\nexport class AXSelectionValueChangedEvent extends AXValueChangedEvent<any | any[]> {\n override value?: any = null;\n override oldValue?: any = null;\n selectedKeys?: any[] = [];\n selectedItems?: any[] = [];\n}\n\n/**\n * Contains range start & end values\n * @category Events\n */\nexport class AXRangeChangedEvent<T> extends AXEvent {\n /**\n * The range start value\n */\n start?: T;\n /**\n * The range end value\n */\n end?: T;\n}\n","import { AXUnsubscriber } from '@acorex/core/utils';\nimport { AXValidationRuleOptions, AXValidationSummary } from '@acorex/core/validation';\nimport { EventEmitter, Injectable } from '@angular/core';\nimport { isEqual } from 'lodash-es';\nimport { MXValueComponent } from '../components/value-component.class';\nimport { AXEvent, AXHtmlEvent, AXValueChangedEvent } from './events.class';\n\nexport const TAB_META_KEY = '__meta__';\n\nexport class AXComponentCloseEvent extends AXEvent {\n data?: any;\n}\nexport class AXComponentClosing {\n cancel = false;\n data?: any;\n}\n\nexport class AXComponentResult {\n sender: any;\n data?: any;\n}\n\nexport interface AXFormValidationRule {\n rule: string;\n disabled: boolean;\n options?: AXValidationRuleOptions;\n}\n\n/**\n * Defines a CSS class—or multiple classes separated by spaces— which are applied to a span element inside the Button. Allows the usage of custom icons after the primary text.\n */\nexport class AXComponentClosedPromise extends Promise<AXComponentResult> {\n private closeMethod: () => void;\n constructor(\n executor: (\n resolve: (value?: AXComponentResult | PromiseLike<AXComponentResult>) => void,\n reject: (reason?: any) => void,\n ) => void,\n ) {\n super(executor);\n }\n\n public close() {\n if (this.closeMethod) {\n this.closeMethod();\n }\n }\n}\n\n@Injectable()\nexport abstract class AXComponent {}\n\n@Injectable()\nexport abstract class AXClosableComponent extends AXComponent {\n abstract close(): void;\n abstract closeAll(): void;\n}\n\n@Injectable()\nexport abstract class AXClearableComponent extends AXComponent {\n abstract reset(u: boolean): void;\n abstract get readonly(): boolean;\n abstract get disabled(): boolean;\n abstract get value(): unknown;\n}\n\n@Injectable()\nexport abstract class AXSearchableComponent extends AXComponent {\n abstract search(value: string): void;\n}\n\n@Injectable()\nexport abstract class AXValuableComponent extends AXComponent {\n abstract get isRequired(): boolean;\n validationRulesChange: EventEmitter<AXFormValidationRule[]>;\n abstract get name(): string;\n abstract get value(): unknown;\n abstract onValueChanged: EventEmitter<AXValueChangedEvent<unknown>>;\n abstract commitValue(value: unknown, u: boolean);\n\n abstract addValidationRule(rule: AXFormValidationRule);\n\n abstract removeValidationRule(rule: AXFormValidationRule);\n\n abstract validate(): Promise<AXValidationSummary>;\n abstract reset(e: boolean): void;\n abstract resetErrors(): void;\n}\n\n@Injectable()\nexport abstract class AXFocusableComponent extends AXComponent {\n abstract focus();\n}\n\nexport interface AXPagedComponentInterface {\n goToPage(page: number);\n get totalCount(): number;\n get pageSize(): number;\n onPageChanged: EventEmitter<AXValueChangedEvent<number>>;\n}\n\n@Injectable()\nexport abstract class AXPagedComponent extends AXComponent implements AXPagedComponentInterface {\n abstract goToPage(page: number);\n abstract get totalCount(): number;\n abstract pageSize: number;\n abstract onPageChanged: EventEmitter<AXValueChangedEvent<number>>;\n}\n\n@Injectable()\nexport abstract class AXAutocompleteParentComponent<T> extends MXValueComponent<T> {\n oldInputEmitValue: T;\n abstract unsubscriber: AXUnsubscriber;\n\n onKeyDown = new EventEmitter<AXHtmlEvent<KeyboardEvent>>();\n onItemSelected = new EventEmitter<AXValueChangedEvent<T>>();\n\n emitOnItemSelected(value: T, isUserInteraction = false) {\n if (isEqual(value, this.oldInputEmitValue)) return;\n this.onItemSelected.emit({\n value,\n name: this.name,\n component: this,\n isUserInteraction,\n oldValue: this.oldInputEmitValue,\n htmlElement: this.getHostElement(),\n });\n this.oldInputEmitValue = value;\n }\n}\n","import { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport { BehaviorSubject, Observable, Subscription, debounceTime, distinctUntilChanged } from 'rxjs';\nimport { AXDataSource } from './datasource.class';\n\nexport interface AXDataListQuery {\n take?: number;\n skip?: number;\n searchQuery?: string;\n}\nexport interface AXDataListFetchCallbackResult {\n items: Array<any>;\n total: number;\n}\n\nexport type AXDataListFetchDataCallback = (e: AXDataListQuery) => Promise<AXDataListFetchCallbackResult>;\n\nexport type AXDataListItems = Array<any> | AXDataListFetchDataCallback;\n\nexport class AXListDataSource<T = unknown> extends DataSource<T> {\n private debounceTime = 0;\n private subscription = new Subscription();\n public source: AXDataSource<T>;\n private dataStream: BehaviorSubject<T[]>;\n\n private _range: { start: number; end: number } = { start: 0, end: 0 };\n public get range(): { start: number; end: number } {\n return this._range;\n }\n\n /**\n * @ignore\n */\n constructor(private config: { source: AXDataSource<T>; debounceTime?: number }) {\n super();\n this.source = config.source;\n if (config.debounceTime) this.debounceTime = config.debounceTime;\n //\n this.dataStream = new BehaviorSubject<T[]>(this.config.source.cachedItems);\n this.source.onChanged.subscribe((data) => {\n this.dataStream.next(data.cachedItems);\n });\n }\n\n connect(collectionViewer: CollectionViewer): Observable<T[]> {\n this.subscription.add(\n collectionViewer.viewChange\n .pipe(debounceTime(this.debounceTime))\n .pipe(distinctUntilChanged())\n .subscribe((range) => {\n this._range = range;\n const startPage = this.getPageForIndex(range.start);\n const endPage = this.getPageForIndex(range.end - 1);\n for (let i = startPage; i <= endPage; i++) {\n this.source.setPage(i);\n }\n }),\n );\n return this.dataStream;\n }\n\n disconnect(): void {\n this.subscription.unsubscribe();\n }\n\n private getPageForIndex(index: number): number {\n return Math.floor(index / this.source.config.pageSize);\n }\n\n refresh() {\n this.dataStream.next(new Array(this.source.pageSize));\n this.source.refresh();\n }\n}\n","import { Subject } from 'rxjs';\n\nexport type AXDataSourceOperator = {\n type: 'equal' | 'isNull' | 'isEmpty' | 'lt' | 'lte' | 'gt' | 'gte' | 'startsWith' | 'endsWith' | 'contains' | 'in';\n negative?: boolean;\n};\nexport type AXFilterLogic = 'and' | 'or';\nexport type AXSortOrder = 'asc' | 'desc';\n\nexport type AXDataSourceFilterOption = {\n field?: string;\n value?: unknown;\n operator?: AXDataSourceOperator;\n logic?: AXFilterLogic;\n filters?: AXDataSourceFilterOption[];\n};\nexport type AXDataSourceSortOption = { field: string; dir: 'asc' | 'desc' };\n\nexport interface AXDataSourceQuery {\n take: number;\n skip: number;\n filter?: AXDataSourceFilterOption;\n sort: AXDataSourceSortOption[];\n}\nexport interface AXDataSourceCallbackResult<T> {\n items: Array<T>;\n total: number;\n}\n\nexport type AXDataSourceLoadCallback<T> = (e: AXDataSourceQuery) => Promise<AXDataSourceCallbackResult<T>>;\nexport type AXDataSourceByKeyCallback<T> = (key: unknown) => Promise<T>;\n\nexport interface AXDataSourceConfig<T = unknown> {\n key?: string;\n pageSize: number;\n load: AXDataSourceLoadCallback<T>;\n byKey?: AXDataSourceByKeyCallback<T>;\n}\n\nexport interface AXDataSourceChangedEvent<T = unknown> {\n cachedItems: Array<T>;\n items: Array<T>;\n totalCount: number;\n totalPages: number;\n page: number;\n}\nexport interface AXDataSourceItemExpandedEvent<T = unknown> {\n expandedItem: T;\n children: Array<T>;\n}\n\nexport class AXDataSource<T = unknown> {\n config!: AXDataSourceConfig<T>;\n useCache = true;\n\n private _totalCount = 0;\n public get totalCount(): number {\n return this._totalCount;\n }\n\n public get totalPages(): number {\n return Math.ceil(this.totalCount / this.config.pageSize);\n }\n\n public get pageSize(): number {\n return this.config.pageSize;\n }\n\n private _cachedItems: T[];\n public get cachedItems(): T[] {\n return this._cachedItems;\n }\n\n private _items: T[] = [];\n public get items(): T[] {\n return this._items;\n }\n\n private fetchedPages = new Set<number>();\n private _page = 0;\n private _query: AXDataSourceQuery = { skip: 0, take: 0, sort: [] };\n\n public get query(): AXDataSourceQuery {\n return this._query;\n }\n\n public onChanged = new Subject<AXDataSourceChangedEvent<T>>();\n\n public onItemExpanded = new Subject<AXDataSourceItemExpandedEvent<T>>();\n public onItemRefreshChildren = new Subject<{ id: string }>();\n\n public onLoadingChanged = new Subject<boolean>();\n private _isLoading = false;\n public get isLoading(): boolean {\n return this._isLoading;\n }\n\n constructor(config: AXDataSourceConfig<T>) {\n this.config = config;\n this._cachedItems = new Array(this.config.pageSize);\n this._items = new Array(0);\n this._query.take = this.config.pageSize;\n }\n\n private load() {\n const page = this._page;\n if (this.fetchedPages.has(page) && this.useCache) {\n return;\n }\n this.setLoadingState(true);\n this.fetchedPages.add(page);\n this._query.take = this.config.pageSize;\n this._query.skip = page * this.config.pageSize;\n this.config\n .load({ ...this._query })\n .then((result) => {\n if (this._totalCount != result.total) {\n this._cachedItems = new Array(result.total);\n this._totalCount = result.total;\n }\n this._items = result.items;\n this._cachedItems.splice(page * this.config.pageSize, this.config.pageSize, ...result.items);\n const event = {\n cachedItems: this.cachedItems,\n items: this.items,\n page: page,\n totalCount: this.totalCount,\n totalPages: this.totalPages,\n };\n this.onChanged.next(event);\n })\n .finally(() => {\n this.setLoadingState(false);\n });\n }\n\n public async getItemsByFilter(filter: AXDataSourceFilterOption) {\n return await this.config.load({ ...this.query, filter });\n }\n\n private setLoadingState(value: boolean) {\n this._isLoading = value;\n this.onLoadingChanged.next(this._isLoading);\n }\n\n public setPage(page: number) {\n if (this._page != page || this._items.length == 0) {\n this._page = page;\n this.load();\n }\n }\n public setPageSize(pageSize: number) {\n this.config.pageSize = pageSize;\n this.load();\n }\n\n public filter(value: AXDataSourceFilterOption) {\n this._query.filter = value;\n }\n\n public sort(...value: AXDataSourceSortOption[]) {\n this._query.sort = value;\n }\n\n public clearFilter() {\n this._query.filter = null;\n }\n\n public reset() {\n this._query.filter = null;\n this._query.sort = [];\n this._query.skip = 0;\n this._items = new Array(0);\n this._cachedItems = new Array(this.config.pageSize);\n this.fetchedPages.clear();\n this._page = 0;\n this._totalCount = 0;\n }\n\n public refresh(options: { reset?: boolean } = { reset: true }) {\n const currentFilter = this._query.filter;\n const currentSort = this._query.sort;\n if (options.reset) {\n this.reset();\n }\n this._query.filter = currentFilter;\n this._query.sort = currentSort;\n this.load();\n }\n\n find(key: unknown): T | Promise<T> {\n const fromCache = this.cachedItems.find(\n (c) => (!this.config.key && c == key) || (c && this.config.key && c[this.config.key] == key),\n );\n if (fromCache) return fromCache;\n return this.config.byKey ? this.config.byKey(key) : null;\n }\n}\n\nexport function convertArrayToDataSource<T = unknown>(\n items: T[],\n options: { key: string; pageSize: number } = { key: 'id', pageSize: 100 },\n): AXDataSource<T> {\n // Normalize primitives to objects so consumers (e.g., select/list) can rely on\n // value and text fields without triggering extra byKey lookups.\n const normalizedItems: Array<Record<string, unknown>> = (items as Array<unknown>).map((candidate) => {\n const isObjectItem = candidate != null && typeof candidate === 'object';\n if (isObjectItem) {\n return candidate as Record<string, unknown>;\n }\n // For primitive values, create an object with both key and text\n return { [options.key]: candidate as unknown, text: String(candidate ?? '') } as Record<string, unknown>;\n });\n\n const config: AXDataSourceConfig<T> = {\n key: options.key,\n pageSize: options.pageSize,\n load: async (e: AXDataSourceQuery) => {\n const itemsForFilter: Array<Record<string, unknown>> = normalizedItems;\n const resultNormalized = e.filter\n ? applyDataSourceQuery<Record<string, unknown>>(itemsForFilter, e.filter)\n : itemsForFilter;\n const result = resultNormalized as unknown as T[];\n return {\n items: result.slice(e.skip, e.skip + e.take),\n total: resultNormalized.length,\n };\n },\n byKey: async (v: unknown) =>\n // Search in the normalized list (supports primitive and object arrays)\n (normalizedItems as Array<Record<string, unknown>>).find((record) => {\n return record[options.key] == v;\n }) as unknown as T,\n };\n\n\n return new AXDataSource(config);\n}\n\nexport function applyDataSourceQuery<T extends Record<string, unknown>>(items: T[], filter: AXDataSourceFilterOption): T[] {\n if (!filter?.field || filter.value === undefined || filter.value === null) {\n return items; // No filter applied\n }\n\n return items.filter((item) => {\n const itemField = item[filter.field] as string;\n\n if (typeof itemField === 'string' && typeof filter.value === 'string') {\n return itemField.toLowerCase().includes(filter.value.toLowerCase());\n }\n\n return false; // Return false if itemField isn't comparable\n });\n}\n","/**\n * A token that specifies the color style of component.\n */\nexport type AXStyleColorType = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'default';\nexport type AXStyleColorClassType = `ax-${AXStyleColorType}`;\nexport const AX_STYLE_COLOR_TYPES: AXStyleColorType[] = [\n 'primary',\n 'secondary',\n 'success',\n 'warning',\n 'danger',\n 'default',\n];\n\nexport type AXStyleLookType = 'solid' | 'blank' | 'outline' | 'twotone' | 'flat' | 'fill' | 'link' | 'none';\nexport type AXStyleLookClassType = `ax-${AXStyleLookType}`;\nexport type AXStyleInteractiveLookClassType = `${AXStyleLookClassType}-interactive`;\nexport const AX_STYLE_LOOK_TYPES: AXStyleLookType[] = ['solid', 'blank', 'outline', 'twotone', 'flat', 'fill', 'none'];\n\nexport type AXSizeType = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\nexport type AXStyleSizeType = `ax-${AXSizeType}`;\n\nexport type AXLocation =\n | 'bottom-start'\n | 'bottom-center'\n | 'bottom-end'\n | 'top-start'\n | 'top-center'\n | 'top-end'\n | 'center-end'\n | 'center-start';\nexport const AX_LOCATIONS: AXLocation[] = [\n 'bottom-start',\n 'bottom-center',\n 'bottom-end',\n 'top-start',\n 'top-center',\n 'top-end',\n 'center-end',\n 'center-start',\n];\n\nexport type AXSurfaceType = 'lightest' | 'lighter' | 'light' | 'surface' | 'dark' | 'darker' | 'darkest';\n","import { isPlatformBrowser } from '@angular/common';\nimport { AfterViewInit, Directive, DOCUMENT, ElementRef, inject, Input, PLATFORM_ID, Renderer2 } from '@angular/core';\nimport { AXFocusableComponent } from '../classes/components.class';\n\n@Directive({ selector: '[axAutoFocus]' })\nexport class AXAutoFocusDirective implements AfterViewInit {\n private renderer = inject(Renderer2);\n private el = inject<ElementRef<HTMLElement>>(ElementRef);\n _host = inject(AXFocusableComponent, { host: true, self: true, optional: true });\n\n @Input('axAutoFocus')\n public autoFocus?: boolean = true;\n\n @Input('axAutoFocusTime')\n time = 50;\n\n private document = inject(DOCUMENT);\n private platformID = inject(PLATFORM_ID);\n\n ngAfterViewInit(): void {\n this.doFocus();\n }\n\n protected doFocus() {\n if (this.autoFocus) {\n if (this._host) {\n setTimeout(() => {\n this._host.focus();\n }, this.time);\n return;\n }\n const list = ['button', 'input', '[href]', 'select', 'textarea', '[tabindex]'].map(\n (c) => c + ':not([tabindex=\"-1\"])',\n );\n\n const focusable = this.el.nativeElement.querySelector<HTMLElement>(list.join(', ')) ?? this.el.nativeElement;\n\n if (isPlatformBrowser(this.platformID)) {\n const attr = this.document.createAttribute('autofocus');\n focusable.setAttributeNode(attr);\n }\n const hasTabindex = focusable.hasAttribute('tabindex');\n if (!hasTabindex) {\n focusable.setAttribute('tabindex', '0');\n }\n setTimeout(() => {\n focusable.focus();\n }, this.time);\n }\n }\n}\n","import { DOCUMENT, inject, Injectable } from '@angular/core';\nimport { EventManager } from '@angular/platform-browser';\nimport { Observable } from 'rxjs/internal/Observable';\n\ntype Options = {\n /**\n * element - An html element\n */\n element: any;\n /**\n * keys - string of keys like (Control.f)\n */\n keys: string;\n};\n\n@Injectable({ providedIn: 'root' })\nexport class AXHotkeysService {\n private eventManager = inject(EventManager);\n\n private document = inject(DOCUMENT);\n\n defaults: Partial<Options> = {\n element: this.document,\n };\n\n /**\n * Add shortcut\n *\n *\n * @param options\n * @returns Observable\n *\n */\n addShortcut(options: Partial<Options>) {\n const merged = { ...this.defaults, ...options };\n const event = `keydown.${merged.keys}`;\n return new Observable((observer) => {\n const handler = (e: UIEvent) => {\n e.preventDefault();\n observer.next(e);\n };\n if (merged.element) {\n // Todo: check addEventListener is not function\n\n const dispose = this.eventManager.addEventListener(merged.element, event, handler);\n return () => {\n dispose();\n };\n } else {\n return null;\n }\n });\n }\n}\n","import { AfterViewInit, Directive, ElementRef, Input, inject } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { AXComponent } from '../classes/components.class';\nimport { AXHotkeysService } from '../services/hotkey.service';\n\nexport type AXHotKeyAction = { [key: string]: string | Function; parmas?: any };\n\n@Directive({ selector: '[axHotkey]' })\nexport class AXHotkeyDirective implements AfterViewInit {\n private el = inject<ElementRef<HTMLElement>>(ElementRef);\n _host = inject(AXComponent, { host: true, self: true, optional: true });\n private hs = inject(AXHotkeysService);\n\n @Input()\n public axHotkey: string | AXHotKeyAction | AXHotKeyAction[] = '';\n\n private _subs: Subscription[] = [];\n\n ngAfterViewInit(): void {\n if (!this.axHotkey || !this._host) return;\n\n if (typeof this.axHotkey == 'string') {\n this._addDefaultAction(this.axHotkey);\n } else if (typeof this.axHotkey == 'object' && !Array.isArray(this.axHotkey)) {\n this._addHotKeyAction([this.axHotkey as AXHotKeyAction]);\n } else if (Array.isArray(this.axHotkey)) {\n this._addHotKeyAction(this.axHotkey);\n }\n }\n\n private _addDefaultAction(hotkey: string) {\n this._subs.push(\n this.hs.addShortcut({ keys: hotkey }).subscribe(() => {\n ['click', 'toggle', 'open', 'focus'].forEach((a) => {\n if (this._host[a]) {\n this._host[a]();\n return;\n }\n });\n }),\n );\n }\n\n private _addHotKeyAction(hotkeys: AXHotKeyAction[]) {\n hotkeys.forEach((k) => {\n const hotkey = (<unknown>Object.entries(k)[0][0]) as string;\n const action = <unknown>Object.entries(k)[0][1];\n if (!action) this._addDefaultAction(hotkey);\n else {\n this._subs.push(\n this.hs.addShortcut({ keys: hotkey }).subscribe(() => {\n if (typeof action == 'string' && this._host[action]) {\n this._host[action]();\n return;\n }\n if (typeof action == 'function') {\n action();\n return;\n }\n }),\n );\n }\n });\n }\n\n ngOnDestroy() {\n this._subs.forEach((s) => {\n s.unsubscribe();\n });\n }\n}\n","import { AfterViewInit, Directive, ElementRef, Input, inject } from '@angular/core';\nimport { Observable, fromEvent } from 'rxjs';\nimport { exhaustMap, filter, map, pairwise, startWith } from 'rxjs/operators';\n\nexport interface AXScrollPosition {\n scrollHeight: number;\n scrollTop: number;\n clientHeight: number;\n}\n\nconst AX_DEFAULT_SCROLL_POSITION: AXScrollPosition = {\n scrollHeight: 0,\n scrollTop: 0,\n clientHeight: 0,\n};\n\n@Directive({ selector: '[axInfiniteScroller]' })\nexport class AXInfiniteScrollerDirective implements AfterViewInit {\n private elm = inject(ElementRef);\n\n private scrollEvent$: Observable<any>;\n\n private userScrolledDown$: Observable<any>;\n\n private requestOnScroll$: Observable<any>;\n\n @Input()\n scrollCallback: Function;\n\n @Input()\n immediateCallback;\n\n @Input()\n scrollPercent = 70;\n\n ngAfterViewInit() {\n this.registerScrollEvent();\n\n this.streamScrollEvents();\n\n this.requestCallbackOnScroll();\n }\n\n private registerScrollEvent() {\n this.scrollEvent$ = fromEvent(this.elm.nativeElement, 'scroll');\n }\n\n private streamScrollEvents() {\n this.userScrolledDown$ = this.scrollEvent$.pipe(\n map(\n (e: any): AXScrollPosition => ({\n scrollHeight: e.target.scrollHeight,\n scrollTop: e.target.scrollTop,\n clientHeight: e.target.clientHeight,\n }),\n ),\n pairwise(),\n filter((positions) => this.isUserScrollingDown(positions) && this.isScrollExpectedPercent(positions[1])),\n );\n }\n\n private requestCallbackOnScroll() {\n this.requestOnScroll$ = this.userScrolledDown$;\n\n if (this.immediateCallback) {\n this.requestOnScroll$ = this.requestOnScroll$.pipe(\n startWith([AX_DEFAULT_SCROLL_POSITION, AX_DEFAULT_SCROLL_POSITION]),\n );\n }\n\n this.requestOnScroll$.pipe(\n exhaustMap(() => {\n return this.scrollCallback();\n }),\n );\n }\n\n private isUserScrollingDown = (positions) => {\n return positions[0].sT < positions[1].sT;\n };\n\n private isScrollExpectedPercent = (position) => {\n return (position.sT + position.cH) / position.sH > this.scrollPercent / 100;\n };\n}\n","import { Directive, ElementRef, OnDestroy, inject } from '@angular/core';\n\n@Directive({ selector: '[axResponsive]' })\nexport class AXResponsiveDirective implements OnDestroy {\n private _elementRef = inject<ElementRef<HTMLDivElement>>(ElementRef);\n\n private _observer: ResizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target) {\n const e = entry.target;\n const elements = [e, ...Array.from(e.querySelectorAll(`[class*='sm:']`))];\n elements\n .map((c) => ({\n element: c,\n classList: Array.from(c.classList)\n .filter((c) => c.includes('sm'))\n .map((c) => c.slice(3)),\n }))\n .forEach((c) => {\n e.clientWidth < 320 ? c.element.classList.add(...c.classList) : c.element.classList.remove(...c.classList);\n });\n }\n }\n });\n\n constructor() {\n const _elementRef = this._elementRef;\n\n this._observer.observe(_elementRef.nativeElement);\n }\n\n ngOnDestroy() {\n this._observer?.disconnect();\n this._observer?.unobserve(this._elementRef.nativeElement);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXAutoFocusDirective } from './directives/auto-focus.directive';\nimport { AXHotkeyDirective } from './directives/hotkey.directive';\nimport { AXInfiniteScrollerDirective } from './directives/infinite-scroll.directive';\nimport { AXResponsiveDirective } from './directives/responsive.directive';\nimport { AXHotkeysService } from './services/hotkey.service';\n@NgModule({\n imports: [AXResponsiveDirective, AXInfiniteScrollerDirective, AXAutoFocusDirective, AXHotkeyDirective],\n exports: [AXResponsiveDirective, AXInfiniteScrollerDirective, AXAutoFocusDirective, AXHotkeyDirective],\n providers: [AXHotkeysService],\n})\nexport class AXCommonModule {}\n","import { EventEmitter } from '@angular/core';\nimport { AXStyleColorClassType, AXStyleColorType } from '../classes/styles.class';\nimport { MXBaseComponent } from './base-component.class';\n\nexport class MXColorComponent extends MXBaseComponent {\n colorChange: EventEmitter<AXStyleColorType> = new EventEmitter();\n private _color: AXStyleColorType | string = 'default';\n /**\n * Predefined color schemes\n */\n get color(): AXStyleColorClassType | string {\n switch (this._color) {\n case 'primary':\n return 'ax-primary';\n case 'secondary':\n return 'ax-secondary';\n case 'success':\n return 'ax-success';\n case 'warning':\n return 'ax-warning';\n case 'danger':\n return 'ax-danger';\n case 'default':\n return 'ax-default';\n default:\n return this._color;\n }\n }\n set color(value: AXStyleColorType | string) {\n this.setOption({\n name: 'color',\n value,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { AXStyleInteractiveLookClassType, AXStyleLookClassType, AXStyleLookType } from '../classes/styles.class';\nimport { MXBaseComponent } from './base-component.class';\n\n@Injectable()\nexport abstract class MXLookableComponent {\n look: AXStyleLookType;\n}\n\nexport class MXLookComponent extends MXBaseComponent {\n lookChange: EventEmitter<AXStyleLookType> = new EventEmitter();\n private _look?: AXStyleLookType | string = 'solid';\n /**\n * Predefined look schemes\n */\n get look(): AXStyleLookClassType | string {\n switch (this._look) {\n case 'solid':\n return 'ax-solid';\n case 'blank':\n return 'ax-blank';\n case 'outline':\n return 'ax-outline';\n case 'twotone':\n return 'ax-twotone';\n case 'flat':\n return 'ax-flat';\n case 'fill':\n return 'ax-fill';\n case 'link':\n return 'ax-link';\n case 'none':\n return 'ax-none';\n default:\n return this._look;\n }\n }\n get interactiveLook(): AXStyleInteractiveLookClassType | string {\n switch (this._look) {\n case 'solid':\n return 'ax-solid-interactive';\n case 'blank':\n return 'ax-blank-interactive';\n case 'outline':\n return 'ax-outline-interactive';\n case 'twotone':\n return 'ax-twotone-interactive';\n case 'flat':\n return 'ax-flat-interactive';\n case 'fill':\n return 'ax-fill-interactive';\n case 'link':\n return 'ax-link-interactive';\n case 'none':\n return 'ax-none-interactive';\n default:\n return this._look;\n }\n }\n set look(value: AXStyleLookType | string) {\n this.setOption({\n name: 'look',\n value,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n}\n","import { classes } from 'polytype';\nimport { MXColorComponent } from './color-component.class';\nimport { MXLookComponent } from './look-component.class';\n\nexport class MXColorLookComponent extends classes(MXColorComponent, MXLookComponent) {}\n","import { EventEmitter } from '@angular/core';\nimport { classes } from 'polytype';\nimport { MXColorLookComponent } from './colorlook-component.class';\nimport { MXInteractiveComponent } from './interactive-component.class';\n\nexport class MXButtonBaseComponent extends classes(MXInteractiveComponent, MXColorLookComponent) {\n /**\n * Emits an event when the text associated with the button changes.\n *\n * @event\n */\n textChange: EventEmitter<string> = new EventEmitter();\n private _text: string;\n /**\n * Defines the primary text to show inside the button.\n */\n get text(): string {\n return this._text;\n }\n set text(v: string) {\n this.setOption({\n name: 'text',\n value: v,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n\n /**\n * Emits an event when the toggleable state of the action sheet changes.\n *\n * @event\n */\n toggleableChange: EventEmitter<boolean> = new EventEmitter();\n private _toggleable?: boolean = false;\n /**\n * Provides visual styling that indicates if the Button is active\n */\n get toggleable(): boolean {\n return this._toggleable;\n }\n set toggleable(value: boolean) {\n this.setOption({\n name: 'toggleable',\n value,\n });\n }\n\n /**\n * Emits an event whenever the selection state of the component changes.\n *\n * @event\n */\n selectedChange: EventEmitter<boolean> = new EventEmitter();\n private _selected?: boolean = false;\n /**\n * Indicates if the Button is selected or not\n */\n get selected(): boolean {\n return this._selected;\n }\n set selected(value: boolean) {\n this.setOption({\n name: 'selected',\n value,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n /**\n * @ignore\n */\n constructor() {\n super();\n }\n /**\n * @ignore\n */\n protected get cssClasses() {\n const cssClasses = {\n 'ax-button-icon': !this.text,\n };\n // set(cssClasses, `${this.interactiveLook || 'ax-solid-interactive'}`, true);\n // set(cssClasses, `${this.color || 'ax-primary'}`, true);\n return cssClasses;\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { isEqual } from 'lodash-es';\nimport { AXHtmlEvent, AXValueChangedEvent } from '../classes/events.class';\nimport { MXValueComponent } from './value-component.class';\n\n@Injectable()\nexport class MXInputBaseValueComponent<T = string> extends MXValueComponent<T> {\n oldText: string;\n placeholder: string;\n\n /**\n * Fires each time the user press a key.\n * @event\n */\n onKeyDown: EventEmitter<AXHtmlEvent<KeyboardEvent>> = new EventEmitter<AXHtmlEvent<KeyboardEvent>>();\n\n /**\n * Fires each time the user press a key.\n * @event\n */\n onKeyUp: EventEmitter<AXHtmlEvent<KeyboardEvent>> = new EventEmitter<AXHtmlEvent<KeyboardEvent>>();\n\n /**\n * Fires each time the user press a key.\n * @event\n */\n onKeyPress: EventEmitter<AXHtmlEvent<KeyboardEvent>> = new EventEmitter<AXHtmlEvent<KeyboardEvent>>();\n\n /**\n * Fires each time the user change the text.\n * @event\n */\n onTextChanged = new EventEmitter<AXValueChangedEvent<string>>();\n\n protected emitOnKeydownEvent(e: KeyboardEvent) {\n this.onKeyDown.emit({\n component: this,\n nativeEvent: e,\n });\n }\n\n protected emitOnKeyupEvent(e: KeyboardEvent) {\n this.onKeyUp.emit({\n component: this,\n nativeEvent: e,\n });\n }\n\n protected emitOnKeypressEvent(e: KeyboardEvent) {\n this.onKeyPress.emit({\n component: this,\n nativeEvent: e,\n });\n }\n\n protected emitOnTextChanged(value: string, isUserInteraction = false) {\n if (isEqual(value, this.oldText)) return;\n this.onTextChanged.emit({\n value,\n name: this.name,\n component: this,\n isUserInteraction,\n oldValue: this.oldText,\n htmlElement: this.getHostElement(),\n });\n this.oldText = value;\n }\n\n override focus(): void {\n const input = this.getHostElement().querySelector('input');\n if (input) input.focus();\n else super.focus();\n }\n}\n","import { AXFormatService } from '@acorex/core/format';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { EventEmitter, Injectable, InjectionToken, inject } from '@angular/core';\nimport { cloneDeep, get } from 'lodash-es';\nimport { AXItemClickEvent, AXItemSelectedEvent } from '../classes/events.class';\nimport { MXValueComponent } from './value-component.class';\n\n/**\n * Service that manages selection state and caching for selection components\n */\n@Injectable()\nexport class MXSelectionBridgeService {\n /** Array of currently selected items */\n public selectedItems: unknown[] = [];\n /** Cache for normalized items keyed by their unique identifier */\n public cacheList: Record<string | number, unknown> = {};\n}\n\n/**\n * Injection token for the selection bridge service\n */\nexport const AX_SELECTION_DATA_TOKEN = new InjectionToken<MXSelectionBridgeService>('AX_SELECTION_DATA_TOKEN');\n\n/**\n * Type definition for disabled callback function\n */\nexport type DisabledCallback<T> = (event: { item: T; index: number }) => boolean;\n\n/**\n * Type definition for normalized item object\n */\nexport interface NormalizedItem {\n [key: string]: unknown;\n isLoading?: boolean;\n}\n\n/**\n * Abstract base component for selection-based value components\n * Provides common functionality for components that support item selection\n */\n@Injectable()\nexport abstract class MXSelectionValueComponent<T = unknown> extends MXValueComponent<unknown> {\n // #region Services\n private readonly formatService = inject(AXFormatService);\n private readonly dataService = inject(AX_SELECTION_DATA_TOKEN);\n // #endregion\n\n // #region Public Properties\n /** Callback function to determine if an item should be disabled */\n disabledCallback: DisabledCallback<T>;\n\n // #region Field Configuration Properties\n private _valueField = 'id';\n /** Field name used to extract the unique value from items */\n public get valueField(): string {\n return this._valueField;\n }\n public set valueField(value: string) {\n this.setOption({ name: 'valueField', value });\n }\n\n private _textField = 'text';\n /** Field name used to extract the display text from items */\n public get textField(): string {\n return this._textField;\n }\n public set textField(value: string) {\n this.setOption({ name: 'textField', value });\n }\n\n private _textTemplate = '';\n /** Template string for formatting item display text */\n public get textTemplate(): string {\n return this._textTemplate;\n }\n public set textTemplate(value: string) {\n this.setOption({ name: 'textTemplate', value });\n }\n\n private _defaultText = '-';\n /** Text to display when neither textField nor valueField exist on the item */\n public get defaultText(): string {\n return this._defaultText;\n }\n public set defaultText(value: string) {\n this.setOption({ name: 'defaultText', value });\n }\n\n private _disabledField = 'disabled';\n /** Field name used to determine if an item is disabled */\n public get disabledField(): string {\n return this._disabledField;\n }\n public set disabledField(value: string) {\n this.setOption({ name: 'disabledField', value });\n }\n\n private _multiple = false;\n /** Whether multiple items can be selected */\n public get multiple(): boolean {\n return this._multiple;\n }\n public set multiple(value: boolean) {\n this.setOption({\n name: 'multiple',\n value,\n afterCallback: () => this.reset(false),\n });\n }\n // #endregion\n\n // #region Computed Properties\n /** Gets the currently selected items */\n get selectedItems(): unknown[] {\n return this.dataService.selectedItems || [];\n }\n // #endregion\n\n // #region Events\n onItemSelected: EventEmitter<AXItemSelectedEvent> = new EventEmitter<AXItemSelectedEvent>();\n\n /**\n * Emitted when an item in the list is clicked.\n *\n * @event\n */\n onItemClick: EventEmitter<AXItemClickEvent> = new EventEmitter<AXItemClickEvent>();\n // #endregion\n\n // #region Abstract Methods\n /**\n * Abstract method to retrieve an item by its key\n * @param key The unique identifier of the item\n * @returns The item or a Promise that resolves to the item\n */\n abstract getItemByKey(key: unknown): unknown | Promise<unknown>;\n // #endregion\n\n // #region Override Methods\n /**\n * Internal method to set and normalize the component value\n * @param value The value to set (can be single item or array)\n * @returns Normalized value based on multiple selection mode\n */\n override internalSetValue(value: unknown) {\n const isArray = Array.isArray(value);\n\n // Handle null/empty values\n if (value == null || (isArray && value.length === 0)) {\n return this.multiple ? [] : null;\n }\n\n // Check if items already have text properties to avoid unnecessary findByKey calls\n const itemsToNormalize = isArray ? value : [value];\n const needsFindByKey = itemsToNormalize.some((item) => {\n if (typeof item === 'object' && item !== null) {\n return get(item as Record<string, unknown>, this.textField) == null;\n }\n return true; // Primitive values need findByKey\n });\n\n const normalizedItems = this.normalizeItemsList(itemsToNormalize, needsFindByKey);\n\n if (normalizedItems.length === 0) {\n return this.multiple ? [] : null;\n }\n\n // Extract values based on selection mode\n return this.multiple\n ? normalizedItems.map((item) => get(item as Record<string, unknown>, this.valueField))\n : (get(normalizedItems[0] as Record<string, unknown>, this.valueField) ?? null);\n }\n\n /**\n * Override to normalize selected items when value changes\n */\n override emitOnValueChangedEvent(oldValue?: unknown, newValue?: unknown) {\n this._normalizeSelectedItems();\n super.emitOnValueChangedEvent(oldValue, newValue);\n }\n // #endregion\n\n // #region Private Normalization Methods\n /**\n * Normalizes a list of items, filtering out null values\n * @param items Array of items to normalize\n * @param findByKey Whether to attempt finding items by key\n * @returns Array of normalized items\n */\n protected normalizeItemsList(items: unknown[], findByKey = false): NormalizedItem[] {\n if (!items?.length) return [];\n return items.filter((item) => item != null).map((item) => this.normalizeItem(item, findByKey));\n }\n\n /**\n * Normalizes a single item, handling caching and async loading\n * @param item Item to normalize\n * @param findByKey Whether to attempt finding the item by key\n * @returns Normalized item object\n */\n private normalizeItem(item: unknown, findByKey = false): NormalizedItem {\n const isComplexObject = typeof item === 'object' && item !== null;\n const itemRecord = item as Record<string, unknown>;\n const valueKey = isComplexObject ? get(itemRecord, this.valueField) : item;\n const key = valueKey != null ? String(valueKey as unknown) : String(item);\n const cacheKey = this.createCacheKey(key);\n\n // Return cached item if available and has text\n const cachedItem = this.dataService.cacheList[cacheKey] as NormalizedItem | undefined;\n if (cachedItem && get(cachedItem as Record<string, unknown>, this.textField) != null) {\n return cachedItem;\n }\n\n const hasTextProperty = !isComplexObject || get(itemRecord, this.textField) != null;\n const normalizedObj: NormalizedItem = {};\n\n // If findByKey is true, we need to resolve the item to get its text\n // This is needed for string values like 'ir', 'us' that don't have text\n if (findByKey) {\n this.handleItemNormalization(normalizedObj, item, key, true, cacheKey);\n } else {\n // Item already has all required properties, just copy them\n Object.assign(normalizedObj, item);\n }\n\n this.dataService.cacheList[cacheKey] = normalizedObj;\n return normalizedObj;\n }\n\n /**\n * Handles the normalization logic for items that need property assignment\n */\n private handleItemNormalization(\n normalizedObj: NormalizedItem,\n originalItem: unknown,\n key: string,\n findByKey: boolean,\n cacheKey: string,\n ): void {\n const existingItem = findByKey ? this.getItemByKey(key) : null;\n\n if (existingItem instanceof Promise) {\n this.handleAsyncItem(normalizedObj, key, existingItem, cacheKey);\n } else if (existingItem) {\n this.assignItemProperties(normalizedObj, existingItem, true);\n } else {\n this.assignItemProperties(normalizedObj, originalItem, false);\n }\n }\n\n /**\n * Handles async item loading with loading state\n */\n private handleAsyncItem(obj: NormalizedItem, key: string, promise: Promise<unknown>, cacheKey: string): void {\n // Set loading state\n obj[this.valueField] = key;\n obj['isLoading'] = true;\n obj[this.textField] = '@acorex:common.status.loading';\n\n promise\n .then((result) => {\n if (typeof result === 'object' && result) {\n Object.assign(obj, cloneDeep(result));\n } else {\n obj[this.valueField] = result || key;\n obj[this.textField] = result;\n }\n })\n .catch((error) => {\n console.warn('Failed to load item by key:', key, error);\n // On error, keep the original value but mark as failed\n obj[this.textField] = this.defaultText;\n })\n .finally(() => {\n delete obj['isLoading'];\n delete obj['_displayTextLoading'];\n delete obj['_loadingTriggered'];\n this.dataService.cacheList[cacheKey] = obj;\n\n // Use setTimeout to defer change detection and prevent immediate re-rendering\n setTimeout(() => {\n if (this.cdr) {\n this.cdr.markForCheck();\n }\n }, 0);\n });\n }\n\n /**\n * Assigns value and text properties to the normalized object\n */\n private assignItemProperties(obj: NormalizedItem, sourceItem: unknown, isComplexSource: boolean): void {\n const isSourceObject = typeof sourceItem === 'object' && sourceItem !== null;\n const sourceRecord = sourceItem as Record<string, unknown>;\n\n if (isComplexSource && isSourceObject) {\n const valueFromSource = get(sourceRecord, this.valueField);\n const textFromSource = get(sourceRecord, this.textField);\n obj[this.valueField] = (valueFromSource ?? textFromSource) as unknown;\n obj[this.textField] = (textFromSource ?? valueFromSource ?? this.defaultText) as unknown;\n } else {\n const valueFromSource = isSourceObject ? get(sourceRecord, this.valueField) : (sourceItem as unknown);\n const textFromSource = isSourceObject ? get(sourceRecord, this.textField) : (sourceItem as unknown);\n obj[this.valueField] = (valueFromSource ?? textFromSource) as unknown;\n obj[this.textField] = (textFromSource ?? valueFromSource ?? this.defaultText) as unknown;\n }\n }\n\n /**\n * Creates a consistent cache key for an item\n */\n private createCacheKey(key: string | number): string {\n return `k-${key}`;\n }\n\n /**\n * Normalizes currently selected items and updates the data service\n */\n private _normalizeSelectedItems(): void {\n const values = Array.isArray(this.value) ? this.value : this.value != null ? [this.value] : [];\n\n // Only call normalizeItem with findByKey=true if the item doesn't have text\n // This prevents unnecessary API calls for items that already have text\n this.dataService.selectedItems = values.map((value) => {\n const hasText =\n typeof value === 'object' && value !== null && get(value as Record<string, unknown>, this.textField) != null;\n return this.normalizeItem(value, !hasText);\n });\n }\n // #endregion\n\n // #region Public Selection Methods\n /**\n * Unselects the specified items from the selection\n * @param items Items to unselect\n */\n public unselectItems(...items: T[]): void {\n if (!items?.length) {\n this.commitValue([], true);\n return;\n }\n\n const normalizedItems = this.normalizeItemsList(items);\n const newSelectedItems = this.selectedItems.filter(\n (selectedItem) =>\n !normalizedItems.some(\n (normalizedItem) =>\n get(normalizedItem as Record<string, unknown>, this.valueField) ===\n get(selectedItem as Record<string, unknown>, this.valueField),\n ),\n );\n\n this.commitValue(newSelectedItems, true);\n }\n\n /**\n * Selects the specified items\n * @param items Items to select\n */\n public selectItems(...items: T[]): void {\n if (!items?.length) {\n return;\n }\n\n const currentValue = Array.isArray(this.value) ? this.value : [this.value];\n const normalizedItems = this.normalizeItemsList(items);\n\n const newSelectedItems = this.multiple ? [...currentValue, ...normalizedItems] : normalizedItems;\n\n this.onItemSelected.emit({\n component: this,\n isUserInteraction: true,\n item: newSelectedItems[0],\n htmlElement: this.getHostElement(),\n });\n\n this.commitValue(newSelectedItems, true);\n }\n\n /**\n * Toggles the selection state of the specified items\n * @param items Items to toggle\n */\n public toggleSelect(...items: T[]): void {\n items?.forEach((item) => {\n if (this.multiple) {\n this.isItemSelected(item) ? this.unselectItems(item) : this.selectItems(item);\n } else {\n this.selectItems(item);\n }\n });\n }\n // #endregion\n\n // #region Public Utility Methods\n /**\n * Checks if an item is currently selected\n * @param item Item to check\n * @returns True if the item is selected\n */\n public isItemSelected(item: T): boolean {\n const normalizedItem = this.normalizeItem(item);\n const normalizedValue = get(normalizedItem as Record<string, unknown>, this.valueField);\n return this.selectedItems.some(\n (selectedItem) => get(selectedItem as Record<string, unknown>, this.valueField) === normalizedValue,\n );\n }\n\n /**\n * Checks if an item is disabled\n * @param item Item to check\n * @returns True if the item is disabled\n */\n public isItemDisabled(item: T): boolean {\n const itemRecord = item as Record<string, unknown>;\n return (\n this.disabled ||\n coerceBooleanProperty(get(itemRecord, this.disabledField) as any) === true ||\n (this.disabledCallback?.({ item, index: -1 }) ?? false)\n );\n }\n\n /**\n * Checks if an item is currently loading\n * @param item Item to check\n * @returns True if the item is loading\n */\n public isItemLoading(item: T): boolean {\n const normalizedItem = this.normalizeItem(item);\n return normalizedItem['isLoading'] === true;\n }\n // #endregion\n\n // #region Protected Utility Methods\n /**\n * Gets the display text for an item using template or text field\n * @param item Item to get display text for\n * @returns Formatted display text\n */\n protected getDisplayText(item: T): string {\n // Prevent recursive calls that could cause infinite loops\n if (item && typeof item === 'object' && (item as any)['_displayTextLoading']) {\n return '@acorex:common.status.loading';\n }\n\n // Add timestamp-based debouncing to prevent excessive calls for ALL item types\n const now = Date.now();\n const itemKey = typeof item === 'string' ? item : get(item as Record<string, unknown>, this.valueField);\n const cacheKey = this.createCacheKey(String(itemKey));\n\n // Check if we have a recent result in the cache to prevent duplicate processing\n const cachedResult = this.dataService.cacheList[cacheKey];\n if (cachedResult && (cachedResult as any)['_lastDisplayTextCall']) {\n const timeSinceLastCall = now - (cachedResult as any)['_lastDisplayTextCall'];\n if (timeSinceLastCall < 50) {\n // 50ms debounce\n return (cachedResult as any)['_lastDisplayTextResult'] || String(itemKey || '');\n }\n }\n\n // For string values, we need to normalize with findByKey=true to trigger async loading\n const isStringValue = typeof item === 'string';\n const normalizedItem = this.normalizeItem(item, isStringValue);\n\n // Try template formatting FIRST before checking cached textField\n if (this.textTemplate) {\n const formattedTemplate = this.formatService.format(this.textTemplate, 'string', normalizedItem);\n if (formattedTemplate !== this.textTemplate) {\n const result = formattedTemplate;\n // Cache the timestamp and result for debouncing in the cache\n if (normalizedItem) {\n (normalizedItem as any)['_lastDisplayTextCall'] = now;\n (normalizedItem as any)['_lastDisplayTextResult'] = result;\n }\n return result;\n }\n }\n\n // Check if this item is already in the cache with proper text\n const itemValue = get(normalizedItem as Record<string, unknown>, this.valueField);\n if (itemValue != null && itemValue !== '') {\n const cacheKey = this.createCacheKey(String(itemValue));\n const cachedItem = this.dataService.cacheList[cacheKey];\n if (cachedItem && get(cachedItem as Record<string, unknown>, this.textField) != null) {\n // Use cached text if available\n const cachedText = get(cachedItem as Record<string, unknown>, this.textField);\n if (cachedText && cachedText !== '@acorex:common.status.loading') {\n const result = String(cachedText);\n // Cache the timestamp and result for debouncing in the cache (works for all item types)\n if (cachedItem) {\n (cachedItem as any)['_lastDisplayTextCall'] = now;\n (cachedItem as any)['_lastDisplayTextResult'] = result;\n }\n return result;\n }\n }\n }\n\n // Use text field or fallback to value field\n const textValue = get(normalizedItem as Record<string, unknown>, this.textField);\n if (textValue != null && textValue !== '') {\n const result = String(textValue);\n // Cache the timestamp and result for debouncing in the cache\n if (normalizedItem) {\n (normalizedItem as any)['_lastDisplayTextCall'] = now;\n (normalizedItem as any)['_lastDisplayTextResult'] = result;\n }\n return result;\n }\n\n // If text is missing and item is loading, show loading state\n if (normalizedItem['isLoading']) {\n const result = '@acorex:common.status.loading';\n // Cache the timestamp and result for debouncing in the cache\n if (normalizedItem) {\n (normalizedItem as any)['_lastDisplayTextCall'] = now;\n (normalizedItem as any)['_lastDisplayTextResult'] = result;\n }\n return result;\n }\n\n // Attempt to load item by key if text is missing\n const value = get(normalizedItem as Record<string, unknown>, this.valueField);\n if (value == null || value === '') {\n const result = this.defaultText;\n // Cache the timestamp and result for debouncing in the cache\n if (normalizedItem) {\n (normalizedItem as any)['_lastDisplayTextCall'] = now;\n (normalizedItem as any)['_lastDisplayTextResult'] = result;\n }\n return result;\n }\n\n // If we have a value but no text, trigger async loading only once\n // Use a flag to prevent multiple calls\n if (!normalizedItem['_loadingTriggered'] && !normalizedItem[this.textField]) {\n normalizedItem['_loadingTriggered'] = true;\n normalizedItem['_displayTextLoading'] = true;\n\n // Use setTimeout to defer the async loading and prevent immediate change detection\n setTimeout(() => {\n this.loadAndCacheItemByKey(value);\n }, 0);\n }\n\n // Return the value itself as a fallback\n // This will be updated once the async loading completes\n const result = String(value);\n\n // Cache the timestamp and result for debouncing in the cache\n if (normalizedItem) {\n (normalizedItem as any)['_lastDisplayTextCall'] = now;\n (normalizedItem as any)['_lastDisplayTextResult'] = result;\n }\n\n return result;\n }\n\n /**\n * Gets the value of an item\n * @param item Item to get value from\n * @returns Item value\n */\n protected getValue(item: T): unknown {\n const normalizedItem = this.normalizeItem(item);\n return get(normalizedItem as Record<string, unknown>, this.valueField);\n }\n\n /**\n * Clears the selection cache and selected items\n */\n protected clearSelectionCache(): void {\n this.dataService.cacheList = {};\n this.dataService.selectedItems = [];\n this.cdr.markForCheck();\n }\n\n /**\n * Clears only the cache while preserving selected items\n */\n protected softClearSelectionCache(): void {\n this.dataService.cacheList = {};\n this.cdr.markForCheck();\n }\n\n /**\n * Clears the debouncing cache for specific items to ensure fresh data is displayed\n */\n protected clearItemDebouncingCache(item: T): void {\n // Get the cache key for this item\n const itemKey = typeof item === 'string' ? item : get(item as Record<string, unknown>, this.valueField);\n if (itemKey != null) {\n const cacheKey = this.createCacheKey(String(itemKey));\n const cachedItem = this.dataService.cacheList[cacheKey];\n\n if (cachedItem) {\n delete (cachedItem as any)['_lastDisplayTextCall'];\n delete (cachedItem as any)['_lastDisplayTextResult'];\n delete (cachedItem as any)['_displayTextLoading'];\n delete (cachedItem as any)['_loadingTriggered'];\n }\n }\n }\n\n /**\n * Forces a refresh of the display when items are loaded asynchronously\n * This should be called when the data source is updated\n */\n protected refreshDisplay(): void {\n this.cdr.markForCheck();\n }\n\n /**\n * Refreshes the display for all selected items to ensure consistency\n * This is useful when the data source has been updated\n */\n protected refreshSelectedItemsDisplay(): void {\n // Force a refresh of the display without re-normalizing to avoid infinite loops\n if (this.selectedItems.length > 0) {\n this.cdr.markForCheck();\n }\n }\n\n /**\n * Forces a refresh of all selected items by clearing their debouncing cache\n * This ensures fresh data is displayed when the data source is updated\n */\n protected forceRefreshSelectedItems(): void {\n if (this.selectedItems.length > 0) {\n this.selectedItems.forEach((item) => {\n this.clearItemDebouncingCache(item as T);\n });\n this.cdr.markForCheck();\n }\n }\n\n // #endregion\n\n // #region Private Helper Methods\n /**\n * Asynchronously loads an item by its key and caches the result\n * @param key Key to load item by\n */\n private async loadAndCacheItemByKey(key: unknown): Promise<void> {\n try {\n const item = await this.getItemByKey(key);\n if (item) {\n const normalizedItem = this.normalizeItem(item);\n const cacheKey = this.createCacheKey(String((normalizedItem as Record<string, unknown>)[this.valueField]));\n\n // Update the cache with the loaded item\n this.dataService.cacheList[cacheKey] = normalizedItem;\n\n // Clear loading flags\n if (this.dataService.cacheList[cacheKey]) {\n delete (this.dataService.cacheList[cacheKey] as any)['_displayTextLoading'];\n delete (this.dataService.cacheList[cacheKey] as any)['_loadingTriggered'];\n }\n\n // Use setTimeout to defer change detection and prevent immediate re-rendering\n setTimeout(() => {\n if (this.cdr) {\n this.cdr.markForCheck();\n }\n }, 0);\n }\n } catch (error) {\n console.warn('Failed to load item by key:', key, error);\n\n // Clear loading flags on error too\n const cacheKey = this.createCacheKey(String(key));\n if (this.dataService.cacheList[cacheKey]) {\n delete (this.dataService.cacheList[cacheKey] as any)['_displayTextLoading'];\n delete (this.dataService.cacheList[cacheKey] as any)['_loadingTriggered'];\n }\n }\n }\n // #endregion\n}\n","import { Directive, EventEmitter, Input, OnDestroy, Output, inject } from '@angular/core';\nimport { NgModel } from '@angular/forms';\nimport { Subscription, debounceTime, distinctUntilChanged, skip } from 'rxjs';\n\n@Directive({\n selector: '[axDelayedValueChanged]',\n})\nexport class AXNgModelDelayedValueChangedDirective implements OnDestroy {\n private ngModel = inject(NgModel);\n\n @Output()\n axDelayedValueChanged = new EventEmitter<any>();\n\n @Output()\n axDelayTimeChange = new EventEmitter<number>();\n\n private _delayTime = 0;\n @Input()\n public get delayTime(): number {\n return this._delayTime;\n }\n public set delayTime(v: number) {\n if (v != this._delayTime) {\n this._delayTime = v;\n this.axDelayTimeChange.emit(v);\n this.update();\n }\n }\n\n private subscription: Subscription;\n\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n }\n\n constructor() {\n this.delayTime = 0;\n }\n\n private update() {\n this.subscription?.unsubscribe();\n //\n this.subscription = this.ngModel.control.valueChanges\n .pipe(\n skip(1), // skip initial value\n distinctUntilChanged(),\n debounceTime(this.delayTime),\n )\n .subscribe((value) => this.axDelayedValueChanged.emit(value));\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, PLATFORM_ID, ViewContainerRef, afterNextRender, effect, inject, input } from '@angular/core';\nimport { AXStyleColorType } from '../classes/styles.class';\n\n@Directive({\n selector: '[axInvertedColor]',\n})\nexport class AXInvertedColorDirective {\n color = input.required<AXStyleColorType>();\n ref = inject(ViewContainerRef);\n private platformID = inject(PLATFORM_ID);\n constructor() {\n afterNextRender(() => {\n this.invertColor();\n });\n effect(() => {\n this.invertColor();\n });\n }\n\n protected invertColor() {\n let color;\n let foreColor;\n const invertedVariables = [];\n\n if (isPlatformBrowser(this.platformID)) {\n if (this.color() === 'default') {\n color = getComputedStyle(document.documentElement).getPropertyValue(`--ax-color-${this.color()}`);\n foreColor = getComputedStyle(document.documentElement).getPropertyValue(`--ax-color-${this.color()}-fore`);\n invertedVariables.push({ name: `--ax-color-ghost`, value: `${foreColor}` });\n invertedVariables.push({ name: `--ax-color-ghost-fore`, value: `${color}` });\n } else {\n const range = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];\n\n color = getComputedStyle(document.documentElement).getPropertyValue(`--ax-color-${this.color()}-500`);\n foreColor = getComputedStyle(document.documentElement).getPropertyValue(`--ax-color-${this.color()}-fore`);\n range.forEach((c) => {\n invertedVariables.push({ name: `--ax-color-${this.color()}-${c}`, value: `${foreColor}` });\n });\n invertedVariables.push({ name: `--ax-color-${this.color()}-fore`, value: `${color}` });\n invertedVariables.push({ name: `--ax-color-${this.color()}-fore-tint`, value: `${color}` });\n }\n\n invertedVariables.forEach((c) => {\n (this.ref.element.nativeElement as HTMLElement).style.setProperty(c.name, c.value);\n });\n }\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Directive,\n DOCUMENT,\n ElementRef,\n inject,\n Input,\n OnDestroy,\n PLATFORM_ID,\n} from '@angular/core';\n\n@Directive({\n selector: '[axRipple]',\n})\nexport class AXRippleDirective implements OnDestroy {\n private el = inject<ElementRef<HTMLElement>>(ElementRef);\n private cdr = inject(ChangeDetectorRef);\n\n @Input('axRipple')\n public enabled?: boolean = true;\n\n @Input() axRippleColor = 'var(--ax-comp-ripple-color, rgba(255, 255, 255, 0.3))';\n\n ripple: HTMLSpanElement | null;\n private document = inject(DOCUMENT);\n private platformID = inject(PLATFORM_ID);\n\n ngOnInit() {\n if (this.enabled) {\n this.el.nativeElement.addEventListener('click', (event: MouseEvent) => {\n this.onElementClick(event);\n });\n }\n }\n\n ngOnDestroy() {\n this.el.nativeElement.removeEventListener('click', this.createRipple.bind(this));\n }\n\n private onElementClick(event: MouseEvent) {\n this.createRipple(event);\n }\n\n private createRipple(event: MouseEvent) {\n const element = event.currentTarget as HTMLElement;\n const exists = element.querySelector('.ax-ripple');\n if (exists) exists.remove();\n\n this.el.nativeElement.style.overflow = 'hidden';\n const rect = element.getBoundingClientRect();\n const x = Math.floor(((event.clientX - rect.left) / (rect.right - rect.left)) * element.clientWidth);\n const y = Math.floor(((event.clientY - rect.top) / (rect.bottom - rect.top)) * element.clientHeight);\n if (isPlatformBrowser(this.platformID)) {\n const circle = this.document.createElement('span');\n const diameter = Math.max(element.clientWidth, element.clientHeight);\n const radius = diameter / 2;\n\n circle.style.width = circle.style.height = `${diameter}px`;\n circle.style.left = `${x - radius}px`;\n circle.style.top = `${y - radius}px`;\n circle.style.backgroundColor = `${this.axRippleColor}`;\n circle.classList.add('ax-ripple');\n element.appendChild(circle);\n circle.addEventListener('animationend', () => {\n circle?.remove();\n });\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-cdk-common.mjs","sources":["../../../../packages/cdk/common/src/lib/types/base/button.type.ts","../../../../packages/cdk/common/src/lib/types/base/color.type.ts","../../../../packages/cdk/common/src/lib/types/base/component.types.ts","../../../../packages/cdk/common/src/lib/types/base/events.types.ts","../../../../packages/cdk/common/src/lib/types/base/interactive.type.ts","../../../../packages/cdk/common/src/lib/types/base/look.type.ts","../../../../packages/cdk/common/src/lib/types/base/value.type.ts","../../../../packages/cdk/common/src/lib/types/placement.ts","../../../../packages/cdk/common/src/lib/types/selection-mode.ts","../../../../packages/cdk/common/src/lib/services/dom.service.ts","../../../../packages/cdk/common/src/lib/components/base-component.class.ts","../../../../packages/cdk/common/src/lib/components/interactive-component.class.ts","../../../../packages/cdk/common/src/lib/components/value-component.class.ts","../../../../packages/cdk/common/src/lib/classes/events.class.ts","../../../../packages/cdk/common/src/lib/classes/components.class.ts","../../../../packages/cdk/common/src/lib/classes/datalist.class.ts","../../../../packages/cdk/common/src/lib/classes/datasource.class.ts","../../../../packages/cdk/common/src/lib/classes/styles.class.ts","../../../../packages/cdk/common/src/lib/directives/auto-focus.directive.ts","../../../../packages/cdk/common/src/lib/services/hotkey.service.ts","../../../../packages/cdk/common/src/lib/directives/hotkey.directive.ts","../../../../packages/cdk/common/src/lib/directives/infinite-scroll.directive.ts","../../../../packages/cdk/common/src/lib/directives/responsive.directive.ts","../../../../packages/cdk/common/src/lib/common.module.ts","../../../../packages/cdk/common/src/lib/components/color-component.class.ts","../../../../packages/cdk/common/src/lib/components/look-component.class.ts","../../../../packages/cdk/common/src/lib/components/colorlook-component.class.ts","../../../../packages/cdk/common/src/lib/components/button-base-component.class.ts","../../../../packages/cdk/common/src/lib/components/input-base-value-component.class.ts","../../../../packages/cdk/common/src/lib/components/selection-base.component.class.ts","../../../../packages/cdk/common/src/lib/directives/delayed-value-changed.directive.ts","../../../../packages/cdk/common/src/lib/directives/inverted-color.directive.ts","../../../../packages/cdk/common/src/lib/directives/ripple.directive.ts","../../../../packages/cdk/common/src/acorex-cdk-common.ts"],"sourcesContent":["import { Component, model, output } from '@angular/core';\n\n@Component({\n template: '',\n})\nexport abstract class NXButtonComponent {\n text = model<string>();\n\n toggleableChange = output<boolean>();\n selectedChange = output<boolean>();\n}\n","import { Component, model } from '@angular/core';\nimport { AXStyleColorType } from '../../classes/styles.class';\n\n@Component({\n template: '',\n})\nexport abstract class NXColorComponent {\n color = model<AXStyleColorType>('default');\n}\n","import { afterNextRender, ElementRef, inject, Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport abstract class NXComponent {\n #elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n #isRendered = signal(false);\n\n protected isRendered = this.#isRendered.asReadonly();\n\n #afterNextRender = afterNextRender(() => {\n if (!this.isRendered()) {\n this.nativeElement['__axContext__'] = this;\n this.#isRendered.set(true);\n }\n });\n\n public get nativeElement(): HTMLElement {\n return this.#elementRef.nativeElement;\n }\n}\n","import { NXComponent } from './component.types';\n\n/**\n * Base event class\n * @category Events\n */\nexport class NXEvent<T extends NXComponent = NXComponent> {\n sender: T;\n}\n\n/**\n * Contains native event\n * @category Events\n */\nexport class NXNativeEvent<T extends NXComponent = NXComponent, E extends Event = Event> extends NXEvent<T> {\n nativeEvent: E;\n}\n\n/**\n * Fires each time the user click the element.\n * @category Events\n */\nexport class NXClickEvent<T extends NXComponent = NXComponent> extends NXNativeEvent<T, MouseEvent> {}\n","import { AXHtmlUtil } from '@acorex/core/utils';\nimport { Component, model, output } from '@angular/core';\nimport { NXComponent } from './component.types';\n\n@Component({\n template: '',\n})\nexport abstract class NXInteractiveComponent extends NXComponent {\n disabled = model<boolean>(false);\n tabIndex = model<number>(0);\n\n onFocus = output();\n onBlur = output();\n\n focus() {\n AXHtmlUtil.focusElement(this.nativeElement);\n }\n\n blur() {\n AXHtmlUtil.blurElement(this.nativeElement);\n }\n\n hasFocus(): boolean {\n return AXHtmlUtil.hasFocus(this.nativeElement);\n }\n}\n","import { Component, model } from '@angular/core';\nimport { AXStyleLookType } from '../../classes/styles.class';\n\n@Component({\n template: '',\n})\nexport abstract class NXLookComponent {\n look = model<AXStyleLookType>('solid');\n}\n","import { Component, model, output } from '@angular/core';\n\n@Component({\n template: '',\n})\nexport abstract class NXValueComponent {\n readonly = model<boolean>();\n name = model<string>();\n value = model();\n\n onValueChanged = output();\n}\n","import { clone, flatten } from 'lodash-es';\n\nconst defaultOffset = 3;\n\nexport type AXPlacement =\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'end'\n | 'end-top'\n | 'end-bottom'\n | 'start'\n | 'start-top'\n | 'start-bottom';\nexport type AXPlacementType = AXConnectedPosition | AXConnectedPosition[] | AXPlacement | AXPlacement[];\n\nexport function convertToPlacement(value: AXPlacementType): AXConnectedPosition[] {\n const result: AXConnectedPosition[] = [];\n if (value == null) return result;\n if (Array.isArray(value)) {\n const list = flatten(value.map((m) => convertToPlacement(m)).filter((m) => m != null)).map((m) => clone(m));\n result.push(...list);\n } else {\n if (typeof value === 'string') {\n const p = AX_PLACEMENT_MAP[value];\n if (p) {\n result.push(...[clone(p.origin), ...clone(p.alts)]);\n }\n } else {\n if ('originX' in value && 'originY' in value) {\n result.push(clone(value));\n }\n }\n }\n return result;\n}\n\nexport interface AXConnectedPosition {\n originX: 'start' | 'center' | 'end';\n originY: 'top' | 'center' | 'bottom';\n overlayX: 'start' | 'center' | 'end';\n overlayY: 'top' | 'center' | 'bottom';\n weight?: number;\n offsetX?: number;\n offsetY?: number;\n}\n\nexport const AX_PLACEMENT_TOP: AXConnectedPosition = {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_TOP_START: AXConnectedPosition = {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -defaultOffset,\n};\nexport const AX_PLACEMENT_TOP_END: AXConnectedPosition = {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_BOTTOM: AXConnectedPosition = {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: defaultOffset,\n};\n\nexport const AX_PLACEMENT_BOTTOM_START: AXConnectedPosition = {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: defaultOffset,\n};\n\nexport const AX_PLACEMENT_BOTTOM_END: AXConnectedPosition = {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: defaultOffset,\n};\n\nexport const AX_PLACEMENT_START: AXConnectedPosition = {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_START_TOP: AXConnectedPosition = {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_START_BOTTOM: AXConnectedPosition = {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_END: AXConnectedPosition = {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: defaultOffset,\n};\n\nexport const AX_PLACEMENT_END_TOP: AXConnectedPosition = {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: defaultOffset,\n};\n\nexport const AX_PLACEMENT_END_BOTTOM: AXConnectedPosition = {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: defaultOffset,\n};\n\nexport const AX_PLACEMENT_MAP: {\n [key: string]: { origin: AXConnectedPosition; alts?: AXConnectedPosition[] };\n} = {\n top: {\n origin: AX_PLACEMENT_TOP,\n alts: [AX_PLACEMENT_BOTTOM, AX_PLACEMENT_TOP_START, AX_PLACEMENT_TOP_END],\n },\n 'top-start': {\n origin: AX_PLACEMENT_TOP_START,\n alts: [AX_PLACEMENT_BOTTOM_START, AX_PLACEMENT_TOP_END, AX_PLACEMENT_BOTTOM_END],\n },\n 'top-end': {\n origin: AX_PLACEMENT_TOP_END,\n alts: [AX_PLACEMENT_BOTTOM_END, AX_PLACEMENT_TOP_START, AX_PLACEMENT_BOTTOM_START],\n },\n bottom: {\n origin: AX_PLACEMENT_BOTTOM,\n alts: [AX_PLACEMENT_TOP, AX_PLACEMENT_BOTTOM_START, AX_PLACEMENT_BOTTOM_END],\n },\n 'bottom-start': {\n origin: AX_PLACEMENT_BOTTOM_START,\n alts: [AX_PLACEMENT_TOP_START, AX_PLACEMENT_BOTTOM_END, AX_PLACEMENT_TOP_END],\n },\n 'bottom-end': {\n origin: AX_PLACEMENT_BOTTOM_END,\n alts: [AX_PLACEMENT_TOP_END, AX_PLACEMENT_BOTTOM_START, AX_PLACEMENT_TOP_START],\n },\n end: {\n origin: AX_PLACEMENT_END,\n alts: [AX_PLACEMENT_START, AX_PLACEMENT_END_TOP, AX_PLACEMENT_END_BOTTOM],\n },\n 'end-top': {\n origin: AX_PLACEMENT_END_TOP,\n alts: [AX_PLACEMENT_START_TOP, AX_PLACEMENT_END_BOTTOM, AX_PLACEMENT_START_BOTTOM],\n },\n 'end-bottom': {\n origin: AX_PLACEMENT_END_BOTTOM,\n alts: [AX_PLACEMENT_START_BOTTOM, AX_PLACEMENT_END_TOP, AX_PLACEMENT_START_TOP],\n },\n start: {\n origin: AX_PLACEMENT_START,\n alts: [AX_PLACEMENT_END, AX_PLACEMENT_START_TOP, AX_PLACEMENT_START_BOTTOM],\n },\n 'start-top': {\n origin: AX_PLACEMENT_START_TOP,\n alts: [AX_PLACEMENT_END_TOP, AX_PLACEMENT_START_BOTTOM, AX_PLACEMENT_END_BOTTOM],\n },\n 'start-bottom': {\n origin: AX_PLACEMENT_START_BOTTOM,\n alts: [AX_PLACEMENT_END_BOTTOM, AX_PLACEMENT_START_TOP, AX_PLACEMENT_END_TOP],\n },\n};\n","/**\n * A token that specifies the selection mode of component.\n */\n\nexport type AXSelectionMode = 'single' | 'multiple' | 'none';\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class AXDomService {\n generateElementId(): string {\n const dateString = Date.now().toString(36);\n const randomness = Math.random().toString(36).substr(2);\n return dateString + randomness;\n }\n}\n","import { ChangeDetectorRef, ElementRef, EventEmitter, Injectable, ViewContainerRef, inject } from '@angular/core';\nimport { AXOptionChangedEvent } from '../classes/events.class';\nimport { AXDomService } from '../services/dom.service';\n\nexport type MXComponentOptionChanging<T = any> = { name: string; value?: T };\nexport type MXComponentOptionChanged<T = any> = MXComponentOptionChanging<T>;\n\nexport type MXComponentSetOption<T> = {\n name: string;\n value?: T;\n afterCallback?: (oldValue?: T, newValue?: T) => void;\n beforeCallback?: (oldValue?: T, newValue?: T) => void;\n};\n\nexport type AXComponentState = 'clear' | 'success' | 'error';\n\n@Injectable()\nexport abstract class MXBaseComponent {\n private _cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\n private _elementRef: ElementRef = inject(ElementRef);\n private _viewRef: ViewContainerRef = inject(ViewContainerRef);\n private _domService = inject(AXDomService);\n\n private _id: string = this._domService.generateElementId();\n public get id(): string {\n return this._id;\n }\n public set id(v: string) {\n this._id = v;\n }\n\n protected get cdr(): ChangeDetectorRef {\n return this._cdr;\n }\n\n /**\n * Gets the host HTML element of the component.\n *\n * @returns T - The native DOM element associated with this component.\n */\n public getHostElement<T = HTMLElement>(): T {\n return this._elementRef?.nativeElement as T;\n }\n\n protected getViewContainer(): ViewContainerRef {\n return this._viewRef;\n }\n\n protected internalOptionChanging(option: MXComponentOptionChanging): any {\n return option?.value;\n }\n\n protected internalOptionChanged(option: MXComponentOptionChanged): void {}\n /**\n * @ignore\n */\n protected ngOnInit(): void {\n (this.getHostElement() as any).__axContext__ = this;\n }\n\n /**\n * Fired when an option related to the component changes.\n *\n * @event\n */\n public onOptionChanged: EventEmitter<AXOptionChangedEvent> = new EventEmitter<AXOptionChangedEvent>();\n\n /**\n * Sets a component option with optional lifecycle callbacks.\n *\n * @param option - The option configuration containing the name, value and optional before/after callbacks.\n */\n public setOption<T = any>(option: MXComponentSetOption<T>) {\n const oldValue = this[option.name];\n let newValue = this.internalOptionChanging({\n name: option.name,\n value: option.value,\n });\n if (option.beforeCallback) {\n newValue = option.beforeCallback(oldValue, newValue);\n }\n //TODO : check real changes if value is object\n if (oldValue != newValue) {\n this[`_${option.name}`] = option.value;\n this.onOptionChanged.emit({\n component: this,\n name: option.name,\n newValue,\n oldValue,\n });\n const emitter = this[`${option.name}Change`] as EventEmitter<any>;\n emitter?.emit(newValue);\n this.internalOptionChanged({ name: option.name, value: newValue });\n }\n if (option.afterCallback) option.afterCallback(oldValue, newValue);\n }\n}\n","import { AXHtmlUtil } from '@acorex/core/utils';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { EventEmitter } from '@angular/core';\nimport { noop } from 'rxjs';\nimport { AXFocusEvent } from '../classes/events.class';\nimport { MXBaseComponent } from './base-component.class';\n\nexport class MXInteractiveComponent extends MXBaseComponent {\n /**\n * @ignore\n */\n protected onTouchedCallback: () => void = noop;\n\n /**\n * Registers a touched callback function (ControlValueAccessor method).\n *\n * @param fn - The callback function to register.\n */\n registerOnTouched(fn: () => void): void {\n this.onTouchedCallback = fn;\n }\n\n private _touched = false;\n /**\n * Indicates whether the component has been touched.\n *\n */\n public get touched(): boolean {\n return this._touched;\n }\n\n /**\n * @ignore\n */\n\n protected markAsTouched() {\n if (!this.touched) {\n this.onTouchedCallback();\n this._touched = true;\n }\n }\n\n /**\n * Emits an event whenever the disabled state of the component changes.\n *\n * @event\n */\n disabledChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n private _disabled: boolean | null = null;\n /**\n * If set to true, it disables the component.\n */\n public get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n value = coerceBooleanProperty(value);\n this.setOption({\n name: 'disabled',\n value,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n\n /**\n * Sets the disabled state of the component.\n *\n * @param isDisabled - Whether the component should be disabled.\n */\n // setDisabledState(isDisabled: boolean): void {\n // this.disabled = isDisabled;\n // }\n\n _tabIndex = 0;\n /**\n * Specifies the tabindex of the component.\n */\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n set tabIndex(value: number) {\n this.setOption({\n name: 'tabIndex',\n value: value != null ? coerceNumberProperty(value) : 0,\n });\n }\n\n /**\n * Fires each time the component gets focused.\n * @event\n */\n onFocus: EventEmitter<AXFocusEvent> = new EventEmitter<AXFocusEvent>();\n\n protected emitOnFocusEvent(e?: FocusEvent): void {\n this.onFocus.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n });\n }\n\n /**\n * Fires each time the component gets blurred.\n * @event\n */\n onBlur: EventEmitter<AXFocusEvent> = new EventEmitter<AXFocusEvent>();\n\n protected emitOnBlurEvent(e?: FocusEvent): void {\n this.markAsTouched();\n this.onBlur.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n });\n }\n\n // /**\n // * Fires each time the user clicks the button.\n // * @event\n // */\n // onClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\n\n // protected emitOnClickEvent(e: MouseEvent): void {\n // this.onClick.emit({\n // component: this,\n // htmlElement: this.getHostElement(),\n // nativeEvent: e,\n // });\n // }\n\n /**\n * Focuses the component.\n */\n focus(): void {\n AXHtmlUtil.focusElement(this.getHostElement());\n }\n\n /**\n * Removes focus from the component.\n */\n blur(): void {\n AXHtmlUtil.blurElement(this.getHostElement());\n }\n\n /**\n * Checks if the component is focused or has any focused element.\n *\n * @returns boolean - True if the component has focus.\n */\n hasFocus(): boolean {\n return AXHtmlUtil.hasFocus(this.getHostElement());\n }\n\n // private _focused = signal(false);\n\n // protected markAsFocused() {\n // this._focused.set(true);\n // }\n\n // protected markAsBlured() {\n // this._focused.set(false);\n // }\n}\n","import { isBrowser } from '@acorex/core/platform';\nimport { AXValidationService, AXValidationSummary } from '@acorex/core/validation';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { isPlatformBrowser } from '@angular/common';\nimport { DOCUMENT, EventEmitter, Injectable, PLATFORM_ID, inject } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { cloneDeep, isEqual, omit } from 'lodash-es';\nimport { noop } from 'rxjs';\nimport { AXFormValidationRule } from '../classes/components.class';\nimport { AXValueChangedEvent } from '../classes/events.class';\nimport { AXComponentState } from './base-component.class';\nimport { MXInteractiveComponent } from './interactive-component.class';\n\n@Injectable()\nexport class MXValueComponent<T = any> extends MXInteractiveComponent implements ControlValueAccessor {\n /**\n * Fires each time the user press a key.\n * @event\n */\n onValueChanged: EventEmitter<AXValueChangedEvent<any>> = new EventEmitter<AXValueChangedEvent<any>>();\n\n /**\n * @deprecated The event should not be used, use ngModelChange instead\n */\n valueChange: EventEmitter<any> = new EventEmitter<any>();\n\n readonlyChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n private _readonly: boolean | null = null;\n /**\n * If set to true, user cannot change the value of component.\n */\n get readonly() {\n return this._readonly;\n }\n set readonly(value: boolean) {\n value = coerceBooleanProperty(value);\n this.setOption({\n name: 'readonly',\n value,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n\n private _name: string;\n get name() {\n return this._name;\n }\n set name(value: string) {\n this._name = value;\n }\n\n private _dirty = false;\n public get dirty() {\n return this._dirty;\n }\n\n markAsDirty() {\n this._dirty = true;\n }\n\n private _isUserInteraction = false;\n\n initValue: T;\n defaultValue: T;\n\n private _value: T;\n /**\n * @deprecated The property should not be used, use ngModel instead\n */\n get value(): T {\n return this.internalGetValue(this._value) ?? this.defaultValue;\n }\n set value(v: T) {\n v = this.internalSetValue(v);\n const old = cloneDeep(this.value);\n\n if (v === null || v === undefined || v === '' || (Array.isArray(v) && v.length === 0)) {\n this.setState('clear');\n if (old === null || old === undefined || old === '' || (Array.isArray(old) && old.length === 0)) {\n return;\n }\n }\n\n if (!isEqual(old, v)) {\n this._value = v;\n this.emitOnValueChangedEvent(old, this.value);\n\n this.internalValueChanged(this.value);\n }\n }\n\n stateChange: EventEmitter<AXComponentState> = new EventEmitter<AXComponentState>();\n\n private _state: AXComponentState = 'clear';\n\n get state(): AXComponentState {\n return this._state;\n }\n\n set state(value: AXComponentState) {\n this.setState(value);\n this.stateChange.emit(value);\n }\n\n protected emitOnValueChangedEvent(oldValue?: any, newValue?: any) {\n this.valueChange.emit(newValue);\n this.onValueChanged.emit({\n component: this,\n value: newValue,\n oldValue: oldValue,\n name: this.name,\n isUserInteraction: this._isUserInteraction,\n });\n this.onChangeCallback(newValue);\n this.cdr.markForCheck();\n this._isUserInteraction = false;\n }\n\n protected internalSetValue(value: any): T {\n return value;\n }\n\n protected internalGetValue(value: any): T {\n return value;\n }\n\n protected internalValueChanged(value: any): void {}\n\n protected override ngOnInit(): void {\n super.ngOnInit();\n //\n this.registerValidation();\n }\n\n protected ngOnDestroy() {\n this.onValueChanged?.unsubscribe();\n this.onOptionChanged?.unsubscribe();\n }\n\n protected registerValidation() {\n const a = this.getHostElement().querySelectorAll('[ax-form-item=\"true\"]');\n a.forEach((c) => {\n c.removeAttribute('ax-form-item');\n });\n this.getHostElement().setAttribute('ax-form-item', 'true');\n }\n\n protected document = inject(DOCUMENT);\n protected platformID = inject(PLATFORM_ID);\n private validationService = inject(AXValidationService);\n\n public validationRulesChange: EventEmitter<AXFormValidationRule[]> = new EventEmitter<AXFormValidationRule[]>();\n private validationRules: AXFormValidationRule[] = [];\n\n public get isRequired(): boolean {\n return this.validationRules?.some((c) => c.rule == 'required');\n }\n\n /**\n * Adds a validation rule.\n *\n * @param rule - The validation rule to add.\n */\n addValidationRule(rule: AXFormValidationRule): void {\n this.validationRules.push(rule);\n this.validationRulesChange.emit(this.validationRules);\n }\n\n /**\n * Removes a validation rule.\n *\n * @param ruleToRemove - The validation rule to remove.\n */\n removeValidationRule(ruleToRemove: AXFormValidationRule): void {\n this.validationRules = this.validationRules.filter((r) => {\n if (r.rule !== ruleToRemove.rule) {\n return true;\n }\n // Create copies of options without the 'title' property\n const rOptionsSanitized = omit(r.options, ['title']);\n const ruleToRemoveOptionsSanitized = omit(ruleToRemove.options, ['title']);\n\n return !isEqual(rOptionsSanitized, ruleToRemoveOptionsSanitized);\n });\n this.validationRulesChange.emit(this.validationRules);\n this.setState('clear');\n }\n\n /**\n * Validates the component.\n *\n * @returns Promise<AXValidationSummary> - Validation result.\n */\n async validate(): Promise<AXValidationSummary> {\n const container_classes = ['ax-editor-container', 'ax-checkbox', 'ax-radio'];\n const container = container_classes.some((c) => this.getHostElement().classList.contains(c))\n ? this.getHostElement()\n : this.getHostElement().querySelector('.ax-editor-container');\n const formField = container?.closest('ax-form-field') || container?.closest('ax-checkbox');\n const label = formField?.querySelector('ax-label') || formField?.querySelector('label');\n //\n const rules = this.validationService.ruleFor(this.value);\n this.validationRules.forEach((r) => {\n r.options['title'] = (label?.firstChild?.textContent ?? this.name)?.replace('*', '').trim();\n rules.addRule(r.rule as any, r.options);\n });\n const result = await rules.validate();\n if (result.result) {\n this.setState('clear');\n } else {\n const message = result.rules.find((c) => !c.result).message;\n this.setState('error', message);\n }\n return result;\n }\n\n protected setState(state: AXComponentState, ...args) {\n //TODO: find a better solution\n if (isBrowser()) {\n const container = this.getHostElement().classList.contains('ax-editor-container')\n ? this.getHostElement()\n : this.getHostElement().querySelector('.ax-editor-container');\n const formField = container?.closest('ax-form-field');\n const label = formField?.querySelector('ax-label') || formField?.querySelector('label');\n let target = container || this.getHostElement().firstElementChild;\n if (target?.querySelector('.ax-error-container')) {\n target = target.querySelector('.ax-error-container');\n }\n const parent = target?.parentElement;\n if (!target || !parent) return;\n\n switch (state) {\n case 'clear':\n this._state = 'clear';\n if (parent.querySelector('span.ax-error-message')) {\n parent.removeChild(parent.querySelector('span.ax-error-message')!);\n }\n label?.classList.remove('ax-state-error');\n target.classList.remove('ax-state-error', 'ax-state-success');\n break;\n case 'success':\n this.setState('clear');\n target.classList.add('ax-state-success');\n this._state = 'success';\n break;\n case 'error':\n this.setState('clear');\n if (args[0] && isPlatformBrowser(this.platformID)) {\n const span = this.document.createElement('span');\n span.innerHTML = args[0];\n span.classList.add('ax-error-message');\n parent.appendChild(span);\n }\n label?.classList.add('ax-state-error');\n target.classList.add('ax-state-error');\n\n this._state = 'error';\n break;\n }\n this.cdr.markForCheck();\n }\n }\n\n protected onChangeCallback: (value: T) => void = noop;\n\n /**\n * Registers a change callback function (ControlValueAccessor method).\n *\n * @param fn - The callback function to register.\n */\n registerOnChange(fn: (value: T) => void): void {\n this.onChangeCallback = fn;\n }\n\n /**\n * Writes a value to the component (ControlValueAccessor method).\n *\n * @param value - The value to write.\n */\n writeValue(value: T): void {\n this.value = value;\n }\n\n /**\n * Commits a value with optional user interaction flag.\n *\n * @param value - The value to commit.\n * @param u - Optional flag indicating if this is a user interaction.\n */\n public commitValue(value: T, u = false): void {\n if (u) {\n this.markAsTouched();\n this.markAsDirty();\n this._isUserInteraction = true;\n }\n this.writeValue(value);\n }\n\n /**\n * Resets the component value.\n *\n * @param e - Optional flag indicating if this is a user interaction.\n */\n reset(e = false): void {\n this.commitValue(null, e);\n }\n\n /**\n * Resets validation errors.\n */\n resetErrors(): void {\n this.setState('clear');\n }\n}\n","/**\n * Contains native event\n * @category Events\n */\nexport class AXEvent {\n /**\n * The sender component\n */\n component: any;\n /**\n * The root native element\n */\n htmlElement?: HTMLElement;\n\n isUserInteraction?: boolean = false;\n}\n\n/**\n * Contains native event\n * @category Events\n */\nexport class AXHtmlEvent<E extends Event = Event> extends AXEvent {\n nativeEvent?: E;\n}\n\n/**\n * Contains native event\n * @category Events\n */\nexport class AXValueChangedEvent<T = any> extends AXEvent {\n name?: string;\n value?: T;\n oldValue?: T;\n}\n\n/**\n * Contains native event\n * @category Events\n */\nexport class AXOptionChangedEvent<T = any> extends AXEvent {\n name?: string;\n newValue?: T;\n oldValue?: T;\n}\n\n/**\n * Fires each time the user click the element.\n * @category Events\n */\nexport class AXClickEvent extends AXHtmlEvent<MouseEvent> {\n /**\n * uses for extra data\n */\n data?: any = null;\n\n override nativeEvent?: any = null;\n}\n\n/**\n * Fires each time the user click the element.\n * @category Events\n */\nexport class AXButtonClickEvent extends AXClickEvent {\n name: string;\n}\n\n/**\n * Fires each time the user click the element.\n * @category Events\n */\nexport class AXItemClickEvent<T = any> extends AXClickEvent {\n name?: string;\n item: T;\n}\n\n/**\n * Fires each time the user select the element.\n * @category Events\n */\nexport class AXItemSelectedEvent<T = any> extends AXEvent {\n item: T;\n}\n\n/**\n * Fires each time the component gets focused.\n * @category Events\n */\nexport class AXFocusEvent extends AXHtmlEvent<FocusEvent> { }\n\n/**\n * Fires each time an item or multiple items selected by the user or value.\n * @category Events\n */\nexport class AXSelectionValueChangedEvent extends AXValueChangedEvent<any | any[]> {\n override value?: any = null;\n override oldValue?: any = null;\n selectedKeys?: any[] = [];\n selectedItems?: any[] = [];\n}\n\n/**\n * Contains range start & end values\n * @category Events\n */\nexport class AXRangeChangedEvent<T> extends AXEvent {\n /**\n * The range start value\n */\n start?: T;\n /**\n * The range end value\n */\n end?: T;\n}\n","import { AXUnsubscriber } from '@acorex/core/utils';\nimport { AXValidationRuleOptions, AXValidationSummary } from '@acorex/core/validation';\nimport { EventEmitter, Injectable } from '@angular/core';\nimport { isEqual } from 'lodash-es';\nimport { MXValueComponent } from '../components/value-component.class';\nimport { AXEvent, AXHtmlEvent, AXValueChangedEvent } from './events.class';\n\nexport const TAB_META_KEY = '__meta__';\n\nexport class AXComponentCloseEvent extends AXEvent {\n data?: any;\n}\nexport class AXComponentClosing {\n cancel = false;\n data?: any;\n}\n\nexport class AXComponentResult {\n sender: any;\n data?: any;\n}\n\nexport interface AXFormValidationRule {\n rule: string;\n disabled: boolean;\n options?: AXValidationRuleOptions;\n}\n\n/**\n * Defines a CSS class—or multiple classes separated by spaces— which are applied to a span element inside the Button. Allows the usage of custom icons after the primary text.\n */\nexport class AXComponentClosedPromise extends Promise<AXComponentResult> {\n private closeMethod: () => void;\n constructor(\n executor: (\n resolve: (value?: AXComponentResult | PromiseLike<AXComponentResult>) => void,\n reject: (reason?: any) => void,\n ) => void,\n ) {\n super(executor);\n }\n\n public close() {\n if (this.closeMethod) {\n this.closeMethod();\n }\n }\n}\n\n@Injectable()\nexport abstract class AXComponent {}\n\n@Injectable()\nexport abstract class AXClosableComponent extends AXComponent {\n abstract close(): void;\n abstract closeAll(): void;\n}\n\n@Injectable()\nexport abstract class AXClearableComponent extends AXComponent {\n abstract reset(u: boolean): void;\n abstract get readonly(): boolean;\n abstract get disabled(): boolean;\n abstract get value(): unknown;\n}\n\n@Injectable()\nexport abstract class AXSearchableComponent extends AXComponent {\n abstract search(value: string): void;\n}\n\n@Injectable()\nexport abstract class AXValuableComponent extends AXComponent {\n abstract get isRequired(): boolean;\n validationRulesChange: EventEmitter<AXFormValidationRule[]>;\n abstract get name(): string;\n abstract get value(): unknown;\n abstract onValueChanged: EventEmitter<AXValueChangedEvent<unknown>>;\n abstract commitValue(value: unknown, u: boolean);\n\n abstract addValidationRule(rule: AXFormValidationRule);\n\n abstract removeValidationRule(rule: AXFormValidationRule);\n\n abstract validate(): Promise<AXValidationSummary>;\n abstract reset(e: boolean): void;\n abstract resetErrors(): void;\n}\n\n@Injectable()\nexport abstract class AXFocusableComponent extends AXComponent {\n abstract focus();\n}\n\nexport interface AXPagedComponentInterface {\n goToPage(page: number);\n get totalCount(): number;\n get pageSize(): number;\n onPageChanged: EventEmitter<AXValueChangedEvent<number>>;\n}\n\n@Injectable()\nexport abstract class AXPagedComponent extends AXComponent implements AXPagedComponentInterface {\n abstract goToPage(page: number);\n abstract get totalCount(): number;\n abstract pageSize: number;\n abstract onPageChanged: EventEmitter<AXValueChangedEvent<number>>;\n}\n\n@Injectable()\nexport abstract class AXAutocompleteParentComponent<T> extends MXValueComponent<T> {\n oldInputEmitValue: T;\n abstract unsubscriber: AXUnsubscriber;\n\n onKeyDown = new EventEmitter<AXHtmlEvent<KeyboardEvent>>();\n onItemSelected = new EventEmitter<AXValueChangedEvent<T>>();\n\n emitOnItemSelected(value: T, isUserInteraction = false) {\n if (isEqual(value, this.oldInputEmitValue)) return;\n this.onItemSelected.emit({\n value,\n name: this.name,\n component: this,\n isUserInteraction,\n oldValue: this.oldInputEmitValue,\n htmlElement: this.getHostElement(),\n });\n this.oldInputEmitValue = value;\n }\n}\n","import { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport { BehaviorSubject, Observable, Subscription, debounceTime, distinctUntilChanged } from 'rxjs';\nimport { AXDataSource } from './datasource.class';\n\nexport interface AXDataListQuery {\n take?: number;\n skip?: number;\n searchQuery?: string;\n}\nexport interface AXDataListFetchCallbackResult {\n items: Array<any>;\n total: number;\n}\n\nexport type AXDataListFetchDataCallback = (e: AXDataListQuery) => Promise<AXDataListFetchCallbackResult>;\n\nexport type AXDataListItems = Array<any> | AXDataListFetchDataCallback;\n\nexport class AXListDataSource<T = unknown> extends DataSource<T> {\n private debounceTime = 0;\n private subscription = new Subscription();\n public source: AXDataSource<T>;\n private dataStream: BehaviorSubject<T[]>;\n\n private _range: { start: number; end: number } = { start: 0, end: 0 };\n public get range(): { start: number; end: number } {\n return this._range;\n }\n\n /**\n * @ignore\n */\n constructor(private config: { source: AXDataSource<T>; debounceTime?: number }) {\n super();\n this.source = config.source;\n if (config.debounceTime) this.debounceTime = config.debounceTime;\n //\n this.dataStream = new BehaviorSubject<T[]>(this.config.source.cachedItems);\n this.source.onChanged.subscribe((data) => {\n this.dataStream.next(data.cachedItems);\n });\n }\n\n connect(collectionViewer: CollectionViewer): Observable<T[]> {\n this.subscription.add(\n collectionViewer.viewChange\n .pipe(debounceTime(this.debounceTime))\n .pipe(distinctUntilChanged())\n .subscribe((range) => {\n this._range = range;\n const startPage = this.getPageForIndex(range.start);\n const endPage = this.getPageForIndex(range.end - 1);\n for (let i = startPage; i <= endPage; i++) {\n this.source.setPage(i);\n }\n }),\n );\n return this.dataStream;\n }\n\n disconnect(): void {\n this.subscription.unsubscribe();\n }\n\n private getPageForIndex(index: number): number {\n return Math.floor(index / this.source.config.pageSize);\n }\n\n refresh() {\n this.dataStream.next(new Array(this.source.pageSize));\n this.source.refresh();\n }\n}\n","import { Subject } from 'rxjs';\n\nexport type AXDataSourceOperator = {\n type: 'equal' | 'isNull' | 'isEmpty' | 'lt' | 'lte' | 'gt' | 'gte' | 'startsWith' | 'endsWith' | 'contains' | 'in';\n negative?: boolean;\n};\nexport type AXFilterLogic = 'and' | 'or';\nexport type AXSortOrder = 'asc' | 'desc';\n\nexport type AXDataSourceFilterOption = {\n field?: string;\n value?: unknown;\n operator?: AXDataSourceOperator;\n logic?: AXFilterLogic;\n filters?: AXDataSourceFilterOption[];\n};\nexport type AXDataSourceSortOption = { field: string; dir: 'asc' | 'desc' };\n\nexport interface AXDataSourceQuery {\n take: number;\n skip: number;\n filter?: AXDataSourceFilterOption;\n sort: AXDataSourceSortOption[];\n}\nexport interface AXDataSourceCallbackResult<T> {\n items: Array<T>;\n total: number;\n}\n\nexport type AXDataSourceLoadCallback<T> = (e: AXDataSourceQuery) => Promise<AXDataSourceCallbackResult<T>>;\nexport type AXDataSourceByKeyCallback<T> = (key: unknown) => Promise<T>;\n\nexport interface AXDataSourceConfig<T = unknown> {\n key?: string;\n pageSize: number;\n load: AXDataSourceLoadCallback<T>;\n byKey?: AXDataSourceByKeyCallback<T>;\n}\n\nexport interface AXDataSourceChangedEvent<T = unknown> {\n cachedItems: Array<T>;\n items: Array<T>;\n totalCount: number;\n totalPages: number;\n page: number;\n}\nexport interface AXDataSourceItemExpandedEvent<T = unknown> {\n expandedItem: T;\n children: Array<T>;\n}\n\nexport class AXDataSource<T = unknown> {\n config!: AXDataSourceConfig<T>;\n useCache = true;\n\n private _totalCount = 0;\n public get totalCount(): number {\n return this._totalCount;\n }\n\n public get totalPages(): number {\n return Math.ceil(this.totalCount / this.config.pageSize);\n }\n\n public get pageSize(): number {\n return this.config.pageSize;\n }\n\n private _cachedItems: T[];\n public get cachedItems(): T[] {\n return this._cachedItems;\n }\n\n private _items: T[] = [];\n public get items(): T[] {\n return this._items;\n }\n\n private fetchedPages = new Set<number>();\n private _page = 0;\n private _query: AXDataSourceQuery = { skip: 0, take: 0, sort: [] };\n\n public get query(): AXDataSourceQuery {\n return this._query;\n }\n\n public onChanged = new Subject<AXDataSourceChangedEvent<T>>();\n\n public onItemExpanded = new Subject<AXDataSourceItemExpandedEvent<T>>();\n public onItemRefreshChildren = new Subject<{ id: string }>();\n\n public onLoadingChanged = new Subject<boolean>();\n private _isLoading = false;\n public get isLoading(): boolean {\n return this._isLoading;\n }\n\n constructor(config: AXDataSourceConfig<T>) {\n this.config = config;\n this._cachedItems = new Array(this.config.pageSize);\n this._items = new Array(0);\n this._query.take = this.config.pageSize;\n }\n\n private load() {\n const page = this._page;\n if (this.fetchedPages.has(page) && this.useCache) {\n return;\n }\n this.setLoadingState(true);\n this.fetchedPages.add(page);\n this._query.take = this.config.pageSize;\n this._query.skip = page * this.config.pageSize;\n this.config\n .load({ ...this._query })\n .then((result) => {\n if (this._totalCount != result.total) {\n this._cachedItems = new Array(result.total);\n this._totalCount = result.total;\n }\n this._items = result.items;\n this._cachedItems.splice(page * this.config.pageSize, this.config.pageSize, ...result.items);\n const event = {\n cachedItems: this.cachedItems,\n items: this.items,\n page: page,\n totalCount: this.totalCount,\n totalPages: this.totalPages,\n };\n this.onChanged.next(event);\n })\n .finally(() => {\n this.setLoadingState(false);\n });\n }\n\n public async getItemsByFilter(filter: AXDataSourceFilterOption) {\n return await this.config.load({ ...this.query, filter });\n }\n\n private setLoadingState(value: boolean) {\n this._isLoading = value;\n this.onLoadingChanged.next(this._isLoading);\n }\n\n public setPage(page: number) {\n if (this._page != page || this._items.length == 0) {\n this._page = page;\n this.load();\n }\n }\n public setPageSize(pageSize: number) {\n this.config.pageSize = pageSize;\n this.load();\n }\n\n public filter(value: AXDataSourceFilterOption) {\n this._query.filter = value;\n }\n\n public sort(...value: AXDataSourceSortOption[]) {\n this._query.sort = value;\n }\n\n public clearFilter() {\n this._query.filter = null;\n }\n\n public reset() {\n this._query.filter = null;\n this._query.sort = [];\n this._query.skip = 0;\n this._items = new Array(0);\n this._cachedItems = new Array(this.config.pageSize);\n this.fetchedPages.clear();\n this._page = 0;\n this._totalCount = 0;\n }\n\n public refresh(options: { reset?: boolean } = { reset: true }) {\n const currentFilter = this._query.filter;\n const currentSort = this._query.sort;\n if (options.reset) {\n this.reset();\n }\n this._query.filter = currentFilter;\n this._query.sort = currentSort;\n this.load();\n }\n\n find(key: unknown): T | Promise<T> {\n const fromCache = this.cachedItems.find(\n (c) => (!this.config.key && c == key) || (c && this.config.key && c[this.config.key] == key),\n );\n if (fromCache) return fromCache;\n return this.config.byKey ? this.config.byKey(key) : null;\n }\n}\n\nexport function convertArrayToDataSource<T = unknown>(\n items: T[],\n options: { key: string; pageSize: number } = { key: 'id', pageSize: 100 },\n): AXDataSource<T> {\n // Normalize primitives to objects so consumers (e.g., select/list) can rely on\n // value and text fields without triggering extra byKey lookups.\n const normalizedItems: Array<Record<string, unknown>> = (items as Array<unknown>).map((candidate) => {\n const isObjectItem = candidate != null && typeof candidate === 'object';\n if (isObjectItem) {\n return candidate as Record<string, unknown>;\n }\n // For primitive values, create an object with both key and text\n return { [options.key]: candidate as unknown, text: String(candidate ?? '') } as Record<string, unknown>;\n });\n\n const config: AXDataSourceConfig<T> = {\n key: options.key,\n pageSize: options.pageSize,\n load: async (e: AXDataSourceQuery) => {\n const itemsForFilter: Array<Record<string, unknown>> = normalizedItems;\n const resultNormalized = e.filter\n ? applyDataSourceQuery<Record<string, unknown>>(itemsForFilter, e.filter)\n : itemsForFilter;\n const result = resultNormalized as unknown as T[];\n return {\n items: result.slice(e.skip, e.skip + e.take),\n total: resultNormalized.length,\n };\n },\n byKey: async (v: unknown) =>\n // Search in the normalized list (supports primitive and object arrays)\n (normalizedItems as Array<Record<string, unknown>>).find((record) => {\n return record[options.key] == v;\n }) as unknown as T,\n };\n\n\n return new AXDataSource(config);\n}\n\nexport function applyDataSourceQuery<T extends Record<string, unknown>>(items: T[], filter: AXDataSourceFilterOption): T[] {\n if (!filter?.field || filter.value === undefined || filter.value === null) {\n return items; // No filter applied\n }\n\n return items.filter((item) => {\n const itemField = item[filter.field] as string;\n\n if (typeof itemField === 'string' && typeof filter.value === 'string') {\n return itemField.toLowerCase().includes(filter.value.toLowerCase());\n }\n\n return false; // Return false if itemField isn't comparable\n });\n}\n","/**\n * A token that specifies the color style of component.\n */\nexport type AXStyleColorType = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'default';\nexport type AXStyleColorClassType = `ax-${AXStyleColorType}`;\nexport const AX_STYLE_COLOR_TYPES: AXStyleColorType[] = [\n 'primary',\n 'secondary',\n 'success',\n 'warning',\n 'danger',\n 'default',\n];\n\nexport type AXStyleLookType = 'solid' | 'blank' | 'outline' | 'twotone' | 'flat' | 'fill' | 'link' | 'none';\nexport type AXStyleLookClassType = `ax-${AXStyleLookType}`;\nexport type AXStyleInteractiveLookClassType = `${AXStyleLookClassType}-interactive`;\nexport const AX_STYLE_LOOK_TYPES: AXStyleLookType[] = ['solid', 'blank', 'outline', 'twotone', 'flat', 'fill', 'none'];\n\nexport type AXSizeType = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\nexport type AXStyleSizeType = `ax-${AXSizeType}`;\n\nexport type AXLocation =\n | 'bottom-start'\n | 'bottom-center'\n | 'bottom-end'\n | 'top-start'\n | 'top-center'\n | 'top-end'\n | 'center-end'\n | 'center-start';\nexport const AX_LOCATIONS: AXLocation[] = [\n 'bottom-start',\n 'bottom-center',\n 'bottom-end',\n 'top-start',\n 'top-center',\n 'top-end',\n 'center-end',\n 'center-start',\n];\n\nexport type AXSurfaceType = 'lightest' | 'lighter' | 'light' | 'surface' | 'dark' | 'darker' | 'darkest';\n","import { isPlatformBrowser } from '@angular/common';\nimport { AfterViewInit, Directive, DOCUMENT, ElementRef, inject, Input, PLATFORM_ID, Renderer2 } from '@angular/core';\nimport { AXFocusableComponent } from '../classes/components.class';\n\n@Directive({ selector: '[axAutoFocus]' })\nexport class AXAutoFocusDirective implements AfterViewInit {\n private renderer = inject(Renderer2);\n private el = inject<ElementRef<HTMLElement>>(ElementRef);\n _host = inject(AXFocusableComponent, { host: true, self: true, optional: true });\n\n @Input('axAutoFocus')\n public autoFocus?: boolean = true;\n\n @Input('axAutoFocusTime')\n time = 50;\n\n private document = inject(DOCUMENT);\n private platformID = inject(PLATFORM_ID);\n\n ngAfterViewInit(): void {\n this.doFocus();\n }\n\n protected doFocus() {\n if (this.autoFocus) {\n if (this._host) {\n setTimeout(() => {\n this._host.focus();\n }, this.time);\n return;\n }\n const list = ['button', 'input', '[href]', 'select', 'textarea', '[tabindex]'].map(\n (c) => c + ':not([tabindex=\"-1\"])',\n );\n\n const focusable = this.el.nativeElement.querySelector<HTMLElement>(list.join(', ')) ?? this.el.nativeElement;\n\n if (isPlatformBrowser(this.platformID)) {\n const attr = this.document.createAttribute('autofocus');\n focusable.setAttributeNode(attr);\n }\n const hasTabindex = focusable.hasAttribute('tabindex');\n if (!hasTabindex) {\n focusable.setAttribute('tabindex', '0');\n }\n setTimeout(() => {\n focusable.focus();\n }, this.time);\n }\n }\n}\n","import { DOCUMENT, inject, Injectable } from '@angular/core';\nimport { EventManager } from '@angular/platform-browser';\nimport { Observable } from 'rxjs/internal/Observable';\n\ntype Options = {\n /**\n * element - An html element\n */\n element: any;\n /**\n * keys - string of keys like (Control.f)\n */\n keys: string;\n};\n\n@Injectable({ providedIn: 'root' })\nexport class AXHotkeysService {\n private eventManager = inject(EventManager);\n\n private document = inject(DOCUMENT);\n\n defaults: Partial<Options> = {\n element: this.document,\n };\n\n /**\n * Add shortcut\n *\n *\n * @param options\n * @returns Observable\n *\n */\n addShortcut(options: Partial<Options>) {\n const merged = { ...this.defaults, ...options };\n const event = `keydown.${merged.keys}`;\n return new Observable((observer) => {\n const handler = (e: UIEvent) => {\n e.preventDefault();\n observer.next(e);\n };\n if (merged.element) {\n // Todo: check addEventListener is not function\n\n const dispose = this.eventManager.addEventListener(merged.element, event, handler);\n return () => {\n dispose();\n };\n } else {\n return null;\n }\n });\n }\n}\n","import { AfterViewInit, Directive, ElementRef, Input, inject } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { AXComponent } from '../classes/components.class';\nimport { AXHotkeysService } from '../services/hotkey.service';\n\nexport type AXHotKeyAction = { [key: string]: string | Function; parmas?: any };\n\n@Directive({ selector: '[axHotkey]' })\nexport class AXHotkeyDirective implements AfterViewInit {\n private el = inject<ElementRef<HTMLElement>>(ElementRef);\n _host = inject(AXComponent, { host: true, self: true, optional: true });\n private hs = inject(AXHotkeysService);\n\n @Input()\n public axHotkey: string | AXHotKeyAction | AXHotKeyAction[] = '';\n\n private _subs: Subscription[] = [];\n\n ngAfterViewInit(): void {\n if (!this.axHotkey || !this._host) return;\n\n if (typeof this.axHotkey == 'string') {\n this._addDefaultAction(this.axHotkey);\n } else if (typeof this.axHotkey == 'object' && !Array.isArray(this.axHotkey)) {\n this._addHotKeyAction([this.axHotkey as AXHotKeyAction]);\n } else if (Array.isArray(this.axHotkey)) {\n this._addHotKeyAction(this.axHotkey);\n }\n }\n\n private _addDefaultAction(hotkey: string) {\n this._subs.push(\n this.hs.addShortcut({ keys: hotkey }).subscribe(() => {\n ['click', 'toggle', 'open', 'focus'].forEach((a) => {\n if (this._host[a]) {\n this._host[a]();\n return;\n }\n });\n }),\n );\n }\n\n private _addHotKeyAction(hotkeys: AXHotKeyAction[]) {\n hotkeys.forEach((k) => {\n const hotkey = (<unknown>Object.entries(k)[0][0]) as string;\n const action = <unknown>Object.entries(k)[0][1];\n if (!action) this._addDefaultAction(hotkey);\n else {\n this._subs.push(\n this.hs.addShortcut({ keys: hotkey }).subscribe(() => {\n if (typeof action == 'string' && this._host[action]) {\n this._host[action]();\n return;\n }\n if (typeof action == 'function') {\n action();\n return;\n }\n }),\n );\n }\n });\n }\n\n ngOnDestroy() {\n this._subs.forEach((s) => {\n s.unsubscribe();\n });\n }\n}\n","import { AfterViewInit, Directive, ElementRef, Input, inject } from '@angular/core';\nimport { Observable, fromEvent } from 'rxjs';\nimport { exhaustMap, filter, map, pairwise, startWith } from 'rxjs/operators';\n\nexport interface AXScrollPosition {\n scrollHeight: number;\n scrollTop: number;\n clientHeight: number;\n}\n\nconst AX_DEFAULT_SCROLL_POSITION: AXScrollPosition = {\n scrollHeight: 0,\n scrollTop: 0,\n clientHeight: 0,\n};\n\n@Directive({ selector: '[axInfiniteScroller]' })\nexport class AXInfiniteScrollerDirective implements AfterViewInit {\n private elm = inject(ElementRef);\n\n private scrollEvent$: Observable<any>;\n\n private userScrolledDown$: Observable<any>;\n\n private requestOnScroll$: Observable<any>;\n\n @Input()\n scrollCallback: Function;\n\n @Input()\n immediateCallback;\n\n @Input()\n scrollPercent = 70;\n\n ngAfterViewInit() {\n this.registerScrollEvent();\n\n this.streamScrollEvents();\n\n this.requestCallbackOnScroll();\n }\n\n private registerScrollEvent() {\n this.scrollEvent$ = fromEvent(this.elm.nativeElement, 'scroll');\n }\n\n private streamScrollEvents() {\n this.userScrolledDown$ = this.scrollEvent$.pipe(\n map(\n (e: any): AXScrollPosition => ({\n scrollHeight: e.target.scrollHeight,\n scrollTop: e.target.scrollTop,\n clientHeight: e.target.clientHeight,\n }),\n ),\n pairwise(),\n filter((positions) => this.isUserScrollingDown(positions) && this.isScrollExpectedPercent(positions[1])),\n );\n }\n\n private requestCallbackOnScroll() {\n this.requestOnScroll$ = this.userScrolledDown$;\n\n if (this.immediateCallback) {\n this.requestOnScroll$ = this.requestOnScroll$.pipe(\n startWith([AX_DEFAULT_SCROLL_POSITION, AX_DEFAULT_SCROLL_POSITION]),\n );\n }\n\n this.requestOnScroll$.pipe(\n exhaustMap(() => {\n return this.scrollCallback();\n }),\n );\n }\n\n private isUserScrollingDown = (positions) => {\n return positions[0].sT < positions[1].sT;\n };\n\n private isScrollExpectedPercent = (position) => {\n return (position.sT + position.cH) / position.sH > this.scrollPercent / 100;\n };\n}\n","import { Directive, ElementRef, OnDestroy, inject } from '@angular/core';\n\n@Directive({ selector: '[axResponsive]' })\nexport class AXResponsiveDirective implements OnDestroy {\n private _elementRef = inject<ElementRef<HTMLDivElement>>(ElementRef);\n\n private _observer: ResizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target) {\n const e = entry.target;\n const elements = [e, ...Array.from(e.querySelectorAll(`[class*='sm:']`))];\n elements\n .map((c) => ({\n element: c,\n classList: Array.from(c.classList)\n .filter((c) => c.includes('sm'))\n .map((c) => c.slice(3)),\n }))\n .forEach((c) => {\n e.clientWidth < 320 ? c.element.classList.add(...c.classList) : c.element.classList.remove(...c.classList);\n });\n }\n }\n });\n\n constructor() {\n const _elementRef = this._elementRef;\n\n this._observer.observe(_elementRef.nativeElement);\n }\n\n ngOnDestroy() {\n this._observer?.disconnect();\n this._observer?.unobserve(this._elementRef.nativeElement);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXAutoFocusDirective } from './directives/auto-focus.directive';\nimport { AXHotkeyDirective } from './directives/hotkey.directive';\nimport { AXInfiniteScrollerDirective } from './directives/infinite-scroll.directive';\nimport { AXResponsiveDirective } from './directives/responsive.directive';\nimport { AXHotkeysService } from './services/hotkey.service';\n@NgModule({\n imports: [AXResponsiveDirective, AXInfiniteScrollerDirective, AXAutoFocusDirective, AXHotkeyDirective],\n exports: [AXResponsiveDirective, AXInfiniteScrollerDirective, AXAutoFocusDirective, AXHotkeyDirective],\n providers: [AXHotkeysService],\n})\nexport class AXCommonModule {}\n","import { EventEmitter } from '@angular/core';\nimport { AXStyleColorClassType, AXStyleColorType } from '../classes/styles.class';\nimport { MXBaseComponent } from './base-component.class';\n\nexport class MXColorComponent extends MXBaseComponent {\n colorChange: EventEmitter<AXStyleColorType> = new EventEmitter();\n private _color: AXStyleColorType | string = 'default';\n /**\n * Predefined color schemes\n */\n get color(): AXStyleColorClassType | string {\n switch (this._color) {\n case 'primary':\n return 'ax-primary';\n case 'secondary':\n return 'ax-secondary';\n case 'success':\n return 'ax-success';\n case 'warning':\n return 'ax-warning';\n case 'danger':\n return 'ax-danger';\n case 'default':\n return 'ax-default';\n default:\n return this._color;\n }\n }\n set color(value: AXStyleColorType | string) {\n this.setOption({\n name: 'color',\n value,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { AXStyleInteractiveLookClassType, AXStyleLookClassType, AXStyleLookType } from '../classes/styles.class';\nimport { MXBaseComponent } from './base-component.class';\n\n@Injectable()\nexport abstract class MXLookableComponent {\n look: AXStyleLookType;\n}\n\nexport class MXLookComponent extends MXBaseComponent {\n lookChange: EventEmitter<AXStyleLookType> = new EventEmitter();\n private _look?: AXStyleLookType | string = 'solid';\n /**\n * Predefined look schemes\n */\n get look(): AXStyleLookClassType | string {\n switch (this._look) {\n case 'solid':\n return 'ax-solid';\n case 'blank':\n return 'ax-blank';\n case 'outline':\n return 'ax-outline';\n case 'twotone':\n return 'ax-twotone';\n case 'flat':\n return 'ax-flat';\n case 'fill':\n return 'ax-fill';\n case 'link':\n return 'ax-link';\n case 'none':\n return 'ax-none';\n default:\n return this._look;\n }\n }\n get interactiveLook(): AXStyleInteractiveLookClassType | string {\n switch (this._look) {\n case 'solid':\n return 'ax-solid-interactive';\n case 'blank':\n return 'ax-blank-interactive';\n case 'outline':\n return 'ax-outline-interactive';\n case 'twotone':\n return 'ax-twotone-interactive';\n case 'flat':\n return 'ax-flat-interactive';\n case 'fill':\n return 'ax-fill-interactive';\n case 'link':\n return 'ax-link-interactive';\n case 'none':\n return 'ax-none-interactive';\n default:\n return this._look;\n }\n }\n set look(value: AXStyleLookType | string) {\n this.setOption({\n name: 'look',\n value,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n}\n","import { classes } from 'polytype';\nimport { MXColorComponent } from './color-component.class';\nimport { MXLookComponent } from './look-component.class';\n\nexport class MXColorLookComponent extends classes(MXColorComponent, MXLookComponent) {}\n","import { EventEmitter } from '@angular/core';\nimport { classes } from 'polytype';\nimport { MXColorLookComponent } from './colorlook-component.class';\nimport { MXInteractiveComponent } from './interactive-component.class';\n\nexport class MXButtonBaseComponent extends classes(MXInteractiveComponent, MXColorLookComponent) {\n /**\n * Emits an event when the text associated with the button changes.\n *\n * @event\n */\n textChange: EventEmitter<string> = new EventEmitter();\n private _text: string;\n /**\n * Defines the primary text to show inside the button.\n */\n get text(): string {\n return this._text;\n }\n set text(v: string) {\n this.setOption({\n name: 'text',\n value: v,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n\n /**\n * Emits an event when the toggleable state of the action sheet changes.\n *\n * @event\n */\n toggleableChange: EventEmitter<boolean> = new EventEmitter();\n private _toggleable?: boolean = false;\n /**\n * Provides visual styling that indicates if the Button is active\n */\n get toggleable(): boolean {\n return this._toggleable;\n }\n set toggleable(value: boolean) {\n this.setOption({\n name: 'toggleable',\n value,\n });\n }\n\n /**\n * Emits an event whenever the selection state of the component changes.\n *\n * @event\n */\n selectedChange: EventEmitter<boolean> = new EventEmitter();\n private _selected?: boolean = false;\n /**\n * Indicates if the Button is selected or not\n */\n get selected(): boolean {\n return this._selected;\n }\n set selected(value: boolean) {\n this.setOption({\n name: 'selected',\n value,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n /**\n * @ignore\n */\n constructor() {\n super();\n }\n /**\n * @ignore\n */\n protected get cssClasses() {\n const cssClasses = {\n 'ax-button-icon': !this.text,\n };\n // set(cssClasses, `${this.interactiveLook || 'ax-solid-interactive'}`, true);\n // set(cssClasses, `${this.color || 'ax-primary'}`, true);\n return cssClasses;\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { isEqual } from 'lodash-es';\nimport { AXHtmlEvent, AXValueChangedEvent } from '../classes/events.class';\nimport { MXValueComponent } from './value-component.class';\n\n@Injectable()\nexport class MXInputBaseValueComponent<T = string> extends MXValueComponent<T> {\n oldText: string;\n placeholder: string;\n\n /**\n * Fires each time the user press a key.\n * @event\n */\n onKeyDown: EventEmitter<AXHtmlEvent<KeyboardEvent>> = new EventEmitter<AXHtmlEvent<KeyboardEvent>>();\n\n /**\n * Fires each time the user press a key.\n * @event\n */\n onKeyUp: EventEmitter<AXHtmlEvent<KeyboardEvent>> = new EventEmitter<AXHtmlEvent<KeyboardEvent>>();\n\n /**\n * Fires each time the user press a key.\n * @event\n */\n onKeyPress: EventEmitter<AXHtmlEvent<KeyboardEvent>> = new EventEmitter<AXHtmlEvent<KeyboardEvent>>();\n\n /**\n * Fires each time the user change the text.\n * @event\n */\n onTextChanged = new EventEmitter<AXValueChangedEvent<string>>();\n\n protected emitOnKeydownEvent(e: KeyboardEvent) {\n this.onKeyDown.emit({\n component: this,\n nativeEvent: e,\n });\n }\n\n protected emitOnKeyupEvent(e: KeyboardEvent) {\n this.onKeyUp.emit({\n component: this,\n nativeEvent: e,\n });\n }\n\n protected emitOnKeypressEvent(e: KeyboardEvent) {\n this.onKeyPress.emit({\n component: this,\n nativeEvent: e,\n });\n }\n\n protected emitOnTextChanged(value: string, isUserInteraction = false) {\n if (isEqual(value, this.oldText)) return;\n this.onTextChanged.emit({\n value,\n name: this.name,\n component: this,\n isUserInteraction,\n oldValue: this.oldText,\n htmlElement: this.getHostElement(),\n });\n this.oldText = value;\n }\n\n override focus(): void {\n const input = this.getHostElement().querySelector('input');\n if (input) input.focus();\n else super.focus();\n }\n}\n","import { AXFormatService } from '@acorex/core/format';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { EventEmitter, Injectable, InjectionToken, inject } from '@angular/core';\nimport { cloneDeep, get } from 'lodash-es';\nimport { AXItemClickEvent, AXItemSelectedEvent } from '../classes/events.class';\nimport { MXValueComponent } from './value-component.class';\n\n/**\n * Service that manages selection state and caching for selection components\n */\n@Injectable()\nexport class MXSelectionBridgeService {\n /** Array of currently selected items */\n public selectedItems: unknown[] = [];\n /** Cache for normalized items keyed by their unique identifier */\n public cacheList: Record<string | number, unknown> = {};\n}\n\n/**\n * Injection token for the selection bridge service\n */\nexport const AX_SELECTION_DATA_TOKEN = new InjectionToken<MXSelectionBridgeService>('AX_SELECTION_DATA_TOKEN');\n\n/**\n * Type definition for disabled callback function\n */\nexport type DisabledCallback<T> = (event: { item: T; index: number }) => boolean;\n\n/**\n * Type definition for normalized item object\n */\nexport interface NormalizedItem {\n [key: string]: unknown;\n isLoading?: boolean;\n}\n\n/**\n * Abstract base component for selection-based value components\n * Provides common functionality for components that support item selection\n */\n@Injectable()\nexport abstract class MXSelectionValueComponent<T = unknown> extends MXValueComponent<unknown> {\n // #region Services\n private readonly formatService = inject(AXFormatService);\n private readonly dataService = inject(AX_SELECTION_DATA_TOKEN);\n // #endregion\n\n // #region Public Properties\n /** Callback function to determine if an item should be disabled */\n disabledCallback: DisabledCallback<T>;\n\n // #region Field Configuration Properties\n private _valueField = 'id';\n /** Field name used to extract the unique value from items */\n public get valueField(): string {\n return this._valueField;\n }\n public set valueField(value: string) {\n this.setOption({ name: 'valueField', value });\n }\n\n private _textField = 'text';\n /** Field name used to extract the display text from items */\n public get textField(): string {\n return this._textField;\n }\n public set textField(value: string) {\n this.setOption({ name: 'textField', value });\n }\n\n private _textTemplate = '';\n /** Template string for formatting item display text */\n public get textTemplate(): string {\n return this._textTemplate;\n }\n public set textTemplate(value: string) {\n this.setOption({ name: 'textTemplate', value });\n }\n\n private _defaultText = '-';\n /** Text to display when neither textField nor valueField exist on the item */\n public get defaultText(): string {\n return this._defaultText;\n }\n public set defaultText(value: string) {\n this.setOption({ name: 'defaultText', value });\n }\n\n private _disabledField = 'disabled';\n /** Field name used to determine if an item is disabled */\n public get disabledField(): string {\n return this._disabledField;\n }\n public set disabledField(value: string) {\n this.setOption({ name: 'disabledField', value });\n }\n\n private _multiple = false;\n /** Whether multiple items can be selected */\n public get multiple(): boolean {\n return this._multiple;\n }\n public set multiple(value: boolean) {\n this.setOption({\n name: 'multiple',\n value,\n afterCallback: () => this.reset(false),\n });\n }\n // #endregion\n\n // #region Computed Properties\n /** Gets the currently selected items */\n get selectedItems(): unknown[] {\n return this.dataService.selectedItems || [];\n }\n // #endregion\n\n // #region Events\n onItemSelected: EventEmitter<AXItemSelectedEvent> = new EventEmitter<AXItemSelectedEvent>();\n\n /**\n * Emitted when an item in the list is clicked.\n *\n * @event\n */\n onItemClick: EventEmitter<AXItemClickEvent> = new EventEmitter<AXItemClickEvent>();\n // #endregion\n\n // #region Abstract Methods\n /**\n * Abstract method to retrieve an item by its key\n * @param key The unique identifier of the item\n * @returns The item or a Promise that resolves to the item\n */\n abstract getItemByKey(key: unknown): unknown | Promise<unknown>;\n // #endregion\n\n // #region Override Methods\n /**\n * Internal method to set and normalize the component value\n * @param value The value to set (can be single item or array)\n * @returns Normalized value based on multiple selection mode\n */\n override internalSetValue(value: unknown) {\n const isArray = Array.isArray(value);\n\n // Handle null/empty values\n if (value == null || (isArray && value.length === 0)) {\n return this.multiple ? [] : null;\n }\n\n // Check if items already have text properties to avoid unnecessary findByKey calls\n const itemsToNormalize = isArray ? value : [value];\n const needsFindByKey = itemsToNormalize.some((item) => {\n if (typeof item === 'object' && item !== null) {\n return get(item as Record<string, unknown>, this.textField) == null;\n }\n return true; // Primitive values need findByKey\n });\n\n const normalizedItems = this.normalizeItemsList(itemsToNormalize, needsFindByKey);\n\n if (normalizedItems.length === 0) {\n return this.multiple ? [] : null;\n }\n\n // Extract values based on selection mode\n return this.multiple\n ? normalizedItems.map((item) => get(item as Record<string, unknown>, this.valueField))\n : (get(normalizedItems[0] as Record<string, unknown>, this.valueField) ?? null);\n }\n\n /**\n * Override to normalize selected items when value changes\n */\n override emitOnValueChangedEvent(oldValue?: unknown, newValue?: unknown) {\n this._normalizeSelectedItems();\n super.emitOnValueChangedEvent(oldValue, newValue);\n }\n // #endregion\n\n // #region Private Normalization Methods\n /**\n * Normalizes a list of items, filtering out null values\n * @param items Array of items to normalize\n * @param findByKey Whether to attempt finding items by key\n * @returns Array of normalized items\n */\n protected normalizeItemsList(items: unknown[], findByKey = false): NormalizedItem[] {\n if (!items?.length) return [];\n return items.filter((item) => item != null).map((item) => this.normalizeItem(item, findByKey));\n }\n\n /**\n * Normalizes a single item, handling caching and async loading\n * @param item Item to normalize\n * @param findByKey Whether to attempt finding the item by key\n * @returns Normalized item object\n */\n private normalizeItem(item: unknown, findByKey = false): NormalizedItem {\n const isComplexObject = typeof item === 'object' && item !== null;\n const itemRecord = item as Record<string, unknown>;\n const valueKey = isComplexObject ? get(itemRecord, this.valueField) : item;\n const key = valueKey != null ? String(valueKey as unknown) : String(item);\n const cacheKey = this.createCacheKey(key);\n\n // Return cached item if available and has text\n const cachedItem = this.dataService.cacheList[cacheKey] as NormalizedItem | undefined;\n if (cachedItem && get(cachedItem as Record<string, unknown>, this.textField) != null) {\n return cachedItem;\n }\n\n const hasTextProperty = !isComplexObject || get(itemRecord, this.textField) != null;\n const normalizedObj: NormalizedItem = {};\n\n // If findByKey is true, we need to resolve the item to get its text\n // This is needed for string values like 'ir', 'us' that don't have text\n if (findByKey) {\n this.handleItemNormalization(normalizedObj, item, key, true, cacheKey);\n } else {\n // Item already has all required properties, just copy them\n Object.assign(normalizedObj, item);\n }\n\n this.dataService.cacheList[cacheKey] = normalizedObj;\n return normalizedObj;\n }\n\n /**\n * Handles the normalization logic for items that need property assignment\n */\n private handleItemNormalization(\n normalizedObj: NormalizedItem,\n originalItem: unknown,\n key: string,\n findByKey: boolean,\n cacheKey: string,\n ): void {\n const existingItem = findByKey ? this.getItemByKey(key) : null;\n\n if (existingItem instanceof Promise) {\n this.handleAsyncItem(normalizedObj, key, existingItem, cacheKey);\n } else if (existingItem) {\n this.assignItemProperties(normalizedObj, existingItem, true);\n } else {\n this.assignItemProperties(normalizedObj, originalItem, false);\n }\n }\n\n /**\n * Handles async item loading with loading state\n */\n private handleAsyncItem(obj: NormalizedItem, key: string, promise: Promise<unknown>, cacheKey: string): void {\n // Set loading state\n obj[this.valueField] = key;\n obj['isLoading'] = true;\n obj[this.textField] = '@acorex:common.status.loading';\n\n promise\n .then((result) => {\n if (typeof result === 'object' && result) {\n Object.assign(obj, cloneDeep(result));\n } else {\n obj[this.valueField] = result || key;\n obj[this.textField] = result;\n }\n })\n .catch((error) => {\n console.warn('Failed to load item by key:', key, error);\n // On error, keep the original value but mark as failed\n obj[this.textField] = this.defaultText;\n })\n .finally(() => {\n delete obj['isLoading'];\n delete obj['_displayTextLoading'];\n delete obj['_loadingTriggered'];\n this.dataService.cacheList[cacheKey] = obj;\n\n // Use setTimeout to defer change detection and prevent immediate re-rendering\n setTimeout(() => {\n if (this.cdr) {\n this.cdr.markForCheck();\n }\n }, 0);\n });\n }\n\n /**\n * Assigns value and text properties to the normalized object\n */\n private assignItemProperties(obj: NormalizedItem, sourceItem: unknown, isComplexSource: boolean): void {\n const isSourceObject = typeof sourceItem === 'object' && sourceItem !== null;\n const sourceRecord = sourceItem as Record<string, unknown>;\n\n if (isComplexSource && isSourceObject) {\n const valueFromSource = get(sourceRecord, this.valueField);\n const textFromSource = get(sourceRecord, this.textField);\n obj[this.valueField] = (valueFromSource ?? textFromSource) as unknown;\n obj[this.textField] = (textFromSource ?? valueFromSource ?? this.defaultText) as unknown;\n } else {\n const valueFromSource = isSourceObject ? get(sourceRecord, this.valueField) : (sourceItem as unknown);\n const textFromSource = isSourceObject ? get(sourceRecord, this.textField) : (sourceItem as unknown);\n obj[this.valueField] = (valueFromSource ?? textFromSource) as unknown;\n obj[this.textField] = (textFromSource ?? valueFromSource ?? this.defaultText) as unknown;\n }\n }\n\n /**\n * Creates a consistent cache key for an item\n */\n private createCacheKey(key: string | number): string {\n return `k-${key}`;\n }\n\n /**\n * Normalizes currently selected items and updates the data service\n */\n private _normalizeSelectedItems(): void {\n const values = Array.isArray(this.value) ? this.value : this.value != null ? [this.value] : [];\n\n // Only call normalizeItem with findByKey=true if the item doesn't have text\n // This prevents unnecessary API calls for items that already have text\n this.dataService.selectedItems = values.map((value) => {\n const hasText =\n typeof value === 'object' && value !== null && get(value as Record<string, unknown>, this.textField) != null;\n return this.normalizeItem(value, !hasText);\n });\n }\n // #endregion\n\n // #region Public Selection Methods\n /**\n * Unselects the specified items from the selection\n * @param items Items to unselect\n */\n public unselectItems(...items: T[]): void {\n if (!items?.length) {\n this.commitValue([], true);\n return;\n }\n\n const normalizedItems = this.normalizeItemsList(items);\n const newSelectedItems = this.selectedItems.filter(\n (selectedItem) =>\n !normalizedItems.some(\n (normalizedItem) =>\n get(normalizedItem as Record<string, unknown>, this.valueField) ===\n get(selectedItem as Record<string, unknown>, this.valueField),\n ),\n );\n\n this.commitValue(newSelectedItems, true);\n }\n\n /**\n * Selects the specified items\n * @param items Items to select\n */\n public selectItems(...items: T[]): void {\n if (!items?.length) {\n return;\n }\n\n const currentValue = Array.isArray(this.value) ? this.value : [this.value];\n const normalizedItems = this.normalizeItemsList(items);\n\n const newSelectedItems = this.multiple ? [...currentValue, ...normalizedItems] : normalizedItems;\n\n this.onItemSelected.emit({\n component: this,\n isUserInteraction: true,\n item: newSelectedItems[0],\n htmlElement: this.getHostElement(),\n });\n\n this.commitValue(newSelectedItems, true);\n }\n\n /**\n * Toggles the selection state of the specified items\n * @param items Items to toggle\n */\n public toggleSelect(...items: T[]): void {\n items?.forEach((item) => {\n if (this.multiple) {\n this.isItemSelected(item) ? this.unselectItems(item) : this.selectItems(item);\n } else {\n this.selectItems(item);\n }\n });\n }\n // #endregion\n\n // #region Public Utility Methods\n /**\n * Checks if an item is currently selected\n * @param item Item to check\n * @returns True if the item is selected\n */\n public isItemSelected(item: T): boolean {\n const normalizedItem = this.normalizeItem(item);\n const normalizedValue = get(normalizedItem as Record<string, unknown>, this.valueField);\n return this.selectedItems.some(\n (selectedItem) => get(selectedItem as Record<string, unknown>, this.valueField) === normalizedValue,\n );\n }\n\n /**\n * Checks if an item is disabled\n * @param item Item to check\n * @returns True if the item is disabled\n */\n public isItemDisabled(item: T): boolean {\n const itemRecord = item as Record<string, unknown>;\n return (\n this.disabled ||\n coerceBooleanProperty(get(itemRecord, this.disabledField) as any) === true ||\n (this.disabledCallback?.({ item, index: -1 }) ?? false)\n );\n }\n\n /**\n * Checks if an item is currently loading\n * @param item Item to check\n * @returns True if the item is loading\n */\n public isItemLoading(item: T): boolean {\n const normalizedItem = this.normalizeItem(item);\n return normalizedItem['isLoading'] === true;\n }\n // #endregion\n\n // #region Protected Utility Methods\n /**\n * Gets the display text for an item using template or text field\n * @param item Item to get display text for\n * @returns Formatted display text\n */\n protected getDisplayText(item: T): string {\n // Prevent recursive calls that could cause infinite loops\n if (item && typeof item === 'object' && (item as any)['_displayTextLoading']) {\n return '@acorex:common.status.loading';\n }\n\n // Add timestamp-based debouncing to prevent excessive calls for ALL item types\n const now = Date.now();\n const itemKey = typeof item === 'string' ? item : get(item as Record<string, unknown>, this.valueField);\n const cacheKey = this.createCacheKey(String(itemKey));\n\n // Check if we have a recent result in the cache to prevent duplicate processing\n const cachedResult = this.dataService.cacheList[cacheKey];\n if (cachedResult && (cachedResult as any)['_lastDisplayTextCall']) {\n const timeSinceLastCall = now - (cachedResult as any)['_lastDisplayTextCall'];\n if (timeSinceLastCall < 50) {\n // 50ms debounce\n return (cachedResult as any)['_lastDisplayTextResult'] || String(itemKey || '');\n }\n }\n\n // For string values, we need to normalize with findByKey=true to trigger async loading\n const isStringValue = typeof item === 'string';\n const normalizedItem = this.normalizeItem(item, isStringValue);\n\n // Try template formatting FIRST before checking cached textField\n if (this.textTemplate) {\n const formattedTemplate = this.formatService.format(this.textTemplate, 'string', normalizedItem);\n if (formattedTemplate !== this.textTemplate) {\n const result = formattedTemplate;\n // Cache the timestamp and result for debouncing in the cache\n if (normalizedItem) {\n (normalizedItem as any)['_lastDisplayTextCall'] = now;\n (normalizedItem as any)['_lastDisplayTextResult'] = result;\n }\n return result;\n }\n }\n\n // Check if this item is already in the cache with proper text\n const itemValue = get(normalizedItem as Record<string, unknown>, this.valueField);\n if (itemValue != null && itemValue !== '') {\n const cacheKey = this.createCacheKey(String(itemValue));\n const cachedItem = this.dataService.cacheList[cacheKey];\n if (cachedItem && get(cachedItem as Record<string, unknown>, this.textField) != null) {\n // Use cached text if available\n const cachedText = get(cachedItem as Record<string, unknown>, this.textField);\n if (cachedText && cachedText !== '@acorex:common.status.loading') {\n const result = String(cachedText);\n // Cache the timestamp and result for debouncing in the cache (works for all item types)\n if (cachedItem) {\n (cachedItem as any)['_lastDisplayTextCall'] = now;\n (cachedItem as any)['_lastDisplayTextResult'] = result;\n }\n return result;\n }\n }\n }\n\n // Use text field or fallback to value field\n const textValue = get(normalizedItem as Record<string, unknown>, this.textField);\n if (textValue != null && textValue !== '') {\n const result = String(textValue);\n // Cache the timestamp and result for debouncing in the cache\n if (normalizedItem) {\n (normalizedItem as any)['_lastDisplayTextCall'] = now;\n (normalizedItem as any)['_lastDisplayTextResult'] = result;\n }\n return result;\n }\n\n // If text is missing and item is loading, show loading state\n if (normalizedItem['isLoading']) {\n const result = '@acorex:common.status.loading';\n // Cache the timestamp and result for debouncing in the cache\n if (normalizedItem) {\n (normalizedItem as any)['_lastDisplayTextCall'] = now;\n (normalizedItem as any)['_lastDisplayTextResult'] = result;\n }\n return result;\n }\n\n // Attempt to load item by key if text is missing\n const value = get(normalizedItem as Record<string, unknown>, this.valueField);\n if (value == null || value === '') {\n const result = this.defaultText;\n // Cache the timestamp and result for debouncing in the cache\n if (normalizedItem) {\n (normalizedItem as any)['_lastDisplayTextCall'] = now;\n (normalizedItem as any)['_lastDisplayTextResult'] = result;\n }\n return result;\n }\n\n // If we have a value but no text, trigger async loading only once\n // Use a flag to prevent multiple calls\n if (!normalizedItem['_loadingTriggered'] && !normalizedItem[this.textField]) {\n normalizedItem['_loadingTriggered'] = true;\n normalizedItem['_displayTextLoading'] = true;\n\n // Use setTimeout to defer the async loading and prevent immediate change detection\n setTimeout(() => {\n this.loadAndCacheItemByKey(value);\n }, 0);\n }\n\n // Return the value itself as a fallback\n // This will be updated once the async loading completes\n const result = String(value);\n\n // Cache the timestamp and result for debouncing in the cache\n if (normalizedItem) {\n (normalizedItem as any)['_lastDisplayTextCall'] = now;\n (normalizedItem as any)['_lastDisplayTextResult'] = result;\n }\n\n return result;\n }\n\n /**\n * Gets the value of an item\n * @param item Item to get value from\n * @returns Item value\n */\n protected getValue(item: T): unknown {\n const normalizedItem = this.normalizeItem(item);\n return get(normalizedItem as Record<string, unknown>, this.valueField);\n }\n\n /**\n * Clears the selection cache and selected items\n */\n protected clearSelectionCache(): void {\n this.dataService.cacheList = {};\n this.dataService.selectedItems = [];\n this.cdr.markForCheck();\n }\n\n /**\n * Clears only the cache while preserving selected items\n */\n protected softClearSelectionCache(): void {\n this.dataService.cacheList = {};\n this.cdr.markForCheck();\n }\n\n /**\n * Clears the debouncing cache for specific items to ensure fresh data is displayed\n */\n protected clearItemDebouncingCache(item: T): void {\n // Get the cache key for this item\n const itemKey = typeof item === 'string' ? item : get(item as Record<string, unknown>, this.valueField);\n if (itemKey != null) {\n const cacheKey = this.createCacheKey(String(itemKey));\n const cachedItem = this.dataService.cacheList[cacheKey];\n\n if (cachedItem) {\n delete (cachedItem as any)['_lastDisplayTextCall'];\n delete (cachedItem as any)['_lastDisplayTextResult'];\n delete (cachedItem as any)['_displayTextLoading'];\n delete (cachedItem as any)['_loadingTriggered'];\n }\n }\n }\n\n /**\n * Forces a refresh of the display when items are loaded asynchronously\n * This should be called when the data source is updated\n */\n protected refreshDisplay(): void {\n this.cdr.markForCheck();\n }\n\n /**\n * Refreshes the display for all selected items to ensure consistency\n * This is useful when the data source has been updated\n */\n protected refreshSelectedItemsDisplay(): void {\n // Force a refresh of the display without re-normalizing to avoid infinite loops\n if (this.selectedItems.length > 0) {\n this.cdr.markForCheck();\n }\n }\n\n /**\n * Forces a refresh of all selected items by clearing their debouncing cache\n * This ensures fresh data is displayed when the data source is updated\n */\n protected forceRefreshSelectedItems(): void {\n if (this.selectedItems.length > 0) {\n this.selectedItems.forEach((item) => {\n this.clearItemDebouncingCache(item as T);\n });\n this.cdr.markForCheck();\n }\n }\n\n // #endregion\n\n // #region Private Helper Methods\n /**\n * Asynchronously loads an item by its key and caches the result\n * @param key Key to load item by\n */\n private async loadAndCacheItemByKey(key: unknown): Promise<void> {\n try {\n const item = await this.getItemByKey(key);\n if (item) {\n const normalizedItem = this.normalizeItem(item);\n const cacheKey = this.createCacheKey(String((normalizedItem as Record<string, unknown>)[this.valueField]));\n\n // Update the cache with the loaded item\n this.dataService.cacheList[cacheKey] = normalizedItem;\n\n // Clear loading flags\n if (this.dataService.cacheList[cacheKey]) {\n delete (this.dataService.cacheList[cacheKey] as any)['_displayTextLoading'];\n delete (this.dataService.cacheList[cacheKey] as any)['_loadingTriggered'];\n }\n\n // Use setTimeout to defer change detection and prevent immediate re-rendering\n setTimeout(() => {\n if (this.cdr) {\n this.cdr.markForCheck();\n }\n }, 0);\n }\n } catch (error) {\n console.warn('Failed to load item by key:', key, error);\n\n // Clear loading flags on error too\n const cacheKey = this.createCacheKey(String(key));\n if (this.dataService.cacheList[cacheKey]) {\n delete (this.dataService.cacheList[cacheKey] as any)['_displayTextLoading'];\n delete (this.dataService.cacheList[cacheKey] as any)['_loadingTriggered'];\n }\n }\n }\n // #endregion\n}\n","import { Directive, EventEmitter, Input, OnDestroy, Output, inject } from '@angular/core';\nimport { NgModel } from '@angular/forms';\nimport { Subscription, debounceTime, distinctUntilChanged, skip } from 'rxjs';\n\n@Directive({\n selector: '[axDelayedValueChanged]',\n})\nexport class AXNgModelDelayedValueChangedDirective implements OnDestroy {\n private ngModel = inject(NgModel);\n\n @Output()\n axDelayedValueChanged = new EventEmitter<any>();\n\n @Output()\n axDelayTimeChange = new EventEmitter<number>();\n\n private _delayTime = 0;\n @Input()\n public get delayTime(): number {\n return this._delayTime;\n }\n public set delayTime(v: number) {\n if (v != this._delayTime) {\n this._delayTime = v;\n this.axDelayTimeChange.emit(v);\n this.update();\n }\n }\n\n private subscription: Subscription;\n\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n }\n\n constructor() {\n this.delayTime = 0;\n }\n\n private update() {\n this.subscription?.unsubscribe();\n //\n this.subscription = this.ngModel.control.valueChanges\n .pipe(\n skip(1), // skip initial value\n distinctUntilChanged(),\n debounceTime(this.delayTime),\n )\n .subscribe((value) => this.axDelayedValueChanged.emit(value));\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, PLATFORM_ID, ViewContainerRef, afterNextRender, effect, inject, input } from '@angular/core';\nimport { AXStyleColorType } from '../classes/styles.class';\n\n@Directive({\n selector: '[axInvertedColor]',\n})\nexport class AXInvertedColorDirective {\n color = input.required<AXStyleColorType>();\n ref = inject(ViewContainerRef);\n private platformID = inject(PLATFORM_ID);\n constructor() {\n afterNextRender(() => {\n this.invertColor();\n });\n effect(() => {\n this.invertColor();\n });\n }\n\n protected invertColor() {\n let color;\n let foreColor;\n const invertedVariables = [];\n\n if (isPlatformBrowser(this.platformID)) {\n if (this.color() === 'default') {\n color = getComputedStyle(document.documentElement).getPropertyValue(`--ax-color-${this.color()}`);\n foreColor = getComputedStyle(document.documentElement).getPropertyValue(`--ax-color-${this.color()}-fore`);\n invertedVariables.push({ name: `--ax-color-ghost`, value: `${foreColor}` });\n invertedVariables.push({ name: `--ax-color-ghost-fore`, value: `${color}` });\n } else {\n const range = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];\n\n color = getComputedStyle(document.documentElement).getPropertyValue(`--ax-color-${this.color()}-500`);\n foreColor = getComputedStyle(document.documentElement).getPropertyValue(`--ax-color-${this.color()}-fore`);\n range.forEach((c) => {\n invertedVariables.push({ name: `--ax-color-${this.color()}-${c}`, value: `${foreColor}` });\n });\n invertedVariables.push({ name: `--ax-color-${this.color()}-fore`, value: `${color}` });\n invertedVariables.push({ name: `--ax-color-${this.color()}-fore-tint`, value: `${color}` });\n }\n\n invertedVariables.forEach((c) => {\n (this.ref.element.nativeElement as HTMLElement).style.setProperty(c.name, c.value);\n });\n }\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Directive,\n DOCUMENT,\n ElementRef,\n inject,\n Input,\n OnDestroy,\n PLATFORM_ID,\n} from '@angular/core';\n\n@Directive({\n selector: '[axRipple]',\n})\nexport class AXRippleDirective implements OnDestroy {\n private el = inject<ElementRef<HTMLElement>>(ElementRef);\n private cdr = inject(ChangeDetectorRef);\n\n @Input('axRipple')\n public enabled?: boolean = true;\n\n @Input() axRippleColor = 'var(--ax-comp-ripple-color, rgba(255, 255, 255, 0.3))';\n\n ripple: HTMLSpanElement | null;\n private document = inject(DOCUMENT);\n private platformID = inject(PLATFORM_ID);\n\n ngOnInit() {\n if (this.enabled) {\n this.el.nativeElement.addEventListener('click', (event: MouseEvent) => {\n this.onElementClick(event);\n });\n }\n }\n\n ngOnDestroy() {\n this.el.nativeElement.removeEventListener('click', this.createRipple.bind(this));\n }\n\n private onElementClick(event: MouseEvent) {\n this.createRipple(event);\n }\n\n private createRipple(event: MouseEvent) {\n const element = event.currentTarget as HTMLElement;\n const exists = element.querySelector('.ax-ripple');\n if (exists) exists.remove();\n\n this.el.nativeElement.style.overflow = 'hidden';\n const rect = element.getBoundingClientRect();\n const x = Math.floor(((event.clientX - rect.left) / (rect.right - rect.left)) * element.clientWidth);\n const y = Math.floor(((event.clientY - rect.top) / (rect.bottom - rect.top)) * element.clientHeight);\n if (isPlatformBrowser(this.platformID)) {\n const circle = this.document.createElement('span');\n const diameter = Math.max(element.clientWidth, element.clientHeight);\n const radius = diameter / 2;\n\n circle.style.width = circle.style.height = `${diameter}px`;\n circle.style.left = `${x - radius}px`;\n circle.style.top = `${y - radius}px`;\n circle.style.backgroundColor = `${this.axRippleColor}`;\n circle.classList.add('ax-ripple');\n element.appendChild(circle);\n circle.addEventListener('animationend', () => {\n circle?.remove();\n });\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acorex/cdk",
|
|
3
|
-
"version": "21.0.0-next.
|
|
3
|
+
"version": "21.0.0-next.65",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@acorex/core": "21.0.0-next.
|
|
5
|
+
"@acorex/core": "21.0.0-next.65",
|
|
6
6
|
"@angular/common": "^20.0.0",
|
|
7
7
|
"@angular/core": "^20.0.0",
|
|
8
8
|
"quill": ">=2.0.2",
|