UNPKG

elmer-ui-core

Version:

web app framework

58 lines (57 loc) 2.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.registerComponent = exports.formatSelector = void 0; var formatSelector = function (selectorName) { var dName = selectorName.replace(/([A-Z])/g, "-$1").replace(/^([a-z])/i, "-$1").toLowerCase(); dName = /^\-/.test(dName) ? dName : "-" + dName; dName = "eui" + dName; return dName; }; exports.formatSelector = formatSelector; var registerComponent = function (widgets, domName) { var register = function (widgetFactory, domNameValue) { var domName = widgetFactory.toString(); var fMatch = domName.match(/^function\s*([a-z0-9_\-]*)\s*\(/i); if (fMatch) { var dName = fMatch[1]; dName = domNameValue && domNameValue.length > 0 ? domNameValue : dName; dName = exports.formatSelector(dName); var saveData = elmerData.components || {}; if (!saveData[dName]) { Object.defineProperty(widgetFactory, "selector", { configurable: false, enumerable: true, value: dName, writable: false }); Object.defineProperty(elmerData.components, dName, { configurable: false, enumerable: true, value: widgetFactory, writable: false }); } } else { throw new Error("未定义组件名称!"); } }; if (typeof widgets === "object") { Object.keys(widgets).map(function (wKey) { var factory = widgets[wKey]; if (typeof factory === "function") { register(factory, wKey); } else { throw new Error("The register component " + wKey + " must be a function"); } }); } else if (typeof widgets === "function") { register(widgets, domName); } else { throw new Error("The Register component is muse be a constructor or a object"); } }; exports.registerComponent = registerComponent;