clear.js 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. 'use strict';
  2. require('../event/behavior/click.js');
  3. require('../event/behavior/cut.js');
  4. require('../event/behavior/keydown.js');
  5. require('../event/behavior/keypress.js');
  6. require('../event/behavior/keyup.js');
  7. require('../event/behavior/paste.js');
  8. require('@testing-library/dom');
  9. require('../utils/dataTransfer/Clipboard.js');
  10. var isEditable = require('../utils/edit/isEditable.js');
  11. var isDisabled = require('../utils/misc/isDisabled.js');
  12. var focus = require('../event/focus.js');
  13. var input = require('../event/input.js');
  14. var selectAll = require('../event/selection/selectAll.js');
  15. async function clear(element) {
  16. if (!isEditable.isEditable(element) || isDisabled.isDisabled(element)) {
  17. throw new Error('clear()` is only supported on editable elements.');
  18. }
  19. focus.focusElement(element);
  20. if (element.ownerDocument.activeElement !== element) {
  21. throw new Error('The element to be cleared could not be focused.');
  22. }
  23. selectAll.selectAll(element);
  24. if (!selectAll.isAllSelected(element)) {
  25. throw new Error('The element content to be cleared could not be selected.');
  26. }
  27. input.input(this, element, '', 'deleteContentBackward');
  28. }
  29. exports.clear = clear;