UNPKG

@mopinion/survey

Version:

Collect customer feedback with the Mopinion survey library

122 lines (121 loc) 7.04 kB
"use strict"; 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