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/index.js CHANGED
@@ -9951,8 +9951,10 @@ var TextElementComponent = mobxReactLite.observer(function (_ref) {
9951
9951
  var scaleY = absScale.y;
9952
9952
  var cssFontStyle = element.fontStyle === 'italic' ? 'italic' : 'normal';
9953
9953
  var cssFontWeight = String(element.fontWeight || 'normal');
9954
+ var originalText = element.text;
9954
9955
  var textarea = document.createElement('textarea');
9955
- textarea.value = element.text;
9956
+ textarea.value = '';
9957
+ textarea.placeholder = originalText;
9956
9958
  textarea.style.position = 'absolute';
9957
9959
  textarea.style.top = "".concat(textPosition.y, "px");
9958
9960
  textarea.style.left = "".concat(textPosition.x, "px");
@@ -9985,15 +9987,21 @@ var TextElementComponent = mobxReactLite.observer(function (_ref) {
9985
9987
  textarea.style.wordBreak = 'break-word';
9986
9988
  textarea.style.minHeight = '0';
9987
9989
  textarea.style.minWidth = '0';
9990
+
9991
+ // Placeholder inherits the element's text color at 40% opacity
9992
+ var placeholderStyle = document.createElement('style');
9993
+ placeholderStyle.textContent = "\n textarea:placeholder-shown { opacity: 1; }\n textarea::placeholder { color: ".concat(element.fill, "; opacity: 0.4; }\n ");
9994
+ stageContainer.appendChild(placeholderStyle);
9988
9995
  stageContainer.appendChild(textarea);
9989
9996
  textarea.focus();
9990
- textarea.select();
9991
9997
  var removed = false;
9992
9998
  var removeTextarea = function removeTextarea() {
9999
+ var cancel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
9993
10000
  if (removed) return;
9994
10001
  removed = true;
10002
+ var newText = !cancel && textarea.value.length > 0 ? textarea.value : originalText;
9995
10003
  element.set({
9996
- text: textarea.value
10004
+ text: newText
9997
10005
  });
9998
10006
  element.toggleEditMode(false);
9999
10007
  if (grp) grp.show();
@@ -10001,12 +10009,15 @@ var TextElementComponent = mobxReactLite.observer(function (_ref) {
10001
10009
  if (textarea.parentNode) {
10002
10010
  textarea.parentNode.removeChild(textarea);
10003
10011
  }
10012
+ if (placeholderStyle.parentNode) {
10013
+ placeholderStyle.parentNode.removeChild(placeholderStyle);
10014
+ }
10004
10015
  };
10005
- textarea.addEventListener('blur', removeTextarea);
10016
+ textarea.addEventListener('blur', function () {
10017
+ return removeTextarea(false);
10018
+ });
10006
10019
  textarea.addEventListener('keydown', function (e) {
10007
- if (e.key === 'Escape') {
10008
- removeTextarea();
10009
- }
10020
+ if (e.key === 'Escape') removeTextarea(true);
10010
10021
  });
10011
10022
  };
10012
10023