@acorex/components 19.11.3 → 19.11.4-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/button/index.d.ts +0 -1
  2. package/button/lib/button.component.d.ts +6 -1
  3. package/common/lib/types/base/button.type.d.ts +1 -1
  4. package/common/lib/types/base/color.type.d.ts +1 -1
  5. package/common/lib/types/base/interactive.type.d.ts +1 -1
  6. package/common/lib/types/base/look.type.d.ts +1 -1
  7. package/common/lib/types/base/value.type.d.ts +1 -1
  8. package/conversation/lib/conversation-messages/conversation-message-image-popup/conversation-message-image-popup.component.d.ts +1 -1
  9. package/fesm2022/acorex-components-breadcrumbs.mjs +4 -4
  10. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  11. package/fesm2022/acorex-components-button-group.mjs +1 -1
  12. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  13. package/fesm2022/acorex-components-button.mjs +26 -7
  14. package/fesm2022/acorex-components-button.mjs.map +1 -1
  15. package/fesm2022/acorex-components-common.mjs +5 -13
  16. package/fesm2022/acorex-components-common.mjs.map +1 -1
  17. package/fesm2022/acorex-components-conversation.mjs +6 -6
  18. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  19. package/fesm2022/acorex-components-data-pager.mjs +4 -4
  20. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  21. package/fesm2022/acorex-components-data-table.mjs +2 -2
  22. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  23. package/fesm2022/acorex-components-datetime-picker.mjs +1 -1
  24. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  25. package/fesm2022/acorex-components-dialog.mjs +1 -1
  26. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  27. package/fesm2022/acorex-components-dropdown-button.mjs +1 -1
  28. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  29. package/fesm2022/acorex-components-file-explorer.mjs +1 -1
  30. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
  31. package/fesm2022/acorex-components-form.mjs +1 -1
  32. package/fesm2022/acorex-components-form.mjs.map +1 -1
  33. package/fesm2022/acorex-components-image-editor.mjs +4 -4
  34. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  35. package/fesm2022/acorex-components-kbd.mjs +3 -12
  36. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  37. package/fesm2022/acorex-components-loading-dialog.mjs +1 -1
  38. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  39. package/fesm2022/acorex-components-menu.mjs +4 -4
  40. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  41. package/fesm2022/acorex-components-notification.mjs +1 -1
  42. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  43. package/fesm2022/acorex-components-otp.mjs +12 -8
  44. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  45. package/fesm2022/acorex-components-paint.mjs +1 -1
  46. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  47. package/fesm2022/acorex-components-query-builder.mjs +1 -1
  48. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  49. package/fesm2022/acorex-components-rail-navigation.mjs +2 -2
  50. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  51. package/fesm2022/acorex-components-rest-api-generator.mjs +2 -2
  52. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  53. package/fesm2022/acorex-components-scheduler.mjs +2 -2
  54. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  55. package/fesm2022/acorex-components-select-box.mjs +2 -2
  56. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  57. package/fesm2022/acorex-components-tabs.mjs +2 -1
  58. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  59. package/fesm2022/acorex-components-tag-box.mjs +46 -23
  60. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  61. package/fesm2022/acorex-components-text-area.mjs +2 -2
  62. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  63. package/fesm2022/acorex-components-text-box.mjs +2 -2
  64. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  65. package/fesm2022/acorex-components-wysiwyg.mjs +8 -8
  66. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  67. package/kbd/lib/kbd.component.d.ts +1 -3
  68. package/otp/lib/otp.component.d.ts +2 -1
  69. package/package.json +5 -5
  70. package/tag-box/README.md +2 -2
  71. package/tag-box/lib/tag-box.component.d.ts +10 -4
  72. package/tag-box/lib/tag-box.module.d.ts +4 -4
  73. package/button/lib/button.class.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-common.mjs","sources":["../../../../libs/components/common/src/lib/types/base/button.type.ts","../../../../libs/components/common/src/lib/types/base/color.type.ts","../../../../libs/components/common/src/lib/types/base/component.types.ts","../../../../libs/components/common/src/lib/types/base/events.types.ts","../../../../libs/components/common/src/lib/types/base/interactive.type.ts","../../../../libs/components/common/src/lib/types/base/look.type.ts","../../../../libs/components/common/src/lib/types/base/value.type.ts","../../../../libs/components/common/src/lib/types/placement.ts","../../../../libs/components/common/src/lib/types/selection-mode.ts","../../../../libs/components/common/src/lib/services/dom.service.ts","../../../../libs/components/common/src/lib/components/base-component.class.ts","../../../../libs/components/common/src/lib/components/interactive-component.class.ts","../../../../libs/components/common/src/lib/components/value-component.class.ts","../../../../libs/components/common/src/lib/classes/events.class.ts","../../../../libs/components/common/src/lib/classes/components.class.ts","../../../../libs/components/common/src/lib/classes/datalist.class.ts","../../../../libs/components/common/src/lib/classes/datasource.class.ts","../../../../libs/components/common/src/lib/classes/styles.class.ts","../../../../libs/components/common/src/lib/directives/auto-focus.directive.ts","../../../../libs/components/common/src/lib/services/hotkey.service.ts","../../../../libs/components/common/src/lib/directives/hotkey.directive.ts","../../../../libs/components/common/src/lib/directives/infinite-scroll.directive.ts","../../../../libs/components/common/src/lib/directives/responsive.directive.ts","../../../../libs/components/common/src/lib/common.module.ts","../../../../libs/components/common/src/lib/components/color-component.class.ts","../../../../libs/components/common/src/lib/components/look-component.class.ts","../../../../libs/components/common/src/lib/components/colorlook-component.class.ts","../../../../libs/components/common/src/lib/components/button-base-component.class.ts","../../../../libs/components/common/src/lib/components/input-base-value-component.class.ts","../../../../libs/components/common/src/lib/components/selection-base.component.class.ts","../../../../libs/components/common/src/lib/directives/delayed-value-changed.directive.ts","../../../../libs/components/common/src/lib/directives/inverted-color.directive.ts","../../../../libs/components/common/src/lib/directives/ripple.directive.ts","../../../../libs/components/common/src/acorex-components-common.ts"],"sourcesContent":["import { Component, model, output } from '@angular/core';\n\n@Component({\n template: '',\n standalone: false\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 standalone: false,\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 standalone: false\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 standalone: false\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 standalone: false\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) =>\n clone(m),\n );\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: 'start',\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],\n },\n 'top-start': {\n origin: AX_PLACEMENT_TOP_START,\n alts: [AX_PLACEMENT_BOTTOM_START],\n },\n 'top-end': {\n origin: AX_PLACEMENT_TOP_END,\n alts: [AX_PLACEMENT_BOTTOM_END],\n },\n bottom: {\n origin: AX_PLACEMENT_BOTTOM,\n alts: [AX_PLACEMENT_BOTTOM],\n },\n 'bottom-start': {\n origin: AX_PLACEMENT_BOTTOM_START,\n alts: [\n AX_PLACEMENT_BOTTOM_END,\n AX_PLACEMENT_TOP_START,\n AX_PLACEMENT_TOP_END,\n AX_PLACEMENT_START,\n AX_PLACEMENT_END,\n ],\n },\n 'bottom-end': {\n origin: AX_PLACEMENT_BOTTOM_END,\n alts: [AX_PLACEMENT_TOP_END],\n },\n end: {\n origin: AX_PLACEMENT_END,\n alts: [AX_PLACEMENT_START],\n },\n 'end-top': {\n origin: AX_PLACEMENT_END_TOP,\n alts: [AX_PLACEMENT_END_BOTTOM, AX_PLACEMENT_START_TOP, AX_PLACEMENT_START_BOTTOM],\n },\n 'end-bottom': {\n origin: AX_PLACEMENT_END_BOTTOM,\n alts: [AX_PLACEMENT_END_TOP, AX_PLACEMENT_START_BOTTOM, AX_PLACEMENT_START_TOP],\n },\n start: {\n origin: AX_PLACEMENT_START,\n alts: [AX_PLACEMENT_END],\n },\n 'start-top': {\n origin: AX_PLACEMENT_START_TOP,\n alts: [AX_PLACEMENT_START_BOTTOM, AX_PLACEMENT_END_TOP, AX_PLACEMENT_END_BOTTOM],\n },\n 'start-bottom': {\n origin: AX_PLACEMENT_START_BOTTOM,\n alts: [AX_PLACEMENT_START_TOP, AX_PLACEMENT_END_BOTTOM, 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 {\n ChangeDetectorRef,\n ElementRef,\n EventEmitter,\n Injectable,\n ViewContainerRef,\n inject,\n} 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 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 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 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 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 focus() {\n AXHtmlUtil.focusElement(this.getHostElement());\n }\n\n blur() {\n AXHtmlUtil.blurElement(this.getHostElement());\n }\n\n /**\n * Check component is focused or has any focused element.\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 { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { EventEmitter, Injectable, PLATFORM_ID, inject } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { cloneDeep, isEqual } 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 addValidationRule(rule: AXFormValidationRule) {\n this.validationRules.push(rule);\n this.validationRulesChange.emit(this.validationRules);\n }\n\n removeValidationRule(rule: AXFormValidationRule) {\n this.validationRules = this.validationRules.filter((r) => r.rule !== rule.rule || !isEqual(r.options, rule.options));\n this.validationRulesChange.emit(this.validationRules);\n }\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 registerOnChange(fn: (value: T) => void): void {\n this.onChangeCallback = fn;\n }\n\n writeValue(value: T): void {\n this.value = value;\n }\n\n public commitValue(value: T, u = false) {\n if (u) {\n this.markAsTouched();\n this.markAsDirty();\n this._isUserInteraction = true;\n }\n this.writeValue(value);\n }\n\n reset(e = false) {\n this.commitValue(null, e);\n }\n\n resetErrors() {\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 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 { 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 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(executor: (resolve: (value?: AXComponentResult | PromiseLike<AXComponentResult>) => void, reject: (reason?: any) => void) => void) {\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 AXClosbaleComponent 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 extends MXValueComponent {\n oldInputValue = '';\n abstract _unsubscriber: AXUnsubscriber;\n\n onKeyDown = new EventEmitter<AXHtmlEvent<KeyboardEvent>>();\n onInputValueEmit = new EventEmitter<AXValueChangedEvent<string>>();\n onInputValueChanged = new EventEmitter<AXValueChangedEvent<string>>();\n\n handleInputValueChanged(value: string, isUserInteraction = false) {\n if (value === this.oldInputValue) return;\n this.onInputValueChanged.emit({\n value,\n name: this.name,\n component: this,\n isUserInteraction,\n oldValue: this.oldInputValue,\n htmlElement: this.getHostElement(),\n });\n this.oldInputValue = value;\n }\n handleInputValueEmit(value: string, isUserInteraction = false) {\n if (value === this.oldInputValue) return;\n this.onInputValueEmit.emit({\n value,\n name: this.name,\n component: this,\n isUserInteraction,\n oldValue: this.oldInputValue,\n htmlElement: this.getHostElement(),\n });\n this.oldInputValue = 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';\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() {\n const currentFilter = this._query.filter;\n const currentSort = this._query.sort;\n this.reset();\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((c) => (!this.config.key && c == key) || (c && this.config.key && c[this.config.key] == key));\n if (fromCache) return fromCache;\n return this.config.byKey ? this.config.byKey(key) : null;\n }\n}\n\nexport function convertArrayToDataSource<T>(items: T[], options: { key: string; pageSize: number } = { key: 'id', pageSize: 100 }): AXDataSource {\n const config: AXDataSourceConfig = {\n key: options.key,\n pageSize: options.pageSize,\n load: async (e: AXDataSourceQuery) => {\n const result = e.filter ? handleSearch(items, e.filter) : items;\n return {\n items: result.slice(e.skip, e.skip + e.take),\n total: result.length,\n };\n },\n byKey: (v: unknown) =>\n Promise.resolve<T>(\n items.find((c) => {\n return c[options.key] == v;\n }),\n ),\n };\n const handleSearch = <T extends Record<string, any>>(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 return new AXDataSource(config);\n}\n","/**\n * A token that specifies the color style of component.\n */\nexport type AXStyleColorType = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'default';\nexport const AX_STYLE_COLOR_TYPES: AXStyleColorType[] = ['primary', 'secondary', 'success', 'warning', 'danger', 'default'];\n\nexport type AXStyleLookType = 'solid' | 'blank' | 'outline' | 'twotone' | 'flat' | 'fill' | 'link' | 'none';\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 = 'bottom-start' | 'bottom-center' | 'bottom-end' | 'top-start' | 'top-center' | 'top-end' | 'center-end' | 'center-start';\nexport const AX_LOCATIONS: AXLocation[] = ['bottom-start', 'bottom-center', 'bottom-end', 'top-start', 'top-center', 'top-end', 'center-end', 'center-start'];\n\nexport type AXSurfaceType = 'lightest' | 'lighter' | 'light' | 'surface' | 'dark' | 'darker' | 'darkest';\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { AfterViewInit, Directive, ElementRef, Host, inject, Input, Optional, PLATFORM_ID, Renderer2, Self } from '@angular/core';\nimport { AXFocusableComponent } from '../classes/components.class';\n\n@Directive({ selector: '[axAutoFocus]' })\nexport class AXAutoFocusDirective implements AfterViewInit {\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 constructor(\n private renderer: Renderer2,\n private el: ElementRef<HTMLElement>,\n @Host()\n @Self()\n @Optional()\n public _host: AXFocusableComponent,\n ) {}\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((c) => c + ':not([tabindex=\"-1\"])');\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 } from '@angular/common';\nimport { 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()\nexport class AXHotkeysService {\n defaults: Partial<Options> = {\n element: this.document,\n };\n\n constructor(\n private eventManager: EventManager,\n @Inject(DOCUMENT) private document: 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, Host, Input, Optional, Self } 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 @Input()\n public axHotkey: string | AXHotKeyAction | AXHotKeyAction[] = '';\n\n private _subs: Subscription[] = [];\n\n constructor(\n private el: ElementRef<HTMLElement>,\n @Host()\n @Self()\n @Optional()\n public _host: AXComponent,\n private hs: AXHotkeysService,\n ) {}\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 } 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 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 constructor(private elm: ElementRef) {}\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(startWith([AX_DEFAULT_SCROLL_POSITION, AX_DEFAULT_SCROLL_POSITION]));\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 } from '@angular/core';\n\n@Directive({ selector: '[axResponsive]' })\nexport class AXResponsiveDirective implements OnDestroy {\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(private _elementRef: ElementRef<HTMLDivElement>) {\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 { 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 = 'default';\n /**\n * Predefined color schemes\n */\n get color(): AXStyleColorType {\n return this._color;\n }\n set color(value: AXStyleColorType) {\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 { 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 = 'solid';\n /**\n * Predefined look schemes\n */\n get look(): AXStyleLookType {\n return this._look;\n }\n set look(value: AXStyleLookType) {\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 { set } from 'lodash-es';\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 'ax-state-disabled': this.disabled,\n 'ax-state-selected': this.selected,\n };\n set(cssClasses, `ax-${this.look || 'solid'}`, true);\n set(cssClasses, `ax-${this.color || 'primary'}`, true);\n return cssClasses;\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { AXHtmlEvent } from '../classes/events.class';\nimport { MXValueComponent } from './value-component.class';\n\n@Injectable()\nexport class MXInputBaseValueComponent<T = string> extends MXValueComponent<T> {\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 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 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 { Injectable, InjectionToken, inject } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { MXValueComponent } from './value-component.class';\n\n@Injectable()\nexport class MXSelectionBridgeService {\n public selectedItems: unknown[] = [];\n public cacheList: { [key: string | number]: unknown } = {};\n}\n\nexport const AX_SELECTION_DATA_TOKEN = new InjectionToken<MXSelectionBridgeService>('AX_SELECTION_DATA_TOKEN');\n\n@Injectable()\nexport abstract class MXSelectionValueComponent<T = unknown> extends MXValueComponent<unknown> {\n private formatService = inject(AXFormatService);\n private dataService = inject(AX_SELECTION_DATA_TOKEN);\n\n disabledCallback: (e: { item: T; index: number }) => boolean;\n\n private _valueField = 'id';\n public get valueField(): string {\n return this._valueField;\n }\n public set valueField(v: string) {\n this.setOption({\n name: 'valueField',\n value: v,\n });\n }\n private _textTemplate = '';\n public get textTemplate(): string {\n return this._textTemplate;\n }\n public set textTemplate(v: string) {\n this.setOption({\n name: 'textTemplate',\n value: v,\n });\n }\n\n private _textField = 'text';\n public get textField(): string {\n return this._textField;\n }\n public set textField(v: string) {\n this.setOption({\n name: 'textField',\n value: v,\n });\n }\n\n private _disabledField = 'disabled';\n public get disabledField(): string {\n return this._disabledField;\n }\n public set disabledField(v: string) {\n this.setOption({\n name: 'disabledField',\n value: v,\n });\n }\n\n private _multiple = false;\n public get multiple(): boolean {\n return this._multiple;\n }\n public set multiple(v: boolean) {\n this.setOption({\n name: 'multiple',\n value: v,\n afterCallback: () => {\n this.reset(false);\n },\n });\n }\n\n get selectedItems(): unknown[] {\n return this.dataService.selectedItems || [];\n }\n\n override internalSetValue(value: unknown) {\n const isArray = Array.isArray(value);\n if (value == null || (isArray && value.length == 0)) {\n return this.multiple ? [] : null;\n }\n const normalizedItems = isArray ? this.normalizeItemsList(value, true) : this.normalizeItemsList([value], true);\n\n if (normalizedItems.length == 0) {\n return this.multiple ? [] : null;\n }\n const result = this.multiple ? normalizedItems.map((c) => c[this.valueField]) : normalizedItems[0][this.valueField];\n return result;\n }\n\n override emitOnValueChangedEvent(oldValue?: unknown, newValue?: unknown) {\n this._normalizeSelectedItems();\n super.emitOnValueChangedEvent(oldValue, newValue);\n }\n\n abstract getItemByKey(key: unknown): unknown | Promise<unknown>;\n\n protected normalizeItemsList(items: unknown[], findBykey = false): unknown[] {\n if (items == null) return [];\n return items.filter((c) => c != null).map((i) => this.normalizeItem(i, findBykey));\n }\n\n private normalizeItem(item: unknown, findBykey = false): unknown {\n const complex = typeof item == 'object';\n const key = complex ? item[this.valueField] : `${item}`;\n const cacheKey = `k-${key}`;\n const hasText = !complex || item[this.textField] != null;\n //\n if (this.dataService.cacheList[cacheKey] && this.dataService.cacheList[cacheKey][this.textField]) return this.dataService.cacheList[cacheKey];\n //\n const obj: unknown = {};\n if (complex && hasText) {\n Object.assign(obj, item);\n } else {\n const existsItem = findBykey ? this.getItemByKey(key) : null;\n if (existsItem && existsItem instanceof Promise) {\n obj[this.valueField] = key;\n obj['isLoading'] = true;\n obj[this.textField] = 'Loading';\n //\n existsItem\n .then((r) => {\n if (typeof r === 'object' && r) {\n // obj[this.valueField] = r[this.valueField];\n // obj[this.textField] = r[this.textField];\n Object.assign(obj, cloneDeep(r));\n } else {\n obj[this.valueField] = r || key;\n obj[this.textField] = r;\n }\n })\n .finally(() => {\n delete obj['isLoading'];\n this.dataService.cacheList[cacheKey] = obj;\n this.cdr.markForCheck();\n });\n } else if (existsItem) {\n obj[this.valueField] = complex ? existsItem[this.valueField] : existsItem;\n obj[this.textField] = complex ? existsItem[this.textField] : existsItem;\n } else {\n obj[this.valueField] = complex ? item[this.valueField] : item;\n obj[this.textField] = complex ? item[this.textField] : item;\n }\n }\n this.dataService.cacheList[cacheKey] = obj;\n return obj;\n }\n\n private _normalizeSelectedItems() {\n const values = Array.isArray(this.value) ? this.value : this.value != null ? [this.value] : [];\n this.dataService.selectedItems = values.map((v) => this.normalizeItem(v));\n }\n\n public unselectItems(...items: T[]) {\n if (!items || items.length === 0) {\n this.commitValue([], true);\n return;\n }\n const normalizeItems = Array.isArray(items) ? this.normalizeItemsList(items) : [this.normalizeItem(items)];\n const newSelectedItems = this.selectedItems.filter((i) => !normalizeItems.some((n) => n[this.valueField] == i[this.valueField]));\n this.commitValue(newSelectedItems, true);\n }\n\n public selectItems(...items: T[]) {\n if (items && items.length) {\n let newSelectedItems = Array.isArray(this.value) ? this.value : [this.value];\n const normalizeItems = Array.isArray(items) ? this.normalizeItemsList(items) : [this.normalizeItem(items)];\n if (this.multiple) {\n newSelectedItems = [...newSelectedItems, ...normalizeItems];\n } else {\n newSelectedItems = normalizeItems;\n }\n this.commitValue(newSelectedItems, true);\n }\n }\n\n public toggleSelect(...items: T[]) {\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\n public isItemSelected(item: T): boolean {\n return this.selectedItems.some((c) => c[this.valueField] === this.normalizeItem(item)[this.valueField]);\n }\n\n public isItemDisabled(item: T): boolean {\n return (\n this.disabled || coerceBooleanProperty(item[this.disabledField]) === true || (this.disabledCallback ? this.disabledCallback({ item, index: -1 }) : false)\n );\n }\n\n // protected getDisplayText(item: T) {\n // const normalizeItem = this.normalizeItem(item) as any;\n // return formattedText || normalizeItem[this.valueField];\n // }\n\n protected getDisplayText(item: T) {\n const normalizeItem = this.normalizeItem(item) as any;\n const formattedTemplate = this.formatService.format(this.textTemplate, 'string', normalizeItem);\n if (this.textTemplate && formattedTemplate != this.textTemplate) return formattedTemplate;\n else return normalizeItem[this.textField] || normalizeItem[this.valueField];\n }\n\n protected getValue(item: T) {\n const normalizeItem = this.normalizeItem(item) as any;\n return normalizeItem[this.valueField];\n }\n\n protected clearSelectionCache() {\n this.dataService.cacheList = {};\n this.dataService.selectedItems = [];\n this.cdr.markForCheck();\n }\n\n protected softClearSelectionCache() {\n this.dataService.cacheList = {};\n this.cdr.markForCheck();\n }\n}\n","import { Directive, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { NgModel } from '@angular/forms';\nimport { Subscription, debounceTime, distinctUntilChanged, skip } from 'rxjs';\n\n@Directive({\n selector: '[axDelayedValueChanged]',\n standalone: true,\n})\nexport class AXNgModelDelayedValueChangedDirective implements OnDestroy {\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(private ngModel: NgModel) {\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 standalone: true,\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 { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n inject,\n Input,\n OnDestroy,\n PLATFORM_ID,\n} from '@angular/core';\n\n@Directive({\n selector: '[axRipple]',\n standalone: true,\n})\nexport class AXRippleDirective implements OnDestroy {\n @Input('axRipple')\n public enabled?: boolean = true;\n\n @Input() axRippleColor = 'var(--ax-comp-ripple-bg-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 constructor(\n private el: ElementRef<HTMLElement>,\n private cdr: ChangeDetectorRef,\n ) {}\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":["i1.AXFocusableComponent","i1.AXComponent","i2.AXHotkeysService","i1"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-common.mjs","sources":["../../../../libs/components/common/src/lib/types/base/button.type.ts","../../../../libs/components/common/src/lib/types/base/color.type.ts","../../../../libs/components/common/src/lib/types/base/component.types.ts","../../../../libs/components/common/src/lib/types/base/events.types.ts","../../../../libs/components/common/src/lib/types/base/interactive.type.ts","../../../../libs/components/common/src/lib/types/base/look.type.ts","../../../../libs/components/common/src/lib/types/base/value.type.ts","../../../../libs/components/common/src/lib/types/placement.ts","../../../../libs/components/common/src/lib/types/selection-mode.ts","../../../../libs/components/common/src/lib/services/dom.service.ts","../../../../libs/components/common/src/lib/components/base-component.class.ts","../../../../libs/components/common/src/lib/components/interactive-component.class.ts","../../../../libs/components/common/src/lib/components/value-component.class.ts","../../../../libs/components/common/src/lib/classes/events.class.ts","../../../../libs/components/common/src/lib/classes/components.class.ts","../../../../libs/components/common/src/lib/classes/datalist.class.ts","../../../../libs/components/common/src/lib/classes/datasource.class.ts","../../../../libs/components/common/src/lib/classes/styles.class.ts","../../../../libs/components/common/src/lib/directives/auto-focus.directive.ts","../../../../libs/components/common/src/lib/services/hotkey.service.ts","../../../../libs/components/common/src/lib/directives/hotkey.directive.ts","../../../../libs/components/common/src/lib/directives/infinite-scroll.directive.ts","../../../../libs/components/common/src/lib/directives/responsive.directive.ts","../../../../libs/components/common/src/lib/common.module.ts","../../../../libs/components/common/src/lib/components/color-component.class.ts","../../../../libs/components/common/src/lib/components/look-component.class.ts","../../../../libs/components/common/src/lib/components/colorlook-component.class.ts","../../../../libs/components/common/src/lib/components/button-base-component.class.ts","../../../../libs/components/common/src/lib/components/input-base-value-component.class.ts","../../../../libs/components/common/src/lib/components/selection-base.component.class.ts","../../../../libs/components/common/src/lib/directives/delayed-value-changed.directive.ts","../../../../libs/components/common/src/lib/directives/inverted-color.directive.ts","../../../../libs/components/common/src/lib/directives/ripple.directive.ts","../../../../libs/components/common/src/acorex-components-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) =>\n clone(m),\n );\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: 'start',\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],\n },\n 'top-start': {\n origin: AX_PLACEMENT_TOP_START,\n alts: [AX_PLACEMENT_BOTTOM_START],\n },\n 'top-end': {\n origin: AX_PLACEMENT_TOP_END,\n alts: [AX_PLACEMENT_BOTTOM_END],\n },\n bottom: {\n origin: AX_PLACEMENT_BOTTOM,\n alts: [AX_PLACEMENT_BOTTOM],\n },\n 'bottom-start': {\n origin: AX_PLACEMENT_BOTTOM_START,\n alts: [\n AX_PLACEMENT_BOTTOM_END,\n AX_PLACEMENT_TOP_START,\n AX_PLACEMENT_TOP_END,\n AX_PLACEMENT_START,\n AX_PLACEMENT_END,\n ],\n },\n 'bottom-end': {\n origin: AX_PLACEMENT_BOTTOM_END,\n alts: [AX_PLACEMENT_TOP_END],\n },\n end: {\n origin: AX_PLACEMENT_END,\n alts: [AX_PLACEMENT_START],\n },\n 'end-top': {\n origin: AX_PLACEMENT_END_TOP,\n alts: [AX_PLACEMENT_END_BOTTOM, AX_PLACEMENT_START_TOP, AX_PLACEMENT_START_BOTTOM],\n },\n 'end-bottom': {\n origin: AX_PLACEMENT_END_BOTTOM,\n alts: [AX_PLACEMENT_END_TOP, AX_PLACEMENT_START_BOTTOM, AX_PLACEMENT_START_TOP],\n },\n start: {\n origin: AX_PLACEMENT_START,\n alts: [AX_PLACEMENT_END],\n },\n 'start-top': {\n origin: AX_PLACEMENT_START_TOP,\n alts: [AX_PLACEMENT_START_BOTTOM, AX_PLACEMENT_END_TOP, AX_PLACEMENT_END_BOTTOM],\n },\n 'start-bottom': {\n origin: AX_PLACEMENT_START_BOTTOM,\n alts: [AX_PLACEMENT_START_TOP, AX_PLACEMENT_END_BOTTOM, 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 {\n ChangeDetectorRef,\n ElementRef,\n EventEmitter,\n Injectable,\n ViewContainerRef,\n inject,\n} 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 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 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 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 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 focus() {\n AXHtmlUtil.focusElement(this.getHostElement());\n }\n\n blur() {\n AXHtmlUtil.blurElement(this.getHostElement());\n }\n\n /**\n * Check component is focused or has any focused element.\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 { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { EventEmitter, Injectable, PLATFORM_ID, inject } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { cloneDeep, isEqual } 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 addValidationRule(rule: AXFormValidationRule) {\n this.validationRules.push(rule);\n this.validationRulesChange.emit(this.validationRules);\n }\n\n removeValidationRule(rule: AXFormValidationRule) {\n this.validationRules = this.validationRules.filter((r) => r.rule !== rule.rule || !isEqual(r.options, rule.options));\n this.validationRulesChange.emit(this.validationRules);\n }\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 registerOnChange(fn: (value: T) => void): void {\n this.onChangeCallback = fn;\n }\n\n writeValue(value: T): void {\n this.value = value;\n }\n\n public commitValue(value: T, u = false) {\n if (u) {\n this.markAsTouched();\n this.markAsDirty();\n this._isUserInteraction = true;\n }\n this.writeValue(value);\n }\n\n reset(e = false) {\n this.commitValue(null, e);\n }\n\n resetErrors() {\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 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 { 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 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(executor: (resolve: (value?: AXComponentResult | PromiseLike<AXComponentResult>) => void, reject: (reason?: any) => void) => void) {\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 AXClosbaleComponent 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 extends MXValueComponent {\n oldInputValue = '';\n abstract _unsubscriber: AXUnsubscriber;\n\n onKeyDown = new EventEmitter<AXHtmlEvent<KeyboardEvent>>();\n onInputValueEmit = new EventEmitter<AXValueChangedEvent<string>>();\n onInputValueChanged = new EventEmitter<AXValueChangedEvent<string>>();\n\n handleInputValueChanged(value: string, isUserInteraction = false) {\n if (value === this.oldInputValue) return;\n this.onInputValueChanged.emit({\n value,\n name: this.name,\n component: this,\n isUserInteraction,\n oldValue: this.oldInputValue,\n htmlElement: this.getHostElement(),\n });\n this.oldInputValue = value;\n }\n handleInputValueEmit(value: string, isUserInteraction = false) {\n if (value === this.oldInputValue) return;\n this.onInputValueEmit.emit({\n value,\n name: this.name,\n component: this,\n isUserInteraction,\n oldValue: this.oldInputValue,\n htmlElement: this.getHostElement(),\n });\n this.oldInputValue = 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';\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() {\n const currentFilter = this._query.filter;\n const currentSort = this._query.sort;\n this.reset();\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((c) => (!this.config.key && c == key) || (c && this.config.key && c[this.config.key] == key));\n if (fromCache) return fromCache;\n return this.config.byKey ? this.config.byKey(key) : null;\n }\n}\n\nexport function convertArrayToDataSource<T>(items: T[], options: { key: string; pageSize: number } = { key: 'id', pageSize: 100 }): AXDataSource {\n const config: AXDataSourceConfig = {\n key: options.key,\n pageSize: options.pageSize,\n load: async (e: AXDataSourceQuery) => {\n const result = e.filter ? handleSearch(items, e.filter) : items;\n return {\n items: result.slice(e.skip, e.skip + e.take),\n total: result.length,\n };\n },\n byKey: (v: unknown) =>\n Promise.resolve<T>(\n items.find((c) => {\n return c[options.key] == v;\n }),\n ),\n };\n const handleSearch = <T extends Record<string, any>>(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 return new AXDataSource(config);\n}\n","/**\n * A token that specifies the color style of component.\n */\nexport type AXStyleColorType = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'default';\nexport const AX_STYLE_COLOR_TYPES: AXStyleColorType[] = ['primary', 'secondary', 'success', 'warning', 'danger', 'default'];\n\nexport type AXStyleLookType = 'solid' | 'blank' | 'outline' | 'twotone' | 'flat' | 'fill' | 'link' | 'none';\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 = 'bottom-start' | 'bottom-center' | 'bottom-end' | 'top-start' | 'top-center' | 'top-end' | 'center-end' | 'center-start';\nexport const AX_LOCATIONS: AXLocation[] = ['bottom-start', 'bottom-center', 'bottom-end', 'top-start', 'top-center', 'top-end', 'center-end', 'center-start'];\n\nexport type AXSurfaceType = 'lightest' | 'lighter' | 'light' | 'surface' | 'dark' | 'darker' | 'darkest';\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { AfterViewInit, Directive, ElementRef, Host, inject, Input, Optional, PLATFORM_ID, Renderer2, Self } from '@angular/core';\nimport { AXFocusableComponent } from '../classes/components.class';\n\n@Directive({ selector: '[axAutoFocus]' })\nexport class AXAutoFocusDirective implements AfterViewInit {\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 constructor(\n private renderer: Renderer2,\n private el: ElementRef<HTMLElement>,\n @Host()\n @Self()\n @Optional()\n public _host: AXFocusableComponent,\n ) {}\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((c) => c + ':not([tabindex=\"-1\"])');\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 } from '@angular/common';\nimport { 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()\nexport class AXHotkeysService {\n defaults: Partial<Options> = {\n element: this.document,\n };\n\n constructor(\n private eventManager: EventManager,\n @Inject(DOCUMENT) private document: 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, Host, Input, Optional, Self } 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 @Input()\n public axHotkey: string | AXHotKeyAction | AXHotKeyAction[] = '';\n\n private _subs: Subscription[] = [];\n\n constructor(\n private el: ElementRef<HTMLElement>,\n @Host()\n @Self()\n @Optional()\n public _host: AXComponent,\n private hs: AXHotkeysService,\n ) {}\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 } 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 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 constructor(private elm: ElementRef) {}\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(startWith([AX_DEFAULT_SCROLL_POSITION, AX_DEFAULT_SCROLL_POSITION]));\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 } from '@angular/core';\n\n@Directive({ selector: '[axResponsive]' })\nexport class AXResponsiveDirective implements OnDestroy {\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(private _elementRef: ElementRef<HTMLDivElement>) {\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 { 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 = 'default';\n /**\n * Predefined color schemes\n */\n get color(): AXStyleColorType {\n return this._color;\n }\n set color(value: AXStyleColorType) {\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 { 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 = 'solid';\n /**\n * Predefined look schemes\n */\n get look(): AXStyleLookType {\n return this._look;\n }\n set look(value: AXStyleLookType) {\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 { set } from 'lodash-es';\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 'ax-state-disabled': this.disabled,\n 'ax-state-selected': this.selected,\n };\n set(cssClasses, `ax-${this.look || 'solid'}`, true);\n set(cssClasses, `ax-${this.color || 'primary'}`, true);\n return cssClasses;\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { AXHtmlEvent } from '../classes/events.class';\nimport { MXValueComponent } from './value-component.class';\n\n@Injectable()\nexport class MXInputBaseValueComponent<T = string> extends MXValueComponent<T> {\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 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 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 { Injectable, InjectionToken, inject } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { MXValueComponent } from './value-component.class';\n\n@Injectable()\nexport class MXSelectionBridgeService {\n public selectedItems: unknown[] = [];\n public cacheList: { [key: string | number]: unknown } = {};\n}\n\nexport const AX_SELECTION_DATA_TOKEN = new InjectionToken<MXSelectionBridgeService>('AX_SELECTION_DATA_TOKEN');\n\n@Injectable()\nexport abstract class MXSelectionValueComponent<T = unknown> extends MXValueComponent<unknown> {\n private formatService = inject(AXFormatService);\n private dataService = inject(AX_SELECTION_DATA_TOKEN);\n\n disabledCallback: (e: { item: T; index: number }) => boolean;\n\n private _valueField = 'id';\n public get valueField(): string {\n return this._valueField;\n }\n public set valueField(v: string) {\n this.setOption({\n name: 'valueField',\n value: v,\n });\n }\n private _textTemplate = '';\n public get textTemplate(): string {\n return this._textTemplate;\n }\n public set textTemplate(v: string) {\n this.setOption({\n name: 'textTemplate',\n value: v,\n });\n }\n\n private _textField = 'text';\n public get textField(): string {\n return this._textField;\n }\n public set textField(v: string) {\n this.setOption({\n name: 'textField',\n value: v,\n });\n }\n\n private _disabledField = 'disabled';\n public get disabledField(): string {\n return this._disabledField;\n }\n public set disabledField(v: string) {\n this.setOption({\n name: 'disabledField',\n value: v,\n });\n }\n\n private _multiple = false;\n public get multiple(): boolean {\n return this._multiple;\n }\n public set multiple(v: boolean) {\n this.setOption({\n name: 'multiple',\n value: v,\n afterCallback: () => {\n this.reset(false);\n },\n });\n }\n\n get selectedItems(): unknown[] {\n return this.dataService.selectedItems || [];\n }\n\n override internalSetValue(value: unknown) {\n const isArray = Array.isArray(value);\n if (value == null || (isArray && value.length == 0)) {\n return this.multiple ? [] : null;\n }\n const normalizedItems = isArray ? this.normalizeItemsList(value, true) : this.normalizeItemsList([value], true);\n\n if (normalizedItems.length == 0) {\n return this.multiple ? [] : null;\n }\n const result = this.multiple ? normalizedItems.map((c) => c[this.valueField]) : normalizedItems[0][this.valueField];\n return result;\n }\n\n override emitOnValueChangedEvent(oldValue?: unknown, newValue?: unknown) {\n this._normalizeSelectedItems();\n super.emitOnValueChangedEvent(oldValue, newValue);\n }\n\n abstract getItemByKey(key: unknown): unknown | Promise<unknown>;\n\n protected normalizeItemsList(items: unknown[], findBykey = false): unknown[] {\n if (items == null) return [];\n return items.filter((c) => c != null).map((i) => this.normalizeItem(i, findBykey));\n }\n\n private normalizeItem(item: unknown, findBykey = false): unknown {\n const complex = typeof item == 'object';\n const key = complex ? item[this.valueField] : `${item}`;\n const cacheKey = `k-${key}`;\n const hasText = !complex || item[this.textField] != null;\n //\n if (this.dataService.cacheList[cacheKey] && this.dataService.cacheList[cacheKey][this.textField]) return this.dataService.cacheList[cacheKey];\n //\n const obj: unknown = {};\n if (complex && hasText) {\n Object.assign(obj, item);\n } else {\n const existsItem = findBykey ? this.getItemByKey(key) : null;\n if (existsItem && existsItem instanceof Promise) {\n obj[this.valueField] = key;\n obj['isLoading'] = true;\n obj[this.textField] = 'Loading';\n //\n existsItem\n .then((r) => {\n if (typeof r === 'object' && r) {\n // obj[this.valueField] = r[this.valueField];\n // obj[this.textField] = r[this.textField];\n Object.assign(obj, cloneDeep(r));\n } else {\n obj[this.valueField] = r || key;\n obj[this.textField] = r;\n }\n })\n .finally(() => {\n delete obj['isLoading'];\n this.dataService.cacheList[cacheKey] = obj;\n this.cdr.markForCheck();\n });\n } else if (existsItem) {\n obj[this.valueField] = complex ? existsItem[this.valueField] : existsItem;\n obj[this.textField] = complex ? existsItem[this.textField] : existsItem;\n } else {\n obj[this.valueField] = complex ? item[this.valueField] : item;\n obj[this.textField] = complex ? item[this.textField] : item;\n }\n }\n this.dataService.cacheList[cacheKey] = obj;\n return obj;\n }\n\n private _normalizeSelectedItems() {\n const values = Array.isArray(this.value) ? this.value : this.value != null ? [this.value] : [];\n this.dataService.selectedItems = values.map((v) => this.normalizeItem(v));\n }\n\n public unselectItems(...items: T[]) {\n if (!items || items.length === 0) {\n this.commitValue([], true);\n return;\n }\n const normalizeItems = Array.isArray(items) ? this.normalizeItemsList(items) : [this.normalizeItem(items)];\n const newSelectedItems = this.selectedItems.filter((i) => !normalizeItems.some((n) => n[this.valueField] == i[this.valueField]));\n this.commitValue(newSelectedItems, true);\n }\n\n public selectItems(...items: T[]) {\n if (items && items.length) {\n let newSelectedItems = Array.isArray(this.value) ? this.value : [this.value];\n const normalizeItems = Array.isArray(items) ? this.normalizeItemsList(items) : [this.normalizeItem(items)];\n if (this.multiple) {\n newSelectedItems = [...newSelectedItems, ...normalizeItems];\n } else {\n newSelectedItems = normalizeItems;\n }\n this.commitValue(newSelectedItems, true);\n }\n }\n\n public toggleSelect(...items: T[]) {\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\n public isItemSelected(item: T): boolean {\n return this.selectedItems.some((c) => c[this.valueField] === this.normalizeItem(item)[this.valueField]);\n }\n\n public isItemDisabled(item: T): boolean {\n return (\n this.disabled || coerceBooleanProperty(item[this.disabledField]) === true || (this.disabledCallback ? this.disabledCallback({ item, index: -1 }) : false)\n );\n }\n\n // protected getDisplayText(item: T) {\n // const normalizeItem = this.normalizeItem(item) as any;\n // return formattedText || normalizeItem[this.valueField];\n // }\n\n protected getDisplayText(item: T) {\n const normalizeItem = this.normalizeItem(item) as any;\n const formattedTemplate = this.formatService.format(this.textTemplate, 'string', normalizeItem);\n if (this.textTemplate && formattedTemplate != this.textTemplate) return formattedTemplate;\n else return normalizeItem[this.textField] || normalizeItem[this.valueField];\n }\n\n protected getValue(item: T) {\n const normalizeItem = this.normalizeItem(item) as any;\n return normalizeItem[this.valueField];\n }\n\n protected clearSelectionCache() {\n this.dataService.cacheList = {};\n this.dataService.selectedItems = [];\n this.cdr.markForCheck();\n }\n\n protected softClearSelectionCache() {\n this.dataService.cacheList = {};\n this.cdr.markForCheck();\n }\n}\n","import { Directive, EventEmitter, Input, OnDestroy, Output } 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 @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(private ngModel: NgModel) {\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 { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { ChangeDetectorRef, Directive, ElementRef, inject, Input, OnDestroy, PLATFORM_ID } from '@angular/core';\n\n@Directive({\n selector: '[axRipple]',\n})\nexport class AXRippleDirective implements OnDestroy {\n @Input('axRipple')\n public enabled?: boolean = true;\n\n @Input() axRippleColor = 'var(--ax-comp-ripple-bg-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 constructor(\n private el: ElementRef<HTMLElement>,\n private cdr: ChangeDetectorRef,\n ) {}\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":["i1.AXFocusableComponent","i1.AXComponent","i2.AXHotkeysService","i1"],"mappings":"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"}