import type { ChartLayoutMode } from "./ChartLayoutMode.js"; import type { ChartLayoutTarget } from "./ChartLayoutTarget.js"; /** * Manual placement of a chart element (`c:layout/c:manualLayout`), distilled * from ooxmlsdk `ManualLayout`. `x`/`y`/`w`/`h` are fractions (0..=1) of the * chart area; the corresponding `*Mode` decides whether each is an absolute * edge position or a factor offset from the default. * * Round-trips for Excel; the xlsx-preview renderer ignores manual layout and * auto-places every element. * * schema-excluded: extLst */ export type ChartManualLayout = { /** * `c:layoutTarget`; plot area only (ignored for legend/title). */ layoutTarget?: ChartLayoutTarget; /** * `c:xMode`; how {@link ChartManualLayout.x} is interpreted. */ xMode?: ChartLayoutMode; /** * `c:yMode`; how {@link ChartManualLayout.y} is interpreted. */ yMode?: ChartLayoutMode; /** * `c:wMode`; how {@link ChartManualLayout.w} is interpreted. */ wMode?: ChartLayoutMode; /** * `c:hMode`; how {@link ChartManualLayout.h} is interpreted. */ hMode?: ChartLayoutMode; /** * `c:x`; left position as a fraction of the chart area. */ x?: number; /** * `c:y`; top position as a fraction of the chart area. */ y?: number; /** * `c:w`; width as a fraction of the chart area. */ w?: number; /** * `c:h`; height as a fraction of the chart area. */ h?: number; };