@jotforminc/dnd-builder 3.4.3 → 3.4.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.
Files changed (101) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/index.d.ts +2 -0
  3. package/lib/cjs/assets/svg/angle_down.svg.js +22 -0
  4. package/lib/cjs/assets/svg/angle_down.svg.js.map +1 -0
  5. package/lib/cjs/assets/svg/angle_left.svg.js +22 -0
  6. package/lib/cjs/assets/svg/angle_left.svg.js.map +1 -0
  7. package/lib/cjs/assets/svg/angle_right.svg.js +22 -0
  8. package/lib/cjs/assets/svg/angle_right.svg.js.map +1 -0
  9. package/lib/cjs/assets/svg/angle_up.svg.js +22 -0
  10. package/lib/cjs/assets/svg/angle_up.svg.js.map +1 -0
  11. package/lib/cjs/assets/svg/contextmenu/moveToBack.svg.js +9 -18
  12. package/lib/cjs/assets/svg/contextmenu/moveToBack.svg.js.map +1 -1
  13. package/lib/cjs/assets/svg/contextmenu/moveToBackward.svg.js +12 -18
  14. package/lib/cjs/assets/svg/contextmenu/moveToBackward.svg.js.map +1 -1
  15. package/lib/cjs/assets/svg/contextmenu/moveToForward.svg.js +12 -18
  16. package/lib/cjs/assets/svg/contextmenu/moveToForward.svg.js.map +1 -1
  17. package/lib/cjs/assets/svg/contextmenu/moveToFront.svg.js +9 -18
  18. package/lib/cjs/assets/svg/contextmenu/moveToFront.svg.js.map +1 -1
  19. package/lib/cjs/components/Builder/Builder.js +3 -0
  20. package/lib/cjs/components/Builder/Builder.js.map +1 -1
  21. package/lib/cjs/components/Builder/ContextMenu.js +1 -1
  22. package/lib/cjs/components/Builder/ContextMenu.js.map +1 -1
  23. package/lib/cjs/components/Builder/PageActions.js +19 -19
  24. package/lib/cjs/components/Builder/PageActions.js.map +1 -1
  25. package/lib/cjs/components/Builder/ZoomControls.js +8 -8
  26. package/lib/cjs/components/Builder/ZoomControls.js.map +1 -1
  27. package/lib/cjs/components/DraggableItem/DraggableItemActions.js +12 -12
  28. package/lib/cjs/components/DraggableItem/DraggableItemActions.js.map +1 -1
  29. package/lib/cjs/components/DraggableItem/DraggableItemLayer.js +1 -1
  30. package/lib/cjs/components/DraggableItem/DraggableItemLayer.js.map +1 -1
  31. package/lib/cjs/components/PageItemResizer.js +1 -1
  32. package/lib/cjs/components/PageItemResizer.js.map +1 -1
  33. package/lib/cjs/components/Panels/RightPanel/RightPanel.js +10 -3
  34. package/lib/cjs/components/Panels/RightPanel/RightPanel.js.map +1 -1
  35. package/lib/cjs/components/withClickOutside.js +7 -1
  36. package/lib/cjs/components/withClickOutside.js.map +1 -1
  37. package/lib/cjs/constants/eventIgnoredRoles.js +2 -0
  38. package/lib/cjs/constants/eventIgnoredRoles.js.map +1 -1
  39. package/lib/cjs/contexts/BuilderContext.js +1 -0
  40. package/lib/cjs/contexts/BuilderContext.js.map +1 -1
  41. package/lib/cjs/contexts/Providers.js +6 -1
  42. package/lib/cjs/contexts/Providers.js.map +1 -1
  43. package/lib/cjs/styles/_jfReportsFloatings.scss +109 -2
  44. package/lib/cjs/styles/_jfReportsPages.scss +21 -28
  45. package/lib/cjs/styles/_jfReportsReportItem.scss +79 -53
  46. package/lib/cjs/styles/_jfReportsTextEditor.scss +2 -2
  47. package/lib/cjs/styles/_jfReportsViewModes.scss +4 -4
  48. package/lib/cjs/utils/icons.js +8 -0
  49. package/lib/cjs/utils/icons.js.map +1 -1
  50. package/lib/cjs/utils/useKeyboardActions.js +3 -0
  51. package/lib/cjs/utils/useKeyboardActions.js.map +1 -1
  52. package/lib/esm/assets/svg/angle_down.svg.js +20 -0
  53. package/lib/esm/assets/svg/angle_down.svg.js.map +1 -0
  54. package/lib/esm/assets/svg/angle_left.svg.js +20 -0
  55. package/lib/esm/assets/svg/angle_left.svg.js.map +1 -0
  56. package/lib/esm/assets/svg/angle_right.svg.js +20 -0
  57. package/lib/esm/assets/svg/angle_right.svg.js.map +1 -0
  58. package/lib/esm/assets/svg/angle_up.svg.js +20 -0
  59. package/lib/esm/assets/svg/angle_up.svg.js.map +1 -0
  60. package/lib/esm/assets/svg/contextmenu/moveToBack.svg.js +9 -18
  61. package/lib/esm/assets/svg/contextmenu/moveToBack.svg.js.map +1 -1
  62. package/lib/esm/assets/svg/contextmenu/moveToBackward.svg.js +12 -18
  63. package/lib/esm/assets/svg/contextmenu/moveToBackward.svg.js.map +1 -1
  64. package/lib/esm/assets/svg/contextmenu/moveToForward.svg.js +12 -18
  65. package/lib/esm/assets/svg/contextmenu/moveToForward.svg.js.map +1 -1
  66. package/lib/esm/assets/svg/contextmenu/moveToFront.svg.js +9 -18
  67. package/lib/esm/assets/svg/contextmenu/moveToFront.svg.js.map +1 -1
  68. package/lib/esm/components/Builder/Builder.js +3 -0
  69. package/lib/esm/components/Builder/Builder.js.map +1 -1
  70. package/lib/esm/components/Builder/ContextMenu.js +1 -1
  71. package/lib/esm/components/Builder/ContextMenu.js.map +1 -1
  72. package/lib/esm/components/Builder/PageActions.js +19 -19
  73. package/lib/esm/components/Builder/PageActions.js.map +1 -1
  74. package/lib/esm/components/Builder/ZoomControls.js +8 -8
  75. package/lib/esm/components/Builder/ZoomControls.js.map +1 -1
  76. package/lib/esm/components/DraggableItem/DraggableItemActions.js +12 -12
  77. package/lib/esm/components/DraggableItem/DraggableItemActions.js.map +1 -1
  78. package/lib/esm/components/DraggableItem/DraggableItemLayer.js +1 -1
  79. package/lib/esm/components/DraggableItem/DraggableItemLayer.js.map +1 -1
  80. package/lib/esm/components/PageItemResizer.js +1 -1
  81. package/lib/esm/components/PageItemResizer.js.map +1 -1
  82. package/lib/esm/components/Panels/RightPanel/RightPanel.js +10 -3
  83. package/lib/esm/components/Panels/RightPanel/RightPanel.js.map +1 -1
  84. package/lib/esm/components/withClickOutside.js +7 -1
  85. package/lib/esm/components/withClickOutside.js.map +1 -1
  86. package/lib/esm/constants/eventIgnoredRoles.js +2 -1
  87. package/lib/esm/constants/eventIgnoredRoles.js.map +1 -1
  88. package/lib/esm/contexts/BuilderContext.js +1 -0
  89. package/lib/esm/contexts/BuilderContext.js.map +1 -1
  90. package/lib/esm/contexts/Providers.js +6 -1
  91. package/lib/esm/contexts/Providers.js.map +1 -1
  92. package/lib/esm/styles/_jfReportsFloatings.scss +109 -2
  93. package/lib/esm/styles/_jfReportsPages.scss +21 -28
  94. package/lib/esm/styles/_jfReportsReportItem.scss +79 -53
  95. package/lib/esm/styles/_jfReportsTextEditor.scss +2 -2
  96. package/lib/esm/styles/_jfReportsViewModes.scss +4 -4
  97. package/lib/esm/utils/icons.js +4 -0
  98. package/lib/esm/utils/icons.js.map +1 -1
  99. package/lib/esm/utils/useKeyboardActions.js +4 -1
  100. package/lib/esm/utils/useKeyboardActions.js.map +1 -1
  101. package/package.json +1 -1
@@ -7,6 +7,7 @@ import 'core-js/modules/es.string.iterator.js';
7
7
  import { useRef, useCallback, useEffect } from 'react';
8
8
  import PropTypes from 'prop-types';
9
9
  import { EVENT_IGNORED_ROLES } from '../constants/eventIgnoredRoles.js';
10
+ import { useBuilderStore } from '../contexts/BuilderContext.js';
10
11
  import { jsx } from 'react/jsx-runtime';
11
12
 
12
13
  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; }
@@ -26,6 +27,9 @@ function withClickOutside(WrappedComponent) {
26
27
  onClickOutside = props.onClickOutside,
27
28
  _props$withClickOutsi = props.withClickOutsideWrapperClass,
28
29
  withClickOutsideWrapperClass = _props$withClickOutsi === void 0 ? null : _props$withClickOutsi;
30
+ var clickOutsideIgnoreSelectors = useBuilderStore(function (state) {
31
+ return state.clickOutsideIgnoreSelectors;
32
+ });
29
33
  var wrapper = useRef(null);
30
34
  var handleClickOutside = useCallback(function (event) {
31
35
  var classList = event.target.classList;
@@ -36,6 +40,8 @@ function withClickOutside(WrappedComponent) {
36
40
  return event.target.closest(".".concat(item));
37
41
  }) || EVENT_IGNORED_ROLES.some(function (role) {
38
42
  return event.target.closest("[role=".concat(role, "]"));
43
+ }) || clickOutsideIgnoreSelectors.some(function (selector) {
44
+ return selector && event.target.closest(selector);
39
45
  }))) {
40
46
  return;
41
47
  }
@@ -43,7 +49,7 @@ function withClickOutside(WrappedComponent) {
43
49
  if (wrapper.current && !wrapper.current.contains(event.target)) {
44
50
  onClickOutside(event);
45
51
  }
46
- }, [exceptionalClasses, onClickOutside]);
52
+ }, [exceptionalClasses, onClickOutside, clickOutsideIgnoreSelectors]);
47
53
  useEffect(function () {
48
54
  window.addEventListener('mousedown', handleClickOutside, true);
49
55
  return function () {
@@ -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';\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 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 )\n ) {\n return;\n }\n\n if (wrapper.current && !wrapper.current.contains(event.target)) {\n onClickOutside(event);\n }\n }, [exceptionalClasses, onClickOutside]);\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","wrapper","useRef","handleClickOutside","useCallback","event","classList","target","contains","Array","from","some","xClass","includes","item","closest","EVENT_IGNORED_ROLES","role","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
+ {"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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"}
@@ -4,6 +4,7 @@
4
4
  * should be ignored by event handlers.
5
5
  */
6
6
  var EVENT_IGNORED_ROLES = ['dialog'];
7
+ var EVENT_IGNORED_FIELDS = ['combobox', 'listbox', 'input', 'textarea', 'select', '[contenteditable="true"]', '[role="combobox"]', '[role="listbox"]', '[aria-haspopup="listbox"]', 'input[type="color"]', 'input[type="number"]'];
7
8
 
8
- export { EVENT_IGNORED_ROLES };
9
+ export { EVENT_IGNORED_FIELDS, EVENT_IGNORED_ROLES };
9
10
  //# sourceMappingURL=eventIgnoredRoles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"eventIgnoredRoles.js","sources":["../../../src/constants/eventIgnoredRoles.js"],"sourcesContent":["/**\n * If an HTML Tag has its role attribute set as one of the\n * members of this array, events that originate from it\n * should be ignored by event handlers.\n */\nexport const EVENT_IGNORED_ROLES = [\n 'dialog',\n];\n"],"names":["EVENT_IGNORED_ROLES"],"mappings":"AAAA;AACA;AACA;AACA;AACA;IACaA,mBAAmB,GAAG,CACjC,QADiC;;;;"}
1
+ {"version":3,"file":"eventIgnoredRoles.js","sources":["../../../src/constants/eventIgnoredRoles.js"],"sourcesContent":["/**\n * If an HTML Tag has its role attribute set as one of the\n * members of this array, events that originate from it\n * should be ignored by event handlers.\n */\nexport const EVENT_IGNORED_ROLES = [\n 'dialog',\n];\n\nexport const EVENT_IGNORED_FIELDS = [\n 'combobox',\n 'listbox',\n 'input',\n 'textarea',\n 'select',\n '[contenteditable=\"true\"]',\n '[role=\"combobox\"]',\n '[role=\"listbox\"]',\n '[aria-haspopup=\"listbox\"]',\n 'input[type=\"color\"]',\n 'input[type=\"number\"]',\n];\n"],"names":["EVENT_IGNORED_ROLES","EVENT_IGNORED_FIELDS"],"mappings":"AAAA;AACA;AACA;AACA;AACA;IACaA,mBAAmB,GAAG,CACjC,QADiC;IAItBC,oBAAoB,GAAG,CAClC,UADkC,EAElC,SAFkC,EAGlC,OAHkC,EAIlC,UAJkC,EAKlC,QALkC,EAMlC,0BANkC,EAOlC,mBAPkC,EAQlC,kBARkC,EASlC,2BATkC,EAUlC,qBAVkC,EAWlC,sBAXkC;;;;"}
@@ -38,6 +38,7 @@ var builderStore = function builderStore(props) {
38
38
  left: 0,
39
39
  right: 0
40
40
  },
41
+ clickOutsideIgnoreSelectors: props.clickOutsideIgnoreSelectors || [],
41
42
  contextMenuProps: props.contextMenuProps || false,
42
43
  editedElement: props.editedElement || 'l_layout',
43
44
  guides: {},
@@ -1 +1 @@
1
- {"version":3,"file":"BuilderContext.js","sources":["../../../src/contexts/BuilderContext.js"],"sourcesContent":["import { createContext, useContext, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { createStore, useStore } from 'zustand';\n\nconst builderStore = props => {\n return createStore((set, get) => ({\n activeElements: props.activeElement || [],\n activeTab: props.activeTab || { left: 0, right: 0 },\n contextMenuProps: props.contextMenuProps || false,\n editedElement: props.editedElement || 'l_layout',\n guides: {},\n isAllSlidesPanelOpen: props.isAllSlidesPanelOpen || false,\n isLeftPanelOpen: props.isLeftPanelOpen || false,\n isResize: false,\n isRightPanelOpen: props.isRightPanelOpen || false,\n isSlidesPanelOpen: props.isSlidesPanelOpen || false,\n isTextEditorOpen: props.isTextEditorOpen || false,\n lastScrollPosition: props.lastScrollPosition || 0,\n matches: {},\n onRightPanelsToggled: props.onRightPanelsToggled || (() => {}),\n resetActiveElements: props.resetActiveElements || (() => {\n set({ activeElements: [], editedElement: 'l_layout' });\n }),\n setActiveElements: props.setActiveElements || ((itemID, edit = true, replace = true) => {\n const { activeElements } = get();\n set({\n activeElements: replace ? [itemID] : [...activeElements, itemID],\n ...edit ? { editedElement: !itemID ? 'l_layout' : `i_${itemID}` } : {},\n });\n }),\n setActiveElementsSelection: props.setActiveElementsSelection || (itemIDs => {\n if (!itemIDs || itemIDs.length === 0) {\n set({ activeElements: [], editedElement: 'l_layout' });\n } else if (itemIDs.length === 1) {\n set({\n activeElements: itemIDs,\n editedElement: `i_${itemIDs[0]}`,\n });\n } else {\n set({ activeElements: itemIDs });\n }\n }),\n setActiveTab: props.setActiveTab || ((panel, tabIndex) => {\n const { activeTab } = get();\n set({ activeTab: { ...activeTab, [panel]: tabIndex } });\n }),\n setContextMenuProps: status => {\n set({ contextMenuProps: status });\n },\n setEditedElement: id => {\n set({ editedElement: id });\n },\n setGuides: guides => {\n set({ guides });\n },\n setIsAllSlidesPanelOpen: status => {\n set({ isAllSlidesPanelOpen: status });\n },\n setIsLeftPanelOpen: props.setIsLeftPanelOpen || (status => {\n const { isEnoughCanvasSize } = get();\n set({\n isLeftPanelOpen: status,\n ...status && !isEnoughCanvasSize && { isRightPanelOpen: false },\n });\n }),\n setIsResize: status => {\n set({ isResize: status });\n },\n setIsRightPanelOpen: props.setIsRightPanelOpen || (status => {\n const { isEnoughCanvasSize, onRightPanelsToggled } = get();\n set({\n isRightPanelOpen: status,\n ...status && !isEnoughCanvasSize && { isLeftPanelOpen: false },\n ...status && { isSlidesPanelOpen: false },\n });\n onRightPanelsToggled(status);\n }),\n setIsSlidesPanelOpen: props.setIsSlidesPanelOpen || (status => {\n const { isEnoughCanvasSize, onRightPanelsToggled } = get();\n set({\n isSlidesPanelOpen: status,\n ...status && !isEnoughCanvasSize && { isLeftPanelOpen: false },\n ...status && { isRightPanelOpen: false },\n });\n onRightPanelsToggled(status);\n }),\n setIsTextEditorOpen: status => {\n set({ isTextEditorOpen: status });\n },\n setMatches: matches => {\n set({ matches });\n },\n setZoom: (zoom, layoutWidth) => {\n set({ zoom });\n if (layoutWidth) {\n const { clientWidth: paneWidth } = document.querySelector('.jfReport-pane .toolItemWrapper');\n const sceneWidth = parseInt(layoutWidth, 10) * zoom;\n if (window.innerWidth - sceneWidth + 100 > (paneWidth * 2)) {\n set({ isEnoughCanvasSize: true });\n } else {\n set({\n isEnoughCanvasSize: false,\n isLeftPanelOpen: false,\n });\n }\n }\n },\n shouldShowRightPanelInitially: props.shouldShowRightPanelInitially ?? true,\n zoom: 1,\n }));\n};\n\nconst BuilderContext = createContext(null);\n\nexport const BuilderProvider = ({ children, value, ...props }) => {\n const storeRef = useRef();\n if (!storeRef.current) {\n storeRef.current = builderStore(props);\n }\n\n return (\n <BuilderContext.Provider value={storeRef.current}>\n {children}\n </BuilderContext.Provider>\n );\n};\n\nBuilderProvider.propTypes = {\n children: PropTypes.any,\n value: PropTypes.object,\n};\n\nexport const BuilderConsumer = BuilderContext.Consumer;\n\nexport const useBuilderStore = selector => {\n const context = useContext(BuilderContext);\n if (!context) {\n throw new Error('useBuilderStore must be used with BuilderProvider!');\n }\n return useStore(context, selector);\n};\n"],"names":["builderStore","props","createStore","set","get","activeElements","activeElement","activeTab","left","right","contextMenuProps","editedElement","guides","isAllSlidesPanelOpen","isLeftPanelOpen","isResize","isRightPanelOpen","isSlidesPanelOpen","isTextEditorOpen","lastScrollPosition","matches","onRightPanelsToggled","resetActiveElements","setActiveElements","itemID","edit","replace","setActiveElementsSelection","itemIDs","length","setActiveTab","panel","tabIndex","setContextMenuProps","status","setEditedElement","id","setGuides","setIsAllSlidesPanelOpen","setIsLeftPanelOpen","isEnoughCanvasSize","setIsResize","setIsRightPanelOpen","setIsSlidesPanelOpen","setIsTextEditorOpen","setMatches","setZoom","zoom","layoutWidth","document","querySelector","paneWidth","clientWidth","sceneWidth","parseInt","window","innerWidth","shouldShowRightPanelInitially","BuilderContext","createContext","BuilderProvider","children","value","storeRef","useRef","current","_jsx","propTypes","PropTypes","any","object","Consumer","useBuilderStore","selector","context","useContext","Error","useStore"],"mappings":"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"}
1
+ {"version":3,"file":"BuilderContext.js","sources":["../../../src/contexts/BuilderContext.js"],"sourcesContent":["/* eslint-disable complexity */\nimport { createContext, useContext, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { createStore, useStore } from 'zustand';\n\nconst builderStore = props => {\n return createStore((set, get) => ({\n activeElements: props.activeElement || [],\n activeTab: props.activeTab || { left: 0, right: 0 },\n clickOutsideIgnoreSelectors: props.clickOutsideIgnoreSelectors || [],\n contextMenuProps: props.contextMenuProps || false,\n editedElement: props.editedElement || 'l_layout',\n guides: {},\n isAllSlidesPanelOpen: props.isAllSlidesPanelOpen || false,\n isLeftPanelOpen: props.isLeftPanelOpen || false,\n isResize: false,\n isRightPanelOpen: props.isRightPanelOpen || false,\n isSlidesPanelOpen: props.isSlidesPanelOpen || false,\n isTextEditorOpen: props.isTextEditorOpen || false,\n lastScrollPosition: props.lastScrollPosition || 0,\n matches: {},\n onRightPanelsToggled: props.onRightPanelsToggled || (() => {}),\n resetActiveElements: props.resetActiveElements || (() => {\n set({ activeElements: [], editedElement: 'l_layout' });\n }),\n setActiveElements: props.setActiveElements || ((itemID, edit = true, replace = true) => {\n const { activeElements } = get();\n set({\n activeElements: replace ? [itemID] : [...activeElements, itemID],\n ...edit ? { editedElement: !itemID ? 'l_layout' : `i_${itemID}` } : {},\n });\n }),\n setActiveElementsSelection: props.setActiveElementsSelection || (itemIDs => {\n if (!itemIDs || itemIDs.length === 0) {\n set({ activeElements: [], editedElement: 'l_layout' });\n } else if (itemIDs.length === 1) {\n set({\n activeElements: itemIDs,\n editedElement: `i_${itemIDs[0]}`,\n });\n } else {\n set({ activeElements: itemIDs });\n }\n }),\n setActiveTab: props.setActiveTab || ((panel, tabIndex) => {\n const { activeTab } = get();\n set({ activeTab: { ...activeTab, [panel]: tabIndex } });\n }),\n setContextMenuProps: status => {\n set({ contextMenuProps: status });\n },\n setEditedElement: id => {\n set({ editedElement: id });\n },\n setGuides: guides => {\n set({ guides });\n },\n setIsAllSlidesPanelOpen: status => {\n set({ isAllSlidesPanelOpen: status });\n },\n setIsLeftPanelOpen: props.setIsLeftPanelOpen || (status => {\n const { isEnoughCanvasSize } = get();\n set({\n isLeftPanelOpen: status,\n ...status && !isEnoughCanvasSize && { isRightPanelOpen: false },\n });\n }),\n setIsResize: status => {\n set({ isResize: status });\n },\n setIsRightPanelOpen: props.setIsRightPanelOpen || (status => {\n const { isEnoughCanvasSize, onRightPanelsToggled } = get();\n set({\n isRightPanelOpen: status,\n ...status && !isEnoughCanvasSize && { isLeftPanelOpen: false },\n ...status && { isSlidesPanelOpen: false },\n });\n onRightPanelsToggled(status);\n }),\n setIsSlidesPanelOpen: props.setIsSlidesPanelOpen || (status => {\n const { isEnoughCanvasSize, onRightPanelsToggled } = get();\n set({\n isSlidesPanelOpen: status,\n ...status && !isEnoughCanvasSize && { isLeftPanelOpen: false },\n ...status && { isRightPanelOpen: false },\n });\n onRightPanelsToggled(status);\n }),\n setIsTextEditorOpen: status => {\n set({ isTextEditorOpen: status });\n },\n setMatches: matches => {\n set({ matches });\n },\n setZoom: (zoom, layoutWidth) => {\n set({ zoom });\n if (layoutWidth) {\n const { clientWidth: paneWidth } = document.querySelector('.jfReport-pane .toolItemWrapper');\n const sceneWidth = parseInt(layoutWidth, 10) * zoom;\n if (window.innerWidth - sceneWidth + 100 > (paneWidth * 2)) {\n set({ isEnoughCanvasSize: true });\n } else {\n set({\n isEnoughCanvasSize: false,\n isLeftPanelOpen: false,\n });\n }\n }\n },\n shouldShowRightPanelInitially: props.shouldShowRightPanelInitially ?? true,\n zoom: 1,\n }));\n};\n\nconst BuilderContext = createContext(null);\n\nexport const BuilderProvider = ({ children, value, ...props }) => {\n const storeRef = useRef();\n if (!storeRef.current) {\n storeRef.current = builderStore(props);\n }\n\n return (\n <BuilderContext.Provider value={storeRef.current}>\n {children}\n </BuilderContext.Provider>\n );\n};\n\nBuilderProvider.propTypes = {\n children: PropTypes.any,\n value: PropTypes.object,\n};\n\nexport const BuilderConsumer = BuilderContext.Consumer;\n\nexport const useBuilderStore = selector => {\n const context = useContext(BuilderContext);\n if (!context) {\n throw new Error('useBuilderStore must be used with BuilderProvider!');\n }\n return useStore(context, selector);\n};\n"],"names":["builderStore","props","createStore","set","get","activeElements","activeElement","activeTab","left","right","clickOutsideIgnoreSelectors","contextMenuProps","editedElement","guides","isAllSlidesPanelOpen","isLeftPanelOpen","isResize","isRightPanelOpen","isSlidesPanelOpen","isTextEditorOpen","lastScrollPosition","matches","onRightPanelsToggled","resetActiveElements","setActiveElements","itemID","edit","replace","setActiveElementsSelection","itemIDs","length","setActiveTab","panel","tabIndex","setContextMenuProps","status","setEditedElement","id","setGuides","setIsAllSlidesPanelOpen","setIsLeftPanelOpen","isEnoughCanvasSize","setIsResize","setIsRightPanelOpen","setIsSlidesPanelOpen","setIsTextEditorOpen","setMatches","setZoom","zoom","layoutWidth","document","querySelector","paneWidth","clientWidth","sceneWidth","parseInt","window","innerWidth","shouldShowRightPanelInitially","BuilderContext","createContext","BuilderProvider","children","value","storeRef","useRef","current","_jsx","propTypes","PropTypes","any","object","Consumer","useBuilderStore","selector","context","useContext","Error","useStore"],"mappings":"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"}
@@ -4,7 +4,7 @@ import { PresentationProvider } from './PresentationContext.js';
4
4
  import { PropProvider } from './PropContext.js';
5
5
  import { jsx } from 'react/jsx-runtime';
6
6
 
7
- var _excluded = ["children", "lastScrollPosition", "mode", "onRightPanelsToggled", "presentationBarActions", "shouldShowRightPanelInitially", "useFixedPresentationBar"];
7
+ var _excluded = ["children", "clickOutsideIgnoreSelectors", "lastScrollPosition", "mode", "onRightPanelsToggled", "presentationBarActions", "shouldShowRightPanelInitially", "useFixedPresentationBar"];
8
8
 
9
9
  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; }
10
10
 
@@ -18,6 +18,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
18
18
 
19
19
  var Providers = function Providers(_ref) {
20
20
  var children = _ref.children,
21
+ clickOutsideIgnoreSelectors = _ref.clickOutsideIgnoreSelectors,
21
22
  lastScrollPosition = _ref.lastScrollPosition,
22
23
  mode = _ref.mode,
23
24
  onRightPanelsToggled = _ref.onRightPanelsToggled,
@@ -27,6 +28,7 @@ var Providers = function Providers(_ref) {
27
28
  props = _objectWithoutProperties(_ref, _excluded);
28
29
 
29
30
  return /*#__PURE__*/jsx(BuilderProvider, {
31
+ clickOutsideIgnoreSelectors: clickOutsideIgnoreSelectors,
30
32
  lastScrollPosition: lastScrollPosition,
31
33
  onRightPanelsToggled: onRightPanelsToggled,
32
34
  shouldShowRightPanelInitially: shouldShowRightPanelInitially,
@@ -43,6 +45,9 @@ var Providers = function Providers(_ref) {
43
45
  Providers.propTypes = {
44
46
  children: PropTypes.node.isRequired,
45
47
 
48
+ /** CSS selectors ignored by right panel click-outside logic */
49
+ clickOutsideIgnoreSelectors: PropTypes.arrayOf(PropTypes.string),
50
+
46
51
  /** Last scroll position */
47
52
  lastScrollPosition: PropTypes.number,
48
53
 
@@ -1 +1 @@
1
- {"version":3,"file":"Providers.js","sources":["../../../src/contexts/Providers.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { BuilderProvider } from './BuilderContext';\nimport { PresentationProvider } from './PresentationContext';\nimport { PropProvider } from './PropContext';\n\nconst Providers = ({\n children,\n lastScrollPosition,\n mode,\n onRightPanelsToggled,\n presentationBarActions,\n shouldShowRightPanelInitially,\n useFixedPresentationBar,\n ...props\n}) => {\n return (\n <BuilderProvider\n lastScrollPosition={lastScrollPosition}\n onRightPanelsToggled={onRightPanelsToggled}\n shouldShowRightPanelInitially={shouldShowRightPanelInitially}\n >\n <PropProvider {...props}>\n {mode === 'customize' ? children : (\n <PresentationProvider\n presentationBarActions={presentationBarActions}\n useFixedPresentationBar={useFixedPresentationBar}\n >\n {children}\n </PresentationProvider>\n )}\n </PropProvider>\n </BuilderProvider>\n );\n};\n\nProviders.propTypes = {\n children: PropTypes.node.isRequired,\n /** Last scroll position */\n lastScrollPosition: PropTypes.number,\n /** Mode of the report */\n mode: PropTypes.oneOf(['customize', 'presentation', 'preview', 'print']),\n /** Function called when the slides or the right panel is\n * toggled takes a boolean value to indicate whether or\n * not the panel is toggled open.\n */\n onRightPanelsToggled: PropTypes.func,\n /** To pass in action definitions that will be rendered as buttons */\n presentationBarActions: PropTypes.arrayOf(PropTypes.shape({})),\n /** Flag for fixed action bar */\n shouldShowRightPanelInitially: PropTypes.bool,\n /** Flag for whether to show the right panel initially */\n useFixedPresentationBar: PropTypes.bool,\n};\n\nexport default Providers;\n"],"names":["Providers","children","lastScrollPosition","mode","onRightPanelsToggled","presentationBarActions","shouldShowRightPanelInitially","useFixedPresentationBar","props","_jsx","propTypes","PropTypes","node","isRequired","number","oneOf","func","arrayOf","shape","bool"],"mappings":";;;;;;;;;;;;;;;;;;IAKMA,SAAS,GAAG,SAAZA,SAAY,OASZ;AAAA,MARJC,QAQI,QARJA,QAQI;AAAA,MAPJC,kBAOI,QAPJA,kBAOI;AAAA,MANJC,IAMI,QANJA,IAMI;AAAA,MALJC,oBAKI,QALJA,oBAKI;AAAA,MAJJC,sBAII,QAJJA,sBAII;AAAA,MAHJC,6BAGI,QAHJA,6BAGI;AAAA,MAFJC,uBAEI,QAFJA,uBAEI;AAAA,MADDC,KACC;;AACJ,sBACEC,IAAC,eAAD;AACE,IAAA,kBAAkB,EAAEP,kBADtB;AAEE,IAAA,oBAAoB,EAAEE,oBAFxB;AAGE,IAAA,6BAA6B,EAAEE,6BAHjC;AAAA,2BAKEG,IAAC,YAAD,kCAAkBD,KAAlB;AAAA,gBACGL,IAAI,KAAK,WAAT,GAAuBF,QAAvB,gBACCQ,IAAC,oBAAD;AACE,QAAA,sBAAsB,EAAEJ,sBAD1B;AAEE,QAAA,uBAAuB,EAAEE,uBAF3B;AAAA,kBAIGN;AAJH;AAFJ;AALF,IADF;AAkBD;;AAEDD,SAAS,CAACU,SAAV,GAAsB;AACpBT,EAAAA,QAAQ,EAAEU,SAAS,CAACC,IAAV,CAAeC,UADL;;AAEpB;AACAX,EAAAA,kBAAkB,EAAES,SAAS,CAACG,MAHV;;AAIpB;AACAX,EAAAA,IAAI,EAAEQ,SAAS,CAACI,KAAV,CAAgB,CAAC,WAAD,EAAc,cAAd,EAA8B,SAA9B,EAAyC,OAAzC,CAAhB,CALc;;AAMpB;AACF;AACA;AACA;AACEX,EAAAA,oBAAoB,EAAEO,SAAS,CAACK,IAVZ;;AAWpB;AACAX,EAAAA,sBAAsB,EAAEM,SAAS,CAACM,OAAV,CAAkBN,SAAS,CAACO,KAAV,CAAgB,EAAhB,CAAlB,CAZJ;;AAapB;AACAZ,EAAAA,6BAA6B,EAAEK,SAAS,CAACQ,IAdrB;;AAepB;AACAZ,EAAAA,uBAAuB,EAAEI,SAAS,CAACQ;AAhBf,CAAtB;;;;"}
1
+ {"version":3,"file":"Providers.js","sources":["../../../src/contexts/Providers.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { BuilderProvider } from './BuilderContext';\nimport { PresentationProvider } from './PresentationContext';\nimport { PropProvider } from './PropContext';\n\nconst Providers = ({\n children,\n clickOutsideIgnoreSelectors,\n lastScrollPosition,\n mode,\n onRightPanelsToggled,\n presentationBarActions,\n shouldShowRightPanelInitially,\n useFixedPresentationBar,\n ...props\n}) => {\n return (\n <BuilderProvider\n clickOutsideIgnoreSelectors={clickOutsideIgnoreSelectors}\n lastScrollPosition={lastScrollPosition}\n onRightPanelsToggled={onRightPanelsToggled}\n shouldShowRightPanelInitially={shouldShowRightPanelInitially}\n >\n <PropProvider {...props}>\n {mode === 'customize' ? children : (\n <PresentationProvider\n presentationBarActions={presentationBarActions}\n useFixedPresentationBar={useFixedPresentationBar}\n >\n {children}\n </PresentationProvider>\n )}\n </PropProvider>\n </BuilderProvider>\n );\n};\n\nProviders.propTypes = {\n children: PropTypes.node.isRequired,\n /** CSS selectors ignored by right panel click-outside logic */\n clickOutsideIgnoreSelectors: PropTypes.arrayOf(PropTypes.string),\n /** Last scroll position */\n lastScrollPosition: PropTypes.number,\n /** Mode of the report */\n mode: PropTypes.oneOf(['customize', 'presentation', 'preview', 'print']),\n /** Function called when the slides or the right panel is\n * toggled takes a boolean value to indicate whether or\n * not the panel is toggled open.\n */\n onRightPanelsToggled: PropTypes.func,\n /** To pass in action definitions that will be rendered as buttons */\n presentationBarActions: PropTypes.arrayOf(PropTypes.shape({})),\n /** Flag for fixed action bar */\n shouldShowRightPanelInitially: PropTypes.bool,\n /** Flag for whether to show the right panel initially */\n useFixedPresentationBar: PropTypes.bool,\n};\n\nexport default Providers;\n"],"names":["Providers","children","clickOutsideIgnoreSelectors","lastScrollPosition","mode","onRightPanelsToggled","presentationBarActions","shouldShowRightPanelInitially","useFixedPresentationBar","props","_jsx","propTypes","PropTypes","node","isRequired","arrayOf","string","number","oneOf","func","shape","bool"],"mappings":";;;;;;;;;;;;;;;;;;IAKMA,SAAS,GAAG,SAAZA,SAAY,OAUZ;AAAA,MATJC,QASI,QATJA,QASI;AAAA,MARJC,2BAQI,QARJA,2BAQI;AAAA,MAPJC,kBAOI,QAPJA,kBAOI;AAAA,MANJC,IAMI,QANJA,IAMI;AAAA,MALJC,oBAKI,QALJA,oBAKI;AAAA,MAJJC,sBAII,QAJJA,sBAII;AAAA,MAHJC,6BAGI,QAHJA,6BAGI;AAAA,MAFJC,uBAEI,QAFJA,uBAEI;AAAA,MADDC,KACC;;AACJ,sBACEC,IAAC,eAAD;AACE,IAAA,2BAA2B,EAAER,2BAD/B;AAEE,IAAA,kBAAkB,EAAEC,kBAFtB;AAGE,IAAA,oBAAoB,EAAEE,oBAHxB;AAIE,IAAA,6BAA6B,EAAEE,6BAJjC;AAAA,2BAMEG,IAAC,YAAD,kCAAkBD,KAAlB;AAAA,gBACGL,IAAI,KAAK,WAAT,GAAuBH,QAAvB,gBACCS,IAAC,oBAAD;AACE,QAAA,sBAAsB,EAAEJ,sBAD1B;AAEE,QAAA,uBAAuB,EAAEE,uBAF3B;AAAA,kBAIGP;AAJH;AAFJ;AANF,IADF;AAmBD;;AAEDD,SAAS,CAACW,SAAV,GAAsB;AACpBV,EAAAA,QAAQ,EAAEW,SAAS,CAACC,IAAV,CAAeC,UADL;;AAEpB;AACAZ,EAAAA,2BAA2B,EAAEU,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACI,MAA5B,CAHT;;AAIpB;AACAb,EAAAA,kBAAkB,EAAES,SAAS,CAACK,MALV;;AAMpB;AACAb,EAAAA,IAAI,EAAEQ,SAAS,CAACM,KAAV,CAAgB,CAAC,WAAD,EAAc,cAAd,EAA8B,SAA9B,EAAyC,OAAzC,CAAhB,CAPc;;AAQpB;AACF;AACA;AACA;AACEb,EAAAA,oBAAoB,EAAEO,SAAS,CAACO,IAZZ;;AAapB;AACAb,EAAAA,sBAAsB,EAAEM,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACQ,KAAV,CAAgB,EAAhB,CAAlB,CAdJ;;AAepB;AACAb,EAAAA,6BAA6B,EAAEK,SAAS,CAACS,IAhBrB;;AAiBpB;AACAb,EAAAA,uBAAuB,EAAEI,SAAS,CAACS;AAlBf,CAAtB;;;;"}
@@ -151,13 +151,13 @@
151
151
  }
152
152
  }
153
153
 
154
- .controllerItem {
154
+ :where(.controllerItem) {
155
155
  background: #343C6A;
156
156
  border-radius: 3px;
157
157
  border: none;
158
158
  transition: $transition;
159
159
 
160
- &:hover {
160
+ &:where(:hover) {
161
161
  background: rgba(111, 118, 167, 0.6);
162
162
  }
163
163
  }
@@ -197,6 +197,113 @@
197
197
  }
198
198
  }
199
199
 
200
+ // Page Toolbar new styles //
201
+ &.page-toolbar {
202
+ position: absolute;
203
+ top: 58px;
204
+ right: -40px;
205
+ gap: 4px;
206
+
207
+ .controllerItem {
208
+ max-width: 24px;
209
+ max-height: 24px;
210
+ min-width: 24px;
211
+ min-height: 24px;
212
+
213
+ .toolbar-icon {
214
+ width: 16px;
215
+ height: 16px;
216
+ }
217
+ }
218
+ }
219
+
220
+ // Zoom Toolbar new styles //
221
+ &.zoom-toolbar {
222
+ position: absolute;
223
+ bottom: 20px;
224
+ left: 20px;
225
+ gap: 4px;
226
+ z-index: 2;
227
+
228
+ .controllerItem {
229
+ max-width: 32px;
230
+ max-height: 32px;
231
+ min-width: 32px;
232
+ min-height: 32px;
233
+
234
+ .toolbar-icon {
235
+ width: 20px;
236
+ height: 20px;
237
+ }
238
+ }
239
+ }
240
+
241
+ &.page-toolbar, &.zoom-toolbar {
242
+ display: flex;
243
+ flex-direction: column;
244
+ align-items: flex-start;
245
+ justify-content: flex-start;
246
+ transition: $transition;
247
+ border-radius: 3px;
248
+
249
+ .floatingController-container {
250
+ display: flex;
251
+ padding: 4px;
252
+ flex-direction: column;
253
+ justify-content: center;
254
+ align-items: center;
255
+ gap: 4px;
256
+ box-shadow: 0 4px 8px 0 rgba(84, 95, 111, 0.15), 0 0 2px 0 rgba(37, 45, 91, 0.1);
257
+ }
258
+
259
+ :where(.floatingController-container + .floatingController-container) {
260
+ margin-top: 0;
261
+ }
262
+
263
+ .controllerItem {
264
+ width: 100%;
265
+ height: 100%;
266
+ display: flex;
267
+ padding: 4px;
268
+ flex-shrink: 0;
269
+ flex-direction: column;
270
+ justify-content: center;
271
+ align-items: center;
272
+ border-radius: 4px;
273
+ background-color: #F9F9FF;
274
+ transition: $transition;
275
+
276
+ .toolbar-icon {
277
+ color: #0A1551;
278
+ fill: #0A1551;
279
+ transition: $transition;
280
+ }
281
+
282
+ &:where(:hover) {
283
+ background-color: #E3E5F5;
284
+ transition: $transition;
285
+ }
286
+
287
+ &:hover.primary {
288
+ background-color: #EDF8FF;
289
+
290
+ .toolbar-icon {
291
+ color: #0075E3;
292
+ fill: #0075E3;
293
+ }
294
+ }
295
+
296
+ &:hover.error {
297
+ background-color: #FEF2F2;
298
+
299
+ .toolbar-icon {
300
+ color: #DC2626;
301
+ fill: #DC2626;
302
+ }
303
+ }
304
+ }
305
+ }
306
+
200
307
 
201
308
  &.forZoom {
202
309
  left: 15px;
@@ -153,43 +153,40 @@
153
153
 
154
154
 
155
155
  .contextMenu-wrapper {
156
- border-radius: 3px;
157
- background: #fff;
158
- color: #fff;
159
- display: block;
156
+ display: flex;
157
+ padding: 4px;
158
+ flex-direction: column;
159
+ justify-content: center;
160
+ align-items: flex-start;
160
161
  position: absolute;
161
162
  width: 225px;
162
163
  z-index: 10;
163
- box-shadow: 0 0 8px 1px rgba(0, 0, 0, 0.2);
164
+ border-radius: 4px;
165
+ background: #252D5B;
166
+ color: #FFFFFF;
164
167
  }
165
168
 
166
169
  .contextMenu-button {
167
- transition: .2s ease-in-out;
168
170
  cursor: pointer;
169
171
  display: flex;
170
172
  align-items: center;
171
173
  justify-content: flex-start;
172
174
  background: none;
173
175
  border: none;
174
- height: 45px;
176
+ height: 40px;
175
177
  width: 100%;
176
178
  font-size: 0.875rem;
177
- padding-left: 14px;
179
+ padding: 0 8px;
178
180
  text-align: left;
181
+ color: #FFFFFF;
182
+ transition: .2s ease-in-out;
179
183
 
180
184
  .contextMenu-icon {
185
+ color: #FFFFFF;
181
186
  margin-right: 9px;
182
- width: 15px;
183
- height: 14px;
184
-
185
- .icon-lock {
186
- width: 16px;
187
- height: 14px;
188
- fill: $blue;
189
- stroke: $blue;
190
-
191
- > path { fill: $blue; }
192
- }
187
+ width: 16px;
188
+ height: 16px;
189
+ fill: #FFFFFF;
193
190
  }
194
191
 
195
192
  .contextMenu-text {
@@ -200,20 +197,16 @@
200
197
  }
201
198
 
202
199
  &:hover {
203
- background: #f0f0f0;
200
+ background-color: #454E80;
201
+ transition: all 0.3s ease;
204
202
  }
205
203
  }
206
204
 
207
205
  .contextMenu-button.isDanger {
206
+ color: #DC2626;
208
207
 
209
208
  .contextMenu-icon {
210
- svg {
211
- width: 16px;
212
- height: 16px;
213
- }
209
+ color: #DC2626;
210
+ fill: #DC2626;
214
211
  }
215
212
  }
216
-
217
- .contextMenu-button + .contextMenu-button {
218
- border-top: 1px solid #F0F0F0;
219
- }
@@ -74,17 +74,16 @@
74
74
  content: "";
75
75
  position: absolute;
76
76
  display: block;
77
- background-color: #ddefff;
78
- border: 1px solid $blue;
77
+ background-color: #FFFFFF;
78
+ border: 3px solid #0099FF;
79
79
  transition: .3s ease-in-out;
80
80
  }
81
81
 
82
82
  &:not(.forLine):after {
83
- left: 2px;
84
- top: 2px;
85
- right: 2px;
86
- bottom: 2px;
87
- border-radius: 2px;
83
+ inset: 2px;
84
+ width: 3px;
85
+ height: 3px;
86
+ border-radius: 3px;
88
87
  }
89
88
 
90
89
  &.forLine {
@@ -93,26 +92,28 @@
93
92
  }
94
93
  &:not(.isVertical) {
95
94
  &:after {
96
- top: 1px;
95
+ top: -0.5px;
97
96
  bottom: 1px;
98
- left: calc(50% - 10px);
99
- width: 18px;
97
+ left: calc(50% - 6px);
98
+ width: 8px;
99
+ height: 4px;
100
100
  }
101
101
  }
102
102
 
103
103
  &.isVertical {
104
104
  &:after {
105
- top: calc(50% - 10px);
106
- left: 1px;
107
- right: 1px;
108
- height: 18px;
105
+ top: calc(50% - 6px);
106
+ left: -0.5px;
107
+ right: -0.5px;
108
+ height: 8px;
109
+ width: 4px;
109
110
  }
110
111
  }
111
112
  }
112
113
 
113
114
  &:hover {
114
115
  &:after {
115
- background-color: #B4DCFF;
116
+ background-color: #FFFFFF;
116
117
  }
117
118
  }
118
119
  }
@@ -123,7 +124,7 @@
123
124
  top: -50px;
124
125
  padding: 5px;
125
126
  background-color: #ddefff;
126
- border: 1px solid $blue;
127
+ border: 2px solid #0099FF;
127
128
  border-radius: 50%;
128
129
 
129
130
  &:before {
@@ -148,8 +149,7 @@
148
149
  }
149
150
 
150
151
  .reportItemResizer {
151
- border: 1px solid $blue;
152
- box-shadow: 0 0 0 3px rgba(106, 110, 143, 0.15);
152
+ border: 3px solid #0099FF;
153
153
  border-radius: 3px;
154
154
 
155
155
  &.hideVerticalHandle {
@@ -216,56 +216,82 @@
216
216
  }
217
217
 
218
218
  .jfReport {
219
- .reportItemMenu {
219
+ .report-item-toolbar {
220
220
  position: absolute;
221
- top: 0;
221
+ top: 50%;
222
+ transform: translateY(-50%);
222
223
  right: -24px;
223
- background-color: $blue;
224
- border-radius: 4px;
224
+ background-color: #FFFFFF;
225
+ padding: 4px;
226
+ border-radius: 3px;
227
+ display: flex;
228
+ flex-direction: column;
229
+ align-items: center;
230
+ justify-content: center;
225
231
  text-align: center;
226
232
  pointer-events: all;
233
+ z-index: 2;
227
234
  animation: .2s fadeRight forwards;
235
+ gap: 4px;
236
+ box-shadow: 0 4px 8px 0 rgba(84, 95, 111, 0.15), 0 0 2px 0 rgba(37, 45, 91, 0.1);
228
237
 
229
238
  &-item {
230
- display: inline-block;
231
- padding: 6px 5px;
232
- background-color: transparent;
233
-
234
- svg {
235
- width: 14px;
236
- height: 14px;
237
- backface-visibility: hidden;
238
- transition: .3s ease-in-out;
239
- transform: translateZ(0);
239
+ max-width: 24px;
240
+ max-height: 24px;
241
+ min-width: 24px;
242
+ min-height: 24px;
243
+ width: 100%;
244
+ height: 100%;
245
+ display: flex;
246
+ padding: 4px;
247
+ flex-shrink: 0;
248
+ flex-direction: column;
249
+ justify-content: center;
250
+ align-items: center;
251
+ border-radius: 4px;
252
+ background-color: #F9F9FF;
253
+ transition: $transition;
254
+
255
+ .toolbar-icon {
256
+ width: 16px;
257
+ height: 16px;
258
+ color: #0A1551;
259
+ fill: #0A1551;
260
+ transition: $transition;
240
261
  }
241
- }
242
262
 
243
- &:not(.forLocked) {
244
- padding: 0 4px;
245
- .reportItemMenu-item {
246
- display: inline-flex;
247
- align-items: center;
248
- justify-content: center;
249
- width: 20px;
250
- height: 20px;
251
- padding: 0;
252
- border-radius: 3px;
253
- transition: 0.3s ease-in;
263
+ &:where(:hover) {
264
+ background-color: #E3E5F5;
265
+ transition: $transition;
266
+ }
254
267
 
255
- + .reportItemMenu-item {
256
- margin-top: 4px;
257
- }
268
+ &:hover.primary {
269
+ background-color: #EDF8FF;
258
270
 
259
- &:first-child {
260
- margin-top: 4px;
271
+ .toolbar-icon {
272
+ color: #0075E3;
273
+ fill: #0075E3;
261
274
  }
275
+ }
276
+
277
+ &:hover.error {
278
+ background-color: #FEF2F2;
262
279
 
263
- &:last-child {
264
- margin-bottom: 4px;
280
+ .toolbar-icon {
281
+ color: #DC2626;
282
+ fill: #DC2626;
265
283
  }
284
+ }
285
+ }
286
+
287
+ &.isLocked.forLocked {
288
+ background-color: #C8CEED;
289
+
290
+ .report-item-toolbar-item {
291
+ background-color: #C8CEED;
266
292
 
267
293
  &:hover {
268
- background-color: rgba(255, 255, 255, 0.2);
294
+ background-color: #E3E5F5;
269
295
  }
270
296
  }
271
297
  }
@@ -277,7 +303,7 @@
277
303
  opacity: 0;
278
304
  }
279
305
  100% {
280
- right: -35px;
306
+ right: -38px;
281
307
  opacity: 1;
282
308
  }
283
309
  }
@@ -291,7 +291,7 @@
291
291
  }
292
292
  }
293
293
 
294
- .reportItemMenu + .ql-toolbar.ql-snow {
294
+ .report-item-toolbar + .ql-toolbar.ql-snow {
295
295
  .ql-stroke {
296
296
  /* stylelint-disable-next-line declaration-no-important */
297
297
  stroke: #6F76A7 !important;
@@ -304,6 +304,6 @@
304
304
  }
305
305
  }
306
306
 
307
- .reportItemMenu + .ql-toolbar.ql-snow .ql-button:hover {
307
+ .report-item-toolbar + .ql-toolbar.ql-snow .ql-button:hover {
308
308
  background-color: #F3F3FE;
309
309
  }