VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Directory :  /var/www/html/libs/absol-full/dist/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/libs/absol-full/dist/js/mdls__absol__src__JSX__dom.js
/*** module: node_modules/absol/src/JSX/dom.js ***/
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.domVisitor = domVisitor;
exports.parseDom = parseDom;

var _attribute = require("./attribute");

function domVisitor(jsxCode) {
  var visitor = {
    File: function (node, ac) {
      return acept(node.program, ac);
    },
    Program: function (node, ac) {
      ac.child = node.body.map(function (cNode) {
        return acept(cNode, {});
      });
      return ac;
    },
    ExpressionStatement: function (node, ac) {
      return acept(node.expression, ac);
    },
    JSXElement: function (node, ac) {
      acept(node.openingElement, ac);

      if (node.children && node.children.length > 0) {
        ac.child = node.children.map(function (cNode) {
          return acept(cNode, {});
        });
      }

      return ac;
    },
    JSXOpeningElement: function (node, ac) {
      var name = {};
      acept(node.name, name);
      ac.tag = name.value;

      if (node.attributes && node.attributes.length > 0) {
        node.attributes.forEach(function (aNode) {
          var attribute = {};
          acept(aNode, attribute);

          if (attribute.key) {
            if (attribute.key.startsWith('data-')) {
              ac.data = ac.data || {};
              ac.data[attribute.key.replace('data-', '')] = attribute.value;
            } else if (attribute.key.startsWith('prop-')) {
              ac.props = ac.props || {};
              ac.props[attribute.key.replace('prop-', '')] = attribute.value;
            } else if (attribute.key.startsWith('on-')) {
              ac.on = ac.props || {};
              ac.on[attribute.key.replace('on-', '')] = attribute.value;
            } else if (attribute.key == 'style') {
              ac.style = (0, _attribute.parseStyleAttr)(attribute.value);
            } else if (attribute.key == 'class') {
              var classList = (0, _attribute.parseClassAttr)(attribute.value);
              if (classList.length > 0) ac.class = classList;
            } else {
              ac.attr = ac.attr || {};
              ac.attr[attribute.key] = attribute.value;
            }
          }
        }, {});
      }

      return ac;
    },
    JSXIdentifier: function (node, ac) {
      ac.value = node.name;
    },
    JSXAttribute: function (node, ac) {
      var key = {};
      acept(node.name, key);
      ac.key = key.value;
      var value = {};
      acept(node.value, value);
      ac.value = value.value;
      return ac;
    },
    StringLiteral: function (node, ac) {
      ac.value = node.value;
    },
    JSXExpressionContainer: function (node, ac) {
      ac.value = {
        expression: jsxCode.substring(node.expression.start, node.expression.end)
      };
      return ac;
    },
    JSXText: function (node, ac) {
      ac.text = node.value;
      return ac;
    }
  };

  function accept(node, ac) {
    return node && visitor[node.type] && visitor[node.type](node, ac);
  }

  return {
    acept: accept,
    accept: accept,
    visitor: visitor
  };
}
/***
 * @param {String} jsxCode
 */


function parseDom(jsxCode) {
  jsxCode = jsxCode.trim().replace(/>\s+</gm, '><').replace(/<(\/?)(img|input|link|br|meta)([^>]*)>/g, function (sub, end, tag, content) {
    if (end == '/') return '';
    return '<' + tag + content + '/>';
  });
  var ast = babel.parse(jsxCode, {
    plugins: [babel.pluginSyntaxJsx]
  });
  var xmlData = {};
  domVisitor(jsxCode).acept(ast, xmlData);
  if (xmlData.child.length > 1) return xmlData.child;
  return xmlData.child[0];
}

VaKeR 2022