Merge remote-tracking branch 'origin/main' into main

This commit is contained in:
Hosted Weblate 2021-06-28 13:38:31 +02:00
commit 44cff11f33
No known key found for this signature in database
GPG key ID: A3FAAA06E6569B4C
57 changed files with 1106 additions and 475 deletions

View file

@ -241,7 +241,7 @@ button {
ActivityIndicator { ActivityIndicator {
width: 24; width: 24;
height: 24; height: 24;
margin: 12; margin: 14;
color: $orange; color: $orange;
} }
@ -395,6 +395,9 @@ ActivityIndicator {
padding: 14 16; padding: 14 16;
line-height: 4; line-height: 4;
} }
.t {
padding: 14 0;
}
} }
.done { .done {
opacity: 0.5; opacity: 0.5;
@ -406,6 +409,9 @@ ActivityIndicator {
padding: 16 24; padding: 16 24;
line-height: 4; line-height: 4;
} }
.t5 {
font-size: $t5;
}
// ----------------------------- // -----------------------------
// AppBar // AppBar
@ -449,6 +455,12 @@ ActivityIndicator {
width: 100%; width: 100%;
padding: 0 16 16; padding: 0 16 16;
} }
.ingActions {
orientation: horizontal;
button {
margin-right: 16;
}
}
// ----------------------------- // -----------------------------
// MealPlanner // MealPlanner

View file

@ -38,8 +38,8 @@
:hidden="showUndo" :hidden="showUndo"
columns="auto, *, auto" columns="auto, *, auto"
> >
<Button class="ico rtl end" :text="icon.back" @tap="navigateBack" /> <Button class="ico rtl" :text="icon.back" @tap="navigateBack" />
<Button class="ico fab end" :text="icon.plus" @tap="addTimer" col="2" /> <Button class="ico fab" :text="icon.plus" @tap="addTimer" col="2" />
</RGridLayout> </RGridLayout>
<SnackBar <SnackBar
:hidden="!showUndo || toast" :hidden="!showUndo || toast"

View file

@ -34,7 +34,9 @@
<TextField <TextField
:hint="'recTitle' | L" :hint="'recTitle' | L"
v-model="recipe.title" v-model="recipe.title"
@loaded="setInputTypeText($event, 'words')" autocapitalizationType="words"
autocorrect="true"
@returnPress="showCuisine(1)"
/> />
</StackLayout> </StackLayout>
<RGridLayout :rtl="RTL" class="" columns="*, 8, *"> <RGridLayout :rtl="RTL" class="" columns="*, 8, *">
@ -44,7 +46,6 @@
@loaded="setGravity" @loaded="setGravity"
:text="recipe.cuisine | L" :text="recipe.cuisine | L"
editable="false" editable="false"
@focus="!modalOpen && showCuisine(1)"
@tap="showCuisine(0)" @tap="showCuisine(0)"
/> />
</StackLayout> </StackLayout>
@ -52,10 +53,8 @@
<Label class="fLabel" :text="'cat' | L" /> <Label class="fLabel" :text="'cat' | L" />
<TextField <TextField
@loaded="setGravity" @loaded="setGravity"
ref="category"
:text="recipe.category | L" :text="recipe.category | L"
editable="false" editable="false"
@focus="!modalOpen && showCategories(1)"
@tap="showCategories(0)" @tap="showCategories(0)"
/> />
</StackLayout> </StackLayout>
@ -63,13 +62,14 @@
<StackLayout class="inputC"> <StackLayout class="inputC">
<Label class="fLabel" :text="'ts' | L" /> <Label class="fLabel" :text="'ts' | L" />
<TextField <TextField
@loaded="setGravity"
:hint="'tsInfo' | L"
autocapitalizationType="words"
ref="tags" ref="tags"
autocapitalizationType="words"
autocorrect="true"
:hint="'tsInfo' | L"
v-model="tags" v-model="tags"
@textChange="splitTags" @textChange="splitTags"
returnKeyType="next" @loaded="setGravity"
@returnPress="setTimeRequired(1, 'prepTime')"
/> />
</StackLayout> </StackLayout>
<RGridLayout :rtl="RTL" columns="*, 8, *"> <RGridLayout :rtl="RTL" columns="*, 8, *">
@ -79,7 +79,6 @@
@loaded="setGravity" @loaded="setGravity"
:text="timeRequired('prepTime')" :text="timeRequired('prepTime')"
editable="false" editable="false"
@focus="!modalOpen && setTimeRequired(1, 'prepTime')"
@tap="setTimeRequired(0, 'prepTime')" @tap="setTimeRequired(0, 'prepTime')"
/> />
</StackLayout> </StackLayout>
@ -87,10 +86,8 @@
<Label class="fLabel" :text="'cookT' | L" /> <Label class="fLabel" :text="'cookT' | L" />
<TextField <TextField
@loaded="setGravity" @loaded="setGravity"
ref="cookTime"
:text="timeRequired('cookTime')" :text="timeRequired('cookTime')"
editable="false" editable="false"
@focus="!modalOpen && setTimeRequired(1, 'cookTime')"
@tap="setTimeRequired(0, 'cookTime')" @tap="setTimeRequired(0, 'cookTime')"
/> />
</StackLayout> </StackLayout>
@ -100,11 +97,12 @@
<Label class="fLabel" :text="'yieldQ' | L" /> <Label class="fLabel" :text="'yieldQ' | L" />
<TextField <TextField
@loaded="setGravity" @loaded="setGravity"
ref="yieldQuantity" ref="yieldQ"
v-model="recipe.yieldQuantity" v-model="recipe.yieldQuantity"
hint="1" hint="1"
keyboardType="number" keyboardType="number"
returnKeyType="next" returnKeyType="next"
@returnPress="showYieldUnits(1)"
/> />
</StackLayout> </StackLayout>
<StackLayout class="inputC" col="2"> <StackLayout class="inputC" col="2">
@ -113,7 +111,6 @@
@loaded="setGravity" @loaded="setGravity"
:text="`${recipe.yieldUnit}` | L" :text="`${recipe.yieldUnit}` | L"
editable="false" editable="false"
@focus="!modalOpen && showYieldUnits(1)"
@tap="showYieldUnits(0)" @tap="showYieldUnits(0)"
/> />
</StackLayout> </StackLayout>
@ -123,10 +120,8 @@
<Label class="fLabel" :text="'Difficulty level' | L" /> <Label class="fLabel" :text="'Difficulty level' | L" />
<TextField <TextField
@loaded="setGravity" @loaded="setGravity"
ref="difficultyLevel"
:text="`${recipe.difficulty}` | L" :text="`${recipe.difficulty}` | L"
editable="false" editable="false"
@focus="!modalOpen && showDifficultyLevel(1)"
@tap="showDifficultyLevel(0)" @tap="showDifficultyLevel(0)"
/> />
</StackLayout> </StackLayout>
@ -140,50 +135,58 @@
<RGridLayout <RGridLayout
:rtl="RTL" :rtl="RTL"
columns="auto,8,auto,8,*,auto" columns="auto,8,auto,8,*,auto"
v-for="(ingredient, index) in recipe.ingredients" v-for="(item, i) in recipe.ingredients"
:key="'ing' + index" :key="item.key"
> >
<TextField <TextField
v-if="item.type"
:ref="'ing' + i"
width="52" width="52"
@loaded="!recipe.ingredients[index].item && focusField($event)" @focus="setFocus(i)"
v-model="recipe.ingredients[index].quantity" @blur="setFocus(-1)"
hint="1.00"
keyboardType="number" keyboardType="number"
returnKeyType="next" returnKeyType="next"
hint="1.00"
v-model="recipe.ingredients[i].quantity"
/> />
<TextField <TextField
v-if="item.type"
width="68" width="68"
col="2" col="2"
:text="`${recipe.ingredients[index].unit}` | L" :text="`${recipe.ingredients[i].unit}` | L"
editable="false" editable="false"
@focus="!modalOpen && showUnits($event, 1, index)" @focus="showUnits(1, i)"
@tap="showUnits($event, 0, index)" @tap="showUnits(0, i)"
/> />
<TextField <TextField
ref="ingredient" :ref="'ing' + i"
@loaded="setInputTypeText($event, 'sentence')" @focus="setFocus(i)"
col="4" @blur="setFocus(-1)"
v-model="recipe.ingredients[index].item" autocapitalizationType="sentence"
:hint="`${$options.filters.L('it')} ${index + 1}`" autocorrect="true"
@returnPress=" returnKeyType="done"
index + 1 == recipe.ingredients.length && addIngredient() :col="item.type ? 4 : 0"
" :colSpan="item.type ? 1 : 5"
v-model="recipe.ingredients[i].value"
:hint="getIngPos(i)"
@returnPress="addIng(1)"
/>
<Button col="5" class="ico si" :text="icon.x" @tap="rmIng(i)" />
</RGridLayout>
<RStackLayout :rtl="RTL" class="ingActions">
<Button
class="text tb big hal fb"
:class="{ r: RTL }"
:text="'aIngBtn' | L"
@tap="addIng(1)"
/> />
<Button <Button
col="5" class="text tb big hal fb"
class="ico si" :class="{ r: RTL }"
:text="icon.x" :text="'addSectBtn' | L"
@tap="removeIngredient(index)" @tap="addIng(0)"
/> />
</RGridLayout> </RStackLayout>
<Button
class="text tb big hal fb"
:class="{ r: RTL }"
:text="'aIngBtn' | L"
@tap="addIngredient()"
/>
<!-- INSTRUCTIONS --> <!-- INSTRUCTIONS -->
<Label <Label
:text="getTitleCount('inss', 'instructions')" :text="getTitleCount('inss', 'instructions')"
@ -193,27 +196,48 @@
<RGridLayout <RGridLayout
:rtl="RTL" :rtl="RTL"
columns="*,auto" columns="*,auto"
v-for="(instruction, index) in recipe.instructions" v-for="(item, i) in recipe.instructions"
:key="'ins' + index" :key="item.key"
> >
<TextField
:ref="'ins' + i"
v-if="!item.type"
@focus="setFocus(i)"
@blur="setFocus(-1)"
autocapitalizationType="sentence"
autocorrect="true"
:hint="getInsPos(i)"
v-model="recipe.instructions[i].value"
@returnPress="addIns(1)"
returnKeyType="done"
/>
<TextView <TextView
@loaded="focusField($event, 'multiLine')" :ref="'ins' + i"
:hint="`${$options.filters.L('stp')} ${index + 1}`" v-else
v-model="recipe.instructions[index]" @focus="setFocus(i)"
@blur="setFocus(-1)"
autocapitalizationType="multiLine"
autocorrect="true"
:hint="getInsPos(i)"
v-model="recipe.instructions[i].value"
/>
<Button col="1" class="ico si" :text="icon.x" @tap="rmIns(i)" />
</RGridLayout>
<RStackLayout :rtl="RTL" class="ingActions">
<Button
class="text tb big hal fb"
:class="{ r: RTL }"
:text="'aStpBtn' | L"
@tap="addIns(1)"
/> />
<Button <Button
col="1" class="text tb big hal fb"
class="ico si" :class="{ r: RTL }"
:text="icon.x" :text="'addSectBtn' | L"
@tap="removeInstruction(index)" @tap="addIns(0)"
/> />
</RGridLayout> </RStackLayout>
<Button
class="text tb big hal fb"
:class="{ r: RTL }"
:text="'aStpBtn' | L"
@tap="addInstruction"
/>
<!-- COMBINATIONS --> <!-- COMBINATIONS -->
<Label <Label
:text="getTitleCount('cmbs', 'combinations')" :text="getTitleCount('cmbs', 'combinations')"
@ -254,19 +278,23 @@
<RGridLayout <RGridLayout
:rtl="RTL" :rtl="RTL"
columns="*, auto" columns="*, auto"
v-for="(note, index) in recipe.notes" v-for="(item, i) in recipe.notes"
:key="'nos' + index" :key="item.key"
> >
<TextView <TextView
@loaded="focusField($event, 'multiLine')" :ref="'note' + i"
:hint="`${$options.filters.L('no')} ${index + 1}`" @focus="setFocus(i)"
v-model="recipe.notes[index]" @blur="setFocus(-1)"
autocapitalizationType="multiLine"
autocorrect="true"
:hint="`${$options.filters.L('no')} ${i + 1}`"
v-model="recipe.notes[i].value"
/> />
<Button <Button
col="1" col="1"
class="ico si" class="ico si"
:text="icon.x" :text="icon.x"
@tap="removeNote(index)" @tap="removeNote(i)"
/> />
</RGridLayout> </RGridLayout>
<Button <Button
@ -288,19 +316,19 @@
columns="auto, *, auto" columns="auto, *, auto"
> >
<Button <Button
class="ico end" class="ico"
:class="{ f: RTL }" :class="{ f: RTL }"
:text="icon.back" :text="icon.back"
@tap="navigateBack(0)" @tap="navigateBack(0)"
/> />
<Button <Button
v-if="hasChanges && !saving" v-if="hasChanges && !saving"
class="ico fab end" class="ico fab"
:text="icon.save" :text="icon.save"
col="2" col="2"
@tap="saveOperation" @tap="saveOperation"
/> />
<ActivityIndicator class="end" col="2" v-if="saving" :busy="saving" /> <ActivityIndicator col="2" v-if="saving" :busy="saving" />
</RGridLayout> </RGridLayout>
<SnackBar <SnackBar
:hidden="!showUndo" :hidden="!showUndo"
@ -400,6 +428,7 @@ export default {
snackMsg: null, snackMsg: null,
showUndo: 0, showUndo: 0,
undo: 0, undo: 0,
fi: 0,
}; };
}, },
computed: { computed: {
@ -458,16 +487,13 @@ export default {
// PHOTO HANDLERS // PHOTO HANDLERS
imageHandler() { imageHandler() {
this.clearEmptyFields(1);
if (this.recipe.image) { if (this.recipe.image) {
this.modalOpen = 1;
this.$showModal(Action, { this.$showModal(Action, {
props: { props: {
title: "recPic", title: "recPic",
list: ["aap", "rp"], list: ["aap", "rp"],
}, },
}).then((action) => { }).then((action) => {
this.modalOpen = 0;
switch (action) { switch (action) {
case "aap": case "aap":
this.imagePicker(); this.imagePicker();
@ -537,7 +563,6 @@ export default {
// DATA LIST // DATA LIST
showCuisine(focus) { showCuisine(focus) {
this.modalOpen = 1;
this.$showModal(Action, { this.$showModal(Action, {
props: { props: {
title: "cui", title: "cui",
@ -553,21 +578,19 @@ export default {
action: "aBtn", action: "aBtn",
}, },
}).then((item) => { }).then((item) => {
this.modalOpen = 0;
if (item.length) { if (item.length) {
this.recipe.cuisine = item; this.recipe.cuisine = item;
this.addLI({ this.addLI({
item, item,
listName: "cuisines", listName: "cuisines",
}); });
if (focus) this.autoFocusField("category", 0); if (focus) this.showCategories(1);
} }
}); });
} else { } else {
this.modalOpen = 0;
if (action) { if (action) {
this.recipe.cuisine = action; this.recipe.cuisine = action;
if (focus) this.autoFocusField("category", 0); if (focus) this.showCategories(1);
} else } else
this.cuisines.includes(this.recipe.cuisine) this.cuisines.includes(this.recipe.cuisine)
? null ? null
@ -576,7 +599,6 @@ export default {
}); });
}, },
showCategories(focus) { showCategories(focus) {
this.modalOpen = 1;
this.$showModal(Action, { this.$showModal(Action, {
props: { props: {
title: "cat", title: "cat",
@ -592,21 +614,19 @@ export default {
action: "aBtn", action: "aBtn",
}, },
}).then((item) => { }).then((item) => {
this.modalOpen = 0;
if (item.length) { if (item.length) {
this.recipe.category = item; this.recipe.category = item;
this.addLI({ this.addLI({
item, item,
listName: "categories", listName: "categories",
}); });
if (focus) this.autoFocusField("tags", 1); if (focus) this.focusRef("tags");
} }
}); });
} else { } else {
this.modalOpen = 0;
if (action) { if (action) {
this.recipe.category = action; this.recipe.category = action;
if (focus) this.autoFocusField("tags", 1); if (focus) this.focusRef("tags");
} else } else
this.categories.includes(this.recipe.category) this.categories.includes(this.recipe.category)
? null ? null
@ -614,8 +634,33 @@ export default {
} }
}); });
}, },
setTimeRequired(focus, time) {
let t = this.recipe[time].split(":");
let hr = t[0];
let min = t[1];
this.$showModal(TimePickerHM, {
props: {
title: `${time == "prepTime" ? "prepT" : "cookT"}`,
selectedHr: hr,
selectedMin: min,
},
}).then((result) => {
if (result) {
this.recipe[time] = result;
if (focus) {
switch (time) {
case "prepTime":
this.setTimeRequired(1, "cookTime");
break;
case "cookTime":
this.focusRef("yieldQ");
break;
}
}
}
});
},
showYieldUnits(focus) { showYieldUnits(focus) {
this.modalOpen = 1;
this.$showModal(Action, { this.$showModal(Action, {
props: { props: {
title: "yieldU", title: "yieldU",
@ -631,21 +676,19 @@ export default {
action: "aBtn", action: "aBtn",
}, },
}).then((item) => { }).then((item) => {
this.modalOpen = 0;
if (item.length) { if (item.length) {
this.recipe.yieldUnit = item; this.recipe.yieldUnit = item;
this.addLI({ this.addLI({
item, item,
listName: "yieldUnits", listName: "yieldUnits",
}); });
if (focus) this.autoFocusField("difficultyLevel", 0); if (focus) this.showDifficultyLevel(1);
} }
}); });
} else { } else {
this.modalOpen = 0;
if (action) { if (action) {
this.recipe.yieldUnit = action; this.recipe.yieldUnit = action;
if (focus) this.autoFocusField("difficultyLevel", 0); if (focus) this.showDifficultyLevel(1);
} else } else
this.yieldUnits.includes(this.recipe.yieldUnit) this.yieldUnits.includes(this.recipe.yieldUnit)
? null ? null
@ -654,7 +697,6 @@ export default {
}); });
}, },
showDifficultyLevel(focus) { showDifficultyLevel(focus) {
this.modalOpen = 1;
this.$showModal(Action, { this.$showModal(Action, {
props: { props: {
title: "Difficulty level", title: "Difficulty level",
@ -662,24 +704,22 @@ export default {
selected: this.recipe.difficulty, selected: this.recipe.difficulty,
}, },
}).then((action) => { }).then((action) => {
this.modalOpen = 0;
if (action) { if (action) {
this.recipe.difficulty = action; this.recipe.difficulty = action;
if (focus) this.addIngredient(); if (focus) this.addIng(1);
} else } else
this.difficultyLevels.includes(this.recipe.difficulty) this.difficultyLevels.includes(this.recipe.difficulty)
? null ? null
: (this.recipe.difficulty = "Easy"); : (this.recipe.difficulty = "Easy");
}); });
}, },
showUnits(e, focus, index) { showUnits(focus, i) {
this.modalOpen = 1;
this.$showModal(Action, { this.$showModal(Action, {
props: { props: {
title: "Unit", title: "Unit",
list: this.units, list: this.units,
action: "aNBtn", action: "aNBtn",
selected: this.recipe.ingredients[index].unit, selected: this.recipe.ingredients[i].unit,
}, },
}).then((action) => { }).then((action) => {
if (action == "aNBtn") { if (action == "aNBtn") {
@ -689,30 +729,25 @@ export default {
action: "aBtn", action: "aBtn",
}, },
}).then((item) => { }).then((item) => {
this.modalOpen = 0;
if (item.length) { if (item.length) {
this.recipe.ingredients[index].unit = item; this.recipe.ingredients[i].unit = item;
this.addLI({ this.addLI({
item, item,
listName: "units", listName: "units",
}); });
if (focus && this.recipe.ingredients.length - 1 === index) if (focus) this.focusRefs("ing" + i, 1);
this.autoFocusRefField("ingredient", index);
} }
}); });
} else { } else {
this.modalOpen = 0;
if (action) { if (action) {
this.recipe.ingredients[index].unit = action; this.recipe.ingredients[i].unit = action;
if (focus && this.recipe.ingredients.length - 1 === index) if (focus) this.focusRefs("ing" + i, 1);
this.autoFocusRefField("ingredient", index);
} }
} }
}); });
}, },
showCombinations() { showCombinations() {
Utils.ad.dismissSoftInput(); Utils.ad.dismissSoftInput();
this.modalOpen = 1;
let existingCombinations = [...this.recipe.combinations, this.recipe.id]; let existingCombinations = [...this.recipe.combinations, this.recipe.id];
let filteredRecipes = this.recipes.filter( let filteredRecipes = this.recipes.filter(
(e) => !existingCombinations.includes(e.id) (e) => !existingCombinations.includes(e.id)
@ -723,56 +758,80 @@ export default {
recipes: filteredRecipes, recipes: filteredRecipes,
}, },
}).then((res) => { }).then((res) => {
this.modalOpen = 0;
if (res) this.recipe.combinations.push(res); if (res) this.recipe.combinations.push(res);
}); });
}, },
// INPUT FIELD HANDLERS // INPUT FIELD HANDLERS
addIngredient() { setFocus(i) {
let ingredients = this.recipe.ingredients; this.fi = i;
let unit = ingredients.length
? ingredients[ingredients.length - 1].unit
: "unit";
this.recipe.ingredients.push({
item: "",
quantity: null,
unit,
});
}, },
removeIngredient(index) { addIng(type) {
this.modalOpen = 1; let ing = {
if (this.recipe.ingredients[index].item.length) { key: utils.getRandomID(1),
let item = this.recipe.ingredients[index]; type,
this.recipe.ingredients.splice(index, 1); quantity: null,
this.showUndoBar("rmIng").then( unit: 0,
(res) => res && this.recipe.ingredients.splice(index, 0, item) value: "",
};
let ings = this.recipe.ingredients;
if (type) {
ing.unit = ings.length
? ings[this.fi >= 0 ? this.fi : ings.length - 1].unit
? ings[this.fi >= 0 ? this.fi : ings.length - 1].unit
: "unit"
: "unit";
}
let i = this.fi >= 0 ? this.fi + 1 : ings.length;
this.recipe.ingredients.splice(i, 0, ing);
if (!ing.value || !type) this.delayFocus("ing", ings.length);
},
rmIng(i) {
if (this.recipe.ingredients[i].value.length) {
let item = this.recipe.ingredients[i];
this.recipe.ingredients.splice(i, 1);
this.showUndoBar(item.type ? "rmIng" : "sectRm").then(
(res) => res && this.recipe.ingredients.splice(i, 0, item)
); );
} else { } else {
this.recipe.ingredients.splice(index, 1); this.recipe.ingredients.splice(i, 1);
} }
setTimeout(() => (this.modalOpen = 0), 200);
}, },
addInstruction() { addIns(type) {
this.recipe.instructions.push(""); let obj = {
key: utils.getRandomID(1),
type,
value: "",
};
let inss = this.recipe.instructions;
let i = this.fi >= 0 ? this.fi + 1 : inss.length;
this.recipe.instructions.splice(i, 0, obj);
this.delayFocus("ins", inss.length);
}, },
removeInstruction(index) { rmIns(i) {
if (this.recipe.instructions[index].length) { if (this.recipe.instructions[i].value.length) {
let item = this.recipe.instructions[index]; let item = this.recipe.instructions[i];
this.recipe.instructions.splice(index, 1); this.recipe.instructions.splice(i, 1);
this.showUndoBar("rmIns").then( this.showUndoBar(item.type ? "rmIns" : "sectRm").then(
(res) => res && this.recipe.instructions.splice(index, 0, item) (res) => res && this.recipe.instructions.splice(i, 0, item)
); );
} else this.recipe.instructions.splice(index, 1); } else this.recipe.instructions.splice(i, 1);
}, },
addNote() { addNote() {
this.recipe.notes.push(""); let obj = {
key: utils.getRandomID(1),
value: "",
};
let nos = this.recipe.notes;
let i = this.fi >= 0 ? this.fi + 1 : nos.length;
this.recipe.notes.splice(i, 0, obj);
this.delayFocus("note", nos.length);
}, },
removeNote(index) { removeNote(index) {
if (this.recipe.notes[index].length) { if (this.recipe.notes[index].value.length) {
let item = this.recipe.notes[index]; let item = this.recipe.notes[index];
this.recipe.notes.splice(index, 1); this.recipe.notes.splice(index, 1);
this.showUndoBar("rmN").then((res) => this.showUndoBar("rmN").then(() =>
this.recipe.notes.splice(index, 0, item) this.recipe.notes.splice(index, 0, item)
); );
} else this.recipe.notes.splice(index, 1); } else this.recipe.notes.splice(index, 1);
@ -788,22 +847,46 @@ export default {
this.recipe.combinations.splice(index, 0, id) this.recipe.combinations.splice(index, 0, id)
); );
}, },
getIngPos(n) {
let a = 1;
let b = 1;
let ings = this.recipe.ingredients;
let group = ings.reduce((acc, e) => {
if (!e.type) {
a = 1;
acc.push(b++);
} else acc.push(e.type ? a++ : a - 1);
return acc;
}, []);
return localize(ings[n].type ? "it" : "sect", group[n]);
},
getInsPos(n) {
let a = 1;
let b = 1;
let ins = this.recipe.instructions;
let group = ins.reduce((acc, e) => {
if (!e.type) {
a = 1;
acc.push(b++);
} else acc.push(a++);
return acc;
}, []);
return localize(ins[n].type ? "stp" : "sect", group[n]);
},
// SAVE OPERATION // SAVE OPERATION
clearEmptyFields(bool) { clearEmptyFields() {
if (!this.recipe.title && !bool) this.recipe.title = localize("untRec"); if (!this.recipe.title) this.recipe.title = localize("untRec");
if (!this.recipe.yieldQuantity) this.recipe.yieldQuantity = 1; if (!this.recipe.yieldQuantity) this.recipe.yieldQuantity = 1;
this.recipe.ingredients = this.recipe.ingredients.filter((e) => e.item); const clearEmpty = (arr) => {
let vm = this; this.recipe[arr] = this.recipe[arr].filter((e) => e.value);
};
function clearEmpty(arr) { clearEmpty("ingredients");
vm.recipe[arr] = vm.recipe[arr].filter((e) => e);
}
clearEmpty("instructions"); clearEmpty("instructions");
clearEmpty("notes"); clearEmpty("notes");
}, },
saveOperation() { saveOperation() {
this.saving = this.modalOpen = 1; this.saving = 1;
this.clearEmptyFields(); this.clearEmptyFields();
this.recipe.lastModified = new Date().getTime(); this.recipe.lastModified = new Date().getTime();
setString("previousCuisine", this.recipe.cuisine); setString("previousCuisine", this.recipe.cuisine);
@ -884,20 +967,28 @@ export default {
}, },
// HELPERS // HELPERS
autoFocusField(ref, showSoftInput) { focusRef(r) {
this.$refs[ref].nativeView.focus(); this.$refs[r].nativeView.focus();
if (showSoftInput) {
setTimeout(() => {
Utils.ad.showSoftInput(this.$refs[ref].nativeView.android);
}, 100);
}
},
autoFocusRefField(ref, index) {
this.$refs[ref][index].nativeView.focus();
setTimeout(() => { setTimeout(() => {
Utils.ad.showSoftInput(this.$refs[ref][index].nativeView.android); Utils.ad.showSoftInput(this.$refs[r].nativeView.android);
}, 100); }, 100);
}, },
focusRefs(r, i) {
i = i != null ? i : 0;
this.$refs[r][i].nativeView.focus();
setTimeout(() => {
Utils.ad.showSoftInput(this.$refs[r][i].nativeView.android);
}, 100);
},
delayFocus(type, length) {
setTimeout(
() =>
this.focusRefs(
type + (length == 1 ? 0 : this.fi >= 0 ? this.fi + 1 : length - 1)
),
100
);
},
splitTags() { splitTags() {
let tags = []; let tags = [];
let string; let string;
@ -925,70 +1016,17 @@ export default {
let min = localize("min"); let min = localize("min");
return h ? (m ? `${h} ${hr} ${m} ${min}` : `${h} ${hr}`) : `${m} ${min}`; return h ? (m ? `${h} ${hr} ${m} ${min}` : `${h} ${hr}`) : `${m} ${min}`;
}, },
focusField(args, type) {
if (type) this.setInputTypeText(args, type);
else this.setGravity(args);
if (!args.object.text) {
args.object.focus();
setTimeout(() => Utils.ad.showSoftInput(args.object.android), 100);
}
},
setInputTypeText({ object }, type) {
this.setGravity(object);
let common =
android.text.InputType.TYPE_CLASS_TEXT |
android.text.InputType.TYPE_TEXT_FLAG_AUTO_CORRECT;
switch (type) {
case "words":
object.android.setInputType(
android.text.InputType.TYPE_TEXT_FLAG_CAP_WORDS | common
);
break;
case "sentence":
object.android.setInputType(
android.text.InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | common
);
break;
case "multiLine":
object.android.setInputType(
android.text.InputType.TYPE_TEXT_FLAG_MULTI_LINE |
android.text.InputType.TYPE_TEXT_FLAG_CAP_SENTENCES |
common
);
break;
}
},
setTimeRequired(focus, time) {
this.modalOpen = 1;
let t = this.recipe[time].split(":");
let hr = t[0];
let min = t[1];
this.$showModal(TimePickerHM, {
props: {
title: `${time == "prepTime" ? "prepT" : "cookT"}`,
selectedHr: hr,
selectedMin: min,
},
}).then((result) => {
this.modalOpen = 0;
if (result) {
this.recipe[time] = result;
if (focus) {
switch (time) {
case "prepTime":
this.autoFocusField("cookTime", 0);
break;
case "cookTime":
this.autoFocusField("yieldQuantity", 1);
break;
}
}
}
});
},
getTitleCount(title, type) { getTitleCount(title, type) {
let count = this.recipe[type].length; let c;
let text = count ? ` (${count})` : ""; switch (title) {
case "ings" || "inss":
c = this.recipe[type].filter((e) => e.type).length;
break;
default:
c = this.recipe[type].length;
break;
}
let text = c ? ` (${c})` : "";
return localize(title) + text; return localize(title) + text;
}, },

View file

@ -320,7 +320,7 @@
@touch="() => null" @touch="() => null"
> >
<Button <Button
class="ico rtl end" class="ico rtl"
@tap=" @tap="
showSearch showSearch
? closeSearch() ? closeSearch()
@ -377,14 +377,14 @@
</StackLayout> </StackLayout>
<Button <Button
:hidden="showSearch || selectMode" :hidden="showSearch || selectMode"
class="ico fab end" class="ico fab"
:text="icon.plus" :text="icon.plus"
col="5" col="5"
@tap="addR" @tap="addR"
/> />
<Button <Button
:hidden="!selectMode" :hidden="!selectMode"
class="ico end" class="ico"
:text="icon.del" :text="icon.del"
col="5" col="5"
@tap="deleteSelection" @tap="deleteSelection"
@ -483,7 +483,7 @@ export default {
let vm = this; let vm = this;
function getIngredients(e) { function getIngredients(e) {
return e.ingredients return e.ingredients
.map((f) => f.item.toLowerCase()) .map((f) => f.value.toLowerCase())
.join() .join()
.includes(vm.searchQuery); .includes(vm.searchQuery);
} }

View file

@ -3,7 +3,7 @@
<GridLayout rows="*, auto, auto" columns="*"> <GridLayout rows="*, auto, auto" columns="*">
<ScrollView <ScrollView
@loaded="svLoad" @loaded="svLoad"
@scroll="!edit && svScroll($event)" @scroll="svScroll($event)"
rowSpan="3" rowSpan="3"
scrollBarIndicatorVisible="false" scrollBarIndicatorVisible="false"
> >
@ -171,12 +171,7 @@
@tap="hasRecipes ? toggleEditMode() : randomMealPlan()" @tap="hasRecipes ? toggleEditMode() : randomMealPlan()"
col="3" col="3"
/> --> /> -->
<Button <Button class="ico fab" :text="icon.plus" @tap="addMealPlan" col="4" />
class="ico fab end"
:text="icon.plus"
@tap="addMealPlan"
col="4"
/>
</RGridLayout> </RGridLayout>
<SnackBar <SnackBar
row="2" row="2"
@ -204,14 +199,7 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { import { Device, Frame, Observable, Screen, Utils } from "@nativescript/core";
Application,
Device,
Frame,
Observable,
Screen,
Utils,
} from "@nativescript/core";
import { mapState, mapActions } from "vuex"; import { mapState, mapActions } from "vuex";
import ViewRecipe from "./ViewRecipe.vue"; import ViewRecipe from "./ViewRecipe.vue";
import EditRecipe from "./EditRecipe.vue"; import EditRecipe from "./EditRecipe.vue";
@ -278,7 +266,6 @@ export default {
let sbHeight = idSbH > 0 ? resources.getDimensionPixelSize(idSbH) : 0; let sbHeight = idSbH > 0 ? resources.getDimensionPixelSize(idSbH) : 0;
const metrics = new android.util.DisplayMetrics(); const metrics = new android.util.DisplayMetrics();
wm.getDefaultDisplay().getMetrics(metrics); wm.getDefaultDisplay().getMetrics(metrics);
console.log(metrics.heightPixels - sbHeight);
return Math.floor( return Math.floor(
Utils.layout.toDeviceIndependentPixels( Utils.layout.toDeviceIndependentPixels(
metrics.heightPixels - sbHeight metrics.heightPixels - sbHeight
@ -291,7 +278,6 @@ export default {
.getInsetsIgnoringVisibility( .getInsetsIgnoringVisibility(
android.view.WindowInsets.Type.systemBars() android.view.WindowInsets.Type.systemBars()
); );
console.log(metrics.getBounds().height() - top - bottom, top, bottom);
return metrics.getBounds().height() - top - bottom; return metrics.getBounds().height() - top - bottom;
} }
}, },
@ -453,11 +439,13 @@ export default {
let scrollUp; let scrollUp;
let y = scrollY; let y = scrollY;
if (y) { if (y) {
scrollUp = y < this.scrollPos; if (!this.edit) {
this.scrollPos = Math.abs(y); scrollUp = y < this.scrollPos;
let ab = this.appbar.translateY; this.scrollPos = Math.abs(y);
if (!scrollUp && ab == 0) this.animateBar(this.appbar, 0); let ab = this.appbar.translateY;
else if (scrollUp && ab == 64) this.animateBar(this.appbar, 1); if (!scrollUp && ab == 0) this.animateBar(this.appbar, 0);
else if (scrollUp && ab == 64) this.animateBar(this.appbar, 1);
}
this.listView.isScrollEnabled = y >= object.scrollableHeight; this.listView.isScrollEnabled = y >= object.scrollableHeight;
} }
}, },

View file

@ -107,13 +107,21 @@
<RStackLayout <RStackLayout
:rtl="RTL" :rtl="RTL"
orientation="horizontal" orientation="horizontal"
v-for="(item, index) in recipe.ingredients" v-for="(item, i) in recipe.ingredients"
:key="index + 'ing'" :key="item.key"
class="check" class="check"
@touch="touchIngredient($event, index)" @touch="item.type && touchIngredient($event, i)"
> >
<Button class="ico si" :text="icon.uncheck" /> <Button
<RLabel class="v tw" :text="getIngredientItem(item)" /> :hidden="!item.type"
class="ico si"
:text="icon.uncheck"
/>
<RLabel
class="v tw"
:class="{ 'tb t t3': !item.type }"
:text="getIngredientItem(item)"
/>
</RStackLayout> </RStackLayout>
</StackLayout> </StackLayout>
<StackLayout @loaded="onInsLoad"> <StackLayout @loaded="onInsLoad">
@ -125,13 +133,21 @@
<RStackLayout <RStackLayout
:rtl="RTL" :rtl="RTL"
orientation="horizontal" orientation="horizontal"
@touch="touchInstruction" @touch="item.type && touchInstruction($event)"
v-for="(instruction, index) in recipe.instructions" v-for="(item, i) in recipe.instructions"
:key="index + 'ins'" :key="item.key"
class="check" class="check"
> >
<Button class="tb t3 ico si" :text="localeN(index + 1)" /> <Button
<RLabel class="v tw" :text="instruction" /> :hidden="!item.type"
class="tb t3 ico si"
:text="getInsPos(i)"
/>
<RLabel
class="v tw"
:class="{ 'tb t t3': !item.type }"
:text="item.value"
/>
</RStackLayout> </RStackLayout>
</StackLayout> </StackLayout>
<RLabel <RLabel
@ -206,7 +222,7 @@
columns="auto, *, auto, auto, auto, auto" columns="auto, *, auto, auto, auto, auto"
@touch="() => null" @touch="() => null"
> >
<Button class="ico rtl end" :text="icon.back" @tap="$navigateBack()" /> <Button class="ico rtl" :text="icon.back" @tap="$navigateBack()" />
<Button <Button
col="2" col="2"
v-if="!filterTrylater" v-if="!filterTrylater"
@ -237,7 +253,7 @@
<ActivityIndicator col="4" :hidden="!busyEdit" :busy="busyEdit" /> <ActivityIndicator col="4" :hidden="!busyEdit" :busy="busyEdit" />
<Button <Button
col="5" col="5"
class="ico end" class="ico"
:text="showTools ? icon.less : icon.more" :text="showTools ? icon.less : icon.more"
@tap="toggleTools" @tap="toggleTools"
/> />
@ -475,31 +491,49 @@ export default {
this.showTools && this.toggleTools(); this.showTools && this.toggleTools();
this.animateBar(this.appbar, 0); this.animateBar(this.appbar, 0);
}, },
getInsPos(n) {
let a = 1;
let b = 1;
let ins = this.recipe.instructions;
let group = ins.reduce((acc, e) => {
if (!e.type) {
a = 1;
acc.push(b++);
} else acc.push(a++);
return acc;
}, []);
return this.localeN(group[n]);
},
// Helpers // Helpers
getTitleCount(title, type) { getTitleCount(title, type, unsel) {
let c = this.recipe[type].length; let c;
let s = null; let s = null;
switch (title) { switch (title) {
case "ings": case "ings":
s = this.checked; s = this.checked;
c = this.recipe[type].filter((e) => e.type).length;
break; break;
case "inss": case "inss":
s = this.stepsDid; s = this.stepsDid;
c = this.recipe[type].filter((e) => e.type).length;
break;
default:
c = this.recipe[type].length;
break; break;
} }
c = this.localeN(c); c = this.localeN(c);
s = s && this.localeN(s); s = s && this.localeN(s);
let text = s ? ` (${s}/${c})` : ` (${c})`; let text = s && !unsel ? ` (${s}/${c})` : ` (${c})`;
return localize(title) + text; return localize(title) + text;
}, },
getIngredientItem(item) { getIngredientItem(o) {
return `${ return `${
this.roundedQuantity(item.quantity) this.roundedQuantity(o.quantity)
? this.roundedQuantity(item.quantity) + " " ? this.roundedQuantity(o.quantity) + " "
: "" : ""
}${this.roundedQuantity(item.quantity) ? localize(item.unit) + " " : ""}${ }${this.roundedQuantity(o.quantity) ? localize(o.unit) + " " : ""}${
item.item o.value
}`; }`;
}, },
changeYield() { changeYield() {
@ -669,6 +703,7 @@ export default {
}); });
}, },
viewCombination(combination) { viewCombination(combination) {
this.hideBar();
this.scrollview.scrollToVerticalOffset(0, true); this.scrollview.scrollToVerticalOffset(0, true);
this.recipe = this.recipes.filter((e) => e.id === combination)[0]; this.recipe = this.recipes.filter((e) => e.id === combination)[0];
this.showTitleArr = new Array(4).fill(0); this.showTitleArr = new Array(4).fill(0);
@ -765,14 +800,14 @@ export default {
this.$options.filters.L(e.unit) + this.$options.filters.L(e.unit) +
" " " "
: "" : ""
}${e.item}\n`; }${e.value}\n`;
}); });
shareContent += ingredients; shareContent += ingredients;
} }
if (this.recipe.instructions.length) { if (this.recipe.instructions.length) {
let instructions = `\n\n${localize("inss")}:\n\n`; let instructions = `\n\n${localize("inss")}:\n\n`;
this.recipe.instructions.forEach((e, i) => { this.recipe.instructions.forEach((e, i) => {
instructions += `${i + 1}. ${e}\n\n`; instructions += `${i + 1}. ${e.value}\n\n`;
}); });
shareContent += instructions; shareContent += instructions;
} }
@ -786,7 +821,7 @@ export default {
if (this.recipe.notes.length) { if (this.recipe.notes.length) {
let notes = `\n${localize("nos")}:\n\n`; let notes = `\n${localize("nos")}:\n\n`;
this.recipe.notes.forEach((e, i) => { this.recipe.notes.forEach((e, i) => {
notes += `${i + 1}. ${e}\n\n`; notes += `${i + 1}. ${e.value}\n\n`;
}); });
shareContent += notes; shareContent += notes;
} }
@ -849,7 +884,7 @@ export default {
const stack = this.notescon; const stack = this.notescon;
stack.removeChildren(); stack.removeChildren();
this.recipe.notes.forEach((note) => this.recipe.notes.forEach((note) =>
stack.addChild(this.createNote(note)) stack.addChild(this.createNote(note.value))
); );
}, },
getTags(tags) { getTags(tags) {
@ -891,7 +926,6 @@ export default {
height: sw, height: sw,
translate: { x: this.RTL ? -16 : 112 - sw, y: (sh - sw) / 3 }, translate: { x: this.RTL ? -16 : 112 - sw, y: (sh - sw) / 3 },
duration: 200, duration: 200,
curve: CoreTypes.AnimationCurve.easeOut,
}) })
) )
.then(() => .then(() =>
@ -899,7 +933,6 @@ export default {
height: sh, height: sh,
translate: { x: this.RTL ? -16 : 112 - sw, y: -((sh - sw) / 6) }, translate: { x: this.RTL ? -16 : 112 - sw, y: -((sh - sw) / 6) },
duration: 200, duration: 200,
curve: CoreTypes.AnimationCurve.easeOut,
}) })
); );
}, },
@ -912,7 +945,6 @@ export default {
height: sw, height: sw,
translate: { x: this.RTL ? -16 : 112 - sw, y: (sh - sw) / 3 }, translate: { x: this.RTL ? -16 : 112 - sw, y: (sh - sw) / 3 },
duration: 200, duration: 200,
curve: CoreTypes.AnimationCurve.easeIn,
}) })
.then(() => .then(() =>
pv.animate({ pv.animate({
@ -920,7 +952,6 @@ export default {
height: 96, height: 96,
translate: { x: 0, y: 0 }, translate: { x: 0, y: 0 },
duration: 200, duration: 200,
curve: CoreTypes.AnimationCurve.easeIn,
}) })
) )
.then(() => .then(() =>
@ -964,7 +995,7 @@ export default {
// Print // Print
prepareHTML() { prepareHTML() {
let r = this.recipe; let r = this.recipe;
const head = `<head><meta charset=UTF-8><meta content="IE=edge"http-equiv=X-UA-Compatible><meta content="width=device-width,initial-scale=1"name=viewport><title>EnRecipes - Recipe for Print</title><style>a,body,div,html,img,ol,p,span,ul{border:0;font-size:100%;font:inherit;margin:0;padding:0;vertical-align:baseline}@font-face{font-family:Inter-Medium;src:url(../app/fonts/Inter-Medium.otf)}@font-face{font-family:Inter-Bold;src:url(../app/fonts/Inter-Bold.otf)}body{font-family:Inter-Medium,sans-serif;line-height:1.5;max-width:45rem;padding:1.5rem}body>p{padding:.5rem 0}.attr>div>p:last-child,h1,h2{font-family:Inter-Bold,sans-serif}#header{display:grid;grid-column-gap:2rem;grid-template-columns:1fr auto;margin-bottom:2.5rem;width:100%}img{border-radius:1rem;height:8rem;object-fit:cover;width:8rem}h1{font-size:2.25rem;line-height:1.25;margin:0;padding-bottom:1rem}svg{width:2rem;height:2rem;padding:0 .5rem 0 0}h2{margin:2rem 0 1rem}.attr{display:grid;grid-column-gap:2rem;grid-template-columns:1fr 1fr;margin-top:1rem}.attr>div>p:first-child{font-size:.9rem;opacity:.5}ol,ul{padding:0 1.5rem}li{padding:.5rem}a{color:inherit}.sub{font-size:.9rem;margin-top:2rem;opacity:.5}</style></head>`; const head = `<head><meta charset=UTF-8><meta content="IE=edge"http-equiv=X-UA-Compatible><meta content="width=device-width,initial-scale=1"name=viewport><title>EnRecipes - Recipe for Print</title><style>a,body,div,html,img,ol,p,span,ul{border:0;font-size:100%;font:inherit;margin:0;padding:0;vertical-align:baseline}@font-face{font-family:Inter-Medium;src:url(../app/fonts/Inter-Medium.otf)}@font-face{font-family:Inter-Bold;src:url(../app/fonts/Inter-Bold.otf)}body{font-family:Inter-Medium,sans-serif;line-height:1.5;max-width:45rem;padding:1.5rem}body>p{padding:.5rem 0}.attr>div>p:last-child,h1,h2,h3{font-family:Inter-Bold,sans-serif}#header{display:grid;grid-column-gap:2rem;grid-template-columns:1fr auto;margin-bottom:2.5rem;width:100%}img{border-radius:1rem;height:8rem;object-fit:cover;width:8rem}h1{font-size:2.25rem;line-height:1.25;margin:0;padding-bottom:1rem}svg{width:2rem;height:2rem;padding:0 .5rem 0 0}h2{margin:2rem 0 1rem}.attr{display:grid;grid-column-gap:2rem;grid-template-columns:1fr 1fr;margin-top:1rem}.attr>div>p:first-child{font-size:.9rem;opacity:.5}ol,ul{padding:0 1.5rem}li{padding:.5rem}a{color:inherit}.sub{font-size:.9rem;margin-top:2rem;opacity:.5}</style></head>`;
const getStarRating = () => { const getStarRating = () => {
let rate = `<svg width="100%" height="100%" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path d="M10.756 2.826 8.419 7.98l-5.624.63c-.533.06-.982.425-1.147.935-.166.51-.018 1.07.378 1.431l4.179 3.816-1.138 5.543c-.108.525.101 1.065.535 1.38.434.315 1.012.348 1.478.083L12 19.002l4.92 2.796c.466.265 1.044.232 1.478-.083.434-.315.643-.855.535-1.38l-1.138-5.543 4.179-3.816c.396-.361.544-.921.378-1.431-.165-.51-.614-.875-1.147-.935l-5.624-.63-2.337-5.154c-.221-.489-.708-.802-1.244-.802s-1.023.313-1.244.802z"/></svg>`; let rate = `<svg width="100%" height="100%" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path d="M10.756 2.826 8.419 7.98l-5.624.63c-.533.06-.982.425-1.147.935-.166.51-.018 1.07.378 1.431l4.179 3.816-1.138 5.543c-.108.525.101 1.065.535 1.38.434.315 1.012.348 1.478.083L12 19.002l4.92 2.796c.466.265 1.044.232 1.478-.083.434-.315.643-.855.535-1.38l-1.138-5.543 4.179-3.816c.396-.361.544-.921.378-1.431-.165-.51-.614-.875-1.147-.935l-5.624-.63-2.337-5.154c-.221-.489-.708-.802-1.244-.802s-1.023.313-1.244.802z"/></svg>`;
let unrate = `<svg width="100%" height="100%" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path d="M10.756 2.826 8.419 7.98l-5.624.63c-.533.06-.982.425-1.147.935-.166.51-.018 1.07.378 1.431l4.179 3.816-1.138 5.543c-.108.525.101 1.065.535 1.38.434.315 1.012.348 1.478.083L12 19.002l4.92 2.796c.466.265 1.044.232 1.478-.083.434-.315.643-.855.535-1.38l-1.138-5.543 4.179-3.816c.396-.361.544-.921.378-1.431-.165-.51-.614-.875-1.147-.935l-5.624-.63-2.337-5.154c-.221-.489-.708-.802-1.244-.802s-1.023.313-1.244.802zM12 4.925l1.994 4.398c.146.321.45.542.8.581l4.799.538-3.567 3.256c-.26.237-.376.594-.305.94l.972 4.73-4.199-2.386c-.306-.174-.682-.174-.988.0l-4.199 2.386.972-4.73c.071-.346-.045-.703-.305-.94l-3.567-3.256 4.799-.538c.35-.039.654-.26.8-.581L12 4.925z"/></svg>`; let unrate = `<svg width="100%" height="100%" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path d="M10.756 2.826 8.419 7.98l-5.624.63c-.533.06-.982.425-1.147.935-.166.51-.018 1.07.378 1.431l4.179 3.816-1.138 5.543c-.108.525.101 1.065.535 1.38.434.315 1.012.348 1.478.083L12 19.002l4.92 2.796c.466.265 1.044.232 1.478-.083.434-.315.643-.855.535-1.38l-1.138-5.543 4.179-3.816c.396-.361.544-.921.378-1.431-.165-.51-.614-.875-1.147-.935l-5.624-.63-2.337-5.154c-.221-.489-.708-.802-1.244-.802s-1.023.313-1.244.802zM12 4.925l1.994 4.398c.146.321.45.542.8.581l4.799.538-3.567 3.256c-.26.237-.376.594-.305.94l.972 4.73-4.199-2.386c-.306-.174-.682-.174-.988.0l-4.199 2.386.972-4.73c.071-.346-.045-.703-.305-.94l-3.567-3.256 4.799-.538c.35-.039.654-.26.8-.581L12 4.925z"/></svg>`;
@ -972,18 +1003,34 @@ export default {
}; };
const img = r.image ? `<img src="${r.image}" alt="${r.title}" />` : ""; const img = r.image ? `<img src="${r.image}" alt="${r.title}" />` : "";
const getIngs = () => { const getIngs = () => {
let ing = []; let ings = r.ingredients;
r.ingredients.forEach((e) => { return ings
ing.push(`<li>${this.getIngredientItem(e)}</li>`); .map((e, i) => {
}); if (!e.type)
return ing.join(""); return `${i > 0 ? "</ul>" : ""}<h3>${e.value}</h3>${
i < ings.length - 1 ? "<ul>" : ""
}`;
else
return `${i < 1 ? "<ul>" : ""}<li>${this.getIngredientItem(
e
)}</li>${i == ings.length - 1 ? "</ul>" : ""}`;
})
.join("");
}; };
const getIns = () => { const getIns = () => {
let ins = []; let inss = r.instructions;
r.instructions.forEach((e) => { return r.instructions
ins.push(`<li>${e}</li>`); .map((e, i) => {
}); if (!e.type)
return ins.join(""); return `${i > 0 ? "</ol>" : ""}<h3>${e.value}</h3>${
i < inss.length - 1 ? "<ol>" : ""
}`;
else
return `${i < 1 ? "<ol>" : ""}<li>${e.value}</li>${
i == inss.length - 1 ? "</ol>" : ""
}`;
})
.join("");
}; };
const getCmbs = () => { const getCmbs = () => {
let cmb = []; let cmb = [];
@ -1001,7 +1048,7 @@ export default {
: val; : val;
}; };
r.notes.forEach((e) => { r.notes.forEach((e) => {
let arr = e.split(regex); let arr = e.value.split(regex);
let single = []; let single = [];
arr.forEach((f) => { arr.forEach((f) => {
single.push(createSpan(f, regex.test(f))); single.push(createSpan(f, regex.test(f)));
@ -1046,18 +1093,20 @@ export default {
"Difficulty level" "Difficulty level"
)}<p>${r.difficulty}</div></div>${ )}<p>${r.difficulty}</div></div>${
r.ingredients.length r.ingredients.length
? `<h2>${this.getTitleCount("ings", "ingredients")}</h2>` ? `<h2>${this.getTitleCount("ings", "ingredients", 1)}</h2>`
: "" : ""
}<ul>${getIngs()}</ul>${ }${getIngs()}${
r.instructions.length r.instructions.length
? `<h2>${this.getTitleCount("inss", "instructions")}</h2>` ? `<h2>${this.getTitleCount("inss", "instructions", 1)}</h2>`
: "" : ""
}<ol>${getIns()}</ol>${ }${getIns()}${
r.combinations.length r.combinations.length
? `<h2>${this.getTitleCount("cmbs", "combinations")}</h2>` ? `<h2>${this.getTitleCount("cmbs", "combinations", 1)}</h2>`
: "" : ""
} ${getCmbs()} ${ } ${getCmbs()} ${
r.notes.length ? `<h2>${this.getTitleCount("nos", "notes")}</h2>` : "" r.notes.length
? `<h2>${this.getTitleCount("nos", "notes", 1)}</h2>`
: ""
} ${getNotes()}<div class=sub><p>${this.getDates().u}<p>${ } ${getNotes()}<div class=sub><p>${this.getDates().u}<p>${
this.getDates().c this.getDates().c
}</div> }</div>

View file

@ -69,7 +69,7 @@ export default {
cuisine: e.cuisine, cuisine: e.cuisine,
category: e.category, category: e.category,
tags: e.tags.map((e) => e.toLowerCase()).join(), tags: e.tags.map((e) => e.toLowerCase()).join(),
ingredients: e.ingredients.map((e) => e.item.toLowerCase()).join(), ingredients: e.ingredients.map((e) => e.value.toLowerCase()).join(),
}; };
}) })
.filter((e) => this.recipeFilter(e)); .filter((e) => this.recipeFilter(e));

View file

@ -35,7 +35,7 @@
</v-template> </v-template>
</ListView> </ListView>
<GridLayout row="1" class="appbar rtl" rows="*" columns="auto, *"> <GridLayout row="1" class="appbar rtl" rows="*" columns="auto, *">
<Button class="ico end" :text="icon.back" @tap="$navigateBack()" /> <Button class="ico" :text="icon.back" @tap="$navigateBack()" />
</GridLayout> </GridLayout>
<Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" /> <Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" />
<Label <Label

View file

@ -3,7 +3,7 @@
<RGridLayout :rtl="RTL" rows="*, auto" columns="auto, *"> <RGridLayout :rtl="RTL" rows="*, auto" columns="auto, *">
<OptionsList title="Settings" :items="items" :action="navigateTo" /> <OptionsList title="Settings" :items="items" :action="navigateTo" />
<GridLayout row="1" class="appbar rtl" rows="*" columns="auto, *"> <GridLayout row="1" class="appbar rtl" rows="*" columns="auto, *">
<Button class="ico end" :text="icon.back" @tap="$navigateBack()" /> <Button class="ico" :text="icon.back" @tap="$navigateBack()" />
</GridLayout> </GridLayout>
<Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" /> <Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" />
<Label <Label

View file

@ -3,7 +3,7 @@
<RGridLayout :rtl="RTL" rows="*, auto" columns="auto, *"> <RGridLayout :rtl="RTL" rows="*, auto" columns="auto, *">
<OptionsList title="Settings" :items="items" /> <OptionsList title="Settings" :items="items" />
<GridLayout row="1" class="appbar rtl" rows="*" columns="auto, *"> <GridLayout row="1" class="appbar rtl" rows="*" columns="auto, *">
<Button class="ico end" :text="icon.back" @tap="$navigateBack()" /> <Button class="ico" :text="icon.back" @tap="$navigateBack()" />
</GridLayout> </GridLayout>
<Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" /> <Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" />
<Label <Label

View file

@ -10,7 +10,7 @@
rows="*" rows="*"
columns="auto, *" columns="auto, *"
> >
<Button class="ico end" :text="icon.back" @tap="$navigateBack()" /> <Button class="ico" :text="icon.back" @tap="$navigateBack()" />
</GridLayout> </GridLayout>
<Toast :onload="tbLoad" :toast="toast" :action="hideBar" /> <Toast :onload="tbLoad" :toast="toast" :action="hideBar" />
<RGridLayout <RGridLayout
@ -22,7 +22,7 @@
columns="auto, *" columns="auto, *"
> >
<ActivityIndicator :busy="!!progress" /> <ActivityIndicator :busy="!!progress" />
<RLabel margin="0 12" col="1" class="tb tw vc lh4" :text="progress" /> <RLabel margin="0 2" col="1" class="tb tw vc lh4" :text="progress" />
</RGridLayout> </RGridLayout>
<Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" /> <Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" />
<Label <Label

View file

@ -3,7 +3,7 @@
<RGridLayout :rtl="RTL" rows="*, auto" columns="auto, *"> <RGridLayout :rtl="RTL" rows="*, auto" columns="auto, *">
<OptionsList title="intf" :items="items" /> <OptionsList title="intf" :items="items" />
<GridLayout row="1" class="appbar rtl" rows="*" columns="auto, *"> <GridLayout row="1" class="appbar rtl" rows="*" columns="auto, *">
<Button class="ico end" :text="icon.back" @tap="$navigateBack()" /> <Button class="ico" :text="icon.back" @tap="$navigateBack()" />
</GridLayout> </GridLayout>
<Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" /> <Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" />
<Label <Label

View file

@ -3,7 +3,7 @@
<RGridLayout :rtl="RTL" rows="*, auto" columns="auto, *"> <RGridLayout :rtl="RTL" rows="*, auto" columns="auto, *">
<OptionsList title="Settings" :items="items" /> <OptionsList title="Settings" :items="items" />
<GridLayout row="1" class="appbar rtl" rows="*" columns="auto, *"> <GridLayout row="1" class="appbar rtl" rows="*" columns="auto, *">
<Button class="ico end" :text="icon.back" @tap="$navigateBack()" /> <Button class="ico" :text="icon.back" @tap="$navigateBack()" />
</GridLayout> </GridLayout>
<Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" /> <Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" />
<Label <Label

View file

@ -10,7 +10,7 @@
rows="*" rows="*"
columns="auto, *" columns="auto, *"
> >
<Button class="ico end" :text="icon.back" @tap="$navigateBack()" /> <Button class="ico" :text="icon.back" @tap="$navigateBack()" />
</GridLayout> </GridLayout>
<Toast :onload="tbLoad" :toast="toast" :action="hideBar" /> <Toast :onload="tbLoad" :toast="toast" :action="hideBar" />
<Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" /> <Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" />

View file

@ -9,7 +9,7 @@
@loaded="abLoad" @loaded="abLoad"
columns="auto, *" columns="auto, *"
> >
<Button class="ico end" :text="icon.back" @tap="$navigateBack()" /> <Button class="ico" :text="icon.back" @tap="$navigateBack()" />
</GridLayout> </GridLayout>
<Toast :onload="tbLoad" :toast="toast" :action="hideToast" /> <Toast :onload="tbLoad" :toast="toast" :action="hideToast" />
<Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" /> <Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" />

View file

@ -10,8 +10,8 @@
<Button @tap="action" :text="count" class="ico t3 accent tb" /> <Button @tap="action" :text="count" class="ico t3 accent tb" />
<RLabel <RLabel
@tap="action" @tap="action"
margin="0 4" margin="0 2"
class="tb tw vc lh4" class="tw vc lh4"
col="1" col="1"
:text="msg | L" :text="msg | L"
/> />

View file

@ -103,7 +103,7 @@
"intf": "Benutzeroberfläche", "intf": "Benutzeroberfläche",
"invFile": "Ungültige Datei", "invFile": "Ungültige Datei",
"Irish": "Irisch", "Irish": "Irisch",
"it": "Element", "it": "Element %s",
"Italian": "Italienisch", "Italian": "Italienisch",
"Jamaican": "Jamaikanisch", "Jamaican": "Jamaikanisch",
"Japanese": "Japanisch", "Japanese": "Japanisch",
@ -233,7 +233,7 @@
"sru": "Rezept teilen mit …", "sru": "Rezept teilen mit …",
"stars": "Bewertung in Sternen", "stars": "Bewertung in Sternen",
"stick": "Stange", "stick": "Stange",
"stp": "Schritt", "stp": "Schritt %s",
"strAdd": "Beginne deine Rezepte hinzuzufügen!", "strAdd": "Beginne deine Rezepte hinzuzufügen!",
"sVw": "Schütteln, um ein zufälliges Rezept anzuzeigen", "sVw": "Schütteln, um ein zufälliges Rezept anzuzeigen",
"sVwInfo": "Hilft dir, wenn du dich nicht entscheiden kannst, was gekocht werden soll", "sVwInfo": "Hilft dir, wenn du dich nicht entscheiden kannst, was gekocht werden soll",
@ -324,5 +324,8 @@
"ksavr": "Bildschirm während der Rezeptanzeige eingeschaltet halten", "ksavr": "Bildschirm während der Rezeptanzeige eingeschaltet halten",
"esgbInfo": "Deaktiviere diese Option, wenn du Probleme mit der Navigation hast", "esgbInfo": "Deaktiviere diese Option, wenn du Probleme mit der Navigation hast",
"esgb": "Randwischen zum Zurückgehen", "esgb": "Randwischen zum Zurückgehen",
"ksavrInfo": "Verhindert, dass sich der Bildschirm während der Anzeige eines Rezepts ausschaltet" "ksavrInfo": "Verhindert, dass sich der Bildschirm während der Anzeige eines Rezepts ausschaltet",
"sectRm": "Abschnitt entfernt",
"addSectBtn": "ABSCHNITT HINZUFÜGEN",
"sect": "Abschnitt %s"
} }

View file

@ -326,5 +326,6 @@
"esgb": "Edge swipe to go back", "esgb": "Edge swipe to go back",
"esgbInfo": "Disable this option if you have any navigation issues", "esgbInfo": "Disable this option if you have any navigation issues",
"sect": "Section %s", "sect": "Section %s",
"addSectBtn": "ADD SECTION" "addSectBtn": "ADD SECTION",
"sectRm": "Section removed"
} }

View file

@ -103,7 +103,7 @@
"intf": "Interface", "intf": "Interface",
"invFile": "Invalid file", "invFile": "Invalid file",
"Irish": "Irish", "Irish": "Irish",
"it": "Item", "it": "Item %s",
"Italian": "Italian", "Italian": "Italian",
"Jamaican": "Jamaican", "Jamaican": "Jamaican",
"Japanese": "Japanese", "Japanese": "Japanese",
@ -233,7 +233,7 @@
"sru": "Share recipe using...", "sru": "Share recipe using...",
"stars": "Star rating", "stars": "Star rating",
"stick": "stick", "stick": "stick",
"stp": "Step", "stp": "Step %s",
"strAdd": "Start adding your recipes!", "strAdd": "Start adding your recipes!",
"sVw": "Shake to view random recipe", "sVw": "Shake to view random recipe",
"sVwInfo": "Helps you choose what to cook when you can't decide", "sVwInfo": "Helps you choose what to cook when you can't decide",
@ -324,5 +324,8 @@
"esgbInfo": "Disable this option if you have any navigation issues", "esgbInfo": "Disable this option if you have any navigation issues",
"esgb": "Edge swipe to go back", "esgb": "Edge swipe to go back",
"ksavrInfo": "Prevents the screen from turning off while viewing a recipe", "ksavrInfo": "Prevents the screen from turning off while viewing a recipe",
"ksavr": "Keep screen awake while viewing recipe" "ksavr": "Keep screen awake while viewing recipe",
"sectRm": "Section removed",
"addSectBtn": "ADD SECTION",
"sect": "Section %s"
} }

View file

@ -103,7 +103,7 @@
"intf": "Interface", "intf": "Interface",
"invFile": "Invalid file", "invFile": "Invalid file",
"Irish": "Irish", "Irish": "Irish",
"it": "Item", "it": "Item %s",
"Italian": "Italian", "Italian": "Italian",
"Jamaican": "Jamaican", "Jamaican": "Jamaican",
"Japanese": "Japanese", "Japanese": "Japanese",
@ -233,7 +233,7 @@
"sru": "Share recipe using...", "sru": "Share recipe using...",
"stars": "Star rating", "stars": "Star rating",
"stick": "stick", "stick": "stick",
"stp": "Step", "stp": "Step %s",
"strAdd": "Start adding your recipes!", "strAdd": "Start adding your recipes!",
"sVw": "Shake to view random recipe", "sVw": "Shake to view random recipe",
"sVwInfo": "Helps you choose what to cook when you can't decide", "sVwInfo": "Helps you choose what to cook when you can't decide",
@ -324,5 +324,8 @@
"esgbInfo": "Disable this option if you have any navigation issues", "esgbInfo": "Disable this option if you have any navigation issues",
"esgb": "Edge swipe to go back", "esgb": "Edge swipe to go back",
"ksavrInfo": "Prevents the screen from turning off while viewing a recipe", "ksavrInfo": "Prevents the screen from turning off while viewing a recipe",
"ksavr": "Keep screen awake while viewing recipe" "ksavr": "Keep screen awake while viewing recipe",
"sectRm": "Section removed",
"addSectBtn": "ADD SECTION",
"sect": "Section %s"
} }

View file

@ -103,7 +103,7 @@
"intf": "Interface", "intf": "Interface",
"invFile": "Fichier invalide", "invFile": "Fichier invalide",
"Irish": "irlandaise", "Irish": "irlandaise",
"it": "Élément", "it": "Élément %s",
"Italian": "italienne", "Italian": "italienne",
"Jamaican": "jamaïcaine", "Jamaican": "jamaïcaine",
"Japanese": "japonaise", "Japanese": "japonaise",
@ -233,7 +233,7 @@
"sru": "Partager la recette en utilisant…", "sru": "Partager la recette en utilisant…",
"stars": "Évaluation étoilée", "stars": "Évaluation étoilée",
"stick": "barre", "stick": "barre",
"stp": "Étape", "stp": "Étape %s",
"strAdd": "Commencez à ajouter vos recettes !", "strAdd": "Commencez à ajouter vos recettes !",
"sVw": "Secouez pour voir une recette au hasard", "sVw": "Secouez pour voir une recette au hasard",
"sVwInfo": "Vous aide à choisir quoi cuisiner quand vous ne pouvez pas vous décider", "sVwInfo": "Vous aide à choisir quoi cuisiner quand vous ne pouvez pas vous décider",
@ -324,5 +324,8 @@
"ksavr": "Garder lécran allumé durant laffichage dune recette", "ksavr": "Garder lécran allumé durant laffichage dune recette",
"esgbInfo": "Désactivez cette option si vous avez des problèmes de navigation", "esgbInfo": "Désactivez cette option si vous avez des problèmes de navigation",
"esgb": "Balayer le bord pour revenir en arrière", "esgb": "Balayer le bord pour revenir en arrière",
"ksavrInfo": "Empêche lécran de séteindre durant la visualisation dune recette" "ksavrInfo": "Empêche lécran de séteindre durant la visualisation dune recette",
"sectRm": "Section retiré",
"addSectBtn": "AJOUTER UNE SECTION",
"sect": "Section %s"
} }

View file

@ -103,7 +103,7 @@
"intf": "इंटरफेस", "intf": "इंटरफेस",
"invFile": "अवैध फाइल", "invFile": "अवैध फाइल",
"Irish": "आयरिश", "Irish": "आयरिश",
"it": "मद", "it": "मद %s",
"Italian": "इतालवी", "Italian": "इतालवी",
"Jamaican": "जमैका", "Jamaican": "जमैका",
"Japanese": "जापानी", "Japanese": "जापानी",
@ -233,7 +233,7 @@
"sru": "शेयर रेसिपी...", "sru": "शेयर रेसिपी...",
"stars": "स्टार रेटिंग", "stars": "स्टार रेटिंग",
"stick": "लाठी", "stick": "लाठी",
"stp": "कदम", "stp": "कदम %s",
"strAdd": "अपने व्यंजनों को जोड़ना शुरू करें!", "strAdd": "अपने व्यंजनों को जोड़ना शुरू करें!",
"sVw": "यादृच्छिक नुस्खा देखने के लिए हिलाएं", "sVw": "यादृच्छिक नुस्खा देखने के लिए हिलाएं",
"sVwInfo": "जब आप तय नहीं कर सकते तो आपको क्या खाना बनाना है, यह चुनने में मदद करता है", "sVwInfo": "जब आप तय नहीं कर सकते तो आपको क्या खाना बनाना है, यह चुनने में मदद करता है",
@ -324,5 +324,8 @@
"selMT": "भोजन का प्रकार चुनें", "selMT": "भोजन का प्रकार चुनें",
"d": "दिन", "d": "दिन",
"wk": "सप्ताह", "wk": "सप्ताह",
"mnth": "महीना" "mnth": "महीना",
"sectRm": "धारा हटा दिया गया",
"addSectBtn": "धारा जोड़ें",
"sect": "भाग %s"
} }

View file

@ -103,7 +103,7 @@
"intf": "ഇന്റർഫേസ്", "intf": "ഇന്റർഫേസ്",
"invFile": "അസാധുവായ ഫയൽ", "invFile": "അസാധുവായ ഫയൽ",
"Irish": "ഐറിഷ്", "Irish": "ഐറിഷ്",
"it": "ഇനം", "it": "ഇനം %s",
"Italian": "ഇറ്റാലിയൻ", "Italian": "ഇറ്റാലിയൻ",
"Jamaican": "ജമൈക്കൻ", "Jamaican": "ജമൈക്കൻ",
"Japanese": "ജാപ്പനീസ്", "Japanese": "ജാപ്പനീസ്",
@ -233,7 +233,7 @@
"sru": "പാചകക്കുറിപ്പ് പങ്കിടുക...", "sru": "പാചകക്കുറിപ്പ് പങ്കിടുക...",
"stars": "നക്ഷത്ര റേറ്റിംഗ്", "stars": "നക്ഷത്ര റേറ്റിംഗ്",
"stick": "വടി", "stick": "വടി",
"stp": "ഘട്ടം", "stp": "ഘട്ടം %s",
"strAdd": "നിങ്ങളുടെ പാചകക്കുറിപ്പുകൾ ചേർക്കാൻ ആരംഭിക്കുക!", "strAdd": "നിങ്ങളുടെ പാചകക്കുറിപ്പുകൾ ചേർക്കാൻ ആരംഭിക്കുക!",
"sVw": "ക്രമരഹിതമായ പാചകക്കുറിപ്പ് കാണാൻ കുലുക്കുക", "sVw": "ക്രമരഹിതമായ പാചകക്കുറിപ്പ് കാണാൻ കുലുക്കുക",
"sVwInfo": "നിങ്ങൾക്ക് തീരുമാനിക്കാൻ കഴിയാത്തപ്പോൾ എന്താണ് പാചകം ചെയ്യേണ്ടതെന്ന് തിരഞ്ഞെടുക്കാൻ നിങ്ങളെ സഹായിക്കുന്നു", "sVwInfo": "നിങ്ങൾക്ക് തീരുമാനിക്കാൻ കഴിയാത്തപ്പോൾ എന്താണ് പാചകം ചെയ്യേണ്ടതെന്ന് തിരഞ്ഞെടുക്കാൻ നിങ്ങളെ സഹായിക്കുന്നു",
@ -324,5 +324,8 @@
"strtBtn": "ആരംഭിക്കുക", "strtBtn": "ആരംഭിക്കുക",
"ntmr": "പുതിയ ടൈമർ", "ntmr": "പുതിയ ടൈമർ",
"timer": "പാചക ടൈമർ", "timer": "പാചക ടൈമർ",
"sec": "സെക്കൻഡ്" "sec": "സെക്കൻഡ്",
"addSectBtn": "വിഭാഗം ചേർക്കുക",
"sectRm": "വിഭാഗം നീക്കംചെയ്തു",
"sect": "ഭാഗം %s"
} }

View file

@ -103,7 +103,7 @@
"intf": "Uiterlijk", "intf": "Uiterlijk",
"invFile": "Ongeldig bestand", "invFile": "Ongeldig bestand",
"Irish": "Iers", "Irish": "Iers",
"it": "Item", "it": "Item %s",
"Italian": "Italiaans", "Italian": "Italiaans",
"Jamaican": "Jamaicaans", "Jamaican": "Jamaicaans",
"Japanese": "Japans", "Japanese": "Japans",
@ -233,7 +233,7 @@
"sru": "Recept delen via…", "sru": "Recept delen via…",
"stars": "Waardering", "stars": "Waardering",
"stick": "stokje", "stick": "stokje",
"stp": "Stap", "stp": "Stap %s",
"strAdd": "Voeg je recepten toe!", "strAdd": "Voeg je recepten toe!",
"sVw": "Schudden om willekeurig recept te tonen", "sVw": "Schudden om willekeurig recept te tonen",
"sVwInfo": "Handig voor als je even niet weet wat je wilt maken", "sVwInfo": "Handig voor als je even niet weet wat je wilt maken",
@ -324,5 +324,8 @@
"esgbInfo": "Schakel deze optie uit als je problemen ervaart tijdens het navigeren", "esgbInfo": "Schakel deze optie uit als je problemen ervaart tijdens het navigeren",
"esgb": "Vegen vanaf schermrand om terug te gaan", "esgb": "Vegen vanaf schermrand om terug te gaan",
"ksavrInfo": "Voorkomt dat het scherm wordt uitgeschakeld tijdens het bekijken van een recept", "ksavrInfo": "Voorkomt dat het scherm wordt uitgeschakeld tijdens het bekijken van een recept",
"ksavr": "Scherm niet uitschakelen tijdens bekijken van recept" "ksavr": "Scherm niet uitschakelen tijdens bekijken van recept",
"addSectBtn": "SECTIE TOEVOEGEN",
"sect": "Sectie %s",
"sectRm": "De sectie is verwijderd"
} }

View file

@ -320,5 +320,6 @@
"nvr": "Nunca", "nvr": "Nunca",
"gtD": "Ir à data", "gtD": "Ir à data",
"rstBtn": "REINICIAR", "rstBtn": "REINICIAR",
"add": "Adicionar" "add": "Adicionar",
"ksavr": "Manter tela ligada ao ver receitas"
} }

View file

@ -198,7 +198,7 @@
"rec": "Receita", "rec": "Receita",
"sysDefB": "Padrão do sistema + preto", "sysDefB": "Padrão do sistema + preto",
"trySer": "PROCURAR EM TODAS AS RECEITAS?", "trySer": "PROCURAR EM TODAS AS RECEITAS?",
"stp": "Etapa", "stp": "Etapa %s",
"stars": "Classificação por estrelas", "stars": "Classificação por estrelas",
"sru": "Partilhar receita usando...", "sru": "Partilhar receita usando...",
"srt": "Ordenar", "srt": "Ordenar",
@ -238,7 +238,7 @@
"lang": "Idioma", "lang": "Idioma",
"kEdit": "CONTINUAR A EDITAR", "kEdit": "CONTINUAR A EDITAR",
"joinTG": "Junte-se ao grupo no Telegram", "joinTG": "Junte-se ao grupo no Telegram",
"it": "Item", "it": "Item %s",
"invFile": "Ficheiro inválido", "invFile": "Ficheiro inválido",
"intf": "Interface", "intf": "Interface",
"inss": "Instruções", "inss": "Instruções",
@ -320,5 +320,11 @@
"calVM": "Modo de vista tipo calendário", "calVM": "Modo de vista tipo calendário",
"oAP": "%1$s a decorrer, %2$s em pausa", "oAP": "%1$s a decorrer, %2$s em pausa",
"rstBtn": "REINICIAR", "rstBtn": "REINICIAR",
"add": "Adicionar" "add": "Adicionar",
"esgb": "Deslizar para a borda para voltar",
"esgbInfo": "Desative esta opção se tiver problemas ao navegar",
"ksavrInfo": "Impede que o ecrã desligue ao ver uma receita",
"ksavr": "Manter ecrã ligado ao ver receitas",
"addSectBtn": "ADICIONAR SECÇÃO",
"sect": "Secção %s"
} }

View file

@ -103,7 +103,7 @@
"intf": "இடைமுகம்", "intf": "இடைமுகம்",
"invFile": "தவறான கோப்பு", "invFile": "தவறான கோப்பு",
"Irish": "ஐரிஷ்", "Irish": "ஐரிஷ்",
"it": "பொருள்", "it": "பொருள் %s",
"Italian": "இத்தாலிய", "Italian": "இத்தாலிய",
"Jamaican": "ஜமைக்கா", "Jamaican": "ஜமைக்கா",
"Japanese": "ஜப்பானிய", "Japanese": "ஜப்பானிய",
@ -233,7 +233,7 @@
"sru": "சமையல் குறிப்பை பகிரவும்...", "sru": "சமையல் குறிப்பை பகிரவும்...",
"stars": "நட்சத்திர மதிப்பீடு", "stars": "நட்சத்திர மதிப்பீடு",
"stick": "குச்சி", "stick": "குச்சி",
"stp": "செய்முறை", "stp": "செய்முறை %s",
"strAdd": "உங்கள் சமையல் குறிப்புகளைச் சேர்க்கத் தொடங்குங்கள்!", "strAdd": "உங்கள் சமையல் குறிப்புகளைச் சேர்க்கத் தொடங்குங்கள்!",
"sVw": "சாதனத்தை அசைத்து சீரற்ற சமையல் குறிப்பை காண்க", "sVw": "சாதனத்தை அசைத்து சீரற்ற சமையல் குறிப்பை காண்க",
"sVwInfo": "நீங்கள் தீர்மானிக்க முடியாதபோது என்ன சமைக்கலாம் என்பதைத் தேர்வுசெய்ய உதவும்", "sVwInfo": "நீங்கள் தீர்மானிக்க முடியாதபோது என்ன சமைக்கலாம் என்பதைத் தேர்வுசெய்ய உதவும்",
@ -272,7 +272,7 @@
"buto": "%s இல் காப்புப் பிரதி எடுக்கப்பட்டது", "buto": "%s இல் காப்புப் பிரதி எடுக்கப்பட்டது",
"sysDefB": "அமைப்பு இயல்புநிலை + கருப்பு", "sysDefB": "அமைப்பு இயல்புநிலை + கருப்பு",
"notifSetg": "அறிவிப்பு அமைப்புகள்", "notifSetg": "அறிவிப்பு அமைப்புகள்",
"tmrRm": "டைமர் அகற்றப்பட்டது", "tmrRm": "டைமர் நீக்கப்பட்டது",
"seconds": "வினாடிகள்", "seconds": "வினாடிகள்",
"hours": "மணி", "hours": "மணி",
"hour": "மணி", "hour": "மணி",
@ -324,5 +324,8 @@
"ksavrInfo": "சமையல் குறிப்பு பார்க்கும் போது திரையை உறக்கநிலைக்குச் செல்லாது தடுக்கும்", "ksavrInfo": "சமையல் குறிப்பு பார்க்கும் போது திரையை உறக்கநிலைக்குச் செல்லாது தடுக்கும்",
"ksavr": "சமையல் குறிப்பு பார்க்கும் போது திரையை விழித்திரு", "ksavr": "சமையல் குறிப்பு பார்க்கும் போது திரையை விழித்திரு",
"rstBtn": "மீட்டமை", "rstBtn": "மீட்டமை",
"add": "சேர்" "add": "சேர்",
"sectRm": "பிரிவு நீக்கப்பட்டது",
"addSectBtn": "பிரிவைச் சேர்",
"sect": "பிரிவு %s"
} }

View file

@ -103,7 +103,7 @@
"intf": "ఇంటర్ఫేస్", "intf": "ఇంటర్ఫేస్",
"invFile": "చెల్లుబాటులోలేని ఫైలు", "invFile": "చెల్లుబాటులోలేని ఫైలు",
"Irish": "ఐరిష్", "Irish": "ఐరిష్",
"it": "అంశం", "it": "అంశం %s",
"Italian": "ఇటాలియన్", "Italian": "ఇటాలియన్",
"Jamaican": "జమైకా", "Jamaican": "జమైకా",
"Japanese": "జపనీస్", "Japanese": "జపనీస్",
@ -233,7 +233,7 @@
"sru": "రెసిపీని భాగస్వామ్యం చేయండి ...", "sru": "రెసిపీని భాగస్వామ్యం చేయండి ...",
"stars": "స్టార్ రేటింగ్", "stars": "స్టార్ రేటింగ్",
"stick": "కర్ర", "stick": "కర్ర",
"stp": "దశ", "stp": "దశ %s",
"strAdd": "మీ వంటకాలను జోడించడం ప్రారంభించండి!", "strAdd": "మీ వంటకాలను జోడించడం ప్రారంభించండి!",
"sVw": "యాదృచ్ఛిక రెసిపీని చూడటానికి షేక్ చేయండి", "sVw": "యాదృచ్ఛిక రెసిపీని చూడటానికి షేక్ చేయండి",
"sVwInfo": "మీరు నిర్ణయించలేనప్పుడు ఏమి ఉడికించాలో ఎంచుకోవడానికి మీకు సహాయపడుతుంది", "sVwInfo": "మీరు నిర్ణయించలేనప్పుడు ఏమి ఉడికించాలో ఎంచుకోవడానికి మీకు సహాయపడుతుంది",
@ -324,5 +324,8 @@
"selMT": "భోజన రకాన్ని ఎంచుకోండి", "selMT": "భోజన రకాన్ని ఎంచుకోండి",
"d": "రోజు", "d": "రోజు",
"wk": "వారం", "wk": "వారం",
"mnth": "నెల" "mnth": "నెల",
"sectRm": "విభాగం తొలగించబడింది",
"addSectBtn": "విభాగం జోడించండి",
"sect": "విభాగం %s"
} }

View file

@ -15,8 +15,8 @@
android { android {
defaultConfig { defaultConfig {
versionCode 1 versionCode 2
versionName '2.0.0' versionName '2.1.0'
minSdkVersion 23 minSdkVersion 23
targetSdkVersion 30 targetSdkVersion 30
compileSdkVersion 30 compileSdkVersion 30

View file

@ -292,6 +292,9 @@
<string name="aBtn">"أضف"</string> <string name="aBtn">"أضف"</string>
<string name="About">"حول"</string> <string name="About">"حول"</string>
<string name="aap">"ألحق صورة"</string> <string name="aap">"ألحق صورة"</string>
<string name="sectRm">"Section removed"</string>
<string name="addSectBtn">"ADD SECTION"</string>
<string name="sect">"Section %1$s"</string>
<string name="esgbInfo">"Disable this option if you have any navigation issues"</string> <string name="esgbInfo">"Disable this option if you have any navigation issues"</string>
<string name="esgb">"Edge swipe to go back"</string> <string name="esgb">"Edge swipe to go back"</string>
<string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string> <string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string>

View file

@ -296,6 +296,9 @@
<string name="American">"American"</string> <string name="American">"American"</string>
<string name="aD">"Fuldendt!"</string> <string name="aD">"Fuldendt!"</string>
<string name="About">"Om"</string> <string name="About">"Om"</string>
<string name="sectRm">"Section removed"</string>
<string name="addSectBtn">"ADD SECTION"</string>
<string name="sect">"Section %1$s"</string>
<string name="esgbInfo">"Disable this option if you have any navigation issues"</string> <string name="esgbInfo">"Disable this option if you have any navigation issues"</string>
<string name="esgb">"Edge swipe to go back"</string> <string name="esgb">"Edge swipe to go back"</string>
<string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string> <string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string>

View file

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="sect">"Abschnitt %1$s"</string>
<string name="addSectBtn">"ABSCHNITT HINZUFÜGEN"</string>
<string name="sectRm">"Abschnitt entfernt"</string>
<string name="ksavrInfo">"Verhindert, dass sich der Bildschirm während der Anzeige eines Rezepts ausschaltet"</string> <string name="ksavrInfo">"Verhindert, dass sich der Bildschirm während der Anzeige eines Rezepts ausschaltet"</string>
<string name="esgb">"Randwischen zum Zurückgehen"</string> <string name="esgb">"Randwischen zum Zurückgehen"</string>
<string name="esgbInfo">"Deaktiviere diese Option, wenn du Probleme mit der Navigation hast"</string> <string name="esgbInfo">"Deaktiviere diese Option, wenn du Probleme mit der Navigation hast"</string>
@ -91,7 +94,7 @@
<string name="sVwInfo">"Hilft dir, wenn du dich nicht entscheiden kannst, was gekocht werden soll"</string> <string name="sVwInfo">"Hilft dir, wenn du dich nicht entscheiden kannst, was gekocht werden soll"</string>
<string name="sVw">"Schütteln, um ein zufälliges Rezept anzuzeigen"</string> <string name="sVw">"Schütteln, um ein zufälliges Rezept anzuzeigen"</string>
<string name="strAdd">"Beginne deine Rezepte hinzuzufügen!"</string> <string name="strAdd">"Beginne deine Rezepte hinzuzufügen!"</string>
<string name="stp">"Schritt"</string> <string name="stp">"Schritt %1$s"</string>
<string name="stick">"Stange"</string> <string name="stick">"Stange"</string>
<string name="stars">"Bewertung in Sternen"</string> <string name="stars">"Bewertung in Sternen"</string>
<string name="sru">"Rezept teilen mit …"</string> <string name="sru">"Rezept teilen mit …"</string>
@ -221,7 +224,7 @@
<string name="Japanese">"Japanisch"</string> <string name="Japanese">"Japanisch"</string>
<string name="Jamaican">"Jamaikanisch"</string> <string name="Jamaican">"Jamaikanisch"</string>
<string name="Italian">"Italienisch"</string> <string name="Italian">"Italienisch"</string>
<string name="it">"Element"</string> <string name="it">"Element %1$s"</string>
<string name="Irish">"Irisch"</string> <string name="Irish">"Irisch"</string>
<string name="invFile">"Ungültige Datei"</string> <string name="invFile">"Ungültige Datei"</string>
<string name="intf">"Benutzeroberfläche"</string> <string name="intf">"Benutzeroberfläche"</string>

View file

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="sect">"Section %1$s"</string>
<string name="addSectBtn">"ADD SECTION"</string>
<string name="sectRm">"Section removed"</string>
<string name="ksavr">"Keep screen awake while viewing recipe"</string> <string name="ksavr">"Keep screen awake while viewing recipe"</string>
<string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string> <string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string>
<string name="esgb">"Edge swipe to go back"</string> <string name="esgb">"Edge swipe to go back"</string>
@ -91,7 +94,7 @@
<string name="sVwInfo">"Helps you choose what to cook when you can\'t decide"</string> <string name="sVwInfo">"Helps you choose what to cook when you can\'t decide"</string>
<string name="sVw">"Shake to view random recipe"</string> <string name="sVw">"Shake to view random recipe"</string>
<string name="strAdd">"Start adding your recipes!"</string> <string name="strAdd">"Start adding your recipes!"</string>
<string name="stp">"Step"</string> <string name="stp">"Step %1$s"</string>
<string name="stick">"stick"</string> <string name="stick">"stick"</string>
<string name="stars">"Star rating"</string> <string name="stars">"Star rating"</string>
<string name="sru">"Share recipe using..."</string> <string name="sru">"Share recipe using..."</string>
@ -221,7 +224,7 @@
<string name="Japanese">"Japanese"</string> <string name="Japanese">"Japanese"</string>
<string name="Jamaican">"Jamaican"</string> <string name="Jamaican">"Jamaican"</string>
<string name="Italian">"Italian"</string> <string name="Italian">"Italian"</string>
<string name="it">"Item"</string> <string name="it">"Item %1$s"</string>
<string name="Irish">"Irish"</string> <string name="Irish">"Irish"</string>
<string name="invFile">"Invalid file"</string> <string name="invFile">"Invalid file"</string>
<string name="intf">"Interface"</string> <string name="intf">"Interface"</string>

View file

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="sect">"Section %1$s"</string>
<string name="addSectBtn">"ADD SECTION"</string>
<string name="sectRm">"Section removed"</string>
<string name="ksavr">"Keep screen awake while viewing recipe"</string> <string name="ksavr">"Keep screen awake while viewing recipe"</string>
<string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string> <string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string>
<string name="esgb">"Edge swipe to go back"</string> <string name="esgb">"Edge swipe to go back"</string>
@ -91,7 +94,7 @@
<string name="sVwInfo">"Helps you choose what to cook when you can\'t decide"</string> <string name="sVwInfo">"Helps you choose what to cook when you can\'t decide"</string>
<string name="sVw">"Shake to view random recipe"</string> <string name="sVw">"Shake to view random recipe"</string>
<string name="strAdd">"Start adding your recipes!"</string> <string name="strAdd">"Start adding your recipes!"</string>
<string name="stp">"Step"</string> <string name="stp">"Step %1$s"</string>
<string name="stick">"stick"</string> <string name="stick">"stick"</string>
<string name="stars">"Star rating"</string> <string name="stars">"Star rating"</string>
<string name="sru">"Share recipe using..."</string> <string name="sru">"Share recipe using..."</string>
@ -221,7 +224,7 @@
<string name="Japanese">"Japanese"</string> <string name="Japanese">"Japanese"</string>
<string name="Jamaican">"Jamaican"</string> <string name="Jamaican">"Jamaican"</string>
<string name="Italian">"Italian"</string> <string name="Italian">"Italian"</string>
<string name="it">"Item"</string> <string name="it">"Item %1$s"</string>
<string name="Irish">"Irish"</string> <string name="Irish">"Irish"</string>
<string name="invFile">"Invalid file"</string> <string name="invFile">"Invalid file"</string>
<string name="intf">"Interface"</string> <string name="intf">"Interface"</string>

View file

@ -0,0 +1,334 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="aap">"Adjuntá una foto"</string>
<string name="About">"Acerca de"</string>
<string name="aBtn">"AGREGAR"</string>
<string name="aD">"¡Todo listo!"</string>
<string name="addCmbBtn">"AGREGAR COMBINACIÓN"</string>
<string name="aFBu">"Agregá recetas para hacer un backup"</string>
<string name="aIngBtn">"AGREGAR INGREDIENTE"</string>
<string name="allCats">"Todas las categorías"</string>
<string name="American">"Americana"</string>
<string name="aNBtn">"AGREGAR NUEVA"</string>
<string name="aNoBtn">"AGREGAR NOTA"</string>
<string name="appCrd">"Compartido vía EnRecipes. Conseguilo en F-Droid, IzzyOnDroid o en la Play Store."</string>
<string name="Appetizers">"Aperitivos"</string>
<string name="appInfo">"EnRecipes es un libro de cocina digital, privado y de código abierto, que te permite crear, administrar y compartir tus recetas"</string>
<string name="apply">"APLICAR"</string>
<string name="appRst">"Se requiere reiniciar la app"</string>
<string name="aStpBtn">"AGREGAR PASO"</string>
<string name="sec">"s"</string>
<string name="sectRm">"Section removed"</string>
<string name="addSectBtn">"ADD SECTION"</string>
<string name="sect">"Section %1$s"</string>
<string name="esgbInfo">"Disable this option if you have any navigation issues"</string>
<string name="esgb">"Edge swipe to go back"</string>
<string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string>
<string name="ksavr">"Keep screen awake while viewing recipe"</string>
<string name="rstBtn">"RESET"</string>
<string name="add">"Add"</string>
<string name="nvr">"Never"</string>
<string name="otaw">"Older than a week"</string>
<string name="otam">"Older than a month"</string>
<string name="otay">"Older than a year"</string>
<string name="admp">"Auto-delete meal plans"</string>
<string name="plsCrt">"Use the + button to create one"</string>
<string name="ehwmp">"Eat healthy with meal plans!"</string>
<string name="selMT">"Select meal type"</string>
<string name="ystr">"Yesterday"</string>
<string name="tmrw">"Tomorrow"</string>
<string name="tdy">"Today"</string>
<string name="cpy">"copy"</string>
<string name="d">"Day"</string>
<string name="wk">"Week"</string>
<string name="mnth">"Month"</string>
<string name="calVM">"Calendar view mode"</string>
<string name="oAP">"%1$s ongoing, %2$s paused"</string>
<string name="ttv">"Tap to view"</string>
<string name="dismissAll">"Dismiss all timers"</string>
<string name="dismiss">"Dismiss"</string>
<string name="texp">"%1$s timers expired"</string>
<string name="wDBy">"%1$s was delayed by %2$s"</string>
<string name="prstTU">"Preset time updated"</string>
<string name="ccwt">"Cook confidently with timers!"</string>
<string name="gtD">"Go to date"</string>
<string name="random">"Random"</string>
<string name="notifSetg">"Notification settings"</string>
<string name="tmrRm">"Timer removed"</string>
<string name="seconds">"seconds"</string>
<string name="hours">"hours"</string>
<string name="hour">"hour"</string>
<string name="minutes">"minutes"</string>
<string name="minute">"minute"</string>
<string name="dlyDur">"Delay duration"</string>
<string name="tmrvbrt">"Timer vibrate"</string>
<string name="tmrSnd">"Timer sound"</string>
<string name="aTPrst">"Added to presets"</string>
<string name="fwr">"for which recipe?"</string>
<string name="delPrst">"You are about to delete %1$s from the presets"</string>
<string name="prsts">"Presets"</string>
<string name="prstBtn">"PRESETS"</string>
<string name="tmr">"Timer %1$s"</string>
<string name="delay">"Delay"</string>
<string name="stop">"Stop"</string>
<string name="strtBtn">"START"</string>
<string name="ntmr">"New timer"</string>
<string name="timer">"Cooking Timer"</string>
<string name="sysDefB">"System default + Black"</string>
<string name="buto">"Backed up to %1$s"</string>
<string name="yld">"Yield"</string>
<string name="yieldU">"Yield unit"</string>
<string name="yieldQ">"Yield quantity"</string>
<string name="yesterday">"yesterday"</string>
<string name="wAgo">"%1$s weeks ago"</string>
<string name="Vietnamese">"Vietnamese"</string>
<string name="Vegetarian">"Vegetarian"</string>
<string name="Vegan">"Vegan"</string>
<string name="untRec">"Untitled Recipe"</string>
<string name="unsaved">"Unsaved changes"</string>
<string name="Unit">"Unit"</string>
<string name="unit">"unit"</string>
<string name="Undefined">"Undefined"</string>
<string name="Turkish">"Turkish"</string>
<string name="tsp">"tsp"</string>
<string name="tsInfo">"separate with spaces"</string>
<string name="ts">"Tags"</string>
<string name="trySer">"SEARCH IN ALL THE RECIPES?"</string>
<string name="trylater">"Try Later"</string>
<string name="trnsl">"Translate"</string>
<string name="triedInfo">"You tried this recipe %1$s"</string>
<string name="today">"today"</string>
<string name="tLInfo">"Recipes you want to try later are listed here"</string>
<string name="title">"Title"</string>
<string name="Theme">"Theme"</string>
<string name="Thai">"Thai"</string>
<string name="Teaspoon">"Teaspoon"</string>
<string name="tbsp">"tbsp"</string>
<string name="Tablespoon">"Tablespoon"</string>
<string name="sysDef">"System default"</string>
<string name="swm">"Start week on Monday"</string>
<string name="Swedish">"Swedish"</string>
<string name="sVwInfo">"Helps you choose what to cook when you can\'t decide"</string>
<string name="sVw">"Shake to view random recipe"</string>
<string name="strAdd">"Start adding your recipes!"</string>
<string name="stp">"Step %1$s"</string>
<string name="stick">"stick"</string>
<string name="stars">"Star rating"</string>
<string name="sru">"Share recipe using..."</string>
<string name="srt">"Sort"</string>
<string name="srpu">"Share recipe photo using..."</string>
<string name="_Sri_Lankan_Z7GfBa">"Sri Lankan"</string>
<string name="Spanish">"Spanish"</string>
<string name="Soups">"Soups"</string>
<string name="snacks">"Snacks"</string>
<string name="small">"small"</string>
<string name="sltd">"selected"</string>
<string name="_Slowest_first_hHjY6">"Slowest first"</string>
<string name="simple">"Simple"</string>
<string name="_Side_dishes_Z1Et4Vg">"Side dishes"</string>
<string name="shr">"Share"</string>
<string name="Settings">"Settings"</string>
<string name="SET">"SET"</string>
<string name="Serving">"Serving"</string>
<string name="ser">"Search"</string>
<string name="selRec">"Select recipe"</string>
<string name="Seafood">"Seafood"</string>
<string name="Scottish">"Scottish"</string>
<string name="Sauces">"Sauces"</string>
<string name="Salads">"Salads"</string>
<string name="Russian">"Russian"</string>
<string name="rst">"RESTART"</string>
<string name="rp">"Remove photo"</string>
<string name="Roll">"Roll"</string>
<string name="rmYUInfo">"You are about to remove %1$s from the yield unit list"</string>
<string name="rmUInfo">"You are about to remove %1$s from the unit list"</string>
<string name="rmN">"Note removed"</string>
<string name="rmIns">"Instruction removed"</string>
<string name="rmIng">"Ingredient removed"</string>
<string name="rmCuiInfo">"You are about to remove %1$s from the cuisine list"</string>
<string name="rmCmb">"Combination removed"</string>
<string name="rmCatInfo">"You are about to remove %1$s from the category list"</string>
<string name="Rice">"Rice"</string>
<string name="restYUL">"Reset yield unit list"</string>
<string name="restUL">"Reset unit list"</string>
<string name="restInfo">"Resetting a list will delete user-created entries and restore default entries. Existing recipes will not be affected."</string>
<string name="restDone">"Reset done"</string>
<string name="restCuiL">"Reset cuisine list"</string>
<string name="restCatL">"Reset category list"</string>
<string name="rest">"Reset"</string>
<string name="resNF">"Recipe not found"</string>
<string name="req">"Required %1$s"</string>
<string name="recU">"Updated:"</string>
<string name="recTitle">"My Healthy Recipe"</string>
<string name="recs">"recipes"</string>
<string name="recRm">"Recipe removed"</string>
<string name="recPic">"Recipe photo"</string>
<string name="recListEmp">"Nothing here! Add some recipes and try again"</string>
<string name="recI">"Imported:"</string>
<string name="recF">"recipes found"</string>
<string name="recE">"Already exist:"</string>
<string name="rec">"Recipe"</string>
<string name="rBtn">"REMOVE"</string>
<string name="Rating">"Rating"</string>
<string name="_Quickest_first_Z1CpP7N">"Quickest first"</string>
<string name="qt">"qt"</string>
<string name="pt">"pt"</string>
<string name="priv">"Privacy policy"</string>
<string name="prepT">"Preparation time"</string>
<string name="Pound">"Pound"</string>
<string name="Poultry">"Poultry"</string>
<string name="Portuguese">"Portuguese"</string>
<string name="plsAdd">"Use the + button to add one"</string>
<string name="planner">"Meal Planner"</string>
<string name="pinch">"pinch"</string>
<string name="Piece">"Piece"</string>
<string name="piece">"piece"</string>
<string name="pht">"Recipe photo"</string>
<string name="photogrid">"Photo Grid"</string>
<string name="Patty">"Patty"</string>
<string name="Pasta">"Pasta"</string>
<string name="oz">"oz"</string>
<string name="Ounce">"Ounce"</string>
<string name="opts">"Options"</string>
<string name="_Oldest_first_Z6cq4h">"Oldest first"</string>
<string name="OK">"OK"</string>
<string name="nwYiU">"New yield unit"</string>
<string name="nwCat">"New category"</string>
<string name="nos">"Notes"</string>
<string name="noRecsInL">"None of the recipes here matches your search"</string>
<string name="noRecs">"No recipes match your search"</string>
<string name="Noodles">"Noodles"</string>
<string name="noFavs">"No favourites yet"</string>
<string name="noAccSensor">"Accelerometer sensor is either disabled or is not working"</string>
<string name="no">"Note"</string>
<string name="nNBtn">"NOT NOW"</string>
<string name="nLangInfo">"Restart EnRecipes to use the new language"</string>
<string name="Nigerian">"Nigerian"</string>
<string name="newUnit">"New unit"</string>
<string name="newRec">"New recipe"</string>
<string name="_Newest_first_2Sb3c">"Newest first"</string>
<string name="newCui">"New cuisine"</string>
<string name="Moderate">"Moderate"</string>
<string name="ml">"ml"</string>
<string name="minimal">"Minimal"</string>
<string name="min">"min"</string>
<string name="Millilitre">"Millilitre"</string>
<string name="mg">"mg"</string>
<string name="Mexican">"Mexican"</string>
<string name="medium">"medium"</string>
<string name="Meat">"Meat"</string>
<string name="_Main_dishes_u6RGQ">"Main dishes"</string>
<string name="mAgo">"%1$s months ago"</string>
<string name="lunch">"Lunch"</string>
<string name="ltAgo">"a long time ago"</string>
<string name="Loaf">"Loaf"</string>
<string name="Litre">"Litre"</string>
<string name="listVM">"List view mode"</string>
<string name="Light">"Light"</string>
<string name="leaf">"leaf"</string>
<string name="lb">"lb"</string>
<string name="_Last_updated_Z2gEbLD">"Last updated"</string>
<string name="large">"large"</string>
<string name="lang">"Language"</string>
<string name="l">"l"</string>
<string name="Korean">"Korean"</string>
<string name="Kilogram">"Kilogram"</string>
<string name="kg">"kg"</string>
<string name="Kenyan">"Kenyan"</string>
<string name="kEdit">"KEEP EDITING"</string>
<string name="joinTG">"Join the Telegram group"</string>
<string name="Jewish">"Jewish"</string>
<string name="Japanese">"Japanese"</string>
<string name="Jamaican">"Jamaican"</string>
<string name="Italian">"Italian"</string>
<string name="it">"Item %1$s"</string>
<string name="Irish">"Irish"</string>
<string name="invFile">"Invalid file"</string>
<string name="intf">"Interface"</string>
<string name="inss">"Instructions"</string>
<string name="ings">"Ingredients"</string>
<string name="Indian">"Indian"</string>
<string name="in">"in"</string>
<string name="impSuc">"Import success"</string>
<string name="impip">"Import in progress"</string>
<string name="impInfo">"Supports full backups exported by this app"</string>
<string name="impFail">"Import failed"</string>
<string name="impBu">"Import data"</string>
<string name="hr">"hr"</string>
<string name="Healthy">"Healthy"</string>
<string name="guide">"User guide"</string>
<string name="grocery">"Grocery List"</string>
<string name="grid">"Grid"</string>
<string name="Greek">"Greek"</string>
<string name="Gram">"Gram"</string>
<string name="gh">"View on GitHub"</string>
<string name="German">"German"</string>
<string name="Gallon">"Gallon"</string>
<string name="gal">"gal"</string>
<string name="g">"g"</string>
<string name="fsList">"Your favourite recipes are listed here"</string>
<string name="French">"French"</string>
<string name="_Fluid_Ounce_bd10L">"Fluid Ounce"</string>
<string name="fltr">"Filter"</string>
<string name="_fl_oz_72kqu">"fl oz"</string>
<string name="_Filtered_recipes_Z1alhhu">"Filtered recipes"</string>
<string name="Filipino">"Filipino"</string>
<string name="favourites">"Favourites"</string>
<string name="expSuc">"Export success"</string>
<string name="expip">"Export in progress"</string>
<string name="expBu">"Export full backup"</string>
<string name="EnRecipes">"EnRecipes"</string>
<string name="English">"English"</string>
<string name="Egyptian">"Egyptian"</string>
<string name="editRec">"Edit recipe"</string>
<string name="Easy">"Easy"</string>
<string name="dsp">"dstspn"</string>
<string name="drop">"drop"</string>
<string name="dozen">"dozen"</string>
<string name="donate">"Donate"</string>
<string name="disc">"This recipe has unsaved changes. What would you like to do?"</string>
<string name="disBtn">"DISCARD"</string>
<string name="dinner">"Dinner"</string>
<string name="_Difficulty_level_cSL5d">"Difficulty level"</string>
<string name="detailed">"Detailed"</string>
<string name="Desserts">"Desserts"</string>
<string name="delRecsInfo">"You are about to permanently delete %1$s"</string>
<string name="delRecInfo">"You are about to permanently delete the recipe %1$s"</string>
<string name="dBtn">"DELETE"</string>
<string name="db">"Database"</string>
<string name="Dark">"Dark"</string>
<string name="Danish">"Danish"</string>
<string name="dAgo">"%1$s days ago"</string>
<string name="Cup">"Cup"</string>
<string name="cup">"cup"</string>
<string name="cui">"Cuisine"</string>
<string name="Created">"Created"</string>
<string name="cPic">"Crop photo"</string>
<string name="cookT">"Cooking time"</string>
<string name="conf">"Confirm"</string>
<string name="conBtn">"CONTINUE"</string>
<string name="cmbs">"Combinations"</string>
<string name="cm">"cm"</string>
<string name="clove">"clove"</string>
<string name="Chinese">"Chinese"</string>
<string name="Challenging">"Challenging"</string>
<string name="cBtn">"CANCEL"</string>
<string name="cat">"Category"</string>
<string name="buMod">"The backup file was modified elsewhere"</string>
<string name="buInfo">"Generates a ZIP file containing all your data that can be imported back"</string>
<string name="buInc">"Malformed or corrupt backup file"</string>
<string name="buFol">"Backup folder"</string>
<string name="buEmp">"The backup file is empty"</string>
<string name="British">"British"</string>
<string name="breakfast">"Breakfast"</string>
<string name="Breads">"Breads"</string>
<string name="Brazilian">"Brazilian"</string>
<string name="Black">"Black"</string>
<string name="Beverages">"Beverages"</string>
<string name="Barbecue">"Barbecue"</string>
<string name="_app_name_1k3Sbz">"EnRecipes"</string>
<string name="app_name">"EnRecipes"</string>
<string name="title_activity_kimera">"EnRecipes"</string>
<string name="allTs">"All Tags"</string>
<string name="allCuis">"All Cuisines"</string>
</resources>

View file

@ -322,6 +322,9 @@
<string name="aBtn">"AÑADIR"</string> <string name="aBtn">"AÑADIR"</string>
<string name="About">"Acerca de"</string> <string name="About">"Acerca de"</string>
<string name="aap">"Adjuntar una foto"</string> <string name="aap">"Adjuntar una foto"</string>
<string name="sectRm">"Section removed"</string>
<string name="addSectBtn">"ADD SECTION"</string>
<string name="sect">"Section %1$s"</string>
<string name="esgbInfo">"Disable this option if you have any navigation issues"</string> <string name="esgbInfo">"Disable this option if you have any navigation issues"</string>
<string name="esgb">"Edge swipe to go back"</string> <string name="esgb">"Edge swipe to go back"</string>
<string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string> <string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string>

View file

@ -328,4 +328,7 @@
<string name="aBtn">"AJOUTER"</string> <string name="aBtn">"AJOUTER"</string>
<string name="About">"À propos"</string> <string name="About">"À propos"</string>
<string name="aap">"Joindre une photo"</string> <string name="aap">"Joindre une photo"</string>
<string name="sectRm">"Section removed"</string>
<string name="addSectBtn">"ADD SECTION"</string>
<string name="sect">"Section %1$s"</string>
</resources> </resources>

View file

@ -328,4 +328,7 @@
<string name="aBtn">"AJOUTER"</string> <string name="aBtn">"AJOUTER"</string>
<string name="About">"À propos"</string> <string name="About">"À propos"</string>
<string name="aap">"Joindre une photo"</string> <string name="aap">"Joindre une photo"</string>
<string name="sectRm">"Section removed"</string>
<string name="addSectBtn">"ADD SECTION"</string>
<string name="sect">"Section %1$s"</string>
</resources> </resources>

View file

@ -328,4 +328,7 @@
<string name="aBtn">"AJOUTER"</string> <string name="aBtn">"AJOUTER"</string>
<string name="About">"À propos"</string> <string name="About">"À propos"</string>
<string name="aap">"Joindre une photo"</string> <string name="aap">"Joindre une photo"</string>
<string name="sectRm">"Section removed"</string>
<string name="addSectBtn">"ADD SECTION"</string>
<string name="sect">"Section %1$s"</string>
</resources> </resources>

View file

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="sect">"Section %1$s"</string>
<string name="addSectBtn">"AJOUTER UNE SECTION"</string>
<string name="sectRm">"Section retiré"</string>
<string name="ksavrInfo">"Empêche lécran de séteindre durant la visualisation dune recette"</string> <string name="ksavrInfo">"Empêche lécran de séteindre durant la visualisation dune recette"</string>
<string name="esgb">"Balayer le bord pour revenir en arrière"</string> <string name="esgb">"Balayer le bord pour revenir en arrière"</string>
<string name="esgbInfo">"Désactivez cette option si vous avez des problèmes de navigation"</string> <string name="esgbInfo">"Désactivez cette option si vous avez des problèmes de navigation"</string>
@ -91,7 +94,7 @@
<string name="sVwInfo">"Vous aide à choisir quoi cuisiner quand vous ne pouvez pas vous décider"</string> <string name="sVwInfo">"Vous aide à choisir quoi cuisiner quand vous ne pouvez pas vous décider"</string>
<string name="sVw">"Secouez pour voir une recette au hasard"</string> <string name="sVw">"Secouez pour voir une recette au hasard"</string>
<string name="strAdd">"Commencez à ajouter vos recettes !"</string> <string name="strAdd">"Commencez à ajouter vos recettes !"</string>
<string name="stp">"Étape"</string> <string name="stp">"Étape %1$s"</string>
<string name="stick">"barre"</string> <string name="stick">"barre"</string>
<string name="stars">"Évaluation étoilée"</string> <string name="stars">"Évaluation étoilée"</string>
<string name="sru">"Partager la recette en utilisant…"</string> <string name="sru">"Partager la recette en utilisant…"</string>
@ -221,7 +224,7 @@
<string name="Japanese">"japonaise"</string> <string name="Japanese">"japonaise"</string>
<string name="Jamaican">"jamaïcaine"</string> <string name="Jamaican">"jamaïcaine"</string>
<string name="Italian">"italienne"</string> <string name="Italian">"italienne"</string>
<string name="it">"Élément"</string> <string name="it">"Élément %1$s"</string>
<string name="Irish">"irlandaise"</string> <string name="Irish">"irlandaise"</string>
<string name="invFile">"Fichier invalide"</string> <string name="invFile">"Fichier invalide"</string>
<string name="intf">"Interface"</string> <string name="intf">"Interface"</string>

View file

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="sect">"भाग %1$s"</string>
<string name="addSectBtn">"धारा जोड़ें"</string>
<string name="sectRm">"धारा हटा दिया गया"</string>
<string name="mnth">"महीना"</string> <string name="mnth">"महीना"</string>
<string name="wk">"सप्ताह"</string> <string name="wk">"सप्ताह"</string>
<string name="d">"दिन"</string> <string name="d">"दिन"</string>
@ -91,7 +94,7 @@
<string name="sVwInfo">"जब आप तय नहीं कर सकते तो आपको क्या खाना बनाना है, यह चुनने में मदद करता है"</string> <string name="sVwInfo">"जब आप तय नहीं कर सकते तो आपको क्या खाना बनाना है, यह चुनने में मदद करता है"</string>
<string name="sVw">"यादृच्छिक नुस्खा देखने के लिए हिलाएं"</string> <string name="sVw">"यादृच्छिक नुस्खा देखने के लिए हिलाएं"</string>
<string name="strAdd">"अपने व्यंजनों को जोड़ना शुरू करें!"</string> <string name="strAdd">"अपने व्यंजनों को जोड़ना शुरू करें!"</string>
<string name="stp">"कदम"</string> <string name="stp">"कदम %1$s"</string>
<string name="stick">"लाठी"</string> <string name="stick">"लाठी"</string>
<string name="stars">"स्टार रेटिंग"</string> <string name="stars">"स्टार रेटिंग"</string>
<string name="sru">"शेयर रेसिपी..."</string> <string name="sru">"शेयर रेसिपी..."</string>
@ -221,7 +224,7 @@
<string name="Japanese">"जापानी"</string> <string name="Japanese">"जापानी"</string>
<string name="Jamaican">"जमैका"</string> <string name="Jamaican">"जमैका"</string>
<string name="Italian">"इतालवी"</string> <string name="Italian">"इतालवी"</string>
<string name="it">"मद"</string> <string name="it">"मद %1$s"</string>
<string name="Irish">"आयरिश"</string> <string name="Irish">"आयरिश"</string>
<string name="invFile">"अवैध फाइल"</string> <string name="invFile">"अवैध फाइल"</string>
<string name="intf">"इंटरफेस"</string> <string name="intf">"इंटरफेस"</string>

View file

@ -296,6 +296,9 @@
<string name="aBtn">"Tambah"</string> <string name="aBtn">"Tambah"</string>
<string name="About">"Tentang"</string> <string name="About">"Tentang"</string>
<string name="aap">"Lampirkan foto"</string> <string name="aap">"Lampirkan foto"</string>
<string name="sectRm">"Section removed"</string>
<string name="addSectBtn">"ADD SECTION"</string>
<string name="sect">"Section %1$s"</string>
<string name="esgbInfo">"Disable this option if you have any navigation issues"</string> <string name="esgbInfo">"Disable this option if you have any navigation issues"</string>
<string name="esgb">"Edge swipe to go back"</string> <string name="esgb">"Edge swipe to go back"</string>
<string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string> <string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string>

View file

@ -328,4 +328,7 @@
<string name="aBtn">"AGGIUNGI"</string> <string name="aBtn">"AGGIUNGI"</string>
<string name="About">"Informazioni"</string> <string name="About">"Informazioni"</string>
<string name="aap">"Allega una foto"</string> <string name="aap">"Allega una foto"</string>
<string name="sectRm">"Section removed"</string>
<string name="addSectBtn">"ADD SECTION"</string>
<string name="sect">"Section %1$s"</string>
</resources> </resources>

View file

@ -275,6 +275,9 @@
<string name="aBtn">"追加"</string> <string name="aBtn">"追加"</string>
<string name="About">"アプリについて"</string> <string name="About">"アプリについて"</string>
<string name="aap">"写真を添付"</string> <string name="aap">"写真を添付"</string>
<string name="sectRm">"Section removed"</string>
<string name="addSectBtn">"ADD SECTION"</string>
<string name="sect">"Section %1$s"</string>
<string name="esgbInfo">"Disable this option if you have any navigation issues"</string> <string name="esgbInfo">"Disable this option if you have any navigation issues"</string>
<string name="esgb">"Edge swipe to go back"</string> <string name="esgb">"Edge swipe to go back"</string>
<string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string> <string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string>

View file

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="sect">"ഭാഗം %1$s"</string>
<string name="sectRm">"വിഭാഗം നീക്കംചെയ്തു"</string>
<string name="addSectBtn">"വിഭാഗം ചേർക്കുക"</string>
<string name="sec">"സെക്കൻഡ്"</string> <string name="sec">"സെക്കൻഡ്"</string>
<string name="timer">"പാചക ടൈമർ"</string> <string name="timer">"പാചക ടൈമർ"</string>
<string name="ntmr">"പുതിയ ടൈമർ"</string> <string name="ntmr">"പുതിയ ടൈമർ"</string>
@ -91,7 +94,7 @@
<string name="sVwInfo">"നിങ്ങൾക്ക് തീരുമാനിക്കാൻ കഴിയാത്തപ്പോൾ എന്താണ് പാചകം ചെയ്യേണ്ടതെന്ന് തിരഞ്ഞെടുക്കാൻ നിങ്ങളെ സഹായിക്കുന്നു"</string> <string name="sVwInfo">"നിങ്ങൾക്ക് തീരുമാനിക്കാൻ കഴിയാത്തപ്പോൾ എന്താണ് പാചകം ചെയ്യേണ്ടതെന്ന് തിരഞ്ഞെടുക്കാൻ നിങ്ങളെ സഹായിക്കുന്നു"</string>
<string name="sVw">"ക്രമരഹിതമായ പാചകക്കുറിപ്പ് കാണാൻ കുലുക്കുക"</string> <string name="sVw">"ക്രമരഹിതമായ പാചകക്കുറിപ്പ് കാണാൻ കുലുക്കുക"</string>
<string name="strAdd">"നിങ്ങളുടെ പാചകക്കുറിപ്പുകൾ ചേർക്കാൻ ആരംഭിക്കുക!"</string> <string name="strAdd">"നിങ്ങളുടെ പാചകക്കുറിപ്പുകൾ ചേർക്കാൻ ആരംഭിക്കുക!"</string>
<string name="stp">"ഘട്ടം"</string> <string name="stp">"ഘട്ടം %1$s"</string>
<string name="stick">"വടി"</string> <string name="stick">"വടി"</string>
<string name="stars">"നക്ഷത്ര റേറ്റിംഗ്"</string> <string name="stars">"നക്ഷത്ര റേറ്റിംഗ്"</string>
<string name="sru">"പാചകക്കുറിപ്പ് പങ്കിടുക..."</string> <string name="sru">"പാചകക്കുറിപ്പ് പങ്കിടുക..."</string>
@ -221,7 +224,7 @@
<string name="Japanese">"ജാപ്പനീസ്"</string> <string name="Japanese">"ജാപ്പനീസ്"</string>
<string name="Jamaican">"ജമൈക്കൻ"</string> <string name="Jamaican">"ജമൈക്കൻ"</string>
<string name="Italian">"ഇറ്റാലിയൻ"</string> <string name="Italian">"ഇറ്റാലിയൻ"</string>
<string name="it">"ഇനം"</string> <string name="it">"ഇനം %1$s"</string>
<string name="Irish">"ഐറിഷ്"</string> <string name="Irish">"ഐറിഷ്"</string>
<string name="invFile">"അസാധുവായ ഫയൽ"</string> <string name="invFile">"അസാധുവായ ഫയൽ"</string>
<string name="intf">"ഇന്റർഫേസ്"</string> <string name="intf">"ഇന്റർഫേസ്"</string>

View file

@ -288,6 +288,9 @@
<string name="aBtn">"Legg til"</string> <string name="aBtn">"Legg til"</string>
<string name="About">"Om"</string> <string name="About">"Om"</string>
<string name="aap">"Legg ved et bilde"</string> <string name="aap">"Legg ved et bilde"</string>
<string name="sectRm">"Section removed"</string>
<string name="addSectBtn">"ADD SECTION"</string>
<string name="sect">"Section %1$s"</string>
<string name="esgbInfo">"Disable this option if you have any navigation issues"</string> <string name="esgbInfo">"Disable this option if you have any navigation issues"</string>
<string name="esgb">"Edge swipe to go back"</string> <string name="esgb">"Edge swipe to go back"</string>
<string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string> <string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string>

View file

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="sectRm">"De sectie is verwijderd"</string>
<string name="sect">"Sectie %1$s"</string>
<string name="addSectBtn">"SECTIE TOEVOEGEN"</string>
<string name="ksavr">"Scherm niet uitschakelen tijdens bekijken van recept"</string> <string name="ksavr">"Scherm niet uitschakelen tijdens bekijken van recept"</string>
<string name="ksavrInfo">"Voorkomt dat het scherm wordt uitgeschakeld tijdens het bekijken van een recept"</string> <string name="ksavrInfo">"Voorkomt dat het scherm wordt uitgeschakeld tijdens het bekijken van een recept"</string>
<string name="esgb">"Vegen vanaf schermrand om terug te gaan"</string> <string name="esgb">"Vegen vanaf schermrand om terug te gaan"</string>
@ -91,7 +94,7 @@
<string name="sVwInfo">"Handig voor als je even niet weet wat je wilt maken"</string> <string name="sVwInfo">"Handig voor als je even niet weet wat je wilt maken"</string>
<string name="sVw">"Schudden om willekeurig recept te tonen"</string> <string name="sVw">"Schudden om willekeurig recept te tonen"</string>
<string name="strAdd">"Voeg je recepten toe!"</string> <string name="strAdd">"Voeg je recepten toe!"</string>
<string name="stp">"Stap"</string> <string name="stp">"Stap %1$s"</string>
<string name="stick">"stokje"</string> <string name="stick">"stokje"</string>
<string name="stars">"Waardering"</string> <string name="stars">"Waardering"</string>
<string name="sru">"Recept delen via…"</string> <string name="sru">"Recept delen via…"</string>
@ -221,7 +224,7 @@
<string name="Japanese">"Japans"</string> <string name="Japanese">"Japans"</string>
<string name="Jamaican">"Jamaicaans"</string> <string name="Jamaican">"Jamaicaans"</string>
<string name="Italian">"Italiaans"</string> <string name="Italian">"Italiaans"</string>
<string name="it">"Item"</string> <string name="it">"Item %1$s"</string>
<string name="Irish">"Iers"</string> <string name="Irish">"Iers"</string>
<string name="invFile">"Ongeldig bestand"</string> <string name="invFile">"Ongeldig bestand"</string>
<string name="intf">"Uiterlijk"</string> <string name="intf">"Uiterlijk"</string>

View file

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="ksavr">"Manter tela ligada ao ver receitas"</string>
<string name="add">"Adicionar"</string> <string name="add">"Adicionar"</string>
<string name="rstBtn">"REINICIAR"</string> <string name="rstBtn">"REINICIAR"</string>
<string name="gtD">"Ir à data"</string> <string name="gtD">"Ir à data"</string>
@ -324,8 +325,10 @@
<string name="aD">"Tudo feito!"</string> <string name="aD">"Tudo feito!"</string>
<string name="aBtn">"ADICIONAR"</string> <string name="aBtn">"ADICIONAR"</string>
<string name="About">"Sobre"</string> <string name="About">"Sobre"</string>
<string name="sectRm">"Section removed"</string>
<string name="addSectBtn">"ADD SECTION"</string>
<string name="sect">"Section %1$s"</string>
<string name="esgbInfo">"Disable this option if you have any navigation issues"</string> <string name="esgbInfo">"Disable this option if you have any navigation issues"</string>
<string name="esgb">"Edge swipe to go back"</string> <string name="esgb">"Edge swipe to go back"</string>
<string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string> <string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string>
<string name="ksavr">"Keep screen awake while viewing recipe"</string>
</resources> </resources>

View file

@ -1,5 +1,11 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="sect">"Secção %1$s"</string>
<string name="addSectBtn">"ADICIONAR SECÇÃO"</string>
<string name="ksavr">"Manter ecrã ligado ao ver receitas"</string>
<string name="ksavrInfo">"Impede que o ecrã desligue ao ver uma receita"</string>
<string name="esgbInfo">"Desative esta opção se tiver problemas ao navegar"</string>
<string name="esgb">"Deslizar para a borda para voltar"</string>
<string name="add">"Adicionar"</string> <string name="add">"Adicionar"</string>
<string name="rstBtn">"REINICIAR"</string> <string name="rstBtn">"REINICIAR"</string>
<string name="oAP">"%1$s a decorrer, %2$s em pausa"</string> <string name="oAP">"%1$s a decorrer, %2$s em pausa"</string>
@ -82,7 +88,7 @@
<string name="inss">"Instruções"</string> <string name="inss">"Instruções"</string>
<string name="intf">"Interface"</string> <string name="intf">"Interface"</string>
<string name="invFile">"Ficheiro inválido"</string> <string name="invFile">"Ficheiro inválido"</string>
<string name="it">"Item"</string> <string name="it">"Item %1$s"</string>
<string name="joinTG">"Junte-se ao grupo no Telegram"</string> <string name="joinTG">"Junte-se ao grupo no Telegram"</string>
<string name="kEdit">"CONTINUAR A EDITAR"</string> <string name="kEdit">"CONTINUAR A EDITAR"</string>
<string name="lang">"Idioma"</string> <string name="lang">"Idioma"</string>
@ -122,7 +128,7 @@
<string name="srt">"Ordenar"</string> <string name="srt">"Ordenar"</string>
<string name="sru">"Partilhar receita usando..."</string> <string name="sru">"Partilhar receita usando..."</string>
<string name="stars">"Classificação por estrelas"</string> <string name="stars">"Classificação por estrelas"</string>
<string name="stp">"Etapa"</string> <string name="stp">"Etapa %1$s"</string>
<string name="trySer">"PROCURAR EM TODAS AS RECEITAS?"</string> <string name="trySer">"PROCURAR EM TODAS AS RECEITAS?"</string>
<string name="sysDefB">"Padrão do sistema + preto"</string> <string name="sysDefB">"Padrão do sistema + preto"</string>
<string name="rec">"Receita"</string> <string name="rec">"Receita"</string>
@ -324,8 +330,5 @@
<string name="American">"Americana"</string> <string name="American">"Americana"</string>
<string name="About">"Sobre"</string> <string name="About">"Sobre"</string>
<string name="aap">"Anexar uma fotografia"</string> <string name="aap">"Anexar uma fotografia"</string>
<string name="esgbInfo">"Disable this option if you have any navigation issues"</string> <string name="sectRm">"Section removed"</string>
<string name="esgb">"Edge swipe to go back"</string>
<string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string>
<string name="ksavr">"Keep screen awake while viewing recipe"</string>
</resources> </resources>

View file

@ -296,6 +296,9 @@
<string name="aBtn">"ДОБАВИТЬ"</string> <string name="aBtn">"ДОБАВИТЬ"</string>
<string name="About">"О приложении"</string> <string name="About">"О приложении"</string>
<string name="aap">"Прикрепить фото"</string> <string name="aap">"Прикрепить фото"</string>
<string name="sectRm">"Section removed"</string>
<string name="addSectBtn">"ADD SECTION"</string>
<string name="sect">"Section %1$s"</string>
<string name="esgbInfo">"Disable this option if you have any navigation issues"</string> <string name="esgbInfo">"Disable this option if you have any navigation issues"</string>
<string name="esgb">"Edge swipe to go back"</string> <string name="esgb">"Edge swipe to go back"</string>
<string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string> <string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string>

View file

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="sect">"பிரிவு %1$s"</string>
<string name="addSectBtn">"பிரிவைச் சேர்"</string>
<string name="sectRm">"பிரிவு நீக்கப்பட்டது"</string>
<string name="add">"சேர்"</string> <string name="add">"சேர்"</string>
<string name="rstBtn">"மீட்டமை"</string> <string name="rstBtn">"மீட்டமை"</string>
<string name="ksavr">"சமையல் குறிப்பு பார்க்கும் போது திரையை விழித்திரு"</string> <string name="ksavr">"சமையல் குறிப்பு பார்க்கும் போது திரையை விழித்திரு"</string>
@ -52,7 +55,7 @@
<string name="hour">"மணி"</string> <string name="hour">"மணி"</string>
<string name="hours">"மணி"</string> <string name="hours">"மணி"</string>
<string name="seconds">"வினாடிகள்"</string> <string name="seconds">"வினாடிகள்"</string>
<string name="tmrRm">"டைமர் அகற்றப்பட்டது"</string> <string name="tmrRm">"டைமர் நீக்கப்பட்டது"</string>
<string name="notifSetg">"அறிவிப்பு அமைப்புகள்"</string> <string name="notifSetg">"அறிவிப்பு அமைப்புகள்"</string>
<string name="sysDefB">"அமைப்பு இயல்புநிலை + கருப்பு"</string> <string name="sysDefB">"அமைப்பு இயல்புநிலை + கருப்பு"</string>
<string name="buto">"%1$s இல் காப்புப் பிரதி எடுக்கப்பட்டது"</string> <string name="buto">"%1$s இல் காப்புப் பிரதி எடுக்கப்பட்டது"</string>
@ -91,7 +94,7 @@
<string name="sVwInfo">"நீங்கள் தீர்மானிக்க முடியாதபோது என்ன சமைக்கலாம் என்பதைத் தேர்வுசெய்ய உதவும்"</string> <string name="sVwInfo">"நீங்கள் தீர்மானிக்க முடியாதபோது என்ன சமைக்கலாம் என்பதைத் தேர்வுசெய்ய உதவும்"</string>
<string name="sVw">"சாதனத்தை அசைத்து சீரற்ற சமையல் குறிப்பை காண்க"</string> <string name="sVw">"சாதனத்தை அசைத்து சீரற்ற சமையல் குறிப்பை காண்க"</string>
<string name="strAdd">"உங்கள் சமையல் குறிப்புகளைச் சேர்க்கத் தொடங்குங்கள்!"</string> <string name="strAdd">"உங்கள் சமையல் குறிப்புகளைச் சேர்க்கத் தொடங்குங்கள்!"</string>
<string name="stp">"செய்முறை"</string> <string name="stp">"செய்முறை %1$s"</string>
<string name="stick">"குச்சி"</string> <string name="stick">"குச்சி"</string>
<string name="stars">"நட்சத்திர மதிப்பீடு"</string> <string name="stars">"நட்சத்திர மதிப்பீடு"</string>
<string name="sru">"சமையல் குறிப்பை பகிரவும்..."</string> <string name="sru">"சமையல் குறிப்பை பகிரவும்..."</string>
@ -221,7 +224,7 @@
<string name="Japanese">"ஜப்பானிய"</string> <string name="Japanese">"ஜப்பானிய"</string>
<string name="Jamaican">"ஜமைக்கா"</string> <string name="Jamaican">"ஜமைக்கா"</string>
<string name="Italian">"இத்தாலிய"</string> <string name="Italian">"இத்தாலிய"</string>
<string name="it">"பொருள்"</string> <string name="it">"பொருள் %1$s"</string>
<string name="Irish">"ஐரிஷ்"</string> <string name="Irish">"ஐரிஷ்"</string>
<string name="invFile">"தவறான கோப்பு"</string> <string name="invFile">"தவறான கோப்பு"</string>
<string name="intf">"இடைமுகம்"</string> <string name="intf">"இடைமுகம்"</string>

View file

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="sect">"విభాగం %1$s"</string>
<string name="addSectBtn">"విభాగం జోడించండి"</string>
<string name="sectRm">"విభాగం తొలగించబడింది"</string>
<string name="mnth">"నెల"</string> <string name="mnth">"నెల"</string>
<string name="wk">"వారం"</string> <string name="wk">"వారం"</string>
<string name="d">"రోజు"</string> <string name="d">"రోజు"</string>
@ -91,7 +94,7 @@
<string name="sVwInfo">"మీరు నిర్ణయించలేనప్పుడు ఏమి ఉడికించాలో ఎంచుకోవడానికి మీకు సహాయపడుతుంది"</string> <string name="sVwInfo">"మీరు నిర్ణయించలేనప్పుడు ఏమి ఉడికించాలో ఎంచుకోవడానికి మీకు సహాయపడుతుంది"</string>
<string name="sVw">"యాదృచ్ఛిక రెసిపీని చూడటానికి షేక్ చేయండి"</string> <string name="sVw">"యాదృచ్ఛిక రెసిపీని చూడటానికి షేక్ చేయండి"</string>
<string name="strAdd">"మీ వంటకాలను జోడించడం ప్రారంభించండి!"</string> <string name="strAdd">"మీ వంటకాలను జోడించడం ప్రారంభించండి!"</string>
<string name="stp">"దశ"</string> <string name="stp">"దశ %1$s"</string>
<string name="stick">"కర్ర"</string> <string name="stick">"కర్ర"</string>
<string name="stars">"స్టార్ రేటింగ్"</string> <string name="stars">"స్టార్ రేటింగ్"</string>
<string name="sru">"రెసిపీని భాగస్వామ్యం చేయండి ..."</string> <string name="sru">"రెసిపీని భాగస్వామ్యం చేయండి ..."</string>
@ -221,7 +224,7 @@
<string name="Japanese">"జపనీస్"</string> <string name="Japanese">"జపనీస్"</string>
<string name="Jamaican">"జమైకా"</string> <string name="Jamaican">"జమైకా"</string>
<string name="Italian">"ఇటాలియన్"</string> <string name="Italian">"ఇటాలియన్"</string>
<string name="it">"అంశం"</string> <string name="it">"అంశం %1$s"</string>
<string name="Irish">"ఐరిష్"</string> <string name="Irish">"ఐరిష్"</string>
<string name="invFile">"చెల్లుబాటులోలేని ఫైలు"</string> <string name="invFile">"చెల్లుబాటులోలేని ఫైలు"</string>
<string name="intf">"ఇంటర్ఫేస్"</string> <string name="intf">"ఇంటర్ఫేస్"</string>

View file

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="sectRm">"Section removed"</string>
<string name="addSectBtn">"ADD SECTION"</string>
<string name="sect">"Section %1$s"</string>
<string name="esgbInfo">"Disable this option if you have any navigation issues"</string> <string name="esgbInfo">"Disable this option if you have any navigation issues"</string>
<string name="esgb">"Edge swipe to go back"</string> <string name="esgb">"Edge swipe to go back"</string>
<string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string> <string name="ksavrInfo">"Prevents the screen from turning off while viewing a recipe"</string>
@ -90,7 +93,7 @@
<string name="sVwInfo">"Helps you choose what to cook when you can\'t decide"</string> <string name="sVwInfo">"Helps you choose what to cook when you can\'t decide"</string>
<string name="sVw">"Shake to view random recipe"</string> <string name="sVw">"Shake to view random recipe"</string>
<string name="strAdd">"Start adding your recipes!"</string> <string name="strAdd">"Start adding your recipes!"</string>
<string name="stp">"Step"</string> <string name="stp">"Step %1$s"</string>
<string name="stick">"stick"</string> <string name="stick">"stick"</string>
<string name="stars">"Star rating"</string> <string name="stars">"Star rating"</string>
<string name="sru">"Share recipe using..."</string> <string name="sru">"Share recipe using..."</string>
@ -221,7 +224,7 @@
<string name="Japanese">"Japanese"</string> <string name="Japanese">"Japanese"</string>
<string name="Jamaican">"Jamaican"</string> <string name="Jamaican">"Jamaican"</string>
<string name="Italian">"Italian"</string> <string name="Italian">"Italian"</string>
<string name="it">"Item"</string> <string name="it">"Item %1$s"</string>
<string name="Irish">"Irish"</string> <string name="Irish">"Irish"</string>
<string name="invFile">"Invalid file"</string> <string name="invFile">"Invalid file"</string>
<string name="intf">"Interface"</string> <string name="intf">"Interface"</string>

View file

@ -79,8 +79,6 @@ export function getRecipePhoto() {
export function copyPhotoToCache(src: string, dest: string) { export function copyPhotoToCache(src: string, dest: string) {
const ContentResolver = Application.android.nativeApp.getContentResolver() const ContentResolver = Application.android.nativeApp.getContentResolver()
const isURI = src.includes('content://') const isURI = src.includes('content://')
console.log(src, dest, isURI)
return new Promise((resolve) => { return new Promise((resolve) => {
if (isURI) { if (isURI) {
const uri = new android.net.Uri.parse(src) const uri = new android.net.Uri.parse(src)

View file

@ -575,6 +575,40 @@ export default new Vuex.Store({
f.match(/tags|ingredients|instructions|combinations|notes/) && f.match(/tags|ingredients|instructions|combinations|notes/) &&
(e[f] = JSON.parse(e[f])) (e[f] = JSON.parse(e[f]))
) )
if (
e.ingredients.length &&
!e.ingredients[0].hasOwnProperty('type')
) {
e.ingredients = e.ingredients.map((e) => {
return {
id: utils.getRandomID(1),
type: 1,
quantity: e.quantity,
unit: e.unit,
value: e.item,
}
})
}
if (
e.instructions.length &&
!e.instructions[0].hasOwnProperty('type')
) {
e.instructions = e.instructions.map((e) => {
return {
id: utils.getRandomID(1),
type: 1,
value: e,
}
})
}
if (e.notes.length && !e.notes[0].hasOwnProperty('value')) {
e.notes = e.notes.map((e) => {
return {
id: utils.getRandomID(1),
value: e,
}
})
}
state.recipes.push(e) state.recipes.push(e)
}) })
}) })
@ -610,6 +644,40 @@ export default new Vuex.Store({
function getTime(d) { function getTime(d) {
return new Date(d).getTime() return new Date(d).getTime()
} }
if (
r.ingredients.length &&
!r.ingredients[0].hasOwnProperty('type')
) {
r.ingredients = r.ingredients.map((e) => {
return {
id: utils.getRandomID(1),
type: 1,
quantity: e.quantity,
unit: e.unit,
value: e.item,
}
})
}
if (
r.instructions.length &&
!r.instructions[0].hasOwnProperty('type')
) {
r.instructions = r.instructions.map((e) => {
return {
id: utils.getRandomID(1),
type: 1,
value: e,
}
})
}
if (r.notes.length && !r.notes[0].hasOwnProperty('type')) {
r.notes = r.notes.map((e) => {
return {
id: utils.getRandomID(1),
value: e,
}
})
}
r.lastTried = getTime(r.lastTried) r.lastTried = getTime(r.lastTried)
r.lastModified = getTime(r.lastModified) r.lastModified = getTime(r.lastModified)
r.created = getTime(r.created) r.created = getTime(r.created)
@ -718,7 +786,48 @@ export default new Vuex.Store({
let localRecipesIDs: string[], partition: any[] let localRecipesIDs: string[], partition: any[]
let imported = 0 let imported = 0
let updated = 0 let updated = 0
function getUpdatedData(data: any[]) {
return data.map((recipe) => {
let r = Object.assign({}, recipe)
if (
r.ingredients.length &&
!r.ingredients[0].hasOwnProperty('type')
) {
r.ingredients = r.ingredients.map((e) => {
return {
id: utils.getRandomID(1),
type: 1,
quantity: e.quantity,
unit: e.unit,
value: e.item,
}
})
}
if (
r.instructions.length &&
!r.instructions[0].hasOwnProperty('type')
) {
r.instructions = r.instructions.map((e) => {
return {
id: utils.getRandomID(1),
type: 1,
value: e,
}
})
}
if (r.notes.length && !r.notes[0].hasOwnProperty('value')) {
r.notes = r.notes.map((e) => {
return {
id: utils.getRandomID(1),
value: e,
}
})
}
return r
})
}
function createDocuments(data: any[]) { function createDocuments(data: any[]) {
data = getUpdatedData(data)
data.forEach((r) => { data.forEach((r) => {
const cols = Object.keys(r).join(', ') const cols = Object.keys(r).join(', ')
const placeholder = Object.keys(r) const placeholder = Object.keys(r)
@ -738,6 +847,7 @@ export default new Vuex.Store({
}) })
} }
function updateDocuments(data: any[]) { function updateDocuments(data: any[]) {
data = getUpdatedData(data)
data.forEach((r) => { data.forEach((r) => {
let recipeIndex = state.recipes let recipeIndex = state.recipes
.map((e, i) => { .map((e, i) => {

210
package-lock.json generated
View file

@ -55,9 +55,9 @@
} }
}, },
"node_modules/@babel/compat-data": { "node_modules/@babel/compat-data": {
"version": "7.14.5", "version": "7.14.7",
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.5.tgz", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz",
"integrity": "sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w==", "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@ -182,9 +182,9 @@
} }
}, },
"node_modules/@babel/helper-member-expression-to-functions": { "node_modules/@babel/helper-member-expression-to-functions": {
"version": "7.14.5", "version": "7.14.7",
"resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.5.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz",
"integrity": "sha512-UxUeEYPrqH1Q/k0yRku1JE7dyfyehNwT6SVkMHvYvPDv4+uu627VXBckVj891BO8ruKBkiDoGnZf4qPDD8abDQ==", "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@babel/types": "^7.14.5" "@babel/types": "^7.14.5"
@ -384,9 +384,9 @@
} }
}, },
"node_modules/@babel/parser": { "node_modules/@babel/parser": {
"version": "7.14.6", "version": "7.14.7",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.6.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz",
"integrity": "sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==", "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==",
"dev": true, "dev": true,
"bin": { "bin": {
"parser": "bin/babel-parser.js" "parser": "bin/babel-parser.js"
@ -410,9 +410,9 @@
} }
}, },
"node_modules/@babel/traverse": { "node_modules/@babel/traverse": {
"version": "7.14.5", "version": "7.14.7",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.5.tgz", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz",
"integrity": "sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==", "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@babel/code-frame": "^7.14.5", "@babel/code-frame": "^7.14.5",
@ -420,7 +420,7 @@
"@babel/helper-function-name": "^7.14.5", "@babel/helper-function-name": "^7.14.5",
"@babel/helper-hoist-variables": "^7.14.5", "@babel/helper-hoist-variables": "^7.14.5",
"@babel/helper-split-export-declaration": "^7.14.5", "@babel/helper-split-export-declaration": "^7.14.5",
"@babel/parser": "^7.14.5", "@babel/parser": "^7.14.7",
"@babel/types": "^7.14.5", "@babel/types": "^7.14.5",
"debug": "^4.1.0", "debug": "^4.1.0",
"globals": "^11.1.0" "globals": "^11.1.0"
@ -697,9 +697,9 @@
"dev": true "dev": true
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "15.12.4", "version": "15.12.5",
"resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.4.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.5.tgz",
"integrity": "sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA==", "integrity": "sha512-se3yX7UHv5Bscf8f1ERKvQOD6sTyycH3hdaoozvaLxgUiY5lIGEeH37AD0G0Qi9kPqihPn0HOfd2yaIEN9VwEg==",
"dev": true "dev": true
}, },
"node_modules/@types/parse-json": { "node_modules/@types/parse-json": {
@ -1023,9 +1023,9 @@
"dev": true "dev": true
}, },
"node_modules/acorn": { "node_modules/acorn": {
"version": "8.4.0", "version": "8.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.0.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz",
"integrity": "sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w==", "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==",
"dev": true, "dev": true,
"bin": { "bin": {
"acorn": "bin/acorn" "acorn": "bin/acorn"
@ -1411,9 +1411,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001239", "version": "1.0.30001240",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001239.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001240.tgz",
"integrity": "sha512-cyBkXJDMeI4wthy8xJ2FvDU6+0dtcZSJW3voUF8+e9f1bBeuvyZfc3PNbkOETyhbR+dGCPzn9E7MA3iwzusOhQ==", "integrity": "sha512-nb8mDzfMdxBDN7ZKx8chWafAdBp5DAAlpWvNyUGe5tcDWd838zpzDN3Rah9cjCqhfOKkrvx40G2SDtP0qiWX/w==",
"dev": true, "dev": true,
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
@ -1590,9 +1590,9 @@
} }
}, },
"node_modules/copy-webpack-plugin": { "node_modules/copy-webpack-plugin": {
"version": "9.0.0", "version": "9.0.1",
"resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-9.0.0.tgz", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-9.0.1.tgz",
"integrity": "sha512-k8UB2jLIb1Jip2nZbCz83T/XfhfjX6mB1yLJNYKrpYi7FQimfOoFv/0//iT6HV1K8FwUB5yUbCcnpLebJXJTug==", "integrity": "sha512-14gHKKdYIxF84jCEgPgYXCPpldbwpxxLbCmA7LReY7gvbaT555DgeBWBgBZM116tv/fO6RRJrsivBqRyRlukhw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"fast-glob": "^3.2.5", "fast-glob": "^3.2.5",
@ -1601,7 +1601,7 @@
"normalize-path": "^3.0.0", "normalize-path": "^3.0.0",
"p-limit": "^3.1.0", "p-limit": "^3.1.0",
"schema-utils": "^3.0.0", "schema-utils": "^3.0.0",
"serialize-javascript": "^5.0.1" "serialize-javascript": "^6.0.0"
}, },
"engines": { "engines": {
"node": ">= 12.13.0" "node": ">= 12.13.0"
@ -1904,9 +1904,9 @@
"dev": true "dev": true
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.3.752", "version": "1.3.759",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.752.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.759.tgz",
"integrity": "sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A==", "integrity": "sha512-nM76xH0t2FBH5iMEZDVc3S/qbdKjGH7TThezxC8k1Q7w7WHvIAyJh8lAe2UamGfdRqBTjHfPDn82LJ0ksCiB9g==",
"dev": true "dev": true
}, },
"node_modules/emoji-regex": { "node_modules/emoji-regex": {
@ -1977,9 +1977,9 @@
} }
}, },
"node_modules/es-module-lexer": { "node_modules/es-module-lexer": {
"version": "0.4.1", "version": "0.6.0",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.6.0.tgz",
"integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==", "integrity": "sha512-f8kcHX1ArhllUtb/wVSyvygoKCznIjnxhLxy7TCvIiMdT7fL4ZDTIKaadMe6eLvOXg6Wk02UeoFgUoZ2EKZZUA==",
"dev": true "dev": true
}, },
"node_modules/escalade": { "node_modules/escalade": {
@ -2082,17 +2082,16 @@
"dev": true "dev": true
}, },
"node_modules/fast-glob": { "node_modules/fast-glob": {
"version": "3.2.5", "version": "3.2.6",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.6.tgz",
"integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", "integrity": "sha512-GnLuqj/pvQ7pX8/L4J84nijv6sAnlwvSDpMkJi9i7nPmPxGtRPkBSStfvDW5l6nMdX9VWe+pkKWFTgD+vF2QSQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3", "@nodelib/fs.walk": "^1.2.3",
"glob-parent": "^5.1.0", "glob-parent": "^5.1.2",
"merge2": "^1.3.0", "merge2": "^1.3.0",
"micromatch": "^4.0.2", "micromatch": "^4.0.4"
"picomatch": "^2.2.1"
}, },
"engines": { "engines": {
"node": ">=8" "node": ">=8"
@ -3832,9 +3831,9 @@
} }
}, },
"node_modules/serialize-javascript": { "node_modules/serialize-javascript": {
"version": "5.0.1", "version": "6.0.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
"integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"randombytes": "^2.1.0" "randombytes": "^2.1.0"
@ -4064,15 +4063,15 @@
} }
}, },
"node_modules/terser-webpack-plugin": { "node_modules/terser-webpack-plugin": {
"version": "5.1.3", "version": "5.1.4",
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.3.tgz", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz",
"integrity": "sha512-cxGbMqr6+A2hrIB5ehFIF+F/iST5ZOxvOmy9zih9ySbP1C2oEWQSOUS+2SNBTjzx5xLKO4xnod9eywdfq1Nb9A==", "integrity": "sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"jest-worker": "^27.0.2", "jest-worker": "^27.0.2",
"p-limit": "^3.1.0", "p-limit": "^3.1.0",
"schema-utils": "^3.0.0", "schema-utils": "^3.0.0",
"serialize-javascript": "^5.0.1", "serialize-javascript": "^6.0.0",
"source-map": "^0.6.1", "source-map": "^0.6.1",
"terser": "^5.7.0" "terser": "^5.7.0"
}, },
@ -4432,9 +4431,9 @@
} }
}, },
"node_modules/webpack": { "node_modules/webpack": {
"version": "5.39.1", "version": "5.40.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.39.1.tgz", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.40.0.tgz",
"integrity": "sha512-ulOvoNCh2PvTUa+zbpRuEb1VPeQnhxpnHleMPVVCq3QqnaFogjsLyps+o42OviQFoaGtTQYrUqDXu1QNkvUPzw==", "integrity": "sha512-c7f5e/WWrxXWUzQqTBg54vBs5RgcAgpvKE4F4VegVgfo4x660ZxYUF2/hpMkZUnLjgytVTitjeXaN4IPlXCGIw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/eslint-scope": "^3.7.0", "@types/eslint-scope": "^3.7.0",
@ -4446,7 +4445,7 @@
"browserslist": "^4.14.5", "browserslist": "^4.14.5",
"chrome-trace-event": "^1.0.2", "chrome-trace-event": "^1.0.2",
"enhanced-resolve": "^5.8.0", "enhanced-resolve": "^5.8.0",
"es-module-lexer": "^0.4.0", "es-module-lexer": "^0.6.0",
"eslint-scope": "5.1.1", "eslint-scope": "5.1.1",
"events": "^3.2.0", "events": "^3.2.0",
"glob-to-regexp": "^0.4.1", "glob-to-regexp": "^0.4.1",
@ -4457,7 +4456,7 @@
"neo-async": "^2.6.2", "neo-async": "^2.6.2",
"schema-utils": "^3.0.0", "schema-utils": "^3.0.0",
"tapable": "^2.1.1", "tapable": "^2.1.1",
"terser-webpack-plugin": "^5.1.1", "terser-webpack-plugin": "^5.1.3",
"watchpack": "^2.2.0", "watchpack": "^2.2.0",
"webpack-sources": "^2.3.0" "webpack-sources": "^2.3.0"
}, },
@ -4766,9 +4765,9 @@
} }
}, },
"node_modules/yargs-parser": { "node_modules/yargs-parser": {
"version": "20.2.7", "version": "20.2.9",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
"integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=10" "node": ">=10"
@ -4814,9 +4813,9 @@
} }
}, },
"@babel/compat-data": { "@babel/compat-data": {
"version": "7.14.5", "version": "7.14.7",
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.5.tgz", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz",
"integrity": "sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w==", "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==",
"dev": true "dev": true
}, },
"@babel/core": { "@babel/core": {
@ -4911,9 +4910,9 @@
} }
}, },
"@babel/helper-member-expression-to-functions": { "@babel/helper-member-expression-to-functions": {
"version": "7.14.5", "version": "7.14.7",
"resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.5.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz",
"integrity": "sha512-UxUeEYPrqH1Q/k0yRku1JE7dyfyehNwT6SVkMHvYvPDv4+uu627VXBckVj891BO8ruKBkiDoGnZf4qPDD8abDQ==", "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/types": "^7.14.5" "@babel/types": "^7.14.5"
@ -5070,9 +5069,9 @@
} }
}, },
"@babel/parser": { "@babel/parser": {
"version": "7.14.6", "version": "7.14.7",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.6.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz",
"integrity": "sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==", "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==",
"dev": true "dev": true
}, },
"@babel/template": { "@babel/template": {
@ -5087,9 +5086,9 @@
} }
}, },
"@babel/traverse": { "@babel/traverse": {
"version": "7.14.5", "version": "7.14.7",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.5.tgz", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz",
"integrity": "sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==", "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/code-frame": "^7.14.5", "@babel/code-frame": "^7.14.5",
@ -5097,7 +5096,7 @@
"@babel/helper-function-name": "^7.14.5", "@babel/helper-function-name": "^7.14.5",
"@babel/helper-hoist-variables": "^7.14.5", "@babel/helper-hoist-variables": "^7.14.5",
"@babel/helper-split-export-declaration": "^7.14.5", "@babel/helper-split-export-declaration": "^7.14.5",
"@babel/parser": "^7.14.5", "@babel/parser": "^7.14.7",
"@babel/types": "^7.14.5", "@babel/types": "^7.14.5",
"debug": "^4.1.0", "debug": "^4.1.0",
"globals": "^11.1.0" "globals": "^11.1.0"
@ -5310,9 +5309,9 @@
"dev": true "dev": true
}, },
"@types/node": { "@types/node": {
"version": "15.12.4", "version": "15.12.5",
"resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.4.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.5.tgz",
"integrity": "sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA==", "integrity": "sha512-se3yX7UHv5Bscf8f1ERKvQOD6sTyycH3hdaoozvaLxgUiY5lIGEeH37AD0G0Qi9kPqihPn0HOfd2yaIEN9VwEg==",
"dev": true "dev": true
}, },
"@types/parse-json": { "@types/parse-json": {
@ -5598,9 +5597,9 @@
"dev": true "dev": true
}, },
"acorn": { "acorn": {
"version": "8.4.0", "version": "8.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.0.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz",
"integrity": "sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w==", "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==",
"dev": true "dev": true
}, },
"acorn-class-fields": { "acorn-class-fields": {
@ -5857,9 +5856,9 @@
"dev": true "dev": true
}, },
"caniuse-lite": { "caniuse-lite": {
"version": "1.0.30001239", "version": "1.0.30001240",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001239.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001240.tgz",
"integrity": "sha512-cyBkXJDMeI4wthy8xJ2FvDU6+0dtcZSJW3voUF8+e9f1bBeuvyZfc3PNbkOETyhbR+dGCPzn9E7MA3iwzusOhQ==", "integrity": "sha512-nb8mDzfMdxBDN7ZKx8chWafAdBp5DAAlpWvNyUGe5tcDWd838zpzDN3Rah9cjCqhfOKkrvx40G2SDtP0qiWX/w==",
"dev": true "dev": true
}, },
"chalk": { "chalk": {
@ -5998,9 +5997,9 @@
} }
}, },
"copy-webpack-plugin": { "copy-webpack-plugin": {
"version": "9.0.0", "version": "9.0.1",
"resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-9.0.0.tgz", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-9.0.1.tgz",
"integrity": "sha512-k8UB2jLIb1Jip2nZbCz83T/XfhfjX6mB1yLJNYKrpYi7FQimfOoFv/0//iT6HV1K8FwUB5yUbCcnpLebJXJTug==", "integrity": "sha512-14gHKKdYIxF84jCEgPgYXCPpldbwpxxLbCmA7LReY7gvbaT555DgeBWBgBZM116tv/fO6RRJrsivBqRyRlukhw==",
"dev": true, "dev": true,
"requires": { "requires": {
"fast-glob": "^3.2.5", "fast-glob": "^3.2.5",
@ -6009,7 +6008,7 @@
"normalize-path": "^3.0.0", "normalize-path": "^3.0.0",
"p-limit": "^3.1.0", "p-limit": "^3.1.0",
"schema-utils": "^3.0.0", "schema-utils": "^3.0.0",
"serialize-javascript": "^5.0.1" "serialize-javascript": "^6.0.0"
}, },
"dependencies": { "dependencies": {
"schema-utils": { "schema-utils": {
@ -6227,9 +6226,9 @@
"dev": true "dev": true
}, },
"electron-to-chromium": { "electron-to-chromium": {
"version": "1.3.752", "version": "1.3.759",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.752.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.759.tgz",
"integrity": "sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A==", "integrity": "sha512-nM76xH0t2FBH5iMEZDVc3S/qbdKjGH7TThezxC8k1Q7w7WHvIAyJh8lAe2UamGfdRqBTjHfPDn82LJ0ksCiB9g==",
"dev": true "dev": true
}, },
"emoji-regex": { "emoji-regex": {
@ -6287,9 +6286,9 @@
} }
}, },
"es-module-lexer": { "es-module-lexer": {
"version": "0.4.1", "version": "0.6.0",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.6.0.tgz",
"integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==", "integrity": "sha512-f8kcHX1ArhllUtb/wVSyvygoKCznIjnxhLxy7TCvIiMdT7fL4ZDTIKaadMe6eLvOXg6Wk02UeoFgUoZ2EKZZUA==",
"dev": true "dev": true
}, },
"escalade": { "escalade": {
@ -6367,17 +6366,16 @@
"dev": true "dev": true
}, },
"fast-glob": { "fast-glob": {
"version": "3.2.5", "version": "3.2.6",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.6.tgz",
"integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", "integrity": "sha512-GnLuqj/pvQ7pX8/L4J84nijv6sAnlwvSDpMkJi9i7nPmPxGtRPkBSStfvDW5l6nMdX9VWe+pkKWFTgD+vF2QSQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3", "@nodelib/fs.walk": "^1.2.3",
"glob-parent": "^5.1.0", "glob-parent": "^5.1.2",
"merge2": "^1.3.0", "merge2": "^1.3.0",
"micromatch": "^4.0.2", "micromatch": "^4.0.4"
"picomatch": "^2.2.1"
}, },
"dependencies": { "dependencies": {
"glob-parent": { "glob-parent": {
@ -7641,9 +7639,9 @@
"dev": true "dev": true
}, },
"serialize-javascript": { "serialize-javascript": {
"version": "5.0.1", "version": "6.0.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
"integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
"dev": true, "dev": true,
"requires": { "requires": {
"randombytes": "^2.1.0" "randombytes": "^2.1.0"
@ -7832,15 +7830,15 @@
} }
}, },
"terser-webpack-plugin": { "terser-webpack-plugin": {
"version": "5.1.3", "version": "5.1.4",
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.3.tgz", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz",
"integrity": "sha512-cxGbMqr6+A2hrIB5ehFIF+F/iST5ZOxvOmy9zih9ySbP1C2oEWQSOUS+2SNBTjzx5xLKO4xnod9eywdfq1Nb9A==", "integrity": "sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==",
"dev": true, "dev": true,
"requires": { "requires": {
"jest-worker": "^27.0.2", "jest-worker": "^27.0.2",
"p-limit": "^3.1.0", "p-limit": "^3.1.0",
"schema-utils": "^3.0.0", "schema-utils": "^3.0.0",
"serialize-javascript": "^5.0.1", "serialize-javascript": "^6.0.0",
"source-map": "^0.6.1", "source-map": "^0.6.1",
"terser": "^5.7.0" "terser": "^5.7.0"
}, },
@ -8099,9 +8097,9 @@
} }
}, },
"webpack": { "webpack": {
"version": "5.39.1", "version": "5.40.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.39.1.tgz", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.40.0.tgz",
"integrity": "sha512-ulOvoNCh2PvTUa+zbpRuEb1VPeQnhxpnHleMPVVCq3QqnaFogjsLyps+o42OviQFoaGtTQYrUqDXu1QNkvUPzw==", "integrity": "sha512-c7f5e/WWrxXWUzQqTBg54vBs5RgcAgpvKE4F4VegVgfo4x660ZxYUF2/hpMkZUnLjgytVTitjeXaN4IPlXCGIw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/eslint-scope": "^3.7.0", "@types/eslint-scope": "^3.7.0",
@ -8113,7 +8111,7 @@
"browserslist": "^4.14.5", "browserslist": "^4.14.5",
"chrome-trace-event": "^1.0.2", "chrome-trace-event": "^1.0.2",
"enhanced-resolve": "^5.8.0", "enhanced-resolve": "^5.8.0",
"es-module-lexer": "^0.4.0", "es-module-lexer": "^0.6.0",
"eslint-scope": "5.1.1", "eslint-scope": "5.1.1",
"events": "^3.2.0", "events": "^3.2.0",
"glob-to-regexp": "^0.4.1", "glob-to-regexp": "^0.4.1",
@ -8124,7 +8122,7 @@
"neo-async": "^2.6.2", "neo-async": "^2.6.2",
"schema-utils": "^3.0.0", "schema-utils": "^3.0.0",
"tapable": "^2.1.1", "tapable": "^2.1.1",
"terser-webpack-plugin": "^5.1.1", "terser-webpack-plugin": "^5.1.3",
"watchpack": "^2.2.0", "watchpack": "^2.2.0",
"webpack-sources": "^2.3.0" "webpack-sources": "^2.3.0"
}, },
@ -8327,9 +8325,9 @@
} }
}, },
"yargs-parser": { "yargs-parser": {
"version": "20.2.7", "version": "20.2.9",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
"integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
"dev": true "dev": true
}, },
"yn": { "yn": {