clear.js 1.1 KB

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