ra-core
Version:
Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React
89 lines • 4.49 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStatusForArrayInput = exports.getSelectedReferencesStatus = exports.REFERENCES_STATUS_EMPTY = exports.REFERENCES_STATUS_INCOMPLETE = exports.REFERENCES_STATUS_READY = exports.getStatusForInput = void 0;
var isMatchingReferencesError = function (matchingReferences) {
return matchingReferences && matchingReferences.error !== undefined;
};
var getStatusForInput = function (_a) {
var field = _a.field, matchingReferences = _a.matchingReferences, referenceRecord = _a.referenceRecord, _b = _a.translate, translate = _b === void 0 ? function (x) { return x; } : _b;
var matchingReferencesError = isMatchingReferencesError(matchingReferences)
? translate(matchingReferences.error, {
_: matchingReferences.error,
})
: null;
var selectedReferenceError = field.value && !referenceRecord
? translate('ra.input.references.single_missing', {
_: 'ra.input.references.single_missing',
})
: null;
return {
waiting: (field.value && selectedReferenceError && !matchingReferences) ||
(!field.value && !matchingReferences),
error: (field.value &&
selectedReferenceError &&
matchingReferencesError) ||
(!field.value && matchingReferencesError)
? field.value
? selectedReferenceError
: matchingReferencesError
: null,
warning: selectedReferenceError || matchingReferencesError,
choices: Array.isArray(matchingReferences)
? matchingReferences
: [referenceRecord].filter(function (choice) { return choice; }),
};
};
exports.getStatusForInput = getStatusForInput;
exports.REFERENCES_STATUS_READY = 'REFERENCES_STATUS_READY';
exports.REFERENCES_STATUS_INCOMPLETE = 'REFERENCES_STATUS_INCOMPLETE';
exports.REFERENCES_STATUS_EMPTY = 'REFERENCES_STATUS_EMPTY';
var getSelectedReferencesStatus = function (field, referenceRecords) {
return !field.value || field.value.length === referenceRecords.length
? exports.REFERENCES_STATUS_READY
: referenceRecords.length > 0
? exports.REFERENCES_STATUS_INCOMPLETE
: exports.REFERENCES_STATUS_EMPTY;
};
exports.getSelectedReferencesStatus = getSelectedReferencesStatus;
var getStatusForArrayInput = function (_a) {
var field = _a.field, matchingReferences = _a.matchingReferences, referenceRecords = _a.referenceRecords, _b = _a.translate, translate = _b === void 0 ? function (x) { return x; } : _b;
// selectedReferencesDataStatus can be "empty" (no data was found for references from input.value)
// or "incomplete" (Not all of the reference data was found)
// or "ready" (all references data was found or there is no references from input.value)
var selectedReferencesDataStatus = (0, exports.getSelectedReferencesStatus)(field, referenceRecords);
var matchingReferencesError = isMatchingReferencesError(matchingReferences)
? translate(matchingReferences.error, {
_: matchingReferences.error,
})
: null;
var choices = Array.isArray(matchingReferences)
? referenceRecords.concat(matchingReferences.filter(function (choice) {
return referenceRecords.findIndex(function (c) { return c.id === choice.id; }) === -1;
}))
: referenceRecords;
return {
waiting: (!matchingReferences &&
field.value &&
selectedReferencesDataStatus === exports.REFERENCES_STATUS_EMPTY) ||
(!matchingReferences && !field.value),
error: matchingReferencesError &&
(!field.value ||
(field.value &&
selectedReferencesDataStatus === exports.REFERENCES_STATUS_EMPTY))
? translate('ra.input.references.all_missing', {
_: 'ra.input.references.all_missing',
})
: null,
warning: matchingReferencesError ||
(field.value &&
selectedReferencesDataStatus !== exports.REFERENCES_STATUS_READY)
? matchingReferencesError ||
translate('ra.input.references.many_missing', {
_: 'ra.input.references.many_missing',
})
: null,
choices: choices,
};
};
exports.getStatusForArrayInput = getStatusForArrayInput;
//# sourceMappingURL=referenceDataStatus.js.map
;