How to use the dom-expressions.NonComposedEvents.has function in dom-expressions

To help you get started, we’ve selected a few dom-expressions examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github ryansolid / mobx-jsx / src / runtime.js View on Github external
wrap(() => {
    for (const prop in props) {
      if (prop === "children") continue;
      const value = props[prop];
      if (value === prevProps[prop]) continue;
      if (prop === "style") {
        Object.assign(node.style, value);
      } else if (prop === "classList") {
        classList(node, value, prevProps[prop]);
        // really only for forwarding from Components, can't forward normal ref
      } else if (prop === "ref" || prop === "forwardRef") {
        value(node);
      } else if (prop.slice(0, 2) === "on") {
        const lc = prop.toLowerCase();
        if (lc !== prop && !NonComposedEvents.has(lc.slice(2))) {
          const name = lc.slice(2);
          node[`__${name}`] = value;
          delegateEvents([name]);
        } else node[lc] = value;
      } else if (prop === "events") {
        for (const eventName in value)
          node.addEventListener(eventName, value[eventName]);
      } else if ((info = Attributes[prop])) {
        if (info.type === "attribute") {
          node.setAttribute(prop, value);
        } else node[info.alias] = value;
      } else if (isSVG) {
        if ((info = SVGAttributes[prop])) {
          if (info.alias) node.setAttribute(info.alias, value);
          else node.setAttribute(prop, value);
        } else
github ryansolid / ko-jsx / src / runtime.js View on Github external
function spreadExpression(node, props, prevProps = {}, isSVG) {
  let info;
  for (const prop in props) {
    const value = props[prop];
    if (value === prevProps[prop]) continue;
    if (prop === 'style') {
      Object.assign(node.style, value);
    } else if (prop === 'classList') {
      classList(node, value);
    // really only for forwarding from Components, can't forward normal ref
    } else if (prop === 'ref' || prop === 'forwardRef') {
      value(node);
    } else if (prop.slice(0, 2) === 'on') {
      const lc = prop.toLowerCase();
      if (lc !== prop && !NonComposedEvents.has(lc.slice(2))) {
        const name = lc.slice(2);
        node[`__${name}`] = value;
        delegateEvents([name]);
      } else node[lc] = value;
    } else if (prop === 'events') {
      for (const eventName in value) node.addEventListener(eventName, value[eventName]);
    } else if (prop === 'children') {
      insertExpression(node, value, prevProps[prop]);
    } else if (info = Attributes[prop]) {
      if (info.type === 'attribute') {
        node.setAttribute(prop, value);
      } else node[info.alias] = value;
    } else if (isSVG) {
      if (info = SVGAttributes[prop]) {
        if (info.alias) node.setAttribute(info.alias, value);
        else node.setAttribute(prop, value);
github ryansolid / solid / packages / solid / src / dom / runtime.js View on Github external
wrap(() => {
    for (const prop in props) {
      if (prop === "children") continue;
      const value = props[prop];
      if (value === prevProps[prop]) continue;
      if (prop === "style") {
        Object.assign(node.style, value);
      } else if (prop === "classList") {
        classList(node, value, prevProps[prop]);
        // really only for forwarding from Components, can't forward normal ref
      } else if (prop === "ref" || prop === "forwardRef") {
        value(node);
      } else if (prop.slice(0, 2) === "on") {
        const lc = prop.toLowerCase();
        if (lc !== prop && !NonComposedEvents.has(lc.slice(2))) {
          const name = lc.slice(2);
          node[`__${name}`] = value;
          delegateEvents([name]);
        } else node[lc] = value;
      } else if (prop === "events") {
        for (const eventName in value)
          node.addEventListener(eventName, value[eventName]);
      } else if ((info = Attributes[prop])) {
        if (info.type === "attribute") {
          node.setAttribute(prop, value);
        } else node[info.alias] = value;
      } else if (isSVG) {
        if ((info = SVGAttributes[prop])) {
          if (info.alias) node.setAttribute(info.alias, value);
          else node.setAttribute(prop, value);
        } else
github ryansolid / s-jsx / src / runtime.js View on Github external
function spreadExpression(node, props, prevProps = {}, isSVG) {
  let info;
  for (const prop in props) {
    const value = props[prop];
    if (value === prevProps[prop]) continue;
    if (prop === 'style') {
      Object.assign(node.style, value);
    } else if (prop === 'classList') {
      classList(node, value);
    // really only for forwarding from Components, can't forward normal ref
    } else if (prop === 'ref' || prop === 'forwardRef') {
      value(node);
    } else if (prop.slice(0, 2) === 'on') {
      const lc = prop.toLowerCase();
      if (lc !== prop && !NonComposedEvents.has(lc.slice(2))) {
        const name = lc.slice(2);
        node[`__${name}`] = value;
        delegateEvents([name]);
      } else node[lc] = value;
    } else if (prop === 'events') {
      for (const eventName in value) node.addEventListener(eventName, value[eventName]);
    } else if (prop === 'children') {
      insertExpression(node, value, prevProps[prop]);
    } else if (info = Attributes[prop]) {
      if (info.type === 'attribute') {
        node.setAttribute(prop, value);
      } else node[info.alias] = value;
    } else if (isSVG) {
      if (info = SVGAttributes[prop]) {
        if (info.alias) node.setAttribute(info.alias, value);
        else node.setAttribute(prop, value);
github ryansolid / babel-plugin-jsx-dom-expressions / src / index.js View on Github external
results.exprs.unshift(
            t.expressionStatement(
              t.logicalExpression(
                "&&",
                value.expression,
                t.callExpression(value.expression, [elem])
              )
            )
          );
        } else if (key.startsWith("on")) {
          if (generate === "ssr") return;
          const ev = toEventName(key);
          if (
            delegateEvents &&
            key !== key.toLowerCase() &&
            !NonComposedEvents.has(ev)
          ) {
            const events =
              path.scope.getProgramParent().data.events ||
              (path.scope.getProgramParent().data.events = new Set());
            events.add(ev);
            results.exprs.unshift(
              t.expressionStatement(
                t.assignmentExpression(
                  "=",
                  t.memberExpression(
                    t.identifier(elem.name),
                    t.identifier(`__${ev}`)
                  ),
                  value.expression
                )
              )

dom-expressions

A Fine-Grained Runtime for Performant DOM Rendering

MIT
Latest version published 23 days ago

Package Health Score

75 / 100
Full package analysis

Similar packages