diff --git a/src/components/LinkItems/Item.vue b/src/components/LinkItems/Item.vue
index 25896334..645ccdaf 100644
--- a/src/components/LinkItems/Item.vue
+++ b/src/components/LinkItems/Item.vue
@@ -3,7 +3,7 @@
+
+
+
{{ hotkey }}
@@ -20,11 +23,14 @@ import NewTabOpenIcon from '@/assets/interface-icons/open-new-tab.svg';
import SameTabOpenIcon from '@/assets/interface-icons/open-current-tab.svg';
import IframeOpenIcon from '@/assets/interface-icons/open-iframe.svg';
import WorkspaceOpenIcon from '@/assets/interface-icons/open-workspace.svg';
+import ParentOpenIcon from '@/assets/interface-icons/open-parent.svg';
+import TopOpenIcon from '@/assets/interface-icons/open-top.svg';
+import UnknownIcon from '@/assets/interface-icons/unknown-icon.svg';
export default {
name: 'ItemOpenMethodIcon',
props: {
- openingMethod: String, // newtab | sametab | modal | workspace
+ openingMethod: String, // newtab | sametab | parent | top | modal | workspace
isSmall: Boolean, // If true, will apply small class
position: String, // Position classes: top, bottom, left, right
isTransparent: Boolean, // If true, will apply opacity
@@ -44,6 +50,9 @@ export default {
SameTabOpenIcon,
IframeOpenIcon,
WorkspaceOpenIcon,
+ ParentOpenIcon,
+ TopOpenIcon,
+ UnknownIcon,
},
};
diff --git a/src/utils/ConfigHelpers.js b/src/utils/ConfigHelpers.js
index d8ce987f..974f9935 100644
--- a/src/utils/ConfigHelpers.js
+++ b/src/utils/ConfigHelpers.js
@@ -7,6 +7,8 @@ import {
theme as defaultTheme,
language as defaultLanguage,
} from '@/utils/defaults';
+import ErrorHandler from '@/utils/ErrorHandler';
+import ConfigSchema from '@/utils/ConfigSchema.json';
/**
* Initiates the Accumulator class and generates a complete config object
@@ -97,3 +99,17 @@ export const getUsersLanguage = () => {
const langObj = languages.find(lang => lang.code === langCode);
return langObj;
};
+
+/**
+ * validator for item target attribute
+ * Uses enum values from config schema, and shows warning if invalid
+ * @param {String} target
+ * @returns {Boolean} isValid
+ */
+export const targetValidator = (target) => {
+ const acceptedTargets = ConfigSchema.properties.sections.items
+ .properties.items.items.properties.target.enum;
+ const isTargetValid = acceptedTargets.indexOf(target) !== -1;
+ if (!isTargetValid) ErrorHandler(`Unknown target value: ${target}`);
+ return isTargetValid;
+};