|
<script> |
|
import { createEventDispatcher } from "svelte"; |
|
|
|
|
|
|
|
const dispatch = createEventDispatcher(); |
|
export let vals = []; |
|
function addNewChain(type) { |
|
dispatch("addNewChain", { |
|
type: type, |
|
}); |
|
} |
|
function addCovalentModification() { |
|
dispatch("addCovalentModification"); |
|
} |
|
|
|
let displayCovMod = false; |
|
|
|
$: { |
|
displayCovMod = |
|
vals.filter((val) => val.class === "protein" && val.sequence.length > 0) |
|
.length > 0 && |
|
vals.filter((val) => val.class === "ligand" && val.sdf != "").length > 0; |
|
} |
|
</script> |
|
|
|
<div> |
|
<div class="flex justify-center mt-2 gap-2"> |
|
<button |
|
class="flex items-center space-x-1 px-2 py-2 rounded-full hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white" |
|
on:click={() => { |
|
addNewChain("protein"); |
|
}} |
|
> |
|
<svg |
|
data-slot="icon" |
|
fill="none" |
|
stroke-width="1.5" |
|
stroke="currentColor" |
|
viewBox="0 0 24 24" |
|
xmlns="http://www.w3.org/2000/svg" |
|
aria-hidden="true" |
|
class="w-4 h-4" |
|
> |
|
<path |
|
stroke-linecap="round" |
|
stroke-linejoin="round" |
|
d="M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" |
|
></path> |
|
</svg> |
|
|
|
<span> Protein</span></button |
|
> |
|
|
|
<button |
|
class="flex items-center space-x-1 px-2 py-2 rounded-full hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white" |
|
on:click={() => { |
|
addNewChain("DNA"); |
|
}} |
|
> |
|
<svg |
|
data-slot="icon" |
|
fill="none" |
|
stroke-width="1.5" |
|
stroke="currentColor" |
|
viewBox="0 0 24 24" |
|
xmlns="http://www.w3.org/2000/svg" |
|
aria-hidden="true" |
|
class="w-4 h-4" |
|
> |
|
<path |
|
stroke-linecap="round" |
|
stroke-linejoin="round" |
|
d="M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" |
|
></path> |
|
</svg> |
|
|
|
<span> Nucleic acid</span></button |
|
> |
|
|
|
<button |
|
class="flex items-center space-x-1 px-2 py-2 rounded-full hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white" |
|
on:click={() => { |
|
addNewChain("ligand"); |
|
}} |
|
> |
|
<svg |
|
data-slot="icon" |
|
fill="none" |
|
stroke-width="1.5" |
|
stroke="currentColor" |
|
viewBox="0 0 24 24" |
|
xmlns="http://www.w3.org/2000/svg" |
|
aria-hidden="true" |
|
class="w-4 h-4" |
|
> |
|
<path |
|
stroke-linecap="round" |
|
stroke-linejoin="round" |
|
d="M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" |
|
></path> |
|
</svg> |
|
|
|
<span> Small molecule</span></button |
|
> |
|
|
|
{#if displayCovMod} |
|
<button |
|
class="flex items-center space-x-2 block rounded-full px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white" |
|
on:click={() => { |
|
addCovalentModification(); |
|
}} |
|
> |
|
<svg |
|
data-slot="icon" |
|
fill="none" |
|
stroke-width="1.5" |
|
stroke="currentColor" |
|
viewBox="0 0 24 24" |
|
xmlns="http://www.w3.org/2000/svg" |
|
aria-hidden="true" |
|
class="w-4 h-4" |
|
> |
|
<path |
|
stroke-linecap="round" |
|
stroke-linejoin="round" |
|
d="M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" |
|
></path> |
|
</svg> |
|
|
|
<span> Covalent modifcation</span></button |
|
> |
|
{/if} |
|
</div> |
|
</div> |
|
|