isEditable.js 1.1 KB

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