pptx-automizer-mp70
Version:
A template based pptx generator
47 lines (46 loc) • 2.37 kB
TypeScript
import { RootPresTemplate } from './root-pres-template';
import { FindElementSelector, GenerateElements, GenerateOnSlideCallback, ModificationCallback, SlideModificationCallback, SourceIdentifier } from '../types/types';
import IArchive from './iarchive';
import { ElementInfo } from '../types/xml-types';
export interface ISlide {
sourceArchive: IArchive;
sourceNumber: SourceIdentifier;
modify(callback: SlideModificationCallback): void;
append(targetTemplate: RootPresTemplate): Promise<void>;
/**
* Add an element from one of the loaded templates to this slide.
* @param presName Filename or custom name of source template
* @param slideNumber The slide number or slide creationID where the source element can be found on
* @param selector The name or element creationID of the source element
* @param callback You can pass a callback to modify the element on the target slide after insertion.
*/
addElement(presName: string, slideNumber: number, selector: FindElementSelector, callback?: ModificationCallback | ModificationCallback[]): ISlide;
/**
* Modify an element on the current slide.
* @param selector The name or element creationID of the element on current slide
* @param callback Pass a callback to modify the element.
*/
modifyElement(selector: FindElementSelector, callback: ModificationCallback | ModificationCallback[]): ISlide;
/**
* Use PptxGenJs to generate a new element from scratch on this slide.
* @param generate Pass a callback to create an element on current slide
* @param objectName Give a custom name for this element or automizer will create a random uuid
*/
generate(generate: GenerateOnSlideCallback, objectName?: string): ISlide;
/**
* You can remove an element on the current slide.
* @param selector Pass element name or creationId to find target element.
*/
removeElement(selector: FindElementSelector): ISlide;
useSlideLayout(targetLayout?: number | string): ISlide;
getAllElements(filterTags?: string[]): Promise<ElementInfo[]>;
getAllTextElementIds(): Promise<string[]>;
getGeneratedElements(): GenerateElements[];
/**
* Asynchronously retrieves the dimensions of a slide.
*/
getDimensions(): Promise<{
width: number;
height: number;
}>;
}