@mopinion/survey
Version:
Collect customer feedback with the Mopinion survey library
61 lines (60 loc) • 3.78 kB
JavaScript
;
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