UNPKG

@atlaskit/editor-plugin-extension

Version:

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

162 lines (161 loc) 5.8 kB
import _extends from "@babel/runtime/helpers/extends"; import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties"; var _excluded = ["value"], _excluded2 = ["id", "value"]; /** * @jsxRuntime classic * @jsx jsx */ import React, { Fragment } from 'react'; // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled, @typescript-eslint/consistent-type-imports import { css, jsx } from '@emotion/react'; import { Checkbox as AKCheckbox } from '@atlaskit/checkbox'; import { Field } from '@atlaskit/form'; import { Text } from '@atlaskit/primitives/compiled'; import AKToggle from '@atlaskit/toggle'; import FieldMessages from '../FieldMessages'; import { ValidationError } from '../types'; var toggleFieldWrapperStyles = css({ display: 'flex' }); var toggleLabelStyles = 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 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 jsx(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 = _objectWithoutProperties(fieldProps, _excluded); return jsx(Fragment, null, jsx(AKCheckbox // Ignored via go/ees005 // eslint-disable-next-line react/jsx-props-no-spreading , _extends({}, 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) })), jsx(FieldMessages, { 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 jsx(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 = _objectWithoutProperties(fieldProps, _excluded2); return jsx(Fragment, null, jsx("div", { css: toggleFieldWrapperStyles }, jsx("label", { css: toggleLabelStyles, htmlFor: id }, label, isRequired ? // eslint-disable-next-line @atlassian/i18n/no-literal-string-in-jsx jsx(Text, { color: "color.text.danger", "aria-hidden": "true" }, "*") : null), jsx(AKToggle // Ignored via go/ees005 // eslint-disable-next-line react/jsx-props-no-spreading , _extends({}, 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 }))), jsx(FieldMessages, { error: error, description: description })); }); } export default function Boolean(_ref5) { var name = _ref5.name, field = _ref5.field, onFieldChange = _ref5.onFieldChange; if (field.style === 'toggle') { return jsx(Toggle, { name: name, field: field, onFieldChange: onFieldChange }); } return jsx(Checkbox, { name: name, field: field, onFieldChange: onFieldChange }); }