2778b9220c
* Remove unnecessary stopPropagation of mathjax-overlay events * Use CodeMirror component for MathjaxHandle * Refactor ResizeObserver code in MathjaxHandle * Wrap setRange in CodeMirror in try/catch * Add Mathjax Editor bottom margin * Add custom Enter and Shift+Enter shortcuts for the MathjaxHandle * Format * Move placeCaretAfter to domlib * Move focus back to field after editing Mathjax * Put Cursor after Mathjax after accepting * Add delete button for Mathjax * Change border color of mathjax menu * Refactor into MathjaxMenu * Put caretKeyword in variable * Use one ResizeObserver for all Mathjax images * Add minmimum width for Mathjax editor * is still smaller than minimal window width * Add bazel directories to .prettierignore and format from root * exclude ftl/usage (dae) the json files that live there are output from our tooling, and formatting them means an extra step each time we want to update them also exclude .mypy_cache, which is output by scripts/mypy* * minor ftl tweak: newline -> new line (dae)
55 lines
1.9 KiB
Svelte
55 lines
1.9 KiB
Svelte
<!--
|
|
Copyright: Ankitects Pty Ltd and contributors
|
|
License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|
-->
|
|
<script lang="ts">
|
|
import ButtonToolbar from "../../components/ButtonToolbar.svelte";
|
|
import Item from "../../components/Item.svelte";
|
|
import ButtonGroup from "../../components/ButtonGroup.svelte";
|
|
import ButtonGroupItem from "../../components/ButtonGroupItem.svelte";
|
|
import IconButton from "../../components/IconButton.svelte";
|
|
import * as tr from "../../lib/ftl";
|
|
import { inlineIcon, blockIcon, deleteIcon } from "./icons";
|
|
import { createEventDispatcher } from "svelte";
|
|
|
|
export let activeImage: HTMLImageElement;
|
|
export let mathjaxElement: HTMLElement;
|
|
|
|
const dispatch = createEventDispatcher();
|
|
</script>
|
|
|
|
<ButtonToolbar size={1.6} wrap={false}>
|
|
<Item>
|
|
<ButtonGroup>
|
|
<ButtonGroupItem>
|
|
<IconButton
|
|
tooltip={tr.editingMathjaxInline()}
|
|
active={activeImage.getAttribute("block") === "true"}
|
|
on:click={() => mathjaxElement.setAttribute("block", "false")}
|
|
on:click>{@html inlineIcon}</IconButton
|
|
>
|
|
</ButtonGroupItem>
|
|
|
|
<ButtonGroupItem>
|
|
<IconButton
|
|
tooltip={tr.editingMathjaxBlock()}
|
|
active={activeImage.getAttribute("block") === "false"}
|
|
on:click={() => mathjaxElement.setAttribute("block", "true")}
|
|
on:click>{@html blockIcon}</IconButton
|
|
>
|
|
</ButtonGroupItem>
|
|
</ButtonGroup>
|
|
</Item>
|
|
|
|
<Item>
|
|
<ButtonGroup>
|
|
<ButtonGroupItem>
|
|
<IconButton
|
|
tooltip={tr.actionsDelete()}
|
|
on:click={() => dispatch("delete")}>{@html deleteIcon}</IconButton
|
|
>
|
|
</ButtonGroupItem>
|
|
</ButtonGroup>
|
|
</Item>
|
|
</ButtonToolbar>
|