neos-script
Version:
[neos-script-sample](https://github.com/rheniumNV/neos-script-sample)
187 lines (186 loc) • 7.8 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Component = exports.Fragment = exports.jsxs = exports.jsx = void 0;
var lodash_1 = __importDefault(require("lodash"));
var uuid_1 = require("uuid");
var keyMap = new Map();
function clearKeyMap() {
keyMap.clear();
}
function generateId(key) {
var _a;
var id = key ? (_a = keyMap.get(key)) !== null && _a !== void 0 ? _a : (0, uuid_1.v4)() : (0, uuid_1.v4)();
if (key) {
keyMap.set(key, id);
}
return id;
}
function jsx(statement, rawProps) {
var _a;
var a = [];
for (var _i = 2; _i < arguments.length; _i++) {
a[_i - 2] = arguments[_i];
}
if (typeof statement === "function") {
if (statement.prototype !== undefined) {
return new statement(rawProps);
}
return statement(rawProps);
}
var rawChildren = rawProps.children, props = __rest(rawProps, ["children"]);
var children = !rawChildren
? []
: lodash_1.default.isArray(rawChildren)
? rawChildren.flatMap(function (v) { return v; })
: [rawChildren];
switch (statement) {
case "member":
var name_1 = props.name, id = props.id, value = props.value, readOnly = props.readOnly, idOnly = props.idOnly, isRaw = props.isRaw;
return _a = {},
_a[name_1] = readOnly || isRaw
? value
: idOnly
? id !== null && id !== void 0 ? id : generateId()
: { ID: id !== null && id !== void 0 ? id : generateId(), Data: value },
_a;
case "slotData":
return {
tag: "slotData",
data: lodash_1.default.reduce(children, function (prev, curr) {
return __assign(__assign({}, prev), curr);
}, {}),
};
case "component":
var type = props.type, version = props.version;
return {
Type: type,
version: version,
Data: lodash_1.default.reduce(children, function (prev, curr) {
return __assign(__assign({}, prev), curr);
}, {}),
};
case "children":
return { tag: "slotChildren", data: children.filter(function (v) { return v; }) };
case "components":
return { tag: "components", data: children };
case "assets":
return { tag: "assets", data: children };
case "slot":
var slotData_1;
var slotChildren_1 = [];
var components_1 = [];
var assets_1 = [];
lodash_1.default.forEach(children, function (_a) {
var tag = _a.tag, data = _a.data;
switch (tag) {
case "slotData":
slotData_1 = data;
break;
case "slotChildren":
slotChildren_1 = data;
break;
case "components":
components_1 = data;
break;
case "assets":
assets_1 = data;
break;
}
});
var typeVersions_1 = {};
components_1.forEach(function (component) {
var _a;
typeVersions_1 = __assign(__assign({}, typeVersions_1), (component.version && component.version !== 0
? (_a = {}, _a[component.Type] = component.version, _a) : {}));
});
assets_1.forEach(function (component) {
var _a;
typeVersions_1 = __assign(__assign({}, typeVersions_1), (component.version && component.version !== 0
? (_a = {}, _a[component.Type] = component.version, _a) : {}));
});
var slotId = slotData_1["ID"];
var Children = lodash_1.default.map(slotChildren_1 !== null && slotChildren_1 !== void 0 ? slotChildren_1 : [], function (_a) {
var Object = _a.Object, Assets = _a.Assets, TypeVersions = _a.TypeVersions;
assets_1 = __spreadArray(__spreadArray([], (assets_1 !== null && assets_1 !== void 0 ? assets_1 : []), true), (Assets !== null && Assets !== void 0 ? Assets : []).filter(function (asset) {
var _a;
return !lodash_1.default.has((_a = assets_1 === null || assets_1 === void 0 ? void 0 : assets_1.map(function (asset) {
return lodash_1.default.get(asset, ["Data", "ID"]);
})) !== null && _a !== void 0 ? _a : [], lodash_1.default.get(asset, ["Data", "ID"]));
}), true);
typeVersions_1 = __assign(__assign({}, TypeVersions), typeVersions_1);
return __assign(__assign({}, Object), { ParentReference: (0, uuid_1.v4)() });
});
var Components = {
ID: generateId(),
Data: components_1.map(function (_a) {
var version = _a.version, component = __rest(_a, ["version"]);
return component;
}),
};
return {
Object: __assign(__assign({}, (slotData_1 !== null && slotData_1 !== void 0 ? slotData_1 : {})), { Components: Components, Children: Children }),
Assets: assets_1,
TypeVersions: typeVersions_1,
};
case "raw":
var json = props.json;
return json;
case "idSpace":
clearKeyMap();
return children;
case "id":
var key = props.key;
return generateId(key);
}
}
exports.jsx = jsx;
exports.jsxs = jsx;
function Fragment(props) {
return props.children;
}
exports.Fragment = Fragment;
var Component = /** @class */ (function () {
function Component(props) {
this.element = null;
this.props = props;
}
Component.prototype.render = function () {
return null;
};
return Component;
}());
exports.Component = Component;