@jotforminc/dnd-builder 3.4.0 → 3.4.1
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 +19 -1
- package/lib/cjs/components/Builder/Element.js +6 -3
- package/lib/cjs/components/Builder/Element.js.map +1 -1
- package/lib/cjs/components/ErrorBoundary/ErrorBoundary.js +6 -8
- package/lib/cjs/components/ErrorBoundary/ErrorBoundary.js.map +1 -1
- package/lib/cjs/components/ErrorBoundary/ErrorFallbackWrapper.js +11 -18
- package/lib/cjs/components/ErrorBoundary/ErrorFallbackWrapper.js.map +1 -1
- package/lib/cjs/components/TextEditor/QuillEditor.js +10 -8
- package/lib/cjs/components/TextEditor/QuillEditor.js.map +1 -1
- package/lib/cjs/components/TextEditor/TextEditor.js +15 -6
- package/lib/cjs/components/TextEditor/TextEditor.js.map +1 -1
- package/lib/cjs/constants/texts.js +1 -0
- package/lib/cjs/constants/texts.js.map +1 -1
- package/lib/cjs/styles/_jfReportsMain.scss +7 -0
- package/lib/cjs/styles/_jfReportsPanels.scss +0 -1
- package/lib/cjs/utils/hooks.js +26 -0
- package/lib/cjs/utils/hooks.js.map +1 -1
- package/lib/esm/components/Builder/Element.js +6 -3
- package/lib/esm/components/Builder/Element.js.map +1 -1
- package/lib/esm/components/ErrorBoundary/ErrorBoundary.js +6 -8
- package/lib/esm/components/ErrorBoundary/ErrorBoundary.js.map +1 -1
- package/lib/esm/components/ErrorBoundary/ErrorFallbackWrapper.js +11 -18
- package/lib/esm/components/ErrorBoundary/ErrorFallbackWrapper.js.map +1 -1
- package/lib/esm/components/TextEditor/QuillEditor.js +10 -8
- package/lib/esm/components/TextEditor/QuillEditor.js.map +1 -1
- package/lib/esm/components/TextEditor/TextEditor.js +16 -7
- package/lib/esm/components/TextEditor/TextEditor.js.map +1 -1
- package/lib/esm/constants/texts.js +1 -0
- package/lib/esm/constants/texts.js.map +1 -1
- package/lib/esm/styles/_jfReportsMain.scss +7 -0
- package/lib/esm/styles/_jfReportsPanels.scss +0 -1
- package/lib/esm/utils/hooks.js +27 -2
- package/lib/esm/utils/hooks.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
All notable changes to this project will be documented in this file. See [
|
|
3
|
+
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
|
|
4
|
+
|
|
5
|
+
## [3.4.1](https://github.com/jotform/dnd-builder/compare/v3.5.0...v3.4.1) (2026-02-19)
|
|
6
|
+
|
|
7
|
+
## [3.5.0](https://github.com/jotform/dnd-builder/compare/v3.4.0...v3.5.0) (2026-02-19)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* adds 'Shape Settings' text ([f6ee80d](https://github.com/jotform/dnd-builder/commit/f6ee80d814618c38cc6caff987a8543f70356aba))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* **dnd-builder:** element comp updates ([bfa94ff](https://github.com/jotform/dnd-builder/commit/bfa94ff8bcef6e37f246545bb5eb26ab158f232a))
|
|
18
|
+
* don't close text editor on QuillEditor's componentWillUnmount ([678c099](https://github.com/jotform/dnd-builder/commit/678c099b873a127896eaab54613a128456a83f09))
|
|
19
|
+
* **error-boundry:** set default props for ErrorFallbackWrapper ([a919f26](https://github.com/jotform/dnd-builder/commit/a919f26e7348b181b1ace1ff9c7fbad9a5435b07))
|
|
20
|
+
* **text-editor:** close editor when not selected ([3bdf97c](https://github.com/jotform/dnd-builder/commit/3bdf97cd45834ac0fa54ba47ac8b0a26986722a4))
|
|
21
|
+
* textbox content should be up-to-date ([193010c](https://github.com/jotform/dnd-builder/commit/193010c4777197baba808dd9e1dac17fea47b54d))
|
|
4
22
|
|
|
5
23
|
## [3.4.0](https://github.com/jotform/dnd-builder/compare/v3.3.0...v3.4.0) (2026-02-18)
|
|
6
24
|
|
|
@@ -17,7 +17,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
17
17
|
|
|
18
18
|
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
19
19
|
|
|
20
|
-
var _excluded = ["icon", "iconType", "itemType", "title"];
|
|
20
|
+
var _excluded = ["badge", "icon", "iconType", "itemType", "title"];
|
|
21
21
|
|
|
22
22
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
23
23
|
|
|
@@ -42,7 +42,9 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
|
|
|
42
42
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
43
43
|
|
|
44
44
|
var Element = function Element(_ref) {
|
|
45
|
-
var _ref$
|
|
45
|
+
var _ref$badge = _ref.badge,
|
|
46
|
+
badge = _ref$badge === void 0 ? null : _ref$badge,
|
|
47
|
+
_ref$icon = _ref.icon,
|
|
46
48
|
icon = _ref$icon === void 0 ? null : _ref$icon,
|
|
47
49
|
_ref$iconType = _ref.iconType,
|
|
48
50
|
iconType = _ref$iconType === void 0 ? '' : _ref$iconType,
|
|
@@ -152,12 +154,13 @@ var Element = function Element(_ref) {
|
|
|
152
154
|
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
153
155
|
className: "js-toolItemName toolItem-name d-flex a-center",
|
|
154
156
|
children: title
|
|
155
|
-
})]
|
|
157
|
+
}), badge]
|
|
156
158
|
})
|
|
157
159
|
});
|
|
158
160
|
};
|
|
159
161
|
|
|
160
162
|
Element.propTypes = {
|
|
163
|
+
badge: PropTypes__default['default'].node,
|
|
161
164
|
icon: PropTypes__default['default'].oneOfType([PropTypes__default['default'].element, PropTypes__default['default'].func]),
|
|
162
165
|
iconType: PropTypes__default['default'].string,
|
|
163
166
|
itemType: PropTypes__default['default'].string,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Element.js","sources":["../../../../src/components/Builder/Element.js"],"sourcesContent":["import { useEffect, memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDrag } from 'react-dnd';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport { DROPPABLE_ITEM_TYPE } from '../../constants/itemTypes';\nimport {\n getMostVisiblePage, getExactIconType, getAvailableCoordinate,\n} from '../../utils/functions';\nimport generateId from '../../utils/generateId';\nimport * as icons from '../../utils/icons';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\n\nconst Element = ({\n icon = null,\n iconType = '',\n itemType = '',\n title = '',\n ...additionalData\n}) => {\n const acceptedItems = usePropStore(state => state.acceptedItems);\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const onItemAdd = usePropStore(state => state.onItemAdd);\n const resetActiveElements = useBuilderStore(state => state.resetActiveElements);\n const setActiveElements = useBuilderStore(state => state.setActiveElements);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const zoom = useBuilderStore(state => state.zoom);\n\n const [{ isDragging }, drag, preview] = useDrag(() => ({\n collect: monitor => ({\n isDragging: monitor.isDragging(),\n }),\n\n item: () => {\n resetActiveElements();\n return {\n itemType,\n type: DROPPABLE_ITEM_TYPE,\n ...additionalData,\n };\n },\n\n type: DROPPABLE_ITEM_TYPE,\n }), [itemType, additionalData]);\n\n useEffect(() => {\n preview(getEmptyImage(), { captureDraggingState: true });\n }, [preview]);\n\n const onElementClick = () => {\n const itemID = generateId();\n const page = getMostVisiblePage();\n let left = 0;\n let top = 0;\n if (page) { // for test\n [left, top] = getAvailableCoordinate(page, zoom);\n }\n onItemAdd({\n ...acceptedItems[itemType].details,\n ...additionalData,\n id: itemID,\n left,\n pageID: page.id,\n top,\n });\n onAnEventTrigger('reportItemAdd', itemType);\n setActiveElements(itemID, true);\n setIsRightPanelOpen(true);\n };\n\n const onElementOtherActions = () => {};\n\n const exactIconType = getExactIconType(iconType);\n const Icon = icons[exactIconType] ? icons[exactIconType] : icons.label;\n return (\n <>\n <div\n ref={drag}\n className=\"toolItem d-flex a-center js-toolItem\"\n onClick={onElementClick}\n onKeyDown={onElementOtherActions}\n style={{ cursor: isDragging ? 'grabbing' : 'pointer', opacity: isDragging ? 0.5 : 1 }}\n title={title}\n >\n <span className=\"toolItem-icon d-flex j-center a-center\">\n {icon ? icon : (\n <Icon className={`jfReportSVG icon-question icon-${iconType}`} />\n )}\n </span>\n <span className=\"js-toolItemName toolItem-name d-flex a-center\">\n { title }\n </span>\n </div>\n </>\n );\n};\n\nElement.propTypes = {\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n iconType: PropTypes.string,\n itemType: PropTypes.string,\n title: PropTypes.string,\n};\n\nexport default memo(Element);\n"],"names":["Element","icon","iconType","itemType","title","additionalData","acceptedItems","usePropStore","state","onAnEventTrigger","onItemAdd","resetActiveElements","useBuilderStore","setActiveElements","setIsRightPanelOpen","zoom","useDrag","collect","monitor","isDragging","item","type","DROPPABLE_ITEM_TYPE","drag","preview","useEffect","getEmptyImage","captureDraggingState","onElementClick","itemID","generateId","page","getMostVisiblePage","left","top","getAvailableCoordinate","details","id","pageID","onElementOtherActions","exactIconType","getExactIconType","Icon","icons","_jsx","_jsxs","cursor","opacity","propTypes","PropTypes","oneOfType","element","func","string","memo"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,IAAMA,OAAO,GAAG,SAAVA,OAAU,
|
|
1
|
+
{"version":3,"file":"Element.js","sources":["../../../../src/components/Builder/Element.js"],"sourcesContent":["import { useEffect, memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDrag } from 'react-dnd';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport { DROPPABLE_ITEM_TYPE } from '../../constants/itemTypes';\nimport {\n getMostVisiblePage, getExactIconType, getAvailableCoordinate,\n} from '../../utils/functions';\nimport generateId from '../../utils/generateId';\nimport * as icons from '../../utils/icons';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropStore } from '../../contexts/PropContext';\n\nconst Element = ({\n badge = null,\n icon = null,\n iconType = '',\n itemType = '',\n title = '',\n ...additionalData\n}) => {\n const acceptedItems = usePropStore(state => state.acceptedItems);\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const onItemAdd = usePropStore(state => state.onItemAdd);\n const resetActiveElements = useBuilderStore(state => state.resetActiveElements);\n const setActiveElements = useBuilderStore(state => state.setActiveElements);\n const setIsRightPanelOpen = useBuilderStore(state => state.setIsRightPanelOpen);\n const zoom = useBuilderStore(state => state.zoom);\n\n const [{ isDragging }, drag, preview] = useDrag(() => ({\n collect: monitor => ({\n isDragging: monitor.isDragging(),\n }),\n\n item: () => {\n resetActiveElements();\n return {\n itemType,\n type: DROPPABLE_ITEM_TYPE,\n ...additionalData,\n };\n },\n\n type: DROPPABLE_ITEM_TYPE,\n }), [itemType, additionalData]);\n\n useEffect(() => {\n preview(getEmptyImage(), { captureDraggingState: true });\n }, [preview]);\n\n const onElementClick = () => {\n const itemID = generateId();\n const page = getMostVisiblePage();\n let left = 0;\n let top = 0;\n if (page) { // for test\n [left, top] = getAvailableCoordinate(page, zoom);\n }\n onItemAdd({\n ...acceptedItems[itemType].details,\n ...additionalData,\n id: itemID,\n left,\n pageID: page.id,\n top,\n });\n onAnEventTrigger('reportItemAdd', itemType);\n setActiveElements(itemID, true);\n setIsRightPanelOpen(true);\n };\n\n const onElementOtherActions = () => {};\n\n const exactIconType = getExactIconType(iconType);\n const Icon = icons[exactIconType] ? icons[exactIconType] : icons.label;\n return (\n <>\n <div\n ref={drag}\n className=\"toolItem d-flex a-center js-toolItem\"\n onClick={onElementClick}\n onKeyDown={onElementOtherActions}\n style={{ cursor: isDragging ? 'grabbing' : 'pointer', opacity: isDragging ? 0.5 : 1 }}\n title={title}\n >\n <span className=\"toolItem-icon d-flex j-center a-center\">\n {icon ? icon : (\n <Icon className={`jfReportSVG icon-question icon-${iconType}`} />\n )}\n </span>\n <span className=\"js-toolItemName toolItem-name d-flex a-center\">\n { title }\n </span>\n {badge}\n </div>\n </>\n );\n};\n\nElement.propTypes = {\n badge: PropTypes.node,\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n iconType: PropTypes.string,\n itemType: PropTypes.string,\n title: PropTypes.string,\n};\n\nexport default memo(Element);\n"],"names":["Element","badge","icon","iconType","itemType","title","additionalData","acceptedItems","usePropStore","state","onAnEventTrigger","onItemAdd","resetActiveElements","useBuilderStore","setActiveElements","setIsRightPanelOpen","zoom","useDrag","collect","monitor","isDragging","item","type","DROPPABLE_ITEM_TYPE","drag","preview","useEffect","getEmptyImage","captureDraggingState","onElementClick","itemID","generateId","page","getMostVisiblePage","left","top","getAvailableCoordinate","details","id","pageID","onElementOtherActions","exactIconType","getExactIconType","Icon","icons","_jsx","_jsxs","cursor","opacity","propTypes","PropTypes","node","oneOfType","element","func","string","memo"],"mappings":"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"}
|
|
@@ -25,9 +25,12 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
25
25
|
|
|
26
26
|
function ErrorBoundary(_ref) {
|
|
27
27
|
var children = _ref.children,
|
|
28
|
-
isStatic = _ref.isStatic,
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
_ref$isStatic = _ref.isStatic,
|
|
29
|
+
isStatic = _ref$isStatic === void 0 ? false : _ref$isStatic,
|
|
30
|
+
_ref$item = _ref.item,
|
|
31
|
+
item = _ref$item === void 0 ? null : _ref$item,
|
|
32
|
+
_ref$level = _ref.level,
|
|
33
|
+
level = _ref$level === void 0 ? 'page' : _ref$level;
|
|
31
34
|
|
|
32
35
|
var _useState = React.useState(null),
|
|
33
36
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -84,11 +87,6 @@ ErrorBoundary.propTypes = {
|
|
|
84
87
|
}),
|
|
85
88
|
level: PropTypes__default['default'].oneOf(['item', 'page'])
|
|
86
89
|
};
|
|
87
|
-
ErrorBoundary.defaultProps = {
|
|
88
|
-
isStatic: false,
|
|
89
|
-
item: null,
|
|
90
|
-
level: 'page'
|
|
91
|
-
};
|
|
92
90
|
|
|
93
91
|
module.exports = ErrorBoundary;
|
|
94
92
|
//# sourceMappingURL=ErrorBoundary.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorBoundary.js","sources":["../../../../src/components/ErrorBoundary/ErrorBoundary.js"],"sourcesContent":["import { useState } from 'react';\nimport { ErrorBoundary as ReactErrorBoundary } from 'react-error-boundary';\nimport PropTypes from 'prop-types';\nimport { useTranslatedTexts } from '../../utils/hooks';\nimport ErrorFallbackWrapper from './ErrorFallbackWrapper';\n\nfunction ErrorBoundary({\n children, isStatic, item, level,\n}) {\n const [errorInfo, setErrorInfo] = useState(null);\n const {\n ERROR_BOUNDARY_DESCRIPTION,\n ERROR_BOUNDARY_ITEM_DESCRIPTION,\n ERROR_BOUNDARY_PAGE_DESCRIPTION,\n ERROR_BOUNDARY_TITLE,\n } = useTranslatedTexts();\n\n const TEXT_CONFIG = {\n item: {\n description: ERROR_BOUNDARY_ITEM_DESCRIPTION,\n title: ERROR_BOUNDARY_TITLE,\n },\n page: {\n description: ERROR_BOUNDARY_PAGE_DESCRIPTION,\n title: ERROR_BOUNDARY_TITLE,\n },\n settings: {\n description: ERROR_BOUNDARY_DESCRIPTION,\n title: ERROR_BOUNDARY_TITLE,\n },\n };\n return (\n <ReactErrorBoundary\n fallbackRender={({ error }) => (\n <ErrorFallbackWrapper\n error={error}\n errorInfo={errorInfo}\n isStatic={isStatic}\n item={item}\n level={level}\n textConfig={TEXT_CONFIG}\n />\n )}\n onError={(error, info) => {\n if (error && info) {\n setErrorInfo(info);\n }\n }}\n >\n {children}\n </ReactErrorBoundary>\n );\n}\n\nErrorBoundary.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]).isRequired,\n isStatic: PropTypes.bool,\n item: PropTypes.shape({\n id: PropTypes.string,\n itemType: PropTypes.string,\n }),\n level: PropTypes.oneOf(['item', 'page']),\n};\n\
|
|
1
|
+
{"version":3,"file":"ErrorBoundary.js","sources":["../../../../src/components/ErrorBoundary/ErrorBoundary.js"],"sourcesContent":["import { useState } from 'react';\nimport { ErrorBoundary as ReactErrorBoundary } from 'react-error-boundary';\nimport PropTypes from 'prop-types';\nimport { useTranslatedTexts } from '../../utils/hooks';\nimport ErrorFallbackWrapper from './ErrorFallbackWrapper';\n\nfunction ErrorBoundary({\n children, isStatic = false, item = null, level = 'page',\n}) {\n const [errorInfo, setErrorInfo] = useState(null);\n const {\n ERROR_BOUNDARY_DESCRIPTION,\n ERROR_BOUNDARY_ITEM_DESCRIPTION,\n ERROR_BOUNDARY_PAGE_DESCRIPTION,\n ERROR_BOUNDARY_TITLE,\n } = useTranslatedTexts();\n\n const TEXT_CONFIG = {\n item: {\n description: ERROR_BOUNDARY_ITEM_DESCRIPTION,\n title: ERROR_BOUNDARY_TITLE,\n },\n page: {\n description: ERROR_BOUNDARY_PAGE_DESCRIPTION,\n title: ERROR_BOUNDARY_TITLE,\n },\n settings: {\n description: ERROR_BOUNDARY_DESCRIPTION,\n title: ERROR_BOUNDARY_TITLE,\n },\n };\n return (\n <ReactErrorBoundary\n fallbackRender={({ error }) => (\n <ErrorFallbackWrapper\n error={error}\n errorInfo={errorInfo}\n isStatic={isStatic}\n item={item}\n level={level}\n textConfig={TEXT_CONFIG}\n />\n )}\n onError={(error, info) => {\n if (error && info) {\n setErrorInfo(info);\n }\n }}\n >\n {children}\n </ReactErrorBoundary>\n );\n}\n\nErrorBoundary.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]).isRequired,\n isStatic: PropTypes.bool,\n item: PropTypes.shape({\n id: PropTypes.string,\n itemType: PropTypes.string,\n }),\n level: PropTypes.oneOf(['item', 'page']),\n};\n\nexport default ErrorBoundary;\n"],"names":["ErrorBoundary","children","isStatic","item","level","useState","errorInfo","setErrorInfo","useTranslatedTexts","ERROR_BOUNDARY_DESCRIPTION","ERROR_BOUNDARY_ITEM_DESCRIPTION","ERROR_BOUNDARY_PAGE_DESCRIPTION","ERROR_BOUNDARY_TITLE","TEXT_CONFIG","description","title","page","settings","_jsx","ReactErrorBoundary","error","info","propTypes","PropTypes","oneOfType","arrayOf","node","isRequired","bool","shape","id","string","itemType","oneOf"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAMA,SAASA,aAAT,OAEG;AAAA,MADDC,QACC,QADDA,QACC;AAAA,2BADSC,QACT;AAAA,MADSA,QACT,8BADoB,KACpB;AAAA,uBAD2BC,IAC3B;AAAA,MAD2BA,IAC3B,0BADkC,IAClC;AAAA,wBADwCC,KACxC;AAAA,MADwCA,KACxC,2BADgD,MAChD;;AACD,kBAAkCC,cAAQ,CAAC,IAAD,CAA1C;AAAA;AAAA,MAAOC,SAAP;AAAA,MAAkBC,YAAlB;;AACA,4BAKIC,wBAAkB,EALtB;AAAA,MACEC,0BADF,uBACEA,0BADF;AAAA,MAEEC,+BAFF,uBAEEA,+BAFF;AAAA,MAGEC,+BAHF,uBAGEA,+BAHF;AAAA,MAIEC,oBAJF,uBAIEA,oBAJF;;AAOA,MAAMC,WAAW,GAAG;AAClBV,IAAAA,IAAI,EAAE;AACJW,MAAAA,WAAW,EAAEJ,+BADT;AAEJK,MAAAA,KAAK,EAAEH;AAFH,KADY;AAKlBI,IAAAA,IAAI,EAAE;AACJF,MAAAA,WAAW,EAAEH,+BADT;AAEJI,MAAAA,KAAK,EAAEH;AAFH,KALY;AASlBK,IAAAA,QAAQ,EAAE;AACRH,MAAAA,WAAW,EAAEL,0BADL;AAERM,MAAAA,KAAK,EAAEH;AAFC;AATQ,GAApB;AAcA,sBACEM,eAACC,gCAAD;AACE,IAAA,cAAc,EAAE;AAAA,UAAGC,KAAH,SAAGA,KAAH;AAAA,0BACdF,eAAC,oBAAD;AACE,QAAA,KAAK,EAAEE,KADT;AAEE,QAAA,SAAS,EAAEd,SAFb;AAGE,QAAA,QAAQ,EAAEJ,QAHZ;AAIE,QAAA,IAAI,EAAEC,IAJR;AAKE,QAAA,KAAK,EAAEC,KALT;AAME,QAAA,UAAU,EAAES;AANd,QADc;AAAA,KADlB;AAWE,IAAA,OAAO,EAAE,iBAACO,KAAD,EAAQC,IAAR,EAAiB;AACxB,UAAID,KAAK,IAAIC,IAAb,EAAmB;AACjBd,QAAAA,YAAY,CAACc,IAAD,CAAZ;AACD;AACF,KAfH;AAAA,cAiBGpB;AAjBH,IADF;AAqBD;;AAEDD,aAAa,CAACsB,SAAd,GAA0B;AACxBrB,EAAAA,QAAQ,EAAEsB,6BAAS,CAACC,SAAV,CAAoB,CAC5BD,6BAAS,CAACE,OAAV,CAAkBF,6BAAS,CAACG,IAA5B,CAD4B,EAE5BH,6BAAS,CAACG,IAFkB,CAApB,EAGPC,UAJqB;AAKxBzB,EAAAA,QAAQ,EAAEqB,6BAAS,CAACK,IALI;AAMxBzB,EAAAA,IAAI,EAAEoB,6BAAS,CAACM,KAAV,CAAgB;AACpBC,IAAAA,EAAE,EAAEP,6BAAS,CAACQ,MADM;AAEpBC,IAAAA,QAAQ,EAAET,6BAAS,CAACQ;AAFA,GAAhB,CANkB;AAUxB3B,EAAAA,KAAK,EAAEmB,6BAAS,CAACU,KAAV,CAAgB,CAAC,MAAD,EAAS,MAAT,CAAhB;AAViB,CAA1B;;;;"}
|
|
@@ -36,7 +36,17 @@ var ErrorFallbackWrapper = function ErrorFallbackWrapper(_ref) {
|
|
|
36
36
|
item = _ref$item === void 0 ? null : _ref$item,
|
|
37
37
|
_ref$level = _ref.level,
|
|
38
38
|
level = _ref$level === void 0 ? 'page' : _ref$level,
|
|
39
|
-
textConfig = _ref.textConfig
|
|
39
|
+
_ref$textConfig = _ref.textConfig,
|
|
40
|
+
textConfig = _ref$textConfig === void 0 ? {
|
|
41
|
+
item: {
|
|
42
|
+
description: '',
|
|
43
|
+
title: ''
|
|
44
|
+
},
|
|
45
|
+
page: {
|
|
46
|
+
description: '',
|
|
47
|
+
title: ''
|
|
48
|
+
}
|
|
49
|
+
} : _ref$textConfig;
|
|
40
50
|
|
|
41
51
|
var _ref2 = textConfig[level] || textConfig.page || {},
|
|
42
52
|
_ref2$description = _ref2.description,
|
|
@@ -107,23 +117,6 @@ ErrorFallbackWrapper.propTypes = {
|
|
|
107
117
|
})
|
|
108
118
|
})
|
|
109
119
|
};
|
|
110
|
-
ErrorFallbackWrapper.defaultProps = {
|
|
111
|
-
error: null,
|
|
112
|
-
errorInfo: null,
|
|
113
|
-
isStatic: false,
|
|
114
|
-
item: null,
|
|
115
|
-
level: 'page',
|
|
116
|
-
textConfig: {
|
|
117
|
-
item: {
|
|
118
|
-
description: '',
|
|
119
|
-
title: ''
|
|
120
|
-
},
|
|
121
|
-
page: {
|
|
122
|
-
description: '',
|
|
123
|
-
title: ''
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
120
|
|
|
128
121
|
module.exports = ErrorFallbackWrapper;
|
|
129
122
|
//# sourceMappingURL=ErrorFallbackWrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorFallbackWrapper.js","sources":["../../../../src/components/ErrorBoundary/ErrorFallbackWrapper.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\nimport { useState } from 'react';\nimport { exclamationIcon as ExclamationIcon } from '../../utils/icons';\nimport ErrorDetails from './ErrorDetails';\n\nconst ErrorFallbackWrapper = ({\n error = null,\n errorInfo = null,\n isStatic = false,\n item = null,\n level = 'page',\n textConfig,\n}) => {\n const { description = '', title = '' } = textConfig[level] || textConfig.page || {};\n const [isDetailsOpen, setIsDetailsOpen] = useState(false);\n\n const handleOpenDetails = () => {\n setIsDetailsOpen(true);\n };\n\n const handleCloseDetails = () => {\n setIsDetailsOpen(false);\n };\n\n return (\n <div\n className=\"errorBoundary-wrapper\"\n >\n <ExclamationIcon\n className={isStatic ? 'errorBoundary-icon-static' : 'errorBoundary-icon'}\n />\n <strong style={{ fontSize: !isStatic ? '20px' : '12px' }}>{title}</strong>\n {!isStatic && (\n <>\n {item && (\n <span>\n Item:\n {' '}\n {item.itemType || 'unknown'}\n {' '}\n {item.id ? `(${item.id})` : ''}\n </span>\n )}\n <span>{description}</span>\n <button\n className=\"errorBoundary-view-details-button\"\n onClick={handleOpenDetails}\n type=\"button\"\n >\n View\n </button>\n {isDetailsOpen && createPortal(\n <ErrorDetails\n error={error}\n errorInfo={errorInfo}\n handleCloseDetails={handleCloseDetails}\n />,\n document.body,\n )}\n </>\n )}\n </div>\n );\n};\n\nErrorFallbackWrapper.propTypes = {\n error: PropTypes.instanceOf(Error),\n errorInfo: PropTypes.shape({\n componentStack: PropTypes.string,\n }),\n isStatic: PropTypes.bool,\n item: PropTypes.shape({\n id: PropTypes.string,\n itemType: PropTypes.string,\n }),\n level: PropTypes.oneOf(['item', 'page']),\n textConfig: PropTypes.shape({\n item: PropTypes.shape({\n description: PropTypes.string,\n title: PropTypes.string,\n }),\n page: PropTypes.shape({\n description: PropTypes.string,\n title: PropTypes.string,\n }),\n }),\n};\n\
|
|
1
|
+
{"version":3,"file":"ErrorFallbackWrapper.js","sources":["../../../../src/components/ErrorBoundary/ErrorFallbackWrapper.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\nimport { useState } from 'react';\nimport { exclamationIcon as ExclamationIcon } from '../../utils/icons';\nimport ErrorDetails from './ErrorDetails';\n\nconst ErrorFallbackWrapper = ({\n error = null,\n errorInfo = null,\n isStatic = false,\n item = null,\n level = 'page',\n textConfig = {\n item: {\n description: '',\n title: '',\n },\n page: {\n description: '',\n title: '',\n },\n },\n}) => {\n const { description = '', title = '' } = textConfig[level] || textConfig.page || {};\n const [isDetailsOpen, setIsDetailsOpen] = useState(false);\n\n const handleOpenDetails = () => {\n setIsDetailsOpen(true);\n };\n\n const handleCloseDetails = () => {\n setIsDetailsOpen(false);\n };\n\n return (\n <div\n className=\"errorBoundary-wrapper\"\n >\n <ExclamationIcon\n className={isStatic ? 'errorBoundary-icon-static' : 'errorBoundary-icon'}\n />\n <strong style={{ fontSize: !isStatic ? '20px' : '12px' }}>{title}</strong>\n {!isStatic && (\n <>\n {item && (\n <span>\n Item:\n {' '}\n {item.itemType || 'unknown'}\n {' '}\n {item.id ? `(${item.id})` : ''}\n </span>\n )}\n <span>{description}</span>\n <button\n className=\"errorBoundary-view-details-button\"\n onClick={handleOpenDetails}\n type=\"button\"\n >\n View\n </button>\n {isDetailsOpen && createPortal(\n <ErrorDetails\n error={error}\n errorInfo={errorInfo}\n handleCloseDetails={handleCloseDetails}\n />,\n document.body,\n )}\n </>\n )}\n </div>\n );\n};\n\nErrorFallbackWrapper.propTypes = {\n error: PropTypes.instanceOf(Error),\n errorInfo: PropTypes.shape({\n componentStack: PropTypes.string,\n }),\n isStatic: PropTypes.bool,\n item: PropTypes.shape({\n id: PropTypes.string,\n itemType: PropTypes.string,\n }),\n level: PropTypes.oneOf(['item', 'page']),\n textConfig: PropTypes.shape({\n item: PropTypes.shape({\n description: PropTypes.string,\n title: PropTypes.string,\n }),\n page: PropTypes.shape({\n description: PropTypes.string,\n title: PropTypes.string,\n }),\n }),\n};\n\nexport default ErrorFallbackWrapper;\n"],"names":["ErrorFallbackWrapper","error","errorInfo","isStatic","item","level","textConfig","description","title","page","useState","isDetailsOpen","setIsDetailsOpen","handleOpenDetails","handleCloseDetails","_jsxs","_jsx","ExclamationIcon","fontSize","itemType","id","createPortal","document","body","propTypes","PropTypes","instanceOf","Error","shape","componentStack","string","bool","oneOf"],"mappings":"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"}
|
|
@@ -58,12 +58,10 @@ var QuillEditor = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
58
58
|
|
|
59
59
|
_this = _super.call(this, props);
|
|
60
60
|
|
|
61
|
-
_defineProperty(_assertThisInitialized(_this), "
|
|
61
|
+
_defineProperty(_assertThisInitialized(_this), "save", function () {
|
|
62
62
|
var _this$props = _this.props,
|
|
63
63
|
content = _this$props.content,
|
|
64
|
-
handleSave = _this$props.handleSave
|
|
65
|
-
setIsTextEditorOpen = _this$props.setIsTextEditorOpen;
|
|
66
|
-
setIsTextEditorOpen(false);
|
|
64
|
+
handleSave = _this$props.handleSave;
|
|
67
65
|
handleSave(content);
|
|
68
66
|
});
|
|
69
67
|
|
|
@@ -71,7 +69,11 @@ var QuillEditor = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
71
69
|
e.stopPropagation();
|
|
72
70
|
|
|
73
71
|
if (e.keyCode === 27) {
|
|
74
|
-
_this.
|
|
72
|
+
var onClose = _this.props.onClose;
|
|
73
|
+
|
|
74
|
+
_this.save();
|
|
75
|
+
|
|
76
|
+
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
75
77
|
}
|
|
76
78
|
});
|
|
77
79
|
|
|
@@ -98,7 +100,7 @@ var QuillEditor = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
98
100
|
}, {
|
|
99
101
|
key: "componentWillUnmount",
|
|
100
102
|
value: function componentWillUnmount() {
|
|
101
|
-
this.
|
|
103
|
+
this.save();
|
|
102
104
|
}
|
|
103
105
|
}, {
|
|
104
106
|
key: "render",
|
|
@@ -130,9 +132,9 @@ QuillEditor.formats = textEditorConstants.formats;
|
|
|
130
132
|
QuillEditor.propTypes = {
|
|
131
133
|
content: PropTypes__default['default'].string,
|
|
132
134
|
handleSave: PropTypes__default['default'].func,
|
|
135
|
+
onClose: PropTypes__default['default'].func,
|
|
133
136
|
placeholder: PropTypes__default['default'].string.isRequired,
|
|
134
|
-
setContent: PropTypes__default['default'].func
|
|
135
|
-
setIsTextEditorOpen: PropTypes__default['default'].func
|
|
137
|
+
setContent: PropTypes__default['default'].func
|
|
136
138
|
};
|
|
137
139
|
|
|
138
140
|
module.exports = QuillEditor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuillEditor.js","sources":["../../../../src/components/TextEditor/QuillEditor.js"],"sourcesContent":["import React from 'react';\nimport ReactQuill from 'react-quill';\nimport domPurify from 'dompurify';\nimport PropTypes from 'prop-types';\nimport { formats, modules } from './textEditorConstants';\nimport { fontSizes } from '../../constants/fonts';\nimport 'react-quill/dist/quill.snow.css';\n\nconst Size = ReactQuill.Quill.import('attributors/style/size');\nSize.whitelist = fontSizes.map(s => `${s}px`);\nReactQuill.Quill.register(Size, true);\n\nclass QuillEditor extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.quill = React.createRef();\n }\n\n componentDidMount() {\n if (this.quill.current !== null) {\n const { content } = this.props;\n const editor = this.quill.current.getEditor();\n editor.setSelection(0, content.length);\n }\n }\n\n componentWillUnmount() {\n this.
|
|
1
|
+
{"version":3,"file":"QuillEditor.js","sources":["../../../../src/components/TextEditor/QuillEditor.js"],"sourcesContent":["import React from 'react';\nimport ReactQuill from 'react-quill';\nimport domPurify from 'dompurify';\nimport PropTypes from 'prop-types';\nimport { formats, modules } from './textEditorConstants';\nimport { fontSizes } from '../../constants/fonts';\nimport 'react-quill/dist/quill.snow.css';\n\nconst Size = ReactQuill.Quill.import('attributors/style/size');\nSize.whitelist = fontSizes.map(s => `${s}px`);\nReactQuill.Quill.register(Size, true);\n\nclass QuillEditor extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.quill = React.createRef();\n }\n\n componentDidMount() {\n if (this.quill.current !== null) {\n const { content } = this.props;\n const editor = this.quill.current.getEditor();\n editor.setSelection(0, content.length);\n }\n }\n\n componentWillUnmount() {\n this.save();\n }\n\n save = () => {\n const { content, handleSave } = this.props;\n handleSave(content);\n }\n\n handleKeyDown = e => {\n e.stopPropagation();\n if (e.keyCode === 27) {\n const { onClose } = this.props;\n this.save();\n onClose?.();\n }\n }\n\n handleSetContent = (value, delta, source) => {\n if (source === 'user') {\n const { setContent } = this.props;\n setContent(domPurify.sanitize(value));\n }\n }\n\n render() {\n const { content, placeholder } = this.props;\n\n return (\n <div\n className=\"f-all\"\n onKeyDown={this.handleKeyDown}\n >\n <ReactQuill\n ref={this.quill}\n formats={QuillEditor.formats}\n modules={QuillEditor.modules}\n onChange={this.handleSetContent}\n placeholder={placeholder}\n preserveWhitespace\n value={content}\n />\n </div>\n );\n }\n}\n\nQuillEditor.modules = modules;\nQuillEditor.formats = formats;\n\nQuillEditor.propTypes = {\n content: PropTypes.string,\n handleSave: PropTypes.func,\n onClose: PropTypes.func,\n placeholder: PropTypes.string.isRequired,\n setContent: PropTypes.func,\n};\n\nexport default QuillEditor;\n"],"names":["Size","ReactQuill","Quill","import","whitelist","fontSizes","map","s","register","QuillEditor","props","content","handleSave","e","stopPropagation","keyCode","onClose","save","value","delta","source","setContent","domPurify","sanitize","quill","React","createRef","current","editor","getEditor","setSelection","length","placeholder","_jsx","handleKeyDown","formats","modules","handleSetContent","PureComponent","propTypes","PropTypes","string","func","isRequired"],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ var PropTypes = require('prop-types');
|
|
|
5
5
|
var domPurify = require('dompurify');
|
|
6
6
|
var QuillEditor = require('./QuillEditor.js');
|
|
7
7
|
var BuilderContext = require('../../contexts/BuilderContext.js');
|
|
8
|
+
var hooks = require('../../utils/hooks.js');
|
|
8
9
|
var jsxRuntime = require('react/jsx-runtime');
|
|
9
10
|
|
|
10
11
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -35,10 +36,10 @@ var TextEditor = function TextEditor(_ref) {
|
|
|
35
36
|
isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,
|
|
36
37
|
placeholder = _ref.placeholder;
|
|
37
38
|
|
|
38
|
-
var
|
|
39
|
-
|
|
40
|
-
_content =
|
|
41
|
-
setContent =
|
|
39
|
+
var _usePropState = hooks.usePropState(content, domPurify__default['default'].sanitize),
|
|
40
|
+
_usePropState2 = _slicedToArray(_usePropState, 2),
|
|
41
|
+
_content = _usePropState2[0],
|
|
42
|
+
setContent = _usePropState2[1];
|
|
42
43
|
|
|
43
44
|
var isTextEditorOpen = BuilderContext.useBuilderStore(function (state) {
|
|
44
45
|
return state.isTextEditorOpen;
|
|
@@ -46,11 +47,19 @@ var TextEditor = function TextEditor(_ref) {
|
|
|
46
47
|
var setIsTextEditorOpen = BuilderContext.useBuilderStore(function (state) {
|
|
47
48
|
return state.setIsTextEditorOpen;
|
|
48
49
|
});
|
|
50
|
+
React.useEffect(function () {
|
|
51
|
+
if (isTextEditorOpen && !isSelected) {
|
|
52
|
+
setIsTextEditorOpen(false);
|
|
53
|
+
}
|
|
54
|
+
}, [isSelected, isTextEditorOpen, setIsTextEditorOpen]);
|
|
49
55
|
var onClick = React.useCallback(function () {
|
|
50
56
|
if (isSelected && !isLocked) {
|
|
51
57
|
setIsTextEditorOpen(true);
|
|
52
58
|
}
|
|
53
59
|
}, [isSelected, isLocked, setIsTextEditorOpen]);
|
|
60
|
+
var onClose = React.useCallback(function () {
|
|
61
|
+
setIsTextEditorOpen(false);
|
|
62
|
+
}, [setIsTextEditorOpen]);
|
|
54
63
|
var isNotEmpty = React.useMemo(function () {
|
|
55
64
|
var el = document.createElement('div');
|
|
56
65
|
el.innerHTML = _content;
|
|
@@ -59,9 +68,9 @@ var TextEditor = function TextEditor(_ref) {
|
|
|
59
68
|
return isSelected && isTextEditorOpen ? /*#__PURE__*/jsxRuntime.jsx(QuillEditor, {
|
|
60
69
|
content: _content,
|
|
61
70
|
handleSave: handleSave,
|
|
71
|
+
onClose: onClose,
|
|
62
72
|
placeholder: placeholder,
|
|
63
|
-
setContent: setContent
|
|
64
|
-
setIsTextEditorOpen: setIsTextEditorOpen
|
|
73
|
+
setContent: setContent
|
|
65
74
|
}) : /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
66
75
|
className: "f-all ql-editor".concat(isNotEmpty ? '' : ' isEmptyTextElement'),
|
|
67
76
|
dangerouslySetInnerHTML: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextEditor.js","sources":["../../../../src/components/TextEditor/TextEditor.js"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"TextEditor.js","sources":["../../../../src/components/TextEditor/TextEditor.js"],"sourcesContent":["import {\n useCallback,\n useMemo,\n useEffect,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport domPurify from 'dompurify';\nimport QuillEditor from './QuillEditor';\nimport { useBuilderStore } from '../../contexts/BuilderContext';\nimport { usePropState } from '../../utils/hooks';\n\nconst TextEditor = ({\n content = '',\n handleSave = () => {},\n isLocked = false,\n isSelected = false,\n placeholder,\n}) => {\n const [_content, setContent] = usePropState(content, domPurify.sanitize);\n\n const isTextEditorOpen = useBuilderStore(state => state.isTextEditorOpen);\n const setIsTextEditorOpen = useBuilderStore(state => state.setIsTextEditorOpen);\n\n useEffect(() => {\n if (isTextEditorOpen && !isSelected) {\n setIsTextEditorOpen(false);\n }\n }, [isSelected, isTextEditorOpen, setIsTextEditorOpen]);\n\n const onClick = useCallback(() => {\n if (isSelected && !isLocked) {\n setIsTextEditorOpen(true);\n }\n }, [isSelected, isLocked, setIsTextEditorOpen]);\n\n const onClose = useCallback(() => {\n setIsTextEditorOpen(false);\n }, [setIsTextEditorOpen]);\n\n const isNotEmpty = useMemo(() => {\n const el = document.createElement('div');\n el.innerHTML = _content;\n return !!el.innerText;\n }, [_content]);\n\n return isSelected && isTextEditorOpen ? (\n <QuillEditor\n content={_content}\n handleSave={handleSave}\n onClose={onClose}\n placeholder={placeholder}\n setContent={setContent}\n />\n ) : (\n <div\n className={`f-all ql-editor${isNotEmpty ? '' : ' isEmptyTextElement'}`}\n dangerouslySetInnerHTML={{\n __html: isNotEmpty ? _content : placeholder,\n }}\n onClick={onClick}\n onKeyDown={() => {}}\n />\n );\n};\n\nTextEditor.propTypes = {\n content: PropTypes.string,\n handleSave: PropTypes.func,\n isLocked: PropTypes.bool,\n isSelected: PropTypes.bool,\n placeholder: PropTypes.string.isRequired,\n};\n\nexport default TextEditor;\n"],"names":["TextEditor","content","handleSave","isLocked","isSelected","placeholder","usePropState","domPurify","sanitize","_content","setContent","isTextEditorOpen","useBuilderStore","state","setIsTextEditorOpen","useEffect","onClick","useCallback","onClose","isNotEmpty","useMemo","el","document","createElement","innerHTML","innerText","_jsx","__html","propTypes","PropTypes","string","func","bool","isRequired"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;IAWMA,UAAU,GAAG,SAAbA,UAAa,OAMb;AAAA,0BALJC,OAKI;AAAA,MALJA,OAKI,6BALM,EAKN;AAAA,6BAJJC,UAII;AAAA,MAJJA,UAII,gCAJS,YAAM,EAIf;AAAA,2BAHJC,QAGI;AAAA,MAHJA,QAGI,8BAHO,KAGP;AAAA,6BAFJC,UAEI;AAAA,MAFJA,UAEI,gCAFS,KAET;AAAA,MADJC,WACI,QADJA,WACI;;AACJ,sBAA+BC,kBAAY,CAACL,OAAD,EAAUM,6BAAS,CAACC,QAApB,CAA3C;AAAA;AAAA,MAAOC,QAAP;AAAA,MAAiBC,UAAjB;;AAEA,MAAMC,gBAAgB,GAAGC,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,gBAAV;AAAA,GAAN,CAAxC;AACA,MAAMG,mBAAmB,GAAGF,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,mBAAV;AAAA,GAAN,CAA3C;AAEAC,EAAAA,eAAS,CAAC,YAAM;AACd,QAAIJ,gBAAgB,IAAI,CAACP,UAAzB,EAAqC;AACnCU,MAAAA,mBAAmB,CAAC,KAAD,CAAnB;AACD;AACF,GAJQ,EAIN,CAACV,UAAD,EAAaO,gBAAb,EAA+BG,mBAA/B,CAJM,CAAT;AAMA,MAAME,OAAO,GAAGC,iBAAW,CAAC,YAAM;AAChC,QAAIb,UAAU,IAAI,CAACD,QAAnB,EAA6B;AAC3BW,MAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACD;AACF,GAJ0B,EAIxB,CAACV,UAAD,EAAaD,QAAb,EAAuBW,mBAAvB,CAJwB,CAA3B;AAMA,MAAMI,OAAO,GAAGD,iBAAW,CAAC,YAAM;AAChCH,IAAAA,mBAAmB,CAAC,KAAD,CAAnB;AACD,GAF0B,EAExB,CAACA,mBAAD,CAFwB,CAA3B;AAIA,MAAMK,UAAU,GAAGC,aAAO,CAAC,YAAM;AAC/B,QAAMC,EAAE,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAX;AACAF,IAAAA,EAAE,CAACG,SAAH,GAAef,QAAf;AACA,WAAO,CAAC,CAACY,EAAE,CAACI,SAAZ;AACD,GAJyB,EAIvB,CAAChB,QAAD,CAJuB,CAA1B;AAMA,SAAOL,UAAU,IAAIO,gBAAd,gBACLe,eAAC,WAAD;AACE,IAAA,OAAO,EAAEjB,QADX;AAEE,IAAA,UAAU,EAAEP,UAFd;AAGE,IAAA,OAAO,EAAEgB,OAHX;AAIE,IAAA,WAAW,EAAEb,WAJf;AAKE,IAAA,UAAU,EAAEK;AALd,IADK,gBASLgB;AACE,IAAA,SAAS,2BAAoBP,UAAU,GAAG,EAAH,GAAQ,qBAAtC,CADX;AAEE,IAAA,uBAAuB,EAAE;AACvBQ,MAAAA,MAAM,EAAER,UAAU,GAAGV,QAAH,GAAcJ;AADT,KAF3B;AAKE,IAAA,OAAO,EAAEW,OALX;AAME,IAAA,SAAS,EAAE,qBAAM;AANnB,IATF;AAkBD;;AAEDhB,UAAU,CAAC4B,SAAX,GAAuB;AACrB3B,EAAAA,OAAO,EAAE4B,6BAAS,CAACC,MADE;AAErB5B,EAAAA,UAAU,EAAE2B,6BAAS,CAACE,IAFD;AAGrB5B,EAAAA,QAAQ,EAAE0B,6BAAS,CAACG,IAHC;AAIrB5B,EAAAA,UAAU,EAAEyB,6BAAS,CAACG,IAJD;AAKrB3B,EAAAA,WAAW,EAAEwB,6BAAS,CAACC,MAAV,CAAiBG;AALT,CAAvB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"texts.js","sources":["../../../src/constants/texts.js"],"sourcesContent":["/* eslint-disable max-len */\nconst ALL_TEXTS = {\n ADD_ELEMENT: 'Add Element',\n ADD_LINK: 'ADD LINK',\n ADD_NEW_PAGE: 'ADD SLIDE',\n BACKGROUND_COLOR: 'Background Color',\n CHART_ELEMENT: 'Chart Element',\n CHART_SETTINGS: 'Chart Settings',\n CLICK_TO_EDIT_HEADER: 'Click to edit header',\n CLICK_TO_EDIT_TEXT: 'Click to edit text',\n DELETE: 'Delete',\n DELETE_ITEM: 'Delete Item',\n DUPLICATE_ITEM: 'Duplicate Item',\n DUPLICATE_PAGE: 'Duplicate Slide',\n ELEMENTS: 'Elements',\n ERROR_BOUNDARY_DESCRIPTION: 'We\\'ve been notified of the issue and aim to fix it shortly. Please try again later.',\n ERROR_BOUNDARY_ITEM_DESCRIPTION: 'Please try removing and re-adding the item.',\n ERROR_BOUNDARY_PAGE_DESCRIPTION: 'An unexpected error occurred on this page.',\n ERROR_BOUNDARY_TITLE: 'Something went wrong!.',\n FIT_TO_PAGE: 'Fit to Slide',\n FIT_TO_SCENE: 'Fit to Screen',\n GENERAL: 'GENERAL',\n GRID_SETTINGS: 'Grid Settings',\n HEADER_SETTINGS: 'Header Settings',\n HEIGHT: 'Height',\n ICON_SETTINGS: 'Icon Settings',\n IMAGE_SETTINGS: 'Image Settings',\n ITEM_SETTINGS: 'Item Settings',\n LAYERS: 'Layers',\n LAYOUT_SETTINGS: 'Layout Settings',\n LOCK_ITEM: 'Lock Item',\n MOVE_BACKWARDS: 'Move Backwards',\n MOVE_FORWARDS: 'Move Forwards',\n MOVE_PAGE_DOWNWARDS: 'Move Slide Downwards',\n MOVE_PAGE_UPWARDS: 'Move Slide Upwards',\n MOVE_TO_BACK: 'Move to Back',\n MOVE_TO_FRONT: 'Move to Front',\n NO_ELEMENT_IN_PAGE: 'There is no element on this slide. You can add a new element from side menu.',\n NO_RESULT: 'No result was found',\n ORIGINAL_SIZE: 'Original Size',\n PAGE_ELEMENT: 'Page Element',\n PAGE_SETTINGS: 'Slide Settings',\n PAGE_STYLE: 'Slide Style',\n RECTANGLE: 'Rectangle',\n REMOVE_PAGE: 'Remove Slide',\n SEARCH: 'Search',\n SETTINGS: 'Settings',\n SHOW_ALL: 'Show All',\n SLIDES: 'Slides',\n TEXT_SETTINGS: 'Text Settings',\n TOGGLE_OFF: 'OFF',\n TOGGLE_ON: 'ON',\n UNLOCK_ITEM: 'Unlock Item',\n VIEW_ERROR_DETAILS: 'View Details',\n WIDTH: 'Width',\n ZOOM_IN: 'Zoom In',\n ZOOM_OUT: 'Zoom Out',\n};\n\nclass ModuleTexts {\n constructor(allTexts) {\n this._texts = allTexts;\n }\n\n get Texts() {\n return this._texts;\n }\n\n setTexts(allTexts) {\n this._texts = allTexts;\n }\n}\n\nexport const SharingTextsModule = new ModuleTexts(ALL_TEXTS);\nexport default ALL_TEXTS;\n"],"names":["ALL_TEXTS","ADD_ELEMENT","ADD_LINK","ADD_NEW_PAGE","BACKGROUND_COLOR","CHART_ELEMENT","CHART_SETTINGS","CLICK_TO_EDIT_HEADER","CLICK_TO_EDIT_TEXT","DELETE","DELETE_ITEM","DUPLICATE_ITEM","DUPLICATE_PAGE","ELEMENTS","ERROR_BOUNDARY_DESCRIPTION","ERROR_BOUNDARY_ITEM_DESCRIPTION","ERROR_BOUNDARY_PAGE_DESCRIPTION","ERROR_BOUNDARY_TITLE","FIT_TO_PAGE","FIT_TO_SCENE","GENERAL","GRID_SETTINGS","HEADER_SETTINGS","HEIGHT","ICON_SETTINGS","IMAGE_SETTINGS","ITEM_SETTINGS","LAYERS","LAYOUT_SETTINGS","LOCK_ITEM","MOVE_BACKWARDS","MOVE_FORWARDS","MOVE_PAGE_DOWNWARDS","MOVE_PAGE_UPWARDS","MOVE_TO_BACK","MOVE_TO_FRONT","NO_ELEMENT_IN_PAGE","NO_RESULT","ORIGINAL_SIZE","PAGE_ELEMENT","PAGE_SETTINGS","PAGE_STYLE","RECTANGLE","REMOVE_PAGE","SEARCH","SETTINGS","SHOW_ALL","SLIDES","TEXT_SETTINGS","TOGGLE_OFF","TOGGLE_ON","UNLOCK_ITEM","VIEW_ERROR_DETAILS","WIDTH","ZOOM_IN","ZOOM_OUT","ModuleTexts","allTexts","_texts","SharingTextsModule"],"mappings":";;;;;;;;;;AAAA;IACMA,SAAS,GAAG;AAChBC,EAAAA,WAAW,EAAE,aADG;AAEhBC,EAAAA,QAAQ,EAAE,UAFM;AAGhBC,EAAAA,YAAY,EAAE,WAHE;AAIhBC,EAAAA,gBAAgB,EAAE,kBAJF;AAKhBC,EAAAA,aAAa,EAAE,eALC;AAMhBC,EAAAA,cAAc,EAAE,gBANA;AAOhBC,EAAAA,oBAAoB,EAAE,sBAPN;AAQhBC,EAAAA,kBAAkB,EAAE,oBARJ;AAShBC,EAAAA,MAAM,EAAE,QATQ;AAUhBC,EAAAA,WAAW,EAAE,aAVG;AAWhBC,EAAAA,cAAc,EAAE,gBAXA;AAYhBC,EAAAA,cAAc,EAAE,iBAZA;AAahBC,EAAAA,QAAQ,EAAE,UAbM;AAchBC,EAAAA,0BAA0B,EAAE,sFAdZ;AAehBC,EAAAA,+BAA+B,EAAE,6CAfjB;AAgBhBC,EAAAA,+BAA+B,EAAE,4CAhBjB;AAiBhBC,EAAAA,oBAAoB,EAAE,wBAjBN;AAkBhBC,EAAAA,WAAW,EAAE,cAlBG;AAmBhBC,EAAAA,YAAY,EAAE,eAnBE;AAoBhBC,EAAAA,OAAO,EAAE,SApBO;AAqBhBC,EAAAA,aAAa,EAAE,eArBC;AAsBhBC,EAAAA,eAAe,EAAE,iBAtBD;AAuBhBC,EAAAA,MAAM,EAAE,QAvBQ;AAwBhBC,EAAAA,aAAa,EAAE,eAxBC;AAyBhBC,EAAAA,cAAc,EAAE,gBAzBA;AA0BhBC,EAAAA,aAAa,EAAE,eA1BC;AA2BhBC,EAAAA,MAAM,EAAE,QA3BQ;AA4BhBC,EAAAA,eAAe,EAAE,iBA5BD;AA6BhBC,EAAAA,SAAS,EAAE,WA7BK;AA8BhBC,EAAAA,cAAc,EAAE,gBA9BA;AA+BhBC,EAAAA,aAAa,EAAE,eA/BC;AAgChBC,EAAAA,mBAAmB,EAAE,sBAhCL;AAiChBC,EAAAA,iBAAiB,EAAE,oBAjCH;AAkChBC,EAAAA,YAAY,EAAE,cAlCE;AAmChBC,EAAAA,aAAa,EAAE,eAnCC;AAoChBC,EAAAA,kBAAkB,EAAE,8EApCJ;AAqChBC,EAAAA,SAAS,EAAE,qBArCK;AAsChBC,EAAAA,aAAa,EAAE,eAtCC;AAuChBC,EAAAA,YAAY,EAAE,cAvCE;AAwChBC,EAAAA,aAAa,EAAE,gBAxCC;AAyChBC,EAAAA,UAAU,EAAE,aAzCI;AA0ChBC,EAAAA,SAAS,EAAE,WA1CK;AA2ChBC,EAAAA,WAAW,EAAE,cA3CG;AA4ChBC,EAAAA,MAAM,EAAE,QA5CQ;AA6ChBC,EAAAA,QAAQ,EAAE,UA7CM;AA8ChBC,EAAAA,
|
|
1
|
+
{"version":3,"file":"texts.js","sources":["../../../src/constants/texts.js"],"sourcesContent":["/* eslint-disable max-len */\nconst ALL_TEXTS = {\n ADD_ELEMENT: 'Add Element',\n ADD_LINK: 'ADD LINK',\n ADD_NEW_PAGE: 'ADD SLIDE',\n BACKGROUND_COLOR: 'Background Color',\n CHART_ELEMENT: 'Chart Element',\n CHART_SETTINGS: 'Chart Settings',\n CLICK_TO_EDIT_HEADER: 'Click to edit header',\n CLICK_TO_EDIT_TEXT: 'Click to edit text',\n DELETE: 'Delete',\n DELETE_ITEM: 'Delete Item',\n DUPLICATE_ITEM: 'Duplicate Item',\n DUPLICATE_PAGE: 'Duplicate Slide',\n ELEMENTS: 'Elements',\n ERROR_BOUNDARY_DESCRIPTION: 'We\\'ve been notified of the issue and aim to fix it shortly. Please try again later.',\n ERROR_BOUNDARY_ITEM_DESCRIPTION: 'Please try removing and re-adding the item.',\n ERROR_BOUNDARY_PAGE_DESCRIPTION: 'An unexpected error occurred on this page.',\n ERROR_BOUNDARY_TITLE: 'Something went wrong!.',\n FIT_TO_PAGE: 'Fit to Slide',\n FIT_TO_SCENE: 'Fit to Screen',\n GENERAL: 'GENERAL',\n GRID_SETTINGS: 'Grid Settings',\n HEADER_SETTINGS: 'Header Settings',\n HEIGHT: 'Height',\n ICON_SETTINGS: 'Icon Settings',\n IMAGE_SETTINGS: 'Image Settings',\n ITEM_SETTINGS: 'Item Settings',\n LAYERS: 'Layers',\n LAYOUT_SETTINGS: 'Layout Settings',\n LOCK_ITEM: 'Lock Item',\n MOVE_BACKWARDS: 'Move Backwards',\n MOVE_FORWARDS: 'Move Forwards',\n MOVE_PAGE_DOWNWARDS: 'Move Slide Downwards',\n MOVE_PAGE_UPWARDS: 'Move Slide Upwards',\n MOVE_TO_BACK: 'Move to Back',\n MOVE_TO_FRONT: 'Move to Front',\n NO_ELEMENT_IN_PAGE: 'There is no element on this slide. You can add a new element from side menu.',\n NO_RESULT: 'No result was found',\n ORIGINAL_SIZE: 'Original Size',\n PAGE_ELEMENT: 'Page Element',\n PAGE_SETTINGS: 'Slide Settings',\n PAGE_STYLE: 'Slide Style',\n RECTANGLE: 'Rectangle',\n REMOVE_PAGE: 'Remove Slide',\n SEARCH: 'Search',\n SETTINGS: 'Settings',\n SHAPES_SETTINGS: 'Shape Settings',\n SHOW_ALL: 'Show All',\n SLIDES: 'Slides',\n TEXT_SETTINGS: 'Text Settings',\n TOGGLE_OFF: 'OFF',\n TOGGLE_ON: 'ON',\n UNLOCK_ITEM: 'Unlock Item',\n VIEW_ERROR_DETAILS: 'View Details',\n WIDTH: 'Width',\n ZOOM_IN: 'Zoom In',\n ZOOM_OUT: 'Zoom Out',\n};\n\nclass ModuleTexts {\n constructor(allTexts) {\n this._texts = allTexts;\n }\n\n get Texts() {\n return this._texts;\n }\n\n setTexts(allTexts) {\n this._texts = allTexts;\n }\n}\n\nexport const SharingTextsModule = new ModuleTexts(ALL_TEXTS);\nexport default ALL_TEXTS;\n"],"names":["ALL_TEXTS","ADD_ELEMENT","ADD_LINK","ADD_NEW_PAGE","BACKGROUND_COLOR","CHART_ELEMENT","CHART_SETTINGS","CLICK_TO_EDIT_HEADER","CLICK_TO_EDIT_TEXT","DELETE","DELETE_ITEM","DUPLICATE_ITEM","DUPLICATE_PAGE","ELEMENTS","ERROR_BOUNDARY_DESCRIPTION","ERROR_BOUNDARY_ITEM_DESCRIPTION","ERROR_BOUNDARY_PAGE_DESCRIPTION","ERROR_BOUNDARY_TITLE","FIT_TO_PAGE","FIT_TO_SCENE","GENERAL","GRID_SETTINGS","HEADER_SETTINGS","HEIGHT","ICON_SETTINGS","IMAGE_SETTINGS","ITEM_SETTINGS","LAYERS","LAYOUT_SETTINGS","LOCK_ITEM","MOVE_BACKWARDS","MOVE_FORWARDS","MOVE_PAGE_DOWNWARDS","MOVE_PAGE_UPWARDS","MOVE_TO_BACK","MOVE_TO_FRONT","NO_ELEMENT_IN_PAGE","NO_RESULT","ORIGINAL_SIZE","PAGE_ELEMENT","PAGE_SETTINGS","PAGE_STYLE","RECTANGLE","REMOVE_PAGE","SEARCH","SETTINGS","SHAPES_SETTINGS","SHOW_ALL","SLIDES","TEXT_SETTINGS","TOGGLE_OFF","TOGGLE_ON","UNLOCK_ITEM","VIEW_ERROR_DETAILS","WIDTH","ZOOM_IN","ZOOM_OUT","ModuleTexts","allTexts","_texts","SharingTextsModule"],"mappings":";;;;;;;;;;AAAA;IACMA,SAAS,GAAG;AAChBC,EAAAA,WAAW,EAAE,aADG;AAEhBC,EAAAA,QAAQ,EAAE,UAFM;AAGhBC,EAAAA,YAAY,EAAE,WAHE;AAIhBC,EAAAA,gBAAgB,EAAE,kBAJF;AAKhBC,EAAAA,aAAa,EAAE,eALC;AAMhBC,EAAAA,cAAc,EAAE,gBANA;AAOhBC,EAAAA,oBAAoB,EAAE,sBAPN;AAQhBC,EAAAA,kBAAkB,EAAE,oBARJ;AAShBC,EAAAA,MAAM,EAAE,QATQ;AAUhBC,EAAAA,WAAW,EAAE,aAVG;AAWhBC,EAAAA,cAAc,EAAE,gBAXA;AAYhBC,EAAAA,cAAc,EAAE,iBAZA;AAahBC,EAAAA,QAAQ,EAAE,UAbM;AAchBC,EAAAA,0BAA0B,EAAE,sFAdZ;AAehBC,EAAAA,+BAA+B,EAAE,6CAfjB;AAgBhBC,EAAAA,+BAA+B,EAAE,4CAhBjB;AAiBhBC,EAAAA,oBAAoB,EAAE,wBAjBN;AAkBhBC,EAAAA,WAAW,EAAE,cAlBG;AAmBhBC,EAAAA,YAAY,EAAE,eAnBE;AAoBhBC,EAAAA,OAAO,EAAE,SApBO;AAqBhBC,EAAAA,aAAa,EAAE,eArBC;AAsBhBC,EAAAA,eAAe,EAAE,iBAtBD;AAuBhBC,EAAAA,MAAM,EAAE,QAvBQ;AAwBhBC,EAAAA,aAAa,EAAE,eAxBC;AAyBhBC,EAAAA,cAAc,EAAE,gBAzBA;AA0BhBC,EAAAA,aAAa,EAAE,eA1BC;AA2BhBC,EAAAA,MAAM,EAAE,QA3BQ;AA4BhBC,EAAAA,eAAe,EAAE,iBA5BD;AA6BhBC,EAAAA,SAAS,EAAE,WA7BK;AA8BhBC,EAAAA,cAAc,EAAE,gBA9BA;AA+BhBC,EAAAA,aAAa,EAAE,eA/BC;AAgChBC,EAAAA,mBAAmB,EAAE,sBAhCL;AAiChBC,EAAAA,iBAAiB,EAAE,oBAjCH;AAkChBC,EAAAA,YAAY,EAAE,cAlCE;AAmChBC,EAAAA,aAAa,EAAE,eAnCC;AAoChBC,EAAAA,kBAAkB,EAAE,8EApCJ;AAqChBC,EAAAA,SAAS,EAAE,qBArCK;AAsChBC,EAAAA,aAAa,EAAE,eAtCC;AAuChBC,EAAAA,YAAY,EAAE,cAvCE;AAwChBC,EAAAA,aAAa,EAAE,gBAxCC;AAyChBC,EAAAA,UAAU,EAAE,aAzCI;AA0ChBC,EAAAA,SAAS,EAAE,WA1CK;AA2ChBC,EAAAA,WAAW,EAAE,cA3CG;AA4ChBC,EAAAA,MAAM,EAAE,QA5CQ;AA6ChBC,EAAAA,QAAQ,EAAE,UA7CM;AA8ChBC,EAAAA,eAAe,EAAE,gBA9CD;AA+ChBC,EAAAA,QAAQ,EAAE,UA/CM;AAgDhBC,EAAAA,MAAM,EAAE,QAhDQ;AAiDhBC,EAAAA,aAAa,EAAE,eAjDC;AAkDhBC,EAAAA,UAAU,EAAE,KAlDI;AAmDhBC,EAAAA,SAAS,EAAE,IAnDK;AAoDhBC,EAAAA,WAAW,EAAE,aApDG;AAqDhBC,EAAAA,kBAAkB,EAAE,cArDJ;AAsDhBC,EAAAA,KAAK,EAAE,OAtDS;AAuDhBC,EAAAA,OAAO,EAAE,SAvDO;AAwDhBC,EAAAA,QAAQ,EAAE;AAxDM;;IA2DZC;AACJ,uBAAYC,QAAZ,EAAsB;AAAA;;AACpB,SAAKC,MAAL,GAAcD,QAAd;AACD;;;;SAED,eAAY;AACV,aAAO,KAAKC,MAAZ;AACD;;;WAED,kBAASD,QAAT,EAAmB;AACjB,WAAKC,MAAL,GAAcD,QAAd;AACD;;;;;;IAGUE,kBAAkB,GAAG,IAAIH,WAAJ,CAAgBzD,SAAhB;;;;;"}
|
|
@@ -213,11 +213,18 @@ body {
|
|
|
213
213
|
}
|
|
214
214
|
|
|
215
215
|
.errorBoundary-details-close-button {
|
|
216
|
+
display: flex;
|
|
217
|
+
flex-direction: column;
|
|
218
|
+
align-items: center;
|
|
219
|
+
flex-shrink: 0;
|
|
220
|
+
justify-content: center;
|
|
216
221
|
background: #DADEF3;
|
|
217
222
|
height: 40px;
|
|
218
223
|
margin-left: auto;
|
|
219
224
|
width: 40px;
|
|
220
225
|
border-radius: 100%;
|
|
226
|
+
min-height: 40px;
|
|
227
|
+
min-width: 40px;
|
|
221
228
|
|
|
222
229
|
svg {
|
|
223
230
|
height: 20px;
|
package/lib/cjs/utils/hooks.js
CHANGED
|
@@ -30,9 +30,17 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
|
|
|
30
30
|
|
|
31
31
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
32
32
|
|
|
33
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
34
|
+
|
|
35
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
36
|
+
|
|
33
37
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
34
38
|
|
|
35
39
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
40
|
+
|
|
41
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
42
|
+
|
|
43
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
36
44
|
var useEventListener = function useEventListener(eventName, handler) {
|
|
37
45
|
var element = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : global;
|
|
38
46
|
var savedHandler = React.useRef();
|
|
@@ -60,6 +68,23 @@ var usePrevious = function usePrevious(value) {
|
|
|
60
68
|
});
|
|
61
69
|
return ref.current;
|
|
62
70
|
};
|
|
71
|
+
var usePropState = function usePropState(propValue) {
|
|
72
|
+
var transform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (v) {
|
|
73
|
+
return v;
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
var _useState3 = React.useState(function () {
|
|
77
|
+
return transform(propValue);
|
|
78
|
+
}),
|
|
79
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
80
|
+
state = _useState4[0],
|
|
81
|
+
setState = _useState4[1];
|
|
82
|
+
|
|
83
|
+
React.useEffect(function () {
|
|
84
|
+
setState(transform(propValue));
|
|
85
|
+
}, [propValue, transform]);
|
|
86
|
+
return [state, setState];
|
|
87
|
+
};
|
|
63
88
|
var useFitZoom = function useFitZoom() {
|
|
64
89
|
var settings = PropContext.usePropStore(function (state) {
|
|
65
90
|
return state.settings;
|
|
@@ -236,6 +261,7 @@ exports.useFullscreenChange = useFullscreenChange;
|
|
|
236
261
|
exports.usePageTransition = usePageTransition;
|
|
237
262
|
exports.usePageVisibility = usePageVisibility;
|
|
238
263
|
exports.usePrevious = usePrevious;
|
|
264
|
+
exports.usePropState = usePropState;
|
|
239
265
|
exports.useSelectedElements = useSelectedElements;
|
|
240
266
|
exports.useTranslatedTexts = useTranslatedTexts;
|
|
241
267
|
//# sourceMappingURL=hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sources":["../../../src/utils/hooks.js"],"sourcesContent":["import {\n useEffect,\n useRef,\n useState,\n useMemo,\n useCallback,\n} from 'react';\nimport { getZoomValue } from './functions';\nimport { SharingTextsModule } from '../constants/texts';\nimport { usePropStore } from '../contexts/PropContext';\nimport { useBuilderStore } from '../contexts/BuilderContext';\nimport { usePresentationStore } from '../contexts/PresentationContext';\n\nexport const useStateWithCallback = (initialState, callback) => {\n const [state, setState] = useState(initialState);\n\n useEffect(() => callback(state), [state, callback]);\n\n return [state, setState];\n};\n\nexport const useEventListener = (eventName, handler, element = global) => {\n const savedHandler = useRef();\n\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(\n () => {\n const isSupported = element && element.addEventListener;\n if (!isSupported) return;\n\n const eventListener = event => savedHandler.current(event);\n element.addEventListener(eventName, eventListener);\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n },\n [eventName, element],\n );\n};\n\nexport const useInterval = (callback, delay) => {\n const savedCallback = useRef();\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n};\n\nexport const usePrevious = value => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\n\nexport const useFitZoom = () => {\n const settings = usePropStore(state => state.settings);\n const setZoom = useBuilderStore(state => state.setZoom);\n\n useEffect(() => {\n const newZoom = getZoomValue({\n limitZoom: true,\n settings: {\n reportLayoutHeight: settings.reportLayoutHeight,\n reportLayoutWidth: settings.reportLayoutWidth,\n },\n });\n setZoom(newZoom, settings.reportLayoutWidth);\n }, [\n settings.reportLayoutHeight,\n settings.reportLayoutWidth,\n setZoom,\n ]);\n};\n\nexport const usePageVisibility = (callback, pageCount, selectedPageIndex) => {\n const ratio = useRef({});\n const prevVisiblePageIndex = useRef(-1);\n const pageRefs = useRef([]);\n const observer = useMemo(() => new window.IntersectionObserver(entries => {\n entries.forEach(entry => {\n const order = entry.target.getAttribute('data-order');\n if (entry.intersectionRatio !== 0) {\n ratio.current[order] = entry.intersectionRatio;\n } else {\n delete ratio.current[order];\n }\n });\n const visiblePageIndex = parseInt(\n Object.keys(ratio.current)\n .find(key => ratio.current[key] === Math.max(...Object.values(ratio.current))),\n 10,\n );\n if (visiblePageIndex !== prevVisiblePageIndex.current) {\n prevVisiblePageIndex.current = visiblePageIndex;\n callback(visiblePageIndex);\n }\n },\n {\n delay: 100,\n root: document.querySelector('.jfReport-viewport'),\n threshold: [0, 0.25, 0.5, 0.75, 1],\n }), [callback]);\n\n useEffect(() => {\n ratio.current = {};\n pageRefs.current = document.querySelectorAll('.jfReport-page');\n }, [pageCount]);\n\n useEffect(() => {\n if (selectedPageIndex === -1) {\n pageRefs.current.forEach(page => {\n observer.observe(page);\n });\n }\n\n return () => {\n pageRefs.current.forEach(page => {\n observer.unobserve(page);\n });\n };\n }, [selectedPageIndex, observer]);\n};\n\nexport const useFullscreenChange = (isFullscreen, fitToScreen) => {\n /**\n * All this is just to cover if the user exits fullscreen via ESC key :(\n */\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const setIsFullscreen = usePresentationStore(state => state.setIsFullscreen);\n\n const onFullscreenChange = useCallback(() => {\n if (!(\n document.fullScreen\n || document.mozFullScreen\n || document.webkitIsFullScreen\n )) {\n onAnEventTrigger('clickedFullscreen');\n setIsFullscreen(false);\n fitToScreen(500);\n } else {\n setIsFullscreen(true);\n fitToScreen(600);\n }\n }, [fitToScreen, setIsFullscreen, onAnEventTrigger]);\n\n useEventListener('fullscreenchange', onFullscreenChange);\n useEventListener('webkitfullscreenchange', onFullscreenChange);\n useEventListener('mozfullscreenchange', onFullscreenChange);\n useEventListener('MSFullscreenChange', onFullscreenChange);\n};\n\nexport const useTranslatedTexts = () => {\n return useMemo(() => SharingTextsModule.Texts, []);\n};\n\nexport const useClickOutsideListener = (classes, conditionValue, onClose) => {\n const onClickOutsideForPanel = useCallback(({ target: { classList } }) => {\n const shouldClose = classes.some(c => classList.contains(c));\n if (shouldClose) {\n onClose();\n }\n }, [classes, onClose]);\n\n useEffect(() => {\n if (conditionValue) window.addEventListener('click', onClickOutsideForPanel, false);\n return () => window.removeEventListener('click', onClickOutsideForPanel, false);\n }, [conditionValue, onClickOutsideForPanel]);\n};\n\nexport const usePageTransition = (style, currentPage) => {\n const finalStyle = useMemo(() => {\n switch (style) {\n case 'verticalSlide':\n return { transform: `translateY(-${(currentPage * 100).toString()}%)` };\n case 'scaleAndFade':\n return {};\n case 'rotate':\n return { '-webkit-perspective': 1000 };\n case 'scaleAndSlide':\n case 'horizontalSlide':\n default:\n return { transform: `translateX(-${(currentPage * 100).toString()}%)` };\n }\n }, [style, currentPage]);\n\n return finalStyle;\n};\n\nexport const useSelectedElements = () => {\n const pages = usePropStore(state => state.pages);\n const activeElements = useBuilderStore(state => state.activeElements);\n const acceptedItems = usePropStore(state => state.acceptedItems);\n\n return useMemo(() => {\n if (activeElements.length === 0) return [];\n const items = activeElements.map(itemID => {\n let foundItem = [];\n pages.forEach(page => {\n const item = page.items.find(el => el.id === itemID);\n if (item) {\n foundItem = item;\n }\n });\n const defItem = (acceptedItems[foundItem.itemType] && acceptedItems[foundItem.itemType].defaultItem) || {};\n return { ...defItem, ...foundItem };\n });\n return items;\n }, [pages, activeElements, acceptedItems]);\n};\n"],"names":["useEventListener","eventName","handler","element","global","savedHandler","useRef","useEffect","current","isSupported","addEventListener","eventListener","event","removeEventListener","usePrevious","value","ref","useFitZoom","settings","usePropStore","state","setZoom","useBuilderStore","newZoom","getZoomValue","limitZoom","reportLayoutHeight","reportLayoutWidth","usePageVisibility","callback","pageCount","selectedPageIndex","ratio","prevVisiblePageIndex","pageRefs","observer","useMemo","window","IntersectionObserver","entries","forEach","entry","order","target","getAttribute","intersectionRatio","visiblePageIndex","parseInt","Object","keys","find","key","Math","max","values","delay","root","document","querySelector","threshold","querySelectorAll","page","observe","unobserve","useFullscreenChange","isFullscreen","fitToScreen","onAnEventTrigger","setIsFullscreen","usePresentationStore","onFullscreenChange","useCallback","fullScreen","mozFullScreen","webkitIsFullScreen","useTranslatedTexts","SharingTextsModule","Texts","useClickOutsideListener","classes","conditionValue","onClose","onClickOutsideForPanel","classList","shouldClose","some","c","contains","usePageTransition","style","currentPage","finalStyle","transform","toString","useSelectedElements","pages","activeElements","acceptedItems","length","items","map","itemID","foundItem","item","el","id","defItem","itemType","defaultItem"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks.js","sources":["../../../src/utils/hooks.js"],"sourcesContent":["import {\n useEffect,\n useRef,\n useState,\n useMemo,\n useCallback,\n} from 'react';\nimport { getZoomValue } from './functions';\nimport { SharingTextsModule } from '../constants/texts';\nimport { usePropStore } from '../contexts/PropContext';\nimport { useBuilderStore } from '../contexts/BuilderContext';\nimport { usePresentationStore } from '../contexts/PresentationContext';\n\nexport const useStateWithCallback = (initialState, callback) => {\n const [state, setState] = useState(initialState);\n\n useEffect(() => callback(state), [state, callback]);\n\n return [state, setState];\n};\n\nexport const useEventListener = (eventName, handler, element = global) => {\n const savedHandler = useRef();\n\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(\n () => {\n const isSupported = element && element.addEventListener;\n if (!isSupported) return;\n\n const eventListener = event => savedHandler.current(event);\n element.addEventListener(eventName, eventListener);\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n },\n [eventName, element],\n );\n};\n\nexport const useInterval = (callback, delay) => {\n const savedCallback = useRef();\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n};\n\nexport const usePrevious = value => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\n\nexport const usePropState = (propValue, transform = v => v) => {\n const [state, setState] = useState(() => transform(propValue));\n\n useEffect(() => {\n setState(transform(propValue));\n }, [propValue, transform]);\n\n return [state, setState];\n};\n\nexport const useFitZoom = () => {\n const settings = usePropStore(state => state.settings);\n const setZoom = useBuilderStore(state => state.setZoom);\n\n useEffect(() => {\n const newZoom = getZoomValue({\n limitZoom: true,\n settings: {\n reportLayoutHeight: settings.reportLayoutHeight,\n reportLayoutWidth: settings.reportLayoutWidth,\n },\n });\n setZoom(newZoom, settings.reportLayoutWidth);\n }, [\n settings.reportLayoutHeight,\n settings.reportLayoutWidth,\n setZoom,\n ]);\n};\n\nexport const usePageVisibility = (callback, pageCount, selectedPageIndex) => {\n const ratio = useRef({});\n const prevVisiblePageIndex = useRef(-1);\n const pageRefs = useRef([]);\n const observer = useMemo(() => new window.IntersectionObserver(entries => {\n entries.forEach(entry => {\n const order = entry.target.getAttribute('data-order');\n if (entry.intersectionRatio !== 0) {\n ratio.current[order] = entry.intersectionRatio;\n } else {\n delete ratio.current[order];\n }\n });\n const visiblePageIndex = parseInt(\n Object.keys(ratio.current)\n .find(key => ratio.current[key] === Math.max(...Object.values(ratio.current))),\n 10,\n );\n if (visiblePageIndex !== prevVisiblePageIndex.current) {\n prevVisiblePageIndex.current = visiblePageIndex;\n callback(visiblePageIndex);\n }\n },\n {\n delay: 100,\n root: document.querySelector('.jfReport-viewport'),\n threshold: [0, 0.25, 0.5, 0.75, 1],\n }), [callback]);\n\n useEffect(() => {\n ratio.current = {};\n pageRefs.current = document.querySelectorAll('.jfReport-page');\n }, [pageCount]);\n\n useEffect(() => {\n if (selectedPageIndex === -1) {\n pageRefs.current.forEach(page => {\n observer.observe(page);\n });\n }\n\n return () => {\n pageRefs.current.forEach(page => {\n observer.unobserve(page);\n });\n };\n }, [selectedPageIndex, observer]);\n};\n\nexport const useFullscreenChange = (isFullscreen, fitToScreen) => {\n /**\n * All this is just to cover if the user exits fullscreen via ESC key :(\n */\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n const setIsFullscreen = usePresentationStore(state => state.setIsFullscreen);\n\n const onFullscreenChange = useCallback(() => {\n if (!(\n document.fullScreen\n || document.mozFullScreen\n || document.webkitIsFullScreen\n )) {\n onAnEventTrigger('clickedFullscreen');\n setIsFullscreen(false);\n fitToScreen(500);\n } else {\n setIsFullscreen(true);\n fitToScreen(600);\n }\n }, [fitToScreen, setIsFullscreen, onAnEventTrigger]);\n\n useEventListener('fullscreenchange', onFullscreenChange);\n useEventListener('webkitfullscreenchange', onFullscreenChange);\n useEventListener('mozfullscreenchange', onFullscreenChange);\n useEventListener('MSFullscreenChange', onFullscreenChange);\n};\n\nexport const useTranslatedTexts = () => {\n return useMemo(() => SharingTextsModule.Texts, []);\n};\n\nexport const useClickOutsideListener = (classes, conditionValue, onClose) => {\n const onClickOutsideForPanel = useCallback(({ target: { classList } }) => {\n const shouldClose = classes.some(c => classList.contains(c));\n if (shouldClose) {\n onClose();\n }\n }, [classes, onClose]);\n\n useEffect(() => {\n if (conditionValue) window.addEventListener('click', onClickOutsideForPanel, false);\n return () => window.removeEventListener('click', onClickOutsideForPanel, false);\n }, [conditionValue, onClickOutsideForPanel]);\n};\n\nexport const usePageTransition = (style, currentPage) => {\n const finalStyle = useMemo(() => {\n switch (style) {\n case 'verticalSlide':\n return { transform: `translateY(-${(currentPage * 100).toString()}%)` };\n case 'scaleAndFade':\n return {};\n case 'rotate':\n return { '-webkit-perspective': 1000 };\n case 'scaleAndSlide':\n case 'horizontalSlide':\n default:\n return { transform: `translateX(-${(currentPage * 100).toString()}%)` };\n }\n }, [style, currentPage]);\n\n return finalStyle;\n};\n\nexport const useSelectedElements = () => {\n const pages = usePropStore(state => state.pages);\n const activeElements = useBuilderStore(state => state.activeElements);\n const acceptedItems = usePropStore(state => state.acceptedItems);\n\n return useMemo(() => {\n if (activeElements.length === 0) return [];\n const items = activeElements.map(itemID => {\n let foundItem = [];\n pages.forEach(page => {\n const item = page.items.find(el => el.id === itemID);\n if (item) {\n foundItem = item;\n }\n });\n const defItem = (acceptedItems[foundItem.itemType] && acceptedItems[foundItem.itemType].defaultItem) || {};\n return { ...defItem, ...foundItem };\n });\n return items;\n }, [pages, activeElements, acceptedItems]);\n};\n"],"names":["useEventListener","eventName","handler","element","global","savedHandler","useRef","useEffect","current","isSupported","addEventListener","eventListener","event","removeEventListener","usePrevious","value","ref","usePropState","propValue","transform","v","useState","state","setState","useFitZoom","settings","usePropStore","setZoom","useBuilderStore","newZoom","getZoomValue","limitZoom","reportLayoutHeight","reportLayoutWidth","usePageVisibility","callback","pageCount","selectedPageIndex","ratio","prevVisiblePageIndex","pageRefs","observer","useMemo","window","IntersectionObserver","entries","forEach","entry","order","target","getAttribute","intersectionRatio","visiblePageIndex","parseInt","Object","keys","find","key","Math","max","values","delay","root","document","querySelector","threshold","querySelectorAll","page","observe","unobserve","useFullscreenChange","isFullscreen","fitToScreen","onAnEventTrigger","setIsFullscreen","usePresentationStore","onFullscreenChange","useCallback","fullScreen","mozFullScreen","webkitIsFullScreen","useTranslatedTexts","SharingTextsModule","Texts","useClickOutsideListener","classes","conditionValue","onClose","onClickOutsideForPanel","classList","shouldClose","some","c","contains","usePageTransition","style","currentPage","finalStyle","toString","useSelectedElements","pages","activeElements","acceptedItems","length","items","map","itemID","foundItem","item","el","id","defItem","itemType","defaultItem"],"mappings":"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"}
|