@office-open/pptx
Advanced tools
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
| import { AppPropertiesOptions, CorePropertiesOptions, CustomPropertyOptions, DataType, Relationships, ShapeLockingOptions, TableStyleListOptions, UniversalMeasure } from "@office-open/core"; | ||
| import { BlipFillConfigOptions, BlipFillMediaData, CustomGeometryOptions, FillOptions as FillOptions$1, GradientStopOptions, PresetGeometryOptions, buildFill, extractBlipFillMedia } from "@office-open/core/drawingml"; | ||
| import { ColorSchemeOptions, FontSchemeOptions, ThemeOptions, createThemeXml } from "@office-open/core/theme"; | ||
| import { ChartSpaceOptions } from "@office-open/core/chart"; | ||
| import { TreeNode } from "@office-open/core/smartart"; | ||
| //#region src/shared/drawingml/effects.d.ts | ||
| declare const ReflectionAlignment: { | ||
| readonly TOP_LEFT: "topLeft"; | ||
| readonly TOP: "top"; | ||
| readonly TOP_RIGHT: "topRight"; | ||
| readonly LEFT: "left"; | ||
| readonly CENTER: "center"; | ||
| readonly RIGHT: "right"; | ||
| readonly BOTTOM_LEFT: "bottomLeft"; | ||
| readonly BOTTOM: "bottom"; | ||
| readonly BOTTOM_RIGHT: "bottomRight"; | ||
| }; | ||
| interface ShadowOptions { | ||
| blur?: number; | ||
| distance?: number; | ||
| direction?: number; | ||
| color?: string; | ||
| alpha?: number; | ||
| rotateWithShape?: boolean; | ||
| } | ||
| interface GlowOptions { | ||
| radius?: number; | ||
| color?: string; | ||
| alpha?: number; | ||
| } | ||
| interface ReflectionOptions { | ||
| blurRadius?: number; | ||
| distance?: number; | ||
| direction?: number; | ||
| startAlpha?: number; | ||
| startPosition?: number; | ||
| endAlpha?: number; | ||
| endPosition?: number; | ||
| fadeDirection?: number; | ||
| scaleX?: number; | ||
| scaleY?: number; | ||
| skewX?: number; | ||
| skewY?: number; | ||
| alignment?: (typeof ReflectionAlignment)[keyof typeof ReflectionAlignment]; | ||
| rotateWithShape?: boolean; | ||
| } | ||
| interface SoftEdgeOptions { | ||
| radius?: number; | ||
| } | ||
| interface PPTXBevelOptions { | ||
| width?: number; | ||
| height?: number; | ||
| preset?: string; | ||
| } | ||
| interface Rotation3DOptions { | ||
| x?: number; | ||
| y?: number; | ||
| z?: number; | ||
| perspective?: number; | ||
| } | ||
| interface EffectsOptions { | ||
| outerShadow?: ShadowOptions; | ||
| innerShadow?: ShadowOptions; | ||
| glow?: GlowOptions; | ||
| reflection?: ReflectionOptions; | ||
| softEdge?: SoftEdgeOptions; | ||
| rotation3D?: Rotation3DOptions; | ||
| bevelTop?: PPTXBevelOptions; | ||
| bevelBottom?: PPTXBevelOptions; | ||
| extrusionH?: number; | ||
| depth?: number; | ||
| contourWidth?: number; | ||
| material?: "plastic" | "metal" | "matte" | "warmMatte" | "softEdge" | "flat" | "powder"; | ||
| lighting?: "flat" | "legacyFlat1" | "legacyFlat2" | "legacyFlat3" | "legacyFlat4" | "legacyHarsh1" | "legacyHarsh2" | "legacyHarsh3" | "legacyHarsh4" | "legacyNormal1" | "legacyNormal2" | "legacyNormal3" | "legacyNormal4" | "threePt" | "balanced" | "soft" | "harsh" | "flood" | "contrasting" | "morning" | "sunrise" | "sunset" | "chilly" | "freezing" | "twoPt" | "brightRoom" | "gallery"; | ||
| } | ||
| declare function createPptxEffectList(options: EffectsOptions): string | null; | ||
| //#endregion | ||
| //#region src/parts/background.d.ts | ||
| interface BackgroundOptions { | ||
| fill?: FillOptions$1; | ||
| effects?: EffectsOptions; | ||
| shadeToTitle?: boolean; | ||
| blackWhiteMode?: "clr" | "gray" | "ltGray" | "invGray" | "gmGray" | "bw" | "auto" | "black" | "white"; | ||
| } | ||
| //#endregion | ||
| //#region src/parts/handout-master.d.ts | ||
| interface ColorMapOptions { | ||
| bg1?: string; | ||
| tx1?: string; | ||
| bg2?: string; | ||
| tx2?: string; | ||
| accent1?: string; | ||
| accent2?: string; | ||
| accent3?: string; | ||
| accent4?: string; | ||
| accent5?: string; | ||
| accent6?: string; | ||
| hlink?: string; | ||
| folHlink?: string; | ||
| } | ||
| interface HeaderFooterOptions { | ||
| date?: boolean; | ||
| header?: boolean; | ||
| footer?: boolean; | ||
| slideNumber?: boolean; | ||
| } | ||
| interface HandoutMasterOptions { | ||
| colorMap?: ColorMapOptions; | ||
| headerFooter?: HeaderFooterOptions; | ||
| } | ||
| declare function buildHandoutMasterXml(options?: HandoutMasterOptions): string; | ||
| //#endregion | ||
| //#region src/parts/notes-master.d.ts | ||
| interface NotesLevelProperties { | ||
| fontSize?: number | UniversalMeasure; | ||
| marginLeft?: number | UniversalMeasure; | ||
| alignment?: string; | ||
| } | ||
| interface NotesMasterOptions { | ||
| colorMap?: ColorMapOptions; | ||
| headerFooter?: HeaderFooterOptions; | ||
| notesStyle?: NotesLevelProperties[]; | ||
| } | ||
| declare function buildNotesMasterXml(options?: NotesMasterOptions): string; | ||
| //#endregion | ||
| //#region src/parts/presentation.d.ts | ||
| interface PhotoAlbumOptions { | ||
| blackWhite?: boolean; | ||
| showCaptions?: boolean; | ||
| layout?: "fitToSlide" | "1pic" | "2pic" | "4pic" | "1picTitle" | "2picTitle" | "4picTitle"; | ||
| frame?: "frameStyle1" | "frameStyle2" | "frameStyle3" | "frameStyle4" | "frameStyle5" | "frameStyle6" | "frameStyle7" | "none"; | ||
| } | ||
| interface ModifyVerifierOptions { | ||
| password?: string; | ||
| algorithmName?: string; | ||
| hashValue?: string; | ||
| saltValue?: string; | ||
| spinValue?: number; | ||
| cryptoProviderType?: string; | ||
| cryptoAlgorithmClass?: string; | ||
| cryptoAlgorithmType?: string; | ||
| cryptoAlgorithmSid?: number; | ||
| spinCount?: number; | ||
| saltData?: string; | ||
| hashData?: string; | ||
| cryptoProvider?: string; | ||
| algorithmExtensionId?: number; | ||
| algorithmExtensionSource?: string; | ||
| cryptoProviderTypeExtension?: number; | ||
| cryptoProviderTypeExtensionSource?: string; | ||
| } | ||
| interface EmbeddedFontOptions { | ||
| font: { | ||
| typeface: string; | ||
| panose?: string; | ||
| pitchFamily?: number; | ||
| charset?: number; | ||
| }; | ||
| regular?: string; | ||
| bold?: string; | ||
| italic?: string; | ||
| boldItalic?: string; | ||
| } | ||
| interface CustomShowOptions { | ||
| name: string; | ||
| id: number; | ||
| slides: { | ||
| rId: string; | ||
| }[]; | ||
| } | ||
| interface KinsokuOptions { | ||
| lang?: string; | ||
| invalStChars: string; | ||
| invalEndChars: string; | ||
| } | ||
| interface StringTagOptions { | ||
| name: string; | ||
| val: string; | ||
| } | ||
| interface CustomerDataOptions { | ||
| data?: { | ||
| rId: string; | ||
| }[]; | ||
| tags?: { | ||
| rId: string; | ||
| }; | ||
| tagList?: StringTagOptions[]; | ||
| } | ||
| interface PresentationPartOptions { | ||
| slideWidth?: number; | ||
| slideHeight?: number; | ||
| slideIds: number[]; | ||
| masterCount: number; | ||
| notesMasterRId?: number; | ||
| handoutMasterRId?: number; | ||
| serverZoom?: string; | ||
| firstSlideNum?: number; | ||
| showSpecialPlsOnTitleSld?: boolean; | ||
| rtl?: boolean; | ||
| removePersonalInfoOnSave?: boolean; | ||
| compatMode?: boolean; | ||
| strictFirstAndLastChars?: boolean; | ||
| embedTrueTypeFonts?: boolean; | ||
| saveSubsetFonts?: boolean; | ||
| autoCompressPictures?: boolean; | ||
| bookmarkIdSeed?: number; | ||
| conformance?: "strict" | "transitional"; | ||
| photoAlbum?: PhotoAlbumOptions; | ||
| modifyVerifier?: ModifyVerifierOptions; | ||
| embeddedFonts?: EmbeddedFontOptions[]; | ||
| customShows?: CustomShowOptions[]; | ||
| kinsoku?: KinsokuOptions[]; | ||
| customerData?: CustomerDataOptions; | ||
| sections?: PresentationSectionGroup[]; | ||
| } | ||
| interface PresentationSectionGroup { | ||
| name: string; | ||
| slideIndices: number[]; | ||
| } | ||
| interface ViewWrapper { | ||
| view: { | ||
| currentOptions: unknown; | ||
| }; | ||
| relationships: Relationships; | ||
| } | ||
| //#endregion | ||
| //#region src/parts/presentation-properties.d.ts | ||
| interface WebPropertiesOptions { | ||
| showAnimation?: boolean; | ||
| resizeGraphics?: boolean; | ||
| allowPng?: boolean; | ||
| relyOnVml?: boolean; | ||
| organizeInFolders?: boolean; | ||
| useLongFilenames?: boolean; | ||
| imageSize?: string; | ||
| encoding?: string; | ||
| color?: string; | ||
| } | ||
| interface PrintPropertiesOptions { | ||
| printWhat?: "slides" | "handouts1" | "handouts2" | "handouts3" | "handouts4" | "handouts6" | "handouts9" | "notes" | "outline"; | ||
| colorMode?: "blackWhite" | "gray" | "color"; | ||
| hiddenSlides?: boolean; | ||
| scaleToFitPaper?: boolean; | ||
| frameSlides?: boolean; | ||
| } | ||
| interface HtmlPublishPropertiesOptions { | ||
| showSpeakerNotes?: boolean; | ||
| target?: string; | ||
| title?: string; | ||
| rId?: string; | ||
| } | ||
| interface PresentationPropertiesFullOptions { | ||
| show?: ShowOptions; | ||
| web?: WebPropertiesOptions; | ||
| print?: PrintPropertiesOptions; | ||
| htmlPublish?: HtmlPublishPropertiesOptions; | ||
| colorMru?: string[]; | ||
| } | ||
| //#endregion | ||
| //#region src/parts/slide-layout.d.ts | ||
| type SlideLayoutType = "blank" | "title" | "tx" | "twoColTx" | "titleOnly" | "obj" | "secHead" | "chart" | "tbl" | "picTx" | "twoObj" | "twoTxTwoObj" | "objTx" | "vertTx" | "vertTitleAndTx"; | ||
| declare function buildLayoutXml(layoutType: SlideLayoutType, slideWidth?: number): string; | ||
| declare function buildCustomLayoutXml(def: LayoutDefinition): string; | ||
| //#endregion | ||
| //#region src/shared/header-footer.d.ts | ||
| interface SlideHeaderFooterOptions { | ||
| slideNumber?: boolean; | ||
| dateTime?: boolean; | ||
| footer?: string | boolean; | ||
| header?: boolean; | ||
| } | ||
| //#endregion | ||
| //#region src/parts/slide-master.d.ts | ||
| interface MasterPlaceholderPosition { | ||
| x: number | UniversalMeasure; | ||
| y: number | UniversalMeasure; | ||
| width: number | UniversalMeasure; | ||
| height: number | UniversalMeasure; | ||
| } | ||
| interface MasterPlaceholderOptions { | ||
| title?: boolean | MasterPlaceholderPosition; | ||
| body?: boolean | MasterPlaceholderPosition; | ||
| date?: boolean | MasterPlaceholderPosition; | ||
| footer?: boolean | MasterPlaceholderPosition; | ||
| slideNumber?: boolean | MasterPlaceholderPosition; | ||
| } | ||
| interface SlideMasterOptions { | ||
| background?: BackgroundOptions; | ||
| children?: MasterChild[]; | ||
| placeholders?: MasterPlaceholderOptions; | ||
| } | ||
| declare function buildSlideMasterXml(layoutCount: number, _headerFooter?: SlideHeaderFooterOptions, masterOptions?: SlideMasterOptions, slideWidth?: number, masterIndex?: number): string; | ||
| //#endregion | ||
| //#region src/parts/slide/slide.d.ts | ||
| interface ControlOptions { | ||
| shapeId?: number; | ||
| name?: string; | ||
| showAsIcon?: boolean; | ||
| rId?: string; | ||
| imageWidth?: number; | ||
| imageHeight?: number; | ||
| } | ||
| //#endregion | ||
| //#region src/parts/chart-frame.d.ts | ||
| interface ChartOptions extends ChartSpaceOptions { | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/shape/paragraph/paragraph-properties.d.ts | ||
| type TextAlignment = "left" | "center" | "right" | "justify"; | ||
| type BulletCharOptions = { | ||
| type: "char"; | ||
| char?: string; | ||
| color?: string; | ||
| size?: number; | ||
| }; | ||
| type BulletAutoNumOptions = { | ||
| type: "autoNum"; | ||
| format?: string; | ||
| startAt?: number; | ||
| color?: string; | ||
| size?: number; | ||
| }; | ||
| type BulletNoneOption = { | ||
| type: "none"; | ||
| }; | ||
| type BulletOptions = BulletCharOptions | BulletAutoNumOptions | BulletNoneOption; | ||
| interface ParagraphPropertiesOptions { | ||
| alignment?: TextAlignment; | ||
| indentLevel?: number; | ||
| marginBottom?: number; | ||
| marginTop?: number; | ||
| bullet?: BulletOptions; | ||
| lineSpacing?: number; | ||
| lineSpacingPoints?: number; | ||
| marginIndent?: number; | ||
| marginRight?: number; | ||
| defTabSize?: number; | ||
| fontAlignment?: "auto" | "t" | "ctr" | "b" | "base"; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/shape/paragraph/run-properties.d.ts | ||
| declare const UnderlineStyle: { | ||
| readonly SINGLE: "single"; | ||
| readonly DOUBLE: "double"; | ||
| readonly NONE: "none"; | ||
| }; | ||
| declare const StrikeStyle: { | ||
| readonly SINGLE: "sngStrike"; | ||
| readonly DOUBLE: "dblStrike"; | ||
| readonly NONE: "noStrike"; | ||
| }; | ||
| declare const TextCapitalization: { | ||
| readonly NONE: "none"; | ||
| readonly ALL: "all"; | ||
| readonly SMALL: "small"; | ||
| }; | ||
| interface HyperlinkOptions { | ||
| url: string; | ||
| tooltip?: string; | ||
| action?: string; | ||
| highlightClick?: boolean; | ||
| endSound?: boolean; | ||
| invalidUrl?: boolean; | ||
| } | ||
| interface RunPropertiesOptions { | ||
| size?: number; | ||
| bold?: boolean; | ||
| italic?: boolean; | ||
| underline?: (typeof UnderlineStyle)[keyof typeof UnderlineStyle]; | ||
| font?: string; | ||
| lang?: string; | ||
| fill?: FillOptions$1; | ||
| hyperlink?: HyperlinkOptions; | ||
| strike?: (typeof StrikeStyle)[keyof typeof StrikeStyle]; | ||
| baseline?: number; | ||
| spacing?: number; | ||
| capitalization?: (typeof TextCapitalization)[keyof typeof TextCapitalization]; | ||
| shadow?: boolean; | ||
| outline?: boolean; | ||
| rightToLeft?: boolean; | ||
| noProof?: boolean; | ||
| dirty?: boolean; | ||
| kumimoji?: boolean; | ||
| alternateLanguage?: string; | ||
| normalizeHeight?: boolean; | ||
| bookmarkMark?: string; | ||
| smartTagId?: string; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/shape/paragraph/run.d.ts | ||
| interface RunOptions extends RunPropertiesOptions { | ||
| text?: string; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/shape/paragraph/paragraph.d.ts | ||
| interface ParagraphOptions { | ||
| text?: string; | ||
| properties?: ParagraphPropertiesOptions; | ||
| children?: (RunOptions | string)[]; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/table/table-cell-properties.d.ts | ||
| interface CellBorderOptions { | ||
| width?: number | UniversalMeasure; | ||
| color?: string; | ||
| dashStyle?: "solid" | "dash" | "dashDot" | "lgDash" | "sysDot" | "sysDash"; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/table/table-cell.d.ts | ||
| type VerticalAlignment = "top" | "center" | "bottom" | "justify" | "distribute"; | ||
| interface TableCellOptions { | ||
| text?: string; | ||
| children?: (ParagraphOptions | string)[]; | ||
| fill?: FillOptions$1; | ||
| borders?: { | ||
| top?: CellBorderOptions; | ||
| bottom?: CellBorderOptions; | ||
| left?: CellBorderOptions; | ||
| right?: CellBorderOptions; | ||
| }; | ||
| columnSpan?: number; | ||
| rowSpan?: number; | ||
| horizontalMerge?: "continue" | "restart"; | ||
| verticalMerge?: "continue" | "restart"; | ||
| verticalAlign?: VerticalAlignment; | ||
| margins?: { | ||
| top?: number | UniversalMeasure; | ||
| bottom?: number | UniversalMeasure; | ||
| left?: number | UniversalMeasure; | ||
| right?: number | UniversalMeasure; | ||
| }; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/shape/text-body.d.ts | ||
| interface TextBodyOptions { | ||
| text?: string; | ||
| children?: (ParagraphOptions | string)[]; | ||
| vertical?: "horz" | "vert" | "vert270" | "wordArtVert" | "eaVert" | "mongolianVert" | "wordArtVertRtl"; | ||
| anchor?: VerticalAlignment; | ||
| autoFit?: "normal" | "shape" | "none"; | ||
| wrap?: "square" | "none"; | ||
| margins?: { | ||
| top?: number | UniversalMeasure; | ||
| bottom?: number | UniversalMeasure; | ||
| left?: number | UniversalMeasure; | ||
| right?: number | UniversalMeasure; | ||
| }; | ||
| marginTop?: number | UniversalMeasure; | ||
| marginBottom?: number | UniversalMeasure; | ||
| columns?: number; | ||
| columnSpacing?: number; | ||
| } | ||
| //#endregion | ||
| //#region src/parts/locked-canvas-frame.d.ts | ||
| interface LockedCanvasShapeOptions { | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| geometry?: string; | ||
| fill?: string; | ||
| textBody?: TextBodyOptions; | ||
| } | ||
| interface LockedCanvasFrameOptions { | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| id?: number; | ||
| name?: string; | ||
| children?: LockedCanvasShapeOptions[]; | ||
| } | ||
| //#endregion | ||
| //#region src/parts/ole-frame.d.ts | ||
| interface OleEmbedOptions { | ||
| rId: string; | ||
| lastEdited?: string; | ||
| } | ||
| interface OleLinkOptions { | ||
| rId: string; | ||
| updateLastEdited?: string; | ||
| autoUpdate?: boolean; | ||
| } | ||
| interface OleOptions { | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| progId?: string; | ||
| spid?: string; | ||
| name?: string; | ||
| showAsIcon?: boolean; | ||
| imgW?: number; | ||
| imgH?: number; | ||
| embed?: OleEmbedOptions; | ||
| link?: OleLinkOptions; | ||
| imgRId?: string; | ||
| followColorScheme?: "none" | "full" | "textAndBackground"; | ||
| } | ||
| //#endregion | ||
| //#region src/parts/smartart.d.ts | ||
| interface SmartArtOptions { | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| nodes: TreeNode[]; | ||
| name?: string; | ||
| layout?: string; | ||
| style?: string; | ||
| color?: string; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/animation/types.d.ts | ||
| type AnimationType = "appear" | "fade" | "fly" | "wipe" | "dissolve" | "split" | "blinds" | "checker" | "randomBars" | "wheel" | "zoom" | "cover" | "push" | "strips"; | ||
| type AnimationTrigger = "onClick" | "withPrevious" | "afterPrevious"; | ||
| type AnimationDirection = "left" | "right" | "up" | "down" | "horizontal" | "vertical"; | ||
| type AnimationClass = "entr" | "exit" | "emph" | "mediacall"; | ||
| type EmphasisType = "growShrink" | "spin" | "growWithTurn" | "colorChange" | "transparency" | "boldFlash" | "wave" | "pulse"; | ||
| type PathAnimationType = "customPath" | "arc" | "bounce" | "circle" | "curve" | "figureEight" | "line" | "loop"; | ||
| type MediaAnimationType = "playAudio" | "playVideo" | "play"; | ||
| type AnimationCalcMode = "discrete" | "lin" | "fmla"; | ||
| type AnimationValueType = "str" | "num" | "clr"; | ||
| interface AnimationVariantOptions { | ||
| bool?: boolean; | ||
| int?: number; | ||
| float?: number; | ||
| string?: string; | ||
| color?: string; | ||
| } | ||
| interface EndConditionOptions { | ||
| event?: string; | ||
| delay?: string; | ||
| timeNodeId?: number; | ||
| runtimeNode?: "first" | "last" | "all"; | ||
| } | ||
| interface AnimationBuildOptions { | ||
| type: "paragraph" | "diagram" | "oleChart" | "graphic"; | ||
| spid: number; | ||
| grpId: number; | ||
| uiExpand?: boolean; | ||
| build?: "allAtOnce" | "p" | "cust" | "whole"; | ||
| bldLvl?: number; | ||
| animBg?: boolean; | ||
| autoUpdateAnimBg?: boolean; | ||
| rev?: boolean; | ||
| advAuto?: number; | ||
| templates?: AnimationTemplateOptions[]; | ||
| diagramBuild?: string; | ||
| oleChartBuild?: string; | ||
| oleChartAnimBg?: boolean; | ||
| graphicBuildAsOne?: boolean; | ||
| } | ||
| interface AnimationTemplateOptions { | ||
| lvl?: number; | ||
| children: AnimationOptions[]; | ||
| } | ||
| interface AnimationOptions { | ||
| type?: AnimationType; | ||
| duration?: number; | ||
| delay?: number; | ||
| trigger?: AnimationTrigger; | ||
| direction?: AnimationDirection; | ||
| class?: AnimationClass; | ||
| emphasisType?: EmphasisType; | ||
| pathType?: PathAnimationType; | ||
| path?: string; | ||
| speed?: number; | ||
| repeatCount?: number; | ||
| autoReverse?: boolean; | ||
| color?: string; | ||
| mediaType?: MediaAnimationType; | ||
| isNarration?: boolean; | ||
| fullScreen?: boolean; | ||
| volume?: number; | ||
| mute?: boolean; | ||
| attributeName?: string; | ||
| calcMode?: AnimationCalcMode; | ||
| valueType?: AnimationValueType; | ||
| from?: string; | ||
| to?: string; | ||
| animBy?: string; | ||
| charRange?: [number, number]; | ||
| paragraphRange?: [number, number]; | ||
| setBehavior?: { | ||
| attributeName: string; | ||
| toValue: string; | ||
| toType?: "string" | "number"; | ||
| }; | ||
| commandType?: "call" | "evt" | "verb"; | ||
| command?: string; | ||
| iterate?: { | ||
| type?: "el" | "wd" | "lt"; | ||
| interval?: number; | ||
| backwards?: boolean; | ||
| iteratePercentage?: number; | ||
| }; | ||
| repeatDuration?: string; | ||
| acceleration?: number; | ||
| deceleration?: number; | ||
| restart?: "always" | "whenNotActive" | "never"; | ||
| syncBehavior?: "canSlip" | "isLocked" | "stoppable"; | ||
| timeFilter?: string; | ||
| eventFilter?: string; | ||
| display?: boolean; | ||
| masterRelation?: "clearConn" | "keepConn" | "resume"; | ||
| buildLevel?: number; | ||
| groupId?: number; | ||
| afterEffect?: boolean; | ||
| nodePlaceholder?: boolean; | ||
| advanceAfterTime?: string; | ||
| animateBackground?: boolean; | ||
| autoUpdateAnimationBackground?: boolean; | ||
| additive?: "base" | "sum" | "repl" | "mult" | "none"; | ||
| accumulate?: "none" | "always"; | ||
| transformType?: "pt" | "img"; | ||
| runtimeContext?: string; | ||
| override?: "normal" | "childStyle"; | ||
| paragraphBuild?: "whole" | "allAtOnce" | "p" | "cust"; | ||
| formula?: string; | ||
| colorSpace?: "rgb" | "hsl"; | ||
| pathEditMode?: "relative" | "fixed" | "none"; | ||
| previousAction?: "none" | "skipTimed"; | ||
| pointsTypes?: string; | ||
| rotationAngle?: number; | ||
| zoomContents?: boolean; | ||
| showWhenStopped?: boolean; | ||
| numberOfSlides?: number; | ||
| propertyList?: string; | ||
| endConditions?: EndConditionOptions[]; | ||
| endSyncCondition?: EndConditionOptions; | ||
| subTimeNodes?: AnimationOptions[]; | ||
| exclusiveMode?: boolean; | ||
| inkTargetShapeId?: number; | ||
| soundTarget?: string; | ||
| subShapeId?: number; | ||
| graphicElementType?: string; | ||
| oleChartElementType?: string; | ||
| oleChartElementLevel?: number; | ||
| variantBool?: boolean; | ||
| variantInt?: number; | ||
| variantFloat?: number; | ||
| variantColor?: string; | ||
| colorFrom?: string; | ||
| colorTo?: string; | ||
| colorByRgb?: { | ||
| r: string; | ||
| g: string; | ||
| b: string; | ||
| }; | ||
| colorByHsl?: { | ||
| h: string; | ||
| s: string; | ||
| l: string; | ||
| }; | ||
| effectProgress?: AnimationVariantOptions; | ||
| motionFrom?: { | ||
| x: string; | ||
| y: string; | ||
| }; | ||
| motionRotationCenter?: { | ||
| x: string; | ||
| y: string; | ||
| }; | ||
| builds?: AnimationBuildOptions[]; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/media/data.d.ts | ||
| interface MediaDataTransformation { | ||
| pixels: { | ||
| x: number; | ||
| y: number; | ||
| }; | ||
| emus: { | ||
| x: number; | ||
| y: number; | ||
| }; | ||
| flip?: { | ||
| vertical?: boolean; | ||
| horizontal?: boolean; | ||
| }; | ||
| rotation?: number; | ||
| } | ||
| interface CoreMediaData { | ||
| fileName: string; | ||
| transformation: MediaDataTransformation; | ||
| data: Uint8Array; | ||
| } | ||
| interface RegularMediaData { | ||
| type: "jpg" | "png" | "gif" | "bmp" | "tif" | "ico" | "emf" | "wmf"; | ||
| } | ||
| interface SvgMediaData { | ||
| type: "svg"; | ||
| fallback: RegularMediaData & CoreMediaData; | ||
| } | ||
| interface VideoMediaData { | ||
| type: "mp4" | "mov" | "wmv" | "avi"; | ||
| } | ||
| interface AudioMediaData { | ||
| type: "mp3" | "wav" | "wma" | "aac"; | ||
| } | ||
| type MediaData = (RegularMediaData | SvgMediaData | VideoMediaData | AudioMediaData) & CoreMediaData; | ||
| //#endregion | ||
| //#region src/shared/media/media-frame-base.d.ts | ||
| interface MediaFrameBaseOptions { | ||
| id?: number; | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| data: DataType; | ||
| type: MediaData["type"]; | ||
| name?: string; | ||
| animation?: AnimationOptions; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/media/audio-frame.d.ts | ||
| type AudioType = "mp3" | "wav" | "wma" | "aac"; | ||
| interface AudioFrameOptions extends MediaFrameBaseOptions { | ||
| type: AudioType; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/media/video-frame.d.ts | ||
| type VideoType = "mp4" | "mov" | "wmv" | "avi"; | ||
| type PosterType = "png" | "jpg"; | ||
| interface VideoFrameOptions extends MediaFrameBaseOptions { | ||
| type: VideoType; | ||
| poster?: DataType; | ||
| posterType?: PosterType; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/picture.d.ts | ||
| interface PictureOptions { | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| data: DataType; | ||
| type: "png" | "jpg" | "gif" | "bmp" | "emf" | "wmf"; | ||
| name?: string; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/shape/group-shape.d.ts | ||
| interface GroupShapeOptions { | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| rotation?: number; | ||
| flipHorizontal?: boolean; | ||
| children: SlideChild[]; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/drawingml/outline.d.ts | ||
| interface OutlineOptions { | ||
| width?: number | UniversalMeasure; | ||
| color?: string; | ||
| dashStyle?: "solid" | "dash" | "dashDot" | "lgDash" | "sysDot" | "sysDash"; | ||
| } | ||
| declare const createOutlineCompat: (options?: OutlineOptions, arrowheads?: { | ||
| beginType?: string; | ||
| endType?: string; | ||
| width?: string; | ||
| length?: string; | ||
| }) => string; | ||
| //#endregion | ||
| //#region src/shared/shape/line-shape.d.ts | ||
| interface LineShapeOptions { | ||
| id?: number; | ||
| name?: string; | ||
| x1?: number | UniversalMeasure; | ||
| y1?: number | UniversalMeasure; | ||
| x2?: number | UniversalMeasure; | ||
| y2?: number | UniversalMeasure; | ||
| fill?: FillOptions$1; | ||
| outline?: OutlineOptions; | ||
| } | ||
| type ArrowheadType = "triangle" | "stealth" | "diamond" | "oval" | "open" | "none"; | ||
| interface ConnectorShapeOptions { | ||
| id?: number; | ||
| name?: string; | ||
| x1?: number | UniversalMeasure; | ||
| y1?: number | UniversalMeasure; | ||
| x2?: number | UniversalMeasure; | ||
| y2?: number | UniversalMeasure; | ||
| fill?: FillOptions$1; | ||
| outline?: OutlineOptions; | ||
| beginArrowhead?: ArrowheadType; | ||
| endArrowhead?: ArrowheadType; | ||
| arrowheadWidth?: "small" | "medium" | "large"; | ||
| arrowheadLength?: "small" | "medium" | "large"; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/drawingml/shape-properties.d.ts | ||
| interface ConnectionSiteOptions { | ||
| x: number; | ||
| y: number; | ||
| angle?: number; | ||
| } | ||
| interface ShapePropertiesOptions { | ||
| x?: number; | ||
| y?: number; | ||
| width?: number; | ||
| height?: number; | ||
| flipHorizontal?: boolean; | ||
| rotation?: number; | ||
| geometry?: string | PresetGeometryOptions; | ||
| customGeometry?: CustomGeometryOptions; | ||
| fill?: FillOptions$1; | ||
| outline?: OutlineOptions; | ||
| effects?: EffectsOptions; | ||
| connectionSites?: ConnectionSiteOptions[]; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/shape/shape.d.ts | ||
| interface ShapeStyleOptions { | ||
| lineReference?: { | ||
| index: number; | ||
| color?: string; | ||
| }; | ||
| fillReference?: { | ||
| index: number; | ||
| color?: string; | ||
| }; | ||
| effectReference?: { | ||
| index: number; | ||
| color?: string; | ||
| }; | ||
| fontReference?: { | ||
| index: number; | ||
| color?: string; | ||
| }; | ||
| } | ||
| interface ShapeOptions { | ||
| id?: number; | ||
| name?: string; | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| geometry?: string | PresetGeometryOptions; | ||
| customGeometry?: CustomGeometryOptions; | ||
| fill?: ShapePropertiesOptions["fill"]; | ||
| outline?: OutlineOptions; | ||
| effects?: EffectsOptions; | ||
| flipHorizontal?: boolean; | ||
| rotation?: number; | ||
| textBody?: TextBodyOptions; | ||
| animation?: AnimationOptions; | ||
| locking?: ShapeLockingOptions; | ||
| placeholder?: "title" | "body" | "subTitle" | "sldNum" | "dt" | "ftr" | "hdr" | "obj"; | ||
| placeholderIndex?: number; | ||
| useBackgroundFill?: boolean; | ||
| isPhoto?: boolean; | ||
| userDrawn?: boolean; | ||
| hasCustomPrompt?: boolean; | ||
| style?: ShapeStyleOptions; | ||
| blackWhiteMode?: "clr" | "auto" | "gray" | "ltGray" | "invGray" | "grayWhite" | "blackGray" | "blackWhite" | "black" | "white" | "hidden"; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/table/table-row.d.ts | ||
| interface TableRowOptions { | ||
| height?: number | UniversalMeasure; | ||
| cells: TableCellOptions[]; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/table/table-frame.d.ts | ||
| interface TableOptions { | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| rows: TableRowOptions[]; | ||
| columnWidths?: number[]; | ||
| firstRow?: boolean; | ||
| lastRow?: boolean; | ||
| bandRow?: boolean; | ||
| firstCol?: boolean; | ||
| lastCol?: boolean; | ||
| bandCol?: boolean; | ||
| tableStyleId?: string; | ||
| borders?: { | ||
| top?: CellBorderOptions; | ||
| bottom?: CellBorderOptions; | ||
| left?: CellBorderOptions; | ||
| right?: CellBorderOptions; | ||
| }; | ||
| } | ||
| //#endregion | ||
| //#region src/parts/slide/slide-child.d.ts | ||
| type SlideChild = { | ||
| shape: ShapeOptions; | ||
| } | { | ||
| picture: PictureOptions; | ||
| } | { | ||
| table: TableOptions; | ||
| } | { | ||
| chart: ChartOptions; | ||
| } | { | ||
| line: LineShapeOptions; | ||
| } | { | ||
| connector: ConnectorShapeOptions; | ||
| } | { | ||
| video: VideoFrameOptions; | ||
| } | { | ||
| audio: AudioFrameOptions; | ||
| } | { | ||
| group: GroupShapeOptions; | ||
| } | { | ||
| smartart: SmartArtOptions; | ||
| } | { | ||
| lockedCanvas: LockedCanvasFrameOptions; | ||
| } | { | ||
| ole: OleOptions; | ||
| } | { | ||
| contentPart: { | ||
| rId: string; | ||
| }; | ||
| }; | ||
| //#endregion | ||
| //#region src/parts/slide/slide-sync-properties.d.ts | ||
| interface SlideSyncOptions { | ||
| serverSldId: string; | ||
| serverSldModifiedTime: string; | ||
| clientInsertedTime: string; | ||
| } | ||
| //#endregion | ||
| //#region src/parts/view-properties.d.ts | ||
| type SplitterBarState = "restored" | "maximized" | "minimized"; | ||
| interface NormalViewOptions { | ||
| showOutlineIcons?: boolean; | ||
| snapVertSplitter?: boolean; | ||
| vertBarState?: SplitterBarState; | ||
| horzBarState?: SplitterBarState; | ||
| preferSingleView?: boolean; | ||
| } | ||
| interface SlideViewOptions { | ||
| snapToGrid?: boolean; | ||
| snapToObjects?: boolean; | ||
| showGuides?: boolean; | ||
| varScale?: boolean; | ||
| } | ||
| interface ViewPropertiesOptions { | ||
| lastView?: "slideView" | "slideMasterView" | "notesView" | "handoutView" | "outlineView" | "slideSorterView"; | ||
| showComments?: boolean; | ||
| gridSpacing?: { | ||
| cx: number; | ||
| cy: number; | ||
| }; | ||
| zoomScaleNumerator?: number; | ||
| zoomScaleDenominator?: number; | ||
| normalView?: NormalViewOptions; | ||
| slideView?: SlideViewOptions; | ||
| guides?: { | ||
| orient?: "vert" | "horz"; | ||
| pos?: number; | ||
| }[]; | ||
| outlineView?: { | ||
| slides?: { | ||
| rId: string; | ||
| collapse?: boolean; | ||
| }[]; | ||
| }; | ||
| sorterView?: { | ||
| showFormatting?: boolean; | ||
| }; | ||
| notesView?: boolean; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/transition.d.ts | ||
| type TransitionType = "fade" | "push" | "wipe" | "split" | "blinds" | "checker" | "comb" | "randomBar" | "cover" | "pull" | "strips" | "wheel" | "zoom" | "circle" | "dissolve" | "diamond" | "newsflash" | "plus" | "wedge" | "random" | "cut"; | ||
| type TransitionDirection = "left" | "up" | "right" | "down" | "leftUp" | "rightUp" | "leftDown" | "rightDown" | "out" | "in"; | ||
| interface TransitionOptions { | ||
| type?: TransitionType; | ||
| speed?: "slow" | "med" | "fast"; | ||
| advanceOnClick?: boolean; | ||
| advanceAfterTime?: number; | ||
| direction?: TransitionDirection; | ||
| orient?: "horz" | "vert"; | ||
| thruBlk?: boolean; | ||
| spokes?: number; | ||
| startSound?: { | ||
| rId: string; | ||
| name?: string; | ||
| loop?: boolean; | ||
| }; | ||
| stopPreviousSound?: boolean; | ||
| } | ||
| declare function buildTransition(options: TransitionOptions): string; | ||
| //#endregion | ||
| //#region src/shared/file.d.ts | ||
| type MasterChild = { | ||
| shape: ShapeOptions; | ||
| }; | ||
| type SlideSize = "16:9" | "4:3" | { | ||
| width: number; | ||
| height: number; | ||
| }; | ||
| interface LayoutPlaceholderOptions { | ||
| title?: MasterPlaceholderPosition | false; | ||
| body?: MasterPlaceholderPosition | false; | ||
| subtitle?: MasterPlaceholderPosition | false; | ||
| date?: MasterPlaceholderPosition | false; | ||
| footer?: MasterPlaceholderPosition | false; | ||
| slideNumber?: MasterPlaceholderPosition | false; | ||
| } | ||
| interface LayoutDefinition { | ||
| type?: SlideLayoutType; | ||
| name?: string; | ||
| matchingName?: string; | ||
| placeholders?: LayoutPlaceholderOptions; | ||
| children?: MasterChild[]; | ||
| } | ||
| interface MasterDefinition extends SlideMasterOptions { | ||
| name?: string; | ||
| theme?: ThemeOptions; | ||
| layouts?: LayoutDefinition[]; | ||
| } | ||
| interface SlideCommentOptions { | ||
| author: string; | ||
| text: string; | ||
| x: number | UniversalMeasure; | ||
| y: number | UniversalMeasure; | ||
| initials?: string; | ||
| date?: string; | ||
| modified?: boolean; | ||
| } | ||
| interface SlideAnimation { | ||
| shapeId: number; | ||
| options: AnimationOptions; | ||
| } | ||
| interface SlideOptions { | ||
| children?: SlideChild[]; | ||
| background?: BackgroundOptions; | ||
| notes?: string; | ||
| transition?: TransitionOptions; | ||
| headerFooter?: SlideHeaderFooterOptions; | ||
| comments?: SlideCommentOptions[]; | ||
| layout?: SlideLayoutType | string; | ||
| master?: string; | ||
| showMasterShapes?: boolean; | ||
| showMasterPlaceholderAnimations?: boolean; | ||
| hidden?: boolean; | ||
| controls?: ControlOptions[]; | ||
| customerData?: { | ||
| rId: string; | ||
| }[]; | ||
| slideSync?: SlideSyncOptions; | ||
| animations?: SlideAnimation[]; | ||
| section?: string; | ||
| } | ||
| interface ShowOptions { | ||
| loop?: boolean; | ||
| type?: "present" | "browse" | "kiosk"; | ||
| showScrollbar?: boolean; | ||
| restart?: number; | ||
| showNarration?: boolean; | ||
| showAnimation?: boolean; | ||
| useTimings?: boolean; | ||
| slideRange?: { | ||
| start: number; | ||
| end: number; | ||
| }; | ||
| penColor?: string; | ||
| } | ||
| interface PresentationOptions extends CorePropertiesOptions { | ||
| size?: SlideSize; | ||
| masters?: MasterDefinition[]; | ||
| slides?: SlideOptions[]; | ||
| show?: ShowOptions; | ||
| view?: ViewPropertiesOptions; | ||
| includeHandoutMaster?: boolean; | ||
| includeNotesMaster?: boolean; | ||
| handoutMasterOptions?: HandoutMasterOptions; | ||
| notesMasterOptions?: NotesMasterOptions; | ||
| tableStyles?: TableStyleListOptions; | ||
| web?: WebPropertiesOptions; | ||
| print?: PrintPropertiesOptions; | ||
| htmlPublish?: HtmlPublishPropertiesOptions; | ||
| serverZoom?: string; | ||
| firstSlideNum?: number; | ||
| showSpecialPlsOnTitleSld?: boolean; | ||
| rtl?: boolean; | ||
| removePersonalInfoOnSave?: boolean; | ||
| compatMode?: boolean; | ||
| strictFirstAndLastChars?: boolean; | ||
| embedTrueTypeFonts?: boolean; | ||
| saveSubsetFonts?: boolean; | ||
| autoCompressPictures?: boolean; | ||
| bookmarkIdSeed?: number; | ||
| conformance?: "strict" | "transitional"; | ||
| photoAlbum?: PhotoAlbumOptions; | ||
| modifyVerifier?: ModifyVerifierOptions; | ||
| embeddedFonts?: EmbeddedFontOptions[]; | ||
| customShows?: CustomShowOptions[]; | ||
| kinsoku?: KinsokuOptions[]; | ||
| customerData?: CustomerDataOptions; | ||
| colorMru?: string[]; | ||
| appProperties?: AppPropertiesOptions; | ||
| customProperties?: CustomPropertyOptions[]; | ||
| } | ||
| //#endregion | ||
| export { ParagraphOptions as $, PosterType as A, BlipFillMediaData as At, AnimationOptions as B, SoftEdgeOptions as Bt, ShapePropertiesOptions as C, PhotoAlbumOptions as Ct, createOutlineCompat as D, buildHandoutMasterXml as Dt, OutlineOptions as E, buildNotesMasterXml as Et, MediaData as F, EffectsOptions as Ft, MediaAnimationType as G, AnimationType as H, MediaDataTransformation as I, GlowOptions as It, LockedCanvasFrameOptions as J, PathAnimationType as K, AnimationCalcMode as L, ReflectionAlignment as Lt, VideoType as M, GradientStopOptions as Mt, AudioFrameOptions as N, buildFill as Nt, GroupShapeOptions as O, BackgroundOptions as Ot, AudioType as P, extractBlipFillMedia as Pt, CellBorderOptions as Q, AnimationClass as R, ReflectionOptions as Rt, ShapeOptions as S, ModifyVerifierOptions as St, LineShapeOptions as T, ViewWrapper as Tt, AnimationValueType as U, AnimationTrigger as V, createPptxEffectList as Vt, EmphasisType as W, TableCellOptions as X, TextBodyOptions as Y, VerticalAlignment as Z, createThemeXml as _, PresentationPropertiesFullOptions as _t, PresentationOptions as a, UnderlineStyle as at, TableOptions as b, EmbeddedFontOptions as bt, SlideOptions as c, ChartOptions as ct, TransitionOptions as d, SlideMasterOptions as dt, RunOptions as et, TransitionType as f, buildSlideMasterXml as ft, ThemeOptions as g, buildLayoutXml as gt, FontSchemeOptions as h, buildCustomLayoutXml as ht, MasterDefinition as i, TextCapitalization as it, VideoFrameOptions as j, FillOptions$1 as jt, PictureOptions as k, BlipFillConfigOptions as kt, SlideSize as l, MasterPlaceholderOptions as lt, ColorSchemeOptions as m, SlideLayoutType as mt, LayoutPlaceholderOptions as n, RunPropertiesOptions as nt, ShowOptions as o, ParagraphPropertiesOptions as ot, buildTransition as p, SlideHeaderFooterOptions as pt, SmartArtOptions as q, MasterChild as r, StrikeStyle as rt, SlideCommentOptions as s, TextAlignment as st, LayoutDefinition as t, HyperlinkOptions as tt, TransitionDirection as u, MasterPlaceholderPosition as ut, ViewPropertiesOptions as v, CustomShowOptions as vt, ConnectorShapeOptions as w, PresentationPartOptions as wt, TableRowOptions as x, KinsokuOptions as xt, SlideChild as y, CustomerDataOptions as yt, AnimationDirection as z, ShadowOptions as zt }; | ||
| //# sourceMappingURL=file-Dh_35y_9.d.mts.map |
| {"version":3,"file":"file-Dh_35y_9.d.mts","names":[],"sources":["../src/shared/drawingml/effects.ts","../src/parts/background.ts","../src/parts/handout-master.ts","../src/parts/notes-master.ts","../src/parts/presentation.ts","../src/parts/presentation-properties.ts","../src/parts/slide-layout.ts","../src/shared/header-footer.ts","../src/parts/slide-master.ts","../src/parts/slide/slide.ts","../src/parts/chart-frame.ts","../src/shared/shape/paragraph/paragraph-properties.ts","../src/shared/shape/paragraph/run-properties.ts","../src/shared/shape/paragraph/run.ts","../src/shared/shape/paragraph/paragraph.ts","../src/shared/table/table-cell-properties.ts","../src/shared/table/table-cell.ts","../src/shared/shape/text-body.ts","../src/parts/locked-canvas-frame.ts","../src/parts/ole-frame.ts","../src/parts/smartart.ts","../src/shared/animation/types.ts","../src/shared/media/data.ts","../src/shared/media/media-frame-base.ts","../src/shared/media/audio-frame.ts","../src/shared/media/video-frame.ts","../src/shared/picture.ts","../src/shared/shape/group-shape.ts","../src/shared/drawingml/outline.ts","../src/shared/shape/line-shape.ts","../src/shared/drawingml/shape-properties.ts","../src/shared/shape/shape.ts","../src/shared/table/table-row.ts","../src/shared/table/table-frame.ts","../src/parts/slide/slide-child.ts","../src/parts/slide/slide-sync-properties.ts","../src/parts/view-properties.ts","../src/shared/transition.ts","../src/shared/file.ts"],"mappings":"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"} |
| import { E as SP_TREE_HEADER, _ as timingDesc, a as ParseContext, c as parseChild, d as backgroundDesc, f as pictureDesc, g as slideCommentsDesc, h as commentAuthorsDesc, i as notesMasterDesc, n as tableStylesDesc, o as PptxReadContext, p as shapeDesc, r as notesSlideDesc, t as viewPropsDesc, u as presPropsDesc, v as slideLayoutDesc } from "./view-properties-D9ZVHjXg.mjs"; | ||
| import { attr, attrNum, findChild } from "@office-open/xml"; | ||
| import { appPropertiesDesc, customPropertiesDesc, parseArchive, parseCorePropsElement, toUint8Array } from "@office-open/core"; | ||
| import { themeDesc } from "@office-open/core/theme"; | ||
| //#region src/parts/descriptors/slide.ts | ||
| const slideDesc = { | ||
| kind: "custom", | ||
| stringify(opts, ctx) { | ||
| const parts = []; | ||
| const sldAttrs = []; | ||
| if (opts.showMasterSp === false) sldAttrs.push(" showMasterSp=\"0\""); | ||
| if (opts.showMasterPhAnim === false) sldAttrs.push(" showMasterPhAnim=\"0\""); | ||
| if (opts.hidden) sldAttrs.push(" show=\"0\""); | ||
| parts.push(`<p:sld xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main"${sldAttrs.join("")}>`); | ||
| parts.push("<p:cSld>"); | ||
| if (opts.background) parts.push(stringifyBackground(opts.background)); | ||
| parts.push("<p:spTree>"); | ||
| parts.push(SP_TREE_HEADER); | ||
| if (opts.children) for (const child of opts.children) { | ||
| const xml = stringifySlideChild(child, ctx); | ||
| if (xml) parts.push(xml); | ||
| } | ||
| parts.push("</p:spTree>"); | ||
| if (opts.customerData && opts.customerData.length > 0) { | ||
| const cdItems = opts.customerData.map((d) => `<p:custData r:id="${d.rId}"/>`).join(""); | ||
| parts.push(`<p:custDataLst>${cdItems}</p:custDataLst>`); | ||
| } | ||
| if (opts.controls && opts.controls.length > 0) { | ||
| const ctrlItems = opts.controls.map((c) => { | ||
| const attrs = []; | ||
| if (c.shapeId !== void 0) attrs.push(`spid="${c.shapeId}"`); | ||
| if (c.name) attrs.push(`name="${c.name}"`); | ||
| if (c.showAsIcon) attrs.push("showAsIcon=\"1\""); | ||
| if (c.rId) attrs.push(`r:id="${c.rId}"`); | ||
| if (c.imageWidth !== void 0) attrs.push(`imgW="${c.imageWidth}"`); | ||
| if (c.imageHeight !== void 0) attrs.push(`imgH="${c.imageHeight}"`); | ||
| return `<p:control ${attrs.join(" ")}/>`; | ||
| }).join(""); | ||
| parts.push(`<p:controls>${ctrlItems}</p:controls>`); | ||
| } | ||
| if (opts.headerFooter) { | ||
| const hf = opts.headerFooter; | ||
| const hfChildren = []; | ||
| if (hf.slideNumber) hfChildren.push("<p:sldNum/>"); | ||
| if (hf.dateTime) hfChildren.push("<p:dt/>"); | ||
| if (hf.footer) hfChildren.push("<p:ftr/>"); | ||
| if (hf.header) hfChildren.push("<p:hdr/>"); | ||
| if (hfChildren.length > 0) parts.push(`<p:hf>${hfChildren.join("")}</p:hf>`); | ||
| } | ||
| parts.push("</p:cSld>"); | ||
| parts.push("<p:clrMapOvr><a:masterClrMapping/></p:clrMapOvr>"); | ||
| if (opts.transition) parts.push(stringifyTransition(opts.transition)); | ||
| parts.push("</p:sld>"); | ||
| return parts.join(""); | ||
| }, | ||
| parse(el, _ctx) { | ||
| const result = {}; | ||
| if (el.attributes) { | ||
| if (el.attributes["showMasterSp"] !== void 0) result.showMasterSp = el.attributes["showMasterSp"] !== "0"; | ||
| if (el.attributes["showMasterPhAnim"] !== void 0) result.showMasterPhAnim = el.attributes["showMasterPhAnim"] !== "0"; | ||
| if (el.attributes["show"] === "0") result.hidden = true; | ||
| } | ||
| const cSld = findChild(el, "p:cSld"); | ||
| if (cSld) { | ||
| const bg = findChild(cSld, "p:bg"); | ||
| if (bg) result.background = readBackground(bg); | ||
| const spTree = findChild(cSld, "p:spTree"); | ||
| if (spTree) { | ||
| const children = []; | ||
| if (spTree.elements) for (const child of spTree.elements) { | ||
| if (child.name === "p:nvGrpSpPr" || child.name === "p:grpSpPr") continue; | ||
| const parsed = parseChild(child, _ctx); | ||
| if (parsed !== void 0) children.push(parsed); | ||
| } | ||
| if (children.length > 0) result.children = children; | ||
| } | ||
| const hf = findChild(cSld, "p:hf"); | ||
| if (hf) { | ||
| const hfOpts = {}; | ||
| if (findChild(hf, "p:sldNum")) hfOpts.slideNumber = true; | ||
| if (findChild(hf, "p:dt")) hfOpts.dateTime = true; | ||
| if (findChild(hf, "p:ftr")) hfOpts.footer = true; | ||
| if (findChild(hf, "p:hdr")) hfOpts.header = true; | ||
| if (hfOpts.slideNumber || hfOpts.dateTime || hfOpts.footer || hfOpts.header) result.headerFooter = hfOpts; | ||
| } | ||
| } | ||
| const transition = findChild(el, "p:transition"); | ||
| if (transition) result.transition = readTransition(transition); | ||
| const timing = findChild(el, "p:timing"); | ||
| if (timing) { | ||
| const timingOpts = timingDesc.parse(timing, _ctx); | ||
| if (timingOpts.entries && timingOpts.entries.length > 0) { | ||
| const animations = []; | ||
| for (const entry of timingOpts.entries) animations.push({ | ||
| shapeId: entry.spid, | ||
| options: entry.options | ||
| }); | ||
| result.animations = animations; | ||
| } | ||
| } | ||
| const custDataLst = findChild(el, "p:custDataLst"); | ||
| if (custDataLst) { | ||
| const items = []; | ||
| for (const cd of custDataLst.elements ?? []) if (cd.name === "p:custData") { | ||
| const rId = attr(cd, "r:id"); | ||
| if (rId) items.push({ rId }); | ||
| } | ||
| if (items.length > 0) result.customerData = items; | ||
| } | ||
| const controls = findChild(el, "p:controls"); | ||
| if (controls) { | ||
| const items = []; | ||
| for (const ctrl of controls.elements ?? []) { | ||
| if (ctrl.name !== "p:control") continue; | ||
| const item = {}; | ||
| const spid = attrNum(ctrl, "spid"); | ||
| if (spid !== void 0) item.shapeId = spid; | ||
| const name = attr(ctrl, "name"); | ||
| if (name) item.name = name; | ||
| if (attr(ctrl, "showAsIcon") === "1") item.showAsIcon = true; | ||
| const rId = attr(ctrl, "r:id"); | ||
| if (rId) item.rId = rId; | ||
| const imgW = attrNum(ctrl, "imgW"); | ||
| if (imgW !== void 0) item.imageWidth = imgW; | ||
| const imgH = attrNum(ctrl, "imgH"); | ||
| if (imgH !== void 0) item.imageHeight = imgH; | ||
| items.push(item); | ||
| } | ||
| if (items.length > 0) result.controls = items; | ||
| } | ||
| return result; | ||
| } | ||
| }; | ||
| function stringifySlideChild(child, ctx) { | ||
| if ("shape" in child) return shapeDesc.stringify(child.shape, ctx); | ||
| if ("picture" in child) return pictureDesc.stringify(child.picture, ctx); | ||
| if ("contentPart" in child) return `<p:contentPart r:id="${child.contentPart.rId}"/>`; | ||
| } | ||
| function stringifyBackground(opts) { | ||
| if (opts.color) return `<p:bg><p:bgPr${opts.transparency !== void 0 ? `><a:srgbClr val="${opts.color.replace("#", "")}"><a:alpha val="${Math.round((100 - opts.transparency) * 1e3)}"/></a:srgbClr></p:bgPr` : `><a:solidFill><a:srgbClr val="${opts.color.replace("#", "")}"/></a:solidFill></p:bgPr`}></p:bg>`; | ||
| return "<p:bg/>"; | ||
| } | ||
| function readBackground(bg) { | ||
| const result = {}; | ||
| const bgPr = findChild(bg, "p:bgPr"); | ||
| if (bgPr) { | ||
| const solidFill = findChild(bgPr, "a:solidFill"); | ||
| if (solidFill) { | ||
| const srgbClr = findChild(solidFill, "a:srgbClr"); | ||
| if (srgbClr?.attributes?.["val"]) { | ||
| result.color = String(srgbClr.attributes["val"]); | ||
| const alpha = findChild(srgbClr, "a:alpha"); | ||
| if (alpha?.attributes?.["val"]) result.transparency = 100 - Number(alpha.attributes["val"]) / 1e3; | ||
| } | ||
| } | ||
| } | ||
| return result; | ||
| } | ||
| function stringifyTransition(opts) { | ||
| const parts = []; | ||
| if (opts.type === "none") return ""; | ||
| if (opts.type === "fade") parts.push("<p:fade/>"); | ||
| else if (opts.type === "push") parts.push("<p:push dir=\"l\"/>"); | ||
| else if (opts.type === "wipe") parts.push("<p:wipe dir=\"d\"/>"); | ||
| else if (opts.type === "split") parts.push("<p:split orient=\"horz\"/>"); | ||
| else if (opts.type === "cover") parts.push("<p:cover dir=\"l\"/>"); | ||
| else if (opts.type === "pull") parts.push("<p:pull dir=\"l\"/>"); | ||
| else if (opts.type === "dissolve") parts.push("<p:dissolve/>"); | ||
| else if (opts.type === "wheel") parts.push("<p:wheel spokes=\"4\"/>"); | ||
| else if (opts.type === "random") parts.push("<p:random/>"); | ||
| const attrs = []; | ||
| if (opts.speed) attrs.push(`spd="${opts.speed}"`); | ||
| if (opts.advanceOnClick !== void 0) attrs.push(`advClick="${opts.advanceOnClick ? 1 : 0}"`); | ||
| if (opts.advanceAfterMs !== void 0) attrs.push(`advTm="${opts.advanceAfterMs}"`); | ||
| const attrStr = attrs.length ? " " + attrs.join(" ") : ""; | ||
| const body = parts.join(""); | ||
| return body ? `<p:transition${attrStr}>${body}</p:transition>` : `<p:transition${attrStr}/>`; | ||
| } | ||
| function readTransition(el) { | ||
| const result = {}; | ||
| if (el.attributes) { | ||
| if (el.attributes["spd"] !== void 0) result.speed = el.attributes["spd"]; | ||
| if (el.attributes["advClick"] !== void 0) result.advanceOnClick = el.attributes["advClick"] === "1"; | ||
| if (el.attributes["advTm"] !== void 0) result.advanceAfterMs = Number(el.attributes["advTm"]); | ||
| } | ||
| if (findChild(el, "p:fade")) result.type = "fade"; | ||
| else if (findChild(el, "p:push")) result.type = "push"; | ||
| else if (findChild(el, "p:wipe")) result.type = "wipe"; | ||
| else if (findChild(el, "p:split")) result.type = "split"; | ||
| else if (findChild(el, "p:cover")) result.type = "cover"; | ||
| else if (findChild(el, "p:pull")) result.type = "pull"; | ||
| else if (findChild(el, "p:dissolve")) result.type = "dissolve"; | ||
| else if (findChild(el, "p:wheel")) result.type = "wheel"; | ||
| else if (findChild(el, "p:random")) result.type = "random"; | ||
| return result; | ||
| } | ||
| //#endregion | ||
| //#region src/parse.ts | ||
| function resolveRelsPath(target) { | ||
| if (target.startsWith("/")) return target.slice(1); | ||
| if (target.startsWith("../")) return target.replace("../", "ppt/"); | ||
| return `ppt/${target}`; | ||
| } | ||
| function sortByNumber(paths) { | ||
| return paths.sort((a, b) => { | ||
| return parseInt(a.match(/(\d+)/)?.[1] ?? "0", 10) - parseInt(b.match(/(\d+)/)?.[1] ?? "0", 10); | ||
| }); | ||
| } | ||
| function xmlKeys(keys) { | ||
| return keys.filter((k) => k.endsWith(".xml")); | ||
| } | ||
| function parseRootRels(doc) { | ||
| const relsEl = doc.get("_rels/.rels"); | ||
| if (!relsEl) return {}; | ||
| let coreProps; | ||
| let appProps; | ||
| let customProps; | ||
| for (const child of relsEl.elements ?? []) { | ||
| if (child.name !== "Relationship") continue; | ||
| const type = attr(child, "Type") ?? ""; | ||
| const target = attr(child, "Target") ?? ""; | ||
| if (!target) continue; | ||
| const path = target.startsWith("/") ? target.slice(1) : target; | ||
| if (type.includes("/core-properties")) coreProps = path; | ||
| else if (type.includes("/extended-properties")) appProps = path; | ||
| else if (type.includes("/custom-properties")) customProps = path; | ||
| } | ||
| return { | ||
| coreProps, | ||
| appProps, | ||
| customProps | ||
| }; | ||
| } | ||
| function parseSlideRels(doc, slidePaths, refs) { | ||
| const commentsSet = new Set(refs.comments); | ||
| const chartsSet = new Set(refs.charts); | ||
| const diagramDataSet = new Set(refs.diagramData); | ||
| const mediaSet = new Set(refs.media); | ||
| for (const slidePath of slidePaths) { | ||
| const parts = slidePath.split("/"); | ||
| const fileName = parts.pop(); | ||
| const relsPath = `${parts.join("/")}/_rels/${fileName}.rels`; | ||
| const relsEl = doc.get(relsPath); | ||
| if (!relsEl) continue; | ||
| for (const child of relsEl.elements ?? []) { | ||
| if (child.name !== "Relationship") continue; | ||
| const type = attr(child, "Type") ?? ""; | ||
| const target = attr(child, "Target") ?? ""; | ||
| if (!target) continue; | ||
| const path = resolveRelsPath(target); | ||
| if (type.includes("/comments") && !type.includes("commentAuthors")) commentsSet.add(path); | ||
| else if (type.includes("/chart")) chartsSet.add(path); | ||
| else if (type.includes("/diagramData")) diagramDataSet.add(path); | ||
| else if (type.includes("/image") || type.includes("/video") || type.includes("/media")) mediaSet.add(path); | ||
| } | ||
| } | ||
| refs.comments = [...commentsSet]; | ||
| refs.charts = [...chartsSet]; | ||
| refs.diagramData = [...diagramDataSet]; | ||
| refs.media = [...mediaSet]; | ||
| } | ||
| function parsePptx(data) { | ||
| const doc = parseArchive(toUint8Array(data)); | ||
| const presentation = doc.get("ppt/presentation.xml"); | ||
| const relsXml = doc.get("ppt/_rels/presentation.xml.rels"); | ||
| const slides = []; | ||
| const slideMasters = []; | ||
| const themes = []; | ||
| const notesMasters = []; | ||
| let presProps; | ||
| let viewProps; | ||
| let tableStyles; | ||
| let commentAuthors; | ||
| if (relsXml) for (const child of relsXml.elements ?? []) { | ||
| if (child.name !== "Relationship") continue; | ||
| const type = attr(child, "Type") ?? ""; | ||
| const target = attr(child, "Target") ?? ""; | ||
| if (!target) continue; | ||
| const path = resolveRelsPath(target); | ||
| if (type.includes("/slideMaster")) slideMasters.push(path); | ||
| else if (type.includes("/slide") && !type.includes("slideLayout") && !type.includes("slideMaster")) slides.push(path); | ||
| else if (type.includes("/theme")) themes.push(path); | ||
| else if (type.includes("/notesMaster")) notesMasters.push(path); | ||
| else if (type.includes("/presProps")) presProps = path; | ||
| else if (type.includes("/viewProps")) viewProps = path; | ||
| else if (type.includes("/tableStyles")) tableStyles = path; | ||
| else if (type.includes("/commentAuthors")) commentAuthors = path; | ||
| } | ||
| sortByNumber(slides); | ||
| sortByNumber(slideMasters); | ||
| sortByNumber(themes); | ||
| sortByNumber(notesMasters); | ||
| const slideLayouts = sortByNumber(xmlKeys(doc.keys("ppt/slideLayouts/"))); | ||
| const notesSlides = sortByNumber(xmlKeys(doc.keys("ppt/notesSlides/"))); | ||
| const partRefs = { | ||
| themes, | ||
| notesMasters, | ||
| commentAuthors, | ||
| comments: [], | ||
| charts: [], | ||
| diagramData: [], | ||
| media: doc.keys("ppt/media/") | ||
| }; | ||
| parseSlideRels(doc, slides, partRefs); | ||
| sortByNumber(partRefs.comments); | ||
| sortByNumber(partRefs.charts); | ||
| sortByNumber(partRefs.diagramData); | ||
| const { coreProps, appProps, customProps } = parseRootRels(doc); | ||
| return { | ||
| doc, | ||
| presentation, | ||
| slides, | ||
| slideMasters, | ||
| slideLayouts, | ||
| notesSlides, | ||
| partRefs, | ||
| presProps, | ||
| viewProps, | ||
| tableStyles, | ||
| coreProps, | ||
| appProps, | ||
| customProps | ||
| }; | ||
| } | ||
| /** | ||
| * Parse a single slide's relationship file into a Map<rId, path>. | ||
| */ | ||
| function parseSlideRelMap(doc, slidePath) { | ||
| const rels = /* @__PURE__ */ new Map(); | ||
| const parts = slidePath.split("/"); | ||
| const fileName = parts.pop(); | ||
| const relsPath = `${parts.join("/")}/_rels/${fileName}.rels`; | ||
| const relsEl = doc.get(relsPath); | ||
| if (!relsEl) return rels; | ||
| for (const child of relsEl.elements ?? []) { | ||
| if (child.name !== "Relationship") continue; | ||
| const id = attr(child, "Id") ?? ""; | ||
| const target = attr(child, "Target") ?? ""; | ||
| if (!id || !target) continue; | ||
| if (attr(child, "TargetMode") === "External") rels.set(id, target); | ||
| else rels.set(id, resolveRelsPath(target)); | ||
| } | ||
| return rels; | ||
| } | ||
| /** | ||
| * Build a map from each path to the rel target matching a predicate. | ||
| */ | ||
| function resolveRelTargets(doc, paths, predicate) { | ||
| const map = /* @__PURE__ */ new Map(); | ||
| for (const path of paths) for (const target of parseSlideRelMap(doc, path).values()) if (predicate(target)) map.set(path, target); | ||
| return map; | ||
| } | ||
| /** | ||
| * Parse p14:sectionLst from presentation.xml and map each slide path to its | ||
| * section name. Bridges p14:sldId (by slide id) -> p:sldIdLst (slide id -> | ||
| * rId) -> presentation rels (rId -> path). | ||
| */ | ||
| function parseSlideSections(presentation, doc) { | ||
| const pathToSection = /* @__PURE__ */ new Map(); | ||
| if (!presentation) return pathToSection; | ||
| const extLst = findChild(presentation, "p:extLst"); | ||
| if (!extLst) return pathToSection; | ||
| let sectionLst; | ||
| for (const ext of extLst.elements ?? []) { | ||
| if (ext.name !== "p:ext") continue; | ||
| if (attr(ext, "uri") !== "{521415D9-36F7-43E2-AB2F-B90AF26B5E84}") continue; | ||
| sectionLst = findChild(ext, "p14:sectionLst"); | ||
| if (sectionLst) break; | ||
| } | ||
| if (!sectionLst) return pathToSection; | ||
| const sectionBySlideId = /* @__PURE__ */ new Map(); | ||
| for (const section of sectionLst.elements ?? []) { | ||
| if (section.name !== "p14:section") continue; | ||
| const name = attr(section, "name"); | ||
| if (!name) continue; | ||
| const sldIdLst = findChild(section, "p14:sldIdLst"); | ||
| for (const sldId of sldIdLst?.elements ?? []) { | ||
| if (sldId.name !== "p14:sldId") continue; | ||
| const id = attrNum(sldId, "id"); | ||
| if (id !== void 0) sectionBySlideId.set(id, name); | ||
| } | ||
| } | ||
| if (sectionBySlideId.size === 0) return pathToSection; | ||
| const sldIdLst = findChild(presentation, "p:sldIdLst"); | ||
| const rIdBySlideId = /* @__PURE__ */ new Map(); | ||
| for (const sldId of sldIdLst?.elements ?? []) { | ||
| if (sldId.name !== "p:sldId") continue; | ||
| const id = attrNum(sldId, "id"); | ||
| const rId = attr(sldId, "r:id"); | ||
| if (id !== void 0 && rId) rIdBySlideId.set(id, rId); | ||
| } | ||
| const relsEl = doc.get("ppt/_rels/presentation.xml.rels"); | ||
| const pathByRId = /* @__PURE__ */ new Map(); | ||
| for (const child of relsEl?.elements ?? []) { | ||
| if (child.name !== "Relationship") continue; | ||
| const id = attr(child, "Id"); | ||
| const target = attr(child, "Target"); | ||
| if (id && target) pathByRId.set(id, resolveRelsPath(target)); | ||
| } | ||
| for (const [slideId, name] of sectionBySlideId) { | ||
| const rId = rIdBySlideId.get(slideId); | ||
| if (!rId) continue; | ||
| const path = pathByRId.get(rId); | ||
| if (path) pathToSection.set(path, name); | ||
| } | ||
| return pathToSection; | ||
| } | ||
| /** | ||
| * Parse a .pptx file and convert it into PresentationOptions. | ||
| * | ||
| * This is the main public API for parsing PPTX files. | ||
| * The returned options can be passed directly to `new Presentation(parsed)` | ||
| * to recreate the presentation. | ||
| * | ||
| * @param data - Raw bytes of a .pptx file | ||
| * @returns Parsed presentation options | ||
| */ | ||
| function parsePresentation(data) { | ||
| const pptx = parsePptx(data); | ||
| const opts = {}; | ||
| const sectionBySlidePath = parseSlideSections(pptx.presentation, pptx.doc); | ||
| if (pptx.presentation) { | ||
| const sldSz = findChild(pptx.presentation, "p:sldSz"); | ||
| if (sldSz) { | ||
| const cx = attrNum(sldSz, "cx"); | ||
| const cy = attrNum(sldSz, "cy"); | ||
| if (cx === 12192e3 && cy === 6858e3) opts.size = "16:9"; | ||
| else if (cx === 9144e3 && cy === 6858e3) opts.size = "4:3"; | ||
| else if (cx && cy) opts.size = { | ||
| width: cx, | ||
| height: cy | ||
| }; | ||
| } | ||
| } | ||
| if (pptx.coreProps) { | ||
| const corePropsEl = pptx.doc.get(pptx.coreProps); | ||
| if (corePropsEl) { | ||
| const cp = parseCorePropsElement(corePropsEl); | ||
| if (cp.title) opts.title = cp.title; | ||
| if (cp.subject) opts.subject = cp.subject; | ||
| if (cp.creator) opts.creator = cp.creator; | ||
| if (cp.keywords) opts.keywords = cp.keywords; | ||
| if (cp.description) opts.description = cp.description; | ||
| if (cp.lastModifiedBy) opts.lastModifiedBy = cp.lastModifiedBy; | ||
| if (cp.revision !== void 0) opts.revision = cp.revision; | ||
| if (cp.lastPrinted) opts.lastPrinted = cp.lastPrinted; | ||
| if (cp.created) opts.created = cp.created; | ||
| if (cp.modified) opts.modified = cp.modified; | ||
| } | ||
| } | ||
| if (pptx.appProps) { | ||
| const appPropsEl = pptx.doc.get(pptx.appProps); | ||
| if (appPropsEl) { | ||
| const ap = appPropertiesDesc.parse(appPropsEl, {}); | ||
| if (ap && Object.keys(ap).length > 0) opts.appProperties = ap; | ||
| } | ||
| } | ||
| if (pptx.customProps) { | ||
| const customPropsEl = pptx.doc.get(pptx.customProps); | ||
| if (customPropsEl) { | ||
| const cp = customPropertiesDesc.parse(customPropsEl, {}); | ||
| if (cp.properties?.length) opts.customProperties = cp.properties; | ||
| } | ||
| } | ||
| if (pptx.presProps) { | ||
| const presPropsEl = pptx.doc.get(pptx.presProps); | ||
| if (presPropsEl) { | ||
| const presPropsOpts = presPropsDesc.parse(presPropsEl, {}); | ||
| if (presPropsOpts.show) opts.show = presPropsOpts.show; | ||
| } | ||
| } | ||
| if (pptx.viewProps) { | ||
| const viewPropsEl = pptx.doc.get(pptx.viewProps); | ||
| if (viewPropsEl) { | ||
| const viewOpts = viewPropsDesc.parse(viewPropsEl, {}); | ||
| if (viewOpts.lastView || viewOpts.showComments !== void 0 || viewOpts.gridSpacing) opts.view = viewOpts; | ||
| } | ||
| } | ||
| if (pptx.tableStyles) { | ||
| const tableStylesEl = pptx.doc.get(pptx.tableStyles); | ||
| if (tableStylesEl) { | ||
| const tableStylesResult = tableStylesDesc.parse(tableStylesEl, {}); | ||
| if (tableStylesResult.opts) opts.tableStyles = tableStylesResult.opts; | ||
| } | ||
| } | ||
| const masterThemePaths = resolveRelTargets(pptx.doc, pptx.slideMasters, (t) => t.includes("/theme")); | ||
| const layoutMasterPaths = resolveRelTargets(pptx.doc, pptx.slideLayouts, (t) => t.includes("/slideMaster")); | ||
| const slideLayoutPaths = resolveRelTargets(pptx.doc, pptx.slides, (t) => t.includes("/slideLayout")); | ||
| const masterCount = pptx.slideMasters.length; | ||
| const masterDefs = []; | ||
| const masterReadCtx = new PptxReadContext(new ParseContext(pptx, /* @__PURE__ */ new Map())); | ||
| for (let mi = 0; mi < masterCount; mi++) { | ||
| const masterPath = pptx.slideMasters[mi]; | ||
| const masterEl = pptx.doc.get(masterPath); | ||
| if (!masterEl) continue; | ||
| const themePath = masterThemePaths.get(masterPath); | ||
| const themeEl = themePath ? pptx.doc.get(themePath) : void 0; | ||
| const themeOptions = themeEl ? themeDesc.parse(themeEl, masterReadCtx) : void 0; | ||
| const cSld = findChild(masterEl, "p:cSld"); | ||
| const bg = cSld ? findChild(cSld, "p:bg") : void 0; | ||
| const masterBackground = bg ? backgroundDesc.parse(bg, masterReadCtx) : void 0; | ||
| const hasBackground = masterBackground && Object.keys(masterBackground).length > 0; | ||
| const spTree = cSld ? findChild(cSld, "p:spTree") : void 0; | ||
| const masterChildren = []; | ||
| if (spTree) for (const child of spTree.elements ?? []) { | ||
| if (child.name === "p:nvGrpSpPr" || child.name === "p:grpSpPr") continue; | ||
| if (child.name === "p:sp") { | ||
| const nvSpPr = findChild(child, "p:nvSpPr"); | ||
| const nvPr = nvSpPr ? findChild(nvSpPr, "p:nvPr") : void 0; | ||
| if (nvPr && findChild(nvPr, "p:ph")) continue; | ||
| } | ||
| const parsed = parseChild(child, masterReadCtx); | ||
| if (parsed !== void 0) masterChildren.push(parsed); | ||
| } | ||
| const masterLayouts = []; | ||
| for (const layoutPath of pptx.slideLayouts) { | ||
| if (layoutMasterPaths.get(layoutPath) !== masterPath) continue; | ||
| const layoutEl = pptx.doc.get(layoutPath); | ||
| if (layoutEl) { | ||
| const layoutOpts = slideLayoutDesc.parse(layoutEl, masterReadCtx); | ||
| const layoutDef = { type: layoutOpts.type ?? "blank" }; | ||
| if (layoutOpts.placeholders) layoutDef.placeholders = layoutOpts.placeholders; | ||
| masterLayouts.push(layoutDef); | ||
| } | ||
| } | ||
| const masterName = themeOptions?.name ?? `master${mi + 1}`; | ||
| const masterDef = {}; | ||
| masterDef.name = masterName; | ||
| if (themeOptions) masterDef.theme = themeOptions; | ||
| if (hasBackground) masterDef.background = masterBackground; | ||
| if (masterChildren.length > 0) masterDef.children = masterChildren; | ||
| if (masterLayouts.length > 0) masterDef.layouts = masterLayouts; | ||
| masterDefs.push(masterDef); | ||
| } | ||
| if (masterCount > 1) opts.masters = masterDefs; | ||
| for (const nmPath of pptx.partRefs.notesMasters) { | ||
| const nmEl = pptx.doc.get(nmPath); | ||
| if (nmEl) { | ||
| const nmOpts = notesMasterDesc.parse(nmEl, masterReadCtx); | ||
| if (nmOpts.options) { | ||
| opts.includeNotesMaster = true; | ||
| opts.notesMasterOptions = nmOpts.options; | ||
| } | ||
| } | ||
| } | ||
| const commentAuthors = /* @__PURE__ */ new Map(); | ||
| if (pptx.partRefs.commentAuthors) { | ||
| const authorsEl = pptx.doc.get(pptx.partRefs.commentAuthors); | ||
| if (authorsEl) { | ||
| const authors = commentAuthorsDesc.parse(authorsEl, masterReadCtx); | ||
| for (const a of authors) commentAuthors.set(a.id, { | ||
| name: a.name, | ||
| initials: a.initials | ||
| }); | ||
| } | ||
| } | ||
| const result = []; | ||
| for (let si = 0; si < pptx.slides.length; si++) { | ||
| const slidePath = pptx.slides[si]; | ||
| const slideEl = pptx.doc.get(slidePath); | ||
| if (!slideEl) continue; | ||
| const slideRels = parseSlideRelMap(pptx.doc, slidePath); | ||
| const readCtx = new PptxReadContext(new ParseContext(pptx, slideRels)); | ||
| const slideOpts = slideDesc.parse(slideEl, readCtx); | ||
| const layoutPath = slideLayoutPaths.get(slidePath); | ||
| if (layoutPath) { | ||
| const layoutEl = pptx.doc.get(layoutPath); | ||
| if (layoutEl) slideOpts.layout = slideLayoutDesc.parse(layoutEl, readCtx).type ?? "blank"; | ||
| const resolvedMasterPath = layoutMasterPaths.get(layoutPath); | ||
| if (resolvedMasterPath) { | ||
| const masterIdx = pptx.slideMasters.indexOf(resolvedMasterPath); | ||
| if (masterIdx >= 0 && masterDefs[masterIdx]) slideOpts.master = masterDefs[masterIdx].name; | ||
| } | ||
| } | ||
| for (const [, relPath] of slideRels) { | ||
| if (!relPath.includes("/comments/")) continue; | ||
| const commentsEl = pptx.doc.get(relPath); | ||
| if (!commentsEl) continue; | ||
| const parsedComments = slideCommentsDesc.parse(commentsEl, readCtx); | ||
| if (parsedComments.length > 0) { | ||
| const comments = []; | ||
| for (const cm of parsedComments) { | ||
| const entry = { | ||
| x: cm.x, | ||
| y: cm.y | ||
| }; | ||
| if (cm.text) entry.text = cm.text; | ||
| if (cm.date) entry.date = cm.date; | ||
| if (cm.modified !== void 0) entry.modified = cm.modified; | ||
| const author = commentAuthors.get(cm.authorId); | ||
| if (author) { | ||
| entry.author = author.name; | ||
| if (author.initials) entry.initials = author.initials; | ||
| } | ||
| comments.push(entry); | ||
| } | ||
| if (comments.length > 0) slideOpts.comments = comments; | ||
| } | ||
| break; | ||
| } | ||
| for (const [, relPath] of slideRels) { | ||
| if (!relPath.includes("/notesSlides/")) continue; | ||
| const notesEl = pptx.doc.get(relPath); | ||
| if (!notesEl) continue; | ||
| const notesData = notesSlideDesc.parse(notesEl, readCtx); | ||
| if (notesData.text) slideOpts.notes = notesData.text; | ||
| break; | ||
| } | ||
| const sectionName = sectionBySlidePath.get(slidePath); | ||
| if (sectionName) slideOpts.section = sectionName; | ||
| result.push(slideOpts); | ||
| } | ||
| opts.slides = result; | ||
| return opts; | ||
| } | ||
| //#endregion | ||
| export { slideDesc as i, parsePptx as n, parsePresentation as r, parseArchive as t }; | ||
| //# sourceMappingURL=parse-Cn_n-WuO.mjs.map |
| {"version":3,"file":"parse-Cn_n-WuO.mjs","names":[],"sources":["../src/parts/descriptors/slide.ts","../src/parse.ts"],"sourcesContent":["/**\n * Slide (p:sld) descriptor for PPTX.\n *\n * @module\n */\n\nimport type { CustomDescriptor, WriteContext } from \"@office-open/core/descriptor\";\nimport { attr, attrNum, findChild } from \"@office-open/xml\";\nimport type { Element as XmlElement } from \"@office-open/xml\";\nimport type { SlideChild as LegacySlideChild } from \"@parts/slide/slide-child\";\nimport { SP_TREE_HEADER } from \"@shared/constants\";\n\nimport { timingDesc } from \"./animation\";\nimport { parseChild } from \"./bridge\";\nimport { shapeDesc, pictureDesc } from \"./shape\";\nimport type {\n ShapeDescriptorOptions,\n PictureDescriptorOptions,\n TextBodyDescriptorOptions,\n} from \"./shape\";\n\n// ── Types ──\n\nexport interface HeaderFooterDescriptorOptions {\n slideNumber?: boolean;\n dateTime?: boolean;\n footer?: boolean;\n header?: boolean;\n}\n\nexport interface AnimationDescriptorOptions {\n shapeId: number;\n options: unknown;\n}\n\nexport interface SlideDescriptorOptions {\n children?: SlideChild[];\n background?: BackgroundDescriptorOptions;\n transition?: TransitionDescriptorOptions;\n showMasterSp?: boolean;\n showMasterPhAnim?: boolean;\n controls?: ControlDescriptorOptions[];\n customerData?: { rId: string }[];\n headerFooter?: HeaderFooterDescriptorOptions;\n animations?: AnimationDescriptorOptions[];\n /** Hidden slide — excluded from slideshow (emits p:sld/@show=\"0\"). */\n hidden?: boolean;\n}\n\n/** Discriminated union for slide children (JSON-friendly). */\nexport type SlideChild =\n | { shape: ShapeDescriptorOptions }\n | { picture: PictureDescriptorOptions }\n | { text: TextBodyDescriptorOptions }\n | { contentPart: { rId: string } };\n\nexport interface BackgroundDescriptorOptions {\n color?: string;\n transparency?: number;\n}\n\nexport interface TransitionDescriptorOptions {\n type?:\n | \"none\"\n | \"fade\"\n | \"push\"\n | \"wipe\"\n | \"split\"\n | \"cover\"\n | \"pull\"\n | \"dissolve\"\n | \"wheel\"\n | \"random\";\n speed?: \"slow\" | \"medium\" | \"fast\";\n advanceOnClick?: boolean;\n advanceAfterMs?: number;\n}\n\nexport interface ControlDescriptorOptions {\n shapeId?: number;\n name?: string;\n showAsIcon?: boolean;\n rId?: string;\n imageWidth?: number;\n imageHeight?: number;\n}\n\n// ── Slide (p:sld) descriptor ──\n\nexport const slideDesc: CustomDescriptor<SlideDescriptorOptions> = {\n kind: \"custom\",\n\n stringify(opts, ctx) {\n const parts: string[] = [];\n\n // Opening tag with namespace declarations\n const sldAttrs: string[] = [];\n if (opts.showMasterSp === false) sldAttrs.push(' showMasterSp=\"0\"');\n if (opts.showMasterPhAnim === false) sldAttrs.push(' showMasterPhAnim=\"0\"');\n if (opts.hidden) sldAttrs.push(' show=\"0\"');\n parts.push(\n `<p:sld xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:p=\"http://schemas.openxmlformats.org/presentationml/2006/main\"${sldAttrs.join(\"\")}>`,\n );\n\n // p:cSld — common slide data\n parts.push(\"<p:cSld>\");\n\n if (opts.background) {\n parts.push(stringifyBackground(opts.background));\n }\n\n // p:spTree — shape tree\n parts.push(\"<p:spTree>\");\n parts.push(SP_TREE_HEADER);\n\n if (opts.children) {\n for (const child of opts.children) {\n const xml = stringifySlideChild(child, ctx);\n if (xml) parts.push(xml);\n }\n }\n\n parts.push(\"</p:spTree>\");\n\n // custDataLst\n if (opts.customerData && opts.customerData.length > 0) {\n const cdItems = opts.customerData.map((d) => `<p:custData r:id=\"${d.rId}\"/>`).join(\"\");\n parts.push(`<p:custDataLst>${cdItems}</p:custDataLst>`);\n }\n\n // controls\n if (opts.controls && opts.controls.length > 0) {\n const ctrlItems = opts.controls\n .map((c) => {\n const attrs: string[] = [];\n if (c.shapeId !== undefined) attrs.push(`spid=\"${c.shapeId}\"`);\n if (c.name) attrs.push(`name=\"${c.name}\"`);\n if (c.showAsIcon) attrs.push('showAsIcon=\"1\"');\n if (c.rId) attrs.push(`r:id=\"${c.rId}\"`);\n if (c.imageWidth !== undefined) attrs.push(`imgW=\"${c.imageWidth}\"`);\n if (c.imageHeight !== undefined) attrs.push(`imgH=\"${c.imageHeight}\"`);\n return `<p:control ${attrs.join(\" \")}/>`;\n })\n .join(\"\");\n parts.push(`<p:controls>${ctrlItems}</p:controls>`);\n }\n\n // Header/Footer (p:hf)\n if (opts.headerFooter) {\n const hf = opts.headerFooter;\n const hfChildren: string[] = [];\n if (hf.slideNumber) hfChildren.push(\"<p:sldNum/>\");\n if (hf.dateTime) hfChildren.push(\"<p:dt/>\");\n if (hf.footer) hfChildren.push(\"<p:ftr/>\");\n if (hf.header) hfChildren.push(\"<p:hdr/>\");\n if (hfChildren.length > 0) parts.push(`<p:hf>${hfChildren.join(\"\")}</p:hf>`);\n }\n\n parts.push(\"</p:cSld>\");\n\n // p:clrMapOvr\n parts.push(\"<p:clrMapOvr><a:masterClrMapping/></p:clrMapOvr>\");\n\n // p:transition (optional)\n if (opts.transition) {\n parts.push(stringifyTransition(opts.transition));\n }\n\n parts.push(\"</p:sld>\");\n return parts.join(\"\");\n },\n\n parse(el, _ctx) {\n const result: Record<string, unknown> = {};\n\n // Root attributes\n if (el.attributes) {\n if (el.attributes[\"showMasterSp\"] !== undefined)\n result.showMasterSp = el.attributes[\"showMasterSp\"] !== \"0\";\n if (el.attributes[\"showMasterPhAnim\"] !== undefined)\n result.showMasterPhAnim = el.attributes[\"showMasterPhAnim\"] !== \"0\";\n if (el.attributes[\"show\"] === \"0\") result.hidden = true;\n }\n\n // p:cSld\n const cSld = findChild(el, \"p:cSld\");\n if (cSld) {\n // Background\n const bg = findChild(cSld, \"p:bg\");\n if (bg) result.background = readBackground(bg);\n\n // Shape tree\n const spTree = findChild(cSld, \"p:spTree\");\n if (spTree) {\n const children: LegacySlideChild[] = [];\n if (spTree.elements) {\n for (const child of spTree.elements) {\n // Skip tree container structure\n if (child.name === \"p:nvGrpSpPr\" || child.name === \"p:grpSpPr\") continue;\n const parsed = parseChild(child, _ctx);\n if (parsed !== undefined) children.push(parsed);\n }\n }\n if (children.length > 0) result.children = children;\n }\n\n // Header/Footer (p:hf)\n const hf = findChild(cSld, \"p:hf\");\n if (hf) {\n const hfOpts: HeaderFooterDescriptorOptions = {};\n if (findChild(hf, \"p:sldNum\")) hfOpts.slideNumber = true;\n if (findChild(hf, \"p:dt\")) hfOpts.dateTime = true;\n if (findChild(hf, \"p:ftr\")) hfOpts.footer = true;\n if (findChild(hf, \"p:hdr\")) hfOpts.header = true;\n if (hfOpts.slideNumber || hfOpts.dateTime || hfOpts.footer || hfOpts.header)\n result.headerFooter = hfOpts;\n }\n }\n\n // p:transition\n const transition = findChild(el, \"p:transition\");\n if (transition) result.transition = readTransition(transition);\n\n // p:timing → animations\n const timing = findChild(el, \"p:timing\");\n if (timing) {\n const timingOpts = timingDesc.parse(timing, _ctx);\n if (timingOpts.entries && timingOpts.entries.length > 0) {\n const animations: AnimationDescriptorOptions[] = [];\n for (const entry of timingOpts.entries) {\n animations.push({ shapeId: entry.spid, options: entry.options });\n }\n result.animations = animations;\n }\n }\n\n // custDataLst\n const custDataLst = findChild(el, \"p:custDataLst\");\n if (custDataLst) {\n const items: { rId: string }[] = [];\n for (const cd of custDataLst.elements ?? []) {\n if (cd.name === \"p:custData\") {\n const rId = attr(cd, \"r:id\");\n if (rId) items.push({ rId });\n }\n }\n if (items.length > 0) result.customerData = items;\n }\n\n // controls\n const controls = findChild(el, \"p:controls\");\n if (controls) {\n const items: ControlDescriptorOptions[] = [];\n for (const ctrl of controls.elements ?? []) {\n if (ctrl.name !== \"p:control\") continue;\n const item: ControlDescriptorOptions = {};\n const spid = attrNum(ctrl, \"spid\");\n if (spid !== undefined) item.shapeId = spid;\n const name = attr(ctrl, \"name\");\n if (name) item.name = name;\n if (attr(ctrl, \"showAsIcon\") === \"1\") item.showAsIcon = true;\n const rId = attr(ctrl, \"r:id\");\n if (rId) item.rId = rId;\n const imgW = attrNum(ctrl, \"imgW\");\n if (imgW !== undefined) item.imageWidth = imgW;\n const imgH = attrNum(ctrl, \"imgH\");\n if (imgH !== undefined) item.imageHeight = imgH;\n items.push(item);\n }\n if (items.length > 0) result.controls = items;\n }\n\n return result as unknown as SlideDescriptorOptions;\n },\n};\n\n// ── Child serializer ──\n\nfunction stringifySlideChild(child: SlideChild, ctx: WriteContext): string | undefined {\n if (\"shape\" in child) return shapeDesc.stringify(child.shape, ctx);\n if (\"picture\" in child) return pictureDesc.stringify(child.picture, ctx);\n if (\"contentPart\" in child) return `<p:contentPart r:id=\"${child.contentPart.rId}\"/>`;\n return undefined;\n}\n\n// ── Background helpers ──\n\nfunction stringifyBackground(opts: BackgroundDescriptorOptions): string {\n if (opts.color) {\n const alphaAttr =\n opts.transparency !== undefined\n ? `><a:srgbClr val=\"${opts.color.replace(\"#\", \"\")}\"><a:alpha val=\"${Math.round((100 - opts.transparency) * 1000)}\"/></a:srgbClr></p:bgPr`\n : `><a:solidFill><a:srgbClr val=\"${opts.color.replace(\"#\", \"\")}\"/></a:solidFill></p:bgPr`;\n return `<p:bg><p:bgPr${alphaAttr}></p:bg>`;\n }\n return \"<p:bg/>\";\n}\n\nfunction readBackground(bg: XmlElement): BackgroundDescriptorOptions {\n const result: BackgroundDescriptorOptions = {};\n const bgPr = findChild(bg, \"p:bgPr\");\n if (bgPr) {\n const solidFill = findChild(bgPr, \"a:solidFill\");\n if (solidFill) {\n const srgbClr = findChild(solidFill, \"a:srgbClr\");\n if (srgbClr?.attributes?.[\"val\"]) {\n result.color = String(srgbClr.attributes[\"val\"]);\n const alpha = findChild(srgbClr, \"a:alpha\");\n if (alpha?.attributes?.[\"val\"]) {\n result.transparency = 100 - Number(alpha.attributes[\"val\"]) / 1000;\n }\n }\n }\n }\n return result;\n}\n\n// ── Transition helpers ──\n\nfunction stringifyTransition(opts: TransitionDescriptorOptions): string {\n const parts: string[] = [];\n\n if (opts.type === \"none\") return \"\";\n if (opts.type === \"fade\") parts.push(\"<p:fade/>\");\n else if (opts.type === \"push\") parts.push('<p:push dir=\"l\"/>');\n else if (opts.type === \"wipe\") parts.push('<p:wipe dir=\"d\"/>');\n else if (opts.type === \"split\") parts.push('<p:split orient=\"horz\"/>');\n else if (opts.type === \"cover\") parts.push('<p:cover dir=\"l\"/>');\n else if (opts.type === \"pull\") parts.push('<p:pull dir=\"l\"/>');\n else if (opts.type === \"dissolve\") parts.push(\"<p:dissolve/>\");\n else if (opts.type === \"wheel\") parts.push('<p:wheel spokes=\"4\"/>');\n else if (opts.type === \"random\") parts.push(\"<p:random/>\");\n\n const attrs: string[] = [];\n if (opts.speed) attrs.push(`spd=\"${opts.speed}\"`);\n if (opts.advanceOnClick !== undefined) attrs.push(`advClick=\"${opts.advanceOnClick ? 1 : 0}\"`);\n if (opts.advanceAfterMs !== undefined) attrs.push(`advTm=\"${opts.advanceAfterMs}\"`);\n\n const attrStr = attrs.length ? \" \" + attrs.join(\" \") : \"\";\n const body = parts.join(\"\");\n return body ? `<p:transition${attrStr}>${body}</p:transition>` : `<p:transition${attrStr}/>`;\n}\n\nfunction readTransition(el: XmlElement): TransitionDescriptorOptions {\n const result: TransitionDescriptorOptions = {};\n\n if (el.attributes) {\n if (el.attributes[\"spd\"] !== undefined)\n result.speed = el.attributes[\"spd\"] as \"slow\" | \"medium\" | \"fast\";\n if (el.attributes[\"advClick\"] !== undefined)\n result.advanceOnClick = el.attributes[\"advClick\"] === \"1\";\n if (el.attributes[\"advTm\"] !== undefined)\n result.advanceAfterMs = Number(el.attributes[\"advTm\"]);\n }\n\n // Detect transition type from child elements\n if (findChild(el, \"p:fade\")) result.type = \"fade\";\n else if (findChild(el, \"p:push\")) result.type = \"push\";\n else if (findChild(el, \"p:wipe\")) result.type = \"wipe\";\n else if (findChild(el, \"p:split\")) result.type = \"split\";\n else if (findChild(el, \"p:cover\")) result.type = \"cover\";\n else if (findChild(el, \"p:pull\")) result.type = \"pull\";\n else if (findChild(el, \"p:dissolve\")) result.type = \"dissolve\";\n else if (findChild(el, \"p:wheel\")) result.type = \"wheel\";\n else if (findChild(el, \"p:random\")) result.type = \"random\";\n\n return result;\n}\n","import type { ParsedArchive } from \"@office-open/core\";\nimport {\n appPropertiesDesc,\n customPropertiesDesc,\n parseArchive,\n parseCorePropsElement,\n} from \"@office-open/core\";\nimport type { DataType } from \"@office-open/core\";\nimport { toUint8Array } from \"@office-open/core\";\nimport type { ReadContext } from \"@office-open/core/descriptor\";\nimport { themeDesc } from \"@office-open/core/theme\";\nimport type { Element } from \"@office-open/xml\";\nimport { attr, attrNum, findChild } from \"@office-open/xml\";\n\nimport { PptxReadContext, ParseContext } from \"./context\";\nimport { backgroundDesc } from \"./parts/descriptors/background\";\nimport { parseChild } from \"./parts/descriptors/bridge\";\nimport { commentAuthorsDesc, slideCommentsDesc } from \"./parts/descriptors/comments\";\nimport { notesMasterDesc } from \"./parts/descriptors/notes-master\";\nimport { notesSlideDesc } from \"./parts/descriptors/notes-slide\";\nimport { presPropsDesc } from \"./parts/descriptors/presentation-properties\";\nimport { slideDesc } from \"./parts/descriptors/slide\";\nimport { slideLayoutDesc } from \"./parts/descriptors/slide-layout\";\nimport { tableStylesDesc } from \"./parts/descriptors/table-styles\";\nimport { viewPropsDesc } from \"./parts/descriptors/view-properties\";\nimport type { SlideChild } from \"./parts/slide/slide-child\";\n\nexport { parseArchive };\n\nimport type { SlideLayoutType } from \"./parts/slide-layout\";\nimport type {\n LayoutDefinition,\n MasterChild,\n MasterDefinition,\n SlideOptions,\n SlideCommentOptions,\n PresentationOptions,\n} from \"./shared/file\";\n\n/**\n * All part paths extracted from the PPTX package.\n * Field names correspond directly to the OOXML directory structure.\n */\nexport interface PptxPartRefs {\n /** ppt/theme/themeN.xml */\n themes: string[];\n /** ppt/notesMasters/notesMasterN.xml */\n notesMasters: string[];\n /** ppt/commentAuthors.xml */\n commentAuthors?: string;\n /** ppt/comments/commentN.xml (from slide rels) */\n comments: string[];\n /** ppt/charts/chartN.xml (from slide rels) */\n charts: string[];\n /** ppt/diagrams/dataN.xml (from slide rels) */\n diagramData: string[];\n /** ppt/media/* (all media files) */\n media: string[];\n}\n\nexport interface PptxDocument {\n doc: ParsedArchive;\n /** ppt/presentation.xml root element (p:presentation) */\n presentation?: Element;\n /** ppt/slides/slideN.xml */\n slides: string[];\n /** ppt/slideMasters/slideMasterN.xml */\n slideMasters: string[];\n /** ppt/slideLayouts/slideLayoutN.xml */\n slideLayouts: string[];\n /** ppt/notesSlides/notesSlideN.xml */\n notesSlides: string[];\n partRefs: PptxPartRefs;\n /** ppt/presProps.xml */\n presProps?: string;\n /** ppt/viewProps.xml */\n viewProps?: string;\n /** ppt/tableStyles.xml */\n tableStyles?: string;\n /** docProps/core.xml */\n coreProps?: string;\n /** docProps/app.xml */\n appProps?: string;\n /** docProps/custom.xml */\n customProps?: string;\n}\n\nfunction resolveRelsPath(target: string): string {\n if (target.startsWith(\"/\")) return target.slice(1);\n if (target.startsWith(\"../\")) return target.replace(\"../\", \"ppt/\");\n return `ppt/${target}`;\n}\n\nfunction sortByNumber(paths: string[]): string[] {\n return paths.sort((a, b) => {\n const numA = parseInt(a.match(/(\\d+)/)?.[1] ?? \"0\", 10);\n const numB = parseInt(b.match(/(\\d+)/)?.[1] ?? \"0\", 10);\n return numA - numB;\n });\n}\n\nfunction xmlKeys(keys: string[]): string[] {\n return keys.filter((k) => k.endsWith(\".xml\"));\n}\n\nfunction parseRootRels(doc: ParsedArchive): {\n coreProps?: string;\n appProps?: string;\n customProps?: string;\n} {\n const relsEl = doc.get(\"_rels/.rels\");\n if (!relsEl) return {};\n\n let coreProps: string | undefined;\n let appProps: string | undefined;\n let customProps: string | undefined;\n\n for (const child of relsEl.elements ?? []) {\n if (child.name !== \"Relationship\") continue;\n const type = attr(child, \"Type\") ?? \"\";\n const target = attr(child, \"Target\") ?? \"\";\n if (!target) continue;\n\n const path = target.startsWith(\"/\") ? target.slice(1) : target;\n\n if (type.includes(\"/core-properties\")) {\n coreProps = path;\n } else if (type.includes(\"/extended-properties\")) {\n appProps = path;\n } else if (type.includes(\"/custom-properties\")) {\n customProps = path;\n }\n }\n\n return { coreProps, appProps, customProps };\n}\n\nfunction parseSlideRels(doc: ParsedArchive, slidePaths: string[], refs: PptxPartRefs): void {\n const commentsSet = new Set(refs.comments);\n const chartsSet = new Set(refs.charts);\n const diagramDataSet = new Set(refs.diagramData);\n const mediaSet = new Set(refs.media);\n\n for (const slidePath of slidePaths) {\n const parts = slidePath.split(\"/\");\n const fileName = parts.pop()!;\n const relsPath = `${parts.join(\"/\")}/_rels/${fileName}.rels`;\n\n const relsEl = doc.get(relsPath);\n if (!relsEl) continue;\n\n for (const child of relsEl.elements ?? []) {\n if (child.name !== \"Relationship\") continue;\n const type = attr(child, \"Type\") ?? \"\";\n const target = attr(child, \"Target\") ?? \"\";\n if (!target) continue;\n\n const path = resolveRelsPath(target);\n\n if (type.includes(\"/comments\") && !type.includes(\"commentAuthors\")) {\n commentsSet.add(path);\n } else if (type.includes(\"/chart\")) {\n chartsSet.add(path);\n } else if (type.includes(\"/diagramData\")) {\n diagramDataSet.add(path);\n } else if (type.includes(\"/image\") || type.includes(\"/video\") || type.includes(\"/media\")) {\n mediaSet.add(path);\n }\n }\n }\n\n refs.comments = [...commentsSet];\n refs.charts = [...chartsSet];\n refs.diagramData = [...diagramDataSet];\n refs.media = [...mediaSet];\n}\n\nexport function parsePptx(data: DataType): PptxDocument {\n const uint8 = toUint8Array(data);\n const doc = parseArchive(uint8);\n\n const presentation = doc.get(\"ppt/presentation.xml\");\n\n const relsXml = doc.get(\"ppt/_rels/presentation.xml.rels\");\n const slides: string[] = [];\n const slideMasters: string[] = [];\n const themes: string[] = [];\n const notesMasters: string[] = [];\n let presProps: string | undefined;\n let viewProps: string | undefined;\n let tableStyles: string | undefined;\n let commentAuthors: string | undefined;\n\n if (relsXml) {\n for (const child of relsXml.elements ?? []) {\n if (child.name !== \"Relationship\") continue;\n const type = attr(child, \"Type\") ?? \"\";\n const target = attr(child, \"Target\") ?? \"\";\n if (!target) continue;\n\n const path = resolveRelsPath(target);\n\n if (type.includes(\"/slideMaster\")) {\n slideMasters.push(path);\n } else if (\n type.includes(\"/slide\") &&\n !type.includes(\"slideLayout\") &&\n !type.includes(\"slideMaster\")\n ) {\n slides.push(path);\n } else if (type.includes(\"/theme\")) {\n themes.push(path);\n } else if (type.includes(\"/notesMaster\")) {\n notesMasters.push(path);\n } else if (type.includes(\"/presProps\")) {\n presProps = path;\n } else if (type.includes(\"/viewProps\")) {\n viewProps = path;\n } else if (type.includes(\"/tableStyles\")) {\n tableStyles = path;\n } else if (type.includes(\"/commentAuthors\")) {\n commentAuthors = path;\n }\n }\n }\n\n sortByNumber(slides);\n sortByNumber(slideMasters);\n sortByNumber(themes);\n sortByNumber(notesMasters);\n\n const slideLayouts = sortByNumber(xmlKeys(doc.keys(\"ppt/slideLayouts/\")));\n const notesSlides = sortByNumber(xmlKeys(doc.keys(\"ppt/notesSlides/\")));\n\n const partRefs: PptxPartRefs = {\n themes,\n notesMasters,\n commentAuthors,\n comments: [],\n charts: [],\n diagramData: [],\n media: doc.keys(\"ppt/media/\"),\n };\n\n parseSlideRels(doc, slides, partRefs);\n sortByNumber(partRefs.comments);\n sortByNumber(partRefs.charts);\n sortByNumber(partRefs.diagramData);\n\n const { coreProps, appProps, customProps } = parseRootRels(doc);\n\n return {\n doc,\n presentation,\n slides,\n slideMasters,\n slideLayouts,\n notesSlides,\n partRefs,\n presProps,\n viewProps,\n tableStyles,\n coreProps,\n appProps,\n customProps,\n };\n}\n\n/**\n * Parse a single slide's relationship file into a Map<rId, path>.\n */\nfunction parseSlideRelMap(doc: ParsedArchive, slidePath: string): Map<string, string> {\n const rels = new Map<string, string>();\n const parts = slidePath.split(\"/\");\n const fileName = parts.pop()!;\n const relsPath = `${parts.join(\"/\")}/_rels/${fileName}.rels`;\n\n const relsEl = doc.get(relsPath);\n if (!relsEl) return rels;\n\n for (const child of relsEl.elements ?? []) {\n if (child.name !== \"Relationship\") continue;\n const id = attr(child, \"Id\") ?? \"\";\n const target = attr(child, \"Target\") ?? \"\";\n if (!id || !target) continue;\n // External links (hyperlinks) keep their original URL target\n if (attr(child, \"TargetMode\") === \"External\") {\n rels.set(id, target);\n } else {\n rels.set(id, resolveRelsPath(target));\n }\n }\n\n return rels;\n}\n\n/**\n * Build a map from each path to the rel target matching a predicate.\n */\nfunction resolveRelTargets(\n doc: ParsedArchive,\n paths: string[],\n predicate: (target: string) => boolean,\n): Map<string, string> {\n const map = new Map<string, string>();\n for (const path of paths) {\n for (const target of parseSlideRelMap(doc, path).values()) {\n if (predicate(target)) map.set(path, target);\n }\n }\n return map;\n}\n\n/**\n * Parse p14:sectionLst from presentation.xml and map each slide path to its\n * section name. Bridges p14:sldId (by slide id) -> p:sldIdLst (slide id ->\n * rId) -> presentation rels (rId -> path).\n */\nfunction parseSlideSections(\n presentation: Element | undefined,\n doc: ParsedArchive,\n): Map<string, string> {\n const pathToSection = new Map<string, string>();\n if (!presentation) return pathToSection;\n\n const extLst = findChild(presentation, \"p:extLst\");\n if (!extLst) return pathToSection;\n\n let sectionLst: Element | undefined;\n for (const ext of extLst.elements ?? []) {\n if (ext.name !== \"p:ext\") continue;\n if (attr(ext, \"uri\") !== \"{521415D9-36F7-43E2-AB2F-B90AF26B5E84}\") continue;\n sectionLst = findChild(ext, \"p14:sectionLst\");\n if (sectionLst) break;\n }\n if (!sectionLst) return pathToSection;\n\n // slideId -> sectionName\n const sectionBySlideId = new Map<number, string>();\n for (const section of sectionLst.elements ?? []) {\n if (section.name !== \"p14:section\") continue;\n const name = attr(section, \"name\");\n if (!name) continue;\n const sldIdLst = findChild(section, \"p14:sldIdLst\");\n for (const sldId of sldIdLst?.elements ?? []) {\n if (sldId.name !== \"p14:sldId\") continue;\n const id = attrNum(sldId, \"id\");\n if (id !== undefined) sectionBySlideId.set(id, name);\n }\n }\n if (sectionBySlideId.size === 0) return pathToSection;\n\n // slideId -> rId (from p:sldIdLst)\n const sldIdLst = findChild(presentation, \"p:sldIdLst\");\n const rIdBySlideId = new Map<number, string>();\n for (const sldId of sldIdLst?.elements ?? []) {\n if (sldId.name !== \"p:sldId\") continue;\n const id = attrNum(sldId, \"id\");\n const rId = attr(sldId, \"r:id\");\n if (id !== undefined && rId) rIdBySlideId.set(id, rId);\n }\n\n // rId -> path (from presentation.xml.rels)\n const relsEl = doc.get(\"ppt/_rels/presentation.xml.rels\");\n const pathByRId = new Map<string, string>();\n for (const child of relsEl?.elements ?? []) {\n if (child.name !== \"Relationship\") continue;\n const id = attr(child, \"Id\");\n const target = attr(child, \"Target\");\n if (id && target) pathByRId.set(id, resolveRelsPath(target));\n }\n\n for (const [slideId, name] of sectionBySlideId) {\n const rId = rIdBySlideId.get(slideId);\n if (!rId) continue;\n const path = pathByRId.get(rId);\n if (path) pathToSection.set(path, name);\n }\n\n return pathToSection;\n}\n\n/**\n * Parse a .pptx file and convert it into PresentationOptions.\n *\n * This is the main public API for parsing PPTX files.\n * The returned options can be passed directly to `new Presentation(parsed)`\n * to recreate the presentation.\n *\n * @param data - Raw bytes of a .pptx file\n * @returns Parsed presentation options\n */\nexport function parsePresentation(data: DataType): PresentationOptions {\n const pptx = parsePptx(data);\n const opts: Partial<PresentationOptions> = {};\n const sectionBySlidePath = parseSlideSections(pptx.presentation, pptx.doc);\n\n // 1. Parse slide size from p:sldSz\n if (pptx.presentation) {\n const sldSz = findChild(pptx.presentation, \"p:sldSz\");\n if (sldSz) {\n const cx = attrNum(sldSz, \"cx\");\n const cy = attrNum(sldSz, \"cy\");\n if (cx === 12192000 && cy === 6858000) {\n opts.size = \"16:9\";\n } else if (cx === 9144000 && cy === 6858000) {\n opts.size = \"4:3\";\n } else if (cx && cy) {\n opts.size = { width: cx, height: cy };\n }\n }\n }\n\n // 2. Parse core properties\n if (pptx.coreProps) {\n const corePropsEl = pptx.doc.get(pptx.coreProps);\n if (corePropsEl) {\n const cp = parseCorePropsElement(corePropsEl);\n if (cp.title) opts.title = cp.title;\n if (cp.subject) opts.subject = cp.subject;\n if (cp.creator) opts.creator = cp.creator;\n if (cp.keywords) opts.keywords = cp.keywords;\n if (cp.description) opts.description = cp.description;\n if (cp.lastModifiedBy) opts.lastModifiedBy = cp.lastModifiedBy;\n if (cp.revision !== undefined) opts.revision = cp.revision;\n if (cp.lastPrinted) opts.lastPrinted = cp.lastPrinted;\n if (cp.created) opts.created = cp.created;\n if (cp.modified) opts.modified = cp.modified;\n }\n }\n\n // 2b. Parse extended (app) properties\n if (pptx.appProps) {\n const appPropsEl = pptx.doc.get(pptx.appProps);\n if (appPropsEl) {\n const ap = appPropertiesDesc.parse(appPropsEl, {} as ReadContext);\n if (ap && Object.keys(ap).length > 0) opts.appProperties = ap;\n }\n }\n\n // 2c. Parse custom properties\n if (pptx.customProps) {\n const customPropsEl = pptx.doc.get(pptx.customProps);\n if (customPropsEl) {\n const cp = customPropertiesDesc.parse(customPropsEl, {} as ReadContext);\n if (cp.properties?.length) opts.customProperties = cp.properties;\n }\n }\n\n // 3. Parse show options from presProps\n if (pptx.presProps) {\n const presPropsEl = pptx.doc.get(pptx.presProps);\n if (presPropsEl) {\n const presPropsOpts = presPropsDesc.parse(presPropsEl, {} as ReadContext);\n if (presPropsOpts.show) opts.show = presPropsOpts.show;\n }\n }\n\n // 3b. Parse view properties\n if (pptx.viewProps) {\n const viewPropsEl = pptx.doc.get(pptx.viewProps);\n if (viewPropsEl) {\n const viewOpts = viewPropsDesc.parse(viewPropsEl, {} as ReadContext);\n if (viewOpts.lastView || viewOpts.showComments !== undefined || viewOpts.gridSpacing) {\n opts.view = viewOpts;\n }\n }\n }\n\n // 3c. Parse table styles\n if (pptx.tableStyles) {\n const tableStylesEl = pptx.doc.get(pptx.tableStyles);\n if (tableStylesEl) {\n const tableStylesResult = tableStylesDesc.parse(tableStylesEl, {} as ReadContext);\n if (tableStylesResult.opts) opts.tableStyles = tableStylesResult.opts;\n }\n }\n\n // 4. Build relationship maps\n const masterThemePaths = resolveRelTargets(pptx.doc, pptx.slideMasters, (t) =>\n t.includes(\"/theme\"),\n );\n const layoutMasterPaths = resolveRelTargets(pptx.doc, pptx.slideLayouts, (t) =>\n t.includes(\"/slideMaster\"),\n );\n const slideLayoutPaths = resolveRelTargets(pptx.doc, pptx.slides, (t) =>\n t.includes(\"/slideLayout\"),\n );\n\n // 5. Parse masters\n const masterCount = pptx.slideMasters.length;\n const masterDefs: MasterDefinition[] = [];\n const masterReadCtx = new PptxReadContext(new ParseContext(pptx, new Map()));\n for (let mi = 0; mi < masterCount; mi++) {\n const masterPath = pptx.slideMasters[mi];\n const masterEl = pptx.doc.get(masterPath);\n if (!masterEl) continue;\n\n // Theme\n const themePath = masterThemePaths.get(masterPath);\n const themeEl = themePath ? pptx.doc.get(themePath) : undefined;\n const themeOptions = themeEl ? themeDesc.parse(themeEl, masterReadCtx) : undefined;\n\n // Background (inline: findChild → backgroundDesc.parse)\n const cSld = findChild(masterEl, \"p:cSld\");\n const bg = cSld ? findChild(cSld, \"p:bg\") : undefined;\n const masterBackground = bg ? backgroundDesc.parse(bg, masterReadCtx) : undefined;\n const hasBackground = masterBackground && Object.keys(masterBackground).length > 0;\n\n // Children: extract non-placeholder shapes from spTree\n const spTree = cSld ? findChild(cSld, \"p:spTree\") : undefined;\n const masterChildren: SlideChild[] = [];\n if (spTree) {\n for (const child of spTree.elements ?? []) {\n // Skip nvGrpSpPr/grpSpPr (tree container structure, not shapes)\n if (child.name === \"p:nvGrpSpPr\" || child.name === \"p:grpSpPr\") continue;\n // Skip placeholder shapes (generated by DefaultSlideMaster template)\n if (child.name === \"p:sp\") {\n const nvSpPr = findChild(child, \"p:nvSpPr\");\n const nvPr = nvSpPr ? findChild(nvSpPr, \"p:nvPr\") : undefined;\n if (nvPr && findChild(nvPr, \"p:ph\")) continue;\n }\n const parsed = parseChild(child, masterReadCtx);\n if (parsed !== undefined) masterChildren.push(parsed);\n }\n }\n\n // Layouts belonging to this master\n const masterLayouts: LayoutDefinition[] = [];\n for (const layoutPath of pptx.slideLayouts) {\n if (layoutMasterPaths.get(layoutPath) !== masterPath) continue;\n const layoutEl = pptx.doc.get(layoutPath);\n if (layoutEl) {\n const layoutOpts = slideLayoutDesc.parse(layoutEl, masterReadCtx);\n const layoutDef: LayoutDefinition = {\n type: (layoutOpts.type ?? \"blank\") as SlideLayoutType,\n };\n if (layoutOpts.placeholders) layoutDef.placeholders = layoutOpts.placeholders;\n masterLayouts.push(layoutDef);\n }\n }\n\n const masterName = themeOptions?.name ?? `master${mi + 1}`;\n const masterDef: Partial<MasterDefinition> = {};\n masterDef.name = masterName;\n if (themeOptions) masterDef.theme = themeOptions;\n if (hasBackground) masterDef.background = masterBackground;\n // MasterChild (shared) declares only { shape }; parse yields the full\n // SlideChild union (parts-layer). The shared/parts split prevents unifying\n // them (SlideChild cannot move to shared — circular dep), so the cast stays\n // local to this known impedance.\n if (masterChildren.length > 0) masterDef.children = masterChildren as unknown as MasterChild[];\n if (masterLayouts.length > 0) masterDef.layouts = masterLayouts;\n masterDefs.push(masterDef as MasterDefinition);\n }\n\n // Only set masters if there's more than one (single master is auto-created)\n if (masterCount > 1) {\n opts.masters = masterDefs;\n }\n\n // 5b. Parse notes masters\n for (const nmPath of pptx.partRefs.notesMasters) {\n const nmEl = pptx.doc.get(nmPath);\n if (nmEl) {\n const nmOpts = notesMasterDesc.parse(nmEl, masterReadCtx);\n if (nmOpts.options) {\n opts.includeNotesMaster = true;\n opts.notesMasterOptions = nmOpts.options;\n }\n }\n }\n\n // 5c. Parse handout masters (no separate handling needed, just mark inclusion)\n // Handout masters are referenced from presentation.xml rels but not stored in PptxDocument currently\n\n // 6. Parse comment authors\n const commentAuthors = new Map<number, { name: string; initials: string }>();\n if (pptx.partRefs.commentAuthors) {\n const authorsEl = pptx.doc.get(pptx.partRefs.commentAuthors);\n if (authorsEl) {\n const authors = commentAuthorsDesc.parse(authorsEl, masterReadCtx);\n for (const a of authors) {\n commentAuthors.set(a.id, { name: a.name, initials: a.initials });\n }\n }\n }\n\n // 7. Parse slides with layout and master references\n const result: SlideOptions[] = [];\n for (let si = 0; si < pptx.slides.length; si++) {\n const slidePath = pptx.slides[si];\n const slideEl = pptx.doc.get(slidePath);\n if (!slideEl) continue;\n\n const slideRels = parseSlideRelMap(pptx.doc, slidePath);\n const ctx = new ParseContext(pptx, slideRels);\n const readCtx = new PptxReadContext(ctx);\n // slideDesc.parse returns SlideDescriptorOptions (internal descriptor type:\n // 4-variant SlideChild, no layout/master/comments/notes/section). We enrich\n // it with those public-API fields below and coerce to SlideOptions at push.\n // Record bridges this descriptor/public impedance — slide.ts itself is a\n // known stringify≠parse split, so the wrapper stays until that is resolved.\n const slideOpts = slideDesc.parse(slideEl, readCtx) as Record<string, unknown>;\n\n // Resolve layout → master\n const layoutPath = slideLayoutPaths.get(slidePath);\n if (layoutPath) {\n const layoutEl = pptx.doc.get(layoutPath);\n if (layoutEl) {\n const layoutOpts = slideLayoutDesc.parse(layoutEl, readCtx);\n slideOpts.layout = (layoutOpts.type ?? \"blank\") as SlideLayoutType;\n }\n\n const resolvedMasterPath = layoutMasterPaths.get(layoutPath);\n if (resolvedMasterPath) {\n const masterIdx = pptx.slideMasters.indexOf(resolvedMasterPath);\n if (masterIdx >= 0 && masterDefs[masterIdx]) {\n slideOpts.master = masterDefs[masterIdx].name;\n }\n }\n }\n\n // Comments via slide rels\n for (const [, relPath] of slideRels) {\n if (!relPath.includes(\"/comments/\")) continue;\n const commentsEl = pptx.doc.get(relPath);\n if (!commentsEl) continue;\n\n const parsedComments = slideCommentsDesc.parse(commentsEl, readCtx);\n if (parsedComments.length > 0) {\n const comments: Partial<SlideCommentOptions>[] = [];\n for (const cm of parsedComments) {\n const entry: Partial<SlideCommentOptions> = { x: cm.x, y: cm.y };\n if (cm.text) entry.text = cm.text;\n if (cm.date) entry.date = cm.date;\n if (cm.modified !== undefined) entry.modified = cm.modified;\n const author = commentAuthors.get(cm.authorId);\n if (author) {\n entry.author = author.name;\n if (author.initials) entry.initials = author.initials;\n }\n comments.push(entry);\n }\n if (comments.length > 0) slideOpts.comments = comments as SlideCommentOptions[];\n }\n break;\n }\n\n // Notes slide via slide rels\n for (const [, relPath] of slideRels) {\n if (!relPath.includes(\"/notesSlides/\")) continue;\n const notesEl = pptx.doc.get(relPath);\n if (!notesEl) continue;\n const notesData = notesSlideDesc.parse(notesEl, readCtx);\n if (notesData.text) slideOpts.notes = notesData.text;\n break;\n }\n\n // Section (p14:sectionLst) — bridged via slide id -> rId -> path\n const sectionName = sectionBySlidePath.get(slidePath);\n if (sectionName) slideOpts.section = sectionName;\n\n result.push(slideOpts as SlideOptions);\n }\n\n opts.slides = result;\n return opts as PresentationOptions;\n}\n"],"mappings":"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"} |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
@@ -1,2 +0,2 @@ | ||
| import { a as PresentationOptions } from "./file-Ck1J4ENn.mjs"; | ||
| import { a as PresentationOptions } from "./file-Dh_35y_9.mjs"; | ||
| import { OutputByType, OutputType, PackerOptions } from "@office-open/core"; | ||
@@ -3,0 +3,0 @@ |
@@ -1,2 +0,2 @@ | ||
| import { n as compilePresentation } from "./compiler-BrP7hwVc.mjs"; | ||
| import { n as compilePresentation } from "./compiler-CbnF_ZfY.mjs"; | ||
| import { OoxmlMimeType, createPacker } from "@office-open/core"; | ||
@@ -3,0 +3,0 @@ //#region src/generate.ts |
+13
-13
@@ -1,2 +0,2 @@ | ||
| import { $ as ParagraphOptions, A as PosterType, At as BlipFillMediaData, B as AnimationOptions, Bt as SoftEdgeOptions, C as ShapePropertiesOptions, Ct as PhotoAlbumOptions, D as createOutlineCompat, Dt as buildHandoutMasterXml, E as OutlineOptions, Et as buildNotesMasterXml, F as MediaData, Ft as EffectsOptions, G as MediaAnimationType, H as AnimationType, I as MediaDataTransformation, It as GlowOptions, J as LockedCanvasFrameOptions, K as PathAnimationType, L as AnimationCalcMode, Lt as ReflectionAlignment, M as VideoType, Mt as GradientStopOptions, N as AudioFrameOptions, Nt as buildFill, O as GroupShapeOptions, Ot as BackgroundOptions, P as AudioType, Pt as extractBlipFillMedia, Q as CellBorderOptions, R as AnimationClass, Rt as ReflectionOptions, S as ShapeOptions, St as ModifyVerifierOptions, T as LineShapeOptions, Tt as ViewWrapper, U as AnimationValueType, V as AnimationTrigger, Vt as createPptxEffectList, W as EmphasisType, X as TableCellOptions, Y as TextBodyOptions, Z as VerticalAlignment, _ as createThemeXml, _t as PresentationPropertiesFullOptions, a as PresentationOptions, at as UnderlineStyle, b as TableOptions, bt as EmbeddedFontOptions, c as SlideOptions, ct as ChartOptions, d as TransitionOptions, dt as SlideMasterOptions, et as RunOptions, f as TransitionType, ft as buildSlideMasterXml, g as ThemeOptions, gt as buildLayoutXml, h as FontSchemeOptions, ht as buildCustomLayoutXml, i as MasterDefinition, it as TextCapitalization, j as VideoFrameOptions, jt as FillOptions, k as PictureOptions, kt as BlipFillConfigOptions, l as SlideSize, lt as MasterPlaceholderOptions, m as ColorSchemeOptions, mt as SlideLayoutType, n as LayoutPlaceholderOptions, nt as RunPropertiesOptions, o as ShowOptions, ot as ParagraphPropertiesOptions, p as buildTransition, pt as SlideHeaderFooterOptions, q as SmartArtOptions, r as MasterChild, rt as StrikeStyle, s as SlideCommentOptions, st as TextAlignment, t as LayoutDefinition, tt as HyperlinkOptions, u as TransitionDirection, ut as MasterPlaceholderPosition, v as ViewPropertiesOptions, vt as CustomShowOptions, w as ConnectorShapeOptions, wt as PresentationPartOptions, x as TableRowOptions, xt as KinsokuOptions, y as SlideChild, yt as CustomerDataOptions, z as AnimationDirection, zt as ShadowOptions } from "./file-Ck1J4ENn.mjs"; | ||
| import { $ as ParagraphOptions, A as PosterType, At as BlipFillMediaData, B as AnimationOptions, Bt as SoftEdgeOptions, C as ShapePropertiesOptions, Ct as PhotoAlbumOptions, D as createOutlineCompat, Dt as buildHandoutMasterXml, E as OutlineOptions, Et as buildNotesMasterXml, F as MediaData, Ft as EffectsOptions, G as MediaAnimationType, H as AnimationType, I as MediaDataTransformation, It as GlowOptions, J as LockedCanvasFrameOptions, K as PathAnimationType, L as AnimationCalcMode, Lt as ReflectionAlignment, M as VideoType, Mt as GradientStopOptions, N as AudioFrameOptions, Nt as buildFill, O as GroupShapeOptions, Ot as BackgroundOptions, P as AudioType, Pt as extractBlipFillMedia, Q as CellBorderOptions, R as AnimationClass, Rt as ReflectionOptions, S as ShapeOptions, St as ModifyVerifierOptions, T as LineShapeOptions, Tt as ViewWrapper, U as AnimationValueType, V as AnimationTrigger, Vt as createPptxEffectList, W as EmphasisType, X as TableCellOptions, Y as TextBodyOptions, Z as VerticalAlignment, _ as createThemeXml, _t as PresentationPropertiesFullOptions, a as PresentationOptions, at as UnderlineStyle, b as TableOptions, bt as EmbeddedFontOptions, c as SlideOptions, ct as ChartOptions, d as TransitionOptions, dt as SlideMasterOptions, et as RunOptions, f as TransitionType, ft as buildSlideMasterXml, g as ThemeOptions, gt as buildLayoutXml, h as FontSchemeOptions, ht as buildCustomLayoutXml, i as MasterDefinition, it as TextCapitalization, j as VideoFrameOptions, jt as FillOptions, k as PictureOptions, kt as BlipFillConfigOptions, l as SlideSize, lt as MasterPlaceholderOptions, m as ColorSchemeOptions, mt as SlideLayoutType, n as LayoutPlaceholderOptions, nt as RunPropertiesOptions, o as ShowOptions, ot as ParagraphPropertiesOptions, p as buildTransition, pt as SlideHeaderFooterOptions, q as SmartArtOptions, r as MasterChild, rt as StrikeStyle, s as SlideCommentOptions, st as TextAlignment, t as LayoutDefinition, tt as HyperlinkOptions, u as TransitionDirection, ut as MasterPlaceholderPosition, v as ViewPropertiesOptions, vt as CustomShowOptions, w as ConnectorShapeOptions, wt as PresentationPartOptions, x as TableRowOptions, xt as KinsokuOptions, y as SlideChild, yt as CustomerDataOptions, z as AnimationDirection, zt as ShadowOptions } from "./file-Dh_35y_9.mjs"; | ||
| import { generatePresentation, generatePresentationStream, generatePresentationSync } from "./generate.mjs"; | ||
@@ -75,4 +75,4 @@ import { PptxDocument, PptxPartRefs, parseArchive, parsePptx, parsePresentation } from "./parse.mjs"; | ||
| modified?: boolean; | ||
| x: number; | ||
| y: number; | ||
| x: number | UniversalMeasure; | ||
| y: number | UniversalMeasure; | ||
| text: string; | ||
@@ -139,6 +139,6 @@ } | ||
| name?: string; | ||
| x?: number; | ||
| y?: number; | ||
| width?: number; | ||
| height?: number; | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| geometry?: string | PresetGeometryOptions; | ||
@@ -165,6 +165,6 @@ customGeometry?: CustomGeometryOptions; | ||
| name?: string; | ||
| x?: number; | ||
| y?: number; | ||
| width?: number; | ||
| height?: number; | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| effects?: EffectsOptions; | ||
@@ -246,4 +246,4 @@ data: Uint8Array; | ||
| }; | ||
| width: number; | ||
| height: number; | ||
| width: number | UniversalMeasure; | ||
| height: number | UniversalMeasure; | ||
| flip?: { | ||
@@ -250,0 +250,0 @@ vertical?: boolean; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.mts","names":[],"sources":["../src/parts/content-types.ts","../src/parts/notes-slide.ts","../src/parts/descriptors/slide-layout.ts","../src/shared/animation/timing.ts","../src/parts/descriptors/animation.ts","../src/parts/comment.ts","../src/parts/descriptors/comments.ts","../src/parts/descriptors/background.ts","../src/parts/descriptors/presentation-properties.ts","../src/parts/descriptors/shape.ts","../src/parts/descriptors/slide.ts","../src/parts/descriptors/slide-master.ts","../src/shared/drawingml/transform-2d.ts","../src/shared/media/media.ts","../src/context.ts","../src/compiler.ts"],"mappings":"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"} | ||
| {"version":3,"file":"index.d.mts","names":[],"sources":["../src/parts/content-types.ts","../src/parts/notes-slide.ts","../src/parts/descriptors/slide-layout.ts","../src/shared/animation/timing.ts","../src/parts/descriptors/animation.ts","../src/parts/comment.ts","../src/parts/descriptors/comments.ts","../src/parts/descriptors/background.ts","../src/parts/descriptors/presentation-properties.ts","../src/parts/descriptors/shape.ts","../src/parts/descriptors/slide.ts","../src/parts/descriptors/slide-master.ts","../src/shared/drawingml/transform-2d.ts","../src/shared/media/media.ts","../src/context.ts","../src/compiler.ts"],"mappings":"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"} |
+20
-16
@@ -1,7 +0,7 @@ | ||
| import { a as createThemeXml, c as buildCustomLayoutXml, d as ContentTypes, i as buildTransition, l as buildLayoutXml, n as compilePresentation, o as slideMasterDesc, s as buildHandoutMasterXml, u as buildSlideMasterXml } from "./compiler-BrP7hwVc.mjs"; | ||
| import { C as ReflectionAlignment, S as extractBlipFillMedia, _ as timingDesc, b as buildNotesMasterXml, d as backgroundDesc, g as slideCommentsDesc, h as commentAuthorsDesc, o as PptxReadContext, s as PptxWriteContext, u as presPropsDesc, v as slideLayoutDesc, w as createPptxEffectList, x as buildFill, y as buildNotesSlideXml } from "./view-properties-apHXZ-pk.mjs"; | ||
| import { i as slideDesc, n as parsePptx, r as parsePresentation, t as parseArchive } from "./parse-B9PWJ1mK.mjs"; | ||
| import { a as createThemeXml, c as buildCustomLayoutXml, d as ContentTypes, i as buildTransition, l as buildLayoutXml, n as compilePresentation, o as slideMasterDesc, s as buildHandoutMasterXml, u as buildSlideMasterXml } from "./compiler-CbnF_ZfY.mjs"; | ||
| import { C as ReflectionAlignment, S as extractBlipFillMedia, _ as timingDesc, b as buildNotesMasterXml, d as backgroundDesc, g as slideCommentsDesc, h as commentAuthorsDesc, o as PptxReadContext, s as PptxWriteContext, u as presPropsDesc, v as slideLayoutDesc, w as createPptxEffectList, x as buildFill, y as buildNotesSlideXml } from "./view-properties-D9ZVHjXg.mjs"; | ||
| import { i as slideDesc, n as parsePptx, r as parsePresentation, t as parseArchive } from "./parse-Cn_n-WuO.mjs"; | ||
| import { patchPresentation } from "./patch.mjs"; | ||
| import { generatePresentation, generatePresentationStream, generatePresentationSync } from "./generate.mjs"; | ||
| import { Media, Relationships, convertPixelsToEmu } from "@office-open/core"; | ||
| import { Media, Relationships, convertEmuToPixels, convertToEmu } from "@office-open/core"; | ||
| import { BevelPresetType, CompoundLine, LineCap, LineJoin, PathShadeType, PenAlignment, PresetDash, PresetMaterialType, TileFlipMode, createBevel, createBottomBevel, createColorElement, createColorTransforms, createEffectList, createGradientFill, createGradientStop, createOutline, createOutline as createOutline$1, createScene3D, createShape3D, stringifyPresetGeometry } from "@office-open/core/drawingml"; | ||
@@ -75,14 +75,18 @@ import { themeDesc } from "@office-open/core/theme"; | ||
| */ | ||
| const createTransformation = (options) => ({ | ||
| emus: { | ||
| x: convertPixelsToEmu(options.width), | ||
| y: convertPixelsToEmu(options.height) | ||
| }, | ||
| pixels: { | ||
| x: Math.round(options.width), | ||
| y: Math.round(options.height) | ||
| }, | ||
| flip: options.flip, | ||
| rotation: options.rotation ? options.rotation * 6e4 : void 0 | ||
| }); | ||
| const createTransformation = (options) => { | ||
| const cx = convertToEmu(options.width); | ||
| const cy = convertToEmu(options.height); | ||
| return { | ||
| emus: { | ||
| x: cx, | ||
| y: cy | ||
| }, | ||
| pixels: { | ||
| x: Math.round(convertEmuToPixels(cx)), | ||
| y: Math.round(convertEmuToPixels(cy)) | ||
| }, | ||
| flip: options.flip, | ||
| rotation: options.rotation ? options.rotation * 6e4 : void 0 | ||
| }; | ||
| }; | ||
| //#endregion | ||
@@ -89,0 +93,0 @@ export { BevelPresetType, ChartCollection, CompoundLine, ContentTypes, LineCap, LineJoin, Media, PathShadeType, PenAlignment, PptxReadContext, PptxWriteContext, PresetDash, PresetMaterialType, ReflectionAlignment, Relationships, SmartArtCollection, StrikeStyle, TextCapitalization, TileFlipMode, UnderlineStyle, backgroundDesc, buildCustomLayoutXml, buildFill, buildHandoutMasterXml, buildLayoutXml, buildNotesMasterXml, buildNotesSlideXml, buildSlideMasterXml, buildTransition, chartSpaceDesc, commentAuthorsDesc, compilePresentation, createBevel, createBottomBevel, createColorElement, createColorTransforms, createDataModel, createEffectList, createGradientFill, createGradientStop, createOutline, createOutlineCompat, createPptxEffectList, createScene3D, createShape3D, createThemeXml, createTransformation, extractBlipFillMedia, generatePresentation, generatePresentationStream, generatePresentationSync, parseArchive, parsePptx, parsePresentation, patchPresentation, presPropsDesc, slideCommentsDesc, slideDesc, slideLayoutDesc, slideMasterDesc, stringifyPresetGeometry, themeDesc, timingDesc }; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.mjs","names":["createOutline"],"sources":["../src/shared/drawingml/outline.ts","../src/shared/shape/paragraph/run-properties.ts","../src/shared/media/media.ts"],"sourcesContent":["import { createOutline, PresetDash, LineEndType, LineEndWidth } from \"@office-open/core/drawingml\";\nimport type {\n OutlineOptions as CoreOutlineOptions,\n LineEndOptions as CoreLineEndOptions,\n} from \"@office-open/core/drawingml\";\n\n/**\n * PPTX-specific outline options (backward-compatible API).\n */\nexport interface OutlineOptions {\n width?: number;\n color?: string;\n dashStyle?: \"solid\" | \"dash\" | \"dashDot\" | \"lgDash\" | \"sysDot\" | \"sysDash\";\n}\n\nexport type { CoreOutlineOptions as OutlineOptionsCore };\n\nconst DASH_STYLE_MAP: Record<string, (typeof PresetDash)[keyof typeof PresetDash]> = {\n solid: \"solid\",\n dash: \"dash\",\n dashDot: \"dashDot\",\n lgDash: \"lgDash\",\n sysDot: \"sysDot\",\n sysDash: \"sysDash\",\n};\n\nconst ARROWHEAD_MAP: Record<string, (typeof LineEndType)[keyof typeof LineEndType]> = {\n triangle: \"triangle\",\n stealth: \"stealth\",\n diamond: \"diamond\",\n oval: \"oval\",\n open: \"arrow\",\n};\n\nfunction toCoreLineEnd(type: string, width?: string, length?: string): CoreLineEndOptions {\n return {\n type: ARROWHEAD_MAP[type] ?? \"triangle\",\n ...(width ? { width: width as (typeof LineEndWidth)[keyof typeof LineEndWidth] } : {}),\n ...(length ? { length: length as (typeof LineEndWidth)[keyof typeof LineEndWidth] } : {}),\n };\n}\n\n/**\n * Creates an outline element using pptx's simplified API.\n */\nexport const createOutlineCompat = (\n options: OutlineOptions = {},\n arrowheads?: {\n beginType?: string;\n endType?: string;\n width?: string;\n length?: string;\n },\n) =>\n createOutline({\n width: options.width,\n ...(options.color\n ? { type: \"solidFill\" as const, color: { value: options.color.replace(\"#\", \"\") } }\n : { type: \"noFill\" as const }),\n ...(options.dashStyle && {\n dash: DASH_STYLE_MAP[options.dashStyle] ?? \"solid\",\n }),\n ...(arrowheads?.endType\n ? { headEnd: toCoreLineEnd(arrowheads.endType, arrowheads.width, arrowheads.length) }\n : {}),\n ...(arrowheads?.beginType\n ? { tailEnd: toCoreLineEnd(arrowheads.beginType, arrowheads.width, arrowheads.length) }\n : {}),\n } satisfies CoreOutlineOptions);\n","import { xsdStrikeStyle, xsdTextCaps, xsdUnderlineStyle } from \"@office-open/core\";\n/**\n * Run properties types and constants for PPTX text runs.\n *\n * @module\n */\nimport type { FillOptions } from \"@shared/drawingml/fill\";\n\n// Re-export XSD converters for descriptor use\nexport { xsdStrikeStyle, xsdTextCaps, xsdUnderlineStyle };\n\nexport const UnderlineStyle = {\n SINGLE: \"single\",\n DOUBLE: \"double\",\n NONE: \"none\",\n} as const;\n\nexport const StrikeStyle = {\n SINGLE: \"sngStrike\",\n DOUBLE: \"dblStrike\",\n NONE: \"noStrike\",\n} as const;\n\nexport const TextCapitalization = {\n NONE: \"none\",\n ALL: \"all\",\n SMALL: \"small\",\n} as const;\n\nexport interface HyperlinkOptions {\n url: string;\n tooltip?: string;\n action?: string;\n highlightClick?: boolean;\n endSound?: boolean;\n invalidUrl?: boolean;\n}\n\nexport interface RunPropertiesOptions {\n /** Font size in points. Serialized as OOXML `a:sz` (hundredths of a point). */\n size?: number;\n bold?: boolean;\n italic?: boolean;\n underline?: (typeof UnderlineStyle)[keyof typeof UnderlineStyle];\n font?: string;\n lang?: string;\n fill?: FillOptions;\n hyperlink?: HyperlinkOptions;\n strike?: (typeof StrikeStyle)[keyof typeof StrikeStyle];\n baseline?: number;\n spacing?: number;\n capitalization?: (typeof TextCapitalization)[keyof typeof TextCapitalization];\n shadow?: boolean;\n outline?: boolean;\n rightToLeft?: boolean;\n noProof?: boolean;\n dirty?: boolean;\n kumimoji?: boolean;\n alternateLanguage?: string;\n normalizeHeight?: boolean;\n bookmarkMark?: string;\n smartTagId?: string;\n}\n","/**\n * Media module for PresentationML documents.\n *\n * Provides transformation helpers for embedded media. The deduplicated\n * {@link Media} collection lives in @office-open/core and is shared across all\n * format packages.\n *\n * @module\n */\nimport { convertPixelsToEmu } from \"@office-open/core\";\n\nimport type { MediaDataTransformation } from \"./data\";\n\nexport interface MediaTransformation {\n offset?: {\n top?: number;\n left?: number;\n };\n width: number;\n height: number;\n flip?: {\n vertical?: boolean;\n horizontal?: boolean;\n };\n rotation?: number;\n}\n\nexport const createTransformation = (options: MediaTransformation): MediaDataTransformation => ({\n emus: {\n x: convertPixelsToEmu(options.width),\n y: convertPixelsToEmu(options.height),\n },\n pixels: {\n x: Math.round(options.width),\n y: Math.round(options.height),\n },\n flip: options.flip,\n rotation: options.rotation ? options.rotation * 60_000 : undefined,\n});\n"],"mappings":";;;;;;;;;;;AAiBA,MAAM,iBAA+E;CACnF,OAAO;CACP,MAAM;CACN,SAAS;CACT,QAAQ;CACR,QAAQ;CACR,SAAS;AACX;AAEA,MAAM,gBAAgF;CACpF,UAAU;CACV,SAAS;CACT,SAAS;CACT,MAAM;CACN,MAAM;AACR;AAEA,SAAS,cAAc,MAAc,OAAgB,QAAqC;CACxF,OAAO;EACL,MAAM,cAAc,SAAS;EAC7B,GAAI,QAAQ,EAAS,MAA0D,IAAI,CAAC;EACpF,GAAI,SAAS,EAAU,OAA2D,IAAI,CAAC;CACzF;AACF;;;;AAKA,MAAa,uBACX,UAA0B,CAAC,GAC3B,eAOAA,gBAAc;CACZ,OAAO,QAAQ;CACf,GAAI,QAAQ,QACR;EAAE,MAAM;EAAsB,OAAO,EAAE,OAAO,QAAQ,MAAM,QAAQ,KAAK,EAAE,EAAE;CAAE,IAC/E,EAAE,MAAM,SAAkB;CAC9B,GAAI,QAAQ,aAAa,EACvB,MAAM,eAAe,QAAQ,cAAc,QAC7C;CACA,GAAI,YAAY,UACZ,EAAE,SAAS,cAAc,WAAW,SAAS,WAAW,OAAO,WAAW,MAAM,EAAE,IAClF,CAAC;CACL,GAAI,YAAY,YACZ,EAAE,SAAS,cAAc,WAAW,WAAW,WAAW,OAAO,WAAW,MAAM,EAAE,IACpF,CAAC;AACP,CAA8B;;;ACzDhC,MAAa,iBAAiB;CAC5B,QAAQ;CACR,QAAQ;CACR,MAAM;AACR;AAEA,MAAa,cAAc;CACzB,QAAQ;CACR,QAAQ;CACR,MAAM;AACR;AAEA,MAAa,qBAAqB;CAChC,MAAM;CACN,KAAK;CACL,OAAO;AACT;;;;;;;;;;;;ACAA,MAAa,wBAAwB,aAA2D;CAC9F,MAAM;EACJ,GAAG,mBAAmB,QAAQ,KAAK;EACnC,GAAG,mBAAmB,QAAQ,MAAM;CACtC;CACA,QAAQ;EACN,GAAG,KAAK,MAAM,QAAQ,KAAK;EAC3B,GAAG,KAAK,MAAM,QAAQ,MAAM;CAC9B;CACA,MAAM,QAAQ;CACd,UAAU,QAAQ,WAAW,QAAQ,WAAW,MAAS,KAAA;AAC3D"} | ||
| {"version":3,"file":"index.mjs","names":["createOutline"],"sources":["../src/shared/drawingml/outline.ts","../src/shared/shape/paragraph/run-properties.ts","../src/shared/media/media.ts"],"sourcesContent":["import type { UniversalMeasure } from \"@office-open/core\";\nimport { createOutline, PresetDash, LineEndType, LineEndWidth } from \"@office-open/core/drawingml\";\nimport type {\n OutlineOptions as CoreOutlineOptions,\n LineEndOptions as CoreLineEndOptions,\n} from \"@office-open/core/drawingml\";\n\n/**\n * PPTX-specific outline options (backward-compatible API).\n */\nexport interface OutlineOptions {\n width?: number | UniversalMeasure;\n color?: string;\n dashStyle?: \"solid\" | \"dash\" | \"dashDot\" | \"lgDash\" | \"sysDot\" | \"sysDash\";\n}\n\nexport type { CoreOutlineOptions as OutlineOptionsCore };\n\nconst DASH_STYLE_MAP: Record<string, (typeof PresetDash)[keyof typeof PresetDash]> = {\n solid: \"solid\",\n dash: \"dash\",\n dashDot: \"dashDot\",\n lgDash: \"lgDash\",\n sysDot: \"sysDot\",\n sysDash: \"sysDash\",\n};\n\nconst ARROWHEAD_MAP: Record<string, (typeof LineEndType)[keyof typeof LineEndType]> = {\n triangle: \"triangle\",\n stealth: \"stealth\",\n diamond: \"diamond\",\n oval: \"oval\",\n open: \"arrow\",\n};\n\nfunction toCoreLineEnd(type: string, width?: string, length?: string): CoreLineEndOptions {\n return {\n type: ARROWHEAD_MAP[type] ?? \"triangle\",\n ...(width ? { width: width as (typeof LineEndWidth)[keyof typeof LineEndWidth] } : {}),\n ...(length ? { length: length as (typeof LineEndWidth)[keyof typeof LineEndWidth] } : {}),\n };\n}\n\n/**\n * Creates an outline element using pptx's simplified API.\n */\nexport const createOutlineCompat = (\n options: OutlineOptions = {},\n arrowheads?: {\n beginType?: string;\n endType?: string;\n width?: string;\n length?: string;\n },\n) =>\n createOutline({\n width: options.width,\n ...(options.color\n ? { type: \"solidFill\" as const, color: { value: options.color.replace(\"#\", \"\") } }\n : { type: \"noFill\" as const }),\n ...(options.dashStyle && {\n dash: DASH_STYLE_MAP[options.dashStyle] ?? \"solid\",\n }),\n ...(arrowheads?.endType\n ? { headEnd: toCoreLineEnd(arrowheads.endType, arrowheads.width, arrowheads.length) }\n : {}),\n ...(arrowheads?.beginType\n ? { tailEnd: toCoreLineEnd(arrowheads.beginType, arrowheads.width, arrowheads.length) }\n : {}),\n } satisfies CoreOutlineOptions);\n","import { xsdStrikeStyle, xsdTextCaps, xsdUnderlineStyle } from \"@office-open/core\";\n/**\n * Run properties types and constants for PPTX text runs.\n *\n * @module\n */\nimport type { FillOptions } from \"@shared/drawingml/fill\";\n\n// Re-export XSD converters for descriptor use\nexport { xsdStrikeStyle, xsdTextCaps, xsdUnderlineStyle };\n\nexport const UnderlineStyle = {\n SINGLE: \"single\",\n DOUBLE: \"double\",\n NONE: \"none\",\n} as const;\n\nexport const StrikeStyle = {\n SINGLE: \"sngStrike\",\n DOUBLE: \"dblStrike\",\n NONE: \"noStrike\",\n} as const;\n\nexport const TextCapitalization = {\n NONE: \"none\",\n ALL: \"all\",\n SMALL: \"small\",\n} as const;\n\nexport interface HyperlinkOptions {\n url: string;\n tooltip?: string;\n action?: string;\n highlightClick?: boolean;\n endSound?: boolean;\n invalidUrl?: boolean;\n}\n\nexport interface RunPropertiesOptions {\n /** Font size in points. Serialized as OOXML `a:sz` (hundredths of a point). */\n size?: number;\n bold?: boolean;\n italic?: boolean;\n underline?: (typeof UnderlineStyle)[keyof typeof UnderlineStyle];\n font?: string;\n lang?: string;\n fill?: FillOptions;\n hyperlink?: HyperlinkOptions;\n strike?: (typeof StrikeStyle)[keyof typeof StrikeStyle];\n baseline?: number;\n spacing?: number;\n capitalization?: (typeof TextCapitalization)[keyof typeof TextCapitalization];\n shadow?: boolean;\n outline?: boolean;\n rightToLeft?: boolean;\n noProof?: boolean;\n dirty?: boolean;\n kumimoji?: boolean;\n alternateLanguage?: string;\n normalizeHeight?: boolean;\n bookmarkMark?: string;\n smartTagId?: string;\n}\n","/**\n * Media module for PresentationML documents.\n *\n * Provides transformation helpers for embedded media. The deduplicated\n * {@link Media} collection lives in @office-open/core and is shared across all\n * format packages.\n *\n * @module\n */\nimport { convertEmuToPixels, convertToEmu } from \"@office-open/core\";\nimport type { UniversalMeasure } from \"@office-open/core\";\n\nimport type { MediaDataTransformation } from \"./data\";\n\nexport interface MediaTransformation {\n offset?: {\n top?: number;\n left?: number;\n };\n width: number | UniversalMeasure;\n height: number | UniversalMeasure;\n flip?: {\n vertical?: boolean;\n horizontal?: boolean;\n };\n rotation?: number;\n}\n\nexport const createTransformation = (options: MediaTransformation): MediaDataTransformation => {\n const cx = convertToEmu(options.width);\n const cy = convertToEmu(options.height);\n return {\n emus: { x: cx, y: cy },\n pixels: { x: Math.round(convertEmuToPixels(cx)), y: Math.round(convertEmuToPixels(cy)) },\n flip: options.flip,\n rotation: options.rotation ? options.rotation * 60_000 : undefined,\n };\n};\n"],"mappings":";;;;;;;;;;;AAkBA,MAAM,iBAA+E;CACnF,OAAO;CACP,MAAM;CACN,SAAS;CACT,QAAQ;CACR,QAAQ;CACR,SAAS;AACX;AAEA,MAAM,gBAAgF;CACpF,UAAU;CACV,SAAS;CACT,SAAS;CACT,MAAM;CACN,MAAM;AACR;AAEA,SAAS,cAAc,MAAc,OAAgB,QAAqC;CACxF,OAAO;EACL,MAAM,cAAc,SAAS;EAC7B,GAAI,QAAQ,EAAS,MAA0D,IAAI,CAAC;EACpF,GAAI,SAAS,EAAU,OAA2D,IAAI,CAAC;CACzF;AACF;;;;AAKA,MAAa,uBACX,UAA0B,CAAC,GAC3B,eAOAA,gBAAc;CACZ,OAAO,QAAQ;CACf,GAAI,QAAQ,QACR;EAAE,MAAM;EAAsB,OAAO,EAAE,OAAO,QAAQ,MAAM,QAAQ,KAAK,EAAE,EAAE;CAAE,IAC/E,EAAE,MAAM,SAAkB;CAC9B,GAAI,QAAQ,aAAa,EACvB,MAAM,eAAe,QAAQ,cAAc,QAC7C;CACA,GAAI,YAAY,UACZ,EAAE,SAAS,cAAc,WAAW,SAAS,WAAW,OAAO,WAAW,MAAM,EAAE,IAClF,CAAC;CACL,GAAI,YAAY,YACZ,EAAE,SAAS,cAAc,WAAW,WAAW,WAAW,OAAO,WAAW,MAAM,EAAE,IACpF,CAAC;AACP,CAA8B;;;AC1DhC,MAAa,iBAAiB;CAC5B,QAAQ;CACR,QAAQ;CACR,MAAM;AACR;AAEA,MAAa,cAAc;CACzB,QAAQ;CACR,QAAQ;CACR,MAAM;AACR;AAEA,MAAa,qBAAqB;CAChC,MAAM;CACN,KAAK;CACL,OAAO;AACT;;;;;;;;;;;;ACCA,MAAa,wBAAwB,YAA0D;CAC7F,MAAM,KAAK,aAAa,QAAQ,KAAK;CACrC,MAAM,KAAK,aAAa,QAAQ,MAAM;CACtC,OAAO;EACL,MAAM;GAAE,GAAG;GAAI,GAAG;EAAG;EACrB,QAAQ;GAAE,GAAG,KAAK,MAAM,mBAAmB,EAAE,CAAC;GAAG,GAAG,KAAK,MAAM,mBAAmB,EAAE,CAAC;EAAE;EACvF,MAAM,QAAQ;EACd,UAAU,QAAQ,WAAW,QAAQ,WAAW,MAAS,KAAA;CAC3D;AACF"} |
+1
-1
@@ -1,2 +0,2 @@ | ||
| import { a as PresentationOptions } from "./file-Ck1J4ENn.mjs"; | ||
| import { a as PresentationOptions } from "./file-Dh_35y_9.mjs"; | ||
| import { Element } from "@office-open/xml"; | ||
@@ -3,0 +3,0 @@ import { DataType, ParsedArchive, parseArchive } from "@office-open/core"; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"parse.d.mts","names":[],"sources":["../src/parse.ts"],"mappings":";;;;;UA4CiB,YAAA;EAEf,MAAA;EAEA,YAAA;EAEA,cAAA;EAEA,QAAA;EAEA,MAAA;EAEA,WAAA;EAEA,KAAA;AAAA;AAAA,UAGe,YAAA;EACf,GAAA,EAAK,aAAA;EAEL,YAAA,GAAe,OAAA;EAEf,MAAA;EAEA,YAAA;EAEA,YAAA;EAEA,WAAA;EACA,QAAA,EAAU,YAAA;EAEV,SAAA;EAEA,SAAA;EAEA,WAAA;EAEA,SAAA;EAEA,QAAA;EAEA,WAAA;AAAA;AAAA,iBA6Fc,SAAA,CAAU,IAAA,EAAM,QAAA,GAAW,YAAY;AAAA,iBAuNvC,iBAAA,CAAkB,IAAA,EAAM,QAAA,GAAW,mBAAmB"} | ||
| {"version":3,"file":"parse.d.mts","names":[],"sources":["../src/parse.ts"],"mappings":";;;;;UA2CiB,YAAA;EAEf,MAAA;EAEA,YAAA;EAEA,cAAA;EAEA,QAAA;EAEA,MAAA;EAEA,WAAA;EAEA,KAAA;AAAA;AAAA,UAGe,YAAA;EACf,GAAA,EAAK,aAAA;EAEL,YAAA,GAAe,OAAA;EAEf,MAAA;EAEA,YAAA;EAEA,YAAA;EAEA,WAAA;EACA,QAAA,EAAU,YAAA;EAEV,SAAA;EAEA,SAAA;EAEA,WAAA;EAEA,SAAA;EAEA,QAAA;EAEA,WAAA;AAAA;AAAA,iBA6Fc,SAAA,CAAU,IAAA,EAAM,QAAA,GAAW,YAAY;AAAA,iBAuNvC,iBAAA,CAAkB,IAAA,EAAM,QAAA,GAAW,mBAAmB"} |
+1
-1
@@ -1,2 +0,2 @@ | ||
| import { n as parsePptx, r as parsePresentation, t as parseArchive } from "./parse-B9PWJ1mK.mjs"; | ||
| import { n as parsePptx, r as parsePresentation, t as parseArchive } from "./parse-Cn_n-WuO.mjs"; | ||
| export { parseArchive, parsePptx, parsePresentation }; |
+1
-1
@@ -1,2 +0,2 @@ | ||
| import { c as SlideOptions, et as RunOptions, s as SlideCommentOptions } from "./file-Ck1J4ENn.mjs"; | ||
| import { c as SlideOptions, et as RunOptions, s as SlideCommentOptions } from "./file-Dh_35y_9.mjs"; | ||
| import { BasePatchOptions, CorePropertiesOptions, OutputByType, OutputType } from "@office-open/core"; | ||
@@ -3,0 +3,0 @@ |
+2
-2
@@ -1,3 +0,3 @@ | ||
| import { r as stringifySlide, t as buildCommentData } from "./compiler-BrP7hwVc.mjs"; | ||
| import { g as slideCommentsDesc, h as commentAuthorsDesc, m as textRunDesc, s as PptxWriteContext } from "./view-properties-apHXZ-pk.mjs"; | ||
| import { r as stringifySlide, t as buildCommentData } from "./compiler-CbnF_ZfY.mjs"; | ||
| import { g as slideCommentsDesc, h as commentAuthorsDesc, m as textRunDesc, s as PptxWriteContext } from "./view-properties-D9ZVHjXg.mjs"; | ||
| import { findChild, js2xml, xml2js } from "@office-open/xml"; | ||
@@ -4,0 +4,0 @@ import { OoxmlMimeType, PPTX_NS, appendOverride, appendRelationship, applyCorePropertiesOverride, collectPlaceholderKeys, createReplacer, getNextRelationshipIndex, nextNumericId, replaceHyperlinkPlaceholders, strFromU8, toJson, toUint8Array, unzipSync, zipAndConvert } from "@office-open/core"; |
+3
-3
| { | ||
| "name": "@office-open/pptx", | ||
| "version": "0.10.3", | ||
| "version": "0.10.4", | ||
| "description": "Generate, parse, and patch .pptx presentations with a declarative TypeScript API", | ||
@@ -51,4 +51,4 @@ "keywords": [ | ||
| "dependencies": { | ||
| "@office-open/core": "0.10.3", | ||
| "@office-open/xml": "0.10.3" | ||
| "@office-open/core": "0.10.4", | ||
| "@office-open/xml": "0.10.4" | ||
| }, | ||
@@ -55,0 +55,0 @@ "scripts": { |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
| import { AppPropertiesOptions, CorePropertiesOptions, CustomPropertyOptions, DataType, Relationships, ShapeLockingOptions, TableStyleListOptions, UniversalMeasure } from "@office-open/core"; | ||
| import { BlipFillConfigOptions, BlipFillMediaData, CustomGeometryOptions, FillOptions as FillOptions$1, GradientStopOptions, PresetGeometryOptions, buildFill, extractBlipFillMedia } from "@office-open/core/drawingml"; | ||
| import { ColorSchemeOptions, FontSchemeOptions, ThemeOptions, createThemeXml } from "@office-open/core/theme"; | ||
| import { ChartSpaceOptions } from "@office-open/core/chart"; | ||
| import { TreeNode } from "@office-open/core/smartart"; | ||
| //#region src/shared/drawingml/effects.d.ts | ||
| declare const ReflectionAlignment: { | ||
| readonly TOP_LEFT: "topLeft"; | ||
| readonly TOP: "top"; | ||
| readonly TOP_RIGHT: "topRight"; | ||
| readonly LEFT: "left"; | ||
| readonly CENTER: "center"; | ||
| readonly RIGHT: "right"; | ||
| readonly BOTTOM_LEFT: "bottomLeft"; | ||
| readonly BOTTOM: "bottom"; | ||
| readonly BOTTOM_RIGHT: "bottomRight"; | ||
| }; | ||
| interface ShadowOptions { | ||
| blur?: number; | ||
| distance?: number; | ||
| direction?: number; | ||
| color?: string; | ||
| alpha?: number; | ||
| rotateWithShape?: boolean; | ||
| } | ||
| interface GlowOptions { | ||
| radius?: number; | ||
| color?: string; | ||
| alpha?: number; | ||
| } | ||
| interface ReflectionOptions { | ||
| blurRadius?: number; | ||
| distance?: number; | ||
| direction?: number; | ||
| startAlpha?: number; | ||
| startPosition?: number; | ||
| endAlpha?: number; | ||
| endPosition?: number; | ||
| fadeDirection?: number; | ||
| scaleX?: number; | ||
| scaleY?: number; | ||
| skewX?: number; | ||
| skewY?: number; | ||
| alignment?: (typeof ReflectionAlignment)[keyof typeof ReflectionAlignment]; | ||
| rotateWithShape?: boolean; | ||
| } | ||
| interface SoftEdgeOptions { | ||
| radius?: number; | ||
| } | ||
| interface PPTXBevelOptions { | ||
| width?: number; | ||
| height?: number; | ||
| preset?: string; | ||
| } | ||
| interface Rotation3DOptions { | ||
| x?: number; | ||
| y?: number; | ||
| z?: number; | ||
| perspective?: number; | ||
| } | ||
| interface EffectsOptions { | ||
| outerShadow?: ShadowOptions; | ||
| innerShadow?: ShadowOptions; | ||
| glow?: GlowOptions; | ||
| reflection?: ReflectionOptions; | ||
| softEdge?: SoftEdgeOptions; | ||
| rotation3D?: Rotation3DOptions; | ||
| bevelTop?: PPTXBevelOptions; | ||
| bevelBottom?: PPTXBevelOptions; | ||
| extrusionH?: number; | ||
| depth?: number; | ||
| contourWidth?: number; | ||
| material?: "plastic" | "metal" | "matte" | "warmMatte" | "softEdge" | "flat" | "powder"; | ||
| lighting?: "flat" | "legacyFlat1" | "legacyFlat2" | "legacyFlat3" | "legacyFlat4" | "legacyHarsh1" | "legacyHarsh2" | "legacyHarsh3" | "legacyHarsh4" | "legacyNormal1" | "legacyNormal2" | "legacyNormal3" | "legacyNormal4" | "threePt" | "balanced" | "soft" | "harsh" | "flood" | "contrasting" | "morning" | "sunrise" | "sunset" | "chilly" | "freezing" | "twoPt" | "brightRoom" | "gallery"; | ||
| } | ||
| declare function createPptxEffectList(options: EffectsOptions): string | null; | ||
| //#endregion | ||
| //#region src/parts/background.d.ts | ||
| interface BackgroundOptions { | ||
| fill?: FillOptions$1; | ||
| effects?: EffectsOptions; | ||
| shadeToTitle?: boolean; | ||
| blackWhiteMode?: "clr" | "gray" | "ltGray" | "invGray" | "gmGray" | "bw" | "auto" | "black" | "white"; | ||
| } | ||
| //#endregion | ||
| //#region src/parts/handout-master.d.ts | ||
| interface ColorMapOptions { | ||
| bg1?: string; | ||
| tx1?: string; | ||
| bg2?: string; | ||
| tx2?: string; | ||
| accent1?: string; | ||
| accent2?: string; | ||
| accent3?: string; | ||
| accent4?: string; | ||
| accent5?: string; | ||
| accent6?: string; | ||
| hlink?: string; | ||
| folHlink?: string; | ||
| } | ||
| interface HeaderFooterOptions { | ||
| date?: boolean; | ||
| header?: boolean; | ||
| footer?: boolean; | ||
| slideNumber?: boolean; | ||
| } | ||
| interface HandoutMasterOptions { | ||
| colorMap?: ColorMapOptions; | ||
| headerFooter?: HeaderFooterOptions; | ||
| } | ||
| declare function buildHandoutMasterXml(options?: HandoutMasterOptions): string; | ||
| //#endregion | ||
| //#region src/parts/notes-master.d.ts | ||
| interface NotesLevelProperties { | ||
| fontSize?: number | UniversalMeasure; | ||
| marginLeft?: number | UniversalMeasure; | ||
| alignment?: string; | ||
| } | ||
| interface NotesMasterOptions { | ||
| colorMap?: ColorMapOptions; | ||
| headerFooter?: HeaderFooterOptions; | ||
| notesStyle?: NotesLevelProperties[]; | ||
| } | ||
| declare function buildNotesMasterXml(options?: NotesMasterOptions): string; | ||
| //#endregion | ||
| //#region src/parts/presentation.d.ts | ||
| interface PhotoAlbumOptions { | ||
| blackWhite?: boolean; | ||
| showCaptions?: boolean; | ||
| layout?: "fitToSlide" | "1pic" | "2pic" | "4pic" | "1picTitle" | "2picTitle" | "4picTitle"; | ||
| frame?: "frameStyle1" | "frameStyle2" | "frameStyle3" | "frameStyle4" | "frameStyle5" | "frameStyle6" | "frameStyle7" | "none"; | ||
| } | ||
| interface ModifyVerifierOptions { | ||
| password?: string; | ||
| algorithmName?: string; | ||
| hashValue?: string; | ||
| saltValue?: string; | ||
| spinValue?: number; | ||
| cryptoProviderType?: string; | ||
| cryptoAlgorithmClass?: string; | ||
| cryptoAlgorithmType?: string; | ||
| cryptoAlgorithmSid?: number; | ||
| spinCount?: number; | ||
| saltData?: string; | ||
| hashData?: string; | ||
| cryptoProvider?: string; | ||
| algorithmExtensionId?: number; | ||
| algorithmExtensionSource?: string; | ||
| cryptoProviderTypeExtension?: number; | ||
| cryptoProviderTypeExtensionSource?: string; | ||
| } | ||
| interface EmbeddedFontOptions { | ||
| font: { | ||
| typeface: string; | ||
| panose?: string; | ||
| pitchFamily?: number; | ||
| charset?: number; | ||
| }; | ||
| regular?: string; | ||
| bold?: string; | ||
| italic?: string; | ||
| boldItalic?: string; | ||
| } | ||
| interface CustomShowOptions { | ||
| name: string; | ||
| id: number; | ||
| slides: { | ||
| rId: string; | ||
| }[]; | ||
| } | ||
| interface KinsokuOptions { | ||
| lang?: string; | ||
| invalStChars: string; | ||
| invalEndChars: string; | ||
| } | ||
| interface StringTagOptions { | ||
| name: string; | ||
| val: string; | ||
| } | ||
| interface CustomerDataOptions { | ||
| data?: { | ||
| rId: string; | ||
| }[]; | ||
| tags?: { | ||
| rId: string; | ||
| }; | ||
| tagList?: StringTagOptions[]; | ||
| } | ||
| interface PresentationPartOptions { | ||
| slideWidth?: number; | ||
| slideHeight?: number; | ||
| slideIds: number[]; | ||
| masterCount: number; | ||
| notesMasterRId?: number; | ||
| handoutMasterRId?: number; | ||
| serverZoom?: string; | ||
| firstSlideNum?: number; | ||
| showSpecialPlsOnTitleSld?: boolean; | ||
| rtl?: boolean; | ||
| removePersonalInfoOnSave?: boolean; | ||
| compatMode?: boolean; | ||
| strictFirstAndLastChars?: boolean; | ||
| embedTrueTypeFonts?: boolean; | ||
| saveSubsetFonts?: boolean; | ||
| autoCompressPictures?: boolean; | ||
| bookmarkIdSeed?: number; | ||
| conformance?: "strict" | "transitional"; | ||
| photoAlbum?: PhotoAlbumOptions; | ||
| modifyVerifier?: ModifyVerifierOptions; | ||
| embeddedFonts?: EmbeddedFontOptions[]; | ||
| customShows?: CustomShowOptions[]; | ||
| kinsoku?: KinsokuOptions[]; | ||
| customerData?: CustomerDataOptions; | ||
| sections?: PresentationSectionGroup[]; | ||
| } | ||
| interface PresentationSectionGroup { | ||
| name: string; | ||
| slideIndices: number[]; | ||
| } | ||
| interface ViewWrapper { | ||
| view: { | ||
| currentOptions: unknown; | ||
| }; | ||
| relationships: Relationships; | ||
| } | ||
| //#endregion | ||
| //#region src/parts/presentation-properties.d.ts | ||
| interface WebPropertiesOptions { | ||
| showAnimation?: boolean; | ||
| resizeGraphics?: boolean; | ||
| allowPng?: boolean; | ||
| relyOnVml?: boolean; | ||
| organizeInFolders?: boolean; | ||
| useLongFilenames?: boolean; | ||
| imageSize?: string; | ||
| encoding?: string; | ||
| color?: string; | ||
| } | ||
| interface PrintPropertiesOptions { | ||
| printWhat?: "slides" | "handouts1" | "handouts2" | "handouts3" | "handouts4" | "handouts6" | "handouts9" | "notes" | "outline"; | ||
| colorMode?: "blackWhite" | "gray" | "color"; | ||
| hiddenSlides?: boolean; | ||
| scaleToFitPaper?: boolean; | ||
| frameSlides?: boolean; | ||
| } | ||
| interface HtmlPublishPropertiesOptions { | ||
| showSpeakerNotes?: boolean; | ||
| target?: string; | ||
| title?: string; | ||
| rId?: string; | ||
| } | ||
| interface PresentationPropertiesFullOptions { | ||
| show?: ShowOptions; | ||
| web?: WebPropertiesOptions; | ||
| print?: PrintPropertiesOptions; | ||
| htmlPublish?: HtmlPublishPropertiesOptions; | ||
| colorMru?: string[]; | ||
| } | ||
| //#endregion | ||
| //#region src/parts/slide-layout.d.ts | ||
| type SlideLayoutType = "blank" | "title" | "tx" | "twoColTx" | "titleOnly" | "obj" | "secHead" | "chart" | "tbl" | "picTx" | "twoObj" | "twoTxTwoObj" | "objTx" | "vertTx" | "vertTitleAndTx"; | ||
| declare function buildLayoutXml(layoutType: SlideLayoutType, slideWidth?: number): string; | ||
| declare function buildCustomLayoutXml(def: LayoutDefinition): string; | ||
| //#endregion | ||
| //#region src/shared/header-footer.d.ts | ||
| interface SlideHeaderFooterOptions { | ||
| slideNumber?: boolean; | ||
| dateTime?: boolean; | ||
| footer?: string | boolean; | ||
| header?: boolean; | ||
| } | ||
| //#endregion | ||
| //#region src/parts/slide-master.d.ts | ||
| interface MasterPlaceholderPosition { | ||
| x: number; | ||
| y: number; | ||
| width: number; | ||
| height: number; | ||
| } | ||
| interface MasterPlaceholderOptions { | ||
| title?: boolean | MasterPlaceholderPosition; | ||
| body?: boolean | MasterPlaceholderPosition; | ||
| date?: boolean | MasterPlaceholderPosition; | ||
| footer?: boolean | MasterPlaceholderPosition; | ||
| slideNumber?: boolean | MasterPlaceholderPosition; | ||
| } | ||
| interface SlideMasterOptions { | ||
| background?: BackgroundOptions; | ||
| children?: MasterChild[]; | ||
| placeholders?: MasterPlaceholderOptions; | ||
| } | ||
| declare function buildSlideMasterXml(layoutCount: number, _headerFooter?: SlideHeaderFooterOptions, masterOptions?: SlideMasterOptions, slideWidth?: number, masterIndex?: number): string; | ||
| //#endregion | ||
| //#region src/parts/slide/slide.d.ts | ||
| interface ControlOptions { | ||
| shapeId?: number; | ||
| name?: string; | ||
| showAsIcon?: boolean; | ||
| rId?: string; | ||
| imageWidth?: number; | ||
| imageHeight?: number; | ||
| } | ||
| //#endregion | ||
| //#region src/parts/chart-frame.d.ts | ||
| interface ChartOptions extends ChartSpaceOptions { | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/shape/paragraph/paragraph-properties.d.ts | ||
| type TextAlignment = "left" | "center" | "right" | "justify"; | ||
| type BulletCharOptions = { | ||
| type: "char"; | ||
| char?: string; | ||
| color?: string; | ||
| size?: number; | ||
| }; | ||
| type BulletAutoNumOptions = { | ||
| type: "autoNum"; | ||
| format?: string; | ||
| startAt?: number; | ||
| color?: string; | ||
| size?: number; | ||
| }; | ||
| type BulletNoneOption = { | ||
| type: "none"; | ||
| }; | ||
| type BulletOptions = BulletCharOptions | BulletAutoNumOptions | BulletNoneOption; | ||
| interface ParagraphPropertiesOptions { | ||
| alignment?: TextAlignment; | ||
| indentLevel?: number; | ||
| marginBottom?: number; | ||
| marginTop?: number; | ||
| bullet?: BulletOptions; | ||
| lineSpacing?: number; | ||
| lineSpacingPoints?: number; | ||
| marginIndent?: number; | ||
| marginRight?: number; | ||
| defTabSize?: number; | ||
| fontAlignment?: "auto" | "t" | "ctr" | "b" | "base"; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/shape/paragraph/run-properties.d.ts | ||
| declare const UnderlineStyle: { | ||
| readonly SINGLE: "single"; | ||
| readonly DOUBLE: "double"; | ||
| readonly NONE: "none"; | ||
| }; | ||
| declare const StrikeStyle: { | ||
| readonly SINGLE: "sngStrike"; | ||
| readonly DOUBLE: "dblStrike"; | ||
| readonly NONE: "noStrike"; | ||
| }; | ||
| declare const TextCapitalization: { | ||
| readonly NONE: "none"; | ||
| readonly ALL: "all"; | ||
| readonly SMALL: "small"; | ||
| }; | ||
| interface HyperlinkOptions { | ||
| url: string; | ||
| tooltip?: string; | ||
| action?: string; | ||
| highlightClick?: boolean; | ||
| endSound?: boolean; | ||
| invalidUrl?: boolean; | ||
| } | ||
| interface RunPropertiesOptions { | ||
| size?: number; | ||
| bold?: boolean; | ||
| italic?: boolean; | ||
| underline?: (typeof UnderlineStyle)[keyof typeof UnderlineStyle]; | ||
| font?: string; | ||
| lang?: string; | ||
| fill?: FillOptions$1; | ||
| hyperlink?: HyperlinkOptions; | ||
| strike?: (typeof StrikeStyle)[keyof typeof StrikeStyle]; | ||
| baseline?: number; | ||
| spacing?: number; | ||
| capitalization?: (typeof TextCapitalization)[keyof typeof TextCapitalization]; | ||
| shadow?: boolean; | ||
| outline?: boolean; | ||
| rightToLeft?: boolean; | ||
| noProof?: boolean; | ||
| dirty?: boolean; | ||
| kumimoji?: boolean; | ||
| alternateLanguage?: string; | ||
| normalizeHeight?: boolean; | ||
| bookmarkMark?: string; | ||
| smartTagId?: string; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/shape/paragraph/run.d.ts | ||
| interface RunOptions extends RunPropertiesOptions { | ||
| text?: string; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/shape/paragraph/paragraph.d.ts | ||
| interface ParagraphOptions { | ||
| text?: string; | ||
| properties?: ParagraphPropertiesOptions; | ||
| children?: (RunOptions | string)[]; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/table/table-cell-properties.d.ts | ||
| interface CellBorderOptions { | ||
| width?: number | UniversalMeasure; | ||
| color?: string; | ||
| dashStyle?: "solid" | "dash" | "dashDot" | "lgDash" | "sysDot" | "sysDash"; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/table/table-cell.d.ts | ||
| type VerticalAlignment = "top" | "center" | "bottom" | "justify" | "distribute"; | ||
| interface TableCellOptions { | ||
| text?: string; | ||
| children?: (ParagraphOptions | string)[]; | ||
| fill?: FillOptions$1; | ||
| borders?: { | ||
| top?: CellBorderOptions; | ||
| bottom?: CellBorderOptions; | ||
| left?: CellBorderOptions; | ||
| right?: CellBorderOptions; | ||
| }; | ||
| columnSpan?: number; | ||
| rowSpan?: number; | ||
| horizontalMerge?: "continue" | "restart"; | ||
| verticalMerge?: "continue" | "restart"; | ||
| verticalAlign?: VerticalAlignment; | ||
| margins?: { | ||
| top?: number | UniversalMeasure; | ||
| bottom?: number | UniversalMeasure; | ||
| left?: number | UniversalMeasure; | ||
| right?: number | UniversalMeasure; | ||
| }; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/shape/text-body.d.ts | ||
| interface TextBodyOptions { | ||
| text?: string; | ||
| children?: (ParagraphOptions | string)[]; | ||
| vertical?: "horz" | "vert" | "vert270" | "wordArtVert" | "eaVert" | "mongolianVert" | "wordArtVertRtl"; | ||
| anchor?: VerticalAlignment; | ||
| autoFit?: "normal" | "shape" | "none"; | ||
| wrap?: "square" | "none"; | ||
| margins?: { | ||
| top?: number | UniversalMeasure; | ||
| bottom?: number | UniversalMeasure; | ||
| left?: number | UniversalMeasure; | ||
| right?: number | UniversalMeasure; | ||
| }; | ||
| marginTop?: number | UniversalMeasure; | ||
| marginBottom?: number | UniversalMeasure; | ||
| columns?: number; | ||
| columnSpacing?: number; | ||
| } | ||
| //#endregion | ||
| //#region src/parts/locked-canvas-frame.d.ts | ||
| interface LockedCanvasShapeOptions { | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| geometry?: string; | ||
| fill?: string; | ||
| textBody?: TextBodyOptions; | ||
| } | ||
| interface LockedCanvasFrameOptions { | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| id?: number; | ||
| name?: string; | ||
| children?: LockedCanvasShapeOptions[]; | ||
| } | ||
| //#endregion | ||
| //#region src/parts/ole-frame.d.ts | ||
| interface OleEmbedOptions { | ||
| rId: string; | ||
| lastEdited?: string; | ||
| } | ||
| interface OleLinkOptions { | ||
| rId: string; | ||
| updateLastEdited?: string; | ||
| autoUpdate?: boolean; | ||
| } | ||
| interface OleOptions { | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| progId?: string; | ||
| spid?: string; | ||
| name?: string; | ||
| showAsIcon?: boolean; | ||
| imgW?: number; | ||
| imgH?: number; | ||
| embed?: OleEmbedOptions; | ||
| link?: OleLinkOptions; | ||
| imgRId?: string; | ||
| followColorScheme?: "none" | "full" | "textAndBackground"; | ||
| } | ||
| //#endregion | ||
| //#region src/parts/smartart.d.ts | ||
| interface SmartArtOptions { | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| nodes: TreeNode[]; | ||
| name?: string; | ||
| layout?: string; | ||
| style?: string; | ||
| color?: string; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/animation/types.d.ts | ||
| type AnimationType = "appear" | "fade" | "fly" | "wipe" | "dissolve" | "split" | "blinds" | "checker" | "randomBars" | "wheel" | "zoom" | "cover" | "push" | "strips"; | ||
| type AnimationTrigger = "onClick" | "withPrevious" | "afterPrevious"; | ||
| type AnimationDirection = "left" | "right" | "up" | "down" | "horizontal" | "vertical"; | ||
| type AnimationClass = "entr" | "exit" | "emph" | "mediacall"; | ||
| type EmphasisType = "growShrink" | "spin" | "growWithTurn" | "colorChange" | "transparency" | "boldFlash" | "wave" | "pulse"; | ||
| type PathAnimationType = "customPath" | "arc" | "bounce" | "circle" | "curve" | "figureEight" | "line" | "loop"; | ||
| type MediaAnimationType = "playAudio" | "playVideo" | "play"; | ||
| type AnimationCalcMode = "discrete" | "lin" | "fmla"; | ||
| type AnimationValueType = "str" | "num" | "clr"; | ||
| interface AnimationVariantOptions { | ||
| bool?: boolean; | ||
| int?: number; | ||
| float?: number; | ||
| string?: string; | ||
| color?: string; | ||
| } | ||
| interface EndConditionOptions { | ||
| event?: string; | ||
| delay?: string; | ||
| timeNodeId?: number; | ||
| runtimeNode?: "first" | "last" | "all"; | ||
| } | ||
| interface AnimationBuildOptions { | ||
| type: "paragraph" | "diagram" | "oleChart" | "graphic"; | ||
| spid: number; | ||
| grpId: number; | ||
| uiExpand?: boolean; | ||
| build?: "allAtOnce" | "p" | "cust" | "whole"; | ||
| bldLvl?: number; | ||
| animBg?: boolean; | ||
| autoUpdateAnimBg?: boolean; | ||
| rev?: boolean; | ||
| advAuto?: number; | ||
| templates?: AnimationTemplateOptions[]; | ||
| diagramBuild?: string; | ||
| oleChartBuild?: string; | ||
| oleChartAnimBg?: boolean; | ||
| graphicBuildAsOne?: boolean; | ||
| } | ||
| interface AnimationTemplateOptions { | ||
| lvl?: number; | ||
| children: AnimationOptions[]; | ||
| } | ||
| interface AnimationOptions { | ||
| type?: AnimationType; | ||
| duration?: number; | ||
| delay?: number; | ||
| trigger?: AnimationTrigger; | ||
| direction?: AnimationDirection; | ||
| class?: AnimationClass; | ||
| emphasisType?: EmphasisType; | ||
| pathType?: PathAnimationType; | ||
| path?: string; | ||
| speed?: number; | ||
| repeatCount?: number; | ||
| autoReverse?: boolean; | ||
| color?: string; | ||
| mediaType?: MediaAnimationType; | ||
| isNarration?: boolean; | ||
| fullScreen?: boolean; | ||
| volume?: number; | ||
| mute?: boolean; | ||
| attributeName?: string; | ||
| calcMode?: AnimationCalcMode; | ||
| valueType?: AnimationValueType; | ||
| from?: string; | ||
| to?: string; | ||
| animBy?: string; | ||
| charRange?: [number, number]; | ||
| paragraphRange?: [number, number]; | ||
| setBehavior?: { | ||
| attributeName: string; | ||
| toValue: string; | ||
| toType?: "string" | "number"; | ||
| }; | ||
| commandType?: "call" | "evt" | "verb"; | ||
| command?: string; | ||
| iterate?: { | ||
| type?: "el" | "wd" | "lt"; | ||
| interval?: number; | ||
| backwards?: boolean; | ||
| iteratePercentage?: number; | ||
| }; | ||
| repeatDuration?: string; | ||
| acceleration?: number; | ||
| deceleration?: number; | ||
| restart?: "always" | "whenNotActive" | "never"; | ||
| syncBehavior?: "canSlip" | "isLocked" | "stoppable"; | ||
| timeFilter?: string; | ||
| eventFilter?: string; | ||
| display?: boolean; | ||
| masterRelation?: "clearConn" | "keepConn" | "resume"; | ||
| buildLevel?: number; | ||
| groupId?: number; | ||
| afterEffect?: boolean; | ||
| nodePlaceholder?: boolean; | ||
| advanceAfterTime?: string; | ||
| animateBackground?: boolean; | ||
| autoUpdateAnimationBackground?: boolean; | ||
| additive?: "base" | "sum" | "repl" | "mult" | "none"; | ||
| accumulate?: "none" | "always"; | ||
| transformType?: "pt" | "img"; | ||
| runtimeContext?: string; | ||
| override?: "normal" | "childStyle"; | ||
| paragraphBuild?: "whole" | "allAtOnce" | "p" | "cust"; | ||
| formula?: string; | ||
| colorSpace?: "rgb" | "hsl"; | ||
| pathEditMode?: "relative" | "fixed" | "none"; | ||
| previousAction?: "none" | "skipTimed"; | ||
| pointsTypes?: string; | ||
| rotationAngle?: number; | ||
| zoomContents?: boolean; | ||
| showWhenStopped?: boolean; | ||
| numberOfSlides?: number; | ||
| propertyList?: string; | ||
| endConditions?: EndConditionOptions[]; | ||
| endSyncCondition?: EndConditionOptions; | ||
| subTimeNodes?: AnimationOptions[]; | ||
| exclusiveMode?: boolean; | ||
| inkTargetShapeId?: number; | ||
| soundTarget?: string; | ||
| subShapeId?: number; | ||
| graphicElementType?: string; | ||
| oleChartElementType?: string; | ||
| oleChartElementLevel?: number; | ||
| variantBool?: boolean; | ||
| variantInt?: number; | ||
| variantFloat?: number; | ||
| variantColor?: string; | ||
| colorFrom?: string; | ||
| colorTo?: string; | ||
| colorByRgb?: { | ||
| r: string; | ||
| g: string; | ||
| b: string; | ||
| }; | ||
| colorByHsl?: { | ||
| h: string; | ||
| s: string; | ||
| l: string; | ||
| }; | ||
| effectProgress?: AnimationVariantOptions; | ||
| motionFrom?: { | ||
| x: string; | ||
| y: string; | ||
| }; | ||
| motionRotationCenter?: { | ||
| x: string; | ||
| y: string; | ||
| }; | ||
| builds?: AnimationBuildOptions[]; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/media/data.d.ts | ||
| interface MediaDataTransformation { | ||
| pixels: { | ||
| x: number; | ||
| y: number; | ||
| }; | ||
| emus: { | ||
| x: number; | ||
| y: number; | ||
| }; | ||
| flip?: { | ||
| vertical?: boolean; | ||
| horizontal?: boolean; | ||
| }; | ||
| rotation?: number; | ||
| } | ||
| interface CoreMediaData { | ||
| fileName: string; | ||
| transformation: MediaDataTransformation; | ||
| data: Uint8Array; | ||
| } | ||
| interface RegularMediaData { | ||
| type: "jpg" | "png" | "gif" | "bmp" | "tif" | "ico" | "emf" | "wmf"; | ||
| } | ||
| interface SvgMediaData { | ||
| type: "svg"; | ||
| fallback: RegularMediaData & CoreMediaData; | ||
| } | ||
| interface VideoMediaData { | ||
| type: "mp4" | "mov" | "wmv" | "avi"; | ||
| } | ||
| interface AudioMediaData { | ||
| type: "mp3" | "wav" | "wma" | "aac"; | ||
| } | ||
| type MediaData = (RegularMediaData | SvgMediaData | VideoMediaData | AudioMediaData) & CoreMediaData; | ||
| //#endregion | ||
| //#region src/shared/media/media-frame-base.d.ts | ||
| interface MediaFrameBaseOptions { | ||
| id?: number; | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| data: DataType; | ||
| type: MediaData["type"]; | ||
| name?: string; | ||
| animation?: AnimationOptions; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/media/audio-frame.d.ts | ||
| type AudioType = "mp3" | "wav" | "wma" | "aac"; | ||
| interface AudioFrameOptions extends MediaFrameBaseOptions { | ||
| type: AudioType; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/media/video-frame.d.ts | ||
| type VideoType = "mp4" | "mov" | "wmv" | "avi"; | ||
| type PosterType = "png" | "jpg"; | ||
| interface VideoFrameOptions extends MediaFrameBaseOptions { | ||
| type: VideoType; | ||
| poster?: DataType; | ||
| posterType?: PosterType; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/picture.d.ts | ||
| interface PictureOptions { | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| data: DataType; | ||
| type: "png" | "jpg" | "gif" | "bmp" | "emf" | "wmf"; | ||
| name?: string; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/shape/group-shape.d.ts | ||
| interface GroupShapeOptions { | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| rotation?: number; | ||
| flipHorizontal?: boolean; | ||
| children: SlideChild[]; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/drawingml/outline.d.ts | ||
| interface OutlineOptions { | ||
| width?: number; | ||
| color?: string; | ||
| dashStyle?: "solid" | "dash" | "dashDot" | "lgDash" | "sysDot" | "sysDash"; | ||
| } | ||
| declare const createOutlineCompat: (options?: OutlineOptions, arrowheads?: { | ||
| beginType?: string; | ||
| endType?: string; | ||
| width?: string; | ||
| length?: string; | ||
| }) => string; | ||
| //#endregion | ||
| //#region src/shared/shape/line-shape.d.ts | ||
| interface LineShapeOptions { | ||
| id?: number; | ||
| name?: string; | ||
| x1?: number; | ||
| y1?: number; | ||
| x2?: number; | ||
| y2?: number; | ||
| fill?: FillOptions$1; | ||
| outline?: OutlineOptions; | ||
| } | ||
| type ArrowheadType = "triangle" | "stealth" | "diamond" | "oval" | "open" | "none"; | ||
| interface ConnectorShapeOptions { | ||
| id?: number; | ||
| name?: string; | ||
| x1?: number; | ||
| y1?: number; | ||
| x2?: number; | ||
| y2?: number; | ||
| fill?: FillOptions$1; | ||
| outline?: OutlineOptions; | ||
| beginArrowhead?: ArrowheadType; | ||
| endArrowhead?: ArrowheadType; | ||
| arrowheadWidth?: "small" | "medium" | "large"; | ||
| arrowheadLength?: "small" | "medium" | "large"; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/drawingml/shape-properties.d.ts | ||
| interface ConnectionSiteOptions { | ||
| x: number; | ||
| y: number; | ||
| angle?: number; | ||
| } | ||
| interface ShapePropertiesOptions { | ||
| x?: number; | ||
| y?: number; | ||
| width?: number; | ||
| height?: number; | ||
| flipHorizontal?: boolean; | ||
| rotation?: number; | ||
| geometry?: string | PresetGeometryOptions; | ||
| customGeometry?: CustomGeometryOptions; | ||
| fill?: FillOptions$1; | ||
| outline?: OutlineOptions; | ||
| effects?: EffectsOptions; | ||
| connectionSites?: ConnectionSiteOptions[]; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/shape/shape.d.ts | ||
| interface ShapeStyleOptions { | ||
| lineReference?: { | ||
| index: number; | ||
| color?: string; | ||
| }; | ||
| fillReference?: { | ||
| index: number; | ||
| color?: string; | ||
| }; | ||
| effectReference?: { | ||
| index: number; | ||
| color?: string; | ||
| }; | ||
| fontReference?: { | ||
| index: number; | ||
| color?: string; | ||
| }; | ||
| } | ||
| interface ShapeOptions { | ||
| id?: number; | ||
| name?: string; | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| geometry?: string | PresetGeometryOptions; | ||
| customGeometry?: CustomGeometryOptions; | ||
| fill?: ShapePropertiesOptions["fill"]; | ||
| outline?: OutlineOptions; | ||
| effects?: EffectsOptions; | ||
| flipHorizontal?: boolean; | ||
| rotation?: number; | ||
| textBody?: TextBodyOptions; | ||
| animation?: AnimationOptions; | ||
| locking?: ShapeLockingOptions; | ||
| placeholder?: "title" | "body" | "subTitle" | "sldNum" | "dt" | "ftr" | "hdr" | "obj"; | ||
| placeholderIndex?: number; | ||
| useBackgroundFill?: boolean; | ||
| isPhoto?: boolean; | ||
| userDrawn?: boolean; | ||
| hasCustomPrompt?: boolean; | ||
| style?: ShapeStyleOptions; | ||
| blackWhiteMode?: "clr" | "auto" | "gray" | "ltGray" | "invGray" | "grayWhite" | "blackGray" | "blackWhite" | "black" | "white" | "hidden"; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/table/table-row.d.ts | ||
| interface TableRowOptions { | ||
| height?: number | UniversalMeasure; | ||
| cells: TableCellOptions[]; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/table/table-frame.d.ts | ||
| interface TableOptions { | ||
| x?: number | UniversalMeasure; | ||
| y?: number | UniversalMeasure; | ||
| width?: number | UniversalMeasure; | ||
| height?: number | UniversalMeasure; | ||
| rows: TableRowOptions[]; | ||
| columnWidths?: number[]; | ||
| firstRow?: boolean; | ||
| lastRow?: boolean; | ||
| bandRow?: boolean; | ||
| firstCol?: boolean; | ||
| lastCol?: boolean; | ||
| bandCol?: boolean; | ||
| tableStyleId?: string; | ||
| borders?: { | ||
| top?: CellBorderOptions; | ||
| bottom?: CellBorderOptions; | ||
| left?: CellBorderOptions; | ||
| right?: CellBorderOptions; | ||
| }; | ||
| } | ||
| //#endregion | ||
| //#region src/parts/slide/slide-child.d.ts | ||
| type SlideChild = { | ||
| shape: ShapeOptions; | ||
| } | { | ||
| picture: PictureOptions; | ||
| } | { | ||
| table: TableOptions; | ||
| } | { | ||
| chart: ChartOptions; | ||
| } | { | ||
| line: LineShapeOptions; | ||
| } | { | ||
| connector: ConnectorShapeOptions; | ||
| } | { | ||
| video: VideoFrameOptions; | ||
| } | { | ||
| audio: AudioFrameOptions; | ||
| } | { | ||
| group: GroupShapeOptions; | ||
| } | { | ||
| smartart: SmartArtOptions; | ||
| } | { | ||
| lockedCanvas: LockedCanvasFrameOptions; | ||
| } | { | ||
| ole: OleOptions; | ||
| } | { | ||
| contentPart: { | ||
| rId: string; | ||
| }; | ||
| }; | ||
| //#endregion | ||
| //#region src/parts/slide/slide-sync-properties.d.ts | ||
| interface SlideSyncOptions { | ||
| serverSldId: string; | ||
| serverSldModifiedTime: string; | ||
| clientInsertedTime: string; | ||
| } | ||
| //#endregion | ||
| //#region src/parts/view-properties.d.ts | ||
| type SplitterBarState = "restored" | "maximized" | "minimized"; | ||
| interface NormalViewOptions { | ||
| showOutlineIcons?: boolean; | ||
| snapVertSplitter?: boolean; | ||
| vertBarState?: SplitterBarState; | ||
| horzBarState?: SplitterBarState; | ||
| preferSingleView?: boolean; | ||
| } | ||
| interface SlideViewOptions { | ||
| snapToGrid?: boolean; | ||
| snapToObjects?: boolean; | ||
| showGuides?: boolean; | ||
| varScale?: boolean; | ||
| } | ||
| interface ViewPropertiesOptions { | ||
| lastView?: "slideView" | "slideMasterView" | "notesView" | "handoutView" | "outlineView" | "slideSorterView"; | ||
| showComments?: boolean; | ||
| gridSpacing?: { | ||
| cx: number; | ||
| cy: number; | ||
| }; | ||
| zoomScaleNumerator?: number; | ||
| zoomScaleDenominator?: number; | ||
| normalView?: NormalViewOptions; | ||
| slideView?: SlideViewOptions; | ||
| guides?: { | ||
| orient?: "vert" | "horz"; | ||
| pos?: number; | ||
| }[]; | ||
| outlineView?: { | ||
| slides?: { | ||
| rId: string; | ||
| collapse?: boolean; | ||
| }[]; | ||
| }; | ||
| sorterView?: { | ||
| showFormatting?: boolean; | ||
| }; | ||
| notesView?: boolean; | ||
| } | ||
| //#endregion | ||
| //#region src/shared/transition.d.ts | ||
| type TransitionType = "fade" | "push" | "wipe" | "split" | "blinds" | "checker" | "comb" | "randomBar" | "cover" | "pull" | "strips" | "wheel" | "zoom" | "circle" | "dissolve" | "diamond" | "newsflash" | "plus" | "wedge" | "random" | "cut"; | ||
| type TransitionDirection = "left" | "up" | "right" | "down" | "leftUp" | "rightUp" | "leftDown" | "rightDown" | "out" | "in"; | ||
| interface TransitionOptions { | ||
| type?: TransitionType; | ||
| speed?: "slow" | "med" | "fast"; | ||
| advanceOnClick?: boolean; | ||
| advanceAfterTime?: number; | ||
| direction?: TransitionDirection; | ||
| orient?: "horz" | "vert"; | ||
| thruBlk?: boolean; | ||
| spokes?: number; | ||
| startSound?: { | ||
| rId: string; | ||
| name?: string; | ||
| loop?: boolean; | ||
| }; | ||
| stopPreviousSound?: boolean; | ||
| } | ||
| declare function buildTransition(options: TransitionOptions): string; | ||
| //#endregion | ||
| //#region src/shared/file.d.ts | ||
| type MasterChild = { | ||
| shape: ShapeOptions; | ||
| }; | ||
| type SlideSize = "16:9" | "4:3" | { | ||
| width: number; | ||
| height: number; | ||
| }; | ||
| interface LayoutPlaceholderOptions { | ||
| title?: MasterPlaceholderPosition | false; | ||
| body?: MasterPlaceholderPosition | false; | ||
| subtitle?: MasterPlaceholderPosition | false; | ||
| date?: MasterPlaceholderPosition | false; | ||
| footer?: MasterPlaceholderPosition | false; | ||
| slideNumber?: MasterPlaceholderPosition | false; | ||
| } | ||
| interface LayoutDefinition { | ||
| type?: SlideLayoutType; | ||
| name?: string; | ||
| matchingName?: string; | ||
| placeholders?: LayoutPlaceholderOptions; | ||
| children?: MasterChild[]; | ||
| } | ||
| interface MasterDefinition extends SlideMasterOptions { | ||
| name?: string; | ||
| theme?: ThemeOptions; | ||
| layouts?: LayoutDefinition[]; | ||
| } | ||
| interface SlideCommentOptions { | ||
| author: string; | ||
| text: string; | ||
| x: number; | ||
| y: number; | ||
| initials?: string; | ||
| date?: string; | ||
| modified?: boolean; | ||
| } | ||
| interface SlideAnimation { | ||
| shapeId: number; | ||
| options: AnimationOptions; | ||
| } | ||
| interface SlideOptions { | ||
| children?: SlideChild[]; | ||
| background?: BackgroundOptions; | ||
| notes?: string; | ||
| transition?: TransitionOptions; | ||
| headerFooter?: SlideHeaderFooterOptions; | ||
| comments?: SlideCommentOptions[]; | ||
| layout?: SlideLayoutType | string; | ||
| master?: string; | ||
| showMasterShapes?: boolean; | ||
| showMasterPlaceholderAnimations?: boolean; | ||
| hidden?: boolean; | ||
| controls?: ControlOptions[]; | ||
| customerData?: { | ||
| rId: string; | ||
| }[]; | ||
| slideSync?: SlideSyncOptions; | ||
| animations?: SlideAnimation[]; | ||
| section?: string; | ||
| } | ||
| interface ShowOptions { | ||
| loop?: boolean; | ||
| type?: "present" | "browse" | "kiosk"; | ||
| showScrollbar?: boolean; | ||
| restart?: number; | ||
| showNarration?: boolean; | ||
| showAnimation?: boolean; | ||
| useTimings?: boolean; | ||
| slideRange?: { | ||
| start: number; | ||
| end: number; | ||
| }; | ||
| penColor?: string; | ||
| } | ||
| interface PresentationOptions extends CorePropertiesOptions { | ||
| size?: SlideSize; | ||
| masters?: MasterDefinition[]; | ||
| slides?: SlideOptions[]; | ||
| show?: ShowOptions; | ||
| view?: ViewPropertiesOptions; | ||
| includeHandoutMaster?: boolean; | ||
| includeNotesMaster?: boolean; | ||
| handoutMasterOptions?: HandoutMasterOptions; | ||
| notesMasterOptions?: NotesMasterOptions; | ||
| tableStyles?: TableStyleListOptions; | ||
| web?: WebPropertiesOptions; | ||
| print?: PrintPropertiesOptions; | ||
| htmlPublish?: HtmlPublishPropertiesOptions; | ||
| serverZoom?: string; | ||
| firstSlideNum?: number; | ||
| showSpecialPlsOnTitleSld?: boolean; | ||
| rtl?: boolean; | ||
| removePersonalInfoOnSave?: boolean; | ||
| compatMode?: boolean; | ||
| strictFirstAndLastChars?: boolean; | ||
| embedTrueTypeFonts?: boolean; | ||
| saveSubsetFonts?: boolean; | ||
| autoCompressPictures?: boolean; | ||
| bookmarkIdSeed?: number; | ||
| conformance?: "strict" | "transitional"; | ||
| photoAlbum?: PhotoAlbumOptions; | ||
| modifyVerifier?: ModifyVerifierOptions; | ||
| embeddedFonts?: EmbeddedFontOptions[]; | ||
| customShows?: CustomShowOptions[]; | ||
| kinsoku?: KinsokuOptions[]; | ||
| customerData?: CustomerDataOptions; | ||
| colorMru?: string[]; | ||
| appProperties?: AppPropertiesOptions; | ||
| customProperties?: CustomPropertyOptions[]; | ||
| } | ||
| //#endregion | ||
| export { ParagraphOptions as $, PosterType as A, BlipFillMediaData as At, AnimationOptions as B, SoftEdgeOptions as Bt, ShapePropertiesOptions as C, PhotoAlbumOptions as Ct, createOutlineCompat as D, buildHandoutMasterXml as Dt, OutlineOptions as E, buildNotesMasterXml as Et, MediaData as F, EffectsOptions as Ft, MediaAnimationType as G, AnimationType as H, MediaDataTransformation as I, GlowOptions as It, LockedCanvasFrameOptions as J, PathAnimationType as K, AnimationCalcMode as L, ReflectionAlignment as Lt, VideoType as M, GradientStopOptions as Mt, AudioFrameOptions as N, buildFill as Nt, GroupShapeOptions as O, BackgroundOptions as Ot, AudioType as P, extractBlipFillMedia as Pt, CellBorderOptions as Q, AnimationClass as R, ReflectionOptions as Rt, ShapeOptions as S, ModifyVerifierOptions as St, LineShapeOptions as T, ViewWrapper as Tt, AnimationValueType as U, AnimationTrigger as V, createPptxEffectList as Vt, EmphasisType as W, TableCellOptions as X, TextBodyOptions as Y, VerticalAlignment as Z, createThemeXml as _, PresentationPropertiesFullOptions as _t, PresentationOptions as a, UnderlineStyle as at, TableOptions as b, EmbeddedFontOptions as bt, SlideOptions as c, ChartOptions as ct, TransitionOptions as d, SlideMasterOptions as dt, RunOptions as et, TransitionType as f, buildSlideMasterXml as ft, ThemeOptions as g, buildLayoutXml as gt, FontSchemeOptions as h, buildCustomLayoutXml as ht, MasterDefinition as i, TextCapitalization as it, VideoFrameOptions as j, FillOptions$1 as jt, PictureOptions as k, BlipFillConfigOptions as kt, SlideSize as l, MasterPlaceholderOptions as lt, ColorSchemeOptions as m, SlideLayoutType as mt, LayoutPlaceholderOptions as n, RunPropertiesOptions as nt, ShowOptions as o, ParagraphPropertiesOptions as ot, buildTransition as p, SlideHeaderFooterOptions as pt, SmartArtOptions as q, MasterChild as r, StrikeStyle as rt, SlideCommentOptions as s, TextAlignment as st, LayoutDefinition as t, HyperlinkOptions as tt, TransitionDirection as u, MasterPlaceholderPosition as ut, ViewPropertiesOptions as v, CustomShowOptions as vt, ConnectorShapeOptions as w, PresentationPartOptions as wt, TableRowOptions as x, KinsokuOptions as xt, SlideChild as y, CustomerDataOptions as yt, AnimationDirection as z, ShadowOptions as zt }; | ||
| //# sourceMappingURL=file-Ck1J4ENn.d.mts.map |
| {"version":3,"file":"file-Ck1J4ENn.d.mts","names":[],"sources":["../src/shared/drawingml/effects.ts","../src/parts/background.ts","../src/parts/handout-master.ts","../src/parts/notes-master.ts","../src/parts/presentation.ts","../src/parts/presentation-properties.ts","../src/parts/slide-layout.ts","../src/shared/header-footer.ts","../src/parts/slide-master.ts","../src/parts/slide/slide.ts","../src/parts/chart-frame.ts","../src/shared/shape/paragraph/paragraph-properties.ts","../src/shared/shape/paragraph/run-properties.ts","../src/shared/shape/paragraph/run.ts","../src/shared/shape/paragraph/paragraph.ts","../src/shared/table/table-cell-properties.ts","../src/shared/table/table-cell.ts","../src/shared/shape/text-body.ts","../src/parts/locked-canvas-frame.ts","../src/parts/ole-frame.ts","../src/parts/smartart.ts","../src/shared/animation/types.ts","../src/shared/media/data.ts","../src/shared/media/media-frame-base.ts","../src/shared/media/audio-frame.ts","../src/shared/media/video-frame.ts","../src/shared/picture.ts","../src/shared/shape/group-shape.ts","../src/shared/drawingml/outline.ts","../src/shared/shape/line-shape.ts","../src/shared/drawingml/shape-properties.ts","../src/shared/shape/shape.ts","../src/shared/table/table-row.ts","../src/shared/table/table-frame.ts","../src/parts/slide/slide-child.ts","../src/parts/slide/slide-sync-properties.ts","../src/parts/view-properties.ts","../src/shared/transition.ts","../src/shared/file.ts"],"mappings":"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"} |
| import { E as SP_TREE_HEADER, _ as timingDesc, a as ParseContext, c as parseChild, d as backgroundDesc, f as pictureDesc, g as slideCommentsDesc, h as commentAuthorsDesc, i as notesMasterDesc, n as tableStylesDesc, o as PptxReadContext, p as shapeDesc, r as notesSlideDesc, t as viewPropsDesc, u as presPropsDesc, v as slideLayoutDesc } from "./view-properties-apHXZ-pk.mjs"; | ||
| import { attr, attrNum, findChild } from "@office-open/xml"; | ||
| import { appPropertiesDesc, convertEmuToPixels, customPropertiesDesc, parseArchive, parseCorePropsElement, toUint8Array } from "@office-open/core"; | ||
| import { themeDesc } from "@office-open/core/theme"; | ||
| //#region src/parts/descriptors/slide.ts | ||
| const slideDesc = { | ||
| kind: "custom", | ||
| stringify(opts, ctx) { | ||
| const parts = []; | ||
| const sldAttrs = []; | ||
| if (opts.showMasterSp === false) sldAttrs.push(" showMasterSp=\"0\""); | ||
| if (opts.showMasterPhAnim === false) sldAttrs.push(" showMasterPhAnim=\"0\""); | ||
| if (opts.hidden) sldAttrs.push(" show=\"0\""); | ||
| parts.push(`<p:sld xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main"${sldAttrs.join("")}>`); | ||
| parts.push("<p:cSld>"); | ||
| if (opts.background) parts.push(stringifyBackground(opts.background)); | ||
| parts.push("<p:spTree>"); | ||
| parts.push(SP_TREE_HEADER); | ||
| if (opts.children) for (const child of opts.children) { | ||
| const xml = stringifySlideChild(child, ctx); | ||
| if (xml) parts.push(xml); | ||
| } | ||
| parts.push("</p:spTree>"); | ||
| if (opts.customerData && opts.customerData.length > 0) { | ||
| const cdItems = opts.customerData.map((d) => `<p:custData r:id="${d.rId}"/>`).join(""); | ||
| parts.push(`<p:custDataLst>${cdItems}</p:custDataLst>`); | ||
| } | ||
| if (opts.controls && opts.controls.length > 0) { | ||
| const ctrlItems = opts.controls.map((c) => { | ||
| const attrs = []; | ||
| if (c.shapeId !== void 0) attrs.push(`spid="${c.shapeId}"`); | ||
| if (c.name) attrs.push(`name="${c.name}"`); | ||
| if (c.showAsIcon) attrs.push("showAsIcon=\"1\""); | ||
| if (c.rId) attrs.push(`r:id="${c.rId}"`); | ||
| if (c.imageWidth !== void 0) attrs.push(`imgW="${c.imageWidth}"`); | ||
| if (c.imageHeight !== void 0) attrs.push(`imgH="${c.imageHeight}"`); | ||
| return `<p:control ${attrs.join(" ")}/>`; | ||
| }).join(""); | ||
| parts.push(`<p:controls>${ctrlItems}</p:controls>`); | ||
| } | ||
| if (opts.headerFooter) { | ||
| const hf = opts.headerFooter; | ||
| const hfChildren = []; | ||
| if (hf.slideNumber) hfChildren.push("<p:sldNum/>"); | ||
| if (hf.dateTime) hfChildren.push("<p:dt/>"); | ||
| if (hf.footer) hfChildren.push("<p:ftr/>"); | ||
| if (hf.header) hfChildren.push("<p:hdr/>"); | ||
| if (hfChildren.length > 0) parts.push(`<p:hf>${hfChildren.join("")}</p:hf>`); | ||
| } | ||
| parts.push("</p:cSld>"); | ||
| parts.push("<p:clrMapOvr><a:masterClrMapping/></p:clrMapOvr>"); | ||
| if (opts.transition) parts.push(stringifyTransition(opts.transition)); | ||
| parts.push("</p:sld>"); | ||
| return parts.join(""); | ||
| }, | ||
| parse(el, _ctx) { | ||
| const result = {}; | ||
| if (el.attributes) { | ||
| if (el.attributes["showMasterSp"] !== void 0) result.showMasterSp = el.attributes["showMasterSp"] !== "0"; | ||
| if (el.attributes["showMasterPhAnim"] !== void 0) result.showMasterPhAnim = el.attributes["showMasterPhAnim"] !== "0"; | ||
| if (el.attributes["show"] === "0") result.hidden = true; | ||
| } | ||
| const cSld = findChild(el, "p:cSld"); | ||
| if (cSld) { | ||
| const bg = findChild(cSld, "p:bg"); | ||
| if (bg) result.background = readBackground(bg); | ||
| const spTree = findChild(cSld, "p:spTree"); | ||
| if (spTree) { | ||
| const children = []; | ||
| if (spTree.elements) for (const child of spTree.elements) { | ||
| if (child.name === "p:nvGrpSpPr" || child.name === "p:grpSpPr") continue; | ||
| const parsed = parseChild(child, _ctx); | ||
| if (parsed !== void 0) children.push(parsed); | ||
| } | ||
| if (children.length > 0) result.children = children; | ||
| } | ||
| const hf = findChild(cSld, "p:hf"); | ||
| if (hf) { | ||
| const hfOpts = {}; | ||
| if (findChild(hf, "p:sldNum")) hfOpts.slideNumber = true; | ||
| if (findChild(hf, "p:dt")) hfOpts.dateTime = true; | ||
| if (findChild(hf, "p:ftr")) hfOpts.footer = true; | ||
| if (findChild(hf, "p:hdr")) hfOpts.header = true; | ||
| if (hfOpts.slideNumber || hfOpts.dateTime || hfOpts.footer || hfOpts.header) result.headerFooter = hfOpts; | ||
| } | ||
| } | ||
| const transition = findChild(el, "p:transition"); | ||
| if (transition) result.transition = readTransition(transition); | ||
| const timing = findChild(el, "p:timing"); | ||
| if (timing) { | ||
| const timingOpts = timingDesc.parse(timing, _ctx); | ||
| if (timingOpts.entries && timingOpts.entries.length > 0) { | ||
| const animations = []; | ||
| for (const entry of timingOpts.entries) animations.push({ | ||
| shapeId: entry.spid, | ||
| options: entry.options | ||
| }); | ||
| result.animations = animations; | ||
| } | ||
| } | ||
| const custDataLst = findChild(el, "p:custDataLst"); | ||
| if (custDataLst) { | ||
| const items = []; | ||
| for (const cd of custDataLst.elements ?? []) if (cd.name === "p:custData") { | ||
| const rId = attr(cd, "r:id"); | ||
| if (rId) items.push({ rId }); | ||
| } | ||
| if (items.length > 0) result.customerData = items; | ||
| } | ||
| const controls = findChild(el, "p:controls"); | ||
| if (controls) { | ||
| const items = []; | ||
| for (const ctrl of controls.elements ?? []) { | ||
| if (ctrl.name !== "p:control") continue; | ||
| const item = {}; | ||
| const spid = attrNum(ctrl, "spid"); | ||
| if (spid !== void 0) item.shapeId = spid; | ||
| const name = attr(ctrl, "name"); | ||
| if (name) item.name = name; | ||
| if (attr(ctrl, "showAsIcon") === "1") item.showAsIcon = true; | ||
| const rId = attr(ctrl, "r:id"); | ||
| if (rId) item.rId = rId; | ||
| const imgW = attrNum(ctrl, "imgW"); | ||
| if (imgW !== void 0) item.imageWidth = imgW; | ||
| const imgH = attrNum(ctrl, "imgH"); | ||
| if (imgH !== void 0) item.imageHeight = imgH; | ||
| items.push(item); | ||
| } | ||
| if (items.length > 0) result.controls = items; | ||
| } | ||
| return result; | ||
| } | ||
| }; | ||
| function stringifySlideChild(child, ctx) { | ||
| if ("shape" in child) return shapeDesc.stringify(child.shape, ctx); | ||
| if ("picture" in child) return pictureDesc.stringify(child.picture, ctx); | ||
| if ("contentPart" in child) return `<p:contentPart r:id="${child.contentPart.rId}"/>`; | ||
| } | ||
| function stringifyBackground(opts) { | ||
| if (opts.color) return `<p:bg><p:bgPr${opts.transparency !== void 0 ? `><a:srgbClr val="${opts.color.replace("#", "")}"><a:alpha val="${Math.round((100 - opts.transparency) * 1e3)}"/></a:srgbClr></p:bgPr` : `><a:solidFill><a:srgbClr val="${opts.color.replace("#", "")}"/></a:solidFill></p:bgPr`}></p:bg>`; | ||
| return "<p:bg/>"; | ||
| } | ||
| function readBackground(bg) { | ||
| const result = {}; | ||
| const bgPr = findChild(bg, "p:bgPr"); | ||
| if (bgPr) { | ||
| const solidFill = findChild(bgPr, "a:solidFill"); | ||
| if (solidFill) { | ||
| const srgbClr = findChild(solidFill, "a:srgbClr"); | ||
| if (srgbClr?.attributes?.["val"]) { | ||
| result.color = String(srgbClr.attributes["val"]); | ||
| const alpha = findChild(srgbClr, "a:alpha"); | ||
| if (alpha?.attributes?.["val"]) result.transparency = 100 - Number(alpha.attributes["val"]) / 1e3; | ||
| } | ||
| } | ||
| } | ||
| return result; | ||
| } | ||
| function stringifyTransition(opts) { | ||
| const parts = []; | ||
| if (opts.type === "none") return ""; | ||
| if (opts.type === "fade") parts.push("<p:fade/>"); | ||
| else if (opts.type === "push") parts.push("<p:push dir=\"l\"/>"); | ||
| else if (opts.type === "wipe") parts.push("<p:wipe dir=\"d\"/>"); | ||
| else if (opts.type === "split") parts.push("<p:split orient=\"horz\"/>"); | ||
| else if (opts.type === "cover") parts.push("<p:cover dir=\"l\"/>"); | ||
| else if (opts.type === "pull") parts.push("<p:pull dir=\"l\"/>"); | ||
| else if (opts.type === "dissolve") parts.push("<p:dissolve/>"); | ||
| else if (opts.type === "wheel") parts.push("<p:wheel spokes=\"4\"/>"); | ||
| else if (opts.type === "random") parts.push("<p:random/>"); | ||
| const attrs = []; | ||
| if (opts.speed) attrs.push(`spd="${opts.speed}"`); | ||
| if (opts.advanceOnClick !== void 0) attrs.push(`advClick="${opts.advanceOnClick ? 1 : 0}"`); | ||
| if (opts.advanceAfterMs !== void 0) attrs.push(`advTm="${opts.advanceAfterMs}"`); | ||
| const attrStr = attrs.length ? " " + attrs.join(" ") : ""; | ||
| const body = parts.join(""); | ||
| return body ? `<p:transition${attrStr}>${body}</p:transition>` : `<p:transition${attrStr}/>`; | ||
| } | ||
| function readTransition(el) { | ||
| const result = {}; | ||
| if (el.attributes) { | ||
| if (el.attributes["spd"] !== void 0) result.speed = el.attributes["spd"]; | ||
| if (el.attributes["advClick"] !== void 0) result.advanceOnClick = el.attributes["advClick"] === "1"; | ||
| if (el.attributes["advTm"] !== void 0) result.advanceAfterMs = Number(el.attributes["advTm"]); | ||
| } | ||
| if (findChild(el, "p:fade")) result.type = "fade"; | ||
| else if (findChild(el, "p:push")) result.type = "push"; | ||
| else if (findChild(el, "p:wipe")) result.type = "wipe"; | ||
| else if (findChild(el, "p:split")) result.type = "split"; | ||
| else if (findChild(el, "p:cover")) result.type = "cover"; | ||
| else if (findChild(el, "p:pull")) result.type = "pull"; | ||
| else if (findChild(el, "p:dissolve")) result.type = "dissolve"; | ||
| else if (findChild(el, "p:wheel")) result.type = "wheel"; | ||
| else if (findChild(el, "p:random")) result.type = "random"; | ||
| return result; | ||
| } | ||
| //#endregion | ||
| //#region src/parse.ts | ||
| function resolveRelsPath(target) { | ||
| if (target.startsWith("/")) return target.slice(1); | ||
| if (target.startsWith("../")) return target.replace("../", "ppt/"); | ||
| return `ppt/${target}`; | ||
| } | ||
| function sortByNumber(paths) { | ||
| return paths.sort((a, b) => { | ||
| return parseInt(a.match(/(\d+)/)?.[1] ?? "0", 10) - parseInt(b.match(/(\d+)/)?.[1] ?? "0", 10); | ||
| }); | ||
| } | ||
| function xmlKeys(keys) { | ||
| return keys.filter((k) => k.endsWith(".xml")); | ||
| } | ||
| function parseRootRels(doc) { | ||
| const relsEl = doc.get("_rels/.rels"); | ||
| if (!relsEl) return {}; | ||
| let coreProps; | ||
| let appProps; | ||
| let customProps; | ||
| for (const child of relsEl.elements ?? []) { | ||
| if (child.name !== "Relationship") continue; | ||
| const type = attr(child, "Type") ?? ""; | ||
| const target = attr(child, "Target") ?? ""; | ||
| if (!target) continue; | ||
| const path = target.startsWith("/") ? target.slice(1) : target; | ||
| if (type.includes("/core-properties")) coreProps = path; | ||
| else if (type.includes("/extended-properties")) appProps = path; | ||
| else if (type.includes("/custom-properties")) customProps = path; | ||
| } | ||
| return { | ||
| coreProps, | ||
| appProps, | ||
| customProps | ||
| }; | ||
| } | ||
| function parseSlideRels(doc, slidePaths, refs) { | ||
| const commentsSet = new Set(refs.comments); | ||
| const chartsSet = new Set(refs.charts); | ||
| const diagramDataSet = new Set(refs.diagramData); | ||
| const mediaSet = new Set(refs.media); | ||
| for (const slidePath of slidePaths) { | ||
| const parts = slidePath.split("/"); | ||
| const fileName = parts.pop(); | ||
| const relsPath = `${parts.join("/")}/_rels/${fileName}.rels`; | ||
| const relsEl = doc.get(relsPath); | ||
| if (!relsEl) continue; | ||
| for (const child of relsEl.elements ?? []) { | ||
| if (child.name !== "Relationship") continue; | ||
| const type = attr(child, "Type") ?? ""; | ||
| const target = attr(child, "Target") ?? ""; | ||
| if (!target) continue; | ||
| const path = resolveRelsPath(target); | ||
| if (type.includes("/comments") && !type.includes("commentAuthors")) commentsSet.add(path); | ||
| else if (type.includes("/chart")) chartsSet.add(path); | ||
| else if (type.includes("/diagramData")) diagramDataSet.add(path); | ||
| else if (type.includes("/image") || type.includes("/video") || type.includes("/media")) mediaSet.add(path); | ||
| } | ||
| } | ||
| refs.comments = [...commentsSet]; | ||
| refs.charts = [...chartsSet]; | ||
| refs.diagramData = [...diagramDataSet]; | ||
| refs.media = [...mediaSet]; | ||
| } | ||
| function parsePptx(data) { | ||
| const doc = parseArchive(toUint8Array(data)); | ||
| const presentation = doc.get("ppt/presentation.xml"); | ||
| const relsXml = doc.get("ppt/_rels/presentation.xml.rels"); | ||
| const slides = []; | ||
| const slideMasters = []; | ||
| const themes = []; | ||
| const notesMasters = []; | ||
| let presProps; | ||
| let viewProps; | ||
| let tableStyles; | ||
| let commentAuthors; | ||
| if (relsXml) for (const child of relsXml.elements ?? []) { | ||
| if (child.name !== "Relationship") continue; | ||
| const type = attr(child, "Type") ?? ""; | ||
| const target = attr(child, "Target") ?? ""; | ||
| if (!target) continue; | ||
| const path = resolveRelsPath(target); | ||
| if (type.includes("/slideMaster")) slideMasters.push(path); | ||
| else if (type.includes("/slide") && !type.includes("slideLayout") && !type.includes("slideMaster")) slides.push(path); | ||
| else if (type.includes("/theme")) themes.push(path); | ||
| else if (type.includes("/notesMaster")) notesMasters.push(path); | ||
| else if (type.includes("/presProps")) presProps = path; | ||
| else if (type.includes("/viewProps")) viewProps = path; | ||
| else if (type.includes("/tableStyles")) tableStyles = path; | ||
| else if (type.includes("/commentAuthors")) commentAuthors = path; | ||
| } | ||
| sortByNumber(slides); | ||
| sortByNumber(slideMasters); | ||
| sortByNumber(themes); | ||
| sortByNumber(notesMasters); | ||
| const slideLayouts = sortByNumber(xmlKeys(doc.keys("ppt/slideLayouts/"))); | ||
| const notesSlides = sortByNumber(xmlKeys(doc.keys("ppt/notesSlides/"))); | ||
| const partRefs = { | ||
| themes, | ||
| notesMasters, | ||
| commentAuthors, | ||
| comments: [], | ||
| charts: [], | ||
| diagramData: [], | ||
| media: doc.keys("ppt/media/") | ||
| }; | ||
| parseSlideRels(doc, slides, partRefs); | ||
| sortByNumber(partRefs.comments); | ||
| sortByNumber(partRefs.charts); | ||
| sortByNumber(partRefs.diagramData); | ||
| const { coreProps, appProps, customProps } = parseRootRels(doc); | ||
| return { | ||
| doc, | ||
| presentation, | ||
| slides, | ||
| slideMasters, | ||
| slideLayouts, | ||
| notesSlides, | ||
| partRefs, | ||
| presProps, | ||
| viewProps, | ||
| tableStyles, | ||
| coreProps, | ||
| appProps, | ||
| customProps | ||
| }; | ||
| } | ||
| /** | ||
| * Parse a single slide's relationship file into a Map<rId, path>. | ||
| */ | ||
| function parseSlideRelMap(doc, slidePath) { | ||
| const rels = /* @__PURE__ */ new Map(); | ||
| const parts = slidePath.split("/"); | ||
| const fileName = parts.pop(); | ||
| const relsPath = `${parts.join("/")}/_rels/${fileName}.rels`; | ||
| const relsEl = doc.get(relsPath); | ||
| if (!relsEl) return rels; | ||
| for (const child of relsEl.elements ?? []) { | ||
| if (child.name !== "Relationship") continue; | ||
| const id = attr(child, "Id") ?? ""; | ||
| const target = attr(child, "Target") ?? ""; | ||
| if (!id || !target) continue; | ||
| if (attr(child, "TargetMode") === "External") rels.set(id, target); | ||
| else rels.set(id, resolveRelsPath(target)); | ||
| } | ||
| return rels; | ||
| } | ||
| /** | ||
| * Build a map from each path to the rel target matching a predicate. | ||
| */ | ||
| function resolveRelTargets(doc, paths, predicate) { | ||
| const map = /* @__PURE__ */ new Map(); | ||
| for (const path of paths) for (const target of parseSlideRelMap(doc, path).values()) if (predicate(target)) map.set(path, target); | ||
| return map; | ||
| } | ||
| /** | ||
| * Parse p14:sectionLst from presentation.xml and map each slide path to its | ||
| * section name. Bridges p14:sldId (by slide id) -> p:sldIdLst (slide id -> | ||
| * rId) -> presentation rels (rId -> path). | ||
| */ | ||
| function parseSlideSections(presentation, doc) { | ||
| const pathToSection = /* @__PURE__ */ new Map(); | ||
| if (!presentation) return pathToSection; | ||
| const extLst = findChild(presentation, "p:extLst"); | ||
| if (!extLst) return pathToSection; | ||
| let sectionLst; | ||
| for (const ext of extLst.elements ?? []) { | ||
| if (ext.name !== "p:ext") continue; | ||
| if (attr(ext, "uri") !== "{521415D9-36F7-43E2-AB2F-B90AF26B5E84}") continue; | ||
| sectionLst = findChild(ext, "p14:sectionLst"); | ||
| if (sectionLst) break; | ||
| } | ||
| if (!sectionLst) return pathToSection; | ||
| const sectionBySlideId = /* @__PURE__ */ new Map(); | ||
| for (const section of sectionLst.elements ?? []) { | ||
| if (section.name !== "p14:section") continue; | ||
| const name = attr(section, "name"); | ||
| if (!name) continue; | ||
| const sldIdLst = findChild(section, "p14:sldIdLst"); | ||
| for (const sldId of sldIdLst?.elements ?? []) { | ||
| if (sldId.name !== "p14:sldId") continue; | ||
| const id = attrNum(sldId, "id"); | ||
| if (id !== void 0) sectionBySlideId.set(id, name); | ||
| } | ||
| } | ||
| if (sectionBySlideId.size === 0) return pathToSection; | ||
| const sldIdLst = findChild(presentation, "p:sldIdLst"); | ||
| const rIdBySlideId = /* @__PURE__ */ new Map(); | ||
| for (const sldId of sldIdLst?.elements ?? []) { | ||
| if (sldId.name !== "p:sldId") continue; | ||
| const id = attrNum(sldId, "id"); | ||
| const rId = attr(sldId, "r:id"); | ||
| if (id !== void 0 && rId) rIdBySlideId.set(id, rId); | ||
| } | ||
| const relsEl = doc.get("ppt/_rels/presentation.xml.rels"); | ||
| const pathByRId = /* @__PURE__ */ new Map(); | ||
| for (const child of relsEl?.elements ?? []) { | ||
| if (child.name !== "Relationship") continue; | ||
| const id = attr(child, "Id"); | ||
| const target = attr(child, "Target"); | ||
| if (id && target) pathByRId.set(id, resolveRelsPath(target)); | ||
| } | ||
| for (const [slideId, name] of sectionBySlideId) { | ||
| const rId = rIdBySlideId.get(slideId); | ||
| if (!rId) continue; | ||
| const path = pathByRId.get(rId); | ||
| if (path) pathToSection.set(path, name); | ||
| } | ||
| return pathToSection; | ||
| } | ||
| /** | ||
| * Parse a .pptx file and convert it into PresentationOptions. | ||
| * | ||
| * This is the main public API for parsing PPTX files. | ||
| * The returned options can be passed directly to `new Presentation(parsed)` | ||
| * to recreate the presentation. | ||
| * | ||
| * @param data - Raw bytes of a .pptx file | ||
| * @returns Parsed presentation options | ||
| */ | ||
| function parsePresentation(data) { | ||
| const pptx = parsePptx(data); | ||
| const opts = {}; | ||
| const sectionBySlidePath = parseSlideSections(pptx.presentation, pptx.doc); | ||
| if (pptx.presentation) { | ||
| const sldSz = findChild(pptx.presentation, "p:sldSz"); | ||
| if (sldSz) { | ||
| const cx = attrNum(sldSz, "cx"); | ||
| const cy = attrNum(sldSz, "cy"); | ||
| if (cx === 12192e3 && cy === 6858e3) opts.size = "16:9"; | ||
| else if (cx === 9144e3 && cy === 6858e3) opts.size = "4:3"; | ||
| else if (cx && cy) opts.size = { | ||
| width: convertEmuToPixels(cx), | ||
| height: convertEmuToPixels(cy) | ||
| }; | ||
| } | ||
| } | ||
| if (pptx.coreProps) { | ||
| const corePropsEl = pptx.doc.get(pptx.coreProps); | ||
| if (corePropsEl) { | ||
| const cp = parseCorePropsElement(corePropsEl); | ||
| if (cp.title) opts.title = cp.title; | ||
| if (cp.subject) opts.subject = cp.subject; | ||
| if (cp.creator) opts.creator = cp.creator; | ||
| if (cp.keywords) opts.keywords = cp.keywords; | ||
| if (cp.description) opts.description = cp.description; | ||
| if (cp.lastModifiedBy) opts.lastModifiedBy = cp.lastModifiedBy; | ||
| if (cp.revision !== void 0) opts.revision = cp.revision; | ||
| if (cp.lastPrinted) opts.lastPrinted = cp.lastPrinted; | ||
| if (cp.created) opts.created = cp.created; | ||
| if (cp.modified) opts.modified = cp.modified; | ||
| } | ||
| } | ||
| if (pptx.appProps) { | ||
| const appPropsEl = pptx.doc.get(pptx.appProps); | ||
| if (appPropsEl) { | ||
| const ap = appPropertiesDesc.parse(appPropsEl, {}); | ||
| if (ap && Object.keys(ap).length > 0) opts.appProperties = ap; | ||
| } | ||
| } | ||
| if (pptx.customProps) { | ||
| const customPropsEl = pptx.doc.get(pptx.customProps); | ||
| if (customPropsEl) { | ||
| const cp = customPropertiesDesc.parse(customPropsEl, {}); | ||
| if (cp.properties?.length) opts.customProperties = cp.properties; | ||
| } | ||
| } | ||
| if (pptx.presProps) { | ||
| const presPropsEl = pptx.doc.get(pptx.presProps); | ||
| if (presPropsEl) { | ||
| const presPropsOpts = presPropsDesc.parse(presPropsEl, {}); | ||
| if (presPropsOpts.show) opts.show = presPropsOpts.show; | ||
| } | ||
| } | ||
| if (pptx.viewProps) { | ||
| const viewPropsEl = pptx.doc.get(pptx.viewProps); | ||
| if (viewPropsEl) { | ||
| const viewOpts = viewPropsDesc.parse(viewPropsEl, {}); | ||
| if (viewOpts.lastView || viewOpts.showComments !== void 0 || viewOpts.gridSpacing) opts.view = viewOpts; | ||
| } | ||
| } | ||
| if (pptx.tableStyles) { | ||
| const tableStylesEl = pptx.doc.get(pptx.tableStyles); | ||
| if (tableStylesEl) { | ||
| const tableStylesResult = tableStylesDesc.parse(tableStylesEl, {}); | ||
| if (tableStylesResult.opts) opts.tableStyles = tableStylesResult.opts; | ||
| } | ||
| } | ||
| const masterThemePaths = resolveRelTargets(pptx.doc, pptx.slideMasters, (t) => t.includes("/theme")); | ||
| const layoutMasterPaths = resolveRelTargets(pptx.doc, pptx.slideLayouts, (t) => t.includes("/slideMaster")); | ||
| const slideLayoutPaths = resolveRelTargets(pptx.doc, pptx.slides, (t) => t.includes("/slideLayout")); | ||
| const masterCount = pptx.slideMasters.length; | ||
| const masterDefs = []; | ||
| const masterReadCtx = new PptxReadContext(new ParseContext(pptx, /* @__PURE__ */ new Map())); | ||
| for (let mi = 0; mi < masterCount; mi++) { | ||
| const masterPath = pptx.slideMasters[mi]; | ||
| const masterEl = pptx.doc.get(masterPath); | ||
| if (!masterEl) continue; | ||
| const themePath = masterThemePaths.get(masterPath); | ||
| const themeEl = themePath ? pptx.doc.get(themePath) : void 0; | ||
| const themeOptions = themeEl ? themeDesc.parse(themeEl, masterReadCtx) : void 0; | ||
| const cSld = findChild(masterEl, "p:cSld"); | ||
| const bg = cSld ? findChild(cSld, "p:bg") : void 0; | ||
| const masterBackground = bg ? backgroundDesc.parse(bg, masterReadCtx) : void 0; | ||
| const hasBackground = masterBackground && Object.keys(masterBackground).length > 0; | ||
| const spTree = cSld ? findChild(cSld, "p:spTree") : void 0; | ||
| const masterChildren = []; | ||
| if (spTree) for (const child of spTree.elements ?? []) { | ||
| if (child.name === "p:nvGrpSpPr" || child.name === "p:grpSpPr") continue; | ||
| if (child.name === "p:sp") { | ||
| const nvSpPr = findChild(child, "p:nvSpPr"); | ||
| const nvPr = nvSpPr ? findChild(nvSpPr, "p:nvPr") : void 0; | ||
| if (nvPr && findChild(nvPr, "p:ph")) continue; | ||
| } | ||
| const parsed = parseChild(child, masterReadCtx); | ||
| if (parsed !== void 0) masterChildren.push(parsed); | ||
| } | ||
| const masterLayouts = []; | ||
| for (const layoutPath of pptx.slideLayouts) { | ||
| if (layoutMasterPaths.get(layoutPath) !== masterPath) continue; | ||
| const layoutEl = pptx.doc.get(layoutPath); | ||
| if (layoutEl) { | ||
| const layoutOpts = slideLayoutDesc.parse(layoutEl, masterReadCtx); | ||
| const layoutDef = { type: layoutOpts.type ?? "blank" }; | ||
| if (layoutOpts.placeholders) layoutDef.placeholders = layoutOpts.placeholders; | ||
| masterLayouts.push(layoutDef); | ||
| } | ||
| } | ||
| const masterName = themeOptions?.name ?? `master${mi + 1}`; | ||
| const masterDef = {}; | ||
| masterDef.name = masterName; | ||
| if (themeOptions) masterDef.theme = themeOptions; | ||
| if (hasBackground) masterDef.background = masterBackground; | ||
| if (masterChildren.length > 0) masterDef.children = masterChildren; | ||
| if (masterLayouts.length > 0) masterDef.layouts = masterLayouts; | ||
| masterDefs.push(masterDef); | ||
| } | ||
| if (masterCount > 1) opts.masters = masterDefs; | ||
| for (const nmPath of pptx.partRefs.notesMasters) { | ||
| const nmEl = pptx.doc.get(nmPath); | ||
| if (nmEl) { | ||
| const nmOpts = notesMasterDesc.parse(nmEl, masterReadCtx); | ||
| if (nmOpts.options) { | ||
| opts.includeNotesMaster = true; | ||
| opts.notesMasterOptions = nmOpts.options; | ||
| } | ||
| } | ||
| } | ||
| const commentAuthors = /* @__PURE__ */ new Map(); | ||
| if (pptx.partRefs.commentAuthors) { | ||
| const authorsEl = pptx.doc.get(pptx.partRefs.commentAuthors); | ||
| if (authorsEl) { | ||
| const authors = commentAuthorsDesc.parse(authorsEl, masterReadCtx); | ||
| for (const a of authors) commentAuthors.set(a.id, { | ||
| name: a.name, | ||
| initials: a.initials | ||
| }); | ||
| } | ||
| } | ||
| const result = []; | ||
| for (let si = 0; si < pptx.slides.length; si++) { | ||
| const slidePath = pptx.slides[si]; | ||
| const slideEl = pptx.doc.get(slidePath); | ||
| if (!slideEl) continue; | ||
| const slideRels = parseSlideRelMap(pptx.doc, slidePath); | ||
| const readCtx = new PptxReadContext(new ParseContext(pptx, slideRels)); | ||
| const slideOpts = slideDesc.parse(slideEl, readCtx); | ||
| const layoutPath = slideLayoutPaths.get(slidePath); | ||
| if (layoutPath) { | ||
| const layoutEl = pptx.doc.get(layoutPath); | ||
| if (layoutEl) slideOpts.layout = slideLayoutDesc.parse(layoutEl, readCtx).type ?? "blank"; | ||
| const resolvedMasterPath = layoutMasterPaths.get(layoutPath); | ||
| if (resolvedMasterPath) { | ||
| const masterIdx = pptx.slideMasters.indexOf(resolvedMasterPath); | ||
| if (masterIdx >= 0 && masterDefs[masterIdx]) slideOpts.master = masterDefs[masterIdx].name; | ||
| } | ||
| } | ||
| for (const [, relPath] of slideRels) { | ||
| if (!relPath.includes("/comments/")) continue; | ||
| const commentsEl = pptx.doc.get(relPath); | ||
| if (!commentsEl) continue; | ||
| const parsedComments = slideCommentsDesc.parse(commentsEl, readCtx); | ||
| if (parsedComments.length > 0) { | ||
| const comments = []; | ||
| for (const cm of parsedComments) { | ||
| const entry = { | ||
| x: cm.x, | ||
| y: cm.y | ||
| }; | ||
| if (cm.text) entry.text = cm.text; | ||
| if (cm.date) entry.date = cm.date; | ||
| if (cm.modified !== void 0) entry.modified = cm.modified; | ||
| const author = commentAuthors.get(cm.authorId); | ||
| if (author) { | ||
| entry.author = author.name; | ||
| if (author.initials) entry.initials = author.initials; | ||
| } | ||
| comments.push(entry); | ||
| } | ||
| if (comments.length > 0) slideOpts.comments = comments; | ||
| } | ||
| break; | ||
| } | ||
| for (const [, relPath] of slideRels) { | ||
| if (!relPath.includes("/notesSlides/")) continue; | ||
| const notesEl = pptx.doc.get(relPath); | ||
| if (!notesEl) continue; | ||
| const notesData = notesSlideDesc.parse(notesEl, readCtx); | ||
| if (notesData.text) slideOpts.notes = notesData.text; | ||
| break; | ||
| } | ||
| const sectionName = sectionBySlidePath.get(slidePath); | ||
| if (sectionName) slideOpts.section = sectionName; | ||
| result.push(slideOpts); | ||
| } | ||
| opts.slides = result; | ||
| return opts; | ||
| } | ||
| //#endregion | ||
| export { slideDesc as i, parsePptx as n, parsePresentation as r, parseArchive as t }; | ||
| //# sourceMappingURL=parse-B9PWJ1mK.mjs.map |
| {"version":3,"file":"parse-B9PWJ1mK.mjs","names":[],"sources":["../src/parts/descriptors/slide.ts","../src/parse.ts"],"sourcesContent":["/**\n * Slide (p:sld) descriptor for PPTX.\n *\n * @module\n */\n\nimport type { CustomDescriptor, WriteContext } from \"@office-open/core/descriptor\";\nimport { attr, attrNum, findChild } from \"@office-open/xml\";\nimport type { Element as XmlElement } from \"@office-open/xml\";\nimport type { SlideChild as LegacySlideChild } from \"@parts/slide/slide-child\";\nimport { SP_TREE_HEADER } from \"@shared/constants\";\n\nimport { timingDesc } from \"./animation\";\nimport { parseChild } from \"./bridge\";\nimport { shapeDesc, pictureDesc } from \"./shape\";\nimport type {\n ShapeDescriptorOptions,\n PictureDescriptorOptions,\n TextBodyDescriptorOptions,\n} from \"./shape\";\n\n// ── Types ──\n\nexport interface HeaderFooterDescriptorOptions {\n slideNumber?: boolean;\n dateTime?: boolean;\n footer?: boolean;\n header?: boolean;\n}\n\nexport interface AnimationDescriptorOptions {\n shapeId: number;\n options: unknown;\n}\n\nexport interface SlideDescriptorOptions {\n children?: SlideChild[];\n background?: BackgroundDescriptorOptions;\n transition?: TransitionDescriptorOptions;\n showMasterSp?: boolean;\n showMasterPhAnim?: boolean;\n controls?: ControlDescriptorOptions[];\n customerData?: { rId: string }[];\n headerFooter?: HeaderFooterDescriptorOptions;\n animations?: AnimationDescriptorOptions[];\n /** Hidden slide — excluded from slideshow (emits p:sld/@show=\"0\"). */\n hidden?: boolean;\n}\n\n/** Discriminated union for slide children (JSON-friendly). */\nexport type SlideChild =\n | { shape: ShapeDescriptorOptions }\n | { picture: PictureDescriptorOptions }\n | { text: TextBodyDescriptorOptions }\n | { contentPart: { rId: string } };\n\nexport interface BackgroundDescriptorOptions {\n color?: string;\n transparency?: number;\n}\n\nexport interface TransitionDescriptorOptions {\n type?:\n | \"none\"\n | \"fade\"\n | \"push\"\n | \"wipe\"\n | \"split\"\n | \"cover\"\n | \"pull\"\n | \"dissolve\"\n | \"wheel\"\n | \"random\";\n speed?: \"slow\" | \"medium\" | \"fast\";\n advanceOnClick?: boolean;\n advanceAfterMs?: number;\n}\n\nexport interface ControlDescriptorOptions {\n shapeId?: number;\n name?: string;\n showAsIcon?: boolean;\n rId?: string;\n imageWidth?: number;\n imageHeight?: number;\n}\n\n// ── Slide (p:sld) descriptor ──\n\nexport const slideDesc: CustomDescriptor<SlideDescriptorOptions> = {\n kind: \"custom\",\n\n stringify(opts, ctx) {\n const parts: string[] = [];\n\n // Opening tag with namespace declarations\n const sldAttrs: string[] = [];\n if (opts.showMasterSp === false) sldAttrs.push(' showMasterSp=\"0\"');\n if (opts.showMasterPhAnim === false) sldAttrs.push(' showMasterPhAnim=\"0\"');\n if (opts.hidden) sldAttrs.push(' show=\"0\"');\n parts.push(\n `<p:sld xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:p=\"http://schemas.openxmlformats.org/presentationml/2006/main\"${sldAttrs.join(\"\")}>`,\n );\n\n // p:cSld — common slide data\n parts.push(\"<p:cSld>\");\n\n if (opts.background) {\n parts.push(stringifyBackground(opts.background));\n }\n\n // p:spTree — shape tree\n parts.push(\"<p:spTree>\");\n parts.push(SP_TREE_HEADER);\n\n if (opts.children) {\n for (const child of opts.children) {\n const xml = stringifySlideChild(child, ctx);\n if (xml) parts.push(xml);\n }\n }\n\n parts.push(\"</p:spTree>\");\n\n // custDataLst\n if (opts.customerData && opts.customerData.length > 0) {\n const cdItems = opts.customerData.map((d) => `<p:custData r:id=\"${d.rId}\"/>`).join(\"\");\n parts.push(`<p:custDataLst>${cdItems}</p:custDataLst>`);\n }\n\n // controls\n if (opts.controls && opts.controls.length > 0) {\n const ctrlItems = opts.controls\n .map((c) => {\n const attrs: string[] = [];\n if (c.shapeId !== undefined) attrs.push(`spid=\"${c.shapeId}\"`);\n if (c.name) attrs.push(`name=\"${c.name}\"`);\n if (c.showAsIcon) attrs.push('showAsIcon=\"1\"');\n if (c.rId) attrs.push(`r:id=\"${c.rId}\"`);\n if (c.imageWidth !== undefined) attrs.push(`imgW=\"${c.imageWidth}\"`);\n if (c.imageHeight !== undefined) attrs.push(`imgH=\"${c.imageHeight}\"`);\n return `<p:control ${attrs.join(\" \")}/>`;\n })\n .join(\"\");\n parts.push(`<p:controls>${ctrlItems}</p:controls>`);\n }\n\n // Header/Footer (p:hf)\n if (opts.headerFooter) {\n const hf = opts.headerFooter;\n const hfChildren: string[] = [];\n if (hf.slideNumber) hfChildren.push(\"<p:sldNum/>\");\n if (hf.dateTime) hfChildren.push(\"<p:dt/>\");\n if (hf.footer) hfChildren.push(\"<p:ftr/>\");\n if (hf.header) hfChildren.push(\"<p:hdr/>\");\n if (hfChildren.length > 0) parts.push(`<p:hf>${hfChildren.join(\"\")}</p:hf>`);\n }\n\n parts.push(\"</p:cSld>\");\n\n // p:clrMapOvr\n parts.push(\"<p:clrMapOvr><a:masterClrMapping/></p:clrMapOvr>\");\n\n // p:transition (optional)\n if (opts.transition) {\n parts.push(stringifyTransition(opts.transition));\n }\n\n parts.push(\"</p:sld>\");\n return parts.join(\"\");\n },\n\n parse(el, _ctx) {\n const result: Record<string, unknown> = {};\n\n // Root attributes\n if (el.attributes) {\n if (el.attributes[\"showMasterSp\"] !== undefined)\n result.showMasterSp = el.attributes[\"showMasterSp\"] !== \"0\";\n if (el.attributes[\"showMasterPhAnim\"] !== undefined)\n result.showMasterPhAnim = el.attributes[\"showMasterPhAnim\"] !== \"0\";\n if (el.attributes[\"show\"] === \"0\") result.hidden = true;\n }\n\n // p:cSld\n const cSld = findChild(el, \"p:cSld\");\n if (cSld) {\n // Background\n const bg = findChild(cSld, \"p:bg\");\n if (bg) result.background = readBackground(bg);\n\n // Shape tree\n const spTree = findChild(cSld, \"p:spTree\");\n if (spTree) {\n const children: LegacySlideChild[] = [];\n if (spTree.elements) {\n for (const child of spTree.elements) {\n // Skip tree container structure\n if (child.name === \"p:nvGrpSpPr\" || child.name === \"p:grpSpPr\") continue;\n const parsed = parseChild(child, _ctx);\n if (parsed !== undefined) children.push(parsed);\n }\n }\n if (children.length > 0) result.children = children;\n }\n\n // Header/Footer (p:hf)\n const hf = findChild(cSld, \"p:hf\");\n if (hf) {\n const hfOpts: HeaderFooterDescriptorOptions = {};\n if (findChild(hf, \"p:sldNum\")) hfOpts.slideNumber = true;\n if (findChild(hf, \"p:dt\")) hfOpts.dateTime = true;\n if (findChild(hf, \"p:ftr\")) hfOpts.footer = true;\n if (findChild(hf, \"p:hdr\")) hfOpts.header = true;\n if (hfOpts.slideNumber || hfOpts.dateTime || hfOpts.footer || hfOpts.header)\n result.headerFooter = hfOpts;\n }\n }\n\n // p:transition\n const transition = findChild(el, \"p:transition\");\n if (transition) result.transition = readTransition(transition);\n\n // p:timing → animations\n const timing = findChild(el, \"p:timing\");\n if (timing) {\n const timingOpts = timingDesc.parse(timing, _ctx);\n if (timingOpts.entries && timingOpts.entries.length > 0) {\n const animations: AnimationDescriptorOptions[] = [];\n for (const entry of timingOpts.entries) {\n animations.push({ shapeId: entry.spid, options: entry.options });\n }\n result.animations = animations;\n }\n }\n\n // custDataLst\n const custDataLst = findChild(el, \"p:custDataLst\");\n if (custDataLst) {\n const items: { rId: string }[] = [];\n for (const cd of custDataLst.elements ?? []) {\n if (cd.name === \"p:custData\") {\n const rId = attr(cd, \"r:id\");\n if (rId) items.push({ rId });\n }\n }\n if (items.length > 0) result.customerData = items;\n }\n\n // controls\n const controls = findChild(el, \"p:controls\");\n if (controls) {\n const items: ControlDescriptorOptions[] = [];\n for (const ctrl of controls.elements ?? []) {\n if (ctrl.name !== \"p:control\") continue;\n const item: ControlDescriptorOptions = {};\n const spid = attrNum(ctrl, \"spid\");\n if (spid !== undefined) item.shapeId = spid;\n const name = attr(ctrl, \"name\");\n if (name) item.name = name;\n if (attr(ctrl, \"showAsIcon\") === \"1\") item.showAsIcon = true;\n const rId = attr(ctrl, \"r:id\");\n if (rId) item.rId = rId;\n const imgW = attrNum(ctrl, \"imgW\");\n if (imgW !== undefined) item.imageWidth = imgW;\n const imgH = attrNum(ctrl, \"imgH\");\n if (imgH !== undefined) item.imageHeight = imgH;\n items.push(item);\n }\n if (items.length > 0) result.controls = items;\n }\n\n return result as unknown as SlideDescriptorOptions;\n },\n};\n\n// ── Child serializer ──\n\nfunction stringifySlideChild(child: SlideChild, ctx: WriteContext): string | undefined {\n if (\"shape\" in child) return shapeDesc.stringify(child.shape, ctx);\n if (\"picture\" in child) return pictureDesc.stringify(child.picture, ctx);\n if (\"contentPart\" in child) return `<p:contentPart r:id=\"${child.contentPart.rId}\"/>`;\n return undefined;\n}\n\n// ── Background helpers ──\n\nfunction stringifyBackground(opts: BackgroundDescriptorOptions): string {\n if (opts.color) {\n const alphaAttr =\n opts.transparency !== undefined\n ? `><a:srgbClr val=\"${opts.color.replace(\"#\", \"\")}\"><a:alpha val=\"${Math.round((100 - opts.transparency) * 1000)}\"/></a:srgbClr></p:bgPr`\n : `><a:solidFill><a:srgbClr val=\"${opts.color.replace(\"#\", \"\")}\"/></a:solidFill></p:bgPr`;\n return `<p:bg><p:bgPr${alphaAttr}></p:bg>`;\n }\n return \"<p:bg/>\";\n}\n\nfunction readBackground(bg: XmlElement): BackgroundDescriptorOptions {\n const result: BackgroundDescriptorOptions = {};\n const bgPr = findChild(bg, \"p:bgPr\");\n if (bgPr) {\n const solidFill = findChild(bgPr, \"a:solidFill\");\n if (solidFill) {\n const srgbClr = findChild(solidFill, \"a:srgbClr\");\n if (srgbClr?.attributes?.[\"val\"]) {\n result.color = String(srgbClr.attributes[\"val\"]);\n const alpha = findChild(srgbClr, \"a:alpha\");\n if (alpha?.attributes?.[\"val\"]) {\n result.transparency = 100 - Number(alpha.attributes[\"val\"]) / 1000;\n }\n }\n }\n }\n return result;\n}\n\n// ── Transition helpers ──\n\nfunction stringifyTransition(opts: TransitionDescriptorOptions): string {\n const parts: string[] = [];\n\n if (opts.type === \"none\") return \"\";\n if (opts.type === \"fade\") parts.push(\"<p:fade/>\");\n else if (opts.type === \"push\") parts.push('<p:push dir=\"l\"/>');\n else if (opts.type === \"wipe\") parts.push('<p:wipe dir=\"d\"/>');\n else if (opts.type === \"split\") parts.push('<p:split orient=\"horz\"/>');\n else if (opts.type === \"cover\") parts.push('<p:cover dir=\"l\"/>');\n else if (opts.type === \"pull\") parts.push('<p:pull dir=\"l\"/>');\n else if (opts.type === \"dissolve\") parts.push(\"<p:dissolve/>\");\n else if (opts.type === \"wheel\") parts.push('<p:wheel spokes=\"4\"/>');\n else if (opts.type === \"random\") parts.push(\"<p:random/>\");\n\n const attrs: string[] = [];\n if (opts.speed) attrs.push(`spd=\"${opts.speed}\"`);\n if (opts.advanceOnClick !== undefined) attrs.push(`advClick=\"${opts.advanceOnClick ? 1 : 0}\"`);\n if (opts.advanceAfterMs !== undefined) attrs.push(`advTm=\"${opts.advanceAfterMs}\"`);\n\n const attrStr = attrs.length ? \" \" + attrs.join(\" \") : \"\";\n const body = parts.join(\"\");\n return body ? `<p:transition${attrStr}>${body}</p:transition>` : `<p:transition${attrStr}/>`;\n}\n\nfunction readTransition(el: XmlElement): TransitionDescriptorOptions {\n const result: TransitionDescriptorOptions = {};\n\n if (el.attributes) {\n if (el.attributes[\"spd\"] !== undefined)\n result.speed = el.attributes[\"spd\"] as \"slow\" | \"medium\" | \"fast\";\n if (el.attributes[\"advClick\"] !== undefined)\n result.advanceOnClick = el.attributes[\"advClick\"] === \"1\";\n if (el.attributes[\"advTm\"] !== undefined)\n result.advanceAfterMs = Number(el.attributes[\"advTm\"]);\n }\n\n // Detect transition type from child elements\n if (findChild(el, \"p:fade\")) result.type = \"fade\";\n else if (findChild(el, \"p:push\")) result.type = \"push\";\n else if (findChild(el, \"p:wipe\")) result.type = \"wipe\";\n else if (findChild(el, \"p:split\")) result.type = \"split\";\n else if (findChild(el, \"p:cover\")) result.type = \"cover\";\n else if (findChild(el, \"p:pull\")) result.type = \"pull\";\n else if (findChild(el, \"p:dissolve\")) result.type = \"dissolve\";\n else if (findChild(el, \"p:wheel\")) result.type = \"wheel\";\n else if (findChild(el, \"p:random\")) result.type = \"random\";\n\n return result;\n}\n","import type { ParsedArchive } from \"@office-open/core\";\nimport {\n appPropertiesDesc,\n customPropertiesDesc,\n parseArchive,\n parseCorePropsElement,\n convertEmuToPixels,\n} from \"@office-open/core\";\nimport type { DataType } from \"@office-open/core\";\nimport { toUint8Array } from \"@office-open/core\";\nimport type { ReadContext } from \"@office-open/core/descriptor\";\nimport { themeDesc } from \"@office-open/core/theme\";\nimport type { Element } from \"@office-open/xml\";\nimport { attr, attrNum, findChild } from \"@office-open/xml\";\n\nimport { PptxReadContext, ParseContext } from \"./context\";\nimport { backgroundDesc } from \"./parts/descriptors/background\";\nimport { parseChild } from \"./parts/descriptors/bridge\";\nimport { commentAuthorsDesc, slideCommentsDesc } from \"./parts/descriptors/comments\";\nimport { notesMasterDesc } from \"./parts/descriptors/notes-master\";\nimport { notesSlideDesc } from \"./parts/descriptors/notes-slide\";\nimport { presPropsDesc } from \"./parts/descriptors/presentation-properties\";\nimport { slideDesc } from \"./parts/descriptors/slide\";\nimport { slideLayoutDesc } from \"./parts/descriptors/slide-layout\";\nimport { tableStylesDesc } from \"./parts/descriptors/table-styles\";\nimport { viewPropsDesc } from \"./parts/descriptors/view-properties\";\nimport type { SlideChild } from \"./parts/slide/slide-child\";\n\nexport { parseArchive };\n\nimport type { SlideLayoutType } from \"./parts/slide-layout\";\nimport type {\n LayoutDefinition,\n MasterChild,\n MasterDefinition,\n SlideOptions,\n SlideCommentOptions,\n PresentationOptions,\n} from \"./shared/file\";\n\n/**\n * All part paths extracted from the PPTX package.\n * Field names correspond directly to the OOXML directory structure.\n */\nexport interface PptxPartRefs {\n /** ppt/theme/themeN.xml */\n themes: string[];\n /** ppt/notesMasters/notesMasterN.xml */\n notesMasters: string[];\n /** ppt/commentAuthors.xml */\n commentAuthors?: string;\n /** ppt/comments/commentN.xml (from slide rels) */\n comments: string[];\n /** ppt/charts/chartN.xml (from slide rels) */\n charts: string[];\n /** ppt/diagrams/dataN.xml (from slide rels) */\n diagramData: string[];\n /** ppt/media/* (all media files) */\n media: string[];\n}\n\nexport interface PptxDocument {\n doc: ParsedArchive;\n /** ppt/presentation.xml root element (p:presentation) */\n presentation?: Element;\n /** ppt/slides/slideN.xml */\n slides: string[];\n /** ppt/slideMasters/slideMasterN.xml */\n slideMasters: string[];\n /** ppt/slideLayouts/slideLayoutN.xml */\n slideLayouts: string[];\n /** ppt/notesSlides/notesSlideN.xml */\n notesSlides: string[];\n partRefs: PptxPartRefs;\n /** ppt/presProps.xml */\n presProps?: string;\n /** ppt/viewProps.xml */\n viewProps?: string;\n /** ppt/tableStyles.xml */\n tableStyles?: string;\n /** docProps/core.xml */\n coreProps?: string;\n /** docProps/app.xml */\n appProps?: string;\n /** docProps/custom.xml */\n customProps?: string;\n}\n\nfunction resolveRelsPath(target: string): string {\n if (target.startsWith(\"/\")) return target.slice(1);\n if (target.startsWith(\"../\")) return target.replace(\"../\", \"ppt/\");\n return `ppt/${target}`;\n}\n\nfunction sortByNumber(paths: string[]): string[] {\n return paths.sort((a, b) => {\n const numA = parseInt(a.match(/(\\d+)/)?.[1] ?? \"0\", 10);\n const numB = parseInt(b.match(/(\\d+)/)?.[1] ?? \"0\", 10);\n return numA - numB;\n });\n}\n\nfunction xmlKeys(keys: string[]): string[] {\n return keys.filter((k) => k.endsWith(\".xml\"));\n}\n\nfunction parseRootRels(doc: ParsedArchive): {\n coreProps?: string;\n appProps?: string;\n customProps?: string;\n} {\n const relsEl = doc.get(\"_rels/.rels\");\n if (!relsEl) return {};\n\n let coreProps: string | undefined;\n let appProps: string | undefined;\n let customProps: string | undefined;\n\n for (const child of relsEl.elements ?? []) {\n if (child.name !== \"Relationship\") continue;\n const type = attr(child, \"Type\") ?? \"\";\n const target = attr(child, \"Target\") ?? \"\";\n if (!target) continue;\n\n const path = target.startsWith(\"/\") ? target.slice(1) : target;\n\n if (type.includes(\"/core-properties\")) {\n coreProps = path;\n } else if (type.includes(\"/extended-properties\")) {\n appProps = path;\n } else if (type.includes(\"/custom-properties\")) {\n customProps = path;\n }\n }\n\n return { coreProps, appProps, customProps };\n}\n\nfunction parseSlideRels(doc: ParsedArchive, slidePaths: string[], refs: PptxPartRefs): void {\n const commentsSet = new Set(refs.comments);\n const chartsSet = new Set(refs.charts);\n const diagramDataSet = new Set(refs.diagramData);\n const mediaSet = new Set(refs.media);\n\n for (const slidePath of slidePaths) {\n const parts = slidePath.split(\"/\");\n const fileName = parts.pop()!;\n const relsPath = `${parts.join(\"/\")}/_rels/${fileName}.rels`;\n\n const relsEl = doc.get(relsPath);\n if (!relsEl) continue;\n\n for (const child of relsEl.elements ?? []) {\n if (child.name !== \"Relationship\") continue;\n const type = attr(child, \"Type\") ?? \"\";\n const target = attr(child, \"Target\") ?? \"\";\n if (!target) continue;\n\n const path = resolveRelsPath(target);\n\n if (type.includes(\"/comments\") && !type.includes(\"commentAuthors\")) {\n commentsSet.add(path);\n } else if (type.includes(\"/chart\")) {\n chartsSet.add(path);\n } else if (type.includes(\"/diagramData\")) {\n diagramDataSet.add(path);\n } else if (type.includes(\"/image\") || type.includes(\"/video\") || type.includes(\"/media\")) {\n mediaSet.add(path);\n }\n }\n }\n\n refs.comments = [...commentsSet];\n refs.charts = [...chartsSet];\n refs.diagramData = [...diagramDataSet];\n refs.media = [...mediaSet];\n}\n\nexport function parsePptx(data: DataType): PptxDocument {\n const uint8 = toUint8Array(data);\n const doc = parseArchive(uint8);\n\n const presentation = doc.get(\"ppt/presentation.xml\");\n\n const relsXml = doc.get(\"ppt/_rels/presentation.xml.rels\");\n const slides: string[] = [];\n const slideMasters: string[] = [];\n const themes: string[] = [];\n const notesMasters: string[] = [];\n let presProps: string | undefined;\n let viewProps: string | undefined;\n let tableStyles: string | undefined;\n let commentAuthors: string | undefined;\n\n if (relsXml) {\n for (const child of relsXml.elements ?? []) {\n if (child.name !== \"Relationship\") continue;\n const type = attr(child, \"Type\") ?? \"\";\n const target = attr(child, \"Target\") ?? \"\";\n if (!target) continue;\n\n const path = resolveRelsPath(target);\n\n if (type.includes(\"/slideMaster\")) {\n slideMasters.push(path);\n } else if (\n type.includes(\"/slide\") &&\n !type.includes(\"slideLayout\") &&\n !type.includes(\"slideMaster\")\n ) {\n slides.push(path);\n } else if (type.includes(\"/theme\")) {\n themes.push(path);\n } else if (type.includes(\"/notesMaster\")) {\n notesMasters.push(path);\n } else if (type.includes(\"/presProps\")) {\n presProps = path;\n } else if (type.includes(\"/viewProps\")) {\n viewProps = path;\n } else if (type.includes(\"/tableStyles\")) {\n tableStyles = path;\n } else if (type.includes(\"/commentAuthors\")) {\n commentAuthors = path;\n }\n }\n }\n\n sortByNumber(slides);\n sortByNumber(slideMasters);\n sortByNumber(themes);\n sortByNumber(notesMasters);\n\n const slideLayouts = sortByNumber(xmlKeys(doc.keys(\"ppt/slideLayouts/\")));\n const notesSlides = sortByNumber(xmlKeys(doc.keys(\"ppt/notesSlides/\")));\n\n const partRefs: PptxPartRefs = {\n themes,\n notesMasters,\n commentAuthors,\n comments: [],\n charts: [],\n diagramData: [],\n media: doc.keys(\"ppt/media/\"),\n };\n\n parseSlideRels(doc, slides, partRefs);\n sortByNumber(partRefs.comments);\n sortByNumber(partRefs.charts);\n sortByNumber(partRefs.diagramData);\n\n const { coreProps, appProps, customProps } = parseRootRels(doc);\n\n return {\n doc,\n presentation,\n slides,\n slideMasters,\n slideLayouts,\n notesSlides,\n partRefs,\n presProps,\n viewProps,\n tableStyles,\n coreProps,\n appProps,\n customProps,\n };\n}\n\n/**\n * Parse a single slide's relationship file into a Map<rId, path>.\n */\nfunction parseSlideRelMap(doc: ParsedArchive, slidePath: string): Map<string, string> {\n const rels = new Map<string, string>();\n const parts = slidePath.split(\"/\");\n const fileName = parts.pop()!;\n const relsPath = `${parts.join(\"/\")}/_rels/${fileName}.rels`;\n\n const relsEl = doc.get(relsPath);\n if (!relsEl) return rels;\n\n for (const child of relsEl.elements ?? []) {\n if (child.name !== \"Relationship\") continue;\n const id = attr(child, \"Id\") ?? \"\";\n const target = attr(child, \"Target\") ?? \"\";\n if (!id || !target) continue;\n // External links (hyperlinks) keep their original URL target\n if (attr(child, \"TargetMode\") === \"External\") {\n rels.set(id, target);\n } else {\n rels.set(id, resolveRelsPath(target));\n }\n }\n\n return rels;\n}\n\n/**\n * Build a map from each path to the rel target matching a predicate.\n */\nfunction resolveRelTargets(\n doc: ParsedArchive,\n paths: string[],\n predicate: (target: string) => boolean,\n): Map<string, string> {\n const map = new Map<string, string>();\n for (const path of paths) {\n for (const target of parseSlideRelMap(doc, path).values()) {\n if (predicate(target)) map.set(path, target);\n }\n }\n return map;\n}\n\n/**\n * Parse p14:sectionLst from presentation.xml and map each slide path to its\n * section name. Bridges p14:sldId (by slide id) -> p:sldIdLst (slide id ->\n * rId) -> presentation rels (rId -> path).\n */\nfunction parseSlideSections(\n presentation: Element | undefined,\n doc: ParsedArchive,\n): Map<string, string> {\n const pathToSection = new Map<string, string>();\n if (!presentation) return pathToSection;\n\n const extLst = findChild(presentation, \"p:extLst\");\n if (!extLst) return pathToSection;\n\n let sectionLst: Element | undefined;\n for (const ext of extLst.elements ?? []) {\n if (ext.name !== \"p:ext\") continue;\n if (attr(ext, \"uri\") !== \"{521415D9-36F7-43E2-AB2F-B90AF26B5E84}\") continue;\n sectionLst = findChild(ext, \"p14:sectionLst\");\n if (sectionLst) break;\n }\n if (!sectionLst) return pathToSection;\n\n // slideId -> sectionName\n const sectionBySlideId = new Map<number, string>();\n for (const section of sectionLst.elements ?? []) {\n if (section.name !== \"p14:section\") continue;\n const name = attr(section, \"name\");\n if (!name) continue;\n const sldIdLst = findChild(section, \"p14:sldIdLst\");\n for (const sldId of sldIdLst?.elements ?? []) {\n if (sldId.name !== \"p14:sldId\") continue;\n const id = attrNum(sldId, \"id\");\n if (id !== undefined) sectionBySlideId.set(id, name);\n }\n }\n if (sectionBySlideId.size === 0) return pathToSection;\n\n // slideId -> rId (from p:sldIdLst)\n const sldIdLst = findChild(presentation, \"p:sldIdLst\");\n const rIdBySlideId = new Map<number, string>();\n for (const sldId of sldIdLst?.elements ?? []) {\n if (sldId.name !== \"p:sldId\") continue;\n const id = attrNum(sldId, \"id\");\n const rId = attr(sldId, \"r:id\");\n if (id !== undefined && rId) rIdBySlideId.set(id, rId);\n }\n\n // rId -> path (from presentation.xml.rels)\n const relsEl = doc.get(\"ppt/_rels/presentation.xml.rels\");\n const pathByRId = new Map<string, string>();\n for (const child of relsEl?.elements ?? []) {\n if (child.name !== \"Relationship\") continue;\n const id = attr(child, \"Id\");\n const target = attr(child, \"Target\");\n if (id && target) pathByRId.set(id, resolveRelsPath(target));\n }\n\n for (const [slideId, name] of sectionBySlideId) {\n const rId = rIdBySlideId.get(slideId);\n if (!rId) continue;\n const path = pathByRId.get(rId);\n if (path) pathToSection.set(path, name);\n }\n\n return pathToSection;\n}\n\n/**\n * Parse a .pptx file and convert it into PresentationOptions.\n *\n * This is the main public API for parsing PPTX files.\n * The returned options can be passed directly to `new Presentation(parsed)`\n * to recreate the presentation.\n *\n * @param data - Raw bytes of a .pptx file\n * @returns Parsed presentation options\n */\nexport function parsePresentation(data: DataType): PresentationOptions {\n const pptx = parsePptx(data);\n const opts: Partial<PresentationOptions> = {};\n const sectionBySlidePath = parseSlideSections(pptx.presentation, pptx.doc);\n\n // 1. Parse slide size from p:sldSz\n if (pptx.presentation) {\n const sldSz = findChild(pptx.presentation, \"p:sldSz\");\n if (sldSz) {\n const cx = attrNum(sldSz, \"cx\");\n const cy = attrNum(sldSz, \"cy\");\n if (cx === 12192000 && cy === 6858000) {\n opts.size = \"16:9\";\n } else if (cx === 9144000 && cy === 6858000) {\n opts.size = \"4:3\";\n } else if (cx && cy) {\n opts.size = { width: convertEmuToPixels(cx), height: convertEmuToPixels(cy) };\n }\n }\n }\n\n // 2. Parse core properties\n if (pptx.coreProps) {\n const corePropsEl = pptx.doc.get(pptx.coreProps);\n if (corePropsEl) {\n const cp = parseCorePropsElement(corePropsEl);\n if (cp.title) opts.title = cp.title;\n if (cp.subject) opts.subject = cp.subject;\n if (cp.creator) opts.creator = cp.creator;\n if (cp.keywords) opts.keywords = cp.keywords;\n if (cp.description) opts.description = cp.description;\n if (cp.lastModifiedBy) opts.lastModifiedBy = cp.lastModifiedBy;\n if (cp.revision !== undefined) opts.revision = cp.revision;\n if (cp.lastPrinted) opts.lastPrinted = cp.lastPrinted;\n if (cp.created) opts.created = cp.created;\n if (cp.modified) opts.modified = cp.modified;\n }\n }\n\n // 2b. Parse extended (app) properties\n if (pptx.appProps) {\n const appPropsEl = pptx.doc.get(pptx.appProps);\n if (appPropsEl) {\n const ap = appPropertiesDesc.parse(appPropsEl, {} as ReadContext);\n if (ap && Object.keys(ap).length > 0) opts.appProperties = ap;\n }\n }\n\n // 2c. Parse custom properties\n if (pptx.customProps) {\n const customPropsEl = pptx.doc.get(pptx.customProps);\n if (customPropsEl) {\n const cp = customPropertiesDesc.parse(customPropsEl, {} as ReadContext);\n if (cp.properties?.length) opts.customProperties = cp.properties;\n }\n }\n\n // 3. Parse show options from presProps\n if (pptx.presProps) {\n const presPropsEl = pptx.doc.get(pptx.presProps);\n if (presPropsEl) {\n const presPropsOpts = presPropsDesc.parse(presPropsEl, {} as ReadContext);\n if (presPropsOpts.show) opts.show = presPropsOpts.show;\n }\n }\n\n // 3b. Parse view properties\n if (pptx.viewProps) {\n const viewPropsEl = pptx.doc.get(pptx.viewProps);\n if (viewPropsEl) {\n const viewOpts = viewPropsDesc.parse(viewPropsEl, {} as ReadContext);\n if (viewOpts.lastView || viewOpts.showComments !== undefined || viewOpts.gridSpacing) {\n opts.view = viewOpts;\n }\n }\n }\n\n // 3c. Parse table styles\n if (pptx.tableStyles) {\n const tableStylesEl = pptx.doc.get(pptx.tableStyles);\n if (tableStylesEl) {\n const tableStylesResult = tableStylesDesc.parse(tableStylesEl, {} as ReadContext);\n if (tableStylesResult.opts) opts.tableStyles = tableStylesResult.opts;\n }\n }\n\n // 4. Build relationship maps\n const masterThemePaths = resolveRelTargets(pptx.doc, pptx.slideMasters, (t) =>\n t.includes(\"/theme\"),\n );\n const layoutMasterPaths = resolveRelTargets(pptx.doc, pptx.slideLayouts, (t) =>\n t.includes(\"/slideMaster\"),\n );\n const slideLayoutPaths = resolveRelTargets(pptx.doc, pptx.slides, (t) =>\n t.includes(\"/slideLayout\"),\n );\n\n // 5. Parse masters\n const masterCount = pptx.slideMasters.length;\n const masterDefs: MasterDefinition[] = [];\n const masterReadCtx = new PptxReadContext(new ParseContext(pptx, new Map()));\n for (let mi = 0; mi < masterCount; mi++) {\n const masterPath = pptx.slideMasters[mi];\n const masterEl = pptx.doc.get(masterPath);\n if (!masterEl) continue;\n\n // Theme\n const themePath = masterThemePaths.get(masterPath);\n const themeEl = themePath ? pptx.doc.get(themePath) : undefined;\n const themeOptions = themeEl ? themeDesc.parse(themeEl, masterReadCtx) : undefined;\n\n // Background (inline: findChild → backgroundDesc.parse)\n const cSld = findChild(masterEl, \"p:cSld\");\n const bg = cSld ? findChild(cSld, \"p:bg\") : undefined;\n const masterBackground = bg ? backgroundDesc.parse(bg, masterReadCtx) : undefined;\n const hasBackground = masterBackground && Object.keys(masterBackground).length > 0;\n\n // Children: extract non-placeholder shapes from spTree\n const spTree = cSld ? findChild(cSld, \"p:spTree\") : undefined;\n const masterChildren: SlideChild[] = [];\n if (spTree) {\n for (const child of spTree.elements ?? []) {\n // Skip nvGrpSpPr/grpSpPr (tree container structure, not shapes)\n if (child.name === \"p:nvGrpSpPr\" || child.name === \"p:grpSpPr\") continue;\n // Skip placeholder shapes (generated by DefaultSlideMaster template)\n if (child.name === \"p:sp\") {\n const nvSpPr = findChild(child, \"p:nvSpPr\");\n const nvPr = nvSpPr ? findChild(nvSpPr, \"p:nvPr\") : undefined;\n if (nvPr && findChild(nvPr, \"p:ph\")) continue;\n }\n const parsed = parseChild(child, masterReadCtx);\n if (parsed !== undefined) masterChildren.push(parsed);\n }\n }\n\n // Layouts belonging to this master\n const masterLayouts: LayoutDefinition[] = [];\n for (const layoutPath of pptx.slideLayouts) {\n if (layoutMasterPaths.get(layoutPath) !== masterPath) continue;\n const layoutEl = pptx.doc.get(layoutPath);\n if (layoutEl) {\n const layoutOpts = slideLayoutDesc.parse(layoutEl, masterReadCtx);\n const layoutDef: LayoutDefinition = {\n type: (layoutOpts.type ?? \"blank\") as SlideLayoutType,\n };\n if (layoutOpts.placeholders) layoutDef.placeholders = layoutOpts.placeholders;\n masterLayouts.push(layoutDef);\n }\n }\n\n const masterName = themeOptions?.name ?? `master${mi + 1}`;\n const masterDef: Partial<MasterDefinition> = {};\n masterDef.name = masterName;\n if (themeOptions) masterDef.theme = themeOptions;\n if (hasBackground) masterDef.background = masterBackground;\n // MasterChild (shared) declares only { shape }; parse yields the full\n // SlideChild union (parts-layer). The shared/parts split prevents unifying\n // them (SlideChild cannot move to shared — circular dep), so the cast stays\n // local to this known impedance.\n if (masterChildren.length > 0) masterDef.children = masterChildren as unknown as MasterChild[];\n if (masterLayouts.length > 0) masterDef.layouts = masterLayouts;\n masterDefs.push(masterDef as MasterDefinition);\n }\n\n // Only set masters if there's more than one (single master is auto-created)\n if (masterCount > 1) {\n opts.masters = masterDefs;\n }\n\n // 5b. Parse notes masters\n for (const nmPath of pptx.partRefs.notesMasters) {\n const nmEl = pptx.doc.get(nmPath);\n if (nmEl) {\n const nmOpts = notesMasterDesc.parse(nmEl, masterReadCtx);\n if (nmOpts.options) {\n opts.includeNotesMaster = true;\n opts.notesMasterOptions = nmOpts.options;\n }\n }\n }\n\n // 5c. Parse handout masters (no separate handling needed, just mark inclusion)\n // Handout masters are referenced from presentation.xml rels but not stored in PptxDocument currently\n\n // 6. Parse comment authors\n const commentAuthors = new Map<number, { name: string; initials: string }>();\n if (pptx.partRefs.commentAuthors) {\n const authorsEl = pptx.doc.get(pptx.partRefs.commentAuthors);\n if (authorsEl) {\n const authors = commentAuthorsDesc.parse(authorsEl, masterReadCtx);\n for (const a of authors) {\n commentAuthors.set(a.id, { name: a.name, initials: a.initials });\n }\n }\n }\n\n // 7. Parse slides with layout and master references\n const result: SlideOptions[] = [];\n for (let si = 0; si < pptx.slides.length; si++) {\n const slidePath = pptx.slides[si];\n const slideEl = pptx.doc.get(slidePath);\n if (!slideEl) continue;\n\n const slideRels = parseSlideRelMap(pptx.doc, slidePath);\n const ctx = new ParseContext(pptx, slideRels);\n const readCtx = new PptxReadContext(ctx);\n // slideDesc.parse returns SlideDescriptorOptions (internal descriptor type:\n // 4-variant SlideChild, no layout/master/comments/notes/section). We enrich\n // it with those public-API fields below and coerce to SlideOptions at push.\n // Record bridges this descriptor/public impedance — slide.ts itself is a\n // known stringify≠parse split, so the wrapper stays until that is resolved.\n const slideOpts = slideDesc.parse(slideEl, readCtx) as Record<string, unknown>;\n\n // Resolve layout → master\n const layoutPath = slideLayoutPaths.get(slidePath);\n if (layoutPath) {\n const layoutEl = pptx.doc.get(layoutPath);\n if (layoutEl) {\n const layoutOpts = slideLayoutDesc.parse(layoutEl, readCtx);\n slideOpts.layout = (layoutOpts.type ?? \"blank\") as SlideLayoutType;\n }\n\n const resolvedMasterPath = layoutMasterPaths.get(layoutPath);\n if (resolvedMasterPath) {\n const masterIdx = pptx.slideMasters.indexOf(resolvedMasterPath);\n if (masterIdx >= 0 && masterDefs[masterIdx]) {\n slideOpts.master = masterDefs[masterIdx].name;\n }\n }\n }\n\n // Comments via slide rels\n for (const [, relPath] of slideRels) {\n if (!relPath.includes(\"/comments/\")) continue;\n const commentsEl = pptx.doc.get(relPath);\n if (!commentsEl) continue;\n\n const parsedComments = slideCommentsDesc.parse(commentsEl, readCtx);\n if (parsedComments.length > 0) {\n const comments: Partial<SlideCommentOptions>[] = [];\n for (const cm of parsedComments) {\n const entry: Partial<SlideCommentOptions> = { x: cm.x, y: cm.y };\n if (cm.text) entry.text = cm.text;\n if (cm.date) entry.date = cm.date;\n if (cm.modified !== undefined) entry.modified = cm.modified;\n const author = commentAuthors.get(cm.authorId);\n if (author) {\n entry.author = author.name;\n if (author.initials) entry.initials = author.initials;\n }\n comments.push(entry);\n }\n if (comments.length > 0) slideOpts.comments = comments as SlideCommentOptions[];\n }\n break;\n }\n\n // Notes slide via slide rels\n for (const [, relPath] of slideRels) {\n if (!relPath.includes(\"/notesSlides/\")) continue;\n const notesEl = pptx.doc.get(relPath);\n if (!notesEl) continue;\n const notesData = notesSlideDesc.parse(notesEl, readCtx);\n if (notesData.text) slideOpts.notes = notesData.text;\n break;\n }\n\n // Section (p14:sectionLst) — bridged via slide id -> rId -> path\n const sectionName = sectionBySlidePath.get(slidePath);\n if (sectionName) slideOpts.section = sectionName;\n\n result.push(slideOpts as SlideOptions);\n }\n\n opts.slides = result;\n return opts as PresentationOptions;\n}\n"],"mappings":";;;;;AAyFA,MAAa,YAAsD;CACjE,MAAM;CAEN,UAAU,MAAM,KAAK;EACnB,MAAM,QAAkB,CAAC;EAGzB,MAAM,WAAqB,CAAC;EAC5B,IAAI,KAAK,iBAAiB,OAAO,SAAS,KAAK,qBAAmB;EAClE,IAAI,KAAK,qBAAqB,OAAO,SAAS,KAAK,yBAAuB;EAC1E,IAAI,KAAK,QAAQ,SAAS,KAAK,aAAW;EAC1C,MAAM,KACJ,4NAA4N,SAAS,KAAK,EAAE,EAAE,EAChP;EAGA,MAAM,KAAK,UAAU;EAErB,IAAI,KAAK,YACP,MAAM,KAAK,oBAAoB,KAAK,UAAU,CAAC;EAIjD,MAAM,KAAK,YAAY;EACvB,MAAM,KAAK,cAAc;EAEzB,IAAI,KAAK,UACP,KAAK,MAAM,SAAS,KAAK,UAAU;GACjC,MAAM,MAAM,oBAAoB,OAAO,GAAG;GAC1C,IAAI,KAAK,MAAM,KAAK,GAAG;EACzB;EAGF,MAAM,KAAK,aAAa;EAGxB,IAAI,KAAK,gBAAgB,KAAK,aAAa,SAAS,GAAG;GACrD,MAAM,UAAU,KAAK,aAAa,KAAK,MAAM,qBAAqB,EAAE,IAAI,IAAI,EAAE,KAAK,EAAE;GACrF,MAAM,KAAK,kBAAkB,QAAQ,iBAAiB;EACxD;EAGA,IAAI,KAAK,YAAY,KAAK,SAAS,SAAS,GAAG;GAC7C,MAAM,YAAY,KAAK,SACpB,KAAK,MAAM;IACV,MAAM,QAAkB,CAAC;IACzB,IAAI,EAAE,YAAY,KAAA,GAAW,MAAM,KAAK,SAAS,EAAE,QAAQ,EAAE;IAC7D,IAAI,EAAE,MAAM,MAAM,KAAK,SAAS,EAAE,KAAK,EAAE;IACzC,IAAI,EAAE,YAAY,MAAM,KAAK,kBAAgB;IAC7C,IAAI,EAAE,KAAK,MAAM,KAAK,SAAS,EAAE,IAAI,EAAE;IACvC,IAAI,EAAE,eAAe,KAAA,GAAW,MAAM,KAAK,SAAS,EAAE,WAAW,EAAE;IACnE,IAAI,EAAE,gBAAgB,KAAA,GAAW,MAAM,KAAK,SAAS,EAAE,YAAY,EAAE;IACrE,OAAO,cAAc,MAAM,KAAK,GAAG,EAAE;GACvC,CAAC,EACA,KAAK,EAAE;GACV,MAAM,KAAK,eAAe,UAAU,cAAc;EACpD;EAGA,IAAI,KAAK,cAAc;GACrB,MAAM,KAAK,KAAK;GAChB,MAAM,aAAuB,CAAC;GAC9B,IAAI,GAAG,aAAa,WAAW,KAAK,aAAa;GACjD,IAAI,GAAG,UAAU,WAAW,KAAK,SAAS;GAC1C,IAAI,GAAG,QAAQ,WAAW,KAAK,UAAU;GACzC,IAAI,GAAG,QAAQ,WAAW,KAAK,UAAU;GACzC,IAAI,WAAW,SAAS,GAAG,MAAM,KAAK,SAAS,WAAW,KAAK,EAAE,EAAE,QAAQ;EAC7E;EAEA,MAAM,KAAK,WAAW;EAGtB,MAAM,KAAK,kDAAkD;EAG7D,IAAI,KAAK,YACP,MAAM,KAAK,oBAAoB,KAAK,UAAU,CAAC;EAGjD,MAAM,KAAK,UAAU;EACrB,OAAO,MAAM,KAAK,EAAE;CACtB;CAEA,MAAM,IAAI,MAAM;EACd,MAAM,SAAkC,CAAC;EAGzC,IAAI,GAAG,YAAY;GACjB,IAAI,GAAG,WAAW,oBAAoB,KAAA,GACpC,OAAO,eAAe,GAAG,WAAW,oBAAoB;GAC1D,IAAI,GAAG,WAAW,wBAAwB,KAAA,GACxC,OAAO,mBAAmB,GAAG,WAAW,wBAAwB;GAClE,IAAI,GAAG,WAAW,YAAY,KAAK,OAAO,SAAS;EACrD;EAGA,MAAM,OAAO,UAAU,IAAI,QAAQ;EACnC,IAAI,MAAM;GAER,MAAM,KAAK,UAAU,MAAM,MAAM;GACjC,IAAI,IAAI,OAAO,aAAa,eAAe,EAAE;GAG7C,MAAM,SAAS,UAAU,MAAM,UAAU;GACzC,IAAI,QAAQ;IACV,MAAM,WAA+B,CAAC;IACtC,IAAI,OAAO,UACT,KAAK,MAAM,SAAS,OAAO,UAAU;KAEnC,IAAI,MAAM,SAAS,iBAAiB,MAAM,SAAS,aAAa;KAChE,MAAM,SAAS,WAAW,OAAO,IAAI;KACrC,IAAI,WAAW,KAAA,GAAW,SAAS,KAAK,MAAM;IAChD;IAEF,IAAI,SAAS,SAAS,GAAG,OAAO,WAAW;GAC7C;GAGA,MAAM,KAAK,UAAU,MAAM,MAAM;GACjC,IAAI,IAAI;IACN,MAAM,SAAwC,CAAC;IAC/C,IAAI,UAAU,IAAI,UAAU,GAAG,OAAO,cAAc;IACpD,IAAI,UAAU,IAAI,MAAM,GAAG,OAAO,WAAW;IAC7C,IAAI,UAAU,IAAI,OAAO,GAAG,OAAO,SAAS;IAC5C,IAAI,UAAU,IAAI,OAAO,GAAG,OAAO,SAAS;IAC5C,IAAI,OAAO,eAAe,OAAO,YAAY,OAAO,UAAU,OAAO,QACnE,OAAO,eAAe;GAC1B;EACF;EAGA,MAAM,aAAa,UAAU,IAAI,cAAc;EAC/C,IAAI,YAAY,OAAO,aAAa,eAAe,UAAU;EAG7D,MAAM,SAAS,UAAU,IAAI,UAAU;EACvC,IAAI,QAAQ;GACV,MAAM,aAAa,WAAW,MAAM,QAAQ,IAAI;GAChD,IAAI,WAAW,WAAW,WAAW,QAAQ,SAAS,GAAG;IACvD,MAAM,aAA2C,CAAC;IAClD,KAAK,MAAM,SAAS,WAAW,SAC7B,WAAW,KAAK;KAAE,SAAS,MAAM;KAAM,SAAS,MAAM;IAAQ,CAAC;IAEjE,OAAO,aAAa;GACtB;EACF;EAGA,MAAM,cAAc,UAAU,IAAI,eAAe;EACjD,IAAI,aAAa;GACf,MAAM,QAA2B,CAAC;GAClC,KAAK,MAAM,MAAM,YAAY,YAAY,CAAC,GACxC,IAAI,GAAG,SAAS,cAAc;IAC5B,MAAM,MAAM,KAAK,IAAI,MAAM;IAC3B,IAAI,KAAK,MAAM,KAAK,EAAE,IAAI,CAAC;GAC7B;GAEF,IAAI,MAAM,SAAS,GAAG,OAAO,eAAe;EAC9C;EAGA,MAAM,WAAW,UAAU,IAAI,YAAY;EAC3C,IAAI,UAAU;GACZ,MAAM,QAAoC,CAAC;GAC3C,KAAK,MAAM,QAAQ,SAAS,YAAY,CAAC,GAAG;IAC1C,IAAI,KAAK,SAAS,aAAa;IAC/B,MAAM,OAAiC,CAAC;IACxC,MAAM,OAAO,QAAQ,MAAM,MAAM;IACjC,IAAI,SAAS,KAAA,GAAW,KAAK,UAAU;IACvC,MAAM,OAAO,KAAK,MAAM,MAAM;IAC9B,IAAI,MAAM,KAAK,OAAO;IACtB,IAAI,KAAK,MAAM,YAAY,MAAM,KAAK,KAAK,aAAa;IACxD,MAAM,MAAM,KAAK,MAAM,MAAM;IAC7B,IAAI,KAAK,KAAK,MAAM;IACpB,MAAM,OAAO,QAAQ,MAAM,MAAM;IACjC,IAAI,SAAS,KAAA,GAAW,KAAK,aAAa;IAC1C,MAAM,OAAO,QAAQ,MAAM,MAAM;IACjC,IAAI,SAAS,KAAA,GAAW,KAAK,cAAc;IAC3C,MAAM,KAAK,IAAI;GACjB;GACA,IAAI,MAAM,SAAS,GAAG,OAAO,WAAW;EAC1C;EAEA,OAAO;CACT;AACF;AAIA,SAAS,oBAAoB,OAAmB,KAAuC;CACrF,IAAI,WAAW,OAAO,OAAO,UAAU,UAAU,MAAM,OAAO,GAAG;CACjE,IAAI,aAAa,OAAO,OAAO,YAAY,UAAU,MAAM,SAAS,GAAG;CACvE,IAAI,iBAAiB,OAAO,OAAO,wBAAwB,MAAM,YAAY,IAAI;AAEnF;AAIA,SAAS,oBAAoB,MAA2C;CACtE,IAAI,KAAK,OAKP,OAAO,gBAHL,KAAK,iBAAiB,KAAA,IAClB,oBAAoB,KAAK,MAAM,QAAQ,KAAK,EAAE,EAAE,kBAAkB,KAAK,OAAO,MAAM,KAAK,gBAAgB,GAAI,EAAE,2BAC/G,iCAAiC,KAAK,MAAM,QAAQ,KAAK,EAAE,EAAE,2BAClC;CAEnC,OAAO;AACT;AAEA,SAAS,eAAe,IAA6C;CACnE,MAAM,SAAsC,CAAC;CAC7C,MAAM,OAAO,UAAU,IAAI,QAAQ;CACnC,IAAI,MAAM;EACR,MAAM,YAAY,UAAU,MAAM,aAAa;EAC/C,IAAI,WAAW;GACb,MAAM,UAAU,UAAU,WAAW,WAAW;GAChD,IAAI,SAAS,aAAa,QAAQ;IAChC,OAAO,QAAQ,OAAO,QAAQ,WAAW,MAAM;IAC/C,MAAM,QAAQ,UAAU,SAAS,SAAS;IAC1C,IAAI,OAAO,aAAa,QACtB,OAAO,eAAe,MAAM,OAAO,MAAM,WAAW,MAAM,IAAI;GAElE;EACF;CACF;CACA,OAAO;AACT;AAIA,SAAS,oBAAoB,MAA2C;CACtE,MAAM,QAAkB,CAAC;CAEzB,IAAI,KAAK,SAAS,QAAQ,OAAO;CACjC,IAAI,KAAK,SAAS,QAAQ,MAAM,KAAK,WAAW;MAC3C,IAAI,KAAK,SAAS,QAAQ,MAAM,KAAK,qBAAmB;MACxD,IAAI,KAAK,SAAS,QAAQ,MAAM,KAAK,qBAAmB;MACxD,IAAI,KAAK,SAAS,SAAS,MAAM,KAAK,4BAA0B;MAChE,IAAI,KAAK,SAAS,SAAS,MAAM,KAAK,sBAAoB;MAC1D,IAAI,KAAK,SAAS,QAAQ,MAAM,KAAK,qBAAmB;MACxD,IAAI,KAAK,SAAS,YAAY,MAAM,KAAK,eAAe;MACxD,IAAI,KAAK,SAAS,SAAS,MAAM,KAAK,yBAAuB;MAC7D,IAAI,KAAK,SAAS,UAAU,MAAM,KAAK,aAAa;CAEzD,MAAM,QAAkB,CAAC;CACzB,IAAI,KAAK,OAAO,MAAM,KAAK,QAAQ,KAAK,MAAM,EAAE;CAChD,IAAI,KAAK,mBAAmB,KAAA,GAAW,MAAM,KAAK,aAAa,KAAK,iBAAiB,IAAI,EAAE,EAAE;CAC7F,IAAI,KAAK,mBAAmB,KAAA,GAAW,MAAM,KAAK,UAAU,KAAK,eAAe,EAAE;CAElF,MAAM,UAAU,MAAM,SAAS,MAAM,MAAM,KAAK,GAAG,IAAI;CACvD,MAAM,OAAO,MAAM,KAAK,EAAE;CAC1B,OAAO,OAAO,gBAAgB,QAAQ,GAAG,KAAK,mBAAmB,gBAAgB,QAAQ;AAC3F;AAEA,SAAS,eAAe,IAA6C;CACnE,MAAM,SAAsC,CAAC;CAE7C,IAAI,GAAG,YAAY;EACjB,IAAI,GAAG,WAAW,WAAW,KAAA,GAC3B,OAAO,QAAQ,GAAG,WAAW;EAC/B,IAAI,GAAG,WAAW,gBAAgB,KAAA,GAChC,OAAO,iBAAiB,GAAG,WAAW,gBAAgB;EACxD,IAAI,GAAG,WAAW,aAAa,KAAA,GAC7B,OAAO,iBAAiB,OAAO,GAAG,WAAW,QAAQ;CACzD;CAGA,IAAI,UAAU,IAAI,QAAQ,GAAG,OAAO,OAAO;MACtC,IAAI,UAAU,IAAI,QAAQ,GAAG,OAAO,OAAO;MAC3C,IAAI,UAAU,IAAI,QAAQ,GAAG,OAAO,OAAO;MAC3C,IAAI,UAAU,IAAI,SAAS,GAAG,OAAO,OAAO;MAC5C,IAAI,UAAU,IAAI,SAAS,GAAG,OAAO,OAAO;MAC5C,IAAI,UAAU,IAAI,QAAQ,GAAG,OAAO,OAAO;MAC3C,IAAI,UAAU,IAAI,YAAY,GAAG,OAAO,OAAO;MAC/C,IAAI,UAAU,IAAI,SAAS,GAAG,OAAO,OAAO;MAC5C,IAAI,UAAU,IAAI,UAAU,GAAG,OAAO,OAAO;CAElD,OAAO;AACT;;;ACvRA,SAAS,gBAAgB,QAAwB;CAC/C,IAAI,OAAO,WAAW,GAAG,GAAG,OAAO,OAAO,MAAM,CAAC;CACjD,IAAI,OAAO,WAAW,KAAK,GAAG,OAAO,OAAO,QAAQ,OAAO,MAAM;CACjE,OAAO,OAAO;AAChB;AAEA,SAAS,aAAa,OAA2B;CAC/C,OAAO,MAAM,MAAM,GAAG,MAAM;EAG1B,OAFa,SAAS,EAAE,MAAM,OAAO,IAAI,MAAM,KAAK,EAE1C,IADG,SAAS,EAAE,MAAM,OAAO,IAAI,MAAM,KAAK,EACnC;CACnB,CAAC;AACH;AAEA,SAAS,QAAQ,MAA0B;CACzC,OAAO,KAAK,QAAQ,MAAM,EAAE,SAAS,MAAM,CAAC;AAC9C;AAEA,SAAS,cAAc,KAIrB;CACA,MAAM,SAAS,IAAI,IAAI,aAAa;CACpC,IAAI,CAAC,QAAQ,OAAO,CAAC;CAErB,IAAI;CACJ,IAAI;CACJ,IAAI;CAEJ,KAAK,MAAM,SAAS,OAAO,YAAY,CAAC,GAAG;EACzC,IAAI,MAAM,SAAS,gBAAgB;EACnC,MAAM,OAAO,KAAK,OAAO,MAAM,KAAK;EACpC,MAAM,SAAS,KAAK,OAAO,QAAQ,KAAK;EACxC,IAAI,CAAC,QAAQ;EAEb,MAAM,OAAO,OAAO,WAAW,GAAG,IAAI,OAAO,MAAM,CAAC,IAAI;EAExD,IAAI,KAAK,SAAS,kBAAkB,GAClC,YAAY;OACP,IAAI,KAAK,SAAS,sBAAsB,GAC7C,WAAW;OACN,IAAI,KAAK,SAAS,oBAAoB,GAC3C,cAAc;CAElB;CAEA,OAAO;EAAE;EAAW;EAAU;CAAY;AAC5C;AAEA,SAAS,eAAe,KAAoB,YAAsB,MAA0B;CAC1F,MAAM,cAAc,IAAI,IAAI,KAAK,QAAQ;CACzC,MAAM,YAAY,IAAI,IAAI,KAAK,MAAM;CACrC,MAAM,iBAAiB,IAAI,IAAI,KAAK,WAAW;CAC/C,MAAM,WAAW,IAAI,IAAI,KAAK,KAAK;CAEnC,KAAK,MAAM,aAAa,YAAY;EAClC,MAAM,QAAQ,UAAU,MAAM,GAAG;EACjC,MAAM,WAAW,MAAM,IAAI;EAC3B,MAAM,WAAW,GAAG,MAAM,KAAK,GAAG,EAAE,SAAS,SAAS;EAEtD,MAAM,SAAS,IAAI,IAAI,QAAQ;EAC/B,IAAI,CAAC,QAAQ;EAEb,KAAK,MAAM,SAAS,OAAO,YAAY,CAAC,GAAG;GACzC,IAAI,MAAM,SAAS,gBAAgB;GACnC,MAAM,OAAO,KAAK,OAAO,MAAM,KAAK;GACpC,MAAM,SAAS,KAAK,OAAO,QAAQ,KAAK;GACxC,IAAI,CAAC,QAAQ;GAEb,MAAM,OAAO,gBAAgB,MAAM;GAEnC,IAAI,KAAK,SAAS,WAAW,KAAK,CAAC,KAAK,SAAS,gBAAgB,GAC/D,YAAY,IAAI,IAAI;QACf,IAAI,KAAK,SAAS,QAAQ,GAC/B,UAAU,IAAI,IAAI;QACb,IAAI,KAAK,SAAS,cAAc,GACrC,eAAe,IAAI,IAAI;QAClB,IAAI,KAAK,SAAS,QAAQ,KAAK,KAAK,SAAS,QAAQ,KAAK,KAAK,SAAS,QAAQ,GACrF,SAAS,IAAI,IAAI;EAErB;CACF;CAEA,KAAK,WAAW,CAAC,GAAG,WAAW;CAC/B,KAAK,SAAS,CAAC,GAAG,SAAS;CAC3B,KAAK,cAAc,CAAC,GAAG,cAAc;CACrC,KAAK,QAAQ,CAAC,GAAG,QAAQ;AAC3B;AAEA,SAAgB,UAAU,MAA8B;CAEtD,MAAM,MAAM,aADE,aAAa,IACE,CAAC;CAE9B,MAAM,eAAe,IAAI,IAAI,sBAAsB;CAEnD,MAAM,UAAU,IAAI,IAAI,iCAAiC;CACzD,MAAM,SAAmB,CAAC;CAC1B,MAAM,eAAyB,CAAC;CAChC,MAAM,SAAmB,CAAC;CAC1B,MAAM,eAAyB,CAAC;CAChC,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CAEJ,IAAI,SACF,KAAK,MAAM,SAAS,QAAQ,YAAY,CAAC,GAAG;EAC1C,IAAI,MAAM,SAAS,gBAAgB;EACnC,MAAM,OAAO,KAAK,OAAO,MAAM,KAAK;EACpC,MAAM,SAAS,KAAK,OAAO,QAAQ,KAAK;EACxC,IAAI,CAAC,QAAQ;EAEb,MAAM,OAAO,gBAAgB,MAAM;EAEnC,IAAI,KAAK,SAAS,cAAc,GAC9B,aAAa,KAAK,IAAI;OACjB,IACL,KAAK,SAAS,QAAQ,KACtB,CAAC,KAAK,SAAS,aAAa,KAC5B,CAAC,KAAK,SAAS,aAAa,GAE5B,OAAO,KAAK,IAAI;OACX,IAAI,KAAK,SAAS,QAAQ,GAC/B,OAAO,KAAK,IAAI;OACX,IAAI,KAAK,SAAS,cAAc,GACrC,aAAa,KAAK,IAAI;OACjB,IAAI,KAAK,SAAS,YAAY,GACnC,YAAY;OACP,IAAI,KAAK,SAAS,YAAY,GACnC,YAAY;OACP,IAAI,KAAK,SAAS,cAAc,GACrC,cAAc;OACT,IAAI,KAAK,SAAS,iBAAiB,GACxC,iBAAiB;CAErB;CAGF,aAAa,MAAM;CACnB,aAAa,YAAY;CACzB,aAAa,MAAM;CACnB,aAAa,YAAY;CAEzB,MAAM,eAAe,aAAa,QAAQ,IAAI,KAAK,mBAAmB,CAAC,CAAC;CACxE,MAAM,cAAc,aAAa,QAAQ,IAAI,KAAK,kBAAkB,CAAC,CAAC;CAEtE,MAAM,WAAyB;EAC7B;EACA;EACA;EACA,UAAU,CAAC;EACX,QAAQ,CAAC;EACT,aAAa,CAAC;EACd,OAAO,IAAI,KAAK,YAAY;CAC9B;CAEA,eAAe,KAAK,QAAQ,QAAQ;CACpC,aAAa,SAAS,QAAQ;CAC9B,aAAa,SAAS,MAAM;CAC5B,aAAa,SAAS,WAAW;CAEjC,MAAM,EAAE,WAAW,UAAU,gBAAgB,cAAc,GAAG;CAE9D,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF;;;;AAKA,SAAS,iBAAiB,KAAoB,WAAwC;CACpF,MAAM,uBAAO,IAAI,IAAoB;CACrC,MAAM,QAAQ,UAAU,MAAM,GAAG;CACjC,MAAM,WAAW,MAAM,IAAI;CAC3B,MAAM,WAAW,GAAG,MAAM,KAAK,GAAG,EAAE,SAAS,SAAS;CAEtD,MAAM,SAAS,IAAI,IAAI,QAAQ;CAC/B,IAAI,CAAC,QAAQ,OAAO;CAEpB,KAAK,MAAM,SAAS,OAAO,YAAY,CAAC,GAAG;EACzC,IAAI,MAAM,SAAS,gBAAgB;EACnC,MAAM,KAAK,KAAK,OAAO,IAAI,KAAK;EAChC,MAAM,SAAS,KAAK,OAAO,QAAQ,KAAK;EACxC,IAAI,CAAC,MAAM,CAAC,QAAQ;EAEpB,IAAI,KAAK,OAAO,YAAY,MAAM,YAChC,KAAK,IAAI,IAAI,MAAM;OAEnB,KAAK,IAAI,IAAI,gBAAgB,MAAM,CAAC;CAExC;CAEA,OAAO;AACT;;;;AAKA,SAAS,kBACP,KACA,OACA,WACqB;CACrB,MAAM,sBAAM,IAAI,IAAoB;CACpC,KAAK,MAAM,QAAQ,OACjB,KAAK,MAAM,UAAU,iBAAiB,KAAK,IAAI,EAAE,OAAO,GACtD,IAAI,UAAU,MAAM,GAAG,IAAI,IAAI,MAAM,MAAM;CAG/C,OAAO;AACT;;;;;;AAOA,SAAS,mBACP,cACA,KACqB;CACrB,MAAM,gCAAgB,IAAI,IAAoB;CAC9C,IAAI,CAAC,cAAc,OAAO;CAE1B,MAAM,SAAS,UAAU,cAAc,UAAU;CACjD,IAAI,CAAC,QAAQ,OAAO;CAEpB,IAAI;CACJ,KAAK,MAAM,OAAO,OAAO,YAAY,CAAC,GAAG;EACvC,IAAI,IAAI,SAAS,SAAS;EAC1B,IAAI,KAAK,KAAK,KAAK,MAAM,0CAA0C;EACnE,aAAa,UAAU,KAAK,gBAAgB;EAC5C,IAAI,YAAY;CAClB;CACA,IAAI,CAAC,YAAY,OAAO;CAGxB,MAAM,mCAAmB,IAAI,IAAoB;CACjD,KAAK,MAAM,WAAW,WAAW,YAAY,CAAC,GAAG;EAC/C,IAAI,QAAQ,SAAS,eAAe;EACpC,MAAM,OAAO,KAAK,SAAS,MAAM;EACjC,IAAI,CAAC,MAAM;EACX,MAAM,WAAW,UAAU,SAAS,cAAc;EAClD,KAAK,MAAM,SAAS,UAAU,YAAY,CAAC,GAAG;GAC5C,IAAI,MAAM,SAAS,aAAa;GAChC,MAAM,KAAK,QAAQ,OAAO,IAAI;GAC9B,IAAI,OAAO,KAAA,GAAW,iBAAiB,IAAI,IAAI,IAAI;EACrD;CACF;CACA,IAAI,iBAAiB,SAAS,GAAG,OAAO;CAGxC,MAAM,WAAW,UAAU,cAAc,YAAY;CACrD,MAAM,+BAAe,IAAI,IAAoB;CAC7C,KAAK,MAAM,SAAS,UAAU,YAAY,CAAC,GAAG;EAC5C,IAAI,MAAM,SAAS,WAAW;EAC9B,MAAM,KAAK,QAAQ,OAAO,IAAI;EAC9B,MAAM,MAAM,KAAK,OAAO,MAAM;EAC9B,IAAI,OAAO,KAAA,KAAa,KAAK,aAAa,IAAI,IAAI,GAAG;CACvD;CAGA,MAAM,SAAS,IAAI,IAAI,iCAAiC;CACxD,MAAM,4BAAY,IAAI,IAAoB;CAC1C,KAAK,MAAM,SAAS,QAAQ,YAAY,CAAC,GAAG;EAC1C,IAAI,MAAM,SAAS,gBAAgB;EACnC,MAAM,KAAK,KAAK,OAAO,IAAI;EAC3B,MAAM,SAAS,KAAK,OAAO,QAAQ;EACnC,IAAI,MAAM,QAAQ,UAAU,IAAI,IAAI,gBAAgB,MAAM,CAAC;CAC7D;CAEA,KAAK,MAAM,CAAC,SAAS,SAAS,kBAAkB;EAC9C,MAAM,MAAM,aAAa,IAAI,OAAO;EACpC,IAAI,CAAC,KAAK;EACV,MAAM,OAAO,UAAU,IAAI,GAAG;EAC9B,IAAI,MAAM,cAAc,IAAI,MAAM,IAAI;CACxC;CAEA,OAAO;AACT;;;;;;;;;;;AAYA,SAAgB,kBAAkB,MAAqC;CACrE,MAAM,OAAO,UAAU,IAAI;CAC3B,MAAM,OAAqC,CAAC;CAC5C,MAAM,qBAAqB,mBAAmB,KAAK,cAAc,KAAK,GAAG;CAGzE,IAAI,KAAK,cAAc;EACrB,MAAM,QAAQ,UAAU,KAAK,cAAc,SAAS;EACpD,IAAI,OAAO;GACT,MAAM,KAAK,QAAQ,OAAO,IAAI;GAC9B,MAAM,KAAK,QAAQ,OAAO,IAAI;GAC9B,IAAI,OAAO,WAAY,OAAO,QAC5B,KAAK,OAAO;QACP,IAAI,OAAO,UAAW,OAAO,QAClC,KAAK,OAAO;QACP,IAAI,MAAM,IACf,KAAK,OAAO;IAAE,OAAO,mBAAmB,EAAE;IAAG,QAAQ,mBAAmB,EAAE;GAAE;EAEhF;CACF;CAGA,IAAI,KAAK,WAAW;EAClB,MAAM,cAAc,KAAK,IAAI,IAAI,KAAK,SAAS;EAC/C,IAAI,aAAa;GACf,MAAM,KAAK,sBAAsB,WAAW;GAC5C,IAAI,GAAG,OAAO,KAAK,QAAQ,GAAG;GAC9B,IAAI,GAAG,SAAS,KAAK,UAAU,GAAG;GAClC,IAAI,GAAG,SAAS,KAAK,UAAU,GAAG;GAClC,IAAI,GAAG,UAAU,KAAK,WAAW,GAAG;GACpC,IAAI,GAAG,aAAa,KAAK,cAAc,GAAG;GAC1C,IAAI,GAAG,gBAAgB,KAAK,iBAAiB,GAAG;GAChD,IAAI,GAAG,aAAa,KAAA,GAAW,KAAK,WAAW,GAAG;GAClD,IAAI,GAAG,aAAa,KAAK,cAAc,GAAG;GAC1C,IAAI,GAAG,SAAS,KAAK,UAAU,GAAG;GAClC,IAAI,GAAG,UAAU,KAAK,WAAW,GAAG;EACtC;CACF;CAGA,IAAI,KAAK,UAAU;EACjB,MAAM,aAAa,KAAK,IAAI,IAAI,KAAK,QAAQ;EAC7C,IAAI,YAAY;GACd,MAAM,KAAK,kBAAkB,MAAM,YAAY,CAAC,CAAgB;GAChE,IAAI,MAAM,OAAO,KAAK,EAAE,EAAE,SAAS,GAAG,KAAK,gBAAgB;EAC7D;CACF;CAGA,IAAI,KAAK,aAAa;EACpB,MAAM,gBAAgB,KAAK,IAAI,IAAI,KAAK,WAAW;EACnD,IAAI,eAAe;GACjB,MAAM,KAAK,qBAAqB,MAAM,eAAe,CAAC,CAAgB;GACtE,IAAI,GAAG,YAAY,QAAQ,KAAK,mBAAmB,GAAG;EACxD;CACF;CAGA,IAAI,KAAK,WAAW;EAClB,MAAM,cAAc,KAAK,IAAI,IAAI,KAAK,SAAS;EAC/C,IAAI,aAAa;GACf,MAAM,gBAAgB,cAAc,MAAM,aAAa,CAAC,CAAgB;GACxE,IAAI,cAAc,MAAM,KAAK,OAAO,cAAc;EACpD;CACF;CAGA,IAAI,KAAK,WAAW;EAClB,MAAM,cAAc,KAAK,IAAI,IAAI,KAAK,SAAS;EAC/C,IAAI,aAAa;GACf,MAAM,WAAW,cAAc,MAAM,aAAa,CAAC,CAAgB;GACnE,IAAI,SAAS,YAAY,SAAS,iBAAiB,KAAA,KAAa,SAAS,aACvE,KAAK,OAAO;EAEhB;CACF;CAGA,IAAI,KAAK,aAAa;EACpB,MAAM,gBAAgB,KAAK,IAAI,IAAI,KAAK,WAAW;EACnD,IAAI,eAAe;GACjB,MAAM,oBAAoB,gBAAgB,MAAM,eAAe,CAAC,CAAgB;GAChF,IAAI,kBAAkB,MAAM,KAAK,cAAc,kBAAkB;EACnE;CACF;CAGA,MAAM,mBAAmB,kBAAkB,KAAK,KAAK,KAAK,eAAe,MACvE,EAAE,SAAS,QAAQ,CACrB;CACA,MAAM,oBAAoB,kBAAkB,KAAK,KAAK,KAAK,eAAe,MACxE,EAAE,SAAS,cAAc,CAC3B;CACA,MAAM,mBAAmB,kBAAkB,KAAK,KAAK,KAAK,SAAS,MACjE,EAAE,SAAS,cAAc,CAC3B;CAGA,MAAM,cAAc,KAAK,aAAa;CACtC,MAAM,aAAiC,CAAC;CACxC,MAAM,gBAAgB,IAAI,gBAAgB,IAAI,aAAa,sBAAM,IAAI,IAAI,CAAC,CAAC;CAC3E,KAAK,IAAI,KAAK,GAAG,KAAK,aAAa,MAAM;EACvC,MAAM,aAAa,KAAK,aAAa;EACrC,MAAM,WAAW,KAAK,IAAI,IAAI,UAAU;EACxC,IAAI,CAAC,UAAU;EAGf,MAAM,YAAY,iBAAiB,IAAI,UAAU;EACjD,MAAM,UAAU,YAAY,KAAK,IAAI,IAAI,SAAS,IAAI,KAAA;EACtD,MAAM,eAAe,UAAU,UAAU,MAAM,SAAS,aAAa,IAAI,KAAA;EAGzE,MAAM,OAAO,UAAU,UAAU,QAAQ;EACzC,MAAM,KAAK,OAAO,UAAU,MAAM,MAAM,IAAI,KAAA;EAC5C,MAAM,mBAAmB,KAAK,eAAe,MAAM,IAAI,aAAa,IAAI,KAAA;EACxE,MAAM,gBAAgB,oBAAoB,OAAO,KAAK,gBAAgB,EAAE,SAAS;EAGjF,MAAM,SAAS,OAAO,UAAU,MAAM,UAAU,IAAI,KAAA;EACpD,MAAM,iBAA+B,CAAC;EACtC,IAAI,QACF,KAAK,MAAM,SAAS,OAAO,YAAY,CAAC,GAAG;GAEzC,IAAI,MAAM,SAAS,iBAAiB,MAAM,SAAS,aAAa;GAEhE,IAAI,MAAM,SAAS,QAAQ;IACzB,MAAM,SAAS,UAAU,OAAO,UAAU;IAC1C,MAAM,OAAO,SAAS,UAAU,QAAQ,QAAQ,IAAI,KAAA;IACpD,IAAI,QAAQ,UAAU,MAAM,MAAM,GAAG;GACvC;GACA,MAAM,SAAS,WAAW,OAAO,aAAa;GAC9C,IAAI,WAAW,KAAA,GAAW,eAAe,KAAK,MAAM;EACtD;EAIF,MAAM,gBAAoC,CAAC;EAC3C,KAAK,MAAM,cAAc,KAAK,cAAc;GAC1C,IAAI,kBAAkB,IAAI,UAAU,MAAM,YAAY;GACtD,MAAM,WAAW,KAAK,IAAI,IAAI,UAAU;GACxC,IAAI,UAAU;IACZ,MAAM,aAAa,gBAAgB,MAAM,UAAU,aAAa;IAChE,MAAM,YAA8B,EAClC,MAAO,WAAW,QAAQ,QAC5B;IACA,IAAI,WAAW,cAAc,UAAU,eAAe,WAAW;IACjE,cAAc,KAAK,SAAS;GAC9B;EACF;EAEA,MAAM,aAAa,cAAc,QAAQ,SAAS,KAAK;EACvD,MAAM,YAAuC,CAAC;EAC9C,UAAU,OAAO;EACjB,IAAI,cAAc,UAAU,QAAQ;EACpC,IAAI,eAAe,UAAU,aAAa;EAK1C,IAAI,eAAe,SAAS,GAAG,UAAU,WAAW;EACpD,IAAI,cAAc,SAAS,GAAG,UAAU,UAAU;EAClD,WAAW,KAAK,SAA6B;CAC/C;CAGA,IAAI,cAAc,GAChB,KAAK,UAAU;CAIjB,KAAK,MAAM,UAAU,KAAK,SAAS,cAAc;EAC/C,MAAM,OAAO,KAAK,IAAI,IAAI,MAAM;EAChC,IAAI,MAAM;GACR,MAAM,SAAS,gBAAgB,MAAM,MAAM,aAAa;GACxD,IAAI,OAAO,SAAS;IAClB,KAAK,qBAAqB;IAC1B,KAAK,qBAAqB,OAAO;GACnC;EACF;CACF;CAMA,MAAM,iCAAiB,IAAI,IAAgD;CAC3E,IAAI,KAAK,SAAS,gBAAgB;EAChC,MAAM,YAAY,KAAK,IAAI,IAAI,KAAK,SAAS,cAAc;EAC3D,IAAI,WAAW;GACb,MAAM,UAAU,mBAAmB,MAAM,WAAW,aAAa;GACjE,KAAK,MAAM,KAAK,SACd,eAAe,IAAI,EAAE,IAAI;IAAE,MAAM,EAAE;IAAM,UAAU,EAAE;GAAS,CAAC;EAEnE;CACF;CAGA,MAAM,SAAyB,CAAC;CAChC,KAAK,IAAI,KAAK,GAAG,KAAK,KAAK,OAAO,QAAQ,MAAM;EAC9C,MAAM,YAAY,KAAK,OAAO;EAC9B,MAAM,UAAU,KAAK,IAAI,IAAI,SAAS;EACtC,IAAI,CAAC,SAAS;EAEd,MAAM,YAAY,iBAAiB,KAAK,KAAK,SAAS;EAEtD,MAAM,UAAU,IAAI,gBAAgB,IADpB,aAAa,MAAM,SACG,CAAC;EAMvC,MAAM,YAAY,UAAU,MAAM,SAAS,OAAO;EAGlD,MAAM,aAAa,iBAAiB,IAAI,SAAS;EACjD,IAAI,YAAY;GACd,MAAM,WAAW,KAAK,IAAI,IAAI,UAAU;GACxC,IAAI,UAEF,UAAU,SADS,gBAAgB,MAAM,UAAU,OACtB,EAAE,QAAQ;GAGzC,MAAM,qBAAqB,kBAAkB,IAAI,UAAU;GAC3D,IAAI,oBAAoB;IACtB,MAAM,YAAY,KAAK,aAAa,QAAQ,kBAAkB;IAC9D,IAAI,aAAa,KAAK,WAAW,YAC/B,UAAU,SAAS,WAAW,WAAW;GAE7C;EACF;EAGA,KAAK,MAAM,GAAG,YAAY,WAAW;GACnC,IAAI,CAAC,QAAQ,SAAS,YAAY,GAAG;GACrC,MAAM,aAAa,KAAK,IAAI,IAAI,OAAO;GACvC,IAAI,CAAC,YAAY;GAEjB,MAAM,iBAAiB,kBAAkB,MAAM,YAAY,OAAO;GAClE,IAAI,eAAe,SAAS,GAAG;IAC7B,MAAM,WAA2C,CAAC;IAClD,KAAK,MAAM,MAAM,gBAAgB;KAC/B,MAAM,QAAsC;MAAE,GAAG,GAAG;MAAG,GAAG,GAAG;KAAE;KAC/D,IAAI,GAAG,MAAM,MAAM,OAAO,GAAG;KAC7B,IAAI,GAAG,MAAM,MAAM,OAAO,GAAG;KAC7B,IAAI,GAAG,aAAa,KAAA,GAAW,MAAM,WAAW,GAAG;KACnD,MAAM,SAAS,eAAe,IAAI,GAAG,QAAQ;KAC7C,IAAI,QAAQ;MACV,MAAM,SAAS,OAAO;MACtB,IAAI,OAAO,UAAU,MAAM,WAAW,OAAO;KAC/C;KACA,SAAS,KAAK,KAAK;IACrB;IACA,IAAI,SAAS,SAAS,GAAG,UAAU,WAAW;GAChD;GACA;EACF;EAGA,KAAK,MAAM,GAAG,YAAY,WAAW;GACnC,IAAI,CAAC,QAAQ,SAAS,eAAe,GAAG;GACxC,MAAM,UAAU,KAAK,IAAI,IAAI,OAAO;GACpC,IAAI,CAAC,SAAS;GACd,MAAM,YAAY,eAAe,MAAM,SAAS,OAAO;GACvD,IAAI,UAAU,MAAM,UAAU,QAAQ,UAAU;GAChD;EACF;EAGA,MAAM,cAAc,mBAAmB,IAAI,SAAS;EACpD,IAAI,aAAa,UAAU,UAAU;EAErC,OAAO,KAAK,SAAyB;CACvC;CAEA,KAAK,SAAS;CACd,OAAO;AACT"} |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
7157
0.22%1001230
-0.01%+ Added
+ Added
- Removed
- Removed
Updated
Updated