gd-sprest-js
Version:
SharePoint 2013/Online js components.
43 lines (42 loc) • 1.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/**
* List Item
*/
exports.ListItem = function (props) {
// Set the class name
var className = [
props.className || "",
props.isDocument ? "ms-ListItem--document" : "",
props.isImage ? "ms-ListItem--image" : "",
props.isSelectable ? "is-selectable" : "",
props.isSelected ? "is-selected" : "",
props.isUnread ? "is-unread" : "",
props.isUnseen ? "is-unseen" : ""
].join(' ').trim();
// See if the actions exist
var actions = [];
if (props.actions && props.actions.length > 0) {
// Parse the actions
for (var i = 0; i < props.actions.length; i++) {
var action = props.actions[i];
// Add the action
actions.push([
'<div class="ms-ListItem-action"' + (action.target ? ' data-target="' + action.target + '"' : '') + (action.url ? ' data-url="' + action.url + '"' : '') + '>',
'<i class="ms-Icon ms-Icon--' + action.iconName + '"></i>',
'</div>'
].join('\n'));
}
}
// Return the template
return [
'<li class="ms-ListItem ' + className + '" tabindex="0" data-value=\'' + (props.value || "") + '\'>',
props.primaryText ? '<span class="ms-ListItem-primaryText">' + props.primaryText + '</span>' : '',
props.secondaryText ? '<span class="ms-ListItem-secondaryText">' + props.secondaryText + '</span>' : '',
props.tertiaryText ? '<span class="ms-ListItem-tertiaryText">' + props.tertiaryText + '</span>' : '',
props.metaText ? '<span class="ms-ListItem-metaText">' + props.metaText + '</span>' : '',
'<div class="ms-ListItem-selectionTarget">' + (props.selectionTarget || "") + '</div>',
'<div class="ms-ListItem-actions">' + actions.join('\n') + '</div>',
'</li>'
].join('\n');
};