px-jspreadsheet-ce 0.0.4 → 0.0.6
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/index.d.ts +4 -0
- package/package.json +1 -1
- package/src/index.js +2 -0
- package/src/utils/factory.js +1 -0
- package/src/utils/internal.js +6 -3
- package/src/utils/internalHelpers.js +4 -4
- package/src/utils/worksheets.js +48 -16
package/dist/index.d.ts
CHANGED
|
@@ -972,6 +972,8 @@ declare namespace jspreadsheet {
|
|
|
972
972
|
*/
|
|
973
973
|
classes?: Record<string, string>;
|
|
974
974
|
|
|
975
|
+
cells?: Record<string, Omit<Column, 'width'>>;
|
|
976
|
+
|
|
975
977
|
/**
|
|
976
978
|
* Allow column dragging.
|
|
977
979
|
* @default true
|
|
@@ -1501,6 +1503,8 @@ declare namespace jspreadsheet {
|
|
|
1501
1503
|
*/
|
|
1502
1504
|
deleteWorksheet: (position: number) => void;
|
|
1503
1505
|
|
|
1506
|
+
updateWorksheet: (options: WorksheetOptions) => void;
|
|
1507
|
+
|
|
1504
1508
|
/**
|
|
1505
1509
|
* Remove all merged cells.
|
|
1506
1510
|
*/
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -78,6 +78,8 @@ libraryBase.jspreadsheet.destroyAll = function () {
|
|
|
78
78
|
|
|
79
79
|
libraryBase.jspreadsheet.destroy(spreadsheet.element);
|
|
80
80
|
}
|
|
81
|
+
libraryBase.jspreadsheet.current = null;
|
|
82
|
+
libraryBase.jspreadsheet.spreadsheet = [];
|
|
81
83
|
};
|
|
82
84
|
|
|
83
85
|
libraryBase.jspreadsheet.current = null;
|
package/src/utils/factory.js
CHANGED
package/src/utils/internal.js
CHANGED
|
@@ -494,7 +494,10 @@ export const createCell = function (i, j, value) {
|
|
|
494
494
|
td.innerHTML = value;
|
|
495
495
|
}
|
|
496
496
|
if (typeof config.type.createCell == 'function') {
|
|
497
|
-
config.type.createCell(td, value, parseInt(i), parseInt(j), obj, config);
|
|
497
|
+
const result = config.type.createCell(td, value, parseInt(i), parseInt(j), obj, config);
|
|
498
|
+
if (result && typeof result.mount === 'function' && typeof result.unmount === 'function') {
|
|
499
|
+
obj.vueApps.push(result);
|
|
500
|
+
}
|
|
498
501
|
}
|
|
499
502
|
}
|
|
500
503
|
|
|
@@ -505,12 +508,12 @@ export const createCell = function (i, j, value) {
|
|
|
505
508
|
|
|
506
509
|
if (obj.options.freezeRows > j) {
|
|
507
510
|
td.classList.add('jss_frozen_row');
|
|
508
|
-
td.style.top = getFreezeRowTop(j, obj.options.rows);
|
|
511
|
+
td.style.top = getFreezeRowTop(j, obj.options.rows, obj.options.defaultRowHeight);
|
|
509
512
|
}
|
|
510
513
|
|
|
511
514
|
if (obj.options.freezeColumns > i) {
|
|
512
515
|
td.classList.add('jss_frozen');
|
|
513
|
-
td.style.left = getFreezeColumnLeft(i, obj.options.columns);
|
|
516
|
+
td.style.left = getFreezeColumnLeft(i, obj.options.columns, obj.options.defaultColWidth);
|
|
514
517
|
}
|
|
515
518
|
|
|
516
519
|
// Text align
|
|
@@ -73,23 +73,23 @@ export const getColumnNameFromId = function (cellId) {
|
|
|
73
73
|
* 获取静态的左侧距离
|
|
74
74
|
*
|
|
75
75
|
*/
|
|
76
|
-
export const getFreezeColumnLeft = function (colNumber, columns) {
|
|
76
|
+
export const getFreezeColumnLeft = function (colNumber, columns, defaultWidth) {
|
|
77
77
|
let left = 50; // 距离左侧的位置
|
|
78
78
|
while (colNumber > 0) {
|
|
79
79
|
const obj = columns[colNumber - 1]; // 左侧单元格
|
|
80
80
|
if (obj.type !== 'hidden') {
|
|
81
|
-
left += parseInt(obj.width);
|
|
81
|
+
left += parseInt(obj.width || defaultWidth);
|
|
82
82
|
}
|
|
83
83
|
colNumber -= 1;
|
|
84
84
|
}
|
|
85
85
|
return left + 'px';
|
|
86
86
|
};
|
|
87
87
|
|
|
88
|
-
export const getFreezeRowTop = function (rowNumber, rows) {
|
|
88
|
+
export const getFreezeRowTop = function (rowNumber, rows, defaultHeight) {
|
|
89
89
|
let top = 30; // 距离顶部的位置
|
|
90
90
|
while (rowNumber > 0) {
|
|
91
91
|
const obj = rows[rowNumber - 1]; // 左侧单元格
|
|
92
|
-
top += parseInt(obj.height);
|
|
92
|
+
top += parseInt(obj.height || defaultHeight);
|
|
93
93
|
rowNumber -= 1;
|
|
94
94
|
}
|
|
95
95
|
return top + 'px';
|
package/src/utils/worksheets.js
CHANGED
|
@@ -635,31 +635,62 @@ export const deleteWorksheet = function (position) {
|
|
|
635
635
|
const removedWorksheet = obj.parent.worksheets.splice(position, 1)[0];
|
|
636
636
|
dispatch.call(obj.parent, 'ondeleteworksheet', removedWorksheet, position);
|
|
637
637
|
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
638
|
+
// 卸载vue实例
|
|
639
|
+
obj.vueApps.forEach(function (app) {
|
|
640
|
+
app.unmount();
|
|
641
|
+
});
|
|
642
|
+
|
|
643
|
+
obj.content.onscroll = null;
|
|
644
|
+
obj.content.onwheel = null;
|
|
645
|
+
obj.searchInput.onfocus = null;
|
|
646
|
+
if (obj.paginationDropdown) {
|
|
647
|
+
obj.paginationDropdown.onchange = null;
|
|
648
|
+
}
|
|
642
649
|
|
|
643
|
-
|
|
644
|
-
|
|
650
|
+
obj.textarea.remove();
|
|
651
|
+
obj.textarea = null;
|
|
645
652
|
|
|
646
|
-
if (
|
|
647
|
-
delete
|
|
648
|
-
delete
|
|
653
|
+
if (obj.element) {
|
|
654
|
+
delete obj.element.jssWorksheet;
|
|
655
|
+
delete obj.element.jspreadsheet;
|
|
656
|
+
obj.element = null;
|
|
649
657
|
}
|
|
650
658
|
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
659
|
+
obj.headers = null;
|
|
660
|
+
obj.cols = null;
|
|
661
|
+
obj.records = null;
|
|
662
|
+
obj.options = null;
|
|
655
663
|
|
|
656
|
-
Object.keys(
|
|
657
|
-
if (Object.hasOwn(
|
|
658
|
-
|
|
664
|
+
Object.keys(obj).forEach((key) => {
|
|
665
|
+
if (Object.hasOwn(obj, key)) {
|
|
666
|
+
obj[key] = null;
|
|
659
667
|
}
|
|
660
668
|
});
|
|
661
669
|
};
|
|
662
670
|
|
|
671
|
+
export const updateWorksheet = function (options) {
|
|
672
|
+
const obj = this;
|
|
673
|
+
|
|
674
|
+
// Reset selection
|
|
675
|
+
obj.resetSelection();
|
|
676
|
+
|
|
677
|
+
// 卸载vue实例
|
|
678
|
+
obj.vueApps.forEach(function (app) {
|
|
679
|
+
app.unmount();
|
|
680
|
+
});
|
|
681
|
+
obj.vueApps = [];
|
|
682
|
+
|
|
683
|
+
obj.element.removeChild(obj.content);
|
|
684
|
+
obj.element.removeChild(obj.pagination);
|
|
685
|
+
obj.element.removeChild(obj.ads);
|
|
686
|
+
|
|
687
|
+
obj.options = options;
|
|
688
|
+
obj.history = [];
|
|
689
|
+
obj.historyIndex = -1;
|
|
690
|
+
// Prepare table
|
|
691
|
+
prepareTable.call(obj);
|
|
692
|
+
};
|
|
693
|
+
|
|
663
694
|
const worksheetPublicMethods = [
|
|
664
695
|
['selectAll', selectAll],
|
|
665
696
|
[
|
|
@@ -777,6 +808,7 @@ const worksheetPublicMethods = [
|
|
|
777
808
|
['createWorksheet', createWorksheet],
|
|
778
809
|
['openWorksheet', openWorksheet],
|
|
779
810
|
['deleteWorksheet', deleteWorksheet],
|
|
811
|
+
['updateWorksheet', updateWorksheet],
|
|
780
812
|
[
|
|
781
813
|
'copy',
|
|
782
814
|
function (cut) {
|