Skip to content

Commit 33e5e5c

Browse files
fix: break circular dependency between pPr and pPrChange translators
Extract base property translators into a shared module so pPrChange can reuse them without importing pPr directly.
1 parent 21464d8 commit 33e5e5c

File tree

3 files changed

+83
-77
lines changed

3 files changed

+83
-77
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
// @ts-check
2+
import { translator as mcAlternateContentTranslator } from '../../mc/altermateContent';
3+
import { translator as wAdjustRightIndTranslator } from '../adjustRightInd';
4+
import { translator as wAutoSpaceDETranslator } from '../autoSpaceDE';
5+
import { translator as wAutoSpaceDNTranslator } from '../autoSpaceDN';
6+
import { translator as wBidiTranslator } from '../bidi';
7+
import { translator as wCnfStyleTranslator } from '../cnfStyle';
8+
import { translator as wContextualSpacingTranslator } from '../contextualSpacing';
9+
import { translator as wDivIdTranslator } from '../divId';
10+
import { translator as wFramePrTranslator } from '../framePr';
11+
import { translator as wIndTranslator } from '../ind';
12+
import { translator as wJcTranslatorTranslator } from '../jc';
13+
import { translator as wKeepLinesTranslator } from '../keepLines';
14+
import { translator as wKeepNextTranslator } from '../keepNext';
15+
import { translator as wKinsokuTranslator } from '../kinsoku';
16+
import { translator as wMirrorIndentsTranslator } from '../mirrorIndents';
17+
import { translator as wNumPrTranslator } from '../numPr';
18+
import { translator as wOutlineLvlTranslator } from '../outlineLvl';
19+
import { translator as wOverflowPunctTranslator } from '../overflowPunct';
20+
import { translator as wPBdrTranslator } from '../pBdr';
21+
import { translator as wPStyleTranslator } from '../pStyle';
22+
import { translator as wPageBreakBeforeTranslator } from '../pageBreakBefore';
23+
import { translator as wShdTranslator } from '../shd';
24+
import { translator as wSnapToGridTranslator } from '../snapToGrid';
25+
import { translator as wSpacingTranslator } from '../spacing';
26+
import { translator as wSuppressAutoHyphensTranslator } from '../suppressAutoHyphens';
27+
import { translator as wSuppressLineNumbersTranslator } from '../suppressLineNumbers';
28+
import { translator as wSuppressOverlapTranslator } from '../suppressOverlap';
29+
import { translator as wTabsTranslator } from '../tabs';
30+
import { translator as wTextAlignmentTranslator } from '../textAlignment';
31+
import { translator as wTextDirectionTranslator } from '../textDirection';
32+
import { translator as wTextboxTightWrapTranslator } from '../textboxTightWrap';
33+
import { translator as wTopLinePunctTranslator } from '../topLinePunct';
34+
import { translator as wWidowControlTranslator } from '../widowControl';
35+
import { translator as wWordWrapTranslator } from '../wordWrap';
36+
import { translator as wRPrTranslator } from '../rpr';
37+
38+
/** @type {import('@translator').NodeTranslator[]} */
39+
export const basePropertyTranslators = [
40+
mcAlternateContentTranslator,
41+
wAdjustRightIndTranslator,
42+
wAutoSpaceDETranslator,
43+
wAutoSpaceDNTranslator,
44+
wBidiTranslator,
45+
wCnfStyleTranslator,
46+
wContextualSpacingTranslator,
47+
wDivIdTranslator,
48+
wFramePrTranslator,
49+
wIndTranslator,
50+
wJcTranslatorTranslator,
51+
wKeepLinesTranslator,
52+
wKeepNextTranslator,
53+
wKinsokuTranslator,
54+
wMirrorIndentsTranslator,
55+
wNumPrTranslator,
56+
wOutlineLvlTranslator,
57+
wOverflowPunctTranslator,
58+
wPBdrTranslator,
59+
wPStyleTranslator,
60+
wPageBreakBeforeTranslator,
61+
wShdTranslator,
62+
wSnapToGridTranslator,
63+
wSpacingTranslator,
64+
wSuppressAutoHyphensTranslator,
65+
wSuppressLineNumbersTranslator,
66+
wSuppressOverlapTranslator,
67+
wTabsTranslator,
68+
wTextAlignmentTranslator,
69+
wTextDirectionTranslator,
70+
wTextboxTightWrapTranslator,
71+
wTopLinePunctTranslator,
72+
wWidowControlTranslator,
73+
wWordWrapTranslator,
74+
wRPrTranslator,
75+
];

packages/super-editor/src/editors/v1/core/super-converter/v3/handlers/w/pPr/pPr-translator.js

Lines changed: 2 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,84 +1,11 @@
11
// @ts-check
22
import { NodeTranslator } from '@translator';
33
import { createNestedPropertiesTranslator } from '@converter/v3/handlers/utils.js';
4-
import { translator as mcAlternateContentTranslator } from '../../mc/altermateContent';
5-
import { translator as wAdjustRightIndTranslator } from '../adjustRightInd';
6-
import { translator as wAutoSpaceDETranslator } from '../autoSpaceDE';
7-
import { translator as wAutoSpaceDNTranslator } from '../autoSpaceDN';
8-
import { translator as wBidiTranslator } from '../bidi';
9-
import { translator as wCnfStyleTranslator } from '../cnfStyle';
10-
import { translator as wContextualSpacingTranslator } from '../contextualSpacing';
11-
import { translator as wDivIdTranslator } from '../divId';
12-
import { translator as wFramePrTranslator } from '../framePr';
13-
import { translator as wIndTranslator } from '../ind';
14-
import { translator as wJcTranslatorTranslator } from '../jc';
15-
import { translator as wKeepLinesTranslator } from '../keepLines';
16-
import { translator as wKeepNextTranslator } from '../keepNext';
17-
import { translator as wKinsokuTranslator } from '../kinsoku';
18-
import { translator as wMirrorIndentsTranslator } from '../mirrorIndents';
19-
import { translator as wNumPrTranslator } from '../numPr';
20-
import { translator as wOutlineLvlTranslator } from '../outlineLvl';
21-
import { translator as wOverflowPunctTranslator } from '../overflowPunct';
22-
import { translator as wPBdrTranslator } from '../pBdr';
23-
import { translator as wPStyleTranslator } from '../pStyle';
24-
import { translator as wPageBreakBeforeTranslator } from '../pageBreakBefore';
25-
import { translator as wShdTranslator } from '../shd';
26-
import { translator as wSnapToGridTranslator } from '../snapToGrid';
27-
import { translator as wSpacingTranslator } from '../spacing';
28-
import { translator as wSuppressAutoHyphensTranslator } from '../suppressAutoHyphens';
29-
import { translator as wSuppressLineNumbersTranslator } from '../suppressLineNumbers';
30-
import { translator as wSuppressOverlapTranslator } from '../suppressOverlap';
31-
import { translator as wTabsTranslator } from '../tabs';
32-
import { translator as wTextAlignmentTranslator } from '../textAlignment';
33-
import { translator as wTextDirectionTranslator } from '../textDirection';
34-
import { translator as wTextboxTightWrapTranslator } from '../textboxTightWrap';
35-
import { translator as wTopLinePunctTranslator } from '../topLinePunct';
36-
import { translator as wWidowControlTranslator } from '../widowControl';
37-
import { translator as wWordWrapTranslator } from '../wordWrap';
38-
import { translator as wRPrTranslator } from '../rpr';
4+
import { basePropertyTranslators } from './pPr-base-translators.js';
395
import { translator as wPPrChangeTranslator } from '../pPrChange';
406

41-
// Property translators for w:pPr child elements
42-
// Each translator handles a specific property of the paragraph properties
437
/** @type {import('@translator').NodeTranslator[]} */
44-
const propertyTranslators = [
45-
mcAlternateContentTranslator,
46-
wAdjustRightIndTranslator,
47-
wAutoSpaceDETranslator,
48-
wAutoSpaceDNTranslator,
49-
wBidiTranslator,
50-
wCnfStyleTranslator,
51-
wContextualSpacingTranslator,
52-
wDivIdTranslator,
53-
wFramePrTranslator,
54-
wIndTranslator,
55-
wJcTranslatorTranslator,
56-
wKeepLinesTranslator,
57-
wKeepNextTranslator,
58-
wKinsokuTranslator,
59-
wMirrorIndentsTranslator,
60-
wNumPrTranslator,
61-
wOutlineLvlTranslator,
62-
wOverflowPunctTranslator,
63-
wPBdrTranslator,
64-
wPStyleTranslator,
65-
wPageBreakBeforeTranslator,
66-
wShdTranslator,
67-
wSnapToGridTranslator,
68-
wSpacingTranslator,
69-
wSuppressAutoHyphensTranslator,
70-
wSuppressLineNumbersTranslator,
71-
wSuppressOverlapTranslator,
72-
wTabsTranslator,
73-
wTextAlignmentTranslator,
74-
wTextDirectionTranslator,
75-
wTextboxTightWrapTranslator,
76-
wTopLinePunctTranslator,
77-
wWidowControlTranslator,
78-
wWordWrapTranslator,
79-
wRPrTranslator,
80-
wPPrChangeTranslator,
81-
];
8+
const propertyTranslators = [...basePropertyTranslators, wPPrChangeTranslator];
829

8310
/**
8411
* The NodeTranslator instance for the w:pPr element.

packages/super-editor/src/editors/v1/core/super-converter/v3/handlers/w/pPrChange/pPrChange-translator.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,14 @@ import {
55
createIntegerAttributeHandler,
66
createAttributeHandler,
77
} from '@converter/v3/handlers/utils.js';
8-
import { translator as wPPrTranslator } from '../pPr';
8+
import { basePropertyTranslators } from '../pPr/pPr-base-translators.js';
9+
10+
const pPrTranslator = NodeTranslator.from(
11+
createNestedPropertiesTranslator('w:pPr', 'paragraphProperties', basePropertyTranslators),
12+
);
913

1014
/** @type {import('@translator').NodeTranslator[]} */
11-
const propertyTranslators = [wPPrTranslator];
15+
const propertyTranslators = [pPrTranslator];
1216

1317
/**
1418
* The NodeTranslator instance for the w:pPrChange element.

0 commit comments

Comments
 (0)