UNPKG

@atlaskit/editor-plugin-extension

Version:

editor-plugin-extension plugin for @atlaskit/editor-core

170 lines (169 loc) 7.11 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Boolean; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireWildcard(require("react")); var _react2 = require("@emotion/react"); var _checkbox = require("@atlaskit/checkbox"); var _form = require("@atlaskit/form"); var _compiled = require("@atlaskit/primitives/compiled"); var _toggle = _interopRequireDefault(require("@atlaskit/toggle")); var _FieldMessages = _interopRequireDefault(require("../FieldMessages")); var _types = require("../types"); var _excluded = ["value"], _excluded2 = ["id", "value"]; /** * @jsxRuntime classic * @jsx jsx */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled, @typescript-eslint/consistent-type-imports function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } var toggleFieldWrapperStyles = (0, _react2.css)({ display: 'flex' }); var toggleLabelStyles = (0, _react2.css)({ display: 'flex', padding: "var(--ds-space-050, 4px)".concat(" ", "var(--ds-space-050, 4px)", " ", "var(--ds-space-050, 4px)", " ", "var(--ds-space-0, 0px)"), flexGrow: 1 }); function _validate(value, isRequired) { if (isRequired && !value) { return _types.ValidationError.Required; } } function parseBoolean(value) { if (typeof value === 'boolean') { return value; } return value === 'true'; } function handleOnChange(onChange, onFieldChange, event) { var _event$target; onChange((event === null || event === void 0 || (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.checked) || false); // Note: prior to bumping typescript to version 2.4.2 onFieldChange // was being called with a global variable (which had a value of '') // While this was not intended, the code still worked as expected. // In typescript 2.4.2 accessing the global variable name has been // deprecated, so this has been replaced with the value it was // previously passing. onFieldChange('', true); } function Checkbox(_ref) { var name = _ref.name, field = _ref.field, onFieldChange = _ref.onFieldChange; var label = field.label, description = field.description, _field$isRequired = field.isRequired, isRequired = _field$isRequired === void 0 ? false : _field$isRequired, _field$defaultValue = field.defaultValue, defaultValue = _field$defaultValue === void 0 ? false : _field$defaultValue, isDisabled = field.isDisabled; return (0, _react2.jsx)(_form.Field, { name: name, isRequired: isRequired // eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed) , validate: function validate(value) { return _validate(value, isRequired); }, defaultValue: defaultValue, isDisabled: isDisabled }, function (_ref2) { var fieldProps = _ref2.fieldProps, error = _ref2.error; var isChecked = fieldProps.value, restFieldProps = (0, _objectWithoutProperties2.default)(fieldProps, _excluded); return (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(_checkbox.Checkbox // Ignored via go/ees005 // eslint-disable-next-line react/jsx-props-no-spreading , (0, _extends2.default)({}, restFieldProps, { label: label // eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed) , onChange: function onChange(event) { return handleOnChange(fieldProps.onChange, onFieldChange, event); }, isChecked: parseBoolean(isChecked) })), (0, _react2.jsx)(_FieldMessages.default, { error: error, description: description })); }); } function Toggle(_ref3) { var name = _ref3.name, field = _ref3.field, onFieldChange = _ref3.onFieldChange; var label = field.label, description = field.description, _field$isRequired2 = field.isRequired, isRequired = _field$isRequired2 === void 0 ? false : _field$isRequired2, _field$defaultValue2 = field.defaultValue, defaultValue = _field$defaultValue2 === void 0 ? false : _field$defaultValue2, isDisabled = field.isDisabled; return (0, _react2.jsx)(_form.Field, { name: name, isRequired: isRequired // eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed) , validate: function validate(value) { return _validate(value, isRequired); }, defaultValue: defaultValue, testId: "config-panel-toggle-".concat(name), isDisabled: isDisabled }, function (_ref4) { var fieldProps = _ref4.fieldProps, error = _ref4.error; var id = fieldProps.id, isChecked = fieldProps.value, restFieldProps = (0, _objectWithoutProperties2.default)(fieldProps, _excluded2); return (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)("div", { css: toggleFieldWrapperStyles }, (0, _react2.jsx)("label", { css: toggleLabelStyles, htmlFor: id }, label, isRequired ? // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-jsx (0, _react2.jsx)(_compiled.Text, { color: "color.text.danger", "aria-hidden": "true" }, "*") : null), (0, _react2.jsx)(_toggle.default // Ignored via go/ees005 // eslint-disable-next-line react/jsx-props-no-spreading , (0, _extends2.default)({}, restFieldProps, { // eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed) onChange: function onChange(event) { return handleOnChange(fieldProps.onChange, onFieldChange, event); }, isChecked: parseBoolean(isChecked), id: id }))), (0, _react2.jsx)(_FieldMessages.default, { error: error, description: description })); }); } function Boolean(_ref5) { var name = _ref5.name, field = _ref5.field, onFieldChange = _ref5.onFieldChange; if (field.style === 'toggle') { return (0, _react2.jsx)(Toggle, { name: name, field: field, onFieldChange: onFieldChange }); } return (0, _react2.jsx)(Checkbox, { name: name, field: field, onFieldChange: onFieldChange }); }