UNPKG

@mopinion/survey

Version:

Collect customer feedback with the Mopinion survey library

61 lines (60 loc) 3.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = GroupTitle; var _preact = require("preact"); var _hooks = require("preact/hooks"); var _form = require("../../form"); var _utils = require("../../../utils"); var _HandleTabIndex = _interopRequireDefault(require("./HandleTabIndex")); var _excluded = ["children", "block", "requiredMarkLabel"]; function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; } function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; } function GroupTitle(_ref) { var _block$properties, _block$properties2; var children = _ref.children, block = _ref.block, _ref$requiredMarkLabe = _ref.requiredMarkLabel, requiredMarkLabel = _ref$requiredMarkLabe === void 0 ? '' : _ref$requiredMarkLabe, props = _objectWithoutProperties(_ref, _excluded); var focus = (0, _hooks.useRef)(false); var isSingleLine = typeof children === 'string' && children.split(/<br\s*\/?>/gi).length === 1; var WrappingElement = ['textarea', 'input', 'contact'].indexOf(block.typeName) > -1 ? 'div' : 'legend'; return block.typeName !== 'section_break' ? (0, _preact.h)(WrappingElement, { "class": "block-title", id: "block-title-".concat(block.typeName, "-").concat(block.id).concat(block.typeName === 'special_input' ? "-".concat(props._id) : ''), tabIndex: "-1" }, block.typeName !== 'special_input' && block.typeName !== 'textarea' && block.typeName !== 'input' ? (0, _preact.h)("span", null, (0, _preact.toChildArray)(children).map(function (child) { return (0, _utils.mapBrFromString)(child, props.required ? requiredMarkLabel : false); })) : (0, _preact.h)("label", { "for": block.typeName === 'special_input' ? "element-".concat(block.typeName, "-").concat(block.id, "-").concat(props._id) : ['textarea', 'input'].indexOf(block.typeName) > -1 ? "element-".concat(block.typeName, "-").concat(block.id) : null, onKeyDown: function onKeyDown() { focus.current = !block.tooltip ? true : false; } }, (0, _preact.toChildArray)(children).map(function (child) { return (0, _utils.mapBrFromString)(child, props.required ? requiredMarkLabel : false); }), ((_block$properties = block.properties) === null || _block$properties === void 0 ? void 0 : _block$properties.placeholder) && (0, _preact.h)("span", { className: (0, _utils.makeClassName)('input-placeholder-helper') }, (_block$properties2 = block.properties) === null || _block$properties2 === void 0 ? void 0 : _block$properties2.placeholder)), block.tooltip && isNaN(block.tooltip) ? (0, _preact.h)(_HandleTabIndex["default"], { component: "div", useTabIndexWhenOpen: true, role: "tooltip", "class": "tooltip", "aria-label": block.tooltip }, (0, _preact.h)(_form.SvgIcon, { icon: "question", alt: "questionmark icon" }), (0, _preact.h)("div", { "aria-label": block.tooltip }, (0, _utils.mapBrFromString)(block.tooltip))) : null, props.required && isSingleLine ? (0, _preact.h)("span", { "class": "required-mark" }, "*") : null) : (0, _preact.h)("h3", { "class": "section-title", tabIndex: "-1" }, (0, _preact.toChildArray)(children).map(function (child) { return (0, _utils.mapBrFromString)(child); })); } //# sourceMappingURL=GroupTitle.js.map