@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.
Files changed (62) hide show
  1. package/dist/cdn/js/kendo-vue-pdf.js +1 -1
  2. package/dist/es/PDFExport.js +4 -5
  3. package/dist/es/{grid → common}/dom-queries.d.ts +0 -0
  4. package/dist/es/{grid → common}/dom-queries.js +1 -1
  5. package/dist/es/common/table-query.d.ts +22 -0
  6. package/dist/es/common/table-query.js +36 -0
  7. package/dist/es/common/utils.d.ts +20 -0
  8. package/dist/es/common/utils.js +74 -0
  9. package/dist/es/grid/GridPDFExport.js +2 -5
  10. package/dist/es/grid/export-element.js +2 -58
  11. package/dist/es/grid/grid-query.js +2 -2
  12. package/dist/es/grid/provideSaveGridPDF.js +2 -20
  13. package/dist/es/main.d.ts +2 -1
  14. package/dist/es/main.js +2 -1
  15. package/dist/es/package-metadata.js +1 -1
  16. package/dist/es/treelist/TreeListPDFExport.d.ts +37 -0
  17. package/dist/es/treelist/TreeListPDFExport.js +75 -0
  18. package/dist/es/treelist/export-element.d.ts +4 -0
  19. package/dist/es/treelist/export-element.js +31 -0
  20. package/dist/es/treelist/provideSaveTreeListPDF.d.ts +5 -0
  21. package/dist/es/treelist/provideSaveTreeListPDF.js +116 -0
  22. package/dist/esm/PDFExport.js +4 -5
  23. package/dist/esm/{grid → common}/dom-queries.d.ts +0 -0
  24. package/dist/esm/{grid → common}/dom-queries.js +1 -1
  25. package/dist/esm/common/table-query.d.ts +22 -0
  26. package/dist/esm/common/table-query.js +36 -0
  27. package/dist/esm/common/utils.d.ts +20 -0
  28. package/dist/esm/common/utils.js +74 -0
  29. package/dist/esm/grid/GridPDFExport.js +2 -5
  30. package/dist/esm/grid/export-element.js +2 -58
  31. package/dist/esm/grid/grid-query.js +2 -2
  32. package/dist/esm/grid/provideSaveGridPDF.js +2 -20
  33. package/dist/esm/main.d.ts +2 -1
  34. package/dist/esm/main.js +2 -1
  35. package/dist/esm/package-metadata.js +1 -1
  36. package/dist/esm/treelist/TreeListPDFExport.d.ts +37 -0
  37. package/dist/esm/treelist/TreeListPDFExport.js +75 -0
  38. package/dist/esm/treelist/export-element.d.ts +4 -0
  39. package/dist/esm/treelist/export-element.js +31 -0
  40. package/dist/esm/treelist/provideSaveTreeListPDF.d.ts +5 -0
  41. package/dist/esm/treelist/provideSaveTreeListPDF.js +116 -0
  42. package/dist/npm/PDFExport.js +7 -14
  43. package/dist/npm/{grid → common}/dom-queries.d.ts +0 -0
  44. package/dist/npm/{grid → common}/dom-queries.js +1 -1
  45. package/dist/npm/common/table-query.d.ts +22 -0
  46. package/dist/npm/common/table-query.js +39 -0
  47. package/dist/npm/common/utils.d.ts +20 -0
  48. package/dist/npm/common/utils.js +82 -0
  49. package/dist/npm/grid/GridPDFExport.js +4 -12
  50. package/dist/npm/grid/export-element.js +3 -59
  51. package/dist/npm/grid/grid-query.js +2 -2
  52. package/dist/npm/grid/provideSaveGridPDF.js +2 -25
  53. package/dist/npm/main.d.ts +2 -1
  54. package/dist/npm/main.js +4 -1
  55. package/dist/npm/package-metadata.js +1 -1
  56. package/dist/npm/treelist/TreeListPDFExport.d.ts +37 -0
  57. package/dist/npm/treelist/TreeListPDFExport.js +82 -0
  58. package/dist/npm/treelist/export-element.d.ts +4 -0
  59. package/dist/npm/treelist/export-element.js +35 -0
  60. package/dist/npm/treelist/provideSaveTreeListPDF.d.ts +5 -0
  61. package/dist/npm/treelist/provideSaveTreeListPDF.js +123 -0
  62. package/package.json +2 -2
@@ -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: 1665151327,
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';
7
+ import { provideSaveTreeListPDF } from './provideSaveTreeListPDF';
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,4 @@
1
+ /**
2
+ * @hidden
3
+ */
4
+ export declare const exportElement: (wrapper: HTMLElement) => HTMLElement;
@@ -0,0 +1,31 @@
1
+ import { GridQuery } from '../common/table-query';
2
+ import { wrapTable, createTable } from '../common/utils';
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';
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
+ }
@@ -11,7 +11,6 @@ import { packageMetadata } from './package-metadata.js';
11
11
  /**
12
12
  * @hidden
13
13
  */
14
-
15
14
  var PDFExportVue2 = {
16
15
  name: 'pdf-export',
17
16
  props: {
@@ -40,7 +39,8 @@ var PDFExportVue2 = {
40
39
  },
41
40
  methods: {
42
41
  save: function save(callback) {
43
- new KendoDrawingAdapter(drawDOM, exportPDF, saveAs, this.$el, // To do: we should consider whether we need a margin-top, margin-left, etc. props
42
+ new KendoDrawingAdapter(drawDOM, exportPDF, saveAs, this.$el,
43
+ // To do: we should consider whether we need a margin-top, margin-left, etc. props
44
44
  this.$props).savePDF(callback);
45
45
  }
46
46
  },
@@ -59,15 +59,14 @@ var PDFExportVue2 = {
59
59
  var h = gh || createElement;
60
60
  var defaultSlot = getDefaultSlots(this);
61
61
  return h("div", [defaultSlot]);
62
- } // To do: we should consider whether we need a margin-top, margin-left, etc. props
62
+ }
63
+ // To do: we should consider whether we need a margin-top, margin-left, etc. props
63
64
  // private getOptions() {
64
65
  // return Object.assign({}, this.$props, { margin: getPageMrgin(this.$props) });
65
66
  // }
66
-
67
67
  };
68
68
  /**
69
69
  * @hidden
70
70
  */
71
-
72
71
  var PDFExport = PDFExportVue2;
73
72
  export { PDFExport, PDFExportVue2 };
File without changes
@@ -64,7 +64,7 @@ export var isVisible = function (element) {
64
64
  var rect = element.getBoundingClientRect();
65
65
  var hasSize = rect.width > 0 && rect.height > 0;
66
66
  var hasPosition = rect.x !== 0 && rect.y !== 0;
67
- // Elements can have zero size due to styling, but they should still count as visible.
67
+ // Elements can have zero size due to styling, but they still count as visible.
68
68
  // For example, the selection checkbox has no size, but is made visible through styling.
69
69
  return (hasSize || hasPosition) && window.getComputedStyle(element).visibility !== 'hidden';
70
70
  };
@@ -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,36 @@
1
+ import { matchesClasses, matchesNodeName, findElement } from './dom-queries.js';
2
+ /**
3
+ * @hidden
4
+ */
5
+ export var HEADER_CLASS = 'k-grid-header';
6
+ /**
7
+ * @hidden
8
+ */
9
+ export var FOOTER_CLASS = 'k-grid-footer';
10
+ var TABLE = 'TABLE';
11
+ var matchesTable = matchesNodeName(TABLE);
12
+ /**
13
+ * @hidden
14
+ */
15
+ var GridQuery = /** @class */ (function () {
16
+ function GridQuery(element) {
17
+ this.element = element;
18
+ this.list = findElement(element, matchesClasses('k-grid'));
19
+ }
20
+ GridQuery.prototype.content = function () {
21
+ return findElement(this.list, matchesClasses('k-grid'));
22
+ };
23
+ GridQuery.prototype.header = function () {
24
+ this.headerWrap = this.headerWrap || findElement(this.element, matchesClasses(HEADER_CLASS));
25
+ return findElement(this.headerWrap, matchesClasses("".concat(HEADER_CLASS)));
26
+ };
27
+ GridQuery.prototype.footer = function () {
28
+ this.footerWrap = this.footerWrap || findElement(this.element, matchesClasses(FOOTER_CLASS));
29
+ return findElement(this.footerWrap, matchesClasses("".concat(FOOTER_CLASS)));
30
+ };
31
+ GridQuery.prototype.table = function () {
32
+ return findElement(this.element, matchesTable);
33
+ };
34
+ return GridQuery;
35
+ }());
36
+ export { 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,74 @@
1
+ var FIRST_CLASS = 'k-first';
2
+ var HEADER_CLASS = 'k-grid-header';
3
+ var FOOTER_CLASS = 'k-grid-footer';
4
+ /**
5
+ * @hidden
6
+ */
7
+ export var appendNodes = function (element, nodes) {
8
+ var length = nodes.length;
9
+ for (var idx = 0; idx < length; idx++) {
10
+ element.appendChild(nodes[idx].cloneNode(true));
11
+ }
12
+ };
13
+ /**
14
+ * @hidden
15
+ */
16
+ export var wrapTable = function (table) {
17
+ var wrapper = document.createElement('div');
18
+ wrapper.className = 'k-widget k-grid';
19
+ wrapper.appendChild(table);
20
+ return wrapper;
21
+ };
22
+ /**
23
+ * @hidden
24
+ */
25
+ export var createTableElement = function (sources) {
26
+ var sourceCount = sources.length;
27
+ var element = sources[0].cloneNode(true);
28
+ var rowsCount = element.rows.length;
29
+ if (sourceCount > 1) {
30
+ for (var rowIdx = 0; rowIdx < rowsCount; rowIdx++) {
31
+ for (var sourceIdx = 1; sourceIdx < sourceCount; sourceIdx++) {
32
+ appendNodes(element.rows[rowIdx], sources[sourceIdx].rows[rowIdx].cells);
33
+ }
34
+ }
35
+ }
36
+ return element;
37
+ };
38
+ /**
39
+ * @hidden
40
+ */
41
+ export var setFirstCellClass = function (header, headers) {
42
+ if (headers.length > 1 && header.rows.length > 1) {
43
+ for (var idx = 1; idx < header.rows.length; idx++) {
44
+ var firstCellIndex = headers[0].rows[idx].cells.length;
45
+ var cell = header.rows[idx].cells[firstCellIndex];
46
+ if (String(cell.className).indexOf(FIRST_CLASS) === -1) {
47
+ cell.className += " ".concat(FIRST_CLASS);
48
+ }
49
+ }
50
+ }
51
+ };
52
+ /**
53
+ * @hidden
54
+ */
55
+ export var createTable = function (colGroups, headers, bodies, footers) {
56
+ var table = document.createElement('table');
57
+ var colGroup = colGroups[0].cloneNode(true);
58
+ for (var idx = 1; idx < colGroups.length; idx++) {
59
+ appendNodes(colGroup, colGroups[idx].querySelectorAll('col'));
60
+ }
61
+ var header = createTableElement(headers);
62
+ var body = createTableElement(bodies);
63
+ header.className = HEADER_CLASS;
64
+ setFirstCellClass(header, headers);
65
+ table.appendChild(colGroup);
66
+ table.appendChild(header);
67
+ table.appendChild(body);
68
+ if (footers.length) {
69
+ var footer = createTableElement(footers);
70
+ footer.className = FOOTER_CLASS;
71
+ table.appendChild(footer);
72
+ }
73
+ return wrapTable(table);
74
+ };
@@ -9,7 +9,6 @@ import { getDefaultSlots } from '@progress/kendo-vue-common';
9
9
  /**
10
10
  * @hidden
11
11
  */
12
-
13
12
  var GridPdfExportVue2 = {
14
13
  name: 'grid-pdf-export',
15
14
  props: {
@@ -41,12 +40,11 @@ var GridPdfExportVue2 = {
41
40
  },
42
41
  methods: {
43
42
  save: function save(data, callback) {
44
- var defaultSlot = getDefaultSlots(this); // @ts-ignore
45
-
43
+ var defaultSlot = getDefaultSlots(this);
44
+ // @ts-ignore
46
45
  var gridSlot = defaultSlot.filter(function (child) {
47
46
  return child && child.tag && child.tag.toLowerCase().indexOf('grid') !== -1 || child.componentOptions && child.componentOptions.tag && child.componentOptions.tag.toLowerCase().indexOf('grid') !== -1 || child.type && child.type.name && child.type.name.toLowerCase().indexOf('grid') !== -1;
48
47
  });
49
-
50
48
  if (gridSlot.length) {
51
49
  this.gridComponent = this.v3 ? gridSlot[0] : gridSlot[0].componentInstance;
52
50
  this.saveGridPDF(this.gridComponent, this.$props, callback, data, this.v3);
@@ -73,6 +71,5 @@ var GridPdfExportVue2 = {
73
71
  /**
74
72
  * @hidden
75
73
  */
76
-
77
74
  var GridPdfExport = GridPdfExportVue2;
78
75
  export { GridPdfExport, GridPdfExportVue2 };
@@ -1,61 +1,5 @@
1
- import { GridQuery, HEADER_CLASS, FOOTER_CLASS } from './grid-query.js';
2
- var FIRST_CLASS = 'k-first';
3
- var appendNodes = function (element, nodes) {
4
- var length = nodes.length;
5
- for (var idx = 0; idx < length; idx++) {
6
- element.appendChild(nodes[idx].cloneNode(true));
7
- }
8
- };
9
- var wrapTable = function (table) {
10
- var wrapper = document.createElement('div');
11
- wrapper.className = 'k-widget k-grid';
12
- wrapper.appendChild(table);
13
- return wrapper;
14
- };
15
- var createTableElement = function (sources) {
16
- var sourceCount = sources.length;
17
- var element = sources[0].cloneNode(true);
18
- var rowsCount = element.rows.length;
19
- if (sourceCount > 1) {
20
- for (var rowIdx = 0; rowIdx < rowsCount; rowIdx++) {
21
- for (var sourceIdx = 1; sourceIdx < sourceCount; sourceIdx++) {
22
- appendNodes(element.rows[rowIdx], sources[sourceIdx].rows[rowIdx].cells);
23
- }
24
- }
25
- }
26
- return element;
27
- };
28
- var setFirstCellClass = function (header, headers) {
29
- if (headers.length > 1 && header.rows.length > 1) {
30
- for (var idx = 1; idx < header.rows.length; idx++) {
31
- var firstCellIndex = headers[0].rows[idx].cells.length;
32
- var cell = header.rows[idx].cells[firstCellIndex];
33
- if (String(cell.className).indexOf(FIRST_CLASS) === -1) {
34
- cell.className += " ".concat(FIRST_CLASS);
35
- }
36
- }
37
- }
38
- };
39
- var createTable = function (colGroups, headers, bodies, footers) {
40
- var table = document.createElement('table');
41
- var colGroup = colGroups[0].cloneNode(true);
42
- for (var idx = 1; idx < colGroups.length; idx++) {
43
- appendNodes(colGroup, colGroups[idx].querySelectorAll('col'));
44
- }
45
- var header = createTableElement(headers);
46
- var body = createTableElement(bodies);
47
- header.className = HEADER_CLASS;
48
- setFirstCellClass(header, headers);
49
- table.appendChild(colGroup);
50
- table.appendChild(header);
51
- table.appendChild(body);
52
- if (footers.length) {
53
- var footer = createTableElement(footers);
54
- footer.className = FOOTER_CLASS;
55
- table.appendChild(footer);
56
- }
57
- return wrapTable(table);
58
- };
1
+ import { GridQuery } from './grid-query.js';
2
+ import { wrapTable, createTable } from '../common/utils.js';
59
3
  /**
60
4
  * @hidden
61
5
  */
@@ -1,4 +1,4 @@
1
- import { matchesClasses, matchesNodeName, findElement } from './dom-queries.js';
1
+ import { matchesClasses, matchesNodeName, findElement } from '../common/dom-queries.js';
2
2
  /**
3
3
  * @hidden
4
4
  */
@@ -16,7 +16,7 @@ var suffix = function (locked) { return locked ? 'locked' : 'wrap'; };
16
16
  var GridQuery = /** @class */ (function () {
17
17
  function GridQuery(element) {
18
18
  this.element = element;
19
- this.list = findElement(element, matchesClasses("k-grid-container"));
19
+ this.list = findElement(element, matchesClasses('k-grid-container'));
20
20
  }
21
21
  GridQuery.prototype.content = function (locked) {
22
22
  return findElement(this.list, matchesClasses("k-grid-content".concat(locked ? '-locked' : '')));