labellife-design-tool 2.2.8 → 2.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/canvas/workspace.js +18 -7
- package/dist/cjs/canvas/workspace.js.map +1 -1
- package/dist/cjs/index.js +18 -7
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/canvas/workspace.js +18 -7
- package/dist/esm/canvas/workspace.js.map +1 -1
- package/dist/esm/index.js +18 -7
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -975,8 +975,10 @@ var TextElementComponent = mobxReactLite.observer(function (_ref) {
|
|
|
975
975
|
var scaleY = absScale.y;
|
|
976
976
|
var cssFontStyle = element.fontStyle === 'italic' ? 'italic' : 'normal';
|
|
977
977
|
var cssFontWeight = String(element.fontWeight || 'normal');
|
|
978
|
+
var originalText = element.text;
|
|
978
979
|
var textarea = document.createElement('textarea');
|
|
979
|
-
textarea.value =
|
|
980
|
+
textarea.value = '';
|
|
981
|
+
textarea.placeholder = originalText;
|
|
980
982
|
textarea.style.position = 'absolute';
|
|
981
983
|
textarea.style.top = "".concat(textPosition.y, "px");
|
|
982
984
|
textarea.style.left = "".concat(textPosition.x, "px");
|
|
@@ -1009,15 +1011,21 @@ var TextElementComponent = mobxReactLite.observer(function (_ref) {
|
|
|
1009
1011
|
textarea.style.wordBreak = 'break-word';
|
|
1010
1012
|
textarea.style.minHeight = '0';
|
|
1011
1013
|
textarea.style.minWidth = '0';
|
|
1014
|
+
|
|
1015
|
+
// Placeholder inherits the element's text color at 40% opacity
|
|
1016
|
+
var placeholderStyle = document.createElement('style');
|
|
1017
|
+
placeholderStyle.textContent = "\n textarea:placeholder-shown { opacity: 1; }\n textarea::placeholder { color: ".concat(element.fill, "; opacity: 0.4; }\n ");
|
|
1018
|
+
stageContainer.appendChild(placeholderStyle);
|
|
1012
1019
|
stageContainer.appendChild(textarea);
|
|
1013
1020
|
textarea.focus();
|
|
1014
|
-
textarea.select();
|
|
1015
1021
|
var removed = false;
|
|
1016
1022
|
var removeTextarea = function removeTextarea() {
|
|
1023
|
+
var cancel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
1017
1024
|
if (removed) return;
|
|
1018
1025
|
removed = true;
|
|
1026
|
+
var newText = !cancel && textarea.value.length > 0 ? textarea.value : originalText;
|
|
1019
1027
|
element.set({
|
|
1020
|
-
text:
|
|
1028
|
+
text: newText
|
|
1021
1029
|
});
|
|
1022
1030
|
element.toggleEditMode(false);
|
|
1023
1031
|
if (grp) grp.show();
|
|
@@ -1025,12 +1033,15 @@ var TextElementComponent = mobxReactLite.observer(function (_ref) {
|
|
|
1025
1033
|
if (textarea.parentNode) {
|
|
1026
1034
|
textarea.parentNode.removeChild(textarea);
|
|
1027
1035
|
}
|
|
1036
|
+
if (placeholderStyle.parentNode) {
|
|
1037
|
+
placeholderStyle.parentNode.removeChild(placeholderStyle);
|
|
1038
|
+
}
|
|
1028
1039
|
};
|
|
1029
|
-
textarea.addEventListener('blur',
|
|
1040
|
+
textarea.addEventListener('blur', function () {
|
|
1041
|
+
return removeTextarea(false);
|
|
1042
|
+
});
|
|
1030
1043
|
textarea.addEventListener('keydown', function (e) {
|
|
1031
|
-
if (e.key === 'Escape')
|
|
1032
|
-
removeTextarea();
|
|
1033
|
-
}
|
|
1044
|
+
if (e.key === 'Escape') removeTextarea(true);
|
|
1034
1045
|
});
|
|
1035
1046
|
};
|
|
1036
1047
|
|