@iyulab/flex-table 0.59.0 → 0.60.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.
@@ -1,4 +1,4 @@
1
- import { n as e } from "./locale-Cfm-vJji.js";
1
+ import { n as e } from "./locale-D9g0ksXq.js";
2
2
  import { n as t, t as n } from "./sorting-CjfjRxwL.js";
3
3
  import { LitElement as r, css as i, html as a, nothing as o } from "lit";
4
4
  import { customElement as s, property as c, state as l } from "lit/decorators.js";
@@ -1203,7 +1203,7 @@ var ce = class {
1203
1203
  shiftMoveRight() {
1204
1204
  return this.activeCell ? this.setActiveWithRange(this.activeCell.row, this.activeCell.col + 1) : null;
1205
1205
  }
1206
- }, O = class {
1206
+ }, le = class {
1207
1207
  constructor() {
1208
1208
  this.current = null;
1209
1209
  }
@@ -1225,7 +1225,7 @@ var ce = class {
1225
1225
  let e = this.current;
1226
1226
  return this.current = null, e;
1227
1227
  }
1228
- }, k = class {
1228
+ }, O = class {
1229
1229
  constructor() {
1230
1230
  this._selected = /* @__PURE__ */ new Set(), this._mode = "multi";
1231
1231
  }
@@ -1292,7 +1292,7 @@ var ce = class {
1292
1292
  };
1293
1293
  //#endregion
1294
1294
  //#region src/core/filtering.ts
1295
- function le(e, t, n) {
1295
+ function ue(e, t, n) {
1296
1296
  if (t.length === 0) return Array.from({ length: e.length }, (e, t) => t);
1297
1297
  let r = [];
1298
1298
  for (let i = 0; i < e.length; i++) {
@@ -1311,9 +1311,9 @@ function le(e, t, n) {
1311
1311
  }
1312
1312
  //#endregion
1313
1313
  //#region src/core/undo.ts
1314
- var ue = 100, A = class {
1314
+ var de = 100, k = class {
1315
1315
  constructor() {
1316
- this._undoStack = [], this._redoStack = [], this._maxSize = ue;
1316
+ this._undoStack = [], this._redoStack = [], this._maxSize = de;
1317
1317
  }
1318
1318
  get maxSize() {
1319
1319
  return this._maxSize;
@@ -1350,7 +1350,7 @@ var ue = 100, A = class {
1350
1350
  };
1351
1351
  //#endregion
1352
1352
  //#region src/clipboard/clipboard.ts
1353
- function de(e, t, n) {
1353
+ function fe(e, t, n) {
1354
1354
  let r = [];
1355
1355
  for (let i = n.startRow; i <= n.endRow; i++) {
1356
1356
  let a = e[i], o = [];
@@ -1362,7 +1362,7 @@ function de(e, t, n) {
1362
1362
  }
1363
1363
  return _(r);
1364
1364
  }
1365
- function j(e, t) {
1365
+ function A(e, t) {
1366
1366
  if (e === "") return null;
1367
1367
  switch (t.type) {
1368
1368
  case "number": {
@@ -1377,19 +1377,19 @@ function j(e, t) {
1377
1377
  default: return e;
1378
1378
  }
1379
1379
  }
1380
- function M(e) {
1380
+ function j(e) {
1381
1381
  let t = String(e);
1382
1382
  if (!Number.isFinite(e) || t.includes("e")) return t;
1383
1383
  let n = new Intl.NumberFormat(u.get()).formatToParts(1.5).find((e) => e.type === "decimal")?.value;
1384
1384
  return n && n !== "." ? t.replace(".", n) : t;
1385
1385
  }
1386
- function fe(e) {
1386
+ function pe(e) {
1387
1387
  if (e == null || e === "") return "";
1388
1388
  if (e instanceof Date) return Number.isNaN(e.getTime()) ? "" : `${e.getFullYear()}-${String(e.getMonth() + 1).padStart(2, "0")}-${String(e.getDate()).padStart(2, "0")}`;
1389
1389
  let t = String(e), n = /^(\d{4}-\d{2}-\d{2})(?:$|T)/.exec(t);
1390
1390
  return n ? n[1] : t;
1391
1391
  }
1392
- function pe(e) {
1392
+ function me(e) {
1393
1393
  if (e == null || e === "") return "";
1394
1394
  let t = e instanceof Date ? "" : String(e), n = /^(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2})(?::\d{2}(?:\.\d+)?)?$/.exec(t);
1395
1395
  if (n) return `${n[1]} ${n[2]}`;
@@ -1400,7 +1400,7 @@ function pe(e) {
1400
1400
  }
1401
1401
  //#endregion
1402
1402
  //#region src/export/xlsx-writer.ts
1403
- var me = (() => {
1403
+ var he = (() => {
1404
1404
  let e = /* @__PURE__ */ new Uint32Array(256);
1405
1405
  for (let t = 0; t < 256; t++) {
1406
1406
  let n = t;
@@ -1409,23 +1409,23 @@ var me = (() => {
1409
1409
  }
1410
1410
  return e;
1411
1411
  })();
1412
- function he(e) {
1412
+ function ge(e) {
1413
1413
  let t = 4294967295;
1414
- for (let n = 0; n < e.length; n++) t = me[(t ^ e[n]) & 255] ^ t >>> 8;
1414
+ for (let n = 0; n < e.length; n++) t = he[(t ^ e[n]) & 255] ^ t >>> 8;
1415
1415
  return (t ^ 4294967295) >>> 0;
1416
1416
  }
1417
- var N = new TextEncoder();
1418
- function ge(e) {
1419
- return P(e.map((e) => ({
1417
+ var M = new TextEncoder();
1418
+ function _e(e) {
1419
+ return N(e.map((e) => ({
1420
1420
  ...e,
1421
1421
  body: e.data,
1422
1422
  method: 0
1423
1423
  })));
1424
1424
  }
1425
- async function _e(e) {
1425
+ async function ve(e) {
1426
1426
  let t = [];
1427
1427
  for (let n of e) {
1428
- let e = await ve(n.data);
1428
+ let e = await ye(n.data);
1429
1429
  t.push(e.length < n.data.length ? {
1430
1430
  ...n,
1431
1431
  body: e,
@@ -1436,9 +1436,9 @@ async function _e(e) {
1436
1436
  method: 0
1437
1437
  });
1438
1438
  }
1439
- return P(t);
1439
+ return N(t);
1440
1440
  }
1441
- async function ve(e) {
1441
+ async function ye(e) {
1442
1442
  let t = new CompressionStream("deflate-raw"), n = t.writable.getWriter(), r = t.readable.getReader();
1443
1443
  n.write(e), n.close();
1444
1444
  let i = [];
@@ -1447,52 +1447,52 @@ async function ve(e) {
1447
1447
  if (e) break;
1448
1448
  i.push(t);
1449
1449
  }
1450
- return F(i);
1450
+ return P(i);
1451
1451
  }
1452
- function P(e) {
1452
+ function N(e) {
1453
1453
  let t = [], n = [], r = 0;
1454
1454
  for (let i of e) {
1455
- let e = N.encode(i.name), a = he(i.data), o = i.data.length, s = i.body.length, c = i.method === 8 ? 20 : 10, l = new ArrayBuffer(30 + e.length), u = new DataView(l);
1455
+ let e = M.encode(i.name), a = ge(i.data), o = i.data.length, s = i.body.length, c = i.method === 8 ? 20 : 10, l = new ArrayBuffer(30 + e.length), u = new DataView(l);
1456
1456
  u.setUint32(0, 67324752, !0), u.setUint16(4, c, !0), u.setUint16(6, 0, !0), u.setUint16(8, i.method, !0), u.setUint16(10, 0, !0), u.setUint16(12, 33, !0), u.setUint32(14, a, !0), u.setUint32(18, s, !0), u.setUint32(22, o, !0), u.setUint16(26, e.length, !0), u.setUint16(28, 0, !0), new Uint8Array(l, 30).set(e), t.push(new Uint8Array(l)), t.push(i.body);
1457
1457
  let d = new ArrayBuffer(46 + e.length), f = new DataView(d);
1458
1458
  f.setUint32(0, 33639248, !0), f.setUint16(4, 20, !0), f.setUint16(6, c, !0), f.setUint16(8, 0, !0), f.setUint16(10, i.method, !0), f.setUint16(12, 0, !0), f.setUint16(14, 33, !0), f.setUint32(16, a, !0), f.setUint32(20, s, !0), f.setUint32(24, o, !0), f.setUint16(28, e.length, !0), f.setUint16(30, 0, !0), f.setUint16(32, 0, !0), f.setUint16(34, 0, !0), f.setUint16(36, 0, !0), f.setUint32(38, 0, !0), f.setUint32(42, r, !0), new Uint8Array(d, 46).set(e), n.push(new Uint8Array(d)), r += 30 + e.length + s;
1459
1459
  }
1460
- let i = F(n), a = /* @__PURE__ */ new ArrayBuffer(22), o = new DataView(a);
1461
- return o.setUint32(0, 101010256, !0), o.setUint16(4, 0, !0), o.setUint16(6, 0, !0), o.setUint16(8, e.length, !0), o.setUint16(10, e.length, !0), o.setUint32(12, i.length, !0), o.setUint32(16, r, !0), o.setUint16(20, 0, !0), F([
1460
+ let i = P(n), a = /* @__PURE__ */ new ArrayBuffer(22), o = new DataView(a);
1461
+ return o.setUint32(0, 101010256, !0), o.setUint16(4, 0, !0), o.setUint16(6, 0, !0), o.setUint16(8, e.length, !0), o.setUint16(10, e.length, !0), o.setUint32(12, i.length, !0), o.setUint32(16, r, !0), o.setUint16(20, 0, !0), P([
1462
1462
  ...t,
1463
1463
  i,
1464
1464
  new Uint8Array(a)
1465
1465
  ]);
1466
1466
  }
1467
- function F(e) {
1467
+ function P(e) {
1468
1468
  let t = e.reduce((e, t) => e + t.length, 0), n = new Uint8Array(t), r = 0;
1469
1469
  for (let t of e) n.set(t, r), r += t.length;
1470
1470
  return n;
1471
1471
  }
1472
- function I(e) {
1472
+ function F(e) {
1473
1473
  return e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
1474
1474
  }
1475
- function ye(e) {
1475
+ function be(e) {
1476
1476
  let t = "";
1477
1477
  for (e++; e > 0;) t = String.fromCharCode(64 + (e % 26 || 26)) + t, e = Math.floor((e - 1) / 26);
1478
1478
  return t;
1479
1479
  }
1480
- function L(e, t) {
1481
- return ye(t) + (e + 1);
1480
+ function I(e, t) {
1481
+ return be(t) + (e + 1);
1482
1482
  }
1483
- function be(e) {
1483
+ function xe(e) {
1484
1484
  let t = Date.UTC(1899, 11, 30);
1485
1485
  return (e.getTime() - t) / 864e5;
1486
1486
  }
1487
- var xe = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">\n <Default Extension=\"rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\"/>\n <Default Extension=\"xml\" ContentType=\"application/xml\"/>\n <Override PartName=\"/xl/workbook.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\"/>\n <Override PartName=\"/xl/worksheets/sheet1.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\"/>\n <Override PartName=\"/xl/styles.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\"/>\n</Types>", Se = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">\n <Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\" Target=\"xl/workbook.xml\"/>\n</Relationships>", Ce = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">\n <sheets><sheet name=\"Sheet1\" sheetId=\"1\" r:id=\"rId1\"/></sheets>\n</workbook>", we = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">\n <Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\" Target=\"worksheets/sheet1.xml\"/>\n <Relationship Id=\"rId2\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\" Target=\"styles.xml\"/>\n</Relationships>", Te = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<styleSheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\">\n <numFmts count=\"1\"><numFmt numFmtId=\"164\" formatCode=\"yyyy-mm-dd\"/></numFmts>\n <fonts count=\"2\">\n <font><sz val=\"11\"/><name val=\"Calibri\"/></font>\n <font><sz val=\"11\"/><b/><name val=\"Calibri\"/></font>\n </fonts>\n <fills count=\"2\">\n <fill><patternFill patternType=\"none\"/></fill>\n <fill><patternFill patternType=\"gray125\"/></fill>\n </fills>\n <borders count=\"1\"><border><left/><right/><top/><bottom/><diagonal/></border></borders>\n <cellStyleXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/></cellStyleXfs>\n <cellXfs count=\"3\">\n <xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\"/>\n <xf numFmtId=\"164\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyNumberFormat=\"1\"/>\n <xf numFmtId=\"0\" fontId=\"1\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyFont=\"1\"/>\n </cellXfs>\n</styleSheet>";
1488
- function Ee(e, t) {
1489
- let n = [], r = t.map((e, t) => `<c r="${L(0, t)}" t="str" s="2"><v>${I(e.label)}</v></c>`);
1487
+ var Se = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">\n <Default Extension=\"rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\"/>\n <Default Extension=\"xml\" ContentType=\"application/xml\"/>\n <Override PartName=\"/xl/workbook.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\"/>\n <Override PartName=\"/xl/worksheets/sheet1.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\"/>\n <Override PartName=\"/xl/styles.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\"/>\n</Types>", Ce = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">\n <Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\" Target=\"xl/workbook.xml\"/>\n</Relationships>", we = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">\n <sheets><sheet name=\"Sheet1\" sheetId=\"1\" r:id=\"rId1\"/></sheets>\n</workbook>", Te = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">\n <Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\" Target=\"worksheets/sheet1.xml\"/>\n <Relationship Id=\"rId2\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\" Target=\"styles.xml\"/>\n</Relationships>", Ee = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<styleSheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\">\n <numFmts count=\"1\"><numFmt numFmtId=\"164\" formatCode=\"yyyy-mm-dd\"/></numFmts>\n <fonts count=\"2\">\n <font><sz val=\"11\"/><name val=\"Calibri\"/></font>\n <font><sz val=\"11\"/><b/><name val=\"Calibri\"/></font>\n </fonts>\n <fills count=\"2\">\n <fill><patternFill patternType=\"none\"/></fill>\n <fill><patternFill patternType=\"gray125\"/></fill>\n </fills>\n <borders count=\"1\"><border><left/><right/><top/><bottom/><diagonal/></border></borders>\n <cellStyleXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/></cellStyleXfs>\n <cellXfs count=\"3\">\n <xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\"/>\n <xf numFmtId=\"164\" fontId=\"0\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyNumberFormat=\"1\"/>\n <xf numFmtId=\"0\" fontId=\"1\" fillId=\"0\" borderId=\"0\" xfId=\"0\" applyFont=\"1\"/>\n </cellXfs>\n</styleSheet>";
1488
+ function De(e, t) {
1489
+ let n = [], r = t.map((e, t) => `<c r="${I(0, t)}" t="str" s="2"><v>${F(e.label)}</v></c>`);
1490
1490
  return n.push(`<row r="1">${r.join("")}</row>`), e.forEach((e, r) => {
1491
1491
  let i = t.map((t, n) => {
1492
- let i = L(r + 1, n), a = e[t.key];
1492
+ let i = I(r + 1, n), a = e[t.key];
1493
1493
  if (a == null) return `<c r="${i}" t="str"><v></v></c>`;
1494
1494
  let o = t.type ?? "text";
1495
- return o === "number" && typeof a == "number" ? `<c r="${i}"><v>${a}</v></c>` : (o === "date" || o === "datetime") && a instanceof Date ? `<c r="${i}" s="1"><v>${be(a).toFixed(6)}</v></c>` : o === "boolean" ? `<c r="${i}" t="b"><v>${+!!a}</v></c>` : `<c r="${i}" t="str"><v>${I(String(a))}</v></c>`;
1495
+ return o === "number" && typeof a == "number" ? `<c r="${i}"><v>${a}</v></c>` : (o === "date" || o === "datetime") && a instanceof Date ? `<c r="${i}" s="1"><v>${xe(a).toFixed(6)}</v></c>` : o === "boolean" ? `<c r="${i}" t="b"><v>${+!!a}</v></c>` : `<c r="${i}" t="str"><v>${F(String(a))}</v></c>`;
1496
1496
  });
1497
1497
  n.push(`<row r="${r + 2}">${i.join("")}</row>`);
1498
1498
  }), `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
@@ -1500,54 +1500,54 @@ function Ee(e, t) {
1500
1500
  <sheetData>${n.join("")}</sheetData>
1501
1501
  </worksheet>`;
1502
1502
  }
1503
- function De(e, t) {
1504
- return ge(R(e, t));
1505
- }
1506
1503
  function Oe(e, t) {
1507
- return _e(R(e, t));
1504
+ return _e(L(e, t));
1508
1505
  }
1509
- function R(e, t) {
1510
- let n = Ee(e, t);
1506
+ function ke(e, t) {
1507
+ return ve(L(e, t));
1508
+ }
1509
+ function L(e, t) {
1510
+ let n = De(e, t);
1511
1511
  return [
1512
1512
  {
1513
1513
  name: "[Content_Types].xml",
1514
- data: N.encode(xe)
1514
+ data: M.encode(Se)
1515
1515
  },
1516
1516
  {
1517
1517
  name: "_rels/.rels",
1518
- data: N.encode(Se)
1518
+ data: M.encode(Ce)
1519
1519
  },
1520
1520
  {
1521
1521
  name: "xl/workbook.xml",
1522
- data: N.encode(Ce)
1522
+ data: M.encode(we)
1523
1523
  },
1524
1524
  {
1525
1525
  name: "xl/_rels/workbook.xml.rels",
1526
- data: N.encode(we)
1526
+ data: M.encode(Te)
1527
1527
  },
1528
1528
  {
1529
1529
  name: "xl/worksheets/sheet1.xml",
1530
- data: N.encode(n)
1530
+ data: M.encode(n)
1531
1531
  },
1532
1532
  {
1533
1533
  name: "xl/styles.xml",
1534
- data: N.encode(Te)
1534
+ data: M.encode(Ee)
1535
1535
  }
1536
1536
  ];
1537
1537
  }
1538
1538
  //#endregion
1539
1539
  //#region src/export/export.ts
1540
- function z(e, t, n) {
1540
+ function R(e, t, n) {
1541
1541
  switch (n) {
1542
1542
  case "csv": return B(e, t, ",");
1543
1543
  case "tsv": return B(e, t, " ");
1544
1544
  case "json": return je(e, t);
1545
- case "xlsx": return De(e, t);
1545
+ case "xlsx": return Oe(e, t);
1546
1546
  }
1547
1547
  }
1548
- async function ke(e, t, n) {
1549
- let r = n === "xlsx" ? await Oe(e, t) : z(e, t, n);
1550
- return new Blob([r], { type: Fe(n) });
1548
+ async function z(e, t, n) {
1549
+ let r = n === "xlsx" ? await ke(e, t) : R(e, t, n);
1550
+ return new Blob([r], { type: Pe(n) });
1551
1551
  }
1552
1552
  function Ae(e, t) {
1553
1553
  return e == null ? "" : (t.type === "date" || t.type === "datetime") && e instanceof Date ? e.toISOString() : String(e);
@@ -1569,27 +1569,27 @@ function je(e, t) {
1569
1569
  });
1570
1570
  return JSON.stringify(n, null, 2);
1571
1571
  }
1572
- function Me(e, t) {
1572
+ function H(e, t) {
1573
1573
  let n = URL.createObjectURL(e), r = document.createElement("a");
1574
1574
  r.href = n, r.download = t, r.style.display = "none", document.body.appendChild(r), r.click(), document.body.removeChild(r), setTimeout(() => URL.revokeObjectURL(n), 100);
1575
1575
  }
1576
- var Ne = {
1576
+ var Me = {
1577
1577
  csv: "text/csv;charset=utf-8",
1578
1578
  tsv: "text/tab-separated-values;charset=utf-8",
1579
1579
  json: "application/json;charset=utf-8",
1580
1580
  xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
1581
- }, Pe = {
1581
+ }, Ne = {
1582
1582
  csv: ".csv",
1583
1583
  tsv: ".tsv",
1584
1584
  json: ".json",
1585
1585
  xlsx: ".xlsx"
1586
1586
  };
1587
+ function Pe(e) {
1588
+ return Me[e];
1589
+ }
1587
1590
  function Fe(e) {
1588
1591
  return Ne[e];
1589
1592
  }
1590
- function H(e) {
1591
- return Pe[e];
1592
- }
1593
1593
  //#endregion
1594
1594
  //#region src/export/xlsx-reader.ts
1595
1595
  function Ie(e) {
@@ -1764,7 +1764,7 @@ var K = {
1764
1764
  lte: "≤"
1765
1765
  }, q = 120, J = 40, Y = 20, X = 32, Z = 5, Ze = 200, Q = class extends r {
1766
1766
  constructor(...e) {
1767
- super(...e), this.columns = [], this._data = [], this._inUndoRedo = !1, this.clearUndoOnDataChange = !1, this.clearSelectionOnDataChange = !1, this.rowKey = "_id", this._rowHeightFromCss = X, this._targetFloor = 0, this.showRowNumbers = !1, this.theme = void 0, this.maxRows = 0, this.editable = !0, this.showFilters = !1, this.showContextMenu = !1, this.frozenRows = 0, this.emptyMessage = "", this.noMatchingMessage = "", this.error = null, this.loading = !1, this.importEnabled = !1, this.selectable = !1, this.dataMode = "client", this.footerData = null, this.stylesheets = [], this._scrollTop = 0, this._scrollLeft = 0, this._viewportHeight = 0, this._viewportWidth = 0, this._colLeftOffsets = [], this._totalRowWidth = 0, this._baseStyleSheets = [], this._activeCell = null, this._headerCol = null, this._focusedCellEl = null, this._editingCell = null, this._sortCriteria = [], this._selection = new ce(), this._editing = new O(), this._rowSelection = new k(), this._undo = new A(), this._filters = [], this._filteredIndices = [], this._sortedIndices = [], this._openFilterKey = null, this._rowSelectionVersion = 0, this._lastCheckboxRowId = null, this._unkeyedIds = /* @__PURE__ */ new WeakMap(), this._unkeyedSeq = 0, this._visibleIdsCache = null, this._checkboxShiftPending = !1, this._autocompleteState = null, this._headerMenu = null, this._bodyContextMenu = null, this._commentPopup = null, this._viewDirty = !0, this._isDragging = !1, this._wasDrag = !1, this._resizing = null, this._resizeCleanup = null, this._wasHeaderDrag = !1, this._wasRowDrag = !1, this._colDrag = null, this._colDragIndicatorLeft = null, this._fillDrag = null, this._rowDrag = null, this._rowDragIndicatorY = null, this._findState = null, this._columnWidths = /* @__PURE__ */ new Map(), this._hostResizeObserver = null, this._comments = /* @__PURE__ */ new Map(), this._isDragOver = !1, this._editorMoving = !1, this._onEditorBlur = (e) => {
1767
+ super(...e), this.columns = [], this._data = [], this._inUndoRedo = !1, this.clearUndoOnDataChange = !1, this.clearSelectionOnDataChange = !1, this.rowKey = "_id", this._rowHeightFromCss = X, this._targetFloor = 0, this.showRowNumbers = !1, this.theme = void 0, this.maxRows = 0, this.editable = !0, this.showFilters = !1, this.showContextMenu = !1, this.frozenRows = 0, this.emptyMessage = "", this.noMatchingMessage = "", this.error = null, this.loading = !1, this.importEnabled = !1, this.selectable = !1, this.dataMode = "client", this.footerData = null, this.stylesheets = [], this._scrollTop = 0, this._scrollLeft = 0, this._viewportHeight = 0, this._viewportWidth = 0, this._colLeftOffsets = [], this._totalRowWidth = 0, this._baseStyleSheets = [], this._activeCell = null, this._headerCol = null, this._focusedCellEl = null, this._editingCell = null, this._sortCriteria = [], this._selection = new ce(), this._editing = new le(), this._rowSelection = new O(), this._undo = new k(), this._filters = [], this._filteredIndices = [], this._sortedIndices = [], this._openFilterKey = null, this._rowSelectionVersion = 0, this._lastCheckboxRowId = null, this._unkeyedIds = /* @__PURE__ */ new WeakMap(), this._unkeyedSeq = 0, this._visibleIdsCache = null, this._checkboxShiftPending = !1, this._autocompleteState = null, this._headerMenu = null, this._bodyContextMenu = null, this._commentPopup = null, this._viewDirty = !0, this._isDragging = !1, this._wasDrag = !1, this._resizing = null, this._resizeCleanup = null, this._wasHeaderDrag = !1, this._wasRowDrag = !1, this._colDrag = null, this._colDragIndicatorLeft = null, this._fillDrag = null, this._rowDrag = null, this._rowDragIndicatorY = null, this._findState = null, this._columnWidths = /* @__PURE__ */ new Map(), this._hostResizeObserver = null, this._comments = /* @__PURE__ */ new Map(), this._isDragOver = !1, this._editorMoving = !1, this._onEditorBlur = (e) => {
1768
1768
  !this._editorMoving && e.currentTarget?.isConnected && this._commitEdit();
1769
1769
  }, this._warnedUnconstrained = !1, this._onHostFocus = (e) => {
1770
1770
  e.composedPath()[0] !== this || this._activeCell || this._headerCol !== null || this.visibleColumns.length !== 0 && this.matches(":focus-visible") && (this._visibleRowCount > 0 ? (this._selection.setActive(0, 0), this._syncActiveCell()) : this._headerCol = 0);
@@ -2165,19 +2165,23 @@ var K = {
2165
2165
  }
2166
2166
  exportToString(e, t) {
2167
2167
  let n = this._exportSlice(t);
2168
- return n ? z(n.rows, n.cols, e) : "";
2168
+ return n ? R(n.rows, n.cols, e) : "";
2169
2169
  }
2170
2170
  async exportToBlob(e, t) {
2171
2171
  let n = this._exportSlice(t) ?? {
2172
2172
  rows: [],
2173
2173
  cols: []
2174
2174
  };
2175
- return ke(n.rows, n.cols, e);
2175
+ return z(n.rows, n.cols, e);
2176
2176
  }
2177
- async exportToFile(e, t) {
2178
- Me(await this.exportToBlob(e), t ?? `export${H(e)}`);
2177
+ async exportToFile(e, t, n) {
2178
+ H(await this.exportToBlob(e, n), t ?? `export${Fe(e)}`);
2179
2179
  }
2180
2180
  _exportSlice(e) {
2181
+ if (e && "rows" in e && e.rows) return {
2182
+ rows: e.rows,
2183
+ cols: this.visibleColumns
2184
+ };
2181
2185
  if (e?.selectionOnly) {
2182
2186
  let e = this._selection.getEffectiveRange();
2183
2187
  if (!e) return null;
@@ -2266,7 +2270,7 @@ var K = {
2266
2270
  let a = t.get(e);
2267
2271
  if (!a) return;
2268
2272
  let o = this.columns.find((e) => e.key === a);
2269
- r[a] = o ? j(n[i] ?? "", o) : n[i] ?? null;
2273
+ r[a] = o ? A(n[i] ?? "", o) : n[i] ?? null;
2270
2274
  }), r;
2271
2275
  }), r = [...this.data];
2272
2276
  this.data = n, this._undo.push({
@@ -2287,7 +2291,7 @@ var K = {
2287
2291
  let a = n.get(t);
2288
2292
  if (!a) return;
2289
2293
  let o = this.columns.find((e) => e.key === a);
2290
- r[a] = o ? j(e[i] ?? "", o) : e[i] ?? null;
2294
+ r[a] = o ? A(e[i] ?? "", o) : e[i] ?? null;
2291
2295
  }), r;
2292
2296
  }), i = [...this.data];
2293
2297
  this.data = r, this._undo.push({
@@ -2436,7 +2440,7 @@ var K = {
2436
2440
  this._filteredIndices = Array.from({ length: this.data.length }, (e, t) => t), this._sortedIndices = this._filteredIndices;
2437
2441
  return;
2438
2442
  }
2439
- if (this._filteredIndices = le(this.data, this._filters, (e, t, n) => {
2443
+ if (this._filteredIndices = ue(this.data, this._filters, (e, t, n) => {
2440
2444
  this._emit("filter-error", {
2441
2445
  error: e,
2442
2446
  row: t,
@@ -2633,7 +2637,7 @@ var K = {
2633
2637
  }
2634
2638
  let t = this.shadowRoot?.querySelector(".ft-editor");
2635
2639
  if (t) {
2636
- let n = j(t.value, e);
2640
+ let n = A(t.value, e);
2637
2641
  this._applyEdit(n);
2638
2642
  } else this._cancelEdit();
2639
2643
  }
@@ -2957,7 +2961,7 @@ var K = {
2957
2961
  let e = this._selection.getEffectiveRange();
2958
2962
  return e ? {
2959
2963
  range: e,
2960
- text: de(this._sortedIndices.map((e) => this.data[e]), this.visibleColumns, e)
2964
+ text: fe(this._sortedIndices.map((e) => this.data[e]), this.visibleColumns, e)
2961
2965
  } : null;
2962
2966
  }
2963
2967
  async _copyFromMenu() {
@@ -3040,7 +3044,7 @@ var K = {
3040
3044
  for (let a = 0; a < t[i].length; a++) {
3041
3045
  let s = e.col + a;
3042
3046
  if (s >= n.length) break;
3043
- let c = n[s], l = this.data[o][c.key], u = j(t[i][a], c);
3047
+ let c = n[s], l = this.data[o][c.key], u = A(t[i][a], c);
3044
3048
  this.data[o][c.key] = u, r.push({
3045
3049
  row: o,
3046
3050
  col: s,
@@ -3105,7 +3109,7 @@ var K = {
3105
3109
  for (let r = e.startCol + 1; r <= e.endCol; r++) {
3106
3110
  let e = t[r];
3107
3111
  if (!e || !this._isCellEditable(e)) continue;
3108
- let a = j(o == null ? "" : String(o), e);
3112
+ let a = A(o == null ? "" : String(o), e);
3109
3113
  n.push({
3110
3114
  row: i,
3111
3115
  key: e.key,
@@ -3727,7 +3731,7 @@ var K = {
3727
3731
  </select>
3728
3732
  <input class="ft-filter-input ft-num-cond-input" type="text" inputmode="decimal" placeholder=${e("valuePlaceholder")}
3729
3733
  aria-label=${e("conditionValue", { n: n === "cond1" ? 1 : 2 })}
3730
- .value=${r.text ?? (r.value == null ? "" : M(r.value))}
3734
+ .value=${r.text ?? (r.value == null ? "" : j(r.value))}
3731
3735
  aria-invalid=${r.text && r.value == null ? "true" : "false"}
3732
3736
  @input=${(e) => {
3733
3737
  let r = e.target.value, i = this._numberFilterState.get(t) ?? this._defaultNumState();
@@ -4478,7 +4482,7 @@ var K = {
4478
4482
  let n = e[t.key], r = n == null ? "" : String(n);
4479
4483
  if (t.type === "number") return a`
4480
4484
  <input class="ft-editor ft-editor-number" type="text" inputmode="decimal" aria-label=${t.label}
4481
- .value=${typeof n == "number" ? M(n) : r}
4485
+ .value=${typeof n == "number" ? j(n) : r}
4482
4486
  @keydown=${this._onEditorKeyDown}
4483
4487
  @blur=${this._onEditorBlur}>
4484
4488
  `;
@@ -4596,10 +4600,10 @@ G([c({ type: Array })], Q.prototype, "columns", void 0), G([c({
4596
4600
  })], Q.prototype, "maxUndoSize", null), G([l()], Q.prototype, "_scrollTop", void 0), G([l()], Q.prototype, "_scrollLeft", void 0), G([l()], Q.prototype, "_viewportHeight", void 0), G([l()], Q.prototype, "_viewportWidth", void 0), G([l()], Q.prototype, "_activeCell", void 0), G([l()], Q.prototype, "_headerCol", void 0), G([l()], Q.prototype, "_editingCell", void 0), G([l()], Q.prototype, "_sortCriteria", void 0), G([l()], Q.prototype, "_openFilterKey", void 0), G([l()], Q.prototype, "_rowSelectionVersion", void 0), G([l()], Q.prototype, "_autocompleteState", void 0), G([l()], Q.prototype, "_headerMenu", void 0), G([l()], Q.prototype, "_bodyContextMenu", void 0), G([l()], Q.prototype, "_commentPopup", void 0), G([l()], Q.prototype, "_isDragOver", void 0), Q = G([s("flex-table")], Q);
4597
4601
  function Qe(e, t) {
4598
4602
  if (t) {
4599
- let t = pe(e);
4603
+ let t = me(e);
4600
4604
  return /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}$/.test(t) ? t.replace(" ", "T") : void 0;
4601
4605
  }
4602
- let n = fe(e);
4606
+ let n = pe(e);
4603
4607
  return /^\d{4}-\d{2}-\d{2}$/.test(n) ? n : void 0;
4604
4608
  }
4605
4609
  function $(e) {
@@ -4610,4 +4614,4 @@ function $(e) {
4610
4614
  }
4611
4615
  }
4612
4616
  //#endregion
4613
- export { k as a, A as i, W as n, D as o, z as r, Q as t };
4617
+ export { z as a, D as c, R as i, W as n, k as o, H as r, O as s, Q as t };
@@ -7,6 +7,17 @@ import type { FilterPredicate } from './core/filtering.js';
7
7
  import type { ColumnDefinition, DataRow, SelectionMode, DataMode } from './models/types.js';
8
8
  import type { FlexTableEventMap } from './events.js';
9
9
  import type { TemplateResult } from 'lit';
10
+ /**
11
+ * 표 내보내기의 대상 — 선택 범위(`selectionOnly`) 또는 바깥에서 준 행(`rows`, 예: `await source.fetchAll()`). 둘은
12
+ * 함께 쓰지 않는다(바깥 행에는 표의 선택 범위가 없다).
13
+ */
14
+ export type TableExportOptions = {
15
+ selectionOnly?: boolean;
16
+ rows?: undefined;
17
+ } | {
18
+ rows: DataRow[];
19
+ selectionOnly?: undefined;
20
+ };
10
21
  export declare class FlexTable extends LitElement {
11
22
  static styles: import("lit").CSSResult;
12
23
  columns: ColumnDefinition[];
@@ -313,23 +324,25 @@ export declare class FlexTable extends LitElement {
313
324
  * Export table data to string in the specified format. Synchronous — XLSX comes back as an
314
325
  * uncompressed workbook; use `exportToBlob` for a compressed one.
315
326
  * @param options.selectionOnly - Export only the currently selected range
327
+ * @param options.rows - Export these rows with the table's visible columns instead of the rows it holds —
328
+ * a server-paged table holds one page, so pass `await source.fetchAll()` for the whole result
316
329
  */
317
- exportToString(format: ExportFormat, options?: {
318
- selectionOnly?: boolean;
319
- }): string | Uint8Array<ArrayBuffer>;
330
+ exportToString(format: ExportFormat, options?: TableExportOptions): string | Uint8Array<ArrayBuffer>;
320
331
  /**
321
332
  * Export table data as a `Blob` of the format's MIME type. XLSX is DEFLATE-compressed.
322
- * @param options.selectionOnly - Export only the currently selected range
333
+ * @param options - `selectionOnly` or `rows`, as for `exportToString`
323
334
  */
324
- exportToBlob(format: ExportFormat, options?: {
325
- selectionOnly?: boolean;
326
- }): Promise<Blob>;
335
+ exportToBlob(format: ExportFormat, options?: TableExportOptions): Promise<Blob>;
327
336
  /**
328
337
  * Export table data and trigger file download. XLSX is DEFLATE-compressed; the promise settles
329
338
  * once the download has been handed to the browser.
339
+ * @param options - `selectionOnly` or `rows`, as for `exportToString`
340
+ */
341
+ exportToFile(format: ExportFormat, filename?: string, options?: TableExportOptions): Promise<void>;
342
+ /**
343
+ * 내보낼 행·열 — 행을 받았으면 그 행 · 보이는 열(서버 페이지 표가 «조회 결과 전체» 를 내보내는 길 — 열과 형식은 표,
344
+ * 질의는 소스가 안다), 선택만이면 선택 범위(없으면 `null`), 아니면 정렬 순서의 전체 행 · 보이는 열.
330
345
  */
331
- exportToFile(format: ExportFormat, filename?: string): Promise<void>;
332
- /** 내보낼 행·열 — 선택만이면 선택 범위(없으면 `null`), 아니면 정렬 순서의 전체 행 · 보이는 열. */
333
346
  private _exportSlice;
334
347
  /**
335
348
  * Set a comment on the cell at the given data index and column key.
@@ -1,3 +1,3 @@
1
- import { a as e, i as t, n, o as r, r as i, t as a } from "./flex-table-BDTykqUE.js";
2
- import { t as o } from "./locale-Cfm-vJji.js";
3
- export { a as FlexTable, e as RowSelectionState, t as UndoStack, n as effectiveAlign, i as exportData, o as flexTableLocale, r as renderCell };
1
+ import { a as e, c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "./flex-table-kM69-hSo.js";
2
+ import { t as c } from "./locale-D9g0ksXq.js";
3
+ export { s as FlexTable, o as RowSelectionState, i as UndoStack, a as downloadBlob, r as effectiveAlign, n as exportData, e as exportDataBlob, c as flexTableLocale, t as renderCell };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { FlexTable } from './flex-table.js';
2
+ export type { TableExportOptions } from './flex-table.js';
2
3
  export type { ColumnDefinition, ColumnType, ColumnAlign, DataRow, CellRenderer, CellEditor, CellValidator, SelectionMode, DataMode, CellStyle, ConditionalRule } from './models/types.js';
3
4
  export { effectiveAlign } from './models/types.js';
4
5
  export type { CellPosition, CellRange } from './core/selection.js';
@@ -9,7 +10,7 @@ export { RowSelectionState } from './core/row-selection.js';
9
10
  export { UndoStack } from './core/undo.js';
10
11
  export type { UndoAction } from './core/undo.js';
11
12
  export type { ExportFormat } from './export/export.js';
12
- export { exportData } from './export/export.js';
13
+ export { exportData, exportDataBlob, downloadBlob } from './export/export.js';
13
14
  export { renderCell } from './renderers/cell-renderer.js';
14
15
  export { flexTableLocale } from './locale.js';
15
16
  export type { FlexTableMessageKey } from './locale.js';
@@ -72,7 +72,8 @@ t.register("en", {
72
72
  notADateTime: "Enter a date and time as YYYY-MM-DD HH:mm",
73
73
  notInList: "Value must be from the existing list",
74
74
  requestFailed: "Request failed ({status})",
75
- networkFailed: "Could not reach the server."
75
+ networkFailed: "Could not reach the server.",
76
+ tooManyRows: "More than {maxRows} rows match — narrow the search or filter first."
76
77
  }), t.register("ko", {
77
78
  showHiddenColumns: "숨긴 열 보기",
78
79
  columnMenu: "열 메뉴",
@@ -144,7 +145,8 @@ t.register("en", {
144
145
  notADateTime: "날짜와 시간을 YYYY-MM-DD HH:mm 으로 입력하세요",
145
146
  notInList: "목록에 있는 값이어야 합니다",
146
147
  requestFailed: "요청이 실패했습니다 ({status})",
147
- networkFailed: "서버에 연결하지 못했습니다."
148
+ networkFailed: "서버에 연결하지 못했습니다.",
149
+ tooManyRows: "조건에 맞는 행이 {maxRows}개를 넘습니다 — 검색이나 필터로 먼저 좁혀 주세요."
148
150
  });
149
151
  var n = (e, n) => t.text(e, n);
150
152
  //#endregion
package/dist/locale.d.ts CHANGED
@@ -25,7 +25,7 @@
25
25
  * (아이콘 자리의 글리프)는 어느 로케일에서도 같은 것을 뜻하며, 번역하면 오히려 읽히지 않는다.
26
26
  * 그 판단은 «번역하지 않기로 한 것»이지 «빠뜨린 것»이 아니다.
27
27
  */
28
- export type FlexTableMessageKey = 'showHiddenColumns' | 'columnMenu' | 'cellActions' | 'noColumnsDefined' | 'addCommentPlaceholder' | 'cancel' | 'save' | 'noData' | 'noMatchingData' | 'clear' | 'blankCells' | 'emptyOnly' | 'nonEmptyOnly' | 'blankAll' | 'all' | 'contains' | 'startsWith' | 'endsWith' | 'wildcard' | 'searchPlaceholder' | 'valuePlaceholder' | 'fromPlaceholder' | 'toPlaceholder' | 'findPlaceholder' | 'findPrevious' | 'findNext' | 'matchCase' | 'wholeCell' | 'closeFind' | 'findNoResults' | 'replaceWithPlaceholder' | 'replace' | 'replaceAll' | 'findInput' | 'replaceInput' | 'filterFor' | 'filterMatchMode' | 'filterText' | 'conditionOperator' | 'conditionValue' | 'conditionJoin' | 'sortAscending' | 'sortDescending' | 'filter' | 'clearFilter' | 'hideColumn' | 'showColumn' | 'autoFitWidth' | 'wider' | 'narrower' | 'columnMenuFor' | 'columnMenuRegion' | 'copy' | 'insertRowAbove' | 'insertRowBelow' | 'deleteRow' | 'selectRow' | 'selectAllRows' | 'filterByThisValue' | 'addComment' | 'editComment' | 'deleteComment' | 'booleanTrue' | 'booleanFalse' | 'dropFileToImport' | 'notANumber' | 'notADate' | 'notADateTime' | 'notInList' | 'requestFailed' | 'networkFailed';
28
+ export type FlexTableMessageKey = 'showHiddenColumns' | 'columnMenu' | 'cellActions' | 'noColumnsDefined' | 'addCommentPlaceholder' | 'cancel' | 'save' | 'noData' | 'noMatchingData' | 'clear' | 'blankCells' | 'emptyOnly' | 'nonEmptyOnly' | 'blankAll' | 'all' | 'contains' | 'startsWith' | 'endsWith' | 'wildcard' | 'searchPlaceholder' | 'valuePlaceholder' | 'fromPlaceholder' | 'toPlaceholder' | 'findPlaceholder' | 'findPrevious' | 'findNext' | 'matchCase' | 'wholeCell' | 'closeFind' | 'findNoResults' | 'replaceWithPlaceholder' | 'replace' | 'replaceAll' | 'findInput' | 'replaceInput' | 'filterFor' | 'filterMatchMode' | 'filterText' | 'conditionOperator' | 'conditionValue' | 'conditionJoin' | 'sortAscending' | 'sortDescending' | 'filter' | 'clearFilter' | 'hideColumn' | 'showColumn' | 'autoFitWidth' | 'wider' | 'narrower' | 'columnMenuFor' | 'columnMenuRegion' | 'copy' | 'insertRowAbove' | 'insertRowBelow' | 'deleteRow' | 'selectRow' | 'selectAllRows' | 'filterByThisValue' | 'addComment' | 'editComment' | 'deleteComment' | 'booleanTrue' | 'booleanFalse' | 'dropFileToImport' | 'notANumber' | 'notADate' | 'notADateTime' | 'notInList' | 'requestFailed' | 'networkFailed' | 'tooManyRows';
29
29
  /** 이 패키지의 chrome 문자열 묶음. 소비자가 `register()` 로 언어를 더하거나 문구를 덮을 수 있다. */
30
30
  export declare const flexTableLocale: import("@iyulab/components/dist/utilities/Locale.js").LocaleNamespace<FlexTableMessageKey>;
31
31
  /** 짧은 조회 별칭 — 렌더 코드가 읽히게 유지한다. */
@@ -3,3 +3,7 @@ export type { ODataQueryState } from './query.js';
3
3
  export { createODataSource } from './source.js';
4
4
  export type { ODataSource, ODataSourceOptions, ODataSourceState } from './source.js';
5
5
  export { ODataSourceController } from './controller.js';
6
+ export { DEFAULT_MAX_ROWS } from '../core/fetch-all.js';
7
+ export type { FetchAllOptions } from '../core/fetch-all.js';
8
+ export { SourceRequestError, RowLimitError } from '../core/source-error.js';
9
+ export type { SourceError, SourceErrorDetail } from '../core/source-error.js';
@@ -1,9 +1,9 @@
1
- import { n as e, r as t, t as n } from "../query-Dw4iO0ir.js";
2
- import { t as r } from "../source-DOue0Ti3.js";
1
+ import { c as e, l as t, n, r, s as i, t as a } from "../fetch-all-J37bOtgc.js";
2
+ import { t as o } from "../source-DNPtWmC3.js";
3
3
  //#region src/odata/controller.ts
4
- var i = class {
4
+ var s = class {
5
5
  constructor(e, t, n = {}) {
6
- this.host = e, this.source = typeof t == "string" ? r(t, n) : t, e.addController(this);
6
+ this.host = e, this.source = typeof t == "string" ? o(t, n) : t, e.addController(this);
7
7
  }
8
8
  get state() {
9
9
  return this.source.getState();
@@ -16,4 +16,4 @@ var i = class {
16
16
  }
17
17
  };
18
18
  //#endregion
19
- export { i as ODataSourceController, n as buildODataQuery, e as buildSearchExpression, r as createODataSource, t as parseOrderBy };
19
+ export { a as DEFAULT_MAX_ROWS, s as ODataSourceController, n as RowLimitError, r as SourceRequestError, i as buildODataQuery, e as buildSearchExpression, o as createODataSource, t as parseOrderBy };
@@ -51,9 +51,13 @@ export declare function resolveInitialState(options: InitialSourceStateOptions):
51
51
  export declare function parseOrderBy(orderBy: string): SortCriteria[];
52
52
  /** `buildODataQuery` 가 읽는 표 상태 — `useODataSource` 가 요청마다 넘기는 것과 같은 모양. */
53
53
  export interface ODataQueryState {
54
- /** 0부터 세는 페이지 번호. */
55
- page: number;
56
- pageSize: number;
54
+ /** 0부터 세는 페이지 번호. `pageSize` 와 함께 `$skip` 이 된다. */
55
+ page?: number;
56
+ /**
57
+ * 한 페이지의 행 수(`$top`). **생략하면 `$top`·`$skip` 없이** 조회 결과 전체를 묻는다 — 서버가 응답을 나누면
58
+ * (`@odata.nextLink`) 끝까지 따라가는 것은 부르는 쪽 몫이다(`ODataSource.fetchAll`).
59
+ */
60
+ pageSize?: number;
57
61
  sortCriteria?: SortCriteria[];
58
62
  /** 정렬 기준이 비었을 때 쓰는 `$orderby` 문자열. */
59
63
  defaultOrderBy?: string;