Built files from Bizgaze WebServer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

mutator.js 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  2. /* Tabulator v4.8.2 (c) Oliver Folkerd */
  3. var Mutator = function Mutator(table) {
  4. this.table = table; //hold Tabulator object
  5. this.allowedTypes = ["", "data", "edit", "clipboard"]; //list of muatation types
  6. this.enabled = true;
  7. };
  8. //initialize column mutator
  9. Mutator.prototype.initializeColumn = function (column) {
  10. var self = this,
  11. match = false,
  12. config = {};
  13. this.allowedTypes.forEach(function (type) {
  14. var key = "mutator" + (type.charAt(0).toUpperCase() + type.slice(1)),
  15. mutator;
  16. if (column.definition[key]) {
  17. mutator = self.lookupMutator(column.definition[key]);
  18. if (mutator) {
  19. match = true;
  20. config[key] = {
  21. mutator: mutator,
  22. params: column.definition[key + "Params"] || {}
  23. };
  24. }
  25. }
  26. });
  27. if (match) {
  28. column.modules.mutate = config;
  29. }
  30. };
  31. Mutator.prototype.lookupMutator = function (value) {
  32. var mutator = false;
  33. //set column mutator
  34. switch (typeof value === "undefined" ? "undefined" : _typeof(value)) {
  35. case "string":
  36. if (this.mutators[value]) {
  37. mutator = this.mutators[value];
  38. } else {
  39. console.warn("Mutator Error - No such mutator found, ignoring: ", value);
  40. }
  41. break;
  42. case "function":
  43. mutator = value;
  44. break;
  45. }
  46. return mutator;
  47. };
  48. //apply mutator to row
  49. Mutator.prototype.transformRow = function (data, type, updatedData) {
  50. var self = this,
  51. key = "mutator" + (type.charAt(0).toUpperCase() + type.slice(1)),
  52. value;
  53. if (this.enabled) {
  54. self.table.columnManager.traverse(function (column) {
  55. var mutator, params, component;
  56. if (column.modules.mutate) {
  57. mutator = column.modules.mutate[key] || column.modules.mutate.mutator || false;
  58. if (mutator) {
  59. value = column.getFieldValue(typeof updatedData !== "undefined" ? updatedData : data);
  60. if (type == "data" || typeof value !== "undefined") {
  61. component = column.getComponent();
  62. params = typeof mutator.params === "function" ? mutator.params(value, data, type, component) : mutator.params;
  63. column.setFieldValue(data, mutator.mutator(value, data, type, params, component));
  64. }
  65. }
  66. }
  67. });
  68. }
  69. return data;
  70. };
  71. //apply mutator to new cell value
  72. Mutator.prototype.transformCell = function (cell, value) {
  73. var mutator = cell.column.modules.mutate.mutatorEdit || cell.column.modules.mutate.mutator || false,
  74. tempData = {};
  75. if (mutator) {
  76. tempData = Object.assign(tempData, cell.row.getData());
  77. cell.column.setFieldValue(tempData, value);
  78. return mutator.mutator(value, tempData, "edit", mutator.params, cell.getComponent());
  79. } else {
  80. return value;
  81. }
  82. };
  83. Mutator.prototype.enable = function () {
  84. this.enabled = true;
  85. };
  86. Mutator.prototype.disable = function () {
  87. this.enabled = false;
  88. };
  89. //default mutators
  90. Mutator.prototype.mutators = {};
  91. Tabulator.prototype.registerModule("mutator", Mutator);