@fundamental-ngx/platform 0.43.34 → 0.43.35

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 (41) 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/table/components/table-row/table-row.component.mjs +18 -8
  3. package/esm2020/table/table.component.mjs +28 -8
  4. package/esm2020/table-helpers/directives/index.mjs +2 -1
  5. package/esm2020/table-helpers/directives/table-visible-cell.directive.mjs +110 -0
  6. package/esm2020/table-helpers/index.mjs +2 -1
  7. package/esm2020/table-helpers/services/table-advanced-viewport-root.service.mjs +26 -0
  8. package/esm2020/table-helpers/table-helpers.module.mjs +8 -5
  9. package/esm2020/upload-collection/upload-collection/upload-collection.component.mjs +1 -1
  10. package/esm2020/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +1 -1
  11. package/fesm2015/fundamental-ngx-platform-smart-filter-bar.mjs +1 -1
  12. package/fesm2015/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  13. package/fesm2015/fundamental-ngx-platform-table-helpers.mjs +136 -5
  14. package/fesm2015/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  15. package/fesm2015/fundamental-ngx-platform-table.mjs +40 -11
  16. package/fesm2015/fundamental-ngx-platform-table.mjs.map +1 -1
  17. package/fesm2015/fundamental-ngx-platform-upload-collection.mjs +1 -1
  18. package/fesm2015/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  19. package/fesm2015/fundamental-ngx-platform-variant-management.mjs +1 -1
  20. package/fesm2015/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  21. package/fesm2020/fundamental-ngx-platform-smart-filter-bar.mjs +1 -1
  22. package/fesm2020/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  23. package/fesm2020/fundamental-ngx-platform-table-helpers.mjs +136 -5
  24. package/fesm2020/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  25. package/fesm2020/fundamental-ngx-platform-table.mjs +40 -11
  26. package/fesm2020/fundamental-ngx-platform-table.mjs.map +1 -1
  27. package/fesm2020/fundamental-ngx-platform-upload-collection.mjs +1 -1
  28. package/fesm2020/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  29. package/fesm2020/fundamental-ngx-platform-variant-management.mjs +1 -1
  30. package/fesm2020/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  31. package/fundamental-ngx-platform-v0.43.35.tgz +0 -0
  32. package/package.json +4 -4
  33. package/schematics/ng-add/index.js +1 -1
  34. package/table/components/table-row/table-row.component.d.ts +8 -1
  35. package/table/table.component.d.ts +17 -4
  36. package/table-helpers/directives/index.d.ts +1 -0
  37. package/table-helpers/directives/table-visible-cell.directive.d.ts +32 -0
  38. package/table-helpers/index.d.ts +1 -0
  39. package/table-helpers/services/table-advanced-viewport-root.service.d.ts +14 -0
  40. package/table-helpers/table-helpers.module.d.ts +2 -1
  41. package/fundamental-ngx-platform-v0.43.34.tgz +0 -0
@@ -3,7 +3,7 @@ import { InjectionToken, Injectable, EventEmitter, inject, Directive, Input, Out
3
3
  import * as i2 from '@fundamental-ngx/cdk/utils';
4
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
- import { Subject, BehaviorSubject, isObservable, Subscription, filter as filter$1, fromEvent, Observable } from 'rxjs';
6
+ import { Subject, BehaviorSubject, isObservable, Subscription, filter as filter$1, fromEvent, Observable, take as take$1, takeUntil as takeUntil$1 } from 'rxjs';
7
7
  import { map, takeUntil, take, skip, startWith, filter, debounceTime, distinctUntilChanged, share, tap } from 'rxjs/operators';
8
8
  import { ContentDensityMode } from '@fundamental-ngx/core/content-density';
9
9
  import { isSelectItem, isDataSource as isDataSource$1, isString as isString$1, isFunction } from '@fundamental-ngx/platform/shared';
@@ -3590,6 +3590,134 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
3590
3590
  args: [{ selector: '[fdpViewSettingsFilterCustomDef]', standalone: true }]
3591
3591
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
3592
3592
 
3593
+ class ViewportRootService {
3594
+ constructor() {
3595
+ /** hidden */
3596
+ this.rootNode = null;
3597
+ /** hidden */
3598
+ this.rootElement$ = new Subject();
3599
+ }
3600
+ /** hidden */
3601
+ setRootNode(node) {
3602
+ this.rootNode = node;
3603
+ this.rootElement$.next(this.rootNode);
3604
+ }
3605
+ /** hidden */
3606
+ getRootNode() {
3607
+ return this.rootNode;
3608
+ }
3609
+ }
3610
+ ViewportRootService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ViewportRootService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3611
+ ViewportRootService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ViewportRootService });
3612
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ViewportRootService, decorators: [{
3613
+ type: Injectable
3614
+ }] });
3615
+
3616
+ class FdpRenderVisibleCellDirective {
3617
+ /** @hidden */
3618
+ constructor(el, renderer, viewContainer, cdr) {
3619
+ this.el = el;
3620
+ this.renderer = renderer;
3621
+ this.viewContainer = viewContainer;
3622
+ this.cdr = cdr;
3623
+ /** @hidden */
3624
+ this._destroy$ = new Subject();
3625
+ /** @hidden */
3626
+ this._viewportRootService = inject(ViewportRootService);
3627
+ }
3628
+ /** @hidden */
3629
+ ngOnInit() {
3630
+ if (!this._viewportRootService.getRootNode()) {
3631
+ this._viewportRootService.rootElement$.pipe(take$1(1)).subscribe((rootNode) => {
3632
+ if (rootNode) {
3633
+ this.checkViewport();
3634
+ }
3635
+ });
3636
+ }
3637
+ else {
3638
+ this.checkViewport();
3639
+ }
3640
+ }
3641
+ /** @hidden */
3642
+ checkViewport() {
3643
+ const options = {
3644
+ root: this._viewportRootService.getRootNode(),
3645
+ rootMargin: '50px',
3646
+ threshold: 0.0
3647
+ };
3648
+ const observer = new Observable((subscriber) => {
3649
+ const intersectionObserver = new IntersectionObserver((entries) => {
3650
+ const { isIntersecting } = entries[0];
3651
+ subscriber.next(isIntersecting);
3652
+ }, options);
3653
+ intersectionObserver.observe(this.el.nativeElement.parentElement);
3654
+ this._destroy$.subscribe(() => {
3655
+ intersectionObserver.disconnect();
3656
+ });
3657
+ return {
3658
+ unsubscribe() {
3659
+ intersectionObserver.disconnect();
3660
+ }
3661
+ };
3662
+ });
3663
+ observer.pipe(takeUntil$1(this._destroy$)).subscribe((inViewPort) => {
3664
+ this.updateView(inViewPort);
3665
+ });
3666
+ }
3667
+ /** @hidden */
3668
+ ngOnDestroy() {
3669
+ this._destroy$.next();
3670
+ this._destroy$.complete();
3671
+ }
3672
+ /** @hidden */
3673
+ updateView(inViewPort) {
3674
+ if (this.viewContainer.length === 0) {
3675
+ if (inViewPort) {
3676
+ this.viewContainer.createEmbeddedView(this.tableViewport);
3677
+ this.currentTemplate = this.tableViewport;
3678
+ }
3679
+ else {
3680
+ this.viewContainer.createEmbeddedView(this.viewportFallback);
3681
+ this.currentTemplate = this.viewportFallback;
3682
+ }
3683
+ }
3684
+ else {
3685
+ if (inViewPort && this.currentTemplate !== this.tableViewport) {
3686
+ if (this.currentViewRef) {
3687
+ this.viewContainer.remove(0);
3688
+ this.viewContainer.insert(this.currentViewRef);
3689
+ }
3690
+ else {
3691
+ this.viewContainer.clear();
3692
+ this.viewContainer.createEmbeddedView(this.tableViewport);
3693
+ }
3694
+ this.currentTemplate = this.tableViewport;
3695
+ }
3696
+ else if (!inViewPort && this.currentTemplate !== this.viewportFallback) {
3697
+ this.currentViewRef = this.viewContainer.detach(0);
3698
+ this.viewContainer.clear();
3699
+ this.viewContainer.createEmbeddedView(this.viewportFallback);
3700
+ this.currentTemplate = this.viewportFallback;
3701
+ }
3702
+ }
3703
+ this.cdr.markForCheck(); // Mark parent component for change detection
3704
+ }
3705
+ }
3706
+ FdpRenderVisibleCellDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FdpRenderVisibleCellDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
3707
+ FdpRenderVisibleCellDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: FdpRenderVisibleCellDirective, isStandalone: true, selector: "[fdpOnlyRenderVisibleCell]", inputs: { tableViewport: "tableViewport", viewportFallback: "viewportFallback" }, providers: [DestroyedService], ngImport: i0 });
3708
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FdpRenderVisibleCellDirective, decorators: [{
3709
+ type: Directive,
3710
+ args: [{
3711
+ selector: '[fdpOnlyRenderVisibleCell]',
3712
+ standalone: true,
3713
+ providers: [DestroyedService]
3714
+ }]
3715
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { tableViewport: [{
3716
+ type: Input
3717
+ }], viewportFallback: [{
3718
+ type: Input
3719
+ }] } });
3720
+
3593
3721
  class TableCellStylesPipe {
3594
3722
  /** @hidden */
3595
3723
  transform(column, isRtl, semanticHighlightingColumnWidth, selectionColumnWidth, isFrozenColumn, isFrozenEndColumn, prevColumnWidthPx, columnWidth, nextColumnWidthPx) {
@@ -3750,7 +3878,8 @@ const importExports = [
3750
3878
  TableCellStylesPipe,
3751
3879
  ColumnResizableSidePipe,
3752
3880
  RowClassesPipe,
3753
- TableColumnSortingDirectionPipe
3881
+ TableColumnSortingDirectionPipe,
3882
+ FdpRenderVisibleCellDirective
3754
3883
  ];
3755
3884
  class TableHelpersModule {
3756
3885
  }
@@ -3778,7 +3907,8 @@ TableHelpersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", vers
3778
3907
  TableCellStylesPipe,
3779
3908
  ColumnResizableSidePipe,
3780
3909
  RowClassesPipe,
3781
- TableColumnSortingDirectionPipe], exports: [TableInitialStateDirective,
3910
+ TableColumnSortingDirectionPipe,
3911
+ FdpRenderVisibleCellDirective], exports: [TableInitialStateDirective,
3782
3912
  TableDraggableDirective,
3783
3913
  TableVirtualScrollDirective,
3784
3914
  PlatformTableColumnResponsiveDirective,
@@ -3801,7 +3931,8 @@ TableHelpersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", vers
3801
3931
  TableCellStylesPipe,
3802
3932
  ColumnResizableSidePipe,
3803
3933
  RowClassesPipe,
3804
- TableColumnSortingDirectionPipe] });
3934
+ TableColumnSortingDirectionPipe,
3935
+ FdpRenderVisibleCellDirective] });
3805
3936
  TableHelpersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableHelpersModule });
3806
3937
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableHelpersModule, decorators: [{
3807
3938
  type: NgModule,
@@ -3815,5 +3946,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
3815
3946
  * Generated bundle index. Do not edit.
3816
3947
  */
3817
3948
 
3818
- export { ARIA_SORT, 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, 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, TableCellActivateEvent, TableCellHeaderPopoverDirective, TableCellStylesPipe, TableChildrenDataProvider, TableColumn, TableColumnFreezeEvent, TableColumnResizeService, TableColumnSortingDirectionPipe, 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 };
3949
+ export { ARIA_SORT, 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, FdpEditableCellDef, FdpEditableCellFormDirective, FdpHeaderCellDef, FdpRenderVisibleCellDirective, 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, TableCellActivateEvent, TableCellHeaderPopoverDirective, TableCellStylesPipe, TableChildrenDataProvider, TableColumn, TableColumnFreezeEvent, TableColumnResizeService, TableColumnSortingDirectionPipe, 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, ViewportRootService, 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 };
3819
3950
  //# sourceMappingURL=fundamental-ngx-platform-table-helpers.mjs.map