devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
54 lines (53 loc) • 1.75 kB
JavaScript
/**
* DevExtreme (esm/__internal/grids/new/grid_core/toolbar/view.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 {
computed
} from "@preact/signals-core";
import {
BaseContextMenuController
} from "../context_menu/controller";
import {
View
} from "../core/view";
import {
OptionsController
} from "../options_controller/options_controller";
import {
ToolbarController
} from "./controller";
import {
ToolbarView as Toolbar
} from "./toolbar";
import {
isVisible
} from "./utils";
export class ToolbarView extends View {
constructor(controller, contextMenuController, options) {
super();
this.controller = controller;
this.contextMenuController = contextMenuController;
this.options = options;
this.component = Toolbar;
this.visibleConfig = this.options.oneWay("toolbar.visible");
this.visible = computed((() => isVisible(this.visibleConfig.value, this.controller.items.value)))
}
getProps() {
return computed((() => ({
visible: this.visible.value,
items: this.controller.items.value,
disabled: this.options.oneWay("toolbar.disabled").value,
multiline: this.options.oneWay("toolbar.multiline").value,
showContextMenu: this.showContextMenu.bind(this)
})))
}
showContextMenu(event) {
this.contextMenuController.show(event, "toolbar")
}
}
ToolbarView.dependencies = [ToolbarController, BaseContextMenuController, OptionsController];