diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index a03915a264..be7e9011fd 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1214,7 +1214,7 @@ /types/gm/ @ChaosinaCan @maartenvanvliet /types/go/ @NorthwoodsSoftware /types/google-adwords-scripts/ @jafaircl -/types/google-apps-script/ @motemen +/types/google-apps-script/ @motemen @grant /types/google-apps-script-oauth2/ @dhayab /types/google-cloud__datastore/ @beaulac /types/google-cloud__pubsub/ @pheromonez diff --git a/types/google-apps-script/google-apps-script.slides.d.ts b/types/google-apps-script/google-apps-script.slides.d.ts new file mode 100644 index 0000000000..494663f002 --- /dev/null +++ b/types/google-apps-script/google-apps-script.slides.d.ts @@ -0,0 +1,1423 @@ +// Type definitions for Google Apps Script 2018-02-14 +// Project: https://developers.google.com/apps-script/ +// Definitions by: motemen +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// +/// +/// + +declare namespace GoogleAppsScript { + export module Slides { + /** + * A 3x3 matrix used to transform source coordinates (x1, y1) into destination coordinates (x2, y2) + * according to matrix multiplication: + * + * [ x2 ] [ scaleX shearX translateX ] [ x1 ] + * [ y2 ] = [ shearY scaleY translateY ] [ y1 ] + * [ 1 ] [ 0 0 1 ] [ 1 ] + * + * After transformation, + * + * x2 = scaleX * x1 + shearX * y1 + translateX + * y2 = scaleY * y1 + shearY * x1 + translateY + */ + export interface AffineTransform { + getScaleX(): Number; + getScaleY(): Number; + getShearX(): Number; + getShearY(): Number; + getTranslateX(): Number; + getTranslateY(): Number; + toBuilder(): AffineTransformBuilder; + } + + /** + * A builder for AffineTransform objects. Defaults to the identity transform. + * + * Call AffineTransformBuilder#build() to get the AffineTransform object. + * + * var transform = + * SlidesApp.newAffineTransformBuilder().setScaleX(2.0).setShearY(1.1).build(); + * + * The resulting transform matrix is + * [ 2.0 0.0 0.0 ] + * [ 1.1 1.0 0.0 ] + * [ 0 0 1 ] + */ + export interface AffineTransformBuilder { + build(): AffineTransform; + setScaleX(scaleX: Number): AffineTransformBuilder; + setScaleY(scaleY: Number): AffineTransformBuilder; + setShearX(shearX: Number): AffineTransformBuilder; + setShearY(shearY: Number): AffineTransformBuilder; + setTranslateX(translateX: Number): AffineTransformBuilder; + setTranslateY(translateY: Number): AffineTransformBuilder; + } + + /** + * The alignment position to apply. + */ + export enum AlignmentPosition { CENTER, HORIZONTAL_CENTER, VERTICAL_CENTER } + + /** + * The kinds of start and end forms with which linear geometry can be rendered. + * + * Some values are based on the "ST_LineEndType" simple type described in section 20.1.10.33 of + * of "Office Open XML File Formats - Fundamentals and Markup Language Reference", part 1 of ECMA-376 4th + * edition. + */ + export enum ArrowStyle { UNSUPPORTED, NONE, STEALTH_ARROW, FILL_ARROW, FILL_CIRCLE, FILL_SQUARE, FILL_DIAMOND, OPEN_ARROW, OPEN_CIRCLE, OPEN_SQUARE, OPEN_DIAMOND } + + /** + * An element of text that is dynamically replaced with content that can change over time, such as a + * slide number. + */ + export interface AutoText { + getAutoTextType(): AutoTextType; + getIndex(): Integer; + getRange(): TextRange; + } + + /** + * The types of auto text. + */ + export enum AutoTextType { UNSUPPORTED, SLIDE_NUMBER } + + /** + * Describes the border around an element. + */ + export interface Border { + getDashStyle(): DashStyle; + getLineFill(): LineFill; + getWeight(): Number; + isVisible(): boolean; + setDashStyle(style: DashStyle): Border; + setTransparent(): Border; + setWeight(points: Number): Border; + } + + /** + * The table cell merge states. + */ + export enum CellMergeState { NORMAL, HEAD, MERGED } + + /** + * An opaque color + */ + export interface Color { + asRgbColor(): RgbColor; + asThemeColor(): ThemeColor; + getColorType(): ColorType; + } + + /** + * A color scheme defines a mapping from members of ThemeColorType to the actual colors used + * to render them. + */ + export interface ColorScheme { + getConcreteColor(theme: ThemeColorType): Color; + getThemeColors(): ThemeColorType[]; + } + + /** + * The types of Colors + */ + export enum ColorType { UNSUPPORTED, RGB, THEME } + + /** + * The content alignments for a Shape or TableCell. The supported alignments + * correspond to predefined text anchoring types from the ECMA-376 standard. + * + * More information on those alignments can be found in the description of + * the ST_TextAnchoringType simple type in section 20.1.10.59 of "Office Open XML File + * Formats - Fundamentals and Markup Language Reference", part 1 of ECMA-376 4th + * edition. + */ + export enum ContentAlignment { UNSUPPORTED, TOP, MIDDLE, BOTTOM } + + /** + * The kinds of dashes with which linear geometry can be rendered. These values are based on the + * "ST_PresetLineDashVal" simple type described in section 20.1.10.48 of "Office Open XML File + * Formats - Fundamentals and Markup Language Reference", part 1 of ECMA-376 4th + * edition. + */ + export enum DashStyle { UNSUPPORTED, SOLID, DOT, DASH, DASH_DOT, LONG_DASH, LONG_DASH_DOT } + + /** + * Describes the page element's background + */ + export interface Fill { + getSolidFill(): SolidFill; + getType(): FillType; + isVisible(): boolean; + setSolidFill(color: Color): void; + setSolidFill(color: Color, alpha: Number): void; + setSolidFill(red: Integer, green: Integer, blue: Integer): void; + setSolidFill(red: Integer, green: Integer, blue: Integer, alpha: Number): void; + setSolidFill(hexString: string): void; + setSolidFill(hexString: string, alpha: Number): void; + setSolidFill(color: ThemeColorType): void; + setSolidFill(color: ThemeColorType, alpha: Number): void; + setTransparent(): void; + } + + /** + * The kinds of fill. + */ + export enum FillType { UNSUPPORTED, NONE, SOLID } + + /** + * A collection of PageElements joined as a single unit. + */ + export interface Group { + alignOnPage(alignmentPosition: AlignmentPosition): Group; + duplicate(): PageElement; + getChildren(): PageElement[]; + getDescription(): string; + getHeight(): Number; + getInherentHeight(): Number; + getInherentWidth(): Number; + getLeft(): Number; + getObjectId(): string; + getPageElementType(): PageElementType; + getParentGroup(): Group; + getParentPage(): Page; + getRotation(): Number; + getTitle(): string; + getTop(): Number; + getTransform(): AffineTransform; + getWidth(): Number; + preconcatenateTransform(transform: AffineTransform): Group; + remove(): void; + scaleHeight(ratio: Number): Group; + scaleWidth(ratio: Number): Group; + select(): void; + select(replace: boolean): void; + setHeight(height: Number): Group; + setLeft(left: Number): Group; + setRotation(angle: Number): Group; + setTop(top: Number): Group; + setTransform(transform: AffineTransform): Group; + setWidth(width: Number): Group; + ungroup(): void; + } + + /** + * A PageElement representing an image. + */ + export interface Image { + alignOnPage(alignmentPosition: AlignmentPosition): Image; + duplicate(): PageElement; + getBorder(): Border; + getContentUrl(): string; + getDescription(): string; + getHeight(): Number; + getInherentHeight(): Number; + getInherentWidth(): Number; + getLeft(): Number; + getLink(): Link; + getObjectId(): string; + getPageElementType(): PageElementType; + getParentGroup(): Group; + getParentPage(): Page; + getRotation(): Number; + getSourceUrl(): string; + getTitle(): string; + getTop(): Number; + getTransform(): AffineTransform; + getWidth(): Number; + preconcatenateTransform(transform: AffineTransform): Image; + remove(): void; + removeLink(): void; + replace(blobSource: Base.BlobSource): Image; + replace(blobSource: Base.BlobSource, crop: boolean): Image; + replace(imageUrl: string): Image; + replace(imageUrl: string, crop: boolean): Image; + scaleHeight(ratio: Number): Image; + scaleWidth(ratio: Number): Image; + select(): void; + select(replace: boolean): void; + setHeight(height: Number): Image; + setLeft(left: Number): Image; + setLinkSlide(slideIndex: Integer): Link; + setLinkSlide(slide: Slide): Link; + setLinkSlide(slidePosition: SlidePosition): Link; + setLinkUrl(url: string): Link; + setRotation(angle: Number): Image; + setTop(top: Number): Image; + setTransform(transform: AffineTransform): Image; + setWidth(width: Number): Image; + } + + /** + * A layout in a presentation. + * + * Each layout serves as a template for slides that inherit from it, determining how content on + * those slides is arranged and styled. + */ + export interface Layout { + getBackground(): PageBackground; + getColorScheme(): ColorScheme; + getGroups(): Group[]; + getImages(): Image[]; + getLayoutName(): string; + getLines(): Line[]; + getMaster(): Master; + getObjectId(): string; + getPageElements(): PageElement[]; + getPageType(): PageType; + getPlaceholder(placeholderType: PlaceholderType): PageElement; + getPlaceholder(placeholderType: PlaceholderType, placeholderIndex: Integer): PageElement; + getPlaceholders(): PageElement[]; + getShapes(): Shape[]; + getSheetsCharts(): SheetsChart[]; + getTables(): Table[]; + getVideos(): Video[]; + getWordArts(): WordArt[]; + group(pageElements: PageElement[]): Group; + insertGroup(group: Group): Group; + insertImage(blobSource: Base.BlobSource): Image; + insertImage(blobSource: Base.BlobSource, left: Number, top: Number, width: Number, height: Number): Image; + insertImage(image: Image): Image; + insertImage(imageUrl: string): Image; + insertImage(imageUrl: string, left: Number, top: Number, width: Number, height: Number): Image; + insertLine(line: Line): Line; + insertLine(lineCategory: LineCategory, startLeft: Number, startTop: Number, endLeft: Number, endTop: Number): Line; + insertPageElement(pageElement: PageElement): PageElement; + insertShape(shape: Shape): Shape; + insertShape(shapeType: ShapeType): Shape; + insertShape(shapeType: ShapeType, left: Number, top: Number, width: Number, height: Number): Shape; + insertSheetsChart(sourceChart: Spreadsheet.EmbeddedChart): SheetsChart; + insertSheetsChart(sourceChart: Spreadsheet.EmbeddedChart, left: Number, top: Number, width: Number, height: Number): SheetsChart; + insertSheetsChart(sheetsChart: SheetsChart): SheetsChart; + insertSheetsChartAsImage(sourceChart: Spreadsheet.EmbeddedChart): Image; + insertSheetsChartAsImage(sourceChart: Spreadsheet.EmbeddedChart, left: Number, top: Number, width: Number, height: Number): Image; + insertTable(numRows: Integer, numColumns: Integer): Table; + insertTable(numRows: Integer, numColumns: Integer, left: Number, top: Number, width: Number, height: Number): Table; + insertTable(table: Table): Table; + insertVideo(videoUrl: string): Video; + insertVideo(videoUrl: string, left: Number, top: Number, width: Number, height: Number): Video; + insertVideo(video: Video): Video; + insertWordArt(wordArt: WordArt): WordArt; + remove(): void; + replaceAllText(findText: string, replaceText: string): Integer; + replaceAllText(findText: string, replaceText: string, matchCase: boolean): Integer; + selectAsCurrentPage(): void; + } + + /** + * A PageElement representing a line. + */ + export interface Line { + alignOnPage(alignmentPosition: AlignmentPosition): Line; + duplicate(): PageElement; + getDashStyle(): DashStyle; + getDescription(): string; + getEnd(): Point; + getEndArrow(): ArrowStyle; + getHeight(): Number; + getInherentHeight(): Number; + getInherentWidth(): Number; + getLeft(): Number; + getLineFill(): LineFill; + getLineType(): LineType; + getLink(): Link; + getObjectId(): string; + getPageElementType(): PageElementType; + getParentGroup(): Group; + getParentPage(): Page; + getRotation(): Number; + getStart(): Point; + getStartArrow(): ArrowStyle; + getTitle(): string; + getTop(): Number; + getTransform(): AffineTransform; + getWeight(): Number; + getWidth(): Number; + preconcatenateTransform(transform: AffineTransform): Line; + remove(): void; + removeLink(): void; + scaleHeight(ratio: Number): Line; + scaleWidth(ratio: Number): Line; + select(): void; + select(replace: boolean): void; + setDashStyle(style: DashStyle): Line; + setEnd(left: Number, top: Number): Line; + setEnd(point: Point): Line; + setEndArrow(style: ArrowStyle): Line; + setHeight(height: Number): Line; + setLeft(left: Number): Line; + setLinkSlide(slideIndex: Integer): Link; + setLinkSlide(slide: Slide): Link; + setLinkSlide(slidePosition: SlidePosition): Link; + setLinkUrl(url: string): Link; + setRotation(angle: Number): Line; + setStart(left: Number, top: Number): Line; + setStart(point: Point): Line; + setStartArrow(style: ArrowStyle): Line; + setTop(top: Number): Line; + setTransform(transform: AffineTransform): Line; + setWeight(points: Number): Line; + setWidth(width: Number): Line; + } + + /** + * The line category. + * + * The exact LineType created is determined based on the category and how it's routed to + * connect to other page elements. + */ + export enum LineCategory { STRAIGHT, BENT, CURVED } + + /** + * Describes the fill of a line or outline + */ + export interface LineFill { + getFillType(): LineFillType; + getSolidFill(): SolidFill; + setSolidFill(color: Color): void; + setSolidFill(color: Color, alpha: Number): void; + setSolidFill(red: Integer, green: Integer, blue: Integer): void; + setSolidFill(red: Integer, green: Integer, blue: Integer, alpha: Number): void; + setSolidFill(hexString: string): void; + setSolidFill(hexString: string, alpha: Number): void; + setSolidFill(color: ThemeColorType): void; + setSolidFill(color: ThemeColorType, alpha: Number): void; + } + + /** + * The kinds of line fill. + */ + export enum LineFillType { UNSUPPORTED, NONE, SOLID } + + /** + * The line types. + * + * Derived from a subset of the values of the "ST_ShapeType" simple type in section 20.1.10.55 of + * "Office Open XML File Formats - Fundamentals and Markup Language Reference", part 1 of ECMA-376 4th + * edition. + */ + export enum LineType { UNSUPPORTED, STRAIGHT_CONNECTOR_1, BENT_CONNECTOR_2, BENT_CONNECTOR_3, BENT_CONNECTOR_4, BENT_CONNECTOR_5, CURVED_CONNECTOR_2, CURVED_CONNECTOR_3, CURVED_CONNECTOR_4, CURVED_CONNECTOR_5 } + + /** + * A hypertext link. + */ + export interface Link { + getLinkType(): LinkType; + getLinkedSlide(): Slide; + getSlideId(): string; + getSlideIndex(): Integer; + getSlidePosition(): SlidePosition; + getUrl(): string; + } + + /** + * The types of a Link. + */ + export enum LinkType { UNSUPPORTED, URL, SLIDE_POSITION, SLIDE_ID, SLIDE_INDEX } + + /** + * A list in the text. + */ + export interface List { + getListId(): string; + getListParagraphs(): Paragraph[]; + } + + /** + * Preset patterns of glyphs for lists in text. + * + * These presets use these glyphs: + * + * ARROW: An arrow, ➔, corresponding to a Unicode U+2794 code point + * + * ARROW3D: An arrow with 3D shading, ➢, corresponding to a Unicode U+27a2 code point + * + * CHECKBOX: A hollow square, ❏, corresponding to a Unicode U+274f code point + * + * CIRCLE: A hollow circle, ○, corresponding to a Unicode U+25cb code point + * + * DIAMOND: A solid diamond, ◆, corresponding to a Unicode U+25c6 code point + * + * `DIAMONDX: A diamond with an 'x', ❖, corresponding to a Unicode U+2756 code point + * + * HOLLOWDIAMOND: A hollow diamond, ◇, corresponding to a Unicode U+25c7 code point + * + * DISC: A solid circle, ●, corresponding to a Unicode U+25cf code point + * + * SQUARE: A solid square, ■, corresponding to a Unicode U+25a0 code point + * + * STAR: A star, ★, corresponding to a Unicode U+2605 code point + * + * ALPHA: A lowercase letter, like 'a', 'b', or 'c'. + * + * UPPERALPHA: An uppercase letter, like 'A', 'B', or 'C'. + * + * DIGIT: A number, like '1', '2', or '3'. + * + * ZERODIGIT: A number where single digit numbers are prefixed with a zero, like '01', '02', + * or '03'. Numbers with more than one digit are not prefixed a zero. + * + * ROMAN: A lowercase roman numeral, like 'i', 'ii', or 'iii'. + * + * UPPERROMAN: A uppercase roman numeral, like 'I', 'II', or 'III'. + * + * LEFTTRIANGLE: A triangle pointing left, ◄, corresponding to a Unicode U+25c4 code + * point + */ + export enum ListPreset { DISC_CIRCLE_SQUARE, DIAMONDX_ARROW3D_SQUARE, CHECKBOX, ARROW_DIAMOND_DISC, STAR_CIRCLE_SQUARE, ARROW3D_CIRCLE_SQUARE, LEFTTRIANGLE_DIAMOND_DISC, DIAMONDX_HOLLOWDIAMOND_SQUARE, DIAMOND_CIRCLE_SQUARE, DIGIT_ALPHA_ROMAN, DIGIT_ALPHA_ROMAN_PARENS, DIGIT_NESTED, UPPERALPHA_ALPHA_ROMAN, UPPERROMAN_UPPERALPHA_DIGIT, ZERODIGIT_ALPHA_ROMAN } + + /** + * The list styling for a range of text. + */ + export interface ListStyle { + applyListPreset(listPreset: ListPreset): ListStyle; + getGlyph(): string; + getList(): List; + getNestingLevel(): Integer; + isInList(): boolean; + removeFromList(): ListStyle; + } + + /** + * A master in a presentation. + * + * Masters contains all common page elements and the common properties for a set of layouts. They + * serve three purposes: + * + * Placeholder shapes on a master contain the default text styles and shape properties of all + * placeholder shapes on pages that use that master. + * + * The properties of a master page define the common page properties inherited by its layouts. + * + * Any other shapes on the master slide appear on all slides using that master, regardless of + * their layout. + */ + export interface Master { + getBackground(): PageBackground; + getColorScheme(): ColorScheme; + getGroups(): Group[]; + getImages(): Image[]; + getLayouts(): Layout[]; + getLines(): Line[]; + getObjectId(): string; + getPageElements(): PageElement[]; + getPageType(): PageType; + getPlaceholder(placeholderType: PlaceholderType): PageElement; + getPlaceholder(placeholderType: PlaceholderType, placeholderIndex: Integer): PageElement; + getPlaceholders(): PageElement[]; + getShapes(): Shape[]; + getSheetsCharts(): SheetsChart[]; + getTables(): Table[]; + getVideos(): Video[]; + getWordArts(): WordArt[]; + group(pageElements: PageElement[]): Group; + insertGroup(group: Group): Group; + insertImage(blobSource: Base.BlobSource): Image; + insertImage(blobSource: Base.BlobSource, left: Number, top: Number, width: Number, height: Number): Image; + insertImage(image: Image): Image; + insertImage(imageUrl: string): Image; + insertImage(imageUrl: string, left: Number, top: Number, width: Number, height: Number): Image; + insertLine(line: Line): Line; + insertLine(lineCategory: LineCategory, startLeft: Number, startTop: Number, endLeft: Number, endTop: Number): Line; + insertPageElement(pageElement: PageElement): PageElement; + insertShape(shape: Shape): Shape; + insertShape(shapeType: ShapeType): Shape; + insertShape(shapeType: ShapeType, left: Number, top: Number, width: Number, height: Number): Shape; + insertSheetsChart(sourceChart: Spreadsheet.EmbeddedChart): SheetsChart; + insertSheetsChart(sourceChart: Spreadsheet.EmbeddedChart, left: Number, top: Number, width: Number, height: Number): SheetsChart; + insertSheetsChart(sheetsChart: SheetsChart): SheetsChart; + insertSheetsChartAsImage(sourceChart: Spreadsheet.EmbeddedChart): Image; + insertSheetsChartAsImage(sourceChart: Spreadsheet.EmbeddedChart, left: Number, top: Number, width: Number, height: Number): Image; + insertTable(numRows: Integer, numColumns: Integer): Table; + insertTable(numRows: Integer, numColumns: Integer, left: Number, top: Number, width: Number, height: Number): Table; + insertTable(table: Table): Table; + insertVideo(videoUrl: string): Video; + insertVideo(videoUrl: string, left: Number, top: Number, width: Number, height: Number): Video; + insertVideo(video: Video): Video; + insertWordArt(wordArt: WordArt): WordArt; + remove(): void; + replaceAllText(findText: string, replaceText: string): Integer; + replaceAllText(findText: string, replaceText: string, matchCase: boolean): Integer; + selectAsCurrentPage(): void; + } + + /** + * A notes master in a presentation. + * + * Notes masters define the default text styles and page elements for all notes pages. Notes + * masters are read-only. + */ + export interface NotesMaster { + getGroups(): Group[]; + getImages(): Image[]; + getLines(): Line[]; + getObjectId(): string; + getPageElements(): PageElement[]; + getPlaceholder(placeholderType: PlaceholderType): PageElement; + getPlaceholder(placeholderType: PlaceholderType, placeholderIndex: Integer): PageElement; + getPlaceholders(): PageElement[]; + getShapes(): Shape[]; + getSheetsCharts(): SheetsChart[]; + getTables(): Table[]; + getVideos(): Video[]; + getWordArts(): WordArt[]; + } + + /** + * A notes page in a presentation. + * + * These pages contain the content for presentation handouts, including a a shape that contains + * the slide's speaker notes. Each slide has one corresponding notes page. Only the text in the + * speaker notes shape can be modified. + */ + export interface NotesPage { + getGroups(): Group[]; + getImages(): Image[]; + getLines(): Line[]; + getObjectId(): string; + getPageElements(): PageElement[]; + getPlaceholder(placeholderType: PlaceholderType): PageElement; + getPlaceholder(placeholderType: PlaceholderType, placeholderIndex: Integer): PageElement; + getPlaceholders(): PageElement[]; + getShapes(): Shape[]; + getSheetsCharts(): SheetsChart[]; + getSpeakerNotesShape(): Shape; + getTables(): Table[]; + getVideos(): Video[]; + getWordArts(): WordArt[]; + replaceAllText(findText: string, replaceText: string): Integer; + replaceAllText(findText: string, replaceText: string, matchCase: boolean): Integer; + } + + /** + * A page in a presentation. + */ + export interface Page { + asLayout(): Layout; + asMaster(): Master; + asSlide(): Slide; + getBackground(): PageBackground; + getColorScheme(): ColorScheme; + getGroups(): Group[]; + getImages(): Image[]; + getLines(): Line[]; + getObjectId(): string; + getPageElements(): PageElement[]; + getPageType(): PageType; + getPlaceholder(placeholderType: PlaceholderType): PageElement; + getPlaceholder(placeholderType: PlaceholderType, placeholderIndex: Integer): PageElement; + getPlaceholders(): PageElement[]; + getShapes(): Shape[]; + getSheetsCharts(): SheetsChart[]; + getTables(): Table[]; + getVideos(): Video[]; + getWordArts(): WordArt[]; + group(pageElements: PageElement[]): Group; + insertGroup(group: Group): Group; + insertImage(blobSource: Base.BlobSource): Image; + insertImage(blobSource: Base.BlobSource, left: Number, top: Number, width: Number, height: Number): Image; + insertImage(image: Image): Image; + insertImage(imageUrl: string): Image; + insertImage(imageUrl: string, left: Number, top: Number, width: Number, height: Number): Image; + insertLine(line: Line): Line; + insertLine(lineCategory: LineCategory, startLeft: Number, startTop: Number, endLeft: Number, endTop: Number): Line; + insertPageElement(pageElement: PageElement): PageElement; + insertShape(shape: Shape): Shape; + insertShape(shapeType: ShapeType): Shape; + insertShape(shapeType: ShapeType, left: Number, top: Number, width: Number, height: Number): Shape; + insertSheetsChart(sourceChart: Spreadsheet.EmbeddedChart): SheetsChart; + insertSheetsChart(sourceChart: Spreadsheet.EmbeddedChart, left: Number, top: Number, width: Number, height: Number): SheetsChart; + insertSheetsChart(sheetsChart: SheetsChart): SheetsChart; + insertSheetsChartAsImage(sourceChart: Spreadsheet.EmbeddedChart): Image; + insertSheetsChartAsImage(sourceChart: Spreadsheet.EmbeddedChart, left: Number, top: Number, width: Number, height: Number): Image; + insertTable(numRows: Integer, numColumns: Integer): Table; + insertTable(numRows: Integer, numColumns: Integer, left: Number, top: Number, width: Number, height: Number): Table; + insertTable(table: Table): Table; + insertVideo(videoUrl: string): Video; + insertVideo(videoUrl: string, left: Number, top: Number, width: Number, height: Number): Video; + insertVideo(video: Video): Video; + insertWordArt(wordArt: WordArt): WordArt; + remove(): void; + replaceAllText(findText: string, replaceText: string): Integer; + replaceAllText(findText: string, replaceText: string, matchCase: boolean): Integer; + selectAsCurrentPage(): void; + } + + /** + * Describes the page's background + */ + export interface PageBackground { + getPictureFill(): PictureFill; + getSolidFill(): SolidFill; + getType(): PageBackgroundType; + isVisible(): boolean; + setPictureFill(blobSource: Base.BlobSource): void; + setPictureFill(imageUrl: string): void; + setSolidFill(color: Color): void; + setSolidFill(color: Color, alpha: Number): void; + setSolidFill(red: Integer, green: Integer, blue: Integer): void; + setSolidFill(red: Integer, green: Integer, blue: Integer, alpha: Number): void; + setSolidFill(hexString: string): void; + setSolidFill(hexString: string, alpha: Number): void; + setSolidFill(color: ThemeColorType): void; + setSolidFill(color: ThemeColorType, alpha: Number): void; + setTransparent(): void; + } + + /** + * The kinds of page backgrounds. + */ + export enum PageBackgroundType { UNSUPPORTED, NONE, SOLID, PICTURE } + + /** + * A visual element rendered on a page. + */ + export interface PageElement { + alignOnPage(alignmentPosition: AlignmentPosition): PageElement; + asGroup(): Group; + asImage(): Image; + asLine(): Line; + asShape(): Shape; + asSheetsChart(): SheetsChart; + asTable(): Table; + asVideo(): Video; + asWordArt(): WordArt; + duplicate(): PageElement; + getDescription(): string; + getHeight(): Number; + getInherentHeight(): Number; + getInherentWidth(): Number; + getLeft(): Number; + getObjectId(): string; + getPageElementType(): PageElementType; + getParentGroup(): Group; + getParentPage(): Page; + getRotation(): Number; + getTitle(): string; + getTop(): Number; + getTransform(): AffineTransform; + getWidth(): Number; + preconcatenateTransform(transform: AffineTransform): PageElement; + remove(): void; + scaleHeight(ratio: Number): PageElement; + scaleWidth(ratio: Number): PageElement; + select(): void; + select(replace: boolean): void; + setHeight(height: Number): PageElement; + setLeft(left: Number): PageElement; + setRotation(angle: Number): PageElement; + setTop(top: Number): PageElement; + setTransform(transform: AffineTransform): PageElement; + setWidth(width: Number): PageElement; + } + + /** + * A collection of one or more PageElement instances. + */ + export interface PageElementRange { + getPageElements(): PageElement[]; + } + + /** + * The page element type. + */ + export enum PageElementType { UNSUPPORTED, SHAPE, IMAGE, VIDEO, TABLE, GROUP, LINE, WORD_ART, SHEETS_CHART } + + /** + * A collection of one or more Page instances. + */ + export interface PageRange { + getPages(): Page[]; + } + + /** + * The page types. + */ + export enum PageType { UNSUPPORTED, SLIDE, LAYOUT, MASTER } + + /** + * A segment of text terminated by a newline character. + */ + export interface Paragraph { + getIndex(): Integer; + getRange(): TextRange; + } + + /** + * The types of text alignment for a paragraph. + */ + export enum ParagraphAlignment { UNSUPPORTED, START, CENTER, END, JUSTIFIED } + + /** + * The styles of text that apply to entire paragraphs. + * + * Read methods in this class return null if the corresponding TextRange spans + * multiple paragraphs, and those paragraphs have different values for the read method being called. + * To avoid this, query for paragraph styles using the TextRange returned by the Paragraph.getRange() method. + */ + export interface ParagraphStyle { + getIndentEnd(): Number; + getIndentFirstLine(): Number; + getIndentStart(): Number; + getLineSpacing(): Number; + getParagraphAlignment(): ParagraphAlignment; + getSpaceAbove(): Number; + getSpaceBelow(): Number; + getSpacingMode(): SpacingMode; + getTextDirection(): TextDirection; + setIndentEnd(indent: Number): ParagraphStyle; + setIndentFirstLine(indent: Number): ParagraphStyle; + setIndentStart(indent: Number): ParagraphStyle; + setLineSpacing(spacing: Number): ParagraphStyle; + setParagraphAlignment(alignment: ParagraphAlignment): ParagraphStyle; + setSpaceAbove(space: Number): ParagraphStyle; + setSpaceBelow(space: Number): ParagraphStyle; + setSpacingMode(mode: SpacingMode): ParagraphStyle; + setTextDirection(direction: TextDirection): ParagraphStyle; + } + + /** + * A fill that renders an image that's stretched to the dimensions of its container. + */ + export interface PictureFill { + getContentUrl(): string; + getSourceUrl(): string; + } + + /** + * The placeholder types. Many of these placeholder types correspond to placeholder IDs from the + * ECMA-376 standard. More information on those shapes can be found in the description of the + * "ST_PlaceholderType" type in section 19.7.10 of "Office Open XML File Formats - Fundamentals and + * Markup Language Reference", part 1 of ECMA-376 5th + * edition. + */ + export enum PlaceholderType { UNSUPPORTED, NONE, BODY, CHART, CLIP_ART, CENTERED_TITLE, DIAGRAM, DATE_AND_TIME, FOOTER, HEADER, MEDIA, OBJECT, PICTURE, SLIDE_NUMBER, SUBTITLE, TABLE, TITLE, SLIDE_IMAGE } + + /** + * A point representing a location. + */ + export interface Point { + getX(): Number; + getY(): Number; + } + + /** + * Predefined layouts. These are commonly found layouts in presentations. However, there is no + * guarantee that these layouts are present in the current master as they could have been deleted or + * not part of the used theme. Additionally, the placeholders on each layout may have been changed. + */ + export enum PredefinedLayout { UNSUPPORTED, BLANK, CAPTION_ONLY, TITLE, TITLE_AND_BODY, TITLE_AND_TWO_COLUMNS, TITLE_ONLY, SECTION_HEADER, SECTION_TITLE_AND_DESCRIPTION, ONE_COLUMN_TEXT, MAIN_POINT, BIG_NUMBER } + + /** + * A presentation. + */ + export interface Presentation { + addEditor(emailAddress: string): Presentation; + addEditor(user: Base.User): Presentation; + addEditors(emailAddresses: String[]): Presentation; + addViewer(emailAddress: string): Presentation; + addViewer(user: Base.User): Presentation; + addViewers(emailAddresses: String[]): Presentation; + appendSlide(): Slide; + appendSlide(layout: Layout): Slide; + appendSlide(predefinedLayout: PredefinedLayout): Slide; + appendSlide(slide: Slide): Slide; + getEditors(): Base.User[]; + getId(): string; + getLayouts(): Layout[]; + getMasters(): Master[]; + getName(): string; + getNotesMaster(): NotesMaster; + getNotesPageHeight(): Number; + getNotesPageWidth(): Number; + getPageHeight(): Number; + getPageWidth(): Number; + getSelection(): Selection; + getSlides(): Slide[]; + getUrl(): string; + getViewers(): Base.User[]; + insertSlide(insertionIndex: Integer): Slide; + insertSlide(insertionIndex: Integer, layout: Layout): Slide; + insertSlide(insertionIndex: Integer, predefinedLayout: PredefinedLayout): Slide; + insertSlide(insertionIndex: Integer, slide: Slide): Slide; + removeEditor(emailAddress: string): Presentation; + removeEditor(user: Base.User): Presentation; + removeViewer(emailAddress: string): Presentation; + removeViewer(user: Base.User): Presentation; + replaceAllText(findText: string, replaceText: string): Integer; + replaceAllText(findText: string, replaceText: string, matchCase: boolean): Integer; + saveAndClose(): void; + setName(name: string): void; + } + + /** + * A color defined by red, green, blue color channels. + */ + export interface RgbColor { + asHexString(): string; + getBlue(): Integer; + getColorType(): ColorType; + getGreen(): Integer; + getRed(): Integer; + } + + /** + * The user's selection in the active presentation. + * + * var selection = SlidesApp.getActivePresentation().getSelection(); + * var currentPage = selection.getCurrentPage(); + * var selectionType = selection.getSelectionType(); + * } + */ + export interface Selection { + getCurrentPage(): Page; + getPageElementRange(): PageElementRange; + getPageRange(): PageRange; + getSelectionType(): SelectionType; + getTableCellRange(): TableCellRange; + getTextRange(): TextRange; + } + + /** + * Type of Selection. + * + * The SelectionType represents the most specific type of one or more objects that are + * selected. As an example if one or more TableCell instances are selected in a Table, the selection type is SelectionType.TABLE_CELL. The TableCellRange can be + * retrieved by using the Selection.getTableCellRange. The Table can be retrieved by + * using the Selection.getPageElementRange and the Page can be retrieved from the + * Selection.getCurrentPage. + */ + export enum SelectionType { UNSUPPORTED, NONE, TEXT, TABLE_CELL, PAGE, PAGE_ELEMENT, CURRENT_PAGE } + + /** + * A PageElement representing a generic shape that does not have a more specific + * classification. Includes text boxes, rectangles, and other predefined shapes. + */ + export interface Shape { + alignOnPage(alignmentPosition: AlignmentPosition): Shape; + duplicate(): PageElement; + getBorder(): Border; + getContentAlignment(): ContentAlignment; + getDescription(): string; + getFill(): Fill; + getHeight(): Number; + getInherentHeight(): Number; + getInherentWidth(): Number; + getLeft(): Number; + getLink(): Link; + getObjectId(): string; + getPageElementType(): PageElementType; + getParentGroup(): Group; + getParentPage(): Page; + getParentPlaceholder(): PageElement; + getPlaceholderIndex(): Integer; + getPlaceholderType(): PlaceholderType; + getRotation(): Number; + getShapeType(): ShapeType; + getText(): TextRange; + getTitle(): string; + getTop(): Number; + getTransform(): AffineTransform; + getWidth(): Number; + preconcatenateTransform(transform: AffineTransform): Shape; + remove(): void; + removeLink(): void; + replaceWithImage(blobSource: Base.BlobSource): Image; + replaceWithImage(blobSource: Base.BlobSource, crop: boolean): Image; + replaceWithImage(imageUrl: string): Image; + replaceWithImage(imageUrl: string, crop: boolean): Image; + replaceWithSheetsChart(sourceChart: Spreadsheet.EmbeddedChart): SheetsChart; + replaceWithSheetsChartAsImage(sourceChart: Spreadsheet.EmbeddedChart): Image; + scaleHeight(ratio: Number): Shape; + scaleWidth(ratio: Number): Shape; + select(): void; + select(replace: boolean): void; + setContentAlignment(contentAlignment: ContentAlignment): Shape; + setHeight(height: Number): Shape; + setLeft(left: Number): Shape; + setLinkSlide(slideIndex: Integer): Link; + setLinkSlide(slide: Slide): Link; + setLinkSlide(slidePosition: SlidePosition): Link; + setLinkUrl(url: string): Link; + setRotation(angle: Number): Shape; + setTop(top: Number): Shape; + setTransform(transform: AffineTransform): Shape; + setWidth(width: Number): Shape; + } + + /** + * The shape types. Many of these shapes correspond to predefined shapes from the ECMA-376 standard. + * More information on those shapes can be found in the description of the "ST_ShapeType" simple + * type in section 20.1.10.55 of "Office Open XML File Formats - Fundamentals and Markup Language + * Reference", part 1 of ECMA-376 4th + * edition. + */ + export enum ShapeType { UNSUPPORTED, TEXT_BOX, RECTANGLE, ROUND_RECTANGLE, ELLIPSE, ARC, BENT_ARROW, BENT_UP_ARROW, BEVEL, BLOCK_ARC, BRACE_PAIR, BRACKET_PAIR, CAN, CHEVRON, CHORD, CLOUD, CORNER, CUBE, CURVED_DOWN_ARROW, CURVED_LEFT_ARROW, CURVED_RIGHT_ARROW, CURVED_UP_ARROW, DECAGON, DIAGONAL_STRIPE, DIAMOND, DODECAGON, DONUT, DOUBLE_WAVE, DOWN_ARROW, DOWN_ARROW_CALLOUT, FOLDED_CORNER, FRAME, HALF_FRAME, HEART, HEPTAGON, HEXAGON, HOME_PLATE, HORIZONTAL_SCROLL, IRREGULAR_SEAL_1, IRREGULAR_SEAL_2, LEFT_ARROW, LEFT_ARROW_CALLOUT, LEFT_BRACE, LEFT_BRACKET, LEFT_RIGHT_ARROW, LEFT_RIGHT_ARROW_CALLOUT, LEFT_RIGHT_UP_ARROW, LEFT_UP_ARROW, LIGHTNING_BOLT, MATH_DIVIDE, MATH_EQUAL, MATH_MINUS, MATH_MULTIPLY, MATH_NOT_EQUAL, MATH_PLUS, MOON, NO_SMOKING, NOTCHED_RIGHT_ARROW, OCTAGON, PARALLELOGRAM, PENTAGON, PIE, PLAQUE, PLUS, QUAD_ARROW, QUAD_ARROW_CALLOUT, RIBBON, RIBBON_2, RIGHT_ARROW, RIGHT_ARROW_CALLOUT, RIGHT_BRACE, RIGHT_BRACKET, ROUND_1_RECTANGLE, ROUND_2_DIAGONAL_RECTANGLE, ROUND_2_SAME_RECTANGLE, RIGHT_TRIANGLE, SMILEY_FACE, SNIP_1_RECTANGLE, SNIP_2_DIAGONAL_RECTANGLE, SNIP_2_SAME_RECTANGLE, SNIP_ROUND_RECTANGLE, STAR_10, STAR_12, STAR_16, STAR_24, STAR_32, STAR_4, STAR_5, STAR_6, STAR_7, STAR_8, STRIPED_RIGHT_ARROW, SUN, TRAPEZOID, TRIANGLE, UP_ARROW, UP_ARROW_CALLOUT, UP_DOWN_ARROW, UTURN_ARROW, VERTICAL_SCROLL, WAVE, WEDGE_ELLIPSE_CALLOUT, WEDGE_RECTANGLE_CALLOUT, WEDGE_ROUND_RECTANGLE_CALLOUT, FLOW_CHART_ALTERNATE_PROCESS, FLOW_CHART_COLLATE, FLOW_CHART_CONNECTOR, FLOW_CHART_DECISION, FLOW_CHART_DELAY, FLOW_CHART_DISPLAY, FLOW_CHART_DOCUMENT, FLOW_CHART_EXTRACT, FLOW_CHART_INPUT_OUTPUT, FLOW_CHART_INTERNAL_STORAGE, FLOW_CHART_MAGNETIC_DISK, FLOW_CHART_MAGNETIC_DRUM, FLOW_CHART_MAGNETIC_TAPE, FLOW_CHART_MANUAL_INPUT, FLOW_CHART_MANUAL_OPERATION, FLOW_CHART_MERGE, FLOW_CHART_MULTIDOCUMENT, FLOW_CHART_OFFLINE_STORAGE, FLOW_CHART_OFFPAGE_CONNECTOR, FLOW_CHART_ONLINE_STORAGE, FLOW_CHART_OR, FLOW_CHART_PREDEFINED_PROCESS, FLOW_CHART_PREPARATION, FLOW_CHART_PROCESS, FLOW_CHART_PUNCHED_CARD, FLOW_CHART_PUNCHED_TAPE, FLOW_CHART_SORT, FLOW_CHART_SUMMING_JUNCTION, FLOW_CHART_TERMINATOR, ARROW_EAST, ARROW_NORTH_EAST, ARROW_NORTH, SPEECH, STARBURST, TEARDROP, ELLIPSE_RIBBON, ELLIPSE_RIBBON_2, CLOUD_CALLOUT, CUSTOM } + + /** + * A PageElement representing a linked chart embedded from Google Sheets. + */ + export interface SheetsChart { + alignOnPage(alignmentPosition: AlignmentPosition): SheetsChart; + asImage(): Image; + duplicate(): PageElement; + getChartId(): Integer; + getDescription(): string; + getEmbedType(): SheetsChartEmbedType; + getHeight(): Number; + getInherentHeight(): Number; + getInherentWidth(): Number; + getLeft(): Number; + getLink(): Link; + getObjectId(): string; + getPageElementType(): PageElementType; + getParentGroup(): Group; + getParentPage(): Page; + getRotation(): Number; + getSpreadsheetId(): string; + getTitle(): string; + getTop(): Number; + getTransform(): AffineTransform; + getWidth(): Number; + preconcatenateTransform(transform: AffineTransform): SheetsChart; + refresh(): void; + remove(): void; + removeLink(): void; + scaleHeight(ratio: Number): SheetsChart; + scaleWidth(ratio: Number): SheetsChart; + select(): void; + select(replace: boolean): void; + setHeight(height: Number): SheetsChart; + setLeft(left: Number): SheetsChart; + setLinkSlide(slideIndex: Integer): Link; + setLinkSlide(slide: Slide): Link; + setLinkSlide(slidePosition: SlidePosition): Link; + setLinkUrl(url: string): Link; + setRotation(angle: Number): SheetsChart; + setTop(top: Number): SheetsChart; + setTransform(transform: AffineTransform): SheetsChart; + setWidth(width: Number): SheetsChart; + } + + /** + * The Sheets chart's embed type. + */ + export enum SheetsChartEmbedType { UNSUPPORTED, IMAGE } + + /** + * A slide in a presentation. + * + * These pages contain the content you are presenting to your audience. Most slides are based on + * a master and a layout. You can specify which layout to use for each slide when it is created. + */ + export interface Slide { + duplicate(): Slide; + getBackground(): PageBackground; + getColorScheme(): ColorScheme; + getGroups(): Group[]; + getImages(): Image[]; + getLayout(): Layout; + getLines(): Line[]; + getNotesPage(): NotesPage; + getObjectId(): string; + getPageElements(): PageElement[]; + getPageType(): PageType; + getPlaceholder(placeholderType: PlaceholderType): PageElement; + getPlaceholder(placeholderType: PlaceholderType, placeholderIndex: Integer): PageElement; + getPlaceholders(): PageElement[]; + getShapes(): Shape[]; + getSheetsCharts(): SheetsChart[]; + getTables(): Table[]; + getVideos(): Video[]; + getWordArts(): WordArt[]; + group(pageElements: PageElement[]): Group; + insertGroup(group: Group): Group; + insertImage(blobSource: Base.BlobSource): Image; + insertImage(blobSource: Base.BlobSource, left: Number, top: Number, width: Number, height: Number): Image; + insertImage(image: Image): Image; + insertImage(imageUrl: string): Image; + insertImage(imageUrl: string, left: Number, top: Number, width: Number, height: Number): Image; + insertLine(line: Line): Line; + insertLine(lineCategory: LineCategory, startLeft: Number, startTop: Number, endLeft: Number, endTop: Number): Line; + insertPageElement(pageElement: PageElement): PageElement; + insertShape(shape: Shape): Shape; + insertShape(shapeType: ShapeType): Shape; + insertShape(shapeType: ShapeType, left: Number, top: Number, width: Number, height: Number): Shape; + insertSheetsChart(sourceChart: Spreadsheet.EmbeddedChart): SheetsChart; + insertSheetsChart(sourceChart: Spreadsheet.EmbeddedChart, left: Number, top: Number, width: Number, height: Number): SheetsChart; + insertSheetsChart(sheetsChart: SheetsChart): SheetsChart; + insertSheetsChartAsImage(sourceChart: Spreadsheet.EmbeddedChart): Image; + insertSheetsChartAsImage(sourceChart: Spreadsheet.EmbeddedChart, left: Number, top: Number, width: Number, height: Number): Image; + insertTable(numRows: Integer, numColumns: Integer): Table; + insertTable(numRows: Integer, numColumns: Integer, left: Number, top: Number, width: Number, height: Number): Table; + insertTable(table: Table): Table; + insertVideo(videoUrl: string): Video; + insertVideo(videoUrl: string, left: Number, top: Number, width: Number, height: Number): Video; + insertVideo(video: Video): Video; + insertWordArt(wordArt: WordArt): WordArt; + move(index: Integer): void; + remove(): void; + replaceAllText(findText: string, replaceText: string): Integer; + replaceAllText(findText: string, replaceText: string, matchCase: boolean): Integer; + selectAsCurrentPage(): void; + } + + /** + * The relative position of a Slide. + */ + export enum SlidePosition { NEXT_SLIDE, PREVIOUS_SLIDE, FIRST_SLIDE, LAST_SLIDE } + + /** + * Creates and opens Presentations that can be edited. + * + * // Open a presentation by ID. + * var preso = SlidesApp.openById('PRESENTATION_ID_GOES_HERE'); + * + * // Create and open a presentation. + * preso = SlidesApp.create('Presentation Name'); + */ + export interface SlidesApp { + AlignmentPosition: typeof AlignmentPosition; + ArrowStyle: typeof ArrowStyle; + AutoTextType: typeof AutoTextType; + CellMergeState: typeof CellMergeState; + ColorType: typeof ColorType; + ContentAlignment: typeof ContentAlignment; + DashStyle: typeof DashStyle; + FillType: typeof FillType; + LineCategory: typeof LineCategory; + LineFillType: typeof LineFillType; + LineType: typeof LineType; + LinkType: typeof LinkType; + ListPreset: typeof ListPreset; + PageBackgroundType: typeof PageBackgroundType; + PageElementType: typeof PageElementType; + PageType: typeof PageType; + ParagraphAlignment: typeof ParagraphAlignment; + PlaceholderType: typeof PlaceholderType; + PredefinedLayout: typeof PredefinedLayout; + SelectionType: typeof SelectionType; + ShapeType: typeof ShapeType; + SheetsChartEmbedType: typeof SheetsChartEmbedType; + SlidePosition: typeof SlidePosition; + SpacingMode: typeof SpacingMode; + TextBaselineOffset: typeof TextBaselineOffset; + TextDirection: typeof TextDirection; + ThemeColorType: typeof ThemeColorType; + VideoSourceType: typeof VideoSourceType; + create(name: string): Presentation; + getActivePresentation(): Presentation; + getUi(): Base.Ui; + newAffineTransformBuilder(): AffineTransformBuilder; + openById(id: string): Presentation; + openByUrl(url: string): Presentation; + } + + /** + * A solid color fill. + * + * SolidFill objects are detached and immutable, so do not reflect changes made after + * they have been created. + */ + export interface SolidFill { + getAlpha(): Number; + getColor(): Color; + } + + /** + * The different modes for paragraph spacing. + */ + export enum SpacingMode { UNSUPPORTED, NEVER_COLLAPSE, COLLAPSE_LISTS } + + /** + * A PageElement representing a table. + */ + export interface Table { + alignOnPage(alignmentPosition: AlignmentPosition): Table; + appendColumn(): TableColumn; + appendRow(): TableRow; + duplicate(): PageElement; + getCell(rowIndex: Integer, columnIndex: Integer): TableCell; + getColumn(columnIndex: Integer): TableColumn; + getDescription(): string; + getHeight(): Number; + getInherentHeight(): Number; + getInherentWidth(): Number; + getLeft(): Number; + getNumColumns(): Integer; + getNumRows(): Integer; + getObjectId(): string; + getPageElementType(): PageElementType; + getParentGroup(): Group; + getParentPage(): Page; + getRotation(): Number; + getRow(rowIndex: Integer): TableRow; + getTitle(): string; + getTop(): Number; + getTransform(): AffineTransform; + getWidth(): Number; + insertColumn(index: Integer): TableColumn; + insertRow(index: Integer): TableRow; + preconcatenateTransform(transform: AffineTransform): Table; + remove(): void; + scaleHeight(ratio: Number): Table; + scaleWidth(ratio: Number): Table; + select(): void; + select(replace: boolean): void; + setHeight(height: Number): Table; + setLeft(left: Number): Table; + setRotation(angle: Number): Table; + setTop(top: Number): Table; + setTransform(transform: AffineTransform): Table; + setWidth(width: Number): Table; + } + + /** + * A cell in a table. + */ + export interface TableCell { + getColumnIndex(): Integer; + getColumnSpan(): Integer; + getContentAlignment(): ContentAlignment; + getFill(): Fill; + getHeadCell(): TableCell; + getMergeState(): CellMergeState; + getParentColumn(): TableColumn; + getParentRow(): TableRow; + getParentTable(): Table; + getRowIndex(): Integer; + getRowSpan(): Integer; + getText(): TextRange; + setContentAlignment(contentAlignment: ContentAlignment): TableCell; + } + + /** + * A collection of one or more TableCell instances. + */ + export interface TableCellRange { + getTableCells(): TableCell[]; + } + + /** + * A column in a table. A column consists of a list of table cells. A column is identified by the + * column index. + */ + export interface TableColumn { + getCell(cellIndex: Integer): TableCell; + getIndex(): Integer; + getNumCells(): Integer; + getParentTable(): Table; + getWidth(): Number; + remove(): void; + } + + /** + * A row in a table. A row consists of a list of table cells. A row is identified by the row index. + */ + export interface TableRow { + getCell(cellIndex: Integer): TableCell; + getIndex(): Integer; + getMinimumHeight(): Number; + getNumCells(): Integer; + getParentTable(): Table; + remove(): void; + } + + /** + * The text vertical offset from its normal position. + */ + export enum TextBaselineOffset { UNSUPPORTED, NONE, SUPERSCRIPT, SUBSCRIPT } + + /** + * The directions text can flow in. + */ + export enum TextDirection { UNSUPPORTED, LEFT_TO_RIGHT, RIGHT_TO_LEFT } + + /** + * A segment of the text contents of a Shape or a TableCell. + */ + export interface TextRange { + appendParagraph(text: string): Paragraph; + appendRange(textRange: TextRange): TextRange; + appendRange(textRange: TextRange, matchSourceFormatting: boolean): TextRange; + appendText(text: string): TextRange; + asRenderedString(): string; + asString(): string; + clear(): void; + clear(startOffset: Integer, endOffset: Integer): void; + find(pattern: string): TextRange[]; + find(pattern: string, startOffset: Integer): TextRange[]; + getAutoTexts(): AutoText[]; + getEndIndex(): Integer; + getLength(): Integer; + getLinks(): TextRange[]; + getListParagraphs(): Paragraph[]; + getListStyle(): ListStyle; + getParagraphStyle(): ParagraphStyle; + getParagraphs(): Paragraph[]; + getRange(startOffset: Integer, endOffset: Integer): TextRange; + getRuns(): TextRange[]; + getStartIndex(): Integer; + getTextStyle(): TextStyle; + insertParagraph(startOffset: Integer, text: string): Paragraph; + insertRange(startOffset: Integer, textRange: TextRange): TextRange; + insertRange(startOffset: Integer, textRange: TextRange, matchSourceFormatting: boolean): TextRange; + insertText(startOffset: Integer, text: string): TextRange; + isEmpty(): boolean; + replaceAllText(findText: string, replaceText: string): Integer; + replaceAllText(findText: string, replaceText: string, matchCase: boolean): Integer; + select(): void; + setText(newText: string): TextRange; + } + + /** + * The style of text. + * + * Read methods in this class return null if the corresponding TextRange spans + * multiple text runs, and those runs have different values for the read method being called. To + * avoid this, query for text styles using the TextRanges returned by the TextRange.getRuns() method. + */ + export interface TextStyle { + getBackgroundColor(): Color; + getBaselineOffset(): TextBaselineOffset; + getFontFamily(): string; + getFontSize(): Number; + getFontWeight(): Integer; + getForegroundColor(): Color; + getLink(): Link; + hasLink(): boolean; + isBackgroundTransparent(): boolean; + isBold(): boolean; + isItalic(): boolean; + isSmallCaps(): boolean; + isStrikethrough(): boolean; + isUnderline(): boolean; + removeLink(): TextStyle; + setBackgroundColor(color: Color): TextStyle; + setBackgroundColor(red: Integer, green: Integer, blue: Integer): TextStyle; + setBackgroundColor(hexColor: string): TextStyle; + setBackgroundColor(color: ThemeColorType): TextStyle; + setBackgroundColorTransparent(): TextStyle; + setBaselineOffset(offset: TextBaselineOffset): TextStyle; + setBold(bold: boolean): TextStyle; + setFontFamily(fontFamily: string): TextStyle; + setFontFamilyAndWeight(fontFamily: string, fontWeight: Integer): TextStyle; + setFontSize(fontSize: Number): TextStyle; + setForegroundColor(foregroundColor: Color): TextStyle; + setForegroundColor(red: Integer, green: Integer, blue: Integer): TextStyle; + setForegroundColor(hexColor: string): TextStyle; + setForegroundColor(color: ThemeColorType): TextStyle; + setItalic(italic: boolean): TextStyle; + setLinkSlide(slideIndex: Integer): TextStyle; + setLinkSlide(slide: Slide): TextStyle; + setLinkSlide(slidePosition: SlidePosition): TextStyle; + setLinkUrl(url: string): TextStyle; + setSmallCaps(smallCaps: boolean): TextStyle; + setStrikethrough(strikethrough: boolean): TextStyle; + setUnderline(underline: boolean): TextStyle; + } + + /** + * A color that refers to an entry in the page's ColorScheme. + */ + export interface ThemeColor { + getColorType(): ColorType; + getThemeColorType(): ThemeColorType; + } + + /** + * The name of an entry in the page's color scheme. + */ + export enum ThemeColorType { UNSUPPORTED, DARK1, LIGHT1, DARK2, LIGHT2, ACCENT1, ACCENT2, ACCENT3, ACCENT4, ACCENT5, ACCENT6, HYPERLINK, FOLLOWED_HYPERLINK } + + /** + * A PageElement representing a video. + */ + export interface Video { + alignOnPage(alignmentPosition: AlignmentPosition): Video; + duplicate(): PageElement; + getBorder(): Border; + getDescription(): string; + getHeight(): Number; + getInherentHeight(): Number; + getInherentWidth(): Number; + getLeft(): Number; + getObjectId(): string; + getPageElementType(): PageElementType; + getParentGroup(): Group; + getParentPage(): Page; + getRotation(): Number; + getSource(): VideoSourceType; + getThumbnailUrl(): string; + getTitle(): string; + getTop(): Number; + getTransform(): AffineTransform; + getUrl(): string; + getVideoId(): string; + getWidth(): Number; + preconcatenateTransform(transform: AffineTransform): Video; + remove(): void; + scaleHeight(ratio: Number): Video; + scaleWidth(ratio: Number): Video; + select(): void; + select(replace: boolean): void; + setHeight(height: Number): Video; + setLeft(left: Number): Video; + setRotation(angle: Number): Video; + setTop(top: Number): Video; + setTransform(transform: AffineTransform): Video; + setWidth(width: Number): Video; + } + + /** + * The video source types. + */ + export enum VideoSourceType { UNSUPPORTED, YOUTUBE } + + /** + * A PageElement representing word art. + */ + export interface WordArt { + alignOnPage(alignmentPosition: AlignmentPosition): WordArt; + duplicate(): PageElement; + getDescription(): string; + getHeight(): Number; + getInherentHeight(): Number; + getInherentWidth(): Number; + getLeft(): Number; + getLink(): Link; + getObjectId(): string; + getPageElementType(): PageElementType; + getParentGroup(): Group; + getParentPage(): Page; + getRenderedText(): string; + getRotation(): Number; + getTitle(): string; + getTop(): Number; + getTransform(): AffineTransform; + getWidth(): Number; + preconcatenateTransform(transform: AffineTransform): WordArt; + remove(): void; + removeLink(): void; + scaleHeight(ratio: Number): WordArt; + scaleWidth(ratio: Number): WordArt; + select(): void; + select(replace: boolean): void; + setHeight(height: Number): WordArt; + setLeft(left: Number): WordArt; + setLinkSlide(slideIndex: Integer): Link; + setLinkSlide(slide: Slide): Link; + setLinkSlide(slidePosition: SlidePosition): Link; + setLinkUrl(url: string): Link; + setRotation(angle: Number): WordArt; + setTop(top: Number): WordArt; + setTransform(transform: AffineTransform): WordArt; + setWidth(width: Number): WordArt; + } + + } +} + +declare var SlidesApp: GoogleAppsScript.Slides.SlidesApp; diff --git a/types/google-apps-script/index.d.ts b/types/google-apps-script/index.d.ts index 0e4ca164a9..df2cca1363 100644 --- a/types/google-apps-script/index.d.ts +++ b/types/google-apps-script/index.d.ts @@ -26,6 +26,7 @@ /// /// /// +/// /// /// ///