CompanyCard

In this first iteration, the CompanyCard is simply a HTML rendering that you can feed with JSON in various ways.

You can initialize a CompanyCard with the attribute data-ts="CompanyCard".

  • <div data-ts="CompanyCard" id="mycard"></div>

Even without any data, the card takes on a cardlike appearance.

If you are using Angular or jQuery, you might like to feed the card through a JavaScript API, as we will see, you can however also embed the data directly in the markup.

Embedded JSON

Server-side devs and UX designers might like to embed the JSON in the HTML. Because this is JSON, you should use double quotes and omit trailing commas.

    • <div data-ts="CompanyCard">
      	<script type="application/json">
      		{
      			"id": "6bf17754-f9de-4e31-aa31-bd3ff765b9c2",
      			"data": {
      				"name": "Tradeshift",
      				"logo": "assets/logo.png",
      				"size": "100–249",
      				"location": "San Francisco, California",
      				"industry": "Software & IT",
      				"connection": 2
      			}
      		}
      	</script>
      </div>

Encoded JSON

You can also embed the JSON in an attribute data-ts.render. The JSON string must be encoded in the format returned by method encodeURIComponent(json); Remember to trim() the JSON string before you encode it.

    • <div data-ts="CompanyCard" data-ts.render="%7B%22id%22%3A%226bf17754-f9de-4e31-aa31-bd3ff765b9c2%22%2C%22data%22%3A%7B%22name%22%3A%22Tradeshift%22%2C%22logo%22%3A%22assets%2Flogo.png%22%2C%22size%22%3A%22100%E2%80%93249%22%2C%22location%22%3A%22San%20Francisco%2C%20California%22%2C%22industry%22%3A%22Software%20%26%20IT%22%2C%22connection%22%3A2%7D%7D"></div>

Render programatically

You can grab a hold of the card and instruct it to render() some JSON data.

  • ts.ui.get('#mycard', card => {
    	card.render({
    		id: "6bf17754-f9de-4e31-aa31-bd3ff765b9c2",
    		data: {
    			name: "Tradeshift",
    			logo: "assets/logo.png",
    			size: '100–249',
    			location: "San Francisco, California",
    			industry: 'Software & IT',
    			connection: 2
    		}
    	});
    });

We notice that the connection status is indicated by a number. The number matches an index in the following array, which declares the label and icon.

ts.ui.CompanyCard.connectionTypes = [
	['Your company', 'ts-icon-network'],
	['Request sent', 'ts-icon-network'],
	['Connected', 'ts-icon-network'],
	['Registration in progress', 'ts-icon-network'],
	['In your Google Contacts', 'ts-icon-network'],
	['Via email only', 'ts-icon-network']
];

This array is crowdsourced. You can modify the array in your app, simply by copy-pasting the code above into your initialization script. You can also use numbers (instead of strings) to indicate size and industry.

card.render({
	id: '6bf17754-f9de-4e31-aa31-bd3ff765b9c2',
	data: {
		name: 'Tradeshift',
		size: 3,
		industry: 6
	}
});

If you provide a number instead of a string, we'll look it up in these lists.

ts.ui.CompanyCard.companySizes = [
	'1',
	'1–10',
	'1–100',
	'100–249',
	'250-500',
	'500-1000'
];
ts.ui.CompanyCard.industryTypes = [
	'Airline',
	'Corporation',
	'Educational Organization',
	'Government Organization',
	'Local Business',
	'NGO',
	'Software & IT',
	'Performing Group',
	'Sports Team'
];

You are also welcome to overwrite these arrays in your app. That's it for now.