ngx-smart-spreadsheet
Version:
Lightweight spreadsheet module for Angular
30 lines • 3.9 kB
JavaScript
import { mergeDeep } from "./deep-marge";
const defaultOptions = {
contextMenuRowLabel: {
INSERT_ROW_ABOVE: 'Insert 1 row above',
INSERT_ROW_BELOW: 'Insert 1 row below',
DELETE_ROW: 'Delete row',
},
contextMenuColLabel: {
INSERT_COLUMN_LEFT: 'Insert 1 column left',
INSERT_COLUMN_RIGHT: 'Insert 1 column right',
DELETE_COLUMN: 'Delete column',
}
};
export class SpreadsheetSettings {
constructor(rows, cols, data, options) {
this.rows = rows;
this.cols = cols;
this.data = data;
this.options = options;
this.options = mergeDeep(defaultOptions, options || {});
}
static empty(rows, cols, options) {
return new SpreadsheetSettings(rows, cols, null, options);
}
static load(data, options) {
return new SpreadsheetSettings(null, null, data, options);
}
}
;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByZWFkc2hlZXQtc2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnQtc3ByZWFkc2hlZXQvc3JjL2xpYi9zcHJlYWRzaGVldC1zZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3pDLE1BQU0sY0FBYyxHQUE4QjtJQUM5QyxtQkFBbUIsRUFBRTtRQUNqQixnQkFBZ0IsRUFBRSxvQkFBb0I7UUFDdEMsZ0JBQWdCLEVBQUUsb0JBQW9CO1FBQ3RDLFVBQVUsRUFBRSxZQUFZO0tBQzNCO0lBQ0QsbUJBQW1CLEVBQUU7UUFDakIsa0JBQWtCLEVBQUUsc0JBQXNCO1FBQzFDLG1CQUFtQixFQUFFLHVCQUF1QjtRQUM1QyxhQUFhLEVBQUUsZUFBZTtLQUNqQztDQUNKLENBQUM7QUFFRixNQUFNLE9BQU8sbUJBQW1CO0lBQzVCLFlBQ1csSUFBbUIsRUFDbkIsSUFBbUIsRUFDbkIsSUFBdUIsRUFDdkIsT0FBbUM7UUFIbkMsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUNuQixTQUFJLEdBQUosSUFBSSxDQUFlO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQ3ZCLFlBQU8sR0FBUCxPQUFPLENBQTRCO1FBRTFDLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLGNBQWMsRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBWSxFQUFFLElBQVksRUFBRSxPQUFtQztRQUMvRSxPQUFPLElBQUksbUJBQW1CLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBZ0IsRUFBRSxPQUFtQztRQUNwRSxPQUFPLElBQUksbUJBQW1CLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNKO0FBQUEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gXCIuL2RlZXAtbWFyZ2VcIjtcbmltcG9ydCB7IFNwcmVhZHNoZWV0U2V0dGluZ09wdGlvbnMgfSBmcm9tIFwiLi9zcHJlYWRzaGVldC1zZXR0aW5ncy1vcHRpb25zXCI7XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBTcHJlYWRzaGVldFNldHRpbmdPcHRpb25zID0ge1xuICAgIGNvbnRleHRNZW51Um93TGFiZWw6IHtcbiAgICAgICAgSU5TRVJUX1JPV19BQk9WRTogJ0luc2VydCAxIHJvdyBhYm92ZScsXG4gICAgICAgIElOU0VSVF9ST1dfQkVMT1c6ICdJbnNlcnQgMSByb3cgYmVsb3cnLFxuICAgICAgICBERUxFVEVfUk9XOiAnRGVsZXRlIHJvdycsXG4gICAgfSxcbiAgICBjb250ZXh0TWVudUNvbExhYmVsOiB7XG4gICAgICAgIElOU0VSVF9DT0xVTU5fTEVGVDogJ0luc2VydCAxIGNvbHVtbiBsZWZ0JyxcbiAgICAgICAgSU5TRVJUX0NPTFVNTl9SSUdIVDogJ0luc2VydCAxIGNvbHVtbiByaWdodCcsXG4gICAgICAgIERFTEVURV9DT0xVTU46ICdEZWxldGUgY29sdW1uJyxcbiAgICB9XG59O1xuXG5leHBvcnQgY2xhc3MgU3ByZWFkc2hlZXRTZXR0aW5ncyB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByb3dzOiBudW1iZXIgfCBudWxsLFxuICAgICAgICBwdWJsaWMgY29sczogbnVtYmVyIHwgbnVsbCxcbiAgICAgICAgcHVibGljIGRhdGE6IHN0cmluZ1tdW10gfCBudWxsLFxuICAgICAgICBwdWJsaWMgb3B0aW9ucz86IFNwcmVhZHNoZWV0U2V0dGluZ09wdGlvbnNcbiAgICApIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gbWVyZ2VEZWVwKGRlZmF1bHRPcHRpb25zLCBvcHRpb25zIHx8IHt9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGVtcHR5KHJvd3M6IG51bWJlciwgY29sczogbnVtYmVyLCBvcHRpb25zPzogU3ByZWFkc2hlZXRTZXR0aW5nT3B0aW9ucyk6IFNwcmVhZHNoZWV0U2V0dGluZ3Mge1xuICAgICAgICByZXR1cm4gbmV3IFNwcmVhZHNoZWV0U2V0dGluZ3Mocm93cywgY29scywgbnVsbCwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBsb2FkKGRhdGE6IHN0cmluZ1tdW10sIG9wdGlvbnM/OiBTcHJlYWRzaGVldFNldHRpbmdPcHRpb25zKTogU3ByZWFkc2hlZXRTZXR0aW5ncyB7XG4gICAgICAgIHJldHVybiBuZXcgU3ByZWFkc2hlZXRTZXR0aW5ncyhudWxsLCBudWxsLCBkYXRhLCBvcHRpb25zKTtcbiAgICB9XG59O1xuIl19