UNPKG

@talend/react-forms

Version:

React forms library based on json schema form.

111 lines (110 loc) 4.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _reactI18next = require("react-i18next"); var _classnames = _interopRequireDefault(require("classnames")); var _propTypes = _interopRequireDefault(require("prop-types")); var _designSystem = require("@talend/design-system"); var _constants = require("../../../constants"); var _Message = _interopRequireDefault(require("../../Message")); var _generateId = require("../../Message/generateId"); var _ArrayItem = _interopRequireDefault(require("./ArrayItem.component")); var _DefaultArrayTemplateModule = _interopRequireDefault(require("./DefaultArrayTemplate.module.scss")); var _reactComponents = require("@talend/react-components"); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function DefaultArrayTemplate(props) { const { t } = (0, _reactI18next.useTranslation)(_constants.I18N_DOMAIN_FORMS); const { canReorder, errorMessage, id, isValid, onAdd, onRemove, onReorder, renderItem, schema, value, valueIsUpdating, options = {}, isCloseable } = props; const descriptionId = (0, _generateId.generateDescriptionId)(id); const errorId = (0, _generateId.generateErrorId)(id); return /*#__PURE__*/(0, _jsxRuntime.jsxs)("fieldset", { className: (0, _classnames.default)(_DefaultArrayTemplateModule.default['tf-array-fieldset'], 'tf-array-fieldset'), "data-content": schema.title, children: [schema.title && /*#__PURE__*/(0, _jsxRuntime.jsx)(_designSystem.VisuallyHidden, { children: /*#__PURE__*/(0, _jsxRuntime.jsx)("legend", { children: schema.title }) }), !schema.readOnly && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactComponents.Action, { id: `${id || 'tf-array'}-btn`, className: (0, _classnames.default)(_DefaultArrayTemplateModule.default['tf-array-add'], 'tf-array-add'), bsStyle: "info", onClick: onAdd, disabled: valueIsUpdating || schema.disabled, label: options.btnLabel || t('ARRAY_ADD_ELEMENT', { defaultValue: 'Add' }) }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Message.default, { errorMessage: errorMessage, description: schema.description, isValid: isValid, descriptionId: descriptionId, errorId: errorId }), /*#__PURE__*/(0, _jsxRuntime.jsx)("ol", { id: id, className: (0, _classnames.default)(_DefaultArrayTemplateModule.default['tf-array'], 'tf-array'), "aria-describedby": `${descriptionId} ${errorId}`, "aria-invalid": isValid, children: value.map((itemValue, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)("li", { className: (0, _classnames.default)(_DefaultArrayTemplateModule.default.item, 'item', `item-${index}`), children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ArrayItem.default, { hasMoveDown: index < value.length - 1, hasMoveUp: index > 0, id: id && `${id}-control-${index}`, index: index, onRemove: onRemove, onReorder: canReorder ? onReorder : undefined, isClosed: itemValue.isClosed, valueIsUpdating: valueIsUpdating, renderItem: renderItem, isCloseable: isCloseable, disabled: schema.disabled, readOnly: schema.readOnly }) }, index)) })] }); } DefaultArrayTemplate.defaultProps = { isCloseable: false }; DefaultArrayTemplate.ArrayItem = _ArrayItem.default; if (process.env.NODE_ENV !== 'production') { DefaultArrayTemplate.propTypes = { canReorder: _propTypes.default.bool, errorMessage: _propTypes.default.string, id: _propTypes.default.string, isValid: _propTypes.default.bool, onAdd: _propTypes.default.func.isRequired, onRemove: _propTypes.default.func.isRequired, onReorder: _propTypes.default.func.isRequired, renderItem: _propTypes.default.func.isRequired, schema: _propTypes.default.object.isRequired, value: _propTypes.default.array.isRequired, valueIsUpdating: _propTypes.default.bool, options: _propTypes.default.shape({ btnLabel: _propTypes.default.string }), isCloseable: _propTypes.default.bool }; } var _default = exports.default = DefaultArrayTemplate; //# sourceMappingURL=DefaultArrayTemplate.component.js.map