@progress/kendo-vue-charts 4.3.3 → 4.4.0-dev.202405071452

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/cdn/js/kendo-vue-charts.js +1 -1
  2. package/dist/es/main.d.ts +1 -0
  3. package/dist/es/main.js +1 -0
  4. package/dist/es/package-metadata.js +1 -1
  5. package/dist/es/sankey/Sankey.d.ts +61 -0
  6. package/dist/es/sankey/Sankey.js +243 -0
  7. package/dist/es/sankey/main.d.ts +4 -0
  8. package/dist/es/sankey/main.js +3 -0
  9. package/dist/es/sankey/messages.d.ts +10 -0
  10. package/dist/es/sankey/messages.js +11 -0
  11. package/dist/es/sankey/theme-service.d.ts +5 -0
  12. package/dist/es/sankey/theme-service.js +101 -0
  13. package/dist/es/sankey/tooltip.d.ts +61 -0
  14. package/dist/es/sankey/tooltip.js +311 -0
  15. package/dist/es/sankey/types.d.ts +159 -0
  16. package/dist/es/sankey/types.js +1 -0
  17. package/dist/es/sankey/utils.d.ts +5 -0
  18. package/dist/es/sankey/utils.js +5 -0
  19. package/dist/esm/main.d.ts +1 -0
  20. package/dist/esm/main.js +1 -0
  21. package/dist/esm/package-metadata.js +1 -1
  22. package/dist/esm/sankey/Sankey.d.ts +61 -0
  23. package/dist/esm/sankey/Sankey.js +243 -0
  24. package/dist/esm/sankey/main.d.ts +4 -0
  25. package/dist/esm/sankey/main.js +3 -0
  26. package/dist/esm/sankey/messages.d.ts +10 -0
  27. package/dist/esm/sankey/messages.js +11 -0
  28. package/dist/esm/sankey/theme-service.d.ts +5 -0
  29. package/dist/esm/sankey/theme-service.js +101 -0
  30. package/dist/esm/sankey/tooltip.d.ts +61 -0
  31. package/dist/esm/sankey/tooltip.js +311 -0
  32. package/dist/esm/sankey/types.d.ts +159 -0
  33. package/dist/esm/sankey/types.js +1 -0
  34. package/dist/esm/sankey/utils.d.ts +5 -0
  35. package/dist/esm/sankey/utils.js +5 -0
  36. package/dist/npm/main.d.ts +1 -0
  37. package/dist/npm/main.js +1 -0
  38. package/dist/npm/package-metadata.js +1 -1
  39. package/dist/npm/sankey/Sankey.d.ts +61 -0
  40. package/dist/npm/sankey/Sankey.js +250 -0
  41. package/dist/npm/sankey/main.d.ts +4 -0
  42. package/dist/npm/sankey/main.js +7 -0
  43. package/dist/npm/sankey/messages.d.ts +10 -0
  44. package/dist/npm/sankey/messages.js +14 -0
  45. package/dist/npm/sankey/theme-service.d.ts +5 -0
  46. package/dist/npm/sankey/theme-service.js +105 -0
  47. package/dist/npm/sankey/tooltip.d.ts +61 -0
  48. package/dist/npm/sankey/tooltip.js +318 -0
  49. package/dist/npm/sankey/types.d.ts +159 -0
  50. package/dist/npm/sankey/types.js +2 -0
  51. package/dist/npm/sankey/utils.d.ts +5 -0
  52. package/dist/npm/sankey/utils.js +8 -0
  53. package/package.json +9 -7
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+
3
+ var __assign = undefined && undefined.__assign || function () {
4
+ __assign = Object.assign || function (t) {
5
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
6
+ s = arguments[i];
7
+ for (var p in s) {
8
+ if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
9
+ }
10
+ }
11
+ return t;
12
+ };
13
+ return __assign.apply(this, arguments);
14
+ };
15
+ Object.defineProperty(exports, "__esModule", {
16
+ value: true
17
+ });
18
+ exports.SankeyVue2 = exports.Sankey = void 0;
19
+ // @ts-ignore
20
+ var Vue = require("vue");
21
+ var allVue = Vue;
22
+ var gh = allVue.h;
23
+ var isV3 = allVue.version && allVue.version[0] === '3';
24
+ var kendo_vue_common_1 = require("@progress/kendo-vue-common");
25
+ var package_metadata_1 = require("./../package-metadata");
26
+ var theme_service_1 = require("./theme-service");
27
+ var kendo_charts_1 = require("@progress/kendo-charts");
28
+ var tooltip_1 = require("./tooltip");
29
+ var defaultTooltipProps = {
30
+ visible: true,
31
+ offset: 12
32
+ };
33
+ /**
34
+ * @hidden
35
+ */
36
+ var SankeyVue2 = {
37
+ name: 'KendoSankey',
38
+ // @ts-ignore
39
+ emits: {
40
+ linkclick: null,
41
+ linkenter: null,
42
+ linkleave: null,
43
+ nodeclick: null,
44
+ nodeenter: null,
45
+ nodeleave: null
46
+ },
47
+ inheritAttrs: false,
48
+ props: {
49
+ dataNodes: {
50
+ type: Array,
51
+ required: true
52
+ },
53
+ dataLinks: {
54
+ type: Array,
55
+ required: true
56
+ },
57
+ disableAutoLayout: Boolean,
58
+ labels: Object,
59
+ legend: Object,
60
+ links: Object,
61
+ nodes: Object,
62
+ title: Object,
63
+ tooltip: Object
64
+ },
65
+ created: function created() {
66
+ (0, kendo_vue_common_1.validatePackage)(package_metadata_1.packageMetadata);
67
+ this.instance = null;
68
+ },
69
+ data: function data() {
70
+ return {
71
+ currentTooltip: null
72
+ };
73
+ },
74
+ watch: {
75
+ dataNodes: function dataNodes() {
76
+ this.update(this);
77
+ },
78
+ dataLinks: function dataLinks() {
79
+ this.update(this);
80
+ },
81
+ links: function links() {
82
+ this.update(this);
83
+ },
84
+ nodes: function nodes() {
85
+ this.update(this);
86
+ },
87
+ labels: function labels() {
88
+ this.update(this);
89
+ },
90
+ title: function title() {
91
+ this.update(this);
92
+ },
93
+ legend: function legend() {
94
+ this.update(this);
95
+ },
96
+ disableAutoLayout: function disableAutoLayout() {
97
+ this.update(this);
98
+ },
99
+ tooltip: function tooltip() {
100
+ this.update(this);
101
+ }
102
+ },
103
+ computed: {
104
+ sankeyClasses: function sankeyClasses() {
105
+ var _a;
106
+ var className = this.$attrs.class;
107
+ return _a = {}, _a['k-chart k-sankey'] = true, _a[className] = Boolean(className), _a;
108
+ }
109
+ },
110
+ mounted: function mounted() {
111
+ this.element = (0, kendo_vue_common_1.getRef)(this, 'element');
112
+ this.createSankey(this);
113
+ },
114
+ destroyed: !!isV3 ? undefined : function () {
115
+ this.destroySankey();
116
+ },
117
+ // @ts-ignore
118
+ unmounted: function unmounted() {
119
+ this.destroySankey();
120
+ },
121
+ methods: {
122
+ exportVisual: function exportVisual(options) {
123
+ return this.instance.exportVisual(options);
124
+ },
125
+ destroySankey: function destroySankey() {
126
+ if (this.instance) {
127
+ this.instance.destroy();
128
+ this.instance = null;
129
+ }
130
+ },
131
+ createSankey: function createSankey() {
132
+ var _this = this;
133
+ var element = this.element;
134
+ if (!element) {
135
+ return;
136
+ }
137
+ var options = this.sankeyOptions();
138
+ (0, theme_service_1.loadTheme)(element.ownerDocument, function (theme) {
139
+ _this.instance = new kendo_charts_1.Sankey(element, options, theme);
140
+ _this.bindEvents(_this.instance);
141
+ });
142
+ },
143
+ update: function update() {
144
+ if (this.instance) {
145
+ this.instance.setOptions(this.sankeyOptions());
146
+ }
147
+ },
148
+ bindEvents: function bindEvents(instance) {
149
+ instance.bind('nodeEnter', this.triggerEvent);
150
+ instance.bind('nodeLeave', this.triggerEvent);
151
+ instance.bind('linkEnter', this.triggerEvent);
152
+ instance.bind('linkLeave', this.triggerEvent);
153
+ instance.bind('nodeClick', this.triggerEvent);
154
+ instance.bind('linkClick', this.triggerEvent);
155
+ instance.bind('tooltipShow', this.onTooltipShow);
156
+ instance.bind('tooltipHide', this.onTooltipHide);
157
+ },
158
+ triggerEvent: function triggerEvent(e) {
159
+ var event = __assign(__assign({}, e), {
160
+ target: this
161
+ });
162
+ this.$emit(e.type.toLowerCase(), event);
163
+ },
164
+ sankeyOptions: function sankeyOptions() {
165
+ var _a = this.$props,
166
+ dataNodes = _a.dataNodes,
167
+ dataLinks = _a.dataLinks,
168
+ links = _a.links,
169
+ nodes = _a.nodes,
170
+ labels = _a.labels,
171
+ title = _a.title,
172
+ legend = _a.legend,
173
+ disableAutoLayout = _a.disableAutoLayout,
174
+ tooltip = _a.tooltip;
175
+ var data = {
176
+ nodes: dataNodes,
177
+ links: dataLinks
178
+ };
179
+ return {
180
+ data: data,
181
+ links: links,
182
+ nodes: nodes,
183
+ labels: labels,
184
+ title: title,
185
+ legend: legend,
186
+ disableAutoLayout: disableAutoLayout,
187
+ tooltip: __assign(__assign({}, defaultTooltipProps), tooltip)
188
+ };
189
+ },
190
+ onTooltipShow: function onTooltipShow(event) {
191
+ var visible = __assign(__assign({}, defaultTooltipProps), this.$props.tooltip).visible;
192
+ if (visible) {
193
+ var nextTooltipProps = {
194
+ tooltipData: event.tooltipData,
195
+ eventData: {
196
+ dataItem: event.dataItem,
197
+ nodeValue: event.nodeValue,
198
+ targetType: event.targetType
199
+ }
200
+ };
201
+ this.currentTooltip = nextTooltipProps;
202
+ }
203
+ },
204
+ onTooltipHide: function onTooltipHide() {
205
+ this.currentTooltip = null;
206
+ }
207
+ },
208
+ // @ts-ignore
209
+ setup: !isV3 ? undefined : function () {
210
+ var v3 = !!isV3;
211
+ return {
212
+ v3: v3
213
+ };
214
+ },
215
+ // @ts-ignore
216
+ render: function render(createElement) {
217
+ var h = gh || createElement;
218
+ var _a = this.$props.tooltip || {},
219
+ nodeContent = _a.nodeContent,
220
+ linkContent = _a.linkContent,
221
+ offset = _a.offset;
222
+ var toolTipNode = kendo_vue_common_1.templateRendering.call(this, nodeContent, kendo_vue_common_1.getListeners.call(this));
223
+ var toolTipLink = kendo_vue_common_1.templateRendering.call(this, linkContent, kendo_vue_common_1.getListeners.call(this));
224
+ var rendering = [h("div", {
225
+ ref: (0, kendo_vue_common_1.setRef)(this, 'element'),
226
+ "class": this.sankeyClasses,
227
+ style: this.$attrs.style
228
+ }), this.currentTooltip && h(tooltip_1.Tooltip, {
229
+ tooltipData: this.currentTooltip.tooltipData,
230
+ attrs: this.v3 ? undefined : {
231
+ tooltipData: this.currentTooltip.tooltipData,
232
+ eventData: this.currentTooltip.eventData,
233
+ offset: offset || 12,
234
+ nodeContent: toolTipNode,
235
+ linkContent: toolTipLink
236
+ },
237
+ eventData: this.currentTooltip.eventData,
238
+ offset: offset || 12,
239
+ nodeContent: toolTipNode,
240
+ linkContent: toolTipLink
241
+ })];
242
+ return isV3 ? rendering : h("div", [rendering]);
243
+ }
244
+ };
245
+ exports.SankeyVue2 = SankeyVue2;
246
+ /**
247
+ * @hidden
248
+ */
249
+ var Sankey = SankeyVue2;
250
+ exports.Sankey = Sankey;
@@ -0,0 +1,4 @@
1
+ import { Sankey } from './Sankey';
2
+ import { type SankeyProps, type SankeyEvent, type SankeyNode, type SankeyLink, type SankeyLabel, type SankeyData, type SankeyLinkHighlight, type SankeyLinkDefaults, type SankeyLabelDefaults, type SankeyNodeDefaults, type SankeyLinkDataItem, type SankeyNodeDataItem, type TooltipContentProps, type SankeyExportVisualOptions, type SankeyTitle, type SankeyLegend, type SankeyTooltipProps, type SankeyTooltip, type SankeyOptions } from './types';
3
+ import { createSankeyData } from './utils';
4
+ export { Sankey, SankeyProps, SankeyEvent, SankeyLinkHighlight, SankeyNode, SankeyLink, SankeyLabel, SankeyLinkDefaults, SankeyLabelDefaults, SankeyNodeDefaults, SankeyLinkDataItem, SankeyNodeDataItem, TooltipContentProps, SankeyData, SankeyExportVisualOptions, SankeyTitle, SankeyLegend, SankeyTooltipProps, SankeyTooltip, SankeyOptions, createSankeyData };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSankeyData = exports.Sankey = void 0;
4
+ var Sankey_1 = require("./Sankey");
5
+ Object.defineProperty(exports, "Sankey", { enumerable: true, get: function () { return Sankey_1.Sankey; } });
6
+ var utils_1 = require("./utils");
7
+ Object.defineProperty(exports, "createSankeyData", { enumerable: true, get: function () { return utils_1.createSankeyData; } });
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @hidden
3
+ */
4
+ export declare const tooltipUnitFormat = "sankey.tooltipUnitFormat";
5
+ /**
6
+ * @hidden
7
+ */
8
+ export declare const messages: {
9
+ "sankey.tooltipUnitFormat": string;
10
+ };
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.messages = exports.tooltipUnitFormat = void 0;
5
+ /**
6
+ * @hidden
7
+ */
8
+ exports.tooltipUnitFormat = 'sankey.tooltipUnitFormat';
9
+ /**
10
+ * @hidden
11
+ */
12
+ exports.messages = (_a = {},
13
+ _a[exports.tooltipUnitFormat] = '({0} units)',
14
+ _a);
@@ -0,0 +1,5 @@
1
+ import { SankeyTheme } from '@progress/kendo-charts';
2
+ /**
3
+ * @hidden
4
+ */
5
+ export declare const loadTheme: (doc: Document, done: (store: SankeyTheme) => void) => void;
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadTheme = void 0;
4
+ var font = function (style) { return "".concat(style.fontWeight, " ").concat(style.fontSize, " ").concat(style.fontFamily); };
5
+ var computedBackgroundColor = function (element) { return window.getComputedStyle(element).backgroundColor; };
6
+ var letterPos = function (letter) { return letter.toLowerCase().charCodeAt(0) - 'a'.charCodeAt(0); };
7
+ var seriesPos = function (name) {
8
+ var alpha = name.match(/series-([a-z])$/);
9
+ if (alpha !== null) {
10
+ return letterPos(alpha[1]);
11
+ }
12
+ var num = name.split('--series-')[1];
13
+ return parseInt(num, 10) - 1;
14
+ };
15
+ var COLORS_COUNT = 30;
16
+ var seriesTemplate = function () {
17
+ var result = "\n <div class=\"k-var--series-a\"></div>\n <div class=\"k-var--series-b\"></div>\n <div class=\"k-var--series-c\"></div>\n <div class=\"k-var--series-d\"></div>\n <div class=\"k-var--series-e\"></div>\n <div class=\"k-var--series-f\"></div>\n";
18
+ for (var i = 0; i < COLORS_COUNT; i++) {
19
+ result += "\n <div class=\"k-var--series-".concat(i + 1, "\"></div>");
20
+ }
21
+ return result;
22
+ };
23
+ var template = "\n <div class=\"k-var--background\"></div>\n <div class=\"k-var--normal-text-color\"></div>\n <div class=\"k-var--chart-major-lines\"></div>\n\n <div class=\"k-widget k-chart\">\n <div class=\"k-var--chart-font\"></div>\n <div class=\"k-var--chart-title-font\"></div>\n </div>\n <div class=\"k-var--series-unset\"></div>\n <div class=\"k-var--series\">\n ".concat(seriesTemplate(), "\n </div>\n");
24
+ var ThemeService = /** @class */ (function () {
25
+ function ThemeService(store) {
26
+ this.store = store;
27
+ }
28
+ ThemeService.prototype.setStyle = function (field, value) {
29
+ var path = field.split('.');
30
+ var data = this.store;
31
+ path.forEach(function (p, i, arr) {
32
+ if (i < arr.length - 1) {
33
+ data = data[p] = data[p] || {};
34
+ }
35
+ });
36
+ var top = path.pop();
37
+ if (top) {
38
+ data[top] = value;
39
+ }
40
+ };
41
+ ThemeService.prototype.setColors = function () {
42
+ this.mapColor('labels.color', 'normal-text-color');
43
+ this.mapColor('labels.stroke.color', 'background');
44
+ this.mapColor('links.color', 'chart-major-lines');
45
+ this.mapColor('legend.labels.color', 'normal-text-color');
46
+ this.mapColor('title.color', 'normal-text-color');
47
+ };
48
+ ThemeService.prototype.setFonts = function () {
49
+ var titleFont = font(this.queryStyle('chart-title-font'));
50
+ var defaultFont = font(this.queryStyle('chart-font'));
51
+ this.setStyle('title.font', titleFont);
52
+ this.setStyle('labels.font', defaultFont);
53
+ this.setStyle('legend.labels.font', defaultFont);
54
+ };
55
+ ThemeService.prototype.setNodeColors = function () {
56
+ var element = this.element;
57
+ if (!element) {
58
+ return;
59
+ }
60
+ var series = [].slice.call(element.querySelectorAll('.k-var--series div'));
61
+ var unsetColor = computedBackgroundColor(element.querySelector('.k-var--series-unset'));
62
+ var colors = series.reduce(function (arr, el) {
63
+ var pos = seriesPos(el.className);
64
+ var color = computedBackgroundColor(el);
65
+ if (color !== unsetColor) {
66
+ arr[pos] = color;
67
+ }
68
+ return arr;
69
+ }, [] // Will populate the colors in this array
70
+ );
71
+ this.setStyle('nodeColors', colors);
72
+ };
73
+ ThemeService.prototype.mapColor = function (key, varName) {
74
+ this.setStyle(key, this.queryStyle(varName).backgroundColor);
75
+ };
76
+ ThemeService.prototype.queryStyle = function (varName) {
77
+ var element = this.element;
78
+ return window.getComputedStyle(element.querySelector(".k-var--".concat(varName)));
79
+ };
80
+ return ThemeService;
81
+ }());
82
+ /**
83
+ * @hidden
84
+ */
85
+ var loadTheme = function (doc, done) {
86
+ var store = {
87
+ nodeColors: []
88
+ };
89
+ var service = new ThemeService(store);
90
+ var container = service.element = doc.createElement('div');
91
+ container.style.display = 'none';
92
+ container.innerHTML = template;
93
+ doc.body.appendChild(container);
94
+ try {
95
+ service.setColors();
96
+ service.setFonts();
97
+ service.setNodeColors();
98
+ }
99
+ finally {
100
+ doc.body.removeChild(service.element);
101
+ service.element = null;
102
+ done(store);
103
+ }
104
+ };
105
+ exports.loadTheme = loadTheme;
@@ -0,0 +1,61 @@
1
+ import * as Vue from 'vue';
2
+ import { DefineComponent } from 'vue';
3
+ /**
4
+ * @hidden
5
+ */
6
+ declare type Vue2type = Vue.default;
7
+ /**
8
+ * @hidden
9
+ */
10
+ import { RecordPropsDefinition, ComponentOptions } from 'vue/types/options';
11
+ declare type DefaultData<V> = object | ((this: V) => {});
12
+ declare type DefaultMethods<V> = {
13
+ [key: string]: (this: V, ...args: any[]) => any;
14
+ };
15
+ import { SankeyTooltipProps } from './types';
16
+ /**
17
+ * @hidden
18
+ */
19
+ export interface TooltipState {
20
+ element: HTMLElement | null;
21
+ }
22
+ /**
23
+ * @hidden
24
+ */
25
+ export interface TooltipComputed {
26
+ [key: string]: any;
27
+ }
28
+ /**
29
+ * @hidden
30
+ */
31
+ export interface TooltipMethods {
32
+ [key: string]: any;
33
+ }
34
+ interface TooltipProps extends SankeyTooltipProps {
35
+ }
36
+ /**
37
+ * @hidden
38
+ */
39
+ export interface TooltipData {
40
+ top: string;
41
+ left: string;
42
+ visibility: string;
43
+ }
44
+ /**
45
+ * @hidden
46
+ */
47
+ export interface TooltipAll extends Vue2type, TooltipMethods, TooltipData, TooltipComputed, TooltipState {
48
+ }
49
+ /**
50
+ * @hidden
51
+ */
52
+ declare let TooltipVue2: ComponentOptions<TooltipAll, DefaultData<TooltipData>, DefaultMethods<TooltipAll>, TooltipComputed, RecordPropsDefinition<TooltipProps>>;
53
+ /**
54
+ * @hidden
55
+ */
56
+ export declare type TooltipType = DefineComponent<TooltipProps, any, TooltipData, TooltipComputed, TooltipMethods, {}, {}, {}, string, TooltipProps, TooltipProps, {}>;
57
+ /**
58
+ * @hidden
59
+ */
60
+ declare const Tooltip: TooltipType;
61
+ export { Tooltip, TooltipVue2 };