@activecollab/components 2.0.360 → 2.0.361

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.
@@ -8,7 +8,7 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _classnames = _interopRequireDefault(require("classnames"));
9
9
  var _EditableContent = require("../EditableContent/EditableContent");
10
10
  var _Styles = require("../EditableContent/Styles");
11
- var _excluded = ["onSave", "onCancel", "value", "inputProps", "allowEmptyString", "multiline", "variant", "weight", "disabled", "invalid", "wrapRef", "children"];
11
+ var _excluded = ["onSave", "onCancel", "value", "inputProps", "allowEmptyString", "multiline", "submitOnMetaEnter", "variant", "weight", "disabled", "invalid", "wrapRef", "children"];
12
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
13
  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); }
14
14
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -33,6 +33,8 @@ var EditableText = exports.EditableText = /*#__PURE__*/(0, _react.forwardRef)(fu
33
33
  allowEmptyString = _ref.allowEmptyString,
34
34
  _ref$multiline = _ref.multiline,
35
35
  multiline = _ref$multiline === void 0 ? false : _ref$multiline,
36
+ _ref$submitOnMetaEnte = _ref.submitOnMetaEnter,
37
+ submitOnMetaEnter = _ref$submitOnMetaEnte === void 0 ? false : _ref$submitOnMetaEnte,
36
38
  _ref$variant = _ref.variant,
37
39
  variant = _ref$variant === void 0 ? "Body 2" : _ref$variant,
38
40
  weight = _ref.weight,
@@ -88,6 +90,10 @@ var EditableText = exports.EditableText = /*#__PURE__*/(0, _react.forwardRef)(fu
88
90
  if (e.key === "Enter" && !multiline) {
89
91
  e.target.blur();
90
92
  }
93
+ if (e.key === "Enter" && multiline && submitOnMetaEnter && (e.metaKey || e.ctrlKey)) {
94
+ e.preventDefault();
95
+ e.target.blur();
96
+ }
91
97
  if (e.key === "Escape") {
92
98
  e.preventDefault();
93
99
  e.stopPropagation();
@@ -95,7 +101,7 @@ var EditableText = exports.EditableText = /*#__PURE__*/(0, _react.forwardRef)(fu
95
101
  e.target.blur();
96
102
  typeof onCancel === "function" && onCancel(e);
97
103
  }
98
- }, [onCancel, multiline]);
104
+ }, [onCancel, multiline, submitOnMetaEnter]);
99
105
  var handleChange = (0, _react.useCallback)(function (e) {
100
106
  setCurrentValue(e.target.value);
101
107
  }, []);
@@ -1 +1 @@
1
- {"version":3,"file":"EditableText.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_EditableContent","_Styles","_excluded","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_extends","assign","bind","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","l","iterator","u","next","done","return","isArray","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","EditableText","exports","forwardRef","_ref","ref","onSave","onCancel","inputProps","allowEmptyString","_ref$multiline","multiline","_ref$variant","variant","weight","_ref$disabled","disabled","invalid","wrapRef","children","props","_useState","useState","_useState2","currentValue","setCurrentValue","_useState3","_useState4","prevValue","setPrevValue","escapeRef","useRef","intTextareaRef","useEffect","handleBlur","useCallback","current","target","trim","scrollLeft","handleFocus","textarea","setSelectionRange","handleKeyDown","key","blur","preventDefault","stopPropagation","handleChange","createElement","StyledDiv","$multiline","StyledMultilineSpan","forwardedAs","$disabled","className","onClick","focus","replace","StyledTextareaSpan","onFocus","onBlur","onKeyDown","onChange","placeholder","classNames","rows","EditableContent","type","displayName"],"sources":["../../../../src/components/EditableText/EditableText.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport classNames from \"classnames\";\n\nimport {\n EditableContent,\n EditableContentInterface,\n} from \"../EditableContent/EditableContent\";\nimport {\n StyledDiv,\n StyledMultilineSpan,\n StyledTextareaSpan,\n} from \"../EditableContent/Styles\";\n\nexport interface EditableTextInterface extends EditableContentInterface {\n /** Value to display. */\n value?: string | null;\n /** Optional callback called on enter, click outside and tab. */\n onSave?: (e: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;\n /** Optional callback called on input reset. */\n onCancel?: (e) => void;\n /** If true, setting empty value will save it, instead of revert to previous value. */\n allowEmptyString?: boolean;\n /** If true, shows a textarea instead of input for multiline editing. */\n multiline?: boolean;\n /** Children content to display */\n children?: React.ReactNode;\n}\n\nexport const EditableText = forwardRef<HTMLDivElement, EditableTextInterface>(\n (\n {\n onSave,\n onCancel,\n value,\n inputProps,\n allowEmptyString,\n multiline = false,\n variant = \"Body 2\",\n weight,\n disabled = false,\n invalid,\n wrapRef,\n children,\n ...props\n },\n ref\n ) => {\n const [currentValue, setCurrentValue] = useState(value);\n const [prevValue, setPrevValue] = useState(value);\n const escapeRef = useRef(false);\n const intTextareaRef = useRef<HTMLTextAreaElement>(null);\n\n useEffect(() => {\n if (currentValue !== value) {\n setCurrentValue(value);\n setPrevValue(value);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n\n const handleBlur = useCallback(\n (e) => {\n if (escapeRef.current) {\n setCurrentValue(prevValue);\n escapeRef.current = false;\n } else {\n if (\n e.target.value.trim().length > 0 &&\n prevValue !== e.target.value\n ) {\n setPrevValue(e.target.value);\n setCurrentValue(e.target.value);\n typeof onSave === \"function\" && onSave(e);\n } else {\n !allowEmptyString\n ? setCurrentValue(prevValue)\n : typeof onSave === \"function\" &&\n prevValue !== e.target.value &&\n onSave(e);\n }\n }\n // Reset scroll position for textarea\n if (multiline && intTextareaRef?.current) {\n intTextareaRef.current.scrollLeft = 0;\n }\n },\n [allowEmptyString, onSave, prevValue, multiline]\n );\n\n const handleFocus = useCallback(\n (e) => {\n if (multiline) {\n const textarea = e.target;\n const length = textarea.value.length;\n textarea.setSelectionRange(length, length);\n }\n },\n [multiline]\n );\n\n const handleKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\" && !multiline) {\n e.target.blur();\n }\n if (e.key === \"Escape\") {\n e.preventDefault();\n e.stopPropagation();\n escapeRef.current = true;\n e.target.blur();\n typeof onCancel === \"function\" && onCancel(e);\n }\n },\n [onCancel, multiline]\n );\n\n const handleChange = useCallback((e) => {\n setCurrentValue(e.target.value);\n }, []);\n\n if (multiline) {\n return (\n <StyledDiv ref={ref || wrapRef} {...props} $multiline={multiline}>\n <StyledMultilineSpan\n variant={variant}\n forwardedAs=\"span\"\n weight={weight}\n $disabled={disabled}\n invalid={invalid}\n className=\"presentation\"\n onClick={() => {\n if (!disabled && intTextareaRef.current) {\n intTextareaRef.current.focus();\n }\n }}\n >\n {children\n ? children\n : String(currentValue || \"\").replace(/\\n/g, \" \")}\n </StyledMultilineSpan>\n <StyledTextareaSpan\n ref={intTextareaRef}\n forwardedAs=\"textarea\"\n variant={variant}\n weight={weight}\n value={currentValue ?? \"\"}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onChange={handleChange}\n disabled={disabled}\n invalid={invalid}\n data-form-type=\"other\"\n placeholder={inputProps?.placeholder}\n className={classNames(\"c-textarea\", inputProps?.className)}\n rows={3}\n {...inputProps}\n />\n </StyledDiv>\n );\n }\n\n return (\n <EditableContent\n {...props}\n variant={variant}\n weight={weight}\n disabled={disabled}\n invalid={invalid}\n wrapRef={wrapRef}\n ref={ref}\n inputProps={{\n ...inputProps,\n value: currentValue ?? \"\",\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n onChange: handleChange,\n type: \"text\",\n className: classNames(\"c-input\", inputProps?.className),\n }}\n >\n {children}\n </EditableContent>\n );\n }\n);\n\nEditableText.displayName = \"EditableText\";\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"EditableText.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_EditableContent","_Styles","_excluded","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_extends","assign","bind","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","l","iterator","u","next","done","return","isArray","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","EditableText","exports","forwardRef","_ref","ref","onSave","onCancel","inputProps","allowEmptyString","_ref$multiline","multiline","_ref$submitOnMetaEnte","submitOnMetaEnter","_ref$variant","variant","weight","_ref$disabled","disabled","invalid","wrapRef","children","props","_useState","useState","_useState2","currentValue","setCurrentValue","_useState3","_useState4","prevValue","setPrevValue","escapeRef","useRef","intTextareaRef","useEffect","handleBlur","useCallback","current","target","trim","scrollLeft","handleFocus","textarea","setSelectionRange","handleKeyDown","key","blur","metaKey","ctrlKey","preventDefault","stopPropagation","handleChange","createElement","StyledDiv","$multiline","StyledMultilineSpan","forwardedAs","$disabled","className","onClick","focus","replace","StyledTextareaSpan","onFocus","onBlur","onKeyDown","onChange","placeholder","classNames","rows","EditableContent","type","displayName"],"sources":["../../../../src/components/EditableText/EditableText.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport classNames from \"classnames\";\n\nimport {\n EditableContent,\n EditableContentInterface,\n} from \"../EditableContent/EditableContent\";\nimport {\n StyledDiv,\n StyledMultilineSpan,\n StyledTextareaSpan,\n} from \"../EditableContent/Styles\";\n\nexport interface EditableTextInterface extends EditableContentInterface {\n /** Value to display. */\n value?: string | null;\n /** Optional callback called on enter, click outside and tab. */\n onSave?: (e: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;\n /** Optional callback called on input reset. */\n onCancel?: (e) => void;\n /** If true, setting empty value will save it, instead of revert to previous value. */\n allowEmptyString?: boolean;\n /** If true, shows a textarea instead of input for multiline editing. */\n multiline?: boolean;\n /** If true, Cmd/Ctrl+Enter commits a multiline edit (plain Enter keeps inserting a newline). */\n submitOnMetaEnter?: boolean;\n /** Children content to display */\n children?: React.ReactNode;\n}\n\nexport const EditableText = forwardRef<HTMLDivElement, EditableTextInterface>(\n (\n {\n onSave,\n onCancel,\n value,\n inputProps,\n allowEmptyString,\n multiline = false,\n submitOnMetaEnter = false,\n variant = \"Body 2\",\n weight,\n disabled = false,\n invalid,\n wrapRef,\n children,\n ...props\n },\n ref\n ) => {\n const [currentValue, setCurrentValue] = useState(value);\n const [prevValue, setPrevValue] = useState(value);\n const escapeRef = useRef(false);\n const intTextareaRef = useRef<HTMLTextAreaElement>(null);\n\n useEffect(() => {\n if (currentValue !== value) {\n setCurrentValue(value);\n setPrevValue(value);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n\n const handleBlur = useCallback(\n (e) => {\n if (escapeRef.current) {\n setCurrentValue(prevValue);\n escapeRef.current = false;\n } else {\n if (\n e.target.value.trim().length > 0 &&\n prevValue !== e.target.value\n ) {\n setPrevValue(e.target.value);\n setCurrentValue(e.target.value);\n typeof onSave === \"function\" && onSave(e);\n } else {\n !allowEmptyString\n ? setCurrentValue(prevValue)\n : typeof onSave === \"function\" &&\n prevValue !== e.target.value &&\n onSave(e);\n }\n }\n // Reset scroll position for textarea\n if (multiline && intTextareaRef?.current) {\n intTextareaRef.current.scrollLeft = 0;\n }\n },\n [allowEmptyString, onSave, prevValue, multiline]\n );\n\n const handleFocus = useCallback(\n (e) => {\n if (multiline) {\n const textarea = e.target;\n const length = textarea.value.length;\n textarea.setSelectionRange(length, length);\n }\n },\n [multiline]\n );\n\n const handleKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\" && !multiline) {\n e.target.blur();\n }\n if (\n e.key === \"Enter\" &&\n multiline &&\n submitOnMetaEnter &&\n (e.metaKey || e.ctrlKey)\n ) {\n e.preventDefault();\n e.target.blur();\n }\n if (e.key === \"Escape\") {\n e.preventDefault();\n e.stopPropagation();\n escapeRef.current = true;\n e.target.blur();\n typeof onCancel === \"function\" && onCancel(e);\n }\n },\n [onCancel, multiline, submitOnMetaEnter]\n );\n\n const handleChange = useCallback((e) => {\n setCurrentValue(e.target.value);\n }, []);\n\n if (multiline) {\n return (\n <StyledDiv ref={ref || wrapRef} {...props} $multiline={multiline}>\n <StyledMultilineSpan\n variant={variant}\n forwardedAs=\"span\"\n weight={weight}\n $disabled={disabled}\n invalid={invalid}\n className=\"presentation\"\n onClick={() => {\n if (!disabled && intTextareaRef.current) {\n intTextareaRef.current.focus();\n }\n }}\n >\n {children\n ? children\n : String(currentValue || \"\").replace(/\\n/g, \" \")}\n </StyledMultilineSpan>\n <StyledTextareaSpan\n ref={intTextareaRef}\n forwardedAs=\"textarea\"\n variant={variant}\n weight={weight}\n value={currentValue ?? \"\"}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onChange={handleChange}\n disabled={disabled}\n invalid={invalid}\n data-form-type=\"other\"\n placeholder={inputProps?.placeholder}\n className={classNames(\"c-textarea\", inputProps?.className)}\n rows={3}\n {...inputProps}\n />\n </StyledDiv>\n );\n }\n\n return (\n <EditableContent\n {...props}\n variant={variant}\n weight={weight}\n disabled={disabled}\n invalid={invalid}\n wrapRef={wrapRef}\n ref={ref}\n inputProps={{\n ...inputProps,\n value: currentValue ?? \"\",\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n onChange: handleChange,\n type: \"text\",\n className: classNames(\"c-input\", inputProps?.className),\n }}\n >\n {children}\n </EditableContent>\n );\n }\n);\n\nEditableText.displayName = \"EditableText\";\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AASA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,gBAAA,GAAAH,OAAA;AAIA,IAAAI,OAAA,GAAAJ,OAAA;AAImC,IAAAK,SAAA;AAAA,SAAAH,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAP,wBAAAO,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAX,uBAAA,YAAAA,wBAAAO,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,cAAAK,EAAA,IAAAd,CAAA,gBAAAc,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,EAAA,OAAAN,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAc,EAAA,OAAAN,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAK,EAAA,EAAAN,CAAA,IAAAC,CAAA,CAAAK,EAAA,IAAAd,CAAA,CAAAc,EAAA,WAAAL,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAAA,SAAAiB,QAAApB,CAAA,EAAAK,CAAA,QAAAF,CAAA,GAAAc,MAAA,CAAAI,IAAA,CAAArB,CAAA,OAAAiB,MAAA,CAAAK,qBAAA,QAAAf,CAAA,GAAAU,MAAA,CAAAK,qBAAA,CAAAtB,CAAA,GAAAK,CAAA,KAAAE,CAAA,GAAAA,CAAA,CAAAgB,MAAA,WAAAlB,CAAA,WAAAY,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAK,CAAA,EAAAmB,UAAA,OAAArB,CAAA,CAAAsB,IAAA,CAAAC,KAAA,CAAAvB,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAwB,cAAA3B,CAAA,aAAAK,CAAA,MAAAA,CAAA,GAAAuB,SAAA,CAAAC,MAAA,EAAAxB,CAAA,UAAAF,CAAA,WAAAyB,SAAA,CAAAvB,CAAA,IAAAuB,SAAA,CAAAvB,CAAA,QAAAA,CAAA,OAAAe,OAAA,CAAAH,MAAA,CAAAd,CAAA,OAAA2B,OAAA,WAAAzB,CAAA,IAAA0B,eAAA,CAAA/B,CAAA,EAAAK,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAAY,MAAA,CAAAe,yBAAA,GAAAf,MAAA,CAAAgB,gBAAA,CAAAjC,CAAA,EAAAiB,MAAA,CAAAe,yBAAA,CAAA7B,CAAA,KAAAiB,OAAA,CAAAH,MAAA,CAAAd,CAAA,GAAA2B,OAAA,WAAAzB,CAAA,IAAAY,MAAA,CAAAC,cAAA,CAAAlB,CAAA,EAAAK,CAAA,EAAAY,MAAA,CAAAE,wBAAA,CAAAhB,CAAA,EAAAE,CAAA,iBAAAL,CAAA;AAAA,SAAA+B,gBAAA/B,CAAA,EAAAK,CAAA,EAAAF,CAAA,YAAAE,CAAA,GAAA6B,cAAA,CAAA7B,CAAA,MAAAL,CAAA,GAAAiB,MAAA,CAAAC,cAAA,CAAAlB,CAAA,EAAAK,CAAA,IAAA8B,KAAA,EAAAhC,CAAA,EAAAqB,UAAA,MAAAY,YAAA,MAAAC,QAAA,UAAArC,CAAA,CAAAK,CAAA,IAAAF,CAAA,EAAAH,CAAA;AAAA,SAAAkC,eAAA/B,CAAA,QAAAK,CAAA,GAAA8B,YAAA,CAAAnC,CAAA,uCAAAK,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAA8B,aAAAnC,CAAA,EAAAE,CAAA,2BAAAF,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAH,CAAA,GAAAG,CAAA,CAAAoC,MAAA,CAAAC,WAAA,kBAAAxC,CAAA,QAAAQ,CAAA,GAAAR,CAAA,CAAAgB,IAAA,CAAAb,CAAA,EAAAE,CAAA,uCAAAG,CAAA,SAAAA,CAAA,YAAAiC,SAAA,yEAAApC,CAAA,GAAAqC,MAAA,GAAAC,MAAA,EAAAxC,CAAA;AAAA,SAAAyC,SAAA,WAAAA,QAAA,GAAA3B,MAAA,CAAA4B,MAAA,GAAA5B,MAAA,CAAA4B,MAAA,CAAAC,IAAA,eAAAxC,CAAA,aAAAN,CAAA,MAAAA,CAAA,GAAA4B,SAAA,CAAAC,MAAA,EAAA7B,CAAA,UAAAG,CAAA,GAAAyB,SAAA,CAAA5B,CAAA,YAAAK,CAAA,IAAAF,CAAA,OAAAY,cAAA,CAAAC,IAAA,CAAAb,CAAA,EAAAE,CAAA,MAAAC,CAAA,CAAAD,CAAA,IAAAF,CAAA,CAAAE,CAAA,aAAAC,CAAA,KAAAsC,QAAA,CAAAlB,KAAA,OAAAE,SAAA;AAAA,SAAAmB,eAAA1C,CAAA,EAAAL,CAAA,WAAAgD,eAAA,CAAA3C,CAAA,KAAA4C,qBAAA,CAAA5C,CAAA,EAAAL,CAAA,KAAAkD,2BAAA,CAAA7C,CAAA,EAAAL,CAAA,KAAAmD,gBAAA;AAAA,SAAAA,iBAAA,cAAAV,SAAA;AAAA,SAAAS,4BAAA7C,CAAA,EAAA+C,CAAA,QAAA/C,CAAA,2BAAAA,CAAA,SAAAgD,iBAAA,CAAAhD,CAAA,EAAA+C,CAAA,OAAAjD,CAAA,MAAAmD,QAAA,CAAAtC,IAAA,CAAAX,CAAA,EAAAkD,KAAA,6BAAApD,CAAA,IAAAE,CAAA,CAAAmD,WAAA,KAAArD,CAAA,GAAAE,CAAA,CAAAmD,WAAA,CAAAC,IAAA,aAAAtD,CAAA,cAAAA,CAAA,GAAAuD,KAAA,CAAAC,IAAA,CAAAtD,CAAA,oBAAAF,CAAA,+CAAAyD,IAAA,CAAAzD,CAAA,IAAAkD,iBAAA,CAAAhD,CAAA,EAAA+C,CAAA;AAAA,SAAAC,kBAAAhD,CAAA,EAAA+C,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAA/C,CAAA,CAAAwB,MAAA,MAAAuB,CAAA,GAAA/C,CAAA,CAAAwB,MAAA,YAAA7B,CAAA,MAAAM,CAAA,GAAAoD,KAAA,CAAAN,CAAA,GAAApD,CAAA,GAAAoD,CAAA,EAAApD,CAAA,IAAAM,CAAA,CAAAN,CAAA,IAAAK,CAAA,CAAAL,CAAA,UAAAM,CAAA;AAAA,SAAA2C,sBAAA5C,CAAA,EAAAwD,CAAA,QAAA1D,CAAA,WAAAE,CAAA,gCAAAkC,MAAA,IAAAlC,CAAA,CAAAkC,MAAA,CAAAuB,QAAA,KAAAzD,CAAA,4BAAAF,CAAA,QAAAH,CAAA,EAAAM,CAAA,EAAAE,CAAA,EAAAuD,CAAA,EAAAX,CAAA,OAAA3C,CAAA,OAAAF,CAAA,iBAAAC,CAAA,IAAAL,CAAA,GAAAA,CAAA,CAAAa,IAAA,CAAAX,CAAA,GAAA2D,IAAA,QAAAH,CAAA,QAAA5C,MAAA,CAAAd,CAAA,MAAAA,CAAA,UAAAM,CAAA,uBAAAA,CAAA,IAAAT,CAAA,GAAAQ,CAAA,CAAAQ,IAAA,CAAAb,CAAA,GAAA8D,IAAA,MAAAb,CAAA,CAAA3B,IAAA,CAAAzB,CAAA,CAAAmC,KAAA,GAAAiB,CAAA,CAAAvB,MAAA,KAAAgC,CAAA,GAAApD,CAAA,iBAAAJ,CAAA,IAAAE,CAAA,OAAAD,CAAA,GAAAD,CAAA,yBAAAI,CAAA,YAAAN,CAAA,CAAA+D,MAAA,KAAAH,CAAA,GAAA5D,CAAA,CAAA+D,MAAA,IAAAjD,MAAA,CAAA8C,CAAA,MAAAA,CAAA,2BAAAxD,CAAA,QAAAD,CAAA,aAAA8C,CAAA;AAAA,SAAAJ,gBAAA3C,CAAA,QAAAqD,KAAA,CAAAS,OAAA,CAAA9D,CAAA,UAAAA,CAAA;AAAA,SAAA+D,yBAAApE,CAAA,EAAAG,CAAA,gBAAAH,CAAA,iBAAAO,CAAA,EAAAF,CAAA,EAAAG,CAAA,GAAA6D,6BAAA,CAAArE,CAAA,EAAAG,CAAA,OAAAc,MAAA,CAAAK,qBAAA,QAAAhB,CAAA,GAAAW,MAAA,CAAAK,qBAAA,CAAAtB,CAAA,QAAAK,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAAuB,MAAA,EAAAxB,CAAA,IAAAE,CAAA,GAAAD,CAAA,CAAAD,CAAA,UAAAF,CAAA,CAAAmE,OAAA,CAAA/D,CAAA,QAAAgE,oBAAA,CAAAvD,IAAA,CAAAhB,CAAA,EAAAO,CAAA,MAAAC,CAAA,CAAAD,CAAA,IAAAP,CAAA,CAAAO,CAAA,aAAAC,CAAA;AAAA,SAAA6D,8BAAAhE,CAAA,EAAAL,CAAA,gBAAAK,CAAA,iBAAAF,CAAA,gBAAAG,CAAA,IAAAD,CAAA,SAAAU,cAAA,CAAAC,IAAA,CAAAX,CAAA,EAAAC,CAAA,gBAAAN,CAAA,CAAAsE,OAAA,CAAAhE,CAAA,aAAAH,CAAA,CAAAG,CAAA,IAAAD,CAAA,CAAAC,CAAA,YAAAH,CAAA;AAmB5B,IAAMqE,YAAY,GAAAC,OAAA,CAAAD,YAAA,gBAAG,IAAAE,iBAAU,EACpC,UAAAC,IAAA,EAiBEC,GAAG,EACA;EAAA,IAhBDC,MAAM,GAAAF,IAAA,CAANE,MAAM;IACNC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IACR3C,KAAK,GAAAwC,IAAA,CAALxC,KAAK;IACL4C,UAAU,GAAAJ,IAAA,CAAVI,UAAU;IACVC,gBAAgB,GAAAL,IAAA,CAAhBK,gBAAgB;IAAAC,cAAA,GAAAN,IAAA,CAChBO,SAAS;IAATA,SAAS,GAAAD,cAAA,cAAG,KAAK,GAAAA,cAAA;IAAAE,qBAAA,GAAAR,IAAA,CACjBS,iBAAiB;IAAjBA,iBAAiB,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA;IAAAE,YAAA,GAAAV,IAAA,CACzBW,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAG,QAAQ,GAAAA,YAAA;IAClBE,MAAM,GAAAZ,IAAA,CAANY,MAAM;IAAAC,aAAA,GAAAb,IAAA,CACNc,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,KAAK,GAAAA,aAAA;IAChBE,OAAO,GAAAf,IAAA,CAAPe,OAAO;IACPC,OAAO,GAAAhB,IAAA,CAAPgB,OAAO;IACPC,QAAQ,GAAAjB,IAAA,CAARiB,QAAQ;IACLC,KAAK,GAAAzB,wBAAA,CAAAO,IAAA,EAAA5E,SAAA;EAIV,IAAA+F,SAAA,GAAwC,IAAAC,eAAQ,EAAC5D,KAAK,CAAC;IAAA6D,UAAA,GAAAjD,cAAA,CAAA+C,SAAA;IAAhDG,YAAY,GAAAD,UAAA;IAAEE,eAAe,GAAAF,UAAA;EACpC,IAAAG,UAAA,GAAkC,IAAAJ,eAAQ,EAAC5D,KAAK,CAAC;IAAAiE,UAAA,GAAArD,cAAA,CAAAoD,UAAA;IAA1CE,SAAS,GAAAD,UAAA;IAAEE,YAAY,GAAAF,UAAA;EAC9B,IAAMG,SAAS,GAAG,IAAAC,aAAM,EAAC,KAAK,CAAC;EAC/B,IAAMC,cAAc,GAAG,IAAAD,aAAM,EAAsB,IAAI,CAAC;EAExD,IAAAE,gBAAS,EAAC,YAAM;IACd,IAAIT,YAAY,KAAK9D,KAAK,EAAE;MAC1B+D,eAAe,CAAC/D,KAAK,CAAC;MACtBmE,YAAY,CAACnE,KAAK,CAAC;IACrB;IACA;EACF,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,IAAMwE,UAAU,GAAG,IAAAC,kBAAW,EAC5B,UAAC5G,CAAC,EAAK;IACL,IAAIuG,SAAS,CAACM,OAAO,EAAE;MACrBX,eAAe,CAACG,SAAS,CAAC;MAC1BE,SAAS,CAACM,OAAO,GAAG,KAAK;IAC3B,CAAC,MAAM;MACL,IACE7G,CAAC,CAAC8G,MAAM,CAAC3E,KAAK,CAAC4E,IAAI,CAAC,CAAC,CAAClF,MAAM,GAAG,CAAC,IAChCwE,SAAS,KAAKrG,CAAC,CAAC8G,MAAM,CAAC3E,KAAK,EAC5B;QACAmE,YAAY,CAACtG,CAAC,CAAC8G,MAAM,CAAC3E,KAAK,CAAC;QAC5B+D,eAAe,CAAClG,CAAC,CAAC8G,MAAM,CAAC3E,KAAK,CAAC;QAC/B,OAAO0C,MAAM,KAAK,UAAU,IAAIA,MAAM,CAAC7E,CAAC,CAAC;MAC3C,CAAC,MAAM;QACL,CAACgF,gBAAgB,GACbkB,eAAe,CAACG,SAAS,CAAC,GAC1B,OAAOxB,MAAM,KAAK,UAAU,IAC5BwB,SAAS,KAAKrG,CAAC,CAAC8G,MAAM,CAAC3E,KAAK,IAC5B0C,MAAM,CAAC7E,CAAC,CAAC;MACf;IACF;IACA;IACA,IAAIkF,SAAS,IAAIuB,cAAc,aAAdA,cAAc,eAAdA,cAAc,CAAEI,OAAO,EAAE;MACxCJ,cAAc,CAACI,OAAO,CAACG,UAAU,GAAG,CAAC;IACvC;EACF,CAAC,EACD,CAAChC,gBAAgB,EAAEH,MAAM,EAAEwB,SAAS,EAAEnB,SAAS,CACjD,CAAC;EAED,IAAM+B,WAAW,GAAG,IAAAL,kBAAW,EAC7B,UAAC5G,CAAC,EAAK;IACL,IAAIkF,SAAS,EAAE;MACb,IAAMgC,QAAQ,GAAGlH,CAAC,CAAC8G,MAAM;MACzB,IAAMjF,MAAM,GAAGqF,QAAQ,CAAC/E,KAAK,CAACN,MAAM;MACpCqF,QAAQ,CAACC,iBAAiB,CAACtF,MAAM,EAAEA,MAAM,CAAC;IAC5C;EACF,CAAC,EACD,CAACqD,SAAS,CACZ,CAAC;EAED,IAAMkC,aAAa,GAAG,IAAAR,kBAAW,EAC/B,UAAC5G,CAAC,EAAK;IACL,IAAIA,CAAC,CAACqH,GAAG,KAAK,OAAO,IAAI,CAACnC,SAAS,EAAE;MACnClF,CAAC,CAAC8G,MAAM,CAACQ,IAAI,CAAC,CAAC;IACjB;IACA,IACEtH,CAAC,CAACqH,GAAG,KAAK,OAAO,IACjBnC,SAAS,IACTE,iBAAiB,KAChBpF,CAAC,CAACuH,OAAO,IAAIvH,CAAC,CAACwH,OAAO,CAAC,EACxB;MACAxH,CAAC,CAACyH,cAAc,CAAC,CAAC;MAClBzH,CAAC,CAAC8G,MAAM,CAACQ,IAAI,CAAC,CAAC;IACjB;IACA,IAAItH,CAAC,CAACqH,GAAG,KAAK,QAAQ,EAAE;MACtBrH,CAAC,CAACyH,cAAc,CAAC,CAAC;MAClBzH,CAAC,CAAC0H,eAAe,CAAC,CAAC;MACnBnB,SAAS,CAACM,OAAO,GAAG,IAAI;MACxB7G,CAAC,CAAC8G,MAAM,CAACQ,IAAI,CAAC,CAAC;MACf,OAAOxC,QAAQ,KAAK,UAAU,IAAIA,QAAQ,CAAC9E,CAAC,CAAC;IAC/C;EACF,CAAC,EACD,CAAC8E,QAAQ,EAAEI,SAAS,EAAEE,iBAAiB,CACzC,CAAC;EAED,IAAMuC,YAAY,GAAG,IAAAf,kBAAW,EAAC,UAAC5G,CAAC,EAAK;IACtCkG,eAAe,CAAClG,CAAC,CAAC8G,MAAM,CAAC3E,KAAK,CAAC;EACjC,CAAC,EAAE,EAAE,CAAC;EAEN,IAAI+C,SAAS,EAAE;IACb,oBACE1F,MAAA,CAAAU,OAAA,CAAA0H,aAAA,CAAC9H,OAAA,CAAA+H,SAAS,EAAAjF,QAAA;MAACgC,GAAG,EAAEA,GAAG,IAAIe;IAAQ,GAAKE,KAAK;MAAEiC,UAAU,EAAE5C;IAAU,iBAC/D1F,MAAA,CAAAU,OAAA,CAAA0H,aAAA,CAAC9H,OAAA,CAAAiI,mBAAmB;MAClBzC,OAAO,EAAEA,OAAQ;MACjB0C,WAAW,EAAC,MAAM;MAClBzC,MAAM,EAAEA,MAAO;MACf0C,SAAS,EAAExC,QAAS;MACpBC,OAAO,EAAEA,OAAQ;MACjBwC,SAAS,EAAC,cAAc;MACxBC,OAAO,EAAE,SAATA,OAAOA,CAAA,EAAQ;QACb,IAAI,CAAC1C,QAAQ,IAAIgB,cAAc,CAACI,OAAO,EAAE;UACvCJ,cAAc,CAACI,OAAO,CAACuB,KAAK,CAAC,CAAC;QAChC;MACF;IAAE,GAEDxC,QAAQ,GACLA,QAAQ,GACRlD,MAAM,CAACuD,YAAY,IAAI,EAAE,CAAC,CAACoC,OAAO,CAAC,KAAK,EAAE,GAAG,CAC9B,CAAC,eACtB7I,MAAA,CAAAU,OAAA,CAAA0H,aAAA,CAAC9H,OAAA,CAAAwI,kBAAkB,EAAA1F,QAAA;MACjBgC,GAAG,EAAE6B,cAAe;MACpBuB,WAAW,EAAC,UAAU;MACtB1C,OAAO,EAAEA,OAAQ;MACjBC,MAAM,EAAEA,MAAO;MACfpD,KAAK,EAAE8D,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAI,EAAG;MAC1BsC,OAAO,EAAEtB,WAAY;MACrBuB,MAAM,EAAE7B,UAAW;MACnB8B,SAAS,EAAErB,aAAc;MACzBsB,QAAQ,EAAEf,YAAa;MACvBlC,QAAQ,EAAEA,QAAS;MACnBC,OAAO,EAAEA,OAAQ;MACjB,kBAAe,OAAO;MACtBiD,WAAW,EAAE5D,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE4D,WAAY;MACrCT,SAAS,EAAE,IAAAU,mBAAU,EAAC,YAAY,EAAE7D,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEmD,SAAS,CAAE;MAC3DW,IAAI,EAAE;IAAE,GACJ9D,UAAU,CACf,CACQ,CAAC;EAEhB;EAEA,oBACEvF,MAAA,CAAAU,OAAA,CAAA0H,aAAA,CAAC/H,gBAAA,CAAAiJ,eAAe,EAAAlG,QAAA,KACViD,KAAK;IACTP,OAAO,EAAEA,OAAQ;IACjBC,MAAM,EAAEA,MAAO;IACfE,QAAQ,EAAEA,QAAS;IACnBC,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjBf,GAAG,EAAEA,GAAI;IACTG,UAAU,EAAApD,aAAA,CAAAA,aAAA,KACLoD,UAAU;MACb5C,KAAK,EAAE8D,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAI,EAAE;MACzBuC,MAAM,EAAE7B,UAAU;MAClB8B,SAAS,EAAErB,aAAa;MACxBsB,QAAQ,EAAEf,YAAY;MACtBoB,IAAI,EAAE,MAAM;MACZb,SAAS,EAAE,IAAAU,mBAAU,EAAC,SAAS,EAAE7D,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEmD,SAAS;IAAC;EACvD,IAEDtC,QACc,CAAC;AAEtB,CACF,CAAC;AAEDpB,YAAY,CAACwE,WAAW,GAAG,cAAc","ignoreList":[]}
@@ -11,6 +11,8 @@ export interface EditableTextInterface extends EditableContentInterface {
11
11
  allowEmptyString?: boolean;
12
12
  /** If true, shows a textarea instead of input for multiline editing. */
13
13
  multiline?: boolean;
14
+ /** If true, Cmd/Ctrl+Enter commits a multiline edit (plain Enter keeps inserting a newline). */
15
+ submitOnMetaEnter?: boolean;
14
16
  /** Children content to display */
15
17
  children?: React.ReactNode;
16
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EditableText.d.ts","sourceRoot":"","sources":["../../../../src/components/EditableText/EditableText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,WAAW,EAMZ,MAAM,OAAO,CAAC;AAIf,OAAO,EAEL,wBAAwB,EACzB,MAAM,oCAAoC,CAAC;AAO5C,MAAM,WAAW,qBAAsB,SAAQ,wBAAwB;IACrE,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gEAAgE;IAChE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,IAAI,CAAC;IAC1E,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAA,KAAK,IAAI,CAAC;IACvB,sFAAsF;IACtF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,YAAY,8FA6JxB,CAAC"}
1
+ {"version":3,"file":"EditableText.d.ts","sourceRoot":"","sources":["../../../../src/components/EditableText/EditableText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,WAAW,EAMZ,MAAM,OAAO,CAAC;AAIf,OAAO,EAEL,wBAAwB,EACzB,MAAM,oCAAoC,CAAC;AAO5C,MAAM,WAAW,qBAAsB,SAAQ,wBAAwB;IACrE,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gEAAgE;IAChE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,IAAI,CAAC;IAC1E,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAA,KAAK,IAAI,CAAC;IACvB,sFAAsF;IACtF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gGAAgG;IAChG,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kCAAkC;IAClC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,YAAY,8FAuKxB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["onSave", "onCancel", "value", "inputProps", "allowEmptyString", "multiline", "variant", "weight", "disabled", "invalid", "wrapRef", "children"];
3
+ const _excluded = ["onSave", "onCancel", "value", "inputProps", "allowEmptyString", "multiline", "submitOnMetaEnter", "variant", "weight", "disabled", "invalid", "wrapRef", "children"];
4
4
  import React, { forwardRef, useCallback, useEffect, useRef, useState } from "react";
5
5
  import classNames from "classnames";
6
6
  import { EditableContent } from "../EditableContent/EditableContent";
@@ -13,6 +13,8 @@ export const EditableText = /*#__PURE__*/forwardRef((_ref, ref) => {
13
13
  allowEmptyString = _ref.allowEmptyString,
14
14
  _ref$multiline = _ref.multiline,
15
15
  multiline = _ref$multiline === void 0 ? false : _ref$multiline,
16
+ _ref$submitOnMetaEnte = _ref.submitOnMetaEnter,
17
+ submitOnMetaEnter = _ref$submitOnMetaEnte === void 0 ? false : _ref$submitOnMetaEnte,
16
18
  _ref$variant = _ref.variant,
17
19
  variant = _ref$variant === void 0 ? "Body 2" : _ref$variant,
18
20
  weight = _ref.weight,
@@ -66,6 +68,10 @@ export const EditableText = /*#__PURE__*/forwardRef((_ref, ref) => {
66
68
  if (e.key === "Enter" && !multiline) {
67
69
  e.target.blur();
68
70
  }
71
+ if (e.key === "Enter" && multiline && submitOnMetaEnter && (e.metaKey || e.ctrlKey)) {
72
+ e.preventDefault();
73
+ e.target.blur();
74
+ }
69
75
  if (e.key === "Escape") {
70
76
  e.preventDefault();
71
77
  e.stopPropagation();
@@ -73,7 +79,7 @@ export const EditableText = /*#__PURE__*/forwardRef((_ref, ref) => {
73
79
  e.target.blur();
74
80
  typeof onCancel === "function" && onCancel(e);
75
81
  }
76
- }, [onCancel, multiline]);
82
+ }, [onCancel, multiline, submitOnMetaEnter]);
77
83
  const handleChange = useCallback(e => {
78
84
  setCurrentValue(e.target.value);
79
85
  }, []);
@@ -1 +1 @@
1
- {"version":3,"file":"EditableText.js","names":["React","forwardRef","useCallback","useEffect","useRef","useState","classNames","EditableContent","StyledDiv","StyledMultilineSpan","StyledTextareaSpan","EditableText","_ref","ref","onSave","onCancel","value","inputProps","allowEmptyString","_ref$multiline","multiline","_ref$variant","variant","weight","_ref$disabled","disabled","invalid","wrapRef","children","props","_objectWithoutPropertiesLoose","_excluded","_useState","currentValue","setCurrentValue","_useState2","prevValue","setPrevValue","escapeRef","intTextareaRef","handleBlur","e","current","target","trim","length","scrollLeft","handleFocus","textarea","setSelectionRange","handleKeyDown","key","blur","preventDefault","stopPropagation","handleChange","createElement","_extends","$multiline","forwardedAs","$disabled","className","onClick","focus","String","replace","onFocus","onBlur","onKeyDown","onChange","placeholder","rows","type","displayName"],"sources":["../../../../src/components/EditableText/EditableText.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport classNames from \"classnames\";\n\nimport {\n EditableContent,\n EditableContentInterface,\n} from \"../EditableContent/EditableContent\";\nimport {\n StyledDiv,\n StyledMultilineSpan,\n StyledTextareaSpan,\n} from \"../EditableContent/Styles\";\n\nexport interface EditableTextInterface extends EditableContentInterface {\n /** Value to display. */\n value?: string | null;\n /** Optional callback called on enter, click outside and tab. */\n onSave?: (e: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;\n /** Optional callback called on input reset. */\n onCancel?: (e) => void;\n /** If true, setting empty value will save it, instead of revert to previous value. */\n allowEmptyString?: boolean;\n /** If true, shows a textarea instead of input for multiline editing. */\n multiline?: boolean;\n /** Children content to display */\n children?: React.ReactNode;\n}\n\nexport const EditableText = forwardRef<HTMLDivElement, EditableTextInterface>(\n (\n {\n onSave,\n onCancel,\n value,\n inputProps,\n allowEmptyString,\n multiline = false,\n variant = \"Body 2\",\n weight,\n disabled = false,\n invalid,\n wrapRef,\n children,\n ...props\n },\n ref\n ) => {\n const [currentValue, setCurrentValue] = useState(value);\n const [prevValue, setPrevValue] = useState(value);\n const escapeRef = useRef(false);\n const intTextareaRef = useRef<HTMLTextAreaElement>(null);\n\n useEffect(() => {\n if (currentValue !== value) {\n setCurrentValue(value);\n setPrevValue(value);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n\n const handleBlur = useCallback(\n (e) => {\n if (escapeRef.current) {\n setCurrentValue(prevValue);\n escapeRef.current = false;\n } else {\n if (\n e.target.value.trim().length > 0 &&\n prevValue !== e.target.value\n ) {\n setPrevValue(e.target.value);\n setCurrentValue(e.target.value);\n typeof onSave === \"function\" && onSave(e);\n } else {\n !allowEmptyString\n ? setCurrentValue(prevValue)\n : typeof onSave === \"function\" &&\n prevValue !== e.target.value &&\n onSave(e);\n }\n }\n // Reset scroll position for textarea\n if (multiline && intTextareaRef?.current) {\n intTextareaRef.current.scrollLeft = 0;\n }\n },\n [allowEmptyString, onSave, prevValue, multiline]\n );\n\n const handleFocus = useCallback(\n (e) => {\n if (multiline) {\n const textarea = e.target;\n const length = textarea.value.length;\n textarea.setSelectionRange(length, length);\n }\n },\n [multiline]\n );\n\n const handleKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\" && !multiline) {\n e.target.blur();\n }\n if (e.key === \"Escape\") {\n e.preventDefault();\n e.stopPropagation();\n escapeRef.current = true;\n e.target.blur();\n typeof onCancel === \"function\" && onCancel(e);\n }\n },\n [onCancel, multiline]\n );\n\n const handleChange = useCallback((e) => {\n setCurrentValue(e.target.value);\n }, []);\n\n if (multiline) {\n return (\n <StyledDiv ref={ref || wrapRef} {...props} $multiline={multiline}>\n <StyledMultilineSpan\n variant={variant}\n forwardedAs=\"span\"\n weight={weight}\n $disabled={disabled}\n invalid={invalid}\n className=\"presentation\"\n onClick={() => {\n if (!disabled && intTextareaRef.current) {\n intTextareaRef.current.focus();\n }\n }}\n >\n {children\n ? children\n : String(currentValue || \"\").replace(/\\n/g, \" \")}\n </StyledMultilineSpan>\n <StyledTextareaSpan\n ref={intTextareaRef}\n forwardedAs=\"textarea\"\n variant={variant}\n weight={weight}\n value={currentValue ?? \"\"}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onChange={handleChange}\n disabled={disabled}\n invalid={invalid}\n data-form-type=\"other\"\n placeholder={inputProps?.placeholder}\n className={classNames(\"c-textarea\", inputProps?.className)}\n rows={3}\n {...inputProps}\n />\n </StyledDiv>\n );\n }\n\n return (\n <EditableContent\n {...props}\n variant={variant}\n weight={weight}\n disabled={disabled}\n invalid={invalid}\n wrapRef={wrapRef}\n ref={ref}\n inputProps={{\n ...inputProps,\n value: currentValue ?? \"\",\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n onChange: handleChange,\n type: \"text\",\n className: classNames(\"c-input\", inputProps?.className),\n }}\n >\n {children}\n </EditableContent>\n );\n }\n);\n\nEditableText.displayName = \"EditableText\";\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"EditableText.js","names":["React","forwardRef","useCallback","useEffect","useRef","useState","classNames","EditableContent","StyledDiv","StyledMultilineSpan","StyledTextareaSpan","EditableText","_ref","ref","onSave","onCancel","value","inputProps","allowEmptyString","_ref$multiline","multiline","_ref$submitOnMetaEnte","submitOnMetaEnter","_ref$variant","variant","weight","_ref$disabled","disabled","invalid","wrapRef","children","props","_objectWithoutPropertiesLoose","_excluded","_useState","currentValue","setCurrentValue","_useState2","prevValue","setPrevValue","escapeRef","intTextareaRef","handleBlur","e","current","target","trim","length","scrollLeft","handleFocus","textarea","setSelectionRange","handleKeyDown","key","blur","metaKey","ctrlKey","preventDefault","stopPropagation","handleChange","createElement","_extends","$multiline","forwardedAs","$disabled","className","onClick","focus","String","replace","onFocus","onBlur","onKeyDown","onChange","placeholder","rows","type","displayName"],"sources":["../../../../src/components/EditableText/EditableText.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport classNames from \"classnames\";\n\nimport {\n EditableContent,\n EditableContentInterface,\n} from \"../EditableContent/EditableContent\";\nimport {\n StyledDiv,\n StyledMultilineSpan,\n StyledTextareaSpan,\n} from \"../EditableContent/Styles\";\n\nexport interface EditableTextInterface extends EditableContentInterface {\n /** Value to display. */\n value?: string | null;\n /** Optional callback called on enter, click outside and tab. */\n onSave?: (e: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;\n /** Optional callback called on input reset. */\n onCancel?: (e) => void;\n /** If true, setting empty value will save it, instead of revert to previous value. */\n allowEmptyString?: boolean;\n /** If true, shows a textarea instead of input for multiline editing. */\n multiline?: boolean;\n /** If true, Cmd/Ctrl+Enter commits a multiline edit (plain Enter keeps inserting a newline). */\n submitOnMetaEnter?: boolean;\n /** Children content to display */\n children?: React.ReactNode;\n}\n\nexport const EditableText = forwardRef<HTMLDivElement, EditableTextInterface>(\n (\n {\n onSave,\n onCancel,\n value,\n inputProps,\n allowEmptyString,\n multiline = false,\n submitOnMetaEnter = false,\n variant = \"Body 2\",\n weight,\n disabled = false,\n invalid,\n wrapRef,\n children,\n ...props\n },\n ref\n ) => {\n const [currentValue, setCurrentValue] = useState(value);\n const [prevValue, setPrevValue] = useState(value);\n const escapeRef = useRef(false);\n const intTextareaRef = useRef<HTMLTextAreaElement>(null);\n\n useEffect(() => {\n if (currentValue !== value) {\n setCurrentValue(value);\n setPrevValue(value);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n\n const handleBlur = useCallback(\n (e) => {\n if (escapeRef.current) {\n setCurrentValue(prevValue);\n escapeRef.current = false;\n } else {\n if (\n e.target.value.trim().length > 0 &&\n prevValue !== e.target.value\n ) {\n setPrevValue(e.target.value);\n setCurrentValue(e.target.value);\n typeof onSave === \"function\" && onSave(e);\n } else {\n !allowEmptyString\n ? setCurrentValue(prevValue)\n : typeof onSave === \"function\" &&\n prevValue !== e.target.value &&\n onSave(e);\n }\n }\n // Reset scroll position for textarea\n if (multiline && intTextareaRef?.current) {\n intTextareaRef.current.scrollLeft = 0;\n }\n },\n [allowEmptyString, onSave, prevValue, multiline]\n );\n\n const handleFocus = useCallback(\n (e) => {\n if (multiline) {\n const textarea = e.target;\n const length = textarea.value.length;\n textarea.setSelectionRange(length, length);\n }\n },\n [multiline]\n );\n\n const handleKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\" && !multiline) {\n e.target.blur();\n }\n if (\n e.key === \"Enter\" &&\n multiline &&\n submitOnMetaEnter &&\n (e.metaKey || e.ctrlKey)\n ) {\n e.preventDefault();\n e.target.blur();\n }\n if (e.key === \"Escape\") {\n e.preventDefault();\n e.stopPropagation();\n escapeRef.current = true;\n e.target.blur();\n typeof onCancel === \"function\" && onCancel(e);\n }\n },\n [onCancel, multiline, submitOnMetaEnter]\n );\n\n const handleChange = useCallback((e) => {\n setCurrentValue(e.target.value);\n }, []);\n\n if (multiline) {\n return (\n <StyledDiv ref={ref || wrapRef} {...props} $multiline={multiline}>\n <StyledMultilineSpan\n variant={variant}\n forwardedAs=\"span\"\n weight={weight}\n $disabled={disabled}\n invalid={invalid}\n className=\"presentation\"\n onClick={() => {\n if (!disabled && intTextareaRef.current) {\n intTextareaRef.current.focus();\n }\n }}\n >\n {children\n ? children\n : String(currentValue || \"\").replace(/\\n/g, \" \")}\n </StyledMultilineSpan>\n <StyledTextareaSpan\n ref={intTextareaRef}\n forwardedAs=\"textarea\"\n variant={variant}\n weight={weight}\n value={currentValue ?? \"\"}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onChange={handleChange}\n disabled={disabled}\n invalid={invalid}\n data-form-type=\"other\"\n placeholder={inputProps?.placeholder}\n className={classNames(\"c-textarea\", inputProps?.className)}\n rows={3}\n {...inputProps}\n />\n </StyledDiv>\n );\n }\n\n return (\n <EditableContent\n {...props}\n variant={variant}\n weight={weight}\n disabled={disabled}\n invalid={invalid}\n wrapRef={wrapRef}\n ref={ref}\n inputProps={{\n ...inputProps,\n value: currentValue ?? \"\",\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n onChange: handleChange,\n type: \"text\",\n className: classNames(\"c-input\", inputProps?.className),\n }}\n >\n {children}\n </EditableContent>\n );\n }\n);\n\nEditableText.displayName = \"EditableText\";\n"],"mappings":"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","ignoreList":[]}
package/dist/index.js CHANGED
@@ -24430,7 +24430,7 @@
24430
24430
  });
24431
24431
  EditableContent.displayName = "EditableContent";
24432
24432
 
24433
- var _excluded$f = ["onSave", "onCancel", "value", "inputProps", "allowEmptyString", "multiline", "variant", "weight", "disabled", "invalid", "wrapRef", "children"];
24433
+ var _excluded$f = ["onSave", "onCancel", "value", "inputProps", "allowEmptyString", "multiline", "submitOnMetaEnter", "variant", "weight", "disabled", "invalid", "wrapRef", "children"];
24434
24434
  var EditableText = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
24435
24435
  var onSave = _ref.onSave,
24436
24436
  onCancel = _ref.onCancel,
@@ -24439,6 +24439,8 @@
24439
24439
  allowEmptyString = _ref.allowEmptyString,
24440
24440
  _ref$multiline = _ref.multiline,
24441
24441
  multiline = _ref$multiline === void 0 ? false : _ref$multiline,
24442
+ _ref$submitOnMetaEnte = _ref.submitOnMetaEnter,
24443
+ submitOnMetaEnter = _ref$submitOnMetaEnte === void 0 ? false : _ref$submitOnMetaEnte,
24442
24444
  _ref$variant = _ref.variant,
24443
24445
  variant = _ref$variant === void 0 ? "Body 2" : _ref$variant,
24444
24446
  weight = _ref.weight,
@@ -24494,6 +24496,10 @@
24494
24496
  if (e.key === "Enter" && !multiline) {
24495
24497
  e.target.blur();
24496
24498
  }
24499
+ if (e.key === "Enter" && multiline && submitOnMetaEnter && (e.metaKey || e.ctrlKey)) {
24500
+ e.preventDefault();
24501
+ e.target.blur();
24502
+ }
24497
24503
  if (e.key === "Escape") {
24498
24504
  e.preventDefault();
24499
24505
  e.stopPropagation();
@@ -24501,7 +24507,7 @@
24501
24507
  e.target.blur();
24502
24508
  typeof onCancel === "function" && onCancel(e);
24503
24509
  }
24504
- }, [onCancel, multiline]);
24510
+ }, [onCancel, multiline, submitOnMetaEnter]);
24505
24511
  var handleChange = React.useCallback(function (e) {
24506
24512
  setCurrentValue(e.target.value);
24507
24513
  }, []);