8709248053bf375122ad22dd806f77705fd0a14bd94588c90c26a62addf7783253d3ee7682d0b106ac7a69b178c681b7d193583303f013bcf5deff1f9600e5 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import staticRegister from './../utils/staticRegister';
  2. import baseRenderer from './_cellDecorator';
  3. import autocompleteRenderer from './autocompleteRenderer';
  4. import checkboxRenderer from './checkboxRenderer';
  5. import htmlRenderer from './htmlRenderer';
  6. import numericRenderer from './numericRenderer';
  7. import passwordRenderer from './passwordRenderer';
  8. import textRenderer from './textRenderer';
  9. const {
  10. register,
  11. getItem,
  12. hasItem,
  13. getNames,
  14. getValues,
  15. } = staticRegister('renderers');
  16. register('base', baseRenderer);
  17. register('autocomplete', autocompleteRenderer);
  18. register('checkbox', checkboxRenderer);
  19. register('html', htmlRenderer);
  20. register('numeric', numericRenderer);
  21. register('password', passwordRenderer);
  22. register('text', textRenderer);
  23. /**
  24. * Retrieve renderer function.
  25. *
  26. * @param {String} name Renderer identification.
  27. * @returns {Function} Returns renderer function.
  28. */
  29. function _getItem(name) {
  30. if (typeof name === 'function') {
  31. return name;
  32. }
  33. if (!hasItem(name)) {
  34. throw Error(`No registered renderer found under "${name}" name`);
  35. }
  36. return getItem(name);
  37. }
  38. export {
  39. register as registerRenderer,
  40. _getItem as getRenderer,
  41. hasItem as hasRenderer,
  42. getNames as getRegisteredRendererNames,
  43. getValues as getRegisteredRenderers,
  44. };