@simplysm/excel 14.0.99 → 14.0.101

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 (184) hide show
  1. package/dist/biff/biff-model-factory.d.ts +32 -0
  2. package/dist/biff/biff-model-factory.d.ts.map +1 -0
  3. package/dist/biff/biff-model-factory.js +88 -0
  4. package/dist/biff/biff-model-factory.js.map +1 -0
  5. package/dist/biff/biff-ptg.d.ts +14 -0
  6. package/dist/biff/biff-ptg.d.ts.map +1 -0
  7. package/dist/biff/biff-ptg.js +277 -0
  8. package/dist/biff/biff-ptg.js.map +1 -0
  9. package/dist/biff/biff-records.d.ts +163 -0
  10. package/dist/biff/biff-records.d.ts.map +1 -0
  11. package/dist/biff/biff-records.js +579 -0
  12. package/dist/biff/biff-records.js.map +1 -0
  13. package/dist/biff/biff-shared-string-model.d.ts +13 -0
  14. package/dist/biff/biff-shared-string-model.d.ts.map +1 -0
  15. package/dist/biff/biff-shared-string-model.js +41 -0
  16. package/dist/biff/biff-shared-string-model.js.map +1 -0
  17. package/dist/biff/biff-style-model.d.ts +39 -0
  18. package/dist/biff/biff-style-model.d.ts.map +1 -0
  19. package/dist/biff/biff-style-model.js +182 -0
  20. package/dist/biff/biff-style-model.js.map +1 -0
  21. package/dist/biff/biff-workbook-model.d.ts +17 -0
  22. package/dist/biff/biff-workbook-model.d.ts.map +1 -0
  23. package/dist/biff/biff-workbook-model.js +64 -0
  24. package/dist/biff/biff-workbook-model.js.map +1 -0
  25. package/dist/biff/biff-worksheet-model.d.ts +69 -0
  26. package/dist/biff/biff-worksheet-model.d.ts.map +1 -0
  27. package/dist/biff/biff-worksheet-model.js +495 -0
  28. package/dist/biff/biff-worksheet-model.js.map +1 -0
  29. package/dist/biff/biff12-codec.d.ts +149 -0
  30. package/dist/biff/biff12-codec.d.ts.map +1 -0
  31. package/dist/biff/biff12-codec.js +262 -0
  32. package/dist/biff/biff12-codec.js.map +1 -0
  33. package/dist/excel-cell.d.ts +0 -6
  34. package/dist/excel-cell.d.ts.map +1 -1
  35. package/dist/excel-cell.js +2 -24
  36. package/dist/excel-cell.js.map +1 -1
  37. package/dist/excel-col.js.map +1 -1
  38. package/dist/excel-row.js.map +1 -1
  39. package/dist/excel-workbook.d.ts +4 -21
  40. package/dist/excel-workbook.d.ts.map +1 -1
  41. package/dist/excel-workbook.js +16 -49
  42. package/dist/excel-workbook.js.map +1 -1
  43. package/dist/excel-worksheet.d.ts +0 -11
  44. package/dist/excel-worksheet.d.ts.map +1 -1
  45. package/dist/excel-worksheet.js +9 -46
  46. package/dist/excel-worksheet.js.map +1 -1
  47. package/dist/excel-wrapper.d.ts +0 -10
  48. package/dist/excel-wrapper.d.ts.map +1 -1
  49. package/dist/excel-wrapper.js +0 -10
  50. package/dist/excel-wrapper.js.map +1 -1
  51. package/dist/models/excel-format.d.ts +3 -0
  52. package/dist/models/excel-format.d.ts.map +1 -0
  53. package/dist/models/excel-format.js +2 -0
  54. package/dist/models/excel-format.js.map +1 -0
  55. package/dist/models/excel-model-factory.d.ts +33 -0
  56. package/dist/models/excel-model-factory.d.ts.map +1 -0
  57. package/dist/models/excel-model-factory.js +2 -0
  58. package/dist/models/excel-model-factory.js.map +1 -0
  59. package/dist/models/excel-model.d.ts +12 -0
  60. package/dist/models/excel-model.d.ts.map +1 -0
  61. package/dist/models/excel-model.js +2 -0
  62. package/dist/models/excel-model.js.map +1 -0
  63. package/dist/models/i-content-type-model.d.ts +7 -0
  64. package/dist/models/i-content-type-model.d.ts.map +1 -0
  65. package/dist/models/i-content-type-model.js +2 -0
  66. package/dist/models/i-content-type-model.js.map +1 -0
  67. package/dist/models/i-drawing-model.d.ts +23 -0
  68. package/dist/models/i-drawing-model.d.ts.map +1 -0
  69. package/dist/models/i-drawing-model.js +2 -0
  70. package/dist/models/i-drawing-model.js.map +1 -0
  71. package/dist/models/i-relationship-model.d.ts +16 -0
  72. package/dist/models/i-relationship-model.d.ts.map +1 -0
  73. package/dist/models/i-relationship-model.js +2 -0
  74. package/dist/models/i-relationship-model.js.map +1 -0
  75. package/dist/models/i-shared-string-model.d.ts +9 -0
  76. package/dist/models/i-shared-string-model.d.ts.map +1 -0
  77. package/dist/models/i-shared-string-model.js +2 -0
  78. package/dist/models/i-shared-string-model.js.map +1 -0
  79. package/dist/models/i-style-model.d.ts +18 -0
  80. package/dist/models/i-style-model.d.ts.map +1 -0
  81. package/dist/models/i-style-model.js +2 -0
  82. package/dist/models/i-style-model.js.map +1 -0
  83. package/dist/models/i-workbook-model.d.ts +17 -0
  84. package/dist/models/i-workbook-model.d.ts.map +1 -0
  85. package/dist/models/i-workbook-model.js +2 -0
  86. package/dist/models/i-workbook-model.js.map +1 -0
  87. package/dist/models/i-worksheet-model.d.ts +39 -0
  88. package/dist/models/i-worksheet-model.d.ts.map +1 -0
  89. package/dist/models/i-worksheet-model.js +2 -0
  90. package/dist/models/i-worksheet-model.js.map +1 -0
  91. package/dist/models/shared/excel-cf-spec.d.ts +13 -0
  92. package/dist/models/shared/excel-cf-spec.d.ts.map +1 -0
  93. package/dist/models/shared/excel-cf-spec.js +2 -0
  94. package/dist/models/shared/excel-cf-spec.js.map +1 -0
  95. package/dist/models/shared/excel-style.d.ts +24 -0
  96. package/dist/models/shared/excel-style.d.ts.map +1 -0
  97. package/dist/models/shared/excel-style.js +38 -0
  98. package/dist/models/shared/excel-style.js.map +1 -0
  99. package/dist/types.d.ts +0 -13
  100. package/dist/types.d.ts.map +1 -1
  101. package/dist/types.js.map +1 -1
  102. package/dist/utils/excel-style-data.d.ts +3 -5
  103. package/dist/utils/excel-style-data.d.ts.map +1 -1
  104. package/dist/utils/excel-style-data.js +2 -16
  105. package/dist/utils/excel-style-data.js.map +1 -1
  106. package/dist/utils/zip-cache.d.ts +46 -9
  107. package/dist/utils/zip-cache.d.ts.map +1 -1
  108. package/dist/utils/zip-cache.js +138 -52
  109. package/dist/utils/zip-cache.js.map +1 -1
  110. package/dist/xml/excel-xml-content-type.d.ts +8 -4
  111. package/dist/xml/excel-xml-content-type.d.ts.map +1 -1
  112. package/dist/xml/excel-xml-content-type.js +13 -6
  113. package/dist/xml/excel-xml-content-type.js.map +1 -1
  114. package/dist/xml/excel-xml-drawing.d.ts +8 -4
  115. package/dist/xml/excel-xml-drawing.d.ts.map +1 -1
  116. package/dist/xml/excel-xml-drawing.js +14 -7
  117. package/dist/xml/excel-xml-drawing.js.map +1 -1
  118. package/dist/xml/excel-xml-relationship.d.ts +12 -4
  119. package/dist/xml/excel-xml-relationship.d.ts.map +1 -1
  120. package/dist/xml/excel-xml-relationship.js +22 -12
  121. package/dist/xml/excel-xml-relationship.js.map +1 -1
  122. package/dist/xml/excel-xml-shared-string.d.ts +8 -4
  123. package/dist/xml/excel-xml-shared-string.d.ts.map +1 -1
  124. package/dist/xml/excel-xml-shared-string.js +16 -9
  125. package/dist/xml/excel-xml-shared-string.js.map +1 -1
  126. package/dist/xml/excel-xml-style.d.ts +11 -22
  127. package/dist/xml/excel-xml-style.d.ts.map +1 -1
  128. package/dist/xml/excel-xml-style.js +66 -92
  129. package/dist/xml/excel-xml-style.js.map +1 -1
  130. package/dist/xml/excel-xml-unknown.d.ts +6 -5
  131. package/dist/xml/excel-xml-unknown.d.ts.map +1 -1
  132. package/dist/xml/excel-xml-unknown.js +7 -4
  133. package/dist/xml/excel-xml-unknown.js.map +1 -1
  134. package/dist/xml/excel-xml-workbook.d.ts +9 -4
  135. package/dist/xml/excel-xml-workbook.d.ts.map +1 -1
  136. package/dist/xml/excel-xml-workbook.js +28 -20
  137. package/dist/xml/excel-xml-workbook.js.map +1 -1
  138. package/dist/xml/excel-xml-worksheet.d.ts +12 -7
  139. package/dist/xml/excel-xml-worksheet.d.ts.map +1 -1
  140. package/dist/xml/excel-xml-worksheet.js +65 -50
  141. package/dist/xml/excel-xml-worksheet.js.map +1 -1
  142. package/dist/xml/xml-model-factory.d.ts +25 -0
  143. package/dist/xml/xml-model-factory.d.ts.map +1 -0
  144. package/dist/xml/xml-model-factory.js +66 -0
  145. package/dist/xml/xml-model-factory.js.map +1 -0
  146. package/package.json +2 -2
  147. package/src/biff/biff-model-factory.ts +101 -0
  148. package/src/biff/biff-ptg.ts +289 -0
  149. package/src/biff/biff-records.ts +686 -0
  150. package/src/biff/biff-shared-string-model.ts +52 -0
  151. package/src/biff/biff-style-model.ts +219 -0
  152. package/src/biff/biff-workbook-model.ts +83 -0
  153. package/src/biff/biff-worksheet-model.ts +545 -0
  154. package/src/biff/biff12-codec.ts +286 -0
  155. package/src/excel-cell.ts +12 -46
  156. package/src/excel-col.ts +3 -3
  157. package/src/excel-row.ts +3 -3
  158. package/src/excel-workbook.ts +26 -69
  159. package/src/excel-worksheet.ts +36 -107
  160. package/src/excel-wrapper.ts +0 -10
  161. package/src/models/excel-format.ts +2 -0
  162. package/src/models/excel-model-factory.ts +33 -0
  163. package/src/models/excel-model.ts +12 -0
  164. package/src/models/i-content-type-model.ts +7 -0
  165. package/src/models/i-drawing-model.ts +13 -0
  166. package/src/models/i-relationship-model.ts +13 -0
  167. package/src/models/i-shared-string-model.ts +9 -0
  168. package/src/models/i-style-model.ts +18 -0
  169. package/src/models/i-workbook-model.ts +17 -0
  170. package/src/models/i-worksheet-model.ts +40 -0
  171. package/src/models/shared/excel-cf-spec.ts +24 -0
  172. package/src/models/shared/excel-style.ts +65 -0
  173. package/src/types.ts +0 -13
  174. package/src/utils/excel-style-data.ts +4 -25
  175. package/src/utils/zip-cache.ts +189 -58
  176. package/src/xml/excel-xml-content-type.ts +18 -8
  177. package/src/xml/excel-xml-drawing.ts +19 -9
  178. package/src/xml/excel-xml-relationship.ts +28 -14
  179. package/src/xml/excel-xml-shared-string.ts +20 -11
  180. package/src/xml/excel-xml-style.ts +74 -116
  181. package/src/xml/excel-xml-unknown.ts +8 -4
  182. package/src/xml/excel-xml-workbook.ts +34 -22
  183. package/src/xml/excel-xml-worksheet.ts +73 -53
  184. package/src/xml/xml-model-factory.ts +83 -0
@@ -1,82 +1,168 @@
1
- import { ZipArchive, xml as xmlU } from "@simplysm/core-common";
2
- import { ExcelXmlContentType } from "../xml/excel-xml-content-type.js";
3
- import { ExcelXmlDrawing } from "../xml/excel-xml-drawing.js";
4
- import { ExcelXmlRelationship } from "../xml/excel-xml-relationship.js";
5
- import { ExcelXmlSharedString } from "../xml/excel-xml-shared-string.js";
6
- import { ExcelXmlStyle } from "../xml/excel-xml-style.js";
7
- import { ExcelXmlUnknown } from "../xml/excel-xml-unknown.js";
8
- import { ExcelXmlWorkbook } from "../xml/excel-xml-workbook.js";
9
- import { ExcelXmlWorksheet } from "../xml/excel-xml-worksheet.js";
1
+ import { ZipArchive } from "@simplysm/core-common";
2
+ import { BiffModelFactory } from "../biff/biff-model-factory.js";
3
+ import { XmlModelFactory } from "../xml/xml-model-factory.js";
10
4
  /**
11
5
  * Excel ZIP 아카이브의 파일 캐시를 관리하는 클래스.
12
- * XML 파일은 ExcelXml 객체로 파싱하고, 기타 파일은 바이트 배열로 캐싱한다.
6
+ * 모델 파트는 포맷별 팩토리로 파싱/직렬화하고, 기타 파일(media 등)은 바이트 배열로 캐싱한다.
13
7
  *
14
8
  * @remarks
15
- * ## Lazy Loading 캐시 전략
9
+ * ## 포맷 판별·경로 정규화
16
10
  *
17
- * - 파일은 최초 접근 시에만 ZIP에서 읽고 파싱함
18
- * - 이후 접근은 캐싱된 객체를 반환함
19
- * - 대용량 Excel 파일에서 필요한 부분만 로드하여 메모리 효율적
11
+ * 기존 파일은 `xl/workbook.bin` 존재 여부로 xlsx/xlsb 1회 판별한다(없으면 xlsx).
12
+ * 상위 레이어는 `xl/workbook.xml` 같은 OOXML(.xml) 경로를 사용하므로, xlsb 워크북에서는
13
+ * 이를 `.bin` 경로로 정규화하여 상위 레이어가 포맷을 모르게 한다.
14
+ *
15
+ * ## Lazy Loading
16
+ *
17
+ * 파일은 최초 접근 시에만 ZIP 에서 읽고 파싱하며, 이후 접근은 캐싱된 객체를 반환한다.
20
18
  */
21
19
  export class ZipCache {
22
20
  _cache = new Map();
23
21
  _zip;
24
- constructor(arg) {
22
+ _factory;
23
+ constructor(arg, format) {
25
24
  this._zip = new ZipArchive(arg);
25
+ if (format != null) {
26
+ this._factory = format === "xlsb" ? new BiffModelFactory() : new XmlModelFactory();
27
+ }
28
+ }
29
+ /** 워크북 포맷. 미판별 시 xlsx 로 간주. */
30
+ get format() {
31
+ return (this._factory ??= new XmlModelFactory()).format;
32
+ }
33
+ /** 기존 파일 포맷을 1회 판별해 팩토리 확정 (async). */
34
+ async _resolveFactory() {
35
+ if (this._factory == null) {
36
+ const isXlsb = (await this._zip.get("xl/workbook.bin")) != null;
37
+ this._factory = isXlsb ? new BiffModelFactory() : new XmlModelFactory();
38
+ }
39
+ return this._factory;
40
+ }
41
+ /** 새(빈) 워크북의 동기 생성 경로용 팩토리. 빈 워크북은 xlsx 로 본다. */
42
+ get _syncFactory() {
43
+ return (this._factory ??= new XmlModelFactory());
44
+ }
45
+ /** 상위 레이어의 .xml 고정 경로를 xlsb 의 실제 .bin 경로로 정규화. */
46
+ _resolvePath(filePath) {
47
+ if (this._factory?.format !== "xlsb")
48
+ return filePath;
49
+ switch (filePath) {
50
+ case "xl/workbook.xml":
51
+ return "xl/workbook.bin";
52
+ case "xl/sharedStrings.xml":
53
+ return "xl/sharedStrings.bin";
54
+ case "xl/styles.xml":
55
+ return "xl/styles.bin";
56
+ case "xl/_rels/workbook.xml.rels":
57
+ return "xl/_rels/workbook.bin.rels";
58
+ default: {
59
+ const m = /^(xl\/worksheets\/_rels\/sheet\d+)\.xml\.rels$/.exec(filePath);
60
+ return m != null ? `${m[1]}.bin.rels` : filePath;
61
+ }
62
+ }
26
63
  }
27
64
  async get(filePath) {
28
- if (this._cache.has(filePath)) {
29
- return this._cache.get(filePath);
65
+ const factory = await this._resolveFactory();
66
+ const path = this._resolvePath(filePath);
67
+ if (this._cache.has(path)) {
68
+ return this._cache.get(path);
30
69
  }
31
- const fileData = await this._zip.get(filePath);
70
+ const fileData = await this._zip.get(path);
32
71
  if (fileData == null) {
33
- this._cache.set(filePath, undefined);
72
+ this._cache.set(path, undefined);
34
73
  return undefined;
35
74
  }
36
- if (filePath.endsWith(".xml") || filePath.endsWith(".rels")) {
37
- const fileText = new TextDecoder().decode(fileData);
38
- const xml = xmlU.parse(fileText, { stripTagPrefix: true });
39
- if (filePath.endsWith(".rels")) {
40
- this._cache.set(filePath, new ExcelXmlRelationship(xml));
41
- }
42
- else if (filePath === "[Content_Types].xml") {
43
- this._cache.set(filePath, new ExcelXmlContentType(xml));
44
- }
45
- else if (filePath === "xl/workbook.xml") {
46
- this._cache.set(filePath, new ExcelXmlWorkbook(xml));
47
- }
48
- else if (filePath.startsWith("xl/worksheets/sheet") && filePath.endsWith(".xml")) {
49
- this._cache.set(filePath, new ExcelXmlWorksheet(xml));
50
- }
51
- else if (filePath.startsWith("xl/drawings/drawing") && filePath.endsWith(".xml")) {
52
- this._cache.set(filePath, new ExcelXmlDrawing(xml));
53
- }
54
- else if (filePath === "xl/sharedStrings.xml") {
55
- this._cache.set(filePath, new ExcelXmlSharedString(xml));
56
- }
57
- else if (filePath === "xl/styles.xml") {
58
- this._cache.set(filePath, new ExcelXmlStyle(xml));
59
- }
60
- else {
61
- this._cache.set(filePath, new ExcelXmlUnknown(xml));
62
- }
75
+ if (factory.isModelPart(path)) {
76
+ this._cache.set(path, factory.parse(path, fileData));
63
77
  }
64
78
  else {
65
- this._cache.set(filePath, fileData);
79
+ this._cache.set(path, fileData);
66
80
  }
67
- return this._cache.get(filePath);
81
+ return this._cache.get(path);
68
82
  }
69
83
  set(filePath, content) {
70
- this._cache.set(filePath, content);
84
+ this._cache.set(this._resolvePath(filePath), content);
85
+ }
86
+ //#region Factory Delegation (빈 모델 생성)
87
+ createWorkbook() {
88
+ return this._syncFactory.createWorkbook();
89
+ }
90
+ createWorksheet() {
91
+ return this._syncFactory.createWorksheet();
92
+ }
93
+ createStyle() {
94
+ return this._syncFactory.createStyle();
95
+ }
96
+ createSharedString() {
97
+ return this._syncFactory.createSharedString();
98
+ }
99
+ createContentType() {
100
+ return this._syncFactory.createContentType();
101
+ }
102
+ createRelationship() {
103
+ return this._syncFactory.createRelationship();
104
+ }
105
+ createDrawing() {
106
+ return this._syncFactory.createDrawing();
107
+ }
108
+ //#endregion
109
+ //#region Part 등록 (포맷별 content-type·rel·part 생성)
110
+ /**
111
+ * 워크시트 파트를 등록한다. content-type override, workbook rels, 빈 worksheet 모델을 포맷에 맞게 생성하고
112
+ * worksheet 파일명(`sheetN.xml` | `sheetN.bin`)을 반환한다.
113
+ */
114
+ async registerWorksheet(relId) {
115
+ const xlsb = this.format === "xlsb";
116
+ const fileName = `sheet${relId}.${xlsb ? "bin" : "xml"}`;
117
+ const typeXml = (await this.get("[Content_Types].xml"));
118
+ typeXml.add(`/xl/worksheets/${fileName}`, xlsb
119
+ ? "application/vnd.ms-excel.worksheet"
120
+ : "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml");
121
+ const wbRel = (await this.get("xl/_rels/workbook.xml.rels"));
122
+ wbRel.insert(relId, `worksheets/${fileName}`, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet");
123
+ this.set(`xl/worksheets/${fileName}`, this.createWorksheet());
124
+ return fileName;
125
+ }
126
+ /** sharedStrings 파트를 보장(없으면 생성+등록)하고 모델을 반환한다. */
127
+ async ensureSharedStrings() {
128
+ let ss = (await this.get("xl/sharedStrings.xml"));
129
+ if (ss == null) {
130
+ const xlsb = this.format === "xlsb";
131
+ ss = this.createSharedString();
132
+ this.set("xl/sharedStrings.xml", ss);
133
+ const typeXml = (await this.get("[Content_Types].xml"));
134
+ typeXml.add(`/xl/sharedStrings.${xlsb ? "bin" : "xml"}`, xlsb
135
+ ? "application/vnd.ms-excel.sharedStrings"
136
+ : "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml");
137
+ const wbRel = (await this.get("xl/_rels/workbook.xml.rels"));
138
+ wbRel.add(`sharedStrings.${xlsb ? "bin" : "xml"}`, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings");
139
+ }
140
+ return ss;
141
+ }
142
+ /** styles 파트를 보장(없으면 생성+등록)하고 모델을 반환한다. */
143
+ async ensureStyles() {
144
+ let st = (await this.get("xl/styles.xml"));
145
+ if (st == null) {
146
+ const xlsb = this.format === "xlsb";
147
+ st = this.createStyle();
148
+ this.set("xl/styles.xml", st);
149
+ const typeXml = (await this.get("[Content_Types].xml"));
150
+ typeXml.add(`/xl/styles.${xlsb ? "bin" : "xml"}`, xlsb
151
+ ? "application/vnd.ms-excel.styles"
152
+ : "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml");
153
+ const wbRel = (await this.get("xl/_rels/workbook.xml.rels"));
154
+ wbRel.add(`styles.${xlsb ? "bin" : "xml"}`, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles");
155
+ }
156
+ return st;
71
157
  }
158
+ //#endregion
72
159
  async toBytes() {
73
160
  for (const filePath of this._cache.keys()) {
74
161
  const content = this._cache.get(filePath);
75
162
  if (content == null)
76
163
  continue;
77
- if ("cleanup" in content) {
78
- content.cleanup();
79
- this._zip.write(filePath, new TextEncoder().encode(xmlU.stringify(content.data)));
164
+ if ("serialize" in content) {
165
+ this._zip.write(filePath, content.serialize());
80
166
  }
81
167
  else {
82
168
  this._zip.write(filePath, content);
@@ -1 +1 @@
1
- {"version":3,"file":"zip-cache.js","sourceRoot":"","sources":["../../src/utils/zip-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zip-cache.js","sourceRoot":"","sources":["../../src/utils/zip-cache.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,16 @@
1
- import type { ExcelXml, ExcelXmlContentTypeData } from "../types";
1
+ import type { Bytes } from "@simplysm/core-common";
2
+ import type { IContentTypeModel } from "../models/i-content-type-model";
3
+ import type { ExcelXmlContentTypeData } from "../types";
2
4
  /**
3
5
  * [Content_Types].xml을 관리하는 클래스.
4
6
  * 파일별 MIME 타입 정보를 관리한다.
5
7
  */
6
- export declare class ExcelXmlContentType implements ExcelXml {
7
- data: ExcelXmlContentTypeData;
8
+ export declare class ExcelXmlContentType implements IContentTypeModel {
9
+ private readonly _data;
8
10
  constructor(data?: ExcelXmlContentTypeData);
11
+ /** @internal 테스트·디버그용 내부 트리 접근. 상위 레이어는 인터페이스만 사용. */
12
+ get data(): ExcelXmlContentTypeData;
9
13
  add(partName: string, contentType: string): this;
10
- cleanup(): void;
14
+ serialize(): Bytes;
11
15
  }
12
16
  //# sourceMappingURL=excel-xml-content-type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"excel-xml-content-type.d.ts","sourceRoot":"","sources":["../../src/xml/excel-xml-content-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAElE;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,QAAQ;IAClD,IAAI,EAAE,uBAAuB,CAAC;gBAElB,IAAI,CAAC,EAAE,uBAAuB;IAqC1C,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAiBhD,OAAO,IAAI,IAAI;CAChB"}
1
+ {"version":3,"file":"excel-xml-content-type.d.ts","sourceRoot":"","sources":["../../src/xml/excel-xml-content-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAExD;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,iBAAiB;IAC3D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;gBAEpC,IAAI,CAAC,EAAE,uBAAuB;IAqC1C,sDAAsD;IACtD,IAAI,IAAI,IAAI,uBAAuB,CAElC;IAED,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAiBhD,SAAS,IAAI,KAAK;CAGnB"}
@@ -1,12 +1,13 @@
1
+ import { xml as xmlU } from "@simplysm/core-common";
1
2
  /**
2
3
  * [Content_Types].xml을 관리하는 클래스.
3
4
  * 파일별 MIME 타입 정보를 관리한다.
4
5
  */
5
6
  export class ExcelXmlContentType {
6
- data;
7
+ _data;
7
8
  constructor(data) {
8
9
  if (data == null) {
9
- this.data = {
10
+ this._data = {
10
11
  Types: {
11
12
  $: {
12
13
  xmlns: "http://schemas.openxmlformats.org/package/2006/content-types",
@@ -37,16 +38,20 @@ export class ExcelXmlContentType {
37
38
  };
38
39
  }
39
40
  else {
40
- this.data = data;
41
+ this._data = data;
41
42
  }
42
43
  }
44
+ /** @internal 테스트·디버그용 내부 트리 접근. 상위 레이어는 인터페이스만 사용. */
45
+ get data() {
46
+ return this._data;
47
+ }
43
48
  add(partName, contentType) {
44
49
  // 중복 검사
45
- const exists = this.data.Types.Override.some((item) => item.$.PartName === partName);
50
+ const exists = this._data.Types.Override.some((item) => item.$.PartName === partName);
46
51
  if (exists) {
47
52
  return this;
48
53
  }
49
- this.data.Types.Override.push({
54
+ this._data.Types.Override.push({
50
55
  $: {
51
56
  PartName: partName,
52
57
  ContentType: contentType,
@@ -54,6 +59,8 @@ export class ExcelXmlContentType {
54
59
  });
55
60
  return this;
56
61
  }
57
- cleanup() { }
62
+ serialize() {
63
+ return new TextEncoder().encode(xmlU.stringify(this._data));
64
+ }
58
65
  }
59
66
  //# sourceMappingURL=excel-xml-content-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"excel-xml-content-type.js","sourceRoot":"","sources":["../../src/xml/excel-xml-content-type.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IAC9B,IAAI,CAA0B;IAE9B,YAAY,IAA8B;QACxC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG;gBACV,KAAK,EAAE;oBACL,CAAC,EAAE;wBACD,KAAK,EAAE,8DAA8D;qBACtE;oBACD,OAAO,EAAE;wBACP;4BACE,CAAC,EAAE;gCACD,SAAS,EAAE,MAAM;gCACjB,WAAW,EAAE,0DAA0D;6BACxE;yBACF;wBACD;4BACE,CAAC,EAAE;gCACD,SAAS,EAAE,KAAK;gCAChB,WAAW,EAAE,iBAAiB;6BAC/B;yBACF;qBACF;oBACD,QAAQ,EAAE;wBACR;4BACE,CAAC,EAAE;gCACD,QAAQ,EAAE,kBAAkB;gCAC5B,WAAW,EACT,4EAA4E;6BAC/E;yBACF;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,CAAC;IACH,CAAC;IAED,GAAG,CAAC,QAAgB,EAAE,WAAmB;QACvC,QAAQ;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QACrF,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC5B,CAAC,EAAE;gBACD,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,WAAW;aACzB;SACF,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAU,CAAC;CACnB"}
1
+ {"version":3,"file":"excel-xml-content-type.js","sourceRoot":"","sources":["../../src/xml/excel-xml-content-type.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAIpD;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IACb,KAAK,CAA0B;IAEhD,YAAY,IAA8B;QACxC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,GAAG;gBACX,KAAK,EAAE;oBACL,CAAC,EAAE;wBACD,KAAK,EAAE,8DAA8D;qBACtE;oBACD,OAAO,EAAE;wBACP;4BACE,CAAC,EAAE;gCACD,SAAS,EAAE,MAAM;gCACjB,WAAW,EAAE,0DAA0D;6BACxE;yBACF;wBACD;4BACE,CAAC,EAAE;gCACD,SAAS,EAAE,KAAK;gCAChB,WAAW,EAAE,iBAAiB;6BAC/B;yBACF;qBACF;oBACD,QAAQ,EAAE;wBACR;4BACE,CAAC,EAAE;gCACD,QAAQ,EAAE,kBAAkB;gCAC5B,WAAW,EACT,4EAA4E;6BAC/E;yBACF;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,GAAG,CAAC,QAAgB,EAAE,WAAmB;QACvC,QAAQ;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QACtF,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC7B,CAAC,EAAE;gBACD,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,WAAW;aACzB;SACF,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS;QACP,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC;CACF"}
@@ -1,11 +1,15 @@
1
- import type { ExcelXml, ExcelXmlDrawingData } from "../types";
1
+ import type { Bytes } from "@simplysm/core-common";
2
+ import type { IDrawingModel } from "../models/i-drawing-model";
3
+ import type { ExcelXmlDrawingData } from "../types";
2
4
  /**
3
5
  * xl/drawings/drawing*.xml 파일을 관리하는 클래스.
4
6
  * 이미지 삽입을 위한 위치 및 참조 정보를 처리한다.
5
7
  */
6
- export declare class ExcelXmlDrawing implements ExcelXml {
7
- data: ExcelXmlDrawingData;
8
+ export declare class ExcelXmlDrawing implements IDrawingModel {
9
+ private readonly _data;
8
10
  constructor(data?: ExcelXmlDrawingData);
11
+ /** @internal 테스트·디버그용 내부 트리 접근. 상위 레이어는 인터페이스만 사용. */
12
+ get data(): ExcelXmlDrawingData;
9
13
  addPicture(opts: {
10
14
  from: {
11
15
  r: number;
@@ -21,6 +25,6 @@ export declare class ExcelXmlDrawing implements ExcelXml {
21
25
  };
22
26
  blipRelId: string;
23
27
  }): void;
24
- cleanup(): void;
28
+ serialize(): Bytes;
25
29
  }
26
30
  //# sourceMappingURL=excel-xml-drawing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"excel-xml-drawing.d.ts","sourceRoot":"","sources":["../../src/xml/excel-xml-drawing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE9D;;;GAGG;AACH,qBAAa,eAAgB,YAAW,QAAQ;IAC9C,IAAI,EAAE,mBAAmB,CAAC;gBAEd,IAAI,CAAC,EAAE,mBAAmB;IAiBtC,UAAU,CAAC,IAAI,EAAE;QACf,IAAI,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QAC/E,EAAE,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QAC7E,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,IAAI;IAuDR,OAAO,IAAI,IAAI;CAChB"}
1
+ {"version":3,"file":"excel-xml-drawing.d.ts","sourceRoot":"","sources":["../../src/xml/excel-xml-drawing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD;;;GAGG;AACH,qBAAa,eAAgB,YAAW,aAAa;IACnD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;gBAEhC,IAAI,CAAC,EAAE,mBAAmB;IAiBtC,sDAAsD;IACtD,IAAI,IAAI,IAAI,mBAAmB,CAE9B;IAED,UAAU,CAAC,IAAI,EAAE;QACf,IAAI,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QAC/E,EAAE,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QAC7E,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,IAAI;IAuDR,SAAS,IAAI,KAAK;CAGnB"}
@@ -1,12 +1,13 @@
1
+ import { xml as xmlU } from "@simplysm/core-common";
1
2
  /**
2
3
  * xl/drawings/drawing*.xml 파일을 관리하는 클래스.
3
4
  * 이미지 삽입을 위한 위치 및 참조 정보를 처리한다.
4
5
  */
5
6
  export class ExcelXmlDrawing {
6
- data;
7
+ _data;
7
8
  constructor(data) {
8
9
  if (data == null) {
9
- this.data = {
10
+ this._data = {
10
11
  wsDr: {
11
12
  $: {
12
13
  "xmlns": "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing",
@@ -18,15 +19,19 @@ export class ExcelXmlDrawing {
18
19
  };
19
20
  }
20
21
  else {
21
- this.data = data;
22
+ this._data = data;
22
23
  }
23
24
  }
25
+ /** @internal 테스트·디버그용 내부 트리 접근. 상위 레이어는 인터페이스만 사용. */
26
+ get data() {
27
+ return this._data;
28
+ }
24
29
  addPicture(opts) {
25
- this.data.wsDr.twoCellAnchor = this.data.wsDr.twoCellAnchor ?? [];
26
- const anchors = this.data.wsDr.twoCellAnchor;
30
+ this._data.wsDr.twoCellAnchor = this._data.wsDr.twoCellAnchor ?? [];
31
+ const anchors = this._data.wsDr.twoCellAnchor;
27
32
  const picId = anchors.length + 1;
28
33
  const name = `Picture ${picId}`;
29
- this.data.wsDr.twoCellAnchor.push({
34
+ this._data.wsDr.twoCellAnchor.push({
30
35
  from: [
31
36
  {
32
37
  col: [opts.from.c.toString()],
@@ -73,6 +78,8 @@ export class ExcelXmlDrawing {
73
78
  clientData: [{}],
74
79
  });
75
80
  }
76
- cleanup() { }
81
+ serialize() {
82
+ return new TextEncoder().encode(xmlU.stringify(this._data));
83
+ }
77
84
  }
78
85
  //# sourceMappingURL=excel-xml-drawing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"excel-xml-drawing.js","sourceRoot":"","sources":["../../src/xml/excel-xml-drawing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"excel-xml-drawing.js","sourceRoot":"","sources":["../../src/xml/excel-xml-drawing.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,25 @@
1
1
  import "@simplysm/core-common";
2
- import type { ExcelXml, ExcelXmlRelationshipData } from "../types";
2
+ import type { Bytes } from "@simplysm/core-common";
3
+ import type { IRelationshipModel } from "../models/i-relationship-model";
4
+ import type { ExcelXmlRelationshipData } from "../types";
3
5
  /**
4
6
  * *.rels 파일을 관리하는 클래스.
5
7
  * 파일 간의 참조 관계를 처리한다.
6
8
  */
7
- export declare class ExcelXmlRelationship implements ExcelXml {
8
- data: ExcelXmlRelationshipData;
9
+ export declare class ExcelXmlRelationship implements IRelationshipModel {
10
+ private readonly _data;
9
11
  constructor(data?: ExcelXmlRelationshipData);
12
+ /** @internal 테스트·디버그용 내부 트리 접근. 상위 레이어는 인터페이스만 사용. */
13
+ get data(): ExcelXmlRelationshipData;
10
14
  getTargetByRelId(rId: number): string | undefined;
11
15
  add(target: string, type: string): this;
12
16
  addAndGetId(target: string, type: string): number;
13
17
  insert(rId: number, target: string, type: string): this;
14
- cleanup(): void;
18
+ findRelByType(type: string): {
19
+ relId: string;
20
+ target: string;
21
+ } | undefined;
22
+ serialize(): Bytes;
15
23
  private get _lastId();
16
24
  private _getRelId;
17
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"excel-xml-relationship.d.ts","sourceRoot":"","sources":["../../src/xml/excel-xml-relationship.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAyB,QAAQ,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAE1F;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,QAAQ;IACnD,IAAI,EAAE,wBAAwB,CAAC;gBAEnB,IAAI,CAAC,EAAE,wBAAwB;IAc3C,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKjD,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAKvC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAgBjD,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAqBvD,OAAO,IAAI,IAAI;IAEf,OAAO,KAAK,OAAO,GAKlB;IAED,OAAO,CAAC,SAAS;CAOlB"}
1
+ {"version":3,"file":"excel-xml-relationship.d.ts","sourceRoot":"","sources":["../../src/xml/excel-xml-relationship.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,EAAyB,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAEhF;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,kBAAkB;IAC7D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2B;gBAErC,IAAI,CAAC,EAAE,wBAAwB;IAc3C,sDAAsD;IACtD,IAAI,IAAI,IAAI,wBAAwB,CAEnC;IAED,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKjD,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAKvC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAgBjD,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAqBvD,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;IAK1E,SAAS,IAAI,KAAK;IAIlB,OAAO,KAAK,OAAO,GAKlB;IAED,OAAO,CAAC,SAAS;CAOlB"}
@@ -1,14 +1,14 @@
1
1
  import "@simplysm/core-common";
2
- import { num } from "@simplysm/core-common";
2
+ import { num, xml as xmlU } from "@simplysm/core-common";
3
3
  /**
4
4
  * *.rels 파일을 관리하는 클래스.
5
5
  * 파일 간의 참조 관계를 처리한다.
6
6
  */
7
7
  export class ExcelXmlRelationship {
8
- data;
8
+ _data;
9
9
  constructor(data) {
10
10
  if (data == null) {
11
- this.data = {
11
+ this._data = {
12
12
  Relationships: {
13
13
  $: {
14
14
  xmlns: "http://schemas.openxmlformats.org/package/2006/relationships",
@@ -17,11 +17,15 @@ export class ExcelXmlRelationship {
17
17
  };
18
18
  }
19
19
  else {
20
- this.data = data;
20
+ this._data = data;
21
21
  }
22
22
  }
23
+ /** @internal 테스트·디버그용 내부 트리 접근. 상위 레이어는 인터페이스만 사용. */
24
+ get data() {
25
+ return this._data;
26
+ }
23
27
  getTargetByRelId(rId) {
24
- return (this.data.Relationships.Relationship ?? []).single((rel) => this._getRelId(rel) === rId)
28
+ return (this._data.Relationships.Relationship ?? []).single((rel) => this._getRelId(rel) === rId)
25
29
  ?.$.Target;
26
30
  }
27
31
  add(target, type) {
@@ -29,9 +33,9 @@ export class ExcelXmlRelationship {
29
33
  return this;
30
34
  }
31
35
  addAndGetId(target, type) {
32
- this.data.Relationships.Relationship = this.data.Relationships.Relationship ?? [];
36
+ this._data.Relationships.Relationship = this._data.Relationships.Relationship ?? [];
33
37
  const newId = (this._lastId ?? 0) + 1;
34
- this.data.Relationships.Relationship.push({
38
+ this._data.Relationships.Relationship.push({
35
39
  $: {
36
40
  Id: `rId${newId}`,
37
41
  Target: target,
@@ -41,12 +45,12 @@ export class ExcelXmlRelationship {
41
45
  return newId;
42
46
  }
43
47
  insert(rId, target, type) {
44
- this.data.Relationships.Relationship = this.data.Relationships.Relationship ?? [];
45
- const shiftRels = this.data.Relationships.Relationship.filter((rel) => this._getRelId(rel) >= rId);
48
+ this._data.Relationships.Relationship = this._data.Relationships.Relationship ?? [];
49
+ const shiftRels = this._data.Relationships.Relationship.filter((rel) => this._getRelId(rel) >= rId);
46
50
  for (const shiftRel of shiftRels) {
47
51
  shiftRel.$.Id = `rId${this._getRelId(shiftRel) + 1}`;
48
52
  }
49
- this.data.Relationships.Relationship.push({
53
+ this._data.Relationships.Relationship.push({
50
54
  $: {
51
55
  Id: `rId${rId}`,
52
56
  Target: target,
@@ -55,9 +59,15 @@ export class ExcelXmlRelationship {
55
59
  });
56
60
  return this;
57
61
  }
58
- cleanup() { }
62
+ findRelByType(type) {
63
+ const rel = (this._data.Relationships.Relationship ?? []).find((r) => r.$.Type === type);
64
+ return rel != null ? { relId: rel.$.Id, target: rel.$.Target } : undefined;
65
+ }
66
+ serialize() {
67
+ return new TextEncoder().encode(xmlU.stringify(this._data));
68
+ }
59
69
  get _lastId() {
60
- const rels = this.data.Relationships.Relationship;
70
+ const rels = this._data.Relationships.Relationship;
61
71
  if (!rels || rels.length === 0)
62
72
  return undefined;
63
73
  const maxRel = rels.orderByDesc((rel) => this._getRelId(rel)).first();
@@ -1 +1 @@
1
- {"version":3,"file":"excel-xml-relationship.js","sourceRoot":"","sources":["../../src/xml/excel-xml-relationship.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"excel-xml-relationship.js","sourceRoot":"","sources":["../../src/xml/excel-xml-relationship.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAIzD;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IACd,KAAK,CAA2B;IAEjD,YAAY,IAA+B;QACzC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,GAAG;gBACX,aAAa,EAAE;oBACb,CAAC,EAAE;wBACD,KAAK,EAAE,8DAA8D;qBACtE;iBACF;aACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,gBAAgB,CAAC,GAAW;QAC1B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;YAC/F,EAAE,CAAC,CAAC,MAAM,CAAC;IACf,CAAC;IAED,GAAG,CAAC,MAAc,EAAE,IAAY;QAC9B,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,MAAc,EAAE,IAAY;QACtC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,IAAI,EAAE,CAAC;QAEpF,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAEtC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC;YACzC,CAAC,EAAE;gBACD,EAAE,EAAE,MAAM,KAAK,EAAE;gBACjB,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI;aACX;SACF,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,GAAW,EAAE,MAAc,EAAE,IAAY;QAC9C,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,IAAI,EAAE,CAAC;QAEpF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAC5D,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,CACpC,CAAC;QACF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC;YACzC,CAAC,EAAE;gBACD,EAAE,EAAE,MAAM,GAAG,EAAE;gBACf,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI;aACX;SACF,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACzF,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,CAAC;IAED,SAAS;QACP,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAY,OAAO;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC;QACnD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACtE,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,CAAC;IAEO,SAAS,CAAC,GAA0B;QAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -1,17 +1,21 @@
1
- import type { ExcelXml, ExcelXmlSharedStringData } from "../types";
1
+ import type { Bytes } from "@simplysm/core-common";
2
+ import type { ISharedStringModel } from "../models/i-shared-string-model";
3
+ import type { ExcelXmlSharedStringData } from "../types";
2
4
  import "@simplysm/core-common";
3
5
  /**
4
6
  * xl/sharedStrings.xml을 관리하는 클래스.
5
7
  * 문자열 중복을 방지하여 파일 크기를 최적화한다.
6
8
  */
7
- export declare class ExcelXmlSharedString implements ExcelXml {
8
- data: ExcelXmlSharedStringData;
9
+ export declare class ExcelXmlSharedString implements ISharedStringModel {
10
+ private readonly _data;
9
11
  private readonly _stringIndexesMap;
10
12
  constructor(data?: ExcelXmlSharedStringData);
13
+ /** @internal 테스트·디버그용 내부 트리 접근. 상위 레이어는 인터페이스만 사용. */
14
+ get data(): ExcelXmlSharedStringData;
11
15
  getIdByString(str: string): number | undefined;
12
16
  getStringById(id: number): string | undefined;
13
17
  add(str: string): number;
14
- cleanup(): void;
18
+ serialize(): Bytes;
15
19
  private _getStringFromSiTag;
16
20
  private _getStringFromTTag;
17
21
  private _getHasInnerStyleOnSiTag;
@@ -1 +1 @@
1
- {"version":3,"file":"excel-xml-shared-string.d.ts","sourceRoot":"","sources":["../../src/xml/excel-xml-shared-string.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,wBAAwB,EAGzB,MAAM,UAAU,CAAC;AAClB,OAAO,uBAAuB,CAAC;AAE/B;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,QAAQ;IACnD,IAAI,EAAE,wBAAwB,CAAC;IAE/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;gBAE9C,IAAI,CAAC,EAAE,wBAAwB;IAwB3C,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI9C,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAK7C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAQxB,OAAO,IAAI,IAAI;IAEf,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,wBAAwB;CAGjC"}
1
+ {"version":3,"file":"excel-xml-shared-string.d.ts","sourceRoot":"","sources":["../../src/xml/excel-xml-shared-string.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EACV,wBAAwB,EAGzB,MAAM,UAAU,CAAC;AAClB,OAAO,uBAAuB,CAAC;AAE/B;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,kBAAkB;IAC7D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2B;IAEjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;gBAE9C,IAAI,CAAC,EAAE,wBAAwB;IAwB3C,sDAAsD;IACtD,IAAI,IAAI,IAAI,wBAAwB,CAEnC;IAED,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI9C,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAK7C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAQxB,SAAS,IAAI,KAAK;IAIlB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,wBAAwB;CAGjC"}