UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

204 lines (203 loc) • 8.32 kB
/** * DevExtreme (esm/renovation/component_wrapper/data_grid.js) * Version: 21.2.4 * Build date: Mon Dec 06 2021 * * Copyright (c) 2012 - 2021 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 { isPlainObject } from "../../core/utils/type"; import { getPathParts } from "../../core/utils/data"; import Component from "./common/component"; import gridCore from "../../ui/data_grid/ui.data_grid.core"; import { updatePropsImmutable } from "./utils/update_props_immutable"; import { getUpdatedOptions } from "../ui/common/utils/get_updated_options"; import { themeReadyCallback } from "../../ui/themes_callback"; import componentRegistratorCallbacks from "../../core/component_registrator_callbacks"; var dataGridClass = null; componentRegistratorCallbacks.add((name, componentClass) => { if ("dxDataGrid" === name) { dataGridClass = componentClass } }); export default class DataGridWrapper extends Component { constructor(element, options) { var _dataGridClass; super(element, (null !== (_dataGridClass = dataGridClass) && void 0 !== _dataGridClass && _dataGridClass.defaultOptions({}), options)); this._skipInvalidate = false } state(state) { var internalInstance = this._getInternalInstance(); if (internalInstance) { if (void 0 === state) { return internalInstance.state() } internalInstance.state(state) } return } getController(name) { var _this$_getInternalIns; return null === (_this$_getInternalIns = this._getInternalInstance()) || void 0 === _this$_getInternalIns ? void 0 : _this$_getInternalIns.getController(name) } getView(name) { var _this$_getInternalIns2; return null === (_this$_getInternalIns2 = this._getInternalInstance()) || void 0 === _this$_getInternalIns2 ? void 0 : _this$_getInternalIns2.getView(name) } beginUpdate() { var _this$_getInternalIns3; super.beginUpdate(); null === (_this$_getInternalIns3 = this._getInternalInstance()) || void 0 === _this$_getInternalIns3 ? void 0 : _this$_getInternalIns3.beginUpdate() } endUpdate() { var _this$_getInternalIns4; super.endUpdate(); null === (_this$_getInternalIns4 = this._getInternalInstance()) || void 0 === _this$_getInternalIns4 ? void 0 : _this$_getInternalIns4.endUpdate() } isReady() { var _this$_getInternalIns5; return null === (_this$_getInternalIns5 = this._getInternalInstance()) || void 0 === _this$_getInternalIns5 ? void 0 : _this$_getInternalIns5.isReady() } _getInternalInstance() { var _this$viewRef; return null === (_this$viewRef = this.viewRef) || void 0 === _this$viewRef ? void 0 : _this$viewRef.getComponentInstance() } _fireContentReady() {} _wrapKeyDownHandler(handler) { return handler } _optionChanging(fullName, prevValue, value) { super._optionChanging(fullName, prevValue, value); if (this.viewRef && prevValue !== value) { var name = getPathParts(fullName)[0]; var prevProps = _extends({}, this.viewRef.prevProps); if ("integrationOptions" === name) { return } if ("editing" === name && name !== fullName) { updatePropsImmutable(prevProps, this.option(), name, name) } if (isPlainObject(prevValue) && isPlainObject(value)) { var updatedOptions = getUpdatedOptions(prevValue, value); updatedOptions.forEach(item => { updatePropsImmutable(prevProps, this.option(), name, "".concat(fullName, ".").concat(item.path)) }) } else { updatePropsImmutable(prevProps, this.option(), name, fullName) } this.viewRef.prevProps = prevProps } } _optionChanged(e) { var internalInstance = this._getInternalInstance(); ["dataSource", "editing.changes"].forEach(fullName => { if (internalInstance && e.fullName === fullName && e.value === internalInstance.option(fullName)) { internalInstance.option(fullName, e.value) } }); super._optionChanged(e) } _createTemplateComponent(templateOption) { return templateOption } _initializeComponent() { var options = this.option(); this._onInitialized = options.onInitialized; options.onInitialized = null; super._initializeComponent() } _patchOptionValues(options) { options.onInitialized = this._onInitialized; var exportOptions = options.export; var originalCustomizeExcelCell = null === exportOptions || void 0 === exportOptions ? void 0 : exportOptions.customizeExcelCell; if (originalCustomizeExcelCell) { exportOptions.customizeExcelCell = e => { e.component = this; return originalCustomizeExcelCell(e) } } var { onInitialized: onInitialized } = options; if (onInitialized) { options.onInitialized = e => { e.component = this; onInitialized(e) } } return super._patchOptionValues(options) } _renderWrapper(props) { var isFirstRender = !this._isNodeReplaced; super._renderWrapper(props); if (isFirstRender) { var _this$_getInternalIns6; null === (_this$_getInternalIns6 = this._getInternalInstance()) || void 0 === _this$_getInternalIns6 ? void 0 : _this$_getInternalIns6.on("optionChanged", this._internalOptionChangedHandler.bind(this)) } } _internalOptionChangedHandler(e) { var isSecondLevelOption = e.name !== e.fullName; if (isSecondLevelOption && e.value !== e.previousValue) { if (e.fullName.startsWith("columns[")) { if (this.option(e.fullName) !== e.value) { this._cancelOptionChange = e.fullName; this._notifyOptionChanged(e.fullName, e.value, e.previousValue); this._cancelOptionChange = void 0 } } else { this._skipInvalidate = true; this._options.silent(e.fullName, e.previousValue); this.option(e.fullName, e.value); this._skipInvalidate = false } } } _invalidate() { if (this._skipInvalidate) { return } super._invalidate() } _setOptionsByReference() { super._setOptionsByReference(); this._optionsByReference.focusedRowKey = true; this._optionsByReference["editing.editRowKey"] = true; this._optionsByReference["editing.changes"] = true } _setDeprecatedOptions() { super._setDeprecatedOptions(); this._deprecatedOptions.useKeyboard = { since: "19.2", alias: "keyboardNavigation.enabled" }; this._deprecatedOptions.rowTemplate = { since: "21.2", message: 'Use the "dataRowTemplate" option instead' }; this._deprecatedOptions.onToolbarPreparing = { since: "21.2", message: 'Use the "toolbar" option instead' } } _getDefaultOptions() { var defaultOptions = super._getDefaultOptions(); delete defaultOptions.rowTemplate; return defaultOptions } _getAdditionalProps() { return super._getAdditionalProps().concat(["onInitialized", "onColumnsChanging", "integrationOptions", "adaptColumnWidthByRatio", "useLegacyKeyboardNavigation", "templatesRenderAsynchronously", "forceApplyBindings", "nestedComponentOptions"]) } } DataGridWrapper.registerModule = gridCore.registerModule.bind(gridCore); themeReadyCallback.add();