Files
AFFiNE-Mirror/blocksuite/affine/data-view/src/widget-presets/effect.ts
T
zzj3720 1ea73456ca refactor(editor): support virtual scroll for table view of database block (#11642)
close: BS-3378

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **New Features**
  - Introduced a modular virtualized table view with grouping, selection, drag-and-drop, clipboard support, and batch task management for optimized rendering.
  - Added comprehensive keyboard shortcuts, drag-to-fill functionality, and clipboard operations for efficient table editing.
  - Enabled dynamic column statistics, number formatting controls, and flexible switching between virtual and standard table views via a feature flag.
  - Provided detailed row and group header/footer components with context menus, row management actions, and column reordering/resizing.
  - Added a table view selector component to toggle between virtual and standard table views based on feature flags.
- **Style**
  - Added extensive styling modules for virtual table elements including headers, footers, rows, cells, and interactive controls.
- **Chores**
  - Registered numerous custom elements via modular effect functions to streamline component initialization.
  - Updated feature flag system to include virtual table scrolling toggle.
  - Added new dependencies to support styling and component functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-29 09:52:08 +00:00

42 lines
2.0 KiB
TypeScript

import { FilterConditionView } from './quick-setting-bar/filter/condition-view.js';
import { FilterGroupView } from './quick-setting-bar/filter/group-panel-view.js';
import { FilterBar } from './quick-setting-bar/filter/list-view.js';
import { FilterRootView } from './quick-setting-bar/filter/root-panel-view.js';
import { SortRootView } from './quick-setting-bar/sort/root-panel.js';
import { DataViewHeaderToolsFilter } from './tools/presets/filter/filter.js';
import { DataViewHeaderToolsSearch } from './tools/presets/search/search.js';
import { DataViewHeaderToolsSort } from './tools/presets/sort/sort.js';
import { DataViewHeaderToolsAddRow } from './tools/presets/table-add-row/add-row.js';
import { NewRecordPreview } from './tools/presets/table-add-row/new-record-preview.js';
import { DataViewHeaderToolsViewOptions } from './tools/presets/view-options/view-options.js';
import { DataViewHeaderTools } from './tools/tools-view.js';
import { DataViewHeaderViews } from './views-bar/views-view.js';
export function widgetPresetsEffects() {
customElements.define('data-view-header-tools', DataViewHeaderTools);
customElements.define('filter-bar', FilterBar);
customElements.define('filter-condition-view', FilterConditionView);
customElements.define(
'data-view-header-tools-search',
DataViewHeaderToolsSearch
);
customElements.define('filter-group-view', FilterGroupView);
customElements.define(
'data-view-header-tools-add-row',
DataViewHeaderToolsAddRow
);
customElements.define('affine-database-new-record-preview', NewRecordPreview);
customElements.define(
'data-view-header-tools-filter',
DataViewHeaderToolsFilter
);
customElements.define('data-view-header-tools-sort', DataViewHeaderToolsSort);
customElements.define(
'data-view-header-tools-view-options',
DataViewHeaderToolsViewOptions
);
customElements.define('filter-root-view', FilterRootView);
customElements.define('sort-root-view', SortRootView);
customElements.define('data-view-header-views', DataViewHeaderViews);
}