@fundamental-ngx/platform 0.43.59 → 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.
Files changed (36) hide show
  1. package/esm2020/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +1 -1
  2. package/esm2020/smart-filter-bar/smart-filter-bar.component.mjs +1 -1
  3. package/esm2020/table/components/table-p13-dialog/columns/columns.component.mjs +1 -1
  4. package/esm2020/table/components/table-toolbar/table-toolbar.component.mjs +5 -3
  5. package/esm2020/table/table.component.mjs +3 -3
  6. package/esm2020/table-helpers/directives/table-draggable.directive.mjs +45 -4
  7. package/esm2020/table-helpers/directives/table-virtual-scroll.directive.mjs +7 -3
  8. package/esm2020/upload-collection/upload-collection/upload-collection.component.mjs +1 -1
  9. package/esm2020/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +1 -1
  10. package/fesm2015/fundamental-ngx-platform-smart-filter-bar.mjs +2 -2
  11. package/fesm2015/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  12. package/fesm2015/fundamental-ngx-platform-table-helpers.mjs +49 -5
  13. package/fesm2015/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  14. package/fesm2015/fundamental-ngx-platform-table.mjs +7 -5
  15. package/fesm2015/fundamental-ngx-platform-table.mjs.map +1 -1
  16. package/fesm2015/fundamental-ngx-platform-upload-collection.mjs +1 -1
  17. package/fesm2015/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  18. package/fesm2015/fundamental-ngx-platform-value-help-dialog.mjs +1 -1
  19. package/fesm2015/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  20. package/fesm2020/fundamental-ngx-platform-smart-filter-bar.mjs +2 -2
  21. package/fesm2020/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  22. package/fesm2020/fundamental-ngx-platform-table-helpers.mjs +48 -5
  23. package/fesm2020/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  24. package/fesm2020/fundamental-ngx-platform-table.mjs +7 -5
  25. package/fesm2020/fundamental-ngx-platform-table.mjs.map +1 -1
  26. package/fesm2020/fundamental-ngx-platform-upload-collection.mjs +1 -1
  27. package/fesm2020/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  28. package/fesm2020/fundamental-ngx-platform-value-help-dialog.mjs +1 -1
  29. package/fesm2020/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  30. package/fundamental-ngx-platform-v0.43.61.tgz +0 -0
  31. package/package.json +4 -4
  32. package/schematics/ng-add/index.js +1 -1
  33. package/table/components/table-toolbar/table-toolbar.component.d.ts +6 -1
  34. package/table-helpers/directives/table-draggable.directive.d.ts +10 -2
  35. package/table-helpers/directives/table-virtual-scroll.directive.d.ts +2 -0
  36. package/fundamental-ngx-platform-v0.43.59.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, LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';
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.dragDropInProgress = true;
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(() => (this.dragDropInProgress = false));
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(() => (this.dragDropInProgress = false));
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;