@progress/kendo-vue-pdf 3.6.4 → 3.7.0-dev.202210250731
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.
- package/dist/cdn/js/kendo-vue-pdf.js +1 -1
- package/dist/es/PDFExport.js +4 -5
- package/dist/es/{grid → common}/dom-queries.d.ts +0 -0
- package/dist/es/{grid → common}/dom-queries.js +1 -1
- package/dist/es/common/table-query.d.ts +22 -0
- package/dist/es/common/table-query.js +36 -0
- package/dist/es/common/utils.d.ts +20 -0
- package/dist/es/common/utils.js +74 -0
- package/dist/es/grid/GridPDFExport.js +2 -5
- package/dist/es/grid/export-element.js +2 -58
- package/dist/es/grid/grid-query.js +2 -2
- package/dist/es/grid/provideSaveGridPDF.js +2 -20
- package/dist/es/main.d.ts +2 -1
- package/dist/es/main.js +2 -1
- package/dist/es/package-metadata.js +1 -1
- package/dist/es/treelist/TreeListPDFExport.d.ts +37 -0
- package/dist/es/treelist/TreeListPDFExport.js +75 -0
- package/dist/es/treelist/export-element.d.ts +4 -0
- package/dist/es/treelist/export-element.js +31 -0
- package/dist/es/treelist/provideSaveTreeListPDF.d.ts +5 -0
- package/dist/es/treelist/provideSaveTreeListPDF.js +116 -0
- package/dist/esm/PDFExport.js +4 -5
- package/dist/esm/{grid → common}/dom-queries.d.ts +0 -0
- package/dist/esm/{grid → common}/dom-queries.js +1 -1
- package/dist/esm/common/table-query.d.ts +22 -0
- package/dist/esm/common/table-query.js +36 -0
- package/dist/esm/common/utils.d.ts +20 -0
- package/dist/esm/common/utils.js +74 -0
- package/dist/esm/grid/GridPDFExport.js +2 -5
- package/dist/esm/grid/export-element.js +2 -58
- package/dist/esm/grid/grid-query.js +2 -2
- package/dist/esm/grid/provideSaveGridPDF.js +2 -20
- package/dist/esm/main.d.ts +2 -1
- package/dist/esm/main.js +2 -1
- package/dist/esm/package-metadata.js +1 -1
- package/dist/esm/treelist/TreeListPDFExport.d.ts +37 -0
- package/dist/esm/treelist/TreeListPDFExport.js +75 -0
- package/dist/esm/treelist/export-element.d.ts +4 -0
- package/dist/esm/treelist/export-element.js +31 -0
- package/dist/esm/treelist/provideSaveTreeListPDF.d.ts +5 -0
- package/dist/esm/treelist/provideSaveTreeListPDF.js +116 -0
- package/dist/npm/PDFExport.js +7 -14
- package/dist/npm/{grid → common}/dom-queries.d.ts +0 -0
- package/dist/npm/{grid → common}/dom-queries.js +1 -1
- package/dist/npm/common/table-query.d.ts +22 -0
- package/dist/npm/common/table-query.js +39 -0
- package/dist/npm/common/utils.d.ts +20 -0
- package/dist/npm/common/utils.js +82 -0
- package/dist/npm/grid/GridPDFExport.js +4 -12
- package/dist/npm/grid/export-element.js +3 -59
- package/dist/npm/grid/grid-query.js +2 -2
- package/dist/npm/grid/provideSaveGridPDF.js +2 -25
- package/dist/npm/main.d.ts +2 -1
- package/dist/npm/main.js +4 -1
- package/dist/npm/package-metadata.js +1 -1
- package/dist/npm/treelist/TreeListPDFExport.d.ts +37 -0
- package/dist/npm/treelist/TreeListPDFExport.js +82 -0
- package/dist/npm/treelist/export-element.d.ts +4 -0
- package/dist/npm/treelist/export-element.js +35 -0
- package/dist/npm/treelist/provideSaveTreeListPDF.d.ts +5 -0
- package/dist/npm/treelist/provideSaveTreeListPDF.js +123 -0
- package/package.json +2 -2
|
@@ -2,19 +2,15 @@ var __assign = this && this.__assign || function () {
|
|
|
2
2
|
__assign = Object.assign || function (t) {
|
|
3
3
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
4
|
s = arguments[i];
|
|
5
|
-
|
|
6
5
|
for (var p in s) {
|
|
7
6
|
if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
8
7
|
}
|
|
9
8
|
}
|
|
10
|
-
|
|
11
9
|
return t;
|
|
12
10
|
};
|
|
13
|
-
|
|
14
11
|
return __assign.apply(this, arguments);
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
};
|
|
13
|
+
// @ts-ignore
|
|
18
14
|
import * as Vue from 'vue';
|
|
19
15
|
import { canUseDOM } from '@progress/kendo-vue-common';
|
|
20
16
|
var allVue = Vue;
|
|
@@ -24,33 +20,27 @@ import { exportElement } from './export-element.js';
|
|
|
24
20
|
/**
|
|
25
21
|
* @hidden
|
|
26
22
|
*/
|
|
27
|
-
|
|
28
23
|
export function provideSaveGridPDF(savePDF) {
|
|
29
24
|
return function (grid, pdfExportOptions, callback, data, columns) {
|
|
30
25
|
if (pdfExportOptions === void 0) {
|
|
31
26
|
pdfExportOptions = {};
|
|
32
27
|
}
|
|
33
|
-
|
|
34
28
|
return saveGridPDF(savePDF, grid, pdfExportOptions, callback, data, columns);
|
|
35
29
|
};
|
|
36
30
|
}
|
|
37
|
-
|
|
38
31
|
function saveGridPDF(savePDF, grid, pdfExportOptions, callback, data, v3) {
|
|
39
32
|
if (pdfExportOptions === void 0) {
|
|
40
33
|
pdfExportOptions = {};
|
|
41
34
|
}
|
|
42
|
-
|
|
43
35
|
renderGrid();
|
|
44
36
|
var gridOuterWrapper;
|
|
45
37
|
var gridInnerWrapper;
|
|
46
38
|
var finalContainer;
|
|
47
39
|
var gridInstance;
|
|
48
|
-
|
|
49
40
|
function renderGrid() {
|
|
50
41
|
if (!canUseDOM) {
|
|
51
42
|
return;
|
|
52
43
|
}
|
|
53
|
-
|
|
54
44
|
gridOuterWrapper = document.createElement('div');
|
|
55
45
|
gridOuterWrapper.setAttribute('style', 'position:absolute; left: -5000px; top: 0px;');
|
|
56
46
|
gridInnerWrapper = document.createElement('div');
|
|
@@ -62,7 +52,6 @@ function saveGridPDF(savePDF, grid, pdfExportOptions, callback, data, v3) {
|
|
|
62
52
|
pageSize: data.length,
|
|
63
53
|
skip: 0
|
|
64
54
|
};
|
|
65
|
-
|
|
66
55
|
if (v3) {
|
|
67
56
|
var gridForPdf = {
|
|
68
57
|
render: function render() {
|
|
@@ -75,7 +64,6 @@ function saveGridPDF(savePDF, grid, pdfExportOptions, callback, data, v3) {
|
|
|
75
64
|
// @ts-ignore
|
|
76
65
|
this.$el.style.width = '1000px';
|
|
77
66
|
}
|
|
78
|
-
|
|
79
67
|
onGridRendered.call(this);
|
|
80
68
|
}
|
|
81
69
|
};
|
|
@@ -90,7 +78,6 @@ function saveGridPDF(savePDF, grid, pdfExportOptions, callback, data, v3) {
|
|
|
90
78
|
if (gridInstance.$el.style) {
|
|
91
79
|
gridInstance.$el.style.width = '1000px';
|
|
92
80
|
}
|
|
93
|
-
|
|
94
81
|
onGridRendered.call(gridInstance);
|
|
95
82
|
}
|
|
96
83
|
});
|
|
@@ -99,27 +86,22 @@ function saveGridPDF(savePDF, grid, pdfExportOptions, callback, data, v3) {
|
|
|
99
86
|
gridInstance.$mount(gridInnerWrapper);
|
|
100
87
|
}
|
|
101
88
|
}
|
|
102
|
-
|
|
103
89
|
function onGridRendered() {
|
|
104
90
|
savePDF(prepareFinalElementForExport.call(this), pdfExportOptions, cleanUpAndInvokeCallback);
|
|
105
91
|
}
|
|
106
|
-
|
|
107
92
|
function cleanUpAndInvokeCallback() {
|
|
108
93
|
if (gridInstance.unmount) {
|
|
109
94
|
gridInstance.unmount();
|
|
110
95
|
} else {
|
|
111
96
|
gridInstance.$destroy();
|
|
112
97
|
}
|
|
113
|
-
|
|
114
98
|
document.body.removeChild(gridOuterWrapper);
|
|
115
99
|
document.body.removeChild(finalContainer);
|
|
116
100
|
gridOuterWrapper = finalContainer = undefined;
|
|
117
|
-
|
|
118
101
|
if (callback) {
|
|
119
102
|
callback();
|
|
120
103
|
}
|
|
121
104
|
}
|
|
122
|
-
|
|
123
105
|
function prepareFinalElementForExport() {
|
|
124
106
|
/* Ultimatelly, there is no need for double DOM-copying of the grid.
|
|
125
107
|
The one in this method is a copied Angular implementation
|
package/dist/esm/main.d.ts
CHANGED
|
@@ -3,4 +3,5 @@ import { PDFExportProps } from './PDFExportProps';
|
|
|
3
3
|
import { PageTemplateProps } from './PageTemplateProps';
|
|
4
4
|
import { savePDF } from './savePDF';
|
|
5
5
|
import { GridPdfExport, GridPdfExportVue2, GridPDFExportProps } from './grid/GridPDFExport';
|
|
6
|
-
|
|
6
|
+
import { TreeListPDFExport, TreeListPDFExportVue2, TreeListPDFExportProps } from './treelist/TreeListPDFExport';
|
|
7
|
+
export { PDFExport, PDFExportVue2, PDFExportProps, PageTemplateProps, savePDF, GridPdfExport, GridPdfExportVue2, GridPDFExportProps, TreeListPDFExport, TreeListPDFExportVue2, TreeListPDFExportProps };
|
package/dist/esm/main.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { PDFExport, PDFExportVue2 } from './PDFExport.js';
|
|
2
2
|
import { savePDF } from './savePDF.js';
|
|
3
3
|
import { GridPdfExport, GridPdfExportVue2 } from './grid/GridPDFExport.js';
|
|
4
|
-
|
|
4
|
+
import { TreeListPDFExport, TreeListPDFExportVue2 } from './treelist/TreeListPDFExport.js';
|
|
5
|
+
export { PDFExport, PDFExportVue2, savePDF, GridPdfExport, GridPdfExportVue2, TreeListPDFExport, TreeListPDFExportVue2 };
|
|
5
6
|
// Automatic installation if Vue has been added to the global scope.
|
|
6
7
|
var vue = 'Vue';
|
|
7
8
|
if (typeof window !== 'undefined' && window[vue] && window[vue].component) {
|
|
@@ -5,7 +5,7 @@ export var packageMetadata = {
|
|
|
5
5
|
name: '@progress/kendo-vue-pdf',
|
|
6
6
|
productName: 'Kendo UI for Vue',
|
|
7
7
|
productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],
|
|
8
|
-
publishDate:
|
|
8
|
+
publishDate: 1666682411,
|
|
9
9
|
version: '',
|
|
10
10
|
licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'
|
|
11
11
|
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { DefineComponent, RecordPropsDefinition, ComponentOptions, Vue2type } from '../additionalTypes';
|
|
2
|
+
declare type DefaultData<V> = object | ((this: V) => {});
|
|
3
|
+
declare type DefaultMethods<V> = {
|
|
4
|
+
[key: string]: (this: V, ...args: any[]) => any;
|
|
5
|
+
};
|
|
6
|
+
import { PDFExportProps } from '../PDFExportProps';
|
|
7
|
+
export interface TreeListPDFExportProps extends PDFExportProps {
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* @hidden
|
|
11
|
+
*/
|
|
12
|
+
export interface TreeListPDFExportMethods extends Vue2type {
|
|
13
|
+
save: (data?: any[], callback?: () => void) => void;
|
|
14
|
+
getSavePDF: () => any;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* @hidden
|
|
18
|
+
*/
|
|
19
|
+
export interface TreeListPDFExportState {
|
|
20
|
+
saveTreeListPDF: any;
|
|
21
|
+
treeListComponent: any;
|
|
22
|
+
v3: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @hidden
|
|
26
|
+
*/
|
|
27
|
+
export interface TreeListPDFExportAll extends TreeListPDFExportMethods, TreeListPDFExportState {
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @hidden
|
|
31
|
+
*/
|
|
32
|
+
declare let TreeListPDFExportVue2: ComponentOptions<Vue2type, DefaultData<{}>, DefaultMethods<TreeListPDFExportAll>, {}, RecordPropsDefinition<TreeListPDFExportProps>>;
|
|
33
|
+
/**
|
|
34
|
+
* @hidden
|
|
35
|
+
*/
|
|
36
|
+
declare const TreeListPDFExport: DefineComponent<TreeListPDFExportProps, any, {}, {}, TreeListPDFExportMethods, {}, {}, {}, string, TreeListPDFExportProps, TreeListPDFExportProps, {}>;
|
|
37
|
+
export { TreeListPDFExport, TreeListPDFExportVue2 };
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
// @ts-ignore
|
|
2
|
+
import * as Vue from 'vue';
|
|
3
|
+
var allVue = Vue;
|
|
4
|
+
var gh = allVue.h;
|
|
5
|
+
var isV3 = allVue.version && allVue.version[0] === '3';
|
|
6
|
+
import { savePDF } from '../savePDF.js';
|
|
7
|
+
import { provideSaveTreeListPDF } from './provideSaveTreeListPDF.js';
|
|
8
|
+
import { getDefaultSlots } from '@progress/kendo-vue-common';
|
|
9
|
+
/**
|
|
10
|
+
* @hidden
|
|
11
|
+
*/
|
|
12
|
+
var TreeListPDFExportVue2 = {
|
|
13
|
+
name: 'treelist-pdf-export',
|
|
14
|
+
props: {
|
|
15
|
+
author: String,
|
|
16
|
+
avoidLinks: [Boolean, String],
|
|
17
|
+
forcePageBreak: String,
|
|
18
|
+
keepTogether: String,
|
|
19
|
+
creator: String,
|
|
20
|
+
date: Date,
|
|
21
|
+
imageResolution: Number,
|
|
22
|
+
fileName: String,
|
|
23
|
+
forceProxy: Boolean,
|
|
24
|
+
keywords: String,
|
|
25
|
+
landscape: Boolean,
|
|
26
|
+
margin: [String, Object],
|
|
27
|
+
pageTemplate: [Object, Function],
|
|
28
|
+
paperSize: [String, Object],
|
|
29
|
+
repeatHeaders: Boolean,
|
|
30
|
+
scale: Number,
|
|
31
|
+
proxyData: Object,
|
|
32
|
+
proxyURL: String,
|
|
33
|
+
proxyTarget: String,
|
|
34
|
+
producer: String,
|
|
35
|
+
subject: String,
|
|
36
|
+
title: String
|
|
37
|
+
},
|
|
38
|
+
created: function created() {
|
|
39
|
+
this.saveTreeListPDF = provideSaveTreeListPDF(this.getSavePDF());
|
|
40
|
+
},
|
|
41
|
+
methods: {
|
|
42
|
+
save: function save(data, callback) {
|
|
43
|
+
var defaultSlot = getDefaultSlots(this);
|
|
44
|
+
// @ts-ignore
|
|
45
|
+
var treeListSlot = defaultSlot.filter(function (child) {
|
|
46
|
+
return child && child.tag && child.tag.toLowerCase().indexOf('treelist') !== -1 || child.componentOptions && child.componentOptions.tag && child.componentOptions.tag.toLowerCase().indexOf('treelist') !== -1 || child.type && child.type.name && child.type.name.toLowerCase().indexOf('treelist') !== -1;
|
|
47
|
+
});
|
|
48
|
+
if (treeListSlot.length) {
|
|
49
|
+
this.treeListComponent = this.v3 ? treeListSlot[0] : treeListSlot[0].componentInstance;
|
|
50
|
+
this.saveTreeListPDF(this.treeListComponent, this.$props, callback, data, this.v3);
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
getSavePDF: function getSavePDF() {
|
|
54
|
+
return savePDF;
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
// @ts-ignore
|
|
58
|
+
setup: !isV3 ? undefined : function () {
|
|
59
|
+
var v3 = !!isV3;
|
|
60
|
+
return {
|
|
61
|
+
v3: v3
|
|
62
|
+
};
|
|
63
|
+
},
|
|
64
|
+
// @ts-ignore
|
|
65
|
+
render: function render(createElement) {
|
|
66
|
+
var h = gh || createElement;
|
|
67
|
+
var defaultSlot = getDefaultSlots(this);
|
|
68
|
+
return h("div", [defaultSlot]);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* @hidden
|
|
73
|
+
*/
|
|
74
|
+
var TreeListPDFExport = TreeListPDFExportVue2;
|
|
75
|
+
export { TreeListPDFExport, TreeListPDFExportVue2 };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { GridQuery } from '../common/table-query.js';
|
|
2
|
+
import { wrapTable, createTable } from '../common/utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* @hidden
|
|
5
|
+
*/
|
|
6
|
+
export var exportElement = function (wrapper) {
|
|
7
|
+
var query = new GridQuery(wrapper);
|
|
8
|
+
var content = query.content();
|
|
9
|
+
var result;
|
|
10
|
+
var headerWithoutFilter = query.header();
|
|
11
|
+
if (headerWithoutFilter.children.length > 1) {
|
|
12
|
+
headerWithoutFilter.removeChild(headerWithoutFilter.children[1]);
|
|
13
|
+
}
|
|
14
|
+
headerWithoutFilter.children[0].childNodes.forEach(function (headerCell) {
|
|
15
|
+
if (headerCell.style) {
|
|
16
|
+
return headerCell.style.top = 0;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
if (content) {
|
|
20
|
+
var colGroups = [content.querySelector('colgroup')];
|
|
21
|
+
var headers = [headerWithoutFilter];
|
|
22
|
+
var bodies = [content.querySelector('tbody')];
|
|
23
|
+
var footer = query.footer();
|
|
24
|
+
var footers = footer ? [footer.querySelector('tfoot')] : [];
|
|
25
|
+
result = createTable(colGroups, headers, bodies, footers);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
result = wrapTable(query.table().cloneNode(true));
|
|
29
|
+
}
|
|
30
|
+
return result;
|
|
31
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { PDFExportProps } from '../PDFExportProps';
|
|
2
|
+
/**
|
|
3
|
+
* @hidden
|
|
4
|
+
*/
|
|
5
|
+
export declare function provideSaveTreeListPDF(savePDF: (domElement: HTMLElement, options?: PDFExportProps, callback?: () => void) => void): (treeList: any, pdfExportOptions?: PDFExportProps, callback?: () => void, data?: any, columns?: any) => void;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
var __assign = this && this.__assign || function () {
|
|
2
|
+
__assign = Object.assign || function (t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) {
|
|
6
|
+
if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
// @ts-ignore
|
|
14
|
+
import * as Vue from 'vue';
|
|
15
|
+
import { canUseDOM } from '@progress/kendo-vue-common';
|
|
16
|
+
var allVue = Vue;
|
|
17
|
+
var h = allVue.h;
|
|
18
|
+
var createApp = allVue.createApp;
|
|
19
|
+
import { exportElement } from './export-element.js';
|
|
20
|
+
/**
|
|
21
|
+
* @hidden
|
|
22
|
+
*/
|
|
23
|
+
export function provideSaveTreeListPDF(savePDF) {
|
|
24
|
+
return function (treeList, pdfExportOptions, callback, data, columns) {
|
|
25
|
+
if (pdfExportOptions === void 0) {
|
|
26
|
+
pdfExportOptions = {};
|
|
27
|
+
}
|
|
28
|
+
return saveTreeListPDF(savePDF, treeList, pdfExportOptions, callback, data, columns);
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function saveTreeListPDF(savePDF, treeList, pdfExportOptions, callback, data, v3) {
|
|
32
|
+
if (pdfExportOptions === void 0) {
|
|
33
|
+
pdfExportOptions = {};
|
|
34
|
+
}
|
|
35
|
+
renderTreeList();
|
|
36
|
+
var treeListOuterWrapper;
|
|
37
|
+
var treeListInnerWrapper;
|
|
38
|
+
var finalContainer;
|
|
39
|
+
var treeListInstance;
|
|
40
|
+
function renderTreeList() {
|
|
41
|
+
if (!canUseDOM) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
treeListOuterWrapper = document.createElement('div');
|
|
45
|
+
treeListOuterWrapper.setAttribute('style', 'position:absolute; left: -5000px; top: 0px;');
|
|
46
|
+
treeListInnerWrapper = document.createElement('div');
|
|
47
|
+
treeListOuterWrapper.appendChild(treeListInnerWrapper);
|
|
48
|
+
document.body.appendChild(treeListOuterWrapper);
|
|
49
|
+
var customDataProps = data && {
|
|
50
|
+
dataItems: data,
|
|
51
|
+
total: data.length,
|
|
52
|
+
pageSize: data.length,
|
|
53
|
+
skip: 0
|
|
54
|
+
};
|
|
55
|
+
if (v3) {
|
|
56
|
+
var treeListForPdf = {
|
|
57
|
+
render: function render() {
|
|
58
|
+
return h(treeList.type, __assign(__assign({}, treeList.props), customDataProps), treeList.children);
|
|
59
|
+
},
|
|
60
|
+
store: treeList.$store,
|
|
61
|
+
mounted: function mounted() {
|
|
62
|
+
// @ts-ignore
|
|
63
|
+
if (this.$el.style) {
|
|
64
|
+
// @ts-ignore
|
|
65
|
+
this.$el.style.width = '1000px';
|
|
66
|
+
}
|
|
67
|
+
onTreeListRendered.call(this);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
treeListInstance = createApp(treeListForPdf);
|
|
71
|
+
treeListInstance.mount(treeListInnerWrapper);
|
|
72
|
+
} else {
|
|
73
|
+
var treeListConstructor = Object.getPrototypeOf(treeList).constructor;
|
|
74
|
+
treeListInstance = new treeListConstructor({
|
|
75
|
+
propsData: Object.assign({}, treeList.$props, customDataProps),
|
|
76
|
+
store: treeList.$store,
|
|
77
|
+
mounted: function mounted() {
|
|
78
|
+
if (treeListInstance.$el.style) {
|
|
79
|
+
treeListInstance.$el.style.width = '1000px';
|
|
80
|
+
}
|
|
81
|
+
onTreeListRendered.call(treeListInstance);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
treeListInstance.$slots = treeList.$slots;
|
|
85
|
+
treeListInstance.$scopedSlots = treeList.$scopedSlots;
|
|
86
|
+
treeListInstance.$mount(treeListInnerWrapper);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function onTreeListRendered() {
|
|
90
|
+
savePDF(prepareFinalElementForExport.call(this), pdfExportOptions, cleanUpAndInvokeCallback);
|
|
91
|
+
}
|
|
92
|
+
function cleanUpAndInvokeCallback() {
|
|
93
|
+
if (treeListInstance.unmount) {
|
|
94
|
+
treeListInstance.unmount();
|
|
95
|
+
} else {
|
|
96
|
+
treeListInstance.$destroy();
|
|
97
|
+
}
|
|
98
|
+
document.body.removeChild(treeListOuterWrapper);
|
|
99
|
+
document.body.removeChild(finalContainer);
|
|
100
|
+
treeListOuterWrapper = finalContainer = undefined;
|
|
101
|
+
if (callback) {
|
|
102
|
+
callback();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function prepareFinalElementForExport() {
|
|
106
|
+
/* Ultimatelly, there is no need for double DOM-copying of the treeList.
|
|
107
|
+
The one in this method is a copied Angular implementation
|
|
108
|
+
that has been plugged almost seemlessly. */
|
|
109
|
+
finalContainer = document.createElement('div');
|
|
110
|
+
finalContainer.className = 'k-treelist-pdf-export-element';
|
|
111
|
+
var result = exportElement(this.$el);
|
|
112
|
+
finalContainer.appendChild(result);
|
|
113
|
+
document.body.appendChild(finalContainer);
|
|
114
|
+
return result;
|
|
115
|
+
}
|
|
116
|
+
}
|
package/dist/npm/PDFExport.js
CHANGED
|
@@ -3,28 +3,20 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.PDFExportVue2 = exports.PDFExport = void 0;
|
|
7
|
-
|
|
6
|
+
exports.PDFExportVue2 = exports.PDFExport = void 0;
|
|
7
|
+
// @ts-ignore
|
|
8
8
|
var Vue = require("vue");
|
|
9
|
-
|
|
10
9
|
var allVue = Vue;
|
|
11
10
|
var gh = allVue.h;
|
|
12
11
|
var isV3 = allVue.version && allVue.version[0] === '3';
|
|
13
|
-
|
|
14
12
|
var kendo_drawing_1 = require("@progress/kendo-drawing");
|
|
15
|
-
|
|
16
13
|
var kendo_file_saver_1 = require("@progress/kendo-file-saver");
|
|
17
|
-
|
|
18
14
|
var KendoDrawingAdapter_1 = require("./KendoDrawingAdapter");
|
|
19
|
-
|
|
20
15
|
var kendo_vue_common_1 = require("@progress/kendo-vue-common");
|
|
21
|
-
|
|
22
16
|
var package_metadata_1 = require("./package-metadata");
|
|
23
17
|
/**
|
|
24
18
|
* @hidden
|
|
25
19
|
*/
|
|
26
|
-
|
|
27
|
-
|
|
28
20
|
var PDFExportVue2 = {
|
|
29
21
|
name: 'pdf-export',
|
|
30
22
|
props: {
|
|
@@ -53,7 +45,8 @@ var PDFExportVue2 = {
|
|
|
53
45
|
},
|
|
54
46
|
methods: {
|
|
55
47
|
save: function save(callback) {
|
|
56
|
-
new KendoDrawingAdapter_1.default(kendo_drawing_1.drawDOM, kendo_drawing_1.exportPDF, kendo_file_saver_1.saveAs, this.$el,
|
|
48
|
+
new KendoDrawingAdapter_1.default(kendo_drawing_1.drawDOM, kendo_drawing_1.exportPDF, kendo_file_saver_1.saveAs, this.$el,
|
|
49
|
+
// To do: we should consider whether we need a margin-top, margin-left, etc. props
|
|
57
50
|
this.$props).savePDF(callback);
|
|
58
51
|
}
|
|
59
52
|
},
|
|
@@ -72,16 +65,16 @@ var PDFExportVue2 = {
|
|
|
72
65
|
var h = gh || createElement;
|
|
73
66
|
var defaultSlot = (0, kendo_vue_common_1.getDefaultSlots)(this);
|
|
74
67
|
return h("div", [defaultSlot]);
|
|
75
|
-
}
|
|
68
|
+
}
|
|
69
|
+
// To do: we should consider whether we need a margin-top, margin-left, etc. props
|
|
76
70
|
// private getOptions() {
|
|
77
71
|
// return Object.assign({}, this.$props, { margin: getPageMrgin(this.$props) });
|
|
78
72
|
// }
|
|
79
|
-
|
|
80
73
|
};
|
|
74
|
+
|
|
81
75
|
exports.PDFExportVue2 = PDFExportVue2;
|
|
82
76
|
/**
|
|
83
77
|
* @hidden
|
|
84
78
|
*/
|
|
85
|
-
|
|
86
79
|
var PDFExport = PDFExportVue2;
|
|
87
80
|
exports.PDFExport = PDFExport;
|
|
File without changes
|
|
@@ -73,7 +73,7 @@ var isVisible = function (element) {
|
|
|
73
73
|
var rect = element.getBoundingClientRect();
|
|
74
74
|
var hasSize = rect.width > 0 && rect.height > 0;
|
|
75
75
|
var hasPosition = rect.x !== 0 && rect.y !== 0;
|
|
76
|
-
// Elements can have zero size due to styling, but they
|
|
76
|
+
// Elements can have zero size due to styling, but they still count as visible.
|
|
77
77
|
// For example, the selection checkbox has no size, but is made visible through styling.
|
|
78
78
|
return (hasSize || hasPosition) && window.getComputedStyle(element).visibility !== 'hidden';
|
|
79
79
|
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @hidden
|
|
3
|
+
*/
|
|
4
|
+
export declare const HEADER_CLASS: string;
|
|
5
|
+
/**
|
|
6
|
+
* @hidden
|
|
7
|
+
*/
|
|
8
|
+
export declare const FOOTER_CLASS: string;
|
|
9
|
+
/**
|
|
10
|
+
* @hidden
|
|
11
|
+
*/
|
|
12
|
+
export declare class GridQuery {
|
|
13
|
+
private element;
|
|
14
|
+
private headerWrap;
|
|
15
|
+
private list;
|
|
16
|
+
private footerWrap;
|
|
17
|
+
constructor(element: HTMLElement);
|
|
18
|
+
content(): Element;
|
|
19
|
+
header(): Element;
|
|
20
|
+
footer(): Element;
|
|
21
|
+
table(): Node;
|
|
22
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GridQuery = exports.FOOTER_CLASS = exports.HEADER_CLASS = void 0;
|
|
4
|
+
var dom_queries_1 = require("./dom-queries");
|
|
5
|
+
/**
|
|
6
|
+
* @hidden
|
|
7
|
+
*/
|
|
8
|
+
exports.HEADER_CLASS = 'k-grid-header';
|
|
9
|
+
/**
|
|
10
|
+
* @hidden
|
|
11
|
+
*/
|
|
12
|
+
exports.FOOTER_CLASS = 'k-grid-footer';
|
|
13
|
+
var TABLE = 'TABLE';
|
|
14
|
+
var matchesTable = (0, dom_queries_1.matchesNodeName)(TABLE);
|
|
15
|
+
/**
|
|
16
|
+
* @hidden
|
|
17
|
+
*/
|
|
18
|
+
var GridQuery = /** @class */ (function () {
|
|
19
|
+
function GridQuery(element) {
|
|
20
|
+
this.element = element;
|
|
21
|
+
this.list = (0, dom_queries_1.findElement)(element, (0, dom_queries_1.matchesClasses)('k-grid'));
|
|
22
|
+
}
|
|
23
|
+
GridQuery.prototype.content = function () {
|
|
24
|
+
return (0, dom_queries_1.findElement)(this.list, (0, dom_queries_1.matchesClasses)('k-grid'));
|
|
25
|
+
};
|
|
26
|
+
GridQuery.prototype.header = function () {
|
|
27
|
+
this.headerWrap = this.headerWrap || (0, dom_queries_1.findElement)(this.element, (0, dom_queries_1.matchesClasses)(exports.HEADER_CLASS));
|
|
28
|
+
return (0, dom_queries_1.findElement)(this.headerWrap, (0, dom_queries_1.matchesClasses)("".concat(exports.HEADER_CLASS)));
|
|
29
|
+
};
|
|
30
|
+
GridQuery.prototype.footer = function () {
|
|
31
|
+
this.footerWrap = this.footerWrap || (0, dom_queries_1.findElement)(this.element, (0, dom_queries_1.matchesClasses)(exports.FOOTER_CLASS));
|
|
32
|
+
return (0, dom_queries_1.findElement)(this.footerWrap, (0, dom_queries_1.matchesClasses)("".concat(exports.FOOTER_CLASS)));
|
|
33
|
+
};
|
|
34
|
+
GridQuery.prototype.table = function () {
|
|
35
|
+
return (0, dom_queries_1.findElement)(this.element, matchesTable);
|
|
36
|
+
};
|
|
37
|
+
return GridQuery;
|
|
38
|
+
}());
|
|
39
|
+
exports.GridQuery = GridQuery;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @hidden
|
|
3
|
+
*/
|
|
4
|
+
export declare const appendNodes: (element: any, nodes: any[]) => void;
|
|
5
|
+
/**
|
|
6
|
+
* @hidden
|
|
7
|
+
*/
|
|
8
|
+
export declare const wrapTable: (table: any) => any;
|
|
9
|
+
/**
|
|
10
|
+
* @hidden
|
|
11
|
+
*/
|
|
12
|
+
export declare const createTableElement: (sources: any) => any;
|
|
13
|
+
/**
|
|
14
|
+
* @hidden
|
|
15
|
+
*/
|
|
16
|
+
export declare const setFirstCellClass: (header: any, headers: any) => void;
|
|
17
|
+
/**
|
|
18
|
+
* @hidden
|
|
19
|
+
*/
|
|
20
|
+
export declare const createTable: (colGroups: any[], headers: any[], bodies: any[], footers: any[]) => any;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTable = exports.setFirstCellClass = exports.createTableElement = exports.wrapTable = exports.appendNodes = void 0;
|
|
4
|
+
var FIRST_CLASS = 'k-first';
|
|
5
|
+
var HEADER_CLASS = 'k-grid-header';
|
|
6
|
+
var FOOTER_CLASS = 'k-grid-footer';
|
|
7
|
+
/**
|
|
8
|
+
* @hidden
|
|
9
|
+
*/
|
|
10
|
+
var appendNodes = function (element, nodes) {
|
|
11
|
+
var length = nodes.length;
|
|
12
|
+
for (var idx = 0; idx < length; idx++) {
|
|
13
|
+
element.appendChild(nodes[idx].cloneNode(true));
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
exports.appendNodes = appendNodes;
|
|
17
|
+
/**
|
|
18
|
+
* @hidden
|
|
19
|
+
*/
|
|
20
|
+
var wrapTable = function (table) {
|
|
21
|
+
var wrapper = document.createElement('div');
|
|
22
|
+
wrapper.className = 'k-widget k-grid';
|
|
23
|
+
wrapper.appendChild(table);
|
|
24
|
+
return wrapper;
|
|
25
|
+
};
|
|
26
|
+
exports.wrapTable = wrapTable;
|
|
27
|
+
/**
|
|
28
|
+
* @hidden
|
|
29
|
+
*/
|
|
30
|
+
var createTableElement = function (sources) {
|
|
31
|
+
var sourceCount = sources.length;
|
|
32
|
+
var element = sources[0].cloneNode(true);
|
|
33
|
+
var rowsCount = element.rows.length;
|
|
34
|
+
if (sourceCount > 1) {
|
|
35
|
+
for (var rowIdx = 0; rowIdx < rowsCount; rowIdx++) {
|
|
36
|
+
for (var sourceIdx = 1; sourceIdx < sourceCount; sourceIdx++) {
|
|
37
|
+
(0, exports.appendNodes)(element.rows[rowIdx], sources[sourceIdx].rows[rowIdx].cells);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return element;
|
|
42
|
+
};
|
|
43
|
+
exports.createTableElement = createTableElement;
|
|
44
|
+
/**
|
|
45
|
+
* @hidden
|
|
46
|
+
*/
|
|
47
|
+
var setFirstCellClass = function (header, headers) {
|
|
48
|
+
if (headers.length > 1 && header.rows.length > 1) {
|
|
49
|
+
for (var idx = 1; idx < header.rows.length; idx++) {
|
|
50
|
+
var firstCellIndex = headers[0].rows[idx].cells.length;
|
|
51
|
+
var cell = header.rows[idx].cells[firstCellIndex];
|
|
52
|
+
if (String(cell.className).indexOf(FIRST_CLASS) === -1) {
|
|
53
|
+
cell.className += " ".concat(FIRST_CLASS);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
exports.setFirstCellClass = setFirstCellClass;
|
|
59
|
+
/**
|
|
60
|
+
* @hidden
|
|
61
|
+
*/
|
|
62
|
+
var createTable = function (colGroups, headers, bodies, footers) {
|
|
63
|
+
var table = document.createElement('table');
|
|
64
|
+
var colGroup = colGroups[0].cloneNode(true);
|
|
65
|
+
for (var idx = 1; idx < colGroups.length; idx++) {
|
|
66
|
+
(0, exports.appendNodes)(colGroup, colGroups[idx].querySelectorAll('col'));
|
|
67
|
+
}
|
|
68
|
+
var header = (0, exports.createTableElement)(headers);
|
|
69
|
+
var body = (0, exports.createTableElement)(bodies);
|
|
70
|
+
header.className = HEADER_CLASS;
|
|
71
|
+
(0, exports.setFirstCellClass)(header, headers);
|
|
72
|
+
table.appendChild(colGroup);
|
|
73
|
+
table.appendChild(header);
|
|
74
|
+
table.appendChild(body);
|
|
75
|
+
if (footers.length) {
|
|
76
|
+
var footer = (0, exports.createTableElement)(footers);
|
|
77
|
+
footer.className = FOOTER_CLASS;
|
|
78
|
+
table.appendChild(footer);
|
|
79
|
+
}
|
|
80
|
+
return (0, exports.wrapTable)(table);
|
|
81
|
+
};
|
|
82
|
+
exports.createTable = createTable;
|