datocms-plugin-sdk
Version:
34 lines • 1.87 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isDropdownAction = isDropdownAction;
exports.isDropdownActionGroup = isDropdownActionGroup;
exports.isDropdownActionOrGroupArray = isDropdownActionOrGroupArray;
var guardUtils_js_1 = require("./guardUtils.js");
var icon_1 = require("./icon");
function isDropdownAction(value) {
if (!(0, guardUtils_js_1.isRecord)(value))
return false;
return ((0, guardUtils_js_1.isString)(value.id) &&
((0, guardUtils_js_1.isNullish)(value.parameters) || (0, guardUtils_js_1.isRecord)(value.parameters)) &&
(0, guardUtils_js_1.isString)(value.label) &&
(0, icon_1.isIcon)(value.icon) &&
((0, guardUtils_js_1.isNullish)(value.active) || (0, guardUtils_js_1.isBoolean)(value.active)) &&
((0, guardUtils_js_1.isNullish)(value.alert) || (0, guardUtils_js_1.isBoolean)(value.alert)) &&
((0, guardUtils_js_1.isNullish)(value.disabled) || (0, guardUtils_js_1.isBoolean)(value.disabled)) &&
((0, guardUtils_js_1.isNullish)(value.closeMenuOnClick) || (0, guardUtils_js_1.isBoolean)(value.closeMenuOnClick)) &&
((0, guardUtils_js_1.isNullish)(value.rank) || (0, guardUtils_js_1.isNumber)(value.rank)));
}
function isDropdownActionGroup(value) {
if (!(0, guardUtils_js_1.isRecord)(value))
return false;
return ((0, guardUtils_js_1.isString)(value.label) &&
(0, icon_1.isIcon)(value.icon) &&
(0, guardUtils_js_1.isArray)(value.actions, isDropdownAction) &&
((0, guardUtils_js_1.isNullish)(value.rank) || (0, guardUtils_js_1.isNumber)(value.rank)));
}
function isDropdownActionOrGroupArray(value) {
return (0, guardUtils_js_1.isArray)(value, function (innerValue) {
return isDropdownAction(innerValue) || isDropdownActionGroup(innerValue);
});
}
//# sourceMappingURL=shared.js.map