From e6a18fa0d8607caa9e12e1ac5acb1236282b7d21 Mon Sep 17 00:00:00 2001 From: Johannes Zillmann Date: Sat, 27 Feb 2021 13:40:04 +0100 Subject: [PATCH] Filter for relevant items MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Don’t color Page in change color * Tailwind: expose colors as CSS variables --- ui/src/components/Checkbox.svelte | 24 +++++++++++++++++++++ ui/src/debug/DebugView.svelte | 10 ++++++++- ui/src/debug/ItemTable.svelte | 36 ++++++++++++++++++++----------- ui/src/main/Upload.svelte | 4 +++- ui/tailwind.config.js | 21 +++++++++++++++++- 5 files changed, 80 insertions(+), 15 deletions(-) create mode 100644 ui/src/components/Checkbox.svelte diff --git a/ui/src/components/Checkbox.svelte b/ui/src/components/Checkbox.svelte new file mode 100644 index 0000000..cfdf2f6 --- /dev/null +++ b/ui/src/components/Checkbox.svelte @@ -0,0 +1,24 @@ + + + + + + diff --git a/ui/src/debug/DebugView.svelte b/ui/src/debug/DebugView.svelte index 9182067..79d5ddb 100644 --- a/ui/src/debug/DebugView.svelte +++ b/ui/src/debug/DebugView.svelte @@ -9,6 +9,7 @@ import Popup from '../components/Popup.svelte'; import PageSelectionPopup from './PageSelectionPopup.svelte'; + import Checkbox from '../components/Checkbox.svelte'; import ItemTable from './ItemTable.svelte'; import TransformerSelectionPopup from './TransformerSelectionPopup.svelte'; @@ -16,6 +17,7 @@ const stageNames = debug.stageNames; let pinnedPage: number; + let onlyRelevantItems = true; let currentStage = 0; $: canNext = currentStage + 1 < stageNames.length; @@ -68,7 +70,9 @@ -
{stageNames[currentStage]}
+
+ {stageNames[currentStage]} +
+
+ +
@@ -96,6 +103,7 @@ pages={visiblePages} {maxPage} {pageIsPinned} + bind:onlyRelevantItems changes={stageResult.changes} /> diff --git a/ui/src/debug/ItemTable.svelte b/ui/src/debug/ItemTable.svelte index 11938db..2a041d7 100644 --- a/ui/src/debug/ItemTable.svelte +++ b/ui/src/debug/ItemTable.svelte @@ -13,6 +13,7 @@ export let pages: Page[]; export let maxPage: number; export let pageIsPinned: boolean; + export let onlyRelevantItems: boolean; export let changes: Map; let maxItemsToRenderInOneLoad = 200; let renderedMaxPage = 0; @@ -74,7 +75,7 @@ {/if} - {#each page.itemGroups as itemGroup, itemIdx} + {#each page.itemGroups.filter((group) => !onlyRelevantItems || changes.has(group.top.uuid)) as itemGroup, itemIdx} -{#if !pageIsPinned} - {#if renderedMaxPage < pages.length} - detail && calculateNextPageToRenderTo()} /> -
...
- {:else} -
FIN!
+{#if onlyRelevantItems && changes.size === 0} +
+
No changes from the transformation.
+
Want to see
+
(onlyRelevantItems = false)}> + all items +
+
?
+
+{:else} + {#if !pageIsPinned} + {#if renderedMaxPage < pages.length} + detail && calculateNextPageToRenderTo()} /> +
...
+ {:else} +
FIN!
+ {/if} {/if} {/if} @@ -174,13 +186,13 @@ @apply bg-gray-200; } - .changePlus { + tr.changePlus td:not(#page) { @apply text-green-600; } - .changeMinus { + tr.changeMinus td:not(#page) { + @apply text-red-600; + } + tr.changeNeutral td:not(#page) { @apply text-yellow-600; } - .changeNeutral { - @apply text-pink-800; - } diff --git a/ui/src/main/Upload.svelte b/ui/src/main/Upload.svelte index cf4a55c..4e5a375 100644 --- a/ui/src/main/Upload.svelte +++ b/ui/src/main/Upload.svelte @@ -5,12 +5,14 @@ import { processUpload, loadExample } from '../store'; import type Progress from '@core/Progress'; import ProgressRing from '../components/ProgressRing.svelte'; + import Checkbox from '../components/Checkbox.svelte'; let specifiedFileName: string; let dragover = false; let upload: Promise; let rejectionError: string; let parseProgress: Progress; + let debug = false; function handleExampleLoad() { dragover = true; @@ -47,7 +49,7 @@
Load Example
-
Debug
+ diff --git a/ui/tailwind.config.js b/ui/tailwind.config.js index 0ab0c88..abb7536 100644 --- a/ui/tailwind.config.js +++ b/ui/tailwind.config.js @@ -12,5 +12,24 @@ module.exports = { variants: { extend: {}, }, - plugins: [], + plugins: [ + function ({ addBase, theme }) { + function extractColorVars(colorObj, colorGroup = '') { + return Object.keys(colorObj).reduce((vars, colorKey) => { + const value = colorObj[colorKey]; + + const newVars = + typeof value === 'string' + ? { [`--color${colorGroup}-${colorKey}`]: value } + : extractColorVars(value, `-${colorKey}`); + + return { ...vars, ...newVars }; + }, {}); + } + + addBase({ + ':root': extractColorVars(theme('colors')), + }); + }, + ], };