@fundamental-ngx/platform 0.43.9 → 0.43.11

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 (29) hide show
  1. package/esm2020/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +1 -1
  2. package/esm2020/approval-flow/approval-flow.component.mjs +1 -1
  3. package/esm2020/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +1 -3
  4. package/esm2020/table/table.component.mjs +14 -9
  5. package/esm2020/table-helpers/helpers.mjs +45 -9
  6. package/esm2020/table-helpers/services/table-column-resize.service.mjs +15 -6
  7. package/esm2020/table-helpers/table.mjs +1 -1
  8. package/fesm2015/fundamental-ngx-platform-approval-flow.mjs +2 -2
  9. package/fesm2015/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  10. package/fesm2015/fundamental-ngx-platform-form.mjs +0 -2
  11. package/fesm2015/fundamental-ngx-platform-form.mjs.map +1 -1
  12. package/fesm2015/fundamental-ngx-platform-table-helpers.mjs +55 -10
  13. package/fesm2015/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  14. package/fesm2015/fundamental-ngx-platform-table.mjs +13 -8
  15. package/fesm2015/fundamental-ngx-platform-table.mjs.map +1 -1
  16. package/fesm2020/fundamental-ngx-platform-approval-flow.mjs +2 -2
  17. package/fesm2020/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  18. package/fesm2020/fundamental-ngx-platform-form.mjs +0 -2
  19. package/fesm2020/fundamental-ngx-platform-form.mjs.map +1 -1
  20. package/fesm2020/fundamental-ngx-platform-table-helpers.mjs +54 -9
  21. package/fesm2020/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  22. package/fesm2020/fundamental-ngx-platform-table.mjs +13 -8
  23. package/fesm2020/fundamental-ngx-platform-table.mjs.map +1 -1
  24. package/fundamental-ngx-platform-v0.43.11.tgz +0 -0
  25. package/package.json +4 -4
  26. package/schematics/ng-add/index.js +1 -1
  27. package/table-helpers/helpers.d.ts +7 -5
  28. package/table-helpers/table.d.ts +2 -0
  29. package/fundamental-ngx-platform-v0.43.9.tgz +0 -0
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, Injectable, EventEmitter, inject, Directive, Input, Output, NgZone, ChangeDetectorRef, forwardRef, HostBinding, Optional, ElementRef, Inject, HostListener, Pipe, NgModule } from '@angular/core';
3
3
  import * as i2 from '@fundamental-ngx/cdk/utils';
4
- import { DestroyedService, isString, RtlService, KeyUtil, resizeObservable, FDK_FOCUSABLE_ITEM_DIRECTIVE, FocusableItemDirective } from '@fundamental-ngx/cdk/utils';
4
+ import { DestroyedService, isString, dfs, RtlService, KeyUtil, resizeObservable, FDK_FOCUSABLE_ITEM_DIRECTIVE, FocusableItemDirective } from '@fundamental-ngx/cdk/utils';
5
5
  import { isDataSource, DataSourceDirective, FD_DATA_SOURCE_TRANSFORMER } from '@fundamental-ngx/cdk/data-source';
6
6
  import { Subject, BehaviorSubject, isObservable, Subscription, filter as filter$1, fromEvent, Observable } from 'rxjs';
7
7
  import { map, takeUntil, take, skip, startWith, filter, debounceTime, distinctUntilChanged, share, tap } from 'rxjs/operators';
@@ -1431,7 +1431,7 @@ function newTableRow(row) {
1431
1431
  if (!row.value) {
1432
1432
  throw new Error('Unexpected value. TableRow.value cannot be undefined.');
1433
1433
  }
1434
- const newRow = new TableRowImpl({
1434
+ return new TableRowImpl({
1435
1435
  type: row.type || TableRowType.ITEM,
1436
1436
  checked: row.checked || false,
1437
1437
  index: row.index || 0,
@@ -1445,7 +1445,6 @@ function newTableRow(row) {
1445
1445
  state: row.state || 'readonly',
1446
1446
  children: row.children || []
1447
1447
  });
1448
- return newRow;
1449
1448
  }
1450
1449
  /** @hidden */
1451
1450
  function getSelectableRows(rows, selectableKey) {
@@ -1557,6 +1556,35 @@ function convertTreeObjectsToTableRows(source, selectionMode, tableRows, rowComp
1557
1556
  row.children.push(...children);
1558
1557
  rows.push(...children);
1559
1558
  }
1559
+ if (row.level === 0 && row.isTree) {
1560
+ dfs([row], (r) => {
1561
+ const children = r.children || [];
1562
+ const selectedChildren = [];
1563
+ const indeterminateChildren = [];
1564
+ children.forEach((child) => {
1565
+ if (child.checked === true) {
1566
+ selectedChildren.push(child);
1567
+ }
1568
+ else if (child.checked === null) {
1569
+ indeterminateChildren.push(child);
1570
+ }
1571
+ });
1572
+ const selectedAll = selectedChildren.length === children.length && children.length > 0;
1573
+ const selectedSome = selectedChildren.length > 0;
1574
+ if (r.checked) {
1575
+ applySelectionToChildren(rows, r, [], []);
1576
+ return;
1577
+ }
1578
+ if (selectedAll) {
1579
+ r.checked = true;
1580
+ return;
1581
+ }
1582
+ if (selectedSome || indeterminateChildren.length > 0) {
1583
+ r.checked = null;
1584
+ return;
1585
+ }
1586
+ });
1587
+ }
1560
1588
  });
1561
1589
  return rows;
1562
1590
  }
@@ -1582,6 +1610,14 @@ function getSelectionStatusByRowValue(source, selectionMode, tableRows, rowCompa
1582
1610
  return rowMap;
1583
1611
  }
1584
1612
  /** @hidden */
1613
+ function applySelectionToChildren(allRows, row, addedRows, removedRows) {
1614
+ const allChildren = findRowChildren(row, allRows);
1615
+ allChildren.forEach((r) => {
1616
+ r.checked = row.checked;
1617
+ r.checked ? addedRows.push(r) : removedRows.push(r);
1618
+ });
1619
+ }
1620
+ /** @hidden */
1585
1621
  function findRowChildren(row, allRows) {
1586
1622
  const rowsLength = allRows.length;
1587
1623
  /**
@@ -2714,14 +2750,23 @@ class TableColumnResizeService {
2714
2750
  }
2715
2751
  }
2716
2752
  }
2717
- if (diffX > 0 && this._tableRef._freezableColumns.has(this._resizedColumn)) {
2718
- const freezeToNextColumnName = this._visibleColumnNames[this._tableRef._freezableColumns.size];
2719
- const actualWidth = this.getPrevColumnsWidth(freezeToNextColumnName);
2753
+ /**
2754
+ * In case "_resizedColumn" is freezable, make sure the overall width of freezable columns does not exceed the width of the table.
2755
+ * If it does, columns will be made unfrozen.
2756
+ */
2757
+ if (diffX > 0 &&
2758
+ (this._tableRef._freezableColumns.has(this._resizedColumn) ||
2759
+ this._tableRef._freezableEndColumns?.has(this._resizedColumn))) {
2760
+ let actualWidth = this.getPrevColumnsWidth(this._resizedColumn) + columnWidth;
2761
+ if (this._tableRef._freezableEndColumns?.has(this._resizedColumn)) {
2762
+ actualWidth = this.getNextColumnsWidth(this._resizedColumn) + columnWidth;
2763
+ }
2720
2764
  const newWidth = actualWidth + diffX;
2721
2765
  const maxWidth = this._tableRef.getMaxAllowedFreezableColumnsWidth();
2722
- // in case "_resizedColumn" is freezable, make sure the overall width of freezable columns does not exceed the width of the table
2723
2766
  if (newWidth >= maxWidth) {
2724
- diffX = maxWidth - actualWidth;
2767
+ this._tableRef._freezableColumns.forEach((column) => {
2768
+ this._tableRef.unfreeze(column.toString());
2769
+ });
2725
2770
  }
2726
2771
  }
2727
2772
  const updatedWidth = columnWidth + diffX;
@@ -3748,5 +3793,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
3748
3793
  * Generated bundle index. Do not edit.
3749
3794
  */
3750
3795
 
3751
- export { ArrayTableDataProvider, ArrayTableDataSource, BaseTableDataProvider, BaseTableDataSource, ChildTableDataSource, ColumnAlign, ColumnResizableSidePipe, ColumnsChange, DEFAULT_HIGHLIGHTING_KEY, DEFAULT_TABLE_PAGE, DEFAULT_TABLE_SEARCH_INPUT, DEFAULT_TABLE_STATE, EDITABLE_ROW_SEMANTIC_STATE, EditableTableCell, FDP_TABLE_DRAGGABLE_DIRECTIVE, FDP_TABLE_STATE_DIRECTIVE, FDP_TABLE_VIRTUAL_SCROLL_DIRECTIVE, FILTER_BOOLEAN_STRATEGIES, FILTER_BOOLEAN_STRATEGY, FILTER_DATE_STRATEGIES, FILTER_DATE_STRATEGY, FILTER_DEFAULT_STRATEGIES, FILTER_DEFAULT_STRATEGY, FILTER_NUMBER_STRATEGIES, FILTER_NUMBER_STRATEGY, FILTER_STRATEGY, FILTER_STRING_STRATEGIES, FILTER_STRING_STRATEGY, FdpCellDef, FdpCellSelectableDirective, FdpEditableCellDef, FdpEditableCellFormDirective, FdpHeaderCellDef, FdpTableCell, FdpTableHeader, FdpViewSettingsFilterCustomDef, FilterType, FilterableColumnDataType, ObservableTableDataProvider, ObservableTableDataSource, PageChange, PlatformTableCellResizableDirective, PlatformTableColumnResponsiveDirective, ROW_HEIGHT, RowClassesPipe, SELECTION_COLUMN_WIDTH, SEMANTIC_HIGHLIGHTING_COLUMN_WIDTH, SaveRowsEvent, SelectionCellStylesPipe, SelectionMode, SortDirection, TABLE_CELL_RESIZABLE_THRESHOLD_PX, TABLE_COLUMN_MIN_WIDTH, TABLE_RESIZER_BORDER_WIDTH, TABLE_SCROLLABLE, Table, TableCellHeaderPopoverDirective, TableCellStylesPipe, TableChildrenDataProvider, TableColumn, TableColumnFreezeEvent, TableColumnResizeService, TableColumnsChangeEvent, TableDataProvider, TableDataSource, TableDataSourceDirective, TableDataSourceParser, TableDraggable, TableDraggableDirective, TableFilterChangeEvent, TableGroupChangeEvent, TableHeaderResizerDirective, TableHelpersModule, TableInitialState, TableInitialStateDirective, TablePageChangeEvent, TableResponsiveService, TableRowActivateEvent, TableRowImpl, TableRowSelectionChangeEvent, TableRowService, TableRowToggleOpenStateEvent, TableRowType, TableRowsRearrangeEvent, TableScrollDispatcherService, TableScrollableDirective, TableSearchChangeEvent, TableSelectionChangeEvent, TableService, TableSortChangeEvent, TableVirtualScroll, TableVirtualScrollDirective, buildNewRowSkeleton, convertObjectsToTableRows, convertTreeLikeToFlatList, convertTreeObjectsToTableRows, convertTreeTableRowToFlatList, createGroupedTableRowsTree, filterByBoolean, filterByDate, filterByNumber, filterByString, findRowChildren, getFilterStrategiesBasedOnDataType, getFreezableColumns, getFreezableEndColumns, getRowParents, getScrollBarWidth, getSelectableRows, getSelectionStatusByRowValue, getUniqueListValuesByKey, isCollectionFilter, isGroupRow, isItemRow, isRowNavigatable, isSelectableRow, isTableRow, isTreeRow, isTreeRowFirstCell, newTableRow, sortTreeLikeGroupedRows, toDataStream };
3796
+ export { ArrayTableDataProvider, ArrayTableDataSource, BaseTableDataProvider, BaseTableDataSource, ChildTableDataSource, ColumnAlign, ColumnResizableSidePipe, ColumnsChange, DEFAULT_HIGHLIGHTING_KEY, DEFAULT_TABLE_PAGE, DEFAULT_TABLE_SEARCH_INPUT, DEFAULT_TABLE_STATE, EDITABLE_ROW_SEMANTIC_STATE, EditableTableCell, FDP_TABLE_DRAGGABLE_DIRECTIVE, FDP_TABLE_STATE_DIRECTIVE, FDP_TABLE_VIRTUAL_SCROLL_DIRECTIVE, FILTER_BOOLEAN_STRATEGIES, FILTER_BOOLEAN_STRATEGY, FILTER_DATE_STRATEGIES, FILTER_DATE_STRATEGY, FILTER_DEFAULT_STRATEGIES, FILTER_DEFAULT_STRATEGY, FILTER_NUMBER_STRATEGIES, FILTER_NUMBER_STRATEGY, FILTER_STRATEGY, FILTER_STRING_STRATEGIES, FILTER_STRING_STRATEGY, FdpCellDef, FdpCellSelectableDirective, FdpEditableCellDef, FdpEditableCellFormDirective, FdpHeaderCellDef, FdpTableCell, FdpTableHeader, FdpViewSettingsFilterCustomDef, FilterType, FilterableColumnDataType, ObservableTableDataProvider, ObservableTableDataSource, PageChange, PlatformTableCellResizableDirective, PlatformTableColumnResponsiveDirective, ROW_HEIGHT, RowClassesPipe, SELECTION_COLUMN_WIDTH, SEMANTIC_HIGHLIGHTING_COLUMN_WIDTH, SaveRowsEvent, SelectionCellStylesPipe, SelectionMode, SortDirection, TABLE_CELL_RESIZABLE_THRESHOLD_PX, TABLE_COLUMN_MIN_WIDTH, TABLE_RESIZER_BORDER_WIDTH, TABLE_SCROLLABLE, Table, TableCellHeaderPopoverDirective, TableCellStylesPipe, TableChildrenDataProvider, TableColumn, TableColumnFreezeEvent, TableColumnResizeService, TableColumnsChangeEvent, TableDataProvider, TableDataSource, TableDataSourceDirective, TableDataSourceParser, TableDraggable, TableDraggableDirective, TableFilterChangeEvent, TableGroupChangeEvent, TableHeaderResizerDirective, TableHelpersModule, TableInitialState, TableInitialStateDirective, TablePageChangeEvent, TableResponsiveService, TableRowActivateEvent, TableRowImpl, TableRowSelectionChangeEvent, TableRowService, TableRowToggleOpenStateEvent, TableRowType, TableRowsRearrangeEvent, TableScrollDispatcherService, TableScrollableDirective, TableSearchChangeEvent, TableSelectionChangeEvent, TableService, TableSortChangeEvent, TableVirtualScroll, TableVirtualScrollDirective, applySelectionToChildren, buildNewRowSkeleton, convertObjectsToTableRows, convertTreeLikeToFlatList, convertTreeObjectsToTableRows, convertTreeTableRowToFlatList, createGroupedTableRowsTree, filterByBoolean, filterByDate, filterByNumber, filterByString, findRowChildren, getFilterStrategiesBasedOnDataType, getFreezableColumns, getFreezableEndColumns, getRowParents, getScrollBarWidth, getSelectableRows, getSelectionStatusByRowValue, getUniqueListValuesByKey, isCollectionFilter, isGroupRow, isItemRow, isRowNavigatable, isSelectableRow, isTableRow, isTreeRow, isTreeRowFirstCell, newTableRow, sortTreeLikeGroupedRows, toDataStream };
3752
3797
  //# sourceMappingURL=fundamental-ngx-platform-table-helpers.mjs.map