UNPKG

google-closure-compiler

Version:

Check, compile, optimize and compress Javascript with Closure-Compiler

259 lines (220 loc) • 6.71 kB
/* * Copyright 2010 The Closure Compiler Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @fileoverview Definitions for W3C's Notifications specification. * @externs */ /** * @typedef {{ * dir: (string|undefined), * lang: (string|undefined), * body: (string|undefined), * tag: (string|undefined), * image: (string|undefined), * icon: (string|undefined), * badge: (string|undefined), * vibrate: (!Array<number>|undefined), * timestamp: (number|undefined), * renotify: (boolean|undefined), * silent: (boolean|undefined), * requireInteraction: (boolean|undefined), * data: (*|undefined), * actions: (!Array<!NotificationAction>|undefined), * }} * TODO(user): change the type of data to a serializable object * (https://html.spec.whatwg.org/multipage/structured-data.html). * * @see http://notifications.spec.whatwg.org/#notification */ var NotificationOptions; /** * @typedef {{action: string, title: string, icon: (string|undefined)}} * @see https://notifications.spec.whatwg.org/#dictdef-notificationoptions */ var NotificationAction; /** * @typedef {{tag: (string|undefined)}} * @see https://notifications.spec.whatwg.org/#dictdef-getnotificationoptions */ var GetNotificationOptions; /** @interface */ var NotificationOptionsInterface_ = function() {} /** @type {string} */ NotificationOptionsInterface_.prototype.dir; /** @type {string} */ NotificationOptionsInterface_.prototype.lang; /** @type {string} */ NotificationOptionsInterface_.prototype.body; /** @type {string} */ NotificationOptionsInterface_.prototype.tag; /** @type {string} */ NotificationOptionsInterface_.prototype.icon; /** @type {boolean} */ NotificationOptionsInterface_.prototype.requireInteraction; /** * @param {string} title * @param {NotificationOptions=} opt_options * @constructor * @implements {EventTarget} * @see http://notifications.spec.whatwg.org/#notification */ function Notification(title, opt_options) {} /** * @type {string} */ Notification.permission; /** * @param {NotificationPermissionCallback=} opt_callback * @return {!Promise<string>} */ Notification.requestPermission = function(opt_callback) {}; /** @override */ Notification.prototype.addEventListener = function( type, listener, opt_options) {}; /** @override */ Notification.prototype.removeEventListener = function( type, listener, opt_options) {}; /** @override */ Notification.prototype.dispatchEvent = function(evt) {}; /** * @type {string} */ Notification.prototype.title; /** * @type {string} */ Notification.prototype.body; /** * @type {string} */ Notification.prototype.icon; /** * The string used by clients to identify the notification. * @type {string} */ Notification.prototype.tag; /** * The ID used by clients to uniquely identify notifications to eliminate * duplicate notifications. * @type {string} * @deprecated Use NotificationOptions.tag instead. */ Notification.prototype.replaceId; /** * @type {*} */ Notification.prototype.data; /** * The string used by clients to specify the directionality (rtl/ltr) of the * notification. * @type {string} * @deprecated Use NotificationOptions.titleDir and bodyDir instead. */ Notification.prototype.dir; /** * Displays the notification. * @return {undefined} */ Notification.prototype.show = function() {}; /** * Prevents the notification from being displayed, or closes it if it is already * displayed. * @return {undefined} */ Notification.prototype.cancel = function() {}; /** * Prevents the notification from being displayed, or closes it if it is already * displayed. * @return {undefined} */ Notification.prototype.close = function() {}; /** * An event handler called when notification is closed. * @type {?function(Event)} */ Notification.prototype.onclose; /** * An event handler called if the notification could not be displayed due to * an error (i.e. resource could not be loaded). * @type {?function(Event)} */ Notification.prototype.onerror; /** * An event handler called when the notification has become visible. * @type {?function(Event)} * @deprecated Use onshow instead. */ Notification.prototype.ondisplay; /** * An event handler called when the notification has become visible. * @type {?function(Event)} */ Notification.prototype.onshow; /** * An event handler called when the notification has been clicked on. * @type {?function(Event)} */ Notification.prototype.onclick; /** * @typedef {function(string)} * @see http://notifications.spec.whatwg.org/#notificationpermissioncallback */ var NotificationPermissionCallback; /** * @constructor * @see http://dev.w3.org/2006/webapi/WebNotifications/publish/#dialog-if * @deprecated Use Notification instead. */ function NotificationCenter() {} /** * Creates a text+icon notification and displays it to the user. * @param {string} iconUrl * @param {string} title * @param {string} body * @return {Notification} */ NotificationCenter.prototype.createNotification = function(iconUrl, title, body) {}; /** * Creates an HTML notification and displays it to the user. * @param {string} url * @return {Notification} */ NotificationCenter.prototype.createHTMLNotification = function(url) {}; /** * Checks if the user has permission to display notifications. * @return {number} */ NotificationCenter.prototype.checkPermission = function() {}; /** * Requests permission from the user to display notifications. * @param {Function=} opt_callback * @return {void} */ NotificationCenter.prototype.requestPermission = function(opt_callback) {}; /** * WebKit browsers expose the NotificationCenter API through * window.webkitNotifications. * @type {NotificationCenter} */ Window.prototype.webkitNotifications; /** * @see https://notifications.spec.whatwg.org/#notificationevent * @constructor * @param {string} type * @param {!ExtendableEventInit=} opt_eventInitDict * @extends {ExtendableEvent} */ function NotificationEvent(type, opt_eventInitDict) {} /** @type {!Notification} */ NotificationEvent.prototype.notification; /** @type {string} */ NotificationEvent.prototype.action;