cluedin-widget
Version: 
This is the project for creating and managing widgets in CluedIn.
163 lines (122 loc) • 4.22 kB
JSX
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>);
}