cspace-ui
Version:
CollectionSpace user interface for browsers
181 lines (179 loc) • 7.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.thumbnailImage = exports.smallImage = exports.originalJpegImage = exports.originalImage = exports.mediumImage = exports.formatWorkflowStateIcon = exports.formatTimestamp = exports.formatSourceField = exports.formatServiceObjectName = exports.formatRefNameWithDefault = exports.formatRefNameAsVocabularyName = exports.formatRefNameAsRecordType = exports.formatRefName = exports.formatRecordTypeSourceField = exports.formatOption = exports.formatNameRole = exports.formatForeignSourceField = exports.formatExtensionFieldName = exports.formatDate = exports.derivativeImage = void 0;
var _react = _interopRequireDefault(require("react"));
var _get = _interopRequireDefault(require("lodash/get"));
var _cspaceRefname = require("cspace-refname");
var _BlobImage = _interopRequireDefault(require("../components/media/BlobImage"));
var _WorkflowStateIcon = _interopRequireDefault(require("../components/record/WorkflowStateIcon"));
var _derivativeNames = require("../constants/derivativeNames");
var _configHelpers = require("./configHelpers");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const formatTimestamp = (timestamp, {
intl
}) => intl.formatDate(timestamp, {
year: 'numeric',
month: 'numeric',
day: 'numeric',
hour: 'numeric',
minute: 'numeric'
// timeZoneName: 'short',
});
exports.formatTimestamp = formatTimestamp;
const formatDate = date => {
if (!date) {
return null;
}
const index = date.indexOf('T');
if (index >= 0) {
return date.substring(0, index);
}
return date;
};
exports.formatDate = formatDate;
const formatNameRole = (name, role) => {
if (name && role) {
return `${name} (${role})`;
}
return name;
};
exports.formatNameRole = formatNameRole;
const formatServiceObjectName = (serviceObjectName, {
intl,
config
}) => {
const recordTypeConfig = (0, _configHelpers.getRecordTypeConfigByServiceObjectName)(config, serviceObjectName);
if (recordTypeConfig) {
return intl.formatMessage(recordTypeConfig.messages.record.name);
}
return `[ ${serviceObjectName.toLowerCase()} ]`;
};
exports.formatServiceObjectName = formatServiceObjectName;
const formatRefName = refName => (0, _cspaceRefname.getDisplayName)(refName);
/**
* Attempt to format a RefName. If it cannot be formatted, return the initial value.
* @param {string} maybeRef a string which could be a refname
* @returns the formatted value of maybeRef or the initial value maybeRef
*/
exports.formatRefName = formatRefName;
const formatRefNameWithDefault = maybeRef => formatRefName(maybeRef) || maybeRef;
exports.formatRefNameWithDefault = formatRefNameWithDefault;
const formatRefNameAsRecordType = (refName, {
intl,
config
}) => {
const recordServicePath = (0, _cspaceRefname.getServicePath)(refName);
const recordTypeConfig = (0, _configHelpers.getRecordTypeConfigByServicePath)(config, recordServicePath);
if (recordTypeConfig) {
return intl.formatMessage(recordTypeConfig.messages.record.name);
}
return `[ ${recordServicePath.toLowerCase()} ]`;
};
exports.formatRefNameAsRecordType = formatRefNameAsRecordType;
const formatRefNameAsVocabularyName = (refName, {
intl,
config
}) => {
const recordServicePath = (0, _cspaceRefname.getServicePath)(refName);
const recordTypeConfig = (0, _configHelpers.getRecordTypeConfigByServicePath)(config, recordServicePath);
if (recordTypeConfig) {
const vocabularyShortID = (0, _cspaceRefname.getVocabularyShortID)(refName);
const vocabularyConfig = (0, _configHelpers.getVocabularyConfigByShortID)(recordTypeConfig, vocabularyShortID);
if (vocabularyConfig) {
return intl.formatMessage(vocabularyConfig.messages.name);
}
const fallback = vocabularyShortID ? vocabularyShortID.toLowerCase() : '';
return `[ ${fallback} ]`;
}
return `[ ${recordServicePath.toLowerCase()} ]`;
};
exports.formatRefNameAsVocabularyName = formatRefNameAsVocabularyName;
const formatRecordTypeSourceField = (recordType, sourceField, {
intl,
config
}) => {
const recordTypeConfig = config.recordTypes[recordType];
const [partName, fieldName] = sourceField.split(':');
const fieldConfig = (0, _configHelpers.findFieldConfigInPart)(recordTypeConfig, partName, fieldName);
let message;
if (fieldConfig) {
const {
messages
} = fieldConfig;
if (messages) {
message = messages.fullName || messages.name;
}
}
return message ? intl.formatMessage(message) : `[ ${fieldName} ]`;
};
exports.formatRecordTypeSourceField = formatRecordTypeSourceField;
const formatSourceField = (sourceField, formatterContext) => formatRecordTypeSourceField(formatterContext.recordType, sourceField, formatterContext);
exports.formatSourceField = formatSourceField;
const formatForeignSourceField = (sourceField, formatterContext) => {
const {
config,
rowData
} = formatterContext;
const serviceObjectName = rowData.get('docType');
const recordTypeConfig = (0, _configHelpers.getRecordTypeConfigByServiceObjectName)(config, serviceObjectName);
const recordType = recordTypeConfig ? recordTypeConfig.name : null;
return formatRecordTypeSourceField(recordType, sourceField, formatterContext);
};
exports.formatForeignSourceField = formatForeignSourceField;
const formatWorkflowStateIcon = workflowState => /*#__PURE__*/_react.default.createElement(_WorkflowStateIcon.default, {
value: workflowState
});
exports.formatWorkflowStateIcon = formatWorkflowStateIcon;
const formatOption = (optionListName, value, {
intl,
config
}) => {
const message = (0, _get.default)(config, ['optionLists', optionListName, 'messages', value]);
return message ? intl.formatMessage(message) : value;
};
exports.formatOption = formatOption;
const formatExtensionFieldName = (intl, fieldConfig, messageName = 'fullName') => {
const extensionParentConfig = (0, _get.default)(fieldConfig, 'extensionParentConfig');
const formattedParentName = extensionParentConfig ? formatExtensionFieldName(intl, extensionParentConfig, messageName) : null;
const messages = (0, _get.default)(fieldConfig, 'messages');
let formattedName;
if (messages) {
formattedName = intl.formatMessage(messages[messageName] || messages.fullName || messages.name);
}
return [formattedParentName, formattedName].filter(part => !!part).join(' - ');
};
exports.formatExtensionFieldName = formatExtensionFieldName;
const derivativeImage = (blobCsid, derivative, rowData) => {
if (!blobCsid || !rowData) {
return null;
}
const alt = rowData.get('altText') || rowData.get('identificationNumber');
return /*#__PURE__*/_react.default.createElement(_BlobImage.default, {
csid: blobCsid,
derivative: derivative,
alt: alt
});
};
exports.derivativeImage = derivativeImage;
const thumbnailImage = (blobCsid, {
rowData
} = {}) => derivativeImage(blobCsid, _derivativeNames.DERIVATIVE_THUMBNAIL, rowData);
exports.thumbnailImage = thumbnailImage;
const smallImage = (blobCsid, {
rowData
} = {}) => derivativeImage(blobCsid, _derivativeNames.DERIVATIVE_SMALL, rowData);
exports.smallImage = smallImage;
const mediumImage = (blobCsid, {
rowData
} = {}) => derivativeImage(blobCsid, _derivativeNames.DERIVATIVE_MEDIUM, rowData);
exports.mediumImage = mediumImage;
const originalJpegImage = (blobCsid, {
rowData
} = {}) => derivativeImage(blobCsid, _derivativeNames.DERIVATIVE_ORIGINAL_JPEG, rowData);
exports.originalJpegImage = originalJpegImage;
const originalImage = (blobCsid, {
rowData
} = {}) => derivativeImage(blobCsid, _derivativeNames.DERIVATIVE_ORIGINAL, rowData);
exports.originalImage = originalImage;