@acorex/components 7.8.6 → 7.8.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/lib/components/selection-base.component.class.d.ts +1 -0
- package/esm2022/common/lib/components/selection-base.component.class.mjs +18 -12
- package/esm2022/drawer/lib/drawer.component.mjs +1 -1
- package/esm2022/dropdown/lib/dropdown-box.component.mjs +3 -2
- package/esm2022/list/lib/list.component.mjs +8 -4
- package/esm2022/picker/lib/picker.component.mjs +1 -3
- package/esm2022/popover/lib/popover.component.mjs +12 -10
- package/esm2022/select-box/lib/select-box.component.mjs +12 -6
- package/esm2022/tabs/lib/tabs.component.mjs +2 -2
- package/fesm2022/acorex-components-common.mjs +16 -10
- package/fesm2022/acorex-components-common.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +2 -1
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +7 -3
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-picker.mjs +0 -2
- package/fesm2022/acorex-components-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +11 -9
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +11 -5
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +2 -2
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/list/lib/list.component.d.ts +3 -2
- package/package.json +7 -7
@@ -1362,7 +1362,7 @@ class MXSelectionValueComponent extends MXValueComponent {
|
|
1362
1362
|
this._disabledField = 'disabled';
|
1363
1363
|
this._multiple = false;
|
1364
1364
|
this._selectedItems = [];
|
1365
|
-
this._cacheList =
|
1365
|
+
this._cacheList = {};
|
1366
1366
|
}
|
1367
1367
|
get valueField() {
|
1368
1368
|
return this._valueField;
|
@@ -1398,6 +1398,9 @@ class MXSelectionValueComponent extends MXValueComponent {
|
|
1398
1398
|
this.setOption({
|
1399
1399
|
name: 'multiple',
|
1400
1400
|
value: v,
|
1401
|
+
afterCallback: () => {
|
1402
|
+
this.clear(false);
|
1403
|
+
},
|
1401
1404
|
});
|
1402
1405
|
}
|
1403
1406
|
get selectedItems() {
|
@@ -1445,10 +1448,10 @@ class MXSelectionValueComponent extends MXValueComponent {
|
|
1445
1448
|
const existsItem = findBykey ? this.getItemByKey(key) : null;
|
1446
1449
|
if (existsItem && existsItem instanceof Promise) {
|
1447
1450
|
obj[this.valueField] = key;
|
1448
|
-
obj[this.textField] = key;
|
1449
1451
|
obj['isLoading'] = true;
|
1450
1452
|
//
|
1451
|
-
existsItem
|
1453
|
+
existsItem
|
1454
|
+
.then((r) => {
|
1452
1455
|
if (typeof r === 'object') {
|
1453
1456
|
obj[this.valueField] = r[this.valueField];
|
1454
1457
|
obj[this.textField] = r[this.textField];
|
@@ -1456,8 +1459,10 @@ class MXSelectionValueComponent extends MXValueComponent {
|
|
1456
1459
|
else {
|
1457
1460
|
obj[this.valueField] = r || key;
|
1458
1461
|
}
|
1459
|
-
})
|
1462
|
+
})
|
1463
|
+
.finally(() => {
|
1460
1464
|
obj['isLoading'] = false;
|
1465
|
+
this._cacheList[cacheKey] = obj;
|
1461
1466
|
this.cdr.markForCheck();
|
1462
1467
|
});
|
1463
1468
|
}
|
@@ -1468,14 +1473,10 @@ class MXSelectionValueComponent extends MXValueComponent {
|
|
1468
1473
|
obj[this.valueField] = complex ? item[this.valueField] : item;
|
1469
1474
|
}
|
1470
1475
|
}
|
1471
|
-
// if (!obj[this.textField]) {
|
1472
|
-
// obj[this.textField] = obj[this.valueField];
|
1473
|
-
// }
|
1474
1476
|
this._cacheList[cacheKey] = obj;
|
1475
1477
|
return obj;
|
1476
1478
|
}
|
1477
1479
|
_normalizeSelectedItems() {
|
1478
|
-
debugger;
|
1479
1480
|
const values = Array.isArray(this.value) ? this.value : this.value != null ? [this.value] : [];
|
1480
1481
|
this._selectedItems = values.map((v) => this.normalizeItem(v));
|
1481
1482
|
}
|
@@ -1524,14 +1525,19 @@ class MXSelectionValueComponent extends MXValueComponent {
|
|
1524
1525
|
(this.disabledCallback ? this.disabledCallback({ item, index: -1 }) : false));
|
1525
1526
|
}
|
1526
1527
|
getDisplayText(item) {
|
1527
|
-
debugger;
|
1528
1528
|
const normalizeItem = this.normalizeItem(item);
|
1529
|
-
return normalizeItem['isLoading']
|
1529
|
+
return normalizeItem['isLoading']
|
1530
|
+
? AXTranslator.get('layout.loading.text')
|
1531
|
+
: normalizeItem[this.textField] || normalizeItem[this.valueField];
|
1530
1532
|
}
|
1531
1533
|
getValue(item) {
|
1532
1534
|
const normalizeItem = this.normalizeItem(item);
|
1533
1535
|
return normalizeItem[this.valueField];
|
1534
1536
|
}
|
1537
|
+
clearSelectionCache() {
|
1538
|
+
this._cacheList = {};
|
1539
|
+
this._selectedItems = [];
|
1540
|
+
}
|
1535
1541
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: MXSelectionValueComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
1536
1542
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: MXSelectionValueComponent }); }
|
1537
1543
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-common.mjs","sources":["../../../../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/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/directives/ripple.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/acorex-components-common.ts"],"sourcesContent":["import { clone, flatten } from 'lodash-es';\n\nconst defaultOffset = 3;\n\nexport type AXPlacement =\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'end'\n | 'end-top'\n | 'end-bottom'\n | 'start'\n | 'start-top'\n | 'start-bottom';\nexport type AXPlacementType = AXConnectedPosition | AXConnectedPosition[] | AXPlacement | AXPlacement[];\n\nexport function convertToPlacement(value: AXPlacementType): AXConnectedPosition[] {\n const result: AXConnectedPosition[] = [];\n if (value == null) return result;\n if (Array.isArray(value)) {\n const list = flatten(value.map((m) => convertToPlacement(m)).filter((m) => m != null)).map((m) =>\n clone(m),\n );\n result.push(...list);\n } else {\n if (typeof value === 'string') {\n const p = AX_PLACEMENT_MAP[value];\n if (p) {\n result.push(...[clone(p.origin), ...clone(p.alts)]);\n }\n } else {\n if ('originX' in value && 'originY' in value) {\n result.push(clone(value));\n }\n }\n }\n return result;\n}\n\nexport interface AXConnectedPosition {\n originX: 'start' | 'center' | 'end';\n originY: 'top' | 'center' | 'bottom';\n overlayX: 'start' | 'center' | 'end';\n overlayY: 'top' | 'center' | 'bottom';\n weight?: number;\n offsetX?: number;\n offsetY?: number;\n}\n\nexport const AX_PLACEMENT_TOP: AXConnectedPosition = {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_TOP_START: AXConnectedPosition = {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -defaultOffset,\n};\nexport const AX_PLACEMENT_TOP_END: AXConnectedPosition = {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_BOTTOM: AXConnectedPosition = {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: defaultOffset,\n};\n\nexport const AX_PLACEMENT_BOTTOM_START: AXConnectedPosition = {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: defaultOffset,\n};\n\nexport const AX_PLACEMENT_BOTTOM_END: AXConnectedPosition = {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: defaultOffset,\n};\n\nexport const AX_PLACEMENT_START: AXConnectedPosition = {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_START_TOP: AXConnectedPosition = {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_START_BOTTOM: AXConnectedPosition = {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_END: AXConnectedPosition = {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: defaultOffset,\n};\n\nexport const AX_PLACEMENT_END_TOP: AXConnectedPosition = {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: defaultOffset,\n};\n\nexport const AX_PLACEMENT_END_BOTTOM: AXConnectedPosition = {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: defaultOffset,\n};\n\nexport const AX_PLACEMENT_MAP: {\n [key: string]: { origin: AXConnectedPosition; alts?: AXConnectedPosition[] };\n} = {\n top: {\n origin: AX_PLACEMENT_TOP,\n alts: [AX_PLACEMENT_BOTTOM],\n },\n 'top-start': {\n origin: AX_PLACEMENT_TOP_START,\n alts: [AX_PLACEMENT_BOTTOM_START],\n },\n 'top-end': {\n origin: AX_PLACEMENT_TOP_END,\n alts: [AX_PLACEMENT_BOTTOM_END],\n },\n bottom: {\n origin: AX_PLACEMENT_BOTTOM,\n alts: [AX_PLACEMENT_BOTTOM],\n },\n 'bottom-start': {\n origin: AX_PLACEMENT_BOTTOM_START,\n alts: [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> extends AXHtmlEvent<MouseEvent> {\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 { 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\n/**\n * Defines a CSS class—or multiple classes separated by spaces— which are applied to a span element inside the Button. Allows the usage of custom icons after the primary text.\n */\nexport class AXComponentClosedPromise extends Promise<AXComponentResult> {\n private closeMethod: () => void;\n constructor(\n executor: (\n resolve: (value?: AXComponentResult | PromiseLike<AXComponentResult>) => void,\n reject: (reason?: any) => void,\n ) => void,\n ) {\n super(executor);\n }\n\n public close() {\n if (this.closeMethod) {\n this.closeMethod();\n }\n }\n}\n\n@Injectable()\nexport abstract class AXComponent {}\n\n@Injectable()\nexport abstract class AXClosbaleComponent extends AXComponent {\n abstract close(): void;\n}\n\n@Injectable()\nexport abstract class AXClearableComponent extends AXComponent {\n abstract clear(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 name(): string;\n abstract get value(): unknown;\n abstract onValueChanged: EventEmitter<AXValueChangedEvent<unknown>>;\n abstract commitValue(value: unknown, u: boolean);\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 { ListIterateeCustom } from 'lodash';\nimport { filter } from 'lodash-es';\nimport { Subject } from 'rxjs';\n\nexport type AXDateSourceFilterPredicate<T> = ListIterateeCustom<T, boolean>;\nexport interface AXDataSourceQuery<T> {\n take?: number;\n skip?: number;\n predicate?: AXDateSourceFilterPredicate<T>;\n}\nexport interface AXDataSourceCallbackResult<T> {\n items: Array<T>;\n total: number;\n}\n\nexport type AXDataSourceLoadCallback<T> = (e: AXDataSourceQuery<T>) => Promise<AXDataSourceCallbackResult<T>>;\nexport type AXDataSourceByKeyCallback<T> = (key: unknown) => Promise<T>;\n\nexport interface AXDateSourceConfig<T = unknown> {\n key?: string;\n pageSize: number;\n load: AXDataSourceLoadCallback<T>;\n byKey?: AXDataSourceByKeyCallback<T>;\n}\n\nexport interface AXDateSourceChangedEvent<T = unknown> {\n cachedItems: Array<T>;\n items: Array<T>;\n totalCount: number;\n totalPages: number;\n page: number;\n}\n\nexport class AXDateSource<T = unknown> {\n config!: AXDateSourceConfig<T>;\n\n private _totalCount = 0;\n private get totalCount(): number {\n return this._totalCount;\n }\n\n private get totalPages(): number {\n return Math.floor(this.totalCount / 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<T>;\n\n public onChanged = new Subject<AXDateSourceChangedEvent<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: AXDateSourceConfig<T>) {\n this.config = config;\n this._cachedItems = new Array(this.config.pageSize);\n this._items = new Array(0);\n this._query = { skip: 0, take: this.config.pageSize };\n }\n\n private load() {\n const page = this._page;\n if (this.fetchedPages.has(page)) {\n return;\n }\n this.setLoadingState(true);\n this.fetchedPages.add(page);\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\n public filter(predicate: AXDateSourceFilterPredicate<T> = null) {\n this.reset();\n this._query.predicate = predicate;\n this.load();\n }\n public reset() {\n this._query.predicate = null;\n this._query.skip = 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 currentPredicate = this._query.predicate;\n this.reset();\n this._query.predicate = currentPredicate;\n this.load();\n }\n\n find(key: unknown): T | Promise<T> {\n const fromCache = this.cachedItems.find(\n (c) => (!this.config.key && c == key) || (c && this.config.key && c[this.config.key] == key),\n );\n if (fromCache) return fromCache;\n return this.config.byKey ? this.config.byKey(key) : null;\n }\n}\n\nexport function convertArrayToDataSource<T>(\n items: T[],\n options: { key: string; pageSize: number } = { key: 'id', pageSize: 20 },\n): AXDateSource {\n const config: AXDateSourceConfig = {\n key: options.key,\n pageSize: options.pageSize,\n load: (e: AXDataSourceQuery<T>) => {\n const result = e.predicate ? filter(items, e.predicate) : 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 AXDateSource(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' | '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 constructor(\n private renderer: Renderer2,\n private el: ElementRef<HTMLElement>,\n @Host()\n @Self()\n @Optional()\n public _host: AXFocusableComponent,\n ) {}\n\n @Input('focus-time')\n time: number = 50;\n\n ngAfterViewInit(): void {\n if (this.autoFocus) {\n if (this._host) {\n setTimeout(() => {\n this._host.focus();\n }, this.time);\n return;\n }\n const list = ['button', 'input', '[href]', 'select', 'textarea', '[tabindex]'].map(\n (c) => c + ':not([tabindex=\"-1\"])',\n );\n\n const focusable =\n 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 element: any;\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 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 // console.error('Element is not accessible');\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(\n (positions) => this.isUserScrollingDown(positions) && this.isScrollExpectedPercent(positions[1]),\n ),\n );\n }\n\n private requestCallbackOnScroll() {\n this.requestOnScroll$ = this.userScrolledDown$;\n\n if (this.immediateCallback) {\n this.requestOnScroll$ = this.requestOnScroll$.pipe(\n startWith([AX_DEFAULT_SCROLL_POSITION, AX_DEFAULT_SCROLL_POSITION]),\n );\n }\n\n this.requestOnScroll$.pipe(\n exhaustMap(() => {\n return this.scrollCallback();\n }),\n );\n //.subscribe((data) => { console.log(data) }, (err) => console.log(err));\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\n ? c.element.classList.add(...c.classList)\n : 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 { Directive, ElementRef, Input, OnDestroy } from '@angular/core';\n\n@Directive({\n selector: '[axRipple]',\n})\nexport class AXRippleDirective implements OnDestroy {\n @Input() axRippleColor = 'rgb(0, 0, 0 , 0.1)';\n\n constructor(private el: ElementRef<HTMLElement>) {\n el.nativeElement.addEventListener('click', this.createRipple.bind(this));\n }\n\n ngOnDestroy() {\n this.el.nativeElement.removeEventListener('click', this.createRipple.bind(this));\n }\n\n private createRipple(event: MouseEvent) {\n this.el.nativeElement.style.overflow = 'hidden';\n const element = event.currentTarget as HTMLElement;\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\n const ripple = element.getElementsByClassName('ax-ripple')[0] as HTMLDivElement;\n if (ripple) {\n ripple.remove();\n // this.el.nativeElement.style.overflow = 'initial';\n }\n\n element.appendChild(circle);\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 { AXRippleDirective } from './directives/ripple.directive';\nimport { AXHotkeysService } from './services/hotkey.service';\n@NgModule({\n declarations: [\n AXResponsiveDirective,\n AXInfiniteScrollerDirective,\n AXAutoFocusDirective,\n AXHotkeyDirective,\n AXRippleDirective,\n ],\n imports: [],\n exports: [\n AXResponsiveDirective,\n AXInfiniteScrollerDirective,\n AXAutoFocusDirective,\n AXHotkeyDirective,\n AXRippleDirective,\n ],\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 inject,\n} from '@angular/core';\nimport { AXOptionChangedEvent } from '../classes/events.class';\nimport { AXDomService } from '../services/dom.service';\n\nexport type MXComponentOptionChanging<T = any> = { name: string; value?: T };\nexport type MXComponentOptionChanged<T = any> = MXComponentOptionChanging<T>;\n\nexport type MXComponentSetOption<T> = {\n name: string;\n value?: T;\n afterCallback?: (oldValue?: T, newValue?: T) => void;\n beforeCallback?: (oldValue?: T, newValue?: T) => void;\n};\n\nexport type AXComponentState = 'clear' | 'success' | 'error';\n\n@Injectable()\nexport abstract class MXBaseComponent {\n private _cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\n private _elementRef: ElementRef = inject(ElementRef);\n private _viewRef: ViewContainerRef = inject(ViewContainerRef);\n private _domService = inject(AXDomService);\n\n private _id: string = this._domService.generateElementId();\n public get id(): string {\n return this._id;\n }\n public set id(v: string) {\n this._id = v;\n }\n\n protected get cdr(): ChangeDetectorRef {\n return this._cdr;\n }\n\n public getHostElement<T = HTMLElement>(): T {\n return this._elementRef.nativeElement as T;\n }\n\n protected getViewContainer(): ViewContainerRef {\n return this._viewRef;\n }\n\n protected internalOptionChanging(option: MXComponentOptionChanging): any {\n return option?.value;\n }\n\n protected internalOptionChanged(option: MXComponentOptionChanged): void {}\n\n protected ngOnInit(): void {\n (this.getHostElement() as any).__axContext__ = this;\n }\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 //TODO : check real changes\n if (option.beforeCallback) {\n newValue = option.beforeCallback(oldValue, newValue);\n }\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 private _detectLayout() {\n this.rtl =\n this.getHostElement().classList.contains('ax-rtl') ||\n window.getComputedStyle(this.getHostElement(), null).getPropertyValue('direction') === 'rtl';\n }\n\n private _rtl: boolean;\n\n public get rtl(): boolean {\n return this._rtl;\n }\n\n public set rtl(value: boolean) {\n this.setOption({ name: 'rtl', value });\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 } from '@angular/core';\nimport { AXStyleLookType } from '../classes/styles.class';\nimport { MXBaseComponent } from './base-component.class';\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 protected onTouchedCallback: () => void = noop;\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedCallback = fn;\n }\n\n private _touched = false;\n public get touched(): boolean {\n return this._touched;\n }\n\n protected markAsTouched() {\n if (!this.touched) {\n this.onTouchedCallback();\n this._touched = true;\n }\n }\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 // TODO: we should remove it or rename it\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({ name: 'tabIndex', value: value != null ? coerceNumberProperty(value) : 0 });\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","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 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 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 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 constructor() {\n super();\n }\n\n protected get cssClasses() {\n const cssClasses = {\n 'ax-button-icon': !this.text,\n 'ax-state-disabled': this.disabled,\n 'ax-state-selected': this.selected,\n };\n cssClasses[`ax-${this['color'] || 'solid'}${this['look'] ? '-' + this['look'] : '-solid'}`] = true;\n return cssClasses;\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { EventEmitter, Injectable } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { clone, isEqual } from 'lodash-es';\nimport { noop } from 'rxjs';\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 stateChange: EventEmitter<AXComponentState> = new EventEmitter<AXComponentState>();\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 if (v == null || v == undefined || v == '' || (Array.isArray(v) && v.length == 0)) {\n this.setState('clear');\n }\n this.internalValueChanged(this.value);\n }\n }\n\n //stateChange:EventEmitter<string> = new EventEmitter<string>();\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 ngAfterViewInit(): void {\n const a = this.getHostElement().querySelectorAll('[ax-form-input=\"true\"]');\n a.forEach((c) => {\n c.removeAttribute('ax-form-input');\n });\n this.getHostElement().setAttribute('ax-form-input', 'true');\n this._checkRequired();\n }\n\n protected ngOnDestroy() {\n this.onValueChanged?.unsubscribe();\n this.onOptionChanged?.unsubscribe();\n }\n\n private _checkRequired() {\n const isRequired = Array.from(this.getHostElement().querySelectorAll('ax-validation-rule')).some(\n (c) => (c as any).__axContext__?.enabled && (c as any).__axContext__?.rule == 'required',\n );\n //\n if (isRequired) {\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') as any)?.__axContext__;\n if (label) label.required = true;\n }\n }\n\n validate(): Promise<any> {\n const rules = Array.from(this.getHostElement().querySelectorAll('ax-validation-rule')).filter(\n (c) => (c as any).__axContext__.enabled,\n );\n //\n if (!rules || rules.length === 0) {\n this.setState('clear');\n return Promise.resolve({\n result: true,\n value: this.value,\n name: this.name,\n id: this.id,\n });\n }\n\n return new Promise<any>((resolve) => {\n Promise.all(\n rules\n .filter((c) => typeof (c as any)?.validate === 'function')\n .map((c) => {\n return (c as any).validate(this.value);\n }),\n ).then((d) => {\n const error = d.find((c) => c.result === false);\n if (error) {\n this.setState('error', error.message);\n resolve({\n result: false,\n value: this.value,\n message: error.message,\n name: this.name,\n id: this.id,\n });\n } else {\n this.setState('success');\n resolve({\n result: true,\n value: this.value,\n name: this.name,\n id: this.id,\n });\n }\n });\n });\n }\n\n protected setState(state: AXComponentState, ...args) {\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.innerText = 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 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 clear(e: boolean) {\n this.commitValue(null, e);\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","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Injectable } from '@angular/core';\nimport { MXValueComponent } from './value-component.class';\nimport { AXTranslator } from '@acorex/core/translation';\n\n@Injectable()\nexport abstract class MXSelectionValueComponent<T = unknown> extends MXValueComponent<unknown> {\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\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 });\n }\n\n _selectedItems: unknown[] = [];\n get selectedItems(): unknown[] {\n return this._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\n ? this.normalizeItemsList(value, true)\n : this.normalizeItemsList([value], true);\n\n if (normalizedItems.length == 0) {\n return this.multiple ? [] : null;\n }\n const result = this.multiple\n ? normalizedItems.map((c) => c[this.valueField])\n : 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 private _cacheList: { [key: string | number]: unknown }[] = [];\n\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._cacheList[cacheKey] && this._cacheList[cacheKey][this.textField])\n return this._cacheList[cacheKey];\n //\n const obj: unknown = {};\n if (complex && hasText) {\n Object.assign(obj, item);\n }\n else {\n const existsItem = findBykey ? this.getItemByKey(key) : null;\n if (existsItem && existsItem instanceof Promise) {\n obj[this.valueField] = key;\n obj[this.textField] = key;\n obj['isLoading'] = true;\n //\n existsItem.then((r) => {\n if (typeof r === 'object') {\n obj[this.valueField] = r[this.valueField];\n obj[this.textField] = r[this.textField]\n }\n else {\n obj[this.valueField] = r || key;\n }\n }).finally(() => {\n obj['isLoading'] = false;\n this.cdr.markForCheck();\n });\n } else if (existsItem) {\n obj[this.valueField] = complex ? existsItem[this.valueField] : existsItem;\n } else {\n obj[this.valueField] = complex ? item[this.valueField] : item;\n }\n }\n // if (!obj[this.textField]) {\n // obj[this.textField] = obj[this.valueField];\n // }\n this._cacheList[cacheKey] = obj;\n return obj;\n }\n\n private _normalizeSelectedItems() {\n debugger\n const values = Array.isArray(this.value) ? this.value : this.value != null ? [this.value] : [];\n this._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)\n ? this.normalizeItemsList(items)\n : [this.normalizeItem(items)];\n const newSelectedItems = this.selectedItems.filter(\n (i) => !normalizeItems.some((n) => n[this.valueField] == i[this.valueField]),\n );\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)\n ? this.normalizeItemsList(items)\n : [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 debugger\n const normalizeItem = this.normalizeItem(item) as any;\n return normalizeItem['isLoading'] ? AXTranslator.get('layout.loading.text') : (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","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","/**\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/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/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/directives/ripple.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/acorex-components-common.ts"],"sourcesContent":["import { clone, flatten } from 'lodash-es';\n\nconst defaultOffset = 3;\n\nexport type AXPlacement =\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'end'\n | 'end-top'\n | 'end-bottom'\n | 'start'\n | 'start-top'\n | 'start-bottom';\nexport type AXPlacementType = AXConnectedPosition | AXConnectedPosition[] | AXPlacement | AXPlacement[];\n\nexport function convertToPlacement(value: AXPlacementType): AXConnectedPosition[] {\n const result: AXConnectedPosition[] = [];\n if (value == null) return result;\n if (Array.isArray(value)) {\n const list = flatten(value.map((m) => convertToPlacement(m)).filter((m) => m != null)).map((m) =>\n clone(m),\n );\n result.push(...list);\n } else {\n if (typeof value === 'string') {\n const p = AX_PLACEMENT_MAP[value];\n if (p) {\n result.push(...[clone(p.origin), ...clone(p.alts)]);\n }\n } else {\n if ('originX' in value && 'originY' in value) {\n result.push(clone(value));\n }\n }\n }\n return result;\n}\n\nexport interface AXConnectedPosition {\n originX: 'start' | 'center' | 'end';\n originY: 'top' | 'center' | 'bottom';\n overlayX: 'start' | 'center' | 'end';\n overlayY: 'top' | 'center' | 'bottom';\n weight?: number;\n offsetX?: number;\n offsetY?: number;\n}\n\nexport const AX_PLACEMENT_TOP: AXConnectedPosition = {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_TOP_START: AXConnectedPosition = {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -defaultOffset,\n};\nexport const AX_PLACEMENT_TOP_END: AXConnectedPosition = {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_BOTTOM: AXConnectedPosition = {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: defaultOffset,\n};\n\nexport const AX_PLACEMENT_BOTTOM_START: AXConnectedPosition = {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: defaultOffset,\n};\n\nexport const AX_PLACEMENT_BOTTOM_END: AXConnectedPosition = {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: defaultOffset,\n};\n\nexport const AX_PLACEMENT_START: AXConnectedPosition = {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_START_TOP: AXConnectedPosition = {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_START_BOTTOM: AXConnectedPosition = {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: -defaultOffset,\n};\n\nexport const AX_PLACEMENT_END: AXConnectedPosition = {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: defaultOffset,\n};\n\nexport const AX_PLACEMENT_END_TOP: AXConnectedPosition = {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: defaultOffset,\n};\n\nexport const AX_PLACEMENT_END_BOTTOM: AXConnectedPosition = {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: defaultOffset,\n};\n\nexport const AX_PLACEMENT_MAP: {\n [key: string]: { origin: AXConnectedPosition; alts?: AXConnectedPosition[] };\n} = {\n top: {\n origin: AX_PLACEMENT_TOP,\n alts: [AX_PLACEMENT_BOTTOM],\n },\n 'top-start': {\n origin: AX_PLACEMENT_TOP_START,\n alts: [AX_PLACEMENT_BOTTOM_START],\n },\n 'top-end': {\n origin: AX_PLACEMENT_TOP_END,\n alts: [AX_PLACEMENT_BOTTOM_END],\n },\n bottom: {\n origin: AX_PLACEMENT_BOTTOM,\n alts: [AX_PLACEMENT_BOTTOM],\n },\n 'bottom-start': {\n origin: AX_PLACEMENT_BOTTOM_START,\n alts: [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> extends AXHtmlEvent<MouseEvent> {\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 { 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\n/**\n * Defines a CSS class—or multiple classes separated by spaces— which are applied to a span element inside the Button. Allows the usage of custom icons after the primary text.\n */\nexport class AXComponentClosedPromise extends Promise<AXComponentResult> {\n private closeMethod: () => void;\n constructor(\n executor: (\n resolve: (value?: AXComponentResult | PromiseLike<AXComponentResult>) => void,\n reject: (reason?: any) => void,\n ) => void,\n ) {\n super(executor);\n }\n\n public close() {\n if (this.closeMethod) {\n this.closeMethod();\n }\n }\n}\n\n@Injectable()\nexport abstract class AXComponent {}\n\n@Injectable()\nexport abstract class AXClosbaleComponent extends AXComponent {\n abstract close(): void;\n}\n\n@Injectable()\nexport abstract class AXClearableComponent extends AXComponent {\n abstract clear(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 name(): string;\n abstract get value(): unknown;\n abstract onValueChanged: EventEmitter<AXValueChangedEvent<unknown>>;\n abstract commitValue(value: unknown, u: boolean);\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 { ListIterateeCustom } from 'lodash';\nimport { filter } from 'lodash-es';\nimport { Subject } from 'rxjs';\n\nexport type AXDateSourceFilterPredicate<T> = ListIterateeCustom<T, boolean>;\nexport interface AXDataSourceQuery<T> {\n take?: number;\n skip?: number;\n predicate?: AXDateSourceFilterPredicate<T>;\n}\nexport interface AXDataSourceCallbackResult<T> {\n items: Array<T>;\n total: number;\n}\n\nexport type AXDataSourceLoadCallback<T> = (e: AXDataSourceQuery<T>) => Promise<AXDataSourceCallbackResult<T>>;\nexport type AXDataSourceByKeyCallback<T> = (key: unknown) => Promise<T>;\n\nexport interface AXDateSourceConfig<T = unknown> {\n key?: string;\n pageSize: number;\n load: AXDataSourceLoadCallback<T>;\n byKey?: AXDataSourceByKeyCallback<T>;\n}\n\nexport interface AXDateSourceChangedEvent<T = unknown> {\n cachedItems: Array<T>;\n items: Array<T>;\n totalCount: number;\n totalPages: number;\n page: number;\n}\n\nexport class AXDateSource<T = unknown> {\n config!: AXDateSourceConfig<T>;\n\n private _totalCount = 0;\n private get totalCount(): number {\n return this._totalCount;\n }\n\n private get totalPages(): number {\n return Math.floor(this.totalCount / 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<T>;\n\n public onChanged = new Subject<AXDateSourceChangedEvent<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: AXDateSourceConfig<T>) {\n this.config = config;\n this._cachedItems = new Array(this.config.pageSize);\n this._items = new Array(0);\n this._query = { skip: 0, take: this.config.pageSize };\n }\n\n private load() {\n const page = this._page;\n if (this.fetchedPages.has(page)) {\n return;\n }\n this.setLoadingState(true);\n this.fetchedPages.add(page);\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\n public filter(predicate: AXDateSourceFilterPredicate<T> = null) {\n this.reset();\n this._query.predicate = predicate;\n this.load();\n }\n public reset() {\n this._query.predicate = null;\n this._query.skip = 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 currentPredicate = this._query.predicate;\n this.reset();\n this._query.predicate = currentPredicate;\n this.load();\n }\n\n find(key: unknown): T | Promise<T> {\n const fromCache = this.cachedItems.find(\n (c) => (!this.config.key && c == key) || (c && this.config.key && c[this.config.key] == key),\n );\n if (fromCache) return fromCache;\n return this.config.byKey ? this.config.byKey(key) : null;\n }\n}\n\nexport function convertArrayToDataSource<T>(\n items: T[],\n options: { key: string; pageSize: number } = { key: 'id', pageSize: 20 },\n): AXDateSource {\n const config: AXDateSourceConfig = {\n key: options.key,\n pageSize: options.pageSize,\n load: (e: AXDataSourceQuery<T>) => {\n const result = e.predicate ? filter(items, e.predicate) : 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 AXDateSource(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' | '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 constructor(\n private renderer: Renderer2,\n private el: ElementRef<HTMLElement>,\n @Host()\n @Self()\n @Optional()\n public _host: AXFocusableComponent,\n ) {}\n\n @Input('focus-time')\n time: number = 50;\n\n ngAfterViewInit(): void {\n if (this.autoFocus) {\n if (this._host) {\n setTimeout(() => {\n this._host.focus();\n }, this.time);\n return;\n }\n const list = ['button', 'input', '[href]', 'select', 'textarea', '[tabindex]'].map(\n (c) => c + ':not([tabindex=\"-1\"])',\n );\n\n const focusable =\n 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 element: any;\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 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 // console.error('Element is not accessible');\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(\n (positions) => this.isUserScrollingDown(positions) && this.isScrollExpectedPercent(positions[1]),\n ),\n );\n }\n\n private requestCallbackOnScroll() {\n this.requestOnScroll$ = this.userScrolledDown$;\n\n if (this.immediateCallback) {\n this.requestOnScroll$ = this.requestOnScroll$.pipe(\n startWith([AX_DEFAULT_SCROLL_POSITION, AX_DEFAULT_SCROLL_POSITION]),\n );\n }\n\n this.requestOnScroll$.pipe(\n exhaustMap(() => {\n return this.scrollCallback();\n }),\n );\n //.subscribe((data) => { console.log(data) }, (err) => console.log(err));\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\n ? c.element.classList.add(...c.classList)\n : 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 { Directive, ElementRef, Input, OnDestroy } from '@angular/core';\n\n@Directive({\n selector: '[axRipple]',\n})\nexport class AXRippleDirective implements OnDestroy {\n @Input() axRippleColor = 'rgb(0, 0, 0 , 0.1)';\n\n constructor(private el: ElementRef<HTMLElement>) {\n el.nativeElement.addEventListener('click', this.createRipple.bind(this));\n }\n\n ngOnDestroy() {\n this.el.nativeElement.removeEventListener('click', this.createRipple.bind(this));\n }\n\n private createRipple(event: MouseEvent) {\n this.el.nativeElement.style.overflow = 'hidden';\n const element = event.currentTarget as HTMLElement;\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\n const ripple = element.getElementsByClassName('ax-ripple')[0] as HTMLDivElement;\n if (ripple) {\n ripple.remove();\n // this.el.nativeElement.style.overflow = 'initial';\n }\n\n element.appendChild(circle);\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 { AXRippleDirective } from './directives/ripple.directive';\nimport { AXHotkeysService } from './services/hotkey.service';\n@NgModule({\n declarations: [\n AXResponsiveDirective,\n AXInfiniteScrollerDirective,\n AXAutoFocusDirective,\n AXHotkeyDirective,\n AXRippleDirective,\n ],\n imports: [],\n exports: [\n AXResponsiveDirective,\n AXInfiniteScrollerDirective,\n AXAutoFocusDirective,\n AXHotkeyDirective,\n AXRippleDirective,\n ],\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 inject,\n} from '@angular/core';\nimport { AXOptionChangedEvent } from '../classes/events.class';\nimport { AXDomService } from '../services/dom.service';\n\nexport type MXComponentOptionChanging<T = any> = { name: string; value?: T };\nexport type MXComponentOptionChanged<T = any> = MXComponentOptionChanging<T>;\n\nexport type MXComponentSetOption<T> = {\n name: string;\n value?: T;\n afterCallback?: (oldValue?: T, newValue?: T) => void;\n beforeCallback?: (oldValue?: T, newValue?: T) => void;\n};\n\nexport type AXComponentState = 'clear' | 'success' | 'error';\n\n@Injectable()\nexport abstract class MXBaseComponent {\n private _cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\n private _elementRef: ElementRef = inject(ElementRef);\n private _viewRef: ViewContainerRef = inject(ViewContainerRef);\n private _domService = inject(AXDomService);\n\n private _id: string = this._domService.generateElementId();\n public get id(): string {\n return this._id;\n }\n public set id(v: string) {\n this._id = v;\n }\n\n protected get cdr(): ChangeDetectorRef {\n return this._cdr;\n }\n\n public getHostElement<T = HTMLElement>(): T {\n return this._elementRef.nativeElement as T;\n }\n\n protected getViewContainer(): ViewContainerRef {\n return this._viewRef;\n }\n\n protected internalOptionChanging(option: MXComponentOptionChanging): any {\n return option?.value;\n }\n\n protected internalOptionChanged(option: MXComponentOptionChanged): void {}\n\n protected ngOnInit(): void {\n (this.getHostElement() as any).__axContext__ = this;\n }\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 //TODO : check real changes\n if (option.beforeCallback) {\n newValue = option.beforeCallback(oldValue, newValue);\n }\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 private _detectLayout() {\n this.rtl =\n this.getHostElement().classList.contains('ax-rtl') ||\n window.getComputedStyle(this.getHostElement(), null).getPropertyValue('direction') === 'rtl';\n }\n\n private _rtl: boolean;\n\n public get rtl(): boolean {\n return this._rtl;\n }\n\n public set rtl(value: boolean) {\n this.setOption({ name: 'rtl', value });\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 } from '@angular/core';\nimport { AXStyleLookType } from '../classes/styles.class';\nimport { MXBaseComponent } from './base-component.class';\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 protected onTouchedCallback: () => void = noop;\n\n registerOnTouched(fn: () => void): void {\n this.onTouchedCallback = fn;\n }\n\n private _touched = false;\n public get touched(): boolean {\n return this._touched;\n }\n\n protected markAsTouched() {\n if (!this.touched) {\n this.onTouchedCallback();\n this._touched = true;\n }\n }\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 // TODO: we should remove it or rename it\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({ name: 'tabIndex', value: value != null ? coerceNumberProperty(value) : 0 });\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","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 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 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 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 constructor() {\n super();\n }\n\n protected get cssClasses() {\n const cssClasses = {\n 'ax-button-icon': !this.text,\n 'ax-state-disabled': this.disabled,\n 'ax-state-selected': this.selected,\n };\n cssClasses[`ax-${this['color'] || 'solid'}${this['look'] ? '-' + this['look'] : '-solid'}`] = true;\n return cssClasses;\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { EventEmitter, Injectable } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { clone, isEqual } from 'lodash-es';\nimport { noop } from 'rxjs';\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 stateChange: EventEmitter<AXComponentState> = new EventEmitter<AXComponentState>();\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 if (v == null || v == undefined || v == '' || (Array.isArray(v) && v.length == 0)) {\n this.setState('clear');\n }\n this.internalValueChanged(this.value);\n }\n }\n\n //stateChange:EventEmitter<string> = new EventEmitter<string>();\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 ngAfterViewInit(): void {\n const a = this.getHostElement().querySelectorAll('[ax-form-input=\"true\"]');\n a.forEach((c) => {\n c.removeAttribute('ax-form-input');\n });\n this.getHostElement().setAttribute('ax-form-input', 'true');\n this._checkRequired();\n }\n\n protected ngOnDestroy() {\n this.onValueChanged?.unsubscribe();\n this.onOptionChanged?.unsubscribe();\n }\n\n private _checkRequired() {\n const isRequired = Array.from(this.getHostElement().querySelectorAll('ax-validation-rule')).some(\n (c) => (c as any).__axContext__?.enabled && (c as any).__axContext__?.rule == 'required',\n );\n //\n if (isRequired) {\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') as any)?.__axContext__;\n if (label) label.required = true;\n }\n }\n\n validate(): Promise<any> {\n const rules = Array.from(this.getHostElement().querySelectorAll('ax-validation-rule')).filter(\n (c) => (c as any).__axContext__.enabled,\n );\n //\n if (!rules || rules.length === 0) {\n this.setState('clear');\n return Promise.resolve({\n result: true,\n value: this.value,\n name: this.name,\n id: this.id,\n });\n }\n\n return new Promise<any>((resolve) => {\n Promise.all(\n rules\n .filter((c) => typeof (c as any)?.validate === 'function')\n .map((c) => {\n return (c as any).validate(this.value);\n }),\n ).then((d) => {\n const error = d.find((c) => c.result === false);\n if (error) {\n this.setState('error', error.message);\n resolve({\n result: false,\n value: this.value,\n message: error.message,\n name: this.name,\n id: this.id,\n });\n } else {\n this.setState('success');\n resolve({\n result: true,\n value: this.value,\n name: this.name,\n id: this.id,\n });\n }\n });\n });\n }\n\n protected setState(state: AXComponentState, ...args) {\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.innerText = 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 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 clear(e: boolean) {\n this.commitValue(null, e);\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","import { AXTranslator } from '@acorex/core/translation';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Injectable } from '@angular/core';\nimport { MXValueComponent } from './value-component.class';\n\n@Injectable()\nexport abstract class MXSelectionValueComponent<T = unknown> extends MXValueComponent<unknown> {\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\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.clear(false);\n },\n });\n }\n\n _selectedItems: unknown[] = [];\n get selectedItems(): unknown[] {\n return this._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\n ? this.normalizeItemsList(value, true)\n : this.normalizeItemsList([value], true);\n\n if (normalizedItems.length == 0) {\n return this.multiple ? [] : null;\n }\n const result = this.multiple\n ? normalizedItems.map((c) => c[this.valueField])\n : 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 private _cacheList: { [key: string | number]: 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._cacheList[cacheKey] && this._cacheList[cacheKey][this.textField])\n return this._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 //\n existsItem\n .then((r) => {\n if (typeof r === 'object') {\n obj[this.valueField] = r[this.valueField];\n obj[this.textField] = r[this.textField];\n } else {\n obj[this.valueField] = r || key;\n }\n })\n .finally(() => {\n obj['isLoading'] = false;\n this._cacheList[cacheKey] = obj;\n this.cdr.markForCheck();\n });\n } else if (existsItem) {\n obj[this.valueField] = complex ? existsItem[this.valueField] : existsItem;\n } else {\n obj[this.valueField] = complex ? item[this.valueField] : item;\n }\n }\n this._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._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)\n ? this.normalizeItemsList(items)\n : [this.normalizeItem(items)];\n const newSelectedItems = this.selectedItems.filter(\n (i) => !normalizeItems.some((n) => n[this.valueField] == i[this.valueField]),\n );\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)\n ? this.normalizeItemsList(items)\n : [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 normalizeItem['isLoading']\n ? AXTranslator.get('layout.loading.text')\n : 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._cacheList = {};\n this._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","/**\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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"}
|