ui.tree_view.search.js 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. /**
  2. * DevExtreme (ui/tree_view/ui.tree_view.search.js)
  3. * Version: 19.1.16
  4. * Build date: Tue Oct 18 2022
  5. *
  6. * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
  7. * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
  8. */
  9. "use strict";
  10. var _renderer = require("../../core/renderer");
  11. var _renderer2 = _interopRequireDefault(_renderer);
  12. var _component_registrator = require("../../core/component_registrator");
  13. var _component_registrator2 = _interopRequireDefault(_component_registrator);
  14. var _ui = require("../widget/ui.search_box_mixin");
  15. var _ui2 = _interopRequireDefault(_ui);
  16. var _extend = require("../../core/utils/extend");
  17. var _uiTree_view = require("./ui.tree_view.base");
  18. var _uiTree_view2 = _interopRequireDefault(_uiTree_view);
  19. function _interopRequireDefault(obj) {
  20. return obj && obj.__esModule ? obj : {
  21. "default": obj
  22. }
  23. }
  24. var WIDGET_CLASS = "dx-treeview";
  25. var NODE_CONTAINER_CLASS = "".concat(WIDGET_CLASS, "-node-container");
  26. var TreeViewSearch = _uiTree_view2.default.inherit(_ui2.default).inherit({
  27. _addWidgetPrefix: function(className) {
  28. return "".concat(WIDGET_CLASS, "-").concat(className)
  29. },
  30. _optionChanged: function(args) {
  31. switch (args.name) {
  32. case "searchValue":
  33. if (this._showCheckboxes() && this._isRecursiveSelection()) {
  34. this._removeSelection()
  35. }
  36. this._initDataAdapter();
  37. this._updateSearch();
  38. this._repaintContainer();
  39. break;
  40. case "searchExpr":
  41. this._initDataAdapter();
  42. this.repaint();
  43. break;
  44. case "searchMode":
  45. this.option("expandNodesRecursive") ? this._updateDataAdapter() : this._initDataAdapter();
  46. this.repaint();
  47. break;
  48. default:
  49. this.callBase(args)
  50. }
  51. },
  52. _updateDataAdapter: function() {
  53. this._setOptionSilent("expandNodesRecursive", false);
  54. this._initDataAdapter();
  55. this._setOptionSilent("expandNodesRecursive", true)
  56. },
  57. _getDataAdapterOptions: function() {
  58. return (0, _extend.extend)(this.callBase(), {
  59. searchValue: this.option("searchValue"),
  60. searchMode: this.option("searchMode") || "contains",
  61. searchExpr: this.option("searchExpr")
  62. })
  63. },
  64. _updateSearch: function() {
  65. if (this._searchEditor) {
  66. var editorOptions = this._getSearchEditorOptions();
  67. this._searchEditor.option(editorOptions)
  68. }
  69. },
  70. _repaintContainer: function() {
  71. var $container = this.$element().find(".".concat(NODE_CONTAINER_CLASS)).first();
  72. var rootNodes;
  73. if ($container.length) {
  74. $container.empty();
  75. rootNodes = this._dataAdapter.getRootNodes();
  76. this._renderEmptyMessage(rootNodes);
  77. this._renderItems($container, rootNodes);
  78. this._fireContentReadyAction()
  79. }
  80. },
  81. _itemContainer: function(isSearchMode) {
  82. if (this._scrollableContainer && isSearchMode) {
  83. return (0, _renderer2.default)(this._scrollableContainer.content())
  84. }
  85. return this.callBase()
  86. },
  87. _addWidgetClass: function() {
  88. this.$element().addClass(this._widgetClass())
  89. },
  90. _clean: function() {
  91. this.callBase();
  92. this._removeSearchBox()
  93. }
  94. });
  95. (0, _component_registrator2.default)("dxTreeView", TreeViewSearch);
  96. module.exports = TreeViewSearch;