@mopinion/survey
Version:
Collect customer feedback with the Mopinion survey library
122 lines (121 loc) • 7.04 kB
JavaScript
;
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = Screenshot;
var _preact = require("preact");
var _hooks = require("preact/hooks");
var _form = require("../../form");
var _conversational = require("../../conversational");
var _Selectable = _interopRequireDefault(require("./Selectable"));
var _HandleTabIndex = _interopRequireDefault(require("./HandleTabIndex"));
var _excluded = ["block", "state", "setValue", "setNestedValue", "elementIndex"];
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
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 Screenshot(_ref, ref) {
var _ref2, _text$screenCaptureTe;
var block = _ref.block,
state = _ref.state,
setValue = _ref.setValue,
setNestedValue = _ref.setNestedValue,
elementIndex = _ref.elementIndex,
props = _objectWithoutProperties(_ref, _excluded);
var _useFormStore = (0, _form.useFormStore)(),
actions = _useFormStore.actions,
screenshotButtonRef = _useFormStore.screenshotButtonRef,
currentConversationalFocusRef = _useFormStore.currentConversationalFocusRef;
var _useFormProps = (0, _form.useFormProps)(),
webView = _useFormProps.webView;
var _useConfigStore = (0, _form.useConfigStore)(),
text = _useConfigStore.text;
var _useProperties = (0, _form.useProperties)(),
conversational = _useProperties.conversational;
var _useWcagKeyboardEvent = (0, _conversational.useWcagKeyboardEvents)({
onSpaceEnter: function onSpaceEnter(e) {
e.stopPropagation();
e.preventDefault();
actions.toggleScreenshot(true);
}
}),
onKeyDown = _useWcagKeyboardEvent.onKeyDown;
(0, _hooks.useEffect)(function () {
if (conversational && elementIndex !== 0) {
actions.handleConversationalFocus();
actions.updateLastKeyPressed(null);
}
}, []);
return (0, _preact.h)(_preact.Fragment, null, !webView && (0, _preact.h)(_preact.Fragment, null, (0, _preact.h)("div", {
"class": "".concat(state.value ? 'screen-captured' : ''),
ref: currentConversationalFocusRef
}, (0, _preact.h)(_HandleTabIndex["default"], _extends({
ref: screenshotButtonRef,
component: "button",
type: "button",
id: "screenshot_element_".concat(block.id),
className: "section-screenshot ".concat(block.properties.bottomScreen && block.tooltip ? 'tooltip' : ''),
onClick: function onClick(e) {
e.stopPropagation();
actions.toggleScreenshot(true);
},
onKeyDown: onKeyDown,
"aria-label": (_ref2 = (_text$screenCaptureTe = text.screenCaptureText) !== null && _text$screenCaptureTe !== void 0 ? _text$screenCaptureTe : block.title) !== null && _ref2 !== void 0 ? _ref2 : ''
}, conversational && {
'aria-labelledby': "block-title-".concat(block.typeName, "-").concat(block.id)
}), (0, _preact.h)(_form.SvgIcon, {
icon: "camera",
alt: "camera icon"
}), (0, _preact.h)("div", {
className: "detect-capture"
}, (0, _preact.h)(_form.SvgIcon, {
icon: "check",
alt: text.screenCaptureSelected,
onClick: function onClick(e) {
return e.stopPropagation();
}
})), block.properties.bottomScreen && block.tooltip && (0, _preact.h)("span", {
className: "tooltip"
}, block.tooltip), block.properties.bottomScreen && block.required && (0, _preact.h)("span", {
className: "required-mark"
}, "*")))), webView && (0, _preact.h)(_preact.Fragment, null, conversational && !state.value && (0, _preact.h)(_Selectable["default"], {
block: _objectSpread(_objectSpread({}, block), {}, {
typeName: 'radio',
properties: {
show_as_buttons: true
}
}),
onChange: function onChange(e) {
setValue(e.target.checked ? window.screenToken || ' ' : '');
}
}, text.screenshotCheckboxLabel), conversational && state.value && (0, _preact.h)("div", {
className: "screen-captured"
}, (0, _preact.h)("div", {
id: "screenshot_element_".concat(block.id),
className: "section-screenshot"
}, (0, _preact.h)(_form.SvgIcon, {
icon: "camera",
alt: "camera icon"
}), (0, _preact.h)("div", {
className: "detect-capture"
}, (0, _preact.h)(_form.SvgIcon, {
icon: "check",
alt: "screenshot selected icon"
})))), !conversational && (0, _preact.h)(_Selectable["default"], {
block: _objectSpread(_objectSpread({}, block), {}, {
typeName: 'checkbox',
properties: {}
}),
onChange: function onChange(e) {
setValue(e.target.checked ? window.screenToken || ' ' : '');
},
checked: state.value
}, text.screenshotCheckboxLabel)));
}
//# sourceMappingURL=Screenshot.js.map