@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';
@@ -3607,6 +3607,134 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
3607
3607
  args: [{ selector: '[fdpViewSettingsFilterCustomDef]', standalone: true }]
3608
3608
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
3609
3609
 
3610
+ class ViewportRootService {
3611
+ constructor() {
3612
+ /** hidden */
3613
+ this.rootNode = null;
3614
+ /** hidden */
3615
+ this.rootElement$ = new Subject();
3616
+ }
3617
+ /** hidden */
3618
+ setRootNode(node) {
3619
+ this.rootNode = node;
3620
+ this.rootElement$.next(this.rootNode);
3621
+ }
3622
+ /** hidden */
3623
+ getRootNode() {
3624
+ return this.rootNode;
3625
+ }
3626
+ }
3627
+ ViewportRootService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ViewportRootService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3628
+ ViewportRootService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ViewportRootService });
3629
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ViewportRootService, decorators: [{
3630
+ type: Injectable
3631
+ }] });
3632
+
3633
+ class FdpRenderVisibleCellDirective {
3634
+ /** @hidden */
3635
+ constructor(el, renderer, viewContainer, cdr) {
3636
+ this.el = el;
3637
+ this.renderer = renderer;
3638
+ this.viewContainer = viewContainer;
3639
+ this.cdr = cdr;
3640
+ /** @hidden */
3641
+ this._destroy$ = new Subject();
3642
+ /** @hidden */
3643
+ this._viewportRootService = inject(ViewportRootService);
3644
+ }
3645
+ /** @hidden */
3646
+ ngOnInit() {
3647
+ if (!this._viewportRootService.getRootNode()) {
3648
+ this._viewportRootService.rootElement$.pipe(take$1(1)).subscribe((rootNode) => {
3649
+ if (rootNode) {
3650
+ this.checkViewport();
3651
+ }
3652
+ });
3653
+ }
3654
+ else {
3655
+ this.checkViewport();
3656
+ }
3657
+ }
3658
+ /** @hidden */
3659
+ checkViewport() {
3660
+ const options = {
3661
+ root: this._viewportRootService.getRootNode(),
3662
+ rootMargin: '50px',
3663
+ threshold: 0.0
3664
+ };
3665
+ const observer = new Observable((subscriber) => {
3666
+ const intersectionObserver = new IntersectionObserver((entries) => {
3667
+ const { isIntersecting } = entries[0];
3668
+ subscriber.next(isIntersecting);
3669
+ }, options);
3670
+ intersectionObserver.observe(this.el.nativeElement.parentElement);
3671
+ this._destroy$.subscribe(() => {
3672
+ intersectionObserver.disconnect();
3673
+ });
3674
+ return {
3675
+ unsubscribe() {
3676
+ intersectionObserver.disconnect();
3677
+ }
3678
+ };
3679
+ });
3680
+ observer.pipe(takeUntil$1(this._destroy$)).subscribe((inViewPort) => {
3681
+ this.updateView(inViewPort);
3682
+ });
3683
+ }
3684
+ /** @hidden */
3685
+ ngOnDestroy() {
3686
+ this._destroy$.next();
3687
+ this._destroy$.complete();
3688
+ }
3689
+ /** @hidden */
3690
+ updateView(inViewPort) {
3691
+ if (this.viewContainer.length === 0) {
3692
+ if (inViewPort) {
3693
+ this.viewContainer.createEmbeddedView(this.tableViewport);
3694
+ this.currentTemplate = this.tableViewport;
3695
+ }
3696
+ else {
3697
+ this.viewContainer.createEmbeddedView(this.viewportFallback);
3698
+ this.currentTemplate = this.viewportFallback;
3699
+ }
3700
+ }
3701
+ else {
3702
+ if (inViewPort && this.currentTemplate !== this.tableViewport) {
3703
+ if (this.currentViewRef) {
3704
+ this.viewContainer.remove(0);
3705
+ this.viewContainer.insert(this.currentViewRef);
3706
+ }
3707
+ else {
3708
+ this.viewContainer.clear();
3709
+ this.viewContainer.createEmbeddedView(this.tableViewport);
3710
+ }
3711
+ this.currentTemplate = this.tableViewport;
3712
+ }
3713
+ else if (!inViewPort && this.currentTemplate !== this.viewportFallback) {
3714
+ this.currentViewRef = this.viewContainer.detach(0);
3715
+ this.viewContainer.clear();
3716
+ this.viewContainer.createEmbeddedView(this.viewportFallback);
3717
+ this.currentTemplate = this.viewportFallback;
3718
+ }
3719
+ }
3720
+ this.cdr.markForCheck(); // Mark parent component for change detection
3721
+ }
3722
+ }
3723
+ 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 });
3724
+ 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 });
3725
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FdpRenderVisibleCellDirective, decorators: [{
3726
+ type: Directive,
3727
+ args: [{
3728
+ selector: '[fdpOnlyRenderVisibleCell]',
3729
+ standalone: true,
3730
+ providers: [DestroyedService]
3731
+ }]
3732
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { tableViewport: [{
3733
+ type: Input
3734
+ }], viewportFallback: [{
3735
+ type: Input
3736
+ }] } });
3737
+
3610
3738
  class TableCellStylesPipe {
3611
3739
  /** @hidden */
3612
3740
  transform(column, isRtl, semanticHighlightingColumnWidth, selectionColumnWidth, isFrozenColumn, isFrozenEndColumn, prevColumnWidthPx, columnWidth, nextColumnWidthPx) {
@@ -3767,7 +3895,8 @@ const importExports = [
3767
3895
  TableCellStylesPipe,
3768
3896
  ColumnResizableSidePipe,
3769
3897
  RowClassesPipe,
3770
- TableColumnSortingDirectionPipe
3898
+ TableColumnSortingDirectionPipe,
3899
+ FdpRenderVisibleCellDirective
3771
3900
  ];
3772
3901
  class TableHelpersModule {
3773
3902
  }
@@ -3795,7 +3924,8 @@ TableHelpersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", vers
3795
3924
  TableCellStylesPipe,
3796
3925
  ColumnResizableSidePipe,
3797
3926
  RowClassesPipe,
3798
- TableColumnSortingDirectionPipe], exports: [TableInitialStateDirective,
3927
+ TableColumnSortingDirectionPipe,
3928
+ FdpRenderVisibleCellDirective], exports: [TableInitialStateDirective,
3799
3929
  TableDraggableDirective,
3800
3930
  TableVirtualScrollDirective,
3801
3931
  PlatformTableColumnResponsiveDirective,
@@ -3818,7 +3948,8 @@ TableHelpersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", vers
3818
3948
  TableCellStylesPipe,
3819
3949
  ColumnResizableSidePipe,
3820
3950
  RowClassesPipe,
3821
- TableColumnSortingDirectionPipe] });
3951
+ TableColumnSortingDirectionPipe,
3952
+ FdpRenderVisibleCellDirective] });
3822
3953
  TableHelpersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableHelpersModule });
3823
3954
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableHelpersModule, decorators: [{
3824
3955
  type: NgModule,
@@ -3832,5 +3963,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
3832
3963
  * Generated bundle index. Do not edit.
3833
3964
  */
3834
3965
 
3835
- 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 };
3966
+ 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 };
3836
3967
  //# sourceMappingURL=fundamental-ngx-platform-table-helpers.mjs.map