@acorex/components 18.12.36 → 18.12.38

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. package/color-palette/lib/color-palette-picker.component.d.ts +3 -0
  2. package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +2 -2
  3. package/esm2022/button-group/lib/button-group.component.mjs +2 -2
  4. package/esm2022/color-palette/lib/color-palette-picker.component.mjs +28 -4
  5. package/esm2022/common/lib/components/value-component.class.mjs +6 -4
  6. package/esm2022/drawer/lib/drawer/drawer-item/drawer.component.mjs +2 -2
  7. package/esm2022/dropdown/lib/dropdown-box.component.mjs +3 -3
  8. package/esm2022/form/lib/form-field.component.mjs +2 -2
  9. package/esm2022/form/lib/validation-rule.directive.mjs +1 -1
  10. package/esm2022/menu/lib/context-menu.component.mjs +2 -2
  11. package/esm2022/menu/lib/menu.component.mjs +2 -2
  12. package/esm2022/otp/lib/otp.component.mjs +32 -28
  13. package/esm2022/phone-box/lib/phone-box.component.mjs +21 -20
  14. package/esm2022/picker/lib/picker.component.mjs +8 -5
  15. package/esm2022/range-slider/lib/range-slider.component.mjs +1 -1
  16. package/esm2022/search-box/lib/search-box.component.mjs +4 -4
  17. package/esm2022/select-box/lib/select-box.component.mjs +6 -4
  18. package/esm2022/selection-list/lib/selection-list.component.mjs +9 -5
  19. package/esm2022/side-menu/lib/side-menu.component.mjs +2 -2
  20. package/esm2022/tabs/lib/tab-item.component.mjs +5 -4
  21. package/esm2022/text-area/lib/text-area.component.mjs +4 -4
  22. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.mjs +3 -1
  23. package/fesm2022/acorex-components-breadcrumbs.mjs +2 -2
  24. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  25. package/fesm2022/acorex-components-button-group.mjs +2 -2
  26. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  27. package/fesm2022/acorex-components-color-palette.mjs +27 -3
  28. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  29. package/fesm2022/acorex-components-common.mjs +5 -3
  30. package/fesm2022/acorex-components-common.mjs.map +1 -1
  31. package/fesm2022/acorex-components-drawer.mjs +2 -2
  32. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  33. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  34. package/fesm2022/acorex-components-form.mjs +1 -1
  35. package/fesm2022/acorex-components-form.mjs.map +1 -1
  36. package/fesm2022/acorex-components-menu.mjs +4 -4
  37. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  38. package/fesm2022/acorex-components-otp.mjs +31 -27
  39. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  40. package/fesm2022/acorex-components-phone-box.mjs +20 -19
  41. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  42. package/fesm2022/acorex-components-picker.mjs +7 -4
  43. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  44. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  45. package/fesm2022/acorex-components-search-box.mjs +2 -2
  46. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  47. package/fesm2022/acorex-components-select-box.mjs +5 -3
  48. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  49. package/fesm2022/acorex-components-selection-list.mjs +7 -3
  50. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  51. package/fesm2022/acorex-components-side-menu.mjs +2 -2
  52. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  53. package/fesm2022/acorex-components-tabs.mjs +4 -3
  54. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  55. package/fesm2022/acorex-components-text-area.mjs +2 -2
  56. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  57. package/fesm2022/acorex-components-wysiwyg.mjs +2 -0
  58. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  59. package/form/lib/validation-rule.directive.d.ts +1 -1
  60. package/otp/lib/otp.component.d.ts +16 -15
  61. package/package.json +1 -1
  62. package/phone-box/lib/phone-box.component.d.ts +1 -2
  63. package/picker/lib/picker.component.d.ts +2 -2
  64. package/range-slider/lib/range-slider.component.d.ts +2 -2
  65. package/tabs/lib/tab-item.component.d.ts +9 -9
  66. package/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.d.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-common.mjs","sources":["../../../../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/placement.ts","../../../../libs/components/common/src/lib/types/selection-mode.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/services/dom.service.ts","../../../../libs/components/common/src/lib/components/base-component.class.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/interactive-component.class.ts","../../../../libs/components/common/src/lib/components/button-base-component.class.ts","../../../../libs/components/common/src/lib/components/value-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 { 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/**\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\n}","import { clone, flatten } from 'lodash-es';\n\nconst defaultOffset = 3;\n\nexport type AXPlacement =\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'end'\n | 'end-top'\n | 'end-bottom'\n | 'start'\n | 'start-top'\n | 'start-bottom';\nexport type AXPlacementType = AXConnectedPosition | AXConnectedPosition[] | AXPlacement | AXPlacement[];\n\nexport function convertToPlacement(value: AXPlacementType): AXConnectedPosition[] {\n const result: AXConnectedPosition[] = [];\n if (value == null) return result;\n if (Array.isArray(value)) {\n const list = flatten(value.map((m) => convertToPlacement(m)).filter((m) => m != null)).map((m) => clone(m));\n result.push(...list);\n } else {\n if (typeof value === 'string') {\n const p = AX_PLACEMENT_MAP[value];\n if (p) {\n result.push(...[clone(p.origin), ...clone(p.alts)]);\n }\n } else {\n if ('originX' in value && 'originY' in value) {\n result.push(clone(value));\n }\n }\n }\n return result;\n}\n\nexport interface AXConnectedPosition {\n originX: 'start' | 'center' | 'end';\n originY: 'top' | 'center' | 'bottom';\n overlayX: 'start' | 'center' | 'end';\n overlayY: 'top' | 'center' | 'bottom';\n weight?: number;\n offsetX?: number;\n offsetY?: number;\n}\n\nexport const AX_PLACEMENT_TOP: AXConnectedPosition = {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_TOP_START: AXConnectedPosition = {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -defaultOffset,\n};\nexport const AX_PLACEMENT_TOP_END: AXConnectedPosition = {\n originX: 'end',\n originY: 'top',\n overlayX: '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: [AX_PLACEMENT_BOTTOM_END, AX_PLACEMENT_TOP_START, AX_PLACEMENT_TOP_END],\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","/**\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 { AXValidationRuleOptions, AXValidationSummary } from '@acorex/core/validation';\nimport { EventEmitter, Injectable } from '@angular/core';\nimport { AXEvent, 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(\n executor: (resolve: (value?: AXComponentResult | PromiseLike<AXComponentResult>) => void, reject: (reason?: any) => void) => void,\n ) {\n super(executor);\n }\n\n public close() {\n if (this.closeMethod) {\n this.closeMethod();\n }\n }\n}\n\n@Injectable()\nexport abstract class AXComponent {}\n\n@Injectable()\nexport abstract class AXClosbaleComponent extends AXComponent {\n abstract close(): 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","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 { filter } from 'lodash-es';\nimport { 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}\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.floor(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 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 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>(\n items: T[],\n options: { key: string; pageSize: number } = { key: 'id', pageSize: 100 },\n): AXDataSource {\n const config: AXDataSourceConfig = {\n key: options.key,\n pageSize: options.pageSize,\n load: (e: AXDataSourceQuery) => {\n const result = e.filter ? filter(items, e.filter) : items;\n return Promise.resolve({\n items: result.slice(e.skip, e.skip + e.take),\n total: result.length,\n });\n },\n byKey: (v: unknown) => Promise.resolve<T>(items.find((c) => c[options.key] == v)),\n };\n return new AXDataSource(config);\n}\n","export const AX_STYLE_COLOR_TYPES = ['primary', 'secondary', 'success', 'warning', 'danger', 'info', 'ghost'];\n\n/**\n * A token that specifies the color style of component.\n */\nexport type AXStyleColorType = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info' | 'ghost';\n\nexport type AXStyleLookType = 'solid' | 'blank' | 'outline' | 'twotone' | 'flat' | 'fill' | 'link' | 'none';\n\nexport const AX_STYLE_LOOK_TYPES = ['solid', 'blank', 'outline', 'twotone', 'flat', 'fill', 'none'];\n\nexport const AX_LOCATIONS = [\n 'bottom-start',\n 'bottom-center',\n 'bottom-end',\n 'top-start',\n 'top-center',\n 'top-end',\n 'center-end',\n 'center-start',\n];\n\nexport type AXLocation =\n | 'bottom-start'\n | 'bottom-center'\n | 'bottom-end'\n | 'top-start'\n | 'top-center'\n | 'top-end'\n | 'center-end'\n | 'center-start';\n","import { AfterViewInit, Directive, ElementRef, Host, Input, Optional, Renderer2, Self } from '@angular/core';\nimport { AXFocusableComponent } from '../classes/components.class';\n\n@Directive({\n selector: '[axAutoFocus]',\n})\nexport class AXAutoFocusDirective implements AfterViewInit {\n @Input('axAutoFocus')\n public autoFocus?: boolean = true;\n\n @Input('axAutoFocusTime')\n time = 50;\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 const attr = document.createAttribute('autofocus');\n focusable.setAttributeNode(attr);\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({\n selector: '[axHotkey]',\n})\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({\n selector: '[axInfiniteScroller]',\n})\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 declarations: [AXResponsiveDirective, AXInfiniteScrollerDirective, AXAutoFocusDirective, AXHotkeyDirective],\n imports: [],\n exports: [AXResponsiveDirective, AXInfiniteScrollerDirective, AXAutoFocusDirective, AXHotkeyDirective],\n providers: [AXHotkeysService],\n})\nexport class AXCommonModule {}\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 afterNextRender,\n inject,\n signal,\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\n\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 = 'ghost';\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 { 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 { EventEmitter } from '@angular/core';\nimport { classes } from 'polytype';\nimport { MXColorLookComponent } from './colorlook-component.class';\nimport { MXInteractiveComponent } from './interactive-component.class';\n\nexport class MXButtonBaseComponent extends classes(MXInteractiveComponent, MXColorLookComponent) {\n /**\n * Emits an event when the text associated with the button changes.\n *\n * @event\n */\n textChange: EventEmitter<string> = new EventEmitter();\n private _text: string;\n /**\n * Defines the primary text to show inside the button.\n */\n get text(): string {\n return this._text;\n }\n set text(v: string) {\n this.setOption({\n name: 'text',\n value: v,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n\n /**\n * Emits an event when the toggleable state of the action sheet changes.\n *\n * @event\n */\n toggleableChange: EventEmitter<boolean> = new EventEmitter();\n private _toggleable?: boolean = false;\n /**\n * Provides visual styling that indicates if the Button is active\n */\n get toggleable(): boolean {\n return this._toggleable;\n }\n set toggleable(value: boolean) {\n this.setOption({\n name: 'toggleable',\n value,\n });\n }\n\n /**\n * Emits an event whenever the selection state of the component changes.\n *\n * @event\n */\n selectedChange: EventEmitter<boolean> = new EventEmitter();\n private _selected?: boolean = false;\n /**\n * Indicates if the Button is selected or not\n */\n get selected(): boolean {\n return this._selected;\n }\n set selected(value: boolean) {\n this.setOption({\n name: 'selected',\n value,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n /**\n * @ignore\n */\n constructor() {\n super();\n }\n /**\n * @ignore\n */\n protected get cssClasses() {\n const cssClasses = {\n 'ax-button-icon': !this.text,\n 'ax-state-disabled': this.disabled,\n 'ax-state-selected': this.selected,\n 'ax-el-interactive': true,\n };\n cssClasses[`ax-el-${this['color'] || 'solid'}${this['look'] ? '-' + this['look'] : '-solid'}`] = true;\n return cssClasses;\n }\n}\n","import { isBrowser } from '@acorex/core/platform';\nimport { AXValidationService, AXValidationSummary } from '@acorex/core/validation';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { EventEmitter, Injectable, inject } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { clone, 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 = clone(this.value);\n if (!isEqual(old, v)) {\n this._value = v;\n this.emitOnValueChangedEvent(old, this.value);\n\n this.internalValueChanged(this.value);\n }\n if (v == null || v == undefined || v == '' || (Array.isArray(v) && v.length == 0)) {\n this.setState('clear');\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 private validationService = inject(AXValidationService);\n\n public validationRulesChange: EventEmitter<AXFormValidationRule[]> = new EventEmitter<\n AXFormValidationRule[]\n >();\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(\n (r) => r.rule !== rule.rule || !isEqual(r.options, rule.options),\n );\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]) {\n const span = 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","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 { 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])\n 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 } else {\n obj[this.valueField] = r || key;\n obj[this.textField] = r;\n }\n })\n .finally(() => {\n obj['isLoading'] = false;\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 ||\n coerceBooleanProperty(item[this.disabledField]) === true ||\n (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 }\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 { Directive, 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 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 (this.color() === 'ghost') {\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","import { ChangeDetectorRef, Directive, ElementRef, Input, OnDestroy } 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 = 'rgb(255, 255, 255 , 0.3)';\n\n ripple: HTMLSpanElement | null;\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\n const circle = 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 * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXFocusableComponent","i1.AXComponent","i2.AXHotkeysService","filter","i1"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-common.mjs","sources":["../../../../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/placement.ts","../../../../libs/components/common/src/lib/types/selection-mode.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/services/dom.service.ts","../../../../libs/components/common/src/lib/components/base-component.class.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/interactive-component.class.ts","../../../../libs/components/common/src/lib/components/button-base-component.class.ts","../../../../libs/components/common/src/lib/components/value-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 { 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/**\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\n}","import { clone, flatten } from 'lodash-es';\n\nconst defaultOffset = 3;\n\nexport type AXPlacement =\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'end'\n | 'end-top'\n | 'end-bottom'\n | 'start'\n | 'start-top'\n | 'start-bottom';\nexport type AXPlacementType = AXConnectedPosition | AXConnectedPosition[] | AXPlacement | AXPlacement[];\n\nexport function convertToPlacement(value: AXPlacementType): AXConnectedPosition[] {\n const result: AXConnectedPosition[] = [];\n if (value == null) return result;\n if (Array.isArray(value)) {\n const list = flatten(value.map((m) => convertToPlacement(m)).filter((m) => m != null)).map((m) => clone(m));\n result.push(...list);\n } else {\n if (typeof value === 'string') {\n const p = AX_PLACEMENT_MAP[value];\n if (p) {\n result.push(...[clone(p.origin), ...clone(p.alts)]);\n }\n } else {\n if ('originX' in value && 'originY' in value) {\n result.push(clone(value));\n }\n }\n }\n return result;\n}\n\nexport interface AXConnectedPosition {\n originX: 'start' | 'center' | 'end';\n originY: 'top' | 'center' | 'bottom';\n overlayX: 'start' | 'center' | 'end';\n overlayY: 'top' | 'center' | 'bottom';\n weight?: number;\n offsetX?: number;\n offsetY?: number;\n}\n\nexport const AX_PLACEMENT_TOP: AXConnectedPosition = {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_TOP_START: AXConnectedPosition = {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -defaultOffset,\n};\nexport const AX_PLACEMENT_TOP_END: AXConnectedPosition = {\n originX: 'end',\n originY: 'top',\n overlayX: '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: [AX_PLACEMENT_BOTTOM_END, AX_PLACEMENT_TOP_START, AX_PLACEMENT_TOP_END],\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","/**\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 { AXValidationRuleOptions, AXValidationSummary } from '@acorex/core/validation';\nimport { EventEmitter, Injectable } from '@angular/core';\nimport { AXEvent, 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(\n executor: (resolve: (value?: AXComponentResult | PromiseLike<AXComponentResult>) => void, reject: (reason?: any) => void) => void,\n ) {\n super(executor);\n }\n\n public close() {\n if (this.closeMethod) {\n this.closeMethod();\n }\n }\n}\n\n@Injectable()\nexport abstract class AXComponent {}\n\n@Injectable()\nexport abstract class AXClosbaleComponent extends AXComponent {\n abstract close(): 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","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 { filter } from 'lodash-es';\nimport { 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}\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.floor(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 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 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>(\n items: T[],\n options: { key: string; pageSize: number } = { key: 'id', pageSize: 100 },\n): AXDataSource {\n const config: AXDataSourceConfig = {\n key: options.key,\n pageSize: options.pageSize,\n load: (e: AXDataSourceQuery) => {\n const result = e.filter ? filter(items, e.filter) : items;\n return Promise.resolve({\n items: result.slice(e.skip, e.skip + e.take),\n total: result.length,\n });\n },\n byKey: (v: unknown) => Promise.resolve<T>(items.find((c) => c[options.key] == v)),\n };\n return new AXDataSource(config);\n}\n","export const AX_STYLE_COLOR_TYPES = ['primary', 'secondary', 'success', 'warning', 'danger', 'info', 'ghost'];\n\n/**\n * A token that specifies the color style of component.\n */\nexport type AXStyleColorType = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info' | 'ghost';\n\nexport type AXStyleLookType = 'solid' | 'blank' | 'outline' | 'twotone' | 'flat' | 'fill' | 'link' | 'none';\n\nexport const AX_STYLE_LOOK_TYPES = ['solid', 'blank', 'outline', 'twotone', 'flat', 'fill', 'none'];\n\nexport const AX_LOCATIONS = [\n 'bottom-start',\n 'bottom-center',\n 'bottom-end',\n 'top-start',\n 'top-center',\n 'top-end',\n 'center-end',\n 'center-start',\n];\n\nexport type AXLocation =\n | 'bottom-start'\n | 'bottom-center'\n | 'bottom-end'\n | 'top-start'\n | 'top-center'\n | 'top-end'\n | 'center-end'\n | 'center-start';\n","import { AfterViewInit, Directive, ElementRef, Host, Input, Optional, Renderer2, Self } from '@angular/core';\nimport { AXFocusableComponent } from '../classes/components.class';\n\n@Directive({\n selector: '[axAutoFocus]',\n})\nexport class AXAutoFocusDirective implements AfterViewInit {\n @Input('axAutoFocus')\n public autoFocus?: boolean = true;\n\n @Input('axAutoFocusTime')\n time = 50;\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 const attr = document.createAttribute('autofocus');\n focusable.setAttributeNode(attr);\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({\n selector: '[axHotkey]',\n})\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({\n selector: '[axInfiniteScroller]',\n})\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 declarations: [AXResponsiveDirective, AXInfiniteScrollerDirective, AXAutoFocusDirective, AXHotkeyDirective],\n imports: [],\n exports: [AXResponsiveDirective, AXInfiniteScrollerDirective, AXAutoFocusDirective, AXHotkeyDirective],\n providers: [AXHotkeysService],\n})\nexport class AXCommonModule {}\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 afterNextRender,\n inject,\n signal,\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\n\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 = 'ghost';\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 { 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 { EventEmitter } from '@angular/core';\nimport { classes } from 'polytype';\nimport { MXColorLookComponent } from './colorlook-component.class';\nimport { MXInteractiveComponent } from './interactive-component.class';\n\nexport class MXButtonBaseComponent extends classes(MXInteractiveComponent, MXColorLookComponent) {\n /**\n * Emits an event when the text associated with the button changes.\n *\n * @event\n */\n textChange: EventEmitter<string> = new EventEmitter();\n private _text: string;\n /**\n * Defines the primary text to show inside the button.\n */\n get text(): string {\n return this._text;\n }\n set text(v: string) {\n this.setOption({\n name: 'text',\n value: v,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n\n /**\n * Emits an event when the toggleable state of the action sheet changes.\n *\n * @event\n */\n toggleableChange: EventEmitter<boolean> = new EventEmitter();\n private _toggleable?: boolean = false;\n /**\n * Provides visual styling that indicates if the Button is active\n */\n get toggleable(): boolean {\n return this._toggleable;\n }\n set toggleable(value: boolean) {\n this.setOption({\n name: 'toggleable',\n value,\n });\n }\n\n /**\n * Emits an event whenever the selection state of the component changes.\n *\n * @event\n */\n selectedChange: EventEmitter<boolean> = new EventEmitter();\n private _selected?: boolean = false;\n /**\n * Indicates if the Button is selected or not\n */\n get selected(): boolean {\n return this._selected;\n }\n set selected(value: boolean) {\n this.setOption({\n name: 'selected',\n value,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n /**\n * @ignore\n */\n constructor() {\n super();\n }\n /**\n * @ignore\n */\n protected get cssClasses() {\n const cssClasses = {\n 'ax-button-icon': !this.text,\n 'ax-state-disabled': this.disabled,\n 'ax-state-selected': this.selected,\n 'ax-el-interactive': true,\n };\n cssClasses[`ax-el-${this['color'] || 'solid'}${this['look'] ? '-' + this['look'] : '-solid'}`] = true;\n return cssClasses;\n }\n}\n","import { isBrowser } from '@acorex/core/platform';\nimport { AXValidationService, AXValidationSummary } from '@acorex/core/validation';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { EventEmitter, Injectable, inject } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { clone, 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 = clone(this.value);\n\n if (v == null || v == undefined || v == '' || (Array.isArray(v) && v.length == 0)) {\n this.setState('clear');\n }\n\n if (!old && !v) return;\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 private validationService = inject(AXValidationService);\n\n public validationRulesChange: EventEmitter<AXFormValidationRule[]> = new EventEmitter<\n AXFormValidationRule[]\n >();\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(\n (r) => r.rule !== rule.rule || !isEqual(r.options, rule.options),\n );\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]) {\n const span = 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","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 { 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])\n 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 } else {\n obj[this.valueField] = r || key;\n obj[this.textField] = r;\n }\n })\n .finally(() => {\n obj['isLoading'] = false;\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 ||\n coerceBooleanProperty(item[this.disabledField]) === true ||\n (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 }\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 { Directive, 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 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 (this.color() === 'ghost') {\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","import { ChangeDetectorRef, Directive, ElementRef, Input, OnDestroy } 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 = 'rgb(255, 255, 255 , 0.3)';\n\n ripple: HTMLSpanElement | null;\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\n const circle = 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 * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXFocusableComponent","i1.AXComponent","i2.AXHotkeysService","filter","i1"],"mappings":"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"}