@widergy/energy-ui 3.179.6 → 3.180.0
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/CHANGELOG.md +13 -9
- package/dist/components/UTRichText/components/Toolbar/index.js +1 -1
- package/dist/components/UTRichText/components/ToolbarButton/index.js +1 -1
- package/dist/components/UTRichText/hooks/useModuleResolution.js +1 -1
- package/dist/components/UTRichText/hooks/useRichTextEditor.js +1 -1
- package/dist/components/UTRichText/index.js +1 -1
- package/dist/components/UTRichText/modules/table/index.js +1 -1
- package/dist/components/UTRichText/utils/contentBuilders.js +1 -1
- package/dist/components/UTRichText/utils/moduleResolution.js +1 -0
- package/dist/esm/components/UTRichText/components/Toolbar/index.js +1 -1
- package/dist/esm/components/UTRichText/components/ToolbarButton/index.js +1 -1
- package/dist/esm/components/UTRichText/hooks/useModuleResolution.js +1 -1
- package/dist/esm/components/UTRichText/hooks/useRichTextEditor.js +1 -1
- package/dist/esm/components/UTRichText/index.js +1 -1
- package/dist/esm/components/UTRichText/modules/table/index.js +1 -1
- package/dist/esm/components/UTRichText/utils/contentBuilders.js +1 -1
- package/dist/esm/components/UTRichText/utils/moduleResolution.js +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,23 +1,27 @@
|
|
|
1
|
-
|
|
1
|
+
# [3.180.0](https://github.com/widergy/energy-ui/compare/v3.179.6...v3.180.0) (2026-08-24)
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
###
|
|
4
|
+
### Features
|
|
5
5
|
|
|
6
|
-
*
|
|
6
|
+
* [AXCH-2133] expose content builders and HTML serialization ([#848](https://github.com/widergy/energy-ui/issues/848)) ([6e75ace](https://github.com/widergy/energy-ui/commit/6e75ace1e0a01e858b6c1c475115e5f36ae580c8))
|
|
7
7
|
|
|
8
|
-
## [3.179.
|
|
8
|
+
## [3.179.6](https://github.com/widergy/energy-ui/compare/v3.179.5...v3.179.6) (2026-08-22)
|
|
9
9
|
|
|
10
|
+
### Novedades y Mejoras
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
* Mejoras internas de la plataforma [`d612ff6`](https://github.com/widergy/Energy-UI/commit/d612ff6)
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
## [3.179.5](https://github.com/widergy/energy-ui/compare/v3.179.4...v3.179.5) (2026-08-22)
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
### Correcciones
|
|
16
17
|
|
|
18
|
+
* Mejoras internas de la plataforma. [`50a316c`](https://github.com/widergy/Energy-UI/commit/50a316c)
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
## [3.179.4](https://github.com/widergy/energy-ui/compare/v3.179.3...v3.179.4) (2026-08-22)
|
|
21
|
+
|
|
22
|
+
### Correcciones
|
|
19
23
|
|
|
20
|
-
*
|
|
24
|
+
* Mejoras internas de la plataforma. [`d3b30a7`](https://github.com/widergy/Energy-UI/commit/d3b30a7) [`55e2e9e`](https://github.com/widergy/Energy-UI/commit/55e2e9e) [`a858e02`](https://github.com/widergy/Energy-UI/commit/a858e02) [`fe0cc60`](https://github.com/widergy/Energy-UI/commit/fe0cc60)
|
|
21
25
|
|
|
22
26
|
## [3.179.3](https://github.com/widergy/energy-ui/compare/v3.179.2...v3.179.3) (2026-08-21)
|
|
23
27
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=require("@tiptap/react"),_isEmpty=_interopRequireDefault(require("lodash/isEmpty")),_propTypes=require("prop-types"),_react2=_interopRequireWildcard(require("react")),_utils=require("../../utils.js"),_index=_interopRequireDefault(require("../ToolbarButton/index.js")),_stylesModule=_interopRequireDefault(require("./styles.module.scss"));function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,o=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var a,l,u={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return u;if(a=t?o:r){if(a.has(e))return a.get(e);a.set(e,u)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((l=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?a(u,t,l):u[t]=e[t]);return u})(e,t)}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const preventFocusLoss=e=>e.preventDefault(),Toolbar=e=>{let{dataTestId:t,disabled:r,editor:o,moduleGroups:a}=e;const l=(0,_react2.useMemo)(()=>a.flat(),[a]),u=(0,_react.useEditorState)({editor:o,selector:e=>{let{editor:t}=e;return t?(0,_utils.getActiveStates)(t,l):null}});return!o||(0,_isEmpty.default)(a)?null:_react2.default.createElement("div",{className:_stylesModule.default.toolbar,"data-testid":t,onMouseDown:preventFocusLoss,role:"toolbar"},a.map((e,t)=>_react2.default.createElement(_react2.Fragment,{key:e.map(e=>e.key).join("-")},t>0&&_react2.default.createElement("span",{className:_stylesModule.default.separator}),e.map(e=>{const t=e.ToolbarButton||_index.default;return _react2.default.createElement(t,{disabled:r,editor:o,isActive:Boolean(null==u?void 0:u[e.key]),key:e.key,module:e})}))))};Toolbar.propTypes={dataTestId:_propTypes.string,disabled:_propTypes.bool,editor:_propTypes.object,moduleGroups:(0,_propTypes.arrayOf)((0,_propTypes.arrayOf)(_propTypes.object))};var _default=exports.default=Toolbar;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=require("@tiptap/react"),_isEmpty=_interopRequireDefault(require("lodash/isEmpty")),_propTypes=require("prop-types"),_react2=_interopRequireWildcard(require("react")),_utils=require("../../utils.js"),_index=_interopRequireDefault(require("../ToolbarButton/index.js")),_stylesModule=_interopRequireDefault(require("./styles.module.scss"));function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,o=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var a,l,u={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return u;if(a=t?o:r){if(a.has(e))return a.get(e);a.set(e,u)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((l=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(l.get||l.set)?a(u,t,l):u[t]=e[t]);return u})(e,t)}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const preventFocusLoss=e=>e.preventDefault(),Toolbar=e=>{let{dataTestId:t,disabled:r,editor:o,moduleGroups:a}=e;const l=(0,_react2.useMemo)(()=>a.flat(),[a]),u=(0,_react.useEditorState)({editor:o,selector:e=>{let{editor:t}=e;return t?(0,_utils.getActiveStates)(t,l):null}});return!o||(0,_isEmpty.default)(a)?null:_react2.default.createElement("div",{className:_stylesModule.default.toolbar,"data-testid":t,onMouseDown:preventFocusLoss,role:"toolbar"},a.map((e,t)=>_react2.default.createElement(_react2.Fragment,{key:e.map(e=>e.key).join("-")},t>0&&_react2.default.createElement("span",{className:_stylesModule.default.separator}),e.map(e=>{const t=e.ToolbarButton||_index.default;return _react2.default.createElement(t,{disabled:r,editor:o,isActive:Boolean(null==u?void 0:u[e.key]),key:e.key,module:e})}))))};Toolbar.propTypes={dataTestId:_propTypes.string,disabled:_propTypes.bool,editor:_propTypes.object,moduleGroups:(0,_propTypes.arrayOf)((0,_propTypes.arrayOf)(_propTypes.object))};var _default=exports.default=(0,_react2.memo)(Toolbar);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _propTypes=require("prop-types"),_react=_interopRequireWildcard(require("react")),_index=_interopRequireDefault(require("../../../UTButton/index.js")),_index2=_interopRequireDefault(require("../../../UTTooltip/index.js")),_constants=require("../../constants.js");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var o=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,a,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(n=t?r:o){if(n.has(e))return n.get(e);n.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?n(i,t,a):i[t]=e[t]);return i})(e,t)}const ToolbarButton=e=>{let{disabled:t,editor:o,isActive:r,module:n}=e;const{command:a,icon:i,tooltip:p}=n.toolbarButton,{colorTheme:u,variant:s}=r?_constants.TOOLBAR_BUTTON.active:_constants.TOOLBAR_BUTTON.inactive,l=(0,_react.useCallback)(()=>a(o.chain().focus()).run(),[a,o]);return _react.default.createElement(_index2.default,{arrow:!1,content:p,tippyProps:{appendTo:()=>document.body,interactive:!1}},_react.default.createElement("div",null,_react.default.createElement(_index.default,{colorTheme:u,dataTestId:n.testIds.toolbarButton,disabled:t,LeftIcon:i,onClick:l,size:_constants.TOOLBAR_BUTTON.size,variant:s})))};ToolbarButton.propTypes={disabled:_propTypes.bool,editor:_propTypes.object,isActive:_propTypes.bool,module:(0,_propTypes.shape)({key:_propTypes.string,testIds:_propTypes.object,toolbarButton:_propTypes.object})};var _default=exports.default=ToolbarButton;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _propTypes=require("prop-types"),_react=_interopRequireWildcard(require("react")),_index=_interopRequireDefault(require("../../../UTButton/index.js")),_index2=_interopRequireDefault(require("../../../UTTooltip/index.js")),_constants=require("../../constants.js");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var o=new WeakMap,r=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var n,a,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(n=t?r:o){if(n.has(e))return n.get(e);n.set(e,i)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((a=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(a.get||a.set)?n(i,t,a):i[t]=e[t]);return i})(e,t)}const ToolbarButton=e=>{let{disabled:t,editor:o,isActive:r,module:n}=e;const{command:a,icon:i,tooltip:p}=n.toolbarButton,{colorTheme:u,variant:s}=r?_constants.TOOLBAR_BUTTON.active:_constants.TOOLBAR_BUTTON.inactive,l=(0,_react.useCallback)(()=>a(o.chain().focus()).run(),[a,o]);return _react.default.createElement(_index2.default,{arrow:!1,content:p,tippyProps:{appendTo:()=>document.body,interactive:!1}},_react.default.createElement("div",null,_react.default.createElement(_index.default,{colorTheme:u,dataTestId:n.testIds.toolbarButton,disabled:t,LeftIcon:i,onClick:l,size:_constants.TOOLBAR_BUTTON.size,variant:s})))};ToolbarButton.propTypes={disabled:_propTypes.bool,editor:_propTypes.object,isActive:_propTypes.bool,module:(0,_propTypes.shape)({key:_propTypes.string,testIds:_propTypes.object,toolbarButton:_propTypes.object})};var _default=exports.default=(0,_react.memo)(ToolbarButton);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=require("react"),_constants=require("../constants.js"),_moduleResolution=require("../utils/moduleResolution.js");const useModuleResolution=e=>{let{moduleConfig:o={},modules:s}=e;const t=JSON.stringify(s||_constants.DEFAULT_MODULES),u=JSON.stringify(o);return(0,_react.useMemo)(()=>(0,_moduleResolution.buildModuleGroups)(JSON.parse(t),JSON.parse(u)),[u,t])};var _default=exports.default=useModuleResolution;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=require("@tiptap/react"),_react2=require("react"),_constants=require("../constants.js"),_CustomKeymap=_interopRequireDefault(require("../extensions/CustomKeymap.js")),_utils=require("../utils.js");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const useRichTextEditor=e=>{let{activeModules:t,ariaLabel:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=require("@tiptap/react"),_react2=require("react"),_constants=require("../constants.js"),_CustomKeymap=_interopRequireDefault(require("../extensions/CustomKeymap.js")),_utils=require("../utils.js");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const COMMIT_DEBOUNCE_MS=1e3,useRichTextEditor=e=>{let{activeModules:t,ariaLabel:u,dataTestId:r,disabled:n,editorClassName:o,onBlur:a,onChange:l,onFocus:s,onSubmit:i,placeholder:c,readOnly:d,value:m}=e;const _=(0,_react2.useRef)({});_.current={onBlur:a,onChange:l,onFocus:s,onSubmit:i};const f=(0,_react2.useRef)(null),p=(0,_react2.useRef)({document:null,timeoutId:null}),v=()=>{var e,t;const u=p.current;u.timeoutId&&(clearTimeout(u.timeoutId),u.timeoutId=null,f.current=u.document,null===(e=(t=_.current).onChange)||void 0===e||e.call(t,u.document))},b=(0,_react2.useMemo)(()=>(0,_utils.dedupeExtensions)([...(0,_constants.buildBaseExtensions)({placeholder:c}),...t.flatMap(e=>e.extensions),_CustomKeymap.default.configure({onSubmit:()=>{const e=_.current.onSubmit;return!!e&&(v(),!0===e())}})]),[t,c]),x=(0,_react.useEditor)({content:m,editable:!n&&!d,editorProps:{attributes:{"aria-label":u,"aria-multiline":"true","data-testid":r,class:o,role:"textbox"}},extensions:b,immediatelyRender:!1,onBlur:e=>{var t,u;let{event:r}=e;v(),null===(t=(u=_.current).onBlur)||void 0===t||t.call(u,r)},onFocus:e=>{var t,u;let{event:r}=e;return null===(t=(u=_.current).onFocus)||void 0===t?void 0:t.call(u,r)},onUpdate:e=>{let{editor:t}=e;return(e=>{const t=p.current;t.document=e,t.timeoutId&&clearTimeout(t.timeoutId),t.timeoutId=setTimeout(()=>{var e,u;t.timeoutId=null,f.current=t.document,null===(e=(u=_.current).onChange)||void 0===e||e.call(u,t.document)},1e3)})(t.getJSON())}},[b]);return(0,_react2.useEffect)(()=>{x&&(m?m!==f.current&&((0,_utils.isSameDocument)(m,x.getJSON())||x.commands.setContent(m,{emitUpdate:!1})):x.isEmpty||x.commands.clearContent(!1))},[x,m]),(0,_react2.useEffect)(()=>{null==x||x.setEditable(!n&&!d)},[n,x,d]),(0,_react2.useEffect)(()=>()=>{const{timeoutId:e}=p.current;e&&clearTimeout(e)},[]),x};var _default=exports.default=useRichTextEditor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.propTypes=exports.default=void 0;var _react=require("@tiptap/react"),_isEmpty=_interopRequireDefault(require("lodash/isEmpty")),_propTypes=require("prop-types"),_react2=_interopRequireWildcard(require("react")),_classesUtils=require("../../utils/classesUtils.js"),_index=_interopRequireDefault(require("../UTFieldLabel/index.js")),_index2=_interopRequireDefault(require("../UTLabel/index.js")),_index3=_interopRequireWildcard(require("../UTValidation/index.js")),_utils=require("../UTValidation/utils.js"),_index4=_interopRequireDefault(require("./components/EditorSkeleton/index.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.propTypes=exports.default=void 0;var _react=require("@tiptap/react"),_isEmpty=_interopRequireDefault(require("lodash/isEmpty")),_propTypes=require("prop-types"),_react2=_interopRequireWildcard(require("react")),_classesUtils=require("../../utils/classesUtils.js"),_index=_interopRequireDefault(require("../UTFieldLabel/index.js")),_index2=_interopRequireDefault(require("../UTLabel/index.js")),_index3=_interopRequireWildcard(require("../UTValidation/index.js")),_utils=require("../UTValidation/utils.js"),_index4=_interopRequireDefault(require("./components/EditorSkeleton/index.js")),_index5=_interopRequireDefault(require("./components/SubmitAction/index.js")),_index6=_interopRequireDefault(require("./components/Toolbar/index.js")),_constants=require("./constants.js"),_useModuleResolution=_interopRequireDefault(require("./hooks/useModuleResolution.js")),_useRichTextEditor=_interopRequireDefault(require("./hooks/useRichTextEditor.js")),_utils2=require("./utils.js"),_stylesModule=_interopRequireDefault(require("./styles.module.scss"));function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var o,s,l={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return l;if(o=t?a:r){if(o.has(e))return o.get(e);o.set(e,l)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((s=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(s.get||s.set)?o(l,t,s):l[t]=e[t]);return l})(e,t)}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const UTRichText=e=>{var t;let{actions:r,classNames:a={},dataTestId:o=_constants.TEST_IDS_RICH_TEXT.root,disabled:s=!1,error:l,helpText:i,loading:n=!1,moduleConfig:u={},modules:p,onBlur:d,onChange:_,onFocus:c,onSubmit:T,placeholder:f,readOnly:y=!1,required:m=!1,submitButtonProps:E,title:b,titleVariant:x=_constants.DEFAULT_PROPS.titleVariant,validations:q,value:R}=e;const[S,v]=(0,_react2.useState)(!1),I=(0,_useModuleResolution.default)({moduleConfig:u,modules:p}),j=(0,_react2.useMemo)(()=>I.flat(),[I]),h=(0,_react2.useMemo)(()=>(0,_classesUtils.mergeMultipleClassNames)(_stylesModule.default,a),[a]),D=(0,_react2.useMemo)(()=>j.map(e=>{var t;return{...e,extensions:null!==(t=e.resolvedExtensions)&&void 0!==t?t:e.extensions}}),[j]),g=(0,_react2.useCallback)(e=>{v(!0),null==c||c(e)},[c]),C=(0,_react2.useCallback)(e=>{v(!1),null==d||d(e)},[d]),O=(0,_react2.useRef)(!1),M=(0,_react2.useCallback)(()=>!(!O.current||!T)&&(T(),!0),[T]),U=(0,_useRichTextEditor.default)({activeModules:D,ariaLabel:b,dataTestId:_constants.TEST_IDS_RICH_TEXT.content,disabled:s,editorClassName:_stylesModule.default.editorContent,onBlur:C,onChange:_,onFocus:g,onSubmit:M,placeholder:f,readOnly:y,value:R}),N=null===(t=(0,_react.useEditorState)({editor:U,selector:e=>{let{editor:t}=e;return!t||t.isEmpty}}))||void 0===t||t,k=Boolean(T)&&!s&&!n&&!N;O.current=k;const P=(0,_react2.useMemo)(()=>(0,_isEmpty.default)(q)?l?(0,_utils.formatErrorToValidation)(l):null:q,[l,q]);return _react2.default.createElement("div",{className:h.container,"data-testid":o},b&&_react2.default.createElement(_index.default,{actions:r,dataTestId:_constants.TEST_IDS_RICH_TEXT.label,readOnly:y,required:m,size:x},b),_react2.default.createElement("div",{className:(0,_utils2.getFieldClassName)({classes:h,disabled:s,error:l,isFocused:S,readOnly:y}),"data-testid":_constants.TEST_IDS_RICH_TEXT.field},n?_react2.default.createElement(_index4.default,null):_react2.default.createElement(_react2.default.Fragment,null,!y&&_react2.default.createElement(_index6.default,{dataTestId:_constants.TEST_IDS_RICH_TEXT.toolbar.root,disabled:s,editor:U,moduleGroups:I}),_react2.default.createElement("div",{className:h.scrollArea},_react2.default.createElement(_react.EditorContent,{className:h.editorWrapper,editor:U})),T&&!y&&_react2.default.createElement(_index5.default,{dataTestId:_constants.TEST_IDS_RICH_TEXT.submitButton,disabled:!k,loading:n,onSubmit:T,submitButtonProps:E}))),i&&_react2.default.createElement(_index2.default,{className:h.helpText,colorTheme:"gray",dataTestId:_constants.TEST_IDS_RICH_TEXT.helpText,variant:"small",withMarkdown:!0},i),P&&_react2.default.createElement(_index3.default,{dataTestId:_constants.TEST_IDS_RICH_TEXT.validation,validationData:P}))},propTypes=exports.propTypes={actions:(0,_propTypes.arrayOf)(_propTypes.object),classNames:(0,_propTypes.objectOf)(_propTypes.string),dataTestId:_propTypes.string,disabled:_propTypes.bool,error:(0,_propTypes.oneOfType)([_propTypes.bool,_propTypes.string]),helpText:_propTypes.string,loading:_propTypes.bool,moduleConfig:(0,_propTypes.objectOf)(_propTypes.object),modules:(0,_propTypes.arrayOf)((0,_propTypes.oneOf)(Object.values(_constants.MODULE_KEYS))),onBlur:_propTypes.func,onChange:_propTypes.func,onFocus:_propTypes.func,onSubmit:_propTypes.func,placeholder:_propTypes.string,readOnly:_propTypes.bool,required:_propTypes.bool,submitButtonProps:_propTypes.object,title:_propTypes.string,titleVariant:(0,_propTypes.oneOf)(Object.values(_constants.TITLE_VARIANTS)),validations:_index3.validationDataProptypes,value:_propTypes.object};UTRichText.propTypes=propTypes;var _default=exports.default=UTRichText;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _constants=require("../../constants.js"),_ToolbarButton=_interopRequireDefault(require("./ToolbarButton.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _constants=require("../../constants.js"),_ToolbarButton=_interopRequireDefault(require("./ToolbarButton.js")),_extensions=require("./extensions.js");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default={defaultConfig:{allowInsert:!0,allowStructureEdit:!0},extensions:e=>[_extensions.EnergyTable,_extensions.EnergyTableRow,_extensions.EnergyTableHeader,_extensions.EnergyTableCell,_extensions.CellFocus],key:_constants.MODULE_KEYS.table,testIds:{toolbarButton:_constants.TEST_IDS_RICH_TEXT.toolbar.table},ToolbarButton:_ToolbarButton.default,toolbarButton:{isActive:e=>e.isActive("table")&&e.isFocused}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildTableNode=exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.serializeToHTML=exports.buildTableNode=exports.buildSerializationExtensions=exports.buildParagraphNodes=void 0;var _html=require("@tiptap/html"),_isEmpty=_interopRequireDefault(require("lodash/isEmpty")),_constants=require("../constants.js"),_utils=require("../utils.js"),_moduleResolution=require("./moduleResolution.js");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const TABLE_EMAIL_STYLE="border-collapse: collapse; width: 100%; border-spacing: 0;",HEADER_CELL_EMAIL_STYLE="border: 1px solid #CCCCCC; padding: 8px 12px; text-align: left; font-family: inherit; font-weight: 600; background-color: #F5F5F5;",DATA_CELL_EMAIL_STYLE="border: 1px solid #CCCCCC; padding: 8px 12px; text-align: left; font-family: inherit;",buildParagraph=e=>({type:"paragraph",content:e?[{type:"text",text:String(e)}]:[]}),PARAGRAPH_SEPARATOR=/(?:\r?\n){2,}/,LINE_SEPARATOR=/\r?\n/,buildEmptyParagraph=()=>({type:"paragraph"}),buildParagraphContent=e=>e.split(LINE_SEPARATOR).flatMap((e,t)=>[...t>0?[{type:"hardBreak"}]:[],...e?[{type:"text",text:e}]:[]]),buildParagraphNodes=e=>e?e.split(PARAGRAPH_SEPARATOR).map(e=>{const t=buildParagraphContent(e);return(0,_isEmpty.default)(t)?buildEmptyParagraph():{type:"paragraph",content:t}}):[buildEmptyParagraph()];exports.buildParagraphNodes=buildParagraphNodes;const buildTableNode=e=>{let{headers:t,rows:a,cellColwidth:l}=e;return{type:"table",attrs:{style:TABLE_EMAIL_STYLE},content:[{type:"tableRow",content:t.map(e=>({type:"tableHeader",attrs:{colspan:1,colwidth:l?[l]:null,rowspan:1,style:HEADER_CELL_EMAIL_STYLE},content:[buildParagraph(e)]}))},...a.map(e=>({type:"tableRow",content:e.map(e=>({type:"tableCell",attrs:{colspan:1,colwidth:l?[l]:null,rowspan:1,style:DATA_CELL_EMAIL_STYLE},content:[buildParagraph(e)]}))}))]}};exports.buildTableNode=buildTableNode;const buildSerializationExtensions=function(){let{moduleConfig:e,modules:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,_utils.dedupeExtensions)([...(0,_constants.buildBaseExtensions)({}),...(0,_moduleResolution.buildModuleGroups)(t,e).flat().flatMap(e=>e.resolvedExtensions)])};exports.buildSerializationExtensions=buildSerializationExtensions;const serializeToHTML=function(e){let{moduleConfig:t,modules:a}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,_html.generateHTML)(e,buildSerializationExtensions({moduleConfig:t,modules:a}))};exports.serializeToHTML=serializeToHTML;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildModuleGroups=void 0;var _isEmpty=_interopRequireDefault(require("lodash/isEmpty")),_constants=require("../constants.js"),_registry=require("../registry.js");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const resolveConfig=(e,t)=>({...e.defaultConfig,...t[e.key]||{}}),resolveExtensions=(e,t)=>"function"==typeof e?e(t):e,buildModuleGroups=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_constants.DEFAULT_MODULES,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s=new Set(e);return _constants.TOOLBAR_GROUPS.map(e=>e.filter(e=>s.has(e)&&_registry.MODULE_REGISTRY[e]).map(e=>{const s=_registry.MODULE_REGISTRY[e],o=resolveConfig(s,t);return{...s,config:o,resolvedExtensions:resolveExtensions(s.extensions,o)}})).filter(e=>!(0,_isEmpty.default)(e))};exports.buildModuleGroups=buildModuleGroups;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useEditorState}from"@tiptap/react";import isEmpty from"lodash/isEmpty";import{arrayOf,bool,object,string}from"prop-types";import React,{Fragment,useMemo}from"react";import{getActiveStates}from"../../utils.js";import ToolbarButton from"../ToolbarButton/index.js";import styles from"./styles.module.scss";const preventFocusLoss=
|
|
1
|
+
import{useEditorState}from"@tiptap/react";import isEmpty from"lodash/isEmpty";import{arrayOf,bool,object,string}from"prop-types";import React,{Fragment,memo,useMemo}from"react";import{getActiveStates}from"../../utils.js";import ToolbarButton from"../ToolbarButton/index.js";import styles from"./styles.module.scss";const preventFocusLoss=e=>e.preventDefault(),Toolbar=e=>{let{dataTestId:t,disabled:o,editor:r,moduleGroups:a}=e;const s=useMemo(()=>a.flat(),[a]),l=useEditorState({editor:r,selector:e=>{let{editor:t}=e;return t?getActiveStates(t,s):null}});return!r||isEmpty(a)?null:React.createElement("div",{className:styles.toolbar,"data-testid":t,onMouseDown:preventFocusLoss,role:"toolbar"},a.map((e,t)=>React.createElement(Fragment,{key:e.map(e=>e.key).join("-")},t>0&&React.createElement("span",{className:styles.separator}),e.map(e=>{const t=e.ToolbarButton||ToolbarButton;return React.createElement(t,{disabled:o,editor:r,isActive:Boolean(null==l?void 0:l[e.key]),key:e.key,module:e})}))))};Toolbar.propTypes={dataTestId:string,disabled:bool,editor:object,moduleGroups:arrayOf(arrayOf(object))};export default memo(Toolbar);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{bool,object,shape,string}from"prop-types";import React,{useCallback}from"react";import UTButton from"../../../UTButton/index.js";import UTTooltip from"../../../UTTooltip/index.js";import{TOOLBAR_BUTTON}from"../../constants.js";const ToolbarButton=t=>{let{disabled:o,editor:e,isActive:a,module:r}=t;const{command:i,icon:n,tooltip:c}=r.toolbarButton,{colorTheme:l,variant:s}=a?TOOLBAR_BUTTON.active:TOOLBAR_BUTTON.inactive,T=useCallback(()=>i(e.chain().focus()).run(),[i,e]);return React.createElement(UTTooltip,{arrow:!1,content:c,tippyProps:{appendTo:()=>document.body,interactive:!1}},React.createElement("div",null,React.createElement(UTButton,{colorTheme:l,dataTestId:r.testIds.toolbarButton,disabled:o,LeftIcon:n,onClick:T,size:TOOLBAR_BUTTON.size,variant:s})))};ToolbarButton.propTypes={disabled:bool,editor:object,isActive:bool,module:shape({key:string,testIds:object,toolbarButton:object})};export default ToolbarButton;
|
|
1
|
+
import{bool,object,shape,string}from"prop-types";import React,{memo,useCallback}from"react";import UTButton from"../../../UTButton/index.js";import UTTooltip from"../../../UTTooltip/index.js";import{TOOLBAR_BUTTON}from"../../constants.js";const ToolbarButton=t=>{let{disabled:o,editor:e,isActive:a,module:r}=t;const{command:i,icon:n,tooltip:c}=r.toolbarButton,{colorTheme:l,variant:s}=a?TOOLBAR_BUTTON.active:TOOLBAR_BUTTON.inactive,T=useCallback(()=>i(e.chain().focus()).run(),[i,e]);return React.createElement(UTTooltip,{arrow:!1,content:c,tippyProps:{appendTo:()=>document.body,interactive:!1}},React.createElement("div",null,React.createElement(UTButton,{colorTheme:l,dataTestId:r.testIds.toolbarButton,disabled:o,LeftIcon:n,onClick:T,size:TOOLBAR_BUTTON.size,variant:s})))};ToolbarButton.propTypes={disabled:bool,editor:object,isActive:bool,module:shape({key:string,testIds:object,toolbarButton:object})};export default memo(ToolbarButton);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{useMemo}from"react";import{DEFAULT_MODULES}from"../constants.js";import{buildModuleGroups}from"../utils/moduleResolution.js";const useModuleResolution=o=>{let{moduleConfig:e={},modules:s}=o;const u=JSON.stringify(s||DEFAULT_MODULES),t=JSON.stringify(e);return useMemo(()=>buildModuleGroups(JSON.parse(u),JSON.parse(t)),[t,u])};export default useModuleResolution;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useEditor}from"@tiptap/react";import{useEffect,useMemo,useRef}from"react";import{buildBaseExtensions}from"../constants.js";import CustomKeymap from"../extensions/CustomKeymap.js";import{dedupeExtensions,isSameDocument}from"../utils.js";const useRichTextEditor=e=>{let{activeModules:t,ariaLabel:o,dataTestId:n,disabled:
|
|
1
|
+
import{useEditor}from"@tiptap/react";import{useEffect,useMemo,useRef}from"react";import{buildBaseExtensions}from"../constants.js";import CustomKeymap from"../extensions/CustomKeymap.js";import{dedupeExtensions,isSameDocument}from"../utils.js";const COMMIT_DEBOUNCE_MS=1e3,useRichTextEditor=e=>{let{activeModules:t,ariaLabel:o,dataTestId:n,disabled:u,editorClassName:r,onBlur:s,onChange:i,onFocus:l,onSubmit:a,placeholder:c,readOnly:m,value:d}=e;const f=useRef({});f.current={onBlur:s,onChange:i,onFocus:l,onSubmit:a};const p=useRef(null),E=useRef({document:null,timeoutId:null}),b=()=>{var e,t;const o=E.current;o.timeoutId&&(clearTimeout(o.timeoutId),o.timeoutId=null,p.current=o.document,null===(e=(t=f.current).onChange)||void 0===e||e.call(t,o.document))},v=useMemo(()=>dedupeExtensions([...buildBaseExtensions({placeholder:c}),...t.flatMap(e=>e.extensions),CustomKeymap.configure({onSubmit:()=>{const e=f.current.onSubmit;return!!e&&(b(),!0===e())}})]),[t,c]),x=useEditor({content:d,editable:!u&&!m,editorProps:{attributes:{"aria-label":o,"aria-multiline":"true","data-testid":n,class:r,role:"textbox"}},extensions:v,immediatelyRender:!1,onBlur:e=>{var t,o;let{event:n}=e;b(),null===(t=(o=f.current).onBlur)||void 0===t||t.call(o,n)},onFocus:e=>{var t,o;let{event:n}=e;return null===(t=(o=f.current).onFocus)||void 0===t?void 0:t.call(o,n)},onUpdate:e=>{let{editor:t}=e;return(e=>{const t=E.current;t.document=e,t.timeoutId&&clearTimeout(t.timeoutId),t.timeoutId=setTimeout(()=>{var e,o;t.timeoutId=null,p.current=t.document,null===(e=(o=f.current).onChange)||void 0===e||e.call(o,t.document)},1e3)})(t.getJSON())}},[v]);return useEffect(()=>{x&&(d?d!==p.current&&(isSameDocument(d,x.getJSON())||x.commands.setContent(d,{emitUpdate:!1})):x.isEmpty||x.commands.clearContent(!1))},[x,d]),useEffect(()=>{null==x||x.setEditable(!u&&!m)},[u,x,m]),useEffect(()=>()=>{const{timeoutId:e}=E.current;e&&clearTimeout(e)},[]),x};export default useRichTextEditor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{EditorContent,useEditorState}from"@tiptap/react";import isEmpty from"lodash/isEmpty";import{arrayOf,bool,func,object,objectOf,oneOf,oneOfType,string}from"prop-types";import React,{useCallback,useMemo,useRef,useState}from"react";import{mergeMultipleClassNames}from"../../utils/classesUtils.js";import UTFieldLabel from"../UTFieldLabel/index.js";import UTLabel from"../UTLabel/index.js";import UTValidation,{validationDataProptypes}from"../UTValidation/index.js";import{formatErrorToValidation}from"../UTValidation/utils.js";import EditorSkeleton from"./components/EditorSkeleton/index.
|
|
1
|
+
import{EditorContent,useEditorState}from"@tiptap/react";import isEmpty from"lodash/isEmpty";import{arrayOf,bool,func,object,objectOf,oneOf,oneOfType,string}from"prop-types";import React,{useCallback,useMemo,useRef,useState}from"react";import{mergeMultipleClassNames}from"../../utils/classesUtils.js";import UTFieldLabel from"../UTFieldLabel/index.js";import UTLabel from"../UTLabel/index.js";import UTValidation,{validationDataProptypes}from"../UTValidation/index.js";import{formatErrorToValidation}from"../UTValidation/utils.js";import EditorSkeleton from"./components/EditorSkeleton/index.js";import SubmitAction from"./components/SubmitAction/index.js";import Toolbar from"./components/Toolbar/index.js";import{DEFAULT_PROPS,MODULE_KEYS,TEST_IDS_RICH_TEXT,TITLE_VARIANTS}from"./constants.js";import useModuleResolution from"./hooks/useModuleResolution.js";import useRichTextEditor from"./hooks/useRichTextEditor.js";import{getFieldClassName}from"./utils.js";import styles from"./styles.module.scss";const UTRichText=e=>{var t;let{actions:o,classNames:a={},dataTestId:s=TEST_IDS_RICH_TEXT.root,disabled:l=!1,error:r,helpText:i,loading:n=!1,moduleConfig:d={},modules:m,onBlur:c,onChange:u,onFocus:T,onSubmit:p,placeholder:E,readOnly:b=!1,required:f=!1,submitButtonProps:S,title:R,titleVariant:_=DEFAULT_PROPS.titleVariant,validations:I,value:C}=e;const[y,g]=useState(!1),j=useModuleResolution({moduleConfig:d,modules:m}),O=useMemo(()=>j.flat(),[j]),h=useMemo(()=>mergeMultipleClassNames(styles,a),[a]),v=useMemo(()=>O.map(e=>{var t;return{...e,extensions:null!==(t=e.resolvedExtensions)&&void 0!==t?t:e.extensions}}),[O]),x=useCallback(e=>{g(!0),null==T||T(e)},[T]),U=useCallback(e=>{g(!1),null==c||c(e)},[c]),D=useRef(!1),M=useCallback(()=>!(!D.current||!p)&&(p(),!0),[p]),N=useRichTextEditor({activeModules:v,ariaLabel:R,dataTestId:TEST_IDS_RICH_TEXT.content,disabled:l,editorClassName:styles.editorContent,onBlur:U,onChange:u,onFocus:x,onSubmit:M,placeholder:E,readOnly:b,value:C}),L=null===(t=useEditorState({editor:N,selector:e=>{let{editor:t}=e;return!t||t.isEmpty}}))||void 0===t||t,F=Boolean(p)&&!l&&!n&&!L;D.current=F;const V=useMemo(()=>isEmpty(I)?r?formatErrorToValidation(r):null:I,[r,I]);return React.createElement("div",{className:h.container,"data-testid":s},R&&React.createElement(UTFieldLabel,{actions:o,dataTestId:TEST_IDS_RICH_TEXT.label,readOnly:b,required:f,size:_},R),React.createElement("div",{className:getFieldClassName({classes:h,disabled:l,error:r,isFocused:y,readOnly:b}),"data-testid":TEST_IDS_RICH_TEXT.field},n?React.createElement(EditorSkeleton,null):React.createElement(React.Fragment,null,!b&&React.createElement(Toolbar,{dataTestId:TEST_IDS_RICH_TEXT.toolbar.root,disabled:l,editor:N,moduleGroups:j}),React.createElement("div",{className:h.scrollArea},React.createElement(EditorContent,{className:h.editorWrapper,editor:N})),p&&!b&&React.createElement(SubmitAction,{dataTestId:TEST_IDS_RICH_TEXT.submitButton,disabled:!F,loading:n,onSubmit:p,submitButtonProps:S}))),i&&React.createElement(UTLabel,{className:h.helpText,colorTheme:"gray",dataTestId:TEST_IDS_RICH_TEXT.helpText,variant:"small",withMarkdown:!0},i),V&&React.createElement(UTValidation,{dataTestId:TEST_IDS_RICH_TEXT.validation,validationData:V}))};export const propTypes={actions:arrayOf(object),classNames:objectOf(string),dataTestId:string,disabled:bool,error:oneOfType([bool,string]),helpText:string,loading:bool,moduleConfig:objectOf(object),modules:arrayOf(oneOf(Object.values(MODULE_KEYS))),onBlur:func,onChange:func,onFocus:func,onSubmit:func,placeholder:string,readOnly:bool,required:bool,submitButtonProps:object,title:string,titleVariant:oneOf(Object.values(TITLE_VARIANTS)),validations:validationDataProptypes,value:object};UTRichText.propTypes=propTypes;export default UTRichText;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{MODULE_KEYS,TEST_IDS_RICH_TEXT}from"../../constants.js";import TableToolbarButton from"./ToolbarButton.
|
|
1
|
+
import{MODULE_KEYS,TEST_IDS_RICH_TEXT}from"../../constants.js";import TableToolbarButton from"./ToolbarButton.js";import{CellFocus,EnergyTable,EnergyTableCell,EnergyTableHeader,EnergyTableRow}from"./extensions.js";export default{defaultConfig:{allowInsert:!0,allowStructureEdit:!0},extensions:e=>[EnergyTable,EnergyTableRow,EnergyTableHeader,EnergyTableCell,CellFocus],key:MODULE_KEYS.table,testIds:{toolbarButton:TEST_IDS_RICH_TEXT.toolbar.table},ToolbarButton:TableToolbarButton,toolbarButton:{isActive:e=>e.isActive("table")&&e.isFocused}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{generateHTML}from"@tiptap/html";import isEmpty from"lodash/isEmpty";import{buildBaseExtensions}from"../constants.js";import{dedupeExtensions}from"../utils.js";import{buildModuleGroups}from"./moduleResolution.js";const TABLE_EMAIL_STYLE="border-collapse: collapse; width: 100%; border-spacing: 0;",HEADER_CELL_EMAIL_STYLE="border: 1px solid #CCCCCC; padding: 8px 12px; text-align: left; font-family: inherit; font-weight: 600; background-color: #F5F5F5;",DATA_CELL_EMAIL_STYLE="border: 1px solid #CCCCCC; padding: 8px 12px; text-align: left; font-family: inherit;",buildParagraph=t=>({type:"paragraph",content:t?[{type:"text",text:String(t)}]:[]}),PARAGRAPH_SEPARATOR=/(?:\r?\n){2,}/,LINE_SEPARATOR=/\r?\n/,buildEmptyParagraph=()=>({type:"paragraph"}),buildParagraphContent=t=>t.split(LINE_SEPARATOR).flatMap((t,e)=>[...e>0?[{type:"hardBreak"}]:[],...t?[{type:"text",text:t}]:[]]);export const buildParagraphNodes=t=>t?t.split(PARAGRAPH_SEPARATOR).map(t=>{const e=buildParagraphContent(t);return isEmpty(e)?buildEmptyParagraph():{type:"paragraph",content:e}}):[buildEmptyParagraph()];export const buildTableNode=t=>{let{headers:e,rows:o,cellColwidth:a}=t;return{type:"table",attrs:{style:TABLE_EMAIL_STYLE},content:[{type:"tableRow",content:e.map(t=>({type:"tableHeader",attrs:{colspan:1,colwidth:a?[a]:null,rowspan:1,style:HEADER_CELL_EMAIL_STYLE},content:[buildParagraph(t)]}))},...o.map(t=>({type:"tableRow",content:t.map(t=>({type:"tableCell",attrs:{colspan:1,colwidth:a?[a]:null,rowspan:1,style:DATA_CELL_EMAIL_STYLE},content:[buildParagraph(t)]}))}))]}};export const buildSerializationExtensions=function(){let{moduleConfig:t,modules:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return dedupeExtensions([...buildBaseExtensions({}),...buildModuleGroups(e,t).flat().flatMap(t=>t.resolvedExtensions)])};export const serializeToHTML=function(t){let{moduleConfig:e,modules:o}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return generateHTML(t,buildSerializationExtensions({moduleConfig:e,modules:o}))};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import isEmpty from"lodash/isEmpty";import{DEFAULT_MODULES,TOOLBAR_GROUPS}from"../constants.js";import{MODULE_REGISTRY}from"../registry.js";const resolveConfig=(o,e)=>({...o.defaultConfig,...e[o.key]||{}}),resolveExtensions=(o,e)=>"function"==typeof o?o(e):o;export const buildModuleGroups=function(){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const e=new Set(arguments.length>0&&void 0!==arguments[0]?arguments[0]:DEFAULT_MODULES);return TOOLBAR_GROUPS.map(t=>t.filter(o=>e.has(o)&&MODULE_REGISTRY[o]).map(e=>{const t=MODULE_REGISTRY[e],s=resolveConfig(t,o);return{...t,config:s,resolvedExtensions:resolveExtensions(t.extensions,s)}})).filter(o=>!isEmpty(o))};
|