Repository URL to install this package:
|
Version:
3.12.2 ▾
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
import getMetadataGroups from './getMetadataGroups';
import updateValidationErrors from './updateValidationErrors';
import { INVALID_FOLDER_OR_FILE_CHARS_REGEX, METADATA_MODEL_TYPE_IDS } from '../constants';
var validateItemMetadata = function validateItemMetadata(_ref) {
var metadata = _ref.metadata,
itemMeta = _ref.itemMeta,
itemMetadataErrors = _ref.itemMetadataErrors,
i18n = _ref.i18n,
fileName = _ref.fileName;
var model = metadata.model,
regionalGroups = metadata.regionalGroups,
_metadata$modelType = metadata.modelType,
modelType = _metadata$modelType === void 0 ? METADATA_MODEL_TYPE_IDS.FILES : _metadata$modelType;
var metaDataGroups = getMetadataGroups(model, modelType);
var errors = _objectSpread({}, itemMetadataErrors || {});
(metaDataGroups || []).forEach(function (group) {
(group.fields || []).forEach(function (fieldItem) {
var _regionalGroups$find;
var fieldRegionalVariants = regionalGroups === null || regionalGroups === void 0 ? void 0 : (_regionalGroups$find = regionalGroups.find(function (group) {
return group.uuid === (fieldItem === null || fieldItem === void 0 ? void 0 : fieldItem.regional_variants_group_uuid);
})) === null || _regionalGroups$find === void 0 ? void 0 : _regionalGroups$find.variants;
if (fieldRegionalVariants && Array.isArray(fieldRegionalVariants)) {
fieldRegionalVariants.forEach(function (_ref2, index) {
var _itemMeta$fieldItem$k;
var regionalVariantKey = _ref2.api_value;
// When field is required and has reg variants, for example ["en", "fr", "de"] we should check only first variant "en" and skip "fr" and "de"
var shouldCheckIsRequired = index === 0;
errors = updateValidationErrors(errors, fieldItem.key, regionalVariantKey, itemMeta === null || itemMeta === void 0 ? void 0 : (_itemMeta$fieldItem$k = itemMeta[fieldItem.key]) === null || _itemMeta$fieldItem$k === void 0 ? void 0 : _itemMeta$fieldItem$k[regionalVariantKey], fieldItem.validation, shouldCheckIsRequired ? fieldItem.required : false, fieldItem.can_edit);
});
} else {
errors = updateValidationErrors(errors, fieldItem.key, null, itemMeta[fieldItem.key], fieldItem.validation, fieldItem.required, fieldItem.can_edit);
}
});
});
var allErrors = errors;
if (fileName) {
var newNameIsInvalid = INVALID_FOLDER_OR_FILE_CHARS_REGEX.test(fileName);
if (newNameIsInvalid) {
allErrors = _objectSpread({
name: i18n('explorerFileRenameInvalidNameDesc')
}, allErrors);
}
}
return {
isValid: Object.keys(errors).length === 0,
errors: allErrors
};
};
export default validateItemMetadata;