MultiListSelectionHelper.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. "use strict";
  2. /**
  3. * Licensed Materials - Property of IBM
  4. *
  5. * IBM Cognos Products: BI Glass
  6. *
  7. * Copyright IBM Corp. 2017
  8. *
  9. * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  10. */
  11. define(['underscore'], function (_) {
  12. 'use strict'; //NOSONAR
  13. return {
  14. selectionChange: function selectionChange(selection, event) {
  15. switch (event.type) {
  16. case "set":
  17. {
  18. selection = {};
  19. selection[event.last] = true;
  20. break;
  21. }
  22. case "toggle":
  23. {
  24. if (selection[event.last]) {
  25. delete selection[event.last];
  26. } else {
  27. selection[event.last] = true;
  28. }
  29. break;
  30. }
  31. case "composite":
  32. {
  33. selection = {};
  34. for (var i = 0; i < event.added.length; ++i) {
  35. selection[event.added[i]] = true;
  36. }
  37. break;
  38. }
  39. default:
  40. {
  41. break;
  42. }
  43. }
  44. return selection;
  45. },
  46. createInitialState: function createInitialState(props) {
  47. var selection = {};
  48. _.each(props.parameter_value.values, function (savedValue) {
  49. _.find(props.spec.values, function (item, index) {
  50. if (item.value === savedValue.use) {
  51. selection[index] = true;
  52. return true;
  53. }
  54. return false;
  55. }.bind(this));
  56. }.bind(this));
  57. return selection;
  58. }
  59. };
  60. });