}
export interface PropFieldSuggestion {
- "id": string;
- "label": string;
+ id: string;
+ label: string;
}
const VOCABULARY_VALIDATORS = [
l => l.label === tagValueLabel) !== undefined) || ''
: '';
+export const getTagValueLabel = (tagKeyID:string, tagValueID:string, vocabulary: Vocabulary) =>
+ vocabulary.tags[tagKeyID] &&
+ vocabulary.tags[tagKeyID].values &&
+ vocabulary.tags[tagKeyID].values![tagValueID] &&
+ vocabulary.tags[tagKeyID].values![tagValueID].labels.length > 0
+ ? vocabulary.tags[tagKeyID].values![tagValueID].labels[0].label
+ : tagValueID;
+
const compare = (a: PropFieldSuggestion, b: PropFieldSuggestion) => {
if (a.label < b.label) {return -1;}
if (a.label > b.label) {return 1;}
const tag = vocabulary.tags[tagKeyID];
const ret = tag && tag.values
? Object.keys(tag.values).map(
- tagValueID => tag.values![tagValueID].labels
+ tagValueID => tag.values![tagValueID].labels && tag.values![tagValueID].labels.length > 0
? tag.values![tagValueID].labels.map(
lbl => Object.assign({}, {"id": tagValueID, "label": lbl.label}))
: [{"id": tagValueID, "label": tagValueID}])
export const getTags = ({ tags }: Vocabulary) => {
const ret = tags && Object.keys(tags)
? Object.keys(tags).map(
- tagID => tags[tagID].labels
+ tagID => tags[tagID].labels && tags[tagID].labels.length > 0
? tags[tagID].labels.map(
lbl => Object.assign({}, {"id": tagID, "label": lbl.label}))
: [{"id": tagID, "label": tagID}])
export const getTagKeyID = (tagKeyLabel:string, vocabulary: Vocabulary) =>
Object.keys(vocabulary.tags).find(
k => vocabulary.tags[k].labels.find(
- l => l.label === tagKeyLabel) !== undefined) || '';
+ l => l.label === tagKeyLabel) !== undefined
+ ) || '';
+
+export const getTagKeyLabel = (tagKeyID:string, vocabulary: Vocabulary) =>
+ vocabulary.tags[tagKeyID] && vocabulary.tags[tagKeyID].labels.length > 0
+ ? vocabulary.tags[tagKeyID].labels[0].label
+ : tagKeyID;