readOnly.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { checkSelectionConsistency, markLabelAsSelected } from './../utils';
  2. export var KEY = 'make_read_only';
  3. export default function readOnlyItem() {
  4. return {
  5. key: KEY,
  6. name: function name() {
  7. var _this = this;
  8. var label = 'Read only';
  9. var atLeastOneReadOnly = checkSelectionConsistency(this.getSelectedRange(), function (row, col) {
  10. return _this.getCellMeta(row, col).readOnly;
  11. });
  12. if (atLeastOneReadOnly) {
  13. label = markLabelAsSelected(label);
  14. }
  15. return label;
  16. },
  17. callback: function callback() {
  18. var _this2 = this;
  19. var range = this.getSelectedRange();
  20. var atLeastOneReadOnly = checkSelectionConsistency(range, function (row, col) {
  21. return _this2.getCellMeta(row, col).readOnly;
  22. });
  23. range.forAll(function (row, col) {
  24. _this2.setCellMeta(row, col, 'readOnly', !atLeastOneReadOnly);
  25. });
  26. this.render();
  27. },
  28. disabled: function disabled() {
  29. return !(this.getSelectedRange() && !this.selection.selectedHeader.corner);
  30. }
  31. };
  32. }