diff --git a/types/google-apps-script/google-apps-script.base.d.ts b/types/google-apps-script/google-apps-script.base.d.ts
index 7558263306..0b5236af0f 100644
--- a/types/google-apps-script/google-apps-script.base.d.ts
+++ b/types/google-apps-script/google-apps-script.base.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for Google Apps Script 2018-07-11
+// Type definitions for Google Apps Script 2018-12-26
// Project: https://developers.google.com/apps-script/
// Definitions by: motemen
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
@@ -7,7 +7,7 @@
declare namespace GoogleAppsScript {
export module Base {
- /**
+ /**
* A data interchange object for Apps Script services.
*/
export interface Blob {
@@ -74,9 +74,10 @@ declare namespace GoogleAppsScript {
}
/**
- * This class provides access to G Suite specific dialog boxes.
+ * This class provides access to dialog boxes specific to Google Sheets.
*
* The methods in this class are only available for use in the context of a Google Spreadsheet.
+ * Please use G Suite dialogs instead.
* See also
*
* ButtonSet
@@ -163,9 +164,9 @@ declare namespace GoogleAppsScript {
/**
* An enumeration that provides access to MIME-type declarations without typing the strings
- * explicitly. Any method that expects a MIME type rendered as a string (for example,
- * 'image/png') will also accept one of the values below, so long as the method
- * supports the underlying MIME type.
+ * explicitly. Methods that expect a MIME type rendered as a string (for example,
+ * 'image/png') also accept any of the values below, so long as the method supports the
+ * underlying MIME type.
*
* // Use MimeType enum to log the name of every Google Doc in the user's Drive.
* var docs = DriveApp.getFilesByType(MimeType.GOOGLE_DOCS);
@@ -305,11 +306,15 @@ declare namespace GoogleAppsScript {
* }
*/
export interface console {
+ error(): void;
error(formatOrObject: Object, ...values: Object[]): void;
+ info(): void;
info(formatOrObject: Object, ...values: Object[]): void;
+ log(): void;
log(formatOrObject: Object, ...values: Object[]): void;
time(label: string): void;
timeEnd(label: string): void;
+ warn(): void;
warn(formatOrObject: Object, ...values: Object[]): void;
}
@@ -321,3 +326,4 @@ declare var Logger: GoogleAppsScript.Base.Logger;
// conflicts with MimeType in lib.d.ts
// declare var MimeType: GoogleAppsScript.Base.MimeType;
declare var Session: GoogleAppsScript.Base.Session;
+declare var console: GoogleAppsScript.Base.console;
diff --git a/types/google-apps-script/google-apps-script.card-service.d.ts b/types/google-apps-script/google-apps-script.card-service.d.ts
new file mode 100644
index 0000000000..64f5194595
--- /dev/null
+++ b/types/google-apps-script/google-apps-script.card-service.d.ts
@@ -0,0 +1,753 @@
+// Type definitions for Google Apps Script 2018-12-26
+// Project: https://developers.google.com/apps-script/
+// Definitions by: motemen
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+///
+///
+
+declare namespace GoogleAppsScript {
+ export module Card_Service {
+ /**
+ * An action that enables interactivity within UI elements. The action does not happen directly on
+ * the client but rather invokes an Apps Script callback function with optional parameters.
+ *
+ * var image = CardService.newImage()
+ * .setOnClickAction(CardService.newAction()
+ * .setFunctionName("handleImageClick")
+ * .setParameters({imageSrc: 'carImage'}));
+ */
+ export interface Action {
+ setFunctionName(functionName: string): Action;
+ setLoadIndicator(loadIndicator: LoadIndicator): Action;
+ setParameters(parameters: Object): Action;
+ setMethodName(functionName: string): Action;
+ }
+
+ /**
+ * The response object that may be returned from a callback function (e.g., a form response handler)
+ * to perform one or more actions on the client. Some combinations of actions are not supported.
+ *
+ * // An action that opens a link
+ * var actionResponse = CardService.newActionResponseBuilder()
+ * .setOpenLink(CardService.newOpenLink()
+ * .setUrl("https://www.google.com"))
+ * .build();
+ *
+ * // An action that shows a notification.
+ * var actionResponse = CardService.newActionResponseBuilder()
+ * .setNotification(CardService.newNotification()
+ * .setType(CardService.NotificationType.INFO)
+ * .setText("Some info to display to user"))
+ * .build();
+ *
+ * // An action that shows an additional card. It also sets a flag to indicate that the original
+ * // state data has changed.
+ *
+ * var cardBuilder = CardService.newCardBuilder();
+ * // Build card ...
+ * var actionResponse = CardService.newActionResponseBuilder()
+ * .setNavigation(CardService.newNavigation()
+ * .pushCard(cardBuilder.build()))
+ * .setStateChanged(true)
+ * .build();
+ */
+ export interface ActionResponse {
+ printJson(): string;
+ }
+
+ /**
+ * A builder for ActionResponse objects.
+ */
+ export interface ActionResponseBuilder {
+ build(): ActionResponse;
+ setNavigation(navigation: Navigation): ActionResponseBuilder;
+ setNotification(notification: Notification): ActionResponseBuilder;
+ setOpenLink(openLink: OpenLink): ActionResponseBuilder;
+ setStateChanged(stateChanged: boolean): ActionResponseBuilder;
+ }
+
+ /**
+ * An authorization action that will send the user to the AuthorizationUrl when clicked.
+ *
+ * CardService.newAuthorizationAction()
+ * .setAuthorizationUrl("http://google.com/");
+ */
+ export interface AuthorizationAction {
+ setAuthorizationUrl(authorizationUrl: string): AuthorizationAction;
+ }
+
+ /**
+ * An error that can be returned to trigger an authorization card to be shown to the user.
+ *
+ * CardService.newAuthorizationException()
+ * .setAuthorizationUrl("http://auth.com/")
+ * .setResourceDisplayName("Example Resource")
+ * .throwException();
+ */
+ export interface AuthorizationException {
+ printJson(): string;
+ setAuthorizationUrl(authUrl: string): AuthorizationException;
+ setCustomUiCallback(callback: string): AuthorizationException;
+ setResourceDisplayName(name: string): AuthorizationException;
+ throwException(): void;
+ }
+
+ /**
+ * A base class for all buttons.
+ */
+ export interface Button {
+ setAuthorizationAction(action: AuthorizationAction): Button;
+ setComposeAction(action: Action, composedEmailType: ComposedEmailType): Button;
+ setOnClickAction(action: Action): Button;
+ setOnClickOpenLinkAction(action: Action): Button;
+ setOpenLink(openLink: OpenLink): Button;
+ }
+
+ /**
+ * Holds a set of Button objects that are displayed in a row.
+ *
+ * var textButton = CardService.newTextButton();
+ * // Finish building the text button...
+ *
+ * var imageButton = CardService.newImageButton();
+ * // Finish building the image button...
+ *
+ * var buttonSet = CardService.newButtonSet()
+ * .addButton(textButton)
+ * .addButton(imageButton);
+ */
+ export interface ButtonSet {
+ addButton(button: Button): ButtonSet;
+ }
+
+ /**
+ * A context card that represents a single view in the
+ * UI.
+ *
+ * var cardSection = CardService.newCardSection();
+ * // Finish building the card section ...
+ *
+ * var card = CardService.newCardBuilder()
+ * .setName("Card name")
+ * .setHeader(CardService.newCardHeader().setTitle("Card title"))
+ * .addSection(cardSection)
+ * .build();
+ */
+ export interface Card {
+ printJson(): string;
+ }
+
+ /**
+ * A clickable menu item that is added to the card header menu.
+ *
+ * var action = CardService.newAction();
+ * // Finish building the action...
+ *
+ * var cardAction = CardService.newCardAction()
+ * .setText("Card action")
+ * .setOnClickAction(action);
+ */
+ export interface CardAction {
+ setAuthorizationAction(action: AuthorizationAction): CardAction;
+ setComposeAction(action: Action, composedEmailType: ComposedEmailType): CardAction;
+ setOnClickAction(action: Action): CardAction;
+ setOnClickOpenLinkAction(action: Action): CardAction;
+ setOpenLink(openLink: OpenLink): CardAction;
+ setText(text: string): CardAction;
+ }
+
+ /**
+ * A builder for Card objects.
+ */
+ export interface CardBuilder {
+ addCardAction(cardAction: CardAction): CardBuilder;
+ addSection(section: CardSection): CardBuilder;
+ build(): Card;
+ setHeader(cardHeader: CardHeader): CardBuilder;
+ setName(name: string): CardBuilder;
+ }
+
+ /**
+ * The header of a Card.
+ *
+ * var cardHeader = CardService.newCardHeader()
+ * .setTitle("Card header title")
+ * .setSubtitle("Card header subtitle")
+ * .setImageStyle(CardService.ImageStyle.CIRCLE)
+ * .setImageUrl("https://image.png");
+ */
+ export interface CardHeader {
+ setImageAltText(imageAltText: string): CardHeader;
+ setImageStyle(imageStyle: ImageStyle): CardHeader;
+ setImageUrl(imageUrl: string): CardHeader;
+ setSubtitle(subtitle: string): CardHeader;
+ setTitle(title: string): CardHeader;
+ }
+
+ /**
+ * A card section holds groups of widgets and provides visual separation between them.
+ *
+ * var image = CardService.newImage();
+ * // Build image ...
+ * var textParagraph = CardService.newTextParagraph();
+ * // Build text paragraph ...
+ *
+ * var cardSection = CardService.newCardSection()
+ * .setHeader("Section header")
+ * .addWidget(image)
+ * .addWidget(textParagraph);
+ */
+ export interface CardSection {
+ addWidget(widget: Widget): CardSection;
+ setCollapsible(collapsible: boolean): CardSection;
+ setHeader(header: string): CardSection;
+ setNumUncollapsibleWidgets(numUncollapsibleWidgets: Integer): CardSection;
+ }
+
+ /**
+ * CardService provides the ability to create generic cards used across different Google
+ * extensibility products, such as Gmail add-ons.
+ *
+ * Currently you can only use this service to construct Gmail add-ons.
+ *
+ * return CardService.newCardBuilder()
+ * .setHeader(CardService.newCardHeader().setTitle("CardTitle"))
+ * .build();
+ *
+ * Or you can return multiple Cards like so:
+ *
+ * return [
+ * CardService.newCardBuilder().build(),
+ * CardService.newCardBuilder().build(),
+ * CardService.newCardBuilder().build()
+ * ]
+ *
+ * The following shows how you could define a card with a header, text, an image and a menu item:
+ *
+ * function createWidgetDemoCard() {
+ * return CardService
+ * .newCardBuilder()
+ * .setHeader(
+ * CardService.newCardHeader()
+ * .setTitle('Widget demonstration')
+ * .setSubtitle('Check out these widgets')
+ * .setImageStyle(CardService.ImageStyle.SQUARE)
+ * .setImageUrl(
+ * 'https://www.example.com/images/headerImage.png'))
+ * .addSection(
+ * CardService.newCardSection()
+ * .setHeader('Simple widgets') // optional
+ * .addWidget(CardService.newTextParagraph().setText(
+ * 'These widgets are display-only. ' +
+ * 'A text paragraph can have multiple lines and ' +
+ * 'formatting.'))
+ * .addWidget(CardService.newImage().setImageUrl(
+ * 'https://www.example.com/images/mapsImage.png')))
+ * .addCardAction(CardService.newCardAction().setText('Gmail').setOpenLink(
+ * CardService.newOpenLink().setUrl('https://mail.google.com/mail')))
+ * .build();
+ * }
+ */
+ export interface CardService {
+ ComposedEmailType: typeof ComposedEmailType;
+ ContentType: typeof ContentType;
+ Icon: typeof Icon;
+ ImageStyle: typeof ImageStyle;
+ LoadIndicator: typeof LoadIndicator;
+ NotificationType: typeof NotificationType;
+ OnClose: typeof OnClose;
+ OpenAs: typeof OpenAs;
+ SelectionInputType: typeof SelectionInputType;
+ TextButtonStyle: typeof TextButtonStyle;
+ UpdateDraftBodyType: typeof UpdateDraftBodyType;
+ newAction(): Action;
+ newActionResponseBuilder(): ActionResponseBuilder;
+ newAuthorizationAction(): AuthorizationAction;
+ newAuthorizationException(): AuthorizationException;
+ newButtonSet(): ButtonSet;
+ newCardAction(): CardAction;
+ newCardBuilder(): CardBuilder;
+ newCardHeader(): CardHeader;
+ newCardSection(): CardSection;
+ newComposeActionResponseBuilder(): ComposeActionResponseBuilder;
+ newImage(): Image;
+ newImageButton(): ImageButton;
+ newKeyValue(): KeyValue;
+ newNavigation(): Navigation;
+ newNotification(): Notification;
+ newOpenLink(): OpenLink;
+ newSelectionInput(): SelectionInput;
+ newSuggestions(): Suggestions;
+ newSuggestionsResponseBuilder(): SuggestionsResponseBuilder;
+ newSwitch(): Switch;
+ newTextButton(): TextButton;
+ newTextInput(): TextInput;
+ newTextParagraph(): TextParagraph;
+ newUniversalActionResponseBuilder(): UniversalActionResponseBuilder;
+ newUpdateDraftActionResponseBuilder(): UpdateDraftActionResponseBuilder;
+ newUpdateDraftBodyAction(): UpdateDraftBodyAction;
+ }
+
+ /**
+ * The response object that may be returned from a callback method for compose action in a Gmail add-on.
+ *
+ * Note: This object isn't related to compose actions that are
+ * used to extend the compose UI. Rather,
+ * this object is a response to an Action that composes draft messages when a specific UI element is
+ * selected.
+ *
+ * var composeActionResponse = CardService.newComposeActionResponseBuilder()
+ * .setGmailDraft(GmailApp.createDraft("recipient", "subject", "body"))
+ * .build();
+ */
+ export interface ComposeActionResponse {
+ printJson(): string;
+ }
+
+ /**
+ * A builder for ComposeActionResponse objects.
+ *
+ * Note: This object isn't related to compose actions that are
+ * used to extend the compose UI. Rather,
+ * this builder creates responses to an Action that composes draft messages when a specific
+ * UI element is selected.
+ */
+ export interface ComposeActionResponseBuilder {
+ build(): ComposeActionResponse;
+ setGmailDraft(draft: Gmail.GmailDraft): ComposeActionResponseBuilder;
+ }
+
+ /**
+ * An enum value that specifies whether the composed email is a standalone or reply draft.
+ */
+ export enum ComposedEmailType { REPLY_AS_DRAFT, STANDALONE_DRAFT }
+
+ /**
+ * An enum value that specifies the content type of the content generated by a UpdateDraftActionResponse.
+ */
+ export enum ContentType { TEXT, MUTABLE_HTML, IMMUTABLE_HTML }
+
+ /**
+ * Predefined icons that can be used in various UI objects, such as ImageButton or KeyValue widgets.
+ */
+ export enum Icon { NONE, AIRPLANE, BOOKMARK, BUS, CAR, CLOCK, CONFIRMATION_NUMBER_ICON, DOLLAR, DESCRIPTION, EMAIL, EVENT_PERFORMER, EVENT_SEAT, FLIGHT_ARRIVAL, FLIGHT_DEPARTURE, HOTEL, HOTEL_ROOM_TYPE, INVITE, MAP_PIN, MEMBERSHIP, MULTIPLE_PEOPLE, OFFER, PERSON, PHONE, RESTAURANT_ICON, SHOPPING_CART, STAR, STORE, TICKET, TRAIN, VIDEO_CAMERA, VIDEO_PLAY }
+
+ /**
+ * A widget that shows a single image.
+ *
+ * var image = CardService.newImage().setAltText("A nice image").setImageUrl("https://image.png");
+ */
+ export interface Image {
+ setAltText(altText: string): Image;
+ setAuthorizationAction(action: AuthorizationAction): Image;
+ setComposeAction(action: Action, composedEmailType: ComposedEmailType): Image;
+ setImageUrl(url: string): Image;
+ setOnClickAction(action: Action): Image;
+ setOnClickOpenLinkAction(action: Action): Image;
+ setOpenLink(openLink: OpenLink): Image;
+ }
+
+ /**
+ * A ImageButton with an image displayed on it.
+ *
+ * var imageButton = CardService.newImageButton()
+ * .setAltText("An image button with an airplane icon.")
+ * .setIcon(CardService.Icon.AIRPLANE)
+ * .setOpenLink(CardService.newOpenLink()
+ * .setUrl("https://airplane.com"));
+ */
+ export interface ImageButton {
+ setAltText(altText: string): ImageButton;
+ setAuthorizationAction(action: AuthorizationAction): ImageButton;
+ setComposeAction(action: Action, composedEmailType: ComposedEmailType): ImageButton;
+ setIcon(icon: Icon): ImageButton;
+ setIconUrl(url: string): ImageButton;
+ setOnClickAction(action: Action): ImageButton;
+ setOnClickOpenLinkAction(action: Action): ImageButton;
+ setOpenLink(openLink: OpenLink): ImageButton;
+ }
+
+ /**
+ * An enum that defines an image cropping style.
+ */
+ export enum ImageStyle { SQUARE, CIRCLE }
+
+ /**
+ * A widget that displays one or more "keys" around a text "value". The possible keys include an
+ * icon, a label above and a label below. Setting the text content and one of the keys is required
+ * using setContent(text) and one of setIcon(icon), setIconUrl(url), setTopLabel(text),
+ * or setBottomLabel(text).
+ *
+ * var imageKeyValue = CardService.newKeyValue()
+ * .setIconUrl("https://icon.png")
+ * .setContent("KeyValue widget with an image on the left and text on the right");
+ *
+ * var textKeyValue = CardService.newKeyValue()
+ * .setTopLabel("Text key")
+ * .setContent("KeyValue widget with text key on top and cotent below");
+ *
+ * var multilineKeyValue = CardService.newKeyValue()
+ * .setTopLabel("Top label - single line)")
+ * .setContent("Content can be multiple lines")
+ * .setMultiline(true)
+ * .setBottomLabel("Bottom label - single line");
+ */
+ export interface KeyValue {
+ setAuthorizationAction(action: AuthorizationAction): KeyValue;
+ setBottomLabel(text: string): KeyValue;
+ setButton(button: Button): KeyValue;
+ setComposeAction(action: Action, composedEmailType: ComposedEmailType): KeyValue;
+ setContent(text: string): KeyValue;
+ setIcon(icon: Icon): KeyValue;
+ setIconAltText(altText: string): KeyValue;
+ setIconUrl(url: string): KeyValue;
+ setMultiline(multiline: boolean): KeyValue;
+ setOnClickAction(action: Action): KeyValue;
+ setOnClickOpenLinkAction(action: Action): KeyValue;
+ setOpenLink(openLink: OpenLink): KeyValue;
+ setSwitch(switchToSet: Switch): KeyValue;
+ setTopLabel(text: string): KeyValue;
+ }
+
+ /**
+ * An enum type that specifies the type of loading or progress indicator to display while an Action is being processed.
+ */
+ export enum LoadIndicator { SPINNER, NONE }
+
+ /**
+ * A helper object that controls card navigation. See the card navigation guide for more details.
+ */
+ export interface Navigation {
+ popCard(): Navigation;
+ popToNamedCard(cardName: string): Navigation;
+ popToRoot(): Navigation;
+ printJson(): string;
+ pushCard(card: Card): Navigation;
+ updateCard(card: Card): Navigation;
+ }
+
+ /**
+ * A notification shown to the user as a response to interacting with a UI element.
+ *
+ * var action = CardService.newAction().setFunctionName("notificationCallback");
+ * CardService.newTextButton().setText('Save').setOnClickAction(action);
+ *
+ * // ...
+ *
+ * function notificationCallback() {
+ * return CardService.newActionResponseBuilder()
+ * .setNotification(CardService.newNotification()
+ * .setType(CardService.NotificationType.WARNING)
+ * .setText("Some info to display to user"))
+ * .build();
+ * }
+ */
+ export interface Notification {
+ setText(text: string): Notification;
+ setType(type: NotificationType): Notification;
+ }
+
+ /**
+ * Type of notification to show.
+ */
+ export enum NotificationType { INFO, ERROR, WARNING }
+
+ /**
+ * An enum that specifies what to do when a URL opened through an OpenLink is closed.
+ *
+ * When a link is opened, the client either forgets about it or waits until the window is closed.
+ * The implementation depends on the client platform capabilities. OnClose may cause OpenAs to be ignored; if the client platform cannot support both selected values together,
+ * OnClose takes precedence.
+ */
+ export enum OnClose { NOTHING, RELOAD_ADD_ON }
+
+ /**
+ * An enum that specifies how to open a URL.
+ *
+ * The client can open a URL as either a full size window (if that is the frame used by the
+ * client), or an overlay (such as a pop-up). The implementation depends on the client platform
+ * capabilities, and the value selected may be ignored if the client does not support it. FULL_SIZE is supported by all clients.
+ *
+ * Using OnClose may cause OpenAs to be ignored; if the client platform cannot
+ * support both selected values together, OnClose takes precedence.
+ */
+ export enum OpenAs { FULL_SIZE, OVERLAY }
+
+ /**
+ * Represents an action to open a link with some options.
+ *
+ * // A button that opens as a link in an overlay and
+ * // requires a reload when closed.
+ * var button = CardService.newTextButton()
+ * .setText("This button opens a link in an overlay window")
+ * .setOpenLink(CardService.newOpenLink()
+ * .setUrl("https://www.google.com")
+ * .setOpenAs(CardService.OpenAs.OVERLAY)
+ * .setOnClose(CardService.OnClose.RELOAD_ADD_ON));
+ *
+ * // An action response that opens a link in full screen and
+ * // requires no action when closed.
+ * var actionResponse = CardService.newActionResponseBuilder()
+ * .setOpenLink(CardService.newOpenLink()
+ * .setUrl("https://www.google.com")
+ * .setOpenAs(CardService.OpenAs.FULL_SIZE)
+ * .setOnClose(CardService.OnClose.NOTHING));
+ * .build();
+ */
+ export interface OpenLink {
+ setOnClose(onClose: OnClose): OpenLink;
+ setOpenAs(openAs: OpenAs): OpenLink;
+ setUrl(url: string): OpenLink;
+ }
+
+ /**
+ * An input field that allows choosing between a set of predefined options.
+ *
+ * var checkboxGroup = CardService.newSelectionInput()
+ * .setType(CardService.SelectionInputType.CHECK_BOX)
+ * .setTitle("A group of checkboxes. Multiple selections are allowed.")
+ * .setFieldName("checkbox_field")
+ * .addItem("checkbox one title", "checkbox_one_value", false)
+ * .addItem("checkbox two title", "checkbox_two_value", true)
+ * .addItem("checkbox three title", "checkbox_three_value", false)
+ * .setOnChangeAction(CardService.newAction()
+ * .setFunctionName("handleCheckboxChange"));
+ *
+ * var radioGroup = CardService.newSelectionInput()
+ * .setType(CardService.SelectionInputType.RADIO_BUTTON)
+ * .setTitle("A group of radio buttons. Only a single selection is allowed.")
+ * .setFieldName("checkbox_field")
+ * .addItem("radio button one title", "radio_one_value", true)
+ * .addItem("radio button two title", "radio_two_value", true)
+ * .addItem("radio button three title", "radio_three_value", false);
+ */
+ export interface SelectionInput {
+ addItem(text: Object, value: Object, selected: boolean): SelectionInput;
+ setFieldName(fieldName: string): SelectionInput;
+ setOnChangeAction(action: Action): SelectionInput;
+ setTitle(title: string): SelectionInput;
+ setType(type: SelectionInputType): SelectionInput;
+ }
+
+ /**
+ * Type of selection input.
+ */
+ export enum SelectionInputType { CHECK_BOX, RADIO_BUTTON, DROPDOWN }
+
+ /**
+ * Autocomplete suggestions to supplement a TextInput widget.
+ *
+ * var textInput = CardService.newTextInput()
+ * .setSuggestions(CardService.newSuggestions()
+ * .addSuggestion("First suggestion")
+ * .addSuggestion("Second suggestion"))
+ */
+ export interface Suggestions {
+ addSuggestion(suggestion: string): Suggestions;
+ addSuggestions(suggestions: Object[]): Suggestions;
+ }
+
+ /**
+ * A response object that can be returned from a suggestions callback function. This is used with
+ * TextInput widgets that implement autocomplete.
+ *
+ * var suggestionsResponse = CardService.newSuggestionsResponseBuilder()
+ * .setSuggestions(CardService.newSuggestions()
+ * .addSuggestion("First suggestion")
+ * .addSuggestion("Second suggestion"))
+ * .build();
+ */
+ export interface SuggestionsResponse {
+ printJson(): string;
+ }
+
+ /**
+ * A builder for SuggestionsResponse objects.
+ */
+ export interface SuggestionsResponseBuilder {
+ build(): SuggestionsResponse;
+ setSuggestions(suggestions: Suggestions): SuggestionsResponseBuilder;
+ }
+
+ /**
+ * A UI element that supports being toggled on or off. This can only be used within a KeyValue widget.
+ *
+ * var switchKeyValue = CardService.newKeyValue()
+ * .setTopLabel("Switch key value widget label")
+ * .setContent("This is a key value widget with a switch on the right")
+ * .setSwitch(CardService.newSwitch()
+ * .setFieldName("form_input_switch_key")
+ * .setValue("form_input_switch_value")
+ * .setOnChangeAction(CardService.newAction()
+ * .setFunctionName("handleSwitchChange")));
+ */
+ export interface Switch {
+ setFieldName(fieldName: string): Switch;
+ setOnChangeAction(action: Action): Switch;
+ setSelected(selected: boolean): Switch;
+ setValue(value: string): Switch;
+ }
+
+ /**
+ * A TextButton with a text label.
+ *
+ * var textButton = CardService.newTextButton()
+ * .setText("Open Link")
+ * .setOpenLink(CardService.newOpenLink()
+ * .setUrl("https://www.google.com"));
+ */
+ export interface TextButton {
+ setAuthorizationAction(action: AuthorizationAction): TextButton;
+ setBackgroundColor(backgroundColor: string): TextButton;
+ setComposeAction(action: Action, composedEmailType: ComposedEmailType): TextButton;
+ setDisabled(disabled: boolean): TextButton;
+ setOnClickAction(action: Action): TextButton;
+ setOnClickOpenLinkAction(action: Action): TextButton;
+ setOpenLink(openLink: OpenLink): TextButton;
+ setText(text: string): TextButton;
+ setTextButtonStyle(textButtonStyle: TextButtonStyle): TextButton;
+ }
+
+ /**
+ * An enum that specifies the style for TextButton.
+ *
+ * TEXT is the default; it renders a simple text button with clear background.
+ * FILLED buttons have a background color you can set with
+ * TextButton.setBackgroundColor(backgroundColor).
+ */
+ export enum TextButtonStyle { TEXT, FILLED }
+
+ /**
+ * A input field widget that accepts text input.
+ *
+ * var textInput = CardService.newTextInput()
+ * .setFieldName("text_input_form_input_key")
+ * .setTitle("Text input title")
+ * .setHint("Text input hint");
+ */
+ export interface TextInput {
+ setFieldName(fieldName: string): TextInput;
+ setHint(hint: string): TextInput;
+ setMultiline(multiline: boolean): TextInput;
+ setOnChangeAction(action: Action): TextInput;
+ setSuggestions(suggestions: Suggestions): TextInput;
+ setSuggestionsAction(suggestionsAction: Action): TextInput;
+ setTitle(title: string): TextInput;
+ setValue(value: string): TextInput;
+ }
+
+ /**
+ * A widget that displays text and supports basic HTML formatting.
+ *
+ * var textParagraph = CardService.newTextParagraph()
+ * .setText("This is a text paragraph widget. Multiple lines are allowed if needed.");
+ */
+ export interface TextParagraph {
+ setText(text: string): TextParagraph;
+ }
+
+ /**
+ * The response object that may be returned from a method that creates universal action.
+ *
+ * // A universal action that opens a link.
+ * var openLinkUniversalAction = CardService.newUniversalActionResponseBuilder()
+ * .setOpenLink(CardService.newOpenLink()
+ * .setUrl("https://www.google.com"))
+ * .build();
+ *
+ * var cardBuilder1 = CardService.newCardBuilder();
+ * var cardBuilder2 = CardService.newCardBuilder();
+ * // Finish building the cards ...
+ *
+ * // A universal action that shows two static cards.
+ * var cardsUniversalAction = CardService.newUniversalActionResponseBuilder()
+ * .displayAddOnCards([
+ * cardBuilder1.build();
+ * cardBuilder2.build();
+ * ]).build();
+ */
+ export interface UniversalActionResponse {
+ printJson(): string;
+ }
+
+ /**
+ * A builder for the UniversalActionResponse objects.
+ */
+ export interface UniversalActionResponseBuilder {
+ build(): UniversalActionResponse;
+ displayAddOnCards(cardObjects: Object[]): UniversalActionResponseBuilder;
+ setOpenLink(openLink: OpenLink): UniversalActionResponseBuilder;
+ }
+
+ /**
+ * Represents an action that updates the email draft that the user is currently editing.
+ *
+ * // A UpdateDraftActionResponse that inserts non-editable content (a link in this case) into an
+ * // email draft.
+ * var updateDraftActionResponse = CardService.newUpdateDraftActionResponseBuilder()
+ * .setUpdateDraftBodyAction(CardService.newUpdateDraftBodyAction()
+ * .addUpdateContent(
+ * "Google",
+ * ContentType.IMMUTABLE_HTML)
+ * .setUpdateType(UpdateDraftBodyType.IN_PLACE_INSERT))
+ * .build();
+ *
+ * // A UpdateDraftActionResponse that inserts a link into an email draft. The added content can be
+ * // edited further.
+ * var updateDraftActionResponse = CardService.newUpdateDraftActionResponseBuilder()
+ * .setUpdateDraftBodyAction(CardService.newUpdateDraftBodyAction()
+ * .addUpdateContent(
+ * "Google",
+ * ContentType.MUTABLE_HTML)
+ * .setUpdateType(UpdateDraftBodyType.IN_PLACE_INSERT))
+ * .build();
+ *
+ * // A UpdateDraftActionResponse that inserts multiple values of different types.
+ * // The example action response inserts two lines next to each other in the email
+ * // draft, at the cursor position. Each line contains the content added by
+ * // {@link UpdateDraftActionResponseBuilder#addUpdateContent}.
+ * var updateDraftActionResponse = CardService.newUpdateDraftActionResponseBuilder()
+ * .setUpdateDraftBodyAction(CardService.newUpdateDraftBodyAction()
+ * .addUpdateContent(
+ * "Google",
+ * ContentType.MUTABLE_HTML)
+ * .addUpdateContent("Above is a google link.", ContentType.PLAIN_TEXT)
+ * .setUpdateType(UpdateDraftBodyType.IN_PLACE_INSERT))
+ * .build();
+ */
+ export interface UpdateDraftActionResponse {
+ printJson(): string;
+ }
+
+ /**
+ * A builder for UpdateDraftActionResponse objects.
+ */
+ export interface UpdateDraftActionResponseBuilder {
+ build(): UpdateDraftActionResponse;
+ setUpdateDraftBodyAction(updateDraftBodyAction: UpdateDraftBodyAction): UpdateDraftActionResponseBuilder;
+ }
+
+ /**
+ * Represents an action that updates the email draft body.
+ */
+ export interface UpdateDraftBodyAction {
+ addUpdateContent(content: string, contentType: ContentType): UpdateDraftBodyAction;
+ setUpdateType(updateType: UpdateDraftBodyType): UpdateDraftBodyAction;
+ }
+
+ /**
+ * An enum value that specifies the type of an UpdateDraftBodyAction.
+ */
+ export enum UpdateDraftBodyType { IN_PLACE_INSERT }
+
+ /**
+ * Base class for all widgets that can be added to a Card.
+ */
+ export interface Widget {
+ }
+
+ }
+}
+
+declare var CardService: GoogleAppsScript.Card_Service.CardService;
diff --git a/types/google-apps-script/google-apps-script.charts.d.ts b/types/google-apps-script/google-apps-script.charts.d.ts
index 50013a36d0..5898092bb4 100644
--- a/types/google-apps-script/google-apps-script.charts.d.ts
+++ b/types/google-apps-script/google-apps-script.charts.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for Google Apps Script 2018-07-11
+// Type definitions for Google Apps Script 2018-12-26
// Project: https://developers.google.com/apps-script/
// Definitions by: motemen
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
@@ -536,7 +536,7 @@ declare namespace GoogleAppsScript {
* function doGet() {
* // This example creates two table charts side by side. One uses a data view definition to
* // restrict the number of displayed columns.
- * var app = UiApp.createApplication();
+ *
* // Get sample data from a spreadsheet.
* var dataSourceUrl = 'https://docs.google.com/spreadsheet/tq?range=A1%3AF' +
* '&key=0Aq4s9w_HxMs7dHpfX05JdmVSb1FpT21sbXd4NVE3UEE&gid=4&headers=-1';
@@ -555,9 +555,17 @@ declare namespace GoogleAppsScript {
* .setDataViewDefinition(dataViewDefinition)
* .build();
*
- * var panel = app.createHorizontalPanel().setSpacing(15);
- * panel.add(originalChart).add(limitedChart);
- * return app.add(panel);
+ * var htmlOutput = HtmlService.createHtmlOutput();
+ * var originalChartData = Utilities.base64Encode(originalChart.getAs('image/png').getBytes());
+ * var originalChartUrl = "data:image/png;base64," + encodeURI(originalChartData);
+ * var limitedChartData = Utilities.base64Encode(limitedChart.getAs('image/png').getBytes());
+ * var limitedChartUrl = "data:image/png;base64," + encodeURI(limitedChartData);
+ * htmlOutput.append("
");
+ * htmlOutput.append(" ");
+ * htmlOutput.append(" | ");
+ * htmlOutput.append(" ");
+ * htmlOutput.append(" |
");
+ * return htmlOutput;
* }
*/
export interface DataViewDefinitionBuilder {
diff --git a/types/google-apps-script/google-apps-script.data-studio.d.ts b/types/google-apps-script/google-apps-script.data-studio.d.ts
new file mode 100644
index 0000000000..572e4284e1
--- /dev/null
+++ b/types/google-apps-script/google-apps-script.data-studio.d.ts
@@ -0,0 +1,301 @@
+// Type definitions for Google Apps Script 2018-12-26
+// Project: https://developers.google.com/apps-script/
+// Definitions by: motemen
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+///
+
+declare namespace GoogleAppsScript {
+ export module Data_Studio {
+ /**
+ * An enum that defines the aggregation types that can be set for a Field.
+ */
+ export enum AggregationType { NO_AGGREGATION, AVG, COUNT, COUNT_DISTINCT, MAX, MIN, SUM }
+
+ /**
+ * Contains checkbox information for the config. Its properties determine how the checkbox is
+ * displayed in Data Studio.
+ *
+ * var checkbox = config.newCheckbox()
+ * .setId("use_https")
+ * .setName("Use Https?")
+ * .setHelpText("Whether or not https should be used.")
+ * .setAllowOverride(true);
+ */
+ export interface Checkbox {
+ setAllowOverride(allowOverride: boolean): Checkbox;
+ setHelpText(helpText: string): Checkbox;
+ setId(id: string): Checkbox;
+ setName(name: string): Checkbox;
+ }
+
+ /**
+ * CommunityConnector enables scripts to access builders and utilities to help with development of
+ * Community Connectors for Data Studio. Use this class to get a reference to the Fields
+ * object and the FieldType and AggregationType enums so they can be used in the
+ * construction of Fields.
+ *
+ * var cc = DataStudioApp.createCommunityConnector();
+ * var fieldType = cc.FieldType;
+ * var aggregationType = cc.AggregationType;
+ *
+ * var fields = cc.getFields();
+ *
+ * fields.newMetric()
+ * .setAggregation(aggregationType.AVG)
+ * .setFieldType(fieldType.CURRENCY_USD);
+ */
+ export interface CommunityConnector {
+ AggregationType: typeof AggregationType;
+ FieldType: typeof FieldType;
+ getConfig(): Config;
+ getFields(): Fields;
+ }
+
+ /**
+ * Contains the configuration entries for a connector. These configuration entries define what
+ * questions are asked when adding a new connector.
+ *
+ * var cc = DataStudioApp.createCommunityConnector();
+ * var config = cc.getConfig();
+ *
+ * var info_entry = config.newInfo()
+ * .setId("info_id")
+ * .setHelpText("This connector can connect to multiple data endpoints.");
+ */
+ export interface Config {
+ build(): Object;
+ newCheckbox(): Checkbox;
+ newInfo(): Info;
+ newOptionBuilder(): OptionBuilder;
+ newSelectMultiple(): SelectMultiple;
+ newSelectSingle(): SelectSingle;
+ newTextArea(): TextArea;
+ newTextInput(): TextInput;
+ printJson(): string;
+ setDateRangeRequired(dateRangeRequired: boolean): Config;
+ }
+
+ /**
+ * DataStudioApp allows scripts to interact with developer-oriented features for Data Studio.
+ */
+ export interface DataStudioApp {
+ createCommunityConnector(): CommunityConnector;
+ }
+
+ /**
+ * Contains field-related data. Its properties determine how the field is used in Data Studio.
+ *
+ * var cc = DataStudioApp.createCommunityConnector();
+ * var fields = cc.getFields();
+ * var types = cc.FieldType;
+ *
+ * var field1 = fields.newDimension()
+ * .setId('field1_id')
+ * .setName('Field 1 ID')
+ * .setDescription('The first field.')
+ * .setType(types.YEAR_MONTH)
+ * .setGroup('DATETIME');
+ */
+ export interface Field {
+ getAggregation(): AggregationType;
+ getDescription(): string;
+ getFormula(): string;
+ getGroup(): string;
+ getId(): string;
+ getName(): string;
+ getType(): FieldType;
+ isDefault(): boolean;
+ isDimension(): boolean;
+ isHidden(): boolean;
+ isMetric(): boolean;
+ setAggregation(aggregation: AggregationType): Field;
+ setDescription(description: string): Field;
+ setFormula(formula: string): Field;
+ setGroup(group: string): Field;
+ setId(id: string): Field;
+ setIsHidden(isHidden: boolean): Field;
+ setName(name: string): Field;
+ setType(type: FieldType): Field;
+ }
+
+ /**
+ * An enum that defines the types that can be set for a Field.
+ */
+ export enum FieldType { YEAR, YEAR_QUARTER, YEAR_MONTH, YEAR_WEEK, YEAR_MONTH_DAY, YEAR_MONTH_DAY_HOUR, QUARTER, MONTH, WEEK, MONTH_DAY, DAY_OF_WEEK, DAY, HOUR, MINUTE, DURATION, COUNTRY, COUNTRY_CODE, CONTINENT, CONTINENT_CODE, SUB_CONTINENT, SUB_CONTINENT_CODE, REGION, REGION_CODE, CITY, CITY_CODE, METRO, METRO_CODE, LATITUDE_LONGITUDE, NUMBER, PERCENT, TEXT, BOOLEAN, URL, CURRENCY_AED, CURRENCY_ALL, CURRENCY_ARS, CURRENCY_AUD, CURRENCY_BDT, CURRENCY_BGN, CURRENCY_BOB, CURRENCY_BRL, CURRENCY_CAD, CURRENCY_CDF, CURRENCY_CHF, CURRENCY_CLP, CURRENCY_CNY, CURRENCY_COP, CURRENCY_CRC, CURRENCY_CZK, CURRENCY_DKK, CURRENCY_DOP, CURRENCY_EGP, CURRENCY_ETB, CURRENCY_EUR, CURRENCY_GBP, CURRENCY_HKD, CURRENCY_HRK, CURRENCY_HUF, CURRENCY_IDR, CURRENCY_ILS, CURRENCY_INR, CURRENCY_IRR, CURRENCY_ISK, CURRENCY_JMD, CURRENCY_JPY, CURRENCY_KRW, CURRENCY_LKR, CURRENCY_LTL, CURRENCY_MNT, CURRENCY_MVR, CURRENCY_MXN, CURRENCY_MYR, CURRENCY_NOK, CURRENCY_NZD, CURRENCY_PAB, CURRENCY_PEN, CURRENCY_PHP, CURRENCY_PKR, CURRENCY_PLN, CURRENCY_RON, CURRENCY_RSD, CURRENCY_RUB, CURRENCY_SAR, CURRENCY_SEK, CURRENCY_SGD, CURRENCY_THB, CURRENCY_TRY, CURRENCY_TWD, CURRENCY_TZS, CURRENCY_UAH, CURRENCY_USD, CURRENCY_UYU, CURRENCY_VEF, CURRENCY_VND, CURRENCY_YER, CURRENCY_ZAR }
+
+ /**
+ * Contains a set of Fields for a community connector. This set of fields define which
+ * dimensions and metrics can be used in Data Studio.
+ *
+ * var cc = DataStudioApp.createCommunityConnector();
+ * var fields = cc.getFields();
+ * var types = cc.FieldType;
+ *
+ * var field1 = fields.newDimension()
+ * // Set other properties as needed.
+ * .setId('field1_id');
+ */
+ export interface Fields {
+ asArray(): Field[];
+ build(): Object[];
+ forIds(ids: string[]): Fields;
+ getDefaultDimension(): Field;
+ getDefaultMetric(): Field;
+ getFieldById(fieldId: string): Field;
+ newDimension(): Field;
+ newMetric(): Field;
+ setDefaultDimension(fieldId: string): void;
+ setDefaultMetric(fieldId: string): void;
+ }
+
+ /**
+ * Contains info data for the config. Its properties determine how the info is displayed in Data
+ * Studio.
+ *
+ * var cc = DataStudioApp.createCommunityConnector();
+ * var config = cc.getConfig();
+ *
+ * var info1 = config.newInfo()
+ * .setName("info1")
+ * .setText("This text gives some context on the configuration.");
+ */
+ export interface Info {
+ setId(id: string): Info;
+ setText(text: string): Info;
+ }
+
+ /**
+ * A builder for creating options for SelectSingles and SelectMultiples.
+ *
+ * var cc = DataStudioApp.createCommunityConnector();
+ * var config = cc.getConfig();
+ *
+ * var option1 = config.newOptionBuilder()
+ * .setLabel("option label")
+ * .setValue("option_value");
+ *
+ * var option2 = config.newOptionBuilder()
+ * .setLabel("second option label")
+ * .setValue("option_value_2");
+ *
+ * var info1 = config.newSelectSingle()
+ * .setId("api_endpoint")
+ * .setName("Data Type")
+ * .setHelpText("Select the data type you're interested in.")
+ * .addOption(option1)
+ * .addOption(option2);
+ */
+ export interface OptionBuilder {
+ setLabel(label: string): OptionBuilder;
+ setValue(value: string): OptionBuilder;
+ }
+
+ /**
+ * Contains select multiple information for the config. Its properties determine how the select
+ * multiple is displayed in Data Studio.
+ *
+ * Usage:
+ *
+ * var option1 = config.newOptionBuilder()
+ * .setLabel("option label")
+ * .setValue("option_value");
+ *
+ * var option2 = config.newOptionBuilder()
+ * .setLabel("second option label")
+ * .setValue("option_value_2");
+ *
+ * var info1 = config.newSelectMultiple()
+ * .setId("api_endpoint")
+ * .setName("Data Type")
+ * .setHelpText("Select the data type you're interested in.")
+ * .setAllowOverride(true)
+ * .addOption(option1)
+ * .addOption(option2);
+ */
+ export interface SelectMultiple {
+ addOption(optionBuilder: OptionBuilder): SelectMultiple;
+ setAllowOverride(allowOverride: boolean): SelectMultiple;
+ setHelpText(helpText: string): SelectMultiple;
+ setId(id: string): SelectMultiple;
+ setName(name: string): SelectMultiple;
+ }
+
+ /**
+ * Contains select single information for the config. Its properties determine how the select single
+ * is displayed in Data Studio.
+ *
+ * var option1 = config.newOptionBuilder()
+ * .setLabel("option label")
+ * .setValue("option_value");
+ *
+ * var option2 = config.newOptionBuilder()
+ * .setLabel("second option label")
+ * .setValue("option_value_2");
+ *
+ * var info1 = config.newSelectMultiple()
+ * .setId("api_endpoint")
+ * .setName("Data Type")
+ * .setHelpText("Select the data type you're interested in.")
+ * .setAllowOverride(true)
+ * .addOption(option1)
+ * .addOption(option2);
+ */
+ export interface SelectSingle {
+ addOption(optionBuilder: OptionBuilder): SelectSingle;
+ setAllowOverride(allowOverride: boolean): SelectSingle;
+ setHelpText(helpText: string): SelectSingle;
+ setId(id: string): SelectSingle;
+ setName(name: string): SelectSingle;
+ }
+
+ /**
+ * Contains text area information for the config. Its properties determine how the text input is
+ * displayed in Data Studio.
+ *
+ * Usage:
+ *
+ * var cc = DataStudioApp.createCommunityConnector();
+ * var config = cc.getConfig();
+ *
+ * var textArea1 = config.newTextArea()
+ * .setId("textArea1")
+ * .setName("Search")
+ * .setHelpText("for example, Coldplay")
+ * .setAllowOverride(true)
+ * .setPlaceholder("Search for an artist for all songs.");
+ */
+ export interface TextArea {
+ setAllowOverride(allowOverride: boolean): TextArea;
+ setHelpText(helpText: string): TextArea;
+ setId(id: string): TextArea;
+ setName(name: string): TextArea;
+ setPlaceholder(placeholder: string): TextArea;
+ }
+
+ /**
+ * Contains text input information for the config. Its properties determine how the text input is
+ * displayed in Data Studio.
+ *
+ * var cc = DataStudioApp.createCommunityConnector();
+ * var config = cc.getConfig();
+ *
+ * var info1 = config.newTextInput()
+ * .setId("info1")
+ * .setName("Search")
+ * .setHelpText("for example, Coldplay")
+ * .setAllowOverride(true)
+ * .setPlaceholder("Search for an artist for all songs.");
+ */
+ export interface TextInput {
+ setAllowOverride(allowOverride: boolean): TextInput;
+ setHelpText(helpText: string): TextInput;
+ setId(id: string): TextInput;
+ setName(name: string): TextInput;
+ setPlaceholder(placeholder: string): TextInput;
+ }
+
+ }
+}
+
+declare var DataStudioApp: GoogleAppsScript.Data_Studio.DataStudioApp;
diff --git a/types/google-apps-script/google-apps-script.forms.d.ts b/types/google-apps-script/google-apps-script.forms.d.ts
index df08002505..33df1975c7 100644
--- a/types/google-apps-script/google-apps-script.forms.d.ts
+++ b/types/google-apps-script/google-apps-script.forms.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for Google Apps Script 2018-07-11
+// Type definitions for Google Apps Script 2018-12-26
// Project: https://developers.google.com/apps-script/
// Definitions by: motemen
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
@@ -151,9 +151,6 @@ declare namespace GoogleAppsScript {
* checkBoxItem.setValidation(checkBoxValidation);
*/
export interface CheckboxValidation {
- requireSelectAtLeast(number: Integer): CheckboxValidation;
- requireSelectAtMost(number: Integer): CheckboxValidation;
- requireSelectExactly(number: Integer): CheckboxValidation;
}
/**
@@ -671,7 +668,7 @@ declare namespace GoogleAppsScript {
* item.setHelpText('Description of new section.');
* }
*/
- export enum ItemType { CHECKBOX, CHECKBOX_GRID, DATE, DATETIME, DURATION, GRID, IMAGE, LIST, MULTIPLE_CHOICE, PAGE_BREAK, PARAGRAPH_TEXT, SCALE, SECTION_HEADER, TEXT, TIME }
+ export enum ItemType { CHECKBOX, CHECKBOX_GRID, DATE, DATETIME, DURATION, GRID, IMAGE, LIST, MULTIPLE_CHOICE, PAGE_BREAK, PARAGRAPH_TEXT, SCALE, SECTION_HEADER, TEXT, TIME, VIDEO }
/**
* A question item that allows the respondent to select one choice from a drop-down list. Items can
diff --git a/types/google-apps-script/google-apps-script.gmail.d.ts b/types/google-apps-script/google-apps-script.gmail.d.ts
index db8e6ecc52..b71a7226b6 100644
--- a/types/google-apps-script/google-apps-script.gmail.d.ts
+++ b/types/google-apps-script/google-apps-script.gmail.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for Google Apps Script 2018-07-11
+// Type definitions for Google Apps Script 2018-12-26
// Project: https://developers.google.com/apps-script/
// Definitions by: motemen
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
@@ -103,6 +103,7 @@ declare namespace GoogleAppsScript {
getContentType(): string;
getDataAsString(): string;
getDataAsString(charset: string): string;
+ getHash(): string;
getName(): string;
getSize(): Integer;
isGoogleType(): boolean;
diff --git a/types/google-apps-script/google-apps-script.groups.d.ts b/types/google-apps-script/google-apps-script.groups.d.ts
index 757029f044..958838de57 100644
--- a/types/google-apps-script/google-apps-script.groups.d.ts
+++ b/types/google-apps-script/google-apps-script.groups.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for Google Apps Script 2018-07-11
+// Type definitions for Google Apps Script 2018-12-26
// Project: https://developers.google.com/apps-script/
// Definitions by: motemen
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
@@ -16,13 +16,13 @@ declare namespace GoogleAppsScript {
*
* function listGroupMembers() {
* var group = GroupsApp.getGroupByEmail("example@googlegroups.com");
- * var s = group.getEmail() + ': ';
+ * var str = group.getEmail() + ': ';
* var users = group.getUsers();
* for (var i = 0; i < users.length; i++) {
* var user = users[i];
- * s = s + user.getEmail() + ", ";
+ * str = str + user.getEmail() + ", ";
* }
- * Logger.log(s);
+ * Logger.log(str);
* }
*/
export interface Group {
diff --git a/types/google-apps-script/google-apps-script.script.d.ts b/types/google-apps-script/google-apps-script.script.d.ts
index fbe95deb8c..5130b54db9 100644
--- a/types/google-apps-script/google-apps-script.script.d.ts
+++ b/types/google-apps-script/google-apps-script.script.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for Google Apps Script 2018-07-11
+// Type definitions for Google Apps Script 2018-12-26
// Project: https://developers.google.com/apps-script/
// Definitions by: motemen
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
@@ -15,8 +15,8 @@ declare namespace GoogleAppsScript {
* An enumeration that identifies which categories of authorized services Apps Script is able to
* execute through a triggered function. These values are exposed in triggered functions as the authMode
* property of the event parameter, e. For
- * more information, see the guide to the authorization
- * lifecycle for add-ons.
+ * more information, see the guide to the
+ * authorization lifecycle for add-ons.
*
* function onOpen(e) {
* var menu = SpreadsheetApp.getUi().createAddonMenu();
diff --git a/types/google-apps-script/google-apps-script.slides.d.ts b/types/google-apps-script/google-apps-script.slides.d.ts
index 3d1aac9227..f1c3a6fdae 100644
--- a/types/google-apps-script/google-apps-script.slides.d.ts
+++ b/types/google-apps-script/google-apps-script.slides.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for Google Apps Script 2018-07-11
+// Type definitions for Google Apps Script 2018-12-26
// Project: https://developers.google.com/apps-script/
// Definitions by: motemen
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
@@ -125,6 +125,14 @@ declare namespace GoogleAppsScript {
*/
export enum ColorType { UNSUPPORTED, RGB, THEME }
+ /**
+ * The connection site on a PageElement that can connect to a connector.
+ */
+ export interface ConnectionSite {
+ getIndex(): Integer;
+ getPageElement(): PageElement;
+ }
+
/**
* The content alignments for a Shape or TableCell. The supported alignments
* correspond to predefined text anchoring types from the ECMA-376 standard.
@@ -172,8 +180,11 @@ declare namespace GoogleAppsScript {
*/
export interface Group {
alignOnPage(alignmentPosition: AlignmentPosition): Group;
+ bringForward(): Group;
+ bringToFront(): Group;
duplicate(): PageElement;
getChildren(): PageElement[];
+ getConnectionSites(): ConnectionSite[];
getDescription(): string;
getHeight(): Number;
getInherentHeight(): Number;
@@ -194,9 +205,13 @@ declare namespace GoogleAppsScript {
scaleWidth(ratio: Number): Group;
select(): void;
select(replace: boolean): void;
+ sendBackward(): Group;
+ sendToBack(): Group;
+ setDescription(description: string): Group;
setHeight(height: Number): Group;
setLeft(left: Number): Group;
setRotation(angle: Number): Group;
+ setTitle(title: string): Group;
setTop(top: Number): Group;
setTransform(transform: AffineTransform): Group;
setWidth(width: Number): Group;
@@ -208,10 +223,13 @@ declare namespace GoogleAppsScript {
*/
export interface Image {
alignOnPage(alignmentPosition: AlignmentPosition): Image;
+ bringForward(): Image;
+ bringToFront(): Image;
duplicate(): PageElement;
getAs(contentType: string): Base.Blob;
getBlob(): Base.Blob;
getBorder(): Border;
+ getConnectionSites(): ConnectionSite[];
getContentUrl(): string;
getDescription(): string;
getHeight(): Number;
@@ -240,6 +258,9 @@ declare namespace GoogleAppsScript {
scaleWidth(ratio: Number): Image;
select(): void;
select(replace: boolean): void;
+ sendBackward(): Image;
+ sendToBack(): Image;
+ setDescription(description: string): Image;
setHeight(height: Number): Image;
setLeft(left: Number): Image;
setLinkSlide(slideIndex: Integer): Link;
@@ -247,6 +268,7 @@ declare namespace GoogleAppsScript {
setLinkSlide(slidePosition: SlidePosition): Link;
setLinkUrl(url: string): Link;
setRotation(angle: Number): Image;
+ setTitle(title: string): Image;
setTop(top: Number): Image;
setTransform(transform: AffineTransform): Image;
setWidth(width: Number): Image;
@@ -267,6 +289,7 @@ declare namespace GoogleAppsScript {
getLines(): Line[];
getMaster(): Master;
getObjectId(): string;
+ getPageElementById(id: string): PageElement;
getPageElements(): PageElement[];
getPageType(): PageType;
getPlaceholder(placeholderType: PlaceholderType): PageElement;
@@ -285,6 +308,7 @@ declare namespace GoogleAppsScript {
insertImage(imageUrl: string): Image;
insertImage(imageUrl: string, left: Number, top: Number, width: Number, height: Number): Image;
insertLine(line: Line): Line;
+ insertLine(lineCategory: LineCategory, startConnectionSite: ConnectionSite, endConnectionSite: ConnectionSite): Line;
insertLine(lineCategory: LineCategory, startLeft: Number, startTop: Number, endLeft: Number, endTop: Number): Line;
insertPageElement(pageElement: PageElement): PageElement;
insertShape(shape: Shape): Shape;
@@ -313,15 +337,20 @@ declare namespace GoogleAppsScript {
*/
export interface Line {
alignOnPage(alignmentPosition: AlignmentPosition): Line;
+ bringForward(): Line;
+ bringToFront(): Line;
duplicate(): PageElement;
+ getConnectionSites(): ConnectionSite[];
getDashStyle(): DashStyle;
getDescription(): string;
getEnd(): Point;
getEndArrow(): ArrowStyle;
+ getEndConnection(): ConnectionSite;
getHeight(): Number;
getInherentHeight(): Number;
getInherentWidth(): Number;
getLeft(): Number;
+ getLineCategory(): LineCategory;
getLineFill(): LineFill;
getLineType(): LineType;
getLink(): Link;
@@ -332,24 +361,32 @@ declare namespace GoogleAppsScript {
getRotation(): Number;
getStart(): Point;
getStartArrow(): ArrowStyle;
+ getStartConnection(): ConnectionSite;
getTitle(): string;
getTop(): Number;
getTransform(): AffineTransform;
getWeight(): Number;
getWidth(): Number;
+ isConnector(): boolean;
preconcatenateTransform(transform: AffineTransform): Line;
remove(): void;
removeLink(): void;
+ reroute(): Line;
scaleHeight(ratio: Number): Line;
scaleWidth(ratio: Number): Line;
select(): void;
select(replace: boolean): void;
+ sendBackward(): Line;
+ sendToBack(): Line;
setDashStyle(style: DashStyle): Line;
+ setDescription(description: string): Line;
setEnd(left: Number, top: Number): Line;
setEnd(point: Point): Line;
setEndArrow(style: ArrowStyle): Line;
+ setEndConnection(connectionSite: ConnectionSite): Line;
setHeight(height: Number): Line;
setLeft(left: Number): Line;
+ setLineCategory(lineCategory: LineCategory): Line;
setLinkSlide(slideIndex: Integer): Link;
setLinkSlide(slide: Slide): Link;
setLinkSlide(slidePosition: SlidePosition): Link;
@@ -358,6 +395,8 @@ declare namespace GoogleAppsScript {
setStart(left: Number, top: Number): Line;
setStart(point: Point): Line;
setStartArrow(style: ArrowStyle): Line;
+ setStartConnection(connectionSite: ConnectionSite): Line;
+ setTitle(title: string): Line;
setTop(top: Number): Line;
setTransform(transform: AffineTransform): Line;
setWeight(points: Number): Line;
@@ -370,7 +409,7 @@ declare namespace GoogleAppsScript {
* 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 }
+ export enum LineCategory { UNSUPPORTED, STRAIGHT, BENT, CURVED }
/**
* Describes the fill of a line or outline
@@ -504,6 +543,7 @@ declare namespace GoogleAppsScript {
getLayouts(): Layout[];
getLines(): Line[];
getObjectId(): string;
+ getPageElementById(id: string): PageElement;
getPageElements(): PageElement[];
getPageType(): PageType;
getPlaceholder(placeholderType: PlaceholderType): PageElement;
@@ -522,6 +562,7 @@ declare namespace GoogleAppsScript {
insertImage(imageUrl: string): Image;
insertImage(imageUrl: string, left: Number, top: Number, width: Number, height: Number): Image;
insertLine(line: Line): Line;
+ insertLine(lineCategory: LineCategory, startConnectionSite: ConnectionSite, endConnectionSite: ConnectionSite): Line;
insertLine(lineCategory: LineCategory, startLeft: Number, startTop: Number, endLeft: Number, endTop: Number): Line;
insertPageElement(pageElement: PageElement): PageElement;
insertShape(shape: Shape): Shape;
@@ -556,6 +597,7 @@ declare namespace GoogleAppsScript {
getImages(): Image[];
getLines(): Line[];
getObjectId(): string;
+ getPageElementById(id: string): PageElement;
getPageElements(): PageElement[];
getPlaceholder(placeholderType: PlaceholderType): PageElement;
getPlaceholder(placeholderType: PlaceholderType, placeholderIndex: Integer): PageElement;
@@ -579,6 +621,7 @@ declare namespace GoogleAppsScript {
getImages(): Image[];
getLines(): Line[];
getObjectId(): string;
+ getPageElementById(id: string): PageElement;
getPageElements(): PageElement[];
getPlaceholder(placeholderType: PlaceholderType): PageElement;
getPlaceholder(placeholderType: PlaceholderType, placeholderIndex: Integer): PageElement;
@@ -606,6 +649,7 @@ declare namespace GoogleAppsScript {
getImages(): Image[];
getLines(): Line[];
getObjectId(): string;
+ getPageElementById(id: string): PageElement;
getPageElements(): PageElement[];
getPageType(): PageType;
getPlaceholder(placeholderType: PlaceholderType): PageElement;
@@ -624,6 +668,7 @@ declare namespace GoogleAppsScript {
insertImage(imageUrl: string): Image;
insertImage(imageUrl: string, left: Number, top: Number, width: Number, height: Number): Image;
insertLine(line: Line): Line;
+ insertLine(lineCategory: LineCategory, startConnectionSite: ConnectionSite, endConnectionSite: ConnectionSite): Line;
insertLine(lineCategory: LineCategory, startLeft: Number, startTop: Number, endLeft: Number, endTop: Number): Line;
insertPageElement(pageElement: PageElement): PageElement;
insertShape(shape: Shape): Shape;
@@ -686,7 +731,10 @@ declare namespace GoogleAppsScript {
asTable(): Table;
asVideo(): Video;
asWordArt(): WordArt;
+ bringForward(): PageElement;
+ bringToFront(): PageElement;
duplicate(): PageElement;
+ getConnectionSites(): ConnectionSite[];
getDescription(): string;
getHeight(): Number;
getInherentHeight(): Number;
@@ -707,9 +755,13 @@ declare namespace GoogleAppsScript {
scaleWidth(ratio: Number): PageElement;
select(): void;
select(replace: boolean): void;
+ sendBackward(): PageElement;
+ sendToBack(): PageElement;
+ setDescription(description: string): PageElement;
setHeight(height: Number): PageElement;
setLeft(left: Number): PageElement;
setRotation(angle: Number): PageElement;
+ setTitle(title: string): PageElement;
setTop(top: Number): PageElement;
setTransform(transform: AffineTransform): PageElement;
setWidth(width: Number): PageElement;
@@ -836,11 +888,11 @@ declare namespace GoogleAppsScript {
getNotesMaster(): NotesMaster;
getNotesPageHeight(): Number;
getNotesPageWidth(): Number;
- getPageElementById(id: string): PageElement;
+ getPageElementById(id: string): PageElement;
getPageHeight(): Number;
getPageWidth(): Number;
getSelection(): Selection;
- getSlideById(id: string): Slide;
+ getSlideById(id: string): Slide;
getSlides(): Slide[];
getUrl(): string;
getViewers(): Base.User[];
@@ -903,8 +955,11 @@ declare namespace GoogleAppsScript {
*/
export interface Shape {
alignOnPage(alignmentPosition: AlignmentPosition): Shape;
+ bringForward(): Shape;
+ bringToFront(): Shape;
duplicate(): PageElement;
getBorder(): Border;
+ getConnectionSites(): ConnectionSite[];
getContentAlignment(): ContentAlignment;
getDescription(): string;
getFill(): Fill;
@@ -940,7 +995,10 @@ declare namespace GoogleAppsScript {
scaleWidth(ratio: Number): Shape;
select(): void;
select(replace: boolean): void;
+ sendBackward(): Shape;
+ sendToBack(): Shape;
setContentAlignment(contentAlignment: ContentAlignment): Shape;
+ setDescription(description: string): Shape;
setHeight(height: Number): Shape;
setLeft(left: Number): Shape;
setLinkSlide(slideIndex: Integer): Link;
@@ -948,6 +1006,7 @@ declare namespace GoogleAppsScript {
setLinkSlide(slidePosition: SlidePosition): Link;
setLinkUrl(url: string): Link;
setRotation(angle: Number): Shape;
+ setTitle(title: string): Shape;
setTop(top: Number): Shape;
setTransform(transform: AffineTransform): Shape;
setWidth(width: Number): Shape;
@@ -968,8 +1027,11 @@ declare namespace GoogleAppsScript {
export interface SheetsChart {
alignOnPage(alignmentPosition: AlignmentPosition): SheetsChart;
asImage(): Image;
+ bringForward(): SheetsChart;
+ bringToFront(): SheetsChart;
duplicate(): PageElement;
getChartId(): Integer;
+ getConnectionSites(): ConnectionSite[];
getDescription(): string;
getEmbedType(): SheetsChartEmbedType;
getHeight(): Number;
@@ -995,6 +1057,9 @@ declare namespace GoogleAppsScript {
scaleWidth(ratio: Number): SheetsChart;
select(): void;
select(replace: boolean): void;
+ sendBackward(): SheetsChart;
+ sendToBack(): SheetsChart;
+ setDescription(description: string): SheetsChart;
setHeight(height: Number): SheetsChart;
setLeft(left: Number): SheetsChart;
setLinkSlide(slideIndex: Integer): Link;
@@ -1002,6 +1067,7 @@ declare namespace GoogleAppsScript {
setLinkSlide(slidePosition: SlidePosition): Link;
setLinkUrl(url: string): Link;
setRotation(angle: Number): SheetsChart;
+ setTitle(title: string): SheetsChart;
setTop(top: Number): SheetsChart;
setTransform(transform: AffineTransform): SheetsChart;
setWidth(width: Number): SheetsChart;
@@ -1028,6 +1094,7 @@ declare namespace GoogleAppsScript {
getLines(): Line[];
getNotesPage(): NotesPage;
getObjectId(): string;
+ getPageElementById(id: string): PageElement;
getPageElements(): PageElement[];
getPageType(): PageType;
getPlaceholder(placeholderType: PlaceholderType): PageElement;
@@ -1046,6 +1113,7 @@ declare namespace GoogleAppsScript {
insertImage(imageUrl: string): Image;
insertImage(imageUrl: string, left: Number, top: Number, width: Number, height: Number): Image;
insertLine(line: Line): Line;
+ insertLine(lineCategory: LineCategory, startConnectionSite: ConnectionSite, endConnectionSite: ConnectionSite): Line;
insertLine(lineCategory: LineCategory, startLeft: Number, startTop: Number, endLeft: Number, endTop: Number): Line;
insertPageElement(pageElement: PageElement): PageElement;
insertShape(shape: Shape): Shape;
@@ -1144,9 +1212,12 @@ declare namespace GoogleAppsScript {
alignOnPage(alignmentPosition: AlignmentPosition): Table;
appendColumn(): TableColumn;
appendRow(): TableRow;
+ bringForward(): Table;
+ bringToFront(): Table;
duplicate(): PageElement;
getCell(rowIndex: Integer, columnIndex: Integer): TableCell;
getColumn(columnIndex: Integer): TableColumn;
+ getConnectionSites(): ConnectionSite[];
getDescription(): string;
getHeight(): Number;
getInherentHeight(): Number;
@@ -1172,9 +1243,13 @@ declare namespace GoogleAppsScript {
scaleWidth(ratio: Number): Table;
select(): void;
select(replace: boolean): void;
+ sendBackward(): Table;
+ sendToBack(): Table;
+ setDescription(description: string): Table;
setHeight(height: Number): Table;
setLeft(left: Number): Table;
setRotation(angle: Number): Table;
+ setTitle(title: string): Table;
setTop(top: Number): Table;
setTransform(transform: AffineTransform): Table;
setWidth(width: Number): Table;
@@ -1343,8 +1418,11 @@ declare namespace GoogleAppsScript {
*/
export interface Video {
alignOnPage(alignmentPosition: AlignmentPosition): Video;
+ bringForward(): Video;
+ bringToFront(): Video;
duplicate(): PageElement;
getBorder(): Border;
+ getConnectionSites(): ConnectionSite[];
getDescription(): string;
getHeight(): Number;
getInherentHeight(): Number;
@@ -1369,9 +1447,13 @@ declare namespace GoogleAppsScript {
scaleWidth(ratio: Number): Video;
select(): void;
select(replace: boolean): void;
+ sendBackward(): Video;
+ sendToBack(): Video;
+ setDescription(description: string): Video;
setHeight(height: Number): Video;
setLeft(left: Number): Video;
setRotation(angle: Number): Video;
+ setTitle(title: string): Video;
setTop(top: Number): Video;
setTransform(transform: AffineTransform): Video;
setWidth(width: Number): Video;
@@ -1387,7 +1469,10 @@ declare namespace GoogleAppsScript {
*/
export interface WordArt {
alignOnPage(alignmentPosition: AlignmentPosition): WordArt;
+ bringForward(): WordArt;
+ bringToFront(): WordArt;
duplicate(): PageElement;
+ getConnectionSites(): ConnectionSite[];
getDescription(): string;
getHeight(): Number;
getInherentHeight(): Number;
@@ -1411,6 +1496,9 @@ declare namespace GoogleAppsScript {
scaleWidth(ratio: Number): WordArt;
select(): void;
select(replace: boolean): void;
+ sendBackward(): WordArt;
+ sendToBack(): WordArt;
+ setDescription(description: string): WordArt;
setHeight(height: Number): WordArt;
setLeft(left: Number): WordArt;
setLinkSlide(slideIndex: Integer): Link;
@@ -1418,6 +1506,7 @@ declare namespace GoogleAppsScript {
setLinkSlide(slidePosition: SlidePosition): Link;
setLinkUrl(url: string): Link;
setRotation(angle: Number): WordArt;
+ setTitle(title: string): WordArt;
setTop(top: Number): WordArt;
setTransform(transform: AffineTransform): WordArt;
setWidth(width: Number): WordArt;
diff --git a/types/google-apps-script/google-apps-script.spreadsheet.d.ts b/types/google-apps-script/google-apps-script.spreadsheet.d.ts
index 4ac5c84d6b..76a5bd5f22 100644
--- a/types/google-apps-script/google-apps-script.spreadsheet.d.ts
+++ b/types/google-apps-script/google-apps-script.spreadsheet.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for Google Apps Script 2018-07-11
+// Type definitions for Google Apps Script 2018-12-26
// Project: https://developers.google.com/apps-script/
// Definitions by: motemen
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
@@ -99,7 +99,7 @@ declare namespace GoogleAppsScript {
* var range = sheet.getRange("A1:B3");
* var rule = SpreadsheetApp.newConditionalFormatRule()
* .whenNumberBetween(1, 10)
- * .setBackgroundColor("#FF0000")
+ * .setBackground("#FF0000")
* .setRanges([range])
* .build();
* var rules = sheet.getConditionalFormatRules();
@@ -268,6 +268,61 @@ declare namespace GoogleAppsScript {
*/
export enum DataValidationCriteria { DATE_AFTER, DATE_BEFORE, DATE_BETWEEN, DATE_EQUAL_TO, DATE_IS_VALID_DATE, DATE_NOT_BETWEEN, DATE_ON_OR_AFTER, DATE_ON_OR_BEFORE, NUMBER_BETWEEN, NUMBER_EQUAL_TO, NUMBER_GREATER_THAN, NUMBER_GREATER_THAN_OR_EQUAL_TO, NUMBER_LESS_THAN, NUMBER_LESS_THAN_OR_EQUAL_TO, NUMBER_NOT_BETWEEN, NUMBER_NOT_EQUAL_TO, TEXT_CONTAINS, TEXT_DOES_NOT_CONTAIN, TEXT_EQUAL_TO, TEXT_IS_VALID_EMAIL, TEXT_IS_VALID_URL, VALUE_IN_LIST, VALUE_IN_RANGE, CUSTOM_FORMULA, CHECKBOX }
+ /**
+ * Access and modify developer metadata. To create new developer metadata use Range.addDeveloperMetadata(key), Sheet.addDeveloperMetadata(key), or Spreadsheet.addDeveloperMetadata(key).
+ */
+ export interface DeveloperMetadata {
+ getId(): Integer;
+ getKey(): string;
+ getLocation(): DeveloperMetadataLocation;
+ getValue(): string;
+ getVisibility(): DeveloperMetadataVisibility;
+ moveToColumn(column: Range): DeveloperMetadata;
+ moveToRow(row: Range): DeveloperMetadata;
+ moveToSheet(sheet: Sheet): DeveloperMetadata;
+ moveToSpreadsheet(): DeveloperMetadata;
+ remove(): void;
+ setKey(key: string): DeveloperMetadata;
+ setValue(value: string): DeveloperMetadata;
+ setVisibility(visibility: DeveloperMetadataVisibility): DeveloperMetadata;
+ }
+
+ /**
+ * Search for developer metadata in a spreadsheet. To create new developer metadata finder use
+ * Range.createDeveloperMetadataFinder(), Sheet.createDeveloperMetadataFinder(),
+ * or Spreadsheet.createDeveloperMetadataFinder().
+ */
+ export interface DeveloperMetadataFinder {
+ find(): DeveloperMetadata[];
+ onIntersectingLocations(): DeveloperMetadataFinder;
+ withId(id: Integer): DeveloperMetadataFinder;
+ withKey(key: string): DeveloperMetadataFinder;
+ withLocationType(locationType: DeveloperMetadataLocationType): DeveloperMetadataFinder;
+ withValue(value: string): DeveloperMetadataFinder;
+ withVisibility(visibility: DeveloperMetadataVisibility): DeveloperMetadataFinder;
+ }
+
+ /**
+ * Access developer metadata location information.
+ */
+ export interface DeveloperMetadataLocation {
+ getColumn(): Range;
+ getLocationType(): DeveloperMetadataLocationType;
+ getRow(): Range;
+ getSheet(): Sheet;
+ getSpreadsheet(): Spreadsheet;
+ }
+
+ /**
+ * An enumeration of the types of developer metadata location types.
+ */
+ export enum DeveloperMetadataLocationType { SPREADSHEET, SHEET, ROW, COLUMN }
+
+ /**
+ * An enumeration of the types of developer metadata visibility.
+ */
+ export enum DeveloperMetadataVisibility { DOCUMENT, PROJECT }
+
/**
* An enumeration of possible directions along which data can be stored in a spreadsheet.
*/
@@ -896,6 +951,36 @@ declare namespace GoogleAppsScript {
setRange(range: Range): NamedRange;
}
+ /**
+ * Represents an image over the grid in a spreadsheet.
+ */
+ export interface OverGridImage {
+ assignScript(functionName: string): OverGridImage;
+ getAltTextDescription(): string;
+ getAltTextTitle(): string;
+ getAnchorCell(): Range;
+ getAnchorCellXOffset(): Integer;
+ getAnchorCellYOffset(): Integer;
+ getHeight(): Integer;
+ getInherentHeight(): Integer;
+ getInherentWidth(): Integer;
+ getScript(): string;
+ getSheet(): Sheet;
+ getUrl(): string;
+ getWidth(): Integer;
+ remove(): void;
+ replace(blob: Base.BlobSource): OverGridImage;
+ replace(url: string): OverGridImage;
+ resetSize(): OverGridImage;
+ setAltTextDescription(description: string): OverGridImage;
+ setAltTextTitle(title: string): OverGridImage;
+ setAnchorCell(cell: Range): OverGridImage;
+ setAnchorCellXOffset(offset: Integer): OverGridImage;
+ setAnchorCellYOffset(offset: Integer): OverGridImage;
+ setHeight(height: Integer): OverGridImage;
+ setWidth(width: Integer): OverGridImage;
+ }
+
/**
*
* Deprecated. For spreadsheets created in the newer version of Google Sheets, use the more powerful
@@ -1091,6 +1176,10 @@ declare namespace GoogleAppsScript {
export interface Range {
activate(): Range;
activateAsCurrentCell(): Range;
+ addDeveloperMetadata(key: string): Range;
+ addDeveloperMetadata(key: string, visibility: DeveloperMetadataVisibility): Range;
+ addDeveloperMetadata(key: string, value: string): Range;
+ addDeveloperMetadata(key: string, value: string, visibility: DeveloperMetadataVisibility): Range;
applyColumnBanding(): Banding;
applyColumnBanding(bandingTheme: BandingTheme): Banding;
applyColumnBanding(bandingTheme: BandingTheme, showHeader: boolean, showFooter: boolean): Banding;
@@ -1115,6 +1204,7 @@ declare namespace GoogleAppsScript {
copyTo(destination: Range, options: Object): void;
copyValuesToRange(gridId: Integer, column: Integer, columnEnd: Integer, row: Integer, rowEnd: Integer): void;
copyValuesToRange(sheet: Sheet, column: Integer, columnEnd: Integer, row: Integer, rowEnd: Integer): void;
+ createDeveloperMetadataFinder(): DeveloperMetadataFinder;
createFilter(): Filter;
createPivotTable(sourceData: Range): PivotTable;
deleteCells(shiftDimension: Dimension): void;
@@ -1130,6 +1220,7 @@ declare namespace GoogleAppsScript {
getDataTable(firstRowIsHeader: boolean): Charts.DataTable;
getDataValidation(): DataValidation;
getDataValidations(): DataValidation[][];
+ getDeveloperMetadata(): DeveloperMetadata[];
getDisplayValue(): string;
getDisplayValues(): string[][];
getFilter(): Filter;
@@ -1178,7 +1269,7 @@ declare namespace GoogleAppsScript {
getWrap(): boolean;
getWrapStrategies(): WrapStrategy[][];
getWrapStrategy(): WrapStrategy;
- getWraps(): Boolean[][];
+ getWraps(): boolean[][];
insertCells(shiftDimension: Dimension): Range;
isBlank(): boolean;
isEndColumnBounded(): boolean;
@@ -1328,6 +1419,10 @@ declare namespace GoogleAppsScript {
*/
export interface Sheet {
activate(): Sheet;
+ addDeveloperMetadata(key: string): Sheet;
+ addDeveloperMetadata(key: string, visibility: DeveloperMetadataVisibility): Sheet;
+ addDeveloperMetadata(key: string, value: string): Sheet;
+ addDeveloperMetadata(key: string, value: string, visibility: DeveloperMetadataVisibility): Sheet;
appendRow(rowContents: Object[]): Sheet;
autoResizeColumn(columnPosition: Integer): Sheet;
autoResizeColumns(startColumn: Integer, numColumns: Integer): Sheet;
@@ -1341,6 +1436,7 @@ declare namespace GoogleAppsScript {
collapseAllColumnGroups(): Sheet;
collapseAllRowGroups(): Sheet;
copyTo(spreadsheet: Spreadsheet): Sheet;
+ createDeveloperMetadataFinder(): DeveloperMetadataFinder;
deleteColumn(columnPosition: Integer): Sheet;
deleteColumns(columnPosition: Integer, howMany: Integer): void;
deleteRow(rowPosition: Integer): Sheet;
@@ -1361,10 +1457,12 @@ declare namespace GoogleAppsScript {
getConditionalFormatRules(): ConditionalFormatRule[];
getCurrentCell(): Range;
getDataRange(): Range;
+ getDeveloperMetadata(): DeveloperMetadata[];
getFilter(): Filter;
getFormUrl(): string;
getFrozenColumns(): Integer;
getFrozenRows(): Integer;
+ getImages(): OverGridImage[];
getIndex(): Integer;
getLastColumn(): Integer;
getLastRow(): Integer;
@@ -1404,17 +1502,20 @@ declare namespace GoogleAppsScript {
insertColumns(columnIndex: Integer, numColumns: Integer): void;
insertColumnsAfter(afterPosition: Integer, howMany: Integer): Sheet;
insertColumnsBefore(beforePosition: Integer, howMany: Integer): Sheet;
- insertImage(blobSource: Base.BlobSource, column: Integer, row: Integer): void;
- insertImage(blobSource: Base.BlobSource, column: Integer, row: Integer, offsetX: Integer, offsetY: Integer): void;
- insertImage(url: string, column: Integer, row: Integer): void;
- insertImage(url: string, column: Integer, row: Integer, offsetX: Integer, offsetY: Integer): void;
+ insertImage(blobSource: Base.BlobSource, column: Integer, row: Integer): OverGridImage;
+ insertImage(blobSource: Base.BlobSource, column: Integer, row: Integer, offsetX: Integer, offsetY: Integer): OverGridImage;
+ insertImage(url: string, column: Integer, row: Integer): OverGridImage;
+ insertImage(url: string, column: Integer, row: Integer, offsetX: Integer, offsetY: Integer): OverGridImage;
insertRowAfter(afterPosition: Integer): Sheet;
insertRowBefore(beforePosition: Integer): Sheet;
insertRows(rowIndex: Integer): void;
insertRows(rowIndex: Integer, numRows: Integer): void;
insertRowsAfter(afterPosition: Integer, howMany: Integer): Sheet;
insertRowsBefore(beforePosition: Integer, howMany: Integer): Sheet;
+ isColumnHiddenByUser(columnPosition: Integer): boolean;
isRightToLeft(): boolean;
+ isRowHiddenByFilter(rowPosition: Integer): boolean;
+ isRowHiddenByUser(rowPosition: Integer): boolean;
isSheetHidden(): boolean;
moveColumns(columnSpec: Range, destinationIndex: Integer): void;
moveRows(rowSpec: Range, destinationIndex: Integer): void;
@@ -1458,6 +1559,10 @@ declare namespace GoogleAppsScript {
* collaborators.
*/
export interface Spreadsheet {
+ addDeveloperMetadata(key: string): Spreadsheet;
+ addDeveloperMetadata(key: string, visibility: DeveloperMetadataVisibility): Spreadsheet;
+ addDeveloperMetadata(key: string, value: string): Spreadsheet;
+ addDeveloperMetadata(key: string, value: string, visibility: DeveloperMetadataVisibility): Spreadsheet;
addEditor(emailAddress: string): Spreadsheet;
addEditor(user: Base.User): Spreadsheet;
addEditors(emailAddresses: string[]): Spreadsheet;
@@ -1468,6 +1573,7 @@ declare namespace GoogleAppsScript {
appendRow(rowContents: Object[]): Sheet;
autoResizeColumn(columnPosition: Integer): Sheet;
copy(name: string): Spreadsheet;
+ createDeveloperMetadataFinder(): DeveloperMetadataFinder;
deleteActiveSheet(): Sheet;
deleteColumn(columnPosition: Integer): Sheet;
deleteColumns(columnPosition: Integer, howMany: Integer): void;
@@ -1485,11 +1591,13 @@ declare namespace GoogleAppsScript {
getColumnWidth(columnPosition: Integer): Integer;
getCurrentCell(): Range;
getDataRange(): Range;
+ getDeveloperMetadata(): DeveloperMetadata[];
getEditors(): Base.User[];
getFormUrl(): string;
getFrozenColumns(): Integer;
getFrozenRows(): Integer;
getId(): string;
+ getImages(): OverGridImage[];
getLastColumn(): Integer;
getLastRow(): Integer;
getName(): string;
@@ -1517,10 +1625,10 @@ declare namespace GoogleAppsScript {
insertColumnBefore(beforePosition: Integer): Sheet;
insertColumnsAfter(afterPosition: Integer, howMany: Integer): Sheet;
insertColumnsBefore(beforePosition: Integer, howMany: Integer): Sheet;
- insertImage(blobSource: Base.BlobSource, column: Integer, row: Integer): void;
- insertImage(blobSource: Base.BlobSource, column: Integer, row: Integer, offsetX: Integer, offsetY: Integer): void;
- insertImage(url: string, column: Integer, row: Integer): void;
- insertImage(url: string, column: Integer, row: Integer, offsetX: Integer, offsetY: Integer): void;
+ insertImage(blobSource: Base.BlobSource, column: Integer, row: Integer): OverGridImage;
+ insertImage(blobSource: Base.BlobSource, column: Integer, row: Integer, offsetX: Integer, offsetY: Integer): OverGridImage;
+ insertImage(url: string, column: Integer, row: Integer): OverGridImage;
+ insertImage(url: string, column: Integer, row: Integer, offsetX: Integer, offsetY: Integer): OverGridImage;
insertRowAfter(afterPosition: Integer): Sheet;
insertRowBefore(beforePosition: Integer): Sheet;
insertRowsAfter(afterPosition: Integer, howMany: Integer): Sheet;
@@ -1533,6 +1641,9 @@ declare namespace GoogleAppsScript {
insertSheet(sheetName: string, sheetIndex: Integer): Sheet;
insertSheet(sheetName: string, sheetIndex: Integer, options: Object): Sheet;
insertSheet(sheetName: string, options: Object): Sheet;
+ isColumnHiddenByUser(columnPosition: Integer): boolean;
+ isRowHiddenByFilter(rowPosition: Integer): boolean;
+ isRowHiddenByUser(rowPosition: Integer): boolean;
moveActiveSheet(pos: Integer): void;
removeEditor(emailAddress: string): Spreadsheet;
removeEditor(user: Base.User): Spreadsheet;
@@ -1582,6 +1693,8 @@ declare namespace GoogleAppsScript {
BorderStyle: typeof BorderStyle;
CopyPasteType: typeof CopyPasteType;
DataValidationCriteria: typeof DataValidationCriteria;
+ DeveloperMetadataLocationType: typeof DeveloperMetadataLocationType;
+ DeveloperMetadataVisibility: typeof DeveloperMetadataVisibility;
Dimension: typeof Dimension;
Direction: typeof Direction;
GroupControlTogglePosition: typeof GroupControlTogglePosition;
diff --git a/types/google-apps-script/google-apps-script.utilities.d.ts b/types/google-apps-script/google-apps-script.utilities.d.ts
index 272c341b6c..922e31544a 100644
--- a/types/google-apps-script/google-apps-script.utilities.d.ts
+++ b/types/google-apps-script/google-apps-script.utilities.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for Google Apps Script 2018-07-11
+// Type definitions for Google Apps Script 2018-12-26
// Project: https://developers.google.com/apps-script/
// Definitions by: motemen
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
@@ -14,7 +14,7 @@ declare namespace GoogleAppsScript {
export enum Charset { US_ASCII, UTF_8 }
/**
- * Selector of Digest algorithm
+ * Selector of Digest algorithm.
*/
export enum DigestAlgorithm { MD2, MD5, SHA_1, SHA_256, SHA_384, SHA_512 }
@@ -23,6 +23,11 @@ declare namespace GoogleAppsScript {
*/
export enum MacAlgorithm { HMAC_MD5, HMAC_SHA_1, HMAC_SHA_256, HMAC_SHA_384, HMAC_SHA_512 }
+ /**
+ * Selector of RSA algorithm
+ */
+ export enum RsaAlgorithm { RSA_SHA_1, RSA_SHA_256 }
+
/**
* This service provides utilities for string encoding/decoding, date formatting, JSON manipulation,
* and other miscellaneous tasks.
@@ -31,6 +36,7 @@ declare namespace GoogleAppsScript {
Charset: typeof Charset;
DigestAlgorithm: typeof DigestAlgorithm;
MacAlgorithm: typeof MacAlgorithm;
+ RsaAlgorithm: typeof RsaAlgorithm;
base64Decode(encoded: string): Byte[];
base64Decode(encoded: string, charset: Charset): Byte[];
base64DecodeWebSafe(encoded: string): Byte[];
@@ -50,8 +56,12 @@ declare namespace GoogleAppsScript {
computeHmacSignature(algorithm: MacAlgorithm, value: Byte[], key: Byte[]): Byte[];
computeHmacSignature(algorithm: MacAlgorithm, value: string, key: string): Byte[];
computeHmacSignature(algorithm: MacAlgorithm, value: string, key: string, charset: Charset): Byte[];
+ computeRsaSha1Signature(value: string, key: string): Byte[];
+ computeRsaSha1Signature(value: string, key: string, charset: Charset): Byte[];
computeRsaSha256Signature(value: string, key: string): Byte[];
computeRsaSha256Signature(value: string, key: string, charset: Charset): Byte[];
+ computeRsaSignature(algorithm: RsaAlgorithm, value: string, key: string): Byte[];
+ computeRsaSignature(algorithm: RsaAlgorithm, value: string, key: string, charset: Charset): Byte[];
formatDate(date: Date, timeZone: string, format: string): string;
formatString(template: string, ...args: Object[]): string;
getUuid(): string;
@@ -80,4 +90,5 @@ declare namespace GoogleAppsScript {
declare var Charset: GoogleAppsScript.Utilities.Charset;
declare var DigestAlgorithm: GoogleAppsScript.Utilities.DigestAlgorithm;
declare var MacAlgorithm: GoogleAppsScript.Utilities.MacAlgorithm;
+declare var RsaAlgorithm: GoogleAppsScript.Utilities.RsaAlgorithm;
declare var Utilities: GoogleAppsScript.Utilities.Utilities;