You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
261 lines
10 KiB
261 lines
10 KiB
|
|
import defaultSetting from './config.js';
|
|
import { common_extend } from './utils/util';
|
|
import Store from './store';
|
|
import { locales } from './locale/locale';
|
|
import server from './controllers/server';
|
|
import luckysheetConfigsetting from './controllers/luckysheetConfigsetting';
|
|
import sheetmanage from './controllers/sheetmanage';
|
|
import luckysheetsizeauto from './controllers/resize';
|
|
import luckysheetHandler from './controllers/handler';
|
|
import {initialFilterHandler} from './controllers/filter';
|
|
import {initialMatrixOperation} from './controllers/matrixOperation';
|
|
import {initialSheetBar} from './controllers/sheetBar';
|
|
import {formulaBarInitial} from './controllers/formulaBar';
|
|
import {rowColumnOperationInitial} from './controllers/rowColumnOperation';
|
|
import {keyboardInitial} from './controllers/keyboard';
|
|
import {orderByInitial} from './controllers/orderBy';
|
|
import {initPlugins} from './controllers/expendPlugins';
|
|
import {
|
|
getluckysheetfile,
|
|
getluckysheet_select_save,
|
|
getconfig,
|
|
} from './methods/get';
|
|
import {
|
|
setluckysheet_select_save
|
|
} from './methods/set';
|
|
import { luckysheetrefreshgrid, jfrefreshgrid } from './global/refresh';
|
|
import functionlist from './function/functionlist';
|
|
import { luckysheetlodingHTML } from './controllers/constant';
|
|
import { getcellvalue, getdatabyselection } from './global/getdata';
|
|
import { setcellvalue } from './global/setdata';
|
|
import { selectHightlightShow } from './controllers/select';
|
|
import {zoomInitial} from './controllers/zoom';
|
|
import {printInitial} from './controllers/print';
|
|
import method from './global/method';
|
|
|
|
import * as api from './global/api';
|
|
|
|
import flatpickr from 'flatpickr'
|
|
import Mandarin from 'flatpickr/dist/l10n/zh.js'
|
|
import { initListener } from './controllers/listener';
|
|
import { hideloading, showloading } from './global/loading.js';
|
|
import { luckysheetextendData } from './global/extend.js';
|
|
|
|
let luckysheet = {};
|
|
|
|
// mount api
|
|
// luckysheet.api = api;
|
|
// Object.assign(luckysheet, api);
|
|
|
|
luckysheet = common_extend(api,luckysheet);
|
|
|
|
|
|
|
|
//创建luckysheetè¡¨æ ¼
|
|
luckysheet.create = function (setting) {
|
|
method.destroy()
|
|
// Store original parameters for api: toJson
|
|
Store.toJsonOptions = {}
|
|
for(let c in setting){
|
|
if(c !== 'data'){
|
|
Store.toJsonOptions[c] = setting[c];
|
|
}
|
|
}
|
|
|
|
let extendsetting = common_extend(defaultSetting, setting);
|
|
|
|
let loadurl = extendsetting.loadUrl,
|
|
menu = extendsetting.menu,
|
|
title = extendsetting.title;
|
|
|
|
let container = extendsetting.container;
|
|
Store.container = container;
|
|
Store.luckysheetfile = extendsetting.data;
|
|
Store.defaultcolumnNum = extendsetting.column;
|
|
Store.defaultrowNum = extendsetting.row;
|
|
Store.defaultFontSize = extendsetting.defaultFontSize;
|
|
Store.fullscreenmode = extendsetting.fullscreenmode;
|
|
Store.lang = extendsetting.lang; //language
|
|
Store.allowEdit = extendsetting.allowEdit;
|
|
Store.limitSheetNameLength = extendsetting.limitSheetNameLength;
|
|
Store.defaultSheetNameMaxLength = extendsetting.defaultSheetNameMaxLength;
|
|
Store.fontList = extendsetting.fontList;
|
|
server.gridKey = extendsetting.gridKey;
|
|
server.loadUrl = extendsetting.loadUrl;
|
|
server.updateUrl = extendsetting.updateUrl;
|
|
server.updateImageUrl = extendsetting.updateImageUrl;
|
|
server.title = extendsetting.title;
|
|
server.loadSheetUrl = extendsetting.loadSheetUrl;
|
|
server.allowUpdate = extendsetting.allowUpdate;
|
|
|
|
luckysheetConfigsetting.autoFormatw = extendsetting.autoFormatw;
|
|
luckysheetConfigsetting.accuracy = extendsetting.accuracy;
|
|
luckysheetConfigsetting.total = extendsetting.data[0].total;
|
|
|
|
luckysheetConfigsetting.loading = extendsetting.loading;
|
|
luckysheetConfigsetting.allowCopy = extendsetting.allowCopy;
|
|
luckysheetConfigsetting.showtoolbar = extendsetting.showtoolbar;
|
|
luckysheetConfigsetting.showtoolbarConfig = extendsetting.showtoolbarConfig;
|
|
luckysheetConfigsetting.showinfobar = extendsetting.showinfobar;
|
|
luckysheetConfigsetting.showsheetbar = extendsetting.showsheetbar;
|
|
luckysheetConfigsetting.showsheetbarConfig = extendsetting.showsheetbarConfig;
|
|
luckysheetConfigsetting.showstatisticBar = extendsetting.showstatisticBar;
|
|
luckysheetConfigsetting.showstatisticBarConfig = extendsetting.showstatisticBarConfig;
|
|
luckysheetConfigsetting.sheetFormulaBar = extendsetting.sheetFormulaBar;
|
|
luckysheetConfigsetting.cellRightClickConfig = extendsetting.cellRightClickConfig;
|
|
luckysheetConfigsetting.sheetRightClickConfig = extendsetting.sheetRightClickConfig;
|
|
luckysheetConfigsetting.pointEdit = extendsetting.pointEdit;
|
|
luckysheetConfigsetting.pointEditUpdate = extendsetting.pointEditUpdate;
|
|
luckysheetConfigsetting.pointEditZoom = extendsetting.pointEditZoom;
|
|
|
|
luckysheetConfigsetting.userInfo = extendsetting.userInfo;
|
|
luckysheetConfigsetting.userMenuItem = extendsetting.userMenuItem;
|
|
luckysheetConfigsetting.myFolderUrl = extendsetting.myFolderUrl;
|
|
luckysheetConfigsetting.functionButton = extendsetting.functionButton;
|
|
|
|
luckysheetConfigsetting.showConfigWindowResize = extendsetting.showConfigWindowResize;
|
|
luckysheetConfigsetting.enableAddRow = extendsetting.enableAddRow;
|
|
luckysheetConfigsetting.enableAddBackTop = extendsetting.enableAddBackTop;
|
|
luckysheetConfigsetting.addRowCount = extendsetting.addRowCount;
|
|
luckysheetConfigsetting.enablePage = extendsetting.enablePage;
|
|
luckysheetConfigsetting.pageInfo = extendsetting.pageInfo;
|
|
|
|
luckysheetConfigsetting.editMode = extendsetting.editMode;
|
|
luckysheetConfigsetting.beforeCreateDom = extendsetting.beforeCreateDom;
|
|
luckysheetConfigsetting.workbookCreateBefore = extendsetting.workbookCreateBefore;
|
|
luckysheetConfigsetting.workbookCreateAfter = extendsetting.workbookCreateAfter;
|
|
luckysheetConfigsetting.remoteFunction = extendsetting.remoteFunction;
|
|
|
|
luckysheetConfigsetting.fireMousedown = extendsetting.fireMousedown;
|
|
luckysheetConfigsetting.forceCalculation = extendsetting.forceCalculation;
|
|
luckysheetConfigsetting.plugins = extendsetting.plugins;
|
|
|
|
luckysheetConfigsetting.rowHeaderWidth = extendsetting.rowHeaderWidth;
|
|
luckysheetConfigsetting.columnHeaderHeight = extendsetting.columnHeaderHeight;
|
|
|
|
luckysheetConfigsetting.defaultColWidth = extendsetting.defaultColWidth;
|
|
luckysheetConfigsetting.defaultRowHeight = extendsetting.defaultRowHeight;
|
|
|
|
luckysheetConfigsetting.title = extendsetting.title;
|
|
luckysheetConfigsetting.container = extendsetting.container;
|
|
luckysheetConfigsetting.hook = extendsetting.hook;
|
|
|
|
luckysheetConfigsetting.pager = extendsetting.pager;
|
|
|
|
luckysheetConfigsetting.initShowsheetbarConfig = false;
|
|
|
|
luckysheetConfigsetting.imageUpdateMethodConfig = extendsetting.imageUpdateMethodConfig;
|
|
|
|
if (Store.lang === 'zh') flatpickr.localize(Mandarin.zh);
|
|
|
|
// Store the currently used plugins for monitoring asynchronous loading
|
|
Store.asyncLoad.push(...luckysheetConfigsetting.plugins);
|
|
|
|
// Register plugins
|
|
initPlugins(extendsetting.plugins , extendsetting.data);
|
|
|
|
// Store formula information, including internationalization
|
|
functionlist();
|
|
|
|
let devicePixelRatio = extendsetting.devicePixelRatio;
|
|
if(devicePixelRatio == null){
|
|
devicePixelRatio = 1;
|
|
}
|
|
Store.devicePixelRatio = Math.ceil(devicePixelRatio);
|
|
|
|
//loading
|
|
const loadingObj=luckysheetlodingHTML("#" + container)
|
|
Store.loadingObj=loadingObj
|
|
|
|
if (loadurl == "") {
|
|
sheetmanage.initialjfFile(menu, title);
|
|
// luckysheetsizeauto();
|
|
initialWorkBook();
|
|
}
|
|
else {
|
|
$.post(loadurl, {"gridKey" : server.gridKey}, function (d) {
|
|
let data = new Function("return " + d)();
|
|
Store.luckysheetfile = data;
|
|
|
|
sheetmanage.initialjfFile(menu, title);
|
|
// luckysheetsizeauto();
|
|
initialWorkBook();
|
|
|
|
//需�更新数�给��时,建立WebSocket连接
|
|
if(server.allowUpdate){
|
|
server.openWebSocket();
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
function initialWorkBook(){
|
|
luckysheetHandler();//Overall dom initialization
|
|
initialFilterHandler();//Filter initialization
|
|
initialMatrixOperation();//Right click matrix initialization
|
|
initialSheetBar();//bottom sheet bar initialization
|
|
formulaBarInitial();//top formula bar initialization
|
|
rowColumnOperationInitial();//row and coloumn operate initialization
|
|
keyboardInitial();//Keyboard operate initialization
|
|
orderByInitial();//menu bar orderby function initialization
|
|
zoomInitial();//zoom method initialization
|
|
printInitial();//print initialization
|
|
initListener();
|
|
}
|
|
|
|
//获å�–æ‰€æœ‰è¡¨æ ¼æ•°æ�®
|
|
luckysheet.getluckysheetfile = getluckysheetfile;
|
|
|
|
//获å�–当å‰�è¡¨æ ¼ 选区
|
|
luckysheet.getluckysheet_select_save = getluckysheet_select_save;
|
|
|
|
//设置当å‰�è¡¨æ ¼ 选区
|
|
luckysheet.setluckysheet_select_save = setluckysheet_select_save;
|
|
|
|
//获å�–当å‰�è¡¨æ ¼ configé…�ç½®
|
|
luckysheet.getconfig = getconfig;
|
|
|
|
//二维数组数æ�® 转化æˆ� {r, c, v}æ ¼å¼� 一维数组 (ä¼ å…¥å�‚数为二维数æ�®data)
|
|
luckysheet.getGridData = sheetmanage.getGridData;
|
|
|
|
//生æˆ�è¡¨æ ¼æ‰€éœ€äºŒç»´æ•°ç»„ ï¼ˆä¼ å…¥å�‚æ•°ä¸ºè¡¨æ ¼æ•°æ�®å¯¹è±¡file)
|
|
luckysheet.buildGridData = sheetmanage.buildGridData;
|
|
|
|
// Refresh the canvas display data according to scrollHeight and scrollWidth
|
|
luckysheet.luckysheetrefreshgrid = luckysheetrefreshgrid;
|
|
|
|
// Refresh canvas
|
|
luckysheet.jfrefreshgrid = jfrefreshgrid;
|
|
|
|
// Get the value of the cell
|
|
luckysheet.getcellvalue = getcellvalue;
|
|
|
|
// Set cell value
|
|
luckysheet.setcellvalue = setcellvalue;
|
|
|
|
// Get selection range value
|
|
luckysheet.getdatabyselection = getdatabyselection;
|
|
|
|
luckysheet.sheetmanage = sheetmanage;
|
|
|
|
// Data of the current table
|
|
luckysheet.flowdata = function () {
|
|
return Store.flowdata;
|
|
}
|
|
|
|
// Set selection highlight
|
|
luckysheet.selectHightlightShow = selectHightlightShow;
|
|
|
|
// Reset parameters after destroying the table
|
|
luckysheet.destroy = method.destroy;
|
|
|
|
luckysheet.showLoadingProgress = showloading;
|
|
luckysheet.hideLoadingProgress = hideloading;
|
|
luckysheet.luckysheetextendData = luckysheetextendData;
|
|
|
|
luckysheet.locales = locales;
|
|
|
|
export {
|
|
luckysheet
|
|
}
|
|
|