UNPKG

cluedin-widget

Version:

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

163 lines (122 loc) • 4.22 kB
import React from 'react'; import EntityValueRow from '../components/entityRelated/EntityValueRow.jsx' const NAHtml = (<span>N/A</span>); export function findFromKey( properties, key ) { return properties.find( function( prop ) { return ( prop && ( prop.key === key )); } ); } export function makeNoValueRow( key ) { return ( <div className="cluedIn_m-t-xs"> <div className="cluedIn_label"> {key} </div> <div className="cluedIn_value"> {NAHtml} </div> </div> ); } export function makeTaskBadgeHtml( prop ) { var badgeHtml = NAHtml; var badgetClass = "cluedIn_badge"; if ( prop.value.toLowerCase() !== 'Accepted'.toLowerCase() && prop.value.toLowerCase() !== 'completed'.toLowerCase() ) { badgetClass += " warning"; } if ( prop.value ) { badgeHtml = <span className={badgetClass}>{prop.value}</span> } return (<EntityValueRow name={prop.displayName}>{badgeHtml}</EntityValueRow>); } export function makeBadgeHtml( prop ) { var badgeHtml = NAHtml; var badgetClass = "cluedIn_badge"; if ( prop.value === 'open' ) { badgetClass += " danger"; } if ( prop.value ) { badgeHtml = <span className={badgetClass}>{prop.value}</span> } return (<EntityValueRow name={prop.displayName}>{badgeHtml}</EntityValueRow>); } export function MergeProp( displayName, prop1, prop2 ) { var valueToDisplay; if ( prop1 && prop1.value ) { valueToDisplay = prop1.value; } if ( prop2 && prop2.value ) { if ( valueToDisplay ) { valueToDisplay += " " + prop2.value; } else { valueToDisplay = prop2.value; } } return (<EntityValueRow name={displayName}>{valueToDisplay || NAHtml }</EntityValueRow>); } export function makePropHtml( prop ) { return (<EntityValueRow name={prop.displayName}>{prop.value || NAHtml }</EntityValueRow>); } export function makeGoogleMapUrl( prop ) { return 'http://maps.google.com/?q=' + prop; } export function makeGmapLink( prop ) { var linkHtml = NAHtml; if ( prop.value ) { var link = 'http://maps.google.com/?q=' + prop.value; linkHtml = <a target="__blank" href={link}>{prop.value}</a> } return (<EntityValueRow name={prop.displayName}>{linkHtml}</EntityValueRow>); } export function makeLinkedInLinkValue( prop ) { if ( prop.value ) { if ( prop.value.indexOf( 'http://' ) === -1 && prop.value.indexOf( 'https://' ) === -1 ) { return 'https://linkedin.com/in/' + prop.value; } return prop.value; } return prop.value; } export function makeTwitterLinkValue( prop ) { if ( prop.value ) { if ( prop.value.indexOf( 'http://' ) === -1 && prop.value.indexOf( 'https://' ) === -1 ) { return 'https://twitter.com/' + prop.value; } return prop.value; } return prop.value; } export function makeTwitterLink( prop ) { var linkHtml = NAHtml; let link = prop.value; if ( prop.value ) { if ( prop.value.indexOf( 'http://' ) === -1 && prop.value.indexOf( 'https://' ) === -1 ) { link = 'http://twitter.com/' + prop.value; } linkHtml = <a target="__blank" href={link}><i className="fa fa-twitter"></i>{prop.value}</a> } return ( <div className="cluedIn_social_link"> {linkHtml} </div> ); } export function makeLinkValue( prop ) { if ( prop.value ) { if ( prop.value.indexOf( 'http://' ) === -1 && prop.value.indexOf( 'https://' ) === -1 ) { prop.value = 'http://' + prop.value; } return prop.value; } return prop.value; } export function makeLinkHtml( prop ) { var linkHtml = NAHtml; if ( prop.value ) { if ( prop.value.indexOf( 'http://' ) === -1 && prop.value.indexOf( 'https://' ) === -1 ) { prop.value = 'http://' + prop.value; } linkHtml = <a target="__blank" href={prop.value}>{prop.value}</a> } return (<EntityValueRow name={prop.displayName}>{linkHtml}</EntityValueRow>); }