diff --git a/packages/datalib/src/ChangeSet.ts b/packages/datalib/src/ChangeSet.ts
index 0d9947beb..89fb29a6e 100644
--- a/packages/datalib/src/ChangeSet.ts
+++ b/packages/datalib/src/ChangeSet.ts
@@ -530,3 +530,7 @@ export function changeSetContainsChanges(changeSet: ChangeSet) {
changeSet.dataUpdateCommands?.length > 0
);
}
+
+export function changeSetChangedCount(changeSet: ChangeSet) {
+ return changeSet.deletes.length + changeSet.updates.length + changeSet.inserts.length;
+}
diff --git a/packages/web/src/buttons/ToolStripButton.svelte b/packages/web/src/buttons/ToolStripButton.svelte
index bc52c596f..07b302207 100644
--- a/packages/web/src/buttons/ToolStripButton.svelte
+++ b/packages/web/src/buttons/ToolStripButton.svelte
@@ -5,6 +5,7 @@
export let disabled = false;
export let icon = null;
export let title = null;
+ export let iconAfter = null;
const dispatch = createEventDispatcher();
@@ -18,6 +19,9 @@
+ {#if iconAfter}
+
+ {/if}
diff --git a/packages/web/src/buttons/ToolStripCommandButton.svelte b/packages/web/src/buttons/ToolStripCommandButton.svelte
index 107fb46c3..8d2e92ae8 100644
--- a/packages/web/src/buttons/ToolStripCommandButton.svelte
+++ b/packages/web/src/buttons/ToolStripCommandButton.svelte
@@ -17,6 +17,7 @@
export let component = ToolStripButton;
export let hideDisabled = false;
export let buttonLabel = null;
+ export let iconAfter = null;
$: cmd = Object.values($commandsCustomized).find((x: any) => x.id == command) as any;
@@ -28,6 +29,7 @@
icon={cmd.icon}
on:click={cmd.onClick}
disabled={!cmd.enabled}
+ {iconAfter}
{...$$restProps}
>
{buttonLabel || cmd.toolbarName || cmd.name}
diff --git a/packages/web/src/icons/FontIcon.svelte b/packages/web/src/icons/FontIcon.svelte
index 46711ff3b..c64332de1 100644
--- a/packages/web/src/icons/FontIcon.svelte
+++ b/packages/web/src/icons/FontIcon.svelte
@@ -1,3 +1,30 @@
+
+