datocms-plugin-sdk
Version:
29 lines • 1.23 kB
JavaScript
import { isArray, isBoolean, isNullish, isNumber, isRecord, isString, } from './guardUtils.js';
import { isIcon } from './icon';
export function isDropdownAction(value) {
if (!isRecord(value))
return false;
return (isString(value.id) &&
(isNullish(value.parameters) || isRecord(value.parameters)) &&
isString(value.label) &&
isIcon(value.icon) &&
(isNullish(value.active) || isBoolean(value.active)) &&
(isNullish(value.alert) || isBoolean(value.alert)) &&
(isNullish(value.disabled) || isBoolean(value.disabled)) &&
(isNullish(value.closeMenuOnClick) || isBoolean(value.closeMenuOnClick)) &&
(isNullish(value.rank) || isNumber(value.rank)));
}
export function isDropdownActionGroup(value) {
if (!isRecord(value))
return false;
return (isString(value.label) &&
isIcon(value.icon) &&
isArray(value.actions, isDropdownAction) &&
(isNullish(value.rank) || isNumber(value.rank)));
}
export function isDropdownActionOrGroupArray(value) {
return isArray(value, function (innerValue) {
return isDropdownAction(innerValue) || isDropdownActionGroup(innerValue);
});
}
//# sourceMappingURL=shared.js.map