Files
windmill/frontend/src/lib/components/wizards/ChartJSWizard.svelte
T
Faton Ramadani 03dfe711c6 feat(frontend): chartjs wizard (#2532)
* feat(frontend): chartjs wizard

* feat(frontend): fix indentation

* feat(frontend): done

* feat(frontend): remove console.log

* feat(frontend): fix dark mode + remove legacy components

* feat(frontend): reorder component list

* feat(frontend): fix dark mode
2023-10-31 21:12:44 +01:00

65 lines
1.8 KiB
Svelte

<script lang="ts">
import { createEventDispatcher, getContext } from 'svelte'
import { Popup } from '../common'
import Label from '../Label.svelte'
import { offset, flip, shift } from 'svelte-floating-ui/dom'
import Button from '../common/button/Button.svelte'
import InputsSpecEditor from '../apps/editor/settingsPanel/InputsSpecEditor.svelte'
import type { AppViewerContext, RichConfiguration } from '../apps/types'
const { selectedComponent } = getContext<AppViewerContext>('AppViewerContext')
type Dataset = {
value: RichConfiguration
name: string
}
export let value: Dataset | undefined = undefined
const dispatch = createEventDispatcher()
function removeDataset() {
dispatch('remove')
}
</script>
<Popup
floatingConfig={{
strategy: 'fixed',
placement: 'left-end',
middleware: [offset(8), flip(), shift()]
}}
containerClasses="border rounded-lg shadow-lg bg-surface p-4"
>
<svelte:fragment slot="button">
<slot name="trigger" />
</svelte:fragment>
{#if value}
<div class="flex flex-col w-96 p-2 gap-4">
<Label label="Name">
<input type="text" bind:value={value.name} />
</Label>
<InputsSpecEditor
key={'Data'}
bind:componentInput={value.value}
id={$selectedComponent?.[0] ?? ''}
userInputEnabled={false}
shouldCapitalize={true}
resourceOnly={false}
fieldType={value.value?.['fieldType']}
subFieldType={value.value?.['subFieldType']}
format={value.value?.['format']}
selectOptions={value.value?.['selectOptions']}
tooltip={value.value?.['tooltip']}
fileUpload={value.value?.['fileUpload']}
placeholder={value.value?.['placeholder']}
customTitle={value.value?.['customTitle']}
displayType={false}
/>
<Button color="red" size="xs" on:click={removeDataset}>Remove dataset</Button>
</div>
{/if}
</Popup>