UNPKG

@prisma-cms/front-editor

Version:
132 lines 5.99 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; 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 __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ObjectContext = void 0; const react_1 = __importStar(require("react")); // import PropTypes from 'prop-types'; const ViewModule_1 = __importDefault(require("material-ui-icons/ViewModule")); const __1 = __importStar(require("..")); const EditorComponent_1 = __importDefault(require("../../../../EditorComponent")); const Iterable_1 = __importDefault(require("./Iterable")); const NamedField_1 = __importDefault(require("../Fields/NamedField")); const DefaultValue_1 = __importDefault(require("../Fields/NamedField/DefaultValue")); exports.ObjectContext = react_1.createContext({}); class ListView extends EditorComponent_1.default { renderPanelView(content) { return super.renderPanelView(content || (react_1.default.createElement("div", { className: "editor-component--panel-icon" }, react_1.default.createElement(ViewModule_1.default, null), " List View"))); } // getRenderProps() { // const { // style, // ...props // } = super.getRenderProps(); // return { // style: { // ...style, // width: "100%", // display: "flex", // flexDirection: "row", // flexWrap: "wrap", // }, // ...props, // } // } canBeParent(parent) { return (super.canBeParent(parent) && this.findInParent(parent, (parent) => parent instanceof __1.default || parent instanceof NamedField_1.default)); } // renderMainView() { // const { // inEditMode, // } = this.getEditorContext(); // return inEditMode ? super.renderMainView() : this.renderChildren(); // } renderChildren() { return (react_1.default.createElement(__1.ConnectorContext.Consumer, { key: "connector_context" }, (context) => { const { data } = context; if (!data) { return null; } const { objects, objectsConnection } = data, otherData = __rest(data, ["objects", "objectsConnection"]); const items = objects ? objects : objectsConnection ? objectsConnection.edges.map((n) => n.node) : null; if (!items) { return null; } let children = super.renderChildren() || []; let output = null; /** Так как в некоторых случаях нам надо вывести полученные данные без лишних оберток, проверяем является ли дочерний элемент производным от Iterable. Если является таковым, то рендерим в него все полученные объекты if (children.length === 1 && children[0].__proto__.isPrototypeOf(Iterable)) */ if (children.length === 1 && children[0] && // eslint-disable-next-line no-prototype-builtins (Iterable_1.default.isPrototypeOf(children[0].type) || children[0].type === Iterable_1.default)) { const child = children[0]; const { type: Type, props } = child; output = (react_1.default.createElement(Type, Object.assign({}, props, { items: items, ObjectContext: exports.ObjectContext }))); } else { if (items.length) { children = children.filter((n) => n && n.type !== DefaultValue_1.default); output = items.map((n, index) => { const { id } = n; return (react_1.default.createElement(exports.ObjectContext.Provider, { key: id || index, value: Object.assign({ object: n }, otherData) }, children)); }); } else { output = children.filter((n) => n && n.type === DefaultValue_1.default); } } return output; })); } } ListView.defaultProps = Object.assign(Object.assign({}, EditorComponent_1.default.defaultProps), { // spacing: 8, hide_wrapper_in_default_mode: true }); ListView.Name = 'ListView'; ListView.help_url = 'https://front-editor.prisma-cms.com/topics/list-view.html'; exports.default = ListView; //# sourceMappingURL=index.js.map