@fundamental-ngx/platform 0.43.60 → 0.43.61
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/esm2020/table/table.component.mjs +3 -3
- package/esm2020/table-helpers/directives/table-draggable.directive.mjs +45 -4
- package/esm2020/table-helpers/directives/table-virtual-scroll.directive.mjs +7 -3
- package/fesm2015/fundamental-ngx-platform-table-helpers.mjs +49 -5
- package/fesm2015/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-table.mjs +2 -2
- package/fesm2015/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-table-helpers.mjs +48 -5
- package/fesm2020/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-table.mjs +2 -2
- package/fesm2020/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fundamental-ngx-platform-v0.43.61.tgz +0 -0
- package/package.json +4 -4
- package/schematics/ng-add/index.js +1 -1
- package/table-helpers/directives/table-draggable.directive.d.ts +10 -2
- package/table-helpers/directives/table-virtual-scroll.directive.d.ts +2 -0
- package/fundamental-ngx-platform-v0.43.60.tgz +0 -0
|
@@ -12,7 +12,7 @@ import { get } from 'lodash-es';
|
|
|
12
12
|
import equal from 'fast-deep-equal';
|
|
13
13
|
import cloneDeep from 'lodash-es/cloneDeep';
|
|
14
14
|
import set from 'lodash-es/set';
|
|
15
|
-
import { UP_ARROW, DOWN_ARROW,
|
|
15
|
+
import { LEFT_ARROW, RIGHT_ARROW, UP_ARROW, DOWN_ARROW, SPACE, PAGE_DOWN, PAGE_UP, END, HOME } from '@angular/cdk/keycodes';
|
|
16
16
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
17
17
|
import { DOCUMENT } from '@angular/common';
|
|
18
18
|
import { TableCellDirective } from '@fundamental-ngx/core/table';
|
|
@@ -2054,6 +2054,10 @@ class TableDraggableDirective extends TableDraggable {
|
|
|
2054
2054
|
get _rowsDraggable() {
|
|
2055
2055
|
return this.isTreeTable && this.enableRowReordering;
|
|
2056
2056
|
}
|
|
2057
|
+
/** @hidden */
|
|
2058
|
+
ngOnDestroy() {
|
|
2059
|
+
this._setDragInProgress(false);
|
|
2060
|
+
}
|
|
2057
2061
|
/** Sets table reference. */
|
|
2058
2062
|
setTable(table) {
|
|
2059
2063
|
this._table = table;
|
|
@@ -2062,7 +2066,7 @@ class TableDraggableDirective extends TableDraggable {
|
|
|
2062
2066
|
* Initiates drag&drop sequence.
|
|
2063
2067
|
*/
|
|
2064
2068
|
dragDropStart() {
|
|
2065
|
-
this.
|
|
2069
|
+
this._setDragInProgress(true);
|
|
2066
2070
|
}
|
|
2067
2071
|
/** Method called when dnd performed with the keyboard. */
|
|
2068
2072
|
dragRowFromKeyboard(dir, event, currentRowIndex, mode) {
|
|
@@ -2090,14 +2094,16 @@ class TableDraggableDirective extends TableDraggable {
|
|
|
2090
2094
|
dropCancelled() {
|
|
2091
2095
|
/** After timeout to make click event handled first */
|
|
2092
2096
|
this._ngZone.runOutsideAngular(() => {
|
|
2093
|
-
setTimeout(() =>
|
|
2097
|
+
setTimeout(() => {
|
|
2098
|
+
this._setDragInProgress(false);
|
|
2099
|
+
});
|
|
2094
2100
|
});
|
|
2095
2101
|
}
|
|
2096
2102
|
/** Method called when dragged item being dropped. */
|
|
2097
2103
|
dragDropItemDrop(event) {
|
|
2098
2104
|
/** After timeout to make click event handled first */
|
|
2099
2105
|
this._ngZone.runOutsideAngular(() => {
|
|
2100
|
-
setTimeout(() =>
|
|
2106
|
+
setTimeout(() => this._setDragInProgress(false));
|
|
2101
2107
|
});
|
|
2102
2108
|
this._onZoneFree(() => {
|
|
2103
2109
|
if (this.isTreeTable && event.draggedItemIndex !== event.replacedItemIndex) {
|
|
@@ -2136,6 +2142,11 @@ class TableDraggableDirective extends TableDraggable {
|
|
|
2136
2142
|
this.rowsRearrange.emit(new TableRowsRearrangeEvent(row.value, dropRow.value, event.draggedItemIndex, event.replacedItemIndex, event.insertAt, event.mode, rows));
|
|
2137
2143
|
}
|
|
2138
2144
|
/** @hidden */
|
|
2145
|
+
_setDragInProgress(dragging) {
|
|
2146
|
+
this.dragDropInProgress = dragging;
|
|
2147
|
+
dragging ? this._blockScrolling() : this._enableScrolling();
|
|
2148
|
+
}
|
|
2149
|
+
/** @hidden */
|
|
2139
2150
|
_isDroppedInsideItself(dropRow, dragRow) {
|
|
2140
2151
|
const dropRowParents = getRowParents(dropRow);
|
|
2141
2152
|
return !!dropRowParents.find((row) => row === dragRow);
|
|
@@ -2228,6 +2239,24 @@ class TableDraggableDirective extends TableDraggable {
|
|
|
2228
2239
|
callback();
|
|
2229
2240
|
});
|
|
2230
2241
|
}
|
|
2242
|
+
/** @hidden */
|
|
2243
|
+
_blockScrolling() {
|
|
2244
|
+
this._table._focusableGrid._preventKeydown = true;
|
|
2245
|
+
this._table.tableContainer.nativeElement.addEventListener('DOMMouseScroll', preventDefault, false);
|
|
2246
|
+
this._table.tableContainer.nativeElement.addEventListener('wheel', preventDefault, { passive: false });
|
|
2247
|
+
this._table.tableContainer.nativeElement.addEventListener('mousewheel', preventDefault, { passive: false });
|
|
2248
|
+
this._table.tableContainer.nativeElement.addEventListener('touchmove', preventDefault, { passive: false });
|
|
2249
|
+
this._table.tableContainer.nativeElement.addEventListener('keydown', preventDefaultForScrollKeys, false);
|
|
2250
|
+
}
|
|
2251
|
+
/** @hidden */
|
|
2252
|
+
_enableScrolling() {
|
|
2253
|
+
this._table._focusableGrid._preventKeydown = false;
|
|
2254
|
+
this._table.tableContainer.nativeElement.removeEventListener('DOMMouseScroll', preventDefault, false);
|
|
2255
|
+
this._table.tableContainer.nativeElement.removeEventListener('wheel', preventDefault);
|
|
2256
|
+
this._table.tableContainer.nativeElement.removeEventListener('mousewheel', preventDefault);
|
|
2257
|
+
this._table.tableContainer.nativeElement.removeEventListener('touchmove', preventDefault);
|
|
2258
|
+
this._table.tableContainer.nativeElement.removeEventListener('keydown', preventDefaultForScrollKeys, false);
|
|
2259
|
+
}
|
|
2231
2260
|
}
|
|
2232
2261
|
TableDraggableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableDraggableDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
2233
2262
|
TableDraggableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: TableDraggableDirective, isStandalone: true, selector: "fdp-table[isTreeTable], fdp-table[enableRowReordering]", inputs: { enableRowReordering: "enableRowReordering", isTreeTable: "isTreeTable", dropMode: "dropMode", dropPredicate: "dropPredicate", dragoverPredicate: "dragoverPredicate" }, outputs: { rowsRearrange: "rowsRearrange" }, host: { properties: { "class.fd-table--tree": "this.isTreeTable" } }, providers: [
|
|
@@ -2265,6 +2294,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
2265
2294
|
}], rowsRearrange: [{
|
|
2266
2295
|
type: Output
|
|
2267
2296
|
}] } });
|
|
2297
|
+
function preventDefault(event) {
|
|
2298
|
+
event.preventDefault();
|
|
2299
|
+
}
|
|
2300
|
+
function preventDefaultForScrollKeys(event) {
|
|
2301
|
+
if (!event.altKey &&
|
|
2302
|
+
KeyUtil.isKeyCode(event, [LEFT_ARROW, RIGHT_ARROW, UP_ARROW, DOWN_ARROW, SPACE, PAGE_DOWN, PAGE_UP, END, HOME])) {
|
|
2303
|
+
preventDefault(event);
|
|
2304
|
+
return false;
|
|
2305
|
+
}
|
|
2306
|
+
}
|
|
2268
2307
|
|
|
2269
2308
|
const TABLE_SCROLLABLE = new InjectionToken('Table Scrollable');
|
|
2270
2309
|
class TableScrollDispatcherService {
|
|
@@ -2450,6 +2489,10 @@ class TableVirtualScrollDirective extends TableVirtualScroll {
|
|
|
2450
2489
|
/** @hidden */
|
|
2451
2490
|
this._tableScrollDispatcher = inject(TableScrollDispatcherService);
|
|
2452
2491
|
/** @hidden */
|
|
2492
|
+
this._dndTableDirective = inject(FDP_TABLE_DRAGGABLE_DIRECTIVE, {
|
|
2493
|
+
optional: true
|
|
2494
|
+
});
|
|
2495
|
+
/** @hidden */
|
|
2453
2496
|
this._tableRowService = inject(TableRowService);
|
|
2454
2497
|
/** @hidden */
|
|
2455
2498
|
this._destroy$ = inject(DestroyedService);
|
|
@@ -2582,7 +2625,7 @@ class TableVirtualScrollDirective extends TableVirtualScroll {
|
|
|
2582
2625
|
this._focusedCell = event;
|
|
2583
2626
|
});
|
|
2584
2627
|
}
|
|
2585
|
-
if (!this.virtualScroll || !this.bodyHeight) {
|
|
2628
|
+
if (!this.virtualScroll || !this.bodyHeight || this._dndTableDirective?.dragDropInProgress) {
|
|
2586
2629
|
return;
|
|
2587
2630
|
}
|
|
2588
2631
|
let startNodeIndex = 0;
|