@alphacifer/slidev-addon-theme 0.0.10 → 0.0.12
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/README.md +134 -76
- package/components/card/chevron-card/ChevronCard.vue +44 -32
- package/components/card/chevron-card/ChevronCardBadge.vue +14 -8
- package/components/card/chevron-card/ChevronCardContent.vue +15 -13
- package/components/card/chevron-card/style.css +12 -0
- package/components/card/{horiz-card/HorizCard.vue → horizontal-card/HorizontalCard.vue} +78 -85
- package/components/card/{horiz-card/HorizCardBadge.vue → horizontal-card/HorizontalCardBadge.vue} +15 -10
- package/components/card/{horiz-card/HorizCardContent.vue → horizontal-card/HorizontalCardContent.vue} +11 -11
- package/components/card/{horiz-card/HorizCardIcon.vue → horizontal-card/HorizontalCardIcon.vue} +24 -38
- package/components/card/horizontal-card/style.css +17 -0
- package/components/card/{vert-card/VertCard.vue → vertical-card/VerticalCard.vue} +80 -103
- package/components/card/{vert-card/VertCardBadge.vue → vertical-card/VerticalCardBadge.vue} +15 -10
- package/components/card/{vert-card/VertCardContent.vue → vertical-card/VerticalCardContent.vue} +13 -12
- package/components/card/{vert-card/VertCardIcon.vue → vertical-card/VerticalCardIcon.vue} +15 -33
- package/components/card/vertical-card/style.css +19 -0
- package/components/comparisons/arc-comparison/ArcComparison.vue +376 -80
- package/components/comparisons/arc-comparison/ArcComparisonBadge.vue +9 -4
- package/components/comparisons/arc-comparison/ArcComparisonContent.vue +9 -4
- package/components/comparisons/arc-comparison/ArcComparisonHeading.vue +9 -4
- package/components/comparisons/arc-comparison/ArcComparisonLeft.vue +39 -63
- package/components/comparisons/arc-comparison/ArcComparisonOrbit.vue +9 -8
- package/components/comparisons/arc-comparison/ArcComparisonRight.vue +39 -63
- package/components/comparisons/arc-comparison/style.css +27 -0
- package/components/comparisons/table-comparison/TableComparison.vue +8 -90
- package/components/comparisons/table-comparison/TableComparisonCell.vue +22 -20
- package/components/comparisons/table-comparison/{TableComparisonCol.vue → TableComparisonColumn.vue} +16 -14
- package/components/comparisons/table-comparison/{TableComparisonCols.vue → TableComparisonColumns.vue} +5 -8
- package/components/comparisons/table-comparison/TableComparisonRow.vue +10 -14
- package/components/comparisons/table-comparison/TableComparisonRows.vue +1 -4
- package/components/comparisons/table-comparison/style.css +15 -0
- package/components/core/Date.vue +2 -5
- package/components/core/MetaList.vue +50 -0
- package/components/core/QnA.vue +1 -1
- package/components/core/Quote.vue +3 -6
- package/components/core/ReflectedTitle.vue +2 -6
- package/components/core/Speaker.vue +6 -11
- package/components/core/TransitionHeading.vue +2 -5
- package/components/core/arc-orbit/ArcOrbit.vue +65 -84
- package/components/core/arc-orbit/ArcOrbitBadge.vue +9 -11
- package/components/core/arc-orbit/ArcOrbitCallout.vue +19 -23
- package/components/core/arc-orbit/ArcOrbitContent.vue +6 -12
- package/components/core/arc-orbit/ArcOrbitHeading.vue +13 -11
- package/components/core/arc-orbit/style.css +20 -0
- package/components/core/style.css +9 -0
- package/components/core/thanks/{ThanksContent.vue → SquareThanks.vue} +36 -31
- package/components/core/thanks/SquareThanksContent.vue +87 -0
- package/components/core/thanks/ThanksOutlineSquare.vue +2 -5
- package/components/core/thanks/ThanksSquare.vue +2 -5
- package/components/core/thanks/style.css +30 -0
- package/components/defense-in-depth/{arc-did/ArcDiD.vue → arc-defense-in-depth/ArcDefenseInDepth.vue} +167 -97
- package/components/defense-in-depth/arc-defense-in-depth/ArcDefenseInDepthLayer.vue +240 -0
- package/components/defense-in-depth/{arc-did/ArcDiDLayerTitle.vue → arc-defense-in-depth/ArcDefenseInDepthLayerHeading.vue} +27 -29
- package/components/defense-in-depth/{arc-did/ArcDiDLayerPart.vue → arc-defense-in-depth/ArcDefenseInDepthLayerPart.vue} +91 -39
- package/components/defense-in-depth/{arc-did/ArcDiDLayerSector.vue → arc-defense-in-depth/ArcDefenseInDepthLayerSector.vue} +37 -23
- package/components/defense-in-depth/arc-defense-in-depth/style.css +38 -0
- package/components/facets/tetrad/{rect-orbit-tetrad/RectOrbitTetrad.vue → rectangle-orbit-tetrad/RectangleOrbitTetrad.vue} +66 -63
- package/components/facets/tetrad/{rect-orbit-tetrad/RectOrbitTetradCallout.vue → rectangle-orbit-tetrad/RectangleOrbitTetradCallout.vue} +58 -46
- package/components/facets/tetrad/rectangle-orbit-tetrad/RectangleOrbitTetradCenter.vue +54 -0
- package/components/facets/tetrad/rectangle-orbit-tetrad/RectangleOrbitTetradContent.vue +44 -0
- package/components/facets/tetrad/rectangle-orbit-tetrad/RectangleOrbitTetradHeading.vue +27 -0
- package/components/facets/tetrad/{rect-orbit-tetrad/RectOrbitTetradIcon.vue → rectangle-orbit-tetrad/RectangleOrbitTetradIcon.vue} +23 -13
- package/components/facets/tetrad/rectangle-orbit-tetrad/style.css +22 -0
- package/components/facets/triad/arrow-triad/ArrowTriad.vue +99 -109
- package/components/facets/triad/arrow-triad/ArrowTriadCallout.vue +31 -59
- package/components/facets/triad/arrow-triad/ArrowTriadContent.vue +18 -13
- package/components/facets/triad/arrow-triad/ArrowTriadHeading.vue +20 -13
- package/components/facets/triad/arrow-triad/ArrowTriadIcon.vue +14 -9
- package/components/facets/triad/arrow-triad/style.css +15 -0
- package/components/facets/triad/gear-triad/GearTriad.vue +73 -64
- package/components/facets/triad/gear-triad/GearTriadCallout.vue +58 -53
- package/components/facets/triad/gear-triad/GearTriadCenter.vue +9 -4
- package/components/facets/triad/gear-triad/GearTriadContent.vue +21 -36
- package/components/facets/triad/gear-triad/GearTriadDetail.vue +92 -0
- package/components/facets/triad/gear-triad/GearTriadDetails.vue +169 -0
- package/components/facets/triad/gear-triad/GearTriadDetailsContent.vue +18 -0
- package/components/facets/triad/gear-triad/GearTriadDetailsHeading.vue +60 -0
- package/components/facets/triad/gear-triad/GearTriadHeading.vue +19 -13
- package/components/facets/triad/gear-triad/GearTriadIcon.vue +22 -9
- package/components/facets/triad/gear-triad/style.css +26 -0
- package/components/facets/triad/{hex-triad/HexTriad.vue → hexagon-triad/HexagonTriad.vue} +81 -63
- package/components/facets/triad/{hex-triad/HexTriadBadge.vue → hexagon-triad/HexagonTriadBadge.vue} +38 -12
- package/components/facets/triad/{hex-triad/HexTriadCallout.vue → hexagon-triad/HexagonTriadCallout.vue} +35 -31
- package/components/facets/triad/hexagon-triad/HexagonTriadCenterBadge.vue +74 -0
- package/components/facets/triad/hexagon-triad/HexagonTriadContent.vue +34 -0
- package/components/facets/triad/hexagon-triad/HexagonTriadHeading.vue +44 -0
- package/components/facets/triad/{hex-triad/HexTriadLayer.vue → hexagon-triad/HexagonTriadLayer.vue} +12 -4
- package/components/facets/triad/hexagon-triad/style.css +22 -0
- package/components/process/arc-arrow-process/ArcArrowProcess.vue +13 -35
- package/components/process/arc-arrow-process/ArcArrowProcessArrow.vue +20 -21
- package/components/process/arc-arrow-process/ArcArrowProcessCallout.vue +30 -71
- package/components/process/arc-arrow-process/ArcArrowProcessContent.vue +18 -13
- package/components/process/arc-arrow-process/ArcArrowProcessHeading.vue +18 -18
- package/components/process/arc-arrow-process/ArcArrowProcessIcon.vue +23 -11
- package/components/process/arc-arrow-process/style.css +20 -0
- package/components/pyramid/circular-pyramid/CircularPyramid.vue +269 -170
- package/components/pyramid/circular-pyramid/CircularPyramidStack.vue +70 -52
- package/components/pyramid/circular-pyramid/CircularPyramidStackContent.vue +47 -37
- package/components/pyramid/circular-pyramid/{CircularPyramidStackTitle.vue → CircularPyramidStackHeading.vue} +49 -45
- package/components/pyramid/circular-pyramid/style.css +26 -0
- package/components/pyramid/square-pyramid/SquarePyramid.vue +191 -62
- package/components/pyramid/square-pyramid/SquarePyramidStack.vue +74 -49
- package/components/pyramid/square-pyramid/SquarePyramidStackContent.vue +47 -33
- package/components/pyramid/square-pyramid/{SquarePyramidStackTitle.vue → SquarePyramidStackHeading.vue} +49 -41
- package/components/pyramid/square-pyramid/style.css +48 -0
- package/components/style.css +35 -0
- package/layouts/core/arc-toc.vue +40 -45
- package/layouts/core/bg-center.vue +7 -6
- package/layouts/core/references.vue +84 -0
- package/layouts/core/style.css +47 -0
- package/layouts/shifting-heading/shifting-intro.vue +4 -13
- package/layouts/thanks/thanks.vue +5 -5
- package/package.json +7 -5
- package/style.css +17 -0
- package/uno.config.ts +1 -0
- package/utils/activateOnKeyboard.ts +14 -0
- package/utils/{chevronCard → card/chevron-card}/context.ts +1 -1
- package/utils/card/chevron-card/index.ts +1 -0
- package/utils/card/horizontal-card/context.ts +12 -0
- package/utils/{horizCard/createHorizCardGeometry.ts → card/horizontal-card/createHorizontalCardGeometry.ts} +10 -45
- package/utils/card/horizontal-card/index.ts +2 -0
- package/utils/card/vertical-card/context.ts +19 -0
- package/utils/{vertCard/createVertCardGeometry.ts → card/vertical-card/createVerticalCardGeometry.ts} +9 -130
- package/utils/card/vertical-card/index.ts +2 -0
- package/utils/colors.ts +93 -0
- package/utils/{arcComparison → comparisons/arc-comparison}/context.ts +0 -11
- package/utils/{arcComparison → comparisons/arc-comparison}/createArcComparisonGeometry.ts +1 -1
- package/utils/comparisons/arc-comparison/resolveArcComparisonItems.ts +33 -0
- package/utils/comparisons/table-comparison/constants.ts +47 -0
- package/utils/{tableComparison → comparisons/table-comparison}/context.ts +2 -2
- package/utils/{arcOrbit → core/arc-orbit}/resolveArcOrbitItems.ts +11 -15
- package/utils/{defenseInDepth/arcDid → defense-in-depth/arc-defense-in-depth}/context.ts +34 -31
- package/utils/{defenseInDepth/arcDid/createArcDiDGeometry.ts → defense-in-depth/arc-defense-in-depth/createArcDefenseInDepthGeometry.ts} +69 -39
- package/utils/{defenseInDepth/arcDid → defense-in-depth/arc-defense-in-depth}/types.ts +39 -35
- package/utils/defense-in-depth/shared/colors.ts +51 -0
- package/utils/defense-in-depth/shared/constants.ts +22 -0
- package/utils/{defenseInDepth → defense-in-depth}/shared/types.ts +0 -5
- package/utils/facets/tetrad/rectangle-orbit-tetrad/context.ts +31 -0
- package/utils/{rectOrbitTetrad/createRectOrbitTetradGeometry.ts → facets/tetrad/rectangle-orbit-tetrad/createRectangleOrbitTetradGeometry.ts} +5 -104
- package/utils/facets/tetrad/rectangle-orbit-tetrad/index.ts +3 -0
- package/utils/{rectOrbitTetrad/resolveRectOrbitTetradItems.ts → facets/tetrad/rectangle-orbit-tetrad/resolveRectangleOrbitTetradItems.ts} +41 -49
- package/utils/{arrowTriad → facets/triad/arrow-triad}/resolveArrowTriadItems.ts +27 -28
- package/utils/{gearTriad → facets/triad/gear-triad}/context.ts +5 -5
- package/utils/{gearTriad → facets/triad/gear-triad}/createGearTriadGeometry.ts +2 -0
- package/utils/{gearTriad → facets/triad/gear-triad}/resolveGearTriadItems.ts +23 -24
- package/utils/facets/triad/hexagon-triad/context.ts +25 -0
- package/utils/{hexTriad/createHexTriadGeometry.ts → facets/triad/hexagon-triad/createHexagonTriadGeometry.ts} +11 -27
- package/utils/facets/triad/hexagon-triad/index.ts +3 -0
- package/utils/facets/triad/hexagon-triad/resolveHexagonTriadItems.ts +60 -0
- package/utils/{shiftingHeading → layouts/shifting-heading}/collectShiftingIntroNodes.ts +1 -0
- package/utils/layouts/table-of-contents/calculateTocCenterAlignmentOffset.ts +17 -0
- package/utils/{tableOfContents → layouts/table-of-contents}/calculateTocMarkerPositions.ts +0 -12
- package/utils/{tableOfContents → layouts/table-of-contents}/createTocConnectorPath.ts +11 -5
- package/utils/{mergeUno → merge-uno}/classifyVisual.ts +1 -1
- package/utils/{mergeUno → merge-uno}/collectClassNames.ts +9 -3
- package/utils/process/arc-arrow-process/resolveArcArrowProcessItems.ts +180 -0
- package/utils/pyramid/circular-pyramid/context.ts +1 -4
- package/utils/pyramid/circular-pyramid/createCircularPyramidGeometry.ts +6 -10
- package/utils/pyramid/shared/colors.ts +33 -83
- package/utils/pyramid/shared/constants.ts +2 -2
- package/utils/pyramid/shared/types.ts +0 -5
- package/utils/pyramid/square-pyramid/context.ts +1 -4
- package/utils/pyramid/square-pyramid/createSquarePyramidGeometry.ts +6 -10
- package/utils/useDiagramAutoScale.ts +8 -6
- package/utils/useMergedUnoAttrs.ts +9 -5
- package/components/card/chevron-card/ChevronCardHeading.vue +0 -39
- package/components/card/horiz-card/HorizCardHeading.vue +0 -47
- package/components/card/vert-card/VertCardHeading.vue +0 -68
- package/components/card/vert-card/VertCardTitle.vue +0 -76
- package/components/comparisons/arc-comparison/ArcComparisonContents.vue +0 -17
- package/components/comparisons/arc-comparison/ArcComparisonTitle.vue +0 -29
- package/components/core/arc-orbit/ArcOrbitContents.vue +0 -18
- package/components/core/arc-orbit/ArcOrbitTitle.vue +0 -50
- package/components/defense-in-depth/arc-did/ArcDiDLayer.vue +0 -321
- package/components/defense-in-depth/arc-did/ArcDiDLayerParts.vue +0 -11
- package/components/facets/tetrad/rect-orbit-tetrad/RectOrbitTetradCenter.vue +0 -53
- package/components/facets/tetrad/rect-orbit-tetrad/RectOrbitTetradContent.vue +0 -39
- package/components/facets/tetrad/rect-orbit-tetrad/RectOrbitTetradHeading.vue +0 -44
- package/components/facets/triad/gear-triad/GearTriadContents.vue +0 -111
- package/components/facets/triad/gear-triad/GearTriadDescription.vue +0 -38
- package/components/facets/triad/hex-triad/HexTriadCenterBadge.vue +0 -51
- package/components/facets/triad/hex-triad/HexTriadContent.vue +0 -20
- package/components/facets/triad/hex-triad/HexTriadHeading.vue +0 -28
- package/layouts/core/table-of-contents.vue +0 -30
- package/utils/arcArrowProcess/resolveArcArrowProcessItems.ts +0 -189
- package/utils/arcComparison/resolveArcComparisonItems.ts +0 -102
- package/utils/chevronCard/createChevronCardGeometry.ts +0 -48
- package/utils/chevronCard/index.ts +0 -2
- package/utils/defenseInDepth/arcDid/index.ts +0 -3
- package/utils/defenseInDepth/index.ts +0 -2
- package/utils/defenseInDepth/shared/colors.ts +0 -121
- package/utils/defenseInDepth/shared/constants.ts +0 -14
- package/utils/defenseInDepth/shared/index.ts +0 -3
- package/utils/hexTriad/context.ts +0 -25
- package/utils/hexTriad/index.ts +0 -3
- package/utils/hexTriad/resolveHexTriadItems.ts +0 -63
- package/utils/horizCard/context.ts +0 -13
- package/utils/horizCard/index.ts +0 -2
- package/utils/pyramid/index.ts +0 -3
- package/utils/rectOrbitTetrad/context.ts +0 -31
- package/utils/rectOrbitTetrad/index.ts +0 -3
- package/utils/tableComparison/constants.ts +0 -72
- package/utils/tableOfContents/calculateTocCenterAlignmentOffset.ts +0 -11
- package/utils/vertCard/context.ts +0 -18
- package/utils/vertCard/index.ts +0 -2
- package/utils/{arcComparison → comparisons/arc-comparison}/index.ts +0 -0
- package/utils/{tableComparison → comparisons/table-comparison}/index.ts +0 -0
- package/utils/{arcOrbit → core/arc-orbit}/context.ts +0 -0
- package/utils/{arcOrbit → core/arc-orbit}/createArcOrbitGeometry.ts +0 -0
- package/utils/{arcOrbit → core/arc-orbit}/index.ts +0 -0
- package/utils/{arrowTriad → facets/triad/arrow-triad}/context.ts +0 -0
- package/utils/{arrowTriad → facets/triad/arrow-triad}/createArrowTriadGeometry.ts +0 -0
- package/utils/{arrowTriad → facets/triad/arrow-triad}/index.ts +0 -0
- package/utils/{gearTriad → facets/triad/gear-triad}/index.ts +0 -0
- package/utils/{tableOfContents → layouts/table-of-contents}/calculateUniformTocArticleWidth.ts +0 -0
- package/utils/{tableOfContents → layouts/table-of-contents}/createTocArcPath.ts +0 -0
- package/utils/{tableOfContents → layouts/table-of-contents}/index.ts +0 -0
- package/utils/{mergeUno → merge-uno}/classifyLayout.ts +0 -0
- package/utils/{mergeUno → merge-uno}/classifySimple.ts +0 -0
- package/utils/{mergeUno → merge-uno}/classifyTypography.ts +0 -0
- package/utils/{mergeUno → merge-uno}/classifyUtility.ts +0 -0
- package/utils/{mergeUno → merge-uno}/index.ts +0 -0
- package/utils/{mergeUno → merge-uno}/mergeClassValues.ts +0 -0
- package/utils/{mergeUno → merge-uno}/splitVariantScope.ts +1 -1
- package/utils/{mergeUno → merge-uno}/types.ts +0 -0
- package/utils/{arcArrowProcess → process/arc-arrow-process}/context.ts +1 -1
- /package/utils/{arcArrowProcess → process/arc-arrow-process}/createArcArrowProcessGeometry.ts +0 -0
- /package/utils/{arcArrowProcess → process/arc-arrow-process}/index.ts +0 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export const DEFAULT_COL_COLORS: readonly string[] = [
|
|
2
|
+
'var(--alpha-table-comparison-col-1-background)',
|
|
3
|
+
'var(--alpha-table-comparison-col-2-background)',
|
|
4
|
+
'var(--alpha-table-comparison-col-3-background)',
|
|
5
|
+
'var(--alpha-table-comparison-col-4-background)',
|
|
6
|
+
'var(--alpha-table-comparison-col-5-background)',
|
|
7
|
+
];
|
|
8
|
+
|
|
9
|
+
export const DEFAULT_ROW_HEADER_COLOR = 'var(--alpha-table-comparison-row-bg)';
|
|
10
|
+
export const DEFAULT_ROW_HEADER_TEXT_COLOR =
|
|
11
|
+
'var(--alpha-table-comparison-row)';
|
|
12
|
+
export const DEFAULT_COL_HEADER_TEXT_COLOR =
|
|
13
|
+
'var(--alpha-table-comparison-col)';
|
|
14
|
+
export const DEFAULT_CELL_BG = 'var(--alpha-table-comparison-cell-bg)';
|
|
15
|
+
export const DEFAULT_CELL_COLOR = 'var(--alpha-table-comparison-cell)';
|
|
16
|
+
export const DEFAULT_BORDER_RADIUS = '8px';
|
|
17
|
+
export const DEFAULT_SPACING = '6px';
|
|
18
|
+
export const DEFAULT_ROW_HEADER_WIDTH = '160px';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Resolves a dimension input (number or string) into a CSS-ready unit string.
|
|
22
|
+
*/
|
|
23
|
+
export function resolveDimension(
|
|
24
|
+
value: number | string | undefined,
|
|
25
|
+
defaultUnit = 'px',
|
|
26
|
+
): string | undefined {
|
|
27
|
+
if (value === undefined || value === null) {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (typeof value === 'number') {
|
|
32
|
+
return `${value}${defaultUnit}`;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const trimmed = value.trim();
|
|
36
|
+
|
|
37
|
+
if (!trimmed) {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// If already contains unit or percentage or calc/var, return as is
|
|
42
|
+
if (/^[+-]?\d+(\.\d+)?$/.test(trimmed)) {
|
|
43
|
+
return `${trimmed}${defaultUnit}`;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return trimmed;
|
|
47
|
+
}
|
|
@@ -13,12 +13,12 @@ export interface ITableComparisonContext {
|
|
|
13
13
|
readonly animation: ComputedRef<boolean>;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
export interface
|
|
16
|
+
export interface ITableComparisonColumnsContext {
|
|
17
17
|
readonly registerCol: () => number;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
export const TABLE_COMPARISON_KEY: InjectionKey<ITableComparisonContext> =
|
|
21
21
|
Symbol('TABLE_COMPARISON_KEY');
|
|
22
22
|
|
|
23
|
-
export const TABLE_COMPARISON_COLS_KEY: InjectionKey<
|
|
23
|
+
export const TABLE_COMPARISON_COLS_KEY: InjectionKey<ITableComparisonColumnsContext> =
|
|
24
24
|
Symbol('TABLE_COMPARISON_COLS_KEY');
|
|
@@ -14,10 +14,7 @@ export interface IResolvedArcOrbitItem {
|
|
|
14
14
|
readonly textColor?: string;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
export const DEFAULT_ARC_ORBIT_COLOR = '
|
|
18
|
-
|
|
19
|
-
export const DEFAULT_LOREM_TEXT =
|
|
20
|
-
'Lorem ipsum dolor sit amet, constitutor adipiscing elit. Nam vulputate augue vel ligula.';
|
|
17
|
+
export const DEFAULT_ARC_ORBIT_COLOR = 'var(--alpha-arc-orbit-accent)';
|
|
21
18
|
|
|
22
19
|
export const DEFAULT_ARC_ORBIT_ITEMS: readonly [
|
|
23
20
|
IResolvedArcOrbitItem,
|
|
@@ -27,26 +24,26 @@ export const DEFAULT_ARC_ORBIT_ITEMS: readonly [
|
|
|
27
24
|
] = [
|
|
28
25
|
{
|
|
29
26
|
id: '01',
|
|
30
|
-
title: '
|
|
31
|
-
description:
|
|
27
|
+
title: '',
|
|
28
|
+
description: '',
|
|
32
29
|
color: DEFAULT_ARC_ORBIT_COLOR,
|
|
33
30
|
},
|
|
34
31
|
{
|
|
35
32
|
id: '02',
|
|
36
|
-
title: '
|
|
37
|
-
description:
|
|
33
|
+
title: '',
|
|
34
|
+
description: '',
|
|
38
35
|
color: DEFAULT_ARC_ORBIT_COLOR,
|
|
39
36
|
},
|
|
40
37
|
{
|
|
41
38
|
id: '03',
|
|
42
|
-
title: '
|
|
43
|
-
description:
|
|
39
|
+
title: '',
|
|
40
|
+
description: '',
|
|
44
41
|
color: DEFAULT_ARC_ORBIT_COLOR,
|
|
45
42
|
},
|
|
46
43
|
{
|
|
47
44
|
id: '04',
|
|
48
|
-
title: '
|
|
49
|
-
description:
|
|
45
|
+
title: '',
|
|
46
|
+
description: '',
|
|
50
47
|
color: DEFAULT_ARC_ORBIT_COLOR,
|
|
51
48
|
},
|
|
52
49
|
];
|
|
@@ -73,9 +70,8 @@ export function resolveArcOrbitItems(
|
|
|
73
70
|
? custom.id
|
|
74
71
|
: (defaultItem?.id ?? String(i + 1).padStart(2, '0'));
|
|
75
72
|
|
|
76
|
-
const title = custom?.title ?? defaultItem?.title ?? '
|
|
77
|
-
const description =
|
|
78
|
-
custom?.description ?? defaultItem?.description ?? DEFAULT_LOREM_TEXT;
|
|
73
|
+
const title = custom?.title ?? defaultItem?.title ?? '';
|
|
74
|
+
const description = custom?.description ?? defaultItem?.description ?? '';
|
|
79
75
|
const color = custom?.color ?? defaultColor;
|
|
80
76
|
const textColor = custom?.textColor ?? defaultItem?.textColor;
|
|
81
77
|
|
|
@@ -1,35 +1,38 @@
|
|
|
1
1
|
import type { ComputedRef, InjectionKey, Ref } from 'vue';
|
|
2
2
|
|
|
3
3
|
import type {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
IArcDefenseInDepthGeometry,
|
|
5
|
+
IArcDefenseInDepthLayerGeometry,
|
|
6
|
+
IArcDefenseInDepthPartItem,
|
|
7
|
+
IArcDefenseInDepthSectorGeometry,
|
|
8
|
+
IArcDefenseInDepthSectorItem,
|
|
9
|
+
TArcDefenseInDepthOrder,
|
|
10
|
+
TArcDefenseInDepthOrientation,
|
|
10
11
|
} from './types';
|
|
11
12
|
|
|
12
|
-
export interface
|
|
13
|
-
readonly parts?: readonly
|
|
13
|
+
export interface IArcDefenseInDepthRegisteredSectorData {
|
|
14
|
+
readonly parts?: readonly IArcDefenseInDepthPartItem[];
|
|
14
15
|
readonly split?: boolean;
|
|
15
16
|
readonly angle?: number;
|
|
16
17
|
readonly span?: number;
|
|
17
18
|
readonly color?: string;
|
|
18
19
|
readonly index?: number;
|
|
19
|
-
readonly rotate?:
|
|
20
|
-
readonly skew?:
|
|
20
|
+
readonly rotate?: TArcDefenseInDepthOrientation;
|
|
21
|
+
readonly skew?: TArcDefenseInDepthOrientation;
|
|
21
22
|
}
|
|
22
23
|
|
|
23
|
-
export interface
|
|
24
|
+
export interface IArcDefenseInDepthRegisteredLayerData {
|
|
24
25
|
readonly title?: string;
|
|
25
26
|
readonly color?: string;
|
|
26
|
-
readonly parts?: readonly
|
|
27
|
-
readonly sectors?: readonly
|
|
27
|
+
readonly parts?: readonly IArcDefenseInDepthPartItem[];
|
|
28
|
+
readonly sectors?: readonly IArcDefenseInDepthSectorItem[];
|
|
28
29
|
readonly index?: number;
|
|
30
|
+
readonly titleAngleSpan?: number;
|
|
31
|
+
readonly titleWidth?: number;
|
|
29
32
|
}
|
|
30
33
|
|
|
31
|
-
export interface
|
|
32
|
-
readonly geo: ComputedRef<
|
|
34
|
+
export interface IArcDefenseInDepthRootContext {
|
|
35
|
+
readonly geo: ComputedRef<IArcDefenseInDepthGeometry>;
|
|
33
36
|
readonly count: ComputedRef<number>;
|
|
34
37
|
readonly activeIndex: Ref<number> | ComputedRef<number>;
|
|
35
38
|
readonly setActiveIndex: (index: number) => void;
|
|
@@ -45,39 +48,37 @@ export interface IArcDiDRootContext {
|
|
|
45
48
|
) => boolean;
|
|
46
49
|
readonly color: ComputedRef<string>;
|
|
47
50
|
readonly colors: ComputedRef<readonly string[] | undefined>;
|
|
48
|
-
readonly order: ComputedRef<
|
|
51
|
+
readonly order: ComputedRef<TArcDefenseInDepthOrder>;
|
|
49
52
|
readonly animation: ComputedRef<boolean>;
|
|
50
53
|
readonly interactive: ComputedRef<boolean>;
|
|
51
54
|
readonly startDelay: ComputedRef<number>;
|
|
52
55
|
readonly getLayerColor: (index: number) => string;
|
|
53
56
|
readonly registerLayer: (
|
|
54
57
|
token?: symbol,
|
|
55
|
-
dataRef?: ComputedRef<
|
|
58
|
+
dataRef?: ComputedRef<IArcDefenseInDepthRegisteredLayerData | undefined>,
|
|
56
59
|
) => {
|
|
57
60
|
index: ComputedRef<number>;
|
|
58
61
|
unregister: () => void;
|
|
59
62
|
};
|
|
60
63
|
}
|
|
61
64
|
|
|
62
|
-
export interface
|
|
65
|
+
export interface IArcDefenseInDepthSectorContext {
|
|
63
66
|
readonly sectorIndex: ComputedRef<number>;
|
|
64
|
-
readonly sectorGeo: ComputedRef<
|
|
65
|
-
readonly rotate?: ComputedRef<
|
|
66
|
-
|
|
67
|
-
>;
|
|
68
|
-
readonly skew?: ComputedRef<boolean | number | string | undefined>;
|
|
67
|
+
readonly sectorGeo: ComputedRef<IArcDefenseInDepthSectorGeometry | undefined>;
|
|
68
|
+
readonly rotate?: ComputedRef<TArcDefenseInDepthOrientation | undefined>;
|
|
69
|
+
readonly skew?: ComputedRef<TArcDefenseInDepthOrientation | undefined>;
|
|
69
70
|
readonly registerPart: (
|
|
70
71
|
token?: symbol,
|
|
71
|
-
partDataRef?: ComputedRef<
|
|
72
|
+
partDataRef?: ComputedRef<IArcDefenseInDepthPartItem | undefined>,
|
|
72
73
|
) => {
|
|
73
74
|
index: ComputedRef<number>;
|
|
74
75
|
unregister: () => void;
|
|
75
76
|
};
|
|
76
77
|
}
|
|
77
78
|
|
|
78
|
-
export interface
|
|
79
|
+
export interface IArcDefenseInDepthLayerContext {
|
|
79
80
|
readonly layerIndex: ComputedRef<number>;
|
|
80
|
-
readonly layerGeo: ComputedRef<
|
|
81
|
+
readonly layerGeo: ComputedRef<IArcDefenseInDepthLayerGeometry | undefined>;
|
|
81
82
|
readonly isActive: ComputedRef<boolean>;
|
|
82
83
|
readonly color: ComputedRef<string>;
|
|
83
84
|
readonly textColor?: ComputedRef<string | undefined>;
|
|
@@ -86,25 +87,27 @@ export interface IArcDiDLayerContext {
|
|
|
86
87
|
readonly partsCount: ComputedRef<number>;
|
|
87
88
|
readonly registerPart: (
|
|
88
89
|
token?: symbol,
|
|
89
|
-
partDataRef?: ComputedRef<
|
|
90
|
+
partDataRef?: ComputedRef<IArcDefenseInDepthPartItem | undefined>,
|
|
90
91
|
) => {
|
|
91
92
|
index: ComputedRef<number>;
|
|
92
93
|
unregister: () => void;
|
|
93
94
|
};
|
|
94
95
|
readonly registerSector: (
|
|
95
96
|
token?: symbol,
|
|
96
|
-
sectorDataRef?: ComputedRef<
|
|
97
|
+
sectorDataRef?: ComputedRef<
|
|
98
|
+
IArcDefenseInDepthRegisteredSectorData | undefined
|
|
99
|
+
>,
|
|
97
100
|
) => {
|
|
98
101
|
index: ComputedRef<number>;
|
|
99
102
|
unregister: () => void;
|
|
100
103
|
};
|
|
101
104
|
}
|
|
102
105
|
|
|
103
|
-
export const ARC_DID_ROOT_KEY: InjectionKey<
|
|
106
|
+
export const ARC_DID_ROOT_KEY: InjectionKey<IArcDefenseInDepthRootContext> =
|
|
104
107
|
Symbol('ARC_DID_ROOT_KEY');
|
|
105
108
|
|
|
106
|
-
export const ARC_DID_LAYER_KEY: InjectionKey<
|
|
109
|
+
export const ARC_DID_LAYER_KEY: InjectionKey<IArcDefenseInDepthLayerContext> =
|
|
107
110
|
Symbol('ARC_DID_LAYER_KEY');
|
|
108
111
|
|
|
109
|
-
export const ARC_DID_SECTOR_KEY: InjectionKey<
|
|
112
|
+
export const ARC_DID_SECTOR_KEY: InjectionKey<IArcDefenseInDepthSectorContext> =
|
|
110
113
|
Symbol('ARC_DID_SECTOR_KEY');
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
2
|
+
IArcDefenseInDepthDecorativeArc,
|
|
3
|
+
IArcDefenseInDepthGeometry,
|
|
4
|
+
IArcDefenseInDepthLayerGeometry,
|
|
5
|
+
IArcDefenseInDepthLayerItem,
|
|
6
|
+
IArcDefenseInDepthPartGeometry,
|
|
7
|
+
IArcDefenseInDepthPartItem,
|
|
8
|
+
IArcDefenseInDepthPoint,
|
|
9
|
+
IArcDefenseInDepthSectorGeometry,
|
|
10
|
+
IArcDefenseInDepthSectorItem,
|
|
11
|
+
ICreateArcDefenseInDepthOptions,
|
|
12
|
+
TArcDefenseInDepthOrder,
|
|
13
13
|
} from './types';
|
|
14
14
|
|
|
15
15
|
export function round(val: number, decimals = 2): number {
|
|
@@ -22,7 +22,7 @@ export function polarToCartesian(
|
|
|
22
22
|
cy: number,
|
|
23
23
|
radius: number,
|
|
24
24
|
angleInDegrees: number,
|
|
25
|
-
):
|
|
25
|
+
): IArcDefenseInDepthPoint {
|
|
26
26
|
const angleInRadians = (angleInDegrees * Math.PI) / 180;
|
|
27
27
|
return {
|
|
28
28
|
x: round(cx + radius * Math.cos(angleInRadians)),
|
|
@@ -68,19 +68,21 @@ export function describeArcBand(
|
|
|
68
68
|
].join(' ');
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
export interface
|
|
71
|
+
export interface IArcDefenseInDepthSectorInfo {
|
|
72
72
|
readonly startAngle: number;
|
|
73
73
|
readonly endAngle: number;
|
|
74
74
|
readonly midAngle: number;
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
export interface
|
|
77
|
+
export interface IArcDefenseInDepthTitleAngles {
|
|
78
78
|
readonly halfSpan: number;
|
|
79
79
|
readonly titleLeft: number;
|
|
80
80
|
readonly titleRight: number;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
function calculateTitleAngles(
|
|
84
|
+
titleAngleSpan = 40,
|
|
85
|
+
): IArcDefenseInDepthTitleAngles {
|
|
84
86
|
const halfSpan = round(titleAngleSpan / 2, 2);
|
|
85
87
|
const titleLeft = round(90 + halfSpan, 1);
|
|
86
88
|
const titleRight = round(90 - halfSpan, 1);
|
|
@@ -92,7 +94,10 @@ function resolveSpansDistribution(
|
|
|
92
94
|
totalSpan: number,
|
|
93
95
|
inputSpans?: readonly (number | undefined)[],
|
|
94
96
|
): number[] {
|
|
95
|
-
if (count <= 0)
|
|
97
|
+
if (count <= 0) {
|
|
98
|
+
return [];
|
|
99
|
+
}
|
|
100
|
+
|
|
96
101
|
if (
|
|
97
102
|
!inputSpans ||
|
|
98
103
|
inputSpans.length === 0 ||
|
|
@@ -106,6 +111,7 @@ function resolveSpansDistribution(
|
|
|
106
111
|
|
|
107
112
|
for (let i = 0; i < count; i++) {
|
|
108
113
|
const s = inputSpans[i];
|
|
114
|
+
|
|
109
115
|
if (s !== undefined && s > 0) {
|
|
110
116
|
specifiedSum += s;
|
|
111
117
|
} else {
|
|
@@ -116,8 +122,10 @@ function resolveSpansDistribution(
|
|
|
116
122
|
if (unspecifiedCount > 0) {
|
|
117
123
|
const remaining = Math.max(0, totalSpan - specifiedSum);
|
|
118
124
|
const perUnspecified = remaining / unspecifiedCount;
|
|
125
|
+
|
|
119
126
|
return Array.from({ length: count }, (_, i) => {
|
|
120
127
|
const s = inputSpans[i];
|
|
128
|
+
|
|
121
129
|
return s !== undefined && s > 0 ? s : perUnspecified;
|
|
122
130
|
});
|
|
123
131
|
}
|
|
@@ -127,17 +135,18 @@ function resolveSpansDistribution(
|
|
|
127
135
|
const headSpans = inputSpans.slice(0, count - 1).map((s) => s ?? 0);
|
|
128
136
|
const headSum = headSpans.reduce((a, b) => a + b, 0);
|
|
129
137
|
const lastSpan = Math.max(0, totalSpan - headSum);
|
|
138
|
+
|
|
130
139
|
return [...headSpans, round(lastSpan, 2)];
|
|
131
140
|
}
|
|
132
141
|
|
|
133
142
|
return [totalSpan];
|
|
134
143
|
}
|
|
135
144
|
|
|
136
|
-
|
|
145
|
+
function calculatePartSectors(
|
|
137
146
|
partCount: number,
|
|
138
147
|
titleAngleSpan = 40,
|
|
139
148
|
sectorSpans?: readonly (number | undefined)[],
|
|
140
|
-
):
|
|
149
|
+
): IArcDefenseInDepthSectorInfo[] {
|
|
141
150
|
if (partCount <= 0) {
|
|
142
151
|
return [];
|
|
143
152
|
}
|
|
@@ -174,10 +183,11 @@ export function calculatePartSectors(
|
|
|
174
183
|
rightSpansInput,
|
|
175
184
|
);
|
|
176
185
|
|
|
177
|
-
const sectors:
|
|
186
|
+
const sectors: IArcDefenseInDepthSectorInfo[] = [];
|
|
178
187
|
|
|
179
188
|
// Left sectors: 180 down to titleLeft
|
|
180
189
|
let currentLeft = 180;
|
|
190
|
+
|
|
181
191
|
for (let i = 0; i < leftCount; i++) {
|
|
182
192
|
const span = leftAllocatedSpans[i] ?? totalLeftSpan / leftCount;
|
|
183
193
|
const start = currentLeft;
|
|
@@ -192,6 +202,7 @@ export function calculatePartSectors(
|
|
|
192
202
|
|
|
193
203
|
// Right sectors: titleRight down to 0
|
|
194
204
|
let currentRight = titleRight;
|
|
205
|
+
|
|
195
206
|
for (let j = 0; j < rightCount; j++) {
|
|
196
207
|
const span = rightAllocatedSpans[j] ?? totalRightSpan / rightCount;
|
|
197
208
|
const start = currentRight;
|
|
@@ -214,7 +225,7 @@ export function calculatePartAngles(
|
|
|
214
225
|
return calculatePartSectors(partCount, titleAngleSpan).map((s) => s.midAngle);
|
|
215
226
|
}
|
|
216
227
|
|
|
217
|
-
|
|
228
|
+
function resolveLayerTitleSpan(
|
|
218
229
|
midRadius: number,
|
|
219
230
|
layerTitleAngleSpan?: number,
|
|
220
231
|
globalTitleAngleSpan?: number,
|
|
@@ -223,10 +234,13 @@ export function resolveLayerTitleSpan(
|
|
|
223
234
|
if (layerTitleAngleSpan !== undefined) {
|
|
224
235
|
return Math.max(10, Math.min(80, layerTitleAngleSpan));
|
|
225
236
|
}
|
|
237
|
+
|
|
226
238
|
if (globalTitleAngleSpan !== undefined) {
|
|
227
239
|
return Math.max(10, Math.min(80, globalTitleAngleSpan));
|
|
228
240
|
}
|
|
241
|
+
|
|
229
242
|
const computedAngle = (titleWidth / Math.max(1, midRadius)) * (180 / Math.PI);
|
|
243
|
+
|
|
230
244
|
return Math.max(18, Math.min(50, round(computedAngle, 1)));
|
|
231
245
|
}
|
|
232
246
|
|
|
@@ -235,13 +249,13 @@ export function createDecorativeArcs(
|
|
|
235
249
|
_cy?: number,
|
|
236
250
|
_outerRadius?: number,
|
|
237
251
|
_innerRadius?: number,
|
|
238
|
-
): readonly
|
|
252
|
+
): readonly IArcDefenseInDepthDecorativeArc[] {
|
|
239
253
|
return [];
|
|
240
254
|
}
|
|
241
255
|
|
|
242
|
-
export function
|
|
243
|
-
options:
|
|
244
|
-
):
|
|
256
|
+
export function createArcDefenseInDepthGeometry(
|
|
257
|
+
options: ICreateArcDefenseInDepthOptions = {},
|
|
258
|
+
): IArcDefenseInDepthGeometry {
|
|
245
259
|
const viewBoxWidth = options.viewBoxWidth ?? 900;
|
|
246
260
|
const viewBoxHeight = options.viewBoxHeight ?? 460;
|
|
247
261
|
const cx = options.cx ?? round(viewBoxWidth / 2);
|
|
@@ -256,16 +270,17 @@ export function createArcDiDGeometry(
|
|
|
256
270
|
const count = Math.max(0, Math.min(rawCount, 6));
|
|
257
271
|
|
|
258
272
|
const gap = options.gap !== undefined ? Math.max(0, options.gap) : 0;
|
|
259
|
-
const order:
|
|
273
|
+
const order: TArcDefenseInDepthOrder = options.order ?? 'outer-to-inner';
|
|
260
274
|
|
|
261
275
|
const totalSpan = outerRadius - innerRadius;
|
|
262
276
|
const totalGaps = count > 1 ? (count - 1) * gap : 0;
|
|
263
277
|
const layerThickness =
|
|
264
278
|
count > 0 ? Math.max(10, (totalSpan - totalGaps) / count) : 0;
|
|
265
279
|
|
|
266
|
-
const layersData: readonly
|
|
280
|
+
const layersData: readonly IArcDefenseInDepthLayerItem[] =
|
|
281
|
+
options.layers ?? [];
|
|
267
282
|
|
|
268
|
-
const layers:
|
|
283
|
+
const layers: IArcDefenseInDepthLayerGeometry[] = [];
|
|
269
284
|
|
|
270
285
|
if (count > 0) {
|
|
271
286
|
for (let i = 0; i < count; i++) {
|
|
@@ -286,14 +301,18 @@ export function createArcDiDGeometry(
|
|
|
286
301
|
const path = describeArcBand(cx, cy, rIn, rOut, 180, 0);
|
|
287
302
|
|
|
288
303
|
const layerItem = layersData[i];
|
|
289
|
-
let rawSectors: readonly
|
|
304
|
+
let rawSectors: readonly IArcDefenseInDepthSectorItem[] = [];
|
|
290
305
|
|
|
291
306
|
if (layerItem?.sectors && layerItem.sectors.length > 0) {
|
|
292
307
|
rawSectors = layerItem.sectors.map((s) => {
|
|
293
308
|
if (Array.isArray(s)) {
|
|
294
|
-
return {
|
|
309
|
+
return {
|
|
310
|
+
parts: s,
|
|
311
|
+
split: false,
|
|
312
|
+
};
|
|
295
313
|
}
|
|
296
|
-
|
|
314
|
+
|
|
315
|
+
return s as IArcDefenseInDepthSectorItem;
|
|
297
316
|
});
|
|
298
317
|
} else if (layerItem?.parts && layerItem.parts.length > 0) {
|
|
299
318
|
rawSectors = layerItem.parts.map((p) => {
|
|
@@ -303,9 +322,13 @@ export function createArcDiDGeometry(
|
|
|
303
322
|
'parts' in p &&
|
|
304
323
|
Array.isArray((p as { parts: unknown }).parts)
|
|
305
324
|
) {
|
|
306
|
-
return p as
|
|
325
|
+
return p as IArcDefenseInDepthSectorItem;
|
|
307
326
|
}
|
|
308
|
-
|
|
327
|
+
|
|
328
|
+
return {
|
|
329
|
+
parts: [p],
|
|
330
|
+
split: false,
|
|
331
|
+
};
|
|
309
332
|
});
|
|
310
333
|
}
|
|
311
334
|
|
|
@@ -335,8 +358,8 @@ export function createArcDiDGeometry(
|
|
|
335
358
|
rawSectorSpans,
|
|
336
359
|
);
|
|
337
360
|
|
|
338
|
-
const sectors:
|
|
339
|
-
const parts:
|
|
361
|
+
const sectors: IArcDefenseInDepthSectorGeometry[] = [];
|
|
362
|
+
const parts: IArcDefenseInDepthPartGeometry[] = [];
|
|
340
363
|
|
|
341
364
|
for (let s = 0; s < sectorCount; s++) {
|
|
342
365
|
const sectorItem = rawSectors[s];
|
|
@@ -370,6 +393,7 @@ export function createArcDiDGeometry(
|
|
|
370
393
|
numParts > 0 ? layerThickness / numParts : layerThickness;
|
|
371
394
|
|
|
372
395
|
const dividerPaths: string[] = [];
|
|
396
|
+
|
|
373
397
|
if (isSplit && numParts > 1) {
|
|
374
398
|
for (let d = 1; d < numParts; d++) {
|
|
375
399
|
const dividerRadius = round(rOut - d * trackThickness, 2);
|
|
@@ -379,16 +403,21 @@ export function createArcDiDGeometry(
|
|
|
379
403
|
}
|
|
380
404
|
}
|
|
381
405
|
|
|
382
|
-
const sectorParts:
|
|
406
|
+
const sectorParts: IArcDefenseInDepthPartGeometry[] = [];
|
|
383
407
|
|
|
384
408
|
for (let p = 0; p < numParts; p++) {
|
|
385
409
|
const rawPart = rawSectorParts[p];
|
|
386
|
-
const partItem:
|
|
410
|
+
const partItem: IArcDefenseInDepthPartItem =
|
|
387
411
|
typeof rawPart === 'string'
|
|
388
|
-
? {
|
|
389
|
-
|
|
412
|
+
? {
|
|
413
|
+
label: rawPart,
|
|
414
|
+
}
|
|
415
|
+
: (rawPart ?? {
|
|
416
|
+
label: '',
|
|
417
|
+
});
|
|
390
418
|
|
|
391
419
|
let trackIndex = p;
|
|
420
|
+
|
|
392
421
|
if (partItem.position === 'top') {
|
|
393
422
|
trackIndex = 0;
|
|
394
423
|
} else if (partItem.position === 'bottom') {
|
|
@@ -458,6 +487,7 @@ export function createArcDiDGeometry(
|
|
|
458
487
|
|
|
459
488
|
const tangentAngle = round(90 - partAngle, 1);
|
|
460
489
|
let rotationAngle: number | undefined;
|
|
490
|
+
|
|
461
491
|
if (typeof effectiveRotate === 'number') {
|
|
462
492
|
rotationAngle = effectiveRotate;
|
|
463
493
|
} else if (
|
|
@@ -486,7 +516,7 @@ export function createArcDiDGeometry(
|
|
|
486
516
|
: Number.parseInt(partItem.maxWidth, 10)
|
|
487
517
|
: defaultMaxContentWidth;
|
|
488
518
|
|
|
489
|
-
const partGeo:
|
|
519
|
+
const partGeo: IArcDefenseInDepthPartGeometry = {
|
|
490
520
|
index: parts.length,
|
|
491
521
|
sectorIndex: s,
|
|
492
522
|
trackIndex,
|