UNPKG

@aliretail/react-materials-components

Version:
70 lines (55 loc) 1.59 kB
"use strict"; exports.__esModule = true; exports.addComponent = addComponent; exports.area = area; exports.getElementArea = getElementArea; exports.getElementType = getElementType; exports.getElementWrapper = getElementWrapper; exports.getValidTypes = getValidTypes; exports.isLayoutComponent = isLayoutComponent; exports.layout = layout; var _react = require("react"); var VALID_TYPES = []; var nameFlag = Symbol["for"]('layoutComponentName'); var areaFlag = Symbol["for"]('layoutComponentArea'); function isLayoutComponent(Type) { return !!Type[nameFlag]; } function getValidTypes() { return VALID_TYPES; } function addComponent(name, Type) { Type[nameFlag] = name; VALID_TYPES.push(Type); } function area(areaType) { return function (constructor) { constructor[areaFlag] = areaType; }; } function layout(name, areaType) { if (areaType === void 0) { areaType = 'content'; } return function (constructor) { constructor[areaFlag] = areaType; addComponent(name, constructor); }; } function getElementType(ele) { var Comp = ele === null || ele === void 0 ? void 0 : ele.type; if (Comp) { return Comp[nameFlag]; } } function getElementArea(ele) { var Comp = ele === null || ele === void 0 ? void 0 : ele.type; if (Comp) { return Comp[areaFlag]; } } function getElementWrapper(ele) { var _Comp$Wrapper; var Comp = ele === null || ele === void 0 ? void 0 : ele.type; return (_Comp$Wrapper = Comp === null || Comp === void 0 ? void 0 : Comp.Wrapper) !== null && _Comp$Wrapper !== void 0 ? _Comp$Wrapper : _react.Fragment; }