@usejunior/docx-core 0.14.0 → 0.16.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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/generation/index.d.ts +0 -1
- package/dist/generation/index.d.ts.map +1 -1
- package/dist/generation/index.js +0 -1
- package/dist/generation/index.js.map +1 -1
- package/dist/index.d.ts +7 -25
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -47
- package/dist/index.js.map +1 -1
- package/dist/primitives/accept_ai_edits.d.ts +87 -0
- package/dist/primitives/accept_ai_edits.d.ts.map +1 -0
- package/dist/primitives/accept_ai_edits.js +253 -0
- package/dist/primitives/accept_ai_edits.js.map +1 -0
- package/dist/primitives/accept_changes.d.ts +13 -1
- package/dist/primitives/accept_changes.d.ts.map +1 -1
- package/dist/primitives/accept_changes.js +44 -29
- package/dist/primitives/accept_changes.js.map +1 -1
- package/dist/primitives/document.d.ts +51 -0
- package/dist/primitives/document.d.ts.map +1 -1
- package/dist/primitives/document.js +144 -1
- package/dist/primitives/document.js.map +1 -1
- package/dist/primitives/index.d.ts +1 -0
- package/dist/primitives/index.d.ts.map +1 -1
- package/dist/primitives/index.js +1 -0
- package/dist/primitives/index.js.map +1 -1
- package/dist/primitives/reject_changes.d.ts +4 -1
- package/dist/primitives/reject_changes.d.ts.map +1 -1
- package/dist/primitives/reject_changes.js +54 -30
- package/dist/primitives/reject_changes.js.map +1 -1
- package/dist/primitives/relationships.d.ts +33 -0
- package/dist/primitives/relationships.d.ts.map +1 -1
- package/dist/primitives/relationships.js +84 -1
- package/dist/primitives/relationships.js.map +1 -1
- package/package.json +8 -9
- package/dist/atomizer.d.ts +0 -273
- package/dist/atomizer.d.ts.map +0 -1
- package/dist/atomizer.js +0 -1002
- package/dist/atomizer.js.map +0 -1
- package/dist/baselines/atomizer/atomLcs.d.ts +0 -82
- package/dist/baselines/atomizer/atomLcs.d.ts.map +0 -1
- package/dist/baselines/atomizer/atomLcs.js +0 -376
- package/dist/baselines/atomizer/atomLcs.js.map +0 -1
- package/dist/baselines/atomizer/auxiliaryIdCollision.d.ts +0 -99
- package/dist/baselines/atomizer/auxiliaryIdCollision.d.ts.map +0 -1
- package/dist/baselines/atomizer/auxiliaryIdCollision.js +0 -415
- package/dist/baselines/atomizer/auxiliaryIdCollision.js.map +0 -1
- package/dist/baselines/atomizer/consumerCompatibility.d.ts +0 -2
- package/dist/baselines/atomizer/consumerCompatibility.d.ts.map +0 -1
- package/dist/baselines/atomizer/consumerCompatibility.js +0 -188
- package/dist/baselines/atomizer/consumerCompatibility.js.map +0 -1
- package/dist/baselines/atomizer/debug.d.ts +0 -41
- package/dist/baselines/atomizer/debug.d.ts.map +0 -1
- package/dist/baselines/atomizer/debug.js +0 -85
- package/dist/baselines/atomizer/debug.js.map +0 -1
- package/dist/baselines/atomizer/documentReconstructor.d.ts +0 -75
- package/dist/baselines/atomizer/documentReconstructor.d.ts.map +0 -1
- package/dist/baselines/atomizer/documentReconstructor.js +0 -1449
- package/dist/baselines/atomizer/documentReconstructor.js.map +0 -1
- package/dist/baselines/atomizer/formattingFidelity.d.ts +0 -99
- package/dist/baselines/atomizer/formattingFidelity.d.ts.map +0 -1
- package/dist/baselines/atomizer/formattingFidelity.js +0 -449
- package/dist/baselines/atomizer/formattingFidelity.js.map +0 -1
- package/dist/baselines/atomizer/hierarchicalLcs.d.ts +0 -121
- package/dist/baselines/atomizer/hierarchicalLcs.d.ts.map +0 -1
- package/dist/baselines/atomizer/hierarchicalLcs.js +0 -753
- package/dist/baselines/atomizer/hierarchicalLcs.js.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-bookmarks.d.ts +0 -37
- package/dist/baselines/atomizer/inPlaceModifier-bookmarks.d.ts.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-bookmarks.js +0 -189
- package/dist/baselines/atomizer/inPlaceModifier-bookmarks.js.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-containers.d.ts +0 -74
- package/dist/baselines/atomizer/inPlaceModifier-containers.d.ts.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-containers.js +0 -171
- package/dist/baselines/atomizer/inPlaceModifier-containers.js.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-deletion.d.ts +0 -88
- package/dist/baselines/atomizer/inPlaceModifier-deletion.d.ts.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-deletion.js +0 -326
- package/dist/baselines/atomizer/inPlaceModifier-deletion.js.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-postprocess.d.ts +0 -85
- package/dist/baselines/atomizer/inPlaceModifier-postprocess.d.ts.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-postprocess.js +0 -402
- package/dist/baselines/atomizer/inPlaceModifier-postprocess.js.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-presplit.d.ts +0 -39
- package/dist/baselines/atomizer/inPlaceModifier-presplit.d.ts.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-presplit.js +0 -265
- package/dist/baselines/atomizer/inPlaceModifier-presplit.js.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-shared.d.ts +0 -62
- package/dist/baselines/atomizer/inPlaceModifier-shared.d.ts.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-shared.js +0 -139
- package/dist/baselines/atomizer/inPlaceModifier-shared.js.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-wrappers.d.ts +0 -198
- package/dist/baselines/atomizer/inPlaceModifier-wrappers.d.ts.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier-wrappers.js +0 -475
- package/dist/baselines/atomizer/inPlaceModifier-wrappers.js.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier.d.ts +0 -27
- package/dist/baselines/atomizer/inPlaceModifier.d.ts.map +0 -1
- package/dist/baselines/atomizer/inPlaceModifier.js +0 -648
- package/dist/baselines/atomizer/inPlaceModifier.js.map +0 -1
- package/dist/baselines/atomizer/numberingIntegration.d.ts +0 -59
- package/dist/baselines/atomizer/numberingIntegration.d.ts.map +0 -1
- package/dist/baselines/atomizer/numberingIntegration.js +0 -209
- package/dist/baselines/atomizer/numberingIntegration.js.map +0 -1
- package/dist/baselines/atomizer/pipeline.d.ts +0 -103
- package/dist/baselines/atomizer/pipeline.d.ts.map +0 -1
- package/dist/baselines/atomizer/pipeline.js +0 -1160
- package/dist/baselines/atomizer/pipeline.js.map +0 -1
- package/dist/baselines/atomizer/premergeRuns.d.ts +0 -26
- package/dist/baselines/atomizer/premergeRuns.d.ts.map +0 -1
- package/dist/baselines/atomizer/premergeRuns.js +0 -153
- package/dist/baselines/atomizer/premergeRuns.js.map +0 -1
- package/dist/baselines/atomizer/trackChangesAcceptor.d.ts +0 -63
- package/dist/baselines/atomizer/trackChangesAcceptor.d.ts.map +0 -1
- package/dist/baselines/atomizer/trackChangesAcceptor.js +0 -254
- package/dist/baselines/atomizer/trackChangesAcceptor.js.map +0 -1
- package/dist/baselines/atomizer/trackChangesAcceptorAst.d.ts +0 -64
- package/dist/baselines/atomizer/trackChangesAcceptorAst.d.ts.map +0 -1
- package/dist/baselines/atomizer/trackChangesAcceptorAst.js +0 -642
- package/dist/baselines/atomizer/trackChangesAcceptorAst.js.map +0 -1
- package/dist/baselines/atomizer/xmlToWmlElement.d.ts +0 -65
- package/dist/baselines/atomizer/xmlToWmlElement.d.ts.map +0 -1
- package/dist/baselines/atomizer/xmlToWmlElement.js +0 -96
- package/dist/baselines/atomizer/xmlToWmlElement.js.map +0 -1
- package/dist/baselines/wmlcomparer/DocxodusWasm.d.ts +0 -51
- package/dist/baselines/wmlcomparer/DocxodusWasm.d.ts.map +0 -1
- package/dist/baselines/wmlcomparer/DocxodusWasm.js +0 -83
- package/dist/baselines/wmlcomparer/DocxodusWasm.js.map +0 -1
- package/dist/baselines/wmlcomparer/DotnetCli.d.ts +0 -40
- package/dist/baselines/wmlcomparer/DotnetCli.d.ts.map +0 -1
- package/dist/baselines/wmlcomparer/DotnetCli.js +0 -142
- package/dist/baselines/wmlcomparer/DotnetCli.js.map +0 -1
- package/dist/cli/compare-two.d.ts +0 -28
- package/dist/cli/compare-two.d.ts.map +0 -1
- package/dist/cli/compare-two.js +0 -112
- package/dist/cli/compare-two.js.map +0 -1
- package/dist/cli/index.d.ts +0 -3
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -25
- package/dist/cli/index.js.map +0 -1
- package/dist/compare-types.d.ts +0 -197
- package/dist/compare-types.d.ts.map +0 -1
- package/dist/compare-types.js +0 -2
- package/dist/compare-types.js.map +0 -1
- package/dist/format-detection.d.ts +0 -120
- package/dist/format-detection.d.ts.map +0 -1
- package/dist/format-detection.js +0 -339
- package/dist/format-detection.js.map +0 -1
- package/dist/generation/recipes.d.ts +0 -144
- package/dist/generation/recipes.d.ts.map +0 -1
- package/dist/generation/recipes.js +0 -358
- package/dist/generation/recipes.js.map +0 -1
- package/dist/move-detection.d.ts +0 -211
- package/dist/move-detection.d.ts.map +0 -1
- package/dist/move-detection.js +0 -390
- package/dist/move-detection.js.map +0 -1
package/dist/atomizer.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"atomizer.js","sourceRoot":"","sources":["../src/atomizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LCS Algorithm for Atoms
|
|
3
|
-
*
|
|
4
|
-
* Implements hash-based Longest Common Subsequence (LCS) algorithm
|
|
5
|
-
* for comparing arrays of ComparisonUnitAtom.
|
|
6
|
-
*/
|
|
7
|
-
import type { ComparisonUnitAtom } from '../../core-types.js';
|
|
8
|
-
/**
|
|
9
|
-
* Represents a match between atoms in original and revised documents.
|
|
10
|
-
*/
|
|
11
|
-
export interface AtomMatch {
|
|
12
|
-
/** Index in the original atom array */
|
|
13
|
-
originalIndex: number;
|
|
14
|
-
/** Index in the revised atom array */
|
|
15
|
-
revisedIndex: number;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Result of the LCS comparison.
|
|
19
|
-
*/
|
|
20
|
-
export interface LcsResult {
|
|
21
|
-
/** Matched atom pairs (in LCS) */
|
|
22
|
-
matches: AtomMatch[];
|
|
23
|
-
/** Indices of atoms only in original (deleted) */
|
|
24
|
-
deletedIndices: number[];
|
|
25
|
-
/** Indices of atoms only in revised (inserted) */
|
|
26
|
-
insertedIndices: number[];
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Compute the Longest Common Subsequence of two atom arrays.
|
|
30
|
-
*
|
|
31
|
-
* Uses hash-based comparison for O(1) equality checks.
|
|
32
|
-
* Time complexity: O(N * M) where N and M are array lengths.
|
|
33
|
-
*
|
|
34
|
-
* @param original - Atoms from the original document
|
|
35
|
-
* @param revised - Atoms from the revised document
|
|
36
|
-
* @returns LCS result with matches and differences
|
|
37
|
-
*/
|
|
38
|
-
export declare function computeAtomLcs(original: ComparisonUnitAtom[], revised: ComparisonUnitAtom[]): LcsResult;
|
|
39
|
-
/**
|
|
40
|
-
* Mark correlation status on atoms based on LCS result.
|
|
41
|
-
*
|
|
42
|
-
* Sets atoms to Equal, Deleted, or Inserted status.
|
|
43
|
-
* Also links matched atoms via comparisonUnitAtomBefore reference.
|
|
44
|
-
*
|
|
45
|
-
* @param original - Atoms from the original document
|
|
46
|
-
* @param revised - Atoms from the revised document
|
|
47
|
-
* @param lcsResult - Result from computeAtomLcs
|
|
48
|
-
*/
|
|
49
|
-
export declare function markCorrelationStatus(original: ComparisonUnitAtom[], revised: ComparisonUnitAtom[], lcsResult: LcsResult): void;
|
|
50
|
-
/**
|
|
51
|
-
* Create a merged atom list for document reconstruction.
|
|
52
|
-
*
|
|
53
|
-
* Interleaves original and revised atoms in document order,
|
|
54
|
-
* preserving the structure needed for track changes rendering.
|
|
55
|
-
*
|
|
56
|
-
* @param original - Atoms from the original document (with status marked)
|
|
57
|
-
* @param revised - Atoms from the revised document (with status marked)
|
|
58
|
-
* @param lcsResult - Result from computeAtomLcs
|
|
59
|
-
* @returns Merged atom list in document order
|
|
60
|
-
*/
|
|
61
|
-
export declare function createMergedAtomList(original: ComparisonUnitAtom[], revised: ComparisonUnitAtom[], lcsResult: LcsResult): ComparisonUnitAtom[];
|
|
62
|
-
export declare function assignUnifiedParagraphIndices(original: ComparisonUnitAtom[], revised: ComparisonUnitAtom[], merged: ComparisonUnitAtom[], lcsResult: LcsResult): void;
|
|
63
|
-
/**
|
|
64
|
-
* Statistics from the LCS comparison.
|
|
65
|
-
*/
|
|
66
|
-
export interface LcsStats {
|
|
67
|
-
/** Number of atoms that are equal */
|
|
68
|
-
equal: number;
|
|
69
|
-
/** Number of atoms deleted from original */
|
|
70
|
-
deleted: number;
|
|
71
|
-
/** Number of atoms inserted in revised */
|
|
72
|
-
inserted: number;
|
|
73
|
-
/** Total atoms in original */
|
|
74
|
-
originalCount: number;
|
|
75
|
-
/** Total atoms in revised */
|
|
76
|
-
revisedCount: number;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Compute statistics from LCS result.
|
|
80
|
-
*/
|
|
81
|
-
export declare function computeLcsStats(original: ComparisonUnitAtom[], revised: ComparisonUnitAtom[], lcsResult: LcsResult): LcsStats;
|
|
82
|
-
//# sourceMappingURL=atomLcs.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"atomLcs.d.ts","sourceRoot":"","sources":["../../../src/baselines/atomizer/atomLcs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAK9D;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,kCAAkC;IAClC,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,kDAAkD;IAClD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,kDAAkD;IAClD,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,OAAO,EAAE,kBAAkB,EAAE,GAC5B,SAAS,CAwDX;AA8BD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,OAAO,EAAE,kBAAkB,EAAE,EAC7B,SAAS,EAAE,SAAS,GACnB,IAAI,CAsBN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,OAAO,EAAE,kBAAkB,EAAE,EAC7B,SAAS,EAAE,SAAS,GACnB,kBAAkB,EAAE,CAmFtB;AAwCD,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,OAAO,EAAE,kBAAkB,EAAE,EAC7B,MAAM,EAAE,kBAAkB,EAAE,EAC5B,SAAS,EAAE,SAAS,GACnB,IAAI,CAmHN;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,OAAO,EAAE,kBAAkB,EAAE,EAC7B,SAAS,EAAE,SAAS,GACnB,QAAQ,CAQV"}
|
|
@@ -1,376 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LCS Algorithm for Atoms
|
|
3
|
-
*
|
|
4
|
-
* Implements hash-based Longest Common Subsequence (LCS) algorithm
|
|
5
|
-
* for comparing arrays of ComparisonUnitAtom.
|
|
6
|
-
*/
|
|
7
|
-
import { CorrelationStatus } from '../../core-types.js';
|
|
8
|
-
import { EMPTY_PARAGRAPH_TAG } from '../../atomizer.js';
|
|
9
|
-
import { debug } from './debug.js';
|
|
10
|
-
/**
|
|
11
|
-
* Compute the Longest Common Subsequence of two atom arrays.
|
|
12
|
-
*
|
|
13
|
-
* Uses hash-based comparison for O(1) equality checks.
|
|
14
|
-
* Time complexity: O(N * M) where N and M are array lengths.
|
|
15
|
-
*
|
|
16
|
-
* @param original - Atoms from the original document
|
|
17
|
-
* @param revised - Atoms from the revised document
|
|
18
|
-
* @returns LCS result with matches and differences
|
|
19
|
-
*/
|
|
20
|
-
export function computeAtomLcs(original, revised) {
|
|
21
|
-
const n = original.length;
|
|
22
|
-
const m = revised.length;
|
|
23
|
-
// Build LCS length table
|
|
24
|
-
// dp[i][j] = length of LCS of original[0..i-1] and revised[0..j-1]
|
|
25
|
-
const dp = Array(n + 1)
|
|
26
|
-
.fill(null)
|
|
27
|
-
.map(() => Array(m + 1).fill(0));
|
|
28
|
-
for (let i = 1; i <= n; i++) {
|
|
29
|
-
for (let j = 1; j <= m; j++) {
|
|
30
|
-
if (atomsEqual(original[i - 1], revised[j - 1])) {
|
|
31
|
-
dp[i][j] = dp[i - 1][j - 1] + 1;
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
// Backtrack to find the actual LCS matches
|
|
39
|
-
const matches = [];
|
|
40
|
-
let i = n;
|
|
41
|
-
let j = m;
|
|
42
|
-
while (i > 0 && j > 0) {
|
|
43
|
-
if (atomsEqual(original[i - 1], revised[j - 1])) {
|
|
44
|
-
matches.unshift({ originalIndex: i - 1, revisedIndex: j - 1 });
|
|
45
|
-
i--;
|
|
46
|
-
j--;
|
|
47
|
-
}
|
|
48
|
-
else if (dp[i - 1][j] > dp[i][j - 1]) {
|
|
49
|
-
i--;
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
j--;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
// Find deleted and inserted indices
|
|
56
|
-
const matchedOriginal = new Set(matches.map((m) => m.originalIndex));
|
|
57
|
-
const matchedRevised = new Set(matches.map((m) => m.revisedIndex));
|
|
58
|
-
const deletedIndices = [];
|
|
59
|
-
for (let idx = 0; idx < n; idx++) {
|
|
60
|
-
if (!matchedOriginal.has(idx)) {
|
|
61
|
-
deletedIndices.push(idx);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
const insertedIndices = [];
|
|
65
|
-
for (let idx = 0; idx < m; idx++) {
|
|
66
|
-
if (!matchedRevised.has(idx)) {
|
|
67
|
-
insertedIndices.push(idx);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return { matches, deletedIndices, insertedIndices };
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Check if two atoms are equal based on their hash.
|
|
74
|
-
*
|
|
75
|
-
* For more precise comparison, we also check the text content
|
|
76
|
-
* and ancestor context to avoid false positives from hash collisions.
|
|
77
|
-
*/
|
|
78
|
-
function atomsEqual(a, b) {
|
|
79
|
-
// First check hash for quick rejection
|
|
80
|
-
if (a.sha1Hash !== b.sha1Hash) {
|
|
81
|
-
return false;
|
|
82
|
-
}
|
|
83
|
-
// Same hash - verify content to avoid collisions
|
|
84
|
-
const aText = a.contentElement.textContent ?? '';
|
|
85
|
-
const bText = b.contentElement.textContent ?? '';
|
|
86
|
-
if (aText !== bText) {
|
|
87
|
-
return false;
|
|
88
|
-
}
|
|
89
|
-
// Check tag name
|
|
90
|
-
if (a.contentElement.tagName !== b.contentElement.tagName) {
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
93
|
-
return true;
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Mark correlation status on atoms based on LCS result.
|
|
97
|
-
*
|
|
98
|
-
* Sets atoms to Equal, Deleted, or Inserted status.
|
|
99
|
-
* Also links matched atoms via comparisonUnitAtomBefore reference.
|
|
100
|
-
*
|
|
101
|
-
* @param original - Atoms from the original document
|
|
102
|
-
* @param revised - Atoms from the revised document
|
|
103
|
-
* @param lcsResult - Result from computeAtomLcs
|
|
104
|
-
*/
|
|
105
|
-
export function markCorrelationStatus(original, revised, lcsResult) {
|
|
106
|
-
// Mark matched atoms as Equal and link them
|
|
107
|
-
for (const match of lcsResult.matches) {
|
|
108
|
-
const origAtom = original[match.originalIndex];
|
|
109
|
-
const revAtom = revised[match.revisedIndex];
|
|
110
|
-
origAtom.correlationStatus = CorrelationStatus.Equal;
|
|
111
|
-
revAtom.correlationStatus = CorrelationStatus.Equal;
|
|
112
|
-
// Link revised atom to original for format change detection
|
|
113
|
-
revAtom.comparisonUnitAtomBefore = origAtom;
|
|
114
|
-
}
|
|
115
|
-
// Mark deleted atoms
|
|
116
|
-
for (const idx of lcsResult.deletedIndices) {
|
|
117
|
-
original[idx].correlationStatus = CorrelationStatus.Deleted;
|
|
118
|
-
}
|
|
119
|
-
// Mark inserted atoms
|
|
120
|
-
for (const idx of lcsResult.insertedIndices) {
|
|
121
|
-
revised[idx].correlationStatus = CorrelationStatus.Inserted;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Create a merged atom list for document reconstruction.
|
|
126
|
-
*
|
|
127
|
-
* Interleaves original and revised atoms in document order,
|
|
128
|
-
* preserving the structure needed for track changes rendering.
|
|
129
|
-
*
|
|
130
|
-
* @param original - Atoms from the original document (with status marked)
|
|
131
|
-
* @param revised - Atoms from the revised document (with status marked)
|
|
132
|
-
* @param lcsResult - Result from computeAtomLcs
|
|
133
|
-
* @returns Merged atom list in document order
|
|
134
|
-
*/
|
|
135
|
-
export function createMergedAtomList(original, revised, lcsResult) {
|
|
136
|
-
const merged = [];
|
|
137
|
-
// Build maps for quick lookup
|
|
138
|
-
const originalToRevised = new Map();
|
|
139
|
-
const revisedToOriginal = new Map();
|
|
140
|
-
for (const match of lcsResult.matches) {
|
|
141
|
-
originalToRevised.set(match.originalIndex, match.revisedIndex);
|
|
142
|
-
revisedToOriginal.set(match.revisedIndex, match.originalIndex);
|
|
143
|
-
}
|
|
144
|
-
const deletedSet = new Set(lcsResult.deletedIndices);
|
|
145
|
-
const insertedSet = new Set(lcsResult.insertedIndices);
|
|
146
|
-
// We'll walk through the revised document order
|
|
147
|
-
// and insert deleted atoms at appropriate positions
|
|
148
|
-
let originalPtr = 0;
|
|
149
|
-
let revisedPtr = 0;
|
|
150
|
-
while (revisedPtr < revised.length || originalPtr < original.length) {
|
|
151
|
-
// First, add any deleted atoms that come before the current revised position
|
|
152
|
-
while (originalPtr < original.length && deletedSet.has(originalPtr)) {
|
|
153
|
-
const atom = original[originalPtr];
|
|
154
|
-
atom.sourceDocument = 'original';
|
|
155
|
-
merged.push(atom);
|
|
156
|
-
originalPtr++;
|
|
157
|
-
}
|
|
158
|
-
// Now handle the current revised atom
|
|
159
|
-
if (revisedPtr < revised.length) {
|
|
160
|
-
const revAtom = revised[revisedPtr];
|
|
161
|
-
if (insertedSet.has(revisedPtr)) {
|
|
162
|
-
// This is an inserted atom
|
|
163
|
-
revAtom.sourceDocument = 'revised';
|
|
164
|
-
merged.push(revAtom);
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
// This is an equal atom - advance original pointer past its match
|
|
168
|
-
const matchedOrigIdx = revisedToOriginal.get(revisedPtr);
|
|
169
|
-
if (matchedOrigIdx !== undefined) {
|
|
170
|
-
// Add any deleted atoms before this match
|
|
171
|
-
while (originalPtr < matchedOrigIdx) {
|
|
172
|
-
if (deletedSet.has(originalPtr)) {
|
|
173
|
-
const atom = original[originalPtr];
|
|
174
|
-
atom.sourceDocument = 'original';
|
|
175
|
-
merged.push(atom);
|
|
176
|
-
}
|
|
177
|
-
originalPtr++;
|
|
178
|
-
}
|
|
179
|
-
// For equal empty paragraphs, use the original version to preserve
|
|
180
|
-
// the original document's structure (important for reject all changes)
|
|
181
|
-
const origAtom = original[matchedOrigIdx];
|
|
182
|
-
if (origAtom.contentElement.tagName === EMPTY_PARAGRAPH_TAG) {
|
|
183
|
-
origAtom.sourceDocument = 'original';
|
|
184
|
-
merged.push(origAtom);
|
|
185
|
-
}
|
|
186
|
-
else {
|
|
187
|
-
// For non-empty content, use the revised version
|
|
188
|
-
revAtom.sourceDocument = 'revised';
|
|
189
|
-
merged.push(revAtom);
|
|
190
|
-
}
|
|
191
|
-
// Advance past the matched original atom
|
|
192
|
-
originalPtr = matchedOrigIdx + 1;
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
merged.push(revAtom);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
revisedPtr++;
|
|
199
|
-
}
|
|
200
|
-
else {
|
|
201
|
-
// No more revised atoms - add remaining deleted originals
|
|
202
|
-
while (originalPtr < original.length) {
|
|
203
|
-
if (deletedSet.has(originalPtr)) {
|
|
204
|
-
const atom = original[originalPtr];
|
|
205
|
-
atom.sourceDocument = 'original';
|
|
206
|
-
merged.push(atom);
|
|
207
|
-
}
|
|
208
|
-
originalPtr++;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
return merged;
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Compute unified paragraph indices for merged atoms.
|
|
216
|
-
*
|
|
217
|
-
* Maps original and revised paragraph indices to a unified output paragraph index.
|
|
218
|
-
* This ensures that:
|
|
219
|
-
* 1. Atoms from corresponding paragraphs (Equal matches) share the same output index
|
|
220
|
-
* 2. Deleted paragraphs get their own output indices interleaved with matched paragraphs
|
|
221
|
-
* 3. Inserted paragraphs get their own output indices
|
|
222
|
-
*
|
|
223
|
-
* @param original - Original atoms with paragraphIndex set
|
|
224
|
-
* @param revised - Revised atoms with paragraphIndex set
|
|
225
|
-
* @param merged - Merged atom list
|
|
226
|
-
* @param lcsResult - LCS result with matches
|
|
227
|
-
*/
|
|
228
|
-
/**
|
|
229
|
-
* Compute a container key for an atom based on its ancestor chain.
|
|
230
|
-
* For atoms inside table cells, produces a string like "w:tbl:0/w:tr:2/w:tc:1".
|
|
231
|
-
* For atoms not in tables, produces "".
|
|
232
|
-
* Used to prevent cross-cell paragraph matches in unified index assignment.
|
|
233
|
-
*/
|
|
234
|
-
function getAtomContainerKey(atom) {
|
|
235
|
-
const parts = [];
|
|
236
|
-
for (const el of atom.ancestorElements) {
|
|
237
|
-
if (el.tagName === 'w:tc' || el.tagName === 'w:tr' || el.tagName === 'w:tbl') {
|
|
238
|
-
let index = 0;
|
|
239
|
-
let sibling = el.previousSibling;
|
|
240
|
-
while (sibling) {
|
|
241
|
-
if (sibling.nodeType === 1 && sibling.tagName === el.tagName) {
|
|
242
|
-
index++;
|
|
243
|
-
}
|
|
244
|
-
sibling = sibling.previousSibling;
|
|
245
|
-
}
|
|
246
|
-
parts.push(`${el.tagName}:${index}`);
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
return parts.join('/');
|
|
250
|
-
}
|
|
251
|
-
export function assignUnifiedParagraphIndices(original, revised, merged, lcsResult) {
|
|
252
|
-
// Build paragraph correspondence from matches.
|
|
253
|
-
// Container-aware (issue #65): skip matches where atoms are in different
|
|
254
|
-
// structural containers (e.g., different table cells) to prevent empty
|
|
255
|
-
// paragraphs from matching across cell boundaries.
|
|
256
|
-
const originalToRevisedPara = new Map();
|
|
257
|
-
for (const match of lcsResult.matches) {
|
|
258
|
-
const origAtom = original[match.originalIndex];
|
|
259
|
-
const revAtom = revised[match.revisedIndex];
|
|
260
|
-
if (origAtom.paragraphIndex !== undefined && revAtom.paragraphIndex !== undefined) {
|
|
261
|
-
if (!originalToRevisedPara.has(origAtom.paragraphIndex)) {
|
|
262
|
-
// Only establish correspondence if atoms are in the same container
|
|
263
|
-
if (getAtomContainerKey(origAtom) === getAtomContainerKey(revAtom)) {
|
|
264
|
-
originalToRevisedPara.set(origAtom.paragraphIndex, revAtom.paragraphIndex);
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
// Collect all unique original paragraph indices
|
|
270
|
-
const allOriginalParas = [...new Set(original.map(a => a.paragraphIndex).filter(p => p !== undefined))];
|
|
271
|
-
allOriginalParas.sort((a, b) => a - b);
|
|
272
|
-
// Collect all unique revised paragraph indices
|
|
273
|
-
const allRevisedParas = [...new Set(revised.map(a => a.paragraphIndex).filter(p => p !== undefined))];
|
|
274
|
-
allRevisedParas.sort((a, b) => a - b);
|
|
275
|
-
// Build interleaved output index sequence
|
|
276
|
-
// Walk through original paragraphs in order, interleaving with revised paragraphs
|
|
277
|
-
const originalToOutputPara = new Map();
|
|
278
|
-
const revisedToOutputPara = new Map();
|
|
279
|
-
let nextOutputPara = 0;
|
|
280
|
-
let revisedIdx = 0;
|
|
281
|
-
for (const origPara of allOriginalParas) {
|
|
282
|
-
const correspondingRevised = originalToRevisedPara.get(origPara);
|
|
283
|
-
if (correspondingRevised !== undefined) {
|
|
284
|
-
// This original paragraph has a correspondent in revised
|
|
285
|
-
// First, assign output indices to any revised paragraphs before this correspondent
|
|
286
|
-
while (revisedIdx < allRevisedParas.length && allRevisedParas[revisedIdx] < correspondingRevised) {
|
|
287
|
-
const revPara = allRevisedParas[revisedIdx];
|
|
288
|
-
if (!revisedToOutputPara.has(revPara)) {
|
|
289
|
-
revisedToOutputPara.set(revPara, nextOutputPara++);
|
|
290
|
-
}
|
|
291
|
-
revisedIdx++;
|
|
292
|
-
}
|
|
293
|
-
// Assign the same output index to both original and revised
|
|
294
|
-
if (!revisedToOutputPara.has(correspondingRevised)) {
|
|
295
|
-
revisedToOutputPara.set(correspondingRevised, nextOutputPara);
|
|
296
|
-
originalToOutputPara.set(origPara, nextOutputPara);
|
|
297
|
-
nextOutputPara++;
|
|
298
|
-
}
|
|
299
|
-
else {
|
|
300
|
-
originalToOutputPara.set(origPara, revisedToOutputPara.get(correspondingRevised));
|
|
301
|
-
}
|
|
302
|
-
// Move past this revised paragraph
|
|
303
|
-
if (revisedIdx < allRevisedParas.length && allRevisedParas[revisedIdx] === correspondingRevised) {
|
|
304
|
-
revisedIdx++;
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
else {
|
|
308
|
-
// This original paragraph is deleted (no correspondent)
|
|
309
|
-
// Give it its own output index
|
|
310
|
-
originalToOutputPara.set(origPara, nextOutputPara++);
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
// Assign output indices to any remaining revised paragraphs (inserted)
|
|
314
|
-
while (revisedIdx < allRevisedParas.length) {
|
|
315
|
-
const revPara = allRevisedParas[revisedIdx];
|
|
316
|
-
if (!revisedToOutputPara.has(revPara)) {
|
|
317
|
-
revisedToOutputPara.set(revPara, nextOutputPara++);
|
|
318
|
-
}
|
|
319
|
-
revisedIdx++;
|
|
320
|
-
}
|
|
321
|
-
// Assign unified paragraph indices to merged atoms
|
|
322
|
-
let emptyParagraphsWithoutMapping = 0;
|
|
323
|
-
for (const atom of merged) {
|
|
324
|
-
if (atom.paragraphIndex === undefined)
|
|
325
|
-
continue;
|
|
326
|
-
const isEmptyPara = atom.contentElement.tagName === EMPTY_PARAGRAPH_TAG;
|
|
327
|
-
if (atom.correlationStatus === CorrelationStatus.Deleted ||
|
|
328
|
-
atom.correlationStatus === CorrelationStatus.MovedSource) {
|
|
329
|
-
// Deleted and MovedSource atoms have paragraph indices from original
|
|
330
|
-
const outputPara = originalToOutputPara.get(atom.paragraphIndex);
|
|
331
|
-
if (outputPara !== undefined) {
|
|
332
|
-
atom.paragraphIndex = outputPara;
|
|
333
|
-
}
|
|
334
|
-
else if (isEmptyPara) {
|
|
335
|
-
emptyParagraphsWithoutMapping++;
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
else if (atom.correlationStatus === CorrelationStatus.Equal && isEmptyPara) {
|
|
339
|
-
// Equal empty paragraphs use the original atom (see createMergedAtomList),
|
|
340
|
-
// so their paragraphIndex is from original, not revised
|
|
341
|
-
const outputPara = originalToOutputPara.get(atom.paragraphIndex);
|
|
342
|
-
if (outputPara !== undefined) {
|
|
343
|
-
atom.paragraphIndex = outputPara;
|
|
344
|
-
}
|
|
345
|
-
else {
|
|
346
|
-
emptyParagraphsWithoutMapping++;
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
else {
|
|
350
|
-
// Inserted and Equal (non-empty) atoms have paragraph indices from revised
|
|
351
|
-
const outputPara = revisedToOutputPara.get(atom.paragraphIndex);
|
|
352
|
-
if (outputPara !== undefined) {
|
|
353
|
-
atom.paragraphIndex = outputPara;
|
|
354
|
-
}
|
|
355
|
-
else if (isEmptyPara) {
|
|
356
|
-
emptyParagraphsWithoutMapping++;
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
if (emptyParagraphsWithoutMapping > 0) {
|
|
361
|
-
debug('atomLcs', `Empty paragraphs without mapping: ${emptyParagraphsWithoutMapping}`);
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
/**
|
|
365
|
-
* Compute statistics from LCS result.
|
|
366
|
-
*/
|
|
367
|
-
export function computeLcsStats(original, revised, lcsResult) {
|
|
368
|
-
return {
|
|
369
|
-
equal: lcsResult.matches.length,
|
|
370
|
-
deleted: lcsResult.deletedIndices.length,
|
|
371
|
-
inserted: lcsResult.insertedIndices.length,
|
|
372
|
-
originalCount: original.length,
|
|
373
|
-
revisedCount: revised.length,
|
|
374
|
-
};
|
|
375
|
-
}
|
|
376
|
-
//# sourceMappingURL=atomLcs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"atomLcs.js","sourceRoot":"","sources":["../../../src/baselines/atomizer/atomLcs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Auxiliary Part ID Collision Resolution
|
|
3
|
-
*
|
|
4
|
-
* Auxiliary part IDs (`w:id` on comments, footnotes, endnotes — OOXML
|
|
5
|
-
* ST_DecimalNumber) are document-local: independently authored documents
|
|
6
|
-
* routinely both start at `w:id="1"`. When the original and revised inputs
|
|
7
|
-
* define *different* content under the same ID, the post-reconstruction
|
|
8
|
-
* definition merge used to silently skip the source-side definition ("ID
|
|
9
|
-
* already present"), leaving anchors from one side bound to the other side's
|
|
10
|
-
* content.
|
|
11
|
-
*
|
|
12
|
-
* Strategy decision (issue #107 offered renumber vs. detect-and-flag): we
|
|
13
|
-
* renumber, because detect-and-flag would fail comparisons between any two
|
|
14
|
-
* independently authored commented documents — a core use case — and there is
|
|
15
|
-
* no collision-free fallback mode to flag into. Renumbering happens *before*
|
|
16
|
-
* comparison, on the revised archive, rather than inside the merge step:
|
|
17
|
-
* after reconstruction the merged document.xml no longer records which anchor
|
|
18
|
-
* came from which side, but at load time the revised archive can be rewritten
|
|
19
|
-
* consistently (part definition + every ID-bearing anchor in document.xml,
|
|
20
|
-
* header/footer parts, and the note stories — comments may be anchored on
|
|
21
|
-
* footnote/endnote text). Downstream, colliding anchors then differ by ID, so
|
|
22
|
-
* the LCS emits them as delete/insert pairs and the existing definition merge
|
|
23
|
-
* imports the renumbered definition — each anchor resolves to the content it
|
|
24
|
-
* was authored against, in both reconstruction modes.
|
|
25
|
-
*
|
|
26
|
-
* IDs whose definitions are content-identical on both sides are left alone so
|
|
27
|
-
* their anchors still match as unchanged content (no duplicate definitions),
|
|
28
|
-
* which keeps the common derived-document case byte-stable.
|
|
29
|
-
*
|
|
30
|
-
* Comment ancillary parts have a second collision axis: commentsExtended.xml
|
|
31
|
-
* and commentsIds.xml are keyed by the w14:paraId on comment-content
|
|
32
|
-
* paragraphs, not by w:id. We restamp colliding revised-side comment paraIds
|
|
33
|
-
* before comparison for the same reason: merged ancillary rows must never bind
|
|
34
|
-
* to the other document's comment paragraph.
|
|
35
|
-
*
|
|
36
|
-
* @see https://github.com/UseJunior/safe-docx/issues/107
|
|
37
|
-
* @see https://github.com/UseJunior/safe-docx/issues/448
|
|
38
|
-
*/
|
|
39
|
-
import type { DocxArchive } from '../../shared/docx/DocxArchive.js';
|
|
40
|
-
export interface AuxiliaryPartDescriptor {
|
|
41
|
-
label: string;
|
|
42
|
-
partPath: string;
|
|
43
|
-
referenceTag: string;
|
|
44
|
-
entryTag: string;
|
|
45
|
-
rootTag: string;
|
|
46
|
-
contentType: string;
|
|
47
|
-
relationshipType: string;
|
|
48
|
-
/**
|
|
49
|
-
* Every document.xml / header / footer tag that carries this part's `w:id`.
|
|
50
|
-
* Superset of `referenceTag`: comments also anchor via range markers.
|
|
51
|
-
*/
|
|
52
|
-
idBearingTags: string[];
|
|
53
|
-
}
|
|
54
|
-
export declare const AUXILIARY_PARTS: AuxiliaryPartDescriptor[];
|
|
55
|
-
/**
|
|
56
|
-
* Parse an auxiliary part and extract entry elements by ID.
|
|
57
|
-
*/
|
|
58
|
-
export declare function parseEntries(xml: string, entryTag: string): {
|
|
59
|
-
doc: Document;
|
|
60
|
-
entries: Map<string, Element>;
|
|
61
|
-
};
|
|
62
|
-
export interface RenumberedAuxiliaryId {
|
|
63
|
-
label: string;
|
|
64
|
-
fromId: string;
|
|
65
|
-
toId: string;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Detect auxiliary `w:id` values defined with different content on both
|
|
69
|
-
* sides and renumber the revised side's definitions and anchors into a fresh
|
|
70
|
-
* ID space, so the comparison never binds an anchor to the other document's
|
|
71
|
-
* content. Mutates `revisedArchive` in place; the originals' IDs are kept so
|
|
72
|
-
* the comparison base (rebuild mode clones the original archive) stays
|
|
73
|
-
* untouched.
|
|
74
|
-
*
|
|
75
|
-
* Anchors are rewritten in every revised-side story that can carry them:
|
|
76
|
-
* document.xml, header/footer parts, and the auxiliary parts themselves —
|
|
77
|
-
* Word allows comments anchored on footnote/endnote text, so a renumbered
|
|
78
|
-
* comment's anchor may live inside footnotes.xml/endnotes.xml.
|
|
79
|
-
*
|
|
80
|
-
* Returns the applied renumberings (empty on the no-collision fast path).
|
|
81
|
-
*/
|
|
82
|
-
export declare function renumberCollidingAuxiliaryIds(originalArchive: DocxArchive, revisedArchive: DocxArchive): Promise<RenumberedAuxiliaryId[]>;
|
|
83
|
-
export interface RestampedCommentParaId {
|
|
84
|
-
fromParaId: string;
|
|
85
|
-
toParaId: string;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Restamp revised-side comment paragraph paraIds when they collide with
|
|
89
|
-
* original-side comment paraIds that belong to different comment content.
|
|
90
|
-
*
|
|
91
|
-
* This pass intentionally matches literal Word prefixes (`w14`, `w15`, and
|
|
92
|
-
* `w16cid`) for both DOM lookup and raw allocation scans, consistent with the
|
|
93
|
-
* rest of this module's prefix-literal auxiliary part handling. Mutates
|
|
94
|
-
* `revisedArchive` in place and returns the applied restamps.
|
|
95
|
-
*
|
|
96
|
-
* @see https://github.com/UseJunior/safe-docx/issues/448
|
|
97
|
-
*/
|
|
98
|
-
export declare function restampCollidingCommentParaIds(originalArchive: DocxArchive, revisedArchive: DocxArchive): Promise<RestampedCommentParaId[]>;
|
|
99
|
-
//# sourceMappingURL=auxiliaryIdCollision.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auxiliaryIdCollision.d.ts","sourceRoot":"","sources":["../../../src/baselines/atomizer/auxiliaryIdCollision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAIpE,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,eAAO,MAAM,eAAe,EAAE,uBAAuB,EA+BpD,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf;IAAE,GAAG,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAUlD;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAuED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,6BAA6B,CACjD,eAAe,EAAE,WAAW,EAC5B,cAAc,EAAE,WAAW,GAC1B,OAAO,CAAC,qBAAqB,EAAE,CAAC,CA+FlC;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAuDD;;;;;;;;;;GAUG;AACH,wBAAsB,8BAA8B,CAClD,eAAe,EAAE,WAAW,EAC5B,cAAc,EAAE,WAAW,GAC1B,OAAO,CAAC,sBAAsB,EAAE,CAAC,CA8GnC"}
|