@jotforminc/dnd-builder 3.6.2 → 3.6.3

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 (52) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/lib/cjs/assets/svg/ellipsis-vertical.svg.js +22 -0
  3. package/lib/cjs/assets/svg/ellipsis-vertical.svg.js.map +1 -0
  4. package/lib/cjs/components/Builder/BuilderWrapper.js +3 -3
  5. package/lib/cjs/components/Builder/BuilderWrapper.js.map +1 -1
  6. package/lib/cjs/components/Builder/Scene.js +9 -5
  7. package/lib/cjs/components/Builder/Scene.js.map +1 -1
  8. package/lib/cjs/components/Panels/SlidesNavigator/AddSlideButton.js +48 -0
  9. package/lib/cjs/components/Panels/SlidesNavigator/AddSlideButton.js.map +1 -0
  10. package/lib/cjs/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js +52 -9
  11. package/lib/cjs/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js.map +1 -1
  12. package/lib/cjs/components/Panels/SlidesNavigator/MoreMenuOverlay.js +20 -0
  13. package/lib/cjs/components/Panels/SlidesNavigator/MoreMenuOverlay.js.map +1 -0
  14. package/lib/cjs/components/Panels/SlidesNavigator/SlideItem.js +11 -5
  15. package/lib/cjs/components/Panels/SlidesNavigator/SlideItem.js.map +1 -1
  16. package/lib/cjs/components/Panels/SlidesNavigator/SlidesNavigator.js +2 -32
  17. package/lib/cjs/components/Panels/SlidesNavigator/SlidesNavigator.js.map +1 -1
  18. package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js +1 -1
  19. package/lib/cjs/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
  20. package/lib/cjs/styles/slides-navigator.scss +39 -0
  21. package/lib/cjs/utils/functions.js +5 -7
  22. package/lib/cjs/utils/functions.js.map +1 -1
  23. package/lib/cjs/utils/hooks.js +29 -4
  24. package/lib/cjs/utils/hooks.js.map +1 -1
  25. package/lib/cjs/utils/icons.js +2 -0
  26. package/lib/cjs/utils/icons.js.map +1 -1
  27. package/lib/esm/assets/svg/ellipsis-vertical.svg.js +20 -0
  28. package/lib/esm/assets/svg/ellipsis-vertical.svg.js.map +1 -0
  29. package/lib/esm/components/Builder/BuilderWrapper.js +4 -4
  30. package/lib/esm/components/Builder/BuilderWrapper.js.map +1 -1
  31. package/lib/esm/components/Builder/Scene.js +11 -7
  32. package/lib/esm/components/Builder/Scene.js.map +1 -1
  33. package/lib/esm/components/Panels/SlidesNavigator/AddSlideButton.js +46 -0
  34. package/lib/esm/components/Panels/SlidesNavigator/AddSlideButton.js.map +1 -0
  35. package/lib/esm/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js +54 -11
  36. package/lib/esm/components/Panels/SlidesNavigator/MoreMenu/SlideItemMoreMenu.js.map +1 -1
  37. package/lib/esm/components/Panels/SlidesNavigator/MoreMenuOverlay.js +18 -0
  38. package/lib/esm/components/Panels/SlidesNavigator/MoreMenuOverlay.js.map +1 -0
  39. package/lib/esm/components/Panels/SlidesNavigator/SlideItem.js +11 -5
  40. package/lib/esm/components/Panels/SlidesNavigator/SlideItem.js.map +1 -1
  41. package/lib/esm/components/Panels/SlidesNavigator/SlidesNavigator.js +2 -32
  42. package/lib/esm/components/Panels/SlidesNavigator/SlidesNavigator.js.map +1 -1
  43. package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js +2 -2
  44. package/lib/esm/components/Panels/SlidesPanel/SlidesPanel.js.map +1 -1
  45. package/lib/esm/styles/slides-navigator.scss +39 -0
  46. package/lib/esm/utils/functions.js +5 -6
  47. package/lib/esm/utils/functions.js.map +1 -1
  48. package/lib/esm/utils/hooks.js +29 -5
  49. package/lib/esm/utils/hooks.js.map +1 -1
  50. package/lib/esm/utils/icons.js +1 -0
  51. package/lib/esm/utils/icons.js.map +1 -1
  52. package/package.json +1 -1
@@ -1,33 +1,14 @@
1
1
  'use strict';
2
2
 
3
3
  var BuilderContext = require('../../../contexts/BuilderContext.js');
4
- var hooks = require('../../../utils/hooks.js');
5
4
  var SlideItemsList = require('./SlideItemsList.js');
6
- var PropContext = require('../../../contexts/PropContext.js');
7
- var functions = require('../../../utils/functions.js');
5
+ var AddSlideButton = require('./AddSlideButton.js');
8
6
  var jsxRuntime = require('react/jsx-runtime');
9
- var plus = require('../../../assets/svg/plus.svg.js');
10
7
 
11
8
  var SlidesNavigator = function SlidesNavigator() {
12
9
  var isSlidesNavigatorOpen = BuilderContext.useBuilderStore(function (state) {
13
10
  return state.isSlidesNavigatorOpen;
14
11
  });
15
- var visiblePageOrder = BuilderContext.useBuilderStore(function (state) {
16
- return state.visiblePageOrder;
17
- });
18
-
19
- var _useTranslatedTexts = hooks.useTranslatedTexts(),
20
- ADD_SLIDE = _useTranslatedTexts.ADD_SLIDE;
21
-
22
- var onPageAdd = PropContext.usePropStore(function (state) {
23
- return state.onPageAdd;
24
- });
25
-
26
- var onAddItemClick = function onAddItemClick() {
27
- var newPageIndex = visiblePageOrder + 1;
28
- onPageAdd(newPageIndex);
29
- functions.scrollToTarget("pageActions-id-".concat(newPageIndex), 350);
30
- };
31
12
 
32
13
  if (!isSlidesNavigatorOpen) {
33
14
  return null;
@@ -35,18 +16,7 @@ var SlidesNavigator = function SlidesNavigator() {
35
16
 
36
17
  return /*#__PURE__*/jsxRuntime.jsxs("aside", {
37
18
  className: "slides-navigator",
38
- children: [/*#__PURE__*/jsxRuntime.jsxs("button", {
39
- className: "slides-navigator-add-item",
40
- onClick: onAddItemClick,
41
- title: ADD_SLIDE,
42
- type: "button",
43
- children: [/*#__PURE__*/jsxRuntime.jsx(plus, {
44
- className: "slides-navigator-add-item-icon"
45
- }), /*#__PURE__*/jsxRuntime.jsx("span", {
46
- className: "slides-navigator-add-item-text",
47
- children: ADD_SLIDE
48
- })]
49
- }), /*#__PURE__*/jsxRuntime.jsx(SlideItemsList, {})]
19
+ children: [/*#__PURE__*/jsxRuntime.jsx(AddSlideButton, {}), /*#__PURE__*/jsxRuntime.jsx(SlideItemsList, {})]
50
20
  });
51
21
  };
52
22
 
@@ -1 +1 @@
1
- {"version":3,"file":"SlidesNavigator.js","sources":["../../../../../src/components/Panels/SlidesNavigator/SlidesNavigator.js"],"sourcesContent":["import { useBuilderStore } from '../../../contexts/BuilderContext';\nimport { useTranslatedTexts } from '../../../utils/hooks';\nimport SlideItemsList from './SlideItemsList';\nimport * as icons from '../../../utils/icons';\nimport { usePropStore } from '../../../contexts/PropContext';\nimport { scrollToTarget } from '../../../utils/functions';\n\nconst SlidesNavigator = () => {\n const isSlidesNavigatorOpen = useBuilderStore(state => state.isSlidesNavigatorOpen);\n const visiblePageOrder = useBuilderStore(state => state.visiblePageOrder);\n const { ADD_SLIDE } = useTranslatedTexts();\n const onPageAdd = usePropStore(state => state.onPageAdd);\n\n const onAddItemClick = () => {\n const newPageIndex = visiblePageOrder + 1;\n onPageAdd(newPageIndex);\n scrollToTarget(`pageActions-id-${newPageIndex}`, 350);\n };\n\n if (!isSlidesNavigatorOpen) {\n return null;\n }\n\n return (\n <aside className=\"slides-navigator\">\n <button\n className=\"slides-navigator-add-item\"\n onClick={onAddItemClick}\n title={ADD_SLIDE}\n type=\"button\"\n >\n <icons.plus className=\"slides-navigator-add-item-icon\" />\n <span className=\"slides-navigator-add-item-text\">{ADD_SLIDE}</span>\n </button>\n <SlideItemsList />\n </aside>\n );\n};\n\nexport default SlidesNavigator;\n"],"names":["SlidesNavigator","isSlidesNavigatorOpen","useBuilderStore","state","visiblePageOrder","useTranslatedTexts","ADD_SLIDE","onPageAdd","usePropStore","onAddItemClick","newPageIndex","scrollToTarget","_jsxs","_jsx","icons.plus"],"mappings":";;;;;;;;;;IAOMA,eAAe,GAAG,SAAlBA,eAAkB,GAAM;AAC5B,MAAMC,qBAAqB,GAAGC,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,qBAAV;AAAA,GAAN,CAA7C;AACA,MAAMG,gBAAgB,GAAGF,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,gBAAV;AAAA,GAAN,CAAxC;;AACA,4BAAsBC,wBAAkB,EAAxC;AAAA,MAAQC,SAAR,uBAAQA,SAAR;;AACA,MAAMC,SAAS,GAAGC,wBAAY,CAAC,UAAAL,KAAK;AAAA,WAAIA,KAAK,CAACI,SAAV;AAAA,GAAN,CAA9B;;AAEA,MAAME,cAAc,GAAG,SAAjBA,cAAiB,GAAM;AAC3B,QAAMC,YAAY,GAAGN,gBAAgB,GAAG,CAAxC;AACAG,IAAAA,SAAS,CAACG,YAAD,CAAT;AACAC,IAAAA,wBAAc,0BAAmBD,YAAnB,GAAmC,GAAnC,CAAd;AACD,GAJD;;AAMA,MAAI,CAACT,qBAAL,EAA4B;AAC1B,WAAO,IAAP;AACD;;AAED,sBACEW;AAAO,IAAA,SAAS,EAAC,kBAAjB;AAAA,4BACEA;AACE,MAAA,SAAS,EAAC,2BADZ;AAEE,MAAA,OAAO,EAAEH,cAFX;AAGE,MAAA,KAAK,EAAEH,SAHT;AAIE,MAAA,IAAI,EAAC,QAJP;AAAA,8BAMEO,eAACC,IAAD;AAAY,QAAA,SAAS,EAAC;AAAtB,QANF,eAOED;AAAM,QAAA,SAAS,EAAC,gCAAhB;AAAA,kBAAkDP;AAAlD,QAPF;AAAA,MADF,eAUEO,eAAC,cAAD,KAVF;AAAA,IADF;AAcD;;;;"}
1
+ {"version":3,"file":"SlidesNavigator.js","sources":["../../../../../src/components/Panels/SlidesNavigator/SlidesNavigator.js"],"sourcesContent":["import { useBuilderStore } from '../../../contexts/BuilderContext';\nimport SlideItemsList from './SlideItemsList';\nimport AddSlideButton from './AddSlideButton';\n\nconst SlidesNavigator = () => {\n const isSlidesNavigatorOpen = useBuilderStore(state => state.isSlidesNavigatorOpen);\n\n if (!isSlidesNavigatorOpen) {\n return null;\n }\n\n return (\n <aside className=\"slides-navigator\">\n <AddSlideButton />\n <SlideItemsList />\n </aside>\n );\n};\n\nexport default SlidesNavigator;\n"],"names":["SlidesNavigator","isSlidesNavigatorOpen","useBuilderStore","state","_jsxs","_jsx"],"mappings":";;;;;;;IAIMA,eAAe,GAAG,SAAlBA,eAAkB,GAAM;AAC5B,MAAMC,qBAAqB,GAAGC,8BAAe,CAAC,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACF,qBAAV;AAAA,GAAN,CAA7C;;AAEA,MAAI,CAACA,qBAAL,EAA4B;AAC1B,WAAO,IAAP;AACD;;AAED,sBACEG;AAAO,IAAA,SAAS,EAAC,kBAAjB;AAAA,4BACEC,eAAC,cAAD,KADF,eAEEA,eAAC,cAAD,KAFF;AAAA,IADF;AAMD;;;;"}
@@ -93,7 +93,7 @@ var SlidesPanel = function SlidesPanel() {
93
93
  var _useTranslatedTexts = hooks.useTranslatedTexts(),
94
94
  SLIDES = _useTranslatedTexts.SLIDES;
95
95
 
96
- return functions.slidesAsPanel(slidesListType) ? /*#__PURE__*/jsxRuntime.jsxs(Panel, {
96
+ return functions.isSlidesListType(slidesListType, 'PANEL') ? /*#__PURE__*/jsxRuntime.jsxs(Panel, {
97
97
  additionalClassName: panelAdditionalClassName,
98
98
  onAnimationEnd: onAnimationEnd,
99
99
  children: [isRightPanelOpen ? null : /*#__PURE__*/jsxRuntime.jsx(SlidesPanelToggler, {
@@ -1 +1 @@
1
- {"version":3,"file":"SlidesPanel.js","sources":["../../../../../src/components/Panels/SlidesPanel/SlidesPanel.js"],"sourcesContent":["import { useCallback, useState } from 'react';\nimport classNames from 'classnames';\nimport Panel from '../../Builder/Panel';\nimport SortablePageList from './SortablePageList';\nimport Section from '../../Builder/Section';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\nimport { usePropStore } from '../../../contexts/PropContext';\nimport { arrayMove, slidesAsPanel } from '../../../utils/functions';\nimport SlidesPanelToggler from './SlidesPanelToggler';\nimport ListWrapper from './ListWrapper';\nimport { useClickOutsideListener, useTranslatedTexts } from '../../../utils/hooks';\n\nconst SlidesPanel = () => {\n const isRightPanelOpen = useBuilderStore(state => state.isRightPanelOpen);\n const isSlidesPanelOpen = useBuilderStore(state => state.isSlidesPanelOpen);\n const setIsSlidesPanelOpen = useBuilderStore(state => state.setIsSlidesPanelOpen);\n const slidesListType = useBuilderStore(state => state.slidesListType);\n\n const pages = usePropStore(state => state.pages);\n const onPageOrdersChange = usePropStore(state => state.onPageOrdersChange);\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n\n const [animationEnd, setAnimationEnd] = useState(true);\n\n const pageGetter = useCallback(index => {\n return pages[index];\n }, [pages]);\n\n const onPageSort = useCallback(({ newIndex, oldIndex }) => {\n const newPageOrders = arrayMove(pages, oldIndex, newIndex).reduce((acc, page, index) => {\n acc[page.id] = { order: index + 1 };\n return acc;\n }, {});\n\n onPageOrdersChange(newPageOrders);\n onAnEventTrigger('sortPageFromSlides');\n }, [pages, onPageOrdersChange, onAnEventTrigger]);\n\n // Panel className\n const panelAdditionalClassName = classNames(\n 'jfReport-settings forSlides f-height',\n {\n isIdle: !isSlidesPanelOpen,\n otherOpened: isRightPanelOpen,\n },\n );\n\n const onClosePanel = () => {\n setAnimationEnd(false);\n setIsSlidesPanelOpen(false);\n };\n\n const onAnimationEnd = useCallback(() => {\n if (!isSlidesPanelOpen) {\n setAnimationEnd(true);\n }\n }, [isSlidesPanelOpen]);\n\n useClickOutsideListener(\n ['jfReport-canvas', 'jfReport-viewport', 'jfReport-pageInfo'],\n isSlidesPanelOpen,\n onClosePanel,\n );\n\n const { SLIDES } = useTranslatedTexts();\n return (\n slidesAsPanel(slidesListType) ? (\n <Panel\n additionalClassName={panelAdditionalClassName}\n onAnimationEnd={onAnimationEnd}\n >\n {isRightPanelOpen\n ? null\n : <SlidesPanelToggler onClosePanel={onClosePanel} />}\n {(isSlidesPanelOpen || (!isSlidesPanelOpen && !animationEnd)) && (\n <div className=\"toolItemWrapper f-height d-flex dir-col\">\n <Section\n additionalComponent={null}\n icon=\"slides\"\n title={SLIDES}\n >\n <div className=\"toolItem-tabContent hasInnerScroll\">\n <ListWrapper\n component={SortablePageList()}\n onSortEnd={onPageSort}\n pageGetter={pageGetter}\n />\n </div>\n </Section>\n </div>\n )}\n </Panel>\n ) : null);\n};\n\nexport default SlidesPanel;\n"],"names":["SlidesPanel","isRightPanelOpen","useBuilderStore","state","isSlidesPanelOpen","setIsSlidesPanelOpen","slidesListType","pages","usePropStore","onPageOrdersChange","onAnEventTrigger","useState","animationEnd","setAnimationEnd","pageGetter","useCallback","index","onPageSort","newIndex","oldIndex","newPageOrders","arrayMove","reduce","acc","page","id","order","panelAdditionalClassName","classNames","isIdle","otherOpened","onClosePanel","onAnimationEnd","useClickOutsideListener","useTranslatedTexts","SLIDES","slidesAsPanel","_jsxs","_jsx","SortablePageList"],"mappings":"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"}
1
+ {"version":3,"file":"SlidesPanel.js","sources":["../../../../../src/components/Panels/SlidesPanel/SlidesPanel.js"],"sourcesContent":["import { useCallback, useState } from 'react';\nimport classNames from 'classnames';\nimport Panel from '../../Builder/Panel';\nimport SortablePageList from './SortablePageList';\nimport Section from '../../Builder/Section';\nimport { useBuilderStore } from '../../../contexts/BuilderContext';\nimport { usePropStore } from '../../../contexts/PropContext';\nimport { arrayMove, isSlidesListType } from '../../../utils/functions';\nimport SlidesPanelToggler from './SlidesPanelToggler';\nimport ListWrapper from './ListWrapper';\nimport { useClickOutsideListener, useTranslatedTexts } from '../../../utils/hooks';\n\nconst SlidesPanel = () => {\n const isRightPanelOpen = useBuilderStore(state => state.isRightPanelOpen);\n const isSlidesPanelOpen = useBuilderStore(state => state.isSlidesPanelOpen);\n const setIsSlidesPanelOpen = useBuilderStore(state => state.setIsSlidesPanelOpen);\n const slidesListType = useBuilderStore(state => state.slidesListType);\n\n const pages = usePropStore(state => state.pages);\n const onPageOrdersChange = usePropStore(state => state.onPageOrdersChange);\n const onAnEventTrigger = usePropStore(state => state.onAnEventTrigger);\n\n const [animationEnd, setAnimationEnd] = useState(true);\n\n const pageGetter = useCallback(index => {\n return pages[index];\n }, [pages]);\n\n const onPageSort = useCallback(({ newIndex, oldIndex }) => {\n const newPageOrders = arrayMove(pages, oldIndex, newIndex).reduce((acc, page, index) => {\n acc[page.id] = { order: index + 1 };\n return acc;\n }, {});\n\n onPageOrdersChange(newPageOrders);\n onAnEventTrigger('sortPageFromSlides');\n }, [pages, onPageOrdersChange, onAnEventTrigger]);\n\n // Panel className\n const panelAdditionalClassName = classNames(\n 'jfReport-settings forSlides f-height',\n {\n isIdle: !isSlidesPanelOpen,\n otherOpened: isRightPanelOpen,\n },\n );\n\n const onClosePanel = () => {\n setAnimationEnd(false);\n setIsSlidesPanelOpen(false);\n };\n\n const onAnimationEnd = useCallback(() => {\n if (!isSlidesPanelOpen) {\n setAnimationEnd(true);\n }\n }, [isSlidesPanelOpen]);\n\n useClickOutsideListener(\n ['jfReport-canvas', 'jfReport-viewport', 'jfReport-pageInfo'],\n isSlidesPanelOpen,\n onClosePanel,\n );\n\n const { SLIDES } = useTranslatedTexts();\n return (\n isSlidesListType(slidesListType, 'PANEL') ? (\n <Panel\n additionalClassName={panelAdditionalClassName}\n onAnimationEnd={onAnimationEnd}\n >\n {isRightPanelOpen\n ? null\n : <SlidesPanelToggler onClosePanel={onClosePanel} />}\n {(isSlidesPanelOpen || (!isSlidesPanelOpen && !animationEnd)) && (\n <div className=\"toolItemWrapper f-height d-flex dir-col\">\n <Section\n additionalComponent={null}\n icon=\"slides\"\n title={SLIDES}\n >\n <div className=\"toolItem-tabContent hasInnerScroll\">\n <ListWrapper\n component={SortablePageList()}\n onSortEnd={onPageSort}\n pageGetter={pageGetter}\n />\n </div>\n </Section>\n </div>\n )}\n </Panel>\n ) : null);\n};\n\nexport default SlidesPanel;\n"],"names":["SlidesPanel","isRightPanelOpen","useBuilderStore","state","isSlidesPanelOpen","setIsSlidesPanelOpen","slidesListType","pages","usePropStore","onPageOrdersChange","onAnEventTrigger","useState","animationEnd","setAnimationEnd","pageGetter","useCallback","index","onPageSort","newIndex","oldIndex","newPageOrders","arrayMove","reduce","acc","page","id","order","panelAdditionalClassName","classNames","isIdle","otherOpened","onClosePanel","onAnimationEnd","useClickOutsideListener","useTranslatedTexts","SLIDES","isSlidesListType","_jsxs","_jsx","SortablePageList"],"mappings":"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"}
@@ -76,6 +76,7 @@
76
76
  &-item {
77
77
  $self: &;
78
78
 
79
+ position: relative;
79
80
  display: flex;
80
81
  flex-direction: row;
81
82
  align-items: center;
@@ -211,6 +212,44 @@
211
212
  color: #FF0000;
212
213
  }
213
214
  }
215
+
216
+ &-button {
217
+ display: flex;
218
+ flex-direction: column;
219
+ align-items: center;
220
+ justify-content: center;
221
+ width: auto;
222
+ height: auto;
223
+ position: absolute;
224
+ top: 8px;
225
+ right: 8px;
226
+ padding: 4px 2px;
227
+ background: #FFFFFF;
228
+ border: 1px solid #E3E5F5;
229
+ color: #979dC6;
230
+ border-radius: 6px;
231
+ box-shadow: 0 2px 6px 0 rgba(84, 95, 111, 0.12), 0 0 1px 0 rgba(37, 45, 91, 0.04);
232
+ cursor: pointer;
233
+ transition: all 0.3s ease;
234
+
235
+ &:hover {
236
+ background: #F5F5F5;
237
+ color: #343C6A;
238
+ border: 1px solid #979DC6;
239
+ transition: all 0.3s ease;
240
+ }
241
+ }
242
+
243
+ @keyframes fadeInTop {
244
+ from {
245
+ opacity: 0;
246
+ transform: translateY(100%);
247
+ }
248
+ to {
249
+ opacity: 1;
250
+ transform: translateY(0);
251
+ }
252
+ }
214
253
  }
215
254
 
216
255
  &-virtuoso-list {
@@ -865,11 +865,10 @@ var getDimensions = function getDimensions(_ref5) {
865
865
  width: width
866
866
  };
867
867
  };
868
- var slidesAsNavigator = function slidesAsNavigator(slidesListType) {
869
- return slidesListType === panel.SLIDES_LIST_TYPE_MAP.NAVIGATOR;
870
- };
871
- var slidesAsPanel = function slidesAsPanel(slidesListType) {
872
- return slidesListType === panel.SLIDES_LIST_TYPE_MAP.PANEL;
868
+ /** @param {'NAVIGATOR' | 'PANEL'} mode */
869
+
870
+ var isSlidesListType = function isSlidesListType(slidesListType, mode) {
871
+ return slidesListType === panel.SLIDES_LIST_TYPE_MAP[mode];
873
872
  };
874
873
 
875
874
  exports.arrayMove = arrayMove;
@@ -903,6 +902,7 @@ exports.getZoomValue = getZoomValue;
903
902
  exports.imageSizeUpdater = imageSizeUpdater;
904
903
  exports.isItemInSelectionBox = isItemInSelectionBox;
905
904
  exports.isSelectedItem = isSelectedItem;
905
+ exports.isSlidesListType = isSlidesListType;
906
906
  exports.isValidHexColor = isValidHexColor;
907
907
  exports.moveArrayItem = moveArrayItem;
908
908
  exports.normalizeHexColor = normalizeHexColor;
@@ -913,7 +913,5 @@ exports.roundForDecimalPart = roundForDecimalPart;
913
913
  exports.roundPositionValues = roundPositionValues;
914
914
  exports.safeJSONParse = safeJSONParse;
915
915
  exports.scrollToTarget = scrollToTarget;
916
- exports.slidesAsNavigator = slidesAsNavigator;
917
- exports.slidesAsPanel = slidesAsPanel;
918
916
  exports.throttle = throttle;
919
917
  //# sourceMappingURL=functions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sources":["../../../src/utils/functions.js"],"sourcesContent":["/* global Image */\nimport { SLIDES_LIST_TYPE_MAP } from '../constants/panel';\nimport objectDiff from './object-diff';\n\n/**\n * Rounds position/dimension values to integers before sending to service\n * This prevents decimal values from being sent when zoom is not 1\n * Should only be used at the final step before service calls\n */\nexport const roundPositionValues = ({\n height,\n left,\n top,\n width,\n ...rest\n}) => ({\n ...rest,\n ...(height !== undefined && { height: Math.round(height) }),\n ...(left !== undefined && { left: Math.round(left) }),\n ...(top !== undefined && { top: Math.round(top) }),\n ...(width !== undefined && { width: Math.round(width) }),\n});\n\nexport const getCorrectDroppedOffsetValue = (finalOffset, initialOffset, dropTargetPosition, zoom = 1) => {\n const { x: finalX, y: finalY } = finalOffset;\n const { x: initialX, y: initialY } = initialOffset;\n\n const newYposition = finalY > initialY\n ? (initialY + (finalY - initialY)) - dropTargetPosition.top\n : initialY - (initialY - finalY) - dropTargetPosition.top;\n\n const newXposition = finalX > initialX\n ? (initialX + (finalX - initialX)) - dropTargetPosition.left\n : initialX - (initialX - finalX) - dropTargetPosition.left;\n\n return {\n left: newXposition / zoom,\n top: newYposition / zoom,\n };\n};\n\nexport const getStyles = (left, top, isDragging) => {\n return {\n height: isDragging ? 0 : '',\n left,\n opacity: isDragging ? 0 : 1,\n position: 'absolute',\n top,\n };\n};\n\nexport const isSelectedItem = (id, activeElements) => {\n return activeElements.includes(id);\n};\n\nexport const findItemById = (itemID, pages) => {\n const page = pages.find(p => p.items.find(item => item.id === itemID));\n if (!page) return null;\n return page.items.find(item => item.id === itemID);\n};\n\nconst traverse = (obj, condition) => condition.split('.').reduce((cur, key) => cur[key], obj);\n\nconst hideOrShowWhen = (selectedItem, setting, itemAccessor) => {\n if (selectedItem.hideSettings && setting.key !== 'showWarning') {\n return false;\n }\n\n if (setting.visible) {\n return typeof setting.visible === 'function'\n ? setting.visible({ item: selectedItem, itemAccessor })\n : !!setting.visible;\n }\n\n if (setting.hideWhen || setting.showWhen) {\n const hideCondition = !!setting.hideWhen === true;\n const conditionType = hideCondition ? 'hideWhen' : 'showWhen';\n const conditions = setting[conditionType];\n\n return Object.keys(conditions).every(conditionKey => {\n const condition = conditions[conditionKey];\n const conditionOfSelectedItem = conditionKey.split('.').length > 1\n ? traverse(selectedItem, conditionKey) : selectedItem[conditionKey];\n\n if (Array.isArray(condition)) {\n const returnValue = condition.includes(conditionOfSelectedItem);\n return hideCondition ? !returnValue : returnValue;\n }\n\n const returnValue = condition === conditionOfSelectedItem;\n return hideCondition ? !returnValue : returnValue;\n });\n }\n\n return true;\n};\n\nexport const getTabsWithSettings = (element, selectedItem, itemAccessor) => {\n const settings = element.settings || element;\n return settings.reduce((tabsWithSettings, setting) => {\n const _tabsWithSettings = tabsWithSettings;\n const defaultItem = element.defaultItem || {};\n const item = { ...defaultItem, ...selectedItem };\n if (hideOrShowWhen(item, setting, itemAccessor)) {\n const settingSection = setting.section || 'GENERAL';\n if (!_tabsWithSettings[settingSection]) {\n _tabsWithSettings[settingSection] = [];\n }\n _tabsWithSettings[settingSection].push(setting);\n }\n return _tabsWithSettings;\n }, {});\n};\n\nexport const getTabsWithElements = leftPanelConfig => {\n return leftPanelConfig.reduce((tabsWithSettings, config) => {\n const _tabsWithSettings = tabsWithSettings;\n const settingSection = config.section || 'GENERAL';\n _tabsWithSettings[settingSection] = config;\n return _tabsWithSettings;\n }, {});\n};\n\nexport const calculateGuidePositions = (dimensions, axis, zoom = 1, direction = null) => {\n const isItem = dimensions && dimensions.id;\n\n if (axis === 'x') {\n const start = dimensions.left;\n const middle = dimensions.left + parseInt(dimensions.width / 2, 10);\n const end = dimensions.left + dimensions.width;\n\n if (isItem) {\n const result = [start, middle, end].map(p => p * zoom);\n if (direction) {\n if (direction === 'bottom') return [];\n if (direction === 'top') return [];\n if (/left/i.test(direction)) return [result[0]];\n if (/right/i.test(direction)) return [result[2]];\n }\n return result;\n }\n return [start, middle, end];\n }\n\n const start = dimensions.top;\n const middle = dimensions.top + parseInt(dimensions.height / 2, 10);\n const end = dimensions.top + dimensions.height;\n\n if (isItem) {\n const result = [start, middle, end].map(p => p * zoom);\n if (direction) {\n if (direction === 'left') return [];\n if (direction === 'right') return [];\n if (/top/i.test(direction)) return [result[0]];\n if (/bottom/i.test(direction)) return [result[2]];\n }\n return result;\n }\n return [start, middle, end];\n};\n\nexport const getAllGuidesForGivenAxisExceptActiveBox = (\n allGuides,\n guidesForActiveBoxAlongGivenAxis,\n axis,\n) => {\n const result = Object.keys(allGuides).map(box => {\n const currentBoxGuidesAlongGivenAxis = allGuides[box][axis];\n if (currentBoxGuidesAlongGivenAxis !== guidesForActiveBoxAlongGivenAxis) {\n return currentBoxGuidesAlongGivenAxis;\n }\n return undefined;\n });\n\n return result.filter(guides => guides !== undefined);\n};\n\nexport const checkValueProximities = (activeBoxGuidesInOneAxis, allOtherGuidesInOneAxis) => {\n let proximity = null;\n let intersection = null;\n let matchedArray = [];\n const snapThreshold = 5;\n for (let index = 0; index < allOtherGuidesInOneAxis.length; index += 1) {\n let index2 = 0;\n let index3 = 0;\n\n while (index2 < activeBoxGuidesInOneAxis.length\n && index3 < allOtherGuidesInOneAxis[index].length) {\n const diff = Math.abs(activeBoxGuidesInOneAxis[index2]\n - allOtherGuidesInOneAxis[index][index3]);\n if (diff <= snapThreshold) {\n proximity = { activeBoxIndex: index2, matchedBoxIndex: index3, value: diff };\n matchedArray = allOtherGuidesInOneAxis[index];\n intersection = allOtherGuidesInOneAxis[index][index3];\n }\n\n if (activeBoxGuidesInOneAxis[index2] < allOtherGuidesInOneAxis[index][index3]) {\n index2 += 1;\n } else {\n index3 += 1;\n }\n }\n }\n\n return { intersection, matchedArray, proximity };\n};\n\nexport const proximityListener = (active, allGuides) => {\n const xAxisGuidesForActiveBox = allGuides[active].x;\n const yAxisGuidesForActiveBox = allGuides[active].y;\n const xAxisAllGuides = getAllGuidesForGivenAxisExceptActiveBox(\n allGuides,\n xAxisGuidesForActiveBox,\n 'x',\n );\n const yAxisAllGuides = getAllGuidesForGivenAxisExceptActiveBox(\n allGuides,\n yAxisGuidesForActiveBox,\n 'y',\n );\n const xAxisMatchedGuides = checkValueProximities(xAxisGuidesForActiveBox, xAxisAllGuides);\n const yAxisMatchedGuides = checkValueProximities(yAxisGuidesForActiveBox, yAxisAllGuides);\n\n const allMatchedGuides = {};\n\n if (xAxisMatchedGuides.proximity) {\n allMatchedGuides.x = {\n ...xAxisMatchedGuides,\n activeBoxGuides: xAxisGuidesForActiveBox,\n };\n }\n\n if (yAxisMatchedGuides.proximity) {\n allMatchedGuides.y = {\n ...yAxisMatchedGuides,\n activeBoxGuides: yAxisGuidesForActiveBox,\n };\n }\n\n return allMatchedGuides;\n};\n\nexport const getMatchesForItem = (item, guides, zoom, direction = null) => {\n const pageGuides = guides[item.pageID];\n const _guides = {\n ...pageGuides,\n [item.id]: {\n ...pageGuides[item.id],\n x: calculateGuidePositions(item, 'x', zoom, direction),\n y: calculateGuidePositions(item, 'y', zoom, direction),\n },\n };\n return proximityListener(item.id, _guides);\n};\n\nexport const getCoordinatesFromMatches = (item, matches, zoom = 1) => {\n let newActiveBoxLeft = item.left;\n let newActiveBoxTop = item.top;\n Object.keys(matches).forEach(axis => {\n const { activeBoxGuides, matchedArray, proximity } = matches[axis];\n const activeBoxProximityIndex = proximity.activeBoxIndex;\n const matchedBoxProximityIndex = proximity.matchedBoxIndex;\n // proximity.value is in zoomed pixels, divide by zoom to get canvas coordinates\n const adjustedValue = proximity.value / zoom;\n if (axis === 'x') {\n if (activeBoxGuides[activeBoxProximityIndex] > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxLeft = item.left - adjustedValue;\n } else {\n newActiveBoxLeft = item.left + adjustedValue;\n }\n } else if (activeBoxGuides[activeBoxProximityIndex] > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxTop = item.top - adjustedValue;\n } else {\n newActiveBoxTop = item.top + adjustedValue;\n }\n });\n\n return {\n left: newActiveBoxLeft,\n top: newActiveBoxTop,\n };\n};\n\nexport const getPosition = e => {\n var posx = 0;\n var posy = 0;\n\n if (e.pageX || e.pageY) {\n posx = e.pageX;\n posy = e.pageY;\n } else if (e.clientX || e.clientY) {\n posx = e.clientX + document.body.scrollLeft\n + document.documentElement.scrollLeft;\n posy = e.clientY + document.body.scrollTop\n + document.documentElement.scrollTop;\n }\n\n return {\n x: posx,\n y: posy,\n };\n};\n\nexport const getContainerPositions = (container, positions) => {\n const windowWidth = global.innerWidth\n || global.document.documentElement.clientWidth\n || global.document.body.clientWidth;\n\n const windowHeight = global.innerHeight\n || global.document.documentElement.clientHeight\n || global.document.body.clientHeight;\n\n const newPosition = { ...positions };\n const {\n height: contextHeight,\n width: contextWidth,\n } = container.getBoundingClientRect();\n\n if (contextWidth + newPosition.x > (windowWidth - 8)) {\n newPosition.x = windowWidth - contextWidth - 5;\n }\n\n if (contextHeight + newPosition.y > (windowHeight - 8)) {\n newPosition.y = windowHeight - contextHeight - 30;\n }\n\n const newPositions = {\n x: newPosition.x += 5,\n y: newPosition.y += 3,\n };\n\n return newPositions;\n};\n\nexport const moveItemInArrayFromIndexToIndex = (array, fromIndex, toIndex) => {\n if (fromIndex === toIndex) return array;\n const newArray = [...array];\n const target = newArray[fromIndex];\n const inc = toIndex < fromIndex ? -1 : 1;\n for (let i = fromIndex; i !== toIndex; i += inc) {\n newArray[i] = newArray[i + inc];\n }\n newArray[toIndex] = target;\n return newArray;\n};\n\nexport const findItemsOnPage = (pageID, pages) => {\n const foundPage = pages.find(page => page.id === pageID);\n if (foundPage && foundPage.items) {\n return foundPage.items;\n }\n return [];\n};\n\n// https://github.com/unclecheese/react-selectable/blob/master/src/doObjectsCollide.js\nconst coordsCollide = (aTop, aLeft, bTop, bLeft, aWidth, aHeight, bWidth, bHeight, tolerance) => {\n const toleranceDistance = (typeof tolerance === 'undefined') ? 0 : tolerance;\n\n return !(\n (((aTop + aHeight) - toleranceDistance) < bTop)\n || ((aTop + toleranceDistance) > (bTop + bHeight))\n || (((aLeft + aWidth) - toleranceDistance) < bLeft)\n || ((aLeft + toleranceDistance) > (bLeft + bWidth))\n );\n};\n\nexport const collisionCheck = (item, items, startIndex, direction) => {\n let colluded = false;\n let currIndex = startIndex;\n while (!colluded && items[currIndex + direction]) {\n currIndex += direction;\n colluded = coordsCollide(\n item.top,\n item.left,\n items[currIndex].top,\n items[currIndex].left,\n item.width,\n item.height,\n items[currIndex].width,\n items[currIndex].height,\n );\n }\n\n if (colluded) {\n return currIndex;\n }\n return null;\n};\n\nexport const moveArrayItem = (array, initialIndex, targetIndex) => {\n // mutates origin array\n array.splice(targetIndex, 0, array.splice(initialIndex, 1)[0]);\n};\n\nexport const getFileName = (url = '') => {\n return url.split('/').pop().split('?')[0];\n};\n\nexport const getImageSizes = (url, callback) => {\n const img = new Image();\n img.addEventListener('load', () => callback(img.width, img.height));\n img.src = url;\n};\n\nexport const getVisibleHeightPx = (element, viewportRect) => {\n const rect = element.getBoundingClientRect();\n const viewportHeight = viewportRect.bottom - viewportRect.top;\n const elRect = {\n bottom: viewportRect.bottom - rect.bottom,\n height: rect.bottom - rect.top,\n top: rect.top - viewportRect.top,\n };\n const visible = {\n bottom: elRect.bottom > 0 && elRect.bottom < viewportHeight,\n top: elRect.top >= 0 && elRect.top < viewportHeight,\n };\n let px = 0;\n if (visible.top && visible.bottom) {\n px = elRect.height;\n } else if (visible.top) {\n px = viewportHeight - elRect.top;\n } else if (visible.bottom) {\n px = elRect.height + elRect.top;\n } else if (elRect.height > viewportHeight && elRect.top < 0) {\n var absTop = Math.abs(elRect.top);\n if (absTop < elRect.height) {\n px = elRect.height - absTop;\n }\n }\n\n return { ...visible, px };\n};\n\nexport const getMostVisiblePage = (onlyId = false) => {\n const viewport = document.querySelector('.jfReport-viewport');\n if (viewport) {\n const viewportRect = viewport.getBoundingClientRect();\n const elements = Array.from(document.querySelectorAll('.jfReport-page'));\n const calculations = elements.reduce((acc, element) => {\n acc[element.getAttribute('data-id')] = getVisibleHeightPx(element, viewportRect);\n return acc;\n }, {});\n const pageID = Object.keys(calculations)\n .sort((p, n) => calculations[n].px - calculations[p].px)[0];\n if (onlyId) {\n return pageID;\n }\n return {\n attr: calculations[pageID],\n id: pageID,\n };\n }\n return false;\n};\n\nconst getAvailableInitialY = (page, attribute, zoom) => {\n const rect = page.getBoundingClientRect();\n const pageHeight = rect.bottom - rect.top;\n if (attribute.top) return 0;\n const originalPageHeight = pageHeight * (1 / zoom);\n const originalVisibleHeight = attribute.px * (1 / zoom);\n return (originalPageHeight - originalVisibleHeight);\n};\n\nexport const getAvailableCoordinate = (page, zoom) => {\n const isExistsPage = document.querySelector(`.jfReport-page[data-id=\"${page.id}\"]`);\n if (!isExistsPage) return [0, 0];\n\n // First get initial y for scrolled page\n const initialY = getAvailableInitialY(isExistsPage, page.attr, zoom);\n\n const pageItems = isExistsPage.querySelectorAll('.reportItemWrapper');\n if (!pageItems.length) return [0, initialY];\n\n // Then get available space if there any items\n return [...pageItems].reduce((accum, item) => {\n const _accum = accum;\n const { style: { left, top } } = item;\n const coordinate = [parseInt(left, 10), parseInt(top, 10)];\n if (_accum[0] === coordinate[0] && _accum[1] === coordinate[1]) {\n _accum[0] = _accum[0] + 50;\n _accum[1] = _accum[1] + 50;\n }\n return _accum;\n }, [0, initialY]);\n};\n\nexport function safeJSONParse(str, defVal = {}) {\n if (str) {\n try {\n return JSON.parse(str);\n } catch (ex) {\n return defVal;\n }\n } else {\n return defVal;\n }\n}\n\n/* View in fullscreen */\nexport const openFullscreenHelper = (elem = document.documentElement) => {\n if (elem.requestFullscreen) {\n return elem.requestFullscreen();\n } else if (elem.mozRequestFullScreen) { /* Firefox */\n return elem.mozRequestFullScreen();\n } else if (elem.webkitRequestFullscreen) { /* Chrome, Safari and Opera */\n return elem.webkitRequestFullscreen();\n } else if (elem.msRequestFullscreen) { /* IE/Edge */\n return elem.msRequestFullscreen();\n }\n return Promise.resolve();\n};\n\n/* Close fullscreen */\nexport const closeFullscreen = () => {\n if (document.fullscreenElement\n || document.webkitFullscreenElement\n || document.mozFullScreenElement) {\n if (document.exitFullscreen) {\n return document.exitFullscreen();\n } else if (document.mozCancelFullScreen) { /* Firefox */\n return document.mozCancelFullScreen();\n } else if (document.webkitExitFullscreen) { /* Chrome, Safari and Opera */\n return document.webkitExitFullscreen();\n } else if (document.msExitFullscreen) { /* IE/Edge */\n return document.msExitFullscreen();\n }\n }\n return Promise.resolve();\n};\n\nexport const imageSizeUpdater = (item, { objectURL, url }, updateFunc) => {\n const MAX_WIDTH = 700;\n const MAX_HEIGHT = 600;\n const image = new global.Image();\n image.src = objectURL || url;\n\n image.onerror = () => {\n updateFunc(item, { url });\n };\n\n image.onload = () => {\n const { naturalHeight, naturalWidth } = image;\n let _width = naturalWidth;\n let _height = naturalHeight;\n\n if (naturalWidth > MAX_WIDTH) {\n _height = parseInt((MAX_WIDTH * naturalHeight) / naturalWidth, 10);\n _width = MAX_WIDTH;\n }\n\n if (_height > MAX_HEIGHT) {\n _width = parseInt((_width * MAX_HEIGHT) / _height, 10);\n _height = MAX_HEIGHT;\n }\n\n if (objectURL) {\n URL.revokeObjectURL(objectURL);\n }\n\n updateFunc(\n item, {\n height: _height,\n url: url,\n width: _width,\n },\n );\n };\n};\n\nexport const onChangeFunction = (\n config,\n updateFunc,\n selectedItem,\n customUpdater,\n) => (item, setting) => {\n if (config && config.ifValueEquals) {\n const value = setting[config.key];\n if (config.ifValueEquals[value]) {\n const settingsWillBeChanged = Object.keys(config.ifValueEquals[value])\n .reduce(\n (newSettings,\n settingKey) => {\n const { ifIsEqualPreviousValue } = config.ifValueEquals[value][settingKey];\n const { cast } = config.ifValueEquals[value][settingKey];\n let { value: newSetting } = config.ifValueEquals[value][settingKey];\n const _newSettings = newSettings;\n if (typeof newSetting !== 'string') {\n _newSettings[settingKey] = newSetting;\n return _newSettings;\n }\n const matches = newSetting.match(/{.+?}/g);\n if (matches && matches.length > 0) {\n newSetting = matches.reduce((acc, curr) => {\n let _acc = acc;\n const newValue = selectedItem[\n curr.replace(/\\{|\\}/gi, '')\n ];\n _acc = newSetting.replace(curr, newValue);\n if (cast && cast === 'integer') {\n return parseInt(_acc, 10);\n }\n return _acc;\n }, newSetting);\n }\n if (ifIsEqualPreviousValue && ifIsEqualPreviousValue !== selectedItem[settingKey]) {\n return _newSettings;\n }\n _newSettings[settingKey] = newSetting;\n return _newSettings;\n }, {},\n );\n if (customUpdater) {\n customUpdater(item, {\n ...setting,\n ...settingsWillBeChanged,\n }, updateFunc);\n } else {\n updateFunc(item, {\n ...setting,\n ...settingsWillBeChanged,\n });\n }\n } else if (customUpdater) {\n customUpdater(item, setting, updateFunc);\n } else {\n updateFunc(item, setting);\n }\n } else if (config.useImageSizeUpdate) {\n imageSizeUpdater(item, setting, updateFunc);\n } else if (customUpdater) {\n customUpdater(item, setting, updateFunc);\n } else {\n updateFunc(item, setting);\n }\n};\n\nexport const exportPagesAsJSON = (acceptedItems, pages) => {\n const newPages = pages.map(page => {\n const items = page.items.map(pageItem => {\n const { details } = acceptedItems[pageItem.itemType];\n return {\n ...objectDiff(details, pageItem),\n type: details.itemType,\n };\n });\n return {\n items,\n type: 'regular',\n };\n });\n return JSON.stringify(newPages, null, 2);\n};\n\nexport const getExactIconType = iconType => {\n if (iconType.indexOf('_') > -1) {\n const splitIconType = iconType.split('_');\n return splitIconType[0] + splitIconType[1].charAt(0).toUpperCase() + splitIconType[1].slice(1);\n }\n return iconType;\n};\n\nexport function clipBoardHelper(string = '') {\n const urlElement = document.createElement('textarea');\n urlElement.value = string;\n document.body.appendChild(urlElement);\n urlElement.select();\n document.execCommand('Copy');\n document.body.removeChild(urlElement);\n}\n\nconst arrayMoveMutate = (array, from, to) => {\n const startIndex = from < 0 ? array.length + from : from;\n\n if (startIndex >= 0 && startIndex < array.length) {\n const endIndex = to < 0 ? array.length + to : to;\n\n const [item] = array.splice(from, 1);\n array.splice(endIndex, 0, item);\n }\n};\n\nexport const arrayMove = (array, from, to) => {\n const newArray = [...array];\n arrayMoveMutate(newArray, from, to);\n return newArray;\n};\n\nexport const getZoomValue = ({\n isFullscreen,\n limitZoom,\n settings,\n useFixedPresentationBar,\n useProgressBar,\n}) => {\n const { reportLayoutHeight = 794, reportLayoutWidth = 1123 } = settings;\n\n const { innerHeight, innerWidth } = window;\n\n let paddingValue = 0;\n\n if (!isFullscreen) { // We are not using fixed bar in fullscreen\n const padFixedBar = useFixedPresentationBar ? 50 : 0;\n const padProgressBar = useProgressBar ? 3 : 0;\n\n paddingValue += (padFixedBar + padProgressBar);\n }\n\n const _innerHeight = innerHeight - paddingValue;\n\n let newScale = Math.min(\n (innerWidth - (limitZoom ? 400 : 0)) / reportLayoutWidth,\n _innerHeight / reportLayoutHeight,\n );\n\n if (limitZoom) {\n newScale = Math.floor(newScale * 10) / 10;\n } else {\n // We need this to prevent scrollbars\n newScale = Math.floor(newScale * 100) / 100;\n }\n\n let newZoom = Number(newScale.toFixed(2));\n\n if (limitZoom && newZoom < 0.5) newZoom = 0.5;\n if (limitZoom && newZoom > 1) newZoom = 1;\n\n return newZoom;\n};\n\nexport const throttle = (fn, delay) => {\n let lastCall = 0;\n return (...args) => {\n const now = (new Date()).getTime();\n if (now - lastCall < delay) {\n return;\n }\n lastCall = now;\n return fn(...args);\n };\n};\n\nexport const roundForDecimalPart = num => {\n return +(`${Math.round(`${num}e+2`)}e-2`);\n};\n\nexport const changePage = ({\n action,\n currentPage,\n pageCount,\n setCurrentPage,\n}) => () => {\n if (currentPage + action > pageCount) {\n setCurrentPage(1);\n } else if (currentPage + action === 0) {\n setCurrentPage(pageCount);\n } else {\n setCurrentPage(currentPage + action);\n }\n};\n\nexport const getScaleForPageThumbnail = (width, height) => {\n const [thumbnailMaxHeight, thumbnailMaxWidth] = [110, 156];\n const scale = thumbnailMaxHeight / height;\n if (Math.ceil(width * scale) >= thumbnailMaxWidth) {\n const newScale = thumbnailMaxWidth / width;\n return {\n left: 0,\n scale: newScale,\n top: thumbnailMaxHeight > height * newScale\n ? (thumbnailMaxHeight - (height * newScale)) / 2 : 0,\n };\n }\n return {\n left: thumbnailMaxWidth > width * scale\n ? (thumbnailMaxWidth - (width * scale)) / 2 : 0,\n scale,\n top: 0,\n };\n};\n\nexport const getScaleForPageThumbnailLarge = (width, height) => {\n const thumbnailMaxHeight = 134;\n const thumbnailMaxWidth = 190;\n const defaultScaleRatio = thumbnailMaxHeight / height;\n if (width * defaultScaleRatio > thumbnailMaxWidth) {\n return thumbnailMaxWidth / width;\n }\n return defaultScaleRatio;\n};\n\nexport const scrollToTarget = (id, timeout = 0, options = { behavior: 'smooth' }) => {\n setTimeout(() => {\n const target = document.getElementById(id);\n if (target) {\n target.scrollIntoView(options);\n }\n }, timeout);\n};\n\nexport function normalizeHexColor(value) {\n let v = value.trim();\n if (!v.startsWith('#')) v = `#${v}`;\n return v;\n}\n\nexport function isValidHexColor(value) {\n return /^#(?:[0-9a-fA-F]{3}){1,2}$/.test(value);\n}\n\nexport const emptyFunction = f => f;\n\nexport const isItemInSelectionBox = (selectionBox, item, zoom = 1) => {\n const boxLeft = Math.min(selectionBox.startX, selectionBox.endX);\n const boxTop = Math.min(selectionBox.startY, selectionBox.endY);\n const boxRight = Math.max(selectionBox.startX, selectionBox.endX);\n const boxBottom = Math.max(selectionBox.startY, selectionBox.endY);\n\n const itemLeft = item.left * zoom;\n const itemTop = item.top * zoom;\n const itemRight = (item.left + item.width) * zoom;\n const itemBottom = (item.top + item.height) * zoom;\n\n // Check if rectangles intersect\n return !(\n boxRight < itemLeft\n || boxLeft > itemRight\n || boxBottom < itemTop\n || boxTop > itemBottom\n );\n};\n\nexport const getItemsInSelectionBox = (selectionBox, items, zoom = 1) => {\n return items\n .filter(item => !item.isLocked && isItemInSelectionBox(selectionBox, item, zoom))\n .map(item => item.id);\n};\n\nexport const getDimensions = ({\n height, left, top, width,\n}) => {\n return {\n height,\n left,\n top,\n width,\n };\n};\n\nexport const slidesAsNavigator = slidesListType => {\n return slidesListType === SLIDES_LIST_TYPE_MAP.NAVIGATOR;\n};\n\nexport const slidesAsPanel = slidesListType => {\n return slidesListType === SLIDES_LIST_TYPE_MAP.PANEL;\n};\n"],"names":["roundPositionValues","height","left","top","width","rest","undefined","Math","round","getCorrectDroppedOffsetValue","finalOffset","initialOffset","dropTargetPosition","zoom","finalX","x","finalY","y","initialX","initialY","newYposition","newXposition","getStyles","isDragging","opacity","position","isSelectedItem","id","activeElements","includes","findItemById","itemID","pages","page","find","p","items","item","traverse","obj","condition","split","reduce","cur","key","hideOrShowWhen","selectedItem","setting","itemAccessor","hideSettings","visible","hideWhen","showWhen","hideCondition","conditionType","conditions","Object","keys","every","conditionKey","conditionOfSelectedItem","length","Array","isArray","returnValue","getTabsWithSettings","element","settings","tabsWithSettings","_tabsWithSettings","defaultItem","settingSection","section","push","getTabsWithElements","leftPanelConfig","config","calculateGuidePositions","dimensions","axis","direction","isItem","start","middle","parseInt","end","result","map","test","getAllGuidesForGivenAxisExceptActiveBox","allGuides","guidesForActiveBoxAlongGivenAxis","box","currentBoxGuidesAlongGivenAxis","filter","guides","checkValueProximities","activeBoxGuidesInOneAxis","allOtherGuidesInOneAxis","proximity","intersection","matchedArray","snapThreshold","index","index2","index3","diff","abs","activeBoxIndex","matchedBoxIndex","value","proximityListener","active","xAxisGuidesForActiveBox","yAxisGuidesForActiveBox","xAxisAllGuides","yAxisAllGuides","xAxisMatchedGuides","yAxisMatchedGuides","allMatchedGuides","activeBoxGuides","getMatchesForItem","pageGuides","pageID","_guides","getCoordinatesFromMatches","matches","newActiveBoxLeft","newActiveBoxTop","forEach","activeBoxProximityIndex","matchedBoxProximityIndex","adjustedValue","getPosition","e","posx","posy","pageX","pageY","clientX","clientY","document","body","scrollLeft","documentElement","scrollTop","getContainerPositions","container","positions","windowWidth","global","innerWidth","clientWidth","windowHeight","innerHeight","clientHeight","newPosition","getBoundingClientRect","contextHeight","contextWidth","newPositions","findItemsOnPage","foundPage","coordsCollide","aTop","aLeft","bTop","bLeft","aWidth","aHeight","bWidth","bHeight","tolerance","toleranceDistance","collisionCheck","startIndex","colluded","currIndex","moveArrayItem","array","initialIndex","targetIndex","splice","getFileName","url","pop","getImageSizes","callback","img","Image","addEventListener","src","getVisibleHeightPx","viewportRect","rect","viewportHeight","bottom","elRect","px","absTop","getMostVisiblePage","onlyId","viewport","querySelector","elements","from","querySelectorAll","calculations","acc","getAttribute","sort","n","attr","getAvailableInitialY","attribute","pageHeight","originalPageHeight","originalVisibleHeight","getAvailableCoordinate","isExistsPage","pageItems","accum","_accum","style","coordinate","safeJSONParse","str","defVal","JSON","parse","ex","openFullscreenHelper","elem","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","Promise","resolve","closeFullscreen","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","exitFullscreen","mozCancelFullScreen","webkitExitFullscreen","msExitFullscreen","imageSizeUpdater","updateFunc","objectURL","MAX_WIDTH","MAX_HEIGHT","image","onerror","onload","naturalHeight","naturalWidth","_width","_height","URL","revokeObjectURL","onChangeFunction","customUpdater","ifValueEquals","settingsWillBeChanged","newSettings","settingKey","ifIsEqualPreviousValue","cast","newSetting","_newSettings","match","curr","_acc","newValue","replace","useImageSizeUpdate","getExactIconType","iconType","indexOf","splitIconType","charAt","toUpperCase","slice","arrayMoveMutate","to","endIndex","arrayMove","newArray","getZoomValue","isFullscreen","limitZoom","useFixedPresentationBar","useProgressBar","reportLayoutHeight","reportLayoutWidth","window","paddingValue","padFixedBar","padProgressBar","_innerHeight","newScale","min","floor","newZoom","Number","toFixed","throttle","fn","delay","lastCall","now","Date","getTime","roundForDecimalPart","num","changePage","action","currentPage","pageCount","setCurrentPage","getScaleForPageThumbnail","thumbnailMaxHeight","thumbnailMaxWidth","scale","ceil","scrollToTarget","timeout","options","behavior","setTimeout","target","getElementById","scrollIntoView","normalizeHexColor","v","trim","startsWith","isValidHexColor","emptyFunction","f","isItemInSelectionBox","selectionBox","boxLeft","startX","endX","boxTop","startY","endY","boxRight","max","boxBottom","itemLeft","itemTop","itemRight","itemBottom","getItemsInSelectionBox","isLocked","getDimensions","slidesAsNavigator","slidesListType","SLIDES_LIST_TYPE_MAP","NAVIGATOR","slidesAsPanel","PANEL"],"mappings":"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"}
1
+ {"version":3,"file":"functions.js","sources":["../../../src/utils/functions.js"],"sourcesContent":["/* global Image */\nimport { SLIDES_LIST_TYPE_MAP } from '../constants/panel';\nimport objectDiff from './object-diff';\n\n/**\n * Rounds position/dimension values to integers before sending to service\n * This prevents decimal values from being sent when zoom is not 1\n * Should only be used at the final step before service calls\n */\nexport const roundPositionValues = ({\n height,\n left,\n top,\n width,\n ...rest\n}) => ({\n ...rest,\n ...(height !== undefined && { height: Math.round(height) }),\n ...(left !== undefined && { left: Math.round(left) }),\n ...(top !== undefined && { top: Math.round(top) }),\n ...(width !== undefined && { width: Math.round(width) }),\n});\n\nexport const getCorrectDroppedOffsetValue = (finalOffset, initialOffset, dropTargetPosition, zoom = 1) => {\n const { x: finalX, y: finalY } = finalOffset;\n const { x: initialX, y: initialY } = initialOffset;\n\n const newYposition = finalY > initialY\n ? (initialY + (finalY - initialY)) - dropTargetPosition.top\n : initialY - (initialY - finalY) - dropTargetPosition.top;\n\n const newXposition = finalX > initialX\n ? (initialX + (finalX - initialX)) - dropTargetPosition.left\n : initialX - (initialX - finalX) - dropTargetPosition.left;\n\n return {\n left: newXposition / zoom,\n top: newYposition / zoom,\n };\n};\n\nexport const getStyles = (left, top, isDragging) => {\n return {\n height: isDragging ? 0 : '',\n left,\n opacity: isDragging ? 0 : 1,\n position: 'absolute',\n top,\n };\n};\n\nexport const isSelectedItem = (id, activeElements) => {\n return activeElements.includes(id);\n};\n\nexport const findItemById = (itemID, pages) => {\n const page = pages.find(p => p.items.find(item => item.id === itemID));\n if (!page) return null;\n return page.items.find(item => item.id === itemID);\n};\n\nconst traverse = (obj, condition) => condition.split('.').reduce((cur, key) => cur[key], obj);\n\nconst hideOrShowWhen = (selectedItem, setting, itemAccessor) => {\n if (selectedItem.hideSettings && setting.key !== 'showWarning') {\n return false;\n }\n\n if (setting.visible) {\n return typeof setting.visible === 'function'\n ? setting.visible({ item: selectedItem, itemAccessor })\n : !!setting.visible;\n }\n\n if (setting.hideWhen || setting.showWhen) {\n const hideCondition = !!setting.hideWhen === true;\n const conditionType = hideCondition ? 'hideWhen' : 'showWhen';\n const conditions = setting[conditionType];\n\n return Object.keys(conditions).every(conditionKey => {\n const condition = conditions[conditionKey];\n const conditionOfSelectedItem = conditionKey.split('.').length > 1\n ? traverse(selectedItem, conditionKey) : selectedItem[conditionKey];\n\n if (Array.isArray(condition)) {\n const returnValue = condition.includes(conditionOfSelectedItem);\n return hideCondition ? !returnValue : returnValue;\n }\n\n const returnValue = condition === conditionOfSelectedItem;\n return hideCondition ? !returnValue : returnValue;\n });\n }\n\n return true;\n};\n\nexport const getTabsWithSettings = (element, selectedItem, itemAccessor) => {\n const settings = element.settings || element;\n return settings.reduce((tabsWithSettings, setting) => {\n const _tabsWithSettings = tabsWithSettings;\n const defaultItem = element.defaultItem || {};\n const item = { ...defaultItem, ...selectedItem };\n if (hideOrShowWhen(item, setting, itemAccessor)) {\n const settingSection = setting.section || 'GENERAL';\n if (!_tabsWithSettings[settingSection]) {\n _tabsWithSettings[settingSection] = [];\n }\n _tabsWithSettings[settingSection].push(setting);\n }\n return _tabsWithSettings;\n }, {});\n};\n\nexport const getTabsWithElements = leftPanelConfig => {\n return leftPanelConfig.reduce((tabsWithSettings, config) => {\n const _tabsWithSettings = tabsWithSettings;\n const settingSection = config.section || 'GENERAL';\n _tabsWithSettings[settingSection] = config;\n return _tabsWithSettings;\n }, {});\n};\n\nexport const calculateGuidePositions = (dimensions, axis, zoom = 1, direction = null) => {\n const isItem = dimensions && dimensions.id;\n\n if (axis === 'x') {\n const start = dimensions.left;\n const middle = dimensions.left + parseInt(dimensions.width / 2, 10);\n const end = dimensions.left + dimensions.width;\n\n if (isItem) {\n const result = [start, middle, end].map(p => p * zoom);\n if (direction) {\n if (direction === 'bottom') return [];\n if (direction === 'top') return [];\n if (/left/i.test(direction)) return [result[0]];\n if (/right/i.test(direction)) return [result[2]];\n }\n return result;\n }\n return [start, middle, end];\n }\n\n const start = dimensions.top;\n const middle = dimensions.top + parseInt(dimensions.height / 2, 10);\n const end = dimensions.top + dimensions.height;\n\n if (isItem) {\n const result = [start, middle, end].map(p => p * zoom);\n if (direction) {\n if (direction === 'left') return [];\n if (direction === 'right') return [];\n if (/top/i.test(direction)) return [result[0]];\n if (/bottom/i.test(direction)) return [result[2]];\n }\n return result;\n }\n return [start, middle, end];\n};\n\nexport const getAllGuidesForGivenAxisExceptActiveBox = (\n allGuides,\n guidesForActiveBoxAlongGivenAxis,\n axis,\n) => {\n const result = Object.keys(allGuides).map(box => {\n const currentBoxGuidesAlongGivenAxis = allGuides[box][axis];\n if (currentBoxGuidesAlongGivenAxis !== guidesForActiveBoxAlongGivenAxis) {\n return currentBoxGuidesAlongGivenAxis;\n }\n return undefined;\n });\n\n return result.filter(guides => guides !== undefined);\n};\n\nexport const checkValueProximities = (activeBoxGuidesInOneAxis, allOtherGuidesInOneAxis) => {\n let proximity = null;\n let intersection = null;\n let matchedArray = [];\n const snapThreshold = 5;\n for (let index = 0; index < allOtherGuidesInOneAxis.length; index += 1) {\n let index2 = 0;\n let index3 = 0;\n\n while (index2 < activeBoxGuidesInOneAxis.length\n && index3 < allOtherGuidesInOneAxis[index].length) {\n const diff = Math.abs(activeBoxGuidesInOneAxis[index2]\n - allOtherGuidesInOneAxis[index][index3]);\n if (diff <= snapThreshold) {\n proximity = { activeBoxIndex: index2, matchedBoxIndex: index3, value: diff };\n matchedArray = allOtherGuidesInOneAxis[index];\n intersection = allOtherGuidesInOneAxis[index][index3];\n }\n\n if (activeBoxGuidesInOneAxis[index2] < allOtherGuidesInOneAxis[index][index3]) {\n index2 += 1;\n } else {\n index3 += 1;\n }\n }\n }\n\n return { intersection, matchedArray, proximity };\n};\n\nexport const proximityListener = (active, allGuides) => {\n const xAxisGuidesForActiveBox = allGuides[active].x;\n const yAxisGuidesForActiveBox = allGuides[active].y;\n const xAxisAllGuides = getAllGuidesForGivenAxisExceptActiveBox(\n allGuides,\n xAxisGuidesForActiveBox,\n 'x',\n );\n const yAxisAllGuides = getAllGuidesForGivenAxisExceptActiveBox(\n allGuides,\n yAxisGuidesForActiveBox,\n 'y',\n );\n const xAxisMatchedGuides = checkValueProximities(xAxisGuidesForActiveBox, xAxisAllGuides);\n const yAxisMatchedGuides = checkValueProximities(yAxisGuidesForActiveBox, yAxisAllGuides);\n\n const allMatchedGuides = {};\n\n if (xAxisMatchedGuides.proximity) {\n allMatchedGuides.x = {\n ...xAxisMatchedGuides,\n activeBoxGuides: xAxisGuidesForActiveBox,\n };\n }\n\n if (yAxisMatchedGuides.proximity) {\n allMatchedGuides.y = {\n ...yAxisMatchedGuides,\n activeBoxGuides: yAxisGuidesForActiveBox,\n };\n }\n\n return allMatchedGuides;\n};\n\nexport const getMatchesForItem = (item, guides, zoom, direction = null) => {\n const pageGuides = guides[item.pageID];\n const _guides = {\n ...pageGuides,\n [item.id]: {\n ...pageGuides[item.id],\n x: calculateGuidePositions(item, 'x', zoom, direction),\n y: calculateGuidePositions(item, 'y', zoom, direction),\n },\n };\n return proximityListener(item.id, _guides);\n};\n\nexport const getCoordinatesFromMatches = (item, matches, zoom = 1) => {\n let newActiveBoxLeft = item.left;\n let newActiveBoxTop = item.top;\n Object.keys(matches).forEach(axis => {\n const { activeBoxGuides, matchedArray, proximity } = matches[axis];\n const activeBoxProximityIndex = proximity.activeBoxIndex;\n const matchedBoxProximityIndex = proximity.matchedBoxIndex;\n // proximity.value is in zoomed pixels, divide by zoom to get canvas coordinates\n const adjustedValue = proximity.value / zoom;\n if (axis === 'x') {\n if (activeBoxGuides[activeBoxProximityIndex] > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxLeft = item.left - adjustedValue;\n } else {\n newActiveBoxLeft = item.left + adjustedValue;\n }\n } else if (activeBoxGuides[activeBoxProximityIndex] > matchedArray[matchedBoxProximityIndex]) {\n newActiveBoxTop = item.top - adjustedValue;\n } else {\n newActiveBoxTop = item.top + adjustedValue;\n }\n });\n\n return {\n left: newActiveBoxLeft,\n top: newActiveBoxTop,\n };\n};\n\nexport const getPosition = e => {\n var posx = 0;\n var posy = 0;\n\n if (e.pageX || e.pageY) {\n posx = e.pageX;\n posy = e.pageY;\n } else if (e.clientX || e.clientY) {\n posx = e.clientX + document.body.scrollLeft\n + document.documentElement.scrollLeft;\n posy = e.clientY + document.body.scrollTop\n + document.documentElement.scrollTop;\n }\n\n return {\n x: posx,\n y: posy,\n };\n};\n\nexport const getContainerPositions = (container, positions) => {\n const windowWidth = global.innerWidth\n || global.document.documentElement.clientWidth\n || global.document.body.clientWidth;\n\n const windowHeight = global.innerHeight\n || global.document.documentElement.clientHeight\n || global.document.body.clientHeight;\n\n const newPosition = { ...positions };\n const {\n height: contextHeight,\n width: contextWidth,\n } = container.getBoundingClientRect();\n\n if (contextWidth + newPosition.x > (windowWidth - 8)) {\n newPosition.x = windowWidth - contextWidth - 5;\n }\n\n if (contextHeight + newPosition.y > (windowHeight - 8)) {\n newPosition.y = windowHeight - contextHeight - 30;\n }\n\n const newPositions = {\n x: newPosition.x += 5,\n y: newPosition.y += 3,\n };\n\n return newPositions;\n};\n\nexport const moveItemInArrayFromIndexToIndex = (array, fromIndex, toIndex) => {\n if (fromIndex === toIndex) return array;\n const newArray = [...array];\n const target = newArray[fromIndex];\n const inc = toIndex < fromIndex ? -1 : 1;\n for (let i = fromIndex; i !== toIndex; i += inc) {\n newArray[i] = newArray[i + inc];\n }\n newArray[toIndex] = target;\n return newArray;\n};\n\nexport const findItemsOnPage = (pageID, pages) => {\n const foundPage = pages.find(page => page.id === pageID);\n if (foundPage && foundPage.items) {\n return foundPage.items;\n }\n return [];\n};\n\n// https://github.com/unclecheese/react-selectable/blob/master/src/doObjectsCollide.js\nconst coordsCollide = (aTop, aLeft, bTop, bLeft, aWidth, aHeight, bWidth, bHeight, tolerance) => {\n const toleranceDistance = (typeof tolerance === 'undefined') ? 0 : tolerance;\n\n return !(\n (((aTop + aHeight) - toleranceDistance) < bTop)\n || ((aTop + toleranceDistance) > (bTop + bHeight))\n || (((aLeft + aWidth) - toleranceDistance) < bLeft)\n || ((aLeft + toleranceDistance) > (bLeft + bWidth))\n );\n};\n\nexport const collisionCheck = (item, items, startIndex, direction) => {\n let colluded = false;\n let currIndex = startIndex;\n while (!colluded && items[currIndex + direction]) {\n currIndex += direction;\n colluded = coordsCollide(\n item.top,\n item.left,\n items[currIndex].top,\n items[currIndex].left,\n item.width,\n item.height,\n items[currIndex].width,\n items[currIndex].height,\n );\n }\n\n if (colluded) {\n return currIndex;\n }\n return null;\n};\n\nexport const moveArrayItem = (array, initialIndex, targetIndex) => {\n // mutates origin array\n array.splice(targetIndex, 0, array.splice(initialIndex, 1)[0]);\n};\n\nexport const getFileName = (url = '') => {\n return url.split('/').pop().split('?')[0];\n};\n\nexport const getImageSizes = (url, callback) => {\n const img = new Image();\n img.addEventListener('load', () => callback(img.width, img.height));\n img.src = url;\n};\n\nexport const getVisibleHeightPx = (element, viewportRect) => {\n const rect = element.getBoundingClientRect();\n const viewportHeight = viewportRect.bottom - viewportRect.top;\n const elRect = {\n bottom: viewportRect.bottom - rect.bottom,\n height: rect.bottom - rect.top,\n top: rect.top - viewportRect.top,\n };\n const visible = {\n bottom: elRect.bottom > 0 && elRect.bottom < viewportHeight,\n top: elRect.top >= 0 && elRect.top < viewportHeight,\n };\n let px = 0;\n if (visible.top && visible.bottom) {\n px = elRect.height;\n } else if (visible.top) {\n px = viewportHeight - elRect.top;\n } else if (visible.bottom) {\n px = elRect.height + elRect.top;\n } else if (elRect.height > viewportHeight && elRect.top < 0) {\n var absTop = Math.abs(elRect.top);\n if (absTop < elRect.height) {\n px = elRect.height - absTop;\n }\n }\n\n return { ...visible, px };\n};\n\nexport const getMostVisiblePage = (onlyId = false) => {\n const viewport = document.querySelector('.jfReport-viewport');\n if (viewport) {\n const viewportRect = viewport.getBoundingClientRect();\n const elements = Array.from(document.querySelectorAll('.jfReport-page'));\n const calculations = elements.reduce((acc, element) => {\n acc[element.getAttribute('data-id')] = getVisibleHeightPx(element, viewportRect);\n return acc;\n }, {});\n const pageID = Object.keys(calculations)\n .sort((p, n) => calculations[n].px - calculations[p].px)[0];\n if (onlyId) {\n return pageID;\n }\n return {\n attr: calculations[pageID],\n id: pageID,\n };\n }\n return false;\n};\n\nconst getAvailableInitialY = (page, attribute, zoom) => {\n const rect = page.getBoundingClientRect();\n const pageHeight = rect.bottom - rect.top;\n if (attribute.top) return 0;\n const originalPageHeight = pageHeight * (1 / zoom);\n const originalVisibleHeight = attribute.px * (1 / zoom);\n return (originalPageHeight - originalVisibleHeight);\n};\n\nexport const getAvailableCoordinate = (page, zoom) => {\n const isExistsPage = document.querySelector(`.jfReport-page[data-id=\"${page.id}\"]`);\n if (!isExistsPage) return [0, 0];\n\n // First get initial y for scrolled page\n const initialY = getAvailableInitialY(isExistsPage, page.attr, zoom);\n\n const pageItems = isExistsPage.querySelectorAll('.reportItemWrapper');\n if (!pageItems.length) return [0, initialY];\n\n // Then get available space if there any items\n return [...pageItems].reduce((accum, item) => {\n const _accum = accum;\n const { style: { left, top } } = item;\n const coordinate = [parseInt(left, 10), parseInt(top, 10)];\n if (_accum[0] === coordinate[0] && _accum[1] === coordinate[1]) {\n _accum[0] = _accum[0] + 50;\n _accum[1] = _accum[1] + 50;\n }\n return _accum;\n }, [0, initialY]);\n};\n\nexport function safeJSONParse(str, defVal = {}) {\n if (str) {\n try {\n return JSON.parse(str);\n } catch (ex) {\n return defVal;\n }\n } else {\n return defVal;\n }\n}\n\n/* View in fullscreen */\nexport const openFullscreenHelper = (elem = document.documentElement) => {\n if (elem.requestFullscreen) {\n return elem.requestFullscreen();\n } else if (elem.mozRequestFullScreen) { /* Firefox */\n return elem.mozRequestFullScreen();\n } else if (elem.webkitRequestFullscreen) { /* Chrome, Safari and Opera */\n return elem.webkitRequestFullscreen();\n } else if (elem.msRequestFullscreen) { /* IE/Edge */\n return elem.msRequestFullscreen();\n }\n return Promise.resolve();\n};\n\n/* Close fullscreen */\nexport const closeFullscreen = () => {\n if (document.fullscreenElement\n || document.webkitFullscreenElement\n || document.mozFullScreenElement) {\n if (document.exitFullscreen) {\n return document.exitFullscreen();\n } else if (document.mozCancelFullScreen) { /* Firefox */\n return document.mozCancelFullScreen();\n } else if (document.webkitExitFullscreen) { /* Chrome, Safari and Opera */\n return document.webkitExitFullscreen();\n } else if (document.msExitFullscreen) { /* IE/Edge */\n return document.msExitFullscreen();\n }\n }\n return Promise.resolve();\n};\n\nexport const imageSizeUpdater = (item, { objectURL, url }, updateFunc) => {\n const MAX_WIDTH = 700;\n const MAX_HEIGHT = 600;\n const image = new global.Image();\n image.src = objectURL || url;\n\n image.onerror = () => {\n updateFunc(item, { url });\n };\n\n image.onload = () => {\n const { naturalHeight, naturalWidth } = image;\n let _width = naturalWidth;\n let _height = naturalHeight;\n\n if (naturalWidth > MAX_WIDTH) {\n _height = parseInt((MAX_WIDTH * naturalHeight) / naturalWidth, 10);\n _width = MAX_WIDTH;\n }\n\n if (_height > MAX_HEIGHT) {\n _width = parseInt((_width * MAX_HEIGHT) / _height, 10);\n _height = MAX_HEIGHT;\n }\n\n if (objectURL) {\n URL.revokeObjectURL(objectURL);\n }\n\n updateFunc(\n item, {\n height: _height,\n url: url,\n width: _width,\n },\n );\n };\n};\n\nexport const onChangeFunction = (\n config,\n updateFunc,\n selectedItem,\n customUpdater,\n) => (item, setting) => {\n if (config && config.ifValueEquals) {\n const value = setting[config.key];\n if (config.ifValueEquals[value]) {\n const settingsWillBeChanged = Object.keys(config.ifValueEquals[value])\n .reduce(\n (newSettings,\n settingKey) => {\n const { ifIsEqualPreviousValue } = config.ifValueEquals[value][settingKey];\n const { cast } = config.ifValueEquals[value][settingKey];\n let { value: newSetting } = config.ifValueEquals[value][settingKey];\n const _newSettings = newSettings;\n if (typeof newSetting !== 'string') {\n _newSettings[settingKey] = newSetting;\n return _newSettings;\n }\n const matches = newSetting.match(/{.+?}/g);\n if (matches && matches.length > 0) {\n newSetting = matches.reduce((acc, curr) => {\n let _acc = acc;\n const newValue = selectedItem[\n curr.replace(/\\{|\\}/gi, '')\n ];\n _acc = newSetting.replace(curr, newValue);\n if (cast && cast === 'integer') {\n return parseInt(_acc, 10);\n }\n return _acc;\n }, newSetting);\n }\n if (ifIsEqualPreviousValue && ifIsEqualPreviousValue !== selectedItem[settingKey]) {\n return _newSettings;\n }\n _newSettings[settingKey] = newSetting;\n return _newSettings;\n }, {},\n );\n if (customUpdater) {\n customUpdater(item, {\n ...setting,\n ...settingsWillBeChanged,\n }, updateFunc);\n } else {\n updateFunc(item, {\n ...setting,\n ...settingsWillBeChanged,\n });\n }\n } else if (customUpdater) {\n customUpdater(item, setting, updateFunc);\n } else {\n updateFunc(item, setting);\n }\n } else if (config.useImageSizeUpdate) {\n imageSizeUpdater(item, setting, updateFunc);\n } else if (customUpdater) {\n customUpdater(item, setting, updateFunc);\n } else {\n updateFunc(item, setting);\n }\n};\n\nexport const exportPagesAsJSON = (acceptedItems, pages) => {\n const newPages = pages.map(page => {\n const items = page.items.map(pageItem => {\n const { details } = acceptedItems[pageItem.itemType];\n return {\n ...objectDiff(details, pageItem),\n type: details.itemType,\n };\n });\n return {\n items,\n type: 'regular',\n };\n });\n return JSON.stringify(newPages, null, 2);\n};\n\nexport const getExactIconType = iconType => {\n if (iconType.indexOf('_') > -1) {\n const splitIconType = iconType.split('_');\n return splitIconType[0] + splitIconType[1].charAt(0).toUpperCase() + splitIconType[1].slice(1);\n }\n return iconType;\n};\n\nexport function clipBoardHelper(string = '') {\n const urlElement = document.createElement('textarea');\n urlElement.value = string;\n document.body.appendChild(urlElement);\n urlElement.select();\n document.execCommand('Copy');\n document.body.removeChild(urlElement);\n}\n\nconst arrayMoveMutate = (array, from, to) => {\n const startIndex = from < 0 ? array.length + from : from;\n\n if (startIndex >= 0 && startIndex < array.length) {\n const endIndex = to < 0 ? array.length + to : to;\n\n const [item] = array.splice(from, 1);\n array.splice(endIndex, 0, item);\n }\n};\n\nexport const arrayMove = (array, from, to) => {\n const newArray = [...array];\n arrayMoveMutate(newArray, from, to);\n return newArray;\n};\n\nexport const getZoomValue = ({\n isFullscreen,\n limitZoom,\n settings,\n useFixedPresentationBar,\n useProgressBar,\n}) => {\n const { reportLayoutHeight = 794, reportLayoutWidth = 1123 } = settings;\n\n const { innerHeight, innerWidth } = window;\n\n let paddingValue = 0;\n\n if (!isFullscreen) { // We are not using fixed bar in fullscreen\n const padFixedBar = useFixedPresentationBar ? 50 : 0;\n const padProgressBar = useProgressBar ? 3 : 0;\n\n paddingValue += (padFixedBar + padProgressBar);\n }\n\n const _innerHeight = innerHeight - paddingValue;\n\n let newScale = Math.min(\n (innerWidth - (limitZoom ? 400 : 0)) / reportLayoutWidth,\n _innerHeight / reportLayoutHeight,\n );\n\n if (limitZoom) {\n newScale = Math.floor(newScale * 10) / 10;\n } else {\n // We need this to prevent scrollbars\n newScale = Math.floor(newScale * 100) / 100;\n }\n\n let newZoom = Number(newScale.toFixed(2));\n\n if (limitZoom && newZoom < 0.5) newZoom = 0.5;\n if (limitZoom && newZoom > 1) newZoom = 1;\n\n return newZoom;\n};\n\nexport const throttle = (fn, delay) => {\n let lastCall = 0;\n return (...args) => {\n const now = (new Date()).getTime();\n if (now - lastCall < delay) {\n return;\n }\n lastCall = now;\n return fn(...args);\n };\n};\n\nexport const roundForDecimalPart = num => {\n return +(`${Math.round(`${num}e+2`)}e-2`);\n};\n\nexport const changePage = ({\n action,\n currentPage,\n pageCount,\n setCurrentPage,\n}) => () => {\n if (currentPage + action > pageCount) {\n setCurrentPage(1);\n } else if (currentPage + action === 0) {\n setCurrentPage(pageCount);\n } else {\n setCurrentPage(currentPage + action);\n }\n};\n\nexport const getScaleForPageThumbnail = (width, height) => {\n const [thumbnailMaxHeight, thumbnailMaxWidth] = [110, 156];\n const scale = thumbnailMaxHeight / height;\n if (Math.ceil(width * scale) >= thumbnailMaxWidth) {\n const newScale = thumbnailMaxWidth / width;\n return {\n left: 0,\n scale: newScale,\n top: thumbnailMaxHeight > height * newScale\n ? (thumbnailMaxHeight - (height * newScale)) / 2 : 0,\n };\n }\n return {\n left: thumbnailMaxWidth > width * scale\n ? (thumbnailMaxWidth - (width * scale)) / 2 : 0,\n scale,\n top: 0,\n };\n};\n\nexport const getScaleForPageThumbnailLarge = (width, height) => {\n const thumbnailMaxHeight = 134;\n const thumbnailMaxWidth = 190;\n const defaultScaleRatio = thumbnailMaxHeight / height;\n if (width * defaultScaleRatio > thumbnailMaxWidth) {\n return thumbnailMaxWidth / width;\n }\n return defaultScaleRatio;\n};\n\nexport const scrollToTarget = (id, timeout = 0, options = { behavior: 'smooth' }) => {\n setTimeout(() => {\n const target = document.getElementById(id);\n if (target) {\n target.scrollIntoView(options);\n }\n }, timeout);\n};\n\nexport function normalizeHexColor(value) {\n let v = value.trim();\n if (!v.startsWith('#')) v = `#${v}`;\n return v;\n}\n\nexport function isValidHexColor(value) {\n return /^#(?:[0-9a-fA-F]{3}){1,2}$/.test(value);\n}\n\nexport const emptyFunction = f => f;\n\nexport const isItemInSelectionBox = (selectionBox, item, zoom = 1) => {\n const boxLeft = Math.min(selectionBox.startX, selectionBox.endX);\n const boxTop = Math.min(selectionBox.startY, selectionBox.endY);\n const boxRight = Math.max(selectionBox.startX, selectionBox.endX);\n const boxBottom = Math.max(selectionBox.startY, selectionBox.endY);\n\n const itemLeft = item.left * zoom;\n const itemTop = item.top * zoom;\n const itemRight = (item.left + item.width) * zoom;\n const itemBottom = (item.top + item.height) * zoom;\n\n // Check if rectangles intersect\n return !(\n boxRight < itemLeft\n || boxLeft > itemRight\n || boxBottom < itemTop\n || boxTop > itemBottom\n );\n};\n\nexport const getItemsInSelectionBox = (selectionBox, items, zoom = 1) => {\n return items\n .filter(item => !item.isLocked && isItemInSelectionBox(selectionBox, item, zoom))\n .map(item => item.id);\n};\n\nexport const getDimensions = ({\n height, left, top, width,\n}) => {\n return {\n height,\n left,\n top,\n width,\n };\n};\n\n/** @param {'NAVIGATOR' | 'PANEL'} mode */\nexport const isSlidesListType = (slidesListType, mode) => slidesListType === SLIDES_LIST_TYPE_MAP[mode];\n"],"names":["roundPositionValues","height","left","top","width","rest","undefined","Math","round","getCorrectDroppedOffsetValue","finalOffset","initialOffset","dropTargetPosition","zoom","finalX","x","finalY","y","initialX","initialY","newYposition","newXposition","getStyles","isDragging","opacity","position","isSelectedItem","id","activeElements","includes","findItemById","itemID","pages","page","find","p","items","item","traverse","obj","condition","split","reduce","cur","key","hideOrShowWhen","selectedItem","setting","itemAccessor","hideSettings","visible","hideWhen","showWhen","hideCondition","conditionType","conditions","Object","keys","every","conditionKey","conditionOfSelectedItem","length","Array","isArray","returnValue","getTabsWithSettings","element","settings","tabsWithSettings","_tabsWithSettings","defaultItem","settingSection","section","push","getTabsWithElements","leftPanelConfig","config","calculateGuidePositions","dimensions","axis","direction","isItem","start","middle","parseInt","end","result","map","test","getAllGuidesForGivenAxisExceptActiveBox","allGuides","guidesForActiveBoxAlongGivenAxis","box","currentBoxGuidesAlongGivenAxis","filter","guides","checkValueProximities","activeBoxGuidesInOneAxis","allOtherGuidesInOneAxis","proximity","intersection","matchedArray","snapThreshold","index","index2","index3","diff","abs","activeBoxIndex","matchedBoxIndex","value","proximityListener","active","xAxisGuidesForActiveBox","yAxisGuidesForActiveBox","xAxisAllGuides","yAxisAllGuides","xAxisMatchedGuides","yAxisMatchedGuides","allMatchedGuides","activeBoxGuides","getMatchesForItem","pageGuides","pageID","_guides","getCoordinatesFromMatches","matches","newActiveBoxLeft","newActiveBoxTop","forEach","activeBoxProximityIndex","matchedBoxProximityIndex","adjustedValue","getPosition","e","posx","posy","pageX","pageY","clientX","clientY","document","body","scrollLeft","documentElement","scrollTop","getContainerPositions","container","positions","windowWidth","global","innerWidth","clientWidth","windowHeight","innerHeight","clientHeight","newPosition","getBoundingClientRect","contextHeight","contextWidth","newPositions","findItemsOnPage","foundPage","coordsCollide","aTop","aLeft","bTop","bLeft","aWidth","aHeight","bWidth","bHeight","tolerance","toleranceDistance","collisionCheck","startIndex","colluded","currIndex","moveArrayItem","array","initialIndex","targetIndex","splice","getFileName","url","pop","getImageSizes","callback","img","Image","addEventListener","src","getVisibleHeightPx","viewportRect","rect","viewportHeight","bottom","elRect","px","absTop","getMostVisiblePage","onlyId","viewport","querySelector","elements","from","querySelectorAll","calculations","acc","getAttribute","sort","n","attr","getAvailableInitialY","attribute","pageHeight","originalPageHeight","originalVisibleHeight","getAvailableCoordinate","isExistsPage","pageItems","accum","_accum","style","coordinate","safeJSONParse","str","defVal","JSON","parse","ex","openFullscreenHelper","elem","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","Promise","resolve","closeFullscreen","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","exitFullscreen","mozCancelFullScreen","webkitExitFullscreen","msExitFullscreen","imageSizeUpdater","updateFunc","objectURL","MAX_WIDTH","MAX_HEIGHT","image","onerror","onload","naturalHeight","naturalWidth","_width","_height","URL","revokeObjectURL","onChangeFunction","customUpdater","ifValueEquals","settingsWillBeChanged","newSettings","settingKey","ifIsEqualPreviousValue","cast","newSetting","_newSettings","match","curr","_acc","newValue","replace","useImageSizeUpdate","getExactIconType","iconType","indexOf","splitIconType","charAt","toUpperCase","slice","arrayMoveMutate","to","endIndex","arrayMove","newArray","getZoomValue","isFullscreen","limitZoom","useFixedPresentationBar","useProgressBar","reportLayoutHeight","reportLayoutWidth","window","paddingValue","padFixedBar","padProgressBar","_innerHeight","newScale","min","floor","newZoom","Number","toFixed","throttle","fn","delay","lastCall","now","Date","getTime","roundForDecimalPart","num","changePage","action","currentPage","pageCount","setCurrentPage","getScaleForPageThumbnail","thumbnailMaxHeight","thumbnailMaxWidth","scale","ceil","scrollToTarget","timeout","options","behavior","setTimeout","target","getElementById","scrollIntoView","normalizeHexColor","v","trim","startsWith","isValidHexColor","emptyFunction","f","isItemInSelectionBox","selectionBox","boxLeft","startX","endX","boxTop","startY","endY","boxRight","max","boxBottom","itemLeft","itemTop","itemRight","itemBottom","getItemsInSelectionBox","isLocked","getDimensions","isSlidesListType","slidesListType","mode","SLIDES_LIST_TYPE_MAP"],"mappings":"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"}
@@ -62,6 +62,30 @@ var useEventListener = function useEventListener(eventName, handler) {
62
62
  };
63
63
  }, [eventName, element]);
64
64
  };
65
+ var useResizeListener = function useResizeListener() {
66
+ var condition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
67
+
68
+ var _useState3 = React.useState(function () {
69
+ return typeof window !== 'undefined' ? window.innerWidth : 0;
70
+ }),
71
+ _useState4 = _slicedToArray(_useState3, 2),
72
+ innerWidth = _useState4[0],
73
+ setInnerWidth = _useState4[1];
74
+
75
+ var handleResize = React.useCallback(function () {
76
+ if (typeof window !== 'undefined') {
77
+ setInnerWidth(window.innerWidth);
78
+ }
79
+ }, []);
80
+ React.useEffect(function () {
81
+ if (condition && typeof window !== 'undefined') {
82
+ setInnerWidth(window.innerWidth);
83
+ }
84
+ }, [condition]);
85
+ var target = condition && typeof window !== 'undefined' ? window : null;
86
+ useEventListener('resize', handleResize, target);
87
+ return innerWidth;
88
+ };
65
89
  var usePrevious = function usePrevious(value) {
66
90
  var ref = React.useRef();
67
91
  React.useEffect(function () {
@@ -74,12 +98,12 @@ var usePropState = function usePropState(propValue) {
74
98
  return v;
75
99
  };
76
100
 
77
- var _useState3 = React.useState(function () {
101
+ var _useState5 = React.useState(function () {
78
102
  return transform(propValue);
79
103
  }),
80
- _useState4 = _slicedToArray(_useState3, 2),
81
- state = _useState4[0],
82
- setState = _useState4[1];
104
+ _useState6 = _slicedToArray(_useState5, 2),
105
+ state = _useState6[0],
106
+ setState = _useState6[1];
83
107
 
84
108
  React.useEffect(function () {
85
109
  setState(transform(propValue));
@@ -264,6 +288,7 @@ exports.usePageTransition = usePageTransition;
264
288
  exports.usePageVisibility = usePageVisibility;
265
289
  exports.usePrevious = usePrevious;
266
290
  exports.usePropState = usePropState;
291
+ exports.useResizeListener = useResizeListener;
267
292
  exports.useSelectedElements = useSelectedElements;
268
293
  exports.useTranslatedTexts = useTranslatedTexts;
269
294
  //# sourceMappingURL=hooks.js.map