@rowsncolumns/toolkit 24.4.5 → 24.5.1

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 (113) hide show
  1. package/dist/cjs/autofilter-condition.d.ts +45 -1
  2. package/dist/cjs/autofilter-condition.d.ts.map +1 -1
  3. package/dist/cjs/autofilter-condition.js +135 -12
  4. package/dist/cjs/excel-parser/helpers.d.ts +15 -1
  5. package/dist/cjs/excel-parser/helpers.d.ts.map +1 -1
  6. package/dist/cjs/excel-parser/helpers.js +119 -5
  7. package/dist/cjs/excel-parser/interface.d.ts +3 -1
  8. package/dist/cjs/excel-parser/interface.d.ts.map +1 -1
  9. package/dist/cjs/excel-parser/plugins/ods/index.d.ts.map +1 -1
  10. package/dist/cjs/excel-parser/plugins/ods/index.js +186 -97
  11. package/dist/cjs/excel-parser/plugins/ods/styles.d.ts +15 -0
  12. package/dist/cjs/excel-parser/plugins/ods/styles.d.ts.map +1 -1
  13. package/dist/cjs/excel-parser/plugins/ods/styles.js +80 -6
  14. package/dist/cjs/excel-parser/plugins/xlsb/index.d.ts.map +1 -1
  15. package/dist/cjs/excel-parser/plugins/xlsb/index.js +107 -103
  16. package/dist/cjs/excel-parser/plugins/xlsx/charts.d.ts +77 -1
  17. package/dist/cjs/excel-parser/plugins/xlsx/charts.d.ts.map +1 -1
  18. package/dist/cjs/excel-parser/plugins/xlsx/charts.js +920 -122
  19. package/dist/cjs/excel-parser/plugins/xlsx/drawing.d.ts +7 -1
  20. package/dist/cjs/excel-parser/plugins/xlsx/drawing.d.ts.map +1 -1
  21. package/dist/cjs/excel-parser/plugins/xlsx/drawing.js +24 -9
  22. package/dist/cjs/excel-parser/plugins/xlsx/form-controls.d.ts +24 -3
  23. package/dist/cjs/excel-parser/plugins/xlsx/form-controls.d.ts.map +1 -1
  24. package/dist/cjs/excel-parser/plugins/xlsx/form-controls.js +25 -3
  25. package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts +24 -1
  26. package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts.map +1 -1
  27. package/dist/cjs/excel-parser/plugins/xlsx/index.js +561 -394
  28. package/dist/cjs/excel-parser/plugins/xlsx/pivots.d.ts +8 -2
  29. package/dist/cjs/excel-parser/plugins/xlsx/pivots.d.ts.map +1 -1
  30. package/dist/cjs/excel-parser/plugins/xlsx/pivots.js +312 -21
  31. package/dist/cjs/excel-parser/plugins/xlsx/relationships.d.ts +6 -0
  32. package/dist/cjs/excel-parser/plugins/xlsx/relationships.d.ts.map +1 -1
  33. package/dist/cjs/excel-parser/plugins/xlsx/relationships.js +9 -0
  34. package/dist/cjs/excel-parser/plugins/xlsx/theme.d.ts +1 -1
  35. package/dist/cjs/excel-parser/types.d.ts +9 -1
  36. package/dist/cjs/excel-parser/types.d.ts.map +1 -1
  37. package/dist/cjs/excel-parser/workbook.d.ts +1 -0
  38. package/dist/cjs/excel-parser/workbook.d.ts.map +1 -1
  39. package/dist/cjs/excel-parser/workbook.js +5 -0
  40. package/dist/cjs/excel-parser/worker.js +2 -0
  41. package/dist/cjs/exporter/ods/ods-export.d.ts.map +1 -1
  42. package/dist/cjs/exporter/ods/ods-export.js +255 -80
  43. package/dist/cjs/exporter/xlsx/chart-builder.d.ts +7 -1
  44. package/dist/cjs/exporter/xlsx/chart-builder.d.ts.map +1 -1
  45. package/dist/cjs/exporter/xlsx/chart-builder.js +902 -119
  46. package/dist/cjs/exporter/xlsx/form-controls-builder.d.ts +16 -3
  47. package/dist/cjs/exporter/xlsx/form-controls-builder.d.ts.map +1 -1
  48. package/dist/cjs/exporter/xlsx/form-controls-builder.js +30 -8
  49. package/dist/cjs/exporter/xlsx/pivot-builder.d.ts.map +1 -1
  50. package/dist/cjs/exporter/xlsx/pivot-builder.js +206 -162
  51. package/dist/cjs/exporter/xlsx/style-builder.d.ts +8 -2
  52. package/dist/cjs/exporter/xlsx/style-builder.d.ts.map +1 -1
  53. package/dist/cjs/exporter/xlsx/style-builder.js +25 -0
  54. package/dist/cjs/exporter/xlsx/xlsx-export.d.ts +2 -2
  55. package/dist/cjs/exporter/xlsx/xlsx-export.d.ts.map +1 -1
  56. package/dist/cjs/exporter/xlsx/xlsx-export.js +884 -470
  57. package/dist/esm/autofilter-condition.d.ts +45 -1
  58. package/dist/esm/autofilter-condition.d.ts.map +1 -1
  59. package/dist/esm/autofilter-condition.js +131 -11
  60. package/dist/esm/excel-parser/helpers.d.ts +15 -1
  61. package/dist/esm/excel-parser/helpers.d.ts.map +1 -1
  62. package/dist/esm/excel-parser/helpers.js +94 -4
  63. package/dist/esm/excel-parser/interface.d.ts +3 -1
  64. package/dist/esm/excel-parser/interface.d.ts.map +1 -1
  65. package/dist/esm/excel-parser/plugins/ods/index.d.ts.map +1 -1
  66. package/dist/esm/excel-parser/plugins/ods/index.js +105 -22
  67. package/dist/esm/excel-parser/plugins/ods/styles.d.ts +15 -0
  68. package/dist/esm/excel-parser/plugins/ods/styles.d.ts.map +1 -1
  69. package/dist/esm/excel-parser/plugins/ods/styles.js +79 -5
  70. package/dist/esm/excel-parser/plugins/xlsb/index.d.ts.map +1 -1
  71. package/dist/esm/excel-parser/plugins/xlsb/index.js +15 -7
  72. package/dist/esm/excel-parser/plugins/xlsx/charts.d.ts +77 -1
  73. package/dist/esm/excel-parser/plugins/xlsx/charts.d.ts.map +1 -1
  74. package/dist/esm/excel-parser/plugins/xlsx/charts.js +708 -16
  75. package/dist/esm/excel-parser/plugins/xlsx/drawing.d.ts +7 -1
  76. package/dist/esm/excel-parser/plugins/xlsx/drawing.d.ts.map +1 -1
  77. package/dist/esm/excel-parser/plugins/xlsx/drawing.js +23 -0
  78. package/dist/esm/excel-parser/plugins/xlsx/form-controls.d.ts +24 -3
  79. package/dist/esm/excel-parser/plugins/xlsx/form-controls.d.ts.map +1 -1
  80. package/dist/esm/excel-parser/plugins/xlsx/form-controls.js +21 -3
  81. package/dist/esm/excel-parser/plugins/xlsx/index.d.ts +24 -1
  82. package/dist/esm/excel-parser/plugins/xlsx/index.d.ts.map +1 -1
  83. package/dist/esm/excel-parser/plugins/xlsx/index.js +192 -54
  84. package/dist/esm/excel-parser/plugins/xlsx/pivots.d.ts +8 -2
  85. package/dist/esm/excel-parser/plugins/xlsx/pivots.d.ts.map +1 -1
  86. package/dist/esm/excel-parser/plugins/xlsx/pivots.js +220 -4
  87. package/dist/esm/excel-parser/plugins/xlsx/relationships.d.ts +6 -0
  88. package/dist/esm/excel-parser/plugins/xlsx/relationships.d.ts.map +1 -1
  89. package/dist/esm/excel-parser/plugins/xlsx/relationships.js +9 -0
  90. package/dist/esm/excel-parser/plugins/xlsx/theme.d.ts +1 -1
  91. package/dist/esm/excel-parser/types.d.ts +9 -1
  92. package/dist/esm/excel-parser/types.d.ts.map +1 -1
  93. package/dist/esm/excel-parser/workbook.d.ts +1 -0
  94. package/dist/esm/excel-parser/workbook.d.ts.map +1 -1
  95. package/dist/esm/excel-parser/workbook.js +4 -0
  96. package/dist/esm/excel-parser/worker.js +2 -0
  97. package/dist/esm/exporter/ods/ods-export.d.ts.map +1 -1
  98. package/dist/esm/exporter/ods/ods-export.js +238 -72
  99. package/dist/esm/exporter/xlsx/chart-builder.d.ts +7 -1
  100. package/dist/esm/exporter/xlsx/chart-builder.d.ts.map +1 -1
  101. package/dist/esm/exporter/xlsx/chart-builder.js +674 -58
  102. package/dist/esm/exporter/xlsx/form-controls-builder.d.ts +16 -3
  103. package/dist/esm/exporter/xlsx/form-controls-builder.d.ts.map +1 -1
  104. package/dist/esm/exporter/xlsx/form-controls-builder.js +29 -8
  105. package/dist/esm/exporter/xlsx/pivot-builder.d.ts.map +1 -1
  106. package/dist/esm/exporter/xlsx/pivot-builder.js +187 -139
  107. package/dist/esm/exporter/xlsx/style-builder.d.ts +8 -2
  108. package/dist/esm/exporter/xlsx/style-builder.d.ts.map +1 -1
  109. package/dist/esm/exporter/xlsx/style-builder.js +28 -0
  110. package/dist/esm/exporter/xlsx/xlsx-export.d.ts +2 -2
  111. package/dist/esm/exporter/xlsx/xlsx-export.d.ts.map +1 -1
  112. package/dist/esm/exporter/xlsx/xlsx-export.js +600 -206
  113. package/package.json +10 -5
@@ -21,10 +21,44 @@ export type AutoFilterCondition = {
21
21
  type: ConditionType;
22
22
  values: ConditionValue[];
23
23
  };
24
+ /**
25
+ * The condition part of a column's `filterCriteria` as `<filterColumn>`
26
+ * carries it: one clause, or two clauses joined by Excel's Custom AutoFilter
27
+ * And / Or (`<customFilters and="1">` with two `<customFilter>` children).
28
+ */
29
+ export type AutoFilterCriteriaConditions = {
30
+ condition: AutoFilterCondition;
31
+ condition2?: AutoFilterCondition;
32
+ conditionJoin?: "AND" | "OR";
33
+ };
24
34
  export type RawCustomFilter = {
25
35
  operator?: string;
26
36
  val?: string;
27
37
  };
38
+ /** `<top10 top percent val>` attributes as parsed from the sheet XML. */
39
+ export type RawTop10Filter = {
40
+ top?: string;
41
+ percent?: string;
42
+ val?: string;
43
+ };
44
+ /**
45
+ * `<filterColumn>` condition XML for a column's criteria: a two-clause Custom
46
+ * AutoFilter becomes `<customFilters [and="1"]>` with both clauses when each
47
+ * has a single-element form; otherwise the first clause alone is written the
48
+ * way `buildAutoFilterConditionXml` does (the second is dropped — say so in
49
+ * the PR when this asymmetry matters).
50
+ */
51
+ export declare const buildAutoFilterCriteriaXml: (criteria: {
52
+ condition?: {
53
+ type?: ConditionType | null;
54
+ values?: ConditionValue[] | null;
55
+ } | null;
56
+ condition2?: {
57
+ type?: ConditionType | null;
58
+ values?: ConditionValue[] | null;
59
+ } | null;
60
+ conditionJoin?: "AND" | "OR" | null;
61
+ }) => string | null;
28
62
  /**
29
63
  * Build the `<customFilters>` / `<dynamicFilter>` XML for a filter condition,
30
64
  * or `null` when the condition type has no AutoFilter representation (BLANK /
@@ -35,9 +69,19 @@ export declare const buildAutoFilterConditionXml: (condition: {
35
69
  type?: ConditionType | null;
36
70
  values?: ConditionValue[] | null;
37
71
  } | null | undefined) => string | null;
72
+ /** Map an Excel `<top10 top percent val>` back to a condition, or null. */
73
+ export declare const top10FilterToCondition: (raw: RawTop10Filter | undefined) => AutoFilterCondition | null;
38
74
  /** Map an Excel `<dynamicFilter type=…>` back to a condition, or null. */
39
75
  export declare const dynamicFilterToCondition: (type: string | undefined) => AutoFilterCondition | null;
40
- /** Map Excel `<customFilters>` children back to a condition, or null. */
76
+ /**
77
+ * Map Excel `<customFilters>` children back to a column's condition(s), or
78
+ * null. Two children are a `NUMBER_BETWEEN` (`and`, `>=` then `<=`) or
79
+ * `NUMBER_NOT_BETWEEN` (or, `<` then `>`) range when they have that exact
80
+ * shape — the form the exporter writes for those types — and otherwise a
81
+ * Custom AutoFilter's two clauses joined by And / Or.
82
+ */
83
+ export declare const customFiltersToCriteria: (filters: RawCustomFilter[], and: boolean) => AutoFilterCriteriaConditions | null;
84
+ /** Map Excel `<customFilters>` children back to a single condition, or null. */
41
85
  export declare const customFiltersToCondition: (filters: RawCustomFilter[], and: boolean) => AutoFilterCondition | null;
42
86
  export {};
43
87
  //# sourceMappingURL=autofilter-condition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"autofilter-condition.d.ts","sourceRoot":"","sources":["../../autofilter-condition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;;;;;;;;;;;;;GAcG;AAEH,KAAK,cAAc,GAAG;IAAE,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC;AACnD,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAmElE;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,GACtC,WAAW;IAAE,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,KAC9F,MAAM,GAAG,IA4BX,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,wBAAwB,GACnC,MAAM,MAAM,GAAG,SAAS,KACvB,mBAAmB,GAAG,IAIxB,CAAC;AAIF,yEAAyE;AACzE,eAAO,MAAM,wBAAwB,GACnC,SAAS,eAAe,EAAE,EAC1B,KAAK,OAAO,KACX,mBAAmB,GAAG,IA6CxB,CAAC"}
1
+ {"version":3,"file":"autofilter-condition.d.ts","sourceRoot":"","sources":["../../autofilter-condition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;;;;;;;;;;;;;GAcG;AAEH,KAAK,cAAc,GAAG;IAAE,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC;AACnD,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC,SAAS,EAAE,mBAAmB,CAAC;IAC/B,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,aAAa,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAClE,yEAAyE;AACzE,MAAM,MAAM,cAAc,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAoH9E;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,GAAI,UAAU;IACnD,SAAS,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACrF,UAAU,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACtF,aAAa,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;CACrC,KAAG,MAAM,GAAG,IAUZ,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,GACtC,WAAW;IAAE,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,KAC9F,MAAM,GAAG,IAmCX,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,sBAAsB,GACjC,KAAK,cAAc,GAAG,SAAS,KAC9B,mBAAmB,GAAG,IAexB,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,wBAAwB,GACnC,MAAM,MAAM,GAAG,SAAS,KACvB,mBAAmB,GAAG,IAIxB,CAAC;AAIF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,eAAe,EAAE,EAC1B,KAAK,OAAO,KACX,4BAA4B,GAAG,IA8BjC,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,GACnC,SAAS,eAAe,EAAE,EAC1B,KAAK,OAAO,KACX,mBAAmB,GAAG,IAAgE,CAAC"}
@@ -20,6 +20,36 @@ var DYNAMIC_BY_TYPE = {
20
20
  DATE_NEXT_MONTH: "nextMonth",
21
21
  NUMBER_ABOVE_AVERAGE: "aboveAverage",
22
22
  NUMBER_BELOW_AVERAGE: "belowAverage",
23
+ DATE_THIS_QUARTER: "thisQuarter",
24
+ DATE_LAST_QUARTER: "lastQuarter",
25
+ DATE_NEXT_QUARTER: "nextQuarter",
26
+ DATE_THIS_YEAR: "thisYear",
27
+ DATE_LAST_YEAR: "lastYear",
28
+ DATE_NEXT_YEAR: "nextYear",
29
+ DATE_YEAR_TO_DATE: "yearToDate",
30
+ DATE_IN_Q1: "Q1",
31
+ DATE_IN_Q2: "Q2",
32
+ DATE_IN_Q3: "Q3",
33
+ DATE_IN_Q4: "Q4",
34
+ DATE_IN_M1: "M1",
35
+ DATE_IN_M2: "M2",
36
+ DATE_IN_M3: "M3",
37
+ DATE_IN_M4: "M4",
38
+ DATE_IN_M5: "M5",
39
+ DATE_IN_M6: "M6",
40
+ DATE_IN_M7: "M7",
41
+ DATE_IN_M8: "M8",
42
+ DATE_IN_M9: "M9",
43
+ DATE_IN_M10: "M10",
44
+ DATE_IN_M11: "M11",
45
+ DATE_IN_M12: "M12",
46
+ };
47
+ // Excel's "Top 10…" AutoFilter: `<top10 top="1|0" percent="1|0" val="N"/>`.
48
+ var TOP10_BY_TYPE = {
49
+ NUMBER_TOP_N: { top: true, percent: false },
50
+ NUMBER_BOTTOM_N: { top: false, percent: false },
51
+ NUMBER_TOP_PERCENT: { top: true, percent: true },
52
+ NUMBER_BOTTOM_PERCENT: { top: false, percent: true },
23
53
  };
24
54
  var TYPE_BY_DYNAMIC = Object.fromEntries(Object.entries(DYNAMIC_BY_TYPE).map(function (_a) {
25
55
  var _b = __read(_a, 2), k = _b[0], v = _b[1];
@@ -60,6 +90,45 @@ var TEXT_WRAP = {
60
90
  var customFilterXml = function (operator, val) {
61
91
  return "<customFilter operator=\"".concat(operator, "\" val=\"").concat(escapeXml(val), "\"/>");
62
92
  };
93
+ /**
94
+ * A single `<customFilter>` for one comparison clause (number / date / text),
95
+ * or `null` when the clause has no single-element form (between, dynamic, …).
96
+ */
97
+ var singleCustomFilterXml = function (condition) {
98
+ var _a, _b;
99
+ var type = condition === null || condition === void 0 ? void 0 : condition.type;
100
+ if (!type)
101
+ return null;
102
+ var v0 = (_b = (_a = condition === null || condition === void 0 ? void 0 : condition.values) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.userEnteredValue;
103
+ if (v0 == null)
104
+ return null;
105
+ var op = OPERATOR_BY_TYPE[type];
106
+ if (op)
107
+ return customFilterXml(op, v0);
108
+ var text = TEXT_WRAP[type];
109
+ if (text)
110
+ return customFilterXml(text.op, text.wrap(v0));
111
+ return null;
112
+ };
113
+ /**
114
+ * `<filterColumn>` condition XML for a column's criteria: a two-clause Custom
115
+ * AutoFilter becomes `<customFilters [and="1"]>` with both clauses when each
116
+ * has a single-element form; otherwise the first clause alone is written the
117
+ * way `buildAutoFilterConditionXml` does (the second is dropped — say so in
118
+ * the PR when this asymmetry matters).
119
+ */
120
+ export var buildAutoFilterCriteriaXml = function (criteria) {
121
+ var _a;
122
+ if ((_a = criteria.condition2) === null || _a === void 0 ? void 0 : _a.type) {
123
+ var first = singleCustomFilterXml(criteria.condition);
124
+ var second = singleCustomFilterXml(criteria.condition2);
125
+ if (first && second) {
126
+ var and = criteria.conditionJoin === "OR" ? "" : " and=\"1\"";
127
+ return "<customFilters".concat(and, ">").concat(first).concat(second, "</customFilters>");
128
+ }
129
+ }
130
+ return buildAutoFilterConditionXml(criteria.condition);
131
+ };
63
132
  /**
64
133
  * Build the `<customFilters>` / `<dynamicFilter>` XML for a filter condition,
65
134
  * or `null` when the condition type has no AutoFilter representation (BLANK /
@@ -77,6 +146,13 @@ export var buildAutoFilterConditionXml = function (condition) {
77
146
  var dynamic = DYNAMIC_BY_TYPE[type];
78
147
  if (dynamic)
79
148
  return "<dynamicFilter type=\"".concat(dynamic, "\"/>");
149
+ var top10 = TOP10_BY_TYPE[type];
150
+ if (top10) {
151
+ var n = Number(v0);
152
+ if (!Number.isFinite(n) || n <= 0)
153
+ return null;
154
+ return "<top10 top=\"".concat(top10.top ? 1 : 0, "\" percent=\"").concat(top10.percent ? 1 : 0, "\" val=\"").concat(n, "\"/>");
155
+ }
80
156
  if (type === "NUMBER_BETWEEN" || type === "DATE_BETWEEN") {
81
157
  if (v0 == null || v1 == null)
82
158
  return null;
@@ -97,6 +173,25 @@ export var buildAutoFilterConditionXml = function (condition) {
97
173
  }
98
174
  return null;
99
175
  };
176
+ /** Map an Excel `<top10 top percent val>` back to a condition, or null. */
177
+ export var top10FilterToCondition = function (raw) {
178
+ if (!raw)
179
+ return null;
180
+ var n = Number(raw.val);
181
+ if (!Number.isFinite(n) || n <= 0)
182
+ return null;
183
+ // Both attributes default to true/false per the schema: `top` defaults to 1, `percent` to 0.
184
+ var top = raw.top === undefined || raw.top === "1" || raw.top === "true";
185
+ var percent = raw.percent === "1" || raw.percent === "true";
186
+ var type = top
187
+ ? percent
188
+ ? "NUMBER_TOP_PERCENT"
189
+ : "NUMBER_TOP_N"
190
+ : percent
191
+ ? "NUMBER_BOTTOM_PERCENT"
192
+ : "NUMBER_BOTTOM_N";
193
+ return { type: type, values: [{ userEnteredValue: String(n) }] };
194
+ };
100
195
  /** Map an Excel `<dynamicFilter type=…>` back to a condition, or null. */
101
196
  export var dynamicFilterToCondition = function (type) {
102
197
  if (!type)
@@ -105,23 +200,51 @@ export var dynamicFilterToCondition = function (type) {
105
200
  return conditionType ? { type: conditionType, values: [] } : null;
106
201
  };
107
202
  var isNumeric = function (v) { return v !== "" && !Number.isNaN(Number(v)); };
108
- /** Map Excel `<customFilters>` children back to a condition, or null. */
109
- export var customFiltersToCondition = function (filters, and) {
110
- var _a, _b, _c, _d;
203
+ /**
204
+ * Map Excel `<customFilters>` children back to a column's condition(s), or
205
+ * null. Two children are a `NUMBER_BETWEEN` (`and`, `>=` then `<=`) or
206
+ * `NUMBER_NOT_BETWEEN` (or, `<` then `>`) range when they have that exact
207
+ * shape — the form the exporter writes for those types — and otherwise a
208
+ * Custom AutoFilter's two clauses joined by And / Or.
209
+ */
210
+ export var customFiltersToCriteria = function (filters, and) {
211
+ var _a, _b;
111
212
  var valid = filters.filter(function (f) { return f && f.val !== undefined; });
112
213
  if (valid.length === 0)
113
214
  return null;
114
- // Two filters => a range (between when AND, not-between when OR).
115
215
  if (valid.length >= 2) {
116
- var v0 = String((_a = valid[0].val) !== null && _a !== void 0 ? _a : "");
117
- var v1 = String((_b = valid[1].val) !== null && _b !== void 0 ? _b : "");
118
- return {
119
- type: and ? "NUMBER_BETWEEN" : "NUMBER_NOT_BETWEEN",
120
- values: [{ userEnteredValue: v0 }, { userEnteredValue: v1 }],
121
- };
216
+ var _c = __read(valid, 2), first = _c[0], second = _c[1];
217
+ var v0 = String((_a = first.val) !== null && _a !== void 0 ? _a : "");
218
+ var v1 = String((_b = second.val) !== null && _b !== void 0 ? _b : "");
219
+ var isRange = and
220
+ ? first.operator === "greaterThanOrEqual" &&
221
+ second.operator === "lessThanOrEqual"
222
+ : first.operator === "lessThan" && second.operator === "greaterThan";
223
+ if (isRange && isNumeric(v0) && isNumeric(v1)) {
224
+ return {
225
+ condition: {
226
+ type: and ? "NUMBER_BETWEEN" : "NUMBER_NOT_BETWEEN",
227
+ values: [{ userEnteredValue: v0 }, { userEnteredValue: v1 }],
228
+ },
229
+ };
230
+ }
231
+ var condition_1 = singleCustomFilterToCondition(first);
232
+ var condition2 = singleCustomFilterToCondition(second);
233
+ if (!condition_1)
234
+ return condition2 ? { condition: condition2 } : null;
235
+ return condition2
236
+ ? { condition: condition_1, condition2: condition2, conditionJoin: and ? "AND" : "OR" }
237
+ : { condition: condition_1 };
122
238
  }
123
- var operator = (_c = valid[0].operator) !== null && _c !== void 0 ? _c : "equal";
124
- var val = String((_d = valid[0].val) !== null && _d !== void 0 ? _d : "");
239
+ var condition = singleCustomFilterToCondition(valid[0]);
240
+ return condition ? { condition: condition } : null;
241
+ };
242
+ /** Map Excel `<customFilters>` children back to a single condition, or null. */
243
+ export var customFiltersToCondition = function (filters, and) { var _a, _b; return (_b = (_a = customFiltersToCriteria(filters, and)) === null || _a === void 0 ? void 0 : _a.condition) !== null && _b !== void 0 ? _b : null; };
244
+ var singleCustomFilterToCondition = function (filter) {
245
+ var _a, _b;
246
+ var operator = (_a = filter.operator) !== null && _a !== void 0 ? _a : "equal";
247
+ var val = String((_b = filter.val) !== null && _b !== void 0 ? _b : "");
125
248
  // Text wildcards: equal/notEqual carrying * map back to contains/starts/ends.
126
249
  if ((operator === "equal" || operator === "notEqual") && /[*?]/.test(val)) {
127
250
  var negated = operator === "notEqual";
@@ -1,5 +1,5 @@
1
1
  import type { GridRange } from "@rowsncolumns/common-types";
2
- import type { Column, FilterSpec, TableTotalsRowFunction } from "@rowsncolumns/spreadsheet";
2
+ import type { Column, FilterSpec, SortSpecs, TableTotalsRowFunction } from "@rowsncolumns/spreadsheet";
3
3
  export declare const getRangeFromAddressRef: (ref: string) => GridRange | undefined;
4
4
  /**
5
5
  * Convert an xlsx column width (in units of max-digit-width of the
@@ -29,6 +29,20 @@ export declare function createFilterSpecsFromAutoFilter(autoFilter: any,
29
29
  * (caller doesn't have access to workbook dxfs).
30
30
  */
31
31
  resolveDxfColor?: (dxfId: number, cellColor: boolean) => string | undefined): FilterSpec[];
32
+ /**
33
+ * The table-relative column ids whose header shows NO filter button —
34
+ * `<filterColumn colId="n" hiddenButton="1"/>` (Excel's per-column toggle;
35
+ * the table-level toggle is the presence of `<autoFilter>` itself).
36
+ */
37
+ export declare function hiddenFilterButtonColumns(autoFilter: any): Set<number>;
38
+ /**
39
+ * A table's persisted sort levels — `<sortState><sortCondition ref
40
+ * descending sortBy dxfId iconSet iconId customList/></sortState>` — as
41
+ * range-relative `SortSpecs` (the inverse of the exporter's
42
+ * `buildTableSortStateXml`). A colour level's `dxfId` resolves through
43
+ * `resolveDxfColor` (skipped when the caller has no dxf table).
44
+ */
45
+ export declare function createSortSpecsFromSortState(sortState: any, range: GridRange, resolveDxfColor?: (dxfId: number, cellColor: boolean) => string | undefined): SortSpecs[];
32
46
  /**
33
47
  * Reads an Excel file and extracts sheet metadata
34
48
  */
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../excel-parser/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAEV,MAAM,EACN,UAAU,EACV,sBAAsB,EACvB,MAAM,2BAA2B,CAAC;AASnC,eAAO,MAAM,sBAAsB,GAAI,KAAK,MAAM,KAAG,SAAS,GAAG,SAIhE,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,UAIrD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,UAMpC;AAmBD,eAAO,MAAM,wBAAwB,GACnC,OAAO,OAAO,KACb,KAAK,IAAI,sBACwD,CAAC;AAErE;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,QAAQ,GAAG,KACV,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,kBAAkB,CAmB1E,CAAC;AAqBF,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,GAAG;AACf;;;;GAIG;AACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,gBA8F5E;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,wBAkB3D"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../excel-parser/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAEV,MAAM,EACN,UAAU,EACV,SAAS,EACT,sBAAsB,EACvB,MAAM,2BAA2B,CAAC;AAUnC,eAAO,MAAM,sBAAsB,GAAI,KAAK,MAAM,KAAG,SAAS,GAAG,SAIhE,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,UAIrD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,UAMpC;AAmBD,eAAO,MAAM,wBAAwB,GACnC,OAAO,OAAO,KACb,KAAK,IAAI,sBACwD,CAAC;AAErE;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,QAAQ,GAAG,KACV,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,kBAAkB,CAmB1E,CAAC;AAqBF,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,GAAG;AACf;;;;GAIG;AACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,gBA0G5E;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAgBtE;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,GAAG,EACd,KAAK,EAAE,SAAS,EAChB,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,GAC1E,SAAS,EAAE,CA2Cb;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,wBAkB3D"}
@@ -1,5 +1,5 @@
1
1
  import { __awaiter, __generator, __values } from "tslib";
2
- import { customFiltersToCondition, dynamicFilterToCondition, } from "../autofilter-condition";
2
+ import { customFiltersToCriteria, dynamicFilterToCondition, top10FilterToCondition, } from "../autofilter-condition";
3
3
  import { addressToSelection } from "@rowsncolumns/utils";
4
4
  export var getRangeFromAddressRef = function (ref) {
5
5
  var selection = addressToSelection(ref);
@@ -94,7 +94,7 @@ export function createFilterSpecsFromAutoFilter(autoFilter,
94
94
  */
95
95
  resolveDxfColor) {
96
96
  var e_1, _a;
97
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
97
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
98
98
  var filterSpecs = [];
99
99
  // Handle both with and without namespace prefix
100
100
  var filterColumn = (_b = autoFilter === null || autoFilter === void 0 ? void 0 : autoFilter.filterColumn) !== null && _b !== void 0 ? _b : autoFilter === null || autoFilter === void 0 ? void 0 : autoFilter["x:filterColumn"];
@@ -162,9 +162,9 @@ resolveDxfColor) {
162
162
  var a = (_a = f.a$) !== null && _a !== void 0 ? _a : f;
163
163
  return { operator: a === null || a === void 0 ? void 0 : a.operator, val: a === null || a === void 0 ? void 0 : a.val };
164
164
  });
165
- var condition = customFiltersToCondition(cfArray, and);
166
- if (condition)
167
- criteria.condition = condition;
165
+ var conditions = customFiltersToCriteria(cfArray, and);
166
+ if (conditions)
167
+ Object.assign(criteria, conditions);
168
168
  }
169
169
  // <dynamicFilter type="thisMonth"/> etc.
170
170
  var dynamicNode = (_m = col.dynamicFilter) !== null && _m !== void 0 ? _m : col["x:dynamicFilter"];
@@ -174,6 +174,18 @@ resolveDxfColor) {
174
174
  if (condition)
175
175
  criteria.condition = condition;
176
176
  }
177
+ // <top10 top="1" percent="0" val="10"/> (Excel's "Top 10…")
178
+ var top10Node = (_p = col.top10) !== null && _p !== void 0 ? _p : col["x:top10"];
179
+ if (top10Node && !criteria.condition) {
180
+ var a = (_q = top10Node.a$) !== null && _q !== void 0 ? _q : top10Node;
181
+ var condition = top10FilterToCondition({
182
+ top: (a === null || a === void 0 ? void 0 : a.top) !== undefined ? String(a.top) : undefined,
183
+ percent: (a === null || a === void 0 ? void 0 : a.percent) !== undefined ? String(a.percent) : undefined,
184
+ val: (a === null || a === void 0 ? void 0 : a.val) !== undefined ? String(a.val) : undefined,
185
+ });
186
+ if (condition)
187
+ criteria.condition = condition;
188
+ }
177
189
  if (Object.keys(criteria).length > 0) {
178
190
  filterSpecs.push({ columnIndex: columnIndex, filterCriteria: criteria });
179
191
  }
@@ -188,6 +200,108 @@ resolveDxfColor) {
188
200
  }
189
201
  return filterSpecs.sort(function (a, b) { return a.columnIndex - b.columnIndex; });
190
202
  }
203
+ /**
204
+ * The table-relative column ids whose header shows NO filter button —
205
+ * `<filterColumn colId="n" hiddenButton="1"/>` (Excel's per-column toggle;
206
+ * the table-level toggle is the presence of `<autoFilter>` itself).
207
+ */
208
+ export function hiddenFilterButtonColumns(autoFilter) {
209
+ var e_2, _a;
210
+ var _b, _c;
211
+ var hidden = new Set();
212
+ var filterColumn = (_b = autoFilter === null || autoFilter === void 0 ? void 0 : autoFilter.filterColumn) !== null && _b !== void 0 ? _b : autoFilter === null || autoFilter === void 0 ? void 0 : autoFilter["x:filterColumn"];
213
+ if (!filterColumn)
214
+ return hidden;
215
+ var filterColumns = Array.isArray(filterColumn)
216
+ ? filterColumn
217
+ : [filterColumn];
218
+ try {
219
+ for (var filterColumns_2 = __values(filterColumns), filterColumns_2_1 = filterColumns_2.next(); !filterColumns_2_1.done; filterColumns_2_1 = filterColumns_2.next()) {
220
+ var col = filterColumns_2_1.value;
221
+ var attrs = (_c = col === null || col === void 0 ? void 0 : col.a$) !== null && _c !== void 0 ? _c : {};
222
+ var hiddenButton = attrs.hiddenButton;
223
+ if (hiddenButton !== "1" && hiddenButton !== "true")
224
+ continue;
225
+ var columnIndex = parseInt(String(attrs.colId), 10);
226
+ if (Number.isFinite(columnIndex))
227
+ hidden.add(columnIndex);
228
+ }
229
+ }
230
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
231
+ finally {
232
+ try {
233
+ if (filterColumns_2_1 && !filterColumns_2_1.done && (_a = filterColumns_2.return)) _a.call(filterColumns_2);
234
+ }
235
+ finally { if (e_2) throw e_2.error; }
236
+ }
237
+ return hidden;
238
+ }
239
+ /**
240
+ * A table's persisted sort levels — `<sortState><sortCondition ref
241
+ * descending sortBy dxfId iconSet iconId customList/></sortState>` — as
242
+ * range-relative `SortSpecs` (the inverse of the exporter's
243
+ * `buildTableSortStateXml`). A colour level's `dxfId` resolves through
244
+ * `resolveDxfColor` (skipped when the caller has no dxf table).
245
+ */
246
+ export function createSortSpecsFromSortState(sortState, range, resolveDxfColor) {
247
+ var e_3, _a;
248
+ var _b, _c, _d;
249
+ var raw = (_b = sortState === null || sortState === void 0 ? void 0 : sortState.sortCondition) !== null && _b !== void 0 ? _b : sortState === null || sortState === void 0 ? void 0 : sortState["x:sortCondition"];
250
+ if (!raw)
251
+ return [];
252
+ var conditions = Array.isArray(raw) ? raw : [raw];
253
+ var specs = [];
254
+ try {
255
+ for (var conditions_1 = __values(conditions), conditions_1_1 = conditions_1.next(); !conditions_1_1.done; conditions_1_1 = conditions_1.next()) {
256
+ var condition = conditions_1_1.value;
257
+ var attrs = (_c = condition === null || condition === void 0 ? void 0 : condition.a$) !== null && _c !== void 0 ? _c : {};
258
+ var conditionRange = attrs.ref
259
+ ? getRangeFromAddressRef(String(attrs.ref))
260
+ : undefined;
261
+ if (!conditionRange)
262
+ continue;
263
+ var dimensionIndex = conditionRange.startColumnIndex - range.startColumnIndex;
264
+ if (dimensionIndex < 0)
265
+ continue;
266
+ var spec = {
267
+ dimensionIndex: dimensionIndex,
268
+ sortOrder: attrs.descending === "1" || attrs.descending === "true"
269
+ ? "DESCENDING"
270
+ : "ASCENDING",
271
+ };
272
+ var sortBy = attrs.sortBy;
273
+ if (sortBy === "cellColor" || sortBy === "fontColor") {
274
+ spec.sortBy = sortBy;
275
+ var dxfId = parseInt(String(attrs.dxfId), 10);
276
+ var color = Number.isFinite(dxfId)
277
+ ? resolveDxfColor === null || resolveDxfColor === void 0 ? void 0 : resolveDxfColor(dxfId, sortBy === "cellColor")
278
+ : undefined;
279
+ if (color)
280
+ spec.sortColor = color;
281
+ }
282
+ else if (sortBy === "icon" && typeof attrs.iconSet === "string") {
283
+ var iconId = parseInt(String((_d = attrs.iconId) !== null && _d !== void 0 ? _d : 0), 10);
284
+ spec.sortBy = "icon";
285
+ spec.sortIcon = {
286
+ iconSet: attrs.iconSet,
287
+ iconId: Number.isFinite(iconId) ? iconId : 0,
288
+ };
289
+ }
290
+ if (typeof attrs.customList === "string" && attrs.customList.length) {
291
+ spec.customList = attrs.customList.split(",");
292
+ }
293
+ specs.push(spec);
294
+ }
295
+ }
296
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
297
+ finally {
298
+ try {
299
+ if (conditions_1_1 && !conditions_1_1.done && (_a = conditions_1.return)) _a.call(conditions_1);
300
+ }
301
+ finally { if (e_3) throw e_3.error; }
302
+ }
303
+ return specs;
304
+ }
191
305
  /**
192
306
  * Reads an Excel file and extracts sheet metadata
193
307
  */
@@ -1,4 +1,4 @@
1
- import type { ConditionalFormatRule, DataValidationRuleRecord, EmbeddedChart, NamedRange, ProtectedRange, Sheet, Slicer, SpreadsheetTheme, TableView } from "@rowsncolumns/spreadsheet";
1
+ import type { ConditionalFormatRule, DataValidationRuleRecord, EmbeddedChart, NamedRange, ProtectedRange, Sheet, Slicer, SpreadsheetTheme, TableView, CustomTableStyle } from "@rowsncolumns/spreadsheet";
2
2
  import type { CommentThread, IterativeCalculationOptions, NamedCellStyle, TextFormat, TextFormatRun } from "@rowsncolumns/common-types";
3
3
  import type { EmbeddedObjectWithPosition, ExternalLink, ProcessSheetDataForSheetOptions, ProcessSheetDataResult, SheetCatalogEntry, WorkbookProperties } from "./types";
4
4
  export interface IWorkbookPlugin {
@@ -62,6 +62,8 @@ export interface IWorkbookPlugin {
62
62
  * Workbook named cell styles (`<cellStyles>`) resolved to cell formats.
63
63
  */
64
64
  getNamedCellStyles?(): NamedCellStyle[];
65
+ /** Custom `<tableStyle>`s resolved to banding — the `customTableStyles` facet (#668 T-103). */
66
+ getCustomTableStyles?(): CustomTableStyle[];
65
67
  /**
66
68
  * Get the workbook default font (styles.xml fonts[0]) when the source
67
69
  * format has one; null/undefined otherwise.
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../excel-parser/interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../excel-parser/interface.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/ods/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/ods/index.ts"],"names":[],"mappings":"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"}