UNPKG

elmer-ui-core

Version:

web app framework

90 lines (89 loc) 3.52 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.ElmerDomQuery = void 0; var elmer_common_1 = require("elmer-common"); var ElmerDomQuery = (function (_super) { __extends(ElmerDomQuery, _super); function ElmerDomQuery() { return _super !== null && _super.apply(this, arguments) || this; } ElmerDomQuery.prototype.getSelectors = function (selector) { var _this = this; var regs = []; if (!this.isEmpty(selector)) { var rgs = selector.split(","); rgs.map(function (tmpRegStr) { regs.push(_this.getSelector(tmpRegStr)); }); } return regs; }; ElmerDomQuery.prototype.getSelector = function (querySelector) { var result = {}; var queryStr = querySelector.replace(/^\s*/, "").replace(/\s*$/, ""); var prefReg = /^(\>|\+)([a-z0-9\-_\.#\[\]\s=\>\+\:]*)$/i; var prefMatch = queryStr.match(prefReg); var leftCode = ""; var nodeQueryStr = queryStr; var nodeMode = ""; if (prefMatch) { nodeQueryStr = prefMatch[2]; nodeMode = prefMatch[1]; } var queryNodeResult = this.getSelectorNode(nodeQueryStr); if (queryNodeResult) { result.mode = nodeMode; result.type = queryNodeResult.type; result.value = queryNodeResult.value; leftCode = queryNodeResult.leftCode || ""; } leftCode = leftCode.replace(/^\s*/, "").replace(/\s*$/, ""); if (!this.isEmpty(leftCode) && leftCode.length > 0) { result.child = this.getSelector(leftCode); } return result; }; ElmerDomQuery.prototype.getSelectorNode = function (queryStr) { var prefReg = /^([\.#])([a-z0-9][a-z0-9\-_\.#\[\]\s=\>\+\:]*)$/i; var prefMatch = queryStr.match(prefReg); var result = {}; var nodeReg = /^([a-z0-9][a-z0-9\-_\[\]=\.\:]*)([\s\>\+])/i; var nodeEndReg = /^([a-z0-9][a-z0-9\-_\[\]=\.\:]*)\s*$/i; var nodeValueStr = queryStr; var pref = ""; if (prefMatch) { pref = prefMatch[1]; nodeValueStr = prefMatch[2]; } var nodeMatch = nodeValueStr.match(nodeReg); result.type = pref; if (nodeMatch) { result.value = nodeMatch[1]; result.leftCode = nodeValueStr.replace(nodeReg, "$2"); } else { var endNodeMatch = nodeValueStr.match(nodeEndReg); if (endNodeMatch) { result.value = endNodeMatch[0]; } } return result; }; return ElmerDomQuery; }(elmer_common_1.Common)); exports.ElmerDomQuery = ElmerDomQuery;