@jotforminc/dnd-builder 3.9.4 → 3.9.6
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/README.md +1 -1
- package/lib/cjs/components/AlignmentGuides.js +0 -4
- package/lib/cjs/components/AlignmentGuides.js.map +1 -1
- package/lib/cjs/components/Builder/BuilderWrapper.js +0 -2
- package/lib/cjs/components/Builder/BuilderWrapper.js.map +1 -1
- package/lib/cjs/components/Builder/ContextMenu.js +0 -2
- package/lib/cjs/components/Builder/ContextMenu.js.map +1 -1
- package/lib/cjs/components/Builder/Page.js +0 -1
- package/lib/cjs/components/Builder/Page.js.map +1 -1
- package/lib/cjs/components/Builder/PageActions.js +0 -3
- package/lib/cjs/components/Builder/PageActions.js.map +1 -1
- package/lib/cjs/components/Builder/Scene.js +0 -7
- package/lib/cjs/components/Builder/Scene.js.map +1 -1
- package/lib/cjs/components/Builder/Tabs.js +0 -2
- package/lib/cjs/components/Builder/Tabs.js.map +1 -1
- package/lib/cjs/components/Builder/ZoomControls.js +0 -3
- package/lib/cjs/components/Builder/ZoomControls.js.map +1 -1
- package/lib/cjs/components/DraggableItem/DraggableItem.js +0 -2
- package/lib/cjs/components/DraggableItem/DraggableItem.js.map +1 -1
- package/lib/cjs/components/DraggableItem/DraggableItemLayer.js +0 -1
- package/lib/cjs/components/DraggableItem/DraggableItemLayer.js.map +1 -1
- package/lib/cjs/components/Elements/Chart.js +0 -3
- package/lib/cjs/components/Elements/Chart.js.map +1 -1
- package/lib/cjs/components/Elements/Icon.js +0 -1
- package/lib/cjs/components/Elements/Icon.js.map +1 -1
- package/lib/cjs/components/Elements/Image.js +0 -1
- package/lib/cjs/components/Elements/Image.js.map +1 -1
- package/lib/cjs/components/Elements/Shapes.js +0 -1
- package/lib/cjs/components/Elements/Shapes.js.map +1 -1
- package/lib/cjs/components/ErrorBoundary/ErrorDetails.js +0 -2
- package/lib/cjs/components/ErrorBoundary/ErrorDetails.js.map +1 -1
- package/lib/cjs/components/ErrorBoundary/ErrorFallbackWrapper.js +0 -2
- package/lib/cjs/components/ErrorBoundary/ErrorFallbackWrapper.js.map +1 -1
- package/lib/cjs/components/PageItemResizer.js +0 -3
- package/lib/cjs/components/PageItemResizer.js.map +1 -1
- package/lib/cjs/components/Panels/LeftPanel/Elements.js +0 -8
- package/lib/cjs/components/Panels/LeftPanel/Elements.js.map +1 -1
- package/lib/cjs/components/Panels/RightPanel/RightPanel.js +4 -7
- package/lib/cjs/components/Panels/RightPanel/RightPanel.js.map +1 -1
- package/lib/cjs/components/Panels/RightPanel/Settings.js +0 -4
- package/lib/cjs/components/Panels/RightPanel/Settings.js.map +1 -1
- package/lib/cjs/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js +0 -1
- package/lib/cjs/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js.map +1 -1
- package/lib/cjs/components/Panels/SlidesNavigator/SlideItem.js +0 -2
- package/lib/cjs/components/Panels/SlidesNavigator/SlideItem.js.map +1 -1
- package/lib/cjs/components/Panels/SlidesNavigator/SlideItemsList.js +0 -3
- package/lib/cjs/components/Panels/SlidesNavigator/SlideItemsList.js.map +1 -1
- package/lib/cjs/components/Panels/SlidesNavigator/StaticSlideItem.js +0 -2
- package/lib/cjs/components/Panels/SlidesNavigator/StaticSlideItem.js.map +1 -1
- package/lib/cjs/components/Panels/SlidesPanel/ListWrapper.js +0 -2
- package/lib/cjs/components/Panels/SlidesPanel/ListWrapper.js.map +1 -1
- package/lib/cjs/components/Panels/SlidesPanel/SortablePageItem.js +0 -2
- package/lib/cjs/components/Panels/SlidesPanel/SortablePageItem.js.map +1 -1
- package/lib/cjs/components/Panels/SlidesPanel/SortablePageItemRenderer.js +0 -1
- package/lib/cjs/components/Panels/SlidesPanel/SortablePageItemRenderer.js.map +1 -1
- package/lib/cjs/components/Panels/SlidesPanel/SortablePageList.js +0 -3
- package/lib/cjs/components/Panels/SlidesPanel/SortablePageList.js.map +1 -1
- package/lib/cjs/components/Presentation/PresentationBar/PresentationActions.js +0 -4
- package/lib/cjs/components/Presentation/PresentationBar/PresentationActions.js.map +1 -1
- package/lib/cjs/components/Presentation/PresentationBar/PresentationBar.js +0 -1
- package/lib/cjs/components/Presentation/PresentationBar/PresentationBar.js.map +1 -1
- package/lib/cjs/components/Presentation/PresentationBar/SelectZoom.js +0 -3
- package/lib/cjs/components/Presentation/PresentationBar/SelectZoom.js.map +1 -1
- package/lib/cjs/components/Preview/StaticPage.js +0 -2
- package/lib/cjs/components/Preview/StaticPage.js.map +1 -1
- package/lib/cjs/components/Preview/StaticScene.js +0 -8
- package/lib/cjs/components/Preview/StaticScene.js.map +1 -1
- package/lib/cjs/components/Print/PrintWrapper.js +0 -2
- package/lib/cjs/components/Print/PrintWrapper.js.map +1 -1
- package/lib/cjs/components/ReportItemsWrapper.js +0 -2
- package/lib/cjs/components/ReportItemsWrapper.js.map +1 -1
- package/lib/cjs/components/Settings/CheckboxGroup.js +0 -2
- package/lib/cjs/components/Settings/CheckboxGroup.js.map +1 -1
- package/lib/cjs/components/Settings/ColorPicker.js +0 -1
- package/lib/cjs/components/Settings/ColorPicker.js.map +1 -1
- package/lib/cjs/components/Settings/Dropdown.js +0 -1
- package/lib/cjs/components/Settings/Dropdown.js.map +1 -1
- package/lib/cjs/components/Settings/IconSelectBox.js +0 -2
- package/lib/cjs/components/Settings/IconSelectBox.js.map +1 -1
- package/lib/cjs/components/Settings/ImagePicker/EnterURL.js +0 -4
- package/lib/cjs/components/Settings/ImagePicker/EnterURL.js.map +1 -1
- package/lib/cjs/components/Settings/LayoutSizeSettings.js +0 -2
- package/lib/cjs/components/Settings/LayoutSizeSettings.js.map +1 -1
- package/lib/cjs/components/Settings/Orientation.js +0 -5
- package/lib/cjs/components/Settings/Orientation.js.map +1 -1
- package/lib/cjs/components/Settings/PageLayer/LayerItem.js +0 -2
- package/lib/cjs/components/Settings/PageLayer/LayerItem.js.map +1 -1
- package/lib/cjs/components/Settings/PageLayer/PageLayer.js +0 -3
- package/lib/cjs/components/Settings/PageLayer/PageLayer.js.map +1 -1
- package/lib/cjs/components/Settings/SegmentControl.js +0 -4
- package/lib/cjs/components/Settings/SegmentControl.js.map +1 -1
- package/lib/cjs/components/Settings/SelectBox.js +0 -2
- package/lib/cjs/components/Settings/SelectBox.js.map +1 -1
- package/lib/cjs/components/Settings/SizeSettings.js +0 -1
- package/lib/cjs/components/Settings/SizeSettings.js.map +1 -1
- package/lib/cjs/components/Settings/Slider.js +0 -2
- package/lib/cjs/components/Settings/Slider.js.map +1 -1
- package/lib/cjs/components/TextEditor/CustomToolbar/CustomToolbar.js +0 -4
- package/lib/cjs/components/TextEditor/CustomToolbar/CustomToolbar.js.map +1 -1
- package/lib/cjs/components/TextEditor/QuillEditor.js +0 -1
- package/lib/cjs/components/TextEditor/QuillEditor.js.map +1 -1
- package/lib/cjs/components/withClickOutside.js +0 -6
- package/lib/cjs/components/withClickOutside.js.map +1 -1
- package/lib/cjs/constants/fonts.js +0 -4
- package/lib/cjs/constants/fonts.js.map +1 -1
- package/lib/cjs/constants/reportLayoutSettings.js +0 -3
- package/lib/cjs/constants/reportLayoutSettings.js.map +1 -1
- package/lib/cjs/constants/reportSettings.js +0 -1
- package/lib/cjs/constants/reportSettings.js.map +1 -1
- package/lib/cjs/contexts/BuilderContext.js +0 -1
- package/lib/cjs/contexts/BuilderContext.js.map +1 -1
- package/lib/cjs/contexts/Providers.js +0 -1
- package/lib/cjs/contexts/Providers.js.map +1 -1
- package/lib/cjs/utils/functions.js +0 -25
- package/lib/cjs/utils/functions.js.map +1 -1
- package/lib/cjs/utils/generateId.js +0 -2
- package/lib/cjs/utils/generateId.js.map +1 -1
- package/lib/cjs/utils/getMergedItem.js +0 -4
- package/lib/cjs/utils/getMergedItem.js.map +1 -1
- package/lib/cjs/utils/hooks.js +0 -7
- package/lib/cjs/utils/hooks.js.map +1 -1
- package/lib/cjs/utils/print.js +0 -2
- package/lib/cjs/utils/print.js.map +1 -1
- package/lib/cjs/utils/string.js +0 -8
- package/lib/cjs/utils/string.js.map +1 -1
- package/lib/cjs/utils/useKeyboardActions.js +0 -4
- package/lib/cjs/utils/useKeyboardActions.js.map +1 -1
- package/lib/cjs/utils/useMarqueeSelection.js +0 -3
- package/lib/cjs/utils/useMarqueeSelection.js.map +1 -1
- package/lib/esm/components/AlignmentGuides.js +0 -4
- package/lib/esm/components/AlignmentGuides.js.map +1 -1
- package/lib/esm/components/Builder/BuilderWrapper.js +0 -2
- package/lib/esm/components/Builder/BuilderWrapper.js.map +1 -1
- package/lib/esm/components/Builder/ContextMenu.js +0 -2
- package/lib/esm/components/Builder/ContextMenu.js.map +1 -1
- package/lib/esm/components/Builder/Page.js +0 -1
- package/lib/esm/components/Builder/Page.js.map +1 -1
- package/lib/esm/components/Builder/PageActions.js +0 -3
- package/lib/esm/components/Builder/PageActions.js.map +1 -1
- package/lib/esm/components/Builder/Scene.js +0 -7
- package/lib/esm/components/Builder/Scene.js.map +1 -1
- package/lib/esm/components/Builder/Tabs.js +0 -2
- package/lib/esm/components/Builder/Tabs.js.map +1 -1
- package/lib/esm/components/Builder/ZoomControls.js +0 -3
- package/lib/esm/components/Builder/ZoomControls.js.map +1 -1
- package/lib/esm/components/DraggableItem/DraggableItem.js +0 -2
- package/lib/esm/components/DraggableItem/DraggableItem.js.map +1 -1
- package/lib/esm/components/DraggableItem/DraggableItemLayer.js +0 -1
- package/lib/esm/components/DraggableItem/DraggableItemLayer.js.map +1 -1
- package/lib/esm/components/Elements/Chart.js +0 -3
- package/lib/esm/components/Elements/Chart.js.map +1 -1
- package/lib/esm/components/Elements/Icon.js +0 -1
- package/lib/esm/components/Elements/Icon.js.map +1 -1
- package/lib/esm/components/Elements/Image.js +0 -1
- package/lib/esm/components/Elements/Image.js.map +1 -1
- package/lib/esm/components/Elements/Shapes.js +0 -1
- package/lib/esm/components/Elements/Shapes.js.map +1 -1
- package/lib/esm/components/ErrorBoundary/ErrorDetails.js +0 -2
- package/lib/esm/components/ErrorBoundary/ErrorDetails.js.map +1 -1
- package/lib/esm/components/ErrorBoundary/ErrorFallbackWrapper.js +0 -2
- package/lib/esm/components/ErrorBoundary/ErrorFallbackWrapper.js.map +1 -1
- package/lib/esm/components/PageItemResizer.js +0 -3
- package/lib/esm/components/PageItemResizer.js.map +1 -1
- package/lib/esm/components/Panels/LeftPanel/Elements.js +0 -8
- package/lib/esm/components/Panels/LeftPanel/Elements.js.map +1 -1
- package/lib/esm/components/Panels/RightPanel/RightPanel.js +4 -7
- package/lib/esm/components/Panels/RightPanel/RightPanel.js.map +1 -1
- package/lib/esm/components/Panels/RightPanel/Settings.js +0 -4
- package/lib/esm/components/Panels/RightPanel/Settings.js.map +1 -1
- package/lib/esm/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js +0 -1
- package/lib/esm/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js.map +1 -1
- package/lib/esm/components/Panels/SlidesNavigator/SlideItem.js +0 -2
- package/lib/esm/components/Panels/SlidesNavigator/SlideItem.js.map +1 -1
- package/lib/esm/components/Panels/SlidesNavigator/SlideItemsList.js +0 -3
- package/lib/esm/components/Panels/SlidesNavigator/SlideItemsList.js.map +1 -1
- package/lib/esm/components/Panels/SlidesNavigator/StaticSlideItem.js +0 -2
- package/lib/esm/components/Panels/SlidesNavigator/StaticSlideItem.js.map +1 -1
- package/lib/esm/components/Panels/SlidesPanel/ListWrapper.js +0 -2
- package/lib/esm/components/Panels/SlidesPanel/ListWrapper.js.map +1 -1
- package/lib/esm/components/Panels/SlidesPanel/SortablePageItem.js +0 -2
- package/lib/esm/components/Panels/SlidesPanel/SortablePageItem.js.map +1 -1
- package/lib/esm/components/Panels/SlidesPanel/SortablePageItemRenderer.js +0 -1
- package/lib/esm/components/Panels/SlidesPanel/SortablePageItemRenderer.js.map +1 -1
- package/lib/esm/components/Panels/SlidesPanel/SortablePageList.js +0 -3
- package/lib/esm/components/Panels/SlidesPanel/SortablePageList.js.map +1 -1
- package/lib/esm/components/Presentation/PresentationBar/PresentationActions.js +0 -4
- package/lib/esm/components/Presentation/PresentationBar/PresentationActions.js.map +1 -1
- package/lib/esm/components/Presentation/PresentationBar/PresentationBar.js +0 -1
- package/lib/esm/components/Presentation/PresentationBar/PresentationBar.js.map +1 -1
- package/lib/esm/components/Presentation/PresentationBar/SelectZoom.js +0 -3
- package/lib/esm/components/Presentation/PresentationBar/SelectZoom.js.map +1 -1
- package/lib/esm/components/Preview/StaticPage.js +0 -2
- package/lib/esm/components/Preview/StaticPage.js.map +1 -1
- package/lib/esm/components/Preview/StaticScene.js +0 -8
- package/lib/esm/components/Preview/StaticScene.js.map +1 -1
- package/lib/esm/components/Print/PrintWrapper.js +0 -2
- package/lib/esm/components/Print/PrintWrapper.js.map +1 -1
- package/lib/esm/components/ReportItemsWrapper.js +0 -2
- package/lib/esm/components/ReportItemsWrapper.js.map +1 -1
- package/lib/esm/components/Settings/CheckboxGroup.js +0 -2
- package/lib/esm/components/Settings/CheckboxGroup.js.map +1 -1
- package/lib/esm/components/Settings/ColorPicker.js +0 -1
- package/lib/esm/components/Settings/ColorPicker.js.map +1 -1
- package/lib/esm/components/Settings/Dropdown.js +0 -1
- package/lib/esm/components/Settings/Dropdown.js.map +1 -1
- package/lib/esm/components/Settings/IconSelectBox.js +0 -2
- package/lib/esm/components/Settings/IconSelectBox.js.map +1 -1
- package/lib/esm/components/Settings/ImagePicker/EnterURL.js +0 -4
- package/lib/esm/components/Settings/ImagePicker/EnterURL.js.map +1 -1
- package/lib/esm/components/Settings/LayoutSizeSettings.js +0 -2
- package/lib/esm/components/Settings/LayoutSizeSettings.js.map +1 -1
- package/lib/esm/components/Settings/Orientation.js +0 -5
- package/lib/esm/components/Settings/Orientation.js.map +1 -1
- package/lib/esm/components/Settings/PageLayer/LayerItem.js +0 -2
- package/lib/esm/components/Settings/PageLayer/LayerItem.js.map +1 -1
- package/lib/esm/components/Settings/PageLayer/PageLayer.js +0 -3
- package/lib/esm/components/Settings/PageLayer/PageLayer.js.map +1 -1
- package/lib/esm/components/Settings/SegmentControl.js +0 -4
- package/lib/esm/components/Settings/SegmentControl.js.map +1 -1
- package/lib/esm/components/Settings/SelectBox.js +0 -2
- package/lib/esm/components/Settings/SelectBox.js.map +1 -1
- package/lib/esm/components/Settings/SizeSettings.js +0 -1
- package/lib/esm/components/Settings/SizeSettings.js.map +1 -1
- package/lib/esm/components/Settings/Slider.js +0 -2
- package/lib/esm/components/Settings/Slider.js.map +1 -1
- package/lib/esm/components/TextEditor/CustomToolbar/CustomToolbar.js +0 -4
- package/lib/esm/components/TextEditor/CustomToolbar/CustomToolbar.js.map +1 -1
- package/lib/esm/components/TextEditor/QuillEditor.js +0 -1
- package/lib/esm/components/TextEditor/QuillEditor.js.map +1 -1
- package/lib/esm/components/withClickOutside.js +0 -6
- package/lib/esm/components/withClickOutside.js.map +1 -1
- package/lib/esm/constants/fonts.js +0 -4
- package/lib/esm/constants/fonts.js.map +1 -1
- package/lib/esm/constants/reportLayoutSettings.js +0 -3
- package/lib/esm/constants/reportLayoutSettings.js.map +1 -1
- package/lib/esm/constants/reportSettings.js +0 -1
- package/lib/esm/constants/reportSettings.js.map +1 -1
- package/lib/esm/contexts/BuilderContext.js +0 -1
- package/lib/esm/contexts/BuilderContext.js.map +1 -1
- package/lib/esm/contexts/Providers.js +0 -1
- package/lib/esm/contexts/Providers.js.map +1 -1
- package/lib/esm/utils/functions.js +0 -25
- package/lib/esm/utils/functions.js.map +1 -1
- package/lib/esm/utils/generateId.js +0 -2
- package/lib/esm/utils/generateId.js.map +1 -1
- package/lib/esm/utils/getMergedItem.js +0 -4
- package/lib/esm/utils/getMergedItem.js.map +1 -1
- package/lib/esm/utils/hooks.js +0 -7
- package/lib/esm/utils/hooks.js.map +1 -1
- package/lib/esm/utils/print.js +0 -2
- package/lib/esm/utils/print.js.map +1 -1
- package/lib/esm/utils/string.js +0 -8
- package/lib/esm/utils/string.js.map +1 -1
- package/lib/esm/utils/useKeyboardActions.js +0 -4
- package/lib/esm/utils/useKeyboardActions.js.map +1 -1
- package/lib/esm/utils/useMarqueeSelection.js +0 -3
- package/lib/esm/utils/useMarqueeSelection.js.map +1 -1
- package/package.json +11 -10
- package/CHANGELOG.md +0 -886
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutSizeSettings.js","sources":["../../../../src/components/Settings/LayoutSizeSettings.js"],"sourcesContent":["import { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport * as icons from '../../utils/icons';\nimport { roundForDecimalPart } from '../../utils/functions';\nimport { useTranslatedTexts } from '../../utils/hooks';\n\nconst LayoutSizeSettings = ({\n config,\n item = {},\n onItemChange = () => {},\n}) => {\n const [aspectLock, setAspectLock] = useState(true);\n const { HEIGHT, WIDTH } = useTranslatedTexts();\n\n const { reportLayoutHeight: layoutHeight, reportLayoutWidth: layoutWidth } = item;\n\n const initialWidth = parseInt(layoutWidth, 10);\n const initialHeight = parseInt(layoutHeight, 10);\n\n const [sizes, setSizes] = useState({\n height: initialHeight,\n width: initialWidth,\n });\n\n const initialAspect = initialWidth / initialHeight;\n\n const onChange = e => {\n const property = e.target.getAttribute('name');\n const newValue = e.target.value;\n if (aspectLock) {\n if (property === 'width') {\n setSizes({\n ...sizes,\n height: Number(newValue / initialAspect),\n [property]: parseInt(newValue, 10),\n });\n } else {\n setSizes({\n ...sizes,\n [property]: parseInt(newValue, 10),\n width: Number(newValue * initialAspect),\n });\n }\n } else {\n setSizes({\n ...sizes,\n [property]: parseInt(newValue, 10),\n });\n }\n };\n\n const onBlur = () => {\n const newWidth = sizes.width < 200 ? 200 : sizes.width;\n const newHeight = sizes.height < 100 ? 100 : sizes.height;\n setSizes({\n height: newHeight,\n width: newWidth,\n });\n onItemChange(\n { id: item.id },\n {\n [config.key]: `${roundForDecimalPart(newWidth)}x${roundForDecimalPart(newHeight)}`,\n },\n );\n };\n\n const onKeyDown = e => {\n if (e.keyCode === 13) {\n onBlur();\n }\n };\n\n return (\n <>\n <div className=\"toolSection-wrapper d-flex\">\n <div className=\"toolSection-subItem\">\n <label\n className=\"d-flex dir-col hasUnit isPixel\"\n htmlFor=\"width-input\"\n >\n <input\n className=\"toolSection-input\"\n id=\"width-input\"\n name=\"width\"\n onBlur={onBlur}\n onChange={onChange}\n onKeyDown={onKeyDown}\n step=\"any\"\n type=\"number\"\n value={roundForDecimalPart(sizes.width)}\n />\n <span className=\"toolSection-subLabel\">{WIDTH}</span>\n </label>\n </div>\n <div className=\"toolSection-subItem hasAspect\">\n <button\n className=\"p-relative forAspect\"\n onClick={() => setAspectLock(!aspectLock)}\n type=\"button\"\n >\n {aspectLock\n ? <icons.lock className=\"jfReportSVG icon-aspectLock\" />\n : <icons.unlock className=\"jfReportSVG icon-aspectUnlock\" />}\n </button>\n </div>\n <div className=\"toolSection-subItem\">\n <label\n className=\"d-flex dir-col hasUnit isPixel\"\n htmlFor=\"width-input\"\n >\n <input\n className=\"toolSection-input\"\n id=\"height-input\"\n name=\"height\"\n onBlur={onBlur}\n onChange={onChange}\n onKeyDown={onKeyDown}\n step=\"any\"\n type=\"number\"\n value={roundForDecimalPart(sizes.height)}\n />\n <span className=\"toolSection-subLabel\">{HEIGHT}</span>\n </label>\n </div>\n </div>\n </>\n );\n};\n\nLayoutSizeSettings.propTypes = {\n config: PropTypes.shape({\n key: PropTypes.string,\n }).isRequired,\n item: PropTypes.shape({\n height: PropTypes.number,\n id: PropTypes.string,\n reportLayout: PropTypes.string,\n reportLayoutHeight: PropTypes.string,\n reportLayoutWidth: PropTypes.string,\n shapeType: PropTypes.string,\n url: PropTypes.string,\n width: PropTypes.number,\n }),\n onItemChange: PropTypes.func,\n};\n\nexport default LayoutSizeSettings;\n"],"names":["LayoutSizeSettings","config","item","onItemChange","useState","aspectLock","setAspectLock","useTranslatedTexts","HEIGHT","WIDTH","layoutHeight","reportLayoutHeight","layoutWidth","reportLayoutWidth","initialWidth","parseInt","initialHeight","height","width","sizes","setSizes","initialAspect","onChange","e","property","target","getAttribute","newValue","value","Number","onBlur","newWidth","newHeight","id","key","roundForDecimalPart","onKeyDown","keyCode","_jsx","_jsxs","icons.lock","icons.unlock","propTypes","PropTypes","shape","string","isRequired","number","reportLayout","shapeType","url","func"],"mappings":"
|
|
1
|
+
{"version":3,"file":"LayoutSizeSettings.js","sources":["../../../../src/components/Settings/LayoutSizeSettings.js"],"sourcesContent":["import { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport * as icons from '../../utils/icons';\nimport { roundForDecimalPart } from '../../utils/functions';\nimport { useTranslatedTexts } from '../../utils/hooks';\n\nconst LayoutSizeSettings = ({\n config,\n item = {},\n onItemChange = () => {},\n}) => {\n const [aspectLock, setAspectLock] = useState(true);\n const { HEIGHT, WIDTH } = useTranslatedTexts();\n\n const { reportLayoutHeight: layoutHeight, reportLayoutWidth: layoutWidth } = item;\n\n const initialWidth = parseInt(layoutWidth, 10);\n const initialHeight = parseInt(layoutHeight, 10);\n\n const [sizes, setSizes] = useState({\n height: initialHeight,\n width: initialWidth,\n });\n\n const initialAspect = initialWidth / initialHeight;\n\n const onChange = e => {\n const property = e.target.getAttribute('name');\n const newValue = e.target.value;\n if (aspectLock) {\n if (property === 'width') {\n setSizes({\n ...sizes,\n height: Number(newValue / initialAspect),\n [property]: parseInt(newValue, 10),\n });\n } else {\n setSizes({\n ...sizes,\n [property]: parseInt(newValue, 10),\n width: Number(newValue * initialAspect),\n });\n }\n } else {\n setSizes({\n ...sizes,\n [property]: parseInt(newValue, 10),\n });\n }\n };\n\n const onBlur = () => {\n const newWidth = sizes.width < 200 ? 200 : sizes.width;\n const newHeight = sizes.height < 100 ? 100 : sizes.height;\n setSizes({\n height: newHeight,\n width: newWidth,\n });\n onItemChange(\n { id: item.id },\n {\n [config.key]: `${roundForDecimalPart(newWidth)}x${roundForDecimalPart(newHeight)}`,\n },\n );\n };\n\n const onKeyDown = e => {\n if (e.keyCode === 13) {\n onBlur();\n }\n };\n\n return (\n <>\n <div className=\"toolSection-wrapper d-flex\">\n <div className=\"toolSection-subItem\">\n <label\n className=\"d-flex dir-col hasUnit isPixel\"\n htmlFor=\"width-input\"\n >\n <input\n className=\"toolSection-input\"\n id=\"width-input\"\n name=\"width\"\n onBlur={onBlur}\n onChange={onChange}\n onKeyDown={onKeyDown}\n step=\"any\"\n type=\"number\"\n value={roundForDecimalPart(sizes.width)}\n />\n <span className=\"toolSection-subLabel\">{WIDTH}</span>\n </label>\n </div>\n <div className=\"toolSection-subItem hasAspect\">\n <button\n className=\"p-relative forAspect\"\n onClick={() => setAspectLock(!aspectLock)}\n type=\"button\"\n >\n {aspectLock\n ? <icons.lock className=\"jfReportSVG icon-aspectLock\" />\n : <icons.unlock className=\"jfReportSVG icon-aspectUnlock\" />}\n </button>\n </div>\n <div className=\"toolSection-subItem\">\n <label\n className=\"d-flex dir-col hasUnit isPixel\"\n htmlFor=\"width-input\"\n >\n <input\n className=\"toolSection-input\"\n id=\"height-input\"\n name=\"height\"\n onBlur={onBlur}\n onChange={onChange}\n onKeyDown={onKeyDown}\n step=\"any\"\n type=\"number\"\n value={roundForDecimalPart(sizes.height)}\n />\n <span className=\"toolSection-subLabel\">{HEIGHT}</span>\n </label>\n </div>\n </div>\n </>\n );\n};\n\nLayoutSizeSettings.propTypes = {\n config: PropTypes.shape({\n key: PropTypes.string,\n }).isRequired,\n item: PropTypes.shape({\n height: PropTypes.number,\n id: PropTypes.string,\n reportLayout: PropTypes.string,\n reportLayoutHeight: PropTypes.string,\n reportLayoutWidth: PropTypes.string,\n shapeType: PropTypes.string,\n url: PropTypes.string,\n width: PropTypes.number,\n }),\n onItemChange: PropTypes.func,\n};\n\nexport default LayoutSizeSettings;\n"],"names":["LayoutSizeSettings","config","item","onItemChange","useState","aspectLock","setAspectLock","useTranslatedTexts","HEIGHT","WIDTH","layoutHeight","reportLayoutHeight","layoutWidth","reportLayoutWidth","initialWidth","parseInt","initialHeight","height","width","sizes","setSizes","initialAspect","onChange","e","property","target","getAttribute","newValue","value","Number","onBlur","newWidth","newHeight","id","key","roundForDecimalPart","onKeyDown","keyCode","_jsx","_jsxs","icons.lock","icons.unlock","propTypes","PropTypes","shape","string","isRequired","number","reportLayout","shapeType","url","func"],"mappings":"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"}
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
import 'core-js/modules/es.array.filter.js';
|
|
2
|
-
import 'core-js/modules/es.array.includes.js';
|
|
3
|
-
import 'core-js/modules/es.array.map.js';
|
|
4
|
-
import 'core-js/modules/es.array.slice.js';
|
|
5
|
-
import 'core-js/modules/es.string.includes.js';
|
|
6
1
|
import { memo, Fragment } from 'react';
|
|
7
2
|
import PropTypes from 'prop-types';
|
|
8
3
|
import classNames from 'classnames';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Orientation.js","sources":["../../../../src/components/Settings/Orientation.js"],"sourcesContent":["import { memo, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { safeJSONParse } from '../../utils/functions';\n\nconst Orientation = ({\n config = [],\n item = {},\n onItemChange = () => {},\n value = '',\n}) => {\n const { multipleSelect, options, optionsDisplay } = config;\n const exactValue = !multipleSelect ? value : safeJSONParse(value, []);\n const onClick = type => {\n return () => {\n let newValue = type;\n if (multipleSelect) {\n newValue = [...exactValue];\n if (exactValue.includes(type)) {\n newValue = newValue.filter(v => v !== type);\n } else {\n newValue.push(type);\n }\n newValue = JSON.stringify(newValue);\n }\n if (newValue !== value) {\n onItemChange(\n { id: item.id },\n { [config.key]: newValue },\n );\n }\n };\n };\n return (\n <div className=\"toolSection-orientation d-flex dir-row\">\n {options.map(option => {\n const key = option.value ? option.value : option;\n return (\n <button\n key={key}\n className={classNames(\n 'toolSection-orientationItem',\n 'd-flex',\n 'j-center',\n {\n isSelected: !multipleSelect\n ? exactValue === key\n : exactValue && exactValue.includes(key),\n },\n )}\n data-orientation={key}\n onClick={onClick(key)}\n type=\"button\"\n >\n {optionsDisplay ? optionsDisplay.map(display => (\n <Fragment key={display}>\n <span className=\"orientationIcon d-flex a-center j-center\">\n {option[display]}\n </span>\n <span>\n {key.charAt(0).toUpperCase() + key.slice(1)}\n </span>\n </Fragment>\n )) : option.label}\n </button>\n );\n })}\n </div>\n );\n};\n\nOrientation.propTypes = {\n config: PropTypes.shape({\n key: PropTypes.string,\n multipleSelect: PropTypes.bool,\n options: PropTypes.arrayOf(PropTypes.any),\n optionsDisplay: PropTypes.arrayOf(PropTypes.any),\n }),\n item: PropTypes.shape({\n id: PropTypes.string,\n }),\n onItemChange: PropTypes.func,\n value: PropTypes.string,\n};\n\nexport default memo(Orientation);\n"],"names":["Orientation","config","item","onItemChange","value","multipleSelect","options","optionsDisplay","exactValue","safeJSONParse","onClick","type","newValue","includes","filter","v","push","JSON","stringify","id","key","_jsx","map","option","classNames","isSelected","display","_jsxs","charAt","toUpperCase","slice","label","propTypes","PropTypes","shape","string","bool","arrayOf","any","func","memo"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Orientation.js","sources":["../../../../src/components/Settings/Orientation.js"],"sourcesContent":["import { memo, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { safeJSONParse } from '../../utils/functions';\n\nconst Orientation = ({\n config = [],\n item = {},\n onItemChange = () => {},\n value = '',\n}) => {\n const { multipleSelect, options, optionsDisplay } = config;\n const exactValue = !multipleSelect ? value : safeJSONParse(value, []);\n const onClick = type => {\n return () => {\n let newValue = type;\n if (multipleSelect) {\n newValue = [...exactValue];\n if (exactValue.includes(type)) {\n newValue = newValue.filter(v => v !== type);\n } else {\n newValue.push(type);\n }\n newValue = JSON.stringify(newValue);\n }\n if (newValue !== value) {\n onItemChange(\n { id: item.id },\n { [config.key]: newValue },\n );\n }\n };\n };\n return (\n <div className=\"toolSection-orientation d-flex dir-row\">\n {options.map(option => {\n const key = option.value ? option.value : option;\n return (\n <button\n key={key}\n className={classNames(\n 'toolSection-orientationItem',\n 'd-flex',\n 'j-center',\n {\n isSelected: !multipleSelect\n ? exactValue === key\n : exactValue && exactValue.includes(key),\n },\n )}\n data-orientation={key}\n onClick={onClick(key)}\n type=\"button\"\n >\n {optionsDisplay ? optionsDisplay.map(display => (\n <Fragment key={display}>\n <span className=\"orientationIcon d-flex a-center j-center\">\n {option[display]}\n </span>\n <span>\n {key.charAt(0).toUpperCase() + key.slice(1)}\n </span>\n </Fragment>\n )) : option.label}\n </button>\n );\n })}\n </div>\n );\n};\n\nOrientation.propTypes = {\n config: PropTypes.shape({\n key: PropTypes.string,\n multipleSelect: PropTypes.bool,\n options: PropTypes.arrayOf(PropTypes.any),\n optionsDisplay: PropTypes.arrayOf(PropTypes.any),\n }),\n item: PropTypes.shape({\n id: PropTypes.string,\n }),\n onItemChange: PropTypes.func,\n value: PropTypes.string,\n};\n\nexport default memo(Orientation);\n"],"names":["Orientation","config","item","onItemChange","value","multipleSelect","options","optionsDisplay","exactValue","safeJSONParse","onClick","type","newValue","includes","filter","v","push","JSON","stringify","id","key","_jsx","map","option","classNames","isSelected","display","_jsxs","charAt","toUpperCase","slice","label","propTypes","PropTypes","shape","string","bool","arrayOf","any","func","memo"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayerItem.js","sources":["../../../../../src/components/Settings/PageLayer/LayerItem.js"],"sourcesContent":["import { memo, useCallback, useMemo } from 'react';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { capitalize, stripHTML } from '../../../utils/string';\nimport * as icons from '../../../utils/icons';\nimport { useTranslatedTexts } from '../../../utils/hooks';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\n\nconst DragHandle = () => (\n <span className=\"jfReportSelectOption-drag\">\n <icons.drag className=\"jfReportSVG icon-drag\" />\n </span>\n);\n\nconst LayerItem = ({\n icon: Icon,\n id: itemId,\n item,\n onItemChange,\n optionKey,\n}) => {\n const {\n attributes,\n isDragging,\n listeners,\n setNodeRef,\n transform,\n transition,\n } = useSortable({ id: itemId });\n\n const setActiveElements = useBuilderStore(state => state.setActiveElements);\n const dragStyle = useMemo(() => ({\n opacity: isDragging ? 0.5 : 1,\n transform: CSS.Transform.toString(transform),\n transition: transition,\n }), [transform, transition, isDragging]);\n\n const { id, isVisible } = item;\n const isVisib = isVisible !== undefined ? isVisible : true;\n\n const {\n CHART_ELEMENT,\n CLICK_TO_EDIT_TEXT,\n CLIK_TO_EDIT_HEADER,\n PAGE_ELEMENT,\n RECTANGLE,\n } = useTranslatedTexts();\n\n const handleItemLock = useCallback(({ target }) => {\n onItemChange({ id }, { isVisible: target.checked });\n }, [id, onItemChange]);\n\n const itemText = useMemo(() => {\n if (item.itemType === 'shapes') {\n return capitalize(item.shapeType || RECTANGLE);\n }\n if (item.itemType === 'chart') {\n return item.text || CHART_ELEMENT;\n }\n if (item.itemType === 'header') {\n return item.headerText || CLIK_TO_EDIT_HEADER;\n }\n if (item.itemType === 'text') {\n return item.value ? stripHTML(item.value) : CLICK_TO_EDIT_TEXT;\n }\n return capitalize(item.itemType || PAGE_ELEMENT);\n }, [\n item.itemType,\n item.shapeType,\n item.headerText,\n item.text,\n item.value,\n RECTANGLE,\n CHART_ELEMENT,\n CLIK_TO_EDIT_HEADER,\n CLICK_TO_EDIT_TEXT,\n PAGE_ELEMENT,\n ]);\n\n const handleClick = () => {\n setActiveElements(id, false);\n };\n\n const content = useMemo(() => (\n <div className=\"jfReportSelectOption\">\n <div className=\"jfReportSelectOption-icon\">\n <Icon />\n </div>\n <div className=\"jfReportSelectOption-text\">\n {itemText}\n </div>\n </div>\n ), [itemText]);\n\n return (\n <div\n ref={setNodeRef}\n className={classNames('jfReportSelectOption', {\n isSelected: isVisib,\n })}\n onClick={handleClick}\n onKeyDown={() => {}}\n style={dragStyle}\n {...attributes}\n {...listeners}\n >\n <div className=\"jfReportSelectOption-visibility\">\n <label\n className=\"jfReportChoice isLight hasNotText\"\n htmlFor={optionKey}\n >\n <input\n checked={isVisib}\n className=\"jfReportChoice-input\"\n data-option-key={optionKey}\n id={optionKey}\n onChange={handleItemLock}\n type=\"checkbox\"\n />\n <div className=\"jfReportChoice-labelIcon\">\n <div className=\"jfReportChoice-label checkbox\" />\n </div>\n </label>\n </div>\n <div\n className=\"jfReportSelectOption-name\"\n // style={{ backgroundColor: option.color }}\n >\n <DragHandle />\n {content}\n </div>\n </div>\n );\n};\n\nLayerItem.propTypes = {\n icon: PropTypes.elementType,\n id: PropTypes.string,\n item: PropTypes.shape({\n headerText: PropTypes.string,\n id: PropTypes.string,\n isVisible: PropTypes.bool,\n itemType: PropTypes.string,\n shapeType: PropTypes.string,\n text: PropTypes.string,\n value: PropTypes.string,\n }),\n onItemChange: PropTypes.func,\n optionKey: PropTypes.string,\n};\n\nexport default memo(LayerItem);\n"],"names":["DragHandle","_jsx","icons.drag","LayerItem","Icon","icon","itemId","id","item","onItemChange","optionKey","useSortable","attributes","isDragging","listeners","setNodeRef","transform","transition","setActiveElements","useBuilderStore","state","dragStyle","useMemo","opacity","CSS","Transform","toString","isVisible","isVisib","undefined","useTranslatedTexts","CHART_ELEMENT","CLICK_TO_EDIT_TEXT","CLIK_TO_EDIT_HEADER","PAGE_ELEMENT","RECTANGLE","handleItemLock","useCallback","target","checked","itemText","itemType","capitalize","shapeType","text","headerText","value","stripHTML","handleClick","content","_jsxs","classNames","isSelected","propTypes","PropTypes","elementType","string","shape","bool","func","memo"],"mappings":"
|
|
1
|
+
{"version":3,"file":"LayerItem.js","sources":["../../../../../src/components/Settings/PageLayer/LayerItem.js"],"sourcesContent":["import { memo, useCallback, useMemo } from 'react';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { capitalize, stripHTML } from '../../../utils/string';\nimport * as icons from '../../../utils/icons';\nimport { useTranslatedTexts } from '../../../utils/hooks';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\n\nconst DragHandle = () => (\n <span className=\"jfReportSelectOption-drag\">\n <icons.drag className=\"jfReportSVG icon-drag\" />\n </span>\n);\n\nconst LayerItem = ({\n icon: Icon,\n id: itemId,\n item,\n onItemChange,\n optionKey,\n}) => {\n const {\n attributes,\n isDragging,\n listeners,\n setNodeRef,\n transform,\n transition,\n } = useSortable({ id: itemId });\n\n const setActiveElements = useBuilderStore(state => state.setActiveElements);\n const dragStyle = useMemo(() => ({\n opacity: isDragging ? 0.5 : 1,\n transform: CSS.Transform.toString(transform),\n transition: transition,\n }), [transform, transition, isDragging]);\n\n const { id, isVisible } = item;\n const isVisib = isVisible !== undefined ? isVisible : true;\n\n const {\n CHART_ELEMENT,\n CLICK_TO_EDIT_TEXT,\n CLIK_TO_EDIT_HEADER,\n PAGE_ELEMENT,\n RECTANGLE,\n } = useTranslatedTexts();\n\n const handleItemLock = useCallback(({ target }) => {\n onItemChange({ id }, { isVisible: target.checked });\n }, [id, onItemChange]);\n\n const itemText = useMemo(() => {\n if (item.itemType === 'shapes') {\n return capitalize(item.shapeType || RECTANGLE);\n }\n if (item.itemType === 'chart') {\n return item.text || CHART_ELEMENT;\n }\n if (item.itemType === 'header') {\n return item.headerText || CLIK_TO_EDIT_HEADER;\n }\n if (item.itemType === 'text') {\n return item.value ? stripHTML(item.value) : CLICK_TO_EDIT_TEXT;\n }\n return capitalize(item.itemType || PAGE_ELEMENT);\n }, [\n item.itemType,\n item.shapeType,\n item.headerText,\n item.text,\n item.value,\n RECTANGLE,\n CHART_ELEMENT,\n CLIK_TO_EDIT_HEADER,\n CLICK_TO_EDIT_TEXT,\n PAGE_ELEMENT,\n ]);\n\n const handleClick = () => {\n setActiveElements(id, false);\n };\n\n const content = useMemo(() => (\n <div className=\"jfReportSelectOption\">\n <div className=\"jfReportSelectOption-icon\">\n <Icon />\n </div>\n <div className=\"jfReportSelectOption-text\">\n {itemText}\n </div>\n </div>\n ), [itemText]);\n\n return (\n <div\n ref={setNodeRef}\n className={classNames('jfReportSelectOption', {\n isSelected: isVisib,\n })}\n onClick={handleClick}\n onKeyDown={() => {}}\n style={dragStyle}\n {...attributes}\n {...listeners}\n >\n <div className=\"jfReportSelectOption-visibility\">\n <label\n className=\"jfReportChoice isLight hasNotText\"\n htmlFor={optionKey}\n >\n <input\n checked={isVisib}\n className=\"jfReportChoice-input\"\n data-option-key={optionKey}\n id={optionKey}\n onChange={handleItemLock}\n type=\"checkbox\"\n />\n <div className=\"jfReportChoice-labelIcon\">\n <div className=\"jfReportChoice-label checkbox\" />\n </div>\n </label>\n </div>\n <div\n className=\"jfReportSelectOption-name\"\n // style={{ backgroundColor: option.color }}\n >\n <DragHandle />\n {content}\n </div>\n </div>\n );\n};\n\nLayerItem.propTypes = {\n icon: PropTypes.elementType,\n id: PropTypes.string,\n item: PropTypes.shape({\n headerText: PropTypes.string,\n id: PropTypes.string,\n isVisible: PropTypes.bool,\n itemType: PropTypes.string,\n shapeType: PropTypes.string,\n text: PropTypes.string,\n value: PropTypes.string,\n }),\n onItemChange: PropTypes.func,\n optionKey: PropTypes.string,\n};\n\nexport default memo(LayerItem);\n"],"names":["DragHandle","_jsx","icons.drag","LayerItem","Icon","icon","itemId","id","item","onItemChange","optionKey","useSortable","attributes","isDragging","listeners","setNodeRef","transform","transition","setActiveElements","useBuilderStore","state","dragStyle","useMemo","opacity","CSS","Transform","toString","isVisible","isVisib","undefined","useTranslatedTexts","CHART_ELEMENT","CLICK_TO_EDIT_TEXT","CLIK_TO_EDIT_HEADER","PAGE_ELEMENT","RECTANGLE","handleItemLock","useCallback","target","checked","itemText","itemType","capitalize","shapeType","text","headerText","value","stripHTML","handleClick","content","_jsxs","classNames","isSelected","propTypes","PropTypes","elementType","string","shape","bool","func","memo"],"mappings":"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"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import 'core-js/modules/es.array.find.js';
|
|
2
|
-
import 'core-js/modules/es.array.find-index.js';
|
|
3
|
-
import 'core-js/modules/es.array.map.js';
|
|
4
1
|
import { useState, useCallback, useMemo } from 'react';
|
|
5
2
|
import PropTypes from 'prop-types';
|
|
6
3
|
import { useSensors, useSensor, PointerSensor, KeyboardSensor, DndContext, closestCenter } from '@dnd-kit/core';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageLayer.js","sources":["../../../../../src/components/Settings/PageLayer/PageLayer.js"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n DndContext, closestCenter, KeyboardSensor, PointerSensor, useSensor, useSensors,\n} from '@dnd-kit/core';\nimport { SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { arrayMove } from '../../../utils/functions';\nimport LayerItem from './LayerItem';\nimport LayerDragOverlay from './LayerDragOverlay';\nimport { elementIcons } from '../../../constants/elementIcons';\nimport { useTranslatedTexts } from '../../../utils/hooks';\n\nconst PageLayer = ({\n config = {},\n item: page = {},\n onItemChange = () => {},\n}) => {\n const [activeId, setActiveId] = useState(null);\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 0,\n },\n }),\n useSensor(KeyboardSensor),\n );\n\n const handleDragStart = useCallback(event => {\n setActiveId(event.active.id);\n }, []);\n\n const handleDragEnd = useCallback(event => {\n const { active, over } = event;\n setActiveId(null);\n\n if (over && active.id !== over.id) {\n const reversedItems = [...page.items].reverse();\n const oldIndex = reversedItems.findIndex(item => item.id === active.id);\n const newIndex = reversedItems.findIndex(item => item.id === over.id);\n\n if (oldIndex !== -1 && newIndex !== -1) {\n const newItems = arrayMove(reversedItems, oldIndex, newIndex).map(i => i.id);\n onItemChange({\n id: page.id,\n }, { items: JSON.stringify([...newItems].reverse()) });\n }\n }\n }, [page.id, page.items, onItemChange]);\n\n const handleDragCancel = useCallback(() => {\n setActiveId(null);\n }, []);\n\n const { NO_ELEMENT_IN_PAGE } = useTranslatedTexts();\n\n const items = useMemo(() => {\n if (!page.items || page.items.length === 0) return [];\n return [...page.items].reverse().map(item => item.id);\n }, [page.items]);\n\n const activeItemData = useMemo(() => {\n if (!activeId || !page.items) return null;\n\n const reversedItems = [...page.items].reverse();\n const activeItem = reversedItems.find(item => item.id === activeId);\n if (!activeItem) return null;\n\n const icon = elementIcons[activeItem.itemType]\n ? elementIcons[activeItem.itemType]\n : elementIcons.default;\n\n return {\n icon,\n item: activeItem,\n };\n }, [activeId, page.items]);\n\n return (\n page.items && page.items.length > 0 ? (\n <DndContext\n collisionDetection={closestCenter}\n onDragCancel={handleDragCancel}\n onDragEnd={handleDragEnd}\n onDragStart={handleDragStart}\n sensors={sensors}\n >\n <SortableContext\n items={items}\n strategy={verticalListSortingStrategy}\n >\n <ul className=\"jfReportSelectOption-list withDnd forPageLayer\">\n {[...page.items].reverse().map((item, index) => {\n const icon = elementIcons[item.itemType]\n ? elementIcons[item.itemType]\n : elementIcons.default;\n return (\n <LayerItem\n key={item.id}\n icon={icon}\n id={item.id}\n index={index}\n item={item}\n onItemChange={config.updater}\n optionKey={index}\n />\n );\n })}\n </ul>\n </SortableContext>\n {activeItemData && <LayerDragOverlay activeItemData={activeItemData} />}\n </DndContext>\n ) : (\n <div className=\"toolSection-notifier\">\n {NO_ELEMENT_IN_PAGE}\n </div>\n )\n );\n};\n\nPageLayer.propTypes = {\n config: PropTypes.shape({\n updater: PropTypes.func,\n }),\n item: PropTypes.shape({\n id: PropTypes.string,\n isVisible: PropTypes.bool,\n itemType: PropTypes.string,\n }),\n onItemChange: PropTypes.func,\n};\n\nexport default PageLayer;\n"],"names":["PageLayer","config","item","page","onItemChange","useState","activeId","setActiveId","sensors","useSensors","useSensor","PointerSensor","activationConstraint","distance","KeyboardSensor","handleDragStart","useCallback","event","active","id","handleDragEnd","over","reversedItems","items","reverse","oldIndex","findIndex","newIndex","newItems","arrayMove","map","i","JSON","stringify","handleDragCancel","useTranslatedTexts","NO_ELEMENT_IN_PAGE","useMemo","length","activeItemData","activeItem","find","icon","elementIcons","itemType","default","_jsxs","closestCenter","_jsx","verticalListSortingStrategy","index","updater","propTypes","PropTypes","shape","func","string","isVisible","bool"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PageLayer.js","sources":["../../../../../src/components/Settings/PageLayer/PageLayer.js"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n DndContext, closestCenter, KeyboardSensor, PointerSensor, useSensor, useSensors,\n} from '@dnd-kit/core';\nimport { SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { arrayMove } from '../../../utils/functions';\nimport LayerItem from './LayerItem';\nimport LayerDragOverlay from './LayerDragOverlay';\nimport { elementIcons } from '../../../constants/elementIcons';\nimport { useTranslatedTexts } from '../../../utils/hooks';\n\nconst PageLayer = ({\n config = {},\n item: page = {},\n onItemChange = () => {},\n}) => {\n const [activeId, setActiveId] = useState(null);\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 0,\n },\n }),\n useSensor(KeyboardSensor),\n );\n\n const handleDragStart = useCallback(event => {\n setActiveId(event.active.id);\n }, []);\n\n const handleDragEnd = useCallback(event => {\n const { active, over } = event;\n setActiveId(null);\n\n if (over && active.id !== over.id) {\n const reversedItems = [...page.items].reverse();\n const oldIndex = reversedItems.findIndex(item => item.id === active.id);\n const newIndex = reversedItems.findIndex(item => item.id === over.id);\n\n if (oldIndex !== -1 && newIndex !== -1) {\n const newItems = arrayMove(reversedItems, oldIndex, newIndex).map(i => i.id);\n onItemChange({\n id: page.id,\n }, { items: JSON.stringify([...newItems].reverse()) });\n }\n }\n }, [page.id, page.items, onItemChange]);\n\n const handleDragCancel = useCallback(() => {\n setActiveId(null);\n }, []);\n\n const { NO_ELEMENT_IN_PAGE } = useTranslatedTexts();\n\n const items = useMemo(() => {\n if (!page.items || page.items.length === 0) return [];\n return [...page.items].reverse().map(item => item.id);\n }, [page.items]);\n\n const activeItemData = useMemo(() => {\n if (!activeId || !page.items) return null;\n\n const reversedItems = [...page.items].reverse();\n const activeItem = reversedItems.find(item => item.id === activeId);\n if (!activeItem) return null;\n\n const icon = elementIcons[activeItem.itemType]\n ? elementIcons[activeItem.itemType]\n : elementIcons.default;\n\n return {\n icon,\n item: activeItem,\n };\n }, [activeId, page.items]);\n\n return (\n page.items && page.items.length > 0 ? (\n <DndContext\n collisionDetection={closestCenter}\n onDragCancel={handleDragCancel}\n onDragEnd={handleDragEnd}\n onDragStart={handleDragStart}\n sensors={sensors}\n >\n <SortableContext\n items={items}\n strategy={verticalListSortingStrategy}\n >\n <ul className=\"jfReportSelectOption-list withDnd forPageLayer\">\n {[...page.items].reverse().map((item, index) => {\n const icon = elementIcons[item.itemType]\n ? elementIcons[item.itemType]\n : elementIcons.default;\n return (\n <LayerItem\n key={item.id}\n icon={icon}\n id={item.id}\n index={index}\n item={item}\n onItemChange={config.updater}\n optionKey={index}\n />\n );\n })}\n </ul>\n </SortableContext>\n {activeItemData && <LayerDragOverlay activeItemData={activeItemData} />}\n </DndContext>\n ) : (\n <div className=\"toolSection-notifier\">\n {NO_ELEMENT_IN_PAGE}\n </div>\n )\n );\n};\n\nPageLayer.propTypes = {\n config: PropTypes.shape({\n updater: PropTypes.func,\n }),\n item: PropTypes.shape({\n id: PropTypes.string,\n isVisible: PropTypes.bool,\n itemType: PropTypes.string,\n }),\n onItemChange: PropTypes.func,\n};\n\nexport default PageLayer;\n"],"names":["PageLayer","config","item","page","onItemChange","useState","activeId","setActiveId","sensors","useSensors","useSensor","PointerSensor","activationConstraint","distance","KeyboardSensor","handleDragStart","useCallback","event","active","id","handleDragEnd","over","reversedItems","items","reverse","oldIndex","findIndex","newIndex","newItems","arrayMove","map","i","JSON","stringify","handleDragCancel","useTranslatedTexts","NO_ELEMENT_IN_PAGE","useMemo","length","activeItemData","activeItem","find","icon","elementIcons","itemType","default","_jsxs","closestCenter","_jsx","verticalListSortingStrategy","index","updater","propTypes","PropTypes","shape","func","string","isVisible","bool"],"mappings":"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"}
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import 'core-js/modules/es.array.filter.js';
|
|
2
|
-
import 'core-js/modules/es.array.includes.js';
|
|
3
|
-
import 'core-js/modules/es.array.map.js';
|
|
4
|
-
import 'core-js/modules/es.string.includes.js';
|
|
5
1
|
import { memo, Fragment } from 'react';
|
|
6
2
|
import PropTypes from 'prop-types';
|
|
7
3
|
import classNames from 'classnames';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentControl.js","sources":["../../../../src/components/Settings/SegmentControl.js"],"sourcesContent":["import { memo, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { safeJSONParse } from '../../utils/functions';\n\nconst SegmentControl = ({\n config = [],\n item = {},\n onItemChange = () => {},\n value = '',\n}) => {\n const { multipleSelect, options, optionsDisplay } = config;\n const exactValue = !multipleSelect ? value : safeJSONParse(value, []);\n const onClick = type => {\n return () => {\n let newValue = type;\n if (multipleSelect) {\n newValue = [...exactValue];\n if (exactValue.includes(type)) {\n newValue = newValue.filter(v => v !== type);\n } else {\n newValue.push(type);\n }\n newValue = JSON.stringify(newValue);\n }\n if (newValue !== value) {\n onItemChange(\n { id: item.id },\n { [config.key]: newValue },\n );\n }\n };\n };\n return (\n <div className=\"toolSection-list d-flex dir-row forSegments\">\n {options.map(option => {\n const key = option.value ? option.value : option;\n return (\n <button\n key={key}\n className={classNames(\n 'toolSection-listItem',\n 'd-flex',\n 'j-center',\n {\n isSelected: !multipleSelect\n ? exactValue === key\n : exactValue && exactValue.includes(key),\n },\n )}\n onClick={onClick(key)}\n type=\"button\"\n >\n {optionsDisplay ? optionsDisplay.map(display => (\n <Fragment key={display}>\n {option[display]}\n </Fragment>\n )) : option.label}\n </button>\n );\n })}\n </div>\n );\n};\n\nSegmentControl.propTypes = {\n config: PropTypes.shape({\n key: PropTypes.string,\n multipleSelect: PropTypes.bool,\n options: PropTypes.arrayOf(PropTypes.any),\n optionsDisplay: PropTypes.arrayOf(PropTypes.any),\n }),\n item: PropTypes.shape({\n id: PropTypes.string,\n }),\n onItemChange: PropTypes.func,\n value: PropTypes.string,\n};\n\nexport default memo(SegmentControl);\n"],"names":["SegmentControl","config","item","onItemChange","value","multipleSelect","options","optionsDisplay","exactValue","safeJSONParse","onClick","type","newValue","includes","filter","v","push","JSON","stringify","id","key","_jsx","map","option","classNames","isSelected","display","label","propTypes","PropTypes","shape","string","bool","arrayOf","any","func","memo"],"mappings":"
|
|
1
|
+
{"version":3,"file":"SegmentControl.js","sources":["../../../../src/components/Settings/SegmentControl.js"],"sourcesContent":["import { memo, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { safeJSONParse } from '../../utils/functions';\n\nconst SegmentControl = ({\n config = [],\n item = {},\n onItemChange = () => {},\n value = '',\n}) => {\n const { multipleSelect, options, optionsDisplay } = config;\n const exactValue = !multipleSelect ? value : safeJSONParse(value, []);\n const onClick = type => {\n return () => {\n let newValue = type;\n if (multipleSelect) {\n newValue = [...exactValue];\n if (exactValue.includes(type)) {\n newValue = newValue.filter(v => v !== type);\n } else {\n newValue.push(type);\n }\n newValue = JSON.stringify(newValue);\n }\n if (newValue !== value) {\n onItemChange(\n { id: item.id },\n { [config.key]: newValue },\n );\n }\n };\n };\n return (\n <div className=\"toolSection-list d-flex dir-row forSegments\">\n {options.map(option => {\n const key = option.value ? option.value : option;\n return (\n <button\n key={key}\n className={classNames(\n 'toolSection-listItem',\n 'd-flex',\n 'j-center',\n {\n isSelected: !multipleSelect\n ? exactValue === key\n : exactValue && exactValue.includes(key),\n },\n )}\n onClick={onClick(key)}\n type=\"button\"\n >\n {optionsDisplay ? optionsDisplay.map(display => (\n <Fragment key={display}>\n {option[display]}\n </Fragment>\n )) : option.label}\n </button>\n );\n })}\n </div>\n );\n};\n\nSegmentControl.propTypes = {\n config: PropTypes.shape({\n key: PropTypes.string,\n multipleSelect: PropTypes.bool,\n options: PropTypes.arrayOf(PropTypes.any),\n optionsDisplay: PropTypes.arrayOf(PropTypes.any),\n }),\n item: PropTypes.shape({\n id: PropTypes.string,\n }),\n onItemChange: PropTypes.func,\n value: PropTypes.string,\n};\n\nexport default memo(SegmentControl);\n"],"names":["SegmentControl","config","item","onItemChange","value","multipleSelect","options","optionsDisplay","exactValue","safeJSONParse","onClick","type","newValue","includes","filter","v","push","JSON","stringify","id","key","_jsx","map","option","classNames","isSelected","display","label","propTypes","PropTypes","shape","string","bool","arrayOf","any","func","memo"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectBox.js","sources":["../../../../src/components/Settings/SelectBox.js"],"sourcesContent":["import { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport * as icons from '../../utils/icons';\n\nconst SelectBox = ({\n config = [],\n item = {},\n onItemChange = () => {},\n value = '',\n}) => {\n const handleSelection = newValue => () => {\n if (value !== newValue) {\n onItemChange(\n { id: item.id },\n { [config.key]: newValue },\n );\n }\n };\n const { options } = config;\n\n return (\n <div className=\"toolSection-list withIcons bigList forShapes d-flex dir-row f-wrap\">\n {options.map(option => {\n const OptionIcon = option.icon\n ? option.icon\n : icons[option.name] || icons.shapes;\n\n return (\n <button\n key={option.name}\n className={classNames(\n 'toolSection-listItem',\n 'd-flex a-center',\n 'f-width',\n { isSelected: option.name === value },\n )}\n onClick={handleSelection(option.name)}\n type=\"button\"\n >\n <span className=\"d-flex j-center a-center\">\n <OptionIcon className=\"jfReportSVG\" />\n </span>\n <span className=\"toolSection-listItemName d-flex j-between a-center\">\n <span>{option.title}</span>\n </span>\n </button>\n );\n })}\n </div>\n );\n};\n\nSelectBox.propTypes = {\n config: PropTypes.shape({\n key: PropTypes.string,\n options: PropTypes.arrayOf(PropTypes.any),\n }),\n item: PropTypes.shape({\n id: PropTypes.string,\n }),\n onItemChange: PropTypes.func,\n value: PropTypes.string,\n};\n\nexport default memo(SelectBox);\n"],"names":["SelectBox","config","item","onItemChange","value","handleSelection","newValue","id","key","options","_jsx","map","option","OptionIcon","icon","icons","name","_jsxs","classNames","isSelected","title","propTypes","PropTypes","shape","string","arrayOf","any","func","memo"],"mappings":"
|
|
1
|
+
{"version":3,"file":"SelectBox.js","sources":["../../../../src/components/Settings/SelectBox.js"],"sourcesContent":["import { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport * as icons from '../../utils/icons';\n\nconst SelectBox = ({\n config = [],\n item = {},\n onItemChange = () => {},\n value = '',\n}) => {\n const handleSelection = newValue => () => {\n if (value !== newValue) {\n onItemChange(\n { id: item.id },\n { [config.key]: newValue },\n );\n }\n };\n const { options } = config;\n\n return (\n <div className=\"toolSection-list withIcons bigList forShapes d-flex dir-row f-wrap\">\n {options.map(option => {\n const OptionIcon = option.icon\n ? option.icon\n : icons[option.name] || icons.shapes;\n\n return (\n <button\n key={option.name}\n className={classNames(\n 'toolSection-listItem',\n 'd-flex a-center',\n 'f-width',\n { isSelected: option.name === value },\n )}\n onClick={handleSelection(option.name)}\n type=\"button\"\n >\n <span className=\"d-flex j-center a-center\">\n <OptionIcon className=\"jfReportSVG\" />\n </span>\n <span className=\"toolSection-listItemName d-flex j-between a-center\">\n <span>{option.title}</span>\n </span>\n </button>\n );\n })}\n </div>\n );\n};\n\nSelectBox.propTypes = {\n config: PropTypes.shape({\n key: PropTypes.string,\n options: PropTypes.arrayOf(PropTypes.any),\n }),\n item: PropTypes.shape({\n id: PropTypes.string,\n }),\n onItemChange: PropTypes.func,\n value: PropTypes.string,\n};\n\nexport default memo(SelectBox);\n"],"names":["SelectBox","config","item","onItemChange","value","handleSelection","newValue","id","key","options","_jsx","map","option","OptionIcon","icon","icons","name","_jsxs","classNames","isSelected","title","propTypes","PropTypes","shape","string","arrayOf","any","func","memo"],"mappings":";;;;;;;;;AAKA,IAAMA,SAAS,GAAG,SAAZA,SAAY,OAKZ;AAAA,yBAJJC,MAII;AAAA,MAJJA,MAII,4BAJK,EAIL;AAAA,uBAHJC,IAGI;AAAA,MAHJA,IAGI,0BAHG,EAGH;AAAA,+BAFJC,YAEI;AAAA,MAFJA,YAEI,kCAFW,YAAM,EAEjB;AAAA,wBADJC,KACI;AAAA,MADJA,KACI,2BADI,EACJ;;AACJ,MAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAAAC,QAAQ;AAAA,WAAI,YAAM;AACxC,UAAIF,KAAK,KAAKE,QAAd,EAAwB;AACtBH,QAAAA,YAAY,CACV;AAAEI,UAAAA,EAAE,EAAEL,IAAI,CAACK;AAAX,SADU,sBAEPN,MAAM,CAACO,GAFA,EAEMF,QAFN,EAAZ;AAID;AACF,KAP+B;AAAA,GAAhC;;AAQA,MAAQG,OAAR,GAAoBR,MAApB,CAAQQ,OAAR;AAEA,sBACEC;AAAK,IAAA,SAAS,EAAC,oEAAf;AAAA,cACGD,OAAO,CAACE,GAAR,CAAY,UAAAC,MAAM,EAAI;AACrB,UAAMC,UAAU,GAAGD,MAAM,CAACE,IAAP,GACfF,MAAM,CAACE,IADQ,GAEfC,KAAK,CAACH,MAAM,CAACI,IAAR,CAAL,IAAsBD,SAF1B;AAIA,0BACEE;AAEE,QAAA,SAAS,EAAEC,UAAU,CACnB,sBADmB,EAEnB,iBAFmB,EAGnB,SAHmB,EAInB;AAAEC,UAAAA,UAAU,EAAEP,MAAM,CAACI,IAAP,KAAgBZ;AAA9B,SAJmB,CAFvB;AAQE,QAAA,OAAO,EAAEC,eAAe,CAACO,MAAM,CAACI,IAAR,CAR1B;AASE,QAAA,IAAI,EAAC,QATP;AAAA,gCAWEN;AAAM,UAAA,SAAS,EAAC,0BAAhB;AAAA,iCACEA,IAAC,UAAD;AAAY,YAAA,SAAS,EAAC;AAAtB;AADF,UAXF,eAcEA;AAAM,UAAA,SAAS,EAAC,oDAAhB;AAAA,iCACEA;AAAA,sBAAOE,MAAM,CAACQ;AAAd;AADF,UAdF;AAAA,SACOR,MAAM,CAACI,IADd,CADF;AAoBD,KAzBA;AADH,IADF;AA8BD,CA9CD;;AAgDAhB,SAAS,CAACqB,SAAV,GAAsB;AACpBpB,EAAAA,MAAM,EAAEqB,SAAS,CAACC,KAAV,CAAgB;AACtBf,IAAAA,GAAG,EAAEc,SAAS,CAACE,MADO;AAEtBf,IAAAA,OAAO,EAAEa,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACI,GAA5B;AAFa,GAAhB,CADY;AAKpBxB,EAAAA,IAAI,EAAEoB,SAAS,CAACC,KAAV,CAAgB;AACpBhB,IAAAA,EAAE,EAAEe,SAAS,CAACE;AADM,GAAhB,CALc;AAQpBrB,EAAAA,YAAY,EAAEmB,SAAS,CAACK,IARJ;AASpBvB,EAAAA,KAAK,EAAEkB,SAAS,CAACE;AATG,CAAtB;AAYA,+BAAeI,IAAI,CAAC5B,SAAD,CAAnB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SizeSettings.js","sources":["../../../../src/components/Settings/SizeSettings.js"],"sourcesContent":["import { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { getImageSizes, roundForDecimalPart } from '../../utils/functions';\nimport { useTranslatedTexts } from '../../utils/hooks';\nimport * as icons from '../../utils/icons';\n\nconst SizeSettings = ({\n item = {},\n onItemChange = () => {},\n}) => {\n const initialAspect = useRef();\n const [stackSize, setStackSize] = useState({ height: item.height, width: item.width });\n const [aspectLock, setAspectLock] = useState(true);\n const imageRefForMeta = useRef(null);\n const { HEIGHT, ORIGINAL_SIZE, WIDTH } = useTranslatedTexts();\n\n useEffect(() => {\n setStackSize({ height: item.height, width: item.width });\n }, [item.height, item.width]);\n\n useEffect(() => {\n if (aspectLock) {\n initialAspect.current = stackSize.width / stackSize.height;\n }\n }, [aspectLock, stackSize.width, stackSize.height]);\n\n const sizeSetter = ({ height, width }) => {\n const sizes = { height: Number(height), width: Number(width) };\n setStackSize(sizes);\n onItemChange({ id: item.id }, sizes);\n };\n\n const sizeSetterHelper = ({ height, width }) => {\n let exactWidth = Number(width);\n let exactHeight = Number(height);\n if (aspectLock) {\n if (item.width !== stackSize.width) {\n exactHeight = stackSize.width / initialAspect.current;\n } else {\n exactWidth = stackSize.height * initialAspect.current;\n }\n }\n\n sizeSetter({ height: Math.max(exactHeight, 5), width: Math.max(exactWidth, 5) });\n };\n\n const handleBlur = () => {\n sizeSetterHelper(stackSize);\n };\n\n const handleChangeSize = (type = 'width', prevValue) => e => {\n if (e.stopPropagation) e.stopPropagation();\n\n const { value } = e.target;\n if (Number(value) !== Number(prevValue)) {\n setStackSize({ ...stackSize, [type]: Number(value) || 0 });\n }\n };\n\n const setOriginalSizes = () => {\n // For Shapes\n if (item.shapeType) {\n return sizeSetter({\n height: 200,\n width: 200,\n });\n }\n // For Images\n if (!imageRefForMeta.current) {\n getImageSizes(item.url, (imageWidth, imageHeight) => {\n imageRefForMeta.current = {\n imageHeight,\n imageWidth,\n };\n sizeSetter({\n height: imageHeight,\n width: imageWidth,\n });\n });\n } else {\n const { imageHeight, imageWidth } = imageRefForMeta.current;\n sizeSetter({\n height: imageHeight,\n width: imageWidth,\n });\n }\n };\n\n const handleKeyDown = (type, currValue) => event => {\n event.stopPropagation();\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.preventDefault();\n const ref = event.shiftKey ? 10 : 1;\n const diff = event.key === 'ArrowUp' ? ref : -ref;\n handleChangeSize(type, currValue)({\n target: {\n value: Number(currValue) + diff,\n },\n });\n } else if (event.key === 'Tab') {\n event.preventDefault();\n const input = type === 'width' ? 'height-input' : 'width-input';\n document.getElementById(input).focus();\n document.getElementById(input).select();\n } else if (event.key === 'Enter') {\n sizeSetterHelper(stackSize);\n }\n };\n\n return (\n <>\n <div className=\"toolSection-wrapper d-flex\">\n <div className=\"toolSection-subItem\">\n <label\n className=\"d-flex dir-col hasUnit isPixel\"\n htmlFor=\"width-input\"\n >\n <input\n className=\"toolSection-input\"\n id=\"width-input\"\n onBlur={handleBlur}\n onChange={handleChangeSize('width', stackSize.width)}\n onKeyDown={handleKeyDown('width', stackSize.width)}\n pattern=\"[0-9]*\"\n tabIndex={0}\n value={roundForDecimalPart(stackSize.width)}\n />\n <span className=\"toolSection-subLabel\">{WIDTH}</span>\n </label>\n </div>\n <div className=\"toolSection-subItem hasAspect\">\n <button\n className=\"p-relative forAspect\"\n onClick={() => setAspectLock(!aspectLock)}\n type=\"button\"\n >\n {aspectLock\n ? <icons.lock className=\"jfReportSVG icon-aspectLock\" />\n : <icons.unlock className=\"jfReportSVG icon-aspectUnlock\" />}\n </button>\n </div>\n <div className=\"toolSection-subItem\">\n <label\n className=\"d-flex dir-col hasUnit isPixel\"\n htmlFor=\"width-input\"\n >\n <input\n className=\"toolSection-input\"\n id=\"height-input\"\n onBlur={handleBlur}\n onChange={handleChangeSize('height', stackSize.height)}\n onKeyDown={handleKeyDown('height', stackSize.height)}\n pattern=\"[0-9]*\"\n value={roundForDecimalPart(stackSize.height)}\n />\n <span className=\"toolSection-subLabel\">{HEIGHT}</span>\n </label>\n </div>\n </div>\n {(item.url || item.shapeType)\n && (\n <div className=\"toolSection-wrapper\">\n <button\n className=\"jfReportButton forOptions forDimension f-width\"\n onClick={setOriginalSizes}\n type=\"button\"\n >\n {ORIGINAL_SIZE}\n </button>\n </div>\n )}\n </>\n );\n};\n\nSizeSettings.propTypes = {\n item: PropTypes.shape({\n height: PropTypes.number,\n id: PropTypes.string,\n shapeType: PropTypes.string,\n url: PropTypes.string,\n width: PropTypes.number,\n }),\n onItemChange: PropTypes.func,\n};\n\nexport default SizeSettings;\n"],"names":["SizeSettings","item","onItemChange","initialAspect","useRef","useState","height","width","stackSize","setStackSize","aspectLock","setAspectLock","imageRefForMeta","useTranslatedTexts","HEIGHT","ORIGINAL_SIZE","WIDTH","useEffect","current","sizeSetter","sizes","Number","id","sizeSetterHelper","exactWidth","exactHeight","Math","max","handleBlur","handleChangeSize","type","prevValue","e","stopPropagation","value","target","setOriginalSizes","shapeType","getImageSizes","url","imageWidth","imageHeight","handleKeyDown","currValue","event","key","preventDefault","ref","shiftKey","diff","input","document","getElementById","focus","select","_jsxs","_jsx","roundForDecimalPart","icons.lock","icons.unlock","propTypes","PropTypes","shape","number","string","func"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SizeSettings.js","sources":["../../../../src/components/Settings/SizeSettings.js"],"sourcesContent":["import { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { getImageSizes, roundForDecimalPart } from '../../utils/functions';\nimport { useTranslatedTexts } from '../../utils/hooks';\nimport * as icons from '../../utils/icons';\n\nconst SizeSettings = ({\n item = {},\n onItemChange = () => {},\n}) => {\n const initialAspect = useRef();\n const [stackSize, setStackSize] = useState({ height: item.height, width: item.width });\n const [aspectLock, setAspectLock] = useState(true);\n const imageRefForMeta = useRef(null);\n const { HEIGHT, ORIGINAL_SIZE, WIDTH } = useTranslatedTexts();\n\n useEffect(() => {\n setStackSize({ height: item.height, width: item.width });\n }, [item.height, item.width]);\n\n useEffect(() => {\n if (aspectLock) {\n initialAspect.current = stackSize.width / stackSize.height;\n }\n }, [aspectLock, stackSize.width, stackSize.height]);\n\n const sizeSetter = ({ height, width }) => {\n const sizes = { height: Number(height), width: Number(width) };\n setStackSize(sizes);\n onItemChange({ id: item.id }, sizes);\n };\n\n const sizeSetterHelper = ({ height, width }) => {\n let exactWidth = Number(width);\n let exactHeight = Number(height);\n if (aspectLock) {\n if (item.width !== stackSize.width) {\n exactHeight = stackSize.width / initialAspect.current;\n } else {\n exactWidth = stackSize.height * initialAspect.current;\n }\n }\n\n sizeSetter({ height: Math.max(exactHeight, 5), width: Math.max(exactWidth, 5) });\n };\n\n const handleBlur = () => {\n sizeSetterHelper(stackSize);\n };\n\n const handleChangeSize = (type = 'width', prevValue) => e => {\n if (e.stopPropagation) e.stopPropagation();\n\n const { value } = e.target;\n if (Number(value) !== Number(prevValue)) {\n setStackSize({ ...stackSize, [type]: Number(value) || 0 });\n }\n };\n\n const setOriginalSizes = () => {\n // For Shapes\n if (item.shapeType) {\n return sizeSetter({\n height: 200,\n width: 200,\n });\n }\n // For Images\n if (!imageRefForMeta.current) {\n getImageSizes(item.url, (imageWidth, imageHeight) => {\n imageRefForMeta.current = {\n imageHeight,\n imageWidth,\n };\n sizeSetter({\n height: imageHeight,\n width: imageWidth,\n });\n });\n } else {\n const { imageHeight, imageWidth } = imageRefForMeta.current;\n sizeSetter({\n height: imageHeight,\n width: imageWidth,\n });\n }\n };\n\n const handleKeyDown = (type, currValue) => event => {\n event.stopPropagation();\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.preventDefault();\n const ref = event.shiftKey ? 10 : 1;\n const diff = event.key === 'ArrowUp' ? ref : -ref;\n handleChangeSize(type, currValue)({\n target: {\n value: Number(currValue) + diff,\n },\n });\n } else if (event.key === 'Tab') {\n event.preventDefault();\n const input = type === 'width' ? 'height-input' : 'width-input';\n document.getElementById(input).focus();\n document.getElementById(input).select();\n } else if (event.key === 'Enter') {\n sizeSetterHelper(stackSize);\n }\n };\n\n return (\n <>\n <div className=\"toolSection-wrapper d-flex\">\n <div className=\"toolSection-subItem\">\n <label\n className=\"d-flex dir-col hasUnit isPixel\"\n htmlFor=\"width-input\"\n >\n <input\n className=\"toolSection-input\"\n id=\"width-input\"\n onBlur={handleBlur}\n onChange={handleChangeSize('width', stackSize.width)}\n onKeyDown={handleKeyDown('width', stackSize.width)}\n pattern=\"[0-9]*\"\n tabIndex={0}\n value={roundForDecimalPart(stackSize.width)}\n />\n <span className=\"toolSection-subLabel\">{WIDTH}</span>\n </label>\n </div>\n <div className=\"toolSection-subItem hasAspect\">\n <button\n className=\"p-relative forAspect\"\n onClick={() => setAspectLock(!aspectLock)}\n type=\"button\"\n >\n {aspectLock\n ? <icons.lock className=\"jfReportSVG icon-aspectLock\" />\n : <icons.unlock className=\"jfReportSVG icon-aspectUnlock\" />}\n </button>\n </div>\n <div className=\"toolSection-subItem\">\n <label\n className=\"d-flex dir-col hasUnit isPixel\"\n htmlFor=\"width-input\"\n >\n <input\n className=\"toolSection-input\"\n id=\"height-input\"\n onBlur={handleBlur}\n onChange={handleChangeSize('height', stackSize.height)}\n onKeyDown={handleKeyDown('height', stackSize.height)}\n pattern=\"[0-9]*\"\n value={roundForDecimalPart(stackSize.height)}\n />\n <span className=\"toolSection-subLabel\">{HEIGHT}</span>\n </label>\n </div>\n </div>\n {(item.url || item.shapeType)\n && (\n <div className=\"toolSection-wrapper\">\n <button\n className=\"jfReportButton forOptions forDimension f-width\"\n onClick={setOriginalSizes}\n type=\"button\"\n >\n {ORIGINAL_SIZE}\n </button>\n </div>\n )}\n </>\n );\n};\n\nSizeSettings.propTypes = {\n item: PropTypes.shape({\n height: PropTypes.number,\n id: PropTypes.string,\n shapeType: PropTypes.string,\n url: PropTypes.string,\n width: PropTypes.number,\n }),\n onItemChange: PropTypes.func,\n};\n\nexport default SizeSettings;\n"],"names":["SizeSettings","item","onItemChange","initialAspect","useRef","useState","height","width","stackSize","setStackSize","aspectLock","setAspectLock","imageRefForMeta","useTranslatedTexts","HEIGHT","ORIGINAL_SIZE","WIDTH","useEffect","current","sizeSetter","sizes","Number","id","sizeSetterHelper","exactWidth","exactHeight","Math","max","handleBlur","handleChangeSize","type","prevValue","e","stopPropagation","value","target","setOriginalSizes","shapeType","getImageSizes","url","imageWidth","imageHeight","handleKeyDown","currValue","event","key","preventDefault","ref","shiftKey","diff","input","document","getElementById","focus","select","_jsxs","_jsx","roundForDecimalPart","icons.lock","icons.unlock","propTypes","PropTypes","shape","number","string","func"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.js","sources":["../../../../src/components/Settings/Slider.js"],"sourcesContent":["import { memo } from 'react';\nimport PropTypes from 'prop-types';\n\nconst Slider = ({\n config = {},\n item = {},\n onItemChange = () => {},\n value = '',\n}) => {\n const { range, simple } = config;\n const refValue = simple ? 1 : 100;\n const onChange = e => {\n const newValue = e.target.value;\n if (newValue !== value) {\n if (newValue >= range[0] && newValue <= range[1]) {\n onItemChange(\n { id: item.id },\n { [config.key]: newValue / refValue },\n );\n }\n }\n };\n\n const onKeyDown = event => {\n event.stopPropagation();\n if (event.shiftKey) {\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.preventDefault();\n const diff = event.key === 'ArrowUp' ? 10 : -10;\n onChange({\n target: {\n value: Number(value) + diff,\n },\n });\n }\n }\n };\n\n return (\n <div className=\"rangeSliderWrapper d-flex a-center\">\n <div className=\"rangeSlider\">\n <input\n className=\"rangeSlider-bar\"\n max={range[1]}\n min={range[0]}\n onChange={onChange}\n onKeyDown={onKeyDown}\n type=\"range\"\n value={value * refValue}\n />\n <div\n className=\"rangeSlider-indicator\"\n style={{\n width: `\n ${simple ? (value / range[1]) * 100 : parseFloat(value, 10) * refValue}%\n `,\n }}\n />\n </div>\n <div className={`hasUnit ${simple ? 'isPixel' : 'isPercentage'}`}>\n <input\n className=\"toolSection-input isSmall\"\n max={range[1]}\n min={range[0]}\n onChange={onChange}\n onKeyDown={onKeyDown}\n type=\"number\"\n value={(value * refValue).toFixed(0)}\n />\n </div>\n </div>\n );\n};\n\nSlider.propTypes = {\n config: PropTypes.shape({\n key: PropTypes.string,\n options: PropTypes.arrayOf(PropTypes.any),\n range: PropTypes.arrayOf(PropTypes.number),\n simple: PropTypes.bool,\n }),\n item: PropTypes.shape({\n id: PropTypes.string,\n }),\n onItemChange: PropTypes.func,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n};\n\nexport default memo(Slider);\n"],"names":["Slider","config","item","onItemChange","value","range","simple","refValue","onChange","e","newValue","target","id","key","onKeyDown","event","stopPropagation","shiftKey","preventDefault","diff","Number","_jsxs","_jsx","width","parseFloat","toFixed","propTypes","PropTypes","shape","string","options","arrayOf","any","number","bool","func","oneOfType","memo"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Slider.js","sources":["../../../../src/components/Settings/Slider.js"],"sourcesContent":["import { memo } from 'react';\nimport PropTypes from 'prop-types';\n\nconst Slider = ({\n config = {},\n item = {},\n onItemChange = () => {},\n value = '',\n}) => {\n const { range, simple } = config;\n const refValue = simple ? 1 : 100;\n const onChange = e => {\n const newValue = e.target.value;\n if (newValue !== value) {\n if (newValue >= range[0] && newValue <= range[1]) {\n onItemChange(\n { id: item.id },\n { [config.key]: newValue / refValue },\n );\n }\n }\n };\n\n const onKeyDown = event => {\n event.stopPropagation();\n if (event.shiftKey) {\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.preventDefault();\n const diff = event.key === 'ArrowUp' ? 10 : -10;\n onChange({\n target: {\n value: Number(value) + diff,\n },\n });\n }\n }\n };\n\n return (\n <div className=\"rangeSliderWrapper d-flex a-center\">\n <div className=\"rangeSlider\">\n <input\n className=\"rangeSlider-bar\"\n max={range[1]}\n min={range[0]}\n onChange={onChange}\n onKeyDown={onKeyDown}\n type=\"range\"\n value={value * refValue}\n />\n <div\n className=\"rangeSlider-indicator\"\n style={{\n width: `\n ${simple ? (value / range[1]) * 100 : parseFloat(value, 10) * refValue}%\n `,\n }}\n />\n </div>\n <div className={`hasUnit ${simple ? 'isPixel' : 'isPercentage'}`}>\n <input\n className=\"toolSection-input isSmall\"\n max={range[1]}\n min={range[0]}\n onChange={onChange}\n onKeyDown={onKeyDown}\n type=\"number\"\n value={(value * refValue).toFixed(0)}\n />\n </div>\n </div>\n );\n};\n\nSlider.propTypes = {\n config: PropTypes.shape({\n key: PropTypes.string,\n options: PropTypes.arrayOf(PropTypes.any),\n range: PropTypes.arrayOf(PropTypes.number),\n simple: PropTypes.bool,\n }),\n item: PropTypes.shape({\n id: PropTypes.string,\n }),\n onItemChange: PropTypes.func,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n};\n\nexport default memo(Slider);\n"],"names":["Slider","config","item","onItemChange","value","range","simple","refValue","onChange","e","newValue","target","id","key","onKeyDown","event","stopPropagation","shiftKey","preventDefault","diff","Number","_jsxs","_jsx","width","parseFloat","toFixed","propTypes","PropTypes","shape","string","options","arrayOf","any","number","bool","func","oneOfType","memo"],"mappings":"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"}
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import 'core-js/modules/es.array.from.js';
|
|
2
|
-
import 'core-js/modules/es.array.map.js';
|
|
3
|
-
import 'core-js/modules/es.string.iterator.js';
|
|
4
|
-
import 'core-js/modules/web.dom-collections.for-each.js';
|
|
5
1
|
import { useState, useCallback, useRef, useLayoutEffect } from 'react';
|
|
6
2
|
import PropTypes from 'prop-types';
|
|
7
3
|
import classNames from 'classnames';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomToolbar.js","sources":["../../../../../src/components/TextEditor/CustomToolbar/CustomToolbar.js"],"sourcesContent":["import {\n useState, useCallback, useLayoutEffect, useRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { fontSizes } from '../../../constants/fonts';\n\nconst SELECT_WIDTH = 70;\nconst BUTTON_WIDTH = 26;\nconst BAR_WIDTH = SELECT_WIDTH + (BUTTON_WIDTH * 8);\n\nconst CustomToolbar = ({ itemWidth = 0 }) => {\n const overflow = BAR_WIDTH > itemWidth;\n const [isOpened, setIsOpened] = useState(overflow ? false : true);\n const onClickMore = useCallback(() => setIsOpened(true), []);\n const wrapper = useRef();\n\n function getVisibleClass(limit) {\n return overflow && itemWidth < limit ? ' hiddenVisibility' : '';\n }\n\n useLayoutEffect(() => {\n if (!isOpened || wrapper.current === null) return;\n Array.from(wrapper.current.children).forEach(el => el.classList.remove('hiddenVisibility'));\n }, [isOpened]);\n\n return (\n <div\n ref={wrapper}\n className={classNames('toolbarWrapper p-absolute d-flex', { isOpened })}\n style={{\n maxWidth: isOpened ? 'none' : '100%',\n // minWidth: `${itemWidth}px`,\n }}\n >\n <select\n aria-label=\"Size\"\n className=\"ql-size ql-select ql-textselect\"\n defaultValue=\"16px\"\n onChange={e => e.persist()}\n >\n {fontSizes.map(size => (\n <option\n key={size}\n value={`${size}px`}\n >\n {size}\n px\n </option>\n ))}\n </select>\n <div className=\"ql-divider\" />\n <button\n aria-label=\"Bold\"\n className={`ql-bold ql-button${getVisibleClass(SELECT_WIDTH + BUTTON_WIDTH)}`}\n type=\"button\"\n />\n <button\n aria-label=\"Italic\"\n className={`ql-italic ql-button${getVisibleClass(SELECT_WIDTH + (BUTTON_WIDTH * 2))}`}\n type=\"button\"\n />\n <button\n aria-label=\"Underline\"\n className={`ql-underline ql-button${getVisibleClass(SELECT_WIDTH + (BUTTON_WIDTH * 3))}`}\n type=\"button\"\n />\n <select\n aria-label=\"Text Color\"\n className={`ql-color ql-select${getVisibleClass(SELECT_WIDTH + (BUTTON_WIDTH * 4))}`}\n defaultValue=\"\"\n onChange={e => e.persist()}\n />\n <div className=\"ql-divider\" />\n <select\n aria-label=\"Alignment\"\n className={`ql-align ql-select${getVisibleClass(SELECT_WIDTH + (BUTTON_WIDTH * 5))}`}\n defaultValue=\"\"\n onChange={e => e.persist()}\n />\n <button\n aria-label=\"Ordered List\"\n className={`ql-list ql-button${getVisibleClass(SELECT_WIDTH + (BUTTON_WIDTH * 6))}`}\n type=\"button\"\n value=\"ordered\"\n />\n <button\n aria-label=\"Bullet List\"\n className={`ql-list ql-button${getVisibleClass(SELECT_WIDTH + (BUTTON_WIDTH * 7))}`}\n type=\"button\"\n value=\"bullet\"\n />\n <button\n aria-label=\"Link\"\n className={`ql-link ql-button${getVisibleClass(SELECT_WIDTH + (BUTTON_WIDTH * 8))}`}\n type=\"button\"\n />\n {overflow && !isOpened && (\n <button\n aria-label=\"More Options\"\n className=\"qlMore\"\n onClick={onClickMore}\n type=\"button\"\n >\n >>\n </button>\n )}\n </div>\n );\n};\n\nCustomToolbar.propTypes = {\n itemWidth: PropTypes.number,\n};\n\nexport default CustomToolbar;\n"],"names":["SELECT_WIDTH","BUTTON_WIDTH","BAR_WIDTH","CustomToolbar","itemWidth","overflow","useState","isOpened","setIsOpened","onClickMore","useCallback","wrapper","useRef","getVisibleClass","limit","useLayoutEffect","current","Array","from","children","forEach","el","classList","remove","_jsxs","classNames","maxWidth","_jsx","e","persist","fontSizes","map","size","propTypes","PropTypes","number"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CustomToolbar.js","sources":["../../../../../src/components/TextEditor/CustomToolbar/CustomToolbar.js"],"sourcesContent":["import {\n useState, useCallback, useLayoutEffect, useRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { fontSizes } from '../../../constants/fonts';\n\nconst SELECT_WIDTH = 70;\nconst BUTTON_WIDTH = 26;\nconst BAR_WIDTH = SELECT_WIDTH + (BUTTON_WIDTH * 8);\n\nconst CustomToolbar = ({ itemWidth = 0 }) => {\n const overflow = BAR_WIDTH > itemWidth;\n const [isOpened, setIsOpened] = useState(overflow ? false : true);\n const onClickMore = useCallback(() => setIsOpened(true), []);\n const wrapper = useRef();\n\n function getVisibleClass(limit) {\n return overflow && itemWidth < limit ? ' hiddenVisibility' : '';\n }\n\n useLayoutEffect(() => {\n if (!isOpened || wrapper.current === null) return;\n Array.from(wrapper.current.children).forEach(el => el.classList.remove('hiddenVisibility'));\n }, [isOpened]);\n\n return (\n <div\n ref={wrapper}\n className={classNames('toolbarWrapper p-absolute d-flex', { isOpened })}\n style={{\n maxWidth: isOpened ? 'none' : '100%',\n // minWidth: `${itemWidth}px`,\n }}\n >\n <select\n aria-label=\"Size\"\n className=\"ql-size ql-select ql-textselect\"\n defaultValue=\"16px\"\n onChange={e => e.persist()}\n >\n {fontSizes.map(size => (\n <option\n key={size}\n value={`${size}px`}\n >\n {size}\n px\n </option>\n ))}\n </select>\n <div className=\"ql-divider\" />\n <button\n aria-label=\"Bold\"\n className={`ql-bold ql-button${getVisibleClass(SELECT_WIDTH + BUTTON_WIDTH)}`}\n type=\"button\"\n />\n <button\n aria-label=\"Italic\"\n className={`ql-italic ql-button${getVisibleClass(SELECT_WIDTH + (BUTTON_WIDTH * 2))}`}\n type=\"button\"\n />\n <button\n aria-label=\"Underline\"\n className={`ql-underline ql-button${getVisibleClass(SELECT_WIDTH + (BUTTON_WIDTH * 3))}`}\n type=\"button\"\n />\n <select\n aria-label=\"Text Color\"\n className={`ql-color ql-select${getVisibleClass(SELECT_WIDTH + (BUTTON_WIDTH * 4))}`}\n defaultValue=\"\"\n onChange={e => e.persist()}\n />\n <div className=\"ql-divider\" />\n <select\n aria-label=\"Alignment\"\n className={`ql-align ql-select${getVisibleClass(SELECT_WIDTH + (BUTTON_WIDTH * 5))}`}\n defaultValue=\"\"\n onChange={e => e.persist()}\n />\n <button\n aria-label=\"Ordered List\"\n className={`ql-list ql-button${getVisibleClass(SELECT_WIDTH + (BUTTON_WIDTH * 6))}`}\n type=\"button\"\n value=\"ordered\"\n />\n <button\n aria-label=\"Bullet List\"\n className={`ql-list ql-button${getVisibleClass(SELECT_WIDTH + (BUTTON_WIDTH * 7))}`}\n type=\"button\"\n value=\"bullet\"\n />\n <button\n aria-label=\"Link\"\n className={`ql-link ql-button${getVisibleClass(SELECT_WIDTH + (BUTTON_WIDTH * 8))}`}\n type=\"button\"\n />\n {overflow && !isOpened && (\n <button\n aria-label=\"More Options\"\n className=\"qlMore\"\n onClick={onClickMore}\n type=\"button\"\n >\n >>\n </button>\n )}\n </div>\n );\n};\n\nCustomToolbar.propTypes = {\n itemWidth: PropTypes.number,\n};\n\nexport default CustomToolbar;\n"],"names":["SELECT_WIDTH","BUTTON_WIDTH","BAR_WIDTH","CustomToolbar","itemWidth","overflow","useState","isOpened","setIsOpened","onClickMore","useCallback","wrapper","useRef","getVisibleClass","limit","useLayoutEffect","current","Array","from","children","forEach","el","classList","remove","_jsxs","classNames","maxWidth","_jsx","e","persist","fontSizes","map","size","propTypes","PropTypes","number"],"mappings":"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"}
|
|
@@ -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.saveAndQuit();\n }\n\n saveAndQuit = () => {\n const { content, handleSave, setIsTextEditorOpen } = this.props;\n setIsTextEditorOpen(false);\n handleSave(content);\n }\n\n handleKeyDown = e => {\n e.stopPropagation();\n if (e.keyCode === 27) {\n this.saveAndQuit();\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 placeholder: PropTypes.string.isRequired,\n setContent: PropTypes.func,\n setIsTextEditorOpen: PropTypes.func,\n};\n\nexport default QuillEditor;\n"],"names":["Size","ReactQuill","Quill","import","whitelist","fontSizes","map","s","register","QuillEditor","props","content","handleSave","setIsTextEditorOpen","e","stopPropagation","keyCode","saveAndQuit","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":"
|
|
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.saveAndQuit();\n }\n\n saveAndQuit = () => {\n const { content, handleSave, setIsTextEditorOpen } = this.props;\n setIsTextEditorOpen(false);\n handleSave(content);\n }\n\n handleKeyDown = e => {\n e.stopPropagation();\n if (e.keyCode === 27) {\n this.saveAndQuit();\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 placeholder: PropTypes.string.isRequired,\n setContent: PropTypes.func,\n setIsTextEditorOpen: PropTypes.func,\n};\n\nexport default QuillEditor;\n"],"names":["Size","ReactQuill","Quill","import","whitelist","fontSizes","map","s","register","QuillEditor","props","content","handleSave","setIsTextEditorOpen","e","stopPropagation","keyCode","saveAndQuit","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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"}
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
import 'core-js/modules/es.array.from.js';
|
|
2
|
-
import 'core-js/modules/es.array.includes.js';
|
|
3
|
-
import 'core-js/modules/es.function.name.js';
|
|
4
|
-
import 'core-js/modules/es.object.keys.js';
|
|
5
|
-
import 'core-js/modules/es.string.includes.js';
|
|
6
|
-
import 'core-js/modules/es.string.iterator.js';
|
|
7
1
|
import { useRef, useCallback, useEffect } from 'react';
|
|
8
2
|
import PropTypes from 'prop-types';
|
|
9
3
|
import { EVENT_IGNORED_ROLES } from '../constants/eventIgnoredRoles.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withClickOutside.js","sources":["../../../src/components/withClickOutside.js"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { EVENT_IGNORED_ROLES } from '../constants/eventIgnoredRoles';\nimport { useBuilderStore } from '../contexts/BuilderContext';\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\n\nfunction withClickOutside(WrappedComponent) {\n function WithClickOutside(props) {\n const {\n exceptionalClasses = null,\n onClickOutside,\n withClickOutsideWrapperClass = null,\n } = props;\n\n const clickOutsideIgnoreSelectors = useBuilderStore(state => state.clickOutsideIgnoreSelectors);\n const wrapper = useRef(null);\n\n const handleClickOutside = useCallback(event => {\n const { classList } = event.target;\n if (\n exceptionalClasses\n && (\n classList.contains(exceptionalClasses)\n || Array.from(classList).some(xClass => exceptionalClasses.includes(xClass))\n || exceptionalClasses.some(item => event.target.closest(`.${item}`))\n || EVENT_IGNORED_ROLES.some(role => event.target.closest(`[role=${role}]`))\n || clickOutsideIgnoreSelectors.some(selector => selector && event.target.closest(selector))\n )\n ) {\n return;\n }\n\n if (wrapper.current && !wrapper.current.contains(event.target)) {\n onClickOutside(event);\n }\n }, [exceptionalClasses, onClickOutside, clickOutsideIgnoreSelectors]);\n\n useEffect(() => {\n window.addEventListener('mousedown', handleClickOutside, true);\n return () => {\n window.removeEventListener('mousedown', handleClickOutside, true);\n };\n }, [handleClickOutside]);\n\n // should we memoize this?\n const propsToFilter = ['withClickOutsideWrapperClass', 'exceptionalClasses'];\n const componentName = getDisplayName(WrappedComponent);\n if (componentName === 'Resizable') {\n // beceause resizable wrapper directly passes props to an html el\n propsToFilter.push('onClickOutside');\n }\n const filteredProps = Object.keys(props).reduce((allProps, propKey) => {\n const _allProps = allProps;\n if (propsToFilter.indexOf(propKey) === -1) {\n _allProps[propKey] = props[propKey];\n }\n return _allProps;\n }, {});\n\n return (\n <div\n ref={wrapper}\n className={withClickOutsideWrapperClass}\n >\n <WrappedComponent\n {...filteredProps}\n />\n </div>\n );\n }\n\n WithClickOutside.propTypes = {\n exceptionalClasses: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n onClickOutside: PropTypes.func.isRequired,\n withClickOutsideWrapperClass: PropTypes.string,\n };\n\n WithClickOutside.displayName = `inlineEdit(${getDisplayName(WrappedComponent)})`;\n\n return WithClickOutside;\n}\n\nexport default withClickOutside;\n"],"names":["getDisplayName","WrappedComponent","displayName","name","withClickOutside","WithClickOutside","props","exceptionalClasses","onClickOutside","withClickOutsideWrapperClass","clickOutsideIgnoreSelectors","useBuilderStore","state","wrapper","useRef","handleClickOutside","useCallback","event","classList","target","contains","Array","from","some","xClass","includes","item","closest","EVENT_IGNORED_ROLES","role","selector","current","useEffect","window","addEventListener","removeEventListener","propsToFilter","componentName","push","filteredProps","Object","keys","reduce","allProps","propKey","_allProps","indexOf","_jsx","propTypes","PropTypes","oneOfType","string","arrayOf","func","isRequired"],"mappings":"
|
|
1
|
+
{"version":3,"file":"withClickOutside.js","sources":["../../../src/components/withClickOutside.js"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { EVENT_IGNORED_ROLES } from '../constants/eventIgnoredRoles';\nimport { useBuilderStore } from '../contexts/BuilderContext';\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\n\nfunction withClickOutside(WrappedComponent) {\n function WithClickOutside(props) {\n const {\n exceptionalClasses = null,\n onClickOutside,\n withClickOutsideWrapperClass = null,\n } = props;\n\n const clickOutsideIgnoreSelectors = useBuilderStore(state => state.clickOutsideIgnoreSelectors);\n const wrapper = useRef(null);\n\n const handleClickOutside = useCallback(event => {\n const { classList } = event.target;\n if (\n exceptionalClasses\n && (\n classList.contains(exceptionalClasses)\n || Array.from(classList).some(xClass => exceptionalClasses.includes(xClass))\n || exceptionalClasses.some(item => event.target.closest(`.${item}`))\n || EVENT_IGNORED_ROLES.some(role => event.target.closest(`[role=${role}]`))\n || clickOutsideIgnoreSelectors.some(selector => selector && event.target.closest(selector))\n )\n ) {\n return;\n }\n\n if (wrapper.current && !wrapper.current.contains(event.target)) {\n onClickOutside(event);\n }\n }, [exceptionalClasses, onClickOutside, clickOutsideIgnoreSelectors]);\n\n useEffect(() => {\n window.addEventListener('mousedown', handleClickOutside, true);\n return () => {\n window.removeEventListener('mousedown', handleClickOutside, true);\n };\n }, [handleClickOutside]);\n\n // should we memoize this?\n const propsToFilter = ['withClickOutsideWrapperClass', 'exceptionalClasses'];\n const componentName = getDisplayName(WrappedComponent);\n if (componentName === 'Resizable') {\n // beceause resizable wrapper directly passes props to an html el\n propsToFilter.push('onClickOutside');\n }\n const filteredProps = Object.keys(props).reduce((allProps, propKey) => {\n const _allProps = allProps;\n if (propsToFilter.indexOf(propKey) === -1) {\n _allProps[propKey] = props[propKey];\n }\n return _allProps;\n }, {});\n\n return (\n <div\n ref={wrapper}\n className={withClickOutsideWrapperClass}\n >\n <WrappedComponent\n {...filteredProps}\n />\n </div>\n );\n }\n\n WithClickOutside.propTypes = {\n exceptionalClasses: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n onClickOutside: PropTypes.func.isRequired,\n withClickOutsideWrapperClass: PropTypes.string,\n };\n\n WithClickOutside.displayName = `inlineEdit(${getDisplayName(WrappedComponent)})`;\n\n return WithClickOutside;\n}\n\nexport default withClickOutside;\n"],"names":["getDisplayName","WrappedComponent","displayName","name","withClickOutside","WithClickOutside","props","exceptionalClasses","onClickOutside","withClickOutsideWrapperClass","clickOutsideIgnoreSelectors","useBuilderStore","state","wrapper","useRef","handleClickOutside","useCallback","event","classList","target","contains","Array","from","some","xClass","includes","item","closest","EVENT_IGNORED_ROLES","role","selector","current","useEffect","window","addEventListener","removeEventListener","propsToFilter","componentName","push","filteredProps","Object","keys","reduce","allProps","propKey","_allProps","indexOf","_jsx","propTypes","PropTypes","oneOfType","string","arrayOf","func","isRequired"],"mappings":"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"}
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import 'core-js/modules/es.array.concat.js';
|
|
2
|
-
import 'core-js/modules/es.array.filter.js';
|
|
3
|
-
import 'core-js/modules/es.array.sort.js';
|
|
4
|
-
|
|
5
1
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
6
2
|
|
|
7
3
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fonts.js","sources":["../../../src/constants/fonts.js"],"sourcesContent":["export const fontTypes = {\n googleDisplayFonts: [\n 'Bevan',\n 'Abril Fatface',\n 'Diplomata',\n 'Fredoka One',\n 'Galada',\n 'Lobster',\n 'Playball',\n 'Sail',\n ],\n googleForeignDisplayFonts: [\n 'Noto Serif SC',\n 'Katibeh',\n 'ZCOOL QingKe HuangYou',\n 'Gugi',\n ],\n googleForeignSansSerifFonts: [\n 'Noto Sans JP',\n 'Harmattan',\n 'Noto Sans SC',\n 'Noto Sans KR',\n ],\n googleForeignSerifFonts: [\n 'Noto Serif SC',\n 'Scheherazade',\n 'Noto Serif KR',\n ],\n googleSansSerifFonts: [\n 'Montserrat',\n 'Open Sans',\n 'Roboto',\n 'Ubuntu',\n ],\n googleSerifFonts: [\n 'Bitter',\n 'PT Serif',\n ],\n licencedFonts: [\n 'Circular',\n ],\n systemDisplayFonts: [\n 'Comic Sans MS',\n ],\n systemSansSerifFonts: [\n 'Arial',\n 'Arial Black',\n 'Courier New',\n 'Helvetica',\n 'Tahoma',\n 'Trebuchet MS',\n 'Verdana',\n 'Impact',\n ],\n systemSerifFonts: [\n 'Georgia',\n 'Times New Roman',\n ],\n};\n\nfontTypes.googleNonforeignFonts = [\n ...fontTypes.googleSerifFonts, ...fontTypes.googleSansSerifFonts,\n ...fontTypes.googleDisplayFonts,\n];\n\nfontTypes.completeSystemFonts = [\n ...fontTypes.systemSerifFonts, ...fontTypes.systemSansSerifFonts,\n ...fontTypes.systemDisplayFonts,\n];\n\nfontTypes.completeGoogleFonts = [\n ...fontTypes.googleNonforeignFonts, ...fontTypes.googleForeignSerifFonts,\n ...fontTypes.googleForeignSansSerifFonts, ...fontTypes.googleForeignDisplayFonts,\n].filter((elem, index, self) => index === self.indexOf(elem));\n\nfontTypes.completeLicencedFonts = [\n ...fontTypes.licencedFonts,\n].filter((elem, index, self) => index === self.indexOf(elem));\n\nfontTypes.fonts = [\n ...fontTypes.googleNonforeignFonts,\n ...fontTypes.completeSystemFonts,\n ...fontTypes.completeLicencedFonts].sort();\n\nexport const fontSizes = ['6', '7', '8', '9', '10', '11',\n '12', '14', '16', '18', '24', '30', '36', '48', '60', '72', '96', '100'];\n\nexport const borderProps = {\n style: [\n {\n label: 'Solid',\n value: 'solid',\n },\n {\n label: 'Dotted',\n value: 'dotted',\n },\n {\n label: 'Dashed',\n value: 'dashed',\n },\n ],\n width: [\n {\n label: 'Thick',\n value: 'thick',\n },\n {\n label: 'Medium',\n value: 'medium',\n },\n {\n label: 'Thin',\n value: 'thin',\n },\n ],\n};\n"],"names":["fontTypes","googleDisplayFonts","googleForeignDisplayFonts","googleForeignSansSerifFonts","googleForeignSerifFonts","googleSansSerifFonts","googleSerifFonts","licencedFonts","systemDisplayFonts","systemSansSerifFonts","systemSerifFonts","googleNonforeignFonts","completeSystemFonts","completeGoogleFonts","filter","elem","index","self","indexOf","completeLicencedFonts","fonts","sort","fontSizes"],"mappings":"
|
|
1
|
+
{"version":3,"file":"fonts.js","sources":["../../../src/constants/fonts.js"],"sourcesContent":["export const fontTypes = {\n googleDisplayFonts: [\n 'Bevan',\n 'Abril Fatface',\n 'Diplomata',\n 'Fredoka One',\n 'Galada',\n 'Lobster',\n 'Playball',\n 'Sail',\n ],\n googleForeignDisplayFonts: [\n 'Noto Serif SC',\n 'Katibeh',\n 'ZCOOL QingKe HuangYou',\n 'Gugi',\n ],\n googleForeignSansSerifFonts: [\n 'Noto Sans JP',\n 'Harmattan',\n 'Noto Sans SC',\n 'Noto Sans KR',\n ],\n googleForeignSerifFonts: [\n 'Noto Serif SC',\n 'Scheherazade',\n 'Noto Serif KR',\n ],\n googleSansSerifFonts: [\n 'Montserrat',\n 'Open Sans',\n 'Roboto',\n 'Ubuntu',\n ],\n googleSerifFonts: [\n 'Bitter',\n 'PT Serif',\n ],\n licencedFonts: [\n 'Circular',\n ],\n systemDisplayFonts: [\n 'Comic Sans MS',\n ],\n systemSansSerifFonts: [\n 'Arial',\n 'Arial Black',\n 'Courier New',\n 'Helvetica',\n 'Tahoma',\n 'Trebuchet MS',\n 'Verdana',\n 'Impact',\n ],\n systemSerifFonts: [\n 'Georgia',\n 'Times New Roman',\n ],\n};\n\nfontTypes.googleNonforeignFonts = [\n ...fontTypes.googleSerifFonts, ...fontTypes.googleSansSerifFonts,\n ...fontTypes.googleDisplayFonts,\n];\n\nfontTypes.completeSystemFonts = [\n ...fontTypes.systemSerifFonts, ...fontTypes.systemSansSerifFonts,\n ...fontTypes.systemDisplayFonts,\n];\n\nfontTypes.completeGoogleFonts = [\n ...fontTypes.googleNonforeignFonts, ...fontTypes.googleForeignSerifFonts,\n ...fontTypes.googleForeignSansSerifFonts, ...fontTypes.googleForeignDisplayFonts,\n].filter((elem, index, self) => index === self.indexOf(elem));\n\nfontTypes.completeLicencedFonts = [\n ...fontTypes.licencedFonts,\n].filter((elem, index, self) => index === self.indexOf(elem));\n\nfontTypes.fonts = [\n ...fontTypes.googleNonforeignFonts,\n ...fontTypes.completeSystemFonts,\n ...fontTypes.completeLicencedFonts].sort();\n\nexport const fontSizes = ['6', '7', '8', '9', '10', '11',\n '12', '14', '16', '18', '24', '30', '36', '48', '60', '72', '96', '100'];\n\nexport const borderProps = {\n style: [\n {\n label: 'Solid',\n value: 'solid',\n },\n {\n label: 'Dotted',\n value: 'dotted',\n },\n {\n label: 'Dashed',\n value: 'dashed',\n },\n ],\n width: [\n {\n label: 'Thick',\n value: 'thick',\n },\n {\n label: 'Medium',\n value: 'medium',\n },\n {\n label: 'Thin',\n value: 'thin',\n },\n ],\n};\n"],"names":["fontTypes","googleDisplayFonts","googleForeignDisplayFonts","googleForeignSansSerifFonts","googleForeignSerifFonts","googleSansSerifFonts","googleSerifFonts","licencedFonts","systemDisplayFonts","systemSansSerifFonts","systemSerifFonts","googleNonforeignFonts","completeSystemFonts","completeGoogleFonts","filter","elem","index","self","indexOf","completeLicencedFonts","fonts","sort","fontSizes"],"mappings":";;;;;;;;;;;;IAAaA,SAAS,GAAG;AACvBC,EAAAA,kBAAkB,EAAE,CAClB,OADkB,EAElB,eAFkB,EAGlB,WAHkB,EAIlB,aAJkB,EAKlB,QALkB,EAMlB,SANkB,EAOlB,UAPkB,EAQlB,MARkB,CADG;AAWvBC,EAAAA,yBAAyB,EAAE,CACzB,eADyB,EAEzB,SAFyB,EAGzB,uBAHyB,EAIzB,MAJyB,CAXJ;AAiBvBC,EAAAA,2BAA2B,EAAE,CAC3B,cAD2B,EAE3B,WAF2B,EAG3B,cAH2B,EAI3B,cAJ2B,CAjBN;AAuBvBC,EAAAA,uBAAuB,EAAE,CACvB,eADuB,EAEvB,cAFuB,EAGvB,eAHuB,CAvBF;AA4BvBC,EAAAA,oBAAoB,EAAE,CACpB,YADoB,EAEpB,WAFoB,EAGpB,QAHoB,EAIpB,QAJoB,CA5BC;AAkCvBC,EAAAA,gBAAgB,EAAE,CAChB,QADgB,EAEhB,UAFgB,CAlCK;AAsCvBC,EAAAA,aAAa,EAAE,CACb,UADa,CAtCQ;AAyCvBC,EAAAA,kBAAkB,EAAE,CAClB,eADkB,CAzCG;AA4CvBC,EAAAA,oBAAoB,EAAE,CACpB,OADoB,EAEpB,aAFoB,EAGpB,aAHoB,EAIpB,WAJoB,EAKpB,QALoB,EAMpB,cANoB,EAOpB,SAPoB,EAQpB,QARoB,CA5CC;AAsDvBC,EAAAA,gBAAgB,EAAE,CAChB,SADgB,EAEhB,iBAFgB;AAtDK;AA4DzBV,SAAS,CAACW,qBAAV,gCACKX,SAAS,CAACM,gBADf,sBACoCN,SAAS,CAACK,oBAD9C,sBAEKL,SAAS,CAACC,kBAFf;AAKAD,SAAS,CAACY,mBAAV,gCACKZ,SAAS,CAACU,gBADf,sBACoCV,SAAS,CAACS,oBAD9C,sBAEKT,SAAS,CAACQ,kBAFf;AAKAR,SAAS,CAACa,mBAAV,GAAgC,6BAC3Bb,SAAS,CAACW,qBADiB,sBACSX,SAAS,CAACI,uBADnB,sBAE3BJ,SAAS,CAACG,2BAFiB,sBAEeH,SAAS,CAACE,yBAFzB,GAG9BY,MAH8B,CAGvB,UAACC,IAAD,EAAOC,KAAP,EAAcC,IAAd;AAAA,SAAuBD,KAAK,KAAKC,IAAI,CAACC,OAAL,CAAaH,IAAb,CAAjC;AAAA,CAHuB,CAAhC;AAKAf,SAAS,CAACmB,qBAAV,GAAkC,mBAC7BnB,SAAS,CAACO,aADmB,EAEhCO,MAFgC,CAEzB,UAACC,IAAD,EAAOC,KAAP,EAAcC,IAAd;AAAA,SAAuBD,KAAK,KAAKC,IAAI,CAACC,OAAL,CAAaH,IAAb,CAAjC;AAAA,CAFyB,CAAlC;AAIAf,SAAS,CAACoB,KAAV,GAAkB,6BACbpB,SAAS,CAACW,qBADG,sBAEbX,SAAS,CAACY,mBAFG,sBAGbZ,SAAS,CAACmB,qBAHG,GAGoBE,IAHpB,EAAlB;IAKaC,SAAS,GAAG,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,IAArB,EAA2B,IAA3B,EACvB,IADuB,EACjB,IADiB,EACX,IADW,EACL,IADK,EACC,IADD,EACO,IADP,EACa,IADb,EACmB,IADnB,EACyB,IADzB,EAC+B,IAD/B,EACqC,IADrC,EAC2C,KAD3C;;;;"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import 'core-js/modules/es.array.concat.js';
|
|
2
|
-
import 'core-js/modules/es.regexp.exec.js';
|
|
3
|
-
import 'core-js/modules/es.string.split.js';
|
|
4
1
|
import { divider } from '../utils/staticSettings.js';
|
|
5
2
|
|
|
6
3
|
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; }
|