diff --git a/app/imports/ui/StoryBook.vue b/app/imports/ui/StoryBook.vue
index eb5d1896..90c30651 100644
--- a/app/imports/ui/StoryBook.vue
+++ b/app/imports/ui/StoryBook.vue
@@ -46,6 +46,7 @@
import ColumnLayout from "/imports/ui/components/ColumnLayout.Story.vue";
import DialogStack from '/imports/ui/dialogStack/DialogStack.Story.vue';
import EffectEdit from '/imports/ui/components/EffectEdit.Story.vue';
+ import EffectEditExpansionList from '/imports/ui/components/EffectEditExpansionList.Story.vue';
import HealthBar from '/imports/ui/components/HealthBar.Story.vue';
import HitDiceListTile from '/imports/ui/components/HitDiceListTile.Story.vue';
import IconSearch from '/imports/ui/components/IconSearch.Story.vue';
@@ -62,6 +63,7 @@
ColumnLayout,
DialogStack,
EffectEdit,
+ EffectEditExpansionList,
HealthBar,
HitDiceListTile,
IconSearch,
diff --git a/app/imports/ui/components/AttributeEffectList.vue b/app/imports/ui/components/AttributeEffectList.vue
index 87033bf6..4f822902 100644
--- a/app/imports/ui/components/AttributeEffectList.vue
+++ b/app/imports/ui/components/AttributeEffectList.vue
@@ -4,7 +4,8 @@
v-for="effect in sortedEffects"
v-bind="effect"
v-on="$listeners.click ? { click(e){$emit('click', e)} } : {}"
- >
+ :key="effect._id"
+ />
diff --git a/app/imports/ui/components/EffectEdit.vue b/app/imports/ui/components/EffectEdit.vue
index 1537ffec..ec9c34f5 100644
--- a/app/imports/ui/components/EffectEdit.vue
+++ b/app/imports/ui/components/EffectEdit.vue
@@ -3,13 +3,13 @@
- $emit('change', {operation})"
+ @change="(operation, ack) => $emit('change', {set: {operation}, ack})"
>
{{item.item.text}}
-
+
- $emit('change', {calculation})"
+ @change="(calculation, ack) => $emit('change', {set: {calculation}, ack})"
/>
@@ -49,7 +49,7 @@
:menu-props="{transition: 'slide-y-transition', lazy: true}"
:value="effect.stat"
:items="stats"
- @input="stat => $emit('change', {stat})"
+ @input="stat => $emit('change', {set: {stat}, ack: () => {} })"
/>
@@ -64,7 +64,7 @@
props: {
effect: {
type: Object,
- default: {},
+ default: () => ({}),
},
stats: {
type: Array,
diff --git a/app/imports/ui/components/EffectEditExpansionList.Story.vue b/app/imports/ui/components/EffectEditExpansionList.Story.vue
new file mode 100644
index 00000000..78b5638a
--- /dev/null
+++ b/app/imports/ui/components/EffectEditExpansionList.Story.vue
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
diff --git a/app/imports/ui/components/EffectEditExpansionList.vue b/app/imports/ui/components/EffectEditExpansionList.vue
new file mode 100644
index 00000000..99e22583
--- /dev/null
+++ b/app/imports/ui/components/EffectEditExpansionList.vue
@@ -0,0 +1,54 @@
+
+
+
+
+ $emit('change', {set, ack, effectId: effect._id, index})"
+ />
+
+
+
+
+
+
+
diff --git a/app/imports/ui/components/EffectListTile.vue b/app/imports/ui/components/EffectListTile.vue
index 919bd1be..3e568fff 100644
--- a/app/imports/ui/components/EffectListTile.vue
+++ b/app/imports/ui/components/EffectListTile.vue
@@ -3,7 +3,6 @@
class="effect-list-tile"
:class="{disabled: !enabled}"
:id="elementId"
- :key="_id"
v-on="$listeners.click ? { click(e){
$emit('click', {$props, elementId})
} } : {}"
@@ -16,11 +15,14 @@
{{getValue(operation, result)}}
- {{calculation}}
+ {{operation === 'conditional' ? calculation : ''}}
-
+
+ {{statName}}
+
+
{{name}}
@@ -41,6 +43,8 @@
result: [String, Number],
calculation: String,
name: String,
+ stat: String,
+ statName: String,
},
computed: {
elementId(){
@@ -99,11 +103,12 @@
.icon {
min-width: 30px;
}
- .theme--light .icon {
- color: black;
+ .icon {
+ color: inherit !important;
}
.net-effect {
flex-grow: 0;
+ flex-shrink: 0;
}
.value, .calculation {
min-width: 80px;
diff --git a/app/imports/ui/components/global/SmartSelect.vue b/app/imports/ui/components/global/SmartSelect.vue
index 21aa896c..3c96442b 100644
--- a/app/imports/ui/components/global/SmartSelect.vue
+++ b/app/imports/ui/components/global/SmartSelect.vue
@@ -8,7 +8,9 @@
@change="change"
@focus="focused = true"
@blur="focused = false"
- />
+ >
+
+