UNPKG

@atlaskit/editor-plugin-toolbar-lists-indentation

Version:

Toolbar lists and indentation plugin for @atlaskit/editor-core

142 lines (141 loc) 7.33 kB
/* Toolbar.tsx generated by @compiled/babel-plugin v0.39.1 */ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.Toolbar = Toolbar; var _react = _interopRequireWildcard(require("react")); var React = _react; var _runtime = require("@compiled/react/runtime"); var _reactIntl = require("react-intl"); var _keymaps = require("@atlaskit/editor-common/keymaps"); var _messages = require("@atlaskit/editor-common/messages"); var _ui = require("@atlaskit/editor-common/ui"); var _uiMenu = require("@atlaskit/editor-common/ui-menu"); var _listBulleted = _interopRequireDefault(require("@atlaskit/icon/core/list-bulleted")); var _listNumbered = _interopRequireDefault(require("@atlaskit/icon/core/list-numbered")); var _textIndentLeft = _interopRequireDefault(require("@atlaskit/icon/core/text-indent-left")); var _textIndentRight = _interopRequireDefault(require("@atlaskit/icon/core/text-indent-right")); 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); } function Toolbar(props) { var _useIntl = (0, _reactIntl.useIntl)(), formatMessage = _useIntl.formatMessage; var indentButtonRef = (0, _react.useRef)(null); var outdentButtonRef = (0, _react.useRef)(null); var disabled = props.disabled, isReducedSpacing = props.isReducedSpacing, bulletListActive = props.bulletListActive, bulletListDisabled = props.bulletListDisabled, orderedListActive = props.orderedListActive, orderedListDisabled = props.orderedListDisabled, showIndentationButtons = props.showIndentationButtons, indentDisabled = props.indentDisabled, outdentDisabled = props.outdentDisabled, onItemActivated = props.onItemActivated, pluginInjectionApi = props.pluginInjectionApi; var labelUnorderedList = formatMessage(_messages.listMessages.unorderedList); var labelOrderedList = formatMessage(_messages.listMessages.orderedList); var labelListsFormat = formatMessage(_messages.listMessages.listsFormat); var indentMessage = formatMessage(_messages.indentationMessages.indent); var outdentMessage = formatMessage(_messages.indentationMessages.outdent); var isIndentButtonFocused = document.activeElement === indentButtonRef.current; var isOutdentButtonFocused = document.activeElement === outdentButtonRef.current; var handleOnItemActivated = function handleOnItemActivated(buttonName) { return function (event) { return onItemActivated({ editorView: props.editorView, buttonName: buttonName }); }; }; (0, _react.useEffect)(function () { if (isIndentButtonFocused && indentDisabled && outdentButtonRef.current) { outdentButtonRef.current.focus(); } }, [indentButtonRef, indentDisabled, isIndentButtonFocused]); (0, _react.useEffect)(function () { if (isOutdentButtonFocused && outdentDisabled && indentButtonRef.current) { indentButtonRef.current.focus(); } }, [outdentButtonRef, outdentDisabled, isOutdentButtonFocused]); return /*#__PURE__*/React.createElement(_ui.ToolbarButtonGroup, null, /*#__PURE__*/React.createElement("div", { role: "group", "aria-label": labelListsFormat }, /*#__PURE__*/React.createElement(_uiMenu.ToolbarButton, { buttonId: _uiMenu.TOOLBAR_BUTTON.BULLET_LIST, testId: labelUnorderedList, spacing: isReducedSpacing ? 'none' : 'default', onClick: handleOnItemActivated('bullet_list'), selected: bulletListActive, "aria-pressed": bulletListActive, "aria-label": (0, _keymaps.tooltip)(_keymaps.toggleBulletList, labelUnorderedList), "aria-keyshortcuts": (0, _keymaps.getAriaKeyshortcuts)(_keymaps.toggleBulletList), disabled: bulletListDisabled || disabled, title: /*#__PURE__*/React.createElement(_keymaps.ToolTipContent, { description: labelUnorderedList, keymap: _keymaps.toggleBulletList }), iconBefore: /*#__PURE__*/React.createElement(_listBulleted.default, { label: "", color: "currentColor", spacing: "spacious" }) }), /*#__PURE__*/React.createElement(_uiMenu.ToolbarButton, { buttonId: _uiMenu.TOOLBAR_BUTTON.ORDERED_LIST, testId: labelOrderedList, spacing: isReducedSpacing ? 'none' : 'default', onClick: handleOnItemActivated('ordered_list'), selected: orderedListActive, "aria-pressed": orderedListActive, "aria-label": (0, _keymaps.tooltip)(_keymaps.toggleOrderedList, labelOrderedList), "aria-keyshortcuts": (0, _keymaps.getAriaKeyshortcuts)(_keymaps.toggleOrderedList), disabled: orderedListDisabled || disabled, title: /*#__PURE__*/React.createElement(_keymaps.ToolTipContent, { description: labelOrderedList, keymap: _keymaps.toggleOrderedList }), iconBefore: /*#__PURE__*/React.createElement(_listNumbered.default, { color: "currentColor", spacing: "spacious", label: "" }) }), showIndentationButtons && /*#__PURE__*/React.createElement(_uiMenu.ToolbarButton, { buttonId: _uiMenu.TOOLBAR_BUTTON.OUTDENT, testId: _uiMenu.TOOLBAR_BUTTON.OUTDENT, ref: outdentButtonRef, spacing: isReducedSpacing ? 'none' : 'default', onClick: handleOnItemActivated('outdent'), iconBefore: /*#__PURE__*/React.createElement(_textIndentLeft.default, { color: "currentColor", spacing: "spacious", label: "" }), disabled: outdentDisabled || disabled, "aria-label": (0, _keymaps.tooltip)(_keymaps.outdent, outdentMessage), "aria-keyshortcuts": (0, _keymaps.getAriaKeyshortcuts)(_keymaps.outdent), title: /*#__PURE__*/React.createElement(_keymaps.ToolTipContent, { description: outdentMessage, keymap: _keymaps.outdent }) }), showIndentationButtons && /*#__PURE__*/React.createElement(_uiMenu.ToolbarButton, { buttonId: _uiMenu.TOOLBAR_BUTTON.INDENT, testId: _uiMenu.TOOLBAR_BUTTON.INDENT, ref: indentButtonRef, spacing: isReducedSpacing ? 'none' : 'default', onClick: handleOnItemActivated('indent'), iconBefore: /*#__PURE__*/React.createElement(_textIndentRight.default, { color: "currentColor", spacing: "spacious", label: "" }), disabled: indentDisabled || disabled, "aria-label": (0, _keymaps.tooltip)(_keymaps.indent, indentMessage), "aria-keyshortcuts": (0, _keymaps.getAriaKeyshortcuts)(_keymaps.indent), title: /*#__PURE__*/React.createElement(_keymaps.ToolTipContent, { description: indentMessage, keymap: _keymaps.indent }) })), !(pluginInjectionApi !== null && pluginInjectionApi !== void 0 && pluginInjectionApi.primaryToolbar) && /*#__PURE__*/React.createElement(_ui.ToolbarSeparator, null)); }