diff --git a/README.md b/README.md
index 0ded6f21..a88bfcb5 100644
--- a/README.md
+++ b/README.md
@@ -193,6 +193,7 @@ const editor = new JSONEditor({
- `mainMenuBar: boolean` Show the main menu bar. Default value is `true`.
- `navigationBar: boolean` Show the navigation bar with, where you can see the selected path and navigate through your document from there. Default value is `true`.
- `statusBar: boolean` Show a status bar at the bottom of the `'text'` editor, showing information about the cursor location and selected contents. Default value is `true`.
+- `askToFormat: boolean` When `true` (default), the user will be asked whether he/she wants to format the JSON document when a compact document is loaded or pasted in `'text'` mode. Only applicable to `'text'` mode.
- `readOnly: boolean` Open the editor in read-only mode: no changes can be made, non-relevant buttons are hidden from the menu, and the context menu is not enabled. Default value is `false`.
- `indentation: number | string` Number of spaces use for indentation when stringifying JSON, or a string to be used as indentation like `'\t'` to use a tab as indentation, or `' '` to use 4 spaces (which is equivalent to configuring `indentation: 4`). See also property `tabSize`.
- `tabSize: number` When indentation is configured as a tab character (`indentation: '\t'`), `tabSize` configures how large a tab character is rendered. Default value is `4`. Only applicable to `text` mode.
diff --git a/src/lib/components/JSONEditor.svelte b/src/lib/components/JSONEditor.svelte
index 5cc99c3b..8c59d966 100644
--- a/src/lib/components/JSONEditor.svelte
+++ b/src/lib/components/JSONEditor.svelte
@@ -68,6 +68,7 @@
export let mainMenuBar = true
export let navigationBar = true
export let statusBar = true
+ export let askToFormat = true
export let escapeControlCharacters = false
export let escapeUnicodeCharacters = false
export let flattenColumns = true
@@ -373,6 +374,7 @@
mainMenuBar,
navigationBar,
statusBar,
+ askToFormat,
escapeControlCharacters,
escapeUnicodeCharacters,
flattenColumns,
@@ -433,6 +435,7 @@
{indentation}
{tabSize}
{statusBar}
+ {askToFormat}
{mainMenuBar}
{navigationBar}
{escapeControlCharacters}
diff --git a/src/lib/components/modals/JSONEditorModal.svelte b/src/lib/components/modals/JSONEditorModal.svelte
index 8ca70c97..4e75139c 100644
--- a/src/lib/components/modals/JSONEditorModal.svelte
+++ b/src/lib/components/modals/JSONEditorModal.svelte
@@ -42,6 +42,7 @@
export let mainMenuBar: boolean
export let navigationBar: boolean
export let statusBar: boolean
+ export let askToFormat: boolean
export let escapeControlCharacters: boolean
export let escapeUnicodeCharacters: boolean
export let flattenColumns: boolean
@@ -204,6 +205,7 @@
{indentation}
{tabSize}
{statusBar}
+ {askToFormat}
{mainMenuBar}
{navigationBar}
{escapeControlCharacters}
diff --git a/src/lib/components/modes/JSONEditorRoot.svelte b/src/lib/components/modes/JSONEditorRoot.svelte
index 58b38c45..9c151978 100644
--- a/src/lib/components/modes/JSONEditorRoot.svelte
+++ b/src/lib/components/modes/JSONEditorRoot.svelte
@@ -39,6 +39,7 @@
export let mainMenuBar: boolean
export let navigationBar: boolean
export let statusBar: boolean
+ export let askToFormat: boolean
export let escapeControlCharacters: boolean
export let escapeUnicodeCharacters: boolean
export let flattenColumns: boolean
@@ -232,6 +233,7 @@
{tabSize}
{mainMenuBar}
{statusBar}
+ {askToFormat}
{escapeUnicodeCharacters}
{parser}
{validator}
diff --git a/src/lib/components/modes/textmode/TextMode.svelte b/src/lib/components/modes/textmode/TextMode.svelte
index 3d886e00..040c2473 100644
--- a/src/lib/components/modes/textmode/TextMode.svelte
+++ b/src/lib/components/modes/textmode/TextMode.svelte
@@ -77,6 +77,7 @@
export let readOnly: boolean
export let mainMenuBar: boolean
export let statusBar: boolean
+ export let askToFormat: boolean
export let externalContent: Content
export let indentation: number | string
export let tabSize: number
@@ -112,7 +113,6 @@
let onChangeDisabled = false
let acceptTooLarge = false
- let askToFormat = true
let validationErrors: ValidationError[] = []
const linterCompartment = new Compartment()
diff --git a/src/lib/types.ts b/src/lib/types.ts
index dcbd464d..13858b00 100644
--- a/src/lib/types.ts
+++ b/src/lib/types.ts
@@ -422,6 +422,7 @@ export interface JSONEditorPropsOptional {
mainMenuBar?: boolean
navigationBar?: boolean
statusBar?: boolean
+ askToFormat?: boolean
escapeControlCharacters?: boolean
escapeUnicodeCharacters?: boolean
flattenColumns?: true
diff --git a/src/routes/development/+page.svelte b/src/routes/development/+page.svelte
index 3ef70001..91783615 100644
--- a/src/routes/development/+page.svelte
+++ b/src/routes/development/+page.svelte
@@ -211,6 +211,7 @@
const mainMenuBar = useLocalStorage('svelte-jsoneditor-demo-mainMenuBar', true)
const navigationBar = useLocalStorage('svelte-jsoneditor-demo-navigationBar', true)
const statusBar = useLocalStorage('svelte-jsoneditor-demo-statusBar', true)
+ const askToFormat = useLocalStorage('svelte-jsoneditor-demo-askToFormat', true)
const escapeControlCharacters = useLocalStorage(
'svelte-jsoneditor-demo-escapeControlCharacters',
false
@@ -396,6 +397,9 @@
+
@@ -630,6 +634,7 @@
mainMenuBar={$mainMenuBar}
navigationBar={$navigationBar}
statusBar={$statusBar}
+ askToFormat={$askToFormat}
escapeControlCharacters={$escapeControlCharacters}
escapeUnicodeCharacters={$escapeUnicodeCharacters}
flattenColumns={$flattenColumns}
@@ -678,6 +683,7 @@
mainMenuBar={$mainMenuBar}
navigationBar={$navigationBar}
statusBar={$statusBar}
+ askToFormat={$askToFormat}
escapeControlCharacters={$escapeControlCharacters}
escapeUnicodeCharacters={$escapeUnicodeCharacters}
flattenColumns={$flattenColumns}