@elliemae/ds-shared 1.61.10 → 1.61.13

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 (63) hide show
  1. package/cjs/Animations/BaseAnimation.js.map +1 -1
  2. package/cjs/Animations/Grow.js.map +1 -1
  3. package/cjs/Animations/GrowRight.js.map +1 -1
  4. package/cjs/CheckableGroup.js.map +1 -1
  5. package/cjs/DeferRenderAfterComputation.js.map +1 -1
  6. package/cjs/FocusGroup/FocusGrid.js.map +1 -1
  7. package/cjs/FocusGroup/FocusGroup.js.map +1 -1
  8. package/cjs/FocusGroup/FocusGroupManager.js.map +1 -1
  9. package/cjs/FocusGroup/focusGroupManagerHoc.js.map +1 -1
  10. package/cjs/FocusGroup/useFocusGroupItem.js.map +1 -1
  11. package/cjs/FocusGroup/utils/getNextCellPosition.js.map +1 -1
  12. package/cjs/GroupContext/Group.js.map +1 -1
  13. package/cjs/GroupContext/GroupItem.js.map +1 -1
  14. package/cjs/ScrollSync/ScrollSync.js.map +1 -1
  15. package/cjs/ScrollSync/ScrollSyncPane.js.map +1 -1
  16. package/cjs/ScrollSync/ScrollSyncProvider.js.map +1 -1
  17. package/cjs/ScrollSync/useScrollSync.js.map +1 -1
  18. package/cjs/createDataInstance/createInstancePlugin.js.map +1 -1
  19. package/cjs/createDataInstance/createInstanceRef.js.map +1 -1
  20. package/cjs/createDataInstance/utils.js.map +1 -1
  21. package/cjs/defer-render-hoc/index.js.map +1 -1
  22. package/cjs/toolbar/ToolbarProvider.js.map +1 -1
  23. package/cjs/useDataGrid/VolatileRowsListener.js.map +1 -1
  24. package/cjs/useDataGrid/initColumnDefinition.js.map +1 -1
  25. package/cjs/useDataGrid/useDataGrid.js.map +1 -1
  26. package/cjs/useDataList/recordIterator.js.map +1 -1
  27. package/cjs/useDataList/useDataList.js.map +1 -1
  28. package/cjs/utils.js.map +1 -1
  29. package/cjs/virtualization/AutoHeightList.js.map +1 -1
  30. package/cjs/virtualization/FluidHeightList.js.map +1 -1
  31. package/cjs/virtualization/index.js.map +1 -1
  32. package/esm/Animations/BaseAnimation.js.map +1 -1
  33. package/esm/Animations/Grow.js.map +1 -1
  34. package/esm/Animations/GrowRight.js.map +1 -1
  35. package/esm/CheckableGroup.js.map +1 -1
  36. package/esm/DeferRenderAfterComputation.js.map +1 -1
  37. package/esm/FocusGroup/FocusGrid.js.map +1 -1
  38. package/esm/FocusGroup/FocusGroup.js.map +1 -1
  39. package/esm/FocusGroup/FocusGroupManager.js.map +1 -1
  40. package/esm/FocusGroup/focusGroupManagerHoc.js.map +1 -1
  41. package/esm/FocusGroup/useFocusGroupItem.js.map +1 -1
  42. package/esm/FocusGroup/utils/getNextCellPosition.js.map +1 -1
  43. package/esm/GroupContext/Group.js.map +1 -1
  44. package/esm/GroupContext/GroupItem.js.map +1 -1
  45. package/esm/ScrollSync/ScrollSync.js.map +1 -1
  46. package/esm/ScrollSync/ScrollSyncPane.js.map +1 -1
  47. package/esm/ScrollSync/ScrollSyncProvider.js.map +1 -1
  48. package/esm/ScrollSync/useScrollSync.js.map +1 -1
  49. package/esm/createDataInstance/createInstancePlugin.js.map +1 -1
  50. package/esm/createDataInstance/createInstanceRef.js.map +1 -1
  51. package/esm/createDataInstance/utils.js.map +1 -1
  52. package/esm/defer-render-hoc/index.js.map +1 -1
  53. package/esm/toolbar/ToolbarProvider.js.map +1 -1
  54. package/esm/useDataGrid/VolatileRowsListener.js.map +1 -1
  55. package/esm/useDataGrid/initColumnDefinition.js.map +1 -1
  56. package/esm/useDataGrid/useDataGrid.js.map +1 -1
  57. package/esm/useDataList/recordIterator.js.map +1 -1
  58. package/esm/useDataList/useDataList.js.map +1 -1
  59. package/esm/utils.js.map +1 -1
  60. package/esm/virtualization/AutoHeightList.js.map +1 -1
  61. package/esm/virtualization/FluidHeightList.js.map +1 -1
  62. package/esm/virtualization/index.js.map +1 -1
  63. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAnimation.js","sources":["../../../src/Animations/BaseAnimation.tsx"],"sourcesContent":["/* eslint-disable react/prop-types */\nimport React from 'react';\nimport { Transition } from 'react-spring/renderprops.cjs';\n\nconst BaseAnimation = ({\n keys = undefined,\n items = [],\n duration = 100,\n enter = {},\n from = {},\n leave = {},\n onRest = () => null,\n children,\n}) => (\n <Transition\n config={{ duration }}\n enter={enter}\n from={from}\n items={items}\n keys={keys}\n leave={leave}\n onRest={onRest}\n >\n {children}\n </Transition>\n);\n\nexport default BaseAnimation;\n"],"names":["BaseAnimation","keys","undefined","items","duration","enter","from","leave","onRest","children","React","Transition"],"mappings":";;;;;;;;;AAAA;;IAIMA,aAAa,GAAG,SAAhBA,aAAgB;AAAA,uBACpBC,IADoB;AAAA,MACpBA,IADoB,0BACbC,SADa;AAAA,wBAEpBC,KAFoB;AAAA,MAEpBA,KAFoB,2BAEZ,EAFY;AAAA,2BAGpBC,QAHoB;AAAA,MAGpBA,QAHoB,8BAGT,GAHS;AAAA,wBAIpBC,KAJoB;AAAA,MAIpBA,KAJoB,2BAIZ,EAJY;AAAA,uBAKpBC,IALoB;AAAA,MAKpBA,IALoB,0BAKb,EALa;AAAA,wBAMpBC,KANoB;AAAA,MAMpBA,KANoB,2BAMZ,EANY;AAAA,yBAOpBC,MAPoB;AAAA,MAOpBA,MAPoB,4BAOX;AAAA,WAAM,IAAN;AAAA,GAPW;AAAA,MAQpBC,QARoB,QAQpBA,QARoB;AAAA,sBAUpBC,wCAACC,0BAAD;AACE,IAAA,MAAM,EAAE;AAAEP,MAAAA,QAAQ,EAARA;AAAF,KADV;AAEE,IAAA,KAAK,EAAEC,KAFT;AAGE,IAAA,IAAI,EAAEC,IAHR;AAIE,IAAA,KAAK,EAAEH,KAJT;AAKE,IAAA,IAAI,EAAEF,IALR;AAME,IAAA,KAAK,EAAEM,KANT;AAOE,IAAA,MAAM,EAAEC;AAPV,KASGC,QATH,CAVoB;AAAA;;;;"}
1
+ {"version":3,"file":"BaseAnimation.js","sources":["../../../src/Animations/BaseAnimation.tsx"],"sourcesContent":["/* eslint-disable react/prop-types */\nimport React from 'react';\nimport { Transition } from 'react-spring/renderprops.cjs';\n\nconst BaseAnimation = ({\n keys = undefined,\n items = [],\n duration = 100,\n enter = {},\n from = {},\n leave = {},\n onRest = () => null,\n children,\n}) => (\n <Transition\n config={{ duration }}\n enter={enter}\n from={from}\n items={items}\n keys={keys}\n leave={leave}\n onRest={onRest}\n >\n {children}\n </Transition>\n);\n\nexport default BaseAnimation;\n"],"names":["BaseAnimation","keys","undefined","items","duration","enter","from","leave","onRest","children","React","Transition"],"mappings":";;;;;;;;;AAAA;;IAIMA,aAAa,GAAG,SAAhBA,aAAgB;EAAA,qBACpBC,IADoB;MACpBA,IADoB,0BACbC,SADa;wBAEpBC,KAFoB;MAEpBA,KAFoB,2BAEZ,EAFY;2BAGpBC,QAHoB;MAGpBA,QAHoB,8BAGT,GAHS;wBAIpBC,KAJoB;MAIpBA,KAJoB,2BAIZ,EAJY;uBAKpBC,IALoB;MAKpBA,IALoB,0BAKb,EALa;wBAMpBC,KANoB;MAMpBA,KANoB,2BAMZ,EANY;yBAOpBC,MAPoB;MAOpBA,MAPoB,4BAOX;IAAA,OAAM,IAAN;GAPW;MAQpBC,QARoB,QAQpBA,QARoB;EAAA,oBAUpBC,wCAACC,0BAAD;IACE,MAAM,EAAE;MAAEP,QAAQ,EAARA;KADZ;IAEE,KAAK,EAAEC,KAFT;IAGE,IAAI,EAAEC,IAHR;IAIE,KAAK,EAAEH,KAJT;IAKE,IAAI,EAAEF,IALR;IAME,KAAK,EAAEM,KANT;IAOE,MAAM,EAAEC;KAEPC,QATH,CAVoB;AAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Grow.js","sources":["../../../src/Animations/Grow.tsx"],"sourcesContent":["import React from 'react';\nimport BaseAnimation from './BaseAnimation';\n\nconst Grow = ({\n keys = undefined,\n duration,\n items = undefined,\n from = 0,\n to = 1,\n children,\n onRest = () => null,\n}) => (\n <BaseAnimation\n duration={duration}\n enter={{ opacity: 1, transform: `scale(${to})` }}\n from={{ opacity: 0, transform: `scale(${from})` }}\n items={items}\n keys={keys}\n leave={{ opacity: 0, transform: `scale(${from})` }}\n onRest={onRest}\n >\n {children}\n </BaseAnimation>\n);\n\nexport default Grow;\n"],"names":["Grow","keys","undefined","duration","items","from","to","children","onRest","React","BaseAnimation","opacity","transform"],"mappings":";;;;;;;;;;IAGMA,IAAI,GAAG,SAAPA,IAAO;AAAA,uBACXC,IADW;AAAA,MACXA,IADW,0BACJC,SADI;AAAA,MAEXC,QAFW,QAEXA,QAFW;AAAA,wBAGXC,KAHW;AAAA,MAGXA,KAHW,2BAGHF,SAHG;AAAA,uBAIXG,IAJW;AAAA,MAIXA,IAJW,0BAIJ,CAJI;AAAA,qBAKXC,EALW;AAAA,MAKXA,EALW,wBAKN,CALM;AAAA,MAMXC,QANW,QAMXA,QANW;AAAA,yBAOXC,MAPW;AAAA,MAOXA,MAPW,4BAOF;AAAA,WAAM,IAAN;AAAA,GAPE;AAAA,sBASXC,wCAACC,wBAAD;AACE,IAAA,QAAQ,EAAEP,QADZ;AAEE,IAAA,KAAK,EAAE;AAAEQ,MAAAA,OAAO,EAAE,CAAX;AAAcC,MAAAA,SAAS,kBAAWN,EAAX;AAAvB,KAFT;AAGE,IAAA,IAAI,EAAE;AAAEK,MAAAA,OAAO,EAAE,CAAX;AAAcC,MAAAA,SAAS,kBAAWP,IAAX;AAAvB,KAHR;AAIE,IAAA,KAAK,EAAED,KAJT;AAKE,IAAA,IAAI,EAAEH,IALR;AAME,IAAA,KAAK,EAAE;AAAEU,MAAAA,OAAO,EAAE,CAAX;AAAcC,MAAAA,SAAS,kBAAWP,IAAX;AAAvB,KANT;AAOE,IAAA,MAAM,EAAEG;AAPV,KASGD,QATH,CATW;AAAA;;;;"}
1
+ {"version":3,"file":"Grow.js","sources":["../../../src/Animations/Grow.tsx"],"sourcesContent":["import React from 'react';\nimport BaseAnimation from './BaseAnimation';\n\nconst Grow = ({\n keys = undefined,\n duration,\n items = undefined,\n from = 0,\n to = 1,\n children,\n onRest = () => null,\n}) => (\n <BaseAnimation\n duration={duration}\n enter={{ opacity: 1, transform: `scale(${to})` }}\n from={{ opacity: 0, transform: `scale(${from})` }}\n items={items}\n keys={keys}\n leave={{ opacity: 0, transform: `scale(${from})` }}\n onRest={onRest}\n >\n {children}\n </BaseAnimation>\n);\n\nexport default Grow;\n"],"names":["Grow","keys","undefined","duration","items","from","to","children","onRest","React","BaseAnimation","opacity","transform"],"mappings":";;;;;;;;;;IAGMA,IAAI,GAAG,SAAPA,IAAO;EAAA,qBACXC,IADW;MACXA,IADW,0BACJC,SADI;MAEXC,QAFW,QAEXA,QAFW;wBAGXC,KAHW;MAGXA,KAHW,2BAGHF,SAHG;uBAIXG,IAJW;MAIXA,IAJW,0BAIJ,CAJI;qBAKXC,EALW;MAKXA,EALW,wBAKN,CALM;MAMXC,QANW,QAMXA,QANW;yBAOXC,MAPW;MAOXA,MAPW,4BAOF;IAAA,OAAM,IAAN;GAPE;EAAA,oBASXC,wCAACC,wBAAD;IACE,QAAQ,EAAEP,QADZ;IAEE,KAAK,EAAE;MAAEQ,OAAO,EAAE,CAAX;MAAcC,SAAS,kBAAWN,EAAX;KAFhC;IAGE,IAAI,EAAE;MAAEK,OAAO,EAAE,CAAX;MAAcC,SAAS,kBAAWP,IAAX;KAH/B;IAIE,KAAK,EAAED,KAJT;IAKE,IAAI,EAAEH,IALR;IAME,KAAK,EAAE;MAAEU,OAAO,EAAE,CAAX;MAAcC,SAAS,kBAAWP,IAAX;KANhC;IAOE,MAAM,EAAEG;KAEPD,QATH,CATW;AAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"GrowRight.js","sources":["../../../src/Animations/GrowRight.tsx"],"sourcesContent":["import React from 'react';\nimport BaseAnimation from './BaseAnimation';\n\nconst GrowRight = ({\n keys = undefined,\n items = undefined,\n duration = 200,\n from = 0,\n to = 1,\n children,\n onRest = () => null,\n}) => (\n <BaseAnimation\n duration={duration}\n enter={{\n opacity: `${to}`,\n transform: 'translateX(0px)',\n }}\n from={{\n opacity: `${from}`,\n transform: 'translateX(100%)',\n }}\n items={items}\n keys={keys}\n leave={{\n opacity: `${from}`,\n transform: 'translateX(100%)',\n }}\n onRest={onRest}\n >\n {children}\n </BaseAnimation>\n);\n\nexport default GrowRight;\n"],"names":["GrowRight","keys","undefined","items","duration","from","to","children","onRest","React","BaseAnimation","opacity","transform"],"mappings":";;;;;;;;;;IAGMA,SAAS,GAAG,SAAZA,SAAY;AAAA,uBAChBC,IADgB;AAAA,MAChBA,IADgB,0BACTC,SADS;AAAA,wBAEhBC,KAFgB;AAAA,MAEhBA,KAFgB,2BAERD,SAFQ;AAAA,2BAGhBE,QAHgB;AAAA,MAGhBA,QAHgB,8BAGL,GAHK;AAAA,uBAIhBC,IAJgB;AAAA,MAIhBA,IAJgB,0BAIT,CAJS;AAAA,qBAKhBC,EALgB;AAAA,MAKhBA,EALgB,wBAKX,CALW;AAAA,MAMhBC,QANgB,QAMhBA,QANgB;AAAA,yBAOhBC,MAPgB;AAAA,MAOhBA,MAPgB,4BAOP;AAAA,WAAM,IAAN;AAAA,GAPO;AAAA,sBAShBC,wCAACC,wBAAD;AACE,IAAA,QAAQ,EAAEN,QADZ;AAEE,IAAA,KAAK,EAAE;AACLO,MAAAA,OAAO,YAAKL,EAAL,CADF;AAELM,MAAAA,SAAS,EAAE;AAFN,KAFT;AAME,IAAA,IAAI,EAAE;AACJD,MAAAA,OAAO,YAAKN,IAAL,CADH;AAEJO,MAAAA,SAAS,EAAE;AAFP,KANR;AAUE,IAAA,KAAK,EAAET,KAVT;AAWE,IAAA,IAAI,EAAEF,IAXR;AAYE,IAAA,KAAK,EAAE;AACLU,MAAAA,OAAO,YAAKN,IAAL,CADF;AAELO,MAAAA,SAAS,EAAE;AAFN,KAZT;AAgBE,IAAA,MAAM,EAAEJ;AAhBV,KAkBGD,QAlBH,CATgB;AAAA;;;;"}
1
+ {"version":3,"file":"GrowRight.js","sources":["../../../src/Animations/GrowRight.tsx"],"sourcesContent":["import React from 'react';\nimport BaseAnimation from './BaseAnimation';\n\nconst GrowRight = ({\n keys = undefined,\n items = undefined,\n duration = 200,\n from = 0,\n to = 1,\n children,\n onRest = () => null,\n}) => (\n <BaseAnimation\n duration={duration}\n enter={{\n opacity: `${to}`,\n transform: 'translateX(0px)',\n }}\n from={{\n opacity: `${from}`,\n transform: 'translateX(100%)',\n }}\n items={items}\n keys={keys}\n leave={{\n opacity: `${from}`,\n transform: 'translateX(100%)',\n }}\n onRest={onRest}\n >\n {children}\n </BaseAnimation>\n);\n\nexport default GrowRight;\n"],"names":["GrowRight","keys","undefined","items","duration","from","to","children","onRest","React","BaseAnimation","opacity","transform"],"mappings":";;;;;;;;;;IAGMA,SAAS,GAAG,SAAZA,SAAY;EAAA,qBAChBC,IADgB;MAChBA,IADgB,0BACTC,SADS;wBAEhBC,KAFgB;MAEhBA,KAFgB,2BAERD,SAFQ;2BAGhBE,QAHgB;MAGhBA,QAHgB,8BAGL,GAHK;uBAIhBC,IAJgB;MAIhBA,IAJgB,0BAIT,CAJS;qBAKhBC,EALgB;MAKhBA,EALgB,wBAKX,CALW;MAMhBC,QANgB,QAMhBA,QANgB;yBAOhBC,MAPgB;MAOhBA,MAPgB,4BAOP;IAAA,OAAM,IAAN;GAPO;EAAA,oBAShBC,wCAACC,wBAAD;IACE,QAAQ,EAAEN,QADZ;IAEE,KAAK,EAAE;MACLO,OAAO,YAAKL,EAAL,CADF;MAELM,SAAS,EAAE;KAJf;IAME,IAAI,EAAE;MACJD,OAAO,YAAKN,IAAL,CADH;MAEJO,SAAS,EAAE;KARf;IAUE,KAAK,EAAET,KAVT;IAWE,IAAI,EAAEF,IAXR;IAYE,KAAK,EAAE;MACLU,OAAO,YAAKN,IAAL,CADF;MAELO,SAAS,EAAE;KAdf;IAgBE,MAAM,EAAEJ;KAEPD,QAlBH,CATgB;AAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CheckableGroup.js","sources":["../../src/CheckableGroup.tsx"],"sourcesContent":["import React, { cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport { addOrRemove, runAll, useDerivedStateFromProps } from '@elliemae/ds-utilities';\n\nexport function useCheckableGroup({\n children,\n active: activeProp,\n multi,\n onCheck = () => null,\n}) {\n const [active, setActive] = useDerivedStateFromProps(activeProp);\n\n const handleCheck = ({ target: { value } }, item) => {\n setActive(prevActive => {\n const nextActive = multi ? addOrRemove(prevActive, value) : value;\n onCheck(nextActive, item);\n return nextActive;\n });\n };\n\n return React.Children.map(children, child => {\n const { props } = child;\n const checked = Array.isArray(active)\n ? active.indexOf(props.name) !== -1\n : active === props.name;\n\n return cloneElement(child, {\n ...props,\n checked,\n onClick: runAll(handleCheck, props.onClick),\n });\n });\n}\n\nfunction CheckableGroup({\n active = [],\n multi = false, // checkbox or radio\n children,\n}) {\n return useCheckableGroup({ active, multi, children });\n}\n\nCheckableGroup.propTypes = {\n /* The item (if multi false) or items (if multi true) selected */\n active: PropTypes.arrayOf(PropTypes.string),\n /* Whether is multi select or not */\n multi: PropTypes.bool,\n /* Handler when a user checks an item */\n onCheck: PropTypes.func,\n};\n\nexport default CheckableGroup;\n"],"names":["useCheckableGroup","children","activeProp","active","multi","onCheck","useDerivedStateFromProps","setActive","handleCheck","item","value","target","prevActive","nextActive","addOrRemove","React","Children","map","child","props","checked","Array","isArray","indexOf","name","cloneElement","onClick","runAll","CheckableGroup","propTypes","PropTypes","arrayOf","string","bool","func"],"mappings":";;;;;;;;;;;;;;;;;;;;AAIO,SAASA,iBAAT,OAKJ;AAAA,MAJDC,QAIC,QAJDA,QAIC;AAAA,MAHOC,UAGP,QAHDC,MAGC;AAAA,MAFDC,KAEC,QAFDA,KAEC;AAAA,0BADDC,OACC;AAAA,MADDA,OACC,6BADS;AAAA,WAAM,IAAN;AAAA,GACT;;AACD,8BAA4BC,oCAAwB,CAACJ,UAAD,CAApD;AAAA;AAAA,MAAOC,MAAP;AAAA,MAAeI,SAAf;;AAEA,MAAMC,WAAW,GAAG,SAAdA,WAAc,QAAwBC,IAAxB,EAAiC;AAAA,QAApBC,KAAoB,SAA9BC,MAA8B,CAApBD,KAAoB;AACnDH,IAAAA,SAAS,CAAC,UAAAK,UAAU,EAAI;AACtB,UAAMC,UAAU,GAAGT,KAAK,GAAGU,uBAAW,CAACF,UAAD,EAAaF,KAAb,CAAd,GAAoCA,KAA5D;AACAL,MAAAA,OAAO,CAACQ,UAAD,EAAaJ,IAAb,CAAP;AACA,aAAOI,UAAP;AACD,KAJQ,CAAT;AAKD,GAND;;AAQA,SAAOE,yBAAK,CAACC,QAAN,CAAeC,GAAf,CAAmBhB,QAAnB,EAA6B,UAAAiB,KAAK,EAAI;AAC3C,QAAQC,KAAR,GAAkBD,KAAlB,CAAQC,KAAR;AACA,QAAMC,OAAO,GAAGC,KAAK,CAACC,OAAN,CAAcnB,MAAd,IACZA,MAAM,CAACoB,OAAP,CAAeJ,KAAK,CAACK,IAArB,MAA+B,CAAC,CADpB,GAEZrB,MAAM,KAAKgB,KAAK,CAACK,IAFrB;AAIA,wBAAOC,kBAAY,CAACP,KAAD,kCACdC,KADc;AAEjBC,MAAAA,OAAO,EAAPA,OAFiB;AAGjBM,MAAAA,OAAO,EAAEC,kBAAM,CAACnB,WAAD,EAAcW,KAAK,CAACO,OAApB;AAHE,OAAnB;AAKD,GAXM,CAAP;AAYD;;AAED,SAASE,cAAT,QAIG;AAAA,2BAHDzB,MAGC;AAAA,MAHDA,MAGC,6BAHQ,EAGR;AAAA,0BAFDC,KAEC;AAAA,MAFDA,KAEC,4BAFO,KAEP;AAAA,MADDH,QACC,SADDA,QACC;AACD,SAAOD,iBAAiB,CAAC;AAAEG,IAAAA,MAAM,EAANA,MAAF;AAAUC,IAAAA,KAAK,EAALA,KAAV;AAAiBH,IAAAA,QAAQ,EAARA;AAAjB,GAAD,CAAxB;AACD;;AAED2B,cAAc,CAACC,SAAf,GAA2B;AACzB;AACA1B,EAAAA,MAAM,EAAE2B,6BAAS,CAACC,OAAV,CAAkBD,6BAAS,CAACE,MAA5B,CAFiB;;AAGzB;AACA5B,EAAAA,KAAK,EAAE0B,6BAAS,CAACG,IAJQ;;AAKzB;AACA5B,EAAAA,OAAO,EAAEyB,6BAAS,CAACI;AANM,CAA3B;;;;;"}
1
+ {"version":3,"file":"CheckableGroup.js","sources":["../../src/CheckableGroup.tsx"],"sourcesContent":["import React, { cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport { addOrRemove, runAll, useDerivedStateFromProps } from '@elliemae/ds-utilities';\n\nexport function useCheckableGroup({\n children,\n active: activeProp,\n multi,\n onCheck = () => null,\n}) {\n const [active, setActive] = useDerivedStateFromProps(activeProp);\n\n const handleCheck = ({ target: { value } }, item) => {\n setActive(prevActive => {\n const nextActive = multi ? addOrRemove(prevActive, value) : value;\n onCheck(nextActive, item);\n return nextActive;\n });\n };\n\n return React.Children.map(children, child => {\n const { props } = child;\n const checked = Array.isArray(active)\n ? active.indexOf(props.name) !== -1\n : active === props.name;\n\n return cloneElement(child, {\n ...props,\n checked,\n onClick: runAll(handleCheck, props.onClick),\n });\n });\n}\n\nfunction CheckableGroup({\n active = [],\n multi = false, // checkbox or radio\n children,\n}) {\n return useCheckableGroup({ active, multi, children });\n}\n\nCheckableGroup.propTypes = {\n /* The item (if multi false) or items (if multi true) selected */\n active: PropTypes.arrayOf(PropTypes.string),\n /* Whether is multi select or not */\n multi: PropTypes.bool,\n /* Handler when a user checks an item */\n onCheck: PropTypes.func,\n};\n\nexport default CheckableGroup;\n"],"names":["useCheckableGroup","children","activeProp","active","multi","onCheck","useDerivedStateFromProps","setActive","handleCheck","item","value","target","prevActive","nextActive","addOrRemove","React","Children","map","child","props","checked","Array","isArray","indexOf","name","cloneElement","onClick","runAll","CheckableGroup","propTypes","PropTypes","arrayOf","string","bool","func"],"mappings":";;;;;;;;;;;;;;;;;;;;AAIO,SAASA,iBAAT,OAKJ;EAAA,IAJDC,QAIC,QAJDA,QAIC;MAHOC,UAGP,QAHDC,MAGC;MAFDC,KAEC,QAFDA,KAEC;0BADDC,OACC;MADDA,OACC,6BADS;IAAA,OAAM,IAAN;GACT;;EACD,4BAA4BC,oCAAwB,CAACJ,UAAD,CAApD;;MAAOC,MAAP;MAAeI,SAAf;;EAEA,IAAMC,WAAW,GAAG,SAAdA,WAAc,QAAwBC,IAAxB,EAAiC;IAAA,IAApBC,KAAoB,SAA9BC,MAA8B,CAApBD,KAAoB;IACnDH,SAAS,CAAC,UAAAK,UAAU,EAAI;MACtB,IAAMC,UAAU,GAAGT,KAAK,GAAGU,uBAAW,CAACF,UAAD,EAAaF,KAAb,CAAd,GAAoCA,KAA5D;MACAL,OAAO,CAACQ,UAAD,EAAaJ,IAAb,CAAP;MACA,OAAOI,UAAP;KAHO,CAAT;GADF;;EAQA,OAAOE,yBAAK,CAACC,QAAN,CAAeC,GAAf,CAAmBhB,QAAnB,EAA6B,UAAAiB,KAAK,EAAI;IAC3C,IAAQC,KAAR,GAAkBD,KAAlB,CAAQC,KAAR;IACA,IAAMC,OAAO,GAAGC,KAAK,CAACC,OAAN,CAAcnB,MAAd,IACZA,MAAM,CAACoB,OAAP,CAAeJ,KAAK,CAACK,IAArB,MAA+B,CAAC,CADpB,GAEZrB,MAAM,KAAKgB,KAAK,CAACK,IAFrB;IAIA,oBAAOC,kBAAY,CAACP,KAAD,kCACdC,KADc;MAEjBC,OAAO,EAAPA,OAFiB;MAGjBM,OAAO,EAAEC,kBAAM,CAACnB,WAAD,EAAcW,KAAK,CAACO,OAApB;OAHjB;GANK,CAAP;AAYD;;AAED,SAASE,cAAT,QAIG;EAAA,yBAHDzB,MAGC;MAHDA,MAGC,6BAHQ,EAGR;0BAFDC,KAEC;MAFDA,KAEC,4BAFO,KAEP;MADDH,QACC,SADDA,QACC;EACD,OAAOD,iBAAiB,CAAC;IAAEG,MAAM,EAANA,MAAF;IAAUC,KAAK,EAALA,KAAV;IAAiBH,QAAQ,EAARA;GAAlB,CAAxB;AACD;;AAED2B,cAAc,CAACC,SAAf,GAA2B;;EAEzB1B,MAAM,EAAE2B,6BAAS,CAACC,OAAV,CAAkBD,6BAAS,CAACE,MAA5B,CAFiB;;;EAIzB5B,KAAK,EAAE0B,6BAAS,CAACG,IAJQ;;;EAMzB5B,OAAO,EAAEyB,6BAAS,CAACI;AANM,CAA3B;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DeferRenderAfterComputation.js","sources":["../../src/DeferRenderAfterComputation.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport raf from 'raf';\n\nexport default function DeferRenderAfterComputation({\n children,\n resolve,\n fallback,\n timeout = 2000,\n}) {\n const [shouldRender, setShouldRender] = useState(false);\n\n useEffect(() => {\n // eslint-disable-next-line max-nested-callbacks\n raf(() =>\n raf(() =>\n resolve().then(() => {\n setShouldRender(true);\n }),\n ),\n );\n }, []);\n return shouldRender ? children : fallback;\n}\n"],"names":["DeferRenderAfterComputation","children","resolve","fallback","timeout","useState","shouldRender","setShouldRender","useEffect","raf","then"],"mappings":";;;;;;;;;;;AAGe,SAASA,2BAAT,OAKZ;AAAA,MAJDC,QAIC,QAJDA,QAIC;AAAA,MAHDC,OAGC,QAHDA,OAGC;AAAA,MAFDC,QAEC,QAFDA,QAEC;AAAA,WADDC,OACC;;AACD,kBAAwCC,cAAQ,CAAC,KAAD,CAAhD;AAAA;AAAA,MAAOC,YAAP;AAAA,MAAqBC,eAArB;;AAEAC,EAAAA,eAAS,CAAC,YAAM;AACd;AACAC,IAAAA,uBAAG,CAAC;AAAA,aACFA,uBAAG,CAAC;AAAA,eACFP,OAAO,GAAGQ,IAAV,CAAe,YAAM;AACnBH,UAAAA,eAAe,CAAC,IAAD,CAAf;AACD,SAFD,CADE;AAAA,OAAD,CADD;AAAA,KAAD,CAAH;AAOD,GATQ,EASN,EATM,CAAT;AAUA,SAAOD,YAAY,GAAGL,QAAH,GAAcE,QAAjC;AACD;;;;"}
1
+ {"version":3,"file":"DeferRenderAfterComputation.js","sources":["../../src/DeferRenderAfterComputation.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport raf from 'raf';\n\nexport default function DeferRenderAfterComputation({\n children,\n resolve,\n fallback,\n timeout = 2000,\n}) {\n const [shouldRender, setShouldRender] = useState(false);\n\n useEffect(() => {\n // eslint-disable-next-line max-nested-callbacks\n raf(() =>\n raf(() =>\n resolve().then(() => {\n setShouldRender(true);\n }),\n ),\n );\n }, []);\n return shouldRender ? children : fallback;\n}\n"],"names":["DeferRenderAfterComputation","children","resolve","fallback","timeout","useState","shouldRender","setShouldRender","useEffect","raf","then"],"mappings":";;;;;;;;;;;AAGe,SAASA,2BAAT,OAKZ;MAJDC,QAIC,QAJDA,QAIC;MAHDC,OAGC,QAHDA,OAGC;MAFDC,QAEC,QAFDA,QAEC;WADDC,OACC;;EACD,gBAAwCC,cAAQ,CAAC,KAAD,CAAhD;;MAAOC,YAAP;MAAqBC,eAArB;;EAEAC,eAAS,CAAC,YAAM;;IAEdC,uBAAG,CAAC;MAAA,OACFA,uBAAG,CAAC;QAAA,OACFP,OAAO,GAAGQ,IAAV,CAAe,YAAM;UACnBH,eAAe,CAAC,IAAD,CAAf;SADF,CADE;OAAD,CADD;KAAD,CAAH;GAFO,EASN,EATM,CAAT;EAUA,OAAOD,YAAY,GAAGL,QAAH,GAAcE,QAAjC;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FocusGrid.js","sources":["../../../src/FocusGroup/FocusGrid.tsx"],"sourcesContent":["import React, { createContext, useEffect, useMemo, useRef } from 'react';\nimport { isFunction, runAll, get, useHotkeys, mergeRefs } from '@elliemae/ds-utilities';\nimport getNextCellPosition from './utils/getNextCellPosition';\n\nexport const FocusGridContext = createContext();\nconst { Provider } = FocusGridContext;\n\nconst preventDefault = e => e.preventDefault();\n\nfunction registerHotKeysHooks(hotKeys, { focusedRow, focusedCell }) {\n Object.keys(hotKeys).forEach(key => {\n const { handler, options } = hotKeys[key];\n useHotkeys({\n keys: key,\n handler: e => {\n e.preventDefault();\n handler({\n rowIndex: focusedRow.current,\n cellIndex: focusedCell.current,\n });\n },\n options,\n });\n });\n}\n\n// eslint-disable-next-line max-statements\nexport default function FocusGridProvider({\n shouldWrapRows = false,\n shouldWrapCells = false,\n shouldRefocus = true,\n children,\n keyBindings,\n hotKeys,\n}) {\n const focusedRow = useRef();\n const focusedCell = useRef();\n const grid = useRef([]);\n const containerRef = useRef(document);\n const child = React.Children.only(children);\n const decoratedChild = React.cloneElement(child, {\n innerRef: mergeRefs(child.props.innerRef, containerRef),\n });\n\n const getNode = ({ rowIndex, cellIndex }) =>\n get(grid.current, [rowIndex, cellIndex]);\n\n const register = (node, rowIndex, columnIndex) => {\n if (!node) return;\n if (!Array.isArray(grid.current[rowIndex])) {\n grid.current[rowIndex] = [];\n }\n\n if (rowIndex === 0 && columnIndex === 0) {\n node.setAttribute('tabindex', 0);\n } else {\n node.setAttribute('tabindex', -1);\n }\n\n node.onfocus = () => {\n const prevNode = getNode({\n rowIndex: focusedRow.current,\n cellIndex: focusedCell.current,\n });\n\n if (prevNode) prevNode.setAttribute('tabindex', -1);\n\n node.setAttribute('tabindex', 0);\n focusedRow.current = rowIndex;\n focusedCell.current = columnIndex;\n };\n grid.current[rowIndex][columnIndex] = node;\n };\n\n useEffect(() => {\n if (shouldRefocus) {\n const rowIndex = focusedRow.current;\n const cellIndex = focusedCell.current;\n\n const node = get(grid.current, [rowIndex, cellIndex]);\n if (node) node.focus();\n }\n });\n\n const focusNextCell = (directionY, directionX, position) => {\n const { rowIndex, cellIndex } =\n position ||\n getNextCellPosition({\n grid: grid.current,\n currentCell: focusedCell.current,\n currentRow: focusedRow.current,\n directionX,\n directionY,\n shouldWrapCells,\n shouldWrapRows,\n });\n\n const node = getNode({ rowIndex, cellIndex });\n\n // can focus\n if (node) {\n node.focus();\n focusedRow.current = rowIndex;\n focusedCell.current = cellIndex;\n }\n };\n\n registerHotKeysHooks(hotKeys, { focusedCell, focusedRow });\n\n const defaultKeyBindings = {\n ArrowUp: runAll(preventDefault, () => focusNextCell(-1, 0)),\n ArrowRight: runAll(preventDefault, () => focusNextCell(0, 1)),\n ArrowDown: runAll(preventDefault, () => focusNextCell(1, 0)),\n ArrowLeft: runAll(preventDefault, () => focusNextCell(0, -1)),\n Home: runAll(preventDefault, e => {\n let rowIndex = focusedRow.current;\n if (e.ctrlKey) {\n rowIndex = 0;\n }\n focusNextCell(0, 0, { rowIndex, cellIndex: 0 });\n }),\n End: runAll(preventDefault, e => {\n let rowIndex = focusedRow.current;\n if (e.ctrlKey) {\n rowIndex = grid.current.length - 1;\n }\n focusNextCell(0, 0, { rowIndex, cellIndex: grid.current[0].length - 1 });\n }),\n ...keyBindings,\n };\n const nextKeyBindings = isFunction(keyBindings)\n ? keyBindings({\n defaultBindings: defaultKeyBindings,\n rowIndex: focusedRow.current,\n cellIndex: focusedCell.current,\n })\n : { ...defaultKeyBindings, ...keyBindings };\n\n const onKeyDown = e => {\n if (e.target.tagName.toLowerCase() === 'input') return;\n const action = nextKeyBindings[e.key];\n if (isFunction(action)) action(e);\n };\n\n const activate = container => {\n container.addEventListener('keydown', onKeyDown, true);\n };\n\n const deactivate = container => {\n container.removeEventListener('keydown', onKeyDown, true);\n };\n\n useEffect(() => {\n activate(containerRef.current);\n return () => {\n deactivate(containerRef.current);\n };\n }, []);\n\n const valueProvider = useMemo(\n () => ({\n register,\n }),\n [],\n );\n\n return <Provider value={valueProvider}>{decoratedChild}</Provider>;\n}\n"],"names":["FocusGridContext","createContext","Provider","preventDefault","e","registerHotKeysHooks","hotKeys","focusedRow","focusedCell","Object","keys","forEach","key","handler","options","useHotkeys","rowIndex","current","cellIndex","FocusGridProvider","shouldWrapRows","shouldWrapCells","shouldRefocus","children","keyBindings","useRef","grid","containerRef","document","child","React","Children","only","decoratedChild","cloneElement","innerRef","mergeRefs","props","getNode","get","register","node","columnIndex","Array","isArray","setAttribute","onfocus","prevNode","useEffect","focus","focusNextCell","directionY","directionX","position","getNextCellPosition","currentCell","currentRow","defaultKeyBindings","ArrowUp","runAll","ArrowRight","ArrowDown","ArrowLeft","Home","ctrlKey","End","length","nextKeyBindings","isFunction","defaultBindings","onKeyDown","target","tagName","toLowerCase","action","activate","container","addEventListener","deactivate","removeEventListener","valueProvider","useMemo"],"mappings":"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"}
1
+ {"version":3,"file":"FocusGrid.js","sources":["../../../src/FocusGroup/FocusGrid.tsx"],"sourcesContent":["import React, { createContext, useEffect, useMemo, useRef } from 'react';\nimport { isFunction, runAll, get, useHotkeys, mergeRefs } from '@elliemae/ds-utilities';\nimport getNextCellPosition from './utils/getNextCellPosition';\n\nexport const FocusGridContext = createContext();\nconst { Provider } = FocusGridContext;\n\nconst preventDefault = e => e.preventDefault();\n\nfunction registerHotKeysHooks(hotKeys, { focusedRow, focusedCell }) {\n Object.keys(hotKeys).forEach(key => {\n const { handler, options } = hotKeys[key];\n useHotkeys({\n keys: key,\n handler: e => {\n e.preventDefault();\n handler({\n rowIndex: focusedRow.current,\n cellIndex: focusedCell.current,\n });\n },\n options,\n });\n });\n}\n\n// eslint-disable-next-line max-statements\nexport default function FocusGridProvider({\n shouldWrapRows = false,\n shouldWrapCells = false,\n shouldRefocus = true,\n children,\n keyBindings,\n hotKeys,\n}) {\n const focusedRow = useRef();\n const focusedCell = useRef();\n const grid = useRef([]);\n const containerRef = useRef(document);\n const child = React.Children.only(children);\n const decoratedChild = React.cloneElement(child, {\n innerRef: mergeRefs(child.props.innerRef, containerRef),\n });\n\n const getNode = ({ rowIndex, cellIndex }) =>\n get(grid.current, [rowIndex, cellIndex]);\n\n const register = (node, rowIndex, columnIndex) => {\n if (!node) return;\n if (!Array.isArray(grid.current[rowIndex])) {\n grid.current[rowIndex] = [];\n }\n\n if (rowIndex === 0 && columnIndex === 0) {\n node.setAttribute('tabindex', 0);\n } else {\n node.setAttribute('tabindex', -1);\n }\n\n node.onfocus = () => {\n const prevNode = getNode({\n rowIndex: focusedRow.current,\n cellIndex: focusedCell.current,\n });\n\n if (prevNode) prevNode.setAttribute('tabindex', -1);\n\n node.setAttribute('tabindex', 0);\n focusedRow.current = rowIndex;\n focusedCell.current = columnIndex;\n };\n grid.current[rowIndex][columnIndex] = node;\n };\n\n useEffect(() => {\n if (shouldRefocus) {\n const rowIndex = focusedRow.current;\n const cellIndex = focusedCell.current;\n\n const node = get(grid.current, [rowIndex, cellIndex]);\n if (node) node.focus();\n }\n });\n\n const focusNextCell = (directionY, directionX, position) => {\n const { rowIndex, cellIndex } =\n position ||\n getNextCellPosition({\n grid: grid.current,\n currentCell: focusedCell.current,\n currentRow: focusedRow.current,\n directionX,\n directionY,\n shouldWrapCells,\n shouldWrapRows,\n });\n\n const node = getNode({ rowIndex, cellIndex });\n\n // can focus\n if (node) {\n node.focus();\n focusedRow.current = rowIndex;\n focusedCell.current = cellIndex;\n }\n };\n\n registerHotKeysHooks(hotKeys, { focusedCell, focusedRow });\n\n const defaultKeyBindings = {\n ArrowUp: runAll(preventDefault, () => focusNextCell(-1, 0)),\n ArrowRight: runAll(preventDefault, () => focusNextCell(0, 1)),\n ArrowDown: runAll(preventDefault, () => focusNextCell(1, 0)),\n ArrowLeft: runAll(preventDefault, () => focusNextCell(0, -1)),\n Home: runAll(preventDefault, e => {\n let rowIndex = focusedRow.current;\n if (e.ctrlKey) {\n rowIndex = 0;\n }\n focusNextCell(0, 0, { rowIndex, cellIndex: 0 });\n }),\n End: runAll(preventDefault, e => {\n let rowIndex = focusedRow.current;\n if (e.ctrlKey) {\n rowIndex = grid.current.length - 1;\n }\n focusNextCell(0, 0, { rowIndex, cellIndex: grid.current[0].length - 1 });\n }),\n ...keyBindings,\n };\n const nextKeyBindings = isFunction(keyBindings)\n ? keyBindings({\n defaultBindings: defaultKeyBindings,\n rowIndex: focusedRow.current,\n cellIndex: focusedCell.current,\n })\n : { ...defaultKeyBindings, ...keyBindings };\n\n const onKeyDown = e => {\n if (e.target.tagName.toLowerCase() === 'input') return;\n const action = nextKeyBindings[e.key];\n if (isFunction(action)) action(e);\n };\n\n const activate = container => {\n container.addEventListener('keydown', onKeyDown, true);\n };\n\n const deactivate = container => {\n container.removeEventListener('keydown', onKeyDown, true);\n };\n\n useEffect(() => {\n activate(containerRef.current);\n return () => {\n deactivate(containerRef.current);\n };\n }, []);\n\n const valueProvider = useMemo(\n () => ({\n register,\n }),\n [],\n );\n\n return <Provider value={valueProvider}>{decoratedChild}</Provider>;\n}\n"],"names":["FocusGridContext","createContext","Provider","preventDefault","e","registerHotKeysHooks","hotKeys","focusedRow","focusedCell","Object","keys","forEach","key","handler","options","useHotkeys","rowIndex","current","cellIndex","FocusGridProvider","shouldWrapRows","shouldWrapCells","shouldRefocus","children","keyBindings","useRef","grid","containerRef","document","child","React","Children","only","decoratedChild","cloneElement","innerRef","mergeRefs","props","getNode","get","register","node","columnIndex","Array","isArray","setAttribute","onfocus","prevNode","useEffect","focus","focusNextCell","directionY","directionX","position","getNextCellPosition","currentCell","currentRow","defaultKeyBindings","ArrowUp","runAll","ArrowRight","ArrowDown","ArrowLeft","Home","ctrlKey","End","length","nextKeyBindings","isFunction","defaultBindings","onKeyDown","target","tagName","toLowerCase","action","activate","container","addEventListener","deactivate","removeEventListener","valueProvider","useMemo"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FocusGroup.js","sources":["../../../src/FocusGroup/FocusGroup.tsx"],"sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { isFunction, get } from '@elliemae/ds-utilities';\nimport hotkeys from 'hotkeys-js';\n\nconst defaultOptions = {\n orientation: 'vertical',\n};\n\nconst safeCallAction = (e, fun, ...args) => {\n if (isFunction(fun)) {\n e.preventDefault();\n fun(...args);\n }\n};\n\nconst registerHotkeys = (\n hotKeys = {},\n params,\n getContainer = () => document,\n) => {\n Object.keys(hotKeys).forEach((hotkey) => {\n const { options, handler, allowDocumentHandler = false } = hotKeys[hotkey];\n const parameterizedHandler = (e) => {\n const handlerParams = isFunction(params) ? params() : params;\n if (\n !allowDocumentHandler &&\n handlerParams.item !== document.activeElement\n )\n return;\n e.preventDefault();\n handler(handlerParams);\n };\n hotkeys(\n hotkey,\n { element: getContainer(), ...options },\n parameterizedHandler,\n );\n });\n};\n\nconst unregisterHotKeys = (hotKeys = {}) => {\n Object.keys(hotKeys).forEach((hotkey) => {\n hotkeys.unbind(hotkey);\n });\n};\n\nconst noop = () => null;\n\nexport default class FocusGroup {\n items = [];\n\n constructor(options = {}) {\n this.options = { ...defaultOptions, ...options };\n\n const { orientation } = this.options;\n\n this.keyBindings = {\n ArrowUp: orientation !== 'horizontal' && 'previous',\n ArrowRight: orientation !== 'vertical' && 'next',\n ArrowDown: orientation !== 'horizontal' && 'next',\n ArrowLeft: orientation !== 'vertical' && 'previous',\n Home: 'first',\n End: 'last',\n PageUp: 'first',\n PageDown: 'last',\n Escape: 'exit',\n ...options.keyBindings,\n };\n\n this.currentFocusedItem = null;\n this.currIndex = null;\n\n this.mapActions = {\n previous: this.focusPrevious.bind(this),\n next: this.focusNext.bind(this),\n first: this.focusFirst.bind(this),\n last: this.focusLast.bind(this),\n exit: this.exit.bind(this),\n enter: () => null,\n };\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.register = this.register.bind(this);\n this.focusFirst = this.focusFirst.bind(this);\n this.focusLast = this.focusLast.bind(this);\n this.isGroupActive = this.isGroupActive.bind(this);\n this.focusNext = this.focusNext.bind(this);\n this.focusPrevious = this.focusPrevious.bind(this);\n this.focusItem = this.focusItem.bind(this);\n this.focusCurrent = this.focusCurrent.bind(this);\n this.getHotKeysParams = this.getHotKeysParams.bind(this);\n }\n\n getHotKeysParams() {\n const item = this.currentFocusedItem;\n const { index } = get(item, ['dataset'], {});\n return {\n item,\n index,\n };\n }\n\n activate() {\n const { getContainer } = this.options;\n document.addEventListener('keydown', this.handleKeyDown, true);\n registerHotkeys(this.options.hotKeys, this.getHotKeysParams, getContainer);\n }\n\n deactivate() {\n document.removeEventListener('keydown', this.handleKeyDown, true);\n unregisterHotKeys(this.options.hotKeys);\n }\n\n handleKeyDown(e) {\n if (!this.isGroupActive()) return;\n this.executeActionByEvent(e);\n }\n\n executeActionByEvent(e) {\n const actions = Array.isArray(this.keyBindings[e.key])\n ? this.keyBindings[e.key]\n : [this.keyBindings[e.key]];\n return actions.map((action) =>\n typeof action === 'string'\n ? safeCallAction(e, this.mapActions[action])\n : safeCallAction(e, action),\n );\n }\n\n register(node, props = {}) {\n const afterIndex = this.items.findIndex(\n (item) =>\n item.compareDocumentPosition(node) === Node.DOCUMENT_POSITION_PRECEDING,\n );\n node.specialOnFocus = props.onFocus || noop;\n node.specialOnBlur = props.onBlur || noop;\n node.onclick = () => this.focusItem(node);\n node.onfocus = () => {\n this.focusItem(node);\n };\n if (afterIndex === -1) {\n this.items.push(node);\n } else {\n this.items.splice(afterIndex, 0, node);\n }\n }\n\n unregister(node) {\n const index = this.getItemIndexByNode(node);\n if (index > -1) this.items.splice(index, 1);\n }\n\n exit() {\n const { onExitFocusGroup } = this.options;\n onExitFocusGroup();\n }\n\n focusItem(node) {\n if (this.currentFocusedItem && this.currentFocusedItem !== node) {\n this.currentFocusedItem.specialOnBlur();\n this.currentFocusedItem.setAttribute('tabindex', -1);\n }\n if (!node) return;\n this.currentFocusedItem = node;\n node.setAttribute('tabindex', 0);\n node.focus();\n node.specialOnFocus();\n }\n\n focusNext() {\n const item = this.getNextItem();\n this.focusItem(item);\n }\n\n focusByNode(node) {\n const index = this.getItemIndexByNode(node);\n this.focusByIndex(index);\n }\n\n focusByIndex(index) {\n const item = this.getItemByIndex(index);\n this.focusItem(item);\n }\n\n focusPrevious() {\n const prevItem = this.getPreviousItem();\n this.focusItem(prevItem);\n }\n\n focusFirst() {\n const item = this.getFirstItem();\n this.focusItem(item);\n }\n\n focusLast() {\n const item = this.getLastItem();\n this.focusItem(item);\n }\n\n focusCurrent() {\n this.focusItem(this.currentFocusedItem);\n }\n\n focusNextGroup() {\n const { onFocusNextGroup } = this.options;\n this.exit();\n onFocusNextGroup();\n }\n\n focusPreviousGroup() {\n const { onFocusPreviousGroup } = this.options;\n this.exit();\n onFocusPreviousGroup();\n }\n\n getNextItem() {\n const { loop } = this.options;\n const currentIndex = this.getFocusedIndex();\n const supposedNextIndex = currentIndex + 1;\n if (!this.checkCanFocusNext(supposedNextIndex)) {\n return loop ? this.getFirstItem() : this.focusNextGroup();\n }\n return this.getItemByIndex(supposedNextIndex);\n }\n\n getPreviousItem() {\n const { loop } = this.options;\n const currentIndex = this.getFocusedIndex();\n const supposedPrevIndex = currentIndex - 1;\n if (!this.checkCanFocusPrev(supposedPrevIndex)) {\n return loop ? this.getLastItem() : this.focusPreviousGroup();\n }\n return this.getItemByIndex(supposedPrevIndex);\n }\n\n checkCanFocusNext(index) {\n return this.items.length > index;\n }\n\n checkCanFocusPrev(index) {\n return index >= 0;\n }\n\n getItemByIndex(index) {\n return this.items[index];\n }\n\n getItemIndexByNode(node) {\n return this.items.findIndex((item) => item === node);\n }\n\n getFocusedIndex() {\n return this.getItemIndexByNode(document.activeElement);\n }\n\n getFocusedItem() {\n const index = this.getFocusedIndex();\n return index > -1 && this.items[index];\n }\n\n isGroupActive() {\n return this.getFocusedIndex() !== -1;\n }\n\n getFirstItem() {\n return !!this.items.length && this.items[0];\n }\n\n getLastItem() {\n return !!this.items.length && this.items[this.items.length - 1];\n }\n}\n"],"names":["defaultOptions","orientation","safeCallAction","e","fun","isFunction","preventDefault","args","registerHotkeys","hotKeys","params","getContainer","document","Object","keys","forEach","hotkey","options","handler","allowDocumentHandler","parameterizedHandler","handlerParams","item","activeElement","hotkeys","element","unregisterHotKeys","unbind","noop","FocusGroup","items","keyBindings","ArrowUp","ArrowRight","ArrowDown","ArrowLeft","Home","End","PageUp","PageDown","Escape","currentFocusedItem","currIndex","mapActions","previous","focusPrevious","bind","next","focusNext","first","focusFirst","last","focusLast","exit","enter","handleKeyDown","register","isGroupActive","focusItem","focusCurrent","getHotKeysParams","get","index","addEventListener","removeEventListener","executeActionByEvent","actions","Array","isArray","key","map","action","node","props","afterIndex","findIndex","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","specialOnFocus","onFocus","specialOnBlur","onBlur","onclick","onfocus","push","splice","getItemIndexByNode","onExitFocusGroup","setAttribute","focus","getNextItem","focusByIndex","getItemByIndex","prevItem","getPreviousItem","getFirstItem","getLastItem","onFocusNextGroup","onFocusPreviousGroup","loop","currentIndex","getFocusedIndex","supposedNextIndex","checkCanFocusNext","focusNextGroup","supposedPrevIndex","checkCanFocusPrev","focusPreviousGroup","length"],"mappings":"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"}
1
+ {"version":3,"file":"FocusGroup.js","sources":["../../../src/FocusGroup/FocusGroup.tsx"],"sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { isFunction, get } from '@elliemae/ds-utilities';\nimport hotkeys from 'hotkeys-js';\n\nconst defaultOptions = {\n orientation: 'vertical',\n};\n\nconst safeCallAction = (e, fun, ...args) => {\n if (isFunction(fun)) {\n e.preventDefault();\n fun(...args);\n }\n};\n\nconst registerHotkeys = (\n hotKeys = {},\n params,\n getContainer = () => document,\n) => {\n Object.keys(hotKeys).forEach((hotkey) => {\n const { options, handler, allowDocumentHandler = false } = hotKeys[hotkey];\n const parameterizedHandler = (e) => {\n const handlerParams = isFunction(params) ? params() : params;\n if (\n !allowDocumentHandler &&\n handlerParams.item !== document.activeElement\n )\n return;\n e.preventDefault();\n handler(handlerParams);\n };\n hotkeys(\n hotkey,\n { element: getContainer(), ...options },\n parameterizedHandler,\n );\n });\n};\n\nconst unregisterHotKeys = (hotKeys = {}) => {\n Object.keys(hotKeys).forEach((hotkey) => {\n hotkeys.unbind(hotkey);\n });\n};\n\nconst noop = () => null;\n\nexport default class FocusGroup {\n items = [];\n\n constructor(options = {}) {\n this.options = { ...defaultOptions, ...options };\n\n const { orientation } = this.options;\n\n this.keyBindings = {\n ArrowUp: orientation !== 'horizontal' && 'previous',\n ArrowRight: orientation !== 'vertical' && 'next',\n ArrowDown: orientation !== 'horizontal' && 'next',\n ArrowLeft: orientation !== 'vertical' && 'previous',\n Home: 'first',\n End: 'last',\n PageUp: 'first',\n PageDown: 'last',\n Escape: 'exit',\n ...options.keyBindings,\n };\n\n this.currentFocusedItem = null;\n this.currIndex = null;\n\n this.mapActions = {\n previous: this.focusPrevious.bind(this),\n next: this.focusNext.bind(this),\n first: this.focusFirst.bind(this),\n last: this.focusLast.bind(this),\n exit: this.exit.bind(this),\n enter: () => null,\n };\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.register = this.register.bind(this);\n this.focusFirst = this.focusFirst.bind(this);\n this.focusLast = this.focusLast.bind(this);\n this.isGroupActive = this.isGroupActive.bind(this);\n this.focusNext = this.focusNext.bind(this);\n this.focusPrevious = this.focusPrevious.bind(this);\n this.focusItem = this.focusItem.bind(this);\n this.focusCurrent = this.focusCurrent.bind(this);\n this.getHotKeysParams = this.getHotKeysParams.bind(this);\n }\n\n getHotKeysParams() {\n const item = this.currentFocusedItem;\n const { index } = get(item, ['dataset'], {});\n return {\n item,\n index,\n };\n }\n\n activate() {\n const { getContainer } = this.options;\n document.addEventListener('keydown', this.handleKeyDown, true);\n registerHotkeys(this.options.hotKeys, this.getHotKeysParams, getContainer);\n }\n\n deactivate() {\n document.removeEventListener('keydown', this.handleKeyDown, true);\n unregisterHotKeys(this.options.hotKeys);\n }\n\n handleKeyDown(e) {\n if (!this.isGroupActive()) return;\n this.executeActionByEvent(e);\n }\n\n executeActionByEvent(e) {\n const actions = Array.isArray(this.keyBindings[e.key])\n ? this.keyBindings[e.key]\n : [this.keyBindings[e.key]];\n return actions.map((action) =>\n typeof action === 'string'\n ? safeCallAction(e, this.mapActions[action])\n : safeCallAction(e, action),\n );\n }\n\n register(node, props = {}) {\n const afterIndex = this.items.findIndex(\n (item) =>\n item.compareDocumentPosition(node) === Node.DOCUMENT_POSITION_PRECEDING,\n );\n node.specialOnFocus = props.onFocus || noop;\n node.specialOnBlur = props.onBlur || noop;\n node.onclick = () => this.focusItem(node);\n node.onfocus = () => {\n this.focusItem(node);\n };\n if (afterIndex === -1) {\n this.items.push(node);\n } else {\n this.items.splice(afterIndex, 0, node);\n }\n }\n\n unregister(node) {\n const index = this.getItemIndexByNode(node);\n if (index > -1) this.items.splice(index, 1);\n }\n\n exit() {\n const { onExitFocusGroup } = this.options;\n onExitFocusGroup();\n }\n\n focusItem(node) {\n if (this.currentFocusedItem && this.currentFocusedItem !== node) {\n this.currentFocusedItem.specialOnBlur();\n this.currentFocusedItem.setAttribute('tabindex', -1);\n }\n if (!node) return;\n this.currentFocusedItem = node;\n node.setAttribute('tabindex', 0);\n node.focus();\n node.specialOnFocus();\n }\n\n focusNext() {\n const item = this.getNextItem();\n this.focusItem(item);\n }\n\n focusByNode(node) {\n const index = this.getItemIndexByNode(node);\n this.focusByIndex(index);\n }\n\n focusByIndex(index) {\n const item = this.getItemByIndex(index);\n this.focusItem(item);\n }\n\n focusPrevious() {\n const prevItem = this.getPreviousItem();\n this.focusItem(prevItem);\n }\n\n focusFirst() {\n const item = this.getFirstItem();\n this.focusItem(item);\n }\n\n focusLast() {\n const item = this.getLastItem();\n this.focusItem(item);\n }\n\n focusCurrent() {\n this.focusItem(this.currentFocusedItem);\n }\n\n focusNextGroup() {\n const { onFocusNextGroup } = this.options;\n this.exit();\n onFocusNextGroup();\n }\n\n focusPreviousGroup() {\n const { onFocusPreviousGroup } = this.options;\n this.exit();\n onFocusPreviousGroup();\n }\n\n getNextItem() {\n const { loop } = this.options;\n const currentIndex = this.getFocusedIndex();\n const supposedNextIndex = currentIndex + 1;\n if (!this.checkCanFocusNext(supposedNextIndex)) {\n return loop ? this.getFirstItem() : this.focusNextGroup();\n }\n return this.getItemByIndex(supposedNextIndex);\n }\n\n getPreviousItem() {\n const { loop } = this.options;\n const currentIndex = this.getFocusedIndex();\n const supposedPrevIndex = currentIndex - 1;\n if (!this.checkCanFocusPrev(supposedPrevIndex)) {\n return loop ? this.getLastItem() : this.focusPreviousGroup();\n }\n return this.getItemByIndex(supposedPrevIndex);\n }\n\n checkCanFocusNext(index) {\n return this.items.length > index;\n }\n\n checkCanFocusPrev(index) {\n return index >= 0;\n }\n\n getItemByIndex(index) {\n return this.items[index];\n }\n\n getItemIndexByNode(node) {\n return this.items.findIndex((item) => item === node);\n }\n\n getFocusedIndex() {\n return this.getItemIndexByNode(document.activeElement);\n }\n\n getFocusedItem() {\n const index = this.getFocusedIndex();\n return index > -1 && this.items[index];\n }\n\n isGroupActive() {\n return this.getFocusedIndex() !== -1;\n }\n\n getFirstItem() {\n return !!this.items.length && this.items[0];\n }\n\n getLastItem() {\n return !!this.items.length && this.items[this.items.length - 1];\n }\n}\n"],"names":["defaultOptions","orientation","safeCallAction","e","fun","isFunction","preventDefault","args","registerHotkeys","hotKeys","params","getContainer","document","Object","keys","forEach","hotkey","options","handler","allowDocumentHandler","parameterizedHandler","handlerParams","item","activeElement","hotkeys","element","unregisterHotKeys","unbind","noop","FocusGroup","_classCallCheck","items","keyBindings","ArrowUp","ArrowRight","ArrowDown","ArrowLeft","Home","End","PageUp","PageDown","Escape","currentFocusedItem","currIndex","mapActions","previous","focusPrevious","bind","next","focusNext","first","focusFirst","last","focusLast","exit","enter","handleKeyDown","register","isGroupActive","focusItem","focusCurrent","getHotKeysParams","get","index","addEventListener","removeEventListener","executeActionByEvent","actions","Array","isArray","key","map","action","node","props","afterIndex","findIndex","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","specialOnFocus","onFocus","specialOnBlur","onBlur","onclick","onfocus","push","splice","getItemIndexByNode","onExitFocusGroup","setAttribute","focus","getNextItem","focusByIndex","getItemByIndex","prevItem","getPreviousItem","getFirstItem","getLastItem","onFocusNextGroup","onFocusPreviousGroup","loop","currentIndex","getFocusedIndex","supposedNextIndex","checkCanFocusNext","focusNextGroup","supposedPrevIndex","checkCanFocusPrev","focusPreviousGroup","length"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FocusGroupManager.js","sources":["../../../src/FocusGroup/FocusGroupManager.tsx"],"sourcesContent":["import React, { Component, useEffect } from 'react';\nimport { isFunction } from '@elliemae/ds-utilities';\nimport FocusGroup from './FocusGroup';\nimport FocusGroupContext from './FocusGroupContext';\n\nconst noop = () => null;\n\nexport default class FocusGroupProvider extends Component {\n activated = false;\n\n static defaultProps = {\n exitWhenNoPrevious: false,\n exitWhenNoNext: false,\n keyBindings: {},\n onFocus: noop,\n onExitFocusGroup: noop,\n onFocusPreviousGroup: noop,\n onFocusNextGroup: noop,\n onFocusGroupSet: noop,\n };\n\n constructor(props) {\n super(props);\n\n this.focusGroup = new FocusGroup(props);\n\n props.onFocusGroupSet(this);\n\n this.actions = {\n activate: this.activate.bind(this),\n deactivate: this.deactivate.bind(this),\n register: this.focusGroup.register,\n unregister: this.unregister.bind(this),\n focusFirst: this.focusGroup.focusFirst,\n focusLast: this.focusGroup.focusLast,\n focusItemByIndex: this.focusItemByIndex.bind(this),\n focusItemByNode: this.focusItemByNode.bind(this),\n focus: this.focusGroup.focusCurrent,\n isGroupActive: this.focusGroup.isGroupActive,\n focusNext: this.focusGroup.focusNext,\n focusPrevious: this.focusGroup.focusPrevious,\n };\n }\n\n componentDidMount() {\n const { autoFocusOnMount } = this.props;\n\n this.activate();\n\n if (autoFocusOnMount) {\n setTimeout(() => {\n this.actions.focusFirst();\n }, 0);\n }\n }\n\n componentWillUnmount() {\n this.deactivate();\n }\n\n activate() {\n const { onActivate } = this.props;\n this.focusGroup.activate();\n this.activated = true;\n if (isFunction(onActivate)) onActivate();\n }\n\n deactivate() {\n const { onExitFocusGroup } = this.props;\n this.activated = false;\n this.focusGroup.deactivate();\n if (isFunction(onExitFocusGroup)) {\n onExitFocusGroup();\n }\n }\n\n register(item) {\n this.focusGroup.register(item);\n }\n\n unregister(item) {\n this.focusGroup.unregister(item);\n }\n\n focusItemByIndex(index) {\n if (!this.activated) this.activate();\n setTimeout(() => {\n this.focusGroup.focusByIndex(index);\n }, 200);\n }\n\n focusItemByNode(node) {\n if (!this.activated) this.activate();\n const index = this.focusGroup.getItemIndexByNode(node);\n this.focusItemByIndex(index);\n }\n\n render() {\n const { children } = this.props;\n return (\n <FocusGroupContext.Provider value={this.actions}>\n {children}\n </FocusGroupContext.Provider>\n );\n }\n}\n"],"names":["noop","FocusGroupProvider","props","activated","focusGroup","FocusGroup","onFocusGroupSet","actions","activate","bind","deactivate","register","unregister","focusFirst","focusLast","focusItemByIndex","focusItemByNode","focus","focusCurrent","isGroupActive","focusNext","focusPrevious","autoFocusOnMount","setTimeout","onActivate","isFunction","onExitFocusGroup","item","index","focusByIndex","node","getItemIndexByNode","children","React","FocusGroupContext","Component","defaultProps","exitWhenNoPrevious","exitWhenNoNext","keyBindings","onFocus","onFocusPreviousGroup","onFocusNextGroup"],"mappings":"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"}
1
+ {"version":3,"file":"FocusGroupManager.js","sources":["../../../src/FocusGroup/FocusGroupManager.tsx"],"sourcesContent":["import React, { Component, useEffect } from 'react';\nimport { isFunction } from '@elliemae/ds-utilities';\nimport FocusGroup from './FocusGroup';\nimport FocusGroupContext from './FocusGroupContext';\n\nconst noop = () => null;\n\nexport default class FocusGroupProvider extends Component {\n activated = false;\n\n static defaultProps = {\n exitWhenNoPrevious: false,\n exitWhenNoNext: false,\n keyBindings: {},\n onFocus: noop,\n onExitFocusGroup: noop,\n onFocusPreviousGroup: noop,\n onFocusNextGroup: noop,\n onFocusGroupSet: noop,\n };\n\n constructor(props) {\n super(props);\n\n this.focusGroup = new FocusGroup(props);\n\n props.onFocusGroupSet(this);\n\n this.actions = {\n activate: this.activate.bind(this),\n deactivate: this.deactivate.bind(this),\n register: this.focusGroup.register,\n unregister: this.unregister.bind(this),\n focusFirst: this.focusGroup.focusFirst,\n focusLast: this.focusGroup.focusLast,\n focusItemByIndex: this.focusItemByIndex.bind(this),\n focusItemByNode: this.focusItemByNode.bind(this),\n focus: this.focusGroup.focusCurrent,\n isGroupActive: this.focusGroup.isGroupActive,\n focusNext: this.focusGroup.focusNext,\n focusPrevious: this.focusGroup.focusPrevious,\n };\n }\n\n componentDidMount() {\n const { autoFocusOnMount } = this.props;\n\n this.activate();\n\n if (autoFocusOnMount) {\n setTimeout(() => {\n this.actions.focusFirst();\n }, 0);\n }\n }\n\n componentWillUnmount() {\n this.deactivate();\n }\n\n activate() {\n const { onActivate } = this.props;\n this.focusGroup.activate();\n this.activated = true;\n if (isFunction(onActivate)) onActivate();\n }\n\n deactivate() {\n const { onExitFocusGroup } = this.props;\n this.activated = false;\n this.focusGroup.deactivate();\n if (isFunction(onExitFocusGroup)) {\n onExitFocusGroup();\n }\n }\n\n register(item) {\n this.focusGroup.register(item);\n }\n\n unregister(item) {\n this.focusGroup.unregister(item);\n }\n\n focusItemByIndex(index) {\n if (!this.activated) this.activate();\n setTimeout(() => {\n this.focusGroup.focusByIndex(index);\n }, 200);\n }\n\n focusItemByNode(node) {\n if (!this.activated) this.activate();\n const index = this.focusGroup.getItemIndexByNode(node);\n this.focusItemByIndex(index);\n }\n\n render() {\n const { children } = this.props;\n return (\n <FocusGroupContext.Provider value={this.actions}>\n {children}\n </FocusGroupContext.Provider>\n );\n }\n}\n"],"names":["noop","FocusGroupProvider","props","_classCallCheck","activated","focusGroup","FocusGroup","onFocusGroupSet","actions","activate","bind","deactivate","register","unregister","focusFirst","focusLast","focusItemByIndex","focusItemByNode","focus","focusCurrent","isGroupActive","focusNext","focusPrevious","autoFocusOnMount","setTimeout","onActivate","isFunction","onExitFocusGroup","item","index","focusByIndex","node","getItemIndexByNode","children","React","FocusGroupContext","Component","defaultProps","exitWhenNoPrevious","exitWhenNoNext","keyBindings","onFocus","onFocusPreviousGroup","onFocusNextGroup"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"focusGroupManagerHoc.js","sources":["../../../src/FocusGroup/focusGroupManagerHoc.tsx"],"sourcesContent":["/* eslint-disable react/display-name */\nimport React from 'react';\nimport FocusGroupManager from './FocusGroupManager';\n\nexport default function FocusGroupHoc(WrappedComponent, options = {}) {\n return ({\n onExitFocusGroup,\n onFocusPrevGroup,\n focusKeyBindings,\n ...props\n }) => (\n <FocusGroupManager\n keyBindings={focusKeyBindings}\n onExitFocusGroup={onExitFocusGroup}\n onFocusPrevGroup={onFocusPrevGroup}\n {...options}\n >\n <WrappedComponent {...props} {...options} />\n </FocusGroupManager>\n );\n}\n"],"names":["FocusGroupHoc","WrappedComponent","options","onExitFocusGroup","onFocusPrevGroup","focusKeyBindings","props","React","FocusGroupManager"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIe,SAASA,aAAT,CAAuBC,gBAAvB,EAAuD;AAAA,MAAdC,OAAc,uEAAJ,EAAI;AACpE,SAAO;AAAA,QACLC,gBADK,QACLA,gBADK;AAAA,QAELC,gBAFK,QAELA,gBAFK;AAAA,QAGLC,gBAHK,QAGLA,gBAHK;AAAA,QAIFC,KAJE;;AAAA,wBAMLC,wCAACC,4BAAD;AACE,MAAA,WAAW,EAAEH,gBADf;AAEE,MAAA,gBAAgB,EAAEF,gBAFpB;AAGE,MAAA,gBAAgB,EAAEC;AAHpB,OAIMF,OAJN,gBAMEK,wCAAC,gBAAD,mCAAsBD,KAAtB,EAAiCJ,OAAjC,EANF,CANK;AAAA,GAAP;AAeD;;;;"}
1
+ {"version":3,"file":"focusGroupManagerHoc.js","sources":["../../../src/FocusGroup/focusGroupManagerHoc.tsx"],"sourcesContent":["/* eslint-disable react/display-name */\nimport React from 'react';\nimport FocusGroupManager from './FocusGroupManager';\n\nexport default function FocusGroupHoc(WrappedComponent, options = {}) {\n return ({\n onExitFocusGroup,\n onFocusPrevGroup,\n focusKeyBindings,\n ...props\n }) => (\n <FocusGroupManager\n keyBindings={focusKeyBindings}\n onExitFocusGroup={onExitFocusGroup}\n onFocusPrevGroup={onFocusPrevGroup}\n {...options}\n >\n <WrappedComponent {...props} {...options} />\n </FocusGroupManager>\n );\n}\n"],"names":["FocusGroupHoc","WrappedComponent","options","onExitFocusGroup","onFocusPrevGroup","focusKeyBindings","props","React","FocusGroupManager"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIe,SAASA,aAAT,CAAuBC,gBAAvB,EAAuD;EAAA,IAAdC,OAAc,uEAAJ,EAAI;EACpE,OAAO;IAAA,IACLC,gBADK,QACLA,gBADK;QAELC,gBAFK,QAELA,gBAFK;QAGLC,gBAHK,QAGLA,gBAHK;QAIFC,KAJE;;IAAA,oBAMLC,wCAACC,4BAAD;MACE,WAAW,EAAEH,gBADf;MAEE,gBAAgB,EAAEF,gBAFpB;MAGE,gBAAgB,EAAEC;OACdF,OAJN,gBAMEK,wCAAC,gBAAD,mCAAsBD,KAAtB,EAAiCJ,OAAjC,EANF,CANK;GAAP;AAeD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFocusGroupItem.js","sources":["../../../src/FocusGroup/useFocusGroupItem.tsx"],"sourcesContent":["import { useContext, useEffect } from 'react';\nimport FocusGroupContext from './FocusGroupContext';\n\nexport default function useFocusGroupItem(ref = {}, props) {\n const { register, unregister, ...otherActions } =\n useContext(FocusGroupContext) || {};\n\n useEffect(() => {\n if (ref.current && register) register(ref.current, props);\n return () => {\n if (ref.current && unregister) unregister(ref.current);\n };\n });\n\n // if the focus item is not wrapped with the focus provider then return null\n if (!register) return {};\n return otherActions;\n}\n\nexport const useFocusGroupWithState = (ref = {}, props) => {\n const { register, unregister, ...otherActions } =\n useContext(FocusGroupContext) || {};\n\n useEffect(() => {\n if (ref && register) register(ref, props);\n return () => {\n if (ref && unregister) unregister(ref);\n };\n }, [ref]);\n\n // if the focus item is not wrapped with the focus provider then return null\n if (!register) return {};\n return otherActions;\n};\n"],"names":["useFocusGroupItem","ref","props","useContext","FocusGroupContext","register","unregister","otherActions","useEffect","current","useFocusGroupWithState"],"mappings":";;;;;;;;;;;;;;AAGe,SAASA,iBAAT,GAA4C;AAAA,MAAjBC,GAAiB,uEAAX,EAAW;AAAA,MAAPC,KAAO;;AACzD,aACEC,gBAAU,CAACC,4BAAD,CAAV,IAAiC,EADnC;AAAA,MAAQC,QAAR,QAAQA,QAAR;AAAA,MAAkBC,UAAlB,QAAkBA,UAAlB;AAAA,MAAiCC,YAAjC;;AAGAC,EAAAA,eAAS,CAAC,YAAM;AACd,QAAIP,GAAG,CAACQ,OAAJ,IAAeJ,QAAnB,EAA6BA,QAAQ,CAACJ,GAAG,CAACQ,OAAL,EAAcP,KAAd,CAAR;AAC7B,WAAO,YAAM;AACX,UAAID,GAAG,CAACQ,OAAJ,IAAeH,UAAnB,EAA+BA,UAAU,CAACL,GAAG,CAACQ,OAAL,CAAV;AAChC,KAFD;AAGD,GALQ,CAAT,CAJyD;;AAYzD,MAAI,CAACJ,QAAL,EAAe,OAAO,EAAP;AACf,SAAOE,YAAP;AACD;IAEYG,sBAAsB,GAAG,SAAzBA,sBAAyB,GAAqB;AAAA,MAApBT,GAAoB,uEAAd,EAAc;AAAA,MAAVC,KAAU;;AACzD,cACEC,gBAAU,CAACC,4BAAD,CAAV,IAAiC,EADnC;AAAA,MAAQC,QAAR,SAAQA,QAAR;AAAA,MAAkBC,UAAlB,SAAkBA,UAAlB;AAAA,MAAiCC,YAAjC;;AAGAC,EAAAA,eAAS,CAAC,YAAM;AACd,QAAIP,GAAG,IAAII,QAAX,EAAqBA,QAAQ,CAACJ,GAAD,EAAMC,KAAN,CAAR;AACrB,WAAO,YAAM;AACX,UAAID,GAAG,IAAIK,UAAX,EAAuBA,UAAU,CAACL,GAAD,CAAV;AACxB,KAFD;AAGD,GALQ,EAKN,CAACA,GAAD,CALM,CAAT,CAJyD;;AAYzD,MAAI,CAACI,QAAL,EAAe,OAAO,EAAP;AACf,SAAOE,YAAP;AACD;;;;;"}
1
+ {"version":3,"file":"useFocusGroupItem.js","sources":["../../../src/FocusGroup/useFocusGroupItem.tsx"],"sourcesContent":["import { useContext, useEffect } from 'react';\nimport FocusGroupContext from './FocusGroupContext';\n\nexport default function useFocusGroupItem(ref = {}, props) {\n const { register, unregister, ...otherActions } =\n useContext(FocusGroupContext) || {};\n\n useEffect(() => {\n if (ref.current && register) register(ref.current, props);\n return () => {\n if (ref.current && unregister) unregister(ref.current);\n };\n });\n\n // if the focus item is not wrapped with the focus provider then return null\n if (!register) return {};\n return otherActions;\n}\n\nexport const useFocusGroupWithState = (ref = {}, props) => {\n const { register, unregister, ...otherActions } =\n useContext(FocusGroupContext) || {};\n\n useEffect(() => {\n if (ref && register) register(ref, props);\n return () => {\n if (ref && unregister) unregister(ref);\n };\n }, [ref]);\n\n // if the focus item is not wrapped with the focus provider then return null\n if (!register) return {};\n return otherActions;\n};\n"],"names":["useFocusGroupItem","ref","props","useContext","FocusGroupContext","register","unregister","otherActions","useEffect","current","useFocusGroupWithState"],"mappings":";;;;;;;;;;;;;;AAGe,SAASA,iBAAT,GAA4C;EAAA,IAAjBC,GAAiB,uEAAX,EAAW;EAAA,IAAPC,KAAO;;EACzD,WACEC,gBAAU,CAACC,4BAAD,CAAV,IAAiC,EADnC;MAAQC,QAAR,QAAQA,QAAR;MAAkBC,UAAlB,QAAkBA,UAAlB;MAAiCC,YAAjC;;EAGAC,eAAS,CAAC,YAAM;IACd,IAAIP,GAAG,CAACQ,OAAJ,IAAeJ,QAAnB,EAA6BA,QAAQ,CAACJ,GAAG,CAACQ,OAAL,EAAcP,KAAd,CAAR;IAC7B,OAAO,YAAM;MACX,IAAID,GAAG,CAACQ,OAAJ,IAAeH,UAAnB,EAA+BA,UAAU,CAACL,GAAG,CAACQ,OAAL,CAAV;KADjC;GAFO,CAAT,CAJyD;;EAYzD,IAAI,CAACJ,QAAL,EAAe,OAAO,EAAP;EACf,OAAOE,YAAP;AACD;IAEYG,sBAAsB,GAAG,SAAzBA,sBAAyB,GAAqB;EAAA,IAApBT,GAAoB,uEAAd,EAAc;EAAA,IAAVC,KAAU;;EACzD,YACEC,gBAAU,CAACC,4BAAD,CAAV,IAAiC,EADnC;MAAQC,QAAR,SAAQA,QAAR;MAAkBC,UAAlB,SAAkBA,UAAlB;MAAiCC,YAAjC;;EAGAC,eAAS,CAAC,YAAM;IACd,IAAIP,GAAG,IAAII,QAAX,EAAqBA,QAAQ,CAACJ,GAAD,EAAMC,KAAN,CAAR;IACrB,OAAO,YAAM;MACX,IAAID,GAAG,IAAIK,UAAX,EAAuBA,UAAU,CAACL,GAAD,CAAV;KADzB;GAFO,EAKN,CAACA,GAAD,CALM,CAAT,CAJyD;;EAYzD,IAAI,CAACI,QAAL,EAAe,OAAO,EAAP;EACf,OAAOE,YAAP;AACD;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"getNextCellPosition.js","sources":["../../../../src/FocusGroup/utils/getNextCellPosition.tsx"],"sourcesContent":["// eslint-disable-next-line max-statements\nexport default function getNextCellPosition({\n grid,\n currentRow = 0,\n currentCell = 0,\n directionY,\n directionX,\n shouldWrapCells,\n shouldWrapRows,\n}) {\n let nextRow = currentRow + directionY;\n let nextCell = currentCell + directionX;\n const rowCount = grid.length;\n const isLeftRight = directionX !== 0;\n\n if (!rowCount) {\n return false;\n }\n\n const cellsLength = grid[0].length;\n\n // moving horizontally\n if (shouldWrapCells && isLeftRight) {\n // to left\n if (nextCell < 0) {\n nextCell = cellsLength - 1;\n nextRow -= 1;\n }\n\n if (nextCell >= cellsLength) {\n nextCell = 0;\n nextRow += 1;\n }\n }\n\n // moving vertically\n if (shouldWrapRows && !isLeftRight) {\n // to top\n if (nextRow < 0) {\n nextCell -= 1;\n nextRow = rowCount - 1;\n if (grid[nextRow] && nextCell >= 0 && !grid[nextRow][nextCell]) {\n nextRow -= 1;\n }\n } else if (nextRow >= rowCount || !grid[nextRow][nextCell]) {\n nextRow = 0;\n nextCell += 1;\n }\n }\n\n return {\n cellIndex: nextCell,\n rowIndex: nextRow,\n };\n}\n"],"names":["getNextCellPosition","grid","currentRow","currentCell","directionY","directionX","shouldWrapCells","shouldWrapRows","nextRow","nextCell","rowCount","length","isLeftRight","cellsLength","cellIndex","rowIndex"],"mappings":";;AAAA;AACe,SAASA,mBAAT,OAQZ;AAAA,MAPDC,IAOC,QAPDA,IAOC;AAAA,6BANDC,UAMC;AAAA,MANDA,UAMC,gCANY,CAMZ;AAAA,8BALDC,WAKC;AAAA,MALDA,WAKC,iCALa,CAKb;AAAA,MAJDC,UAIC,QAJDA,UAIC;AAAA,MAHDC,UAGC,QAHDA,UAGC;AAAA,MAFDC,eAEC,QAFDA,eAEC;AAAA,MADDC,cACC,QADDA,cACC;AACD,MAAIC,OAAO,GAAGN,UAAU,GAAGE,UAA3B;AACA,MAAIK,QAAQ,GAAGN,WAAW,GAAGE,UAA7B;AACA,MAAMK,QAAQ,GAAGT,IAAI,CAACU,MAAtB;AACA,MAAMC,WAAW,GAAGP,UAAU,KAAK,CAAnC;;AAEA,MAAI,CAACK,QAAL,EAAe;AACb,WAAO,KAAP;AACD;;AAED,MAAMG,WAAW,GAAGZ,IAAI,CAAC,CAAD,CAAJ,CAAQU,MAA5B,CAVC;;AAaD,MAAIL,eAAe,IAAIM,WAAvB,EAAoC;AAClC;AACA,QAAIH,QAAQ,GAAG,CAAf,EAAkB;AAChBA,MAAAA,QAAQ,GAAGI,WAAW,GAAG,CAAzB;AACAL,MAAAA,OAAO,IAAI,CAAX;AACD;;AAED,QAAIC,QAAQ,IAAII,WAAhB,EAA6B;AAC3BJ,MAAAA,QAAQ,GAAG,CAAX;AACAD,MAAAA,OAAO,IAAI,CAAX;AACD;AACF,GAxBA;;;AA2BD,MAAID,cAAc,IAAI,CAACK,WAAvB,EAAoC;AAClC;AACA,QAAIJ,OAAO,GAAG,CAAd,EAAiB;AACfC,MAAAA,QAAQ,IAAI,CAAZ;AACAD,MAAAA,OAAO,GAAGE,QAAQ,GAAG,CAArB;;AACA,UAAIT,IAAI,CAACO,OAAD,CAAJ,IAAiBC,QAAQ,IAAI,CAA7B,IAAkC,CAACR,IAAI,CAACO,OAAD,CAAJ,CAAcC,QAAd,CAAvC,EAAgE;AAC9DD,QAAAA,OAAO,IAAI,CAAX;AACD;AACF,KAND,MAMO,IAAIA,OAAO,IAAIE,QAAX,IAAuB,CAACT,IAAI,CAACO,OAAD,CAAJ,CAAcC,QAAd,CAA5B,EAAqD;AAC1DD,MAAAA,OAAO,GAAG,CAAV;AACAC,MAAAA,QAAQ,IAAI,CAAZ;AACD;AACF;;AAED,SAAO;AACLK,IAAAA,SAAS,EAAEL,QADN;AAELM,IAAAA,QAAQ,EAAEP;AAFL,GAAP;AAID;;;;"}
1
+ {"version":3,"file":"getNextCellPosition.js","sources":["../../../../src/FocusGroup/utils/getNextCellPosition.tsx"],"sourcesContent":["// eslint-disable-next-line max-statements\nexport default function getNextCellPosition({\n grid,\n currentRow = 0,\n currentCell = 0,\n directionY,\n directionX,\n shouldWrapCells,\n shouldWrapRows,\n}) {\n let nextRow = currentRow + directionY;\n let nextCell = currentCell + directionX;\n const rowCount = grid.length;\n const isLeftRight = directionX !== 0;\n\n if (!rowCount) {\n return false;\n }\n\n const cellsLength = grid[0].length;\n\n // moving horizontally\n if (shouldWrapCells && isLeftRight) {\n // to left\n if (nextCell < 0) {\n nextCell = cellsLength - 1;\n nextRow -= 1;\n }\n\n if (nextCell >= cellsLength) {\n nextCell = 0;\n nextRow += 1;\n }\n }\n\n // moving vertically\n if (shouldWrapRows && !isLeftRight) {\n // to top\n if (nextRow < 0) {\n nextCell -= 1;\n nextRow = rowCount - 1;\n if (grid[nextRow] && nextCell >= 0 && !grid[nextRow][nextCell]) {\n nextRow -= 1;\n }\n } else if (nextRow >= rowCount || !grid[nextRow][nextCell]) {\n nextRow = 0;\n nextCell += 1;\n }\n }\n\n return {\n cellIndex: nextCell,\n rowIndex: nextRow,\n };\n}\n"],"names":["getNextCellPosition","grid","currentRow","currentCell","directionY","directionX","shouldWrapCells","shouldWrapRows","nextRow","nextCell","rowCount","length","isLeftRight","cellsLength","cellIndex","rowIndex"],"mappings":";;AAAA;AACe,SAASA,mBAAT,OAQZ;EAAA,IAPDC,IAOC,QAPDA,IAOC;6BANDC,UAMC;MANDA,UAMC,gCANY,CAMZ;8BALDC,WAKC;MALDA,WAKC,iCALa,CAKb;MAJDC,UAIC,QAJDA,UAIC;MAHDC,UAGC,QAHDA,UAGC;MAFDC,eAEC,QAFDA,eAEC;MADDC,cACC,QADDA,cACC;EACD,IAAIC,OAAO,GAAGN,UAAU,GAAGE,UAA3B;EACA,IAAIK,QAAQ,GAAGN,WAAW,GAAGE,UAA7B;EACA,IAAMK,QAAQ,GAAGT,IAAI,CAACU,MAAtB;EACA,IAAMC,WAAW,GAAGP,UAAU,KAAK,CAAnC;;EAEA,IAAI,CAACK,QAAL,EAAe;IACb,OAAO,KAAP;;;EAGF,IAAMG,WAAW,GAAGZ,IAAI,CAAC,CAAD,CAAJ,CAAQU,MAA5B,CAVC;;EAaD,IAAIL,eAAe,IAAIM,WAAvB,EAAoC;;IAElC,IAAIH,QAAQ,GAAG,CAAf,EAAkB;MAChBA,QAAQ,GAAGI,WAAW,GAAG,CAAzB;MACAL,OAAO,IAAI,CAAX;;;IAGF,IAAIC,QAAQ,IAAII,WAAhB,EAA6B;MAC3BJ,QAAQ,GAAG,CAAX;MACAD,OAAO,IAAI,CAAX;;GAtBH;;;EA2BD,IAAID,cAAc,IAAI,CAACK,WAAvB,EAAoC;;IAElC,IAAIJ,OAAO,GAAG,CAAd,EAAiB;MACfC,QAAQ,IAAI,CAAZ;MACAD,OAAO,GAAGE,QAAQ,GAAG,CAArB;;MACA,IAAIT,IAAI,CAACO,OAAD,CAAJ,IAAiBC,QAAQ,IAAI,CAA7B,IAAkC,CAACR,IAAI,CAACO,OAAD,CAAJ,CAAcC,QAAd,CAAvC,EAAgE;QAC9DD,OAAO,IAAI,CAAX;;KAJJ,MAMO,IAAIA,OAAO,IAAIE,QAAX,IAAuB,CAACT,IAAI,CAACO,OAAD,CAAJ,CAAcC,QAAd,CAA5B,EAAqD;MAC1DD,OAAO,GAAG,CAAV;MACAC,QAAQ,IAAI,CAAZ;;;;EAIJ,OAAO;IACLK,SAAS,EAAEL,QADN;IAELM,QAAQ,EAAEP;GAFZ;AAID;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Group.js","sources":["../../../src/GroupContext/Group.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-state */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { GroupContext } from './GroupContext';\n\nconst getValueItem = (e) => {\n const { target, currentTarget } = e;\n if (target) {\n const { value } = target;\n return value;\n }\n if (currentTarget) {\n const { value } = currentTarget;\n return value;\n }\n return e;\n};\n\nconst toggleItemValue = (array, e) => {\n const newvalue = getValueItem(e);\n const res = array;\n const index = array.indexOf(newvalue);\n\n if (index === -1) {\n res.push(newvalue);\n } else {\n res.splice(index, 1);\n }\n\n return res;\n};\n\nconst { Provider } = GroupContext;\n/** deprecated use CheckableGroup instead */\nclass Group extends Component {\n constructor(props) {\n super(props);\n const { activeValue, disabled } = props;\n this.state = {\n activeValue,\n disabled,\n prevValue: null,\n onChange: this.handleChange.bind(this),\n };\n }\n\n static getDerivedStateFromProps(nextProps, { prevValue }) {\n if (nextProps.activeValue === prevValue) return null;\n return {\n activeValue: nextProps.activeValue,\n prevValue: nextProps.activeValue,\n };\n }\n\n handleChange(e, ...rest) {\n const { multiple, onChange } = this.props;\n const { activeValue } = this.state;\n const value = getValueItem(e);\n let newValue;\n if (multiple) {\n newValue = toggleItemValue(activeValue || [], value);\n } else if (activeValue !== value) {\n // default behaviour it will be toggle the active value\n newValue = value;\n }\n\n this.setState({\n activeValue: newValue,\n });\n\n if (onChange) onChange(newValue, ...rest);\n }\n\n render() {\n const { children } = this.props;\n return <Provider value={this.state}>{children}</Provider>;\n }\n}\n\nGroup.defaultProps = {\n multiple: false,\n};\n\nGroup.propTypes = {\n children: PropTypes.array,\n multiple: PropTypes.bool,\n onChange: PropTypes.func,\n activeValue: PropTypes.oneOfType([PropTypes.array, PropTypes.number]),\n disabled: PropTypes.bool,\n};\n\nexport default Group;\n"],"names":["getValueItem","e","target","currentTarget","value","toggleItemValue","array","newvalue","res","index","indexOf","push","splice","Provider","GroupContext","Group","props","activeValue","disabled","state","prevValue","onChange","handleChange","bind","multiple","newValue","setState","rest","children","React","nextProps","Component","defaultProps","propTypes","PropTypes","bool","func","oneOfType","number"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAACC,CAAD,EAAO;AAC1B,MAAQC,MAAR,GAAkCD,CAAlC,CAAQC,MAAR;AAAA,MAAgBC,aAAhB,GAAkCF,CAAlC,CAAgBE,aAAhB;;AACA,MAAID,MAAJ,EAAY;AACV,QAAQE,KAAR,GAAkBF,MAAlB,CAAQE,KAAR;AACA,WAAOA,KAAP;AACD;;AACD,MAAID,aAAJ,EAAmB;AACjB,QAAQC,MAAR,GAAkBD,aAAlB,CAAQC,KAAR;AACA,WAAOA,MAAP;AACD;;AACD,SAAOH,CAAP;AACD,CAXD;;AAaA,IAAMI,eAAe,GAAG,SAAlBA,eAAkB,CAACC,KAAD,EAAQL,CAAR,EAAc;AACpC,MAAMM,QAAQ,GAAGP,YAAY,CAACC,CAAD,CAA7B;AACA,MAAMO,GAAG,GAAGF,KAAZ;AACA,MAAMG,KAAK,GAAGH,KAAK,CAACI,OAAN,CAAcH,QAAd,CAAd;;AAEA,MAAIE,KAAK,KAAK,CAAC,CAAf,EAAkB;AAChBD,IAAAA,GAAG,CAACG,IAAJ,CAASJ,QAAT;AACD,GAFD,MAEO;AACLC,IAAAA,GAAG,CAACI,MAAJ,CAAWH,KAAX,EAAkB,CAAlB;AACD;;AAED,SAAOD,GAAP;AACD,CAZD;;AAcA,IAAQK,QAAR,GAAqBC,sCAArB,CAAQD,QAAR;AACA;;IACME;;;;;AACJ,iBAAYC,KAAZ,EAAmB;AAAA;;AAAA;;AACjB,8BAAMA,KAAN;AACA,QAAQC,WAAR,GAAkCD,KAAlC,CAAQC,WAAR;AAAA,QAAqBC,QAArB,GAAkCF,KAAlC,CAAqBE,QAArB;AACA,UAAKC,KAAL,GAAa;AACXF,MAAAA,WAAW,EAAXA,WADW;AAEXC,MAAAA,QAAQ,EAARA,QAFW;AAGXE,MAAAA,SAAS,EAAE,IAHA;AAIXC,MAAAA,QAAQ,EAAE,MAAKC,YAAL,CAAkBC,IAAlB;AAJC,KAAb;AAHiB;AASlB;;;;WAUD,sBAAatB,CAAb,EAAyB;AACvB,wBAA+B,KAAKe,KAApC;AAAA,UAAQQ,QAAR,eAAQA,QAAR;AAAA,UAAkBH,QAAlB,eAAkBA,QAAlB;AACA,UAAQJ,WAAR,GAAwB,KAAKE,KAA7B,CAAQF,WAAR;AACA,UAAMb,KAAK,GAAGJ,YAAY,CAACC,CAAD,CAA1B;AACA,UAAIwB,QAAJ;;AACA,UAAID,QAAJ,EAAc;AACZC,QAAAA,QAAQ,GAAGpB,eAAe,CAACY,WAAW,IAAI,EAAhB,EAAoBb,KAApB,CAA1B;AACD,OAFD,MAEO,IAAIa,WAAW,KAAKb,KAApB,EAA2B;AAChC;AACAqB,QAAAA,QAAQ,GAAGrB,KAAX;AACD;;AAED,WAAKsB,QAAL,CAAc;AACZT,QAAAA,WAAW,EAAEQ;AADD,OAAd;;AAZuB,wCAANE,IAAM;AAANA,QAAAA,IAAM;AAAA;;AAgBvB,UAAIN,QAAJ,EAAcA,QAAQ,MAAR,UAASI,QAAT,SAAsBE,IAAtB;AACf;;;WAED,kBAAS;AACP,UAAQC,QAAR,GAAqB,KAAKZ,KAA1B,CAAQY,QAAR;AACA,0BAAOC,wCAAC,QAAD;AAAU,QAAA,KAAK,EAAE,KAAKV;AAAtB,SAA8BS,QAA9B,CAAP;AACD;;;WA9BD,kCAAgCE,SAAhC,QAA0D;AAAA,UAAbV,SAAa,QAAbA,SAAa;AACxD,UAAIU,SAAS,CAACb,WAAV,KAA0BG,SAA9B,EAAyC,OAAO,IAAP;AACzC,aAAO;AACLH,QAAAA,WAAW,EAAEa,SAAS,CAACb,WADlB;AAELG,QAAAA,SAAS,EAAEU,SAAS,CAACb;AAFhB,OAAP;AAID;;;;EAlBiBc;;AA6CpBhB,KAAK,CAACiB,YAAN,GAAqB;AACnBR,EAAAA,QAAQ,EAAE;AADS,CAArB;AAIAT,KAAK,CAACkB,SAAN,GAAkB;AAChBL,EAAAA,QAAQ,EAAEM,6BAAS,CAAC5B,KADJ;AAEhBkB,EAAAA,QAAQ,EAAEU,6BAAS,CAACC,IAFJ;AAGhBd,EAAAA,QAAQ,EAAEa,6BAAS,CAACE,IAHJ;AAIhBnB,EAAAA,WAAW,EAAEiB,6BAAS,CAACG,SAAV,CAAoB,CAACH,6BAAS,CAAC5B,KAAX,EAAkB4B,6BAAS,CAACI,MAA5B,CAApB,CAJG;AAKhBpB,EAAAA,QAAQ,EAAEgB,6BAAS,CAACC;AALJ,CAAlB;;;;"}
1
+ {"version":3,"file":"Group.js","sources":["../../../src/GroupContext/Group.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-state */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { GroupContext } from './GroupContext';\n\nconst getValueItem = (e) => {\n const { target, currentTarget } = e;\n if (target) {\n const { value } = target;\n return value;\n }\n if (currentTarget) {\n const { value } = currentTarget;\n return value;\n }\n return e;\n};\n\nconst toggleItemValue = (array, e) => {\n const newvalue = getValueItem(e);\n const res = array;\n const index = array.indexOf(newvalue);\n\n if (index === -1) {\n res.push(newvalue);\n } else {\n res.splice(index, 1);\n }\n\n return res;\n};\n\nconst { Provider } = GroupContext;\n/** deprecated use CheckableGroup instead */\nclass Group extends Component {\n constructor(props) {\n super(props);\n const { activeValue, disabled } = props;\n this.state = {\n activeValue,\n disabled,\n prevValue: null,\n onChange: this.handleChange.bind(this),\n };\n }\n\n static getDerivedStateFromProps(nextProps, { prevValue }) {\n if (nextProps.activeValue === prevValue) return null;\n return {\n activeValue: nextProps.activeValue,\n prevValue: nextProps.activeValue,\n };\n }\n\n handleChange(e, ...rest) {\n const { multiple, onChange } = this.props;\n const { activeValue } = this.state;\n const value = getValueItem(e);\n let newValue;\n if (multiple) {\n newValue = toggleItemValue(activeValue || [], value);\n } else if (activeValue !== value) {\n // default behaviour it will be toggle the active value\n newValue = value;\n }\n\n this.setState({\n activeValue: newValue,\n });\n\n if (onChange) onChange(newValue, ...rest);\n }\n\n render() {\n const { children } = this.props;\n return <Provider value={this.state}>{children}</Provider>;\n }\n}\n\nGroup.defaultProps = {\n multiple: false,\n};\n\nGroup.propTypes = {\n children: PropTypes.array,\n multiple: PropTypes.bool,\n onChange: PropTypes.func,\n activeValue: PropTypes.oneOfType([PropTypes.array, PropTypes.number]),\n disabled: PropTypes.bool,\n};\n\nexport default Group;\n"],"names":["getValueItem","e","target","currentTarget","value","toggleItemValue","array","newvalue","res","index","indexOf","push","splice","Provider","GroupContext","Group","props","_classCallCheck","activeValue","disabled","state","prevValue","onChange","handleChange","bind","multiple","newValue","setState","rest","children","React","nextProps","Component","defaultProps","propTypes","PropTypes","bool","func","oneOfType","number"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GroupItem.js","sources":["../../../src/GroupContext/GroupItem.tsx"],"sourcesContent":["import React from 'react';\nimport { GroupContext } from './GroupContext';\n\nconst { Consumer } = GroupContext;\n\nconst GroupItem = ({ render }) => (\n <Consumer>{context => render(context)}</Consumer>\n);\n\nexport default GroupItem;\n"],"names":["Consumer","GroupContext","GroupItem","render","React","context"],"mappings":";;;;;;;;;AAGA,IAAQA,QAAR,GAAqBC,sCAArB,CAAQD,QAAR;;IAEME,SAAS,GAAG,SAAZA,SAAY;AAAA,MAAGC,MAAH,QAAGA,MAAH;AAAA,sBAChBC,wCAAC,QAAD,QAAW,UAAAC,OAAO;AAAA,WAAIF,MAAM,CAACE,OAAD,CAAV;AAAA,GAAlB,CADgB;AAAA;;;;"}
1
+ {"version":3,"file":"GroupItem.js","sources":["../../../src/GroupContext/GroupItem.tsx"],"sourcesContent":["import React from 'react';\nimport { GroupContext } from './GroupContext';\n\nconst { Consumer } = GroupContext;\n\nconst GroupItem = ({ render }) => (\n <Consumer>{context => render(context)}</Consumer>\n);\n\nexport default GroupItem;\n"],"names":["Consumer","GroupContext","GroupItem","render","React","context"],"mappings":";;;;;;;;;AAGA,IAAQA,QAAR,GAAqBC,sCAArB,CAAQD,QAAR;;IAEME,SAAS,GAAG,SAAZA,SAAY;EAAA,IAAGC,MAAH,QAAGA,MAAH;EAAA,oBAChBC,wCAAC,QAAD,QAAW,UAAAC,OAAO;IAAA,OAAIF,MAAM,CAACE,OAAD,CAAV;GAAlB,CADgB;AAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollSync.js","sources":["../../../src/ScrollSync/ScrollSync.tsx"],"sourcesContent":["import React, { Component } from 'react';\n\nexport const ScrollSyncContext = React.createContext();\n\nconst { Provider } = ScrollSyncContext;\n\nexport default class ScrollSync extends Component {\n panes = {};\n\n static defaultProps = {\n proportional: true,\n vertical: true,\n horizontal: true,\n enabled: true,\n };\n\n constructor(props) {\n super(props);\n this.syncContext = {\n registerPane: this.registerPane,\n unregisterPane: this.unregisterPane,\n };\n }\n\n registerPane = (node, groups) => {\n groups.forEach((group) => {\n if (!this.panes[group]) {\n this.panes[group] = [];\n }\n\n if (this.panes[group].length > 0) {\n this.syncScrollPosition(this.panes[group][0], node);\n }\n this.panes[group].push(node);\n });\n this.addEvents(node, groups);\n };\n\n unregisterPane = (node, groups) => {\n groups.forEach((group) => {\n if (this.findPane(node, group)) {\n this.removeEvents(node);\n this.panes[group].splice(this.panes[group].indexOf(node), 1);\n }\n });\n };\n\n addEvents = (node, groups) => {\n /* For some reason element.addEventListener doesnt work with document.body */\n node.onscroll = this.handlePaneScroll.bind(this, node, groups); // eslint-disable-line\n };\n\n removeEvents = (node) => {\n /* For some reason element.removeEventListener doesnt work with document.body */\n node.onscroll = null; // eslint-disable-line\n };\n\n findPane = (node, group) => {\n if (!this.panes[group]) {\n return false;\n }\n\n return this.panes[group].find((pane) => pane === node);\n };\n\n handlePaneScroll = (node, groups, e) => {\n const { enabled } = this.props;\n if (this.props.onScroll) this.props.onScroll(e);\n\n if (!enabled) return;\n\n window.requestAnimationFrame(() => {\n this.syncScrollPositions(node, groups);\n });\n };\n\n syncScrollPositions = (scrolledPane, groups) => {\n groups.forEach((group) => {\n this.panes[group].forEach((pane) => {\n /* For all panes beside the currently scrolling one */\n if (scrolledPane !== pane) {\n /* Remove event listeners from the node that we'll manipulate */\n this.removeEvents(pane, group);\n this.syncScrollPosition(scrolledPane, pane);\n /* Re-attach event listeners after we're done scrolling */\n window.requestAnimationFrame(() => {\n this.addEvents(pane, groups);\n });\n }\n });\n });\n };\n\n syncScrollPosition(scrolledPane, pane) {\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollLeft,\n scrollWidth,\n clientWidth,\n } = scrolledPane;\n\n const scrollTopOffset = scrollHeight - clientHeight;\n const scrollLeftOffset = scrollWidth - clientWidth;\n\n const { proportional, vertical, horizontal } = this.props;\n\n /* Calculate the actual pane height */\n const paneHeight = pane.scrollHeight - clientHeight;\n const paneWidth = pane.scrollWidth - clientWidth;\n /* Adjust the scrollTop position of it accordingly */\n if (vertical && scrollTopOffset > 0) {\n pane.scrollTop = proportional\n ? (paneHeight * scrollTop) / scrollTopOffset\n : scrollTop; // eslint-disable-line\n }\n if (horizontal && scrollLeftOffset > 0) {\n pane.scrollLeft = proportional\n ? (paneWidth * scrollLeft) / scrollLeftOffset\n : scrollLeft; // eslint-disable-line\n }\n }\n\n render() {\n const { children } = this.props;\n return (\n <Provider value={this.syncContext}>\n {React.Children.only(children)}\n </Provider>\n );\n }\n}\n"],"names":["ScrollSyncContext","React","createContext","Provider","ScrollSync","props","panes","registerPane","node","groups","forEach","group","length","syncScrollPosition","push","addEvents","unregisterPane","findPane","removeEvents","splice","indexOf","onscroll","handlePaneScroll","bind","find","pane","e","enabled","onScroll","window","requestAnimationFrame","syncScrollPositions","scrolledPane","syncContext","scrollTop","scrollHeight","clientHeight","scrollLeft","scrollWidth","clientWidth","scrollTopOffset","scrollLeftOffset","proportional","vertical","horizontal","paneHeight","paneWidth","children","Children","only","Component","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"ScrollSync.js","sources":["../../../src/ScrollSync/ScrollSync.tsx"],"sourcesContent":["import React, { Component } from 'react';\n\nexport const ScrollSyncContext = React.createContext();\n\nconst { Provider } = ScrollSyncContext;\n\nexport default class ScrollSync extends Component {\n panes = {};\n\n static defaultProps = {\n proportional: true,\n vertical: true,\n horizontal: true,\n enabled: true,\n };\n\n constructor(props) {\n super(props);\n this.syncContext = {\n registerPane: this.registerPane,\n unregisterPane: this.unregisterPane,\n };\n }\n\n registerPane = (node, groups) => {\n groups.forEach((group) => {\n if (!this.panes[group]) {\n this.panes[group] = [];\n }\n\n if (this.panes[group].length > 0) {\n this.syncScrollPosition(this.panes[group][0], node);\n }\n this.panes[group].push(node);\n });\n this.addEvents(node, groups);\n };\n\n unregisterPane = (node, groups) => {\n groups.forEach((group) => {\n if (this.findPane(node, group)) {\n this.removeEvents(node);\n this.panes[group].splice(this.panes[group].indexOf(node), 1);\n }\n });\n };\n\n addEvents = (node, groups) => {\n /* For some reason element.addEventListener doesnt work with document.body */\n node.onscroll = this.handlePaneScroll.bind(this, node, groups); // eslint-disable-line\n };\n\n removeEvents = (node) => {\n /* For some reason element.removeEventListener doesnt work with document.body */\n node.onscroll = null; // eslint-disable-line\n };\n\n findPane = (node, group) => {\n if (!this.panes[group]) {\n return false;\n }\n\n return this.panes[group].find((pane) => pane === node);\n };\n\n handlePaneScroll = (node, groups, e) => {\n const { enabled } = this.props;\n if (this.props.onScroll) this.props.onScroll(e);\n\n if (!enabled) return;\n\n window.requestAnimationFrame(() => {\n this.syncScrollPositions(node, groups);\n });\n };\n\n syncScrollPositions = (scrolledPane, groups) => {\n groups.forEach((group) => {\n this.panes[group].forEach((pane) => {\n /* For all panes beside the currently scrolling one */\n if (scrolledPane !== pane) {\n /* Remove event listeners from the node that we'll manipulate */\n this.removeEvents(pane, group);\n this.syncScrollPosition(scrolledPane, pane);\n /* Re-attach event listeners after we're done scrolling */\n window.requestAnimationFrame(() => {\n this.addEvents(pane, groups);\n });\n }\n });\n });\n };\n\n syncScrollPosition(scrolledPane, pane) {\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollLeft,\n scrollWidth,\n clientWidth,\n } = scrolledPane;\n\n const scrollTopOffset = scrollHeight - clientHeight;\n const scrollLeftOffset = scrollWidth - clientWidth;\n\n const { proportional, vertical, horizontal } = this.props;\n\n /* Calculate the actual pane height */\n const paneHeight = pane.scrollHeight - clientHeight;\n const paneWidth = pane.scrollWidth - clientWidth;\n /* Adjust the scrollTop position of it accordingly */\n if (vertical && scrollTopOffset > 0) {\n pane.scrollTop = proportional\n ? (paneHeight * scrollTop) / scrollTopOffset\n : scrollTop; // eslint-disable-line\n }\n if (horizontal && scrollLeftOffset > 0) {\n pane.scrollLeft = proportional\n ? (paneWidth * scrollLeft) / scrollLeftOffset\n : scrollLeft; // eslint-disable-line\n }\n }\n\n render() {\n const { children } = this.props;\n return (\n <Provider value={this.syncContext}>\n {React.Children.only(children)}\n </Provider>\n );\n }\n}\n"],"names":["ScrollSyncContext","React","createContext","Provider","ScrollSync","props","_classCallCheck","panes","registerPane","node","groups","forEach","group","length","syncScrollPosition","push","addEvents","unregisterPane","findPane","removeEvents","splice","indexOf","onscroll","handlePaneScroll","bind","find","pane","e","enabled","onScroll","window","requestAnimationFrame","syncScrollPositions","scrolledPane","syncContext","scrollTop","scrollHeight","clientHeight","scrollLeft","scrollWidth","clientWidth","scrollTopOffset","scrollLeftOffset","proportional","vertical","horizontal","paneHeight","paneWidth","children","Children","only","Component","defaultProps"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollSyncPane.js","sources":["../../../src/ScrollSync/ScrollSyncPane.tsx"],"sourcesContent":["/* eslint-disable react/display-name */\nimport React, { Component } from 'react';\nimport { ScrollSyncContext } from './ScrollSync';\n\n/**\n * MODIFIED FROM react-scroll-sync\n *\n * ScrollSyncPane Component\n *\n * Wrap your content in it to keep its scroll position in sync with other panes\n *\n * @param groups\n * @example ./example.md\n */\nclass ScrollSyncPane extends Component {\n static defaultProps = {\n group: 'default',\n enabled: true,\n };\n\n componentWillUnmount() {\n const { enabled, group, syncContext } = this.props;\n const { unregisterPane } = syncContext;\n\n if (enabled) unregisterPane(this.node, this.toArray(group));\n }\n\n toArray = groups => [].concat(groups);\n\n render() {\n const { children, group, syncContext, notPaginated } = this.props;\n const { registerPane } = syncContext;\n\n return children({\n registerPane: node => {\n if (notPaginated) {\n const virtualizedBody = node.querySelector(\n '.virtualized-body-wrapper',\n );\n if (virtualizedBody) {\n registerPane(virtualizedBody, this.toArray(group));\n }\n }\n return registerPane(node, this.toArray(group));\n },\n });\n }\n}\n\nexport default props => (\n <ScrollSyncContext.Consumer>\n {context => <ScrollSyncPane {...props} syncContext={context} />}\n </ScrollSyncContext.Consumer>\n);\n"],"names":["ScrollSyncPane","toArray","groups","concat","props","enabled","group","syncContext","unregisterPane","node","children","notPaginated","registerPane","virtualizedBody","querySelector","Component","defaultProps","React","ScrollSyncContext","context"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACMA;;;;;;;;;;;;;;;;UAaJC,UAAU,UAAAC,MAAM;AAAA,aAAI,GAAGC,MAAH,CAAUD,MAAV,CAAJ;AAAA;;;;;;;WAPhB,gCAAuB;AACrB,wBAAwC,KAAKE,KAA7C;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,UAAiBC,KAAjB,eAAiBA,KAAjB;AAAA,UAAwBC,WAAxB,eAAwBA,WAAxB;AACA,UAAQC,cAAR,GAA2BD,WAA3B,CAAQC,cAAR;AAEA,UAAIH,OAAJ,EAAaG,cAAc,CAAC,KAAKC,IAAN,EAAY,KAAKR,OAAL,CAAaK,KAAb,CAAZ,CAAd;AACd;;;WAID,kBAAS;AAAA;;AACP,yBAAuD,KAAKF,KAA5D;AAAA,UAAQM,QAAR,gBAAQA,QAAR;AAAA,UAAkBJ,KAAlB,gBAAkBA,KAAlB;AAAA,UAAyBC,WAAzB,gBAAyBA,WAAzB;AAAA,UAAsCI,YAAtC,gBAAsCA,YAAtC;AACA,UAAQC,aAAR,GAAyBL,WAAzB,CAAQK,YAAR;AAEA,aAAOF,QAAQ,CAAC;AACdE,QAAAA,YAAY,EAAE,sBAAAH,IAAI,EAAI;AACpB,cAAIE,YAAJ,EAAkB;AAChB,gBAAME,eAAe,GAAGJ,IAAI,CAACK,aAAL,CACtB,2BADsB,CAAxB;;AAGA,gBAAID,eAAJ,EAAqB;AACnBD,cAAAA,aAAY,CAACC,eAAD,EAAkB,MAAI,CAACZ,OAAL,CAAaK,KAAb,CAAlB,CAAZ;AACD;AACF;;AACD,iBAAOM,aAAY,CAACH,IAAD,EAAO,MAAI,CAACR,OAAL,CAAaK,KAAb,CAAP,CAAnB;AACD;AAXa,OAAD,CAAf;AAaD;;;;EAhC0BS;;AAAvBf,eACGgB,eAAe;AACpBV,EAAAA,KAAK,EAAE,SADa;AAEpBD,EAAAA,OAAO,EAAE;AAFW;AAkCxB,wBAAe,UAAAD,KAAK;AAAA,sBAClBa,wCAACC,uCAAD,CAAmB,QAAnB,QACG,UAAAC,OAAO;AAAA,wBAAIF,wCAAC,cAAD,mCAAoBb,KAApB;AAA2B,MAAA,WAAW,EAAEe;AAAxC,OAAJ;AAAA,GADV,CADkB;AAAA,CAApB;;;;"}
1
+ {"version":3,"file":"ScrollSyncPane.js","sources":["../../../src/ScrollSync/ScrollSyncPane.tsx"],"sourcesContent":["/* eslint-disable react/display-name */\nimport React, { Component } from 'react';\nimport { ScrollSyncContext } from './ScrollSync';\n\n/**\n * MODIFIED FROM react-scroll-sync\n *\n * ScrollSyncPane Component\n *\n * Wrap your content in it to keep its scroll position in sync with other panes\n *\n * @param groups\n * @example ./example.md\n */\nclass ScrollSyncPane extends Component {\n static defaultProps = {\n group: 'default',\n enabled: true,\n };\n\n componentWillUnmount() {\n const { enabled, group, syncContext } = this.props;\n const { unregisterPane } = syncContext;\n\n if (enabled) unregisterPane(this.node, this.toArray(group));\n }\n\n toArray = groups => [].concat(groups);\n\n render() {\n const { children, group, syncContext, notPaginated } = this.props;\n const { registerPane } = syncContext;\n\n return children({\n registerPane: node => {\n if (notPaginated) {\n const virtualizedBody = node.querySelector(\n '.virtualized-body-wrapper',\n );\n if (virtualizedBody) {\n registerPane(virtualizedBody, this.toArray(group));\n }\n }\n return registerPane(node, this.toArray(group));\n },\n });\n }\n}\n\nexport default props => (\n <ScrollSyncContext.Consumer>\n {context => <ScrollSyncPane {...props} syncContext={context} />}\n </ScrollSyncContext.Consumer>\n);\n"],"names":["ScrollSyncPane","toArray","groups","concat","props","enabled","group","syncContext","unregisterPane","node","children","notPaginated","registerPane","virtualizedBody","querySelector","Component","defaultProps","React","ScrollSyncContext","context"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACMA;;;;;;;;;;;;;;;;UAaJC,UAAU,UAAAC,MAAM;MAAA,OAAI,GAAGC,MAAH,CAAUD,MAAV,CAAJ;;;;;;;;WAPhB,gCAAuB;MACrB,kBAAwC,KAAKE,KAA7C;UAAQC,OAAR,eAAQA,OAAR;UAAiBC,KAAjB,eAAiBA,KAAjB;UAAwBC,WAAxB,eAAwBA,WAAxB;MACA,IAAQC,cAAR,GAA2BD,WAA3B,CAAQC,cAAR;MAEA,IAAIH,OAAJ,EAAaG,cAAc,CAAC,KAAKC,IAAN,EAAY,KAAKR,OAAL,CAAaK,KAAb,CAAZ,CAAd;;;;WAKf,kBAAS;MAAA;;MACP,mBAAuD,KAAKF,KAA5D;UAAQM,QAAR,gBAAQA,QAAR;UAAkBJ,KAAlB,gBAAkBA,KAAlB;UAAyBC,WAAzB,gBAAyBA,WAAzB;UAAsCI,YAAtC,gBAAsCA,YAAtC;MACA,IAAQC,aAAR,GAAyBL,WAAzB,CAAQK,YAAR;MAEA,OAAOF,QAAQ,CAAC;QACdE,YAAY,EAAE,sBAAAH,IAAI,EAAI;UACpB,IAAIE,YAAJ,EAAkB;YAChB,IAAME,eAAe,GAAGJ,IAAI,CAACK,aAAL,CACtB,2BADsB,CAAxB;;YAGA,IAAID,eAAJ,EAAqB;cACnBD,aAAY,CAACC,eAAD,EAAkB,MAAI,CAACZ,OAAL,CAAaK,KAAb,CAAlB,CAAZ;;;;UAGJ,OAAOM,aAAY,CAACH,IAAD,EAAO,MAAI,CAACR,OAAL,CAAaK,KAAb,CAAP,CAAnB;;OAVW,CAAf;;;;;EAnByBS;;AAAvBf,eACGgB,eAAe;EACpBV,KAAK,EAAE,SADa;EAEpBD,OAAO,EAAE;AAFW;AAkCxB,wBAAe,UAAAD,KAAK;EAAA,oBAClBa,wCAACC,uCAAD,CAAmB,QAAnB,QACG,UAAAC,OAAO;IAAA,oBAAIF,wCAAC,cAAD,mCAAoBb,KAApB;MAA2B,WAAW,EAAEe;OAA5C;GADV,CADkB;AAAA,CAApB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollSyncProvider.js","sources":["../../../src/ScrollSync/ScrollSyncProvider.tsx"],"sourcesContent":["import React from 'react';\nimport raf from 'raf';\nimport PropTypes from 'prop-types';\n\nconst ScrollSyncContext = React.createContext();\n\nconst { Provider } = ScrollSyncContext;\n\nfunction ScrollSyncProvider({ enabled, horizontal, vertical, children }) {\n const panes = useRef();\n\n const registerPane = (node, groups) => {\n groups.forEach(group => {\n if (!this.panes[group]) {\n this.panes[group] = [];\n }\n\n if (!this.findPane(node, group)) {\n if (this.panes[group].length > 0) {\n this.syncScrollPosition(this.panes[group][0], node);\n }\n this.panes[group].push(node);\n }\n });\n this.addEvents(node, groups);\n };\n const unregisterPane = (node, groups) => {\n groups.forEach(group => {\n if (this.findPane(node, group)) {\n this.removeEvents(node);\n this.panes[group].splice(this.panes[group].indexOf(node), 1);\n }\n });\n };\n const addEvents = (node, groups) => {\n /* For some reason element.addEventListener doesnt work with document.body */\n node.onscroll = this.handlePaneScroll.bind(this, node, groups); // eslint-disable-line\n };\n const removeEvents = node => {\n /* For some reason element.removeEventListener doesnt work with document.body */\n node.onscroll = null; // eslint-disable-line\n };\n const findPane = (node, group) => {\n if (!this.panes[group]) {\n return false;\n }\n\n return this.panes[group].find(pane => pane === node);\n };\n const handlePaneScroll = (node, groups) => {\n if (!enabled) return;\n\n window.requestAnimationFrame(() => {\n this.syncScrollPositions(node, groups);\n });\n };\n const syncScrollPositions = (scrolledPane, groups) => {\n groups.forEach(group => {\n this.panes[group].forEach(pane => {\n /* For all panes beside the currently scrolling one */\n if (scrolledPane !== pane) {\n /* Remove event listeners from the node that we'll manipulate */\n this.removeEvents(pane, group);\n this.syncScrollPosition(scrolledPane, pane);\n /* Re-attach event listeners after we're done scrolling */\n window.requestAnimationFrame(() => {\n this.addEvents(pane, groups);\n });\n }\n });\n });\n };\n const syncScrollPosition = raf((scrolledPane, pane) => {\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollLeft,\n scrollWidth,\n clientWidth,\n } = scrolledPane;\n\n const scrollTopOffset = scrollHeight - clientHeight;\n const scrollLeftOffset = scrollWidth - clientWidth;\n\n const { proportional, vertical, horizontal } = this.props;\n\n /* Calculate the actual pane height */\n const paneHeight = pane.scrollHeight - clientHeight;\n const paneWidth = pane.scrollWidth - clientWidth;\n /* Adjust the scrollTop position of it accordingly */\n if (vertical && scrollTopOffset > 0) {\n pane.scrollTop = proportional\n ? (paneHeight * scrollTop) / scrollTopOffset\n : scrollTop; // eslint-disable-line\n }\n if (horizontal && scrollLeftOffset > 0) {\n pane.scrollLeft = proportional\n ? (paneWidth * scrollLeft) / scrollLeftOffset\n : scrollLeft; // eslint-disable-line\n }\n });\n\n return <Provider>{children}</Provider>;\n}\n\nScrollSyncProvider.propTypes = {};\nScrollSyncProvider.defaultProps = {};\n\nexport default ScrollSyncProvider;\n"],"names":["ScrollSyncContext","React","createContext","Provider","ScrollSyncProvider","enabled","horizontal","vertical","children","useRef","raf","scrolledPane","pane","scrollTop","scrollHeight","clientHeight","scrollLeft","scrollWidth","clientWidth","scrollTopOffset","scrollLeftOffset","props","proportional","paneHeight","paneWidth","propTypes","defaultProps"],"mappings":";;;;;;;;;;AAIA,IAAMA,iBAAiB,gBAAGC,yBAAK,CAACC,aAAN,EAA1B;AAEA,IAAQC,QAAR,GAAqBH,iBAArB,CAAQG,QAAR;;AAEA,SAASC,kBAAT,OAAyE;AAAA;;AAAA,OAA3CC,OAA2C;AAAA,WAAlCC,UAAkC;AAAA,WAAtBC,QAAsB;AAAA,UAAZC,QAAY,QAAZA;AAC3D,EAAcC,MAAM;;AA+DpB,EAA2BC,uBAAG,CAAC,UAACC,YAAD,EAAeC,IAAf,EAAwB;AACrD,QACEC,SADF,GAOIF,YAPJ,CACEE,SADF;AAAA,QAEEC,YAFF,GAOIH,YAPJ,CAEEG,YAFF;AAAA,QAGEC,YAHF,GAOIJ,YAPJ,CAGEI,YAHF;AAAA,QAIEC,UAJF,GAOIL,YAPJ,CAIEK,UAJF;AAAA,QAKEC,WALF,GAOIN,YAPJ,CAKEM,WALF;AAAA,QAMEC,WANF,GAOIP,YAPJ,CAMEO,WANF;AASA,QAAMC,eAAe,GAAGL,YAAY,GAAGC,YAAvC;AACA,QAAMK,gBAAgB,GAAGH,WAAW,GAAGC,WAAvC;AAEA,sBAA+C,KAAI,CAACG,KAApD;AAAA,QAAQC,YAAR,eAAQA,YAAR;AAAA,QAAsBf,QAAtB,eAAsBA,QAAtB;AAAA,QAAgCD,UAAhC,eAAgCA,UAAhC;AAEA;;AACA,QAAMiB,UAAU,GAAGX,IAAI,CAACE,YAAL,GAAoBC,YAAvC;AACA,QAAMS,SAAS,GAAGZ,IAAI,CAACK,WAAL,GAAmBC,WAArC;AACA;;AACA,QAAIX,QAAQ,IAAIY,eAAe,GAAG,CAAlC,EAAqC;AACnCP,MAAAA,IAAI,CAACC,SAAL,GAAiBS,YAAY,GACxBC,UAAU,GAAGV,SAAd,GAA2BM,eADF,GAEzBN,SAFJ,CADmC;AAIpC;;AACD,QAAIP,UAAU,IAAIc,gBAAgB,GAAG,CAArC,EAAwC;AACtCR,MAAAA,IAAI,CAACI,UAAL,GAAkBM,YAAY,GACzBE,SAAS,GAAGR,UAAb,GAA2BI,gBADD,GAE1BJ,UAFJ,CADsC;AAIvC;AACF,GA7B6B;AA+B9B,sBAAOf,wCAAC,QAAD,QAAWO,QAAX,CAAP;AACD;;AAEDJ,kBAAkB,CAACqB,SAAnB,GAA+B,EAA/B;AACArB,kBAAkB,CAACsB,YAAnB,GAAkC,EAAlC;;;;"}
1
+ {"version":3,"file":"ScrollSyncProvider.js","sources":["../../../src/ScrollSync/ScrollSyncProvider.tsx"],"sourcesContent":["import React from 'react';\nimport raf from 'raf';\nimport PropTypes from 'prop-types';\n\nconst ScrollSyncContext = React.createContext();\n\nconst { Provider } = ScrollSyncContext;\n\nfunction ScrollSyncProvider({ enabled, horizontal, vertical, children }) {\n const panes = useRef();\n\n const registerPane = (node, groups) => {\n groups.forEach(group => {\n if (!this.panes[group]) {\n this.panes[group] = [];\n }\n\n if (!this.findPane(node, group)) {\n if (this.panes[group].length > 0) {\n this.syncScrollPosition(this.panes[group][0], node);\n }\n this.panes[group].push(node);\n }\n });\n this.addEvents(node, groups);\n };\n const unregisterPane = (node, groups) => {\n groups.forEach(group => {\n if (this.findPane(node, group)) {\n this.removeEvents(node);\n this.panes[group].splice(this.panes[group].indexOf(node), 1);\n }\n });\n };\n const addEvents = (node, groups) => {\n /* For some reason element.addEventListener doesnt work with document.body */\n node.onscroll = this.handlePaneScroll.bind(this, node, groups); // eslint-disable-line\n };\n const removeEvents = node => {\n /* For some reason element.removeEventListener doesnt work with document.body */\n node.onscroll = null; // eslint-disable-line\n };\n const findPane = (node, group) => {\n if (!this.panes[group]) {\n return false;\n }\n\n return this.panes[group].find(pane => pane === node);\n };\n const handlePaneScroll = (node, groups) => {\n if (!enabled) return;\n\n window.requestAnimationFrame(() => {\n this.syncScrollPositions(node, groups);\n });\n };\n const syncScrollPositions = (scrolledPane, groups) => {\n groups.forEach(group => {\n this.panes[group].forEach(pane => {\n /* For all panes beside the currently scrolling one */\n if (scrolledPane !== pane) {\n /* Remove event listeners from the node that we'll manipulate */\n this.removeEvents(pane, group);\n this.syncScrollPosition(scrolledPane, pane);\n /* Re-attach event listeners after we're done scrolling */\n window.requestAnimationFrame(() => {\n this.addEvents(pane, groups);\n });\n }\n });\n });\n };\n const syncScrollPosition = raf((scrolledPane, pane) => {\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollLeft,\n scrollWidth,\n clientWidth,\n } = scrolledPane;\n\n const scrollTopOffset = scrollHeight - clientHeight;\n const scrollLeftOffset = scrollWidth - clientWidth;\n\n const { proportional, vertical, horizontal } = this.props;\n\n /* Calculate the actual pane height */\n const paneHeight = pane.scrollHeight - clientHeight;\n const paneWidth = pane.scrollWidth - clientWidth;\n /* Adjust the scrollTop position of it accordingly */\n if (vertical && scrollTopOffset > 0) {\n pane.scrollTop = proportional\n ? (paneHeight * scrollTop) / scrollTopOffset\n : scrollTop; // eslint-disable-line\n }\n if (horizontal && scrollLeftOffset > 0) {\n pane.scrollLeft = proportional\n ? (paneWidth * scrollLeft) / scrollLeftOffset\n : scrollLeft; // eslint-disable-line\n }\n });\n\n return <Provider>{children}</Provider>;\n}\n\nScrollSyncProvider.propTypes = {};\nScrollSyncProvider.defaultProps = {};\n\nexport default ScrollSyncProvider;\n"],"names":["ScrollSyncContext","React","createContext","Provider","ScrollSyncProvider","enabled","horizontal","vertical","children","useRef","raf","scrolledPane","pane","scrollTop","scrollHeight","clientHeight","scrollLeft","scrollWidth","clientWidth","scrollTopOffset","scrollLeftOffset","props","proportional","paneHeight","paneWidth","propTypes","defaultProps"],"mappings":";;;;;;;;;;AAIA,IAAMA,iBAAiB,gBAAGC,yBAAK,CAACC,aAAN,EAA1B;AAEA,IAAQC,QAAR,GAAqBH,iBAArB,CAAQG,QAAR;;AAEA,SAASC,kBAAT,OAAyE;EAAA;;OAA3CC,OAA2C;WAAlCC,UAAkC;WAAtBC,QAAsB;UAAZC,QAAY,QAAZA;EAC7CC,MAAM;;EA+DOC,uBAAG,CAAC,UAACC,YAAD,EAAeC,IAAf,EAAwB;IACrD,IACEC,SADF,GAOIF,YAPJ,CACEE,SADF;QAEEC,YAFF,GAOIH,YAPJ,CAEEG,YAFF;QAGEC,YAHF,GAOIJ,YAPJ,CAGEI,YAHF;QAIEC,UAJF,GAOIL,YAPJ,CAIEK,UAJF;QAKEC,WALF,GAOIN,YAPJ,CAKEM,WALF;QAMEC,WANF,GAOIP,YAPJ,CAMEO,WANF;IASA,IAAMC,eAAe,GAAGL,YAAY,GAAGC,YAAvC;IACA,IAAMK,gBAAgB,GAAGH,WAAW,GAAGC,WAAvC;IAEA,kBAA+C,KAAI,CAACG,KAApD;QAAQC,YAAR,eAAQA,YAAR;QAAsBf,QAAtB,eAAsBA,QAAtB;QAAgCD,UAAhC,eAAgCA,UAAhC;;;IAGA,IAAMiB,UAAU,GAAGX,IAAI,CAACE,YAAL,GAAoBC,YAAvC;IACA,IAAMS,SAAS,GAAGZ,IAAI,CAACK,WAAL,GAAmBC,WAArC;;;IAEA,IAAIX,QAAQ,IAAIY,eAAe,GAAG,CAAlC,EAAqC;MACnCP,IAAI,CAACC,SAAL,GAAiBS,YAAY,GACxBC,UAAU,GAAGV,SAAd,GAA2BM,eADF,GAEzBN,SAFJ,CADmC;;;IAKrC,IAAIP,UAAU,IAAIc,gBAAgB,GAAG,CAArC,EAAwC;MACtCR,IAAI,CAACI,UAAL,GAAkBM,YAAY,GACzBE,SAAS,GAAGR,UAAb,GAA2BI,gBADD,GAE1BJ,UAFJ,CADsC;;GAxBZ;EA+B9B,oBAAOf,wCAAC,QAAD,QAAWO,QAAX,CAAP;AACD;;AAEDJ,kBAAkB,CAACqB,SAAnB,GAA+B,EAA/B;AACArB,kBAAkB,CAACsB,YAAnB,GAAkC,EAAlC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useScrollSync.js","sources":["../../../src/ScrollSync/useScrollSync.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction useScrollSync(props) {\n return {};\n}\n\nuseScrollSync.propTypes = {};\nuseScrollSync.defaultProps = {};\n\nexport default useScrollSync;\n"],"names":["useScrollSync","props","propTypes","defaultProps"],"mappings":";;AAGA,SAASA,aAAT,CAAuBC,KAAvB,EAA8B;AAC5B,SAAO,EAAP;AACD;;AAEDD,aAAa,CAACE,SAAd,GAA0B,EAA1B;AACAF,aAAa,CAACG,YAAd,GAA6B,EAA7B;;;;"}
1
+ {"version":3,"file":"useScrollSync.js","sources":["../../../src/ScrollSync/useScrollSync.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction useScrollSync(props) {\n return {};\n}\n\nuseScrollSync.propTypes = {};\nuseScrollSync.defaultProps = {};\n\nexport default useScrollSync;\n"],"names":["useScrollSync","props","propTypes","defaultProps"],"mappings":";;AAGA,SAASA,aAAT,CAAuBC,KAAvB,EAA8B;EAC5B,OAAO,EAAP;AACD;;AAEDD,aAAa,CAACE,SAAd,GAA0B,EAA1B;AACAF,aAAa,CAACG,YAAd,GAA6B,EAA7B;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"createInstancePlugin.js","sources":["../../../src/createDataInstance/createInstancePlugin.tsx"],"sourcesContent":["function getDecoratorsFromHooks(hooks, decorators) {\n const nextDecorators = { ...decorators };\n\n Object.keys(hooks).forEach(decorator => {\n if (Array.isArray(decorators[decorator])) {\n nextDecorators[decorator] = [...decorators[decorator], hooks[decorator]];\n } else {\n nextDecorators[decorator] = hooks[decorator];\n }\n });\n\n return nextDecorators;\n}\n\nexport default function createInstancePlugin(name, hooks) {\n return decorators => getDecoratorsFromHooks(hooks, decorators);\n}\n"],"names":["getDecoratorsFromHooks","hooks","decorators","nextDecorators","Object","keys","forEach","decorator","Array","isArray","createInstancePlugin","name"],"mappings":";;;;;;;;;;;;;;AAAA,SAASA,sBAAT,CAAgCC,KAAhC,EAAuCC,UAAvC,EAAmD;AACjD,MAAMC,cAAc,qBAAQD,UAAR,CAApB;;AAEAE,EAAAA,MAAM,CAACC,IAAP,CAAYJ,KAAZ,EAAmBK,OAAnB,CAA2B,UAAAC,SAAS,EAAI;AACtC,QAAIC,KAAK,CAACC,OAAN,CAAcP,UAAU,CAACK,SAAD,CAAxB,CAAJ,EAA0C;AACxCJ,MAAAA,cAAc,CAACI,SAAD,CAAd,oDAAgCL,UAAU,CAACK,SAAD,CAA1C,IAAuDN,KAAK,CAACM,SAAD,CAA5D;AACD,KAFD,MAEO;AACLJ,MAAAA,cAAc,CAACI,SAAD,CAAd,GAA4BN,KAAK,CAACM,SAAD,CAAjC;AACD;AACF,GAND;AAQA,SAAOJ,cAAP;AACD;;AAEc,SAASO,oBAAT,CAA8BC,IAA9B,EAAoCV,KAApC,EAA2C;AACxD,SAAO,UAAAC,UAAU;AAAA,WAAIF,sBAAsB,CAACC,KAAD,EAAQC,UAAR,CAA1B;AAAA,GAAjB;AACD;;;;"}
1
+ {"version":3,"file":"createInstancePlugin.js","sources":["../../../src/createDataInstance/createInstancePlugin.tsx"],"sourcesContent":["function getDecoratorsFromHooks(hooks, decorators) {\n const nextDecorators = { ...decorators };\n\n Object.keys(hooks).forEach(decorator => {\n if (Array.isArray(decorators[decorator])) {\n nextDecorators[decorator] = [...decorators[decorator], hooks[decorator]];\n } else {\n nextDecorators[decorator] = hooks[decorator];\n }\n });\n\n return nextDecorators;\n}\n\nexport default function createInstancePlugin(name, hooks) {\n return decorators => getDecoratorsFromHooks(hooks, decorators);\n}\n"],"names":["getDecoratorsFromHooks","hooks","decorators","nextDecorators","Object","keys","forEach","decorator","Array","isArray","createInstancePlugin","name"],"mappings":";;;;;;;;;;;;;;AAAA,SAASA,sBAAT,CAAgCC,KAAhC,EAAuCC,UAAvC,EAAmD;EACjD,IAAMC,cAAc,qBAAQD,UAAR,CAApB;;EAEAE,MAAM,CAACC,IAAP,CAAYJ,KAAZ,EAAmBK,OAAnB,CAA2B,UAAAC,SAAS,EAAI;IACtC,IAAIC,KAAK,CAACC,OAAN,CAAcP,UAAU,CAACK,SAAD,CAAxB,CAAJ,EAA0C;MACxCJ,cAAc,CAACI,SAAD,CAAd,oDAAgCL,UAAU,CAACK,SAAD,CAA1C,IAAuDN,KAAK,CAACM,SAAD,CAA5D;KADF,MAEO;MACLJ,cAAc,CAACI,SAAD,CAAd,GAA4BN,KAAK,CAACM,SAAD,CAAjC;;GAJJ;EAQA,OAAOJ,cAAP;AACD;;AAEc,SAASO,oBAAT,CAA8BC,IAA9B,EAAoCV,KAApC,EAA2C;EACxD,OAAO,UAAAC,UAAU;IAAA,OAAIF,sBAAsB,CAACC,KAAD,EAAQC,UAAR,CAA1B;GAAjB;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"createInstanceRef.js","sources":["../../../src/createDataInstance/createInstanceRef.tsx"],"sourcesContent":["import { v4 as uuidv4 } from 'uuid';\nimport { useMemo, useRef, useState } from 'react';\nimport { orderBy } from 'lodash';\nimport {\n mergeInstance,\n registerHotKeysHookToInstance,\n registerStateHookToInstance,\n} from './utils';\n\nconst defaultDecorators = {\n instance: [],\n state: [],\n hotKeys: [],\n renderers: [],\n composeData: [],\n};\n\nexport default function createDataInstanceRef({\n uuid: uuidProp,\n data,\n renderers,\n plugins,\n customDecorators,\n ...props\n}) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const instance = useRef();\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const [uuid] = useState(uuidProp || (() => uuidv4()));\n\n instance.current = {\n uuid,\n state: {},\n actions: {},\n hotKeys: {}, // keyboard hotkeys to run specific actions\n originalData: data,\n records: [], // item abstraction with meta data for originalData\n renderers,\n ref(key) {\n // eslint-disable-next-line no-return-assign\n return (node) => (instance.current.refs[key] = node);\n },\n getInstance() {\n return instance.current;\n },\n props,\n };\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const decorators = useMemo(() => {\n let nextDecorators = { ...defaultDecorators, ...customDecorators };\n\n plugins.forEach((plugin) => {\n if (!plugin) return;\n nextDecorators = plugin(nextDecorators);\n });\n\n Object.keys(nextDecorators).forEach((key) => {\n if (Array.isArray(nextDecorators[key]))\n nextDecorators[key] = orderBy(\n nextDecorators[key],\n (item) => item.order,\n );\n });\n\n return nextDecorators;\n }, []); // the plugins are defined on creation, but not changed at runtime\n\n // todo: test if getting the hooks without registering them\n // here would be beneficial to memoize instance and squeeze performance\n instance.current = decorators.instance.reduce(\n mergeInstance,\n instance.current,\n );\n instance.current = decorators.state.reduce(\n registerStateHookToInstance,\n instance.current,\n );\n instance.current = decorators.hotKeys.reduce(\n registerHotKeysHookToInstance,\n instance.current,\n );\n instance.current.renderers = decorators.renderers.reduce(\n (result, decorator) => decorator(result, instance.current),\n renderers,\n );\n\n return { instance, decorators };\n}\n"],"names":["defaultDecorators","instance","state","hotKeys","renderers","composeData","createDataInstanceRef","uuidProp","uuid","data","plugins","customDecorators","props","useRef","useState","uuidv4","current","actions","originalData","records","ref","key","node","refs","getInstance","decorators","useMemo","nextDecorators","forEach","plugin","Object","keys","Array","isArray","orderBy","item","order","reduce","mergeInstance","registerStateHookToInstance","registerHotKeysHookToInstance","result","decorator"],"mappings":"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"}
1
+ {"version":3,"file":"createInstanceRef.js","sources":["../../../src/createDataInstance/createInstanceRef.tsx"],"sourcesContent":["import { v4 as uuidv4 } from 'uuid';\nimport { useMemo, useRef, useState } from 'react';\nimport { orderBy } from 'lodash';\nimport {\n mergeInstance,\n registerHotKeysHookToInstance,\n registerStateHookToInstance,\n} from './utils';\n\nconst defaultDecorators = {\n instance: [],\n state: [],\n hotKeys: [],\n renderers: [],\n composeData: [],\n};\n\nexport default function createDataInstanceRef({\n uuid: uuidProp,\n data,\n renderers,\n plugins,\n customDecorators,\n ...props\n}) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const instance = useRef();\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const [uuid] = useState(uuidProp || (() => uuidv4()));\n\n instance.current = {\n uuid,\n state: {},\n actions: {},\n hotKeys: {}, // keyboard hotkeys to run specific actions\n originalData: data,\n records: [], // item abstraction with meta data for originalData\n renderers,\n ref(key) {\n // eslint-disable-next-line no-return-assign\n return (node) => (instance.current.refs[key] = node);\n },\n getInstance() {\n return instance.current;\n },\n props,\n };\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const decorators = useMemo(() => {\n let nextDecorators = { ...defaultDecorators, ...customDecorators };\n\n plugins.forEach((plugin) => {\n if (!plugin) return;\n nextDecorators = plugin(nextDecorators);\n });\n\n Object.keys(nextDecorators).forEach((key) => {\n if (Array.isArray(nextDecorators[key]))\n nextDecorators[key] = orderBy(\n nextDecorators[key],\n (item) => item.order,\n );\n });\n\n return nextDecorators;\n }, []); // the plugins are defined on creation, but not changed at runtime\n\n // todo: test if getting the hooks without registering them\n // here would be beneficial to memoize instance and squeeze performance\n instance.current = decorators.instance.reduce(\n mergeInstance,\n instance.current,\n );\n instance.current = decorators.state.reduce(\n registerStateHookToInstance,\n instance.current,\n );\n instance.current = decorators.hotKeys.reduce(\n registerHotKeysHookToInstance,\n instance.current,\n );\n instance.current.renderers = decorators.renderers.reduce(\n (result, decorator) => decorator(result, instance.current),\n renderers,\n );\n\n return { instance, decorators };\n}\n"],"names":["defaultDecorators","instance","state","hotKeys","renderers","composeData","createDataInstanceRef","uuidProp","uuid","data","plugins","customDecorators","props","useRef","useState","uuidv4","current","actions","originalData","records","ref","key","node","refs","getInstance","decorators","useMemo","nextDecorators","forEach","plugin","Object","keys","Array","isArray","orderBy","item","order","reduce","mergeInstance","registerStateHookToInstance","registerHotKeysHookToInstance","result","decorator"],"mappings":";;;;;;;;;;;;;;;;;;;;;AASA,IAAMA,iBAAiB,GAAG;EACxBC,QAAQ,EAAE,EADc;EAExBC,KAAK,EAAE,EAFiB;EAGxBC,OAAO,EAAE,EAHe;EAIxBC,SAAS,EAAE,EAJa;EAKxBC,WAAW,EAAE;AALW,CAA1B;AAQe,SAASC,qBAAT,OAOZ;EAAA,IANKC,QAML,QANDC,IAMC;MALDC,IAKC,QALDA,IAKC;MAJDL,SAIC,QAJDA,SAIC;MAHDM,OAGC,QAHDA,OAGC;MAFDC,gBAEC,QAFDA,gBAEC;MADEC,KACF;;;EAED,IAAMX,QAAQ,GAAGY,YAAM,EAAvB,CAFC;;EAID,gBAAeC,cAAQ,CAACP,QAAQ,IAAK;IAAA,OAAMQ,OAAM,EAAZ;GAAd,CAAvB;;MAAOP,MAAP;;EAEAP,QAAQ,CAACe,OAAT,GAAmB;IACjBR,IAAI,EAAJA,MADiB;IAEjBN,KAAK,EAAE,EAFU;IAGjBe,OAAO,EAAE,EAHQ;IAIjBd,OAAO,EAAE,EAJQ;;IAKjBe,YAAY,EAAET,IALG;IAMjBU,OAAO,EAAE,EANQ;;IAOjBf,SAAS,EAATA,SAPiB;IAQjBgB,GARiB,eAQbC,GARa,EAQR;;MAEP,OAAO,UAACC,IAAD;QAAA,OAAWrB,QAAQ,CAACe,OAAT,CAAiBO,IAAjB,CAAsBF,GAAtB,IAA6BC,IAAxC;OAAP;KAVe;IAYjBE,WAZiB,yBAYH;MACZ,OAAOvB,QAAQ,CAACe,OAAhB;KAbe;IAejBJ,KAAK,EAALA;GAfF,CANC;;EAyBD,IAAMa,UAAU,GAAGC,aAAO,CAAC,YAAM;IAC/B,IAAIC,cAAc,mCAAQ3B,iBAAR,GAA8BW,gBAA9B,CAAlB;;IAEAD,OAAO,CAACkB,OAAR,CAAgB,UAACC,MAAD,EAAY;MAC1B,IAAI,CAACA,MAAL,EAAa;MACbF,cAAc,GAAGE,MAAM,CAACF,cAAD,CAAvB;KAFF;IAKAG,MAAM,CAACC,IAAP,CAAYJ,cAAZ,EAA4BC,OAA5B,CAAoC,UAACP,GAAD,EAAS;MAC3C,IAAIW,KAAK,CAACC,OAAN,CAAcN,cAAc,CAACN,GAAD,CAA5B,CAAJ,EACEM,cAAc,CAACN,GAAD,CAAd,GAAsBa,cAAO,CAC3BP,cAAc,CAACN,GAAD,CADa,EAE3B,UAACc,IAAD;QAAA,OAAUA,IAAI,CAACC,KAAf;OAF2B,CAA7B;KAFJ;IAQA,OAAOT,cAAP;GAhBwB,EAiBvB,EAjBuB,CAA1B,CAzBC;;;;EA8CD1B,QAAQ,CAACe,OAAT,GAAmBS,UAAU,CAACxB,QAAX,CAAoBoC,MAApB,CACjBC,sCADiB,EAEjBrC,QAAQ,CAACe,OAFQ,CAAnB;EAIAf,QAAQ,CAACe,OAAT,GAAmBS,UAAU,CAACvB,KAAX,CAAiBmC,MAAjB,CACjBE,oDADiB,EAEjBtC,QAAQ,CAACe,OAFQ,CAAnB;EAIAf,QAAQ,CAACe,OAAT,GAAmBS,UAAU,CAACtB,OAAX,CAAmBkC,MAAnB,CACjBG,sDADiB,EAEjBvC,QAAQ,CAACe,OAFQ,CAAnB;EAIAf,QAAQ,CAACe,OAAT,CAAiBZ,SAAjB,GAA6BqB,UAAU,CAACrB,SAAX,CAAqBiC,MAArB,CAC3B,UAACI,MAAD,EAASC,SAAT;IAAA,OAAuBA,SAAS,CAACD,MAAD,EAASxC,QAAQ,CAACe,OAAlB,CAAhC;GAD2B,EAE3BZ,SAF2B,CAA7B;EAKA,OAAO;IAAEH,QAAQ,EAARA,QAAF;IAAYwB,UAAU,EAAVA;GAAnB;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../src/createDataInstance/utils.tsx"],"sourcesContent":["export const reducePropsGetter = (decorators = [], grid) => (\n props = {},\n extraParams,\n) => {\n let nextProps = props;\n decorators.forEach((decorator) => {\n nextProps = decorator(nextProps, grid, extraParams);\n });\n return nextProps;\n};\n\n/* eslint-disable-next-line max-params */\nexport function evaluateTransforms(\n transforms,\n value,\n extraParams = {},\n props = {},\n grid,\n) {\n let nextProps = props;\n transforms.forEach((transform) => {\n nextProps = transform(value, extraParams, nextProps, grid);\n });\n return nextProps;\n}\n\n/* eslint-disable-next-line max-params */\nexport function evaluateFormatters(formatters, value, extraParams = {}, grid) {\n return formatters.reduce(\n (result, formatter) => formatter(result, extraParams, grid),\n value,\n );\n}\n\nexport function composeFormatters(\n formatters,\n instance,\n getItemValue = (record) => record.data.name,\n) {\n // todo: make the formatters subscribe to the item props instead of getting the whole instance\n // todo: addd should formatter update to memoize specific ones\n return (props) =>\n formatters.reduce(\n (result, formatter) => formatter(result, props, instance),\n getItemValue(props.record),\n );\n}\n\nexport const applyDecorators = (subject, decorators = [], ...args) =>\n decorators.reduce(\n (nextSubject, decorator) => decorator(nextSubject, ...args),\n subject,\n );\n\nexport const decorateColumns = (columns, decorators, grid) => {\n const nextColumns = applyDecorators(\n columns,\n decorators.decorateColumns,\n grid,\n );\n return nextColumns.map((column, index) =>\n applyDecorators(column, decorators.decorateColumn, grid, index),\n );\n};\n\nexport const mergeInstance = (instance, instanceHook) => ({\n ...instance,\n ...instanceHook(instance),\n});\n\nexport const registerStateHookToInstance = (instance, stateHook) => {\n const { state, actions } = stateHook(instance);\n return {\n ...instance,\n state: {\n ...instance.state,\n ...state,\n },\n actions: {\n ...instance.actions,\n ...actions,\n },\n };\n};\n\nconst reduceHotKey = (\n instance,\n { key, handler, options, allowDocumentHandler },\n) => ({\n ...instance,\n hotKeys: {\n ...instance.hotKeys,\n [key]: { handler, options, allowDocumentHandler },\n },\n});\n\nexport const registerHotKeysHookToInstance = (instance, hotKeysHook) => {\n const hotKeys = hotKeysHook(instance);\n if (Array.isArray(hotKeys)) {\n return hotKeys.reduce(reduceHotKey, instance);\n }\n return reduceHotKey(instance, hotKeys);\n};\n"],"names":["reducePropsGetter","decorators","grid","props","extraParams","nextProps","forEach","decorator","evaluateTransforms","transforms","value","transform","evaluateFormatters","formatters","reduce","result","formatter","composeFormatters","instance","getItemValue","record","data","name","applyDecorators","subject","args","nextSubject","decorateColumns","columns","nextColumns","map","column","index","decorateColumn","mergeInstance","instanceHook","registerStateHookToInstance","stateHook","state","actions","reduceHotKey","key","handler","options","allowDocumentHandler","hotKeys","registerHotKeysHookToInstance","hotKeysHook","Array","isArray"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../src/createDataInstance/utils.tsx"],"sourcesContent":["export const reducePropsGetter = (decorators = [], grid) => (\n props = {},\n extraParams,\n) => {\n let nextProps = props;\n decorators.forEach((decorator) => {\n nextProps = decorator(nextProps, grid, extraParams);\n });\n return nextProps;\n};\n\n/* eslint-disable-next-line max-params */\nexport function evaluateTransforms(\n transforms,\n value,\n extraParams = {},\n props = {},\n grid,\n) {\n let nextProps = props;\n transforms.forEach((transform) => {\n nextProps = transform(value, extraParams, nextProps, grid);\n });\n return nextProps;\n}\n\n/* eslint-disable-next-line max-params */\nexport function evaluateFormatters(formatters, value, extraParams = {}, grid) {\n return formatters.reduce(\n (result, formatter) => formatter(result, extraParams, grid),\n value,\n );\n}\n\nexport function composeFormatters(\n formatters,\n instance,\n getItemValue = (record) => record.data.name,\n) {\n // todo: make the formatters subscribe to the item props instead of getting the whole instance\n // todo: addd should formatter update to memoize specific ones\n return (props) =>\n formatters.reduce(\n (result, formatter) => formatter(result, props, instance),\n getItemValue(props.record),\n );\n}\n\nexport const applyDecorators = (subject, decorators = [], ...args) =>\n decorators.reduce(\n (nextSubject, decorator) => decorator(nextSubject, ...args),\n subject,\n );\n\nexport const decorateColumns = (columns, decorators, grid) => {\n const nextColumns = applyDecorators(\n columns,\n decorators.decorateColumns,\n grid,\n );\n return nextColumns.map((column, index) =>\n applyDecorators(column, decorators.decorateColumn, grid, index),\n );\n};\n\nexport const mergeInstance = (instance, instanceHook) => ({\n ...instance,\n ...instanceHook(instance),\n});\n\nexport const registerStateHookToInstance = (instance, stateHook) => {\n const { state, actions } = stateHook(instance);\n return {\n ...instance,\n state: {\n ...instance.state,\n ...state,\n },\n actions: {\n ...instance.actions,\n ...actions,\n },\n };\n};\n\nconst reduceHotKey = (\n instance,\n { key, handler, options, allowDocumentHandler },\n) => ({\n ...instance,\n hotKeys: {\n ...instance.hotKeys,\n [key]: { handler, options, allowDocumentHandler },\n },\n});\n\nexport const registerHotKeysHookToInstance = (instance, hotKeysHook) => {\n const hotKeys = hotKeysHook(instance);\n if (Array.isArray(hotKeys)) {\n return hotKeys.reduce(reduceHotKey, instance);\n }\n return reduceHotKey(instance, hotKeys);\n};\n"],"names":["reducePropsGetter","decorators","grid","props","extraParams","nextProps","forEach","decorator","evaluateTransforms","transforms","value","transform","evaluateFormatters","formatters","reduce","result","formatter","composeFormatters","instance","getItemValue","record","data","name","applyDecorators","subject","args","nextSubject","decorateColumns","columns","nextColumns","map","column","index","decorateColumn","mergeInstance","instanceHook","registerStateHookToInstance","stateHook","state","actions","reduceHotKey","key","handler","options","allowDocumentHandler","hotKeys","registerHotKeysHookToInstance","hotKeysHook","Array","isArray"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/defer-render-hoc/index.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport raf from 'raf';\nimport hoistNonReactStatic from 'hoist-non-react-statics';\n\n/**\n * Allows two animation frames to complete to allow other components to update\n * and re-render before mounting and rendering an expensive `WrappedComponent`.\n *\n * @param WrappedComponent\n * @param fallback\n */\nexport default function deferComponentRender(WrappedComponent, fallback) {\n class DeferredRenderWrapper extends PureComponent {\n state = { shouldRender: false };\n\n componentDidMount() {\n raf(() => raf(() => this.setState({ shouldRender: true })));\n }\n\n render() {\n // eslint-disable-next-line react/destructuring-assignment\n return this.state.shouldRender ? (\n <WrappedComponent {...this.props} />\n ) : (\n fallback\n );\n }\n }\n\n return hoistNonReactStatic(DeferredRenderWrapper, WrappedComponent);\n}\n"],"names":["deferComponentRender","WrappedComponent","fallback","DeferredRenderWrapper","state","shouldRender","raf","setState","React","props","PureComponent","hoistNonReactStatic"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AACe,SAASA,oBAAT,CAA8BC,gBAA9B,EAAgDC,QAAhD,EAA0D;AAAA,MACjEC,qBADiE;AAAA;;AAAA;;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA,YAErEC,KAFqE,GAE7D;AAAEC,QAAAA,YAAY,EAAE;AAAhB,OAF6D;AAAA;AAAA;;AAAA;AAAA;AAAA,aAIrE,6BAAoB;AAAA;;AAClBC,QAAAA,uBAAG,CAAC;AAAA,iBAAMA,uBAAG,CAAC;AAAA,mBAAM,MAAI,CAACC,QAAL,CAAc;AAAEF,cAAAA,YAAY,EAAE;AAAhB,aAAd,CAAN;AAAA,WAAD,CAAT;AAAA,SAAD,CAAH;AACD;AANoE;AAAA;AAAA,aAQrE,kBAAS;AACP;AACA,eAAO,KAAKD,KAAL,CAAWC,YAAX,gBACLG,wCAAC,gBAAD,EAAsB,KAAKC,KAA3B,CADK,GAGLP,QAHF;AAKD;AAfoE;;AAAA;AAAA,IACnCQ,mBADmC;;AAkBvE,SAAOC,uCAAmB,CAACR,qBAAD,EAAwBF,gBAAxB,CAA1B;AACD;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/defer-render-hoc/index.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport raf from 'raf';\nimport hoistNonReactStatic from 'hoist-non-react-statics';\n\n/**\n * Allows two animation frames to complete to allow other components to update\n * and re-render before mounting and rendering an expensive `WrappedComponent`.\n *\n * @param WrappedComponent\n * @param fallback\n */\nexport default function deferComponentRender(WrappedComponent, fallback) {\n class DeferredRenderWrapper extends PureComponent {\n state = { shouldRender: false };\n\n componentDidMount() {\n raf(() => raf(() => this.setState({ shouldRender: true })));\n }\n\n render() {\n // eslint-disable-next-line react/destructuring-assignment\n return this.state.shouldRender ? (\n <WrappedComponent {...this.props} />\n ) : (\n fallback\n );\n }\n }\n\n return hoistNonReactStatic(DeferredRenderWrapper, WrappedComponent);\n}\n"],"names":["deferComponentRender","WrappedComponent","fallback","DeferredRenderWrapper","_inherits","_classCallCheck","state","shouldRender","_createClass","raf","setState","React","props","PureComponent","hoistNonReactStatic"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AACe,SAASA,oBAAT,CAA8BC,gBAA9B,EAAgDC,QAAhD,EAA0D;EAAA,IACjEC,qBADiE;IAAAC;;IAAA;;IAAA;MAAA;;MAAAC;;MAAA;QAAA;;;MAAA;MAAA,MAErEC,KAFqE,GAE7D;QAAEC,YAAY,EAAE;OAF6C;MAAA;;;IAAAC;MAAA;MAAA,OAIrE,6BAAoB;QAAA;;QAClBC,uBAAG,CAAC;UAAA,OAAMA,uBAAG,CAAC;YAAA,OAAM,MAAI,CAACC,QAAL,CAAc;cAAEH,YAAY,EAAE;aAA9B,CAAN;WAAD,CAAT;SAAD,CAAH;;;MALmE;MAAA,OAQrE,kBAAS;;QAEP,OAAO,KAAKD,KAAL,CAAWC,YAAX,gBACLI,wCAAC,gBAAD,EAAsB,KAAKC,KAA3B,CADK,GAGLV,QAHF;;;;IAVmE;IACnCW,mBADmC;;EAkBvE,OAAOC,uCAAmB,CAACX,qBAAD,EAAwBF,gBAAxB,CAA1B;AACD;;;;"}