UNPKG

neos-script

Version:

[neos-script-sample](https://github.com/rheniumNV/neos-script-sample)

187 lines (186 loc) 7.8 kB
"use strict"; 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;