import {FIELD_MODE, INTENT, SIZE, ALIGN, PLACEMENT, TRIGGER, GROUP_TYPE, POPOVER_THEME} from '../constants'; import {iconData, IconIntent, systemIconData} from '@unidata/icon'; import * as menuColors from '../specific/menu_item/menuColors'; const optionalMap = () => ({ '-- not set --': undefined }); const enumToMap = (map: any, [key, value]: [string, string]) => { map[key] = value .split('_') .join(' ') .toLowerCase(); return map; }; export const placementMap = (isOptional = false) => { return Object.entries(PLACEMENT).reduce(enumToMap, isOptional ? optionalMap() : {}); }; export const popoverThemeMap = (isOptional = false) => { return Object.entries(POPOVER_THEME).reduce(enumToMap, isOptional ? optionalMap() : {}); }; export const triggerMap = (isOptional = false) => { return Object.entries(TRIGGER).reduce(enumToMap, isOptional ? optionalMap() : {}); }; export const enumMap = (enumerate: K, isOptional = false) => { return Object.entries(enumerate).reduce(enumToMap, isOptional ? optionalMap() : {}); }; export const intentMap = (isOptional = false) => { return Object.entries(INTENT).reduce(enumToMap, isOptional ? optionalMap() : {}); }; export const iconColorMap = (isOptional = false) => { return Object.entries(IconIntent).reduce(enumToMap, isOptional ? optionalMap() : {}); }; export const sizeMap = (isOptional = false) => { return Object.entries(SIZE).reduce(enumToMap, isOptional ? optionalMap() : {}); }; export const alignMap = (isOptional = false) => { return Object.entries(ALIGN).reduce(enumToMap, isOptional ? optionalMap() : {}); }; export const fieldModeMap = (isOptional = false) => { return Object.entries(FIELD_MODE).reduce(enumToMap, isOptional ? optionalMap() : {}); }; export const iconMap = (isOptional = false) => { return Object.keys(iconData).reduce((iconMap, name) => { iconMap[name] = name; return iconMap; }, isOptional ? optionalMap() : {}); }; export const systemIconMap = (isOptional = false) => { return Object.keys(systemIconData).reduce((systemIconMap, name) => { systemIconMap[name] = name; return systemIconMap; }, isOptional ? optionalMap() : {}); }; export const menuColorMap = (isOptional = false) => { return Object.keys(menuColors).reduce((iconMap, name) => { iconMap[name] = name; return iconMap; }, isOptional ? optionalMap() : {}); }; export const groupTypeMap = (isOptional = false) => { return Object.entries(GROUP_TYPE).reduce(enumToMap, isOptional ? optionalMap() : {}); };