microsoft-graph 2.26.0 → 2.28.0

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 (138) hide show
  1. package/dist/cjs/models/Border.d.ts +16 -0
  2. package/dist/cjs/models/Border.d.ts.map +1 -0
  3. package/dist/cjs/models/Border.js +2 -0
  4. package/dist/cjs/models/Cell.d.ts +90 -7
  5. package/dist/cjs/models/Cell.d.ts.map +1 -1
  6. package/dist/cjs/models/Color.d.ts +9 -0
  7. package/dist/cjs/models/Color.d.ts.map +1 -0
  8. package/dist/cjs/models/Color.js +2 -0
  9. package/dist/cjs/models/Column.d.ts +5 -0
  10. package/dist/cjs/models/Column.d.ts.map +1 -1
  11. package/dist/cjs/models/Column.js +5 -1
  12. package/dist/cjs/models/DataSource.d.ts +49 -0
  13. package/dist/cjs/models/DataSource.d.ts.map +1 -0
  14. package/dist/cjs/models/DataSource.js +8 -0
  15. package/dist/cjs/models/FontName.d.ts +9 -0
  16. package/dist/cjs/models/FontName.d.ts.map +1 -0
  17. package/dist/cjs/models/FontName.js +2 -0
  18. package/dist/cjs/models/Row.d.ts +3 -0
  19. package/dist/cjs/models/Row.d.ts.map +1 -1
  20. package/dist/cjs/operations/workbookRange/getWorkbookWorksheetRange.d.ts +6 -1
  21. package/dist/cjs/operations/workbookRange/getWorkbookWorksheetRange.d.ts.map +1 -1
  22. package/dist/cjs/operations/workbookRange/getWorkbookWorksheetRange.js +9 -2
  23. package/dist/cjs/operations/workbookRange/listWorkbookRangeBorders.d.ts +16 -0
  24. package/dist/cjs/operations/workbookRange/listWorkbookRangeBorders.d.ts.map +1 -0
  25. package/dist/cjs/operations/workbookRange/listWorkbookRangeBorders.js +33 -0
  26. package/dist/cjs/operations/workbookRange/setWorkbookRangeBorder.d.ts +19 -0
  27. package/dist/cjs/operations/workbookRange/setWorkbookRangeBorder.d.ts.map +1 -0
  28. package/dist/cjs/operations/workbookRange/setWorkbookRangeBorder.js +44 -0
  29. package/dist/cjs/services/addressManipulation.d.ts.map +1 -1
  30. package/dist/cjs/services/addressManipulation.js +2 -1
  31. package/dist/cjs/services/cartesianAddress.js +2 -2
  32. package/dist/cjs/services/dataSource.d.ts +69 -0
  33. package/dist/cjs/services/dataSource.d.ts.map +1 -0
  34. package/dist/cjs/services/dataSource.js +195 -0
  35. package/dist/cjs/services/iteration.d.ts +1 -0
  36. package/dist/cjs/services/iteration.d.ts.map +1 -1
  37. package/dist/cjs/services/iteration.js +1 -0
  38. package/dist/cjs/tasks/deleteDriveItemWithRetry.d.ts +1 -0
  39. package/dist/cjs/tasks/deleteDriveItemWithRetry.d.ts.map +1 -1
  40. package/dist/cjs/tasks/deleteDriveItemWithRetry.js +1 -0
  41. package/dist/cjs/tasks/iterateRows.d.ts +24 -0
  42. package/dist/cjs/tasks/iterateRows.d.ts.map +1 -0
  43. package/dist/cjs/tasks/iterateRows.js +127 -0
  44. package/dist/cjs/tasks/iterateWorkbookRange.d.ts.map +1 -1
  45. package/dist/cjs/tasks/iterateWorkbookRange.js +7 -0
  46. package/dist/cjs/tasks/readWorkbookRows.d.ts.map +1 -1
  47. package/dist/cjs/tasks/readWorkbookRows.js +8 -0
  48. package/dist/cjs/tasks/setColumnHidden.d.ts +5 -0
  49. package/dist/cjs/tasks/setColumnHidden.d.ts.map +1 -1
  50. package/dist/cjs/tasks/setColumnHidden.js +5 -0
  51. package/dist/cjs/tasks/setRowHidden.d.ts +5 -0
  52. package/dist/cjs/tasks/setRowHidden.d.ts.map +1 -1
  53. package/dist/cjs/tasks/setRowHidden.js +5 -0
  54. package/dist/cjs/tasks/setWorkbookRangeValues.d.ts +7 -2
  55. package/dist/cjs/tasks/setWorkbookRangeValues.d.ts.map +1 -1
  56. package/dist/cjs/tasks/setWorkbookRangeValues.js +7 -2
  57. package/dist/esm/models/Border.d.ts +16 -0
  58. package/dist/esm/models/Border.d.ts.map +1 -0
  59. package/dist/esm/models/Border.js +1 -0
  60. package/dist/esm/models/Cell.d.ts +90 -7
  61. package/dist/esm/models/Cell.d.ts.map +1 -1
  62. package/dist/esm/models/Color.d.ts +9 -0
  63. package/dist/esm/models/Color.d.ts.map +1 -0
  64. package/dist/esm/models/Color.js +1 -0
  65. package/dist/esm/models/Column.d.ts +5 -0
  66. package/dist/esm/models/Column.d.ts.map +1 -1
  67. package/dist/esm/models/Column.js +5 -1
  68. package/dist/esm/models/DataSource.d.ts +49 -0
  69. package/dist/esm/models/DataSource.d.ts.map +1 -0
  70. package/dist/esm/models/DataSource.js +7 -0
  71. package/dist/esm/models/FontName.d.ts +9 -0
  72. package/dist/esm/models/FontName.d.ts.map +1 -0
  73. package/dist/esm/models/FontName.js +1 -0
  74. package/dist/esm/models/Row.d.ts +3 -0
  75. package/dist/esm/models/Row.d.ts.map +1 -1
  76. package/dist/esm/operations/workbookRange/getWorkbookWorksheetRange.d.ts +6 -1
  77. package/dist/esm/operations/workbookRange/getWorkbookWorksheetRange.d.ts.map +1 -1
  78. package/dist/esm/operations/workbookRange/getWorkbookWorksheetRange.js +9 -2
  79. package/dist/esm/operations/workbookRange/listWorkbookRangeBorders.d.ts +16 -0
  80. package/dist/esm/operations/workbookRange/listWorkbookRangeBorders.d.ts.map +1 -0
  81. package/dist/esm/operations/workbookRange/listWorkbookRangeBorders.js +30 -0
  82. package/dist/esm/operations/workbookRange/setWorkbookRangeBorder.d.ts +19 -0
  83. package/dist/esm/operations/workbookRange/setWorkbookRangeBorder.d.ts.map +1 -0
  84. package/dist/esm/operations/workbookRange/setWorkbookRangeBorder.js +41 -0
  85. package/dist/esm/services/addressManipulation.d.ts.map +1 -1
  86. package/dist/esm/services/addressManipulation.js +2 -1
  87. package/dist/esm/services/cartesianAddress.js +2 -2
  88. package/dist/esm/services/dataSource.d.ts +69 -0
  89. package/dist/esm/services/dataSource.d.ts.map +1 -0
  90. package/dist/esm/services/dataSource.js +184 -0
  91. package/dist/esm/services/iteration.d.ts +1 -0
  92. package/dist/esm/services/iteration.d.ts.map +1 -1
  93. package/dist/esm/services/iteration.js +1 -0
  94. package/dist/esm/tasks/deleteDriveItemWithRetry.d.ts +1 -0
  95. package/dist/esm/tasks/deleteDriveItemWithRetry.d.ts.map +1 -1
  96. package/dist/esm/tasks/deleteDriveItemWithRetry.js +1 -0
  97. package/dist/esm/tasks/iterateRows.d.ts +24 -0
  98. package/dist/esm/tasks/iterateRows.d.ts.map +1 -0
  99. package/dist/esm/tasks/iterateRows.js +121 -0
  100. package/dist/esm/tasks/iterateWorkbookRange.d.ts.map +1 -1
  101. package/dist/esm/tasks/iterateWorkbookRange.js +7 -0
  102. package/dist/esm/tasks/readWorkbookRows.d.ts.map +1 -1
  103. package/dist/esm/tasks/readWorkbookRows.js +8 -0
  104. package/dist/esm/tasks/setColumnHidden.d.ts +5 -0
  105. package/dist/esm/tasks/setColumnHidden.d.ts.map +1 -1
  106. package/dist/esm/tasks/setColumnHidden.js +5 -0
  107. package/dist/esm/tasks/setRowHidden.d.ts +5 -0
  108. package/dist/esm/tasks/setRowHidden.d.ts.map +1 -1
  109. package/dist/esm/tasks/setRowHidden.js +5 -0
  110. package/dist/esm/tasks/setWorkbookRangeValues.d.ts +7 -2
  111. package/dist/esm/tasks/setWorkbookRangeValues.d.ts.map +1 -1
  112. package/dist/esm/tasks/setWorkbookRangeValues.js +7 -2
  113. package/docs/api/Border.md +55 -0
  114. package/docs/api/Cell.md +94 -13
  115. package/docs/api/Color.md +19 -0
  116. package/docs/api/Column.md +12 -2
  117. package/docs/api/DataSource-1.md +191 -0
  118. package/docs/api/FontName.md +19 -0
  119. package/docs/api/Iteration.md +3 -1
  120. package/docs/api/README.md +11 -10
  121. package/docs/api/Row.md +5 -3
  122. package/docs/api/addressManipulation.md +3 -3
  123. package/docs/api/dataSource.md +204 -0
  124. package/docs/api/deleteWorkbookRange.md +1 -1
  125. package/docs/api/getWorkbookWorksheetByName.md +1 -1
  126. package/docs/api/getWorkbookWorksheetRange.md +6 -2
  127. package/docs/api/insertWorkbookCells.md +1 -1
  128. package/docs/api/iterateRows.md +43 -0
  129. package/docs/api/listWorkbookRangeBorders.md +31 -0
  130. package/docs/api/readWorkbookRows.md +1 -1
  131. package/docs/api/{tasks/setColumnHidden.md → setColumnHidden.md} +6 -4
  132. package/docs/api/{tasks/setRowHidden.md → setRowHidden.md} +6 -4
  133. package/docs/api/setWorkbookRangeBorder.md +33 -0
  134. package/docs/topics/README.md +2 -1
  135. package/docs/topics/versioning.md +17 -0
  136. package/package.json +201 -1
  137. package/docs/api/deleteDriveItemWithRetry.md +0 -33
  138. package/docs/api/tasks/setWorkbookRangeValues.md +0 -3
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ /**
3
+ * Tooling for easily creating, updating, and deleting items in a worksheet or range.
4
+ * @module dataSource
5
+ * @category Services
6
+ * @experimental
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.dataSourceFromWorksheet = dataSourceFromWorksheet;
13
+ exports.dataSourceFromRange = dataSourceFromRange;
14
+ exports.listItems = listItems;
15
+ exports.createItem = createItem;
16
+ exports.updateItem = updateItem;
17
+ exports.deleteItem = deleteItem;
18
+ const InvalidOperationError_ts_1 = __importDefault(require("../errors/InvalidOperationError.js"));
19
+ const ProtocolError_ts_1 = __importDefault(require("../errors/ProtocolError.js"));
20
+ const deleteWorkbookRange_ts_1 = __importDefault(require("../operations/workbookRange/deleteWorkbookRange.js"));
21
+ const getWorkbookWorksheetRange_ts_1 = __importDefault(require("../operations/workbookRange/getWorkbookWorksheetRange.js"));
22
+ const insertWorkbookCells_ts_1 = __importDefault(require("../operations/workbookRange/insertWorkbookCells.js"));
23
+ const updateWorkbookRange_ts_1 = __importDefault(require("../operations/workbookRange/updateWorkbookRange.js"));
24
+ const getWorkbookWorksheetUsedRangeRef_ts_1 = __importDefault(require("../operations/workbookWorksheet/getWorkbookWorksheetUsedRangeRef.js"));
25
+ const readWorkbookRows_ts_1 = __importDefault(require("../tasks/readWorkbookRows.js"));
26
+ const addressManipulation_ts_1 = require("./addressManipulation.js");
27
+ const cartesianAddress_ts_1 = require("./cartesianAddress.js");
28
+ const cellFormat_ts_1 = require("./cellFormat.js");
29
+ /**
30
+ * Define a datasource from an entire worksheet.
31
+ * @template T Type of the record, extending RecordBase.
32
+ * @param worksheetRef Workbook range reference to define the data source on.
33
+ * @param decode Function to decode a row into a record.
34
+ * @param encode Function to encode a record into a row. Optional.
35
+ * @returns The initialized data source.
36
+ * @experimental
37
+ */
38
+ async function dataSourceFromWorksheet(worksheetRef, decode, encode = null) {
39
+ const rangeRef = await (0, getWorkbookWorksheetUsedRangeRef_ts_1.default)(worksheetRef);
40
+ return dataSourceFromRange(rangeRef, decode, encode);
41
+ }
42
+ /**
43
+ * Defines a data source from a given range.
44
+ * @template T Type of the record, extending RecordBase.
45
+ * @param rangeRef Workbook range reference to define the data source on.
46
+ * @param decode Function to decode a row into a record.
47
+ * @param encode Function to encode a record into a row. Optional.
48
+ * @returns The initialized data source.
49
+ * @experimental
50
+ */
51
+ async function dataSourceFromRange(rangeRef, decode, encode = null) {
52
+ if ((0, addressManipulation_ts_1.countAddressRows)(rangeRef.address) < 1) {
53
+ throw new InvalidOperationError_ts_1.default("Cannot create a data source from an empty range. It must at least contain a header row.");
54
+ }
55
+ const headRef = (0, addressManipulation_ts_1.subRange)(rangeRef, 0, 1);
56
+ const bodyRef = (0, addressManipulation_ts_1.subRange)(rangeRef, 1);
57
+ const head = await getHead(headRef);
58
+ const { ay: bodyOffset } = (0, cartesianAddress_ts_1.addressToCartesian)(bodyRef.address);
59
+ const source = {
60
+ bodyRef,
61
+ bodyOffset,
62
+ coding: {
63
+ decode,
64
+ encode,
65
+ },
66
+ head,
67
+ async *[Symbol.asyncIterator]() {
68
+ let index = 0;
69
+ for await (const row of (0, readWorkbookRows_ts_1.default)(source.bodyRef)) {
70
+ const record = rowToRecord(row, source);
71
+ const rowNumber = indexToRowNumber(source.bodyOffset, index);
72
+ yield {
73
+ index,
74
+ rowNumber,
75
+ record,
76
+ };
77
+ index++;
78
+ }
79
+ },
80
+ };
81
+ return source;
82
+ }
83
+ /**
84
+ * Reads all items from the data source.
85
+ * @template T Type of the record, extending RecordBase.
86
+ * @param source Data source to read from.
87
+ * @returns Array of all items in the data source.
88
+ * @deprecated Iterate on the source directly using `for await (const item of source)`.
89
+ */
90
+ async function* listItems(source) {
91
+ for await (const item of source) {
92
+ yield item;
93
+ }
94
+ }
95
+ /**
96
+ * Creates a new item in the data source.
97
+ * @template T Type of the record, extending RecordBase.
98
+ * @param source Data source to insert into. Must be initialized.
99
+ * @param record Record to insert.
100
+ * @param after Index after which to insert the new item. If null, inserts at the end. If -1 inserts at top.
101
+ * @returns Newly created item, including its index, row number, and record.
102
+ * @throws {InvalidOperationError} If the data source is not initialized.
103
+ * @throws {InvalidArgumentError} If the 'after' index is out of range.
104
+ * @experimental
105
+ */
106
+ async function createItem(source, record, after = null) {
107
+ const count = (0, addressManipulation_ts_1.countAddressRows)(source.bodyRef.address);
108
+ const index = (after === null ? count : after + 1);
109
+ const rowNumber = indexToRowNumber(source.bodyOffset, index);
110
+ await (0, insertWorkbookCells_ts_1.default)((0, addressManipulation_ts_1.superRange)(source.bodyRef, index, 1), "Down");
111
+ source.bodyRef = (0, addressManipulation_ts_1.superRange)(source.bodyRef, 0, count + 1);
112
+ await updateItem(source, index, record);
113
+ return {
114
+ index,
115
+ rowNumber,
116
+ record,
117
+ };
118
+ }
119
+ /**
120
+ * Updates an item in the data source at the specified index.
121
+ * @template T Type of the record, extending RecordBase.
122
+ * @param source Data source to update. Must be initialized.
123
+ * @param index Index of the item to update.
124
+ * @param record New record to write at the specified index.
125
+ * @throws {InvalidOperationError} If the data source is not initialized.
126
+ * @throws {InvalidArgumentError} If the index is out of range.
127
+ * @experimental
128
+ */
129
+ async function updateItem(source, index, record) {
130
+ const row = recordToRow(record, source);
131
+ const rowRef = (0, addressManipulation_ts_1.subRange)(source.bodyRef, index, 1);
132
+ await (0, updateWorkbookRange_ts_1.default)(rowRef, {
133
+ values: [row.map((x) => x.value)],
134
+ text: [row.map((x) => x.text)],
135
+ numberFormat: [row.map((x) => x.format)],
136
+ });
137
+ }
138
+ /**
139
+ * Deletes an item from the data source at the specified index.
140
+ * @template T Type of the record, extending RecordBase.
141
+ * @param source Data source to delete from. Must be initialized.
142
+ * @param index Index of the item to delete.
143
+ * @throws {InvalidOperationError} If the data source is not initialized.
144
+ * @experimental
145
+ */
146
+ async function deleteItem(source, index) {
147
+ const rowRef = (0, addressManipulation_ts_1.subRange)(source.bodyRef, index, 1);
148
+ await (0, deleteWorkbookRange_ts_1.default)(rowRef, "Up");
149
+ source.bodyRef = (0, addressManipulation_ts_1.subRange)(source.bodyRef, 0, -1);
150
+ }
151
+ function rowToRecord(row, source) {
152
+ const sourceRow = source.head.reduce((acc, heading, columnIndex) => {
153
+ const cell = row[columnIndex];
154
+ if (!cell) {
155
+ throw new ProtocolError_ts_1.default(`Cell for '${heading}' is undefined`);
156
+ }
157
+ acc[heading] = cell;
158
+ return acc;
159
+ }, {});
160
+ const record = source.coding.decode(sourceRow);
161
+ return record;
162
+ }
163
+ function recordToRow(record, source) {
164
+ if (!source.coding.encode) {
165
+ throw new InvalidOperationError_ts_1.default("Data source does not have an encoder defined. Add an encoder for reading.");
166
+ }
167
+ const sourceRow = source.coding.encode(record);
168
+ const row = source.head.map((heading) => {
169
+ const cell = sourceRow[heading];
170
+ if (cell === undefined) {
171
+ throw new Error(`Encoder produced undefined value for '${heading}'.`); // TODO: Make more specific error
172
+ }
173
+ return {
174
+ value: cell.value ?? "",
175
+ text: cell.text ?? (cell.value ?? "").toString(),
176
+ format: cell.format ?? cellFormat_ts_1.generalCellFormat,
177
+ style: {
178
+ merge: {},
179
+ alignment: {},
180
+ borders: {},
181
+ fill: {},
182
+ font: {},
183
+ },
184
+ };
185
+ });
186
+ return row;
187
+ }
188
+ function indexToRowNumber(bodyOffset, index) {
189
+ return (bodyOffset + index + 1); // +1 to convert to 1-based index
190
+ }
191
+ async function getHead(headRef) {
192
+ const headRange = await (0, getWorkbookWorksheetRange_ts_1.default)(headRef);
193
+ const head = headRange.text[0].map((x) => x);
194
+ return head;
195
+ }
@@ -1,4 +1,5 @@
1
1
  /**
2
+ * Utilities for iterating over AsyncIterables.
2
3
  * @module Iteration
3
4
  * @category Services
4
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"iteration.d.ts","sourceRoot":"","sources":["../../../src/services/iteration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAMhF"}
1
+ {"version":3,"file":"iteration.d.ts","sourceRoot":"","sources":["../../../src/services/iteration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAMhF"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
+ * Utilities for iterating over AsyncIterables.
3
4
  * @module Iteration
4
5
  * @category Services
5
6
  */
@@ -2,6 +2,7 @@
2
2
  * Delete a drive item, avoiding locking issues through automatic retries.
3
3
  * @module deleteDriveItemWithRetry
4
4
  * @category Tasks
5
+ * @hidden
5
6
  */
6
7
  import type { DriveItemRef } from "../models/DriveItem.ts";
7
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"deleteDriveItemWithRetry.d.ts","sourceRoot":"","sources":["../../../src/tasks/deleteDriveItemWithRetry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAI3D;;;;;;GAMG;AACH,wBAA8B,wBAAwB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAahG"}
1
+ {"version":3,"file":"deleteDriveItemWithRetry.d.ts","sourceRoot":"","sources":["../../../src/tasks/deleteDriveItemWithRetry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAI3D;;;;;;GAMG;AACH,wBAA8B,wBAAwB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAahG"}
@@ -3,6 +3,7 @@
3
3
  * Delete a drive item, avoiding locking issues through automatic retries.
4
4
  * @module deleteDriveItemWithRetry
5
5
  * @category Tasks
6
+ * @hidden
6
7
  */
7
8
  var __importDefault = (this && this.__importDefault) || function (mod) {
8
9
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Iterate over the rows in a given worksheet range.
3
+ * @module iterateRows
4
+ * @category Tasks
5
+ * @experimental
6
+ */
7
+ import type { CellScope } from "../models/Cell.ts";
8
+ import type { Row } from "../models/Row.ts";
9
+ import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
10
+ /**
11
+ * Iterate over the rows in a given worksheet range.
12
+ * @param rangeRef Reference to the workbook range to iterate over.
13
+ * @param skip Number of rows to skip before starting to yield rows. Can be negative to get last rows (e.g., -1 for the last row).
14
+ * @param take Max number of rows to yield. `POSITIVE_INFINITY` returns all rows.
15
+ * @param scope Amount of detail to include for each cell.
16
+ * @param maxCellsPerOperation Prescribe max cells to retrieve per operation. `null` automatically determines value. DO NOT SET EXCEPT FOR ADVANCED TUNING.
17
+ * @remarks Including `style` in the scope requires over three operations for each and every cell. Use this sparingly!
18
+ * @example
19
+ * for await (const row of iterateRows(rangeRef)) {
20
+ * console.log(row);
21
+ * }
22
+ */
23
+ export declare function iterateRows(rangeRef: WorkbookRangeRef, skip?: number, take?: number, scope?: Partial<CellScope>, maxCellsPerOperation?: number | null): AsyncIterable<Row>;
24
+ //# sourceMappingURL=iterateRows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterateRows.d.ts","sourceRoot":"","sources":["../../../src/tasks/iterateRows.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAA6C,SAAS,EAAwE,MAAM,mBAAmB,CAAC;AAGpK,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAWnE;;;;;;;;;;;;GAYG;AACH,wBAAuB,WAAW,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,SAAI,EAAE,IAAI,GAAE,MAAiC,EAAE,KAAK,GAAE,OAAO,CAAC,SAAS,CAAgB,EAAE,oBAAoB,GAAE,MAAM,GAAG,IAAW,GAAG,aAAa,CAAC,GAAG,CAAC,CAiC1N"}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ /**
3
+ * Iterate over the rows in a given worksheet range.
4
+ * @module iterateRows
5
+ * @category Tasks
6
+ * @experimental
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.iterateRows = iterateRows;
13
+ const InvalidArgumentError_ts_1 = __importDefault(require("../errors/InvalidArgumentError.js"));
14
+ const getWorkbookRangeFill_ts_1 = __importDefault(require("../operations/workbookRange/getWorkbookRangeFill.js"));
15
+ const getWorkbookRangeFont_ts_1 = __importDefault(require("../operations/workbookRange/getWorkbookRangeFont.js"));
16
+ const getWorkbookRangeFormat_ts_1 = __importDefault(require("../operations/workbookRange/getWorkbookRangeFormat.js"));
17
+ const getWorkbookWorksheetRange_ts_1 = __importDefault(require("../operations/workbookRange/getWorkbookWorksheetRange.js"));
18
+ const listWorkbookRangeBorders_ts_1 = __importDefault(require("../operations/workbookRange/listWorkbookRangeBorders.js"));
19
+ const addressManipulation_ts_1 = require("../services/addressManipulation.js");
20
+ const batch_ts_1 = require("../services/batch.js");
21
+ const defaultScope = { values: true, text: true, format: true };
22
+ /**
23
+ * Iterate over the rows in a given worksheet range.
24
+ * @param rangeRef Reference to the workbook range to iterate over.
25
+ * @param skip Number of rows to skip before starting to yield rows. Can be negative to get last rows (e.g., -1 for the last row).
26
+ * @param take Max number of rows to yield. `POSITIVE_INFINITY` returns all rows.
27
+ * @param scope Amount of detail to include for each cell.
28
+ * @param maxCellsPerOperation Prescribe max cells to retrieve per operation. `null` automatically determines value. DO NOT SET EXCEPT FOR ADVANCED TUNING.
29
+ * @remarks Including `style` in the scope requires over three operations for each and every cell. Use this sparingly!
30
+ * @example
31
+ * for await (const row of iterateRows(rangeRef)) {
32
+ * console.log(row);
33
+ * }
34
+ */
35
+ async function* iterateRows(rangeRef, skip = 0, take = Number.POSITIVE_INFINITY, scope = defaultScope, maxCellsPerOperation = null) {
36
+ const totalRangeRef = (0, addressManipulation_ts_1.subRange)(rangeRef, skip, take);
37
+ const totalColumnCount = (0, addressManipulation_ts_1.countAddressColumns)(totalRangeRef.address);
38
+ const totalRowCount = (0, addressManipulation_ts_1.countAddressRows)(totalRangeRef.address);
39
+ const maxRowsPerOperation = calculateMaxRowsPerOperation(totalColumnCount, maxCellsPerOperation);
40
+ const rangeSelect = scopeToRangeSelect(scope);
41
+ for (let operationRowStart = 0; operationRowStart < totalRowCount; operationRowStart += maxRowsPerOperation) {
42
+ const operationRowCount = Math.min(maxRowsPerOperation, totalRowCount - operationRowStart);
43
+ const operationRangeRef = (0, addressManipulation_ts_1.subRange)(totalRangeRef, operationRowStart, operationRowCount);
44
+ const range = rangeSelect ? await (0, getWorkbookWorksheetRange_ts_1.default)(operationRangeRef, rangeSelect) : null;
45
+ for (let rowIndex = 0; rowIndex < operationRowCount; rowIndex++) {
46
+ const row = [];
47
+ for (let columnIndex = 0; columnIndex < totalColumnCount; columnIndex++) {
48
+ const value = (range?.values?.[rowIndex]?.[columnIndex] ?? ""); // The root of these is undefined if that detail isn't in scope
49
+ const text = (range?.text?.[rowIndex]?.[columnIndex] ?? "");
50
+ const format = (range?.numberFormat?.[rowIndex]?.[columnIndex] ?? "");
51
+ const style = await getStyle((0, addressManipulation_ts_1.subRange)(rangeRef, rowIndex, 1, columnIndex, 1), scope); // This line is potentially expensive
52
+ row.push({
53
+ value,
54
+ text,
55
+ format,
56
+ style,
57
+ });
58
+ }
59
+ yield row;
60
+ }
61
+ }
62
+ }
63
+ async function getStyle(rangeRef, scope) {
64
+ const alignment = scope.alignment ? await (0, getWorkbookRangeFormat_ts_1.default)(rangeRef) : null;
65
+ const borders = scope.borders ? await (0, listWorkbookRangeBorders_ts_1.default)(rangeRef) : null;
66
+ const fill = scope.fill ? await (0, getWorkbookRangeFill_ts_1.default)(rangeRef) : null;
67
+ const font = scope.font ? await (0, getWorkbookRangeFont_ts_1.default)(rangeRef) : null;
68
+ return {
69
+ merge: {
70
+ /* Not provided by API */
71
+ },
72
+ alignment: {
73
+ vertical: alignment?.verticalAlignment,
74
+ horizontal: alignment?.horizontalAlignment,
75
+ wrapText: alignment?.wrapText ?? undefined,
76
+ },
77
+ borders: {
78
+ top: extractBorderStyle(borders, "EdgeTop"),
79
+ bottom: extractBorderStyle(borders, "EdgeBottom"),
80
+ left: extractBorderStyle(borders, "EdgeLeft"),
81
+ right: extractBorderStyle(borders, "EdgeRight"),
82
+ insideVertical: extractBorderStyle(borders, "InsideVertical"),
83
+ insideHorizontal: extractBorderStyle(borders, "InsideHorizontal"),
84
+ diagonalDown: extractBorderStyle(borders, "DiagonalDown"),
85
+ diagonalUp: extractBorderStyle(borders, "DiagonalUp"),
86
+ },
87
+ fill: {
88
+ color: fill?.color,
89
+ },
90
+ font: {
91
+ name: font?.name,
92
+ size: font?.size,
93
+ color: font?.color,
94
+ bold: font?.bold,
95
+ italic: font?.italic,
96
+ underline: font?.underline,
97
+ },
98
+ };
99
+ function extractBorderStyle(borders, side) {
100
+ if (!borders) {
101
+ return undefined;
102
+ }
103
+ const border = borders.find((x) => x.sideIndex === side);
104
+ if (!border) {
105
+ return undefined;
106
+ }
107
+ return {
108
+ color: border.color,
109
+ style: border.style,
110
+ weight: border.weight,
111
+ };
112
+ }
113
+ }
114
+ function calculateMaxRowsPerOperation(columnCount, overwriteMaxCellsPerOperation) {
115
+ const maxCellsPerOperation = overwriteMaxCellsPerOperation ?? batch_ts_1.maxCellsPerRequest;
116
+ const maxRowsPerOperation = Math.floor(maxCellsPerOperation / columnCount);
117
+ if (maxRowsPerOperation < 1) {
118
+ throw new InvalidArgumentError_ts_1.default("maxCellsPerOperation must be greater than or equal to the number of columns in the range.");
119
+ }
120
+ return maxRowsPerOperation;
121
+ }
122
+ function scopeToRangeSelect(scope) {
123
+ if (!(scope.values || scope.text || scope.format)) {
124
+ return null;
125
+ }
126
+ return { values: scope.values ?? false, text: scope.text ?? false, numberFormat: scope.format ?? false };
127
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"iterateWorkbookRange.d.ts","sourceRoot":"","sources":["../../../src/tasks/iterateWorkbookRange.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAOnE;;;;;;;;GAQG;AACH,wBAA+B,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,uBAAuB,GAAE,MAAM,GAAG,IAAW,GAAG,aAAa,CAAC;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,GAAG,CAAA;CAAE,CAAC,CA0DhL"}
1
+ {"version":3,"file":"iterateWorkbookRange.d.ts","sourceRoot":"","sources":["../../../src/tasks/iterateWorkbookRange.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAOnE;;;;;;;;GAQG;AACH,wBAA+B,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,uBAAuB,GAAE,MAAM,GAAG,IAAW,GAAG,aAAa,CAAC;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,GAAG,CAAA;CAAE,CAAC,CAiEhL"}
@@ -58,6 +58,13 @@ async function* iterateWorkbookRange(rangeRef, overwriteRowsPerRequest = null) {
58
58
  text: text[r]?.[c] ?? "",
59
59
  value: values[r]?.[c] ?? "",
60
60
  format: format?.[r]?.[c] ?? "",
61
+ style: {
62
+ merge: {},
63
+ alignment: {},
64
+ borders: {},
65
+ fill: {},
66
+ font: {},
67
+ },
61
68
  }));
62
69
  yield {
63
70
  rowOffset: offset,
@@ -1 +1 @@
1
- {"version":3,"file":"readWorkbookRows.d.ts","sourceRoot":"","sources":["../../../src/tasks/readWorkbookRows.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,GAAG,EAAa,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAOnE;;;;;;;GAOG;AACH,wBAA+B,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,wBAAwB,GAAE,MAAM,GAAG,IAAW,GAAG,aAAa,CAAC,GAAG,CAAC,CAmD9I"}
1
+ {"version":3,"file":"readWorkbookRows.d.ts","sourceRoot":"","sources":["../../../src/tasks/readWorkbookRows.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,GAAG,EAAa,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAenE;;;;;;;GAOG;AACH,wBAA+B,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,wBAAwB,GAAE,MAAM,GAAG,IAAW,GAAG,aAAa,CAAC,GAAG,CAAC,CAoD9I"}
@@ -15,6 +15,13 @@ const addressManipulation_ts_1 = require("../services/addressManipulation.js");
15
15
  const addressOffset_ts_1 = require("../services/addressOffset.js");
16
16
  const batch_ts_1 = require("../services/batch.js");
17
17
  const workbookRange_ts_1 = require("../services/workbookRange.js");
18
+ const emptyStyle = {
19
+ merge: {},
20
+ alignment: {},
21
+ borders: {},
22
+ fill: {},
23
+ font: {},
24
+ };
18
25
  /**
19
26
  * Iterates over the rows in a given worksheet range.
20
27
  *
@@ -56,6 +63,7 @@ async function* readWorkbookRows(rangeRef, overwriteMaxRowsPerChunk = null) {
56
63
  text: text[r]?.[c] ?? "",
57
64
  value: values[r]?.[c] ?? "",
58
65
  format: numberFormat?.[r]?.[c] ?? "",
66
+ style: emptyStyle,
59
67
  }));
60
68
  yield row;
61
69
  }
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Set one or more columns visibility.
3
+ * @module setColumnHidden
4
+ * @category Tasks
5
+ */
1
6
  import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
2
7
  /**
3
8
  * Set one or more columns visibility.
@@ -1 +1 @@
1
- {"version":3,"file":"setColumnHidden.d.ts","sourceRoot":"","sources":["../../../src/tasks/setColumnHidden.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAInE;;;;GAIG;AACH,wBAA8B,eAAe,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAQxG"}
1
+ {"version":3,"file":"setColumnHidden.d.ts","sourceRoot":"","sources":["../../../src/tasks/setColumnHidden.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAInE;;;;GAIG;AACH,wBAA8B,eAAe,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAQxG"}
@@ -1,4 +1,9 @@
1
1
  "use strict";
2
+ /**
3
+ * Set one or more columns visibility.
4
+ * @module setColumnHidden
5
+ * @category Tasks
6
+ */
2
7
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
8
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
9
  };
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Set one or more rows visibility.
3
+ * @module setRowHidden
4
+ * @category Tasks
5
+ */
1
6
  import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
2
7
  /**
3
8
  * Set one or more rows visibility.
@@ -1 +1 @@
1
- {"version":3,"file":"setRowHidden.d.ts","sourceRoot":"","sources":["../../../src/tasks/setRowHidden.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAInE;;;;;GAKG;AACH,wBAA8B,YAAY,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAQrG"}
1
+ {"version":3,"file":"setRowHidden.d.ts","sourceRoot":"","sources":["../../../src/tasks/setRowHidden.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAInE;;;;;GAKG;AACH,wBAA8B,YAAY,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAQrG"}
@@ -1,4 +1,9 @@
1
1
  "use strict";
2
+ /**
3
+ * Set one or more rows visibility.
4
+ * @module setRowHidden
5
+ * @category Tasks
6
+ */
2
7
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
8
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
9
  };
@@ -1,11 +1,16 @@
1
+ /**
2
+ * Sets the values of a specified workbook range.
3
+ * @module setWorkbookRangeValues
4
+ * @category Tasks
5
+ * @hidden
6
+ */
1
7
  import type { CellValue } from "../models/Cell.ts";
2
8
  import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
3
9
  /**
4
10
  * Sets the values of a specified workbook range.
5
- *
6
11
  * @param {WorkbookRangeRef} rangeRef Reference to the workbook range to update.
7
12
  * @param {CellRangeValues} values - The values to set in the specified workbook range. Must match the range's dimensions.
8
- * * @deprecated Use `writeWorkbookRows` instead.
13
+ * @deprecated Use `writeWorkbookRows` instead.
9
14
  * @hidden
10
15
  */
11
16
  export default function setWorkbookRangeValues(rangeRef: WorkbookRangeRef, values: CellValue[][]): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"setWorkbookRangeValues.d.ts","sourceRoot":"","sources":["../../../src/tasks/setWorkbookRangeValues.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAInE;;;;;;;GAOG;AACH,wBAA8B,sBAAsB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,iBAcrG"}
1
+ {"version":3,"file":"setWorkbookRangeValues.d.ts","sourceRoot":"","sources":["../../../src/tasks/setWorkbookRangeValues.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAInE;;;;;;GAMG;AACH,wBAA8B,sBAAsB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,iBAcrG"}
@@ -1,4 +1,10 @@
1
1
  "use strict";
2
+ /**
3
+ * Sets the values of a specified workbook range.
4
+ * @module setWorkbookRangeValues
5
+ * @category Tasks
6
+ * @hidden
7
+ */
2
8
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
9
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
10
  };
@@ -9,10 +15,9 @@ const updateWorkbookRange_ts_1 = __importDefault(require("../operations/workbook
9
15
  const addressManipulation_ts_1 = require("../services/addressManipulation.js");
10
16
  /**
11
17
  * Sets the values of a specified workbook range.
12
- *
13
18
  * @param {WorkbookRangeRef} rangeRef Reference to the workbook range to update.
14
19
  * @param {CellRangeValues} values - The values to set in the specified workbook range. Must match the range's dimensions.
15
- * * @deprecated Use `writeWorkbookRows` instead.
20
+ * @deprecated Use `writeWorkbookRows` instead.
16
21
  * @hidden
17
22
  */
18
23
  async function setWorkbookRangeValues(rangeRef, values) {
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Defining a border that could be on a cell.
3
+ * @experimental
4
+ * @module Border
5
+ * @category Models
6
+ */
7
+ import type { Color } from "./Color.ts";
8
+ export type Border = {
9
+ color: Color;
10
+ style: BorderType;
11
+ weight: BorderWeight;
12
+ };
13
+ export type BorderSide = "EdgeTop" | "EdgeBottom" | "EdgeLeft" | "EdgeRight" | "InsideVertical" | "InsideHorizontal" | "DiagonalDown" | "DiagonalUp";
14
+ export type BorderType = "None" | "Continuous" | "Dash" | "DashDot" | "DashDotDot" | "Dot" | "Double" | "SlantDashDot";
15
+ export type BorderWeight = "Hairline" | "Thin" | "Medium" | "Thick";
16
+ //# sourceMappingURL=Border.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Border.d.ts","sourceRoot":"","sources":["../../../src/models/Border.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,MAAM,MAAM,GAAG;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,cAAc,GAAG,YAAY,CAAC;AAErJ,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,cAAc,CAAC;AAEvH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC"}
@@ -0,0 +1 @@
1
+ export {};