2019-07-13 11:35:57 +02:00
|
|
|
<script>
|
|
|
|
|
|
|
|
import getIcon from "../common/icon";
|
2019-07-31 09:09:04 +02:00
|
|
|
import {store} from "../builderStore";
|
2019-07-13 11:35:57 +02:00
|
|
|
import Button from "../common/Button.svelte";
|
|
|
|
import ButtonGroup from "../common/ButtonGroup.svelte";
|
|
|
|
import Actions from "./Actions.svelte";
|
|
|
|
import Triggers from "./Triggers.svelte";
|
|
|
|
import {getNewAction, getNewTrigger} from "../common/core";
|
|
|
|
|
|
|
|
let editingAction = null;
|
|
|
|
let editingActionIsNew = true;
|
|
|
|
let editingTrigger = null;
|
|
|
|
let editingTriggerIsNew = true;
|
|
|
|
|
|
|
|
let getDefaultOptionsHtml = defaultOptions =>
|
2019-08-02 15:54:10 +02:00
|
|
|
pipe(defaultOptions, [
|
2019-07-13 11:35:57 +02:00
|
|
|
keys,
|
|
|
|
map(k => `<span style="color:var(--slate)">${k}: </span>${JSON.parse(typeOptions[k])}`),
|
|
|
|
join("<br>")
|
|
|
|
]);
|
|
|
|
|
|
|
|
let onActionEdit = (action) => {
|
|
|
|
editingAction = action;
|
|
|
|
editingActionIsNew = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
let newAction = () => {
|
|
|
|
editingAction = getNewAction();
|
|
|
|
editingActionIsNew = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
let onActionDelete = (action) => {
|
2019-07-31 09:09:04 +02:00
|
|
|
store.deleteAction(action);
|
2019-07-13 11:35:57 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
let deleteTrigger = () => {}
|
|
|
|
|
|
|
|
let editTrigger = (trigger) => {
|
|
|
|
editingTrigger = trigger;
|
|
|
|
editingTriggerIsNew = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
let newTrigger = () => {
|
|
|
|
editingTrigger = getNewTrigger();
|
|
|
|
editingTriggerIsNew = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
let onActionSave = action => {
|
2019-07-31 09:09:04 +02:00
|
|
|
store.saveAction(
|
2019-07-13 11:35:57 +02:00
|
|
|
action,
|
|
|
|
editingActionIsNew,
|
|
|
|
editingAction);
|
|
|
|
|
|
|
|
editingAction = null;
|
|
|
|
}
|
|
|
|
|
|
|
|
let onActionCancel = () => {
|
|
|
|
editingAction = null;
|
|
|
|
}
|
|
|
|
|
|
|
|
let onTriggerSave = trigger => {
|
2019-07-31 09:09:04 +02:00
|
|
|
store.saveTrigger(
|
2019-07-13 11:35:57 +02:00
|
|
|
trigger,
|
|
|
|
editingTriggerIsNew,
|
|
|
|
editingTrigger);
|
|
|
|
|
|
|
|
editingTrigger = null;
|
|
|
|
}
|
|
|
|
|
|
|
|
let onTriggerCancel = () => {
|
|
|
|
editingTrigger = null;
|
|
|
|
}
|
|
|
|
|
|
|
|
let onTriggerEdit = (trigger) => {
|
|
|
|
editingTrigger = trigger;
|
|
|
|
editingTriggerIsNew = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
let onTriggerDelete = (trigger) => {
|
2019-07-31 09:09:04 +02:00
|
|
|
store.deleteTrigger(trigger);
|
2019-07-13 11:35:57 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<div class="root">
|
|
|
|
|
|
|
|
<ButtonGroup>
|
2019-09-18 20:16:11 +02:00
|
|
|
<Button color="primary"
|
2019-07-13 11:35:57 +02:00
|
|
|
grouped
|
|
|
|
on:click={newAction}>Create New Action</Button>
|
|
|
|
<Button color="secondary"
|
|
|
|
grouped
|
|
|
|
on:click={newTrigger}>Create New Trigger</Button>
|
|
|
|
</ButtonGroup>
|
|
|
|
|
|
|
|
<Actions {editingActionIsNew} {editingAction}
|
|
|
|
{onActionEdit} {onActionDelete} {onActionSave}
|
|
|
|
{onActionCancel} />
|
|
|
|
|
|
|
|
<Triggers {editingTriggerIsNew} {editingTrigger}
|
|
|
|
{onTriggerEdit} {onTriggerDelete} {onTriggerSave}
|
|
|
|
{onTriggerCancel} />
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<style>
|
|
|
|
|
|
|
|
.root {
|
|
|
|
padding: 10px;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
</style>
|