UPDATE[API rename]: set_column_with => set_columns_with
Similarly set_row_height => set_rows_height
This commit is contained in:
committed by
Nicolás Hatcher Andrés
parent
dd9ca4224d
commit
4095b7db6e
@@ -203,19 +203,31 @@ impl UserModel {
|
||||
self.model.delete_column(sheet, column).map_err(to_js_error)
|
||||
}
|
||||
|
||||
#[napi(js_name = "setRowHeight")]
|
||||
pub fn set_row_height(&mut self, sheet: u32, row: i32, height: f64) -> Result<()> {
|
||||
#[napi(js_name = "setRowsHeight")]
|
||||
pub fn set_rows_height(
|
||||
&mut self,
|
||||
sheet: u32,
|
||||
row_start: i32,
|
||||
row_end: i32,
|
||||
height: f64,
|
||||
) -> Result<()> {
|
||||
self
|
||||
.model
|
||||
.set_row_height(sheet, row, height)
|
||||
.set_rows_height(sheet, row_start, row_end, height)
|
||||
.map_err(to_js_error)
|
||||
}
|
||||
|
||||
#[napi(js_name = "setColumnWidth")]
|
||||
pub fn set_column_width(&mut self, sheet: u32, column: i32, width: f64) -> Result<()> {
|
||||
#[napi(js_name = "setColumnsWidth")]
|
||||
pub fn set_columns_width(
|
||||
&mut self,
|
||||
sheet: u32,
|
||||
column_start: i32,
|
||||
column_end: i32,
|
||||
width: f64,
|
||||
) -> Result<()> {
|
||||
self
|
||||
.model
|
||||
.set_column_width(sheet, column, width)
|
||||
.set_columns_width(sheet, column_start, column_end, width)
|
||||
.map_err(to_js_error)
|
||||
}
|
||||
|
||||
|
||||
@@ -215,17 +215,29 @@ impl Model {
|
||||
self.model.delete_column(sheet, column).map_err(to_js_error)
|
||||
}
|
||||
|
||||
#[wasm_bindgen(js_name = "setRowHeight")]
|
||||
pub fn set_row_height(&mut self, sheet: u32, row: i32, height: f64) -> Result<(), JsError> {
|
||||
#[wasm_bindgen(js_name = "setRowsHeight")]
|
||||
pub fn set_rows_height(
|
||||
&mut self,
|
||||
sheet: u32,
|
||||
row_start: i32,
|
||||
row_end: i32,
|
||||
height: f64,
|
||||
) -> Result<(), JsError> {
|
||||
self.model
|
||||
.set_row_height(sheet, row, height)
|
||||
.set_rows_height(sheet, row_start, row_end, height)
|
||||
.map_err(to_js_error)
|
||||
}
|
||||
|
||||
#[wasm_bindgen(js_name = "setColumnWidth")]
|
||||
pub fn set_column_width(&mut self, sheet: u32, column: i32, width: f64) -> Result<(), JsError> {
|
||||
#[wasm_bindgen(js_name = "setColumnsWidth")]
|
||||
pub fn set_columns_width(
|
||||
&mut self,
|
||||
sheet: u32,
|
||||
column_start: i32,
|
||||
column_end: i32,
|
||||
width: f64,
|
||||
) -> Result<(), JsError> {
|
||||
self.model
|
||||
.set_column_width(sheet, column, width)
|
||||
.set_columns_width(sheet, column_start, column_end, width)
|
||||
.map_err(to_js_error)
|
||||
}
|
||||
|
||||
@@ -292,6 +304,28 @@ impl Model {
|
||||
.map_err(to_js_error)
|
||||
}
|
||||
|
||||
// This two are only used when we want to compute the automatic width of a column or height of a row
|
||||
#[wasm_bindgen(js_name = "getRowsWithData")]
|
||||
pub fn get_rows_with_data(&self, sheet: u32, column: i32) -> Result<Vec<i32>, JsError> {
|
||||
let sheet_data = &self.model.get_model().workbook.worksheet(sheet).map_err(to_js_error)?.sheet_data;
|
||||
Ok(sheet_data
|
||||
.iter()
|
||||
.filter(|(_, data)| data.contains_key(&column))
|
||||
.map(|(row, _)| *row)
|
||||
.collect())
|
||||
}
|
||||
|
||||
#[wasm_bindgen(js_name = "getColumnsWithData")]
|
||||
pub fn get_columns_with_data(&self, sheet: u32, row: i32) -> Result<Vec<i32>, JsError> {
|
||||
Ok(self.model.get_model()
|
||||
.workbook
|
||||
.worksheet(sheet).map_err(to_js_error)?
|
||||
.sheet_data
|
||||
.get(&row)
|
||||
.map(|row_data| row_data.keys().copied().collect())
|
||||
.unwrap_or_default())
|
||||
}
|
||||
|
||||
#[wasm_bindgen(js_name = "updateRangeStyle")]
|
||||
pub fn update_range_style(
|
||||
&mut self,
|
||||
|
||||
@@ -20,7 +20,7 @@ test('Row height', () => {
|
||||
let model = new Model('Workbook1', 'en', 'UTC');
|
||||
assert.strictEqual(model.getRowHeight(0, 3), DEFAULT_ROW_HEIGHT);
|
||||
|
||||
model.setRowHeight(0, 3, 32);
|
||||
model.setRowsHeight(0, 3, 3, 32);
|
||||
assert.strictEqual(model.getRowHeight(0, 3), 32);
|
||||
|
||||
model.undo();
|
||||
@@ -29,7 +29,7 @@ test('Row height', () => {
|
||||
model.redo();
|
||||
assert.strictEqual(model.getRowHeight(0, 3), 32);
|
||||
|
||||
model.setRowHeight(0, 3, 320);
|
||||
model.setRowsHeight(0, 3, 3, 320);
|
||||
assert.strictEqual(model.getRowHeight(0, 3), 320);
|
||||
});
|
||||
|
||||
@@ -96,7 +96,7 @@ test("Add sheets", (t) => {
|
||||
test("invalid sheet index throws an exception", () => {
|
||||
const model = new Model('Workbook1', 'en', 'UTC');
|
||||
assert.throws(() => {
|
||||
model.setRowHeight(1, 1, 100);
|
||||
model.setRowsHeight(1, 1, 1, 100);
|
||||
}, {
|
||||
name: 'Error',
|
||||
message: 'Invalid sheet index',
|
||||
@@ -106,7 +106,7 @@ test("invalid sheet index throws an exception", () => {
|
||||
test("invalid column throws an exception", () => {
|
||||
const model = new Model('Workbook1', 'en', 'UTC');
|
||||
assert.throws(() => {
|
||||
model.setRowHeight(0, -1, 100);
|
||||
model.setRowsHeight(0, -1, 0, 100);
|
||||
}, {
|
||||
name: 'Error',
|
||||
message: "Row number '-1' is not valid.",
|
||||
@@ -115,7 +115,7 @@ test("invalid column throws an exception", () => {
|
||||
|
||||
test("floating column numbers get truncated", () => {
|
||||
const model = new Model('Workbook1', 'en', 'UTC');
|
||||
model.setRowHeight(0.8, 5.2, 100.5);
|
||||
model.setRowsHeight(0.8, 5.2, 5.5, 100.5);
|
||||
|
||||
assert.strictEqual(model.getRowHeight(0.11, 5.99), 100.5);
|
||||
assert.strictEqual(model.getRowHeight(0, 5), 100.5);
|
||||
|
||||
Reference in New Issue
Block a user