Socket
Socket
Sign inDemoInstall

@dhis2/d2-ui-rich-text

Package Overview
Dependencies
Maintainers
13
Versions
93
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dhis2/d2-ui-rich-text - npm Package Compare versions

Comparing version 5.0.18 to 5.1.0

62

editor/convertCtrlKey.js

@@ -12,2 +12,9 @@ var state = {

var trim = function trim(str) {
var leftSpaces = /^\s+/;
var rightSpaces = /\s+$/;
return str.replace(leftSpaces, '').replace(rightSpaces, '');
};
var toggleMode = function toggleMode(mode) {

@@ -20,25 +27,56 @@ var prop = mode + 'Mode';

var insertMarkers = function insertMarkers(mode, cb) {
toggleMode(mode);
var _state$element = state.element,
start = _state$element.selectionStart,
end = _state$element.selectionEnd,
value = _state$element.value;
var marker = markerMap[mode] || null;
if (!marker || !cb) {
if (!marker || !cb || start < 0) {
return;
}
var element = state.element;
var selectionStart = element.selectionStart,
selectionEnd = element.selectionEnd,
value = element.value;
toggleMode(mode);
var newValue = void 0;
var caretPos = end + 1;
if (selectionStart >= 0 && selectionStart === selectionEnd) {
newValue = '' + value + marker;
} else if (selectionStart >= 0) {
newValue = [value.slice(0, selectionStart), value.slice(selectionStart, selectionEnd), value.slice(selectionEnd)].join(marker);
var padMarkers = function padMarkers(text) {
// is caret between two markers (i.e., "**" or "__")? Then do not add padding
if (start === end && value.length && start > 0) {
if (value[start - 1] === markerMap.bold && value[start] === markerMap.bold || value[start - 1] === markerMap.italic && value[start] === markerMap.italic) {
return text;
}
}
if (value.length && start > 0 && value[start - 1] !== ' ') {
text = ' ' + text;
++caretPos;
}
if (value.length && end !== value.length && value[end] !== ' ') {
text = text + ' ';
}
return text;
};
if (start === end) {
//no text
var valueArr = value.split('');
valueArr.splice(start, 0, padMarkers('' + marker + marker));
newValue = valueArr.join('');
} else {
var text = value.slice(start, end);
var trimmedText = trim(text);
// adjust caretPos based on trimmed text selection
caretPos = caretPos - (text.length - trimmedText.length) + 1;
newValue = [value.slice(0, start), padMarkers('' + marker + trimmedText + marker), value.slice(end)].join('');
toggleMode(mode);
}
cb(newValue);
cb(newValue, caretPos);
};

@@ -57,4 +95,6 @@

if (key === "b" && (ctrlKey || metaKey)) {
event.preventDefault();
insertMarkers("bold", cb);
} else if (key === "i" && (ctrlKey || metaKey)) {
event.preventDefault();
insertMarkers("italic", cb);

@@ -61,0 +101,0 @@ }

2

package.json

@@ -32,4 +32,4 @@ {

},
"version": "5.0.18",
"version": "5.1.0",
"private": false
}

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc