<script lang="ts"> import { getContext, onMount } from 'svelte'; import Checkbox from '$lib/components/common/Checkbox.svelte'; import Tooltip from '$lib/components/common/Tooltip.svelte'; const i18n = getContext('i18n'); export let actions = []; export let selectedActionIds = []; let _actions = {}; onMount(() => { _actions = actions.reduce((acc, action) => { acc[action.id] = { ...action, selected: selectedActionIds.includes(action.id) }; return acc; }, {}); }); </script> <div> <div class="flex w-full justify-between mb-1"> <div class=" self-center text-sm font-semibold">{$i18n.t('Actions')}</div> </div> <div class=" text-xs dark:text-gray-500"> {$i18n.t('To select actions here, add them to the "Functions" workspace first.')} </div> <div class="flex flex-col"> {#if actions.length > 0} <div class=" flex items-center mt-2 flex-wrap"> {#each Object.keys(_actions) as action, actionIdx} <div class=" flex items-center gap-2 mr-3"> <div class="self-center flex items-center"> <Checkbox state={_actions[action].selected ? 'checked' : 'unchecked'} on:change={(e) => { _actions[action].selected = e.detail === 'checked'; selectedActionIds = Object.keys(_actions).filter((t) => _actions[t].selected); }} /> </div> <div class=" py-0.5 text-sm w-full capitalize font-medium"> <Tooltip content={_actions[action].meta.description}> {_actions[action].name} </Tooltip> </div> </div> {/each} </div> {/if} </div> </div>