@try-at-software/input-elements
Version:
A package providing different input elements that are extensible and easily configurable for your custom needs.
34 lines (33 loc) • 2.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DynamicInputsList = void 0;
const React = require("react");
const react_beautiful_dnd_1 = require("react-beautiful-dnd");
const Utilities_1 = require("../Utilities");
require("./DynamicInputsList.less");
class DynamicInputsList extends React.Component {
render() {
return (React.createElement("div", { className: Utilities_1.combineClasses('tas-dynamic-list-input', this.props.className) },
React.createElement(react_beautiful_dnd_1.DragDropContext, { onDragEnd: this.props.onDragEnd },
React.createElement(react_beautiful_dnd_1.Droppable, { droppableId: "default-inputs-list" }, (provided) => (React.createElement("div", Object.assign({ ref: provided.innerRef }, provided.droppableProps),
this.renderInputsList(),
provided.placeholder)))),
this.props.renderFooterMenu()));
}
renderInputsList() {
return (React.createElement(React.Fragment, null, this.props.inputs.map((i, index) => {
return (React.createElement(react_beautiful_dnd_1.Draggable, { key: i.uniqueId, draggableId: i.uniqueId.toString(), index: index }, (provided) => (React.createElement("div", Object.assign({ className: "tas-dynamic-input-element", ref: provided.innerRef }, provided.draggableProps, provided.dragHandleProps), this.renderDynamicInput(i.input, index)))));
})));
}
renderDynamicInput(input, index) {
if (!input || index < 0)
return null;
return (React.createElement(React.Fragment, null,
React.createElement("div", { className: "tas-move-gripper hidable" }, !!this.props.renderMoveGripper ? this.props.renderMoveGripper() : React.createElement("span", null,
"#",
index + 1)),
React.createElement("div", { className: "tas-input-element-wrapper" }, input.render()),
React.createElement("div", { className: "tas-menu-wrapper" }, this.props.renderMenu(index))));
}
}
exports.DynamicInputsList = DynamicInputsList;