@acorex/components 18.14.1-next.5 → 18.15.1
Sign up to get free protection for your applications and to get access to all the features.
- package/comment/lib/comment-container/comment-container.component.d.ts +1 -0
- package/common/lib/components/value-component.class.d.ts +1 -0
- package/common/lib/directives/auto-focus.directive.d.ts +1 -0
- package/common/lib/directives/ripple.directive.d.ts +1 -0
- package/data-table/lib/columns/data-table-column-resizable.directive.d.ts +1 -0
- package/data-table/lib/data-table/data-table.component.d.ts +61 -60
- package/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.d.ts +7 -6
- package/drawer/lib/drawer/drawer-item/drawer.component.d.ts +2 -0
- package/esm2022/audio-wave/lib/audio-wave.component.mjs +79 -14
- package/esm2022/avatar/lib/avatar.component.mjs +2 -2
- package/esm2022/button/lib/button.component.mjs +2 -2
- package/esm2022/calendar/lib/calendar-range.component.mjs +2 -2
- package/esm2022/calendar/lib/calendar.component.mjs +3 -3
- package/esm2022/comment/lib/comment-container/comment-container.component.mjs +7 -3
- package/esm2022/common/lib/components/value-component.class.mjs +4 -2
- package/esm2022/common/lib/directives/auto-focus.directive.mjs +5 -3
- package/esm2022/common/lib/directives/inverted-color.directive.mjs +1 -1
- package/esm2022/common/lib/directives/ripple.directive.mjs +5 -3
- package/esm2022/conversation/lib/conversation-message/conversation-message.component.mjs +2 -2
- package/esm2022/conversation/lib/conversation-messages/conversation-message-voice/conversation-message-voice.component.mjs +2 -2
- package/esm2022/cron-job/index.mjs +1 -1
- package/esm2022/cron-job/lib/cron-job-container/cron-job-container.component.mjs +3 -3
- package/esm2022/cron-job/lib/day/day.component.mjs +3 -3
- package/esm2022/cron-job/lib/hours/hours.component.mjs +3 -3
- package/esm2022/cron-job/lib/minutes/minutes.component.mjs +3 -3
- package/esm2022/cron-job/lib/month/month.component.mjs +3 -3
- package/esm2022/cron-job/lib/seconds/seconds.component.mjs +3 -3
- package/esm2022/cron-job/lib/year/year.component.mjs +3 -3
- package/esm2022/data-table/lib/columns/data-table-column-resizable.directive.mjs +9 -7
- package/esm2022/data-table/lib/data-table/data-table.component.mjs +71 -67
- package/esm2022/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.mjs +16 -11
- package/esm2022/drawer/lib/drawer/drawer-item/drawer.component.mjs +5 -2
- package/esm2022/list/lib/list.component.mjs +17 -5
- package/esm2022/loading/lib/loading-spinner.component.mjs +2 -2
- package/esm2022/loading-dialog/lib/loading-dialog.component.mjs +2 -2
- package/esm2022/menu/lib/context-menu.component.mjs +28 -21
- package/esm2022/password-box/lib/password-box.component.mjs +13 -5
- package/esm2022/password-box/lib/password-box.module.mjs +19 -3
- package/esm2022/password-box/lib/password-strength-validation/password-strength-validation.component.mjs +36 -14
- package/esm2022/popover/lib/popover.component.mjs +5 -3
- package/esm2022/popup/lib/popup.component.mjs +2 -2
- package/esm2022/uploader/lib/uploader-zone.directive.mjs +7 -5
- package/fesm2022/acorex-components-audio-wave.mjs +78 -13
- package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
- package/fesm2022/acorex-components-avatar.mjs +2 -2
- package/fesm2022/acorex-components-avatar.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +2 -2
- package/fesm2022/acorex-components-calendar.mjs +4 -4
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-comment.mjs +7 -4
- package/fesm2022/acorex-components-comment.mjs.map +1 -1
- package/fesm2022/acorex-components-common.mjs +6 -3
- package/fesm2022/acorex-components-common.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +2 -2
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-cron-job.mjs +14 -14
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +89 -81
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +4 -2
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +16 -4
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +2 -2
- package/fesm2022/acorex-components-loading.mjs +2 -2
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +24 -18
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +65 -19
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +4 -3
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +2 -2
- package/fesm2022/acorex-components-uploader.mjs +7 -6
- package/fesm2022/acorex-components-uploader.mjs.map +1 -1
- package/menu/lib/context-menu.component.d.ts +2 -1
- package/package.json +1 -1
- package/password-box/lib/password-box.component.d.ts +9 -1
- package/password-box/lib/password-box.module.d.ts +3 -1
- package/password-box/lib/password-strength-validation/password-strength-validation.component.d.ts +23 -1
- package/popover/lib/popover.component.d.ts +1 -0
- package/uploader/lib/uploader-zone.directive.d.ts +1 -0
@@ -1,8 +1,10 @@
|
|
1
1
|
import * as i5$1 from '@acorex/components/common';
|
2
2
|
import { MXBaseComponent, convertArrayToDataSource, AXListDataSource, AXPagedComponent, AXCommonModule, AXRippleDirective } from '@acorex/components/common';
|
3
3
|
import * as i0 from '@angular/core';
|
4
|
-
import { EventEmitter, signal, Injectable, Input, Output, Directive, HostListener,
|
4
|
+
import { EventEmitter, signal, Injectable, Input, Output, inject, Directive, HostListener, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, ChangeDetectorRef, NgZone, computed, ContentChildren, NgModule } from '@angular/core';
|
5
5
|
import { isBrowser } from '@acorex/core/platform';
|
6
|
+
import * as i1$1 from '@angular/common';
|
7
|
+
import { DOCUMENT, CommonModule } from '@angular/common';
|
6
8
|
import { Subject, debounceTime, buffer, filter } from 'rxjs';
|
7
9
|
import { __decorate, __metadata } from 'tslib';
|
8
10
|
import * as i2 from '@acorex/core/format';
|
@@ -17,8 +19,6 @@ import { AXButtonModule } from '@acorex/components/button';
|
|
17
19
|
import * as i4 from '@acorex/components/dropdown';
|
18
20
|
import { AXDropdownModule } from '@acorex/components/dropdown';
|
19
21
|
import { AXUnsubscriber, AXHtmlUtil } from '@acorex/core/utils';
|
20
|
-
import * as i1$1 from '@angular/common';
|
21
|
-
import { CommonModule } from '@angular/common';
|
22
22
|
import * as i6 from '@acorex/components/data-pager';
|
23
23
|
import { AXDataPagerModule } from '@acorex/components/data-pager';
|
24
24
|
import { AXResultModule } from '@acorex/components/result';
|
@@ -112,6 +112,7 @@ class AXDataTableColumnResizableDirective {
|
|
112
112
|
this.renderer = renderer;
|
113
113
|
this.ngZone = ngZone;
|
114
114
|
this.cdr = cdr;
|
115
|
+
this.document = inject(DOCUMENT);
|
115
116
|
this.resize$ = new Subject();
|
116
117
|
this.onMouseMoveRawBound = this.onMouseMoveRaw.bind(this);
|
117
118
|
this.onMouseUpBound = this.onMouseUp.bind(this);
|
@@ -123,8 +124,8 @@ class AXDataTableColumnResizableDirective {
|
|
123
124
|
this.ngZone.runOutsideAngular(() => {
|
124
125
|
this.startX = event.pageX;
|
125
126
|
this.startWidth = this.el?.nativeElement?.parentElement.offsetWidth;
|
126
|
-
document.addEventListener('mousemove', this.onMouseMoveRawBound);
|
127
|
-
document.addEventListener('mouseup', this.onMouseUpBound);
|
127
|
+
this.document.addEventListener('mousemove', this.onMouseMoveRawBound);
|
128
|
+
this.document.addEventListener('mouseup', this.onMouseUpBound);
|
128
129
|
});
|
129
130
|
this.cdr.detach(); // Detach the change detector
|
130
131
|
}
|
@@ -140,8 +141,8 @@ class AXDataTableColumnResizableDirective {
|
|
140
141
|
}
|
141
142
|
}
|
142
143
|
onMouseUp() {
|
143
|
-
document.removeEventListener('mousemove', this.onMouseMoveRawBound);
|
144
|
-
document.removeEventListener('mouseup', this.onMouseUpBound);
|
144
|
+
this.document.removeEventListener('mousemove', this.onMouseMoveRawBound);
|
145
|
+
this.document.removeEventListener('mouseup', this.onMouseUpBound);
|
145
146
|
this.cdr.reattach(); // Reattach the change detector
|
146
147
|
}
|
147
148
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXDataTableColumnResizableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
@@ -911,6 +912,7 @@ class AXDataTableComponent extends AXBaseDataTable {
|
|
911
912
|
super(...arguments);
|
912
913
|
this._unsubscriber = inject(AXUnsubscriber);
|
913
914
|
this._zone = inject(NgZone);
|
915
|
+
this.document = inject(DOCUMENT);
|
914
916
|
/**
|
915
917
|
* @ignore
|
916
918
|
*/
|
@@ -992,73 +994,73 @@ class AXDataTableComponent extends AXBaseDataTable {
|
|
992
994
|
*/
|
993
995
|
this.fixedHeader = true;
|
994
996
|
/**
|
995
|
-
|
996
|
-
|
997
|
-
|
998
|
-
|
997
|
+
* Indicates if the table footer should be displayed.
|
998
|
+
*
|
999
|
+
* @defaultValue `false`
|
1000
|
+
*/
|
999
1001
|
this.showFooter = false;
|
1000
1002
|
/**
|
1001
|
-
|
1002
|
-
|
1003
|
-
|
1004
|
-
|
1003
|
+
* Indicates if the table footer should be fixed.
|
1004
|
+
*
|
1005
|
+
* @defaultValue `true`
|
1006
|
+
*/
|
1005
1007
|
this.fixedFooter = true;
|
1006
1008
|
/**
|
1007
|
-
|
1008
|
-
|
1009
|
-
|
1010
|
-
|
1009
|
+
* Specifies the height of each item in the table.
|
1010
|
+
*
|
1011
|
+
* @defaultValue `40`
|
1012
|
+
*/
|
1011
1013
|
this.itemHeight = 40;
|
1012
1014
|
/**
|
1013
|
-
|
1014
|
-
|
1015
|
-
|
1016
|
-
|
1015
|
+
* Enables or disables row reordering.
|
1016
|
+
*
|
1017
|
+
* @defaultValue `false`
|
1018
|
+
*/
|
1017
1019
|
this.allowReordering = false;
|
1018
1020
|
/**
|
1019
|
-
|
1020
|
-
|
1021
|
-
|
1022
|
-
|
1021
|
+
* Enables or disables paging.
|
1022
|
+
*
|
1023
|
+
* @defaultValue `true`
|
1024
|
+
*/
|
1023
1025
|
this.paging = true;
|
1024
1026
|
/**
|
1025
|
-
|
1026
|
-
|
1027
|
-
|
1028
|
-
|
1027
|
+
* Specifies how data should be fetched.
|
1028
|
+
*
|
1029
|
+
* @defaultValue `'auto'`
|
1030
|
+
*/
|
1029
1031
|
this.fetchDataMode = 'auto';
|
1030
1032
|
/**
|
1031
|
-
|
1032
|
-
|
1033
|
-
|
1034
|
-
|
1033
|
+
* Configuration for loading state.
|
1034
|
+
*
|
1035
|
+
* @defaultValue `{ enabled: true, animation: true }`
|
1036
|
+
*/
|
1035
1037
|
this.loading = {
|
1036
1038
|
enabled: true,
|
1037
1039
|
animation: true,
|
1038
1040
|
};
|
1039
1041
|
/**
|
1040
|
-
|
1041
|
-
|
1042
|
-
|
1043
|
-
|
1042
|
+
* Emits when the focused row changes.
|
1043
|
+
*
|
1044
|
+
* @event
|
1045
|
+
*/
|
1044
1046
|
this.focusedRowChange = new EventEmitter();
|
1045
1047
|
/**
|
1046
|
-
|
1047
|
-
|
1048
|
-
|
1049
|
-
|
1048
|
+
* Emits when a row is clicked.
|
1049
|
+
*
|
1050
|
+
* @event onRowClick
|
1051
|
+
*/
|
1050
1052
|
this.onRowClick = new EventEmitter();
|
1051
1053
|
/**
|
1052
|
-
|
1053
|
-
|
1054
|
-
|
1055
|
-
|
1054
|
+
* Emits when a row is double-clicked.
|
1055
|
+
*
|
1056
|
+
* @event onRowDbClick
|
1057
|
+
*/
|
1056
1058
|
this.onRowDbClick = new EventEmitter();
|
1057
1059
|
/**
|
1058
|
-
|
1059
|
-
|
1060
|
-
|
1061
|
-
|
1060
|
+
* Emits when the order of columns changes.
|
1061
|
+
*
|
1062
|
+
* @event onColumnsOrderChanged
|
1063
|
+
*/
|
1062
1064
|
this.onColumnsOrderChanged = new EventEmitter();
|
1063
1065
|
/**
|
1064
1066
|
* @ignore
|
@@ -1069,7 +1071,9 @@ class AXDataTableComponent extends AXBaseDataTable {
|
|
1069
1071
|
*/
|
1070
1072
|
this.onResizeColumnMove = (event) => {
|
1071
1073
|
const diffX = event.pageX - this.resizeColumnProp.startX;
|
1072
|
-
const newWidth = this.rtl
|
1074
|
+
const newWidth = this.rtl
|
1075
|
+
? this.resizeColumnProp.startWidth - diffX
|
1076
|
+
: this.resizeColumnProp.startWidth + diffX;
|
1073
1077
|
this.resizeColumnProp.thElement.style.width = `${Math.max(100, newWidth)}px`;
|
1074
1078
|
this.resizeColumnProp.thElement.setAttribute('new-width', `${newWidth}`);
|
1075
1079
|
};
|
@@ -1077,24 +1081,24 @@ class AXDataTableComponent extends AXBaseDataTable {
|
|
1077
1081
|
* @ignore
|
1078
1082
|
*/
|
1079
1083
|
this.onResizeColumnEnd = () => {
|
1080
|
-
document.removeEventListener('mousemove', this.onResizeColumnMove);
|
1081
|
-
document.removeEventListener('mouseup', this.onResizeColumnEnd);
|
1084
|
+
this.document.removeEventListener('mousemove', this.onResizeColumnMove);
|
1085
|
+
this.document.removeEventListener('mouseup', this.onResizeColumnEnd);
|
1082
1086
|
const newWidth = parseInt(this.resizeColumnProp.thElement.attributes.getNamedItem('new-width').value);
|
1083
1087
|
this.columns.get(this.resizeColumnProp.columnIndex).width = `${Math.max(100, newWidth)}px`;
|
1084
1088
|
this.resetResizingProcess();
|
1085
1089
|
};
|
1086
1090
|
}
|
1087
1091
|
/**
|
1088
|
-
|
1089
|
-
|
1092
|
+
* Gets the currently focused row.
|
1093
|
+
*/
|
1090
1094
|
get focusedRow() {
|
1091
1095
|
return this._focusedRow;
|
1092
1096
|
}
|
1093
1097
|
/**
|
1094
|
-
|
1095
|
-
|
1096
|
-
|
1097
|
-
|
1098
|
+
* Sets the currently focused row and emits the change event.
|
1099
|
+
*
|
1100
|
+
* @param v - The row to be focused.
|
1101
|
+
*/
|
1098
1102
|
set focusedRow(v) {
|
1099
1103
|
this._focusedRow = v;
|
1100
1104
|
this.focusedRowChange.emit(v);
|
@@ -1208,13 +1212,13 @@ class AXDataTableComponent extends AXBaseDataTable {
|
|
1208
1212
|
});
|
1209
1213
|
}
|
1210
1214
|
/**
|
1211
|
-
|
1212
|
-
|
1213
|
-
|
1214
|
-
|
1215
|
-
|
1216
|
-
|
1217
|
-
|
1215
|
+
* Handles the click event on a column header.
|
1216
|
+
* Toggles the sorting direction or removes the sort if already sorted.
|
1217
|
+
*
|
1218
|
+
* @param e - The mouse event triggered by the click.
|
1219
|
+
* @param column - The column that was clicked.
|
1220
|
+
* @ignore
|
1221
|
+
*/
|
1218
1222
|
handleColumnClick(e, column) {
|
1219
1223
|
if (column instanceof AXDataTableTextColumnComponent) {
|
1220
1224
|
const sort = this.dataSource.query.sort.find((c) => c.field == column.dataField);
|
@@ -1246,9 +1250,9 @@ class AXDataTableComponent extends AXBaseDataTable {
|
|
1246
1250
|
return undefined;
|
1247
1251
|
}
|
1248
1252
|
/**
|
1249
|
-
|
1250
|
-
|
1251
|
-
|
1253
|
+
* Refreshes the data in the data source and resets the data pager to the first page.
|
1254
|
+
* @ignore
|
1255
|
+
*/
|
1252
1256
|
refresh() {
|
1253
1257
|
this.dataSource.refresh();
|
1254
1258
|
if (this.dataPager) {
|
@@ -1272,8 +1276,8 @@ class AXDataTableComponent extends AXBaseDataTable {
|
|
1272
1276
|
this.resizeColumnProp.startWidth = parseInt(this.resizeColumnProp.thElement.style.width);
|
1273
1277
|
this.resizeColumnProp.columnIndex = columnIndex;
|
1274
1278
|
this._zone.runOutsideAngular(() => {
|
1275
|
-
document.addEventListener('mousemove', this.onResizeColumnMove);
|
1276
|
-
document.addEventListener('mouseup', this.onResizeColumnEnd);
|
1279
|
+
this.document.addEventListener('mousemove', this.onResizeColumnMove);
|
1280
|
+
this.document.addEventListener('mouseup', this.onResizeColumnEnd);
|
1277
1281
|
});
|
1278
1282
|
}
|
1279
1283
|
/**
|
@@ -1398,6 +1402,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
1398
1402
|
class AXInfiniteScrollDataTableComponent extends AXBaseDataTable {
|
1399
1403
|
constructor() {
|
1400
1404
|
super(...arguments);
|
1405
|
+
this.document = inject(DOCUMENT);
|
1401
1406
|
this.ngZone = inject(NgZone);
|
1402
1407
|
/**
|
1403
1408
|
* Emits an event when the page changes.
|
@@ -1607,14 +1612,17 @@ class AXInfiniteScrollDataTableComponent extends AXBaseDataTable {
|
|
1607
1612
|
* @ignore
|
1608
1613
|
*/
|
1609
1614
|
updateHeight() {
|
1610
|
-
this.height = `calc(100% - ${(this.headerContainer?.nativeElement.clientHeight ?? 0) +
|
1615
|
+
this.height = `calc(100% - ${(this.headerContainer?.nativeElement.clientHeight ?? 0) +
|
1616
|
+
(this.footerContainer?.nativeElement.clientHeight ?? 0)}px)`;
|
1611
1617
|
}
|
1612
1618
|
/**
|
1613
1619
|
* @ignore
|
1614
1620
|
*/
|
1615
1621
|
updateWidth() {
|
1616
1622
|
if (this.columns && this.columns.length) {
|
1617
|
-
const sumPx = sum(this.columns
|
1623
|
+
const sumPx = sum(this.columns
|
1624
|
+
.toArray()
|
1625
|
+
.map((c) => (typeof c.width == 'number' ? c.width : Number(c.width.replace('px', '')))));
|
1618
1626
|
this.width = `${Math.max(sumPx, this.getHostElement().clientWidth - 5)}px`;
|
1619
1627
|
}
|
1620
1628
|
}
|
@@ -1640,7 +1648,7 @@ class AXInfiniteScrollDataTableComponent extends AXBaseDataTable {
|
|
1640
1648
|
fixedColumnTable.querySelectorAll('tr').forEach((n) => n.remove());
|
1641
1649
|
for (const row of originalRows) {
|
1642
1650
|
const fixedCells = Array.from(row.querySelectorAll('[data-fixed="start"]'));
|
1643
|
-
const fixedRow = document.createElement('tr');
|
1651
|
+
const fixedRow = this.document.createElement('tr');
|
1644
1652
|
for (const cell of fixedCells) {
|
1645
1653
|
const clonedCell = cell.cloneNode(true);
|
1646
1654
|
fixedRow.appendChild(clonedCell);
|
@@ -1705,12 +1713,12 @@ class AXInfiniteScrollDataTableComponent extends AXBaseDataTable {
|
|
1705
1713
|
});
|
1706
1714
|
}
|
1707
1715
|
/**
|
1708
|
-
|
1709
|
-
|
1710
|
-
|
1711
|
-
|
1712
|
-
|
1713
|
-
|
1716
|
+
* Handles column header clicks to toggle sorting on the column.
|
1717
|
+
*
|
1718
|
+
* @param e - The mouse event triggered by the click.
|
1719
|
+
* @param column - The column that was clicked.
|
1720
|
+
* @ignore
|
1721
|
+
*/
|
1714
1722
|
handleColumnClick(e, column) {
|
1715
1723
|
if (column instanceof AXDataTableTextColumnComponent) {
|
1716
1724
|
const sort = this.dataSource.query.sort.find((c) => c.field == column.dataField);
|