devextreme-vue
Version:
DevExtreme Vue UI and Visualization Components
591 lines (589 loc) • 18.2 kB
JavaScript
/*!
* devextreme-vue
* Version: 25.1.6
* Build date: Mon Oct 13 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
*
* This software may be modified and distributed under the terms
* of the MIT license. See the LICENSE file in the root of the project for details.
*
* https://github.com/DevExpress/devextreme-vue
*/
import { defineComponent } from "vue";
import { prepareComponentConfig } from "./core/index";
import Sankey from "devextreme/viz/sankey";
import { prepareConfigurationComponentConfig } from "./core/index";
const componentConfig = {
props: {
adaptiveLayout: Object,
alignment: [Array, String],
dataSource: [Array, Object, String],
disabled: Boolean,
elementAttr: Object,
export: Object,
hoverEnabled: Boolean,
label: Object,
link: Object,
loadingIndicator: Object,
margin: Object,
node: Object,
onDisposing: Function,
onDrawn: Function,
onExported: Function,
onExporting: Function,
onFileSaving: Function,
onIncidentOccurred: Function,
onInitialized: Function,
onLinkClick: Function,
onLinkHoverChanged: Function,
onNodeClick: Function,
onNodeHoverChanged: Function,
onOptionChanged: Function,
palette: [Array, String],
paletteExtensionMode: String,
pathModified: Boolean,
redrawOnResize: Boolean,
rtlEnabled: Boolean,
size: Object,
sortData: {},
sourceField: String,
targetField: String,
theme: String,
title: [Object, String],
tooltip: Object,
weightField: String
},
emits: {
"update:isActive": null,
"update:hoveredElement": null,
"update:adaptiveLayout": null,
"update:alignment": null,
"update:dataSource": null,
"update:disabled": null,
"update:elementAttr": null,
"update:export": null,
"update:hoverEnabled": null,
"update:label": null,
"update:link": null,
"update:loadingIndicator": null,
"update:margin": null,
"update:node": null,
"update:onDisposing": null,
"update:onDrawn": null,
"update:onExported": null,
"update:onExporting": null,
"update:onFileSaving": null,
"update:onIncidentOccurred": null,
"update:onInitialized": null,
"update:onLinkClick": null,
"update:onLinkHoverChanged": null,
"update:onNodeClick": null,
"update:onNodeHoverChanged": null,
"update:onOptionChanged": null,
"update:palette": null,
"update:paletteExtensionMode": null,
"update:pathModified": null,
"update:redrawOnResize": null,
"update:rtlEnabled": null,
"update:size": null,
"update:sortData": null,
"update:sourceField": null,
"update:targetField": null,
"update:theme": null,
"update:title": null,
"update:tooltip": null,
"update:weightField": null,
},
computed: {
instance() {
return this.$_instance;
}
},
beforeCreate() {
this.$_WidgetClass = Sankey;
this.$_hasAsyncTemplate = true;
this.$_expectedChildren = {
adaptiveLayout: { isCollectionItem: false, optionName: "adaptiveLayout" },
export: { isCollectionItem: false, optionName: "export" },
label: { isCollectionItem: false, optionName: "label" },
link: { isCollectionItem: false, optionName: "link" },
loadingIndicator: { isCollectionItem: false, optionName: "loadingIndicator" },
margin: { isCollectionItem: false, optionName: "margin" },
node: { isCollectionItem: false, optionName: "node" },
size: { isCollectionItem: false, optionName: "size" },
title: { isCollectionItem: false, optionName: "title" },
tooltip: { isCollectionItem: false, optionName: "tooltip" }
};
}
};
prepareComponentConfig(componentConfig);
const DxSankey = defineComponent(componentConfig);
const DxAdaptiveLayoutConfig = {
emits: {
"update:isActive": null,
"update:hoveredElement": null,
"update:height": null,
"update:keepLabels": null,
"update:width": null,
},
props: {
height: Number,
keepLabels: Boolean,
width: Number
}
};
prepareConfigurationComponentConfig(DxAdaptiveLayoutConfig);
const DxAdaptiveLayout = defineComponent(DxAdaptiveLayoutConfig);
DxAdaptiveLayout.$_optionName = "adaptiveLayout";
const DxBorderConfig = {
emits: {
"update:isActive": null,
"update:hoveredElement": null,
"update:color": null,
"update:dashStyle": null,
"update:opacity": null,
"update:visible": null,
"update:width": null,
},
props: {
color: String,
dashStyle: String,
opacity: Number,
visible: Boolean,
width: Number
}
};
prepareConfigurationComponentConfig(DxBorderConfig);
const DxBorder = defineComponent(DxBorderConfig);
DxBorder.$_optionName = "border";
const DxExportConfig = {
emits: {
"update:isActive": null,
"update:hoveredElement": null,
"update:backgroundColor": null,
"update:enabled": null,
"update:fileName": null,
"update:formats": null,
"update:margin": null,
"update:printingEnabled": null,
"update:svgToCanvas": null,
},
props: {
backgroundColor: String,
enabled: Boolean,
fileName: String,
formats: Array,
margin: Number,
printingEnabled: Boolean,
svgToCanvas: Function
}
};
prepareConfigurationComponentConfig(DxExportConfig);
const DxExport = defineComponent(DxExportConfig);
DxExport.$_optionName = "export";
const DxFontConfig = {
emits: {
"update:isActive": null,
"update:hoveredElement": null,
"update:color": null,
"update:family": null,
"update:opacity": null,
"update:size": null,
"update:weight": null,
},
props: {
color: String,
family: String,
opacity: Number,
size: [Number, String],
weight: Number
}
};
prepareConfigurationComponentConfig(DxFontConfig);
const DxFont = defineComponent(DxFontConfig);
DxFont.$_optionName = "font";
const DxFormatConfig = {
emits: {
"update:isActive": null,
"update:hoveredElement": null,
"update:currency": null,
"update:formatter": null,
"update:parser": null,
"update:precision": null,
"update:type": null,
"update:useCurrencyAccountingStyle": null,
},
props: {
currency: String,
formatter: Function,
parser: Function,
precision: Number,
type: String,
useCurrencyAccountingStyle: Boolean
}
};
prepareConfigurationComponentConfig(DxFormatConfig);
const DxFormat = defineComponent(DxFormatConfig);
DxFormat.$_optionName = "format";
const DxHatchingConfig = {
emits: {
"update:isActive": null,
"update:hoveredElement": null,
"update:direction": null,
"update:opacity": null,
"update:step": null,
"update:width": null,
},
props: {
direction: String,
opacity: Number,
step: Number,
width: Number
}
};
prepareConfigurationComponentConfig(DxHatchingConfig);
const DxHatching = defineComponent(DxHatchingConfig);
DxHatching.$_optionName = "hatching";
const DxHoverStyleConfig = {
emits: {
"update:isActive": null,
"update:hoveredElement": null,
"update:border": null,
"update:color": null,
"update:hatching": null,
"update:opacity": null,
},
props: {
border: Object,
color: String,
hatching: Object,
opacity: Number
}
};
prepareConfigurationComponentConfig(DxHoverStyleConfig);
const DxHoverStyle = defineComponent(DxHoverStyleConfig);
DxHoverStyle.$_optionName = "hoverStyle";
DxHoverStyle.$_expectedChildren = {
border: { isCollectionItem: false, optionName: "border" },
hatching: { isCollectionItem: false, optionName: "hatching" },
sankeyborder: { isCollectionItem: false, optionName: "border" }
};
const DxLabelConfig = {
emits: {
"update:isActive": null,
"update:hoveredElement": null,
"update:border": null,
"update:customizeText": null,
"update:font": null,
"update:horizontalOffset": null,
"update:overlappingBehavior": null,
"update:shadow": null,
"update:useNodeColors": null,
"update:verticalOffset": null,
"update:visible": null,
},
props: {
border: Object,
customizeText: Function,
font: Object,
horizontalOffset: Number,
overlappingBehavior: String,
shadow: Object,
useNodeColors: Boolean,
verticalOffset: Number,
visible: Boolean
}
};
prepareConfigurationComponentConfig(DxLabelConfig);
const DxLabel = defineComponent(DxLabelConfig);
DxLabel.$_optionName = "label";
DxLabel.$_expectedChildren = {
border: { isCollectionItem: false, optionName: "border" },
font: { isCollectionItem: false, optionName: "font" },
sankeyborder: { isCollectionItem: false, optionName: "border" },
shadow: { isCollectionItem: false, optionName: "shadow" }
};
const DxLinkConfig = {
emits: {
"update:isActive": null,
"update:hoveredElement": null,
"update:border": null,
"update:color": null,
"update:colorMode": null,
"update:hoverStyle": null,
"update:opacity": null,
},
props: {
border: Object,
color: String,
colorMode: String,
hoverStyle: Object,
opacity: Number
}
};
prepareConfigurationComponentConfig(DxLinkConfig);
const DxLink = defineComponent(DxLinkConfig);
DxLink.$_optionName = "link";
DxLink.$_expectedChildren = {
border: { isCollectionItem: false, optionName: "border" },
hoverStyle: { isCollectionItem: false, optionName: "hoverStyle" },
sankeyborder: { isCollectionItem: false, optionName: "border" }
};
const DxLoadingIndicatorConfig = {
emits: {
"update:isActive": null,
"update:hoveredElement": null,
"update:backgroundColor": null,
"update:enabled": null,
"update:font": null,
"update:show": null,
"update:text": null,
},
props: {
backgroundColor: String,
enabled: Boolean,
font: Object,
show: Boolean,
text: String
}
};
prepareConfigurationComponentConfig(DxLoadingIndicatorConfig);
const DxLoadingIndicator = defineComponent(DxLoadingIndicatorConfig);
DxLoadingIndicator.$_optionName = "loadingIndicator";
DxLoadingIndicator.$_expectedChildren = {
font: { isCollectionItem: false, optionName: "font" }
};
const DxMarginConfig = {
emits: {
"update:isActive": null,
"update:hoveredElement": null,
"update:bottom": null,
"update:left": null,
"update:right": null,
"update:top": null,
},
props: {
bottom: Number,
left: Number,
right: Number,
top: Number
}
};
prepareConfigurationComponentConfig(DxMarginConfig);
const DxMargin = defineComponent(DxMarginConfig);
DxMargin.$_optionName = "margin";
const DxNodeConfig = {
emits: {
"update:isActive": null,
"update:hoveredElement": null,
"update:border": null,
"update:color": null,
"update:hoverStyle": null,
"update:opacity": null,
"update:padding": null,
"update:width": null,
},
props: {
border: Object,
color: String,
hoverStyle: Object,
opacity: Number,
padding: Number,
width: Number
}
};
prepareConfigurationComponentConfig(DxNodeConfig);
const DxNode = defineComponent(DxNodeConfig);
DxNode.$_optionName = "node";
DxNode.$_expectedChildren = {
border: { isCollectionItem: false, optionName: "border" },
hoverStyle: { isCollectionItem: false, optionName: "hoverStyle" },
sankeyborder: { isCollectionItem: false, optionName: "border" }
};
const DxSankeyborderConfig = {
emits: {
"update:isActive": null,
"update:hoveredElement": null,
"update:color": null,
"update:visible": null,
"update:width": null,
},
props: {
color: String,
visible: Boolean,
width: Number
}
};
prepareConfigurationComponentConfig(DxSankeyborderConfig);
const DxSankeyborder = defineComponent(DxSankeyborderConfig);
DxSankeyborder.$_optionName = "border";
const DxShadowConfig = {
emits: {
"update:isActive": null,
"update:hoveredElement": null,
"update:blur": null,
"update:color": null,
"update:offsetX": null,
"update:offsetY": null,
"update:opacity": null,
},
props: {
blur: Number,
color: String,
offsetX: Number,
offsetY: Number,
opacity: Number
}
};
prepareConfigurationComponentConfig(DxShadowConfig);
const DxShadow = defineComponent(DxShadowConfig);
DxShadow.$_optionName = "shadow";
const DxSizeConfig = {
emits: {
"update:isActive": null,
"update:hoveredElement": null,
"update:height": null,
"update:width": null,
},
props: {
height: Number,
width: Number
}
};
prepareConfigurationComponentConfig(DxSizeConfig);
const DxSize = defineComponent(DxSizeConfig);
DxSize.$_optionName = "size";
const DxSubtitleConfig = {
emits: {
"update:isActive": null,
"update:hoveredElement": null,
"update:font": null,
"update:offset": null,
"update:text": null,
"update:textOverflow": null,
"update:wordWrap": null,
},
props: {
font: Object,
offset: Number,
text: String,
textOverflow: String,
wordWrap: String
}
};
prepareConfigurationComponentConfig(DxSubtitleConfig);
const DxSubtitle = defineComponent(DxSubtitleConfig);
DxSubtitle.$_optionName = "subtitle";
DxSubtitle.$_expectedChildren = {
font: { isCollectionItem: false, optionName: "font" }
};
const DxTitleConfig = {
emits: {
"update:isActive": null,
"update:hoveredElement": null,
"update:font": null,
"update:horizontalAlignment": null,
"update:margin": null,
"update:placeholderSize": null,
"update:subtitle": null,
"update:text": null,
"update:textOverflow": null,
"update:verticalAlignment": null,
"update:wordWrap": null,
},
props: {
font: Object,
horizontalAlignment: String,
margin: [Number, Object],
placeholderSize: Number,
subtitle: [Object, String],
text: String,
textOverflow: String,
verticalAlignment: String,
wordWrap: String
}
};
prepareConfigurationComponentConfig(DxTitleConfig);
const DxTitle = defineComponent(DxTitleConfig);
DxTitle.$_optionName = "title";
DxTitle.$_expectedChildren = {
font: { isCollectionItem: false, optionName: "font" },
margin: { isCollectionItem: false, optionName: "margin" },
subtitle: { isCollectionItem: false, optionName: "subtitle" }
};
const DxTooltipConfig = {
emits: {
"update:isActive": null,
"update:hoveredElement": null,
"update:arrowLength": null,
"update:border": null,
"update:color": null,
"update:container": null,
"update:cornerRadius": null,
"update:customizeLinkTooltip": null,
"update:customizeNodeTooltip": null,
"update:enabled": null,
"update:font": null,
"update:format": null,
"update:linkTooltipTemplate": null,
"update:nodeTooltipTemplate": null,
"update:opacity": null,
"update:paddingLeftRight": null,
"update:paddingTopBottom": null,
"update:shadow": null,
"update:zIndex": null,
},
props: {
arrowLength: Number,
border: Object,
color: String,
container: {},
cornerRadius: Number,
customizeLinkTooltip: Function,
customizeNodeTooltip: Function,
enabled: Boolean,
font: Object,
format: [Object, String, Function],
linkTooltipTemplate: {},
nodeTooltipTemplate: {},
opacity: Number,
paddingLeftRight: Number,
paddingTopBottom: Number,
shadow: Object,
zIndex: Number
}
};
prepareConfigurationComponentConfig(DxTooltipConfig);
const DxTooltip = defineComponent(DxTooltipConfig);
DxTooltip.$_optionName = "tooltip";
DxTooltip.$_expectedChildren = {
border: { isCollectionItem: false, optionName: "border" },
font: { isCollectionItem: false, optionName: "font" },
format: { isCollectionItem: false, optionName: "format" },
shadow: { isCollectionItem: false, optionName: "shadow" },
tooltipBorder: { isCollectionItem: false, optionName: "border" }
};
const DxTooltipBorderConfig = {
emits: {
"update:isActive": null,
"update:hoveredElement": null,
"update:color": null,
"update:dashStyle": null,
"update:opacity": null,
"update:visible": null,
"update:width": null,
},
props: {
color: String,
dashStyle: String,
opacity: Number,
visible: Boolean,
width: Number
}
};
prepareConfigurationComponentConfig(DxTooltipBorderConfig);
const DxTooltipBorder = defineComponent(DxTooltipBorderConfig);
DxTooltipBorder.$_optionName = "border";
export default DxSankey;
export { DxSankey, DxAdaptiveLayout, DxBorder, DxExport, DxFont, DxFormat, DxHatching, DxHoverStyle, DxLabel, DxLink, DxLoadingIndicator, DxMargin, DxNode, DxSankeyborder, DxShadow, DxSize, DxSubtitle, DxTitle, DxTooltip, DxTooltipBorder };