isEditable.js 1.2 KB

1234567891011121314151617181920212223242526272829
  1. 'use strict';
  2. var isElementType = require('../misc/isElementType.js');
  3. var isContentEditable = require('./isContentEditable.js');
  4. function isEditable(element) {
  5. return isEditableInputOrTextArea(element) && !element.readOnly || isContentEditable.isContentEditable(element);
  6. }
  7. var editableInputTypes = /*#__PURE__*/ function(editableInputTypes) {
  8. editableInputTypes["text"] = "text";
  9. editableInputTypes["date"] = "date";
  10. editableInputTypes["datetime-local"] = "datetime-local";
  11. editableInputTypes["email"] = "email";
  12. editableInputTypes["month"] = "month";
  13. editableInputTypes["number"] = "number";
  14. editableInputTypes["password"] = "password";
  15. editableInputTypes["search"] = "search";
  16. editableInputTypes["tel"] = "tel";
  17. editableInputTypes["time"] = "time";
  18. editableInputTypes["url"] = "url";
  19. editableInputTypes["week"] = "week";
  20. return editableInputTypes;
  21. }(editableInputTypes || {});
  22. function isEditableInputOrTextArea(element) {
  23. return isElementType.isElementType(element, 'textarea') || isElementType.isElementType(element, 'input') && element.type in editableInputTypes;
  24. }
  25. exports.isEditable = isEditable;
  26. exports.isEditableInputOrTextArea = isEditableInputOrTextArea;