phaser3-rex-plugins
Version:
268 lines (238 loc) • 7.14 kB
TypeScript
import Dialog from '../dialog/Dialog';
import BaseSizer from '../basesizer/BaseSizer';
import { GeneralCreateGameObjectCallbackType } from '../utils/build/GeneralCreateGameObjectCallbackType';
import CreateBackground from '../utils/build/CreateBackground';
import SimpleLabel from '../simplelabel/SimpleLabel';
import CreateTextArea from '../utils/build/CreateTextArea';
import Label from '../label/Label';
export default ConfirmDialog;
declare namespace ConfirmDialog {
/**
* Alignment options for dialog sections.
*/
type AlignTypes = number | 'left' | 'center' | 'right';
/**
* Click behavior configuration for dialog buttons.
*/
interface IConfigClick {
/**
* Click trigger mode.
*/
mode: 0 | 1 | 'pointerup' | 'pointerdown' | 'release' | 'press',
/**
* Minimum interval between clicks in milliseconds.
*/
clickInterval?: number
}
/**
* Configuration options for creating a confirm dialog.
*/
interface IConfig extends BaseSizer.IConfig {
/**
* Initial x position.
*/
x?: number,
/**
* Initial y position.
*/
y?: number,
/**
* Initial width.
*/
width?: number,
/**
* Initial height.
*/
height?: number,
space?: {
left?: number,
right?: number,
top?: number,
bottom?: number,
title?: number,
titleLeft?: number,
titleRight?: number,
content?: number,
contentLeft?: number,
contentRight?: number,
actionsLeft?: number,
actionsRight?: number,
action?: number,
choices?: number,
choicesLeft?: number,
choicesRight?: number,
choice?: number,
choiceLine?: number,
choiceColumn?: number,
choiceRow?: number,
choicesBackgroundLeft?: number,
choicesBackgroundRight?: number,
choicesBackgroundTop?: number,
choicesBackgroundBottom?: number,
};
/**
* Background style configuration.
*/
background?: CreateBackground.IConfig,
/**
* Title style configuration.
*/
title?: SimpleLabel.IConfig,
/**
* Content style configuration.
*/
content?: SimpleLabel.IConfig | CreateTextArea.IConfig,
/**
* Button mode preset.
*/
buttonMode?: 0 | 1 | 2;
/**
* Shared button style configuration.
*/
button?: SimpleLabel.IConfig,
/**
* Confirm button style configuration.
*/
buttonA?: SimpleLabel.IConfig,
/**
* Cancel button style configuration.
*/
buttonB?: SimpleLabel.IConfig,
/**
* Choices layout type.
*/
choicesType?: string,
/**
* Choice item style configuration.
*/
choice?: SimpleLabel.IConfig,
/**
* Width of choices area.
*/
choicesWidth?: number,
/**
* Height of choices area.
*/
choicesHeight?: number,
proportion?: {
title?: number,
content?: number,
actions?: number,
choices?: number,
},
expand?: {
title?: boolean,
content?: boolean,
actions?: boolean,
choices?: boolean,
},
align?: {
title?: AlignTypes,
content?: AlignTypes,
actions?: AlignTypes,
choices?: AlignTypes,
},
/**
* Click behavior configuration.
*/
click?: IConfigClick,
/**
* Modal behavior configuration.
*/
modal?: Dialog.IModalConfig
}
/**
* Display-content configuration for a single choice item.
*/
interface IResetChoiceDisplayContentConfig extends Label.IResetDisplayContentConfig {
/**
* Custom value of the choice item.
*/
value?: any;
}
/**
* Display-content configuration for runtime dialog reset.
*/
interface IResetDisplayContentConfig {
/**
* Title text or label config.
*/
title?: string | Label.IResetDisplayContentConfig,
/**
* Content text or label config.
*/
content?: string | Label.IResetDisplayContentConfig,
/**
* Confirm button text or label config.
*/
buttonA?: string | Label.IResetDisplayContentConfig,
/**
* Cancel button text or label config.
*/
buttonB?: string | Label.IResetDisplayContentConfig,
/**
* Choice item texts or configs.
*/
choices?: (string | IResetChoiceDisplayContentConfig)[]
}
/**
* Factory callbacks used to create dialog sub-objects.
*/
interface ICreatorsConfig {
background?: GeneralCreateGameObjectCallbackType,
title?: SimpleLabel.ICreatorsConfig,
content?: SimpleLabel.ICreatorsConfig | CreateTextArea.ICreatorsConfig,
button?: SimpleLabel.ICreatorsConfig,
buttonA?: SimpleLabel.ICreatorsConfig,
buttonB?: SimpleLabel.ICreatorsConfig,
choice?: SimpleLabel.ICreatorsConfig,
}
}
/**
* Confirm dialog UI component built on top of `Dialog`.
*/
declare class ConfirmDialog extends Dialog {
/**
* Create a confirm dialog.
*
* @param scene - Scene that owns this dialog.
* @param config - Optional dialog configuration.
* @param creators - Optional custom creators for dialog sub-objects.
*/
constructor(
scene: Phaser.Scene,
config?: ConfirmDialog.IConfig,
creators?: ConfirmDialog.ICreatorsConfig
);
/**
* Set confirm button index.
*
* @param index - Index treated as confirm action.
* @returns This dialog instance.
*/
setConfirmButtonIndex(index: number): this;
/**
* Index treated as confirm action.
*/
confirmButtonIndex: number;
/**
* Set cancel button index.
*
* @param index - Index treated as cancel action.
* @returns This dialog instance.
*/
setCancelButtonIndex(index: number): this;
/**
* Index treated as cancel action.
*/
cancelButtonIndex: number;
/**
* Reset displayed title/content/buttons/choices.
*
* @param config - Optional display-content configuration.
* @returns This dialog instance.
*/
resetDisplayContent(
config?: ConfirmDialog.IResetDisplayContentConfig
): this;
}