Your search did not match any results.
Diagram

UI Customization

Documentation

Note that the Diagram widget is in the community technology preview (CTP) development stage.

The Diagram widget allows you to customize its UI elements with the following options.

  • The contextMenu option controls the context menu availability and specifies the visible commands.
  • The propertiesPanel option contains settings of the Properties panel.
  • The toolbar option controls toolbar visibility and specifies a set of available commands.
  • The toolbox option controls element visibility, and specifies the groups and shapes visible in the toolbox.
Copy to CodeSandBox
Apply
Reset
<template> <dx-diagram id="diagram" ref="diagram" > <dx-context-menu :enabled="true" :commands="['bringToFront', 'sendToBack' , 'lock' , 'unlock' ]" /> <dx-properties-panel :enabled="true" :collapsible="false" > <dx-group :commands="['units']"/> <dx-group :commands="['pageSize', 'pageOrientation' , 'pageColor' ]"/> </dx-properties-panel> <dx-toolbar :visible="true" :commands="['undo', 'redo' , 'separator' , 'fontName' , 'fontSize' , 'separator' , 'bold' , 'italic' , 'underline' , 'separator' , 'fontColor' , 'lineColor' , 'fillColor' , 'separator' ]" /> <dx-toolbox :visible="true"> <dx-group :category="'general'" :title="'General'" /> <dx-group :category="'flowchart'" :title="'Flowchart'" :expanded="true" /> </dx-toolbox> </dx-diagram> </template> <script> import { DxDiagram, DxContextMenu, DxPropertiesPanel, DxGroup, DxToolbar, DxToolbox } from 'devextreme-vue/diagram'; import 'whatwg-fetch'; export default { components: { DxDiagram, DxContextMenu, DxPropertiesPanel, DxGroup, DxToolbar, DxToolbox }, mounted() { var diagram = this.$refs['diagram'].instance; fetch('../../../../data/diagram-flow.json') .then(function(response) { return response.json(); }) .then(function(json) { diagram.import(JSON.stringify(json)); }) .catch(function() { throw 'Data Loading Error'; }); } }; </script> <style scoped> #diagram { height: 900px; } </style>
import Vue from 'vue'; import App from './App.vue'; new Vue({ el: '#app', components: { App }, template: '<App/>' });
<!DOCTYPE html> <html> <head> <title>DevExtreme Demo</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/19.2.4/css/dx.common.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/19.2.4/css/dx.light.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/19.2.4/css/dx-diagram.min.css" /> <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" /> <script src="https://unpkg.com/core-js@2.4.1/client/shim.min.js"></script> <script src="https://unpkg.com/systemjs@0.21.3/dist/system.js"></script> <script type="text/javascript" src="config.js"></script> <script type="text/javascript"> System.import('./index.js'); </script> </head> <body class="dx-viewport"> <div class="demo-container"> <div id="app"> </div> </div> </body> </html>
System.config({ transpiler: 'plugin-babel', paths: { 'npm:': 'https://unpkg.com/' }, map: { vue: 'npm:vue@2.6.3/dist/vue.esm.browser.js', 'vue-loader': 'npm:dx-systemjs-vue-browser@latest/index.js', 'devextreme': 'npm:devextreme@19.2', 'devextreme-vue': 'npm:devextreme-vue@19.2', jszip: 'npm:jszip@3.1.3/dist/jszip.min.js', 'quill': 'npm:quill@1.3.7/dist/quill.js', 'devexpress-diagram': 'npm:devexpress-diagram', 'devexpress-gantt': 'npm:devexpress-gantt', 'whatwg-fetch': 'npm:whatwg-fetch@2.0.4/fetch.js', 'plugin-babel': 'npm:systemjs-plugin-babel@0/plugin-babel.js', 'systemjs-babel-build': 'npm:systemjs-plugin-babel@0/systemjs-babel-browser.js' }, meta: { '*.vue': { loader: 'vue-loader' } }, packages: { 'devextreme-vue': { main: 'index.js' }, 'devextreme': { defaultExtension: 'js' } }, babelOptions: { sourceMaps: false, stage0: true } });