UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

187 lines (185 loc) • 6.97 kB
/** * DevExtreme (ui/data_grid/ui.data_grid.base.js) * Version: 18.2.18 * Build date: Tue Oct 18 2022 * * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ "use strict"; var _renderer = require("../../core/renderer"); var _renderer2 = _interopRequireDefault(_renderer); var _component_registrator = require("../../core/component_registrator"); var _component_registrator2 = _interopRequireDefault(_component_registrator); var _common = require("../../core/utils/common"); var _common2 = _interopRequireDefault(_common); var _type = require("../../core/utils/type"); var _type2 = _interopRequireDefault(_type); var _iterator = require("../../core/utils/iterator"); var _extend = require("../../core/utils/extend"); var _console = require("../../core/utils/console"); var _browser = require("../../core/utils/browser"); var _browser2 = _interopRequireDefault(_browser); var _ui = require("../widget/ui.widget"); var _ui2 = _interopRequireDefault(_ui); var _uiData_grid = require("./ui.data_grid.core"); var _uiData_grid2 = _interopRequireDefault(_uiData_grid); var _themes = require("../themes"); var _themes2 = _interopRequireDefault(_themes); require("./ui.data_grid.column_headers"); require("./ui.data_grid.columns_controller"); require("./ui.data_grid.data_controller"); require("./ui.data_grid.sorting"); require("./ui.data_grid.rows"); require("./ui.data_grid.context_menu"); require("./ui.data_grid.error_handling"); require("./ui.data_grid.grid_view"); require("./ui.data_grid.header_panel"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj } } var DATAGRID_ROW_SELECTOR = ".dx-row", DATAGRID_DEPRECATED_TEMPLATE_WARNING = "Specifying grid templates with the jQuery selector name is now deprecated. Use the DOM Node or the jQuery object that references this selector instead."; _uiData_grid2.default.registerModulesOrder(["stateStoring", "columns", "selection", "editorFactory", "columnChooser", "grouping", "editing", "masterDetail", "validating", "adaptivity", "data", "virtualScrolling", "columnHeaders", "filterRow", "headerPanel", "headerFilter", "sorting", "search", "rows", "pager", "columnsResizingReordering", "contextMenu", "keyboardNavigation", "errorHandling", "summary", "columnFixing", "export", "gridView"]); var DataGrid = _ui2.default.inherit({ _activeStateUnit: DATAGRID_ROW_SELECTOR, _getDefaultOptions: function() { var that = this, result = that.callBase(); (0, _iterator.each)(_uiData_grid2.default.modules, function() { if (_type2.default.isFunction(this.defaultOptions)) { (0, _extend.extend)(true, result, this.defaultOptions()) } }); return result }, _defaultOptionsRules: function() { return this.callBase().concat([{ device: { platform: "ios" }, options: { showRowLines: true } }, { device: function() { return _themes2.default.isMaterial() }, options: { showRowLines: true, showColumnLines: false, headerFilter: { height: 315 }, editing: { useIcons: true } } }, { device: function() { return _browser2.default.webkit }, options: { loadingTimeout: 30, loadPanel: { animation: { show: { easing: "cubic-bezier(1, 0, 1, 0)", duration: 500, from: { opacity: 0 }, to: { opacity: 1 } } } } } }, { device: function(_device) { return "desktop" !== _device.deviceType }, options: { grouping: { expandMode: "rowClick" } } }]) }, _init: function() { var that = this; that.callBase(); _uiData_grid2.default.processModules(that, _uiData_grid2.default); (0, _uiData_grid.callModuleItemsMethod)(that, "init") }, _clean: _common2.default.noop, _optionChanged: function(args) { var that = this; (0, _uiData_grid.callModuleItemsMethod)(that, "optionChanged", [args]); if (!args.handled) { that.callBase(args) } }, _dimensionChanged: function() { this.updateDimensions(true) }, _visibilityChanged: function(visible) { if (visible) { this.updateDimensions() } }, _initMarkup: function() { this.callBase.apply(this, arguments); this.getView("gridView").render(this.$element()) }, _renderContentImpl: function() { this.getView("gridView").update() }, _renderContent: function() { var that = this; _common2.default.deferRender(function() { that._renderContentImpl() }) }, _getTemplate: function(templateName) { var template = templateName; if (_type2.default.isString(template) && "#" === template[0]) { template = (0, _renderer2.default)(templateName); _console.logger.warn(DATAGRID_DEPRECATED_TEMPLATE_WARNING) } return this.callBase(template) }, _dispose: function() { var that = this; that.callBase(); (0, _uiData_grid.callModuleItemsMethod)(that, "dispose") }, isReady: function() { return this.getController("data").isReady() }, beginUpdate: function() { var that = this; that.callBase(); (0, _uiData_grid.callModuleItemsMethod)(that, "beginUpdate") }, endUpdate: function() { var that = this; (0, _uiData_grid.callModuleItemsMethod)(that, "endUpdate"); that.callBase() }, getController: function(name) { return this._controllers[name] }, getView: function(name) { return this._views[name] }, focus: function(element) { this.getController("keyboardNavigation").focus(element) } }); DataGrid.registerModule = _uiData_grid2.default.registerModule.bind(_uiData_grid2.default); (0, _component_registrator2.default)("dxDataGrid", DataGrid); module.exports = DataGrid;