UNPKG

cluedin-widget

Version:

This is the project for creating and managing widgets in CluedIn.

70 lines (52 loc) 2.95 kB
import { extractImportant, extractSocial, extract, getPropertyToKeep } from './property'; import { addTokenToImage } from '../image'; import moment from 'moment'; var toVM = function( item, small, token, fetchAllProperties ) { var mainItem; mainItem = small ? item.entity : ( item.Entity ? item.Entity.entity : item.entity.entity); mainItem.data = mainItem.processedData; mainItem.name = mainItem.data.displayName || mainItem.data.name; mainItem.id = mainItem[ 'attribute-id' ]; delete mainItem[ 'attribute-id' ]; delete mainItem[ 'attribute-organization' ]; delete mainItem[ 'attribute-culture' ]; delete mainItem.processedData; var hasDescription = ( mainItem.data.description ) ? true : false; var differentNameAndDescription = !(mainItem.data.description === mainItem.name); mainItem.showDescription = (differentNameAndDescription && hasDescription); mainItem.providers = mainItem.data[ 'provider-origins' ]; if ( mainItem.showDescription && mainItem.data.description.length > 200 ) { mainItem.descriptionFormatted = ( mainItem.data.description.substring( 0, 200 ) + '...'); } if ( mainItem.data.previewImage ) { mainItem.hasLogo = true; mainItem.logoUrl = addTokenToImage( mainItem.data.previewImage[ 'attribute-uri' ], token ); } if ( mainItem.data.previewImage ) { if ( parseInt( mainItem.data.previewImage[ 'attribute-height' ], 10 ) >= 300 || parseInt( mainItem.data.previewImage[ 'attribute-width' ], 10 ) >= 300 ) { mainItem.previewUrl = addTokenToImage( mainItem.data.previewImage[ 'attribute-uri' ], token ); mainItem.hasPreview = true; } if ( !mainItem.data.previewImage[ 'attribute-height' ] && !mainItem.data.previewImage[ 'attribute-width' ] ) { //we take our chance mainItem.previewUrl = addTokenToImage( mainItem.data.previewImage[ 'attribute-uri' ], token ); mainItem.hasPreview = true; } } if ( mainItem.name && mainItem.name.length > 100 ) { mainItem.name = ( mainItem.name.substring( 0, 100 ) + '...' ); } mainItem.FollowersCount = mainItem.NumberOfFollowers = mainItem.NumberOfFollowers || 0; mainItem.path = void 0; mainItem.SuggestedSearches = item.SuggestedSearches; mainItem.social = extractSocial( mainItem.data.properties ); mainItem.properties = fetchAllProperties ? extract( mainItem ) : extractImportant( mainItem ); mainItem.notManagerProperties = fetchAllProperties ? getPropertyToKeep( mainItem ) : []; mainItem.data.createdDateFormatted = moment( mainItem.data.createdDate ).fromNow(); mainItem.data.modifiedDateFormatted = moment( mainItem.data.modifiedDate ).fromNow(); delete mainItem.data.properties; return mainItem; }; module.exports = { toVM: toVM };