create-visual-element.mjs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { isSVGElement } from '../../render/dom/utils/is-svg-element.mjs';
  2. import { SVGVisualElement } from '../../render/svg/SVGVisualElement.mjs';
  3. import { HTMLVisualElement } from '../../render/html/HTMLVisualElement.mjs';
  4. import { visualElementStore } from '../../render/store.mjs';
  5. import { ObjectVisualElement } from '../../render/object/ObjectVisualElement.mjs';
  6. function createDOMVisualElement(element) {
  7. const options = {
  8. presenceContext: null,
  9. props: {},
  10. visualState: {
  11. renderState: {
  12. transform: {},
  13. transformOrigin: {},
  14. style: {},
  15. vars: {},
  16. attrs: {},
  17. },
  18. latestValues: {},
  19. },
  20. };
  21. const node = isSVGElement(element)
  22. ? new SVGVisualElement(options)
  23. : new HTMLVisualElement(options);
  24. node.mount(element);
  25. visualElementStore.set(element, node);
  26. }
  27. function createObjectVisualElement(subject) {
  28. const options = {
  29. presenceContext: null,
  30. props: {},
  31. visualState: {
  32. renderState: {
  33. output: {},
  34. },
  35. latestValues: {},
  36. },
  37. };
  38. const node = new ObjectVisualElement(options);
  39. node.mount(subject);
  40. visualElementStore.set(subject, node);
  41. }
  42. export { createDOMVisualElement, createObjectVisualElement };