Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@office-open/core

Package Overview
Dependencies
Maintainers
1
Versions
40
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@office-open/core - npm Package Compare versions

Comparing version
0.6.3
to
0.6.4
+87
dist/index-DigYTiB_.d.mts
import { C as XmlComponent } from "./index-mjYQ4KiG.mjs";
//#region src/smartart/categories.d.ts
/** Layout ID → OOXML category type */
declare const LAYOUT_CATEGORIES: Record<string, string>;
/** Style ID → OOXML category type */
declare const STYLE_CATEGORIES: Record<string, string>;
/** Color ID → OOXML category type */
declare const COLOR_CATEGORIES: Record<string, string>;
//#endregion
//#region src/smartart/built-in-definitions.d.ts
/**
* Returns layout XML. Full XML for "default", minimal stub for others.
* Stub has no layoutNode so PowerPoint falls back to built-in definitions
* based on the uniqueId / loTypeId in the data model.
*/
declare function getLayoutXml(layoutId: string): string;
/**
* Returns style stub XML with the given uniqueId.
*/
declare function getStyleXml(styleId: string): string;
/**
* Returns color stub XML with the given uniqueId.
*/
declare function getColorXml(colorId: string): string;
/** Minimal drawing cache for SmartArt (Office apps auto-regenerate this on open) */
declare const DEFAULT_DRAWING_XML: string;
//#endregion
//#region src/smartart/data-model/connection.d.ts
/**
* dgm:cxn — SmartArt data model connection (edge).
*/
declare class Connection extends XmlComponent {
constructor(modelId: string, srcId: string, destId: string, type?: string, srcOrd?: number, destOrd?: number, parTransId?: string, sibTransId?: string);
}
//#endregion
//#region src/smartart/data-model/data-model.d.ts
/**
* CT_DataModel — the complete data model for a SmartArt diagram.
*/
declare class DataModel extends XmlComponent {
constructor(points: readonly XmlComponent[], connections: readonly Connection[]);
}
//#endregion
//#region src/smartart/data-model/point.d.ts
/**
* dgm:pt — SmartArt data model point (node).
*/
declare class Point extends XmlComponent {
constructor(modelId: string, text: string, type?: string);
}
/**
* Transition point (parTrans or sibTrans) — no text body, references a connection.
*/
declare class TransPoint extends XmlComponent {
constructor(modelId: string, type: string, cxnId: string);
}
//#endregion
//#region src/smartart/smartart-collection.d.ts
interface SmartArtData {
readonly key: string;
readonly dataModel: DataModel;
readonly layout: string;
readonly style: string;
readonly color: string;
}
/**
* Manages SmartArt parts in a document.
*/
declare class SmartArtCollection {
private readonly map;
constructor();
addSmartArt(key: string, data: SmartArtData): void;
get array(): readonly SmartArtData[];
}
//#endregion
//#region src/smartart/tree-to-model.d.ts
interface TreeNode {
readonly text: string;
readonly children?: readonly TreeNode[];
}
/**
* Creates a DataModel from tree nodes with layout/style/color settings.
*/
declare const createDataModel: (nodes: readonly TreeNode[], layout?: string, style?: string, color?: string) => DataModel;
//#endregion
export { Point as a, Connection as c, getLayoutXml as d, getStyleXml as f, STYLE_CATEGORIES as h, SmartArtData as i, DEFAULT_DRAWING_XML as l, LAYOUT_CATEGORIES as m, createDataModel as n, TransPoint as o, COLOR_CATEGORIES as p, SmartArtCollection as r, DataModel as s, TreeNode as t, getColorXml as u };
import { b as XmlComponent, c as chartAttr } from "./xml-components-CADgke8j.mjs";
//#region src/smartart/categories.ts
/** Layout ID → OOXML category type */
const LAYOUT_CATEGORIES = {
default: "list",
list1: "list",
list2: "list",
vList2: "list",
hList1: "list",
pList1: "list",
process1: "process",
process2: "process",
process3: "process",
process4: "process",
chevron1: "process",
chevron2: "process",
arrow1: "process",
arrow2: "process",
cycle1: "cycle",
cycle2: "cycle",
cycle3: "cycle",
cycle4: "cycle",
cycle5: "cycle",
hierarchy1: "hier",
hierarchy2: "hier",
hierarchy3: "hier",
hierarchy4: "hier",
orgChart1: "hier",
pyramid1: "pyramid",
pyramid2: "pyramid",
pyramid3: "pyramid",
matrix1: "matrix",
matrix2: "matrix",
matrix3: "matrix",
radial1: "rel",
radial2: "rel",
radial3: "rel",
venn1: "rel",
funnel1: "rel",
balance1: "rel",
gear1: "rel",
constOrg1: "rel",
oppId1: "rel"
};
/** Style ID → OOXML category type */
const STYLE_CATEGORIES = {
simple1: "simple",
simple2: "simple",
simple3: "simple",
simple4: "simple",
simple5: "simple",
moderate1: "moderate",
moderate2: "moderate",
moderate3: "moderate",
moderate4: "moderate",
polished1: "polished",
polished2: "polished",
polished3: "polished",
polished4: "polished",
professional1: "professional",
professional2: "professional",
professional3: "professional",
professional4: "professional",
cartoon1: "cartoon",
cartoon2: "cartoon",
cartoon3: "cartoon",
cartoon4: "cartoon",
powdery1: "powdery",
powdery2: "powdery",
powdery3: "powdery",
powdery4: "powdery",
burnt1: "burnt",
burnt2: "burnt",
burnt3: "burnt",
burnt4: "burnt"
};
/** Color ID → OOXML category type */
const COLOR_CATEGORIES = {
accent1_2: "accent1",
accent2_2: "accent2",
accent3_2: "accent3",
accent4_2: "accent4",
accent5_2: "accent5",
accent6_2: "accent6",
colorful1: "colorful",
colorful2: "colorful",
colorful3: "colorful",
colorful4: "colorful",
dark1: "dark",
dark2: "dark",
primary1: "primary",
primary2: "primary",
gray1: "gray",
gray2: "gray"
};
//#endregion
//#region src/smartart/built-in-definitions.ts
const DGM_NS = "http://schemas.openxmlformats.org/drawingml/2006/diagram";
const XML_DECL = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>";
/** Full default list layout (urn:microsoft.com/office/officeart/2005/8/layout/default) */
const FULL_DEFAULT_LAYOUT_XML = "<dgm:layoutDef xmlns:dgm=\"" + DGM_NS + "\" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" uniqueId=\"urn:microsoft.com/office/officeart/2005/8/layout/default\"><dgm:title val=\"\"/><dgm:desc val=\"\"/><dgm:catLst><dgm:cat type=\"list\" pri=\"400\"/></dgm:catLst><dgm:sampData><dgm:dataModel><dgm:ptLst><dgm:pt modelId=\"0\" type=\"doc\"/><dgm:pt modelId=\"1\"><dgm:prSet phldr=\"1\"/></dgm:pt><dgm:pt modelId=\"2\"><dgm:prSet phldr=\"1\"/></dgm:pt><dgm:pt modelId=\"3\"><dgm:prSet phldr=\"1\"/></dgm:pt><dgm:pt modelId=\"4\"><dgm:prSet phldr=\"1\"/></dgm:pt><dgm:pt modelId=\"5\"><dgm:prSet phldr=\"1\"/></dgm:pt></dgm:ptLst><dgm:cxnLst><dgm:cxn modelId=\"6\" srcId=\"0\" destId=\"1\" srcOrd=\"0\" destOrd=\"0\"/><dgm:cxn modelId=\"7\" srcId=\"0\" destId=\"2\" srcOrd=\"1\" destOrd=\"0\"/><dgm:cxn modelId=\"8\" srcId=\"0\" destId=\"3\" srcOrd=\"2\" destOrd=\"0\"/><dgm:cxn modelId=\"9\" srcId=\"0\" destId=\"4\" srcOrd=\"3\" destOrd=\"0\"/><dgm:cxn modelId=\"10\" srcId=\"0\" destId=\"5\" srcOrd=\"4\" destOrd=\"0\"/></dgm:cxnLst><dgm:bg/><dgm:whole/></dgm:dataModel></dgm:sampData><dgm:styleData><dgm:dataModel><dgm:ptLst><dgm:pt modelId=\"0\" type=\"doc\"/><dgm:pt modelId=\"1\"/><dgm:pt modelId=\"2\"/></dgm:ptLst><dgm:cxnLst><dgm:cxn modelId=\"3\" srcId=\"0\" destId=\"1\" srcOrd=\"0\" destOrd=\"0\"/><dgm:cxn modelId=\"4\" srcId=\"0\" destId=\"2\" srcOrd=\"1\" destOrd=\"0\"/></dgm:cxnLst><dgm:bg/><dgm:whole/></dgm:dataModel></dgm:styleData><dgm:clrData><dgm:dataModel><dgm:ptLst><dgm:pt modelId=\"0\" type=\"doc\"/><dgm:pt modelId=\"1\"/><dgm:pt modelId=\"2\"/><dgm:pt modelId=\"3\"/><dgm:pt modelId=\"4\"/><dgm:pt modelId=\"5\"/><dgm:pt modelId=\"6\"/></dgm:ptLst><dgm:cxnLst><dgm:cxn modelId=\"7\" srcId=\"0\" destId=\"1\" srcOrd=\"0\" destOrd=\"0\"/><dgm:cxn modelId=\"8\" srcId=\"0\" destId=\"2\" srcOrd=\"1\" destOrd=\"0\"/><dgm:cxn modelId=\"9\" srcId=\"0\" destId=\"3\" srcOrd=\"2\" destOrd=\"0\"/><dgm:cxn modelId=\"10\" srcId=\"0\" destId=\"4\" srcOrd=\"3\" destOrd=\"0\"/><dgm:cxn modelId=\"11\" srcId=\"0\" destId=\"5\" srcOrd=\"4\" destOrd=\"0\"/><dgm:cxn modelId=\"12\" srcId=\"0\" destId=\"6\" srcOrd=\"5\" destOrd=\"0\"/></dgm:cxnLst><dgm:bg/><dgm:whole/></dgm:dataModel></dgm:clrData><dgm:layoutNode name=\"diagram\"><dgm:varLst><dgm:dir/><dgm:resizeHandles val=\"exact\"/></dgm:varLst><dgm:choose name=\"Name0\"><dgm:if name=\"Name1\" func=\"var\" arg=\"dir\" op=\"equ\" val=\"norm\"><dgm:alg type=\"snake\"><dgm:param type=\"grDir\" val=\"tL\"/><dgm:param type=\"flowDir\" val=\"row\"/><dgm:param type=\"contDir\" val=\"sameDir\"/><dgm:param type=\"off\" val=\"ctr\"/></dgm:alg></dgm:if><dgm:else name=\"Name2\"><dgm:alg type=\"snake\"><dgm:param type=\"grDir\" val=\"tR\"/><dgm:param type=\"flowDir\" val=\"row\"/><dgm:param type=\"contDir\" val=\"sameDir\"/><dgm:param type=\"off\" val=\"ctr\"/></dgm:alg></dgm:else></dgm:choose><dgm:shape xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" r:blip=\"\"><dgm:adjLst/></dgm:shape><dgm:presOf/><dgm:constrLst><dgm:constr type=\"w\" for=\"ch\" forName=\"node\" refType=\"w\"/><dgm:constr type=\"h\" for=\"ch\" forName=\"node\" refType=\"w\" refFor=\"ch\" refForName=\"node\" fact=\"0.6\"/><dgm:constr type=\"w\" for=\"ch\" forName=\"sibTrans\" refType=\"w\" refFor=\"ch\" refForName=\"node\" fact=\"0.1\"/><dgm:constr type=\"sp\" refType=\"w\" refFor=\"ch\" refForName=\"sibTrans\"/><dgm:constr type=\"primFontSz\" for=\"ch\" forName=\"node\" op=\"equ\" val=\"65\"/></dgm:constrLst><dgm:ruleLst/><dgm:forEach name=\"Name3\" axis=\"ch\" ptType=\"node\"><dgm:layoutNode name=\"node\"><dgm:varLst><dgm:bulletEnabled val=\"1\"/></dgm:varLst><dgm:alg type=\"tx\"/><dgm:shape type=\"rect\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" r:blip=\"\"><dgm:adjLst/></dgm:shape><dgm:presOf axis=\"desOrSelf\" ptType=\"node\"/><dgm:constrLst><dgm:constr type=\"lMarg\" refType=\"primFontSz\" fact=\"0.3\"/><dgm:constr type=\"rMarg\" refType=\"primFontSz\" fact=\"0.3\"/><dgm:constr type=\"tMarg\" refType=\"primFontSz\" fact=\"0.3\"/><dgm:constr type=\"bMarg\" refType=\"primFontSz\" fact=\"0.3\"/></dgm:constrLst><dgm:ruleLst><dgm:rule type=\"primFontSz\" val=\"5\" fact=\"NaN\" max=\"NaN\"/></dgm:ruleLst></dgm:layoutNode><dgm:forEach name=\"Name4\" axis=\"followSib\" ptType=\"sibTrans\" cnt=\"1\"><dgm:layoutNode name=\"sibTrans\"><dgm:alg type=\"sp\"/><dgm:shape xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" r:blip=\"\"><dgm:adjLst/></dgm:shape><dgm:presOf/><dgm:constrLst/><dgm:ruleLst/></dgm:layoutNode></dgm:forEach></dgm:layoutNode></dgm:layoutDef>";
/**
* Returns layout XML. Full XML for "default", minimal stub for others.
* Stub has no layoutNode so PowerPoint falls back to built-in definitions
* based on the uniqueId / loTypeId in the data model.
*/
function getLayoutXml(layoutId) {
if (layoutId === "default") return XML_DECL + FULL_DEFAULT_LAYOUT_XML;
const cat = LAYOUT_CATEGORIES[layoutId] ?? "list";
return XML_DECL + "<dgm:layoutDef xmlns:dgm=\"http://schemas.openxmlformats.org/drawingml/2006/diagram\" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" uniqueId=\"urn:microsoft.com/office/officeart/2005/8/layout/" + layoutId + "\"><dgm:title val=\"\"/><dgm:desc val=\"\"/><dgm:catLst><dgm:cat type=\"" + cat + "\" pri=\"400\"/></dgm:catLst><dgm:sampData><dgm:dataModel><dgm:ptLst><dgm:pt modelId=\"0\" type=\"doc\"/><dgm:pt modelId=\"1\"><dgm:prSet phldr=\"1\"/></dgm:pt><dgm:pt modelId=\"2\"><dgm:prSet phldr=\"1\"/></dgm:pt></dgm:ptLst><dgm:cxnLst><dgm:cxn modelId=\"3\" srcId=\"0\" destId=\"1\" srcOrd=\"0\" destOrd=\"0\"/><dgm:cxn modelId=\"4\" srcId=\"0\" destId=\"2\" srcOrd=\"1\" destOrd=\"0\"/></dgm:cxnLst><dgm:bg/><dgm:whole/></dgm:dataModel></dgm:sampData></dgm:layoutDef>";
}
/**
* Returns style stub XML with the given uniqueId.
*/
function getStyleXml(styleId) {
const cat = STYLE_CATEGORIES[styleId] ?? "simple";
return XML_DECL + "<dgm:styleDef xmlns:dgm=\"http://schemas.openxmlformats.org/drawingml/2006/diagram\" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" uniqueId=\"urn:microsoft.com/office/officeart/2005/8/quickstyle/" + styleId + "\"><dgm:title val=\"\"/><dgm:desc val=\"\"/><dgm:catLst><dgm:cat type=\"" + cat + "\" pri=\"10100\"/></dgm:catLst><dgm:scene3d><a:camera prst=\"orthographicFront\"/><a:lightRig rig=\"threePt\" dir=\"t\"/></dgm:scene3d></dgm:styleDef>";
}
/**
* Returns color stub XML with the given uniqueId.
*/
function getColorXml(colorId) {
const cat = COLOR_CATEGORIES[colorId] ?? "accent1";
return XML_DECL + "<dgm:colorsDef xmlns:dgm=\"http://schemas.openxmlformats.org/drawingml/2006/diagram\" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" uniqueId=\"urn:microsoft.com/office/officeart/2005/8/colors/" + colorId + "\"><dgm:title val=\"\"/><dgm:desc val=\"\"/><dgm:catLst><dgm:cat type=\"" + cat + "\" pri=\"11200\"/></dgm:catLst></dgm:colorsDef>";
}
/** Minimal drawing cache for SmartArt (Office apps auto-regenerate this on open) */
const DEFAULT_DRAWING_XML = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><dsp:drawing xmlns:dgm=\"http://schemas.openxmlformats.org/drawingml/2006/diagram\" xmlns:dsp=\"http://schemas.microsoft.com/office/drawing/2008/diagram\" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\"><dsp:spTree><dsp:nvGrpSpPr><dsp:cNvPr id=\"0\" name=\"\"/><dsp:cNvGrpSpPr/></dsp:nvGrpSpPr><dsp:grpSpPr/></dsp:spTree></dsp:drawing>";
//#endregion
//#region src/smartart/data-model/connection.ts
/**
* dgm:cxn — SmartArt data model connection (edge).
*/
var Connection = class extends XmlComponent {
constructor(modelId, srcId, destId, type, srcOrd = 0, destOrd = 0, parTransId, sibTransId) {
super("dgm:cxn");
const attrs = {
modelId,
srcId,
destId,
srcOrd,
destOrd
};
if (type) attrs.type = type;
if (parTransId) attrs.parTransId = parTransId;
if (sibTransId) attrs.sibTransId = sibTransId;
this.root.push(chartAttr(attrs));
}
};
//#endregion
//#region src/smartart/data-model/data-model.ts
/**
* CT_DataModel — the complete data model for a SmartArt diagram.
*/
var DataModel = class extends XmlComponent {
constructor(points, connections) {
super("dgm:dataModel");
this.root.push(chartAttr({
"xmlns:a": "http://schemas.openxmlformats.org/drawingml/2006/main",
"xmlns:dgm": "http://schemas.openxmlformats.org/drawingml/2006/diagram"
}));
const ptLst = new class extends XmlComponent {
constructor() {
super("dgm:ptLst");
}
}();
for (const pt of points) ptLst["root"].push(pt);
this.root.push(ptLst);
const cxnLst = new class extends XmlComponent {
constructor() {
super("dgm:cxnLst");
}
}();
for (const cxn of connections) cxnLst["root"].push(cxn);
this.root.push(cxnLst);
this.root.push(new EmptyElement$2("dgm:bg"));
this.root.push(new EmptyElement$2("dgm:whole"));
}
};
var EmptyElement$2 = class extends XmlComponent {
constructor(tag) {
super(tag);
}
};
//#endregion
//#region src/smartart/data-model/point.ts
/**
* dgm:pt — SmartArt data model point (node).
*/
var Point = class extends XmlComponent {
constructor(modelId, text, type = "node") {
super("dgm:pt");
this.root.push(chartAttr({
modelId,
type
}));
this.root.push(new PointText(text));
}
};
/**
* Transition point (parTrans or sibTrans) — no text body, references a connection.
*/
var TransPoint = class extends XmlComponent {
constructor(modelId, type, cxnId) {
super("dgm:pt");
this.root.push(chartAttr({
modelId,
type,
cxnId
}));
this.root.push(new EmptyElement$1("dgm:spPr"));
}
};
var EmptyElement$1 = class extends XmlComponent {
constructor(tag) {
super(tag);
}
};
/**
* dgm:t — text body within a point.
*/
var PointText = class extends XmlComponent {
constructor(text) {
super("dgm:t");
this.root.push(new EmptyElement$1("a:bodyPr"));
this.root.push(new EmptyElement$1("a:lstStyle"));
const p = new EmptyElement$1("a:p");
if (text) {
const t = new class extends XmlComponent {
constructor() {
super("a:t");
}
}();
t["root"].push(text);
const r = new class extends XmlComponent {
constructor() {
super("a:r");
}
}();
r["root"].push(t);
p["root"].push(r);
}
this.root.push(p);
}
};
//#endregion
//#region src/smartart/smartart-collection.ts
/**
* Manages SmartArt parts in a document.
*/
var SmartArtCollection = class {
map;
constructor() {
this.map = /* @__PURE__ */ new Map();
}
addSmartArt(key, data) {
this.map.set(key, data);
}
get array() {
return [...this.map.values()];
}
};
//#endregion
//#region src/smartart/tree-to-model.ts
function createDocPoint(layout, style, color) {
const pt = new class extends XmlComponent {
constructor() {
super("dgm:pt");
}
}();
pt["root"].push(chartAttr({
modelId: 0,
type: "doc"
}));
const prSet = new class extends XmlComponent {
constructor() {
super("dgm:prSet");
}
}();
prSet["root"].push(chartAttr({
loTypeId: `urn:microsoft.com/office/officeart/2005/8/layout/${layout}`,
loCatId: LAYOUT_CATEGORIES[layout] ?? "list",
qsTypeId: `urn:microsoft.com/office/officeart/2005/8/quickstyle/${style}`,
qsCatId: STYLE_CATEGORIES[style] ?? "simple",
csTypeId: `urn:microsoft.com/office/officeart/2005/8/colors/${color}`,
csCatId: COLOR_CATEGORIES[color] ?? "accent1",
phldr: "0"
}));
pt["root"].push(prSet);
pt["root"].push(new EmptyElement("dgm:spPr"));
pt["root"].push(createEmptyTextBody());
return pt;
}
function createEmptyTextBody() {
const t = new class extends XmlComponent {
constructor() {
super("dgm:t");
}
}();
t["root"].push(new EmptyElement("a:bodyPr"));
t["root"].push(new EmptyElement("a:lstStyle"));
t["root"].push(new EmptyElement("a:p"));
return t;
}
var EmptyElement = class extends XmlComponent {
constructor(tag) {
super(tag);
}
};
function uuid() {
return `{${crypto.randomUUID().toUpperCase()}}`;
}
/**
* Creates a DataModel from tree nodes with layout/style/color settings.
*/
const createDataModel = (nodes, layout = "default", style = "simple1", color = "accent1_2") => {
const points = [];
const connections = [];
points.push(createDocPoint(layout, style, color));
for (let i = 0; i < nodes.length; i++) {
const walk = (node, parentUuid, srcOrd) => {
const nodeUuid = uuid();
const parTransUuid = uuid();
const sibTransUuid = uuid();
const cxnUuid = uuid();
points.push(new TransPoint(parTransUuid, "parTrans", cxnUuid));
points.push(new TransPoint(sibTransUuid, "sibTrans", cxnUuid));
points.push(new Point(nodeUuid, node.text));
connections.push(new Connection(parTransUuid, parentUuid, nodeUuid, void 0, srcOrd, 0, parTransUuid, sibTransUuid));
if (node.children) for (let j = 0; j < node.children.length; j++) walk(node.children[j], nodeUuid, j);
};
walk(nodes[i], "0", i);
}
return new DataModel(points, connections);
};
//#endregion
export { DataModel as a, getColorXml as c, COLOR_CATEGORIES as d, LAYOUT_CATEGORIES as f, TransPoint as i, getLayoutXml as l, SmartArtCollection as n, Connection as o, STYLE_CATEGORIES as p, Point as r, DEFAULT_DRAWING_XML as s, createDataModel as t, getStyleXml as u };
import hash from "hash.js";
import { customAlphabet, nanoid } from "nanoid/non-secure";
//#region src/converters.ts
/**
* OOXML unit conversion utilities.
*
* @module
*/
/**
* Converts millimeters to TWIP (twentieths of a point).
*/
const convertMillimetersToTwip = (millimeters) => Math.floor(millimeters / 25.4 * 72 * 20);
/**
* Converts inches to TWIP (twentieths of a point).
*/
const convertInchesToTwip = (inches) => Math.floor(inches * 72 * 20);
/**
* Converts pixels to EMU (96 DPI).
*/
const convertPixelsToEmu = (pixels) => Math.round(pixels * 9525);
/**
* Converts EMU to pixels (96 DPI).
*/
const convertEmuToPixels = (emus) => Math.round(emus / 9525);
/**
* Converts inches to EMU.
*/
const convertInchesToEmu = (inches) => Math.round(inches * 914400);
/**
* Converts EMU to inches.
*/
const convertEmuToInches = (emus) => emus / 914400;
/**
* Converts points to EMU.
*/
const convertPointsToEmu = (points) => Math.round(points * 12700);
/**
* Converts EMU to points.
*/
const convertEmuToPoints = (emus) => emus / 12700;
//#endregion
//#region src/id-generators.ts
/**
* Unique ID generation utilities.
*
* @module
*/
/**
* Creates a unique numeric ID generator with sequential numbering.
*/
const uniqueNumericIdCreator = (initial = 0) => {
let currentCount = initial;
return () => ++currentCount;
};
/**
* Generates a unique lowercase alphanumeric ID using nanoid.
*/
const uniqueId = () => nanoid().toLowerCase();
/**
* Generates a SHA-1 hash of the provided data.
*/
const hashedId = (data) => hash.sha1().update(data instanceof ArrayBuffer ? new Uint8Array(data) : data).digest("hex");
/**
* Generates a random hexadecimal string of specified length.
*/
const generateUuidPart = (count) => customAlphabet("1234567890abcdef", count)();
/**
* Generates a UUID v4-style unique identifier.
*/
const uniqueUuid = () => `${generateUuidPart(8)}-${generateUuidPart(4)}-${generateUuidPart(4)}-${generateUuidPart(4)}-${generateUuidPart(12)}`;
//#endregion
//#region src/xsd-mappings.ts
/**
* Bidirectional mappings between user-friendly values and XSD abbreviated values.
*
* When XSD uses full English words (e.g. "center", "start"), values are used directly — no mapping needed.
* When XSD uses abbreviations (e.g. "ctr", "l", "rnd"), this module maps them to full words.
*
* Usage in generation (Options → XML): xsdAlign.to("center") → "ctr"
* Usage in parsing (XML → Options): xsdAlign.from("ctr") → "center"
*/
/** Invert a Record<K, V> into Record<V, K>. */
function invertMap(map) {
const result = {};
for (const key in map) result[map[key]] = key;
return result;
}
/** Create a bidirectional mapping helper from a single forward map. */
function bidi(forward) {
const reverse = invertMap(forward);
return {
/** User-friendly value → XSD value */
to: (key) => forward[key] ?? key,
/** XSD value → user-friendly value */
from: (xsd) => reverse[xsd] ?? xsd,
/** The forward map (user → XSD) */
forward,
/** The reverse map (XSD → user) */
reverse
};
}
const xsdRectAlignment = bidi({
topLeft: "tl",
top: "t",
topRight: "tr",
left: "l",
center: "ctr",
right: "r",
bottomLeft: "bl",
bottom: "b",
bottomRight: "br"
});
const xsdTextAlign = bidi({
left: "l",
center: "ctr",
right: "r",
justify: "just"
});
const xsdTextAnchor = bidi({
top: "t",
center: "ctr",
bottom: "b"
});
const xsdLineCap = bidi({
round: "rnd",
square: "sq",
flat: "flat"
});
const xsdCompoundLine = bidi({
single: "sng",
double: "dbl",
thickThin: "thickThin",
thinThick: "thinThick",
triple: "tri"
});
const xsdPenAlignment = bidi({
center: "ctr",
inside: "in"
});
const xsdLineEndSize = bidi({
small: "sm",
medium: "med",
large: "lg"
});
const xsdBlendMode = bidi({
over: "over",
multiply: "mult",
screen: "screen",
darken: "darken",
lighten: "lighten"
});
const xsdPathFillMode = bidi({
none: "none",
normal: "norm",
lighten: "lighten",
lightenLess: "lightenLess",
darken: "darken",
darkenLess: "darkenLess"
});
const xsdEffectContainer = bidi({
sibling: "sib",
tree: "tree"
});
const xsdPresetShadow = bidi({
shadow1: "shdw1",
shadow2: "shdw2",
shadow3: "shdw3",
shadow4: "shdw4",
shadow5: "shdw5",
shadow6: "shdw6",
shadow7: "shdw7",
shadow8: "shdw8",
shadow9: "shdw9",
shadow10: "shdw10",
shadow11: "shdw11",
shadow12: "shdw12",
shadow13: "shdw13",
shadow14: "shdw14",
shadow15: "shdw15",
shadow16: "shdw16",
shadow17: "shdw17",
shadow18: "shdw18",
shadow19: "shdw19",
shadow20: "shdw20"
});
const xsdMaterialType = bidi({
legacyMatte: "legacyMatte",
legacyPlastic: "legacyPlastic",
legacyMetal: "legacyMetal",
legacyWireframe: "legacyWireframe",
matte: "matte",
plastic: "plastic",
metal: "metal",
warmMatte: "warmMatte",
translucentPowder: "translucentPowder",
powder: "powder",
darkEdge: "dkEdge",
softEdge: "softEdge",
clear: "clear",
flat: "flat",
softMetal: "softmetal"
});
const xsdPattern = bidi({
percent5: "pct5",
percent10: "pct10",
percent20: "pct20",
percent25: "pct25",
percent30: "pct30",
percent40: "pct40",
percent50: "pct50",
percent60: "pct60",
percent70: "pct70",
percent75: "pct75",
percent80: "pct80",
percent90: "pct90",
horizontal: "horz",
vertical: "vert",
lightHorizontal: "ltHorz",
lightVertical: "ltVert",
darkHorizontal: "dkHorz",
darkVertical: "dkVert",
narrowHorizontal: "narHorz",
narrowVertical: "narVert",
dashedHorizontal: "dashHorz",
dashedVertical: "dashVert",
cross: "cross",
downDiagonal: "dnDiag",
upDiagonal: "upDiag",
lightDownDiagonal: "ltDnDiag",
lightUpDiagonal: "ltUpDiag",
darkDownDiagonal: "dkDnDiag",
darkUpDiagonal: "dkUpDiag",
wideDownDiagonal: "wdDnDiag",
wideUpDiagonal: "wdUpDiag",
dashedDownDiagonal: "dashDnDiag",
dashedUpDiagonal: "dashUpDiag",
diagonalCross: "diagCross",
smallChecker: "smCheck",
largeChecker: "lgCheck",
smallGrid: "smGrid",
largeGrid: "lgGrid",
dotGrid: "dotGrid",
smallConfetti: "smConfetti",
largeConfetti: "lgConfetti",
horizontalBrick: "horzBrick",
diagonalBrick: "diagBrick",
solidDiamond: "solidDmnd",
openDiamond: "openDmnd",
dottedDiamond: "dotDmnd",
plaid: "plaid",
sphere: "sphere",
weave: "weave",
divot: "divot",
shingle: "shingle",
wave: "wave",
trellis: "trellis",
zigZag: "zigZag"
});
const xsdVerticalMergeRev = bidi({
continue: "cont",
restart: "rest"
});
const xsdUnderlineStyle = bidi({
single: "sng",
double: "dbl",
none: "none"
});
const xsdStrikeStyle = bidi({
singleStrike: "sngStrike",
doubleStrike: "dblStrike",
noStrike: "noStrike"
});
const xsdTextCaps = bidi({
none: "none",
all: "all",
small: "small"
});
//#endregion
export { convertPointsToEmu as A, convertEmuToInches as C, convertInchesToTwip as D, convertInchesToEmu as E, convertMillimetersToTwip as O, uniqueUuid as S, convertEmuToPoints as T, xsdUnderlineStyle as _, xsdLineCap as a, uniqueId as b, xsdPathFillMode as c, xsdPresetShadow as d, xsdRectAlignment as f, xsdTextCaps as g, xsdTextAnchor as h, xsdEffectContainer as i, convertPixelsToEmu as k, xsdPattern as l, xsdTextAlign as m, xsdBlendMode as n, xsdLineEndSize as o, xsdStrikeStyle as p, xsdCompoundLine as r, xsdMaterialType as s, invertMap as t, xsdPenAlignment as u, xsdVerticalMergeRev as v, convertEmuToPixels as w, uniqueNumericIdCreator as x, hashedId as y };
+1
-1

@@ -101,3 +101,3 @@ import { C as XmlComponent } from "../index-mjYQ4KiG.mjs";

addChart(key: string, chartData: ChartData): void;
get Array(): readonly ChartData[];
get array(): readonly ChartData[];
}

@@ -104,0 +104,0 @@ //#endregion

@@ -606,3 +606,3 @@ import { a as BuilderElement, b as XmlComponent, c as chartAttr, h as wrapEl, o as EmptyElement } from "../xml-components-CADgke8j.mjs";

}
get Array() {
get array() {
return [...this.map.values()];

@@ -609,0 +609,0 @@ }

import { Relationship, elementToXml, findRel, findRelsByType, getImageType, listFiles, parseRels, readAllXmlParts, readBinaryFromZip, readTextFromZip, readXmlFromZip, uint8ToBase64, unzipToMap, zipToBuffer } from "./archive.mjs";
import { C as XmlComponent, D as IXmlableObject, E as IXmlAttribute, S as IgnoreIfEmptyXmlComponent, T as Context, _ as AttributeMap, a as BuilderElement, b as XmlAttributeComponent, c as chartAttr, d as onOffObj, f as stringContainerObj, g as AttributeData, h as wrapEl, i as convertToXmlComponent, l as hpsMeasureObj, m as stringValObj, n as ImportedRootElementAttributes, o as EmptyElement, p as stringEnumValObj, r as ImportedXmlComponent, s as attrObj, t as InitializableXmlComponent, u as numberValObj, v as AttributePayload, w as BaseXmlComponent, x as EMPTY_OBJECT, y as NextAttributeComponent } from "./index-mjYQ4KiG.mjs";
import { C as uCharHexNumber, S as twipsMeasureValue, T as unsignedDecimalNumber, _ as pointMeasureValue, a as ThemeColor, b as signedHpsMeasureValue, c as dateTimeValue, d as hexBinary, f as hexColorValue, g as percentageValue, h as measurementOrPercentValue, i as RelativeMeasure, l as decimalNumber, m as longHexNumber, n as PositivePercentage, o as ThemeFont, p as hpsMeasureValue, r as PositiveUniversalMeasure, s as UniversalMeasure, t as Percentage, u as eighthPointMeasureValue, v as positiveUniversalMeasureValue, w as universalMeasureValue, x as signedTwipsMeasureValue, y as shortHexNumber } from "./values-CIh0bdS1.mjs";
import { a as Point, c as Connection, d as getLayoutXml, f as getStyleXml, h as STYLE_CATEGORIES, i as SmartArtData, l as DEFAULT_DRAWING_XML, m as LAYOUT_CATEGORIES, n as createDataModel, o as TransPoint, p as COLOR_CATEGORIES, r as SmartArtCollection, s as DataModel, t as TreeNode, u as getColorXml } from "./index-DVqYs1vv.mjs";
import { a as Point, c as Connection, d as getLayoutXml, f as getStyleXml, h as STYLE_CATEGORIES, i as SmartArtData, l as DEFAULT_DRAWING_XML, m as LAYOUT_CATEGORIES, n as createDataModel, o as TransPoint, p as COLOR_CATEGORIES, r as SmartArtCollection, s as DataModel, t as TreeNode, u as getColorXml } from "./index-DigYTiB_.mjs";
import { Element } from "@office-open/xml";

@@ -207,3 +207,3 @@ import { ZipOptions, Zippable, Zippable as Zippable$1, strFromU8, unzipSync } from "fflate";

addRelationship(id: number | string, type: RelationshipType, target: string, targetMode?: (typeof TargetModeType)[keyof typeof TargetModeType]): void;
get RelationshipCount(): number;
get relationshipCount(): number;
prepForXml(_context: Context): IXmlableObject;

@@ -350,2 +350,117 @@ }

//#endregion
export { AppProperties, AttributeData, AttributeMap, AttributePayload, BaseXmlComponent, BuilderElement, COLOR_CATEGORIES, CompileFn, Connection, Context, CoreProperties, DEFAULT_DRAWING_XML, DataModel, type DefaultAttributes, EMPTY_OBJECT, EmptyElement, Formatter, IXmlAttribute, IXmlableObject, IdFormat, IgnoreIfEmptyXmlComponent, ImportedRootElementAttributes, ImportedXmlComponent, InitializableXmlComponent, LAYOUT_CATEGORIES, NextAttributeComponent, OoxmlMimeType, OutputByType, OutputType, type OverrideAttributes, Packer, ParsedDocument, Percentage, Point, PositivePercentage, PositiveUniversalMeasure, PrettifyType, RawPassthrough, Relationship, type RelationshipType, Relationships, RelativeMeasure, STYLE_CATEGORIES, SmartArtCollection, SmartArtData, SmartArtRelOptions, TargetModeType, ThemeColor, ThemeFont, TransPoint, TreeNode, UniqueNumericIdCreator, UniversalMeasure, XmlAttributeComponent, XmlComponent, XmlifyedFile, ZIP_DEFLATE_LEVEL, ZIP_STORED_LEVEL, type ZipOptions, type Zippable, addSmartArtRelationships, attrObj, buildCorePropertiesXml, chartAttr, collectPlaceholderKeys, convertEmuToInches, convertEmuToPixels, convertEmuToPoints, convertInchesToEmu, convertInchesToTwip, convertMillimetersToTwip, convertOutput, convertPixelsToEmu, convertPointsToEmu, convertPrettifyType, convertToXmlComponent, createDataModel, createDefault, createOverride, createPacker, createZipStream, dateTimeValue, decimalNumber, eighthPointMeasureValue, elementToCompact, elementToXml, escapeRegex, findRel, findRelsByType, formatId, getColorXml, getImageType, getLayoutXml, getReferencedMedia, getStyleXml, hasPlaceholders, hashedId, hexBinary, hexColorValue, hpsMeasureObj, hpsMeasureValue, listFiles, longHexNumber, measurementOrPercentValue, numberValObj, onOffObj, parseArchive, parseCoreProperties, parseCorePropsElement, parseRels, percentageValue, pointMeasureValue, positiveUniversalMeasureValue, readAllXmlParts, readBinaryFromZip, readTextFromZip, readXmlFromZip, replaceChartPlaceholders, replaceImagePlaceholders, replaceSmartArtPlaceholders, shortHexNumber, signedHpsMeasureValue, signedTwipsMeasureValue, strFromU8, stringContainerObj, stringEnumValObj, stringValObj, twipsMeasureValue, uCharHexNumber, uint8ToBase64, uniqueId, uniqueNumericIdCreator, uniqueUuid, universalMeasureValue, unsignedDecimalNumber, unzipSync, unzipToMap, wrapEl, zipAndConvert, zipSyncAndConvert, zipToBuffer };
//#region src/xsd-mappings.d.ts
/**
* Bidirectional mappings between user-friendly values and XSD abbreviated values.
*
* When XSD uses full English words (e.g. "center", "start"), values are used directly — no mapping needed.
* When XSD uses abbreviations (e.g. "ctr", "l", "rnd"), this module maps them to full words.
*
* Usage in generation (Options → XML): xsdAlign.to("center") → "ctr"
* Usage in parsing (XML → Options): xsdAlign.from("ctr") → "center"
*/
/** Invert a Record<K, V> into Record<V, K>. */
declare function invertMap<K extends string, V extends string>(map: Record<K, V>): Record<V, K>;
declare const xsdRectAlignment: {
/** User-friendly value → XSD value */to: (key: string) => string; /** XSD value → user-friendly value */
from: (xsd: string) => string; /** The forward map (user → XSD) */
forward: Record<"center" | "topLeft" | "top" | "topRight" | "left" | "right" | "bottomLeft" | "bottom" | "bottomRight", "tl" | "t" | "tr" | "l" | "ctr" | "r" | "bl" | "b" | "br">; /** The reverse map (XSD → user) */
reverse: Record<"tl" | "t" | "tr" | "l" | "ctr" | "r" | "bl" | "b" | "br", "center" | "topLeft" | "top" | "topRight" | "left" | "right" | "bottomLeft" | "bottom" | "bottomRight">;
};
declare const xsdTextAlign: {
/** User-friendly value → XSD value */to: (key: string) => string; /** XSD value → user-friendly value */
from: (xsd: string) => string; /** The forward map (user → XSD) */
forward: Record<"center" | "left" | "right" | "justify", "l" | "ctr" | "r" | "just">; /** The reverse map (XSD → user) */
reverse: Record<"l" | "ctr" | "r" | "just", "center" | "left" | "right" | "justify">;
};
declare const xsdTextAnchor: {
/** User-friendly value → XSD value */to: (key: string) => string; /** XSD value → user-friendly value */
from: (xsd: string) => string; /** The forward map (user → XSD) */
forward: Record<"center" | "top" | "bottom", "t" | "ctr" | "b">; /** The reverse map (XSD → user) */
reverse: Record<"t" | "ctr" | "b", "center" | "top" | "bottom">;
};
declare const xsdLineCap: {
/** User-friendly value → XSD value */to: (key: string) => string; /** XSD value → user-friendly value */
from: (xsd: string) => string; /** The forward map (user → XSD) */
forward: Record<"flat" | "round" | "square", "flat" | "rnd" | "sq">; /** The reverse map (XSD → user) */
reverse: Record<"flat" | "rnd" | "sq", "flat" | "round" | "square">;
};
declare const xsdCompoundLine: {
/** User-friendly value → XSD value */to: (key: string) => string; /** XSD value → user-friendly value */
from: (xsd: string) => string; /** The forward map (user → XSD) */
forward: Record<"single" | "double" | "thickThin" | "thinThick" | "triple", "thickThin" | "thinThick" | "sng" | "dbl" | "tri">; /** The reverse map (XSD → user) */
reverse: Record<"thickThin" | "thinThick" | "sng" | "dbl" | "tri", "single" | "double" | "thickThin" | "thinThick" | "triple">;
};
declare const xsdPenAlignment: {
/** User-friendly value → XSD value */to: (key: string) => string; /** XSD value → user-friendly value */
from: (xsd: string) => string; /** The forward map (user → XSD) */
forward: Record<"center" | "inside", "in" | "ctr">; /** The reverse map (XSD → user) */
reverse: Record<"in" | "ctr", "center" | "inside">;
};
declare const xsdLineEndSize: {
/** User-friendly value → XSD value */to: (key: string) => string; /** XSD value → user-friendly value */
from: (xsd: string) => string; /** The forward map (user → XSD) */
forward: Record<"small" | "medium" | "large", "sm" | "med" | "lg">; /** The reverse map (XSD → user) */
reverse: Record<"sm" | "med" | "lg", "small" | "medium" | "large">;
};
declare const xsdBlendMode: {
/** User-friendly value → XSD value */to: (key: string) => string; /** XSD value → user-friendly value */
from: (xsd: string) => string; /** The forward map (user → XSD) */
forward: Record<"lighten" | "darken" | "over" | "multiply" | "screen", "lighten" | "darken" | "over" | "screen" | "mult">; /** The reverse map (XSD → user) */
reverse: Record<"lighten" | "darken" | "over" | "screen" | "mult", "lighten" | "darken" | "over" | "multiply" | "screen">;
};
declare const xsdPathFillMode: {
/** User-friendly value → XSD value */to: (key: string) => string; /** XSD value → user-friendly value */
from: (xsd: string) => string; /** The forward map (user → XSD) */
forward: Record<"none" | "normal" | "lighten" | "lightenLess" | "darken" | "darkenLess", "none" | "lighten" | "lightenLess" | "darken" | "darkenLess" | "norm">; /** The reverse map (XSD → user) */
reverse: Record<"none" | "lighten" | "lightenLess" | "darken" | "darkenLess" | "norm", "none" | "normal" | "lighten" | "lightenLess" | "darken" | "darkenLess">;
};
declare const xsdEffectContainer: {
/** User-friendly value → XSD value */to: (key: string) => string; /** XSD value → user-friendly value */
from: (xsd: string) => string; /** The forward map (user → XSD) */
forward: Record<"sibling" | "tree", "tree" | "sib">; /** The reverse map (XSD → user) */
reverse: Record<"tree" | "sib", "sibling" | "tree">;
};
declare const xsdPresetShadow: {
/** User-friendly value → XSD value */to: (key: string) => string; /** XSD value → user-friendly value */
from: (xsd: string) => string; /** The forward map (user → XSD) */
forward: Record<"shadow1" | "shadow2" | "shadow3" | "shadow4" | "shadow5" | "shadow6" | "shadow7" | "shadow8" | "shadow9" | "shadow10" | "shadow11" | "shadow12" | "shadow13" | "shadow14" | "shadow15" | "shadow16" | "shadow17" | "shadow18" | "shadow19" | "shadow20", "shdw1" | "shdw2" | "shdw3" | "shdw4" | "shdw5" | "shdw6" | "shdw7" | "shdw8" | "shdw9" | "shdw10" | "shdw11" | "shdw12" | "shdw13" | "shdw14" | "shdw15" | "shdw16" | "shdw17" | "shdw18" | "shdw19" | "shdw20">; /** The reverse map (XSD → user) */
reverse: Record<"shdw1" | "shdw2" | "shdw3" | "shdw4" | "shdw5" | "shdw6" | "shdw7" | "shdw8" | "shdw9" | "shdw10" | "shdw11" | "shdw12" | "shdw13" | "shdw14" | "shdw15" | "shdw16" | "shdw17" | "shdw18" | "shdw19" | "shdw20", "shadow1" | "shadow2" | "shadow3" | "shadow4" | "shadow5" | "shadow6" | "shadow7" | "shadow8" | "shadow9" | "shadow10" | "shadow11" | "shadow12" | "shadow13" | "shadow14" | "shadow15" | "shadow16" | "shadow17" | "shadow18" | "shadow19" | "shadow20">;
};
declare const xsdMaterialType: {
/** User-friendly value → XSD value */to: (key: string) => string; /** XSD value → user-friendly value */
from: (xsd: string) => string; /** The forward map (user → XSD) */
forward: Record<"legacyMatte" | "legacyPlastic" | "legacyMetal" | "legacyWireframe" | "matte" | "plastic" | "metal" | "warmMatte" | "translucentPowder" | "powder" | "darkEdge" | "softEdge" | "clear" | "flat" | "softMetal", "legacyMatte" | "legacyPlastic" | "legacyMetal" | "legacyWireframe" | "matte" | "plastic" | "metal" | "warmMatte" | "translucentPowder" | "powder" | "softEdge" | "clear" | "flat" | "dkEdge" | "softmetal">; /** The reverse map (XSD → user) */
reverse: Record<"legacyMatte" | "legacyPlastic" | "legacyMetal" | "legacyWireframe" | "matte" | "plastic" | "metal" | "warmMatte" | "translucentPowder" | "powder" | "softEdge" | "clear" | "flat" | "dkEdge" | "softmetal", "legacyMatte" | "legacyPlastic" | "legacyMetal" | "legacyWireframe" | "matte" | "plastic" | "metal" | "warmMatte" | "translucentPowder" | "powder" | "darkEdge" | "softEdge" | "clear" | "flat" | "softMetal">;
};
declare const xsdPattern: {
/** User-friendly value → XSD value */to: (key: string) => string; /** XSD value → user-friendly value */
from: (xsd: string) => string; /** The forward map (user → XSD) */
forward: Record<"percent5" | "percent10" | "percent20" | "percent25" | "percent30" | "percent40" | "percent50" | "percent60" | "percent70" | "percent75" | "percent80" | "percent90" | "horizontal" | "vertical" | "lightHorizontal" | "lightVertical" | "darkHorizontal" | "darkVertical" | "narrowHorizontal" | "narrowVertical" | "dashedHorizontal" | "dashedVertical" | "cross" | "downDiagonal" | "upDiagonal" | "lightDownDiagonal" | "lightUpDiagonal" | "darkDownDiagonal" | "darkUpDiagonal" | "wideDownDiagonal" | "wideUpDiagonal" | "dashedDownDiagonal" | "dashedUpDiagonal" | "diagonalCross" | "smallChecker" | "largeChecker" | "smallGrid" | "largeGrid" | "dotGrid" | "smallConfetti" | "largeConfetti" | "horizontalBrick" | "diagonalBrick" | "solidDiamond" | "openDiamond" | "dottedDiamond" | "plaid" | "sphere" | "weave" | "divot" | "shingle" | "wave" | "trellis" | "zigZag", "cross" | "dotGrid" | "plaid" | "sphere" | "weave" | "divot" | "shingle" | "wave" | "trellis" | "zigZag" | "pct5" | "pct10" | "pct20" | "pct25" | "pct30" | "pct40" | "pct50" | "pct60" | "pct70" | "pct75" | "pct80" | "pct90" | "horz" | "vert" | "ltHorz" | "ltVert" | "dkHorz" | "dkVert" | "narHorz" | "narVert" | "dashHorz" | "dashVert" | "dnDiag" | "upDiag" | "ltDnDiag" | "ltUpDiag" | "dkDnDiag" | "dkUpDiag" | "wdDnDiag" | "wdUpDiag" | "dashDnDiag" | "dashUpDiag" | "diagCross" | "smCheck" | "lgCheck" | "smGrid" | "lgGrid" | "smConfetti" | "lgConfetti" | "horzBrick" | "diagBrick" | "solidDmnd" | "openDmnd" | "dotDmnd">; /** The reverse map (XSD → user) */
reverse: Record<"cross" | "dotGrid" | "plaid" | "sphere" | "weave" | "divot" | "shingle" | "wave" | "trellis" | "zigZag" | "pct5" | "pct10" | "pct20" | "pct25" | "pct30" | "pct40" | "pct50" | "pct60" | "pct70" | "pct75" | "pct80" | "pct90" | "horz" | "vert" | "ltHorz" | "ltVert" | "dkHorz" | "dkVert" | "narHorz" | "narVert" | "dashHorz" | "dashVert" | "dnDiag" | "upDiag" | "ltDnDiag" | "ltUpDiag" | "dkDnDiag" | "dkUpDiag" | "wdDnDiag" | "wdUpDiag" | "dashDnDiag" | "dashUpDiag" | "diagCross" | "smCheck" | "lgCheck" | "smGrid" | "lgGrid" | "smConfetti" | "lgConfetti" | "horzBrick" | "diagBrick" | "solidDmnd" | "openDmnd" | "dotDmnd", "percent5" | "percent10" | "percent20" | "percent25" | "percent30" | "percent40" | "percent50" | "percent60" | "percent70" | "percent75" | "percent80" | "percent90" | "horizontal" | "vertical" | "lightHorizontal" | "lightVertical" | "darkHorizontal" | "darkVertical" | "narrowHorizontal" | "narrowVertical" | "dashedHorizontal" | "dashedVertical" | "cross" | "downDiagonal" | "upDiagonal" | "lightDownDiagonal" | "lightUpDiagonal" | "darkDownDiagonal" | "darkUpDiagonal" | "wideDownDiagonal" | "wideUpDiagonal" | "dashedDownDiagonal" | "dashedUpDiagonal" | "diagonalCross" | "smallChecker" | "largeChecker" | "smallGrid" | "largeGrid" | "dotGrid" | "smallConfetti" | "largeConfetti" | "horizontalBrick" | "diagonalBrick" | "solidDiamond" | "openDiamond" | "dottedDiamond" | "plaid" | "sphere" | "weave" | "divot" | "shingle" | "wave" | "trellis" | "zigZag">;
};
declare const xsdVerticalMergeRev: {
/** User-friendly value → XSD value */to: (key: string) => string; /** XSD value → user-friendly value */
from: (xsd: string) => string; /** The forward map (user → XSD) */
forward: Record<"continue" | "restart", "cont" | "rest">; /** The reverse map (XSD → user) */
reverse: Record<"cont" | "rest", "continue" | "restart">;
};
declare const xsdUnderlineStyle: {
/** User-friendly value → XSD value */to: (key: string) => string; /** XSD value → user-friendly value */
from: (xsd: string) => string; /** The forward map (user → XSD) */
forward: Record<"none" | "single" | "double", "none" | "sng" | "dbl">; /** The reverse map (XSD → user) */
reverse: Record<"none" | "sng" | "dbl", "none" | "single" | "double">;
};
declare const xsdStrikeStyle: {
/** User-friendly value → XSD value */to: (key: string) => string; /** XSD value → user-friendly value */
from: (xsd: string) => string; /** The forward map (user → XSD) */
forward: Record<"singleStrike" | "doubleStrike" | "noStrike", "sngStrike" | "dblStrike" | "noStrike">; /** The reverse map (XSD → user) */
reverse: Record<"sngStrike" | "dblStrike" | "noStrike", "singleStrike" | "doubleStrike" | "noStrike">;
};
declare const xsdTextCaps: {
/** User-friendly value → XSD value */to: (key: string) => string; /** XSD value → user-friendly value */
from: (xsd: string) => string; /** The forward map (user → XSD) */
forward: Record<"none" | "small" | "all", "none" | "small" | "all">; /** The reverse map (XSD → user) */
reverse: Record<"none" | "small" | "all", "none" | "small" | "all">;
};
//#endregion
export { AppProperties, AttributeData, AttributeMap, AttributePayload, BaseXmlComponent, BuilderElement, COLOR_CATEGORIES, CompileFn, Connection, Context, CoreProperties, DEFAULT_DRAWING_XML, DataModel, type DefaultAttributes, EMPTY_OBJECT, EmptyElement, Formatter, IXmlAttribute, IXmlableObject, IdFormat, IgnoreIfEmptyXmlComponent, ImportedRootElementAttributes, ImportedXmlComponent, InitializableXmlComponent, LAYOUT_CATEGORIES, NextAttributeComponent, OoxmlMimeType, OutputByType, OutputType, type OverrideAttributes, Packer, ParsedDocument, Percentage, Point, PositivePercentage, PositiveUniversalMeasure, PrettifyType, RawPassthrough, Relationship, type RelationshipType, Relationships, RelativeMeasure, STYLE_CATEGORIES, SmartArtCollection, SmartArtData, SmartArtRelOptions, TargetModeType, ThemeColor, ThemeFont, TransPoint, TreeNode, UniqueNumericIdCreator, UniversalMeasure, XmlAttributeComponent, XmlComponent, XmlifyedFile, ZIP_DEFLATE_LEVEL, ZIP_STORED_LEVEL, type ZipOptions, type Zippable, addSmartArtRelationships, attrObj, buildCorePropertiesXml, chartAttr, collectPlaceholderKeys, convertEmuToInches, convertEmuToPixels, convertEmuToPoints, convertInchesToEmu, convertInchesToTwip, convertMillimetersToTwip, convertOutput, convertPixelsToEmu, convertPointsToEmu, convertPrettifyType, convertToXmlComponent, createDataModel, createDefault, createOverride, createPacker, createZipStream, dateTimeValue, decimalNumber, eighthPointMeasureValue, elementToCompact, elementToXml, escapeRegex, findRel, findRelsByType, formatId, getColorXml, getImageType, getLayoutXml, getReferencedMedia, getStyleXml, hasPlaceholders, hashedId, hexBinary, hexColorValue, hpsMeasureObj, hpsMeasureValue, invertMap, listFiles, longHexNumber, measurementOrPercentValue, numberValObj, onOffObj, parseArchive, parseCoreProperties, parseCorePropsElement, parseRels, percentageValue, pointMeasureValue, positiveUniversalMeasureValue, readAllXmlParts, readBinaryFromZip, readTextFromZip, readXmlFromZip, replaceChartPlaceholders, replaceImagePlaceholders, replaceSmartArtPlaceholders, shortHexNumber, signedHpsMeasureValue, signedTwipsMeasureValue, strFromU8, stringContainerObj, stringEnumValObj, stringValObj, twipsMeasureValue, uCharHexNumber, uint8ToBase64, uniqueId, uniqueNumericIdCreator, uniqueUuid, universalMeasureValue, unsignedDecimalNumber, unzipSync, unzipToMap, wrapEl, xsdBlendMode, xsdCompoundLine, xsdEffectContainer, xsdLineCap, xsdLineEndSize, xsdMaterialType, xsdPathFillMode, xsdPattern, xsdPenAlignment, xsdPresetShadow, xsdRectAlignment, xsdStrikeStyle, xsdTextAlign, xsdTextAnchor, xsdTextCaps, xsdUnderlineStyle, xsdVerticalMergeRev, zipAndConvert, zipSyncAndConvert, zipToBuffer };
import { _ as XmlAttributeComponent, a as BuilderElement, b as XmlComponent, c as chartAttr, d as onOffObj, f as stringContainerObj, g as NextAttributeComponent, h as wrapEl, i as convertToXmlComponent, l as hpsMeasureObj, m as stringValObj, n as ImportedRootElementAttributes, o as EmptyElement, p as stringEnumValObj, r as ImportedXmlComponent, s as attrObj, t as InitializableXmlComponent, u as numberValObj, v as EMPTY_OBJECT, x as BaseXmlComponent, y as IgnoreIfEmptyXmlComponent } from "./xml-components-CADgke8j.mjs";
import { ThemeColor, ThemeFont, dateTimeValue, decimalNumber, eighthPointMeasureValue, hexBinary, hexColorValue, hpsMeasureValue, longHexNumber, measurementOrPercentValue, percentageValue, pointMeasureValue, positiveUniversalMeasureValue, shortHexNumber, signedHpsMeasureValue, signedTwipsMeasureValue, twipsMeasureValue, uCharHexNumber, universalMeasureValue, unsignedDecimalNumber } from "./values.mjs";
import { a as convertEmuToInches, c as convertInchesToEmu, d as convertPixelsToEmu, f as convertPointsToEmu, i as uniqueUuid, l as convertInchesToTwip, n as uniqueId, o as convertEmuToPixels, r as uniqueNumericIdCreator, s as convertEmuToPoints, t as hashedId, u as convertMillimetersToTwip } from "./id-generators-CM3u923a.mjs";
import { a as DataModel, c as getColorXml, d as COLOR_CATEGORIES, f as LAYOUT_CATEGORIES, i as TransPoint, l as getLayoutXml, n as SmartArtCollection, o as Connection, p as STYLE_CATEGORIES, r as Point, s as DEFAULT_DRAWING_XML, t as createDataModel, u as getStyleXml } from "./smartart-CwzSHTBd.mjs";
import { A as convertPointsToEmu, C as convertEmuToInches, D as convertInchesToTwip, E as convertInchesToEmu, O as convertMillimetersToTwip, S as uniqueUuid, T as convertEmuToPoints, _ as xsdUnderlineStyle, a as xsdLineCap, b as uniqueId, c as xsdPathFillMode, d as xsdPresetShadow, f as xsdRectAlignment, g as xsdTextCaps, h as xsdTextAnchor, i as xsdEffectContainer, k as convertPixelsToEmu, l as xsdPattern, m as xsdTextAlign, n as xsdBlendMode, o as xsdLineEndSize, p as xsdStrikeStyle, r as xsdCompoundLine, s as xsdMaterialType, t as invertMap, u as xsdPenAlignment, v as xsdVerticalMergeRev, w as convertEmuToPixels, x as uniqueNumericIdCreator, y as hashedId } from "./xsd-mappings-BiTj9yJn.mjs";
import { a as DataModel, c as getColorXml, d as COLOR_CATEGORIES, f as LAYOUT_CATEGORIES, i as TransPoint, l as getLayoutXml, n as SmartArtCollection, o as Connection, p as STYLE_CATEGORIES, r as Point, s as DEFAULT_DRAWING_XML, t as createDataModel, u as getStyleXml } from "./smartart-DBQ_rRfK.mjs";
import { elementToXml, findRel, findRelsByType, getImageType, listFiles, parseRels, readAllXmlParts, readBinaryFromZip, readTextFromZip, readXmlFromZip, uint8ToBase64, unzipToMap, zipToBuffer } from "./archive.mjs";

@@ -193,3 +193,3 @@ import { js2xml, textOf, xml2js } from "@office-open/xml";

}
get RelationshipCount() {
get relationshipCount() {
return this.entries.length;

@@ -549,2 +549,2 @@ }

//#endregion
export { AppProperties, BaseXmlComponent, BuilderElement, COLOR_CATEGORIES, Connection, DEFAULT_DRAWING_XML, DataModel, EMPTY_OBJECT, EmptyElement, Formatter, IgnoreIfEmptyXmlComponent, ImportedRootElementAttributes, ImportedXmlComponent, InitializableXmlComponent, LAYOUT_CATEGORIES, NextAttributeComponent, OoxmlMimeType, ParsedDocument, Point, PrettifyType, RawPassthrough, Relationships, STYLE_CATEGORIES, SmartArtCollection, TargetModeType, ThemeColor, ThemeFont, TransPoint, XmlAttributeComponent, XmlComponent, ZIP_DEFLATE_LEVEL, ZIP_STORED_LEVEL, addSmartArtRelationships, attrObj, buildCorePropertiesXml, chartAttr, collectPlaceholderKeys, convertEmuToInches, convertEmuToPixels, convertEmuToPoints, convertInchesToEmu, convertInchesToTwip, convertMillimetersToTwip, convertOutput, convertPixelsToEmu, convertPointsToEmu, convertPrettifyType, convertToXmlComponent, createDataModel, createDefault, createOverride, createPacker, createZipStream, dateTimeValue, decimalNumber, eighthPointMeasureValue, elementToCompact, elementToXml, escapeRegex, findRel, findRelsByType, formatId, getColorXml, getImageType, getLayoutXml, getReferencedMedia, getStyleXml, hasPlaceholders, hashedId, hexBinary, hexColorValue, hpsMeasureObj, hpsMeasureValue, listFiles, longHexNumber, measurementOrPercentValue, numberValObj, onOffObj, parseArchive, parseCoreProperties, parseCorePropsElement, parseRels, percentageValue, pointMeasureValue, positiveUniversalMeasureValue, readAllXmlParts, readBinaryFromZip, readTextFromZip, readXmlFromZip, replaceChartPlaceholders, replaceImagePlaceholders, replaceSmartArtPlaceholders, shortHexNumber, signedHpsMeasureValue, signedTwipsMeasureValue, strFromU8, stringContainerObj, stringEnumValObj, stringValObj, twipsMeasureValue, uCharHexNumber, uint8ToBase64, uniqueId, uniqueNumericIdCreator, uniqueUuid, universalMeasureValue, unsignedDecimalNumber, unzipSync, unzipToMap, wrapEl, zipAndConvert, zipSyncAndConvert, zipToBuffer };
export { AppProperties, BaseXmlComponent, BuilderElement, COLOR_CATEGORIES, Connection, DEFAULT_DRAWING_XML, DataModel, EMPTY_OBJECT, EmptyElement, Formatter, IgnoreIfEmptyXmlComponent, ImportedRootElementAttributes, ImportedXmlComponent, InitializableXmlComponent, LAYOUT_CATEGORIES, NextAttributeComponent, OoxmlMimeType, ParsedDocument, Point, PrettifyType, RawPassthrough, Relationships, STYLE_CATEGORIES, SmartArtCollection, TargetModeType, ThemeColor, ThemeFont, TransPoint, XmlAttributeComponent, XmlComponent, ZIP_DEFLATE_LEVEL, ZIP_STORED_LEVEL, addSmartArtRelationships, attrObj, buildCorePropertiesXml, chartAttr, collectPlaceholderKeys, convertEmuToInches, convertEmuToPixels, convertEmuToPoints, convertInchesToEmu, convertInchesToTwip, convertMillimetersToTwip, convertOutput, convertPixelsToEmu, convertPointsToEmu, convertPrettifyType, convertToXmlComponent, createDataModel, createDefault, createOverride, createPacker, createZipStream, dateTimeValue, decimalNumber, eighthPointMeasureValue, elementToCompact, elementToXml, escapeRegex, findRel, findRelsByType, formatId, getColorXml, getImageType, getLayoutXml, getReferencedMedia, getStyleXml, hasPlaceholders, hashedId, hexBinary, hexColorValue, hpsMeasureObj, hpsMeasureValue, invertMap, listFiles, longHexNumber, measurementOrPercentValue, numberValObj, onOffObj, parseArchive, parseCoreProperties, parseCorePropsElement, parseRels, percentageValue, pointMeasureValue, positiveUniversalMeasureValue, readAllXmlParts, readBinaryFromZip, readTextFromZip, readXmlFromZip, replaceChartPlaceholders, replaceImagePlaceholders, replaceSmartArtPlaceholders, shortHexNumber, signedHpsMeasureValue, signedTwipsMeasureValue, strFromU8, stringContainerObj, stringEnumValObj, stringValObj, twipsMeasureValue, uCharHexNumber, uint8ToBase64, uniqueId, uniqueNumericIdCreator, uniqueUuid, universalMeasureValue, unsignedDecimalNumber, unzipSync, unzipToMap, wrapEl, xsdBlendMode, xsdCompoundLine, xsdEffectContainer, xsdLineCap, xsdLineEndSize, xsdMaterialType, xsdPathFillMode, xsdPattern, xsdPenAlignment, xsdPresetShadow, xsdRectAlignment, xsdStrikeStyle, xsdTextAlign, xsdTextAnchor, xsdTextCaps, xsdUnderlineStyle, xsdVerticalMergeRev, zipAndConvert, zipSyncAndConvert, zipToBuffer };

@@ -1,2 +0,2 @@

import { a as Point, c as Connection, d as getLayoutXml, f as getStyleXml, h as STYLE_CATEGORIES, i as SmartArtData, l as DEFAULT_DRAWING_XML, m as LAYOUT_CATEGORIES, n as createDataModel, o as TransPoint, p as COLOR_CATEGORIES, r as SmartArtCollection, s as DataModel, t as TreeNode, u as getColorXml } from "../index-DVqYs1vv.mjs";
import { a as Point, c as Connection, d as getLayoutXml, f as getStyleXml, h as STYLE_CATEGORIES, i as SmartArtData, l as DEFAULT_DRAWING_XML, m as LAYOUT_CATEGORIES, n as createDataModel, o as TransPoint, p as COLOR_CATEGORIES, r as SmartArtCollection, s as DataModel, t as TreeNode, u as getColorXml } from "../index-DigYTiB_.mjs";
export { COLOR_CATEGORIES, Connection, DEFAULT_DRAWING_XML, DataModel, LAYOUT_CATEGORIES, Point, STYLE_CATEGORIES, SmartArtCollection, SmartArtData, TransPoint, TreeNode, createDataModel, getColorXml, getLayoutXml, getStyleXml };

@@ -1,2 +0,2 @@

import { a as DataModel, c as getColorXml, d as COLOR_CATEGORIES, f as LAYOUT_CATEGORIES, i as TransPoint, l as getLayoutXml, n as SmartArtCollection, o as Connection, p as STYLE_CATEGORIES, r as Point, s as DEFAULT_DRAWING_XML, t as createDataModel, u as getStyleXml } from "../smartart-CwzSHTBd.mjs";
import { a as DataModel, c as getColorXml, d as COLOR_CATEGORIES, f as LAYOUT_CATEGORIES, i as TransPoint, l as getLayoutXml, n as SmartArtCollection, o as Connection, p as STYLE_CATEGORIES, r as Point, s as DEFAULT_DRAWING_XML, t as createDataModel, u as getStyleXml } from "../smartart-DBQ_rRfK.mjs";
export { COLOR_CATEGORIES, Connection, DEFAULT_DRAWING_XML, DataModel, LAYOUT_CATEGORIES, Point, STYLE_CATEGORIES, SmartArtCollection, TransPoint, createDataModel, getColorXml, getLayoutXml, getStyleXml };
{
"name": "@office-open/core",
"version": "0.6.3",
"version": "0.6.4",
"description": "Shared OOXML infrastructure: XmlComponent, value validators, unit converters",

@@ -62,3 +62,3 @@ "keywords": [

"nanoid": "5.1.11",
"@office-open/xml": "0.6.3"
"@office-open/xml": "0.6.4"
},

@@ -65,0 +65,0 @@ "scripts": {

import hash from "hash.js";
import { customAlphabet, nanoid } from "nanoid/non-secure";
//#region src/converters.ts
/**
* OOXML unit conversion utilities.
*
* @module
*/
/**
* Converts millimeters to TWIP (twentieths of a point).
*/
const convertMillimetersToTwip = (millimeters) => Math.floor(millimeters / 25.4 * 72 * 20);
/**
* Converts inches to TWIP (twentieths of a point).
*/
const convertInchesToTwip = (inches) => Math.floor(inches * 72 * 20);
/**
* Converts pixels to EMU (96 DPI).
*/
const convertPixelsToEmu = (pixels) => Math.round(pixels * 9525);
/**
* Converts EMU to pixels (96 DPI).
*/
const convertEmuToPixels = (emus) => Math.round(emus / 9525);
/**
* Converts inches to EMU.
*/
const convertInchesToEmu = (inches) => Math.round(inches * 914400);
/**
* Converts EMU to inches.
*/
const convertEmuToInches = (emus) => emus / 914400;
/**
* Converts points to EMU.
*/
const convertPointsToEmu = (points) => Math.round(points * 12700);
/**
* Converts EMU to points.
*/
const convertEmuToPoints = (emus) => emus / 12700;
//#endregion
//#region src/id-generators.ts
/**
* Unique ID generation utilities.
*
* @module
*/
/**
* Creates a unique numeric ID generator with sequential numbering.
*/
const uniqueNumericIdCreator = (initial = 0) => {
let currentCount = initial;
return () => ++currentCount;
};
/**
* Generates a unique lowercase alphanumeric ID using nanoid.
*/
const uniqueId = () => nanoid().toLowerCase();
/**
* Generates a SHA-1 hash of the provided data.
*/
const hashedId = (data) => hash.sha1().update(data instanceof ArrayBuffer ? new Uint8Array(data) : data).digest("hex");
/**
* Generates a random hexadecimal string of specified length.
*/
const generateUuidPart = (count) => customAlphabet("1234567890abcdef", count)();
/**
* Generates a UUID v4-style unique identifier.
*/
const uniqueUuid = () => `${generateUuidPart(8)}-${generateUuidPart(4)}-${generateUuidPart(4)}-${generateUuidPart(4)}-${generateUuidPart(12)}`;
//#endregion
export { convertEmuToInches as a, convertInchesToEmu as c, convertPixelsToEmu as d, convertPointsToEmu as f, uniqueUuid as i, convertInchesToTwip as l, uniqueId as n, convertEmuToPixels as o, uniqueNumericIdCreator as r, convertEmuToPoints as s, hashedId as t, convertMillimetersToTwip as u };
import { C as XmlComponent } from "./index-mjYQ4KiG.mjs";
//#region src/smartart/categories.d.ts
/** Layout ID → OOXML category type */
declare const LAYOUT_CATEGORIES: Record<string, string>;
/** Style ID → OOXML category type */
declare const STYLE_CATEGORIES: Record<string, string>;
/** Color ID → OOXML category type */
declare const COLOR_CATEGORIES: Record<string, string>;
//#endregion
//#region src/smartart/built-in-definitions.d.ts
/**
* Returns layout XML. Full XML for "default", minimal stub for others.
* Stub has no layoutNode so PowerPoint falls back to built-in definitions
* based on the uniqueId / loTypeId in the data model.
*/
declare function getLayoutXml(layoutId: string): string;
/**
* Returns style stub XML with the given uniqueId.
*/
declare function getStyleXml(styleId: string): string;
/**
* Returns color stub XML with the given uniqueId.
*/
declare function getColorXml(colorId: string): string;
/** Minimal drawing cache for SmartArt (Office apps auto-regenerate this on open) */
declare const DEFAULT_DRAWING_XML: string;
//#endregion
//#region src/smartart/data-model/connection.d.ts
/**
* dgm:cxn — SmartArt data model connection (edge).
*/
declare class Connection extends XmlComponent {
constructor(modelId: string, srcId: string, destId: string, type?: string, srcOrd?: number, destOrd?: number, parTransId?: string, sibTransId?: string);
}
//#endregion
//#region src/smartart/data-model/data-model.d.ts
/**
* CT_DataModel — the complete data model for a SmartArt diagram.
*/
declare class DataModel extends XmlComponent {
constructor(points: readonly XmlComponent[], connections: readonly Connection[]);
}
//#endregion
//#region src/smartart/data-model/point.d.ts
/**
* dgm:pt — SmartArt data model point (node).
*/
declare class Point extends XmlComponent {
constructor(modelId: string, text: string, type?: string);
}
/**
* Transition point (parTrans or sibTrans) — no text body, references a connection.
*/
declare class TransPoint extends XmlComponent {
constructor(modelId: string, type: string, cxnId: string);
}
//#endregion
//#region src/smartart/smartart-collection.d.ts
interface SmartArtData {
readonly key: string;
readonly dataModel: DataModel;
readonly layout: string;
readonly style: string;
readonly color: string;
}
/**
* Manages SmartArt parts in a document.
*/
declare class SmartArtCollection {
private readonly map;
constructor();
addSmartArt(key: string, data: SmartArtData): void;
get Array(): readonly SmartArtData[];
}
//#endregion
//#region src/smartart/tree-to-model.d.ts
interface TreeNode {
readonly text: string;
readonly children?: readonly TreeNode[];
}
/**
* Creates a DataModel from tree nodes with layout/style/color settings.
*/
declare const createDataModel: (nodes: readonly TreeNode[], layout?: string, style?: string, color?: string) => DataModel;
//#endregion
export { Point as a, Connection as c, getLayoutXml as d, getStyleXml as f, STYLE_CATEGORIES as h, SmartArtData as i, DEFAULT_DRAWING_XML as l, LAYOUT_CATEGORIES as m, createDataModel as n, TransPoint as o, COLOR_CATEGORIES as p, SmartArtCollection as r, DataModel as s, TreeNode as t, getColorXml as u };
import { b as XmlComponent, c as chartAttr } from "./xml-components-CADgke8j.mjs";
//#region src/smartart/categories.ts
/** Layout ID → OOXML category type */
const LAYOUT_CATEGORIES = {
default: "list",
list1: "list",
list2: "list",
vList2: "list",
hList1: "list",
pList1: "list",
process1: "process",
process2: "process",
process3: "process",
process4: "process",
chevron1: "process",
chevron2: "process",
arrow1: "process",
arrow2: "process",
cycle1: "cycle",
cycle2: "cycle",
cycle3: "cycle",
cycle4: "cycle",
cycle5: "cycle",
hierarchy1: "hier",
hierarchy2: "hier",
hierarchy3: "hier",
hierarchy4: "hier",
orgChart1: "hier",
pyramid1: "pyramid",
pyramid2: "pyramid",
pyramid3: "pyramid",
matrix1: "matrix",
matrix2: "matrix",
matrix3: "matrix",
radial1: "rel",
radial2: "rel",
radial3: "rel",
venn1: "rel",
funnel1: "rel",
balance1: "rel",
gear1: "rel",
constOrg1: "rel",
oppId1: "rel"
};
/** Style ID → OOXML category type */
const STYLE_CATEGORIES = {
simple1: "simple",
simple2: "simple",
simple3: "simple",
simple4: "simple",
simple5: "simple",
moderate1: "moderate",
moderate2: "moderate",
moderate3: "moderate",
moderate4: "moderate",
polished1: "polished",
polished2: "polished",
polished3: "polished",
polished4: "polished",
professional1: "professional",
professional2: "professional",
professional3: "professional",
professional4: "professional",
cartoon1: "cartoon",
cartoon2: "cartoon",
cartoon3: "cartoon",
cartoon4: "cartoon",
powdery1: "powdery",
powdery2: "powdery",
powdery3: "powdery",
powdery4: "powdery",
burnt1: "burnt",
burnt2: "burnt",
burnt3: "burnt",
burnt4: "burnt"
};
/** Color ID → OOXML category type */
const COLOR_CATEGORIES = {
accent1_2: "accent1",
accent2_2: "accent2",
accent3_2: "accent3",
accent4_2: "accent4",
accent5_2: "accent5",
accent6_2: "accent6",
colorful1: "colorful",
colorful2: "colorful",
colorful3: "colorful",
colorful4: "colorful",
dark1: "dark",
dark2: "dark",
primary1: "primary",
primary2: "primary",
gray1: "gray",
gray2: "gray"
};
//#endregion
//#region src/smartart/built-in-definitions.ts
const DGM_NS = "http://schemas.openxmlformats.org/drawingml/2006/diagram";
const XML_DECL = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>";
/** Full default list layout (urn:microsoft.com/office/officeart/2005/8/layout/default) */
const FULL_DEFAULT_LAYOUT_XML = "<dgm:layoutDef xmlns:dgm=\"" + DGM_NS + "\" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" uniqueId=\"urn:microsoft.com/office/officeart/2005/8/layout/default\"><dgm:title val=\"\"/><dgm:desc val=\"\"/><dgm:catLst><dgm:cat type=\"list\" pri=\"400\"/></dgm:catLst><dgm:sampData><dgm:dataModel><dgm:ptLst><dgm:pt modelId=\"0\" type=\"doc\"/><dgm:pt modelId=\"1\"><dgm:prSet phldr=\"1\"/></dgm:pt><dgm:pt modelId=\"2\"><dgm:prSet phldr=\"1\"/></dgm:pt><dgm:pt modelId=\"3\"><dgm:prSet phldr=\"1\"/></dgm:pt><dgm:pt modelId=\"4\"><dgm:prSet phldr=\"1\"/></dgm:pt><dgm:pt modelId=\"5\"><dgm:prSet phldr=\"1\"/></dgm:pt></dgm:ptLst><dgm:cxnLst><dgm:cxn modelId=\"6\" srcId=\"0\" destId=\"1\" srcOrd=\"0\" destOrd=\"0\"/><dgm:cxn modelId=\"7\" srcId=\"0\" destId=\"2\" srcOrd=\"1\" destOrd=\"0\"/><dgm:cxn modelId=\"8\" srcId=\"0\" destId=\"3\" srcOrd=\"2\" destOrd=\"0\"/><dgm:cxn modelId=\"9\" srcId=\"0\" destId=\"4\" srcOrd=\"3\" destOrd=\"0\"/><dgm:cxn modelId=\"10\" srcId=\"0\" destId=\"5\" srcOrd=\"4\" destOrd=\"0\"/></dgm:cxnLst><dgm:bg/><dgm:whole/></dgm:dataModel></dgm:sampData><dgm:styleData><dgm:dataModel><dgm:ptLst><dgm:pt modelId=\"0\" type=\"doc\"/><dgm:pt modelId=\"1\"/><dgm:pt modelId=\"2\"/></dgm:ptLst><dgm:cxnLst><dgm:cxn modelId=\"3\" srcId=\"0\" destId=\"1\" srcOrd=\"0\" destOrd=\"0\"/><dgm:cxn modelId=\"4\" srcId=\"0\" destId=\"2\" srcOrd=\"1\" destOrd=\"0\"/></dgm:cxnLst><dgm:bg/><dgm:whole/></dgm:dataModel></dgm:styleData><dgm:clrData><dgm:dataModel><dgm:ptLst><dgm:pt modelId=\"0\" type=\"doc\"/><dgm:pt modelId=\"1\"/><dgm:pt modelId=\"2\"/><dgm:pt modelId=\"3\"/><dgm:pt modelId=\"4\"/><dgm:pt modelId=\"5\"/><dgm:pt modelId=\"6\"/></dgm:ptLst><dgm:cxnLst><dgm:cxn modelId=\"7\" srcId=\"0\" destId=\"1\" srcOrd=\"0\" destOrd=\"0\"/><dgm:cxn modelId=\"8\" srcId=\"0\" destId=\"2\" srcOrd=\"1\" destOrd=\"0\"/><dgm:cxn modelId=\"9\" srcId=\"0\" destId=\"3\" srcOrd=\"2\" destOrd=\"0\"/><dgm:cxn modelId=\"10\" srcId=\"0\" destId=\"4\" srcOrd=\"3\" destOrd=\"0\"/><dgm:cxn modelId=\"11\" srcId=\"0\" destId=\"5\" srcOrd=\"4\" destOrd=\"0\"/><dgm:cxn modelId=\"12\" srcId=\"0\" destId=\"6\" srcOrd=\"5\" destOrd=\"0\"/></dgm:cxnLst><dgm:bg/><dgm:whole/></dgm:dataModel></dgm:clrData><dgm:layoutNode name=\"diagram\"><dgm:varLst><dgm:dir/><dgm:resizeHandles val=\"exact\"/></dgm:varLst><dgm:choose name=\"Name0\"><dgm:if name=\"Name1\" func=\"var\" arg=\"dir\" op=\"equ\" val=\"norm\"><dgm:alg type=\"snake\"><dgm:param type=\"grDir\" val=\"tL\"/><dgm:param type=\"flowDir\" val=\"row\"/><dgm:param type=\"contDir\" val=\"sameDir\"/><dgm:param type=\"off\" val=\"ctr\"/></dgm:alg></dgm:if><dgm:else name=\"Name2\"><dgm:alg type=\"snake\"><dgm:param type=\"grDir\" val=\"tR\"/><dgm:param type=\"flowDir\" val=\"row\"/><dgm:param type=\"contDir\" val=\"sameDir\"/><dgm:param type=\"off\" val=\"ctr\"/></dgm:alg></dgm:else></dgm:choose><dgm:shape xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" r:blip=\"\"><dgm:adjLst/></dgm:shape><dgm:presOf/><dgm:constrLst><dgm:constr type=\"w\" for=\"ch\" forName=\"node\" refType=\"w\"/><dgm:constr type=\"h\" for=\"ch\" forName=\"node\" refType=\"w\" refFor=\"ch\" refForName=\"node\" fact=\"0.6\"/><dgm:constr type=\"w\" for=\"ch\" forName=\"sibTrans\" refType=\"w\" refFor=\"ch\" refForName=\"node\" fact=\"0.1\"/><dgm:constr type=\"sp\" refType=\"w\" refFor=\"ch\" refForName=\"sibTrans\"/><dgm:constr type=\"primFontSz\" for=\"ch\" forName=\"node\" op=\"equ\" val=\"65\"/></dgm:constrLst><dgm:ruleLst/><dgm:forEach name=\"Name3\" axis=\"ch\" ptType=\"node\"><dgm:layoutNode name=\"node\"><dgm:varLst><dgm:bulletEnabled val=\"1\"/></dgm:varLst><dgm:alg type=\"tx\"/><dgm:shape type=\"rect\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" r:blip=\"\"><dgm:adjLst/></dgm:shape><dgm:presOf axis=\"desOrSelf\" ptType=\"node\"/><dgm:constrLst><dgm:constr type=\"lMarg\" refType=\"primFontSz\" fact=\"0.3\"/><dgm:constr type=\"rMarg\" refType=\"primFontSz\" fact=\"0.3\"/><dgm:constr type=\"tMarg\" refType=\"primFontSz\" fact=\"0.3\"/><dgm:constr type=\"bMarg\" refType=\"primFontSz\" fact=\"0.3\"/></dgm:constrLst><dgm:ruleLst><dgm:rule type=\"primFontSz\" val=\"5\" fact=\"NaN\" max=\"NaN\"/></dgm:ruleLst></dgm:layoutNode><dgm:forEach name=\"Name4\" axis=\"followSib\" ptType=\"sibTrans\" cnt=\"1\"><dgm:layoutNode name=\"sibTrans\"><dgm:alg type=\"sp\"/><dgm:shape xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" r:blip=\"\"><dgm:adjLst/></dgm:shape><dgm:presOf/><dgm:constrLst/><dgm:ruleLst/></dgm:layoutNode></dgm:forEach></dgm:layoutNode></dgm:layoutDef>";
/**
* Returns layout XML. Full XML for "default", minimal stub for others.
* Stub has no layoutNode so PowerPoint falls back to built-in definitions
* based on the uniqueId / loTypeId in the data model.
*/
function getLayoutXml(layoutId) {
if (layoutId === "default") return XML_DECL + FULL_DEFAULT_LAYOUT_XML;
const cat = LAYOUT_CATEGORIES[layoutId] ?? "list";
return XML_DECL + "<dgm:layoutDef xmlns:dgm=\"http://schemas.openxmlformats.org/drawingml/2006/diagram\" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" uniqueId=\"urn:microsoft.com/office/officeart/2005/8/layout/" + layoutId + "\"><dgm:title val=\"\"/><dgm:desc val=\"\"/><dgm:catLst><dgm:cat type=\"" + cat + "\" pri=\"400\"/></dgm:catLst><dgm:sampData><dgm:dataModel><dgm:ptLst><dgm:pt modelId=\"0\" type=\"doc\"/><dgm:pt modelId=\"1\"><dgm:prSet phldr=\"1\"/></dgm:pt><dgm:pt modelId=\"2\"><dgm:prSet phldr=\"1\"/></dgm:pt></dgm:ptLst><dgm:cxnLst><dgm:cxn modelId=\"3\" srcId=\"0\" destId=\"1\" srcOrd=\"0\" destOrd=\"0\"/><dgm:cxn modelId=\"4\" srcId=\"0\" destId=\"2\" srcOrd=\"1\" destOrd=\"0\"/></dgm:cxnLst><dgm:bg/><dgm:whole/></dgm:dataModel></dgm:sampData></dgm:layoutDef>";
}
/**
* Returns style stub XML with the given uniqueId.
*/
function getStyleXml(styleId) {
const cat = STYLE_CATEGORIES[styleId] ?? "simple";
return XML_DECL + "<dgm:styleDef xmlns:dgm=\"http://schemas.openxmlformats.org/drawingml/2006/diagram\" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" uniqueId=\"urn:microsoft.com/office/officeart/2005/8/quickstyle/" + styleId + "\"><dgm:title val=\"\"/><dgm:desc val=\"\"/><dgm:catLst><dgm:cat type=\"" + cat + "\" pri=\"10100\"/></dgm:catLst><dgm:scene3d><a:camera prst=\"orthographicFront\"/><a:lightRig rig=\"threePt\" dir=\"t\"/></dgm:scene3d></dgm:styleDef>";
}
/**
* Returns color stub XML with the given uniqueId.
*/
function getColorXml(colorId) {
const cat = COLOR_CATEGORIES[colorId] ?? "accent1";
return XML_DECL + "<dgm:colorsDef xmlns:dgm=\"http://schemas.openxmlformats.org/drawingml/2006/diagram\" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" uniqueId=\"urn:microsoft.com/office/officeart/2005/8/colors/" + colorId + "\"><dgm:title val=\"\"/><dgm:desc val=\"\"/><dgm:catLst><dgm:cat type=\"" + cat + "\" pri=\"11200\"/></dgm:catLst></dgm:colorsDef>";
}
/** Minimal drawing cache for SmartArt (Office apps auto-regenerate this on open) */
const DEFAULT_DRAWING_XML = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><dsp:drawing xmlns:dgm=\"http://schemas.openxmlformats.org/drawingml/2006/diagram\" xmlns:dsp=\"http://schemas.microsoft.com/office/drawing/2008/diagram\" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\"><dsp:spTree><dsp:nvGrpSpPr><dsp:cNvPr id=\"0\" name=\"\"/><dsp:cNvGrpSpPr/></dsp:nvGrpSpPr><dsp:grpSpPr/></dsp:spTree></dsp:drawing>";
//#endregion
//#region src/smartart/data-model/connection.ts
/**
* dgm:cxn — SmartArt data model connection (edge).
*/
var Connection = class extends XmlComponent {
constructor(modelId, srcId, destId, type, srcOrd = 0, destOrd = 0, parTransId, sibTransId) {
super("dgm:cxn");
const attrs = {
modelId,
srcId,
destId,
srcOrd,
destOrd
};
if (type) attrs.type = type;
if (parTransId) attrs.parTransId = parTransId;
if (sibTransId) attrs.sibTransId = sibTransId;
this.root.push(chartAttr(attrs));
}
};
//#endregion
//#region src/smartart/data-model/data-model.ts
/**
* CT_DataModel — the complete data model for a SmartArt diagram.
*/
var DataModel = class extends XmlComponent {
constructor(points, connections) {
super("dgm:dataModel");
this.root.push(chartAttr({
"xmlns:a": "http://schemas.openxmlformats.org/drawingml/2006/main",
"xmlns:dgm": "http://schemas.openxmlformats.org/drawingml/2006/diagram"
}));
const ptLst = new class extends XmlComponent {
constructor() {
super("dgm:ptLst");
}
}();
for (const pt of points) ptLst["root"].push(pt);
this.root.push(ptLst);
const cxnLst = new class extends XmlComponent {
constructor() {
super("dgm:cxnLst");
}
}();
for (const cxn of connections) cxnLst["root"].push(cxn);
this.root.push(cxnLst);
this.root.push(new EmptyElement$2("dgm:bg"));
this.root.push(new EmptyElement$2("dgm:whole"));
}
};
var EmptyElement$2 = class extends XmlComponent {
constructor(tag) {
super(tag);
}
};
//#endregion
//#region src/smartart/data-model/point.ts
/**
* dgm:pt — SmartArt data model point (node).
*/
var Point = class extends XmlComponent {
constructor(modelId, text, type = "node") {
super("dgm:pt");
this.root.push(chartAttr({
modelId,
type
}));
this.root.push(new PointText(text));
}
};
/**
* Transition point (parTrans or sibTrans) — no text body, references a connection.
*/
var TransPoint = class extends XmlComponent {
constructor(modelId, type, cxnId) {
super("dgm:pt");
this.root.push(chartAttr({
modelId,
type,
cxnId
}));
this.root.push(new EmptyElement$1("dgm:spPr"));
}
};
var EmptyElement$1 = class extends XmlComponent {
constructor(tag) {
super(tag);
}
};
/**
* dgm:t — text body within a point.
*/
var PointText = class extends XmlComponent {
constructor(text) {
super("dgm:t");
this.root.push(new EmptyElement$1("a:bodyPr"));
this.root.push(new EmptyElement$1("a:lstStyle"));
const p = new EmptyElement$1("a:p");
if (text) {
const t = new class extends XmlComponent {
constructor() {
super("a:t");
}
}();
t["root"].push(text);
const r = new class extends XmlComponent {
constructor() {
super("a:r");
}
}();
r["root"].push(t);
p["root"].push(r);
}
this.root.push(p);
}
};
//#endregion
//#region src/smartart/smartart-collection.ts
/**
* Manages SmartArt parts in a document.
*/
var SmartArtCollection = class {
map;
constructor() {
this.map = /* @__PURE__ */ new Map();
}
addSmartArt(key, data) {
this.map.set(key, data);
}
get Array() {
return [...this.map.values()];
}
};
//#endregion
//#region src/smartart/tree-to-model.ts
function createDocPoint(layout, style, color) {
const pt = new class extends XmlComponent {
constructor() {
super("dgm:pt");
}
}();
pt["root"].push(chartAttr({
modelId: 0,
type: "doc"
}));
const prSet = new class extends XmlComponent {
constructor() {
super("dgm:prSet");
}
}();
prSet["root"].push(chartAttr({
loTypeId: `urn:microsoft.com/office/officeart/2005/8/layout/${layout}`,
loCatId: LAYOUT_CATEGORIES[layout] ?? "list",
qsTypeId: `urn:microsoft.com/office/officeart/2005/8/quickstyle/${style}`,
qsCatId: STYLE_CATEGORIES[style] ?? "simple",
csTypeId: `urn:microsoft.com/office/officeart/2005/8/colors/${color}`,
csCatId: COLOR_CATEGORIES[color] ?? "accent1",
phldr: "0"
}));
pt["root"].push(prSet);
pt["root"].push(new EmptyElement("dgm:spPr"));
pt["root"].push(createEmptyTextBody());
return pt;
}
function createEmptyTextBody() {
const t = new class extends XmlComponent {
constructor() {
super("dgm:t");
}
}();
t["root"].push(new EmptyElement("a:bodyPr"));
t["root"].push(new EmptyElement("a:lstStyle"));
t["root"].push(new EmptyElement("a:p"));
return t;
}
var EmptyElement = class extends XmlComponent {
constructor(tag) {
super(tag);
}
};
function uuid() {
return `{${crypto.randomUUID().toUpperCase()}}`;
}
/**
* Creates a DataModel from tree nodes with layout/style/color settings.
*/
const createDataModel = (nodes, layout = "default", style = "simple1", color = "accent1_2") => {
const points = [];
const connections = [];
points.push(createDocPoint(layout, style, color));
for (let i = 0; i < nodes.length; i++) {
const walk = (node, parentUuid, srcOrd) => {
const nodeUuid = uuid();
const parTransUuid = uuid();
const sibTransUuid = uuid();
const cxnUuid = uuid();
points.push(new TransPoint(parTransUuid, "parTrans", cxnUuid));
points.push(new TransPoint(sibTransUuid, "sibTrans", cxnUuid));
points.push(new Point(nodeUuid, node.text));
connections.push(new Connection(parTransUuid, parentUuid, nodeUuid, void 0, srcOrd, 0, parTransUuid, sibTransUuid));
if (node.children) for (let j = 0; j < node.children.length; j++) walk(node.children[j], nodeUuid, j);
};
walk(nodes[i], "0", i);
}
return new DataModel(points, connections);
};
//#endregion
export { DataModel as a, getColorXml as c, COLOR_CATEGORIES as d, LAYOUT_CATEGORIES as f, TransPoint as i, getLayoutXml as l, SmartArtCollection as n, Connection as o, STYLE_CATEGORIES as p, Point as r, DEFAULT_DRAWING_XML as s, createDataModel as t, getStyleXml as u };

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display