UNPKG

@edtr-io/plugin-text

Version:
126 lines (101 loc) 4.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _exportNames = { textPlugin: true, textPluginThemeFactory: true, createTextPluginTheme: true, trimSelection: true, getTrimmedSelectionRange: true }; exports.trimSelection = trimSelection; exports.getTrimmedSelectionRange = getTrimmedSelectionRange; exports.createTextPluginTheme = exports.textPluginThemeFactory = exports.textPlugin = void 0; var React = _interopRequireWildcard(require("react")); var _slate = require("slate"); var _plugins = require("./plugins"); var _factory = require("./factory"); Object.keys(_factory).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _factory[key]; } }); }); var _controls = require("./controls"); var _ui = require("@edtr-io/ui"); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } var textPlugin = (0, _factory.createTextPlugin)({ plugins: [].concat(_toConsumableArray(_plugins.plugins), [(0, _controls.createUiPlugin)({ Component: _controls.Controls })]), placeholder: React.createElement(React.Fragment, null, "Schreibe etwas oder f\xFCge mit \u2295 Aufgaben und Tools hinzu") }); exports.textPlugin = textPlugin; var textPluginThemeFactory = function textPluginThemeFactory(theme) { var blue = '#1794c1', green = '#469a40', orange = '#ff6703'; return { backgroundColor: 'transparent', color: theme.editor.color, hoverColor: theme.editor.primary.background, active: { backgroundColor: '#b6b6b6', color: theme.editor.backgroundColor }, dropDown: { backgroundColor: theme.editor.backgroundColor }, plugins: { colors: { colors: [blue, green, orange], defaultColor: 'black' } } }; }; exports.textPluginThemeFactory = textPluginThemeFactory; var createTextPluginTheme = (0, _ui.createPluginTheme)(textPluginThemeFactory); exports.createTextPluginTheme = createTextPluginTheme; function trimSelection(editor) { // Trimm selection before applying transformation var selection = document.getSelection(); if (selection) { var str = selection.toString(); while (str.startsWith(' ')) { editor.moveStartForward(1); str = str.substring(1); } while (str.endsWith(' ')) { editor.moveEndBackward(1); str = str.substring(0, str.length - 1); } } } function getTrimmedSelectionRange(editor) { // get trimmed selection, without changing editor (e.g. for checking active marks) var native = document.getSelection(); var selection = editor.value.selection.toRange(); if (native) { var str = native.toString(); while (str.startsWith(' ')) { selection = selection.moveStartForward(1); str = str.substring(1); } while (str.endsWith(' ')) { selection = selection.moveEndBackward(1); str = str.substring(0, str.length - 1); } } return _slate.Range.create(selection); } //# sourceMappingURL=index.js.map