UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

167 lines (166 loc) 6.69 kB
/** * DevExtreme (esm/__internal/grids/new/grid_core/widget.js) * Version: 25.1.3 * Build date: Wed Jun 25 2025 * * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import _extends from "@babel/runtime/helpers/esm/extends"; import { extend } from "../../../../core/utils/extend"; import Widget from "../../../../ui/widget/ui.widget"; import { signal } from "@preact/signals-core"; import { DIContext } from "../../../core/di/index"; import { infernoRenderer } from "../../../core/m_inferno_renderer"; import { SearchView } from "../../../grids/new/grid_core/search/view"; import { rerender } from "inferno"; import { AccessibilityController } from "./accessibility/index"; import * as ColumnChooserModule from "./column_chooser/index"; import { CompatibilityColumnsController } from "./columns_controller/compatibility"; import * as ColumnsControllerModule from "./columns_controller/index"; import * as DataControllerModule from "./data_controller/index"; import * as di from "./di"; import * as EditingModule from "./editing/index"; import { EditPopupView } from "./editing/popup/view"; import { ErrorController } from "./error_controller/error_controller"; import { CompatibilityFilterSyncController, FilterSyncController } from "./filtering/filter_sync/index"; import { CompatibilityHeaderFilterController, HeaderFilterController } from "./filtering/header_filter/index"; import { HeaderFilterViewController } from "./filtering/header_filter/view_controller"; import * as FilterControllerModule from "./filtering/index"; import { ItemsController } from "./items_controller/items_controller"; import { LifeCycleController } from "./lifecycle/controller"; import { MainView } from "./main_view"; import { defaultOptions, defaultOptionsRules } from "./options"; import { PagerView } from "./pager/view"; import * as SearchControllerModule from "./search/index"; import * as SelectionControllerModule from "./selection/index"; import * as SortingControllerModule from "./sorting_controller/index"; import { ToolbarController } from "./toolbar/controller"; import { ToolbarView } from "./toolbar/view"; import { WidgetMock } from "./widget_mock"; export class GridCoreNewBase extends Widget { _registerDIContext() { this.diContext = new DIContext; di.register(this.diContext) } _initWidgetMock() { this.diContext.registerInstance(WidgetMock, new WidgetMock(this, this.diContext.get(DataControllerModule.CompatibilityDataController), this.diContext.get(CompatibilityColumnsController), this.diContext.get(CompatibilityHeaderFilterController), this.diContext.get(CompatibilityFilterSyncController))) } _initDIContext() { this.dataController = this.diContext.get(DataControllerModule.DataController); this.columnsController = this.diContext.get(ColumnsControllerModule.ColumnsController); this.sortingController = this.diContext.get(SortingControllerModule.SortingController); this.selectionController = this.diContext.get(SelectionControllerModule.Controller); this.itemsController = this.diContext.get(ItemsController); this.toolbarController = this.diContext.get(ToolbarController); this.toolbarView = this.diContext.get(ToolbarView); this.editingController = this.diContext.get(EditingModule.Controller); this.editPopupView = this.diContext.get(EditPopupView); this.pagerView = this.diContext.get(PagerView); this.searchController = this.diContext.get(SearchControllerModule.SearchController); this.columnChooserController = this.diContext.get(ColumnChooserModule.ColumnChooserController); this.columnChooserView = this.diContext.get(ColumnChooserModule.ColumnChooserView); this.errorController = this.diContext.get(ErrorController); this.filterController = this.diContext.get(FilterControllerModule.FilterController); this.headerFilterController = this.diContext.get(HeaderFilterController); this.filterPanelView = this.diContext.get(FilterControllerModule.FilterPanelView); this.headerFilterViewController = this.diContext.get(HeaderFilterViewController); this.accessibilityController = this.diContext.get(AccessibilityController); this.filterSyncController = this.diContext.get(FilterSyncController); this.searchView = this.diContext.get(SearchView) } _initLifeCycleController() { this.lifeCycleController = this.diContext.get(LifeCycleController); this.lifeCycleController.provideContentReadyCallback((() => { this._fireContentReadyAction() })) } _init() { super._init(); this.initialized = signal(false); this._registerDIContext(); this._initWidgetMock(); this._initDIContext(); this._initLifeCycleController() } _getDefaultOptions() { return _extends({}, super._getDefaultOptions(), extend(true, {}, defaultOptions)) } _defaultOptionsRules() { return super._defaultOptionsRules().concat(defaultOptionsRules) } _initializeComponent() { super._initializeComponent(); this.initialized.value = true } _renderContent() { this._renderContentImpl() } _initMarkup() { super._initMarkup(); this.renderSubscription = this.diContext.get(MainView).render(this.$element().get(0)); rerender() } _optionChanged(args) { [this.filterPanelView].forEach((c => { if (c.isCompatibilityMode()) { c.optionChanged(args) } })); if (!args.handled) { super._optionChanged(args) } } _clean() { var _this$renderSubscript; null === (_this$renderSubscript = this.renderSubscription) || void 0 === _this$renderSubscript || _this$renderSubscript.call(this); infernoRenderer.renderIntoContainer(null, this.$element().get(0), true); super._clean() } } export class GridCoreNew extends(ColumnsControllerModule.PublicMethods(DataControllerModule.PublicMethods(SortingControllerModule.PublicMethods(FilterControllerModule.PublicMethods(ColumnChooserModule.PublicMethods(SelectionControllerModule.PublicMethods(SearchControllerModule.PublicMethods(EditingModule.PublicMethods(GridCoreNewBase))))))))) {}