*/
import AjaxRequest from './Ajax/Request';
-import { CallbackObject, CallbackSuccess, CallbackFailure, RequestData, RequestOptions } from './Ajax/Data';
+import { AjaxCallbackObject, CallbackSuccess, CallbackFailure, RequestData, RequestOptions } from './Ajax/Data';
const _cache = new WeakMap();
* Shorthand function to perform a request against the WCF-API with overrides
* for success and failure callbacks.
*/
-export function api(callbackObject: CallbackObject, data?: RequestData, success?: CallbackSuccess, failure?: CallbackFailure): AjaxRequest {
+export function api(callbackObject: AjaxCallbackObject, data?: RequestData, success?: CallbackSuccess, failure?: CallbackFailure): AjaxRequest {
if (typeof data !== 'object') data = {};
let request = _cache.get(callbackObject);
/**
* Returns the request object used for an earlier call to `api()`.
*/
-export function getRequestObject(callbackObject: CallbackObject): AjaxRequest {
+export function getRequestObject(callbackObject: AjaxCallbackObject): AjaxRequest {
if (!_cache.has(callbackObject)) {
throw new Error('Expected a previously used callback object, provided object is unknown.');
}
export type CallbackUploadProgress = (event: ProgressEvent) => void;
export type CallbackSetup = () => RequestOptions;
-export interface CallbackObject {
+export interface AjaxCallbackObject {
_ajaxFailure?: CallbackFailure;
_ajaxFinalize?: CallbackFinalize;
_ajaxProgress?: CallbackProgress;
progress?: CallbackProgress,
uploadProgress?: CallbackUploadProgress,
- callbackObject?: CallbackObject | null,
+ callbackObject?: AjaxCallbackObject | null,
}
*/
import * as Ajax from './Ajax';
-import { CallbackObject, RequestOptions, ResponseData } from './Ajax/Data';
+import { AjaxCallbackObject, RequestOptions, ResponseData } from './Ajax/Data';
-class BackgroundQueue implements CallbackObject {
+class BackgroundQueue implements AjaxCallbackObject {
private _invocations = 0;
private _isBusy = false;
private readonly _url: string;
import * as Core from '../Core';
import * as Language from '../Language';
import UiDialog from './Dialog';
-import { CallbackObject } from './Dialog/Data';
+import { DialogCallbackObject } from './Dialog/Data';
-class UiConfirmation implements CallbackObject {
+class UiConfirmation implements DialogCallbackObject {
private _active = false;
private parameters: CallbackParameters;
import DomChangeListener from '../Dom/Change/Listener';
import * as UiScreen from './Screen';
import DomUtil from '../Dom/Util';
-import { CallbackObject, DialogData, DialogId, DialogOptions, DialogHtml, AjaxInitialization } from './Dialog/Data';
+import { DialogCallbackObject, DialogData, DialogId, DialogOptions, DialogHtml, AjaxInitialization } from './Dialog/Data';
import * as Language from '../Language';
import * as Environment from '../Environment';
import * as EventHandler from '../Event/Handler';
let _container: HTMLElement;
const _dialogs = new Map<ElementId, DialogData>();
let _dialogFullHeight = false;
-const _dialogObjects = new WeakMap<CallbackObject, DialogInternalData>();
-const _dialogToObject = new Map<ElementId, CallbackObject>();
+const _dialogObjects = new WeakMap<DialogCallbackObject, DialogInternalData>();
+const _dialogToObject = new Map<ElementId, DialogCallbackObject>();
let _focusedBeforeDialog: Element | null;
let _keyupListener: (event: KeyboardEvent) => boolean;
const _validCallbacks = ['onBeforeClose', 'onClose', 'onShow'];
/**
* Opens the dialog and implicitly creates it on first usage.
*/
- open(callbackObject: CallbackObject, html?: DialogHtml): DialogData | object {
+ open(callbackObject: DialogCallbackObject, html?: DialogHtml): DialogData | object {
let dialogData = _dialogObjects.get(callbackObject);
if (dialogData && Core.isPlainObject(dialogData)) {
// dialog already exists
});
if (isValid) {
- const callbackObject = _dialogToObject.get(id) as CallbackObject;
+ const callbackObject = _dialogToObject.get(id) as DialogCallbackObject;
if (typeof callbackObject._dialogSubmit === 'function') {
callbackObject._dialogSubmit();
}
*
* @param {Object} callbackObject the same object that was used to invoke `_dialogSetup()` on first call
*/
- destroy(callbackObject: CallbackObject): void {
+ destroy(callbackObject: DialogCallbackObject): void {
if (typeof callbackObject !== 'object') {
throw new TypeError("Expected the callback object as parameter.");
}
type ElementId = string;
-type ElementIdOrCallbackObject = CallbackObject | ElementId;
+type ElementIdOrCallbackObject = DialogCallbackObject | ElementId;
interface InternalDialogOptions extends DialogOptions {
backdropCloseOnClick: boolean;
export type DialogHtml = DocumentFragment | string | null;
-export interface CallbackObject {
+export interface DialogCallbackObject {
_dialogSetup: () => DialogSettings;
_dialogSubmit?: () => void;
}
* @module WoltLabSuite/Core/Ui/Page/JumpTo
*/
-import { CallbackObject, DialogSettings } from '../Dialog/Data';
+import { DialogCallbackObject, DialogSettings } from '../Dialog/Data';
import * as Language from '../../Language';
import UiDialog from '../Dialog';
-class UiPageJumpTo implements CallbackObject {
+class UiPageJumpTo implements DialogCallbackObject {
private activeElement: HTMLElement;
private description: HTMLElement;
private elements = new Map<HTMLElement, Callback>();
import * as Ajax from '../Ajax';
import * as Core from '../Core';
import {
- CallbackObject,
+ AjaxCallbackObject,
DatabaseObjectActionPayload,
DatabaseObjectActionResponse,
RequestPayload,
} from '../Ajax/Data';
import UiDropdownSimple from './Dropdown/Simple';
-class UiSuggestion implements CallbackObject {
+class UiSuggestion implements AjaxCallbackObject {
private readonly ajaxPayload: DatabaseObjectActionPayload;
private readonly callbackSelect: CallbackSelect;
private dropdownMenu: HTMLElement | null = null;
import DomUtil from '../../Dom/Util';
import UiDialog from '../Dialog';
import UiPagination from '../Pagination';
-import { CallbackObject as AjaxCallbackObject, DatabaseObjectActionResponse, RequestOptions } from '../../Ajax/Data';
-import { CallbackObject as DialogCallbackObject, DialogData, DialogSettings } from '../Dialog/Data';
+import { AjaxCallbackObject, DatabaseObjectActionResponse, RequestOptions } from '../../Ajax/Data';
+import { DialogCallbackObject, DialogData, DialogSettings } from '../Dialog/Data';
/**
* @constructor