devextreme
Version:
JavaScript/TypeScript Component Suite for Responsive Web Development
62 lines (60 loc) • 3.23 kB
JavaScript
/**
* DevExtreme (cjs/__internal/grids/new/grid_core/search/view.js)
* Version: 25.2.7
* Build date: Tue May 05 2026
*
* Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.SearchView = void 0;
var _message = _interopRequireDefault(require("../../../../../localization/message"));
var _index = require("../../../../core/state_manager/index");
var _controller = require("../../../../grids/new/grid_core/toolbar/controller");
var _options_controller = require("../options_controller/options_controller");
var _controller2 = require("./controller");
var _controller_ui = require("./controller_ui");
var _utils = require("./utils");
function _interopRequireDefault(e) {
return e && e.__esModule ? e : {
default: e
}
}
class SearchView {
constructor(options, toolbarController, searchUIController, searchController) {
this.options = options;
this.toolbarController = toolbarController;
this.searchUIController = searchUIController;
this.searchController = searchController;
this.searchTextBox = (0, _index.signal)(null);
const toolbarItem = (0, _utils.addSearchTextBox)({
placeholder: this.getPlaceholder(),
value: this.searchController.searchTextOption.value,
width: this.searchController.searchWidth.value,
onValueChanged: text => {
this.searchController.updateSearchText(text)
}
}, component => {
this.searchTextBox.value = component
});
this.toolbarController.addDefaultItem((0, _index.signal)(toolbarItem), this.options.oneWay("searchPanel.visible"));
(0, _index.effect)(() => {
var _this$searchTextBox$v, _this$searchTextBox$v2, _this$searchTextBox$v3;
null === (_this$searchTextBox$v = this.searchTextBox.value) || void 0 === _this$searchTextBox$v || _this$searchTextBox$v.option("value", this.searchController.searchTextOption.value);
null === (_this$searchTextBox$v2 = this.searchTextBox.value) || void 0 === _this$searchTextBox$v2 || _this$searchTextBox$v2.option("placeholder", this.getPlaceholder());
null === (_this$searchTextBox$v3 = this.searchTextBox.value) || void 0 === _this$searchTextBox$v3 || _this$searchTextBox$v3.option("width", this.searchController.searchWidth.value)
});
this.searchUIController.registerCallback("focusSearchTextBox", () => {
var _this$searchTextBox$v4;
null === (_this$searchTextBox$v4 = this.searchTextBox.value) || void 0 === _this$searchTextBox$v4 || _this$searchTextBox$v4.focus()
})
}
getPlaceholder() {
return this.searchController.searchPlaceholder.value ?? _message.default.format("dxDataGrid-searchPanelPlaceholder")
}
}
exports.SearchView = SearchView;
SearchView.dependencies = [_options_controller.OptionsController, _controller.ToolbarController, _controller_ui.SearchUIController, _controller2.SearchController];