Dialog options.
Optional
options: SvelteApplicationOptionsSvelteApplication options.
Returns the dialog data.
Dialog data.
Returns the content element if an application shell is mounted.
Content element.
Returns the target element or main element if no target defined.
Target element.
Returns the managed promise.
Returns the TJSPosition instance.
The TJSPosition instance.
Returns the reactive accessors & Svelte stores for SvelteApplication.
The reactive accessors & Svelte stores.
Returns the application state manager.
The application state manager.
Returns the Svelte helper class w/ various methods to access mounted Svelte components.
GetSvelteData
Provides a mechanism to update the UI options store for maximized.
Note: the sanity check is duplicated from Application.maximize the store is updated before performing the rest of animations. This allows application shells to remove / show any resize handlers correctly. Extra constraint data is stored in a saved position state in SvelteApplication.minimize to animate the content area.
Optional
opts: { Optional parameters.
Optional
animate?: booleanWhen true perform default maximizing animation.
Optional
duration?: numberControls content area animation duration in seconds.
Provides a mechanism to update the UI options store for minimized.
Note: the sanity check is duplicated from Application.minimize the store is updated before performing the rest of animations. This allows application shells to remove / show any resize handlers correctly. Extra constraint data is stored in a saved position state in SvelteApplication.minimize to animate the content area.
Optional
opts: { Optional parameters
Optional
animate?: booleanWhen true perform default minimizing animation.
Optional
duration?: numberControls content area animation duration in seconds.
Provides a callback after all Svelte components are initialized.
Optional
mountedAppShell: MountedAppShellThe mounted app shell elements.
Provides a callback after the main application shell is remounted. This may occur during HMR / hot module
replacement or directly invoked from the elementRootUpdate
callback passed to the application shell component
context.
Optional
mountedAppShell: MountedAppShellThe mounted app shell elements.
Brings to top or renders this dialog returning a Promise that is resolved any button pressed or when the dialog is closed.
Creates an anonymous data defined TJSDialog returning a Promise that can be awaited upon for the user to make a choice.
Note: null
is returned if the dialog is closed without a user making a choice.
Optional
options: { Options.
Optional
reuse?: booleanWhen true if there is an existing managed Promise this allows multiple sources to await on the same result.
A promise for dialog resolution.
Static
confirmA helper factory method to create simple confirmation dialog windows which consist of simple yes / no prompts.
If you require more flexibility, a custom TJSDialog instance is preferred. The default focused button is 'yes'.
You can change the default focused button by setting default
to yes
or no
.
Optional
data: TJSDialogOptions & { Confirm dialog options.
Optional
options: SvelteApplicationOptionsSvelteApplication options passed to the TJSDialog constructor.
A promise which resolves with result of yes / no callbacks or true / false.
const result = await TJSDialog.confirm({
title: 'A Yes or No Question',
content: '<p>Choose wisely.</p>',
onYes: () => 'YES Result'
onNo: () => 'NO Result'
});
// Logs 'YES result', 'NO Result', or null if the user closed the dialog without making a selection.
console.log(result);
Static
promptA helper factory method to display a basic "prompt" style TJSDialog with a single button.
Optional
data: TJSDialogOptions & { Prompt dialog options that includes any TJSDialog options along with the following optional fields:
Optional
options: SvelteApplicationOptionsSvelteApplication options passed to the TJSDialog constructor.
The returned value from the provided callback function or true
if the button
is pressed.
const result = await TJSDialog.prompt({
title: 'Are you OK?',
content: '<p>Are you OK?.</p>',
label: 'Feeling Fine!'
onOk: () => 'OK'
});
// Logs 'OK' or null if the user closed the dialog without making a selection.
console.log(result);
Static
waitCreates an anonymous data defined TJSDialog returning a Promise that can be awaited upon for the user to make a choice.
Note: By default null
is returned if the dialog is closed without a user making a choice.
Dialog data passed to the TJSDialog constructor.
Optional
options: SvelteApplicationOptionsSvelteApplication options passed to the TJSDialog constructor.
A Promise that resolves to the chosen result.
Provides a reactive dialog implementation configured from a unique dialog options object. The dialog features a bottom button bar for user selection.
A glasspane / modal option with various styling and transition capabilities is available when setting
modal: true
.Most importantly the
content
attribute of dialog data can be a Svelte component configuration object to render your custom component as the dialog content. When using a Svelte component as the content you can assign a string to the variouson<XXX>
dialog callbacks and an exported function from your component will be invoked to handle the button callback. All dialog button callbacks andonClose
callback receive a single argument which is the dialog / application instance.When making a form with form validation or other dialog that you don't want to close immediately on button press you can set
autoClose: false
, however you are 100% in control of resolving any Promise callbacks from button presses and also closing the application. Each button can also be configured withautoClose: false
in the button data.There is a handy Promise management capability to track a single Promise for the lifetime of a dialog available at TJSDialog.managedPromise. By default when the user closes the dialog / application any managed Promise is resolved with
null
. The managed Promise is available in any Svelte content component by usingconst managedPromise = getContext('#managedPromise')
. When handling any custom resolution particularly when settingautoClose: false
for a given button you are 100% in control of resolving or rejecting asynchronous data to return from the dialog.To create and wait upon a managed promise for asynchronous return results use the static or member variation of TJSDialog.wait.
Please refer to TJSDialogOptions for the various options used to construct the dialog.
There are a couple of static helper methods to quickly create standard dialogs such as a 'yes' / 'no' confirmation dialog with TJSDialog.confirm and an 'ok' single button dialog with TJSDialog.prompt.
TODO: document all extended dialog data parameters such as transition options / modal transitions.