code constant

String const code

Implementation

static const String code = r'''
function bindContextMenus() {
  document.querySelectorAll('.arcane-context-menu-trigger').forEach(function(trigger) {
    if (trigger.dataset.arcaneInteractive === 'true') return;
    trigger.dataset.arcaneInteractive = 'true';

    var menu = trigger.querySelector('.arcane-context-menu');
    if (!menu) return;

    trigger.addEventListener('contextmenu', function(e) {
      e.preventDefault();

      document.querySelectorAll('.arcane-context-menu').forEach(function(m) {
        m.style.display = 'none';
      });

      menu.style.display = 'block';
      menu.style.left = e.clientX + 'px';
      menu.style.top = e.clientY + 'px';

      var rect = menu.getBoundingClientRect();
      if (rect.right > window.innerWidth) {
        menu.style.left = (e.clientX - rect.width) + 'px';
      }
      if (rect.bottom > window.innerHeight) {
        menu.style.top = (e.clientY - rect.height) + 'px';
      }
    });

    menu.querySelectorAll('.arcane-context-menu-item:not(.disabled)').forEach(function(item) {
      item.addEventListener('click', function() {
        menu.style.display = 'none';
      });
    });
  });

  document.addEventListener('click', function() {
    document.querySelectorAll('.arcane-context-menu').forEach(function(m) {
      m.style.display = 'none';
    });
  });

  document.addEventListener('keydown', function(e) {
    if (e.key === 'Escape') {
      document.querySelectorAll('.arcane-context-menu').forEach(function(m) {
        m.style.display = 'none';
      });
    }
  });
}
''';